From 8ad6a90a83a32fc66ed277e7c0c175bd97da04cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Wed, 30 Dec 2020 17:20:15 +0800 Subject: [PATCH 01/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20=E5=8E=9F=E7=94=9FJava=E7=88=AC?= =?UTF-8?q?=E5=8F=96=E8=85=BE=E8=AE=AF=E6=96=B0=E9=97=BB=E7=9A=84=E7=96=AB?= =?UTF-8?q?=E6=83=85=E6=95=B0=E6=8D=AE=20+=20=E8=A7=A3=E6=9E=90JSON?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=20+=20=E5=B1=95=E7=A4=BA=E5=9C=A8=E6=B5=8F?= =?UTF-8?q?=E8=A7=88=E5=99=A8=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.gitignore" | 35 + .../.mvn/wrapper/MavenWrapperDownloader.java" | 118 + .../.mvn/wrapper/maven-wrapper.jar" | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties" | 2 + .../pom.xml" | 77 + .../zgh/SpringbootEpidemicApplication.java" | 13 + .../src/main/java/com/zgh/bean/DataBean.java" | 20 + .../com/zgh/controller/DataController.java" | 27 + .../java/com/zgh/handler/DataHandler.java" | 77 + .../java/com/zgh/service/DataService.java" | 11 + .../com/zgh/service/DataServiceImpl.java" | 18 + .../main/java/com/zgh/util/HttpConnUtil.java" | 73 + .../main/resources/application.properties" | 1 + .../src/main/resources/banner.txt" | 6 + .../src/main/resources/static/bootstrap.css" | 8201 ++++++++++++ .../src/main/resources/templates/list.html" | 36 + .../SpringbootEpidemicApplicationTests.java" | 13 + .../tmp.html" | 10856 ++++++++++++++++ .../tmp.json" | 9598 ++++++++++++++ 19 files changed, 29182 insertions(+) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.gitignore" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/MavenWrapperDownloader.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/maven-wrapper.jar" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/maven-wrapper.properties" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/SpringbootEpidemicApplication.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/DataBean.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/DataController.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataService.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpConnUtil.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.properties" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/banner.txt" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/bootstrap.css" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/SpringbootEpidemicApplicationTests.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.html" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.json" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.gitignore" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.gitignore" new file mode 100644 index 0000000..2df3e76 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.gitignore" @@ -0,0 +1,35 @@ +### test ### +TestMain.java + +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/MavenWrapperDownloader.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/MavenWrapperDownloader.java" new file mode 100644 index 0000000..a45eb6b --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/MavenWrapperDownloader.java" @@ -0,0 +1,118 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed 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 + * + * https://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. + */ + +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if (mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if (mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if (!outputFile.getParentFile().exists()) { + if (!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/maven-wrapper.jar" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/maven-wrapper.jar" new file mode 100644 index 0000000000000000000000000000000000000000..2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054 GIT binary patch literal 50710 zcmbTd1CVCTmM+|7+wQV$+qP}n>auOywyU~q+qUhh+uxis_~*a##hm*_WW?9E7Pb7N%LRFiwbEGCJ0XP=%-6oeT$XZcYgtzC2~q zk(K08IQL8oTl}>>+hE5YRgXTB@fZ4TH9>7=79e`%%tw*SQUa9~$xKD5rS!;ZG@ocK zQdcH}JX?W|0_Afv?y`-NgLum62B&WSD$-w;O6G0Sm;SMX65z)l%m1e-g8Q$QTI;(Q z+x$xth4KFvH@Bs6(zn!iF#nenk^Y^ce;XIItAoCsow38eq?Y-Auh!1in#Rt-_D>H^ z=EjbclGGGa6VnaMGmMLj`x3NcwA43Jb(0gzl;RUIRAUDcR1~99l2SAPkVhoRMMtN} zXvC<tOmX83grD8GSo_Lo?%lNfhD#EBgPo z*nf@ppMC#B!T)Ae0RG$mlJWmGl7CkuU~B8-==5i;rS;8i6rJ=PoQxf446XDX9g|c> zU64ePyMlsI^V5Jq5A+BPe#e73+kpc_r1tv#B)~EZ;7^67F0*QiYfrk0uVW;Qb=NsG zN>gsuCwvb?s-KQIppEaeXtEMdc9dy6Dfduz-tMTms+i01{eD9JE&h?Kht*$eOl#&L zJdM_-vXs(V#$Ed;5wyNWJdPNh+Z$+;$|%qR(t`4W@kDhd*{(7-33BOS6L$UPDeE_53j${QfKN-0v-HG z(QfyvFNbwPK%^!eIo4ac1;b>c0vyf9}Xby@YY!lkz-UvNp zwj#Gg|4B~?n?G^{;(W;|{SNoJbHTMpQJ*Wq5b{l9c8(%?Kd^1?H1om1de0Da9M;Q=n zUfn{f87iVb^>Exl*nZ0hs(Yt>&V9$Pg`zX`AI%`+0SWQ4Zc(8lUDcTluS z5a_KerZWe}a-MF9#Cd^fi!y3%@RFmg&~YnYZ6<=L`UJ0v={zr)>$A;x#MCHZy1st7 ztT+N07NR+vOwSV2pvWuN1%lO!K#Pj0Fr>Q~R40{bwdL%u9i`DSM4RdtEH#cW)6}+I-eE< z&tZs+(Ogu(H_;$a$!7w`MH0r%h&@KM+<>gJL@O~2K2?VrSYUBbhCn#yy?P)uF3qWU z0o09mIik+kvzV6w>vEZy@&Mr)SgxPzUiDA&%07m17udz9usD82afQEps3$pe!7fUf z0eiidkJ)m3qhOjVHC_M(RYCBO%CZKZXFb8}s0-+}@CIn&EF(rRWUX2g^yZCvl0bI} zbP;1S)iXnRC&}5-Tl(hASKqdSnO?ASGJ*MIhOXIblmEudj(M|W!+I3eDc}7t`^mtg z)PKlaXe(OH+q-)qcQ8a@!llRrpGI8DsjhoKvw9T;TEH&?s=LH0w$EzI>%u;oD@x83 zJL7+ncjI9nn!TlS_KYu5vn%f*@qa5F;| zEFxY&B?g=IVlaF3XNm_03PA)=3|{n-UCgJoTr;|;1AU9|kPE_if8!Zvb}0q$5okF$ zHaJdmO&gg!9oN|M{!qGE=tb|3pVQ8PbL$}e;NgXz<6ZEggI}wO@aBP**2Wo=yN#ZC z4G$m^yaM9g=|&!^ft8jOLuzc3Psca*;7`;gnHm}tS0%f4{|VGEwu45KptfNmwxlE~ z^=r30gi@?cOm8kAz!EylA4G~7kbEiRlRIzwrb~{_2(x^$-?|#e6Bi_**(vyr_~9Of z!n>Gqf+Qwiu!xhi9f53=PM3`3tNF}pCOiPU|H4;pzjcsqbwg*{{kyrTxk<;mx~(;; z1NMrpaQ`57yn34>Jo3b|HROE(UNcQash!0p2-!Cz;{IRv#Vp5!3o$P8!%SgV~k&Hnqhp`5eLjTcy93cK!3Hm-$`@yGnaE=?;*2uSpiZTs_dDd51U%i z{|Zd9ou-;laGS_x=O}a+ zB||za<795A?_~Q=r=coQ+ZK@@ zId~hWQL<%)fI_WDIX#=(WNl!Dm$a&ROfLTd&B$vatq!M-2Jcs;N2vps$b6P1(N}=oI3<3luMTmC|0*{ zm1w8bt7vgX($!0@V0A}XIK)w!AzUn7vH=pZEp0RU0p?}ch2XC-7r#LK&vyc2=-#Q2 z^L%8)JbbcZ%g0Du;|8=q8B>X=mIQirpE=&Ox{TiuNDnOPd-FLI^KfEF729!!0x#Es z@>3ursjFSpu%C-8WL^Zw!7a0O-#cnf`HjI+AjVCFitK}GXO`ME&on|^=~Zc}^LBp9 zj=-vlN;Uc;IDjtK38l7}5xxQF&sRtfn4^TNtnzXv4M{r&ek*(eNbIu!u$>Ed%` z5x7+&)2P&4>0J`N&ZP8$vcR+@FS0126s6+Jx_{{`3ZrIMwaJo6jdrRwE$>IU_JTZ} z(||hyyQ)4Z1@wSlT94(-QKqkAatMmkT7pCycEB1U8KQbFX&?%|4$yyxCtm3=W`$4fiG0WU3yI@c zx{wfmkZAYE_5M%4{J-ygbpH|(|GD$2f$3o_Vti#&zfSGZMQ5_f3xt6~+{RX=$H8at z?GFG1Tmp}}lmm-R->ve*Iv+XJ@58p|1_jRvfEgz$XozU8#iJS})UM6VNI!3RUU!{5 zXB(+Eqd-E;cHQ>)`h0(HO_zLmzR3Tu-UGp;08YntWwMY-9i^w_u#wR?JxR2bky5j9 z3Sl-dQQU$xrO0xa&>vsiK`QN<$Yd%YXXM7*WOhnRdSFt5$aJux8QceC?lA0_if|s> ze{ad*opH_kb%M&~(~&UcX0nFGq^MqjxW?HJIP462v9XG>j(5Gat_)#SiNfahq2Mz2 zU`4uV8m$S~o9(W>mu*=h%Gs(Wz+%>h;R9Sg)jZ$q8vT1HxX3iQnh6&2rJ1u|j>^Qf`A76K%_ubL`Zu?h4`b=IyL>1!=*%!_K)=XC z6d}4R5L+sI50Q4P3upXQ3Z!~1ZXLlh!^UNcK6#QpYt-YC=^H=EPg3)z*wXo*024Q4b2sBCG4I# zlTFFY=kQ>xvR+LsuDUAk)q%5pEcqr(O_|^spjhtpb1#aC& zghXzGkGDC_XDa%t(X`E+kvKQ4zrQ*uuQoj>7@@ykWvF332)RO?%AA&Fsn&MNzmFa$ zWk&&^=NNjxLjrli_8ESU)}U|N{%j&TQmvY~lk!~Jh}*=^INA~&QB9em!in_X%Rl1&Kd~Z(u z9mra#<@vZQlOY+JYUwCrgoea4C8^(xv4ceCXcejq84TQ#sF~IU2V}LKc~Xlr_P=ry zl&Hh0exdCbVd^NPCqNNlxM3vA13EI8XvZ1H9#bT7y*U8Y{H8nwGpOR!e!!}*g;mJ#}T{ekSb}5zIPmye*If(}}_=PcuAW#yidAa^9-`<8Gr0 z)Fz=NiZ{)HAvw{Pl5uu)?)&i&Us$Cx4gE}cIJ}B4Xz~-q7)R_%owbP!z_V2=Aq%Rj z{V;7#kV1dNT9-6R+H}}(ED*_!F=~uz>&nR3gb^Ce%+0s#u|vWl<~JD3MvS0T9thdF zioIG3c#Sdsv;LdtRv3ml7%o$6LTVL>(H`^@TNg`2KPIk*8-IB}X!MT0`hN9Ddf7yN z?J=GxPL!uJ7lqwowsl?iRrh@#5C$%E&h~Z>XQcvFC*5%0RN-Opq|=IwX(dq(*sjs+ zqy99+v~m|6T#zR*e1AVxZ8djd5>eIeCi(b8sUk)OGjAsKSOg^-ugwl2WSL@d#?mdl zib0v*{u-?cq}dDGyZ%$XRY=UkQwt2oGu`zQneZh$=^! zj;!pCBWQNtvAcwcWIBM2y9!*W|8LmQy$H~5BEx)78J`4Z0(FJO2P^!YyQU{*Al+fs z){!4JvT1iLrJ8aU3k0t|P}{RN)_^v%$$r;+p0DY7N8CXzmS*HB*=?qaaF9D@#_$SN zSz{moAK<*RH->%r7xX~9gVW$l7?b|_SYI)gcjf0VAUJ%FcQP(TpBs; zg$25D!Ry_`8xpS_OJdeo$qh#7U+cepZ??TII7_%AXsT$B z=e)Bx#v%J0j``00Zk5hsvv6%T^*xGNx%KN-=pocSoqE5_R)OK%-Pbu^1MNzfds)mL zxz^F4lDKV9D&lEY;I+A)ui{TznB*CE$=9(wgE{m}`^<--OzV-5V4X2w9j(_!+jpTr zJvD*y6;39&T+==$F&tsRKM_lqa1HC}aGL0o`%c9mO=fts?36@8MGm7Vi{Y z^<7m$(EtdSr#22<(rm_(l_(`j!*Pu~Y>>xc>I9M#DJYDJNHO&4=HM%YLIp?;iR&$m z#_$ZWYLfGLt5FJZhr3jpYb`*%9S!zCG6ivNHYzNHcI%khtgHBliM^Ou}ZVD7ehU9 zS+W@AV=?Ro!=%AJ>Kcy9aU3%VX3|XM_K0A+ZaknKDyIS3S-Hw1C7&BSW5)sqj5Ye_ z4OSW7Yu-;bCyYKHFUk}<*<(@TH?YZPHr~~Iy%9@GR2Yd}J2!N9K&CN7Eq{Ka!jdu; zQNB*Y;i(7)OxZK%IHGt#Rt?z`I|A{q_BmoF!f^G}XVeTbe1Wnzh%1g>j}>DqFf;Rp zz7>xIs12@Ke0gr+4-!pmFP84vCIaTjqFNg{V`5}Rdt~xE^I;Bxp4)|cs8=f)1YwHz zqI`G~s2~qqDV+h02b`PQpUE#^^Aq8l%y2|ByQeXSADg5*qMprEAE3WFg0Q39`O+i1 z!J@iV!`Y~C$wJ!5Z+j5$i<1`+@)tBG$JL=!*uk=2k;T<@{|s1$YL079FvK%mPhyHV zP8^KGZnp`(hVMZ;s=n~3r2y;LTwcJwoBW-(ndU-$03{RD zh+Qn$ja_Z^OuMf3Ub|JTY74s&Am*(n{J3~@#OJNYuEVVJd9*H%)oFoRBkySGm`hx! zT3tG|+aAkXcx-2Apy)h^BkOyFTWQVeZ%e2@;*0DtlG9I3Et=PKaPt&K zw?WI7S;P)TWED7aSH$3hL@Qde?H#tzo^<(o_sv_2ci<7M?F$|oCFWc?7@KBj-;N$P zB;q!8@bW-WJY9do&y|6~mEruZAVe$!?{)N9rZZxD-|oltkhW9~nR8bLBGXw<632!l z*TYQn^NnUy%Ds}$f^=yQ+BM-a5X4^GHF=%PDrRfm_uqC zh{sKwIu|O0&jWb27;wzg4w5uA@TO_j(1X?8E>5Zfma|Ly7Bklq|s z9)H`zoAGY3n-+&JPrT!>u^qg9Evx4y@GI4$n-Uk_5wttU1_t?6><>}cZ-U+&+~JE) zPlDbO_j;MoxdLzMd~Ew|1o^a5q_1R*JZ=#XXMzg?6Zy!^hop}qoLQlJ{(%!KYt`MK z8umEN@Z4w!2=q_oe=;QttPCQy3Nm4F@x>@v4sz_jo{4m*0r%J(w1cSo;D_hQtJs7W z><$QrmG^+<$4{d2bgGo&3-FV}avg9zI|Rr(k{wTyl3!M1q+a zD9W{pCd%il*j&Ft z5H$nENf>>k$;SONGW`qo6`&qKs*T z2^RS)pXk9b@(_Fw1bkb)-oqK|v}r$L!W&aXA>IpcdNZ_vWE#XO8X`#Yp1+?RshVcd zknG%rPd*4ECEI0wD#@d+3NbHKxl}n^Sgkx==Iu%}HvNliOqVBqG?P2va zQ;kRJ$J6j;+wP9cS za#m;#GUT!qAV%+rdWolk+)6kkz4@Yh5LXP+LSvo9_T+MmiaP-eq6_k;)i6_@WSJ zlT@wK$zqHu<83U2V*yJ|XJU4farT#pAA&@qu)(PO^8PxEmPD4;Txpio+2)#!9 z>&=i7*#tc0`?!==vk>s7V+PL#S1;PwSY?NIXN2=Gu89x(cToFm))7L;< z+bhAbVD*bD=}iU`+PU+SBobTQ%S!=VL!>q$rfWsaaV}Smz>lO9JXT#`CcH_mRCSf4%YQAw`$^yY z3Y*^Nzk_g$xn7a_NO(2Eb*I=^;4f!Ra#Oo~LLjlcjke*k*o$~U#0ZXOQ5@HQ&T46l z7504MUgZkz2gNP1QFN8Y?nSEnEai^Rgyvl}xZfMUV6QrJcXp;jKGqB=D*tj{8(_pV zqyB*DK$2lgYGejmJUW)*s_Cv65sFf&pb(Yz8oWgDtQ0~k^0-wdF|tj}MOXaN@ydF8 zNr={U?=;&Z?wr^VC+`)S2xl}QFagy;$mG=TUs7Vi2wws5zEke4hTa2)>O0U?$WYsZ z<8bN2bB_N4AWd%+kncgknZ&}bM~eDtj#C5uRkp21hWW5gxWvc6b*4+dn<{c?w9Rmf zIVZKsPl{W2vQAlYO3yh}-{Os=YBnL8?uN5(RqfQ=-1cOiUnJu>KcLA*tQK3FU`_bM zM^T28w;nAj5EdAXFi&Kk1Nnl2)D!M{@+D-}bIEe+Lc4{s;YJc-{F#``iS2uk;2!Zp zF9#myUmO!wCeJIoi^A+T^e~20c+c2C}XltaR!|U-HfDA=^xF97ev}$l6#oY z&-&T{egB)&aV$3_aVA51XGiU07$s9vubh_kQG?F$FycvS6|IO!6q zq^>9|3U^*!X_C~SxX&pqUkUjz%!j=VlXDo$!2VLH!rKj@61mDpSr~7B2yy{>X~_nc zRI+7g2V&k zd**H++P9dg!-AOs3;GM`(g<+GRV$+&DdMVpUxY9I1@uK28$az=6oaa+PutlO9?6#? zf-OsgT>^@8KK>ggkUQRPPgC7zjKFR5spqQb3ojCHzj^(UH~v+!y*`Smv)VpVoPwa6 zWG18WJaPKMi*F6Zdk*kU^`i~NNTfn3BkJniC`yN98L-Awd)Z&mY? zprBW$!qL-OL7h@O#kvYnLsfff@kDIegt~?{-*5A7JrA;#TmTe?jICJqhub-G@e??D zqiV#g{)M!kW1-4SDel7TO{;@*h2=_76g3NUD@|c*WO#>MfYq6_YVUP+&8e4|%4T`w zXzhmVNziAHazWO2qXcaOu@R1MrPP{t)`N)}-1&~mq=ZH=w=;-E$IOk=y$dOls{6sRR`I5>|X zpq~XYW4sd;J^6OwOf**J>a7u$S>WTFPRkjY;BfVgQst)u4aMLR1|6%)CB^18XCz+r ztkYQ}G43j~Q&1em(_EkMv0|WEiKu;z2zhb(L%$F&xWwzOmk;VLBYAZ8lOCziNoPw1 zv2BOyXA`A8z^WH!nXhKXM`t0;6D*-uGds3TYGrm8SPnJJOQ^fJU#}@aIy@MYWz**H zvkp?7I5PE{$$|~{-ZaFxr6ZolP^nL##mHOErB^AqJqn^hFA=)HWj!m3WDaHW$C)i^ z9@6G$SzB=>jbe>4kqr#sF7#K}W*Cg-5y6kun3u&0L7BpXF9=#7IN8FOjWrWwUBZiU zT_se3ih-GBKx+Uw0N|CwP3D@-C=5(9T#BH@M`F2!Goiqx+Js5xC92|Sy0%WWWp={$(am!#l~f^W_oz78HX<0X#7 zp)p1u~M*o9W@O8P{0Qkg@Wa# z2{Heb&oX^CQSZWSFBXKOfE|tsAm#^U-WkDnU;IowZ`Ok4!mwHwH=s|AqZ^YD4!5!@ zPxJj+Bd-q6w_YG`z_+r;S86zwXb+EO&qogOq8h-Ect5(M2+>(O7n7)^dP*ws_3U6v zVsh)sk^@*c>)3EML|0<-YROho{lz@Nd4;R9gL{9|64xVL`n!m$-Jjrx?-Bacp!=^5 z1^T^eB{_)Y<9)y{-4Rz@9_>;_7h;5D+@QcbF4Wv7hu)s0&==&6u)33 zHRj+&Woq-vDvjwJCYES@$C4{$?f$Ibi4G()UeN11rgjF+^;YE^5nYprYoJNoudNj= zm1pXSeG64dcWHObUetodRn1Fw|1nI$D9z}dVEYT0lQnsf_E1x2vBLql7NrHH!n&Sq z6lc*mvU=WS6=v9Lrl}&zRiu_6u;6g%_DU{9b+R z#YHqX7`m9eydf?KlKu6Sb%j$%_jmydig`B*TN`cZL-g!R)iE?+Q5oOqBFKhx z%MW>BC^(F_JuG(ayE(MT{S3eI{cKiwOtPwLc0XO*{*|(JOx;uQOfq@lp_^cZo=FZj z4#}@e@dJ>Bn%2`2_WPeSN7si^{U#H=7N4o%Dq3NdGybrZgEU$oSm$hC)uNDC_M9xc zGzwh5Sg?mpBIE8lT2XsqTt3j3?We8}3bzLBTQd639vyg^$0#1epq8snlDJP2(BF)K zSx30RM+{f+b$g{9usIL8H!hCO117Xgv}ttPJm9wVRjPk;ePH@zxv%j9k5`TzdXLeT zFgFX`V7cYIcBls5WN0Pf6SMBN+;CrQ(|EsFd*xtwr#$R{Z9FP`OWtyNsq#mCgZ7+P z^Yn$haBJ)r96{ZJd8vlMl?IBxrgh=fdq_NF!1{jARCVz>jNdC)H^wfy?R94#MPdUjcYX>#wEx+LB#P-#4S-%YH>t-j+w zOFTI8gX$ard6fAh&g=u&56%3^-6E2tpk*wx3HSCQ+t7+*iOs zPk5ysqE}i*cQocFvA68xHfL|iX(C4h*67@3|5Qwle(8wT&!&{8*{f%0(5gH+m>$tq zp;AqrP7?XTEooYG1Dzfxc>W%*CyL16q|fQ0_jp%%Bk^k!i#Nbi(N9&T>#M{gez_Ws zYK=l}adalV(nH}I_!hNeb;tQFk3BHX7N}}R8%pek^E`X}%ou=cx8InPU1EE0|Hen- zyw8MoJqB5=)Z%JXlrdTXAE)eqLAdVE-=>wGHrkRet}>3Yu^lt$Kzu%$3#(ioY}@Gu zjk3BZuQH&~7H+C*uX^4}F*|P89JX;Hg2U!pt>rDi(n(Qe-c}tzb0#6_ItoR0->LSt zR~UT<-|@TO%O`M+_e_J4wx7^)5_%%u+J=yF_S#2Xd?C;Ss3N7KY^#-vx+|;bJX&8r zD?|MetfhdC;^2WG`7MCgs>TKKN=^=!x&Q~BzmQio_^l~LboTNT=I zC5pme^P@ER``p$2md9>4!K#vV-Fc1an7pl>_|&>aqP}+zqR?+~Z;f2^`a+-!Te%V? z;H2SbF>jP^GE(R1@%C==XQ@J=G9lKX+Z<@5}PO(EYkJh=GCv#)Nj{DkWJM2}F&oAZ6xu8&g7pn1ps2U5srwQ7CAK zN&*~@t{`31lUf`O;2w^)M3B@o)_mbRu{-`PrfNpF!R^q>yTR&ETS7^-b2*{-tZAZz zw@q5x9B5V8Qd7dZ!Ai$9hk%Q!wqbE1F1c96&zwBBaRW}(^axoPpN^4Aw}&a5dMe+*Gomky_l^54*rzXro$ z>LL)U5Ry>~FJi=*{JDc)_**c)-&faPz`6v`YU3HQa}pLtb5K)u%K+BOqXP0)rj5Au$zB zW1?vr?mDv7Fsxtsr+S6ucp2l#(4dnr9sD*v+@*>g#M4b|U?~s93>Pg{{a5|rm2xfI z`>E}?9S@|IoUX{Q1zjm5YJT|3S>&09D}|2~BiMo=z4YEjXlWh)V&qs;*C{`UMxp$9 zX)QB?G$fPD6z5_pNs>Jeh{^&U^)Wbr?2D6-q?)`*1k@!UvwQgl8eG$r+)NnFoT)L6 zg7lEh+E6J17krfYJCSjWzm67hEth24pomhz71|Qodn#oAILN)*Vwu2qpJirG)4Wnv}9GWOFrQg%Je+gNrPl8mw7ykE8{ z=|B4+uwC&bpp%eFcRU6{mxRV32VeH8XxX>v$du<$(DfinaaWxP<+Y97Z#n#U~V zVEu-GoPD=9$}P;xv+S~Ob#mmi$JQmE;Iz4(){y*9pFyW-jjgdk#oG$fl4o9E8bo|L zWjo4l%n51@Kz-n%zeSCD`uB?T%FVk+KBI}=ve zvlcS#wt`U6wrJo}6I6Rwb=1GzZfwE=I&Ne@p7*pH84XShXYJRgvK)UjQL%R9Zbm(m zxzTQsLTON$WO7vM)*vl%Pc0JH7WhP;$z@j=y#avW4X8iqy6mEYr@-}PW?H)xfP6fQ z&tI$F{NNct4rRMSHhaelo<5kTYq+(?pY)Ieh8*sa83EQfMrFupMM@nfEV@EmdHUv9 z35uzIrIuo4#WnF^_jcpC@uNNaYTQ~uZWOE6P@LFT^1@$o&q+9Qr8YR+ObBkpP9=F+$s5+B!mX2~T zAuQ6RenX?O{IlLMl1%)OK{S7oL}X%;!XUxU~xJN8xk z`xywS*naF(J#?vOpB(K=o~lE;m$zhgPWDB@=p#dQIW>xe_p1OLoWInJRKbEuoncf; zmS1!u-ycc1qWnDg5Nk2D)BY%jmOwCLC+Ny>`f&UxFowIsHnOXfR^S;&F(KXd{ODlm z$6#1ccqt-HIH9)|@fHnrKudu!6B$_R{fbCIkSIb#aUN|3RM>zuO>dpMbROZ`^hvS@ z$FU-;e4W}!ubzKrU@R*dW*($tFZ>}dd*4_mv)#O>X{U@zSzQt*83l9mI zI$8O<5AIDx`wo0}f2fsPC_l>ONx_`E7kdXu{YIZbp1$(^oBAH({T~&oQ&1{X951QW zmhHUxd)t%GQ9#ak5fTjk-cahWC;>^Rg7(`TVlvy0W@Y!Jc%QL3Ozu# zDPIqBCy&T2PWBj+d-JA-pxZlM=9ja2ce|3B(^VCF+a*MMp`(rH>Rt6W1$;r{n1(VK zLs>UtkT43LR2G$AOYHVailiqk7naz2yZGLo*xQs!T9VN5Q>eE(w zw$4&)&6xIV$IO^>1N-jrEUg>O8G4^@y+-hQv6@OmF@gy^nL_n1P1-Rtyy$Bl;|VcV zF=p*&41-qI5gG9UhKmmnjs932!6hceXa#-qfK;3d*a{)BrwNFeKU|ge?N!;zk+kB! zMD_uHJR#%b54c2tr~uGPLTRLg$`fupo}cRJeTwK;~}A>(Acy4k-Xk&Aa1&eWYS1ULWUj@fhBiWY$pdfy+F z@G{OG{*v*mYtH3OdUjwEr6%_ZPZ3P{@rfbNPQG!BZ7lRyC^xlMpWH`@YRar`tr}d> z#wz87t?#2FsH-jM6m{U=gp6WPrZ%*w0bFm(T#7m#v^;f%Z!kCeB5oiF`W33W5Srdt zdU?YeOdPG@98H7NpI{(uN{FJdu14r(URPH^F6tOpXuhU7T9a{3G3_#Ldfx_nT(Hec zo<1dyhsVsTw;ZkVcJ_0-h-T3G1W@q)_Q30LNv)W?FbMH+XJ* zy=$@39Op|kZv`Rt>X`zg&at(?PO^I=X8d9&myFEx#S`dYTg1W+iE?vt#b47QwoHI9 zNP+|3WjtXo{u}VG(lLUaW0&@yD|O?4TS4dfJI`HC-^q;M(b3r2;7|FONXphw-%7~* z&;2!X17|05+kZOpQ3~3!Nb>O94b&ZSs%p)TK)n3m=4eiblVtSx@KNFgBY_xV6ts;NF;GcGxMP8OKV^h6LmSb2E#Qnw ze!6Mnz7>lE9u{AgQ~8u2zM8CYD5US8dMDX-5iMlgpE9m*s+Lh~A#P1er*rF}GHV3h z=`STo?kIXw8I<`W0^*@mB1$}pj60R{aJ7>C2m=oghKyxMbFNq#EVLgP0cH3q7H z%0?L93-z6|+jiN|@v>ix?tRBU(v-4RV`}cQH*fp|)vd3)8i9hJ3hkuh^8dz{F5-~_ zUUr1T3cP%cCaTooM8dj|4*M=e6flH0&8ve32Q)0dyisl))XkZ7Wg~N}6y`+Qi2l+e zUd#F!nJp{#KIjbQdI`%oZ`?h=5G^kZ_uN`<(`3;a!~EMsWV|j-o>c?x#;zR2ktiB! z);5rrHl?GPtr6-o!tYd|uK;Vbsp4P{v_4??=^a>>U4_aUXPWQ$FPLE4PK$T^3Gkf$ zHo&9$U&G`d(Os6xt1r?sg14n)G8HNyWa^q8#nf0lbr4A-Fi;q6t-`pAx1T*$eKM*$ z|CX|gDrk#&1}>5H+`EjV$9Bm)Njw&7-ZR{1!CJTaXuP!$Pcg69`{w5BRHysB$(tWUes@@6aM69kb|Lx$%BRY^-o6bjH#0!7b;5~{6J+jKxU!Kmi# zndh@+?}WKSRY2gZ?Q`{(Uj|kb1%VWmRryOH0T)f3cKtG4oIF=F7RaRnH0Rc_&372={_3lRNsr95%ZO{IX{p@YJ^EI%+gvvKes5cY+PE@unghjdY5#9A!G z70u6}?zmd?v+{`vCu-53_v5@z)X{oPC@P)iA3jK$`r zSA2a7&!^zmUiZ82R2=1cumBQwOJUPz5Ay`RLfY(EiwKkrx%@YN^^XuET;tE zmr-6~I7j!R!KrHu5CWGSChO6deaLWa*9LLJbcAJsFd%Dy>a!>J`N)Z&oiU4OEP-!Ti^_!p}O?7`}i7Lsf$-gBkuY*`Zb z7=!nTT;5z$_5$=J=Ko+Cp|Q0J=%oFr>hBgnL3!tvFoLNhf#D0O=X^h+x08iB;@8pXdRHxX}6R4k@i6%vmsQwu^5z zk1ip`#^N)^#Lg#HOW3sPI33xqFB4#bOPVnY%d6prwxf;Y-w9{ky4{O6&94Ra8VN@K zb-lY;&`HtxW@sF!doT5T$2&lIvJpbKGMuDAFM#!QPXW87>}=Q4J3JeXlwHys?!1^#37q_k?N@+u&Ns20pEoBeZC*np;i;M{2C0Z4_br2gsh6eL z#8`#sn41+$iD?^GL%5?cbRcaa-Nx0vE(D=*WY%rXy3B%gNz0l?#noGJGP728RMY#q z=2&aJf@DcR?QbMmN)ItUe+VM_U!ryqA@1VVt$^*xYt~-qvW!J4Tp<-3>jT=7Zow5M z8mSKp0v4b%a8bxFr>3MwZHSWD73D@+$5?nZAqGM#>H@`)mIeC#->B)P8T$zh-Pxnc z8)~Zx?TWF4(YfKuF3WN_ckpCe5;x4V4AA3(i$pm|78{%!q?|~*eH0f=?j6i)n~Hso zmTo>vqEtB)`%hP55INf7HM@taH)v`Fw40Ayc*R!T?O{ziUpYmP)AH`euTK!zg9*6Z z!>M=$3pd0!&TzU=hc_@@^Yd3eUQpX4-33}b{?~5t5lgW=ldJ@dUAH%`l5US1y_`40 zs(X`Qk}vvMDYYq+@Rm+~IyCX;iD~pMgq^KY)T*aBz@DYEB={PxA>)mI6tM*sx-DmGQHEaHwRrAmNjO!ZLHO4b;;5mf@zzlPhkP($JeZGE7 z?^XN}Gf_feGoG~BjUgVa*)O`>lX=$BSR2)uD<9 z>o^|nb1^oVDhQbfW>>!;8-7<}nL6L^V*4pB=>wwW+RXAeRvKED(n1;R`A6v$6gy0I(;Vf?!4;&sgn7F%LpM}6PQ?0%2Z@b{It<(G1CZ|>913E0nR2r^Pa*Bp z@tFGi*CQ~@Yc-?{cwu1 zsilf=k^+Qs>&WZG(3WDixisHpR>`+ihiRwkL(3T|=xsoNP*@XX3BU8hr57l3k;pni zI``=3Nl4xh4oDj<%>Q1zYXHr%Xg_xrK3Nq?vKX3|^Hb(Bj+lONTz>4yhU-UdXt2>j z<>S4NB&!iE+ao{0Tx^N*^|EZU;0kJkx@zh}S^P{ieQjGl468CbC`SWnwLRYYiStXm zOxt~Rb3D{dz=nHMcY)#r^kF8|q8KZHVb9FCX2m^X*(|L9FZg!5a7((!J8%MjT$#Fs)M1Pb zq6hBGp%O1A+&%2>l0mpaIzbo&jc^!oN^3zxap3V2dNj3x<=TwZ&0eKX5PIso9j1;e zwUg+C&}FJ`k(M|%%}p=6RPUq4sT3-Y;k-<68ciZ~_j|bt>&9ZLHNVrp#+pk}XvM{8 z`?k}o-!if>hVlCP9j%&WI2V`5SW)BCeR5>MQhF)po=p~AYN%cNa_BbV6EEh_kk^@a zD>4&>uCGCUmyA-c)%DIcF4R6!>?6T~Mj_m{Hpq`*(wj>foHL;;%;?(((YOxGt)Bhx zuS+K{{CUsaC++%}S6~CJ=|vr(iIs-je)e9uJEU8ZJAz)w166q)R^2XI?@E2vUQ!R% zn@dxS!JcOimXkWJBz8Y?2JKQr>`~SmE2F2SL38$SyR1^yqj8_mkBp)o$@+3BQ~Mid z9U$XVqxX3P=XCKj0*W>}L0~Em`(vG<>srF8+*kPrw z20{z(=^w+ybdGe~Oo_i|hYJ@kZl*(9sHw#Chi&OIc?w`nBODp?ia$uF%Hs(X>xm?j zqZQ`Ybf@g#wli`!-al~3GWiE$K+LCe=Ndi!#CVjzUZ z!sD2O*;d28zkl))m)YN7HDi^z5IuNo3^w(zy8 zszJG#mp#Cj)Q@E@r-=NP2FVxxEAeOI2e=|KshybNB6HgE^(r>HD{*}S}mO>LuRGJT{*tfTzw_#+er-0${}%YPe@CMJ1Ng#j#)i)SnY@ss3gL;g zg2D~#Kpdfu#G;q1qz_TwSz1VJT(b3zby$Vk&;Y#1(A)|xj`_?i5YQ;TR%jice5E;0 zYHg;`zS5{S*9xI6o^j>rE8Ua*XhIw{_-*&@(R|C(am8__>+Ws&Q^ymy*X4~hR2b5r zm^p3sw}yv=tdyncy_Ui7{BQS732et~Z_@{-IhHDXAV`(Wlay<#hb>%H%WDi+K$862nA@BDtM#UCKMu+kM`!JHyWSi?&)A7_ z3{cyNG%a~nnH_!+;g&JxEMAmh-Z}rC!o7>OVzW&PoMyTA_g{hqXG)SLraA^OP**<7 zjWbr7z!o2n3hnx7A=2O=WL;`@9N{vQIM@&|G-ljrPvIuJHYtss0Er0fT5cMXNUf1B z7FAwBDixt0X7C3S)mPe5g`YtME23wAnbU)+AtV}z+e8G;0BP=bI;?(#|Ep!vVfDbK zvx+|CKF>yt0hWQ3drchU#XBU+HiuG*V^snFAPUp-5<#R&BUAzoB!aZ+e*KIxa26V}s6?nBK(U-7REa573wg-jqCg>H8~>O{ z*C0JL-?X-k_y%hpUFL?I>0WV{oV`Nb)nZbJG01R~AG>flIJf)3O*oB2i8~;!P?Wo_ z0|QEB*fifiL6E6%>tlAYHm2cjTFE@*<);#>689Z6S#BySQ@VTMhf9vYQyLeDg1*F} zjq>i1*x>5|CGKN{l9br3kB0EHY|k4{%^t7-uhjd#NVipUZa=EUuE5kS1_~qYX?>hJ z$}!jc9$O$>J&wnu0SgfYods^z?J4X;X7c77Me0kS-dO_VUQ39T(Kv(Y#s}Qqz-0AH z^?WRL(4RzpkD+T5FG_0NyPq-a-B7A5LHOCqwObRJi&oRi(<;OuIN7SV5PeHU$<@Zh zPozEV`dYmu0Z&Tqd>t>8JVde9#Pt+l95iHe$4Xwfy1AhI zDM4XJ;bBTTvRFtW>E+GzkN)9k!hA5z;xUOL2 zq4}zn-DP{qc^i|Y%rvi|^5k-*8;JZ~9a;>-+q_EOX+p1Wz;>i7c}M6Nv`^NY&{J-> z`(mzDJDM}QPu5i44**2Qbo(XzZ-ZDu%6vm8w@DUarqXj41VqP~ zs&4Y8F^Waik3y1fQo`bVUH;b=!^QrWb)3Gl=QVKr+6sxc=ygauUG|cm?|X=;Q)kQ8 zM(xrICifa2p``I7>g2R~?a{hmw@{!NS5`VhH8+;cV(F>B94M*S;5#O`YzZH1Z%yD? zZ61w(M`#aS-*~Fj;x|J!KM|^o;MI#Xkh0ULJcA?o4u~f%Z^16ViA27FxU5GM*rKq( z7cS~MrZ=f>_OWx8j#-Q3%!aEU2hVuTu(7`TQk-Bi6*!<}0WQi;_FpO;fhpL4`DcWp zGOw9vx0N~6#}lz(r+dxIGZM3ah-8qrqMmeRh%{z@dbUD2w15*_4P?I~UZr^anP}DB zU9CCrNiy9I3~d#&!$DX9e?A});BjBtQ7oGAyoI$8YQrkLBIH@2;lt4E^)|d6Jwj}z z&2_E}Y;H#6I4<10d_&P0{4|EUacwFHauvrjAnAm6yeR#}f}Rk27CN)vhgRqEyPMMS7zvunj2?`f;%?alsJ+-K+IzjJx>h8 zu~m_y$!J5RWAh|C<6+uiCNsOKu)E72M3xKK(a9Okw3e_*O&}7llNV!=P87VM2DkAk zci!YXS2&=P0}Hx|wwSc9JP%m8dMJA*q&VFB0yMI@5vWoAGraygwn){R+Cj6B1a2Px z5)u(K5{+;z2n*_XD!+Auv#LJEM)(~Hx{$Yb^ldQmcYF2zNH1V30*)CN_|1$v2|`LnFUT$%-tO0Eg|c5$BB~yDfzS zcOXJ$wpzVK0MfTjBJ0b$r#_OvAJ3WRt+YOLlJPYMx~qp>^$$$h#bc|`g0pF-Ao43? z>*A+8lx>}L{p(Tni2Vvk)dtzg$hUKjSjXRagj)$h#8=KV>5s)J4vGtRn5kP|AXIz! zPgbbVxW{2o4s-UM;c#We8P&mPN|DW7_uLF!a|^0S=wr6Esx9Z$2|c1?GaupU6$tb| zY_KU`(_29O_%k(;>^|6*pZURH3`@%EuKS;Ns z1lujmf;r{qAN&Q0&m{wJSZ8MeE7RM5+Sq;ul_ z`+ADrd_Um+G37js6tKsArNB}n{p*zTUxQr>3@wA;{EUbjNjlNd6$Mx zg0|MyU)v`sa~tEY5$en7^PkC=S<2@!nEdG6L=h(vT__0F=S8Y&eM=hal#7eM(o^Lu z2?^;05&|CNliYrq6gUv;|i!(W{0N)LWd*@{2q*u)}u*> z7MQgk6t9OqqXMln?zoMAJcc zMKaof_Up})q#DzdF?w^%tTI7STI^@8=Wk#enR*)&%8yje>+tKvUYbW8UAPg55xb70 zEn5&Ba~NmOJlgI#iS8W3-@N%>V!#z-ZRwfPO1)dQdQkaHsiqG|~we2ALqG7Ruup(DqSOft2RFg_X%3w?6VqvV1uzX_@F(diNVp z4{I|}35=11u$;?|JFBEE*gb;T`dy+8gWJ9~pNsecrO`t#V9jW-6mnfO@ff9od}b(3s4>p0i30gbGIv~1@a^F2kl7YO;DxmF3? zWi-RoXhzRJV0&XE@ACc?+@6?)LQ2XNm4KfalMtsc%4!Fn0rl zpHTrHwR>t>7W?t!Yc{*-^xN%9P0cs0kr=`?bQ5T*oOo&VRRu+1chM!qj%2I!@+1XF z4GWJ=7ix9;Wa@xoZ0RP`NCWw0*8247Y4jIZ>GEW7zuoCFXl6xIvz$ezsWgKdVMBH> z{o!A7f;R-@eK9Vj7R40xx)T<2$?F2E<>Jy3F;;=Yt}WE59J!1WN367 zA^6pu_zLoZIf*x031CcwotS{L8bJE(<_F%j_KJ2P_IusaZXwN$&^t716W{M6X2r_~ zaiMwdISX7Y&Qi&Uh0upS3TyEIXNDICQlT5fHXC`aji-c{U(J@qh-mWl-uMN|T&435 z5)a1dvB|oe%b2mefc=Vpm0C%IUYYh7HI*;3UdgNIz}R##(#{(_>82|zB0L*1i4B5j-xi9O4x10rs_J6*gdRBX=@VJ+==sWb&_Qc6tSOowM{BX@(zawtjl zdU!F4OYw2@Tk1L^%~JCwb|e#3CC>srRHQ*(N%!7$Mu_sKh@|*XtR>)BmWw!;8-mq7 zBBnbjwx8Kyv|hd*`5}84flTHR1Y@@uqjG`UG+jN_YK&RYTt7DVwfEDXDW4U+iO{>K zw1hr{_XE*S*K9TzzUlJH2rh^hUm2v7_XjwTuYap|>zeEDY$HOq3X4Tz^X}E9z)x4F zs+T?Ed+Hj<#jY-`Va~fT2C$=qFT-5q$@p9~0{G&eeL~tiIAHXA!f6C(rAlS^)&k<- zXU|ZVs}XQ>s5iONo~t!XXZgtaP$Iau;JT%h)>}v54yut~pykaNye4axEK#5@?TSsQ zE;Jvf9I$GVb|S`7$pG)4vgo9NXsKr?u=F!GnA%VS2z$@Z(!MR9?EPcAqi5ft)Iz6sNl`%kj+_H-X`R<>BFrBW=fSlD|{`D%@Rcbu2?%>t7i34k?Ujb)2@J-`j#4 zLK<69qcUuniIan-$A1+fR=?@+thwDIXtF1Tks@Br-xY zfB+zblrR(ke`U;6U~-;p1Kg8Lh6v~LjW@9l2P6s+?$2!ZRPX`(ZkRGe7~q(4&gEi<$ch`5kQ?*1=GSqkeV z{SA1EaW_A!t{@^UY2D^YO0(H@+kFVzZaAh0_`A`f(}G~EP~?B|%gtxu&g%^x{EYSz zk+T;_c@d;+n@$<>V%P=nk36?L!}?*=vK4>nJSm+1%a}9UlmTJTrfX4{Lb7smNQn@T zw9p2%(Zjl^bWGo1;DuMHN(djsEm)P8mEC2sL@KyPjwD@d%QnZ$ zMJ3cnn!_!iP{MzWk%PI&D?m?C(y2d|2VChluN^yHya(b`h>~GkI1y;}O_E57zOs!{ zt2C@M$^PR2U#(dZmA-sNreB@z-yb0Bf7j*yONhZG=onhx>t4)RB`r6&TP$n zgmN*)eCqvgriBO-abHQ8ECN0bw?z5Bxpx z=jF@?zFdVn?@gD5egM4o$m`}lV(CWrOKKq(sv*`mNcHcvw&Xryfw<{ch{O&qc#WCTXX6=#{MV@q#iHYba!OUY+MGeNTjP%Fj!WgM&`&RlI^=AWTOqy-o zHo9YFt!gQ*p7{Fl86>#-JLZo(b^O`LdFK~OsZBRR@6P?ad^Ujbqm_j^XycM4ZHFyg ziUbIFW#2tj`65~#2V!4z7DM8Z;fG0|APaQ{a2VNYpNotB7eZ5kp+tPDz&Lqs0j%Y4tA*URpcfi z_M(FD=fRGdqf430j}1z`O0I=;tLu81bwJXdYiN7_&a-?ly|-j*+=--XGvCq#32Gh(=|qj5F?kmihk{%M&$}udW5)DHK zF_>}5R8&&API}o0osZJRL3n~>76nUZ&L&iy^s>PMnNcYZ|9*1$v-bzbT3rpWsJ+y{ zPrg>5Zlery96Um?lc6L|)}&{992{_$J&=4%nRp9BAC6!IB=A&=tF>r8S*O-=!G(_( zwXbX_rGZgeiK*&n5E;f=k{ktyA1(;x_kiMEt0*gpp_4&(twlS2e5C?NoD{n>X2AT# zY@Zp?#!b1zNq96MQqeO*M1MMBin5v#RH52&Xd~DO6-BZLnA6xO1$sou(YJ1Dlc{WF zVa%2DyYm`V#81jP@70IJ;DX@y*iUt$MLm)ByAD$eUuji|5{ptFYq(q)mE(5bOpxjM z^Q`AHWq44SG3`_LxC9fwR)XRVIp=B%<(-lOC3jI#bb@dK(*vjom!=t|#<@dZql%>O z15y^{4tQoeW9Lu%G&V$90x6F)xN6y_oIn;!Q zs)8jT$;&;u%Y>=T3hg34A-+Y*na=|glcStr5D;&5*t5*DmD~x;zQAV5{}Ya`?RRGa zT*t9@$a~!co;pD^!J5bo?lDOWFx%)Y=-fJ+PDGc0>;=q=s?P4aHForSB+)v0WY2JH z?*`O;RHum6j%#LG)Vu#ciO#+jRC3!>T(9fr+XE7T2B7Z|0nR5jw@WG)kDDzTJ=o4~ zUpeyt7}_nd`t}j9BKqryOha{34erm)RmST)_9Aw)@ zHbiyg5n&E{_CQR@h<}34d7WM{s{%5wdty1l+KX8*?+-YkNK2Be*6&jc>@{Fd;Ps|| z26LqdI3#9le?;}risDq$K5G3yoqK}C^@-8z^wj%tdgw-6@F#Ju{Sg7+y)L?)U$ez> zoOaP$UFZ?y5BiFycir*pnaAaY+|%1%8&|(@VB)zweR%?IidwJyK5J!STzw&2RFx zZV@qeaCB01Hu#U9|1#=Msc8Pgz5P*4Lrp!Q+~(G!OiNR{qa7|r^H?FC6gVhkk3y7=uW#Sh;&>78bZ}aK*C#NH$9rX@M3f{nckYI+5QG?Aj1DM)@~z_ zw!UAD@gedTlePB*%4+55naJ8ak_;))#S;4ji!LOqY5VRI){GMwHR~}6t4g>5C_#U# ztYC!tjKjrKvRy=GAsJVK++~$|+s!w9z3H4G^mACv=EErXNSmH7qN}%PKcN|8%9=i)qS5+$L zu&ya~HW%RMVJi4T^pv?>mw*Gf<)-7gf#Qj|e#w2|v4#t!%Jk{&xlf;$_?jW*n!Pyx zkG$<18kiLOAUPuFfyu-EfWX%4jYnjBYc~~*9JEz6oa)_R|8wjZA|RNrAp%}14L7fW zi7A5Wym*K+V8pkqqO-X#3ft{0qs?KVt^)?kS>AicmeO&q+~J~ zp0YJ_P~_a8j= zsAs~G=8F=M{4GZL{|B__UorX@MRNQLn?*_gym4aW(~+i13knnk1P=khoC-ViMZk+x zLW(l}oAg1H`dU+Fv**;qw|ANDSRs>cGqL!Yw^`; zv;{E&8CNJcc)GHzTYM}f&NPw<6j{C3gaeelU#y!M)w-utYEHOCCJo|Vgp7K6C_$14 zqIrLUB0bsgz^D%V%fbo2f9#yb#CntTX?55Xy|Kps&Xek*4_r=KDZ z+`TQuv|$l}MWLzA5Ay6Cvsa^7xvwXpy?`w(6vx4XJ zWuf1bVSb#U8{xlY4+wlZ$9jjPk)X_;NFMqdgq>m&W=!KtP+6NL57`AMljW+es zzqjUjgz;V*kktJI?!NOg^s_)ph45>4UDA!Vo0hn>KZ+h-3=?Y3*R=#!fOX zP$Y~+14$f66ix?UWB_6r#fMcC^~X4R-<&OD1CSDNuX~y^YwJ>sW0j`T<2+3F9>cLo z#!j57$ll2K9(%$4>eA7(>FJX5e)pR5&EZK!IMQzOfik#FU*o*LGz~7u(8}XzIQRy- z!U7AlMTIe|DgQFmc%cHy_9^{o`eD%ja_L>ckU6$O4*U**o5uR7`FzqkU8k4gxtI=o z^P^oGFPm5jwZMI{;nH}$?p@uV8FT4r=|#GziKXK07bHJLtK}X%I0TON$uj(iJ`SY^ zc$b2CoxCQ>7LH@nxcdW&_C#fMYBtTxcg46dL{vf%EFCZ~eErMvZq&Z%Lhumnkn^4A zsx$ay(FnN7kYah}tZ@0?-0Niroa~13`?hVi6`ndno`G+E8;$<6^gsE-K3)TxyoJ4M zb6pj5=I8^FD5H@`^V#Qb2^0cx7wUz&cruA5g>6>qR5)O^t1(-qqP&1g=qvY#s&{bx zq8Hc%LsbK1*%n|Y=FfojpE;w~)G0-X4i*K3{o|J7`krhIOd*c*$y{WIKz2n2*EXEH zT{oml3Th5k*vkswuFXdGDlcLj15Nec5pFfZ*0?XHaF_lVuiB%Pv&p7z)%38}%$Gup zVTa~C8=cw%6BKn_|4E?bPNW4PT7}jZQLhDJhvf4z;~L)506IE0 zX!tWXX(QOQPRj-p80QG79t8T2^az4Zp2hOHziQlvT!|H)jv{Ixodabzv6lBj)6WRB z{)Kg@$~~(7$-az?lw$4@L%I&DI0Lo)PEJJziWP33a3azb?jyXt1v0N>2kxwA6b%l> zZqRpAo)Npi&loWbjFWtEV)783BbeIAhqyuc+~>i7aQ8shIXt)bjCWT6$~ro^>99G} z2XfmT0(|l!)XJb^E!#3z4oEGIsL(xd; zYX1`1I(cG|u#4R4T&C|m*9KB1`UzKvho5R@1eYtUL9B72{i(ir&ls8g!pD ztR|25xGaF!4z5M+U@@lQf(12?xGy`!|3E}7pI$k`jOIFjiDr{tqf0va&3pOn6Pu)% z@xtG2zjYuJXrV)DUrIF*y<1O1<$#54kZ#2;=X51J^F#0nZ0(;S$OZDt_U2bx{RZ=Q zMMdd$fH|!s{ zXq#l;{`xfV`gp&C>A`WrQU?d{!Ey5(1u*VLJt>i27aZ-^&2IIk=zP5p+{$q(K?2(b z8?9h)kvj9SF!Dr zoyF}?V|9;6abHxWk2cEvGs$-}Pg}D+ZzgkaN&$Snp%;5m%zh1E#?Wac-}x?BYlGN#U#Mek*}kek#I9XaHt?mz3*fDrRTQ#&#~xyeqJk1QJ~E$7qsw6 z?sV;|?*=-{M<1+hXoj?@-$y+(^BJ1H~wQ9G8C0#^aEAyhDduNX@haoa=PuPp zYsGv8UBfQaRHgBgLjmP^eh>fLMeh{8ic)?xz?#3kX-D#Z{;W#cd_`9OMFIaJg-=t`_3*!YDgtNQ2+QUEAJB9M{~AvT$H`E)IKmCR21H532+ata8_i_MR@ z2Xj<3w<`isF~Ah$W{|9;51ub*f4#9ziKrOR&jM{x7I_7()O@`F*5o$KtZ?fxU~g`t zUovNEVKYn$U~VX8eR)qb`7;D8pn*Pp$(otYTqL)5KH$lUS-jf}PGBjy$weoceAcPp z&5ZYB$r&P$MN{0H0AxCe4Qmd3T%M*5d4i%#!nmBCN-WU-4m4Tjxn-%j3HagwTxCZ9 z)j5vO-C7%s%D!&UfO>bi2oXiCw<-w{vVTK^rVbv#W=WjdADJy8$khnU!`ZWCIU`># zyjc^1W~pcu>@lDZ{zr6gv%)2X4n27~Ve+cQqcND%0?IFSP4sH#yIaXXYAq^z3|cg` z`I3$m%jra>e2W-=DiD@84T!cb%||k)nPmEE09NC%@PS_OLhkrX*U!cgD*;;&gIaA(DyVT4QD+q_xu z>r`tg{hiGY&DvD-)B*h+YEd+Zn)WylQl}<4>(_NlsKXCRV;a)Rcw!wtelM2_rWX`j zTh5A|i6=2BA(iMCnj_fob@*eA;V?oa4Z1kRBGaU07O70fb6-qmA$Hg$ps@^ka1=RO zTbE_2#)1bndC3VuK@e!Sftxq4=Uux}fDxXE#Q5_x=E1h>T5`DPHz zbH<_OjWx$wy7=%0!mo*qH*7N4tySm+R0~(rbus`7;+wGh;C0O%x~fEMkt!eV>U$`i z5>Q(o z=t$gPjgGh0&I7KY#k50V7DJRX<%^X z>6+ebc9efB3@eE2Tr){;?_w`vhgF>`-GDY(YkR{9RH(MiCnyRtd!LxXJ75z+?2 zGi@m^+2hKJ5sB1@Xi@s_@p_Kwbc<*LQ_`mr^Y%j}(sV_$`J(?_FWP)4NW*BIL~sR>t6 zM;qTJZ~GoY36&{h-Pf}L#y2UtR}>ZaI%A6VkU>vG4~}9^i$5WP2Tj?Cc}5oQxe2=q z8BeLa$hwCg_psjZyC2+?yX4*hJ58Wu^w9}}7X*+i5Rjqu5^@GzXiw#SUir1G1`jY% zOL=GE_ENYxhcyUrEt9XlMNP6kx6h&%6^u3@zB8KUCAa18T(R2J`%JjWZ z!{7cXaEW+Qu*iJPu+m>QqW}Lo$4Z+!I)0JNzZ&_M%=|B1yejFRM04bGAvu{=lNPd+ zJRI^DRQ(?FcVUD+bgEcAi@o(msqys9RTCG#)TjI!9~3-dc`>gW;HSJuQvH~d`MQs86R$|SKXHh zqS9Qy)u;T`>>a!$LuaE2keJV%;8g)tr&Nnc;EkvA-RanHXsy)D@XN0a>h}z2j81R; zsUNJf&g&rKpuD0WD@=dDrPHdBoK42WoBU|nMo17o(5^;M|dB4?|FsAGVrSyWcI`+FVw^vTVC`y}f(BwJl zrw3Sp151^9=}B})6@H*i4-dIN_o^br+BkcLa^H56|^2XsT0dESw2 zMX>(KqNl=x2K5=zIKg}2JpGAZu{I_IO}0$EQ5P{4zol**PCt3F4`GX}2@vr8#Y)~J zKb)gJeHcFnR@4SSh%b;c%J`l=W*40UPjF#q{<}ywv-=vHRFmDjv)NtmC zQx9qm)d%0zH&qG7AFa3VAU1S^(n8VFTC~Hb+HjYMjX8r#&_0MzlNR*mnLH5hi}`@{ zK$8qiDDvS_(L9_2vHgzEQ${DYSE;DqB!g*jhJghE&=LTnbgl&Xepo<*uRtV{2wDHN z)l;Kg$TA>Y|K8Lc&LjWGj<+bp4Hiye_@BfU(y#nF{fpR&|Ltbye?e^j0}8JC4#xi% zv29ZR%8%hk=3ZDvO-@1u8KmQ@6p%E|dlHuy#H1&MiC<*$YdLkHmR#F3ae;bKd;@*i z2_VfELG=B}JMLCO-6UQy^>RDE%K4b>c%9ki`f~Z2Qu8hO7C#t%Aeg8E%+}6P7Twtg z-)dj(w}_zFK&86KR@q9MHicUAucLVshUdmz_2@32(V`y3`&Kf8Q2I)+!n0mR=rrDU zXvv^$ho;yh*kNqJ#r1}b0|i|xRUF6;lhx$M*uG3SNLUTC@|htC z-=fsw^F%$qqz4%QdjBrS+ov}Qv!z00E+JWas>p?z@=t!WWU3K*?Z(0meTuTOC7OTx zU|kFLE0bLZ+WGcL$u4E}5dB0g`h|uwv3=H6f+{5z9oLv-=Q45+n~V4WwgO=CabjM% zBAN+RjM65(-}>Q2V#i1Na@a0`08g&y;W#@sBiX6Tpy8r}*+{RnyGUT`?XeHSqo#|J z^ww~c;ou|iyzpErDtlVU=`8N7JSu>4M z_pr9=tX0edVn9B}YFO2y(88j#S{w%E8vVOpAboK*27a7e4Ekjt0)hIX99*1oE;vex z7#%jhY=bPijA=Ce@9rRO(Vl_vnd00!^TAc<+wVvRM9{;hP*rqEL_(RzfK$er_^SN; z)1a8vo8~Dr5?;0X0J62Cusw$A*c^Sx1)dom`-)Pl7hsW4i(r*^Mw`z5K>!2ixB_mu z*Ddqjh}zceRFdmuX1akM1$3>G=#~|y?eYv(e-`Qy?bRHIq=fMaN~fB zUa6I8Rt=)jnplP>yuS+P&PxeWpJ#1$F`iqRl|jF$WL_aZFZl@kLo&d$VJtu&w?Q0O zzuXK>6gmygq(yXJy0C1SL}T8AplK|AGNUOhzlGeK_oo|haD@)5PxF}rV+5`-w{Aag zus45t=FU*{LguJ11Sr-28EZkq;!mJO7AQGih1L4rEyUmp>B!%X0YemsrV3QFvlgt* z5kwlPzaiJ+kZ^PMd-RRbl(Y?F*m`4*UIhIuf#8q>H_M=fM*L_Op-<_r zBZagV=4B|EW+KTja?srADTZXCd3Yv%^Chfpi)cg{ED${SI>InNpRj5!euKv?=Xn92 zsS&FH(*w`qLIy$doc>RE&A5R?u zzkl1sxX|{*fLpXvIW>9d<$ePROttn3oc6R!sN{&Y+>Jr@yeQN$sFR z;w6A<2-0%UA?c8Qf;sX7>>uKRBv3Ni)E9pI{uVzX|6Bb0U)`lhLE3hK58ivfRs1}d zNjlGK0hdq0qjV@q1qI%ZFMLgcpWSY~mB^LK)4GZ^h_@H+3?dAe_a~k*;9P_d7%NEFP6+ zgV(oGr*?W(ql?6SQ~`lUsjLb%MbfC4V$)1E0Y_b|OIYxz4?O|!kRb?BGrgiH5+(>s zoqM}v*;OBfg-D1l`M6T6{K`LG+0dJ1)!??G5g(2*vlNkm%Q(MPABT$r13q?|+kL4- zf)Mi5r$sn;u41aK(K#!m+goyd$c!KPl~-&-({j#D4^7hQkV3W|&>l_b!}!z?4($OA z5IrkfuT#F&S1(`?modY&I40%gtroig{YMvF{K{>5u^I51k8RriGd${z)=5k2tG zM|&Bp5kDTfb#vfuTTd?)a=>bX=lokw^y9+2LS?kwHQIWI~pYgy7 zb?A-RKVm_vM5!9?C%qYdfRAw& zAU7`up~%g=p@}pg#b7E)BFYx3g%(J36Nw(Dij!b>cMl@CSNbrW!DBDbTD4OXk!G4x zi}JBKc8HBYx$J~31PXH+4^x|UxK~(<@I;^3pWN$E=sYma@JP|8YL`L(zI6Y#c%Q{6 z*APf`DU$S4pr#_!60BH$FGViP14iJmbrzSrOkR;f3YZa{#E7Wpd@^4E-zH8EgPc-# zKWFPvh%WbqU_%ZEt`=Q?odKHc7@SUmY{GK`?40VuL~o)bS|is$Hn=<=KGHOsEC5tB zFb|q}gGlL97NUf$G$>^1b^3E18PZ~Pm9kX%*ftnolljiEt@2#F2R5ah$zbXd%V_Ev zyDd{1o_uuoBga$fB@Fw!V5F3jIr=a-ykqrK?WWZ#a(bglI_-8pq74RK*KfQ z0~Dzus7_l;pMJYf>Bk`)`S8gF!To-BdMnVw5M-pyu+aCiC5dwNH|6fgRsIKZcF&)g zr}1|?VOp}I3)IR@m1&HX1~#wsS!4iYqES zK}4J{Ei>;e3>LB#Oly>EZkW14^@YmpbgxCDi#0RgdM${&wxR+LiX}B+iRioOB0(pDKpVEI;ND?wNx>%e|m{RsqR_{(nmQ z3ZS}@t!p4a(BKx_-CYwrcyJ5u1TO9bcXti$8sy>xcLKqKCc#~UOZYD{llKTSFEjJ~ zyNWt>tLU}*>^`TvPxtP%F`ZJQw@W0^>x;!^@?k_)9#bF$j0)S3;mH-IR5y82l|%=F z2lR8zhP?XNP-ucZZ6A+o$xOyF!w;RaLHGh57GZ|TCXhJqY~GCh)aXEV$1O&$c}La1 zjuJxkY9SM4av^Hb;i7efiYaMwI%jGy`3NdY)+mcJhF(3XEiSlU3c|jMBi|;m-c?~T z+x0_@;SxcoY=(6xNgO$bBt~Pj8`-<1S|;Bsjrzw3@zSjt^JC3X3*$HI79i~!$RmTz zsblZsLYs7L$|=1CB$8qS!tXrWs!F@BVuh?kN(PvE5Av-*r^iYu+L^j^m9JG^#=m>@ z=1soa)H*w6KzoR$B8mBCXoU;f5^bVuwQ3~2LKg!yxomG1#XPmn(?YH@E~_ED+W6mxs%x{%Z<$pW`~ON1~2XjP5v(0{C{+6Dm$00tsd3w=f=ZENy zOgb-=f}|Hb*LQ$YdWg<(u7x3`PKF)B7ZfZ6;1FrNM63 z?O6tE%EiU@6%rVuwIQjvGtOofZBGZT1Sh(xLIYt9c4VI8`!=UJd2BfLjdRI#SbVAX ziT(f*RI^T!IL5Ac>ql7uduF#nuCRJ1)2bdvAyMxp-5^Ww5p#X{rb5)(X|fEhDHHW{ zw(Lfc$g;+Q`B0AiPGtmK%*aWfQQ$d!*U<|-@n2HZvCWSiw^I>#vh+LyC;aaVWGbmkENr z&kl*8o^_FW$T?rDYLO1Pyi%>@&kJKQoH2E0F`HjcN}Zlnx1ddoDA>G4Xu_jyp6vuT zPvC}pT&Owx+qB`zUeR|4G;OH(<<^_bzkjln0k40t`PQxc$7h(T8Ya~X+9gDc8Z9{Z z&y0RAU}#_kQGrM;__MK9vwIwK^aoqFhk~dK!ARf1zJqHMxF2?7-8|~yoO@_~Ed;_wvT%Vs{9RK$6uUQ|&@#6vyBsFK9eZW1Ft#D2)VpQRwpR(;x^ zdoTgMqfF9iBl%{`QDv7B0~8{8`8k`C4@cbZAXBu00v#kYl!#_Wug{)2PwD5cNp?K^ z9+|d-4z|gZ!L{57>!Ogfbzchm>J1)Y%?NThxIS8frAw@z>Zb9v%3_3~F@<=LG%r*U zaTov}{{^z~SeX!qgSYow`_5)ij*QtGp4lvF`aIGQ>@3ZTkDmsl#@^5*NGjOuu82}o zzLF~Q9SW+mP=>88%eSA1W4_W7-Q>rdq^?t=m6}^tDPaBRGFLg%ak93W!kOp#EO{6& zP%}Iff5HZQ9VW$~+9r=|Quj#z*=YwcnssS~9|ub2>v|u1JXP47vZ1&L1O%Z1DsOrDfSIMHU{VT>&>H=9}G3i@2rP+rx@eU@uE8rJNec zij~#FmuEBj03F1~ct@C@$>y)zB+tVyjV3*n`mtAhIM0$58vM9jOQC}JJOem|EpwqeMuYPxu3sv}oMS?S#o6GGK@8PN59)m&K4Dc&X% z(;XL_kKeYkafzS3Wn5DD>Yiw{LACy_#jY4op(>9q>>-*9@C0M+=b#bknAWZ37^(Ij zq>H%<@>o4a#6NydoF{_M4i4zB_KG)#PSye9bk0Ou8h%1Dtl7Q_y#7*n%g)?m>xF~( zjqvOwC;*qvN_3(*a+w2|ao0D?@okOvg8JskUw(l7n`0fncglavwKd?~l_ryKJ^Ky! zKCHkIC-o7%fFvPa$)YNh022lakMar^dgL=t#@XLyNHHw!b?%WlM)R@^!)I!smZL@k zBi=6wE5)2v&!UNV(&)oOYW(6Qa!nUjDKKBf-~Da=#^HE4(@mWk)LPvhyN3i4goB$3K8iV7uh zsv+a?#c4&NWeK(3AH;ETrMOIFgu{_@%XRwCZ;L=^8Ts)hix4Pf3yJRQ<8xb^CkdmC z?c_gB)XmRsk`9ch#tx4*hO=#qS7={~Vb4*tTf<5P%*-XMfUUYkI9T1cEF;ObfxxI-yNuA=I$dCtz3ey znVkctYD*`fUuZ(57+^B*R=Q}~{1z#2!ca?)+YsRQb+lt^LmEvZt_`=j^wqig+wz@n@ z`LIMQJT3bxMzuKg8EGBU+Q-6cs5(@5W?N>JpZL{$9VF)veF`L5%DSYTNQEypW%6$u zm_~}T{HeHj1bAlKl8ii92l9~$dm=UM21kLemA&b$;^!wB7#IKWGnF$TVq!!lBlG4 z{?Rjz?P(uvid+|i$VH?`-C&Gcb3{(~Vpg`w+O);Wk1|Mrjxrht0GfRUnZqz2MhrXa zqgVC9nemD5)H$to=~hp)c=l9?#~Z_7i~=U-`FZxb-|TR9@YCxx;Zjo-WpMNOn2)z) zFPGGVl%3N$f`gp$gPnWC+f4(rmts%fidpo^BJx72zAd7|*Xi{2VXmbOm)1`w^tm9% znM=0Fg4bDxH5PxPEm{P3#A(mxqlM7SIARP?|2&+c7qmU8kP&iApzL|F>Dz)Ixp_`O zP%xrP1M6@oYhgo$ZWwrAsYLa4 z|I;DAvJxno9HkQrhLPQk-8}=De{9U3U%)dJ$955?_AOms!9gia%)0E$Mp}$+0er@< zq7J&_SzvShM?e%V?_zUu{niL@gt5UFOjFJUJ}L?$f%eU%jUSoujr{^O=?=^{19`ON zlRIy8Uo_nqcPa6@yyz`CM?pMJ^^SN^Fqtt`GQ8Q#W4kE7`V9^LT}j#pMChl!j#g#J zr-=CCaV%xyFeQ9SK+mG(cTwW*)xa(eK;_Z(jy)woZp~> zA(4}-&VH+TEeLzPTqw&FOoK(ZjD~m{KW05fiGLe@E3Z2`rLukIDahE*`u!ubU)9`o zn^-lyht#E#-dt~S>}4y$-mSbR8{T@}22cn^refuQ08NjLOv?JiEWjyOnzk<^R5%gO zhUH_B{oz~u#IYwVnUg8?3P*#DqD8#X;%q%HY**=I>>-S|!X*-!x1{^l#OnR56O>iD zc;i;KS+t$koh)E3)w0OjWJl_aW2;xF=9D9Kr>)(5}4FqUbk# zI#$N8o0w;IChL49m9CJTzoC!|u{Ljd%ECgBOf$}&jA^$(V#P#~)`&g`H8E{uv52pp zwto`xUL-L&WTAVREEm$0g_gYPL(^vHq(*t1WCH_6alhkeW&GCZ3hL)|{O-jiFOBrF z!EW=Jej|dqQitT6!B-7&io2K)WIm~Q)v@yq%U|VpV+I?{y0@Yd%n8~-NuuM*pM~KA z85YB};IS~M(c<}4Hxx>qRK0cdl&e?t253N%vefkgds>Ubn8X}j6Vpgs>a#nFq$osY z1ZRwLqFv=+BTb=i%D2Wv>_yE0z}+niZ4?rE|*a3d7^kndWGwnFqt+iZ(7+aln<}jzbAQ(#Z2SS}3S$%Bd}^ zc9ghB%O)Z_mTZMRC&H#)I#fiLuIkGa^`4e~9oM5zKPx?zjkC&Xy0~r{;S?FS%c7w< zWbMpzc(xSw?9tGxG~_l}Acq}zjt5ClaB7-!vzqnlrX;}$#+PyQ9oU)_DfePh2E1<7 ztok6g6K^k^DuHR*iJ?jw?bs_whk|bx`dxu^nC6#e{1*m~z1eq7m}Cf$*^Eua(oi_I zAL+3opNhJteu&mWQ@kQWPucmiP)4|nFG`b2tpC;h{-PI@`+h?9v=9mn|0R-n8#t=+Z*FD(c5 zjj79Jxkgck*DV=wpFgRZuwr%}KTm+dx?RT@aUHJdaX-ODh~gByS?WGx&czAkvkg;x zrf92l8$Or_zOwJVwh>5rB`Q5_5}ef6DjS*$x30nZbuO3dijS*wvNEqTY5p1_A0gWr znH<(Qvb!os14|R)n2Ost>jS2;d1zyLHu`Svm|&dZD+PpP{Bh>U&`Md;gRl64q;>{8MJJM$?UNUd`aC>BiLe>*{ zJY15->yW+<3rLgYeTruFDtk1ovU<$(_y7#HgUq>)r0{^}Xbth}V#6?%5jeFYt;SG^ z3qF)=uWRU;Jj)Q}cpY8-H+l_n$2$6{ZR?&*IGr{>ek!69ZH0ZoJ*Ji+ezzlJ^%qL3 zO5a`6gwFw(moEzqxh=yJ9M1FTn!eo&qD#y5AZXErHs%22?A+JmS&GIolml!)rZTnUDM3YgzYfT#;OXn)`PWv3Ta z!-i|-Wojv*k&bC}_JJDjiAK(Ba|YZgUI{f}TdEOFT2+}nPmttytw7j%@bQZDV1vvj z^rp{gRkCDmYJHGrE1~e~AE!-&6B6`7UxVQuvRrfdFkGX8H~SNP_X4EodVd;lXd^>eV1jN+Tt4}Rsn)R0LxBz0c=NXU|pUe!MQQFkGBWbR3&(jLm z%RSLc#p}5_dO{GD=DEFr=Fc% z85CBF>*t!6ugI?soX(*JNxBp+-DdZ4X0LldiK}+WWGvXV(C(Ht|!3$psR=&c*HIM=BmX;pRIpz@Ale{9dhGe(U2|Giv;# zOc|;?p67J=Q(kamB*aus=|XP|m{jN^6@V*Bpm?ye56Njh#vyJqE=DweC;?Rv7faX~ zde03n^I~0B2vUmr;w^X37tVxUK?4}ifsSH5_kpKZIzpYu0;Kv}SBGfI2AKNp+VN#z`nI{UNDRbo-wqa4NEls zICRJpu)??cj^*WcZ^MAv+;bDbh~gpN$1Cor<{Y2oyIDws^JsfW^5AL$azE(T0p&pP z1Mv~6Q44R&RHoH95&OuGx2srIr<@zYJTOMKiVs;Bx3py89I87LOb@%mr`0)#;7_~Z zzcZj8?w=)>%5@HoCHE_&hnu(n_yQ-L(~VjpjjkbT7e)Dk5??fApg(d>vwLRJ-x{um z*Nt?DqTSxh_MIyogY!vf1mU1`Gld-&L)*43f6dilz`Q@HEz;+>MDDYv9u!s;WXeao zUq=TaL$P*IFgJzrGc>j1dDOd zed+=ZBo?w4mr$2)Ya}?vedDopomhW1`#P<%YOJ_j=WwClX0xJH-f@s?^tmzs_j7t!k zK@j^zS0Q|mM4tVP5Ram$VbS6|YDY&y?Q1r1joe9dj08#CM{RSMTU}(RCh`hp_Rkl- zGd|Cv~G@F{DLhCizAm9AN!^{rNs8hu!G@8RpnGx7e`-+K$ffN<0qjR zGq^$dj_Tv!n*?zOSyk5skI7JVKJ)3jysnjIu-@VSzQiP8r6MzudCU=~?v-U8yzo^7 zGf~SUTvEp+S*!X9uX!sq=o}lH;r{pzk~M*VA(uyQ`3C8!{C;)&6)95fv(cK!%Cuz$ z_Zal57H6kPN>25KNiI6z6F)jzEkh#%OqU#-__Xzy)KyH};81#N6OfX$$IXWzOn`Q& z4f$Z1t>)8&8PcYfEwY5UadU1yg+U*(1m2ZlHoC-!2?gB!!fLhmTl))D@dhvkx#+Yj z1O=LV{(T%{^IeCuFK>%QR!VZ4GnO5tK8a+thWE zg4VytZrwcS?7^ zuZfhYnB8dwd%VLO?DK7pV5Wi<(`~DYqOXn8#jUIL^)12*Dbhk4GmL_E2`WX&iT16o zk(t|hok(Y|v-wzn?4x34T)|+SfZP>fiq!><*%vnxGN~ypST-FtC+@TPv*vYv@iU!_ z@2gf|PrgQ?Ktf*9^CnJ(x*CtZVB8!OBfg0%!wL;Z8(tYYre0vcnPGlyCc$V(Ipl*P z_(J!a=o@vp^%Efme!K74(Ke7A>Y}|sxV+JL^aYa{~m%5#$$+R1? zGaQhZTTX!#s#=Xtpegqero$RNt&`4xn3g$)=y*;=N=Qai)}~`xtxI_N*#MMCIq#HFifT zz(-*m;pVH&+4bixL&Bbg)W5FN^bH87pAHp)zPkWNMfTFqS=l~AC$3FX3kQUSh_C?-ZftyClgM)o_D7cX$RGlEYblux0jv5 zTr|i-I3@ZPCGheCl~BGhImF)K4!9@?pC(gi3ozX=a!|r1)LFxy_8c&wY0<^{2cm|P zv6Y`QktY*;I)IUd5y3ne1CqpVanlY45z8hf4&$EUBnucDj16pDa4&GI&TArYhf*xh zdj>*%APH8(h~c>o@l#%T>R$e>rwVx_WUB|~V`p^JHsg*y12lzj&zF}w6W09HwB2yb z%Q~`es&(;7#*DUC_w-Dmt7|$*?TA_m;zB+-u{2;Bg{O}nV7G_@7~<)Bv8fH^G$XG8$(&{A zwXJK5LRK%M34(t$&NI~MHT{UQ9qN-V_yn|%PqC81EIiSzmMM=2zb`mIwiP_b)x+2M z7Gd`83h79j#SItpQ}luuf2uOU`my_rY5T{6P#BNlb%h%<#MZb=m@y5aW;#o1^2Z)SWo+b`y0gV^iRcZtz5!-05vF z7wNo=hc6h4hc&s@uL^jqRvD6thVYtbErDK9k!;+a0xoE0WL7zLixjn5;$fXvT=O3I zT6jI&^A7k6R{&5#lVjz#8%_RiAa2{di{`kx79K+j72$H(!ass|B%@l%KeeKchYLe_ z>!(JC2fxsv>XVen+Y42GeYPxMWqm`6F$(E<6^s|g(slNk!lL*6v^W2>f6hh^mE$s= z3D$)}{V5(Qm&A6bp%2Q}*GZ5Qrf}n7*Hr51?bJOyA-?B4vg6y_EX<*-e20h{=0Mxs zbuQGZ$fLyO5v$nQ&^kuH+mNq9O#MWSfThtH|0q1i!NrWj^S}_P;Q1OkYLW6U^?_7G zx2wg?CULj7))QU(n{$0JE%1t2dWrMi2g-Os{v|8^wK{@qlj%+1b^?NI z$}l2tjp0g>K3O+p%yK<9!XqmQ?E9>z&(|^Pi~aSRwI5x$jaA62GFz9%fmO3t3a>cq zK8Xbv=5Ps~4mKN5+Eqw12(!PEyedFXv~VLxMB~HwT1Vfo51pQ#D8e$e4pFZ{&RC2P z5gTIzl{3!&(tor^BwZfR8j4k{7Rq#`riKXP2O-Bh66#WWK2w=z;iD9GLl+3 zpHIaI4#lQ&S-xBK8PiQ%dwOh?%BO~DCo06pN7<^dnZCN@NzY{_Z1>rrB0U|nC&+!2 z2y!oBcTd2;@lzyk(B=TkyZ)zy0deK05*Q0zk+o$@nun`VI1Er7pjq>8V zNmlW{p7S^Btgb(TA}jL(uR>`0w8gHP^T~Sh5Tkip^spk4SBAhC{TZU}_Z)UJw-}zm zPq{KBm!k)?P{`-(9?LFt&YN4s%SIZ-9lJ!Ws~B%exHOeVFk3~}HewnnH(d)qkLQ_d z6h>O)pEE{vbOVw}E+jdYC^wM+AAhaI(YAibUc@B#_mDss0Ji&BK{WG`4 zOk>vSNq(Bq2IB@s>>Rxm6Wv?h;ZXkpb1l8u|+_qXWdC*jjcPCixq;!%BVPSp#hP zqo`%cNf&YoQXHC$D=D45RiT|5ngPlh?0T~?lUf*O)){K@*Kbh?3RW1j9-T?%lDk@y z4+~?wKI%Y!-=O|_IuKz|=)F;V7ps=5@g)RrE;;tvM$gUhG>jHcw2Hr@fS+k^Zr~>G z^JvPrZc}_&d_kEsqAEMTMJw!!CBw)u&ZVzmq+ZworuaE&TT>$pYsd9|g9O^0orAe8 z221?Va!l1|Y5X1Y?{G7rt1sX#qFA^?RLG^VjoxPf63;AS=_mVDfGJKg73L zsGdnTUD40y(>S##2l|W2Cy!H(@@5KBa(#gs`vlz}Y~$ot5VsqPQ{{YtjYFvIumZzt zA{CcxZLJR|4#{j7k~Tu*jkwz8QA|5G1$Cl895R`Zyp;irp1{KN){kB30O8P1W5;@bG znvX74roeMmQlUi=v9Y%(wl$ZC#9tKNFpvi3!C}f1m6Ct|l2g%psc{TJp)@yu)*e2> z((p0Fg*8gJ!|3WZke9;Z{8}&NRkv7iP=#_y-F}x^y?2m%-D_aj^)f04%mneyjo_;) z6qc_Zu$q37d~X``*eP~Q>I2gg%rrV8v=kDfpp$=%Vj}hF)^dsSWygoN(A$g*E=Do6FX?&(@F#7pbiJ`;c0c@Ul zDqW_90Wm#5f2L<(Lf3)3TeXtI7nhYwRm(F;*r_G6K@OPW4H(Y3O5SjUzBC}u3d|eQ8*8d@?;zUPE+i#QNMn=r(ap?2SH@vo*m z3HJ%XuG_S6;QbWy-l%qU;8x;>z>4pMW7>R}J%QLf%@1BY(4f_1iixd-6GlO7Vp*yU zp{VU^3?s?90i=!#>H`lxT!q8rk>W_$2~kbpz7eV{3wR|8E=8**5?qn8#n`*(bt1xRQrdGxyx2y%B$qmw#>ZV$c7%cO#%JM1lY$Y0q?Yuo> ze9KdJoiM)RH*SB%^;TAdX-zEjA7@%y=!0=Zg%iWK7jVI9b&Dk}0$Af&08KHo+ zOwDhFvA(E|ER%a^cdh@^wLUlmIv6?_3=BvX8jKk92L=Y}7Jf5OGMfh` zBdR1wFCi-i5@`9km{isRb0O%TX+f~)KNaEz{rXQa89`YIF;EN&gN)cigu6mNh>?Cm zAO&Im2flv6D{jwm+y<%WsPe4!89n~KN|7}Cb{Z;XweER73r}Qp2 zz}WP4j}U0&(uD&9yGy6`!+_v-S(yG*iytsTR#x_Rc>=6u^vnRDnf1gP{#2>`ffrAC% zTZ5WQ@hAK;P;>kX{D)mIXe4%a5p=LO1xXH@8T?mz7Q@d)$3pL{{B!2{-v70L*o1AO+|n5beiw~ zk@(>m?T3{2k2c;NWc^`4@P&Z?BjxXJ@;x1qhn)9Mn*IFdt_J-dIqx5#d`NfyfX~m( zIS~5)MfZ2Uy?_4W`47i}u0ZgPh<{D|w_d#;D}Q&U$Q-G}xM1A@1f{#%A$jh6Qp&0hQ<0bPOM z-{1Wm&p%%#eb_?x7i;bol EfAhh=DF6Tf literal 0 HcmV?d00001 diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/maven-wrapper.properties" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/maven-wrapper.properties" new file mode 100644 index 0000000..642d572 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/maven-wrapper.properties" @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" new file mode 100644 index 0000000..ab247b0 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" @@ -0,0 +1,77 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.5.0-SNAPSHOT + + + com.zgh + springboot-epidemic + 0.0.1-SNAPSHOT + springboot-epidemic + Demo project for Spring Boot + + + 1.8 + + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + org.projectlombok + lombok + true + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + com.google.code.gson + gson + 2.8.6 + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/SpringbootEpidemicApplication.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/SpringbootEpidemicApplication.java" new file mode 100644 index 0000000..80fcc6f --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/SpringbootEpidemicApplication.java" @@ -0,0 +1,13 @@ +package com.zgh; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SpringbootEpidemicApplication { + + public static void main(String[] args) { + SpringApplication.run(SpringbootEpidemicApplication.class, args); + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/DataBean.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/DataBean.java" new file mode 100644 index 0000000..1835c7f --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/DataBean.java" @@ -0,0 +1,20 @@ +package com.zgh.bean; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class DataBean { + + private String name; + + private int nowConfirm; + + private int confirm; + + private int dead; + + private int heal; + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/DataController.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/DataController.java" new file mode 100644 index 0000000..41dfe05 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/DataController.java" @@ -0,0 +1,27 @@ +package com.zgh.controller; + +import com.zgh.bean.DataBean; +import com.zgh.service.DataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.List; + +@Controller +public class DataController { + + @Autowired + DataService dataService; + + @GetMapping("/") + public String list(Model model) { + + List dataList = dataService.list(); + model.addAttribute("dataList", dataList); + return "list"; + + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" new file mode 100644 index 0000000..f5338b2 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" @@ -0,0 +1,77 @@ +package com.zgh.handler; + +import com.google.gson.Gson; +import com.zgh.bean.DataBean; +import com.zgh.util.HttpConnUtil; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class DataHandler { + + // 新型冠状病毒肺炎 - 疫情实时追踪 from 腾讯新闻 + // 文件格式: JSON + public static String urlStr = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"; + + public static List getData() { + + // 从文本中读取 数据 + // StringBuilder builder = new StringBuilder(); + // FileReader reader = null; + // try { + // reader = new FileReader("tmp.json"); + // char[] cBuf = new char[1024]; + // + // int offset = 0; + // while ((offset = reader.read(cBuf)) > 0) { + // builder.append(new String(cBuf, 0, offset)); + // } + // } catch (IOException e){ + // e.printStackTrace(); + // } finally { + // try { + // if (reader != null) { + // reader.close(); + // } + // } catch (IOException e) { + // e.printStackTrace(); + // } + // } + + String str = HttpConnUtil.doGet(urlStr); + + Gson gson = new Gson(); + Map map = gson.fromJson(str, Map.class); + + String dataStr = (String) map.get("data"); + Map data = gson.fromJson(dataStr, Map.class); + + ArrayList areaList = (ArrayList) data.get("areaTree"); + Map dataMap = (Map) areaList.get(0); + ArrayList childrenList = (ArrayList) dataMap.get("children"); + + ArrayList result = new ArrayList<>(); + for (int i = 0; i < childrenList.size(); i++) { + + Map temp = (Map) childrenList.get(i); + + String name = (String) temp.get("name"); + + Map totalMap = (Map) temp.get("total"); + + double nowConfirm = (double) totalMap.get("nowConfirm"); + double confirm = (double) totalMap.get("confirm"); + double dead = (double) totalMap.get("dead"); + double heal = (double) totalMap.get("heal"); + + DataBean dataBean = new DataBean(name, (int) nowConfirm, (int) confirm, (int) dead, (int) heal); + result.add(dataBean); + + } + + return result; + + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataService.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataService.java" new file mode 100644 index 0000000..00a4378 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataService.java" @@ -0,0 +1,11 @@ +package com.zgh.service; + +import com.zgh.bean.DataBean; + +import java.util.List; + +public interface DataService { + + List list(); + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" new file mode 100644 index 0000000..db75361 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" @@ -0,0 +1,18 @@ +package com.zgh.service; + +import com.zgh.handler.DataHandler; +import com.zgh.bean.DataBean; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class DataServiceImpl implements DataService { + + + @Override + public List list() { + return DataHandler.getData(); + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpConnUtil.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpConnUtil.java" new file mode 100644 index 0000000..ef7eb1a --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpConnUtil.java" @@ -0,0 +1,73 @@ +package com.zgh.util; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +/** + * Java 实现 http 请求 + */ +public class HttpConnUtil { + + public static String doGet(String urlStr) { + + StringBuilder result = new StringBuilder(); + + HttpURLConnection conn = null; + InputStream inputStream = null; + BufferedReader reader = null; + + try { + URL url = new URL(urlStr); + conn = (HttpURLConnection) url.openConnection(); + + conn.setRequestMethod("GET"); + + // 1.连接时间 + // 含义: 发送请求的主机 开始连接到 url 所对应的远程主机的时间 + // 影响因素: 距离 宽带 + // 2.读取时间 + // 含义: 建立连接后 获取数据所需要的时间 + // 影响因素: 数据大小 + conn.setConnectTimeout(15000); // 15秒 + conn.setReadTimeout(60000); // 60秒 + + conn.setRequestProperty("Accept", "application/json"); + + // 发送请求 + conn.connect(); + + if (conn.getResponseCode() == 200) { + inputStream = conn.getInputStream(); + reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); + String line; + while ((line = reader.readLine()) != null) { + result.append(line); + } + } + + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (reader != null) { + reader.close(); + } + if (inputStream != null) { + inputStream.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + if (conn != null) { + conn.disconnect(); + } + } + + return result.toString(); + } + + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.properties" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.properties" new file mode 100644 index 0000000..8b13789 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.properties" @@ -0,0 +1 @@ + diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/banner.txt" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/banner.txt" new file mode 100644 index 0000000..890560e --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/banner.txt" @@ -0,0 +1,6 @@ +.__ .__ .__ .__ +| |__ ____ | | | | ____ ________ ____ | |__ +| | \_/ __ \| | | | / _ \ \___ / / ___\| | \ +| Y \ ___/| |_| |_( <_> ) / / / /_/ > Y \ +|___| /\___ >____/____/\____/ /_____ \\___ /|___| / + \/ \/ \/_____/ \/ \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/bootstrap.css" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/bootstrap.css" new file mode 100644 index 0000000..b37d41d --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/bootstrap.css" @@ -0,0 +1,8201 @@ +/*! + * Bootstrap v3.3.6 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden], +template { + display: none; +} + +a { + background-color: transparent; +} + +a:active, +a:hover { + outline: 0; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +h1 { + margin: .67em 0; + font-size: 2em; +} + +mark { + color: #000; + background: #ff0; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -.5em; +} + +sub { + bottom: -.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 1em 40px; +} + +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +pre { + overflow: auto; +} + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +button, +input, +optgroup, +select, +textarea { + margin: 0; + font: inherit; + color: inherit; +} + +button { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +input { + line-height: normal; +} + +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} + +legend { + padding: 0; + border: 0; +} + +textarea { + overflow: auto; +} + +optgroup { + font-weight: bold; +} + +table { + border-spacing: 0; + border-collapse: collapse; +} + +td, +th { + padding: 0; +} + +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + + a, + a:visited { + text-decoration: underline; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + + pre, + blockquote { + border: 1px solid #999; + + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + tr, + img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + .navbar { + display: none; + } + + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + + .label { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + } + + .table td, + .table th { + background-color: #fff !important; + } + + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +@font-face { + font-family: 'Glyphicons Halflings'; + + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.glyphicon-asterisk:before { + content: "\002a"; +} + +.glyphicon-plus:before { + content: "\002b"; +} + +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} + +.glyphicon-minus:before { + content: "\2212"; +} + +.glyphicon-cloud:before { + content: "\2601"; +} + +.glyphicon-envelope:before { + content: "\2709"; +} + +.glyphicon-pencil:before { + content: "\270f"; +} + +.glyphicon-glass:before { + content: "\e001"; +} + +.glyphicon-music:before { + content: "\e002"; +} + +.glyphicon-search:before { + content: "\e003"; +} + +.glyphicon-heart:before { + content: "\e005"; +} + +.glyphicon-star:before { + content: "\e006"; +} + +.glyphicon-star-empty:before { + content: "\e007"; +} + +.glyphicon-user:before { + content: "\e008"; +} + +.glyphicon-film:before { + content: "\e009"; +} + +.glyphicon-th-large:before { + content: "\e010"; +} + +.glyphicon-th:before { + content: "\e011"; +} + +.glyphicon-th-list:before { + content: "\e012"; +} + +.glyphicon-ok:before { + content: "\e013"; +} + +.glyphicon-remove:before { + content: "\e014"; +} + +.glyphicon-zoom-in:before { + content: "\e015"; +} + +.glyphicon-zoom-out:before { + content: "\e016"; +} + +.glyphicon-off:before { + content: "\e017"; +} + +.glyphicon-signal:before { + content: "\e018"; +} + +.glyphicon-cog:before { + content: "\e019"; +} + +.glyphicon-trash:before { + content: "\e020"; +} + +.glyphicon-home:before { + content: "\e021"; +} + +.glyphicon-file:before { + content: "\e022"; +} + +.glyphicon-time:before { + content: "\e023"; +} + +.glyphicon-road:before { + content: "\e024"; +} + +.glyphicon-download-alt:before { + content: "\e025"; +} + +.glyphicon-download:before { + content: "\e026"; +} + +.glyphicon-upload:before { + content: "\e027"; +} + +.glyphicon-inbox:before { + content: "\e028"; +} + +.glyphicon-play-circle:before { + content: "\e029"; +} + +.glyphicon-repeat:before { + content: "\e030"; +} + +.glyphicon-refresh:before { + content: "\e031"; +} + +.glyphicon-list-alt:before { + content: "\e032"; +} + +.glyphicon-lock:before { + content: "\e033"; +} + +.glyphicon-flag:before { + content: "\e034"; +} + +.glyphicon-headphones:before { + content: "\e035"; +} + +.glyphicon-volume-off:before { + content: "\e036"; +} + +.glyphicon-volume-down:before { + content: "\e037"; +} + +.glyphicon-volume-up:before { + content: "\e038"; +} + +.glyphicon-qrcode:before { + content: "\e039"; +} + +.glyphicon-barcode:before { + content: "\e040"; +} + +.glyphicon-tag:before { + content: "\e041"; +} + +.glyphicon-tags:before { + content: "\e042"; +} + +.glyphicon-book:before { + content: "\e043"; +} + +.glyphicon-bookmark:before { + content: "\e044"; +} + +.glyphicon-print:before { + content: "\e045"; +} + +.glyphicon-camera:before { + content: "\e046"; +} + +.glyphicon-font:before { + content: "\e047"; +} + +.glyphicon-bold:before { + content: "\e048"; +} + +.glyphicon-italic:before { + content: "\e049"; +} + +.glyphicon-text-height:before { + content: "\e050"; +} + +.glyphicon-text-width:before { + content: "\e051"; +} + +.glyphicon-align-left:before { + content: "\e052"; +} + +.glyphicon-align-center:before { + content: "\e053"; +} + +.glyphicon-align-right:before { + content: "\e054"; +} + +.glyphicon-align-justify:before { + content: "\e055"; +} + +.glyphicon-list:before { + content: "\e056"; +} + +.glyphicon-indent-left:before { + content: "\e057"; +} + +.glyphicon-indent-right:before { + content: "\e058"; +} + +.glyphicon-facetime-video:before { + content: "\e059"; +} + +.glyphicon-picture:before { + content: "\e060"; +} + +.glyphicon-map-marker:before { + content: "\e062"; +} + +.glyphicon-adjust:before { + content: "\e063"; +} + +.glyphicon-tint:before { + content: "\e064"; +} + +.glyphicon-edit:before { + content: "\e065"; +} + +.glyphicon-share:before { + content: "\e066"; +} + +.glyphicon-check:before { + content: "\e067"; +} + +.glyphicon-move:before { + content: "\e068"; +} + +.glyphicon-step-backward:before { + content: "\e069"; +} + +.glyphicon-fast-backward:before { + content: "\e070"; +} + +.glyphicon-backward:before { + content: "\e071"; +} + +.glyphicon-play:before { + content: "\e072"; +} + +.glyphicon-pause:before { + content: "\e073"; +} + +.glyphicon-stop:before { + content: "\e074"; +} + +.glyphicon-forward:before { + content: "\e075"; +} + +.glyphicon-fast-forward:before { + content: "\e076"; +} + +.glyphicon-step-forward:before { + content: "\e077"; +} + +.glyphicon-eject:before { + content: "\e078"; +} + +.glyphicon-chevron-left:before { + content: "\e079"; +} + +.glyphicon-chevron-right:before { + content: "\e080"; +} + +.glyphicon-plus-sign:before { + content: "\e081"; +} + +.glyphicon-minus-sign:before { + content: "\e082"; +} + +.glyphicon-remove-sign:before { + content: "\e083"; +} + +.glyphicon-ok-sign:before { + content: "\e084"; +} + +.glyphicon-question-sign:before { + content: "\e085"; +} + +.glyphicon-info-sign:before { + content: "\e086"; +} + +.glyphicon-screenshot:before { + content: "\e087"; +} + +.glyphicon-remove-circle:before { + content: "\e088"; +} + +.glyphicon-ok-circle:before { + content: "\e089"; +} + +.glyphicon-ban-circle:before { + content: "\e090"; +} + +.glyphicon-arrow-left:before { + content: "\e091"; +} + +.glyphicon-arrow-right:before { + content: "\e092"; +} + +.glyphicon-arrow-up:before { + content: "\e093"; +} + +.glyphicon-arrow-down:before { + content: "\e094"; +} + +.glyphicon-share-alt:before { + content: "\e095"; +} + +.glyphicon-resize-full:before { + content: "\e096"; +} + +.glyphicon-resize-small:before { + content: "\e097"; +} + +.glyphicon-exclamation-sign:before { + content: "\e101"; +} + +.glyphicon-gift:before { + content: "\e102"; +} + +.glyphicon-leaf:before { + content: "\e103"; +} + +.glyphicon-fire:before { + content: "\e104"; +} + +.glyphicon-eye-open:before { + content: "\e105"; +} + +.glyphicon-eye-close:before { + content: "\e106"; +} + +.glyphicon-warning-sign:before { + content: "\e107"; +} + +.glyphicon-plane:before { + content: "\e108"; +} + +.glyphicon-calendar:before { + content: "\e109"; +} + +.glyphicon-random:before { + content: "\e110"; +} + +.glyphicon-comment:before { + content: "\e111"; +} + +.glyphicon-magnet:before { + content: "\e112"; +} + +.glyphicon-chevron-up:before { + content: "\e113"; +} + +.glyphicon-chevron-down:before { + content: "\e114"; +} + +.glyphicon-retweet:before { + content: "\e115"; +} + +.glyphicon-shopping-cart:before { + content: "\e116"; +} + +.glyphicon-folder-close:before { + content: "\e117"; +} + +.glyphicon-folder-open:before { + content: "\e118"; +} + +.glyphicon-resize-vertical:before { + content: "\e119"; +} + +.glyphicon-resize-horizontal:before { + content: "\e120"; +} + +.glyphicon-hdd:before { + content: "\e121"; +} + +.glyphicon-bullhorn:before { + content: "\e122"; +} + +.glyphicon-bell:before { + content: "\e123"; +} + +.glyphicon-certificate:before { + content: "\e124"; +} + +.glyphicon-thumbs-up:before { + content: "\e125"; +} + +.glyphicon-thumbs-down:before { + content: "\e126"; +} + +.glyphicon-hand-right:before { + content: "\e127"; +} + +.glyphicon-hand-left:before { + content: "\e128"; +} + +.glyphicon-hand-up:before { + content: "\e129"; +} + +.glyphicon-hand-down:before { + content: "\e130"; +} + +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} + +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} + +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} + +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} + +.glyphicon-globe:before { + content: "\e135"; +} + +.glyphicon-wrench:before { + content: "\e136"; +} + +.glyphicon-tasks:before { + content: "\e137"; +} + +.glyphicon-filter:before { + content: "\e138"; +} + +.glyphicon-briefcase:before { + content: "\e139"; +} + +.glyphicon-fullscreen:before { + content: "\e140"; +} + +.glyphicon-dashboard:before { + content: "\e141"; +} + +.glyphicon-paperclip:before { + content: "\e142"; +} + +.glyphicon-heart-empty:before { + content: "\e143"; +} + +.glyphicon-link:before { + content: "\e144"; +} + +.glyphicon-phone:before { + content: "\e145"; +} + +.glyphicon-pushpin:before { + content: "\e146"; +} + +.glyphicon-usd:before { + content: "\e148"; +} + +.glyphicon-gbp:before { + content: "\e149"; +} + +.glyphicon-sort:before { + content: "\e150"; +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} + +.glyphicon-sort-by-order:before { + content: "\e153"; +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} + +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} + +.glyphicon-unchecked:before { + content: "\e157"; +} + +.glyphicon-expand:before { + content: "\e158"; +} + +.glyphicon-collapse-down:before { + content: "\e159"; +} + +.glyphicon-collapse-up:before { + content: "\e160"; +} + +.glyphicon-log-in:before { + content: "\e161"; +} + +.glyphicon-flash:before { + content: "\e162"; +} + +.glyphicon-log-out:before { + content: "\e163"; +} + +.glyphicon-new-window:before { + content: "\e164"; +} + +.glyphicon-record:before { + content: "\e165"; +} + +.glyphicon-save:before { + content: "\e166"; +} + +.glyphicon-open:before { + content: "\e167"; +} + +.glyphicon-saved:before { + content: "\e168"; +} + +.glyphicon-import:before { + content: "\e169"; +} + +.glyphicon-export:before { + content: "\e170"; +} + +.glyphicon-send:before { + content: "\e171"; +} + +.glyphicon-floppy-disk:before { + content: "\e172"; +} + +.glyphicon-floppy-saved:before { + content: "\e173"; +} + +.glyphicon-floppy-remove:before { + content: "\e174"; +} + +.glyphicon-floppy-save:before { + content: "\e175"; +} + +.glyphicon-floppy-open:before { + content: "\e176"; +} + +.glyphicon-credit-card:before { + content: "\e177"; +} + +.glyphicon-transfer:before { + content: "\e178"; +} + +.glyphicon-cutlery:before { + content: "\e179"; +} + +.glyphicon-header:before { + content: "\e180"; +} + +.glyphicon-compressed:before { + content: "\e181"; +} + +.glyphicon-earphone:before { + content: "\e182"; +} + +.glyphicon-phone-alt:before { + content: "\e183"; +} + +.glyphicon-tower:before { + content: "\e184"; +} + +.glyphicon-stats:before { + content: "\e185"; +} + +.glyphicon-sd-video:before { + content: "\e186"; +} + +.glyphicon-hd-video:before { + content: "\e187"; +} + +.glyphicon-subtitles:before { + content: "\e188"; +} + +.glyphicon-sound-stereo:before { + content: "\e189"; +} + +.glyphicon-sound-dolby:before { + content: "\e190"; +} + +.glyphicon-sound-5-1:before { + content: "\e191"; +} + +.glyphicon-sound-6-1:before { + content: "\e192"; +} + +.glyphicon-sound-7-1:before { + content: "\e193"; +} + +.glyphicon-copyright-mark:before { + content: "\e194"; +} + +.glyphicon-registration-mark:before { + content: "\e195"; +} + +.glyphicon-cloud-download:before { + content: "\e197"; +} + +.glyphicon-cloud-upload:before { + content: "\e198"; +} + +.glyphicon-tree-conifer:before { + content: "\e199"; +} + +.glyphicon-tree-deciduous:before { + content: "\e200"; +} + +.glyphicon-cd:before { + content: "\e201"; +} + +.glyphicon-save-file:before { + content: "\e202"; +} + +.glyphicon-open-file:before { + content: "\e203"; +} + +.glyphicon-level-up:before { + content: "\e204"; +} + +.glyphicon-copy:before { + content: "\e205"; +} + +.glyphicon-paste:before { + content: "\e206"; +} + +.glyphicon-alert:before { + content: "\e209"; +} + +.glyphicon-equalizer:before { + content: "\e210"; +} + +.glyphicon-king:before { + content: "\e211"; +} + +.glyphicon-queen:before { + content: "\e212"; +} + +.glyphicon-pawn:before { + content: "\e213"; +} + +.glyphicon-bishop:before { + content: "\e214"; +} + +.glyphicon-knight:before { + content: "\e215"; +} + +.glyphicon-baby-formula:before { + content: "\e216"; +} + +.glyphicon-tent:before { + content: "\26fa"; +} + +.glyphicon-blackboard:before { + content: "\e218"; +} + +.glyphicon-bed:before { + content: "\e219"; +} + +.glyphicon-apple:before { + content: "\f8ff"; +} + +.glyphicon-erase:before { + content: "\e221"; +} + +.glyphicon-hourglass:before { + content: "\231b"; +} + +.glyphicon-lamp:before { + content: "\e223"; +} + +.glyphicon-duplicate:before { + content: "\e224"; +} + +.glyphicon-piggy-bank:before { + content: "\e225"; +} + +.glyphicon-scissors:before { + content: "\e226"; +} + +.glyphicon-bitcoin:before { + content: "\e227"; +} + +.glyphicon-btc:before { + content: "\e227"; +} + +.glyphicon-xbt:before { + content: "\e227"; +} + +.glyphicon-yen:before { + content: "\00a5"; +} + +.glyphicon-jpy:before { + content: "\00a5"; +} + +.glyphicon-ruble:before { + content: "\20bd"; +} + +.glyphicon-rub:before { + content: "\20bd"; +} + +.glyphicon-scale:before { + content: "\e230"; +} + +.glyphicon-ice-lolly:before { + content: "\e231"; +} + +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} + +.glyphicon-education:before { + content: "\e233"; +} + +.glyphicon-option-horizontal:before { + content: "\e234"; +} + +.glyphicon-option-vertical:before { + content: "\e235"; +} + +.glyphicon-menu-hamburger:before { + content: "\e236"; +} + +.glyphicon-modal-window:before { + content: "\e237"; +} + +.glyphicon-oil:before { + content: "\e238"; +} + +.glyphicon-grain:before { + content: "\e239"; +} + +.glyphicon-sunglasses:before { + content: "\e240"; +} + +.glyphicon-text-size:before { + content: "\e241"; +} + +.glyphicon-text-color:before { + content: "\e242"; +} + +.glyphicon-text-background:before { + content: "\e243"; +} + +.glyphicon-object-align-top:before { + content: "\e244"; +} + +.glyphicon-object-align-bottom:before { + content: "\e245"; +} + +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} + +.glyphicon-object-align-left:before { + content: "\e247"; +} + +.glyphicon-object-align-vertical:before { + content: "\e248"; +} + +.glyphicon-object-align-right:before { + content: "\e249"; +} + +.glyphicon-triangle-right:before { + content: "\e250"; +} + +.glyphicon-triangle-left:before { + content: "\e251"; +} + +.glyphicon-triangle-bottom:before { + content: "\e252"; +} + +.glyphicon-triangle-top:before { + content: "\e253"; +} + +.glyphicon-console:before { + content: "\e254"; +} + +.glyphicon-superscript:before { + content: "\e255"; +} + +.glyphicon-subscript:before { + content: "\e256"; +} + +.glyphicon-menu-left:before { + content: "\e257"; +} + +.glyphicon-menu-right:before { + content: "\e258"; +} + +.glyphicon-menu-down:before { + content: "\e259"; +} + +.glyphicon-menu-up:before { + content: "\e260"; +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 10px; + + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff; +} + +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +a { + color: #337ab7; + text-decoration: none; +} + +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; +} + +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +figure { + margin: 0; +} + +img { + vertical-align: middle; +} + +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} + +.img-rounded { + border-radius: 6px; +} + +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} + +[role="button"] { + cursor: pointer; +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777; +} + +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} + +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; +} + +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} + +h1, +.h1 { + font-size: 36px; +} + +h2, +.h2 { + font-size: 30px; +} + +h3, +.h3 { + font-size: 24px; +} + +h4, +.h4 { + font-size: 18px; +} + +h5, +.h5 { + font-size: 14px; +} + +h6, +.h6 { + font-size: 12px; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} + +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} + +small, +.small { + font-size: 85%; +} + +mark, +.mark { + padding: .2em; + background-color: #fcf8e3; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +.text-justify { + text-align: justify; +} + +.text-nowrap { + white-space: nowrap; +} + +.text-lowercase { + text-transform: lowercase; +} + +.text-uppercase { + text-transform: uppercase; +} + +.text-capitalize { + text-transform: capitalize; +} + +.text-muted { + color: #777; +} + +.text-primary { + color: #337ab7; +} + +a.text-primary:hover, +a.text-primary:focus { + color: #286090; +} + +.text-success { + color: #3c763d; +} + +a.text-success:hover, +a.text-success:focus { + color: #2b542c; +} + +.text-info { + color: #31708f; +} + +a.text-info:hover, +a.text-info:focus { + color: #245269; +} + +.text-warning { + color: #8a6d3b; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #66512c; +} + +.text-danger { + color: #a94442; +} + +a.text-danger:hover, +a.text-danger:focus { + color: #843534; +} + +.bg-primary { + color: #fff; + background-color: #337ab7; +} + +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #286090; +} + +.bg-success { + background-color: #dff0d8; +} + +a.bg-success:hover, +a.bg-success:focus { + background-color: #c1e2b3; +} + +.bg-info { + background-color: #d9edf7; +} + +a.bg-info:hover, +a.bg-info:focus { + background-color: #afd9ee; +} + +.bg-warning { + background-color: #fcf8e3; +} + +a.bg-warning:hover, +a.bg-warning:focus { + background-color: #f7ecb5; +} + +.bg-danger { + background-color: #f2dede; +} + +a.bg-danger:hover, +a.bg-danger:focus { + background-color: #e4b9b9; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} + +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} + +dl { + margin-top: 0; + margin-bottom: 20px; +} + +dt, +dd { + line-height: 1.42857143; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + + .dl-horizontal dd { + margin-left: 180px; + } +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; +} + +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} + +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; +} + +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} + +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; +} + +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} + +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} + +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; +} + +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} + +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; +} + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 768px) { + .container { + width: 750px; + } +} + +@media (min-width: 992px) { + .container { + width: 970px; + } +} + +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} + +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.row { + margin-right: -15px; + margin-left: -15px; +} + +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} + +.col-xs-12 { + width: 100%; +} + +.col-xs-11 { + width: 91.66666667%; +} + +.col-xs-10 { + width: 83.33333333%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-8 { + width: 66.66666667%; +} + +.col-xs-7 { + width: 58.33333333%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-5 { + width: 41.66666667%; +} + +.col-xs-4 { + width: 33.33333333%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-2 { + width: 16.66666667%; +} + +.col-xs-1 { + width: 8.33333333%; +} + +.col-xs-pull-12 { + right: 100%; +} + +.col-xs-pull-11 { + right: 91.66666667%; +} + +.col-xs-pull-10 { + right: 83.33333333%; +} + +.col-xs-pull-9 { + right: 75%; +} + +.col-xs-pull-8 { + right: 66.66666667%; +} + +.col-xs-pull-7 { + right: 58.33333333%; +} + +.col-xs-pull-6 { + right: 50%; +} + +.col-xs-pull-5 { + right: 41.66666667%; +} + +.col-xs-pull-4 { + right: 33.33333333%; +} + +.col-xs-pull-3 { + right: 25%; +} + +.col-xs-pull-2 { + right: 16.66666667%; +} + +.col-xs-pull-1 { + right: 8.33333333%; +} + +.col-xs-pull-0 { + right: auto; +} + +.col-xs-push-12 { + left: 100%; +} + +.col-xs-push-11 { + left: 91.66666667%; +} + +.col-xs-push-10 { + left: 83.33333333%; +} + +.col-xs-push-9 { + left: 75%; +} + +.col-xs-push-8 { + left: 66.66666667%; +} + +.col-xs-push-7 { + left: 58.33333333%; +} + +.col-xs-push-6 { + left: 50%; +} + +.col-xs-push-5 { + left: 41.66666667%; +} + +.col-xs-push-4 { + left: 33.33333333%; +} + +.col-xs-push-3 { + left: 25%; +} + +.col-xs-push-2 { + left: 16.66666667%; +} + +.col-xs-push-1 { + left: 8.33333333%; +} + +.col-xs-push-0 { + left: auto; +} + +.col-xs-offset-12 { + margin-left: 100%; +} + +.col-xs-offset-11 { + margin-left: 91.66666667%; +} + +.col-xs-offset-10 { + margin-left: 83.33333333%; +} + +.col-xs-offset-9 { + margin-left: 75%; +} + +.col-xs-offset-8 { + margin-left: 66.66666667%; +} + +.col-xs-offset-7 { + margin-left: 58.33333333%; +} + +.col-xs-offset-6 { + margin-left: 50%; +} + +.col-xs-offset-5 { + margin-left: 41.66666667%; +} + +.col-xs-offset-4 { + margin-left: 33.33333333%; +} + +.col-xs-offset-3 { + margin-left: 25%; +} + +.col-xs-offset-2 { + margin-left: 16.66666667%; +} + +.col-xs-offset-1 { + margin-left: 8.33333333%; +} + +.col-xs-offset-0 { + margin-left: 0; +} + +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + + .col-sm-12 { + width: 100%; + } + + .col-sm-11 { + width: 91.66666667%; + } + + .col-sm-10 { + width: 83.33333333%; + } + + .col-sm-9 { + width: 75%; + } + + .col-sm-8 { + width: 66.66666667%; + } + + .col-sm-7 { + width: 58.33333333%; + } + + .col-sm-6 { + width: 50%; + } + + .col-sm-5 { + width: 41.66666667%; + } + + .col-sm-4 { + width: 33.33333333%; + } + + .col-sm-3 { + width: 25%; + } + + .col-sm-2 { + width: 16.66666667%; + } + + .col-sm-1 { + width: 8.33333333%; + } + + .col-sm-pull-12 { + right: 100%; + } + + .col-sm-pull-11 { + right: 91.66666667%; + } + + .col-sm-pull-10 { + right: 83.33333333%; + } + + .col-sm-pull-9 { + right: 75%; + } + + .col-sm-pull-8 { + right: 66.66666667%; + } + + .col-sm-pull-7 { + right: 58.33333333%; + } + + .col-sm-pull-6 { + right: 50%; + } + + .col-sm-pull-5 { + right: 41.66666667%; + } + + .col-sm-pull-4 { + right: 33.33333333%; + } + + .col-sm-pull-3 { + right: 25%; + } + + .col-sm-pull-2 { + right: 16.66666667%; + } + + .col-sm-pull-1 { + right: 8.33333333%; + } + + .col-sm-pull-0 { + right: auto; + } + + .col-sm-push-12 { + left: 100%; + } + + .col-sm-push-11 { + left: 91.66666667%; + } + + .col-sm-push-10 { + left: 83.33333333%; + } + + .col-sm-push-9 { + left: 75%; + } + + .col-sm-push-8 { + left: 66.66666667%; + } + + .col-sm-push-7 { + left: 58.33333333%; + } + + .col-sm-push-6 { + left: 50%; + } + + .col-sm-push-5 { + left: 41.66666667%; + } + + .col-sm-push-4 { + left: 33.33333333%; + } + + .col-sm-push-3 { + left: 25%; + } + + .col-sm-push-2 { + left: 16.66666667%; + } + + .col-sm-push-1 { + left: 8.33333333%; + } + + .col-sm-push-0 { + left: auto; + } + + .col-sm-offset-12 { + margin-left: 100%; + } + + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + + .col-sm-offset-9 { + margin-left: 75%; + } + + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + + .col-sm-offset-6 { + margin-left: 50%; + } + + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + + .col-sm-offset-3 { + margin-left: 25%; + } + + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + + .col-sm-offset-0 { + margin-left: 0; + } +} + +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + + .col-md-12 { + width: 100%; + } + + .col-md-11 { + width: 91.66666667%; + } + + .col-md-10 { + width: 83.33333333%; + } + + .col-md-9 { + width: 75%; + } + + .col-md-8 { + width: 66.66666667%; + } + + .col-md-7 { + width: 58.33333333%; + } + + .col-md-6 { + width: 50%; + } + + .col-md-5 { + width: 41.66666667%; + } + + .col-md-4 { + width: 33.33333333%; + } + + .col-md-3 { + width: 25%; + } + + .col-md-2 { + width: 16.66666667%; + } + + .col-md-1 { + width: 8.33333333%; + } + + .col-md-pull-12 { + right: 100%; + } + + .col-md-pull-11 { + right: 91.66666667%; + } + + .col-md-pull-10 { + right: 83.33333333%; + } + + .col-md-pull-9 { + right: 75%; + } + + .col-md-pull-8 { + right: 66.66666667%; + } + + .col-md-pull-7 { + right: 58.33333333%; + } + + .col-md-pull-6 { + right: 50%; + } + + .col-md-pull-5 { + right: 41.66666667%; + } + + .col-md-pull-4 { + right: 33.33333333%; + } + + .col-md-pull-3 { + right: 25%; + } + + .col-md-pull-2 { + right: 16.66666667%; + } + + .col-md-pull-1 { + right: 8.33333333%; + } + + .col-md-pull-0 { + right: auto; + } + + .col-md-push-12 { + left: 100%; + } + + .col-md-push-11 { + left: 91.66666667%; + } + + .col-md-push-10 { + left: 83.33333333%; + } + + .col-md-push-9 { + left: 75%; + } + + .col-md-push-8 { + left: 66.66666667%; + } + + .col-md-push-7 { + left: 58.33333333%; + } + + .col-md-push-6 { + left: 50%; + } + + .col-md-push-5 { + left: 41.66666667%; + } + + .col-md-push-4 { + left: 33.33333333%; + } + + .col-md-push-3 { + left: 25%; + } + + .col-md-push-2 { + left: 16.66666667%; + } + + .col-md-push-1 { + left: 8.33333333%; + } + + .col-md-push-0 { + left: auto; + } + + .col-md-offset-12 { + margin-left: 100%; + } + + .col-md-offset-11 { + margin-left: 91.66666667%; + } + + .col-md-offset-10 { + margin-left: 83.33333333%; + } + + .col-md-offset-9 { + margin-left: 75%; + } + + .col-md-offset-8 { + margin-left: 66.66666667%; + } + + .col-md-offset-7 { + margin-left: 58.33333333%; + } + + .col-md-offset-6 { + margin-left: 50%; + } + + .col-md-offset-5 { + margin-left: 41.66666667%; + } + + .col-md-offset-4 { + margin-left: 33.33333333%; + } + + .col-md-offset-3 { + margin-left: 25%; + } + + .col-md-offset-2 { + margin-left: 16.66666667%; + } + + .col-md-offset-1 { + margin-left: 8.33333333%; + } + + .col-md-offset-0 { + margin-left: 0; + } +} + +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + + .col-lg-12 { + width: 100%; + } + + .col-lg-11 { + width: 91.66666667%; + } + + .col-lg-10 { + width: 83.33333333%; + } + + .col-lg-9 { + width: 75%; + } + + .col-lg-8 { + width: 66.66666667%; + } + + .col-lg-7 { + width: 58.33333333%; + } + + .col-lg-6 { + width: 50%; + } + + .col-lg-5 { + width: 41.66666667%; + } + + .col-lg-4 { + width: 33.33333333%; + } + + .col-lg-3 { + width: 25%; + } + + .col-lg-2 { + width: 16.66666667%; + } + + .col-lg-1 { + width: 8.33333333%; + } + + .col-lg-pull-12 { + right: 100%; + } + + .col-lg-pull-11 { + right: 91.66666667%; + } + + .col-lg-pull-10 { + right: 83.33333333%; + } + + .col-lg-pull-9 { + right: 75%; + } + + .col-lg-pull-8 { + right: 66.66666667%; + } + + .col-lg-pull-7 { + right: 58.33333333%; + } + + .col-lg-pull-6 { + right: 50%; + } + + .col-lg-pull-5 { + right: 41.66666667%; + } + + .col-lg-pull-4 { + right: 33.33333333%; + } + + .col-lg-pull-3 { + right: 25%; + } + + .col-lg-pull-2 { + right: 16.66666667%; + } + + .col-lg-pull-1 { + right: 8.33333333%; + } + + .col-lg-pull-0 { + right: auto; + } + + .col-lg-push-12 { + left: 100%; + } + + .col-lg-push-11 { + left: 91.66666667%; + } + + .col-lg-push-10 { + left: 83.33333333%; + } + + .col-lg-push-9 { + left: 75%; + } + + .col-lg-push-8 { + left: 66.66666667%; + } + + .col-lg-push-7 { + left: 58.33333333%; + } + + .col-lg-push-6 { + left: 50%; + } + + .col-lg-push-5 { + left: 41.66666667%; + } + + .col-lg-push-4 { + left: 33.33333333%; + } + + .col-lg-push-3 { + left: 25%; + } + + .col-lg-push-2 { + left: 16.66666667%; + } + + .col-lg-push-1 { + left: 8.33333333%; + } + + .col-lg-push-0 { + left: auto; + } + + .col-lg-offset-12 { + margin-left: 100%; + } + + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + + .col-lg-offset-9 { + margin-left: 75%; + } + + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + + .col-lg-offset-6 { + margin-left: 50%; + } + + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + + .col-lg-offset-3 { + margin-left: 25%; + } + + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + + .col-lg-offset-0 { + margin-left: 0; + } +} + +table { + background-color: transparent; +} + +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left; +} + +th { + text-align: left; +} + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} + +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} + +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; +} + +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} + +.table > tbody + tbody { + border-top: 2px solid #ddd; +} + +.table .table { + background-color: #fff; +} + +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} + +.table-bordered { + border: 1px solid #ddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #ddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} + +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; +} + +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} + +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} + +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} + +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} + +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} + +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} + +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} + +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} + +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} + +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} + +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} + +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} + +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; +} + +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + + .table-responsive > .table { + margin-bottom: 0; + } + + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + + .table-responsive > .table-bordered { + border: 0; + } + + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} + +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} + +input[type="file"] { + display: block; +} + +input[type="range"] { + display: block; + width: 100%; +} + +select[multiple], +select[size] { + height: auto; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); +} + +.form-control::-moz-placeholder { + color: #999; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #999; +} + +.form-control::-webkit-input-placeholder { + color: #999; +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #eee; + opacity: 1; +} + +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} + +textarea.form-control { + height: auto; +} + +input[type="search"] { + -webkit-appearance: none; +} + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { + line-height: 34px; + } + + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 30px; + } + + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 46px; + } +} + +.form-group { + margin-bottom: 15px; +} + +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} + +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} + +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} + +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} + +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} + +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} + +.form-control-static { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} + +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-sm { + height: 30px; + line-height: 30px; +} + +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} + +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.form-group-sm select.form-control { + height: 30px; + line-height: 30px; +} + +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} + +.form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 6px 10px; + font-size: 12px; + line-height: 1.5; +} + +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} + +select.input-lg { + height: 46px; + line-height: 46px; +} + +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} + +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} + +.form-group-lg select.form-control { + height: 46px; + line-height: 46px; +} + +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} + +.form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 11px 16px; + font-size: 18px; + line-height: 1.3333333; +} + +.has-feedback { + position: relative; +} + +.has-feedback .form-control { + padding-right: 42.5px; +} + +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; +} + +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} + +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} + +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; +} + +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} + +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; +} + +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; +} + +.has-success .form-control-feedback { + color: #3c763d; +} + +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; +} + +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} + +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; +} + +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; +} + +.has-warning .form-control-feedback { + color: #8a6d3b; +} + +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} + +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} + +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; +} + +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; +} + +.has-error .form-control-feedback { + color: #a94442; +} + +.has-feedback label ~ .form-control-feedback { + top: 25px; +} + +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} + +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + + .form-inline .form-control-static { + display: inline-block; + } + + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + + .form-inline .input-group > .form-control { + width: 100%; + } + + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} + +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} + +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} + +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; + } +} + +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} + +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 11px; + font-size: 18px; + } +} + +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + font-size: 12px; + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} + +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn:hover, +.btn:focus, +.btn.focus { + color: #333; + text-decoration: none; +} + +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; +} + +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} + +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} + +.btn-default:focus, +.btn-default.focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} + +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} + +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} + +.btn-default:active:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} + +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} + +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus { + background-color: #fff; + border-color: #ccc; +} + +.btn-default .badge { + color: #fff; + background-color: #333; +} + +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} + +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} + +.btn-primary:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} + +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; +} + +.btn-primary:active:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} + +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} + +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus { + background-color: #337ab7; + border-color: #2e6da4; +} + +.btn-primary .badge { + color: #337ab7; + background-color: #fff; +} + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #449d44; + border-color: #255625; +} + +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; +} + +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} + +.btn-success:active:hover, +.btn-success.active:hover, +.open > .dropdown-toggle.btn-success:hover, +.btn-success:active:focus, +.btn-success.active:focus, +.open > .dropdown-toggle.btn-success:focus, +.btn-success:active.focus, +.btn-success.active.focus, +.open > .dropdown-toggle.btn-success.focus { + color: #fff; + background-color: #398439; + border-color: #255625; +} + +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} + +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus { + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} + +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85; +} + +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} + +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} + +.btn-info:active:hover, +.btn-info.active:hover, +.open > .dropdown-toggle.btn-info:hover, +.btn-info:active:focus, +.btn-info.active:focus, +.open > .dropdown-toggle.btn-info:focus, +.btn-info:active.focus, +.btn-info.active.focus, +.open > .dropdown-toggle.btn-info.focus { + color: #fff; + background-color: #269abc; + border-color: #1b6d85; +} + +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} + +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning:focus, +.btn-warning.focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d; +} + +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} + +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} + +.btn-warning:active:hover, +.btn-warning.active:hover, +.open > .dropdown-toggle.btn-warning:hover, +.btn-warning:active:focus, +.btn-warning.active:focus, +.open > .dropdown-toggle.btn-warning:focus, +.btn-warning:active.focus, +.btn-warning.active.focus, +.open > .dropdown-toggle.btn-warning.focus { + color: #fff; + background-color: #d58512; + border-color: #985f0d; +} + +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} + +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus { + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} + +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} + +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} + +.btn-danger:active:hover, +.btn-danger.active:hover, +.open > .dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open > .dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open > .dropdown-toggle.btn-danger.focus { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} + +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} + +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus { + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} + +.btn-link { + font-weight: normal; + color: #337ab7; + border-radius: 0; +} + +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} + +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777; + text-decoration: none; +} + +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} + +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.in { + display: block; +} + +tr.collapse.in { + display: table-row; +} + +tbody.collapse.in { + display: table-row-group; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open > .dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} + +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} + +.btn-toolbar { + margin-left: -5px; +} + +.btn-toolbar .btn, +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} + +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group > .btn-group { + float: left; +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} + +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn .caret { + margin-left: 0; +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} + +.btn-group-vertical > .btn-group > .btn { + float: none; +} + +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} + +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} + +.btn-group-justified > .btn-group .btn { + width: 100%; +} + +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} + +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; +} + +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} + +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} + +.input-group .form-control:focus { + z-index: 3; +} + +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} + +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} + +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} + +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} + +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} + +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; +} + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} + +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} + +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group-addon:first-child { + border-right: 0; +} + +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-addon:last-child { + border-left: 0; +} + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} + +.input-group-btn > .btn { + position: relative; +} + +.input-group-btn > .btn + .btn { + margin-left: -1px; +} + +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} + +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} + +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + z-index: 2; + margin-left: -1px; +} + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav > li { + position: relative; + display: block; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eee; +} + +.nav > li.disabled > a { + color: #777; +} + +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} + +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eee; + border-color: #337ab7; +} + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.nav > li > a > img { + max-width: none; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} + +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eee #eee #ddd; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} + +.nav-tabs.nav-justified > li { + float: none; +} + +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} + +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} + +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} + +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } +} + +.nav-pills > li { + float: left; +} + +.nav-pills > li > a { + border-radius: 4px; +} + +.nav-pills > li + li { + margin-left: 2px; +} + +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #fff; + background-color: #337ab7; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} + +.nav-justified { + width: 100%; +} + +.nav-justified > li { + float: none; +} + +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} + +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} + +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + + .nav-justified > li > a { + margin-bottom: 0; + } +} + +.nav-tabs-justified { + border-bottom: 0; +} + +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} + +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #ddd; +} + +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} + +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} + +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); +} + +.navbar-collapse.in { + overflow-y: auto; +} + +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + + .navbar-collapse.in { + overflow-y: visible; + } + + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} + +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} + +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} + +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} + +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} + +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} + +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} + +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} + +.navbar-brand > img { + display: block; +} + +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} + +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} + +.navbar-toggle:focus { + outline: 0; +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} + +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} + +.navbar-nav { + margin: 7.5px -15px; +} + +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + + .navbar-nav > li { + float: left; + } + + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} + +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); +} + +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + + .navbar-form .form-control-static { + display: inline-block; + } + + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + + .navbar-form .input-group > .form-control { + width: 100%; + } + + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} + +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} + +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} + +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} + +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} + +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} + +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} + +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } +} + +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + + .navbar-right { + float: right !important; + margin-right: -15px; + } + + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} + +.navbar-default .navbar-brand { + color: #777; +} + +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} + +.navbar-default .navbar-text { + color: #777; +} + +.navbar-default .navbar-nav > li > a { + color: #777; +} + +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333; + background-color: transparent; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #ccc; + background-color: transparent; +} + +.navbar-default .navbar-toggle { + border-color: #ddd; +} + +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} + +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555; + background-color: #e7e7e7; +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; + } + + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333; + background-color: transparent; + } + + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } +} + +.navbar-default .navbar-link { + color: #777; +} + +.navbar-default .navbar-link:hover { + color: #333; +} + +.navbar-default .btn-link { + color: #777; +} + +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333; +} + +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; +} + +.navbar-inverse { + background-color: #222; + border-color: #080808; +} + +.navbar-inverse .navbar-brand { + color: #9d9d9d; +} + +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; +} + +.navbar-inverse .navbar-text { + color: #9d9d9d; +} + +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; +} + +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #fff; + background-color: transparent; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #fff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444; + background-color: transparent; +} + +.navbar-inverse .navbar-toggle { + border-color: #333; +} + +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} + +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} + +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #fff; + background-color: #080808; +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #fff; + background-color: transparent; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-color: #080808; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444; + background-color: transparent; + } +} + +.navbar-inverse .navbar-link { + color: #9d9d9d; +} + +.navbar-inverse .navbar-link:hover { + color: #fff; +} + +.navbar-inverse .btn-link { + color: #9d9d9d; +} + +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; +} + +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; +} + +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; +} + +.breadcrumb > .active { + color: #777; +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} + +.pagination > li { + display: inline; +} + +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; +} + +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} + +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 2; + color: #23527c; + background-color: #eee; + border-color: #ddd; +} + +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 3; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; +} + +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; +} + +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; +} + +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; +} + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eee; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff; +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} + +a.label:hover, +a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} + +.label:empty { + display: none; +} + +.btn .label { + position: relative; + top: -1px; +} + +.label-default { + background-color: #777; +} + +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} + +.label-primary { + background-color: #337ab7; +} + +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} + +.label-success { + background-color: #5cb85c; +} + +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} + +.label-info { + background-color: #5bc0de; +} + +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} + +.label-warning { + background-color: #f0ad4e; +} + +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} + +.label-danger { + background-color: #d9534f; +} + +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #777; + border-radius: 10px; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.btn-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} + +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} + +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; +} + +.list-group-item > .badge { + float: right; +} + +.list-group-item > .badge + .badge { + margin-right: 5px; +} + +.nav-pills > li > a > .badge { + margin-left: 3px; +} + +.jumbotron { + padding-top: 30px; + padding-bottom: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; +} + +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} + +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} + +.jumbotron > hr { + border-top-color: #d5d5d5; +} + +.container .jumbotron, +.container-fluid .jumbotron { + padding-right: 15px; + padding-left: 15px; + border-radius: 6px; +} + +.jumbotron .container { + max-width: 100%; +} + +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} + +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border .2s ease-in-out; + -o-transition: border .2s ease-in-out; + transition: border .2s ease-in-out; +} + +.thumbnail > img, +.thumbnail a > img { + margin-right: auto; + margin-left: auto; +} + +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #337ab7; +} + +.thumbnail .caption { + padding: 9px; + color: #333; +} + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} + +.alert h4 { + margin-top: 0; + color: inherit; +} + +.alert .alert-link { + font-weight: bold; +} + +.alert > p, +.alert > ul { + margin-bottom: 0; +} + +.alert > p + p { + margin-top: 5px; +} + +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} + +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} + +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success hr { + border-top-color: #c9e2b3; +} + +.alert-success .alert-link { + color: #2b542c; +} + +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info hr { + border-top-color: #a6e1ec; +} + +.alert-info .alert-link { + color: #245269; +} + +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} + +.alert-warning hr { + border-top-color: #f7e1b5; +} + +.alert-warning .alert-link { + color: #66512c; +} + +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} + +.alert-danger hr { + border-top-color: #e4b9c0; +} + +.alert-danger .alert-link { + color: #843534; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); +} + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + -webkit-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease; +} + +.progress-striped .progress-bar, +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar-success { + background-color: #5cb85c; +} + +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} + +.progress-bar-info { + background-color: #5bc0de; +} + +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} + +.progress-bar-warning { + background-color: #f0ad4e; +} + +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} + +.progress-bar-danger { + background-color: #d9534f; +} + +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} + +.media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +.media-body { + width: 10000px; +} + +.media-object { + display: block; +} + +.media-object.img-thumbnail { + max-width: none; +} + +.media-right, +.media > .pull-right { + padding-left: 10px; +} + +.media-left, +.media > .pull-left { + padding-right: 10px; +} + +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} + +.media-middle { + vertical-align: middle; +} + +.media-bottom { + vertical-align: bottom; +} + +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.media-list { + padding-left: 0; + list-style: none; +} + +.list-group { + padding-left: 0; + margin-bottom: 20px; +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; +} + +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +a.list-group-item, +button.list-group-item { + color: #555; +} + +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #333; +} + +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + color: #555; + text-decoration: none; + background-color: #f5f5f5; +} + +button.list-group-item { + width: 100%; + text-align: left; +} + +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + color: #777; + cursor: not-allowed; + background-color: #eee; +} + +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} + +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} + +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} + +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #c7ddef; +} + +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} + +a.list-group-item-success, +button.list-group-item-success { + color: #3c763d; +} + +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { + color: inherit; +} + +a.list-group-item-success:hover, +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} + +a.list-group-item-success.active, +button.list-group-item-success.active, +a.list-group-item-success.active:hover, +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} + +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} + +a.list-group-item-info, +button.list-group-item-info { + color: #31708f; +} + +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { + color: inherit; +} + +a.list-group-item-info:hover, +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} + +a.list-group-item-info.active, +button.list-group-item-info.active, +a.list-group-item-info.active:hover, +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} + +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} + +a.list-group-item-warning, +button.list-group-item-warning { + color: #8a6d3b; +} + +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { + color: inherit; +} + +a.list-group-item-warning:hover, +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} + +a.list-group-item-warning.active, +button.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} + +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} + +a.list-group-item-danger, +button.list-group-item-danger { + color: #a94442; +} + +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { + color: inherit; +} + +a.list-group-item-danger:hover, +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} + +a.list-group-item-danger.active, +button.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); +} + +.panel-body { + padding: 15px; +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} + +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} + +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} + +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} + +.list-group + .panel-footer { + border-top-width: 0; +} + +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} + +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-right: 15px; + padding-left: 15px; +} + +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} + +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} + +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} + +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} + +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; +} + +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} + +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} + +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} + +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} + +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} + +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} + +.panel > .table-responsive { + margin-bottom: 0; + border: 0; +} + +.panel-group { + margin-bottom: 20px; +} + +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} + +.panel-group .panel + .panel { + margin-top: 5px; +} + +.panel-group .panel-heading { + border-bottom: 0; +} + +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #ddd; +} + +.panel-group .panel-footer { + border-top: 0; +} + +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; +} + +.panel-default { + border-color: #ddd; +} + +.panel-default > .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; +} + +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; +} + +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333; +} + +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; +} + +.panel-primary { + border-color: #337ab7; +} + +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} + +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; +} + +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; +} + +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; +} + +.panel-success { + border-color: #d6e9c6; +} + +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; +} + +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; +} + +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; +} + +.panel-info { + border-color: #bce8f1; +} + +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; +} + +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; +} + +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; +} + +.panel-warning { + border-color: #faebcc; +} + +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} + +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; +} + +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; +} + +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; +} + +.panel-danger { + border-color: #ebccd1; +} + +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} + +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; +} + +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; +} + +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; +} + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} + +.embed-responsive-4by3 { + padding-bottom: 75%; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, .15); +} + +.well-lg { + padding: 24px; + border-radius: 6px; +} + +.well-sm { + padding: 9px; + border-radius: 3px; +} + +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; +} + +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; +} + +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; +} + +.modal-open { + overflow: hidden; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} + +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} + +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} + +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} + +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: .5; +} + +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-title { + margin: 0; + line-height: 1.42857143; +} + +.modal-body { + position: relative; + padding: 15px; +} + +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } + + .modal-sm { + width: 300px; + } +} + +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + filter: alpha(opacity=0); + opacity: 0; + + line-break: auto; +} + +.tooltip.in { + filter: alpha(opacity=90); + opacity: .9; +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + + line-break: auto; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover > .arrow { + border-width: 11px; +} + +.popover > .arrow:after { + content: ""; + border-width: 10px; +} + +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); + border-bottom-width: 0; +} + +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; +} + +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); + border-left-width: 0; +} + +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; +} + +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25); +} + +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; +} + +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, .25); +} + +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + line-height: 1; +} + +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform .6s ease-in-out; + -o-transition: -o-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + background-color: rgba(0, 0, 0, 0); + filter: alpha(opacity=50); + opacity: .5; +} + +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; +} + +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: .9; +} + +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px; +} + +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} + +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} + +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + font-family: serif; + line-height: 1; +} + +.carousel-control .icon-prev:before { + content: '\2039'; +} + +.carousel-control .icon-next:before { + content: '\203a'; +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); +} + +.carousel-caption .btn { + text-shadow: none; +} + +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -10px; + font-size: 30px; + } + + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -10px; + } + + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -10px; + } + + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + + .carousel-indicators { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-header:before, +.modal-header:after, +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-header:after, +.modal-footer:after { + clear: both; +} + +.center-block { + display: block; + margin-right: auto; + margin-left: auto; +} + +.pull-right { + float: right !important; +} + +.pull-left { + float: left !important; +} + +.hide { + display: none !important; +} + +.show { + display: block !important; +} + +.invisible { + visibility: hidden; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.hidden { + display: none !important; +} + +.affix { + position: fixed; +} + +@-ms-viewport { + width: device-width; +} + +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} + +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + + table.visible-xs { + display: table !important; + } + + tr.visible-xs { + display: table-row !important; + } + + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} + +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} + +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} + +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + + table.visible-sm { + display: table !important; + } + + tr.visible-sm { + display: table-row !important; + } + + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + + table.visible-md { + display: table !important; + } + + tr.visible-md { + display: table-row !important; + } + + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + + table.visible-lg { + display: table !important; + } + + tr.visible-lg { + display: table-row !important; + } + + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} + +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} + +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: block !important; + } + + table.visible-print { + display: table !important; + } + + tr.visible-print { + display: table-row !important; + } + + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} + +.visible-print-block { + display: none !important; +} + +@media print { + .visible-print-block { + display: block !important; + } +} + +.visible-print-inline { + display: none !important; +} + +@media print { + .visible-print-inline { + display: inline !important; + } +} + +.visible-print-inline-block { + display: none !important; +} + +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} + +@media print { + .hidden-print { + display: none !important; + } +} + +/*# sourceMappingURL=bootstrap.css.map */ diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" new file mode 100644 index 0000000..d107689 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" @@ -0,0 +1,36 @@ + + + + + epidemic + + + + + + +

epidemic

+ + + + + + + + + + + + + + + + + + + + +
地区现有确诊累计确诊治愈死亡
+ + + \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/SpringbootEpidemicApplicationTests.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/SpringbootEpidemicApplicationTests.java" new file mode 100644 index 0000000..bb6c284 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/SpringbootEpidemicApplicationTests.java" @@ -0,0 +1,13 @@ +package com.zgh; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class SpringbootEpidemicApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.html" new file mode 100644 index 0000000..a428c93 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.html" @@ -0,0 +1,10856 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.json" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.json" new file mode 100644 index 0000000..8db2fae --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.json" @@ -0,0 +1,9598 @@ +{ + "lastUpdateTime": "2020-12-30 09:31:35", + "chinaTotal": { + "confirm": 96592, + "heal": 90360, + "dead": 4784, + "nowConfirm": 1448, + "suspect": 0, + "nowSevere": 6, + "importedCase": 4247, + "noInfect": 269 + }, + "chinaAdd": { + "confirm": 79, + "heal": 113, + "dead": 2, + "nowConfirm": -36, + "suspect": 0, + "nowSevere": 1, + "importedCase": 17, + "noInfect": 17 + }, + "isShowAdd": true, + "showAddSwitch": { + "all": true, + "confirm": true, + "suspect": true, + "dead": true, + "heal": true, + "nowConfirm": true, + "nowSevere": true, + "importedCase": true, + "noInfect": true + }, + "areaTree": [ + { + "name": "中国", + "today": { + "confirm": 79, + "isUpdated": true + }, + "total": { + "nowConfirm": 1448, + "confirm": 96592, + "suspect": 0, + "dead": 4784, + "deadRate": "4.95", + "showRate": false, + "heal": 90360, + "healRate": "93.55", + "showHeal": true + }, + "children": [ + { + "name": "香港", + "today": { + "confirm": 53, + "confirmCuts": 0, + "isUpdated": true, + "tip": "" + }, + "total": { + "nowConfirm": 965, + "confirm": 8724, + "suspect": 0, + "dead": 143, + "deadRate": "1.64", + "showRate": false, + "heal": 7616, + "healRate": "87.30", + "showHeal": true + }, + "children": [ + { + "name": "地区待确认", + "today": { + "confirm": 53, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 965, + "confirm": 8724, + "suspect": 0, + "dead": 143, + "deadRate": "1.64", + "showRate": false, + "heal": 7616, + "healRate": "87.30", + "showHeal": true + } + } + ] + }, + { + "name": "台湾", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true, + "tip": "" + }, + "total": { + "nowConfirm": 127, + "confirm": 795, + "suspect": 0, + "dead": 7, + "deadRate": "0.88", + "showRate": false, + "heal": 661, + "healRate": "83.14", + "showHeal": true + }, + "children": [ + { + "name": "地区待确认", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 127, + "confirm": 795, + "suspect": 0, + "dead": 7, + "deadRate": "0.88", + "showRate": false, + "heal": 661, + "healRate": "83.14", + "showHeal": true + } + } + ] + }, + { + "name": "上海", + "today": { + "confirm": 7, + "confirmCuts": 0, + "isUpdated": true, + "tip": "上海累计报告境外输入确诊病例1156例。" + }, + "total": { + "nowConfirm": 98, + "confirm": 1505, + "suspect": 0, + "dead": 7, + "deadRate": "0.47", + "showRate": false, + "heal": 1400, + "healRate": "93.02", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 7, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 96, + "confirm": 1156, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1060, + "healRate": "91.70", + "showHeal": true + } + }, + { + "name": "浦东", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 2, + "confirm": 68, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 66, + "healRate": "97.06", + "showHeal": true, + "grade": "全部低风险" + } + }, + { + "name": "青浦", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "外地来沪", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 113, + "suspect": 0, + "dead": 1, + "deadRate": "0.88", + "showRate": false, + "heal": 112, + "healRate": "99.12", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "宝山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 1, + "deadRate": "4.55", + "showRate": false, + "heal": 21, + "healRate": "95.45", + "showHeal": true + } + }, + { + "name": "嘉定", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 2, + "deadRate": "22.22", + "showRate": false, + "heal": 7, + "healRate": "77.78", + "showHeal": true + } + }, + { + "name": "徐汇", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 1, + "deadRate": "5.56", + "showRate": false, + "heal": 17, + "healRate": "94.44", + "showHeal": true + } + }, + { + "name": "静安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 16, + "suspect": 0, + "dead": 1, + "deadRate": "6.25", + "showRate": false, + "heal": 15, + "healRate": "93.75", + "showHeal": true + } + }, + { + "name": "黄浦", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 1, + "deadRate": "16.67", + "showRate": false, + "heal": 5, + "healRate": "83.33", + "showHeal": true + } + }, + { + "name": "境外来沪", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "普陀", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "崇明", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "金山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "虹口", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "奉贤", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "杨浦", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "长宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "松江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "闵行", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "辽宁", + "today": { + "confirm": 5, + "confirmCuts": 0, + "isUpdated": true, + "tip": "辽宁累计报告境外输入病例67例。" + }, + "total": { + "nowConfirm": 53, + "confirm": 342, + "suspect": 0, + "dead": 2, + "deadRate": "0.58", + "showRate": false, + "heal": 287, + "healRate": "83.92", + "showHeal": true + }, + "children": [ + { + "name": "大连", + "today": { + "confirm": 3, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 38, + "confirm": 148, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 110, + "healRate": "74.32", + "showHeal": true, + "grade": "部分中风险" + } + }, + { + "name": "沈阳", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 13, + "confirm": 47, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 34, + "healRate": "72.34", + "showHeal": true, + "grade": "部分中风险" + } + }, + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 2, + "confirm": 67, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 65, + "healRate": "97.01", + "showHeal": true, + "grade": "待公布" + } + }, + { + "name": "葫芦岛", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 1, + "deadRate": "8.33", + "showRate": false, + "heal": 11, + "healRate": "91.67", + "showHeal": true + } + }, + { + "name": "抚顺", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "朝阳市", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 1, + "deadRate": "16.67", + "showRate": false, + "heal": 5, + "healRate": "83.33", + "showHeal": true + } + }, + { + "name": "丹东", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "铁岭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "鞍山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "锦州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "盘锦", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "阜新", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "本溪", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "辽阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "营口", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "四川", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "四川累计报告297例境外输入病例。" + }, + "total": { + "nowConfirm": 31, + "confirm": 851, + "suspect": 0, + "dead": 3, + "deadRate": "0.35", + "showRate": false, + "heal": 817, + "healRate": "96.00", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 20, + "confirm": 297, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 277, + "healRate": "93.27", + "showHeal": true + } + }, + { + "name": "成都", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 11, + "confirm": 158, + "suspect": 0, + "dead": 3, + "deadRate": "1.90", + "showRate": false, + "heal": 144, + "healRate": "91.14", + "showHeal": true, + "grade": "部分中风险" + } + }, + { + "name": "遂宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "达州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 42, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 42, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巴中", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 24, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 24, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "自贡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "攀枝花", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 16, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 16, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "泸州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 24, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 24, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "德阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "绵阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "广元", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "雅安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "内江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "乐山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南充", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 39, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 39, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宜宾", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "广安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 30, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 30, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "凉山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "甘孜", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 78, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 78, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "阿坝", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "资阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "眉山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "北京", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true, + "tip": "北京累计报告境外输入确诊病例204例。\\n北京卫健委未明确治愈病例和死亡病例的归属分区,北京分区现有确诊数据暂无法获取。" + }, + "total": { + "nowConfirm": 30, + "confirm": 980, + "suspect": 0, + "dead": 9, + "deadRate": "0.92", + "showRate": false, + "heal": 941, + "healRate": "96.02", + "showHeal": true + }, + "children": [ + { + "name": "顺义", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 14, + "confirm": 24, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "41.67", + "showHeal": false, + "grade": "部分中风险" + } + }, + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 13, + "confirm": 204, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 191, + "healRate": "93.63", + "showHeal": true + } + }, + { + "name": "朝阳", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 3, + "confirm": 80, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 77, + "healRate": "96.25", + "showHeal": false, + "grade": "部分中风险" + } + }, + { + "name": "石景山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "延庆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "密云", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "怀柔", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "外地来京", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 25, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 25, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "门头沟", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "东城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "房山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 20, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "昌平", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 30, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 30, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "大兴", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 104, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 104, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "西城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 59, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 59, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "海淀", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 82, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 82, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "丰台", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 273, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 273, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "通州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 9, + "deadRate": "45.00", + "showRate": false, + "heal": 11, + "healRate": "55.00", + "showHeal": false + } + } + ] + }, + { + "name": "广东", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true, + "tip": "广东省累计报告境外输入病例645例。" + }, + "total": { + "nowConfirm": 25, + "confirm": 2041, + "suspect": 0, + "dead": 8, + "deadRate": "0.39", + "showRate": false, + "heal": 2008, + "healRate": "98.38", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 25, + "confirm": 645, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 620, + "healRate": "96.12", + "showHeal": true + } + }, + { + "name": "揭阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "广州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 377, + "suspect": 0, + "dead": 1, + "deadRate": "0.27", + "showRate": false, + "heal": 376, + "healRate": "99.73", + "showHeal": true + } + }, + { + "name": "清远", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "潮州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "韶关", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 1, + "deadRate": "10.00", + "showRate": false, + "heal": 9, + "healRate": "90.00", + "showHeal": true + } + }, + { + "name": "中山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 67, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 67, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "河源", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "湛江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "珠海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 98, + "suspect": 0, + "dead": 1, + "deadRate": "1.02", + "showRate": false, + "heal": 97, + "healRate": "98.98", + "showHeal": true + } + }, + { + "name": "汕尾", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "江门", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 23, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "梅州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 16, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 16, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "佛山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 89, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 89, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "深圳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 423, + "suspect": 0, + "dead": 3, + "deadRate": "0.71", + "showRate": false, + "heal": 420, + "healRate": "99.29", + "showHeal": true + } + }, + { + "name": "肇庆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 1, + "deadRate": "5.26", + "showRate": false, + "heal": 18, + "healRate": "94.74", + "showHeal": true + } + }, + { + "name": "东莞", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 99, + "suspect": 0, + "dead": 1, + "deadRate": "1.01", + "showRate": false, + "heal": 98, + "healRate": "98.99", + "showHeal": true + } + }, + { + "name": "阳江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "惠州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 62, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 62, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "茂名", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "汕头", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 25, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 25, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "福建", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true, + "tip": "福建省累计报告境外输入确诊病例215例。" + }, + "total": { + "nowConfirm": 24, + "confirm": 511, + "suspect": 0, + "dead": 1, + "deadRate": "0.20", + "showRate": false, + "heal": 486, + "healRate": "95.11", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 24, + "confirm": 215, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 191, + "healRate": "88.84", + "showHeal": true + } + }, + { + "name": "莆田", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 56, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 56, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "漳州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 20, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "宁德", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 26, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 26, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "龙岩", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南平", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 20, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "三明", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "泉州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 47, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 47, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "厦门", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 35, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 35, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "福州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 72, + "suspect": 0, + "dead": 1, + "deadRate": "1.39", + "showRate": false, + "heal": 71, + "healRate": "98.61", + "showHeal": true + } + } + ] + }, + { + "name": "内蒙古", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true, + "tip": "内蒙古自治区累计报告境外输入确诊病例256例。" + }, + "total": { + "nowConfirm": 21, + "confirm": 361, + "suspect": 0, + "dead": 1, + "deadRate": "0.28", + "showRate": false, + "heal": 339, + "healRate": "93.91", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 21, + "confirm": 256, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 235, + "healRate": "91.80", + "showHeal": true + } + }, + { + "name": "呼伦贝尔", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 37, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 37, + "healRate": "100.00", + "showHeal": true, + "grade": "全部低风险" + } + }, + { + "name": "包头", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "呼和浩特", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "乌兰察布", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "赤峰", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "锡林郭勒", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "通辽", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "鄂尔多斯", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巴彦淖尔", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 1, + "deadRate": "12.50", + "showRate": false, + "heal": 7, + "healRate": "87.50", + "showHeal": true + } + }, + { + "name": "兴安盟", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "乌海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "陕西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "陕西累计报告境外输入确诊病例260例。" + }, + "total": { + "nowConfirm": 13, + "confirm": 505, + "suspect": 0, + "dead": 3, + "deadRate": "0.59", + "showRate": false, + "heal": 489, + "healRate": "96.83", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 13, + "confirm": 260, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 247, + "healRate": "95.00", + "showHeal": true + } + }, + { + "name": "韩城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "渭南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "咸阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "西安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 120, + "suspect": 0, + "dead": 3, + "deadRate": "2.50", + "showRate": false, + "heal": 117, + "healRate": "97.50", + "showHeal": true + } + }, + { + "name": "汉中", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 26, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 26, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "杨凌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "榆林", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "商洛", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "铜川", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "延安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宝鸡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "安康", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 26, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 26, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "云南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "云南省累计报告境外输入确诊病例55例。" + }, + "total": { + "nowConfirm": 13, + "confirm": 229, + "suspect": 0, + "dead": 2, + "deadRate": "0.87", + "showRate": false, + "heal": 214, + "healRate": "93.45", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 13, + "confirm": 55, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 42, + "healRate": "76.36", + "showHeal": true + } + }, + { + "name": "昭通市", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 25, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 25, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "德宏州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "昆明", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 53, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 53, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "保山市", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "玉溪", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 1, + "deadRate": "7.14", + "showRate": false, + "heal": 13, + "healRate": "92.86", + "showHeal": true + } + }, + { + "name": "红河", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "曲靖", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "大理", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "西双版纳州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 1, + "deadRate": "6.67", + "showRate": false, + "heal": 14, + "healRate": "93.33", + "showHeal": true + } + }, + { + "name": "文山州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "普洱", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "楚雄州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "丽江市", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "临沧", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "浙江", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true, + "tip": "浙江累计报告境外输入确诊病例87例。" + }, + "total": { + "nowConfirm": 12, + "confirm": 1306, + "suspect": 0, + "dead": 1, + "deadRate": "0.08", + "showRate": false, + "heal": 1293, + "healRate": "99.00", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 12, + "confirm": 87, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 75, + "healRate": "86.21", + "showHeal": true + } + }, + { + "name": "金华", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 55, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 55, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "省十里丰监狱", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 36, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 36, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "丽水", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "舟山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "衢州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "台州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 147, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 147, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "绍兴", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 42, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 42, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "嘉兴", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 46, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 46, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "湖州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "温州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 504, + "suspect": 0, + "dead": 1, + "deadRate": "0.20", + "showRate": false, + "heal": 503, + "healRate": "99.80", + "showHeal": true + } + }, + { + "name": "宁波", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 157, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 157, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "杭州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 181, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 181, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "山东", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true, + "tip": "山东累计报告境外输入确诊病例85例。" + }, + "total": { + "nowConfirm": 9, + "confirm": 862, + "suspect": 0, + "dead": 7, + "deadRate": "0.81", + "showRate": false, + "heal": 846, + "healRate": "98.14", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 9, + "confirm": 85, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 76, + "healRate": "89.41", + "showHeal": true + } + }, + { + "name": "泰安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 35, + "suspect": 0, + "dead": 2, + "deadRate": "5.71", + "showRate": false, + "heal": 33, + "healRate": "94.29", + "showHeal": true + } + }, + { + "name": "济宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 260, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 260, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "济南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 47, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 47, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "淄博", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 30, + "suspect": 0, + "dead": 1, + "deadRate": "3.33", + "showRate": false, + "heal": 29, + "healRate": "96.67", + "showHeal": true + } + }, + { + "name": "枣庄", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 24, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 24, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "烟台", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 47, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 47, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "潍坊", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 44, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 44, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "青岛", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 79, + "suspect": 0, + "dead": 1, + "deadRate": "1.27", + "showRate": false, + "heal": 78, + "healRate": "98.73", + "showHeal": true + } + }, + { + "name": "威海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 38, + "suspect": 0, + "dead": 1, + "deadRate": "2.63", + "showRate": false, + "heal": 37, + "healRate": "97.37", + "showHeal": true + } + }, + { + "name": "日照", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 16, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 16, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "临沂", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 49, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 49, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "聊城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 38, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 38, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "滨州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "菏泽", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "德州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 37, + "suspect": 0, + "dead": 2, + "deadRate": "5.41", + "showRate": false, + "heal": 35, + "healRate": "94.59", + "showHeal": true + } + } + ] + }, + { + "name": "黑龙江", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true, + "tip": "黑龙江省累计报告境外输入确诊病例389例。" + }, + "total": { + "nowConfirm": 8, + "confirm": 962, + "suspect": 0, + "dead": 13, + "deadRate": "1.35", + "showRate": false, + "heal": 941, + "healRate": "97.82", + "showHeal": true + }, + "children": [ + { + "name": "牡丹江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 6, + "confirm": 36, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 30, + "healRate": "83.33", + "showHeal": true, + "grade": "部分中风险" + } + }, + { + "name": "黑河", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 1, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "93.33", + "showHeal": true, + "grade": "部分中风险" + } + }, + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 1, + "confirm": 389, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 388, + "healRate": "99.74", + "showHeal": true + } + }, + { + "name": "大兴安岭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "哈尔滨", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 264, + "suspect": 0, + "dead": 4, + "deadRate": "1.52", + "showRate": false, + "heal": 260, + "healRate": "98.48", + "showHeal": true + } + }, + { + "name": "大庆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 27, + "suspect": 0, + "dead": 1, + "deadRate": "3.70", + "showRate": false, + "heal": 26, + "healRate": "96.30", + "showHeal": true + } + }, + { + "name": "齐齐哈尔", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 43, + "suspect": 0, + "dead": 1, + "deadRate": "2.33", + "showRate": false, + "heal": 42, + "healRate": "97.67", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "双鸭山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 52, + "suspect": 0, + "dead": 3, + "deadRate": "5.77", + "showRate": false, + "heal": 49, + "healRate": "94.23", + "showHeal": true + } + }, + { + "name": "绥化", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 47, + "suspect": 0, + "dead": 4, + "deadRate": "8.51", + "showRate": false, + "heal": 43, + "healRate": "91.49", + "showHeal": true + } + }, + { + "name": "鸡西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 46, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 46, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "七台河", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "鹤岗", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "伊春", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "佳木斯", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "河南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "河南累计报告26例境外输入型病例。" + }, + "total": { + "nowConfirm": 7, + "confirm": 1299, + "suspect": 0, + "dead": 22, + "deadRate": "1.69", + "showRate": false, + "heal": 1270, + "healRate": "97.77", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 7, + "confirm": 26, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "73.08", + "showHeal": true + } + }, + { + "name": "许昌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 39, + "suspect": 0, + "dead": 1, + "deadRate": "2.56", + "showRate": false, + "heal": 38, + "healRate": "97.44", + "showHeal": true + } + }, + { + "name": "周口", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 76, + "suspect": 0, + "dead": 1, + "deadRate": "1.32", + "showRate": false, + "heal": 75, + "healRate": "98.68", + "showHeal": true + } + }, + { + "name": "南阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 156, + "suspect": 0, + "dead": 3, + "deadRate": "1.92", + "showRate": false, + "heal": 153, + "healRate": "98.08", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "信阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 274, + "suspect": 0, + "dead": 2, + "deadRate": "0.73", + "showRate": false, + "heal": 272, + "healRate": "99.27", + "showHeal": true + } + }, + { + "name": "郑州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 157, + "suspect": 0, + "dead": 5, + "deadRate": "3.18", + "showRate": false, + "heal": 152, + "healRate": "96.82", + "showHeal": true + } + }, + { + "name": "安阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 53, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 53, + "healRate": "100.00", + "showHeal": true, + "grade": "2020/3/9 11:26:04" + } + }, + { + "name": "济源示范区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "新乡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 57, + "suspect": 0, + "dead": 3, + "deadRate": "5.26", + "showRate": false, + "heal": 54, + "healRate": "94.74", + "showHeal": true + } + }, + { + "name": "漯河", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 36, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 36, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "商丘", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 91, + "suspect": 0, + "dead": 3, + "deadRate": "3.30", + "showRate": false, + "heal": 88, + "healRate": "96.70", + "showHeal": true + } + }, + { + "name": "驻马店", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 139, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 139, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "焦作", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 32, + "suspect": 0, + "dead": 1, + "deadRate": "3.12", + "showRate": false, + "heal": 31, + "healRate": "96.88", + "showHeal": true + } + }, + { + "name": "开封", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 26, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 26, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "平顶山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 58, + "suspect": 0, + "dead": 1, + "deadRate": "1.72", + "showRate": false, + "heal": 57, + "healRate": "98.28", + "showHeal": true + } + }, + { + "name": "洛阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 31, + "suspect": 0, + "dead": 1, + "deadRate": "3.23", + "showRate": false, + "heal": 30, + "healRate": "96.77", + "showHeal": true + } + }, + { + "name": "濮阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "鹤壁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "三门峡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 1, + "deadRate": "14.29", + "showRate": false, + "heal": 6, + "healRate": "85.71", + "showHeal": true + } + } + ] + }, + { + "name": "天津", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false, + "tip": "天津市累计报告境外输入确诊病例162例。" + }, + "total": { + "nowConfirm": 6, + "confirm": 309, + "suspect": 0, + "dead": 3, + "deadRate": "0.97", + "showRate": false, + "heal": 300, + "healRate": "97.09", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 6, + "confirm": 162, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 156, + "healRate": "96.30", + "showHeal": true, + "grade": "全部低风险" + } + }, + { + "name": "宁河区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "北辰区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宝坻区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 60, + "suspect": 0, + "dead": 2, + "deadRate": "3.33", + "showRate": false, + "heal": 58, + "healRate": "96.67", + "showHeal": true + } + }, + { + "name": "河北区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "津南区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南开区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "河东区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 1, + "deadRate": "6.67", + "showRate": false, + "heal": 14, + "healRate": "93.33", + "showHeal": true + } + }, + { + "name": "滨海新区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true, + "grade": "全部低风险" + } + }, + { + "name": "和平区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "外地来津", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "武清区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "东丽区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "河西区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "西青区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "红桥区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "山西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "山西省累计报告境外输入确诊病例90例。" + }, + "total": { + "nowConfirm": 3, + "confirm": 224, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 221, + "healRate": "98.66", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 3, + "confirm": 90, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 87, + "healRate": "96.67", + "showHeal": true + } + }, + { + "name": "太原", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 21, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 21, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "晋中", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 37, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 37, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "大同", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "运城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "晋城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "忻州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "长治", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "朔州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "临汾", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "阳泉", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "吕梁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "江苏", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "江苏累计报告境外输入确诊病例53例。" + }, + "total": { + "nowConfirm": 2, + "confirm": 684, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 682, + "healRate": "99.71", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 2, + "confirm": 53, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 51, + "healRate": "96.23", + "showHeal": true + } + }, + { + "name": "徐州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 79, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 79, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宿迁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南通", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 40, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 40, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "苏州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 87, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 87, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南京", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 93, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 93, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "无锡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 55, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 55, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "盐城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 27, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 27, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "连云港", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 48, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 48, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "淮安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 66, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 66, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "镇江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "常州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 51, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 51, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "扬州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 23, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "泰州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 37, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 37, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "湖南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "湖南省累计报告境外输入确诊病例3例。" + }, + "total": { + "nowConfirm": 1, + "confirm": 1021, + "suspect": 0, + "dead": 4, + "deadRate": "0.39", + "showRate": false, + "heal": 1016, + "healRate": "99.51", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 1, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "66.67", + "showHeal": true + } + }, + { + "name": "张家界", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "湘西自治州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "娄底", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 76, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 76, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "怀化", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 40, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 40, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "郴州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 39, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 39, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "益阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 60, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 60, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "永州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 44, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 44, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "常德", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 82, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 82, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "岳阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 156, + "suspect": 0, + "dead": 1, + "deadRate": "0.64", + "showRate": false, + "heal": 155, + "healRate": "99.36", + "showHeal": true + } + }, + { + "name": "邵阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 102, + "suspect": 0, + "dead": 1, + "deadRate": "0.98", + "showRate": false, + "heal": 101, + "healRate": "99.02", + "showHeal": true + } + }, + { + "name": "湘潭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 36, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 36, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "株洲", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 80, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 80, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "衡阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 48, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 48, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "长沙", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 242, + "suspect": 0, + "dead": 2, + "deadRate": "0.83", + "showRate": false, + "heal": 240, + "healRate": "99.17", + "showHeal": true + } + } + ] + }, + { + "name": "广西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "广西累计报告境外输入确诊病例12例。" + }, + "total": { + "nowConfirm": 1, + "confirm": 264, + "suspect": 0, + "dead": 2, + "deadRate": "0.76", + "showRate": false, + "heal": 261, + "healRate": "98.86", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 1, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "91.67", + "showHeal": true + } + }, + { + "name": "桂林", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 32, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 32, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "来宾", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 55, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 55, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "防城港", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "柳州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 24, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 24, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "河池", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 28, + "suspect": 0, + "dead": 1, + "deadRate": "3.57", + "showRate": false, + "heal": 27, + "healRate": "96.43", + "showHeal": true + } + }, + { + "name": "北海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 44, + "suspect": 0, + "dead": 1, + "deadRate": "2.27", + "showRate": false, + "heal": 43, + "healRate": "97.73", + "showHeal": true + } + }, + { + "name": "玉林", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "钦州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "贵港", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "梧州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "百色", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "贺州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "安徽", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "安徽省累计报告境外输入确诊病例2例。" + }, + "total": { + "nowConfirm": 1, + "confirm": 993, + "suspect": 0, + "dead": 6, + "deadRate": "0.60", + "showRate": false, + "heal": 986, + "healRate": "99.30", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 1, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "50.00", + "showHeal": true + } + }, + { + "name": "黄山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宣城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "池州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "亳州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 108, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 108, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "六安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 69, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 69, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宿州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 41, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 41, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "滁州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "阜阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 156, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 156, + "healRate": "100.00", + "showHeal": true, + "grade": "全部低风险" + } + }, + { + "name": "安庆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 83, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 83, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "铜陵", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 29, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 29, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "淮北", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 27, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 27, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "马鞍山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 38, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 38, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "淮南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 27, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 27, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "蚌埠", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 160, + "suspect": 0, + "dead": 5, + "deadRate": "3.12", + "showRate": false, + "heal": 155, + "healRate": "96.88", + "showHeal": true + } + }, + { + "name": "芜湖", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 34, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 34, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "合肥", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 174, + "suspect": 0, + "dead": 1, + "deadRate": "0.57", + "showRate": false, + "heal": 173, + "healRate": "99.43", + "showHeal": true + } + } + ] + }, + { + "name": "重庆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "重庆市累计报告境外输入确诊病例14例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 590, + "suspect": 0, + "dead": 6, + "deadRate": "1.02", + "showRate": false, + "heal": 584, + "healRate": "98.98", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "荣昌区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "大足区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "綦江区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 23, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "长寿区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "江北区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 28, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 28, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "沙坪坝区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "潼南区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "铜梁区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "九龙坡区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 21, + "suspect": 0, + "dead": 1, + "deadRate": "4.76", + "showRate": false, + "heal": 20, + "healRate": "95.24", + "showHeal": true + } + }, + { + "name": "丰都县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南岸区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "万州区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 118, + "suspect": 0, + "dead": 4, + "deadRate": "3.39", + "showRate": false, + "heal": 114, + "healRate": "96.61", + "showHeal": true + } + }, + { + "name": "两江新区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巴南区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "渝中区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 20, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "垫江县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 20, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "云阳县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 25, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 25, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "奉节县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "石柱县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "涪陵区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "渝北区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "彭水县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "忠县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 21, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 21, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "开州区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 21, + "suspect": 0, + "dead": 1, + "deadRate": "4.76", + "showRate": false, + "heal": 20, + "healRate": "95.24", + "showHeal": true + } + }, + { + "name": "合川区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 23, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "大渡口区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巫溪县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巫山县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "万盛经开区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "酉阳县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "璧山区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "高新区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "永川区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "江津区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "武隆区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "梁平区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "城口县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "黔江区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "秀山县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "青海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false, + "tip": "" + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + }, + "children": [ + { + "name": "海北州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "西宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "河北", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "河北累计报告境外输入确诊病例34例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 373, + "suspect": 0, + "dead": 6, + "deadRate": "1.61", + "showRate": false, + "heal": 367, + "healRate": "98.39", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 34, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 34, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "沧州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 49, + "suspect": 0, + "dead": 3, + "deadRate": "6.12", + "showRate": false, + "heal": 46, + "healRate": "93.88", + "showHeal": true + } + }, + { + "name": "廊坊", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 32, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 32, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "保定", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 48, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 48, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "张家口", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 43, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 43, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "唐山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 58, + "suspect": 0, + "dead": 1, + "deadRate": "1.72", + "showRate": false, + "heal": 57, + "healRate": "98.28", + "showHeal": true + } + }, + { + "name": "邯郸", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 32, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 32, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "石家庄", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 29, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 29, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "承德", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "衡水", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "秦皇岛", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 1, + "deadRate": "10.00", + "showRate": false, + "heal": 9, + "healRate": "90.00", + "showHeal": true + } + }, + { + "name": "邢台", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 1, + "deadRate": "4.35", + "showRate": false, + "heal": 22, + "healRate": "95.65", + "showHeal": true + } + } + ] + }, + { + "name": "西藏", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false, + "tip": "" + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + }, + "children": [ + { + "name": "拉萨", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "吉林", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "吉林累计报告境外输入确诊病例19例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 157, + "suspect": 0, + "dead": 2, + "deadRate": "1.27", + "showRate": false, + "heal": 155, + "healRate": "98.73", + "showHeal": true + }, + "children": [ + { + "name": "四平", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 1, + "deadRate": "5.88", + "showRate": false, + "heal": 16, + "healRate": "94.12", + "showHeal": true + } + }, + { + "name": "吉林", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 48, + "suspect": 0, + "dead": 1, + "deadRate": "2.08", + "showRate": false, + "heal": 47, + "healRate": "97.92", + "showHeal": true + } + }, + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "通化", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "长春", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 45, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 45, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "白城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "公主岭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "辽源", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "延边", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "松原", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "梅河口市", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "宁夏", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "宁夏累计确诊病例中包含3名境外输入型病例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 75, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 75, + "healRate": "100.00", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "银川", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 34, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 34, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "吴忠", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 28, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 28, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "固原", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "中卫", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "石嘴山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宁东管委会", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "湖北", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "" + }, + "total": { + "nowConfirm": 0, + "confirm": 68149, + "suspect": 0, + "dead": 4512, + "deadRate": "6.62", + "showRate": false, + "heal": 63637, + "healRate": "93.38", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "随州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1307, + "suspect": 0, + "dead": 45, + "deadRate": "3.44", + "showRate": false, + "heal": 1262, + "healRate": "96.56", + "showHeal": true + } + }, + { + "name": "恩施州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 252, + "suspect": 0, + "dead": 7, + "deadRate": "2.78", + "showRate": false, + "heal": 245, + "healRate": "97.22", + "showHeal": true + } + }, + { + "name": "武汉", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 50340, + "suspect": 0, + "dead": 3869, + "deadRate": "7.69", + "showRate": false, + "heal": 46471, + "healRate": "92.31", + "showHeal": true + } + }, + { + "name": "宜昌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 931, + "suspect": 0, + "dead": 37, + "deadRate": "3.97", + "showRate": false, + "heal": 894, + "healRate": "96.03", + "showHeal": true + } + }, + { + "name": "荆州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1580, + "suspect": 0, + "dead": 52, + "deadRate": "3.29", + "showRate": false, + "heal": 1528, + "healRate": "96.71", + "showHeal": true + } + }, + { + "name": "黄冈", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2907, + "suspect": 0, + "dead": 125, + "deadRate": "4.30", + "showRate": false, + "heal": 2782, + "healRate": "95.70", + "showHeal": true + } + }, + { + "name": "十堰", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 672, + "suspect": 0, + "dead": 8, + "deadRate": "1.19", + "showRate": false, + "heal": 664, + "healRate": "98.81", + "showHeal": true + } + }, + { + "name": "孝感", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3518, + "suspect": 0, + "dead": 129, + "deadRate": "3.67", + "showRate": false, + "heal": 3389, + "healRate": "96.33", + "showHeal": true + } + }, + { + "name": "仙桃", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 575, + "suspect": 0, + "dead": 22, + "deadRate": "3.83", + "showRate": false, + "heal": 553, + "healRate": "96.17", + "showHeal": true + } + }, + { + "name": "黄石", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1015, + "suspect": 0, + "dead": 39, + "deadRate": "3.84", + "showRate": false, + "heal": 976, + "healRate": "96.16", + "showHeal": true + } + }, + { + "name": "咸宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 836, + "suspect": 0, + "dead": 15, + "deadRate": "1.79", + "showRate": false, + "heal": 821, + "healRate": "98.21", + "showHeal": true + } + }, + { + "name": "襄阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1175, + "suspect": 0, + "dead": 40, + "deadRate": "3.40", + "showRate": false, + "heal": 1135, + "healRate": "96.60", + "showHeal": true + } + }, + { + "name": "鄂州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1394, + "suspect": 0, + "dead": 59, + "deadRate": "4.23", + "showRate": false, + "heal": 1335, + "healRate": "95.77", + "showHeal": true + } + }, + { + "name": "神农架", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "潜江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 198, + "suspect": 0, + "dead": 9, + "deadRate": "4.55", + "showRate": false, + "heal": 189, + "healRate": "95.45", + "showHeal": true + } + }, + { + "name": "荆门", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 928, + "suspect": 0, + "dead": 41, + "deadRate": "4.42", + "showRate": false, + "heal": 887, + "healRate": "95.58", + "showHeal": true + } + }, + { + "name": "天门", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 496, + "suspect": 0, + "dead": 15, + "deadRate": "3.02", + "showRate": false, + "heal": 481, + "healRate": "96.98", + "showHeal": true + } + } + ] + }, + { + "name": "甘肃", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "甘肃累计报告境外输入确诊病例90例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 182, + "suspect": 0, + "dead": 2, + "deadRate": "1.10", + "showRate": false, + "heal": 180, + "healRate": "98.90", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 90, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 90, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "兰州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 37, + "suspect": 0, + "dead": 2, + "deadRate": "5.41", + "showRate": false, + "heal": 35, + "healRate": "94.59", + "showHeal": true + } + }, + { + "name": "定西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "平凉", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "庆阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "白银", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "甘南州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "天水", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "陇南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "临夏", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "张掖", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "金昌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "江西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "江西累计报告境外输入病例5例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 935, + "suspect": 0, + "dead": 1, + "deadRate": "0.11", + "showRate": false, + "heal": 934, + "healRate": "99.89", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "新余", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 129, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 129, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "赣州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 74, + "suspect": 0, + "dead": 1, + "deadRate": "1.35", + "showRate": false, + "heal": 73, + "healRate": "98.65", + "showHeal": true + } + }, + { + "name": "九江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 116, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 116, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南昌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 230, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 230, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "上饶", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 123, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 123, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "抚州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 72, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 72, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "吉安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "萍乡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 33, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 33, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宜春", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 106, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 106, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "鹰潭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "景德镇", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "赣江新区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "澳门", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "" + }, + "total": { + "nowConfirm": 0, + "confirm": 46, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 46, + "healRate": "100.00", + "showHeal": true + }, + "children": [ + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 0, + "confirm": 46, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 46, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "新疆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "" + }, + "total": { + "nowConfirm": 0, + "confirm": 980, + "suspect": 0, + "dead": 3, + "deadRate": "0.31", + "showRate": false, + "heal": 977, + "healRate": "99.69", + "showHeal": true + }, + "children": [ + { + "name": "喀什", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 80, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 80, + "healRate": "100.00", + "showHeal": true, + "grade": "低风险" + } + }, + { + "name": "乌鲁木齐", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 845, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 845, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "昌吉州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "兵团第九师", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 1, + "deadRate": "25.00", + "showRate": false, + "heal": 3, + "healRate": "75.00", + "showHeal": true + } + }, + { + "name": "吐鲁番", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "第八师石河子", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 1, + "deadRate": "25.00", + "showRate": false, + "heal": 3, + "healRate": "75.00", + "showHeal": true + } + }, + { + "name": "兵团第四师", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 1, + "deadRate": "10.00", + "showRate": false, + "heal": 9, + "healRate": "90.00", + "showHeal": true + } + }, + { + "name": "伊犁州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "六师五家渠", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "兵团第十二师", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巴州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "第七师", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "阿克苏", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "海南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false, + "tip": "海南省累计报告境外输入确诊病例2例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 171, + "suspect": 0, + "dead": 6, + "deadRate": "3.51", + "showRate": false, + "heal": 165, + "healRate": "96.49", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "三亚", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 55, + "suspect": 0, + "dead": 1, + "deadRate": "1.82", + "showRate": false, + "heal": 54, + "healRate": "98.18", + "showHeal": true + } + }, + { + "name": "海口", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 39, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 39, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "儋州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 1, + "deadRate": "6.67", + "showRate": false, + "heal": 14, + "healRate": "93.33", + "showHeal": true + } + }, + { + "name": "东方", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 1, + "deadRate": "33.33", + "showRate": false, + "heal": 2, + "healRate": "66.67", + "showHeal": true + } + }, + { + "name": "万宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "澄迈县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 1, + "deadRate": "11.11", + "showRate": false, + "heal": 8, + "healRate": "88.89", + "showHeal": true + } + }, + { + "name": "昌江县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "保亭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "琼海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 1, + "deadRate": "16.67", + "showRate": false, + "heal": 5, + "healRate": "83.33", + "showHeal": true + } + }, + { + "name": "临高县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "陵水县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "乐东", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "文昌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "定安县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 1, + "deadRate": "33.33", + "showRate": false, + "heal": 2, + "healRate": "66.67", + "showHeal": true + } + }, + { + "name": "琼中县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "贵州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "贵州累计报告境外输入确诊病例1例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 147, + "suspect": 0, + "dead": 2, + "deadRate": "1.36", + "showRate": false, + "heal": 145, + "healRate": "98.64", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "贵阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 36, + "suspect": 0, + "dead": 1, + "deadRate": "2.78", + "showRate": false, + "heal": 35, + "healRate": "97.22", + "showHeal": true + } + }, + { + "name": "遵义", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 32, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 32, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "六盘水", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 1, + "deadRate": "10.00", + "showRate": false, + "heal": 9, + "healRate": "90.00", + "showHeal": true + } + }, + { + "name": "毕节", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 23, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "黔南州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "安顺", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "黔东南州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "铜仁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "黔西南州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + } + ] + } + ] + } + ] +} \ No newline at end of file From 90a05a68768e64cd7b1282c1e95aa3604762e48f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Wed, 30 Dec 2020 18:21:22 +0800 Subject: [PATCH 02/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20Jsoup=E7=88=AC=E5=8F=96=E4=B8=81?= =?UTF-8?q?=E9=A6=99=E5=8C=BB=E7=94=9F=E7=9A=84=E7=96=AB=E6=83=85=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=20+=20=E8=A7=A3=E6=9E=90Html=E6=A0=BC=E5=BC=8F=20+=20?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E5=9C=A8=E6=B5=8F=E8=A7=88=E5=99=A8=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.mvn/wrapper/MavenWrapperDownloader.java" | 3 - .../pom.xml" | 7 +++ .../java/com/zgh/handler/DataHandler.java" | 23 -------- .../java/com/zgh/handler/JsoupHandler.java" | 56 +++++++++++++++++++ .../com/zgh/service/DataServiceImpl.java" | 4 +- 5 files changed, 65 insertions(+), 28 deletions(-) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/JsoupHandler.java" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/MavenWrapperDownloader.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/MavenWrapperDownloader.java" index a45eb6b..d6d1381 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/MavenWrapperDownloader.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/.mvn/wrapper/MavenWrapperDownloader.java" @@ -14,9 +14,6 @@ * limitations under the License. */ -import java.net.*; -import java.io.*; -import java.nio.channels.*; import java.util.Properties; public class MavenWrapperDownloader { diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" index ab247b0..026a3e0 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" @@ -55,6 +55,13 @@ 2.8.6 + + + org.jsoup + jsoup + 1.13.1 + + diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" index f5338b2..1cc1367 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" @@ -16,29 +16,6 @@ public class DataHandler { public static List getData() { - // 从文本中读取 数据 - // StringBuilder builder = new StringBuilder(); - // FileReader reader = null; - // try { - // reader = new FileReader("tmp.json"); - // char[] cBuf = new char[1024]; - // - // int offset = 0; - // while ((offset = reader.read(cBuf)) > 0) { - // builder.append(new String(cBuf, 0, offset)); - // } - // } catch (IOException e){ - // e.printStackTrace(); - // } finally { - // try { - // if (reader != null) { - // reader.close(); - // } - // } catch (IOException e) { - // e.printStackTrace(); - // } - // } - String str = HttpConnUtil.doGet(urlStr); Gson gson = new Gson(); diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/JsoupHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/JsoupHandler.java" new file mode 100644 index 0000000..ad90c1e --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/JsoupHandler.java" @@ -0,0 +1,56 @@ +package com.zgh.handler; + +import com.google.gson.Gson; +import com.zgh.bean.DataBean; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class JsoupHandler { + + // 新型冠状病毒肺炎 - 疫情实时追踪 from 丁香医生 + // 文件格式: Html + public static String urlStr = "https://ncov.dxy.cn/ncovh5/view/pneumonia"; + + public static List getData(){ + + // String url = HttpConnUtil.doGet(urlStr); + // Document doc = Jsoup.parse(url); + + Document doc; + String data = null; + try { + doc = Jsoup.connect(urlStr).get(); + Element script = doc.getElementById("getAreaStat"); + data = script.data(); + } catch (IOException e) { + e.printStackTrace(); + } + String subData = data.substring(data.indexOf("["), data.lastIndexOf("]") + 1); + + Gson gson = new Gson(); + ArrayList list = gson.fromJson(subData, ArrayList.class); + + ArrayList result = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Map map = (Map) list.get(i); + String name = (String) map.get("provinceName"); + double nowConfirm = (double) map.get("currentConfirmedCount"); + double confirm = (double) map.get("confirmedCount"); + double dead = (double) map.get("deadCount"); + double heal = (double) map.get("curedCount"); + + DataBean dataBean = new DataBean(name, (int) nowConfirm, (int) confirm, (int) dead, (int) heal); + result.add(dataBean); + } + + return result; + + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" index db75361..0cbe1fa 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" @@ -1,7 +1,7 @@ package com.zgh.service; -import com.zgh.handler.DataHandler; import com.zgh.bean.DataBean; +import com.zgh.handler.JsoupHandler; import org.springframework.stereotype.Service; import java.util.List; @@ -12,7 +12,7 @@ public class DataServiceImpl implements DataService { @Override public List list() { - return DataHandler.getData(); + return JsoupHandler.getData(); } } From 63f24cb7e1a20d62fd383f0abdefadf48131b1dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Wed, 30 Dec 2020 23:38:14 +0800 Subject: [PATCH 03/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20=E6=95=B0=E6=8D=AE=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E5=82=A8=20+=20=E6=95=B0=E6=8D=AE=E5=AD=98=E5=82=A8=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=20+=20=E5=AE=9A=E6=97=B6=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pom.xml" | 16 ++- .../zgh/SpringbootEpidemicApplication.java" | 4 + .../src/main/java/com/zgh/bean/DataBean.java" | 10 +- .../com/zgh/controller/DataController.java" | 2 +- .../java/com/zgh/handler/DataHandler.java" | 51 +++++++- .../java/com/zgh/handler/JsoupHandler.java" | 2 +- .../main/java/com/zgh/mapper/DataMapper.java" | 7 ++ .../java/com/zgh/service/DataService.java" | 8 +- .../com/zgh/service/DataServiceImpl.java" | 13 +- .../main/resources/application.properties" | 1 - .../src/main/resources/application.yml" | 7 ++ .../README.md" | 115 ++++++++++++++++-- 12 files changed, 207 insertions(+), 29 deletions(-) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mapper/DataMapper.java" delete mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.properties" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" index 026a3e0..f09a7a1 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 2.5.0-SNAPSHOT + 2.4.1 com.zgh @@ -62,6 +62,20 @@ 1.13.1 + + + mysql + mysql-connector-java + runtime + + + + + com.baomidou + mybatis-plus-boot-starter + 3.2.0 + + diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/SpringbootEpidemicApplication.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/SpringbootEpidemicApplication.java" index 80fcc6f..d047880 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/SpringbootEpidemicApplication.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/SpringbootEpidemicApplication.java" @@ -1,9 +1,13 @@ package com.zgh; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication +@MapperScan("com.zgh.mapper") +@EnableScheduling public class SpringbootEpidemicApplication { public static void main(String[] args) { diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/DataBean.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/DataBean.java" index 1835c7f..5fe06e4 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/DataBean.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/DataBean.java" @@ -1,11 +1,19 @@ package com.zgh.bean; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; @Data @AllArgsConstructor -public class DataBean { +@NoArgsConstructor +@TableName("illness") +public class DataBean implements Serializable { + + private Long id; private String name; diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/DataController.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/DataController.java" index 41dfe05..8102415 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/DataController.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/DataController.java" @@ -18,7 +18,7 @@ public class DataController { @GetMapping("/") public String list(Model model) { - List dataList = dataService.list(); + List dataList = dataService.list(); // mybatis-plus 查询全表数据 model.addAttribute("dataList", dataList); return "list"; diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" index 1cc1367..21b99d8 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" @@ -2,14 +2,63 @@ import com.google.gson.Gson; import com.zgh.bean.DataBean; +import com.zgh.service.DataService; import com.zgh.util.HttpConnUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; +@Component public class DataHandler { + @Autowired + private DataService service; + + /** + * @PostConstruct + * 修饰的方法 会在服务器启动时执行一次 且只执行一次 + * + * 数据初始化 + */ + @PostConstruct + public void saveData() { + + System.out.println("初始化数据的存储"); + + // 1.爬取疫情数据 + List dataBeans = getData(); + + // 2.清空表中数据 + service.remove(null); + + // 3.数据存储 + service.saveBatch(dataBeans); + + } + + private static final SimpleDateFormat dateformet = new SimpleDateFormat("HH:mm:ss"); + + /** + * @Scheduled + * 支持 cron 表达式 + * + * 定时更新数据 每十分钟更新一次 + */ + @Scheduled(cron = "0 0/10 * * * ?") + public void updateData() { + System.out.println("更新数据存储, 当前时间 " + dateformet.format(new Date())); + List dataBeans = getData(); + service.remove(null); + service.saveBatch(dataBeans); + } + // 新型冠状病毒肺炎 - 疫情实时追踪 from 腾讯新闻 // 文件格式: JSON public static String urlStr = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"; @@ -42,7 +91,7 @@ public static List getData() { double dead = (double) totalMap.get("dead"); double heal = (double) totalMap.get("heal"); - DataBean dataBean = new DataBean(name, (int) nowConfirm, (int) confirm, (int) dead, (int) heal); + DataBean dataBean = new DataBean(null, name, (int) nowConfirm, (int) confirm, (int) dead, (int) heal); result.add(dataBean); } diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/JsoupHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/JsoupHandler.java" index ad90c1e..27f316d 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/JsoupHandler.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/JsoupHandler.java" @@ -45,7 +45,7 @@ public static List getData(){ double dead = (double) map.get("deadCount"); double heal = (double) map.get("curedCount"); - DataBean dataBean = new DataBean(name, (int) nowConfirm, (int) confirm, (int) dead, (int) heal); + DataBean dataBean = new DataBean(null, name, (int) nowConfirm, (int) confirm, (int) dead, (int) heal); result.add(dataBean); } diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mapper/DataMapper.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mapper/DataMapper.java" new file mode 100644 index 0000000..27bd591 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mapper/DataMapper.java" @@ -0,0 +1,7 @@ +package com.zgh.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zgh.bean.DataBean; + +public interface DataMapper extends BaseMapper { +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataService.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataService.java" index 00a4378..fb75859 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataService.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataService.java" @@ -1,11 +1,7 @@ package com.zgh.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.zgh.bean.DataBean; -import java.util.List; - -public interface DataService { - - List list(); - +public interface DataService extends IService { } diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" index 0cbe1fa..fa5bf3a 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/DataServiceImpl.java" @@ -1,18 +1,11 @@ package com.zgh.service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zgh.bean.DataBean; -import com.zgh.handler.JsoupHandler; +import com.zgh.mapper.DataMapper; import org.springframework.stereotype.Service; -import java.util.List; - @Service -public class DataServiceImpl implements DataService { - - - @Override - public List list() { - return JsoupHandler.getData(); - } +public class DataServiceImpl extends ServiceImpl implements DataService{ } diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.properties" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.properties" deleted file mode 100644 index 8b13789..0000000 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.properties" +++ /dev/null @@ -1 +0,0 @@ - diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" new file mode 100644 index 0000000..1bf46bd --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" @@ -0,0 +1,7 @@ +# 设置 MySQL 数据源 +spring: + datasource: + url: jdbc:mysql://localhost:3306/epidemic?serverTimezone=UTC + username: root + password: root + driver-class-name: com.mysql.cj.jdbc.Driver diff --git "a/\343\200\22000\343\200\221demos_04/README.md" "b/\343\200\22000\343\200\221demos_04/README.md" index d312f30..b9f47bf 100644 --- "a/\343\200\22000\343\200\221demos_04/README.md" +++ "b/\343\200\22000\343\200\221demos_04/README.md" @@ -1,15 +1,16 @@ -# 环境 +# 通用环境 - 编程语言:Java 1.8 -- IDE:intelliJ IDEA 2020.2 +- IDE:intelliJ IDEA - 数据库:MySQL 8.0 -- Web容器:Tomcat 9.0.37 -- ssm:Spring + SpringMVC + Mybatis - 版本管理工具:Maven 3.6.3 - # 01:ssm在线视频学习网站 - 模拟 +# 01:ssm在线视频学习网站 - 模拟 + +- Web容器:Tomcat 9.0.37 +- ssm:Spring + SpringMVC + Mybatis -### 一、数据库 +### 一 : 数据库 1. 课程类型 course_type @@ -188,4 +189,104 @@ COLLATE = utf8_bin; 4. 服务器接处理URL(修改密码链接), - 验证URL是否合法(时间是否超时,是否是服务器生成,是否有篡改) - 跳转修改密码页面 - - 输入密码,提交密码修改用户密码 \ No newline at end of file + - 输入密码,提交密码修改用户密码 + +# 02:springboot-epidemic - 模拟 + +## 一、数据库 + +id、地区名 name、现有确诊人数 now_confirm、累计确诊人数 confirm、死亡人数 dead、治愈人数 heal + +```mysql +CREATE SCHEMA `epidemic` DEFAULT CHARACTER SET utf8 ; + +CREATE TABLE `epidemic`.`illness` ( + `id` BIGINT NOT NULL AUTO_INCREMENT, + `name` VARCHAR(255) NULL, + `now_confirm` INT NULL, + `confirm` INT NULL, + `dead` INT NULL, + `heal` INT NULL, + PRIMARY KEY (`id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = utf8; +``` + +## 二、爬虫 + +> 搜索引擎做的事儿,链接人和内容 + +爬虫: 网页爬取 -- 网页去重 -- 网页解析 -- 内容保存(倒排索引) + +- 通用型爬虫——非定向数据 (搜索引擎使用) +- 垂直型爬虫——定向数据(本项目使用) + +**爬取数据 新型冠状病毒肺炎 - 疫情实时追踪** + +1. 爬取对象:腾讯新闻 https://news.qq.com/zt2020/page/feiyan.htm#/ + 1. 疫情数据的请求地址 https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5 + 2. 数据格式 JSON +2. 爬取对象:丁香医生 https://ncov.dxy.cn/ncovh5/view/pneumonia + 1. 疫情数据的请求地址 https://ncov.dxy.cn/ncovh5/view/pneumonia + 2. 数据格式 HTML + +## 三、爬取数据并存储 + +**持久层框架使用 mybats-plus** + +1. pom.xml 引入依赖 +2. apllication.yml 数据库配置(url driver-class username password) +3. mapper接口 `extends BaseMapper` +4. 主程序入口增加注解 `@MapperScan("com.zgh.mapper")` +5. service + 1. 接口`extends IService` + 2. 子类实现 `extends ServiceImpl` +6. bean + 1. 序列化 `implements Serializable` + 2. 使用 lombok `@@Data @AllArgsConstructor @NoArgsConstructor` + 3. 对应数据库中具体的表 `@TableName("illness")` + +**初始化数据** + +1. 定义一个类 > 爬取疫情数据 > 每一份数据都封装到 bean 中 > 全部 bean 存储在集合中 + +2. 让其在服务器启动时执行 将数据存储入数据库中 方法上加上`@PostConstruct` + + 服务器启动流程:服务器加载 Servlet > Servlet 执行构造函数 > PostConstruct > init > service > destroy > PreDestroy > 服务器卸载 Servlet + +**定时更新数据** + +1. 主程序入口增加注解 `@EnableScheduling` +2. 在更新方法中设置定时时效 `@Scheduled(cron = "0 0/10 * * * ?")` 每十分钟执行一次 + +cron 表达式(有七个字段:秒 分 时 日 月 周 年) + +| 字段 | 范围 | +| :--: | :-------: | +| 秒 | 0-59 | +| 分钟 | 0-59 | +| 小时 | 0-23 | +| 日期 | 1-31 | +| 月份 | 1-12 | +| 星期 | 1-7 | +| 年份 | 2013-3000 | + +字符:`*`任意 `-`区间 `,`枚举 `/`步长 `L`最后 `W`工作日 + + `@Scheduled` + +1)cron 表达式 + +`@Scheduled(cron = "0 0/10 * * * ?")` 每十分钟执行一次 + +2)固定频率任务 + + `@Scheduled(fixedRate = 10000)` 每10s执行一次 + +从上一次方法执行开始的时间算起,如果上一次方法阻塞住了,下一次并不会执行,但是在阻塞这段时间内累计应该执行的次数,当不再阻塞时,一下子把这些全部执行掉,而后再按照固定速率继续执行 + +3)固定间隔任务 + + `@Scheduled(fixedDelay = 10000)` 每10s执行一次 + +以上一次方法执行完开始算起,如果上一次方法执行阻塞住了,那么直到上一次执行完,并间隔给定的时间后,执行下一次 \ No newline at end of file From fc2ebe7507a88b89ae24bda0c4224d7ee2952835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Thu, 31 Dec 2020 12:56:19 +0800 Subject: [PATCH 04/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20=E4=BD=BF=E7=94=A8echarts=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E6=95=B0=E6=8D=AE=E5=8F=AF=E8=A7=86=E5=8C=96=20?= =?UTF-8?q?=E6=8A=98=E7=BA=BF=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../graph.json" | 8655 +++++++ .../main/java/com/zgh/bean/GraphBean.java" | 24 + .../com/zgh/controller/GraphController.java" | 49 + .../java/com/zgh/handler/DataHandler.java" | 4 +- .../java/com/zgh/handler/GraphHandler.java" | 80 + .../java/com/zgh/mapper/GraphMapper.java" | 7 + .../java/com/zgh/service/GraphService.java" | 7 + .../com/zgh/service/GraphServiceImpl.java" | 10 + .../resources/static/echarts/echarts.min.js" | 19474 ++++++++++++++++ .../src/main/resources/templates/graph.html" | 60 + 10 files changed, 28368 insertions(+), 2 deletions(-) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/graph.json" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBean.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mapper/GraphMapper.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/GraphService.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/GraphServiceImpl.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/echarts.min.js" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graph.html" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/graph.json" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/graph.json" new file mode 100644 index 0000000..6e0aced --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/graph.json" @@ -0,0 +1,8655 @@ +{ + "ret": 0, + "info": "", + "data": { + "chinaDayAddList": [ + { + "suspect": 27, + "heal": 0, + "importedCase": 0, + "healRate": "0.0", + "date": "01.20", + "confirm": 77, + "dead": 0, + "infect": 0, + "deadRate": "0.0" + }, + { + "importedCase": 0, + "healRate": "0.0", + "confirm": 149, + "dead": 3, + "heal": 0, + "date": "01.21", + "suspect": 53, + "infect": 0, + "deadRate": "2.0" + }, + { + "confirm": 131, + "heal": 0, + "importedCase": 0, + "infect": 0, + "deadRate": "6.1", + "suspect": 257, + "dead": 8, + "healRate": "0.0", + "date": "01.22" + }, + { + "deadRate": "3.1", + "date": "01.23", + "dead": 8, + "heal": 6, + "infect": 0, + "healRate": "2.3", + "confirm": 259, + "suspect": 680, + "importedCase": 0 + }, + { + "confirm": 444, + "dead": 16, + "importedCase": 0, + "healRate": "0.7", + "suspect": 1118, + "heal": 3, + "infect": 0, + "deadRate": "3.6", + "date": "01.24" + }, + { + "suspect": 1309, + "deadRate": "2.2", + "healRate": "1.6", + "importedCase": 0, + "infect": 0, + "date": "01.25", + "confirm": 688, + "dead": 15, + "heal": 11 + }, + { + "deadRate": "3.1", + "date": "01.26", + "infect": 0, + "suspect": 3806, + "dead": 24, + "heal": 2, + "importedCase": 0, + "healRate": "0.3", + "confirm": 769 + }, + { + "importedCase": 0, + "infect": 0, + "deadRate": "1.5", + "healRate": "0.5", + "confirm": 1771, + "suspect": 2077, + "heal": 9, + "dead": 26, + "date": "01.27" + }, + { + "heal": 43, + "date": "01.28", + "importedCase": 0, + "infect": 0, + "deadRate": "1.8", + "healRate": "2.9", + "confirm": 1459, + "suspect": 3248, + "dead": 26 + }, + { + "suspect": 4148, + "heal": 21, + "deadRate": "2.2", + "date": "01.29", + "confirm": 1737, + "dead": 38, + "importedCase": 0, + "infect": 0, + "healRate": "1.2" + }, + { + "dead": 43, + "heal": 47, + "importedCase": 0, + "infect": 0, + "deadRate": "2.2", + "date": "01.30", + "confirm": 1982, + "suspect": 4812, + "healRate": "2.4" + }, + { + "suspect": 5019, + "importedCase": 0, + "infect": 0, + "deadRate": "2.2", + "confirm": 2102, + "dead": 46, + "heal": 72, + "healRate": "3.4", + "date": "01.31" + }, + { + "heal": 85, + "importedCase": 0, + "infect": 0, + "deadRate": "1.7", + "healRate": "3.3", + "date": "02.01", + "confirm": 2590, + "suspect": 4562, + "dead": 45 + }, + { + "deadRate": "2.0", + "healRate": "5.2", + "date": "02.02", + "confirm": 2829, + "suspect": 5173, + "heal": 147, + "importedCase": 0, + "dead": 57, + "infect": 0 + }, + { + "dead": 64, + "heal": 157, + "infect": 0, + "healRate": "4.9", + "date": "02.03", + "confirm": 3235, + "suspect": 5072, + "importedCase": 0, + "deadRate": "2.0" + }, + { + "date": "02.04", + "suspect": 3971, + "dead": 65, + "importedCase": 0, + "infect": 0, + "confirm": 3893, + "heal": 262, + "deadRate": "1.7", + "healRate": "6.7" + }, + { + "date": "02.05", + "confirm": 3697, + "suspect": 5328, + "importedCase": 0, + "infect": 0, + "deadRate": "2.0", + "dead": 73, + "heal": 261, + "healRate": "7.1" + }, + { + "confirm": 3143, + "dead": 73, + "heal": 387, + "deadRate": "2.3", + "date": "02.06", + "suspect": 4833, + "importedCase": 0, + "infect": 0, + "healRate": "12.3" + }, + { + "suspect": 4214, + "heal": 510, + "infect": 0, + "healRate": "15.0", + "date": "02.07", + "confirm": 3401, + "dead": 86, + "importedCase": 0, + "deadRate": "2.5" + }, + { + "confirm": 2656, + "suspect": 3916, + "dead": 89, + "heal": 600, + "infect": 0, + "healRate": "22.6", + "date": "02.08", + "importedCase": 0, + "deadRate": "3.4" + }, + { + "suspect": 4008, + "date": "02.09", + "confirm": 3062, + "dead": 97, + "heal": 632, + "importedCase": 0, + "infect": 0, + "deadRate": "3.2", + "healRate": "20.6" + }, + { + "dead": 108, + "importedCase": 0, + "confirm": 2484, + "suspect": 3536, + "heal": 716, + "infect": 0, + "deadRate": "4.3", + "healRate": "28.8", + "date": "02.10" + }, + { + "healRate": "36.8", + "suspect": 3342, + "heal": 744, + "importedCase": 0, + "infect": 0, + "deadRate": "4.8", + "date": "02.11", + "confirm": 2022, + "dead": 97 + }, + { + "confirm": 15153, + "dead": 254, + "infect": 0, + "deadRate": "1.7", + "healRate": "7.7", + "date": "02.12", + "suspect": 2807, + "heal": 1173, + "importedCase": 0 + }, + { + "suspect": 2450, + "importedCase": 0, + "healRate": "21.3", + "confirm": 5093, + "heal": 1083, + "infect": 0, + "deadRate": "2.4", + "date": "02.13", + "dead": 121 + }, + { + "deadRate": "5.4", + "date": "02.14", + "suspect": 2277, + "dead": 143, + "importedCase": 0, + "infect": 0, + "healRate": "51.9", + "confirm": 2644, + "heal": 1373 + }, + { + "confirm": 2009, + "suspect": 1918, + "heal": 1324, + "date": "02.15", + "healRate": "65.9", + "dead": 142, + "importedCase": 0, + "infect": 0, + "deadRate": "7.1" + }, + { + "confirm": 2051, + "deadRate": "5.1", + "healRate": "69.5", + "date": "02.16", + "suspect": 1563, + "dead": 105, + "heal": 1425, + "importedCase": 0, + "infect": 0 + }, + { + "healRate": "90.0", + "date": "02.17", + "confirm": 1891, + "dead": 98, + "importedCase": 0, + "infect": 0, + "suspect": 1432, + "heal": 1701, + "deadRate": "5.2" + }, + { + "dead": 136, + "deadRate": "7.8", + "date": "02.18", + "confirm": 1751, + "suspect": 1185, + "infect": 0, + "healRate": "104.3", + "heal": 1826, + "importedCase": 0 + }, + { + "deadRate": "14.0", + "suspect": 1277, + "dead": 115, + "importedCase": 0, + "healRate": "217.2", + "date": "02.19", + "confirm": 820, + "heal": 1781, + "infect": 0 + }, + { + "deadRate": "13.2", + "confirm": 892, + "dead": 118, + "importedCase": 0, + "infect": 0, + "healRate": "236.4", + "date": "02.20", + "suspect": 1614, + "heal": 2109 + }, + { + "importedCase": 0, + "deadRate": "27.3", + "healRate": "600.0", + "date": "02.21", + "dead": 109, + "heal": 2394, + "infect": 0, + "confirm": 399, + "suspect": 1361 + }, + { + "suspect": 882, + "infect": 0, + "deadRate": "14.9", + "confirm": 649, + "dead": 97, + "heal": 2235, + "importedCase": 0, + "healRate": "344.4", + "date": "02.22" + }, + { + "suspect": 620, + "dead": 150, + "importedCase": 0, + "infect": 0, + "deadRate": "36.1", + "healRate": "444.7", + "confirm": 416, + "heal": 1850, + "date": "02.23" + }, + { + "confirm": 517, + "suspect": 530, + "infect": 0, + "deadRate": "13.7", + "date": "02.24", + "dead": 71, + "heal": 2596, + "importedCase": 0, + "healRate": "502.1" + }, + { + "confirm": 411, + "infect": 0, + "deadRate": "12.7", + "suspect": 439, + "dead": 52, + "heal": 2422, + "importedCase": 0, + "healRate": "589.3", + "date": "02.25" + }, + { + "dead": 29, + "importedCase": 0, + "infect": 0, + "healRate": "626.4", + "date": "02.26", + "confirm": 440, + "suspect": 508, + "heal": 2756, + "deadRate": "6.6" + }, + { + "confirm": 329, + "heal": 3626, + "importedCase": 0, + "healRate": "1102.1", + "suspect": 452, + "dead": 44, + "infect": 0, + "deadRate": "13.4", + "date": "02.27" + }, + { + "suspect": 248, + "heal": 2892, + "deadRate": "10.9", + "healRate": "672.6", + "date": "02.28", + "confirm": 430, + "dead": 47, + "importedCase": 0, + "infect": 0 + }, + { + "confirm": 579, + "suspect": 132, + "heal": 2626, + "infect": 0, + "healRate": "453.5", + "date": "02.29", + "dead": 35, + "importedCase": 0, + "deadRate": "6.0" + }, + { + "dead": 42, + "importedCase": 0, + "deadRate": "20.4", + "healRate": "1380.1", + "date": "03.01", + "suspect": 141, + "heal": 2843, + "infect": 0, + "confirm": 206 + }, + { + "confirm": 128, + "suspect": 129, + "importedCase": 0, + "deadRate": "24.2", + "healRate": "2142.2", + "date": "03.02", + "dead": 31, + "heal": 2742, + "infect": 0 + }, + { + "confirm": 120, + "infect": 0, + "deadRate": "31.7", + "healRate": "2211.7", + "suspect": 143, + "dead": 38, + "heal": 2654, + "importedCase": 0, + "date": "03.03" + }, + { + "deadRate": "21.7", + "date": "03.04", + "confirm": 143, + "suspect": 143, + "dead": 31, + "heal": 2195, + "importedCase": 2, + "infect": 0, + "healRate": "1535.0" + }, + { + "importedCase": 16, + "infect": 0, + "deadRate": "20.7", + "date": "03.05", + "confirm": 145, + "suspect": 102, + "dead": 30, + "heal": 1684, + "healRate": "1161.4" + }, + { + "confirm": 103, + "dead": 28, + "suspect": 99, + "heal": 1684, + "importedCase": 24, + "infect": 0, + "deadRate": "27.2", + "healRate": "1635.0", + "date": "03.06" + }, + { + "suspect": 84, + "infect": 0, + "deadRate": "58.7", + "healRate": "3621.7", + "date": "03.07", + "confirm": 46, + "dead": 27, + "heal": 1666, + "importedCase": 3 + }, + { + "dead": 23, + "importedCase": 4, + "infect": 0, + "deadRate": "51.1", + "date": "03.08", + "confirm": 45, + "suspect": 60, + "heal": 1541, + "healRate": "3424.4" + }, + { + "confirm": 20, + "heal": 1298, + "importedCase": 2, + "date": "03.09", + "suspect": 36, + "dead": 17, + "infect": 0, + "deadRate": "85.0", + "healRate": "6490.0" + }, + { + "suspect": 31, + "dead": 22, + "healRate": "5112.9", + "deadRate": "71.0", + "date": "03.10", + "confirm": 31, + "heal": 1585, + "importedCase": 10, + "infect": 0 + }, + { + "dead": 11, + "infect": 0, + "deadRate": "44.0", + "suspect": 33, + "heal": 1320, + "importedCase": 6, + "healRate": "5280.0", + "date": "03.11", + "confirm": 25 + }, + { + "infect": 0, + "date": "03.12", + "suspect": 33, + "dead": 7, + "heal": 1329, + "healRate": "12081.8", + "confirm": 11, + "importedCase": 3, + "deadRate": "63.6" + }, + { + "confirm": 18, + "heal": 1433, + "deadRate": "77.8", + "healRate": "7961.1", + "date": "03.13", + "suspect": 17, + "dead": 14, + "importedCase": 7, + "infect": 0 + }, + { + "suspect": 39, + "dead": 10, + "infect": 0, + "confirm": 27, + "heal": 1373, + "importedCase": 16, + "deadRate": "37.0", + "healRate": "5085.2", + "date": "03.14" + }, + { + "suspect": 41, + "dead": 14, + "deadRate": "48.3", + "date": "03.15", + "confirm": 29, + "heal": 841, + "importedCase": 12, + "infect": 0, + "healRate": "2900.0" + }, + { + "date": "03.16", + "dead": 13, + "heal": 936, + "importedCase": 20, + "deadRate": "33.3", + "healRate": "2400.0", + "confirm": 39, + "suspect": 45, + "infect": 0 + }, + { + "confirm": 35, + "dead": 11, + "heal": 926, + "date": "03.17", + "suspect": 21, + "importedCase": 12, + "infect": 0, + "deadRate": "31.4", + "healRate": "2645.7" + }, + { + "suspect": 23, + "dead": 8, + "heal": 822, + "infect": 0, + "deadRate": "9.5", + "healRate": "978.6", + "confirm": 84, + "date": "03.18", + "importedCase": 34 + }, + { + "confirm": 65, + "dead": 3, + "infect": 0, + "healRate": "1133.8", + "date": "03.19", + "suspect": 31, + "heal": 737, + "importedCase": 39, + "deadRate": "4.6" + }, + { + "confirm": 116, + "heal": 592, + "date": "03.20", + "suspect": 36, + "dead": 8, + "importedCase": 41, + "infect": 0, + "deadRate": "6.9", + "healRate": "510.3" + }, + { + "confirm": 82, + "healRate": "617.1", + "suspect": 45, + "dead": 6, + "heal": 506, + "importedCase": 45, + "infect": 0, + "deadRate": "7.3", + "date": "03.21" + }, + { + "confirm": 102, + "suspect": 47, + "dead": 9, + "heal": 459, + "importedCase": 39, + "infect": 0, + "deadRate": "8.8", + "healRate": "450.0", + "date": "03.22" + }, + { + "confirm": 147, + "dead": 7, + "heal": 458, + "infect": 0, + "deadRate": "4.8", + "date": "03.23", + "suspect": 35, + "importedCase": 74, + "healRate": "311.6" + }, + { + "confirm": 99, + "infect": 0, + "importedCase": 47, + "deadRate": "4.0", + "healRate": "497.0", + "date": "03.24", + "suspect": 33, + "dead": 4, + "heal": 492 + }, + { + "suspect": 58, + "heal": 405, + "importedCase": 67, + "infect": 0, + "confirm": 114, + "dead": 6, + "deadRate": "5.3", + "healRate": "355.3", + "date": "03.25" + }, + { + "confirm": 118, + "suspect": 49, + "dead": 5, + "infect": 0, + "healRate": "458.5", + "heal": 541, + "importedCase": 54, + "deadRate": "4.2", + "date": "03.26" + }, + { + "heal": 385, + "confirm": 135, + "dead": 3, + "importedCase": 54, + "infect": 0, + "deadRate": "2.2", + "healRate": "285.2", + "date": "03.27", + "suspect": 29 + }, + { + "infect": 0, + "deadRate": "3.9", + "healRate": "373.4", + "date": "03.28", + "suspect": 28, + "dead": 5, + "heal": 478, + "importedCase": 44, + "confirm": 128 + }, + { + "confirm": 106, + "dead": 5, + "heal": 337, + "healRate": "317.9", + "date": "03.29", + "suspect": 17, + "importedCase": 30, + "infect": 0, + "deadRate": "4.7" + }, + { + "suspect": 44, + "dead": 3, + "heal": 288, + "importedCase": 48, + "infect": 0, + "confirm": 98, + "deadRate": "3.1", + "healRate": "293.9", + "date": "03.30" + }, + { + "confirm": 86, + "suspect": 26, + "importedCase": 35, + "deadRate": "8.1", + "healRate": "220.9", + "dead": 7, + "heal": 190, + "infect": 130, + "date": "03.31" + }, + { + "confirm": 93, + "suspect": 20, + "dead": 6, + "heal": 195, + "healRate": "209.7", + "importedCase": 35, + "infect": 55, + "deadRate": "6.5", + "date": "04.01" + }, + { + "suspect": 12, + "heal": 175, + "infect": 60, + "date": "04.02", + "confirm": 78, + "dead": 4, + "importedCase": 29, + "deadRate": "5.1", + "healRate": "224.4" + }, + { + "infect": 64, + "healRate": "272.6", + "date": "04.03", + "suspect": 11, + "importedCase": 18, + "heal": 199, + "deadRate": "5.5", + "confirm": 73, + "dead": 4 + }, + { + "healRate": "410.9", + "date": "04.04", + "dead": 3, + "heal": 226, + "infect": 47, + "deadRate": "5.5", + "confirm": 55, + "suspect": 11, + "importedCase": 25 + }, + { + "confirm": 75, + "suspect": 10, + "heal": 138, + "healRate": "184.0", + "date": "04.05", + "dead": 1, + "importedCase": 38, + "infect": 78, + "deadRate": "1.3" + }, + { + "infect": 30, + "deadRate": "0.0", + "date": "04.06", + "importedCase": 32, + "healRate": "154.5", + "confirm": 66, + "suspect": 12, + "dead": 0, + "heal": 102 + }, + { + "confirm": 86, + "heal": 136, + "importedCase": 59, + "date": "04.07", + "suspect": 12, + "dead": 2, + "infect": 137, + "deadRate": "2.3", + "healRate": "158.1" + }, + { + "confirm": 92, + "date": "04.08", + "deadRate": "2.2", + "healRate": "135.9", + "suspect": 17, + "dead": 2, + "heal": 125, + "importedCase": 61, + "infect": 56 + }, + { + "infect": 47, + "deadRate": "1.8", + "date": "04.09", + "confirm": 56, + "suspect": 3, + "importedCase": 38, + "dead": 1, + "heal": 127, + "healRate": "226.8" + }, + { + "dead": 4, + "heal": 97, + "date": "04.10", + "confirm": 64, + "suspect": 8, + "deadRate": "6.2", + "healRate": "151.6", + "importedCase": 42, + "infect": 34 + }, + { + "heal": 85, + "importedCase": 97, + "infect": 63, + "deadRate": "0.0", + "date": "04.11", + "suspect": 49, + "dead": 0, + "confirm": 113, + "healRate": "75.2" + }, + { + "date": "04.12", + "suspect": 6, + "dead": 2, + "infect": 61, + "deadRate": "1.7", + "healRate": "108.7", + "confirm": 115, + "heal": 125, + "importedCase": 98 + }, + { + "date": "04.13", + "suspect": 3, + "dead": 0, + "heal": 117, + "infect": 54, + "confirm": 99, + "importedCase": 86, + "deadRate": "0.0", + "healRate": "118.2" + }, + { + "importedCase": 36, + "infect": 57, + "healRate": "259.2", + "date": "04.14", + "confirm": 49, + "dead": 1, + "heal": 127, + "deadRate": "2.0", + "suspect": 11 + }, + { + "dead": 0, + "heal": 115, + "deadRate": "0.0", + "healRate": "221.2", + "date": "04.15", + "suspect": 4, + "importedCase": 34, + "infect": 64, + "confirm": 52 + }, + { + "confirm": 27, + "healRate": "355.6", + "date": "04.16", + "importedCase": 15, + "infect": 66, + "deadRate": "0.0", + "suspect": 3, + "dead": 0, + "heal": 96 + }, + { + "date": "04.17", + "suspect": 5, + "heal": 109, + "infect": 54, + "deadRate": "0.0", + "healRate": "351.6", + "confirm": 31, + "dead": 0, + "importedCase": 17 + }, + { + "deadRate": "0.0", + "date": "04.18", + "confirm": 21, + "suspect": 2, + "heal": 81, + "healRate": "385.7", + "dead": 0, + "importedCase": 9, + "infect": 44 + }, + { + "date": "04.19", + "confirm": 36, + "dead": 0, + "importedCase": 8, + "deadRate": "0.0", + "healRate": "194.4", + "suspect": 2, + "heal": 70, + "infect": 49 + }, + { + "confirm": 13, + "dead": 0, + "importedCase": 4, + "infect": 37, + "deadRate": "0.0", + "healRate": "1007.7", + "suspect": 3, + "heal": 131, + "date": "04.20" + }, + { + "healRate": "421.6", + "suspect": 3, + "deadRate": "0.0", + "heal": 156, + "importedCase": 23, + "infect": 42, + "date": "04.21", + "confirm": 37, + "dead": 0 + }, + { + "importedCase": 6, + "date": "04.22", + "confirm": 15, + "suspect": 0, + "dead": 0, + "heal": 105, + "infect": 27, + "deadRate": "0.0", + "healRate": "700.0" + }, + { + "dead": 0, + "heal": 89, + "deadRate": "0.0", + "healRate": "988.9", + "date": "04.23", + "confirm": 9, + "suspect": 2, + "importedCase": 2, + "infect": 34 + }, + { + "confirm": 13, + "deadRate": "0.0", + "infect": 29, + "healRate": "969.2", + "date": "04.24", + "suspect": 3, + "dead": 0, + "heal": 126, + "importedCase": 11 + }, + { + "importedCase": 5, + "infect": 30, + "date": "04.25", + "suspect": 0, + "dead": 0, + "heal": 88, + "confirm": 14, + "deadRate": "0.0", + "healRate": "628.6" + }, + { + "importedCase": 2, + "suspect": 5, + "heal": 108, + "infect": 25, + "deadRate": "0.0", + "healRate": "3600.0", + "date": "04.26", + "confirm": 3, + "dead": 0 + }, + { + "confirm": 6, + "dead": 0, + "importedCase": 3, + "deadRate": "0.0", + "suspect": 1, + "heal": 106, + "infect": 40, + "healRate": "1766.7", + "date": "04.27" + }, + { + "suspect": 2, + "dead": 0, + "heal": 65, + "healRate": "295.5", + "date": "04.28", + "confirm": 22, + "importedCase": 21, + "infect": 26, + "deadRate": "0.0" + }, + { + "importedCase": 4, + "date": "04.29", + "heal": 56, + "suspect": 3, + "dead": 0, + "infect": 33, + "deadRate": "0.0", + "healRate": "1400.0", + "confirm": 4 + }, + { + "confirm": 12, + "suspect": 3, + "heal": 60, + "importedCase": 6, + "date": "04.30", + "dead": 0, + "infect": 25, + "deadRate": "0.0", + "healRate": "500.0" + }, + { + "confirm": 3, + "suspect": 2, + "heal": 60, + "importedCase": 1, + "infect": 20, + "healRate": "2000.0", + "dead": 0, + "deadRate": "0.0", + "date": "05.01" + }, + { + "healRate": "680.0", + "date": "05.02", + "confirm": 5, + "suspect": 0, + "dead": 0, + "infect": 12, + "heal": 34, + "importedCase": 1, + "deadRate": "0.0" + }, + { + "importedCase": 3, + "infect": 13, + "deadRate": "0.0", + "confirm": 7, + "suspect": 1, + "dead": 0, + "heal": 77, + "healRate": "1100.0", + "date": "05.03" + }, + { + "dead": 0, + "heal": 110, + "importedCase": 1, + "date": "05.04", + "suspect": 0, + "infect": 15, + "deadRate": "0.0", + "healRate": "2750.0", + "confirm": 4 + }, + { + "importedCase": 2, + "infect": 20, + "deadRate": "0.0", + "healRate": "3900.0", + "confirm": 2, + "suspect": 3, + "dead": 0, + "heal": 78, + "date": "05.05" + }, + { + "suspect": 2, + "dead": 0, + "importedCase": 2, + "healRate": "2133.3", + "confirm": 3, + "heal": 64, + "infect": 6, + "deadRate": "0.0", + "date": "05.06" + }, + { + "confirm": 6, + "suspect": 3, + "heal": 56, + "importedCase": 0, + "deadRate": "0.0", + "date": "05.07", + "dead": 0, + "infect": 16, + "healRate": "933.3" + }, + { + "date": "05.08", + "suspect": 2, + "heal": 77, + "importedCase": 1, + "infect": 15, + "deadRate": "0.0", + "healRate": "7700.0", + "confirm": 1, + "dead": 0 + }, + { + "importedCase": 2, + "infect": 20, + "date": "05.09", + "deadRate": "0.0", + "healRate": "621.4", + "confirm": 14, + "suspect": 1, + "dead": 0, + "heal": 87 + }, + { + "dead": 0, + "importedCase": 7, + "healRate": "225.0", + "confirm": 20, + "suspect": 0, + "heal": 45, + "infect": 12, + "deadRate": "0.0", + "date": "05.10" + }, + { + "heal": 33, + "date": "05.11", + "suspect": 1, + "dead": 0, + "importedCase": 1, + "infect": 15, + "deadRate": "0.0", + "healRate": "3300.0", + "confirm": 1 + }, + { + "confirm": 7, + "dead": 0, + "importedCase": 1, + "infect": 8, + "deadRate": "0.0", + "healRate": "400.0", + "suspect": 1, + "heal": 28, + "date": "05.12" + }, + { + "deadRate": "0.0", + "date": "05.13", + "confirm": 6, + "dead": 0, + "heal": 27, + "importedCase": 0, + "suspect": 0, + "infect": 12, + "healRate": "450.0" + }, + { + "confirm": 5, + "heal": 23, + "deadRate": "0.0", + "date": "05.14", + "suspect": 1, + "dead": 0, + "importedCase": 0, + "infect": 11, + "healRate": "460.0" + }, + { + "infect": 13, + "date": "05.15", + "suspect": 2, + "dead": 0, + "heal": 24, + "importedCase": 6, + "confirm": 9, + "deadRate": "0.0", + "healRate": "266.7" + }, + { + "healRate": "280.0", + "date": "05.16", + "confirm": 5, + "suspect": 2, + "dead": 0, + "heal": 14, + "importedCase": 2, + "infect": 12, + "deadRate": "0.0" + }, + { + "dead": 0, + "importedCase": 4, + "infect": 18, + "deadRate": "0.0", + "healRate": "190.0", + "confirm": 10, + "suspect": 1, + "heal": 19, + "date": "05.17" + }, + { + "deadRate": "0.0", + "date": "05.18", + "confirm": 6, + "suspect": 1, + "importedCase": 3, + "healRate": "116.7", + "dead": 0, + "heal": 7, + "infect": 17 + }, + { + "healRate": "140.0", + "importedCase": 1, + "infect": 16, + "deadRate": "0.0", + "heal": 7, + "date": "05.19", + "confirm": 5, + "suspect": 3, + "dead": 0 + }, + { + "deadRate": "0.0", + "dead": 0, + "importedCase": 1, + "infect": 31, + "healRate": "350.0", + "date": "05.20", + "confirm": 2, + "suspect": 1, + "heal": 7 + }, + { + "confirm": 13, + "infect": 35, + "date": "05.21", + "suspect": 1, + "dead": 0, + "heal": 14, + "importedCase": 2, + "deadRate": "0.0", + "healRate": "107.7" + }, + { + "deadRate": "0.0", + "healRate": "200.0", + "date": "05.22", + "confirm": 2, + "dead": 0, + "heal": 4, + "importedCase": 0, + "suspect": 2, + "infect": 28 + }, + { + "date": "05.23", + "dead": 0, + "heal": 6, + "infect": 36, + "healRate": "200.0", + "confirm": 3, + "suspect": 3, + "importedCase": 2, + "deadRate": "0.0" + }, + { + "dead": 0, + "heal": 11, + "deadRate": "0.0", + "suspect": 0, + "importedCase": 11, + "infect": 40, + "healRate": "100.0", + "date": "05.24", + "confirm": 11 + }, + { + "confirm": 7, + "dead": 0, + "heal": 10, + "infect": 29, + "deadRate": "0.0", + "healRate": "142.9", + "suspect": 0, + "importedCase": 7, + "date": "05.25" + }, + { + "confirm": 1, + "suspect": 1, + "heal": 7, + "importedCase": 1, + "infect": 28, + "dead": 0, + "deadRate": "0.0", + "healRate": "700.0", + "date": "05.26" + }, + { + "healRate": "400.0", + "dead": 0, + "importedCase": 2, + "infect": 23, + "deadRate": "0.0", + "confirm": 3, + "suspect": 0, + "heal": 12, + "date": "05.27" + }, + { + "healRate": "0.0", + "confirm": 0, + "suspect": 0, + "infect": 5, + "deadRate": "0.0", + "dead": 0, + "heal": 5, + "importedCase": 0, + "date": "05.28" + }, + { + "deadRate": "0.0", + "healRate": "61.1", + "confirm": 18, + "importedCase": 4, + "heal": 11, + "infect": 4, + "date": "05.29", + "suspect": 1, + "dead": 0 + }, + { + "dead": 0, + "infect": 3, + "healRate": "80.0", + "date": "05.30", + "deadRate": "0.0", + "confirm": 5, + "suspect": 0, + "heal": 4, + "importedCase": 2 + }, + { + "confirm": 18, + "suspect": 0, + "infect": 16, + "date": "05.31", + "healRate": "33.3", + "dead": 0, + "heal": 6, + "importedCase": 16, + "deadRate": "0.0" + }, + { + "confirm": 9, + "dead": 0, + "importedCase": 5, + "healRate": "133.3", + "date": "06.01", + "suspect": 0, + "heal": 12, + "infect": 10, + "deadRate": "0.0" + }, + { + "dead": 0, + "heal": 2, + "importedCase": 1, + "suspect": 1, + "infect": 4, + "deadRate": "0.0", + "healRate": "28.6", + "date": "06.02", + "confirm": 7 + }, + { + "confirm": 1, + "suspect": 0, + "dead": 0, + "heal": 7, + "importedCase": 1, + "infect": 4, + "deadRate": "0.0", + "healRate": "700.0", + "date": "06.03" + }, + { + "confirm": 11, + "dead": 0, + "infect": 3, + "deadRate": "0.0", + "date": "06.04", + "suspect": 0, + "heal": 11, + "importedCase": 5, + "healRate": "100.0" + }, + { + "confirm": 6, + "dead": 0, + "heal": 6, + "infect": 2, + "suspect": 1, + "importedCase": 3, + "deadRate": "0.0", + "healRate": "100.0", + "date": "06.05" + }, + { + "infect": 5, + "deadRate": "0.0", + "healRate": "66.7", + "date": "06.06", + "confirm": 9, + "suspect": 2, + "dead": 0, + "heal": 6, + "importedCase": 5 + }, + { + "confirm": 5, + "suspect": 1, + "dead": 0, + "deadRate": "0.0", + "healRate": "220.0", + "date": "06.07", + "heal": 11, + "importedCase": 4, + "infect": 2 + }, + { + "dead": 0, + "heal": 10, + "deadRate": "0.0", + "confirm": 4, + "suspect": 0, + "importedCase": 3, + "infect": 21, + "healRate": "250.0", + "date": "06.08" + }, + { + "confirm": 3, + "suspect": 0, + "dead": 0, + "healRate": "266.7", + "heal": 8, + "importedCase": 3, + "infect": 5, + "deadRate": "0.0", + "date": "06.09" + }, + { + "infect": 4, + "healRate": "45.5", + "dead": 0, + "importedCase": 11, + "heal": 5, + "deadRate": "0.0", + "date": "06.10", + "confirm": 11, + "suspect": 0 + }, + { + "healRate": "114.3", + "date": "06.11", + "deadRate": "0.0", + "confirm": 7, + "suspect": 0, + "dead": 0, + "heal": 8, + "importedCase": 6, + "infect": 1 + }, + { + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.0", + "heal": 7, + "importedCase": 5, + "infect": 7, + "healRate": "63.6", + "date": "06.12" + }, + { + "date": "06.13", + "suspect": 1, + "dead": 0, + "heal": 3, + "infect": 9, + "healRate": "5.2", + "confirm": 58, + "importedCase": 19, + "deadRate": "0.0" + }, + { + "heal": 7, + "infect": 18, + "healRate": "14.3", + "date": "06.14", + "suspect": 1, + "dead": 0, + "deadRate": "0.0", + "confirm": 49, + "importedCase": 10 + }, + { + "dead": 0, + "healRate": "20.0", + "confirm": 45, + "suspect": 3, + "heal": 9, + "importedCase": 8, + "infect": 6, + "deadRate": "0.0", + "date": "06.15" + }, + { + "dead": 0, + "heal": 4, + "importedCase": 11, + "infect": 11, + "deadRate": "0.0", + "healRate": "9.1", + "date": "06.16", + "confirm": 44, + "suspect": 3 + }, + { + "dead": 0, + "infect": 8, + "healRate": "50.0", + "date": "06.17", + "confirm": 36, + "suspect": 3, + "heal": 18, + "importedCase": 4, + "deadRate": "0.0" + }, + { + "importedCase": 4, + "deadRate": "0.0", + "healRate": "13.5", + "date": "06.18", + "heal": 5, + "suspect": 2, + "dead": 0, + "infect": 5, + "confirm": 37 + }, + { + "suspect": 4, + "heal": 14, + "infect": 7, + "date": "06.19", + "confirm": 30, + "dead": 0, + "importedCase": 4, + "deadRate": "0.0", + "healRate": "46.7" + }, + { + "heal": 6, + "deadRate": "3.7", + "date": "06.20", + "confirm": 27, + "suspect": 3, + "dead": 1, + "importedCase": 1, + "infect": 6, + "healRate": "22.2" + }, + { + "importedCase": 7, + "deadRate": "0.0", + "healRate": "4.8", + "heal": 1, + "infect": 7, + "date": "06.21", + "confirm": 21, + "suspect": 2, + "dead": 0 + }, + { + "confirm": 52, + "suspect": 2, + "importedCase": 9, + "infect": 7, + "deadRate": "0.0", + "date": "06.22", + "dead": 0, + "heal": 13, + "healRate": "25.0" + }, + { + "confirm": 28, + "dead": 1, + "heal": 8, + "infect": 3, + "deadRate": "3.6", + "healRate": "28.6", + "date": "06.23", + "suspect": 4, + "importedCase": 3 + }, + { + "importedCase": 5, + "suspect": 0, + "dead": 0, + "infect": 1, + "deadRate": "0.0", + "healRate": "38.1", + "date": "06.24", + "confirm": 21, + "heal": 8 + }, + { + "suspect": 3, + "dead": 1, + "heal": 8, + "infect": 5, + "deadRate": "3.4", + "confirm": 29, + "importedCase": 2, + "healRate": "27.6", + "date": "06.25" + }, + { + "confirm": 24, + "infect": 12, + "healRate": "33.3", + "suspect": 1, + "dead": 0, + "heal": 8, + "importedCase": 4, + "deadRate": "0.0", + "date": "06.26" + }, + { + "suspect": 1, + "dead": 0, + "heal": 11, + "infect": 7, + "confirm": 18, + "importedCase": 3, + "deadRate": "0.0", + "healRate": "61.1", + "date": "06.27" + }, + { + "suspect": 4, + "heal": 18, + "confirm": 14, + "dead": 0, + "importedCase": 5, + "infect": 6, + "deadRate": "0.0", + "healRate": "128.6", + "date": "06.28" + }, + { + "dead": 0, + "importedCase": 11, + "deadRate": "0.0", + "suspect": 1, + "heal": 10, + "infect": 4, + "healRate": "43.5", + "date": "06.29", + "confirm": 23 + }, + { + "suspect": 2, + "dead": 0, + "deadRate": "0.0", + "healRate": "280.0", + "confirm": 5, + "heal": 14, + "importedCase": 0, + "infect": 3, + "date": "06.30" + }, + { + "suspect": 0, + "dead": 0, + "heal": 19, + "deadRate": "0.0", + "confirm": 31, + "infect": 2, + "healRate": "61.3", + "date": "07.01", + "importedCase": 2 + }, + { + "confirm": 15, + "heal": 15, + "suspect": 1, + "dead": 0, + "importedCase": 3, + "infect": 4, + "deadRate": "0.0", + "healRate": "100.0", + "date": "07.02" + }, + { + "healRate": "166.7", + "suspect": 2, + "dead": 0, + "heal": 15, + "importedCase": 2, + "deadRate": "0.0", + "confirm": 9, + "infect": 4, + "date": "07.03" + }, + { + "dead": 0, + "importedCase": 6, + "infect": 7, + "deadRate": "0.0", + "healRate": "142.1", + "date": "07.04", + "suspect": 1, + "heal": 27, + "confirm": 19 + }, + { + "importedCase": 3, + "infect": 11, + "deadRate": "0.0", + "date": "07.05", + "confirm": 14, + "suspect": 0, + "dead": 0, + "heal": 13, + "healRate": "92.9" + }, + { + "deadRate": "0.0", + "confirm": 25, + "suspect": 2, + "dead": 0, + "heal": 11, + "importedCase": 8, + "infect": 15, + "healRate": "44.0", + "date": "07.06" + }, + { + "confirm": 21, + "infect": 6, + "date": "07.07", + "deadRate": "0.0", + "healRate": "114.3", + "suspect": 0, + "dead": 0, + "heal": 24, + "importedCase": 7 + }, + { + "confirm": 33, + "importedCase": 9, + "healRate": "145.5", + "date": "07.08", + "suspect": 0, + "dead": 0, + "heal": 48, + "infect": 6, + "deadRate": "0.0" + }, + { + "confirm": 46, + "dead": 0, + "infect": 3, + "deadRate": "0.0", + "date": "07.09", + "suspect": 3, + "heal": 28, + "importedCase": 4, + "healRate": "60.9" + }, + { + "deadRate": "0.0", + "healRate": "59.5", + "confirm": 42, + "dead": 0, + "importedCase": 2, + "date": "07.10", + "suspect": 0, + "heal": 25, + "infect": 4 + }, + { + "healRate": "60.0", + "confirm": 35, + "suspect": 0, + "infect": 5, + "deadRate": "0.0", + "dead": 0, + "heal": 21, + "importedCase": 7, + "date": "07.11" + }, + { + "deadRate": "0.0", + "date": "07.12", + "confirm": 46, + "suspect": 0, + "dead": 0, + "healRate": "67.4", + "heal": 31, + "importedCase": 8, + "infect": 6 + }, + { + "suspect": 0, + "heal": 31, + "importedCase": 3, + "healRate": "56.4", + "date": "07.13", + "confirm": 55, + "dead": 1, + "infect": 5, + "deadRate": "1.8" + }, + { + "dead": 0, + "heal": 31, + "healRate": "57.4", + "date": "07.14", + "confirm": 54, + "suspect": 0, + "importedCase": 6, + "infect": 4, + "deadRate": "0.0" + }, + { + "healRate": "190.0", + "date": "07.15", + "suspect": 0, + "dead": 2, + "deadRate": "10.0", + "infect": 2, + "confirm": 20, + "heal": 38, + "importedCase": 1 + }, + { + "confirm": 78, + "dead": 0, + "healRate": "39.7", + "date": "07.16", + "suspect": 1, + "heal": 31, + "importedCase": 9, + "infect": 5, + "deadRate": "0.0" + }, + { + "healRate": "39.0", + "confirm": 82, + "dead": 1, + "deadRate": "1.2", + "infect": 14, + "date": "07.17", + "suspect": 1, + "heal": 32, + "importedCase": 6 + }, + { + "confirm": 80, + "heal": 27, + "healRate": "33.8", + "date": "07.18", + "deadRate": "1.2", + "suspect": 1, + "dead": 1, + "importedCase": 3, + "infect": 42 + }, + { + "confirm": 131, + "suspect": 1, + "dead": 0, + "deadRate": "0.0", + "healRate": "33.6", + "heal": 44, + "importedCase": 5, + "infect": 13, + "date": "07.19" + }, + { + "confirm": 84, + "dead": 0, + "heal": 26, + "importedCase": 3, + "suspect": 0, + "infect": 6, + "deadRate": "0.0", + "healRate": "31.0", + "date": "07.20" + }, + { + "healRate": "60.8", + "heal": 45, + "infect": 22, + "deadRate": "2.7", + "importedCase": 5, + "date": "07.21", + "confirm": 74, + "suspect": 0, + "dead": 2 + }, + { + "importedCase": 3, + "deadRate": "0.0", + "heal": 35, + "infect": 31, + "healRate": "25.9", + "date": "07.22", + "confirm": 135, + "suspect": 3, + "dead": 0 + }, + { + "healRate": "38.1", + "date": "07.23", + "confirm": 139, + "suspect": 1, + "dead": 1, + "deadRate": "0.7", + "heal": 53, + "importedCase": 6, + "infect": 43 + }, + { + "infect": 74, + "deadRate": "0.6", + "healRate": "27.5", + "date": "07.24", + "confirm": 160, + "heal": 44, + "importedCase": 5, + "suspect": 2, + "dead": 1 + }, + { + "dead": 2, + "healRate": "37.4", + "date": "07.25", + "confirm": 179, + "heal": 67, + "importedCase": 11, + "infect": 68, + "deadRate": "1.1", + "suspect": 2 + }, + { + "confirm": 189, + "suspect": 0, + "infect": 44, + "deadRate": "0.0", + "date": "07.26", + "dead": 0, + "heal": 50, + "importedCase": 4, + "healRate": "26.5" + }, + { + "confirm": 217, + "suspect": 0, + "importedCase": 4, + "infect": 34, + "date": "07.27", + "dead": 4, + "heal": 7, + "deadRate": "1.8", + "healRate": "3.2" + }, + { + "heal": 51, + "dead": 1, + "suspect": 0, + "importedCase": 3, + "infect": 27, + "deadRate": "0.5", + "healRate": "24.1", + "date": "07.28", + "confirm": 212 + }, + { + "healRate": "34.5", + "importedCase": 3, + "infect": 21, + "dead": 1, + "heal": 77, + "deadRate": "0.4", + "date": "07.29", + "confirm": 223, + "suspect": 1 + }, + { + "healRate": "31.2", + "infect": 11, + "suspect": 1, + "dead": 1, + "heal": 86, + "importedCase": 4, + "deadRate": "0.4", + "date": "07.30", + "confirm": 276 + }, + { + "suspect": 0, + "dead": 2, + "importedCase": 6, + "infect": 23, + "deadRate": "1.2", + "healRate": "64.5", + "confirm": 166, + "heal": 107, + "date": "07.31" + }, + { + "date": "08.01", + "healRate": "67.2", + "suspect": 0, + "dead": 4, + "heal": 121, + "importedCase": 16, + "infect": 20, + "deadRate": "2.2", + "confirm": 180 + }, + { + "importedCase": 7, + "healRate": "70.3", + "date": "08.02", + "confirm": 158, + "suspect": 3, + "dead": 4, + "heal": 111, + "infect": 11, + "deadRate": "2.5" + }, + { + "healRate": "83.3", + "confirm": 114, + "suspect": 1, + "dead": 3, + "deadRate": "2.6", + "heal": 95, + "importedCase": 6, + "infect": 21, + "date": "08.03" + }, + { + "deadRate": "3.7", + "heal": 121, + "suspect": 0, + "dead": 4, + "importedCase": 5, + "infect": 24, + "healRate": "111.0", + "date": "08.04", + "confirm": 109 + }, + { + "heal": 183, + "importedCase": 7, + "infect": 20, + "deadRate": "0.8", + "date": "08.05", + "confirm": 122, + "dead": 1, + "suspect": 0, + "healRate": "150.0" + }, + { + "dead": 3, + "deadRate": "2.3", + "date": "08.06", + "confirm": 133, + "suspect": 2, + "heal": 175, + "importedCase": 10, + "infect": 14, + "healRate": "131.6" + }, + { + "dead": 1, + "healRate": "164.2", + "date": "08.07", + "confirm": 120, + "suspect": 5, + "heal": 197, + "importedCase": 6, + "infect": 14, + "deadRate": "0.8" + }, + { + "confirm": 92, + "suspect": 0, + "dead": 0, + "importedCase": 8, + "healRate": "195.7", + "heal": 180, + "infect": 11, + "deadRate": "0.0", + "date": "08.08" + }, + { + "healRate": "128.9", + "date": "08.09", + "dead": 5, + "suspect": 1, + "heal": 156, + "importedCase": 35, + "infect": 31, + "deadRate": "4.1", + "confirm": 121 + }, + { + "suspect": 2, + "importedCase": 31, + "infect": 17, + "deadRate": "2.7", + "healRate": "108.0", + "confirm": 113, + "dead": 3, + "heal": 122, + "date": "08.10" + }, + { + "deadRate": "4.9", + "date": "08.11", + "confirm": 61, + "suspect": 1, + "heal": 195, + "importedCase": 16, + "dead": 3, + "infect": 20, + "healRate": "319.7" + }, + { + "heal": 200, + "importedCase": 11, + "confirm": 82, + "suspect": 1, + "dead": 5, + "infect": 20, + "deadRate": "6.1", + "healRate": "243.9", + "date": "08.12" + }, + { + "importedCase": 22, + "infect": 28, + "healRate": "171.7", + "date": "08.13", + "confirm": 99, + "suspect": 2, + "dead": 3, + "heal": 170, + "deadRate": "3.0" + }, + { + "confirm": 70, + "suspect": 1, + "dead": 1, + "heal": 154, + "deadRate": "1.4", + "healRate": "220.0", + "date": "08.14", + "importedCase": 14, + "infect": 20 + }, + { + "date": "08.15", + "confirm": 66, + "suspect": 1, + "heal": 152, + "importedCase": 15, + "healRate": "230.3", + "dead": 2, + "infect": 16, + "deadRate": "3.0" + }, + { + "suspect": 2, + "dead": 0, + "infect": 37, + "healRate": "90.8", + "date": "08.16", + "confirm": 98, + "heal": 89, + "importedCase": 22, + "deadRate": "0.0" + }, + { + "confirm": 67, + "importedCase": 22, + "healRate": "132.8", + "suspect": 0, + "dead": 0, + "heal": 89, + "infect": 17, + "deadRate": "0.0", + "date": "08.17" + }, + { + "suspect": 0, + "heal": 121, + "importedCase": 17, + "confirm": 54, + "dead": 2, + "infect": 14, + "deadRate": "3.7", + "healRate": "224.1", + "date": "08.18" + }, + { + "confirm": 33, + "dead": 1, + "heal": 169, + "importedCase": 7, + "deadRate": "3.0", + "healRate": "512.1", + "date": "08.19", + "suspect": 0, + "infect": 22 + }, + { + "date": "08.20", + "confirm": 40, + "suspect": 0, + "dead": 3, + "healRate": "237.5", + "heal": 95, + "importedCase": 22, + "infect": 23, + "deadRate": "7.5" + }, + { + "infect": 34, + "deadRate": "0.0", + "healRate": "264.0", + "date": "08.21", + "suspect": 1, + "heal": 132, + "importedCase": 22, + "confirm": 50, + "dead": 0 + }, + { + "dead": 1, + "importedCase": 12, + "deadRate": "2.6", + "healRate": "310.5", + "date": "08.22", + "confirm": 38, + "suspect": 2, + "heal": 118, + "infect": 15 + }, + { + "deadRate": "2.4", + "healRate": "180.5", + "confirm": 41, + "suspect": 1, + "heal": 74, + "importedCase": 16, + "dead": 1, + "infect": 27, + "date": "08.23" + }, + { + "dead": 0, + "heal": 70, + "date": "08.24", + "confirm": 23, + "suspect": 0, + "importedCase": 14, + "infect": 16, + "deadRate": "0.0", + "healRate": "304.3" + }, + { + "deadRate": "2.9", + "healRate": "323.5", + "date": "08.25", + "suspect": 0, + "infect": 14, + "heal": 110, + "importedCase": 15, + "confirm": 34, + "dead": 1 + }, + { + "heal": 89, + "suspect": 1, + "dead": 1, + "importedCase": 8, + "infect": 19, + "deadRate": "3.1", + "healRate": "278.1", + "date": "08.26", + "confirm": 32 + }, + { + "infect": 16, + "confirm": 30, + "suspect": 2, + "importedCase": 9, + "healRate": "280.0", + "date": "08.27", + "dead": 2, + "heal": 84, + "deadRate": "6.7" + }, + { + "suspect": 0, + "heal": 84, + "healRate": "381.8", + "confirm": 22, + "dead": 3, + "importedCase": 9, + "infect": 10, + "deadRate": "13.6", + "date": "08.28" + }, + { + "suspect": 0, + "heal": 65, + "importedCase": 9, + "infect": 4, + "confirm": 28, + "deadRate": "10.7", + "healRate": "232.1", + "date": "08.29", + "dead": 3 + }, + { + "infect": 19, + "confirm": 32, + "dead": 1, + "importedCase": 17, + "deadRate": "3.1", + "healRate": "178.1", + "date": "08.30", + "suspect": 0, + "heal": 57 + }, + { + "dead": 1, + "heal": 53, + "infect": 34, + "deadRate": "5.3", + "healRate": "278.9", + "date": "08.31", + "confirm": 19, + "suspect": 0, + "importedCase": 10 + }, + { + "confirm": 20, + "healRate": "320.0", + "date": "09.01", + "deadRate": "5.0", + "suspect": 0, + "dead": 1, + "heal": 64, + "importedCase": 8, + "infect": 19 + }, + { + "confirm": 20, + "dead": 3, + "importedCase": 11, + "healRate": "235.0", + "suspect": 0, + "heal": 47, + "infect": 12, + "deadRate": "15.0", + "date": "09.02" + }, + { + "deadRate": "3.0", + "confirm": 33, + "heal": 42, + "importedCase": 25, + "infect": 26, + "healRate": "127.3", + "date": "09.03", + "suspect": 0, + "dead": 1 + }, + { + "date": "09.04", + "confirm": 23, + "heal": 46, + "importedCase": 10, + "infect": 8, + "healRate": "200.0", + "suspect": 0, + "dead": 0, + "deadRate": "0.0" + }, + { + "infect": 17, + "healRate": "300.0", + "date": "09.05", + "suspect": 2, + "dead": 0, + "importedCase": 10, + "confirm": 19, + "heal": 57, + "deadRate": "0.0" + }, + { + "infect": 17, + "date": "09.06", + "confirm": 34, + "heal": 36, + "importedCase": 12, + "deadRate": "5.9", + "healRate": "105.9", + "suspect": 0, + "dead": 2 + }, + { + "confirm": 22, + "dead": 2, + "importedCase": 10, + "infect": 13, + "deadRate": "9.1", + "date": "09.07", + "suspect": 0, + "heal": 30, + "healRate": "136.4" + }, + { + "suspect": 5, + "heal": 31, + "importedCase": 2, + "infect": 8, + "deadRate": "11.1", + "healRate": "344.4", + "date": "09.08", + "confirm": 9, + "dead": 1 + }, + { + "confirm": 13, + "suspect": 0, + "importedCase": 7, + "infect": 15, + "dead": 0, + "heal": 25, + "deadRate": "0.0", + "healRate": "192.3", + "date": "09.09" + }, + { + "date": "09.10", + "confirm": 28, + "dead": 0, + "infect": 22, + "deadRate": "0.0", + "healRate": "157.1", + "suspect": 0, + "heal": 44, + "importedCase": 15 + }, + { + "suspect": 1, + "importedCase": 6, + "healRate": "125.0", + "date": "09.11", + "deadRate": "0.0", + "confirm": 20, + "dead": 0, + "heal": 25, + "infect": 8 + }, + { + "confirm": 23, + "dead": 1, + "importedCase": 10, + "infect": 70, + "deadRate": "4.3", + "date": "09.12", + "suspect": 0, + "heal": 28, + "healRate": "121.7" + }, + { + "confirm": 29, + "suspect": 3, + "importedCase": 10, + "healRate": "113.8", + "date": "09.13", + "dead": 0, + "heal": 33, + "infect": 39, + "deadRate": "0.0" + }, + { + "suspect": 0, + "dead": 1, + "heal": 17, + "importedCase": 8, + "healRate": "73.9", + "date": "09.14", + "confirm": 23, + "infect": 9, + "deadRate": "4.3" + }, + { + "deadRate": "6.2", + "date": "09.15", + "suspect": 0, + "dead": 1, + "heal": 22, + "importedCase": 12, + "confirm": 16, + "infect": 16, + "healRate": "137.5" + }, + { + "healRate": "152.6", + "dead": 0, + "infect": 14, + "heal": 29, + "importedCase": 9, + "deadRate": "0.0", + "date": "09.16", + "confirm": 19, + "suspect": 1 + }, + { + "healRate": "63.6", + "date": "09.17", + "confirm": 44, + "suspect": 1, + "importedCase": 32, + "infect": 20, + "dead": 0, + "heal": 28, + "deadRate": "0.0" + }, + { + "confirm": 17, + "suspect": 1, + "heal": 22, + "importedCase": 14, + "healRate": "129.4", + "dead": 1, + "infect": 24, + "deadRate": "5.9", + "date": "09.18" + }, + { + "confirm": 26, + "dead": 0, + "deadRate": "0.0", + "healRate": "100.0", + "date": "09.19", + "suspect": 1, + "heal": 26, + "importedCase": 10, + "infect": 21 + }, + { + "dead": 0, + "infect": 25, + "date": "09.20", + "confirm": 36, + "suspect": 0, + "heal": 11, + "importedCase": 12, + "deadRate": "0.0", + "healRate": "30.6" + }, + { + "healRate": "128.6", + "confirm": 14, + "suspect": 0, + "dead": 0, + "heal": 18, + "importedCase": 6, + "deadRate": "0.0", + "infect": 15, + "date": "09.21" + }, + { + "suspect": 0, + "dead": 0, + "heal": 20, + "infect": 18, + "deadRate": "0.0", + "confirm": 18, + "importedCase": 10, + "healRate": "111.1", + "date": "09.22" + }, + { + "dead": 1, + "importedCase": 7, + "infect": 20, + "deadRate": "10.0", + "healRate": "290.0", + "confirm": 10, + "suspect": 0, + "heal": 29, + "date": "09.23" + }, + { + "importedCase": 8, + "infect": 18, + "deadRate": "0.0", + "healRate": "120.0", + "date": "09.24", + "suspect": 1, + "heal": 18, + "confirm": 15, + "dead": 0 + }, + { + "suspect": 1, + "infect": 30, + "deadRate": "5.6", + "date": "09.25", + "confirm": 18, + "dead": 1, + "heal": 21, + "importedCase": 15, + "healRate": "116.7" + }, + { + "infect": 26, + "deadRate": "0.0", + "healRate": "113.3", + "heal": 17, + "importedCase": 14, + "dead": 0, + "date": "09.26", + "confirm": 15, + "suspect": 0 + }, + { + "date": "09.27", + "confirm": 27, + "suspect": 0, + "dead": 0, + "importedCase": 21, + "infect": 14, + "deadRate": "0.0", + "heal": 21, + "healRate": "77.8" + }, + { + "suspect": 1, + "dead": 0, + "deadRate": "0.0", + "healRate": "76.0", + "date": "09.28", + "confirm": 25, + "heal": 19, + "importedCase": 12, + "infect": 26 + }, + { + "suspect": 2, + "healRate": "126.1", + "date": "09.29", + "confirm": 23, + "dead": 0, + "heal": 29, + "importedCase": 19, + "infect": 22, + "deadRate": "0.0" + }, + { + "deadRate": "0.0", + "suspect": 3, + "dead": 0, + "heal": 37, + "infect": 10, + "confirm": 20, + "importedCase": 11, + "healRate": "185.0", + "date": "09.30" + }, + { + "suspect": 0, + "dead": 0, + "heal": 18, + "deadRate": "0.0", + "confirm": 21, + "importedCase": 10, + "infect": 33, + "healRate": "85.7", + "date": "10.01" + }, + { + "importedCase": 10, + "deadRate": "0.0", + "healRate": "84.2", + "date": "10.02", + "confirm": 19, + "suspect": 1, + "dead": 0, + "heal": 16, + "infect": 12 + }, + { + "infect": 26, + "deadRate": "0.0", + "healRate": "80.0", + "date": "10.03", + "confirm": 20, + "suspect": 3, + "importedCase": 16, + "dead": 0, + "heal": 16 + }, + { + "infect": 27, + "healRate": "76.0", + "date": "10.04", + "heal": 19, + "importedCase": 20, + "deadRate": "0.0", + "confirm": 25, + "suspect": 0, + "dead": 0 + }, + { + "dead": 0, + "heal": 11, + "importedCase": 12, + "infect": 31, + "deadRate": "0.0", + "date": "10.05", + "confirm": 24, + "suspect": 0, + "healRate": "45.8" + }, + { + "confirm": 18, + "heal": 26, + "infect": 24, + "date": "10.06", + "suspect": 0, + "dead": 0, + "importedCase": 7, + "deadRate": "0.0", + "healRate": "144.4" + }, + { + "heal": 27, + "infect": 8, + "deadRate": "0.0", + "date": "10.07", + "confirm": 24, + "suspect": 0, + "healRate": "112.5", + "dead": 0, + "importedCase": 11 + }, + { + "deadRate": "0.0", + "healRate": "37.5", + "date": "10.08", + "confirm": 40, + "suspect": 0, + "heal": 15, + "importedCase": 21, + "infect": 15, + "dead": 0 + }, + { + "confirm": 26, + "dead": 0, + "importedCase": 15, + "infect": 39, + "deadRate": "0.0", + "healRate": "123.1", + "date": "10.09", + "suspect": 0, + "heal": 32 + }, + { + "dead": 0, + "infect": 23, + "deadRate": "0.0", + "healRate": "63.0", + "date": "10.10", + "confirm": 27, + "suspect": 5, + "heal": 17, + "importedCase": 21 + }, + { + "confirm": 28, + "dead": 0, + "infect": 32, + "deadRate": "0.0", + "healRate": "50.0", + "date": "10.11", + "suspect": 1, + "heal": 14, + "importedCase": 21 + }, + { + "heal": 18, + "importedCase": 7, + "deadRate": "0.0", + "infect": 17, + "healRate": "69.2", + "date": "10.12", + "confirm": 26, + "suspect": 0, + "dead": 0 + }, + { + "confirm": 29, + "suspect": 2, + "dead": 0, + "heal": 17, + "infect": 18, + "deadRate": "0.0", + "healRate": "58.6", + "importedCase": 14, + "date": "10.13" + }, + { + "confirm": 11, + "suspect": 2, + "infect": 23, + "date": "10.14", + "dead": 0, + "heal": 15, + "importedCase": 10, + "deadRate": "0.0", + "healRate": "136.4" + }, + { + "confirm": 37, + "infect": 10, + "healRate": "59.5", + "date": "10.15", + "suspect": 1, + "dead": 0, + "heal": 22, + "importedCase": 24, + "deadRate": "0.0" + }, + { + "date": "10.16", + "heal": 15, + "importedCase": 13, + "dead": 0, + "infect": 11, + "deadRate": "0.0", + "healRate": "62.5", + "confirm": 24, + "suspect": 1 + }, + { + "date": "10.17", + "suspect": 1, + "dead": 0, + "infect": 34, + "deadRate": "0.0", + "healRate": "106.7", + "confirm": 30, + "heal": 32, + "importedCase": 13 + }, + { + "date": "10.18", + "suspect": 0, + "dead": 0, + "heal": 26, + "deadRate": "0.0", + "confirm": 17, + "importedCase": 13, + "infect": 33, + "healRate": "152.9" + }, + { + "suspect": 3, + "heal": 21, + "importedCase": 19, + "infect": 24, + "healRate": "53.8", + "confirm": 39, + "dead": 0, + "deadRate": "0.0", + "date": "10.19" + }, + { + "importedCase": 11, + "infect": 15, + "deadRate": "0.0", + "healRate": "200.0", + "suspect": 0, + "dead": 0, + "heal": 38, + "date": "10.20", + "confirm": 19 + }, + { + "confirm": 23, + "importedCase": 14, + "infect": 25, + "healRate": "104.3", + "date": "10.21", + "suspect": 2, + "dead": 0, + "heal": 24, + "deadRate": "0.0" + }, + { + "suspect": 2, + "heal": 32, + "importedCase": 18, + "deadRate": "0.0", + "date": "10.22", + "confirm": 33, + "dead": 0, + "infect": 11, + "healRate": "97.0" + }, + { + "suspect": 0, + "importedCase": 28, + "infect": 27, + "deadRate": "0.0", + "date": "10.23", + "confirm": 32, + "heal": 21, + "healRate": "65.6", + "dead": 0 + }, + { + "suspect": 1, + "dead": 0, + "infect": 19, + "healRate": "145.5", + "confirm": 22, + "heal": 32, + "importedCase": 15, + "deadRate": "0.0", + "date": "10.24" + }, + { + "suspect": 1, + "deadRate": "0.0", + "infect": 161, + "healRate": "100.0", + "date": "10.25", + "confirm": 26, + "dead": 0, + "heal": 26, + "importedCase": 20 + }, + { + "confirm": 24, + "dead": 0, + "healRate": "83.3", + "date": "10.26", + "suspect": 0, + "heal": 20, + "importedCase": 16, + "infect": 50, + "deadRate": "0.0" + }, + { + "infect": 38, + "dead": 0, + "heal": 11, + "importedCase": 20, + "healRate": "23.4", + "date": "10.27", + "confirm": 47, + "suspect": 0, + "deadRate": "0.0" + }, + { + "confirm": 49, + "date": "10.28", + "infect": 16, + "deadRate": "0.0", + "healRate": "46.9", + "suspect": 0, + "dead": 0, + "heal": 23, + "importedCase": 24 + }, + { + "healRate": "125.8", + "date": "10.29", + "heal": 39, + "importedCase": 24, + "infect": 53, + "deadRate": "0.0", + "confirm": 31, + "suspect": 6, + "dead": 0 + }, + { + "confirm": 41, + "suspect": 2, + "importedCase": 27, + "infect": 38, + "deadRate": "0.0", + "healRate": "65.9", + "dead": 0, + "heal": 27, + "date": "10.30" + }, + { + "infect": 69, + "suspect": 0, + "dead": 0, + "importedCase": 21, + "deadRate": "0.0", + "healRate": "100.0", + "date": "10.31", + "confirm": 28, + "heal": 28 + }, + { + "confirm": 34, + "importedCase": 21, + "infect": 30, + "healRate": "88.2", + "suspect": 1, + "dead": 0, + "heal": 30, + "deadRate": "0.0", + "date": "11.01" + }, + { + "dead": 0, + "heal": 28, + "importedCase": 44, + "date": "11.02", + "healRate": "46.7", + "confirm": 60, + "suspect": 2, + "infect": 61, + "deadRate": "0.0" + }, + { + "suspect": 1, + "dead": 0, + "date": "11.03", + "confirm": 30, + "heal": 25, + "importedCase": 15, + "infect": 128, + "deadRate": "0.0", + "healRate": "83.3" + }, + { + "dead": 1, + "heal": 29, + "date": "11.04", + "confirm": 32, + "suspect": 3, + "importedCase": 20, + "infect": 24, + "deadRate": "3.1", + "healRate": "90.6" + }, + { + "infect": 33, + "deadRate": "2.3", + "healRate": "61.4", + "dead": 1, + "suspect": 23, + "heal": 27, + "importedCase": 30, + "date": "11.05", + "confirm": 44 + }, + { + "confirm": 43, + "heal": 38, + "date": "11.06", + "suspect": 0, + "dead": 0, + "importedCase": 33, + "infect": 27, + "deadRate": "0.0", + "healRate": "88.4" + }, + { + "date": "11.07", + "confirm": 31, + "suspect": 4, + "dead": 0, + "heal": 45, + "importedCase": 28, + "deadRate": "0.0", + "infect": 36, + "healRate": "145.2" + }, + { + "suspect": 1, + "dead": 0, + "importedCase": 32, + "deadRate": "0.0", + "healRate": "53.2", + "date": "11.08", + "confirm": 47, + "heal": 25, + "infect": 9 + }, + { + "heal": 24, + "importedCase": 21, + "infect": 25, + "date": "11.09", + "dead": 0, + "suspect": 0, + "deadRate": "0.0", + "healRate": "82.8", + "confirm": 29 + }, + { + "healRate": "107.1", + "date": "11.10", + "confirm": 28, + "heal": 30, + "deadRate": "3.6", + "infect": 15, + "suspect": 0, + "dead": 1, + "importedCase": 16 + }, + { + "suspect": 1, + "dead": 0, + "heal": 30, + "infect": 6, + "healRate": "81.1", + "confirm": 37, + "importedCase": 14, + "deadRate": "0.0", + "date": "11.11" + }, + { + "suspect": 0, + "dead": 0, + "importedCase": 8, + "deadRate": "0.0", + "confirm": 36, + "heal": 42, + "infect": 15, + "healRate": "116.7", + "date": "11.12" + }, + { + "date": "11.13", + "confirm": 32, + "heal": 32, + "infect": 10, + "deadRate": "0.0", + "suspect": 0, + "dead": 0, + "importedCase": 18, + "healRate": "100.0" + }, + { + "confirm": 24, + "dead": 0, + "heal": 28, + "infect": 6, + "date": "11.14", + "suspect": 1, + "importedCase": 13, + "deadRate": "0.0", + "healRate": "116.7" + }, + { + "confirm": 24, + "suspect": 1, + "deadRate": "0.0", + "healRate": "112.5", + "date": "11.15", + "dead": 0, + "heal": 27, + "importedCase": 8, + "infect": 14 + }, + { + "suspect": 0, + "heal": 40, + "importedCase": 15, + "deadRate": "0.0", + "healRate": "166.7", + "confirm": 24, + "dead": 0, + "infect": 12, + "date": "11.16" + }, + { + "confirm": 14, + "suspect": 0, + "dead": 0, + "heal": 54, + "importedCase": 7, + "infect": 5, + "date": "11.17", + "deadRate": "0.0", + "healRate": "385.7" + }, + { + "confirm": 23, + "importedCase": 12, + "suspect": 0, + "dead": 0, + "heal": 36, + "infect": 10, + "deadRate": "0.0", + "healRate": "156.5", + "date": "11.18" + }, + { + "deadRate": "0.0", + "healRate": "106.5", + "date": "11.19", + "suspect": 1, + "dead": 0, + "importedCase": 17, + "infect": 14, + "confirm": 31, + "heal": 33 + }, + { + "date": "11.20", + "suspect": 0, + "dead": 0, + "importedCase": 9, + "infect": 18, + "confirm": 44, + "heal": 26, + "deadRate": "0.0", + "healRate": "59.1" + }, + { + "suspect": 0, + "dead": 0, + "infect": 11, + "healRate": "30.0", + "date": "11.21", + "confirm": 60, + "heal": 18, + "importedCase": 14, + "deadRate": "0.0" + }, + { + "confirm": 85, + "dead": 0, + "date": "11.22", + "healRate": "29.4", + "suspect": 0, + "heal": 25, + "importedCase": 9, + "infect": 10, + "deadRate": "0.0" + }, + { + "confirm": 96, + "heal": 24, + "deadRate": "0.0", + "date": "11.23", + "suspect": 1, + "dead": 0, + "importedCase": 20, + "infect": 8, + "healRate": "25.0" + }, + { + "dead": 0, + "heal": 29, + "importedCase": 5, + "infect": 6, + "deadRate": "0.0", + "confirm": 85, + "suspect": 1, + "healRate": "34.1", + "date": "11.24" + }, + { + "deadRate": "0.0", + "date": "11.25", + "confirm": 111, + "dead": 0, + "importedCase": 12, + "infect": 5, + "healRate": "40.5", + "suspect": 3, + "heal": 45 + }, + { + "suspect": 0, + "heal": 15, + "importedCase": 5, + "infect": 8, + "healRate": "17.0", + "confirm": 88, + "dead": 0, + "deadRate": "0.0", + "date": "11.26" + }, + { + "dead": 0, + "heal": 37, + "importedCase": 6, + "infect": 4, + "deadRate": "0.0", + "healRate": "33.0", + "confirm": 112, + "suspect": 0, + "date": "11.27" + }, + { + "dead": 1, + "infect": 10, + "suspect": 4, + "heal": 32, + "importedCase": 11, + "deadRate": "1.0", + "healRate": "30.8", + "date": "11.28", + "confirm": 104 + }, + { + "deadRate": "0.0", + "dead": 0, + "infect": 17, + "heal": 42, + "importedCase": 15, + "healRate": "30.9", + "date": "11.29", + "confirm": 136, + "suspect": 0 + }, + { + "suspect": 0, + "infect": 5, + "date": "11.30", + "confirm": 112, + "heal": 16, + "importedCase": 8, + "deadRate": "0.0", + "healRate": "14.3", + "dead": 0 + }, + { + "confirm": 91, + "dead": 0, + "heal": 35, + "deadRate": "0.0", + "healRate": "38.5", + "suspect": 1, + "importedCase": 7, + "infect": 3, + "date": "12.01" + }, + { + "suspect": 2, + "importedCase": 16, + "deadRate": "0.8", + "date": "12.02", + "confirm": 129, + "dead": 1, + "heal": 56, + "infect": 6, + "healRate": "43.4" + }, + { + "date": "12.03", + "confirm": 108, + "suspect": 1, + "infect": 12, + "healRate": "39.8", + "dead": 1, + "heal": 43, + "importedCase": 15, + "deadRate": "0.9" + }, + { + "confirm": 133, + "suspect": 0, + "dead": 1, + "deadRate": "0.8", + "date": "12.04", + "heal": 57, + "importedCase": 15, + "infect": 12, + "healRate": "42.9" + }, + { + "importedCase": 17, + "infect": 2, + "deadRate": "0.0", + "dead": 0, + "suspect": 2, + "heal": 60, + "healRate": "49.2", + "date": "12.05", + "confirm": 122 + }, + { + "heal": 69, + "deadRate": "0.0", + "confirm": 133, + "suspect": 2, + "dead": 0, + "date": "12.06", + "importedCase": 12, + "infect": 6, + "healRate": "51.9" + }, + { + "importedCase": 10, + "infect": 5, + "date": "12.07", + "confirm": 90, + "suspect": 1, + "heal": 72, + "dead": 0, + "deadRate": "0.0", + "healRate": "80.0" + }, + { + "heal": 89, + "importedCase": 11, + "date": "12.08", + "confirm": 117, + "dead": 0, + "infect": 1, + "deadRate": "0.0", + "healRate": "76.1", + "suspect": 2 + }, + { + "importedCase": 11, + "deadRate": "1.7", + "healRate": "85.6", + "date": "12.09", + "confirm": 118, + "dead": 2, + "infect": 5, + "suspect": 2, + "heal": 101 + }, + { + "deadRate": "0.0", + "date": "12.10", + "suspect": 0, + "dead": 0, + "heal": 130, + "importedCase": 9, + "confirm": 131, + "infect": 7, + "healRate": "99.2" + }, + { + "heal": 113, + "importedCase": 13, + "infect": 17, + "deadRate": "0.0", + "healRate": "113.0", + "date": "12.11", + "confirm": 100, + "suspect": 0, + "dead": 0 + }, + { + "suspect": 1, + "deadRate": "1.0", + "healRate": "133.7", + "date": "12.12", + "infect": 14, + "confirm": 101, + "dead": 1, + "heal": 135, + "importedCase": 19 + }, + { + "suspect": 0, + "dead": 2, + "heal": 102, + "deadRate": "1.8", + "healRate": "89.5", + "date": "12.13", + "confirm": 114, + "importedCase": 14, + "infect": 9 + }, + { + "suspect": 0, + "deadRate": "2.9", + "date": "12.14", + "confirm": 103, + "heal": 82, + "importedCase": 14, + "infect": 8, + "healRate": "79.6", + "dead": 3 + }, + { + "importedCase": 12, + "infect": 9, + "healRate": "83.0", + "confirm": 112, + "dead": 3, + "heal": 93, + "suspect": 1, + "deadRate": "2.7", + "date": "12.15" + }, + { + "suspect": 1, + "dead": 0, + "heal": 116, + "importedCase": 7, + "deadRate": "0.0", + "healRate": "120.8", + "date": "12.16", + "confirm": 96, + "infect": 6 + }, + { + "infect": 11, + "deadRate": "1.7", + "date": "12.17", + "confirm": 116, + "dead": 2, + "heal": 108, + "importedCase": 11, + "healRate": "93.1", + "suspect": 0 + }, + { + "confirm": 89, + "suspect": 1, + "importedCase": 14, + "infect": 16, + "dead": 4, + "heal": 111, + "deadRate": "4.5", + "healRate": "124.7", + "date": "12.18" + }, + { + "heal": 136, + "infect": 10, + "healRate": "100.0", + "suspect": 0, + "dead": 0, + "deadRate": "0.0", + "date": "12.19", + "confirm": 136, + "importedCase": 22 + }, + { + "date": "12.20", + "suspect": 4, + "dead": 1, + "heal": 116, + "importedCase": 21, + "deadRate": "1.0", + "healRate": "116.0", + "confirm": 100, + "infect": 15 + }, + { + "date": "12.21", + "suspect": 0, + "importedCase": 13, + "infect": 17, + "deadRate": "1.0", + "confirm": 100, + "dead": 1, + "heal": 82, + "healRate": "82.0" + }, + { + "deadRate": "1.2", + "healRate": "132.9", + "suspect": 0, + "infect": 14, + "heal": 109, + "importedCase": 14, + "date": "12.22", + "confirm": 82, + "dead": 1 + }, + { + "importedCase": 11, + "infect": 19, + "deadRate": "1.3", + "healRate": "186.8", + "date": "12.23", + "heal": 142, + "suspect": 0, + "dead": 1, + "confirm": 76 + }, + { + "heal": 100, + "importedCase": 7, + "infect": 17, + "deadRate": "2.4", + "confirm": 85, + "dead": 2, + "date": "12.24", + "suspect": 0, + "healRate": "117.6" + }, + { + "suspect": 0, + "dead": 1, + "infect": 19, + "healRate": "161.7", + "date": "12.25", + "confirm": 81, + "heal": 131, + "importedCase": 12, + "deadRate": "1.2" + }, + { + "date": "12.26", + "confirm": 84, + "dead": 0, + "heal": 100, + "importedCase": 10, + "infect": 15, + "healRate": "119.0", + "suspect": 0, + "deadRate": "0.0" + }, + { + "confirm": 93, + "dead": 1, + "suspect": 1, + "heal": 102, + "importedCase": 15, + "infect": 20, + "deadRate": "1.1", + "healRate": "109.7", + "date": "12.27" + }, + { + "importedCase": 12, + "deadRate": "4.2", + "confirm": 96, + "suspect": 0, + "dead": 4, + "heal": 71, + "infect": 8, + "healRate": "74.0", + "date": "12.28" + }, + { + "suspect": 0, + "dead": 2, + "heal": 113, + "importedCase": 17, + "deadRate": "2.5", + "healRate": "143.0", + "confirm": 79, + "infect": 17, + "date": "12.29" + }, + { + "heal": 124, + "infect": 8, + "healRate": "153.1", + "confirm": 81, + "suspect": 0, + "dead": 4, + "importedCase": 16, + "deadRate": "4.9", + "date": "12.30" + } + ], + "chinaDayList": [ + { + "dead": 1, + "heal": 0, + "nowSevere": 0, + "importedCase": 0, + "healRate": "0.0", + "noInfect": 0, + "confirm": 41, + "suspect": 0, + "nowConfirm": 0, + "deadRate": "2.4", + "date": "01.13" + }, + { + "confirm": 41, + "suspect": 0, + "nowConfirm": 0, + "deadRate": "2.4", + "healRate": "0.0", + "date": "01.14", + "noInfect": 0, + "dead": 1, + "heal": 0, + "nowSevere": 0, + "importedCase": 0 + }, + { + "suspect": 0, + "importedCase": 0, + "deadRate": "4.9", + "confirm": 41, + "dead": 2, + "heal": 5, + "nowConfirm": 0, + "nowSevere": 0, + "healRate": "12.2", + "date": "01.15", + "noInfect": 0 + }, + { + "suspect": 0, + "dead": 2, + "importedCase": 0, + "healRate": "17.8", + "deadRate": "4.4", + "date": "01.16", + "noInfect": 0, + "confirm": 45, + "heal": 8, + "nowConfirm": 0, + "nowSevere": 0 + }, + { + "suspect": 0, + "dead": 2, + "heal": 12, + "nowSevere": 0, + "noInfect": 0, + "confirm": 62, + "nowConfirm": 0, + "importedCase": 0, + "deadRate": "3.2", + "healRate": "19.4", + "date": "01.17" + }, + { + "importedCase": 0, + "date": "01.18", + "noInfect": 0, + "confirm": 198, + "suspect": 0, + "nowConfirm": 0, + "deadRate": "1.5", + "healRate": "8.6", + "dead": 3, + "heal": 17, + "nowSevere": 0 + }, + { + "noInfect": 0, + "confirm": 275, + "suspect": 0, + "dead": 4, + "importedCase": 0, + "date": "01.19", + "heal": 18, + "nowConfirm": 0, + "nowSevere": 0, + "deadRate": "1.5", + "healRate": "6.5" + }, + { + "nowSevere": 0, + "importedCase": 0, + "deadRate": "2.1", + "date": "01.20", + "confirm": 291, + "heal": 25, + "nowConfirm": 291, + "noInfect": 0, + "suspect": 54, + "dead": 6, + "healRate": "8.6" + }, + { + "suspect": 37, + "dead": 9, + "nowConfirm": 431, + "nowSevere": 0, + "deadRate": "2.0", + "healRate": "5.7", + "noInfect": 0, + "confirm": 440, + "heal": 25, + "importedCase": 0, + "date": "01.21" + }, + { + "confirm": 574, + "dead": 17, + "heal": 25, + "nowSevere": 0, + "importedCase": 0, + "date": "01.22", + "suspect": 393, + "nowConfirm": 557, + "deadRate": "3.0", + "healRate": "4.4", + "noInfect": 0 + }, + { + "deadRate": "3.0", + "healRate": "4.1", + "date": "01.23", + "suspect": 1072, + "heal": 34, + "nowConfirm": 776, + "nowSevere": 0, + "confirm": 835, + "dead": 25, + "importedCase": 0, + "noInfect": 0 + }, + { + "importedCase": 0, + "deadRate": "3.2", + "healRate": "2.9", + "date": "01.24", + "confirm": 1297, + "dead": 41, + "heal": 38, + "nowConfirm": 1218, + "nowSevere": 0, + "noInfect": 0, + "suspect": 1965 + }, + { + "importedCase": 0, + "deadRate": "2.8", + "healRate": "2.5", + "confirm": 1985, + "nowConfirm": 1880, + "heal": 49, + "nowSevere": 324, + "date": "01.25", + "noInfect": 0, + "suspect": 2684, + "dead": 56 + }, + { + "confirm": 2761, + "dead": 80, + "healRate": "1.8", + "noInfect": 0, + "suspect": 5794, + "heal": 51, + "nowConfirm": 2630, + "nowSevere": 461, + "importedCase": 0, + "deadRate": "2.9", + "date": "01.26" + }, + { + "nowConfirm": 4369, + "deadRate": "2.3", + "healRate": "1.3", + "dead": 106, + "suspect": 6973, + "heal": 60, + "nowSevere": 976, + "importedCase": 0, + "date": "01.27", + "noInfect": 0, + "confirm": 4535 + }, + { + "dead": 132, + "nowSevere": 1239, + "deadRate": "2.2", + "date": "01.28", + "confirm": 5997, + "suspect": 9239, + "importedCase": 0, + "healRate": "1.7", + "noInfect": 0, + "heal": 103, + "nowConfirm": 5762 + }, + { + "healRate": "1.6", + "date": "01.29", + "confirm": 7736, + "dead": 170, + "heal": 124, + "deadRate": "2.2", + "noInfect": 0, + "suspect": 12167, + "nowConfirm": 7442, + "nowSevere": 1370, + "importedCase": 0 + }, + { + "importedCase": 0, + "deadRate": "2.2", + "date": "01.30", + "heal": 171, + "nowConfirm": 9336, + "nowSevere": 1527, + "healRate": "1.8", + "noInfect": 0, + "confirm": 9720, + "suspect": 15238, + "dead": 213 + }, + { + "nowSevere": 1795, + "importedCase": 0, + "confirm": 11821, + "suspect": 17988, + "dead": 259, + "nowConfirm": 11319, + "noInfect": 0, + "heal": 243, + "deadRate": "2.2", + "healRate": "2.1", + "date": "01.31" + }, + { + "date": "02.01", + "confirm": 14411, + "dead": 304, + "nowSevere": 2110, + "importedCase": 0, + "deadRate": "2.1", + "healRate": "2.3", + "noInfect": 0, + "suspect": 19544, + "heal": 328, + "nowConfirm": 13779 + }, + { + "confirm": 17238, + "dead": 361, + "nowConfirm": 16402, + "nowSevere": 2296, + "noInfect": 0, + "date": "02.02", + "suspect": 21558, + "heal": 475, + "importedCase": 0, + "deadRate": "2.1", + "healRate": "2.8" + }, + { + "suspect": 23214, + "nowSevere": 2788, + "importedCase": 0, + "deadRate": "2.1", + "healRate": "3.1", + "confirm": 20471, + "dead": 425, + "heal": 632, + "nowConfirm": 19414, + "date": "02.03", + "noInfect": 0 + }, + { + "dead": 491, + "nowConfirm": 22980, + "importedCase": 0, + "confirm": 24363, + "suspect": 23260, + "deadRate": "2.0", + "healRate": "3.7", + "date": "02.04", + "noInfect": 0, + "heal": 892, + "nowSevere": 3219 + }, + { + "healRate": "4.1", + "dead": 564, + "nowSevere": 3859, + "deadRate": "2.0", + "nowConfirm": 26343, + "importedCase": 0, + "date": "02.05", + "noInfect": 0, + "confirm": 28060, + "suspect": 24702, + "heal": 1153 + }, + { + "date": "02.06", + "dead": 637, + "nowConfirm": 29032, + "importedCase": 0, + "nowSevere": 4821, + "deadRate": "2.0", + "healRate": "4.9", + "noInfect": 0, + "confirm": 31211, + "suspect": 26359, + "heal": 1542 + }, + { + "confirm": 34598, + "heal": 2052, + "deadRate": "2.1", + "noInfect": 0, + "date": "02.07", + "suspect": 27657, + "dead": 723, + "nowConfirm": 31823, + "nowSevere": 6101, + "importedCase": 0, + "healRate": "5.9" + }, + { + "suspect": 28942, + "dead": 812, + "heal": 2651, + "nowConfirm": 33788, + "healRate": "7.1", + "date": "02.08", + "noInfect": 0, + "confirm": 37251, + "nowSevere": 6188, + "importedCase": 0, + "deadRate": "2.2" + }, + { + "healRate": "8.2", + "date": "02.09", + "confirm": 40235, + "nowConfirm": 36043, + "nowSevere": 6484, + "importedCase": 0, + "deadRate": "2.3", + "noInfect": 0, + "suspect": 23589, + "dead": 909, + "heal": 3283 + }, + { + "nowConfirm": 37693, + "nowSevere": 7333, + "date": "02.10", + "dead": 1017, + "heal": 3998, + "importedCase": 0, + "deadRate": "2.4", + "healRate": "9.4", + "noInfect": 0, + "confirm": 42708, + "suspect": 21675 + }, + { + "noInfect": 0, + "dead": 1114, + "heal": 4742, + "importedCase": 0, + "deadRate": "2.5", + "healRate": "10.6", + "date": "02.11", + "confirm": 44730, + "suspect": 16067, + "nowConfirm": 38874, + "nowSevere": 8204 + }, + { + "deadRate": "2.3", + "healRate": "9.9", + "date": "02.12", + "noInfect": 0, + "dead": 1368, + "suspect": 13435, + "heal": 5915, + "nowConfirm": 52599, + "nowSevere": 8030, + "importedCase": 0, + "confirm": 59882 + }, + { + "dead": 1381, + "heal": 6728, + "nowConfirm": 55823, + "nowSevere": 10204, + "healRate": "10.5", + "date": "02.13", + "confirm": 63932, + "suspect": 10109, + "noInfect": 0, + "importedCase": 0, + "deadRate": "2.2" + }, + { + "nowSevere": 11053, + "deadRate": "2.3", + "confirm": 66576, + "suspect": 8969, + "dead": 1524, + "healRate": "12.2", + "date": "02.14", + "noInfect": 0, + "heal": 8101, + "nowConfirm": 56951, + "importedCase": 0 + }, + { + "dead": 1666, + "importedCase": 0, + "deadRate": "2.4", + "healRate": "13.7", + "suspect": 8228, + "heal": 9425, + "nowConfirm": 57493, + "nowSevere": 11272, + "date": "02.15", + "noInfect": 0, + "confirm": 68584 + }, + { + "nowConfirm": 58010, + "nowSevere": 10644, + "importedCase": 0, + "suspect": 7264, + "dead": 1772, + "heal": 10853, + "date": "02.16", + "noInfect": 0, + "confirm": 70635, + "deadRate": "2.5", + "healRate": "15.4" + }, + { + "confirm": 72528, + "suspect": 6242, + "heal": 12561, + "nowSevere": 11741, + "healRate": "17.3", + "date": "02.17", + "dead": 1870, + "nowConfirm": 58097, + "importedCase": 0, + "deadRate": "2.6", + "noInfect": 0 + }, + { + "dead": 2006, + "deadRate": "2.7", + "healRate": "19.4", + "nowSevere": 11977, + "importedCase": 0, + "date": "02.18", + "noInfect": 0, + "confirm": 74279, + "suspect": 5248, + "heal": 14387, + "nowConfirm": 57886 + }, + { + "suspect": 4922, + "nowConfirm": 56386, + "nowSevere": 11864, + "deadRate": "2.8", + "healRate": "21.5", + "noInfect": 0, + "confirm": 75002, + "dead": 2121, + "heal": 16157, + "importedCase": 0, + "date": "02.19" + }, + { + "importedCase": 0, + "deadRate": "2.9", + "dead": 2239, + "heal": 18266, + "nowConfirm": 55051, + "healRate": "24.0", + "date": "02.20", + "noInfect": 0, + "confirm": 75993, + "suspect": 5206, + "nowSevere": 11633 + }, + { + "confirm": 76392, + "suspect": 5365, + "dead": 2348, + "heal": 20673, + "nowConfirm": 53371, + "nowSevere": 11477, + "importedCase": 0, + "healRate": "27.1", + "date": "02.21", + "noInfect": 0, + "deadRate": "3.1" + }, + { + "dead": 2445, + "nowConfirm": 51689, + "nowSevere": 10968, + "deadRate": "3.2", + "healRate": "29.7", + "date": "02.22", + "confirm": 77041, + "suspect": 4148, + "heal": 22907, + "importedCase": 0, + "noInfect": 0 + }, + { + "confirm": 77262, + "dead": 2595, + "nowConfirm": 49910, + "nowSevere": 9915, + "date": "02.23", + "noInfect": 0, + "suspect": 3434, + "heal": 24757, + "importedCase": 0, + "deadRate": "3.4", + "healRate": "32.0" + }, + { + "healRate": "35.2", + "dead": 2666, + "suspect": 2824, + "heal": 27353, + "nowConfirm": 47760, + "nowSevere": 9126, + "importedCase": 0, + "deadRate": "3.4", + "date": "02.24", + "confirm": 77779, + "noInfect": 0 + }, + { + "importedCase": 0, + "deadRate": "3.5", + "healRate": "38.1", + "confirm": 78190, + "suspect": 2491, + "dead": 2718, + "heal": 29775, + "nowSevere": 8752, + "date": "02.25", + "nowConfirm": 45697, + "noInfect": 0 + }, + { + "suspect": 2358, + "nowSevere": 8346, + "deadRate": "3.5", + "date": "02.26", + "noInfect": 0, + "confirm": 78630, + "dead": 2747, + "heal": 32531, + "nowConfirm": 43352, + "importedCase": 0, + "healRate": "41.4" + }, + { + "deadRate": "3.5", + "date": "02.27", + "noInfect": 0, + "confirm": 78959, + "suspect": 2308, + "heal": 36157, + "nowConfirm": 40011, + "importedCase": 0, + "dead": 2791, + "nowSevere": 7952, + "healRate": "45.8" + }, + { + "confirm": 79389, + "heal": 39049, + "nowConfirm": 37502, + "healRate": "49.2", + "date": "02.28", + "noInfect": 0, + "suspect": 1418, + "dead": 2838, + "nowSevere": 7664, + "importedCase": 0, + "deadRate": "3.6" + }, + { + "heal": 41675, + "nowConfirm": 35420, + "nowSevere": 7365, + "importedCase": 0, + "confirm": 79968, + "suspect": 851, + "healRate": "52.1", + "date": "02.29", + "noInfect": 0, + "dead": 2873, + "deadRate": "3.6" + }, + { + "suspect": 715, + "nowConfirm": 32741, + "importedCase": 0, + "healRate": "55.5", + "date": "03.01", + "noInfect": 0, + "confirm": 80174, + "dead": 2915, + "heal": 44518, + "nowSevere": 7110, + "deadRate": "3.6" + }, + { + "nowSevere": 6806, + "deadRate": "3.7", + "healRate": "58.9", + "noInfect": 0, + "confirm": 80302, + "suspect": 587, + "dead": 2946, + "heal": 47260, + "nowConfirm": 30096, + "importedCase": 0, + "date": "03.02" + }, + { + "noInfect": 0, + "confirm": 80422, + "dead": 2984, + "nowSevere": 6416, + "importedCase": 0, + "healRate": "62.1", + "suspect": 520, + "heal": 49914, + "nowConfirm": 27524, + "deadRate": "3.7", + "date": "03.03" + }, + { + "dead": 3015, + "nowSevere": 5952, + "importedCase": 20, + "date": "03.04", + "confirm": 80565, + "suspect": 522, + "heal": 52109, + "nowConfirm": 25441, + "deadRate": "3.7", + "healRate": "64.7", + "noInfect": 0 + }, + { + "noInfect": 0, + "nowConfirm": 23872, + "nowSevere": 5737, + "deadRate": "3.8", + "date": "03.05", + "importedCase": 36, + "healRate": "66.6", + "confirm": 80710, + "suspect": 482, + "dead": 3045, + "heal": 53793 + }, + { + "healRate": "68.6", + "dead": 3073, + "heal": 55477, + "nowConfirm": 22263, + "nowSevere": 5489, + "date": "03.06", + "noInfect": 0, + "confirm": 80813, + "suspect": 502, + "importedCase": 60, + "deadRate": "3.8" + }, + { + "noInfect": 0, + "dead": 3100, + "nowConfirm": 20616, + "nowSevere": 5264, + "importedCase": 63, + "deadRate": "3.8", + "healRate": "70.7", + "date": "03.07", + "confirm": 80859, + "suspect": 458, + "heal": 57143 + }, + { + "importedCase": 67, + "deadRate": "3.9", + "suspect": 421, + "heal": 58684, + "nowConfirm": 19097, + "nowSevere": 5111, + "healRate": "72.5", + "date": "03.08", + "noInfect": 0, + "confirm": 80904, + "dead": 3123 + }, + { + "confirm": 80924, + "dead": 3140, + "heal": 59982, + "nowConfirm": 17802, + "nowSevere": 4794, + "deadRate": "3.9", + "date": "03.09", + "suspect": 349, + "importedCase": 69, + "healRate": "74.1", + "noInfect": 0 + }, + { + "confirm": 80955, + "dead": 3162, + "heal": 61567, + "healRate": "76.1", + "suspect": 285, + "nowConfirm": 16226, + "nowSevere": 4492, + "importedCase": 79, + "deadRate": "3.9", + "date": "03.10", + "noInfect": 0 + }, + { + "confirm": 80992, + "suspect": 253, + "importedCase": 85, + "date": "03.11", + "healRate": "77.6", + "noInfect": 0, + "dead": 3173, + "heal": 62887, + "nowConfirm": 14920, + "nowSevere": 4257, + "deadRate": "3.9" + }, + { + "deadRate": "3.9", + "heal": 64216, + "importedCase": 88, + "dead": 3180, + "nowConfirm": 13607, + "nowSevere": 4020, + "healRate": "79.3", + "date": "03.12", + "noInfect": 0, + "confirm": 81003, + "suspect": 147 + }, + { + "confirm": 81021, + "suspect": 115, + "heal": 65649, + "nowSevere": 3610, + "importedCase": 95, + "healRate": "81.0", + "date": "03.13", + "dead": 3194, + "nowConfirm": 12178, + "deadRate": "3.9", + "noInfect": 0 + }, + { + "confirm": 81048, + "nowSevere": 3226, + "importedCase": 111, + "healRate": "82.7", + "date": "03.14", + "suspect": 113, + "dead": 3204, + "heal": 67022, + "nowConfirm": 10822, + "deadRate": "4.0", + "noInfect": 0 + }, + { + "suspect": 134, + "dead": 3218, + "heal": 67863, + "nowConfirm": 9996, + "deadRate": "4.0", + "date": "03.15", + "noInfect": 0, + "confirm": 81077, + "importedCase": 123, + "healRate": "83.7", + "nowSevere": 3032 + }, + { + "heal": 68799, + "importedCase": 143, + "deadRate": "4.0", + "date": "03.16", + "confirm": 81116, + "suspect": 128, + "dead": 3231, + "nowConfirm": 9086, + "nowSevere": 2830, + "healRate": "84.8", + "noInfect": 0 + }, + { + "heal": 69725, + "importedCase": 155, + "date": "03.17", + "healRate": "85.9", + "noInfect": 0, + "confirm": 81151, + "suspect": 119, + "dead": 3242, + "nowConfirm": 8184, + "nowSevere": 2622, + "deadRate": "4.0" + }, + { + "confirm": 81235, + "suspect": 105, + "nowSevere": 2314, + "deadRate": "4.0", + "healRate": "86.8", + "noInfect": 0, + "dead": 3250, + "heal": 70547, + "nowConfirm": 7438, + "importedCase": 189, + "date": "03.18" + }, + { + "deadRate": "4.0", + "dead": 3253, + "heal": 71284, + "nowConfirm": 6763, + "importedCase": 228, + "healRate": "87.7", + "date": "03.19", + "noInfect": 0, + "confirm": 81300, + "suspect": 104, + "nowSevere": 2136 + }, + { + "date": "03.20", + "suspect": 106, + "heal": 71876, + "importedCase": 269, + "deadRate": "4.0", + "healRate": "88.3", + "noInfect": 0, + "confirm": 81416, + "dead": 3261, + "nowConfirm": 6013, + "nowSevere": 1963 + }, + { + "suspect": 118, + "dead": 3267, + "heal": 72382, + "nowSevere": 1845, + "deadRate": "4.0", + "confirm": 81498, + "nowConfirm": 5849, + "importedCase": 314, + "healRate": "88.8", + "date": "03.21", + "noInfect": 0 + }, + { + "dead": 3276, + "noInfect": 0, + "suspect": 136, + "heal": 72841, + "nowConfirm": 5483, + "nowSevere": 1749, + "importedCase": 353, + "deadRate": "4.0", + "healRate": "89.3", + "date": "03.22", + "confirm": 81600 + }, + { + "deadRate": "4.0", + "healRate": "89.7", + "noInfect": 0, + "confirm": 81747, + "suspect": 132, + "dead": 3283, + "heal": 73299, + "importedCase": 427, + "nowConfirm": 5165, + "nowSevere": 1573, + "date": "03.23" + }, + { + "confirm": 81846, + "dead": 3287, + "deadRate": "4.0", + "date": "03.24", + "importedCase": 474, + "healRate": "90.2", + "noInfect": 0, + "suspect": 134, + "heal": 73791, + "nowConfirm": 4768, + "nowSevere": 1399 + }, + { + "confirm": 81960, + "heal": 74196, + "nowSevere": 1235, + "importedCase": 541, + "healRate": "90.5", + "noInfect": 0, + "suspect": 159, + "dead": 3293, + "nowConfirm": 4471, + "deadRate": "4.0", + "date": "03.25" + }, + { + "dead": 3298, + "heal": 74737, + "nowSevere": 1034, + "healRate": "91.1", + "date": "03.26", + "noInfect": 0, + "confirm": 82078, + "suspect": 189, + "nowConfirm": 4043, + "importedCase": 595, + "deadRate": "4.0" + }, + { + "nowSevere": 921, + "deadRate": "4.0", + "date": "03.27", + "noInfect": 0, + "suspect": 184, + "dead": 3301, + "heal": 75122, + "healRate": "91.4", + "confirm": 82213, + "nowConfirm": 3790, + "importedCase": 649 + }, + { + "nowSevere": 742, + "healRate": "91.8", + "date": "03.28", + "suspect": 174, + "dead": 3306, + "heal": 75600, + "deadRate": "4.0", + "noInfect": 0, + "confirm": 82341, + "nowConfirm": 3435, + "importedCase": 693 + }, + { + "deadRate": "4.0", + "confirm": 82447, + "nowConfirm": 3199, + "heal": 75937, + "nowSevere": 633, + "importedCase": 723, + "healRate": "92.1", + "date": "03.29", + "noInfect": 0, + "suspect": 168, + "dead": 3311 + }, + { + "heal": 76225, + "deadRate": "4.0", + "suspect": 183, + "dead": 3314, + "nowSevere": 528, + "importedCase": 771, + "healRate": "92.3", + "date": "03.30", + "noInfect": 0, + "confirm": 82545, + "nowConfirm": 3006 + }, + { + "confirm": 82631, + "dead": 3321, + "heal": 76415, + "nowConfirm": 2895, + "importedCase": 806, + "deadRate": "4.0", + "suspect": 172, + "nowSevere": 466, + "healRate": "92.5", + "date": "03.31", + "noInfect": 1367 + }, + { + "suspect": 153, + "dead": 3327, + "nowSevere": 429, + "importedCase": 841, + "deadRate": "4.0", + "healRate": "92.6", + "noInfect": 1075, + "confirm": 82724, + "heal": 76610, + "nowConfirm": 2787, + "date": "04.01" + }, + { + "confirm": 82802, + "suspect": 135, + "dead": 3331, + "nowConfirm": 2686, + "healRate": "92.7", + "date": "04.02", + "noInfect": 1027, + "heal": 76785, + "nowSevere": 379, + "importedCase": 870, + "deadRate": "4.0" + }, + { + "noInfect": 1030, + "confirm": 82861, + "suspect": 114, + "dead": 3335, + "heal": 76984, + "nowSevere": 331, + "deadRate": "4.0", + "healRate": "92.9", + "nowConfirm": 2556, + "importedCase": 888, + "date": "04.03" + }, + { + "importedCase": 913, + "noInfect": 1024, + "heal": 77210, + "nowConfirm": 2382, + "dead": 3338, + "nowSevere": 295, + "deadRate": "4.0", + "healRate": "93.1", + "date": "04.04", + "confirm": 82930, + "suspect": 107 + }, + { + "nowConfirm": 2317, + "importedCase": 951, + "date": "04.05", + "noInfect": 1047, + "confirm": 83005, + "suspect": 88, + "dead": 3340, + "heal": 77348, + "nowSevere": 265, + "deadRate": "4.0", + "healRate": "93.2" + }, + { + "dead": 3340, + "heal": 77450, + "nowSevere": 211, + "deadRate": "4.0", + "healRate": "93.2", + "date": "04.06", + "noInfect": 1033, + "confirm": 83071, + "suspect": 89, + "nowConfirm": 2281, + "importedCase": 983 + }, + { + "confirm": 83157, + "heal": 77586, + "importedCase": 1042, + "deadRate": "4.0", + "healRate": "93.3", + "noInfect": 1095, + "suspect": 83, + "dead": 3342, + "nowConfirm": 2229, + "nowSevere": 189, + "date": "04.07" + }, + { + "heal": 77711, + "importedCase": 1103, + "healRate": "93.3", + "noInfect": 1104, + "confirm": 83249, + "dead": 3344, + "nowConfirm": 2194, + "nowSevere": 176, + "deadRate": "4.0", + "date": "04.08", + "suspect": 73 + }, + { + "confirm": 83305, + "nowConfirm": 2122, + "nowSevere": 144, + "healRate": "93.4", + "date": "04.09", + "noInfect": 1097, + "suspect": 53, + "dead": 3345, + "heal": 77838, + "importedCase": 1141, + "deadRate": "4.0" + }, + { + "dead": 3349, + "healRate": "93.5", + "nowConfirm": 2085, + "nowSevere": 141, + "importedCase": 1183, + "deadRate": "4.0", + "date": "04.10", + "confirm": 83369, + "suspect": 44, + "heal": 77935, + "noInfect": 1092 + }, + { + "importedCase": 1280, + "healRate": "93.5", + "confirm": 83482, + "heal": 78020, + "nowConfirm": 2113, + "nowSevere": 139, + "noInfect": 1086, + "suspect": 82, + "dead": 3349, + "deadRate": "4.0", + "date": "04.11" + }, + { + "suspect": 72, + "dead": 3351, + "heal": 78145, + "nowConfirm": 2106, + "nowSevere": 121, + "deadRate": "4.0", + "healRate": "93.5", + "confirm": 83602, + "date": "04.12", + "noInfect": 1064, + "importedCase": 1378 + }, + { + "nowConfirm": 2083, + "nowSevere": 116, + "importedCase": 1464, + "noInfect": 1005, + "confirm": 83696, + "heal": 78262, + "deadRate": "4.0", + "healRate": "93.5", + "date": "04.13", + "suspect": 72, + "dead": 3351 + }, + { + "noInfect": 1023, + "confirm": 83745, + "suspect": 73, + "dead": 3352, + "heal": 78389, + "nowConfirm": 2004, + "importedCase": 1500, + "date": "04.14", + "nowSevere": 113, + "deadRate": "4.0", + "healRate": "93.6" + }, + { + "deadRate": "4.0", + "healRate": "93.7", + "heal": 78504, + "nowConfirm": 1941, + "dead": 3352, + "nowSevere": 95, + "importedCase": 1534, + "date": "04.15", + "noInfect": 1032, + "confirm": 83797, + "suspect": 63 + }, + { + "importedCase": 1549, + "noInfect": 1038, + "dead": 3352, + "heal": 78600, + "nowConfirm": 1872, + "nowSevere": 89, + "deadRate": "4.0", + "healRate": "93.8", + "confirm": 83824, + "suspect": 62, + "date": "04.16" + }, + { + "date": "04.17", + "suspect": 63, + "dead": 4642, + "nowConfirm": 1794, + "nowSevere": 85, + "healRate": "92.4", + "confirm": 84180, + "heal": 77744, + "importedCase": 1566, + "deadRate": "5.5", + "noInfect": 1017 + }, + { + "heal": 77825, + "nowSevere": 85, + "deadRate": "5.5", + "noInfect": 999, + "confirm": 84201, + "suspect": 48, + "dead": 4642, + "nowConfirm": 1734, + "importedCase": 1575, + "healRate": "92.4", + "date": "04.18" + }, + { + "date": "04.19", + "dead": 4642, + "heal": 77895, + "deadRate": "5.5", + "healRate": "92.5", + "importedCase": 1583, + "noInfect": 990, + "confirm": 84237, + "suspect": 43, + "nowConfirm": 1700, + "nowSevere": 81 + }, + { + "date": "04.20", + "confirm": 84250, + "dead": 4642, + "nowConfirm": 1630, + "nowSevere": 82, + "healRate": "92.6", + "noInfect": 992, + "suspect": 37, + "heal": 77978, + "importedCase": 1587, + "deadRate": "5.5" + }, + { + "nowConfirm": 1603, + "nowSevere": 78, + "date": "04.21", + "dead": 4642, + "suspect": 35, + "heal": 78042, + "importedCase": 1610, + "deadRate": "5.5", + "healRate": "92.6", + "noInfect": 991, + "confirm": 84287 + }, + { + "suspect": 20, + "dead": 4642, + "nowConfirm": 1513, + "healRate": "92.7", + "date": "04.22", + "confirm": 84302, + "heal": 78147, + "nowSevere": 63, + "importedCase": 1616, + "deadRate": "5.5", + "noInfect": 984 + }, + { + "confirm": 84311, + "deadRate": "5.5", + "noInfect": 979, + "date": "04.23", + "suspect": 20, + "dead": 4642, + "heal": 78236, + "nowConfirm": 1433, + "nowSevere": 57, + "importedCase": 1618, + "healRate": "92.8" + }, + { + "confirm": 84324, + "dead": 4642, + "importedCase": 1629, + "deadRate": "5.5", + "date": "04.24", + "noInfect": 983, + "suspect": 17, + "heal": 78362, + "nowConfirm": 1320, + "nowSevere": 49, + "healRate": "92.9" + }, + { + "confirm": 84338, + "suspect": 12, + "nowSevere": 51, + "deadRate": "5.5", + "healRate": "93.0", + "dead": 4642, + "heal": 78450, + "nowConfirm": 1246, + "importedCase": 1634, + "date": "04.25", + "noInfect": 1000 + }, + { + "importedCase": 1636, + "confirm": 84341, + "suspect": 10, + "dead": 4643, + "heal": 78558, + "nowConfirm": 1140, + "nowSevere": 52, + "deadRate": "5.5", + "healRate": "93.1", + "date": "04.26", + "noInfect": 974 + }, + { + "heal": 78664, + "nowSevere": 50, + "deadRate": "5.5", + "healRate": "93.3", + "suspect": 9, + "dead": 4643, + "importedCase": 1639, + "date": "04.27", + "noInfect": 997, + "confirm": 84347, + "nowConfirm": 1040 + }, + { + "confirm": 84369, + "suspect": 10, + "dead": 4643, + "nowConfirm": 997, + "deadRate": "5.5", + "healRate": "93.3", + "heal": 78729, + "nowSevere": 50, + "importedCase": 1660, + "date": "04.28", + "noInfect": 993 + }, + { + "confirm": 84373, + "nowConfirm": 945, + "deadRate": "5.5", + "date": "04.29", + "noInfect": 998, + "suspect": 10, + "dead": 4643, + "heal": 78785, + "nowSevere": 41, + "importedCase": 1664, + "healRate": "93.4" + }, + { + "confirm": 84385, + "suspect": 9, + "heal": 78845, + "nowConfirm": 897, + "importedCase": 1670, + "deadRate": "5.5", + "healRate": "93.4", + "dead": 4643, + "nowSevere": 38, + "date": "04.30", + "noInfect": 981 + }, + { + "suspect": 11, + "heal": 78905, + "nowSevere": 37, + "date": "05.01", + "noInfect": 989, + "confirm": 84388, + "dead": 4643, + "nowConfirm": 840, + "importedCase": 1671, + "deadRate": "5.5", + "healRate": "93.5" + }, + { + "date": "05.02", + "noInfect": 968, + "confirm": 84393, + "dead": 4643, + "heal": 78939, + "nowConfirm": 811, + "nowSevere": 34, + "healRate": "93.5", + "suspect": 10, + "importedCase": 1672, + "deadRate": "5.5" + }, + { + "confirm": 84400, + "heal": 79016, + "nowConfirm": 741, + "importedCase": 1675, + "deadRate": "5.5", + "healRate": "93.6", + "suspect": 3, + "dead": 4643, + "nowSevere": 33, + "date": "05.03", + "noInfect": 962 + }, + { + "dead": 4643, + "heal": 79126, + "nowSevere": 29, + "importedCase": 1676, + "healRate": "93.7", + "date": "05.04", + "confirm": 84404, + "suspect": 2, + "nowConfirm": 635, + "deadRate": "5.5", + "noInfect": 947 + }, + { + "confirm": 84406, + "suspect": 5, + "dead": 4643, + "healRate": "93.8", + "date": "05.05", + "noInfect": 903, + "heal": 79204, + "nowConfirm": 559, + "nowSevere": 26, + "importedCase": 1678, + "deadRate": "5.5" + }, + { + "heal": 79268, + "nowSevere": 23, + "importedCase": 1680, + "healRate": "93.9", + "date": "05.06", + "noInfect": 880, + "confirm": 84409, + "suspect": 4, + "dead": 4643, + "nowConfirm": 498, + "deadRate": "5.5" + }, + { + "confirm": 84415, + "nowConfirm": 448, + "nowSevere": 18, + "importedCase": 1680, + "date": "05.07", + "noInfect": 854, + "suspect": 6, + "dead": 4643, + "heal": 79324, + "deadRate": "5.5", + "healRate": "94.0" + }, + { + "nowSevere": 15, + "importedCase": 1681, + "healRate": "94.1", + "date": "05.08", + "noInfect": 836, + "suspect": 8, + "heal": 79401, + "nowConfirm": 372, + "confirm": 84416, + "dead": 4643, + "deadRate": "5.5" + }, + { + "heal": 79488, + "nowConfirm": 299, + "nowSevere": 13, + "deadRate": "5.5", + "healRate": "94.1", + "date": "05.09", + "noInfect": 794, + "confirm": 84430, + "suspect": 4, + "dead": 4643, + "importedCase": 1683 + }, + { + "nowSevere": 9, + "deadRate": "5.5", + "healRate": "94.2", + "confirm": 84450, + "suspect": 3, + "dead": 4643, + "heal": 79533, + "nowConfirm": 274, + "importedCase": 1690, + "date": "05.10", + "noInfect": 780 + }, + { + "heal": 79566, + "nowConfirm": 241, + "importedCase": 1691, + "noInfect": 760, + "confirm": 84451, + "dead": 4644, + "deadRate": "5.5", + "healRate": "94.2", + "date": "05.11", + "suspect": 3, + "nowSevere": 10 + }, + { + "importedCase": 1692, + "deadRate": "5.5", + "date": "05.12", + "confirm": 84458, + "heal": 79594, + "nowConfirm": 220, + "nowSevere": 10, + "suspect": 4, + "dead": 4644, + "healRate": "94.2", + "noInfect": 750 + }, + { + "dead": 4644, + "heal": 79621, + "importedCase": 1692, + "healRate": "94.3", + "noInfect": 712, + "confirm": 84464, + "suspect": 4, + "nowConfirm": 199, + "nowSevere": 9, + "deadRate": "5.5", + "date": "05.13" + }, + { + "nowSevere": 11, + "healRate": "94.3", + "date": "05.14", + "noInfect": 619, + "suspect": 4, + "dead": 4644, + "nowConfirm": 181, + "importedCase": 1692, + "deadRate": "5.5", + "confirm": 84469, + "heal": 79644 + }, + { + "confirm": 84478, + "nowConfirm": 166, + "deadRate": "5.5", + "date": "05.15", + "suspect": 3, + "dead": 4644, + "heal": 79668, + "nowSevere": 11, + "importedCase": 1698, + "healRate": "94.3", + "noInfect": 561 + }, + { + "confirm": 84484, + "suspect": 4, + "heal": 79682, + "nowConfirm": 157, + "nowSevere": 10, + "date": "05.16", + "dead": 4645, + "importedCase": 1700, + "deadRate": "5.5", + "healRate": "94.3", + "noInfect": 515 + }, + { + "dead": 4645, + "importedCase": 1704, + "healRate": "94.3", + "date": "05.17", + "confirm": 84494, + "suspect": 4, + "heal": 79701, + "nowConfirm": 148, + "nowSevere": 8, + "deadRate": "5.5", + "noInfect": 448 + }, + { + "heal": 79708, + "nowConfirm": 147, + "nowSevere": 10, + "suspect": 3, + "dead": 4645, + "deadRate": "5.5", + "healRate": "94.3", + "date": "05.18", + "noInfect": 389, + "confirm": 84500, + "importedCase": 1707 + }, + { + "nowConfirm": 145, + "nowSevere": 9, + "deadRate": "5.5", + "date": "05.19", + "confirm": 84505, + "suspect": 7, + "dead": 4645, + "heal": 79715, + "importedCase": 1708, + "healRate": "94.3", + "noInfect": 368 + }, + { + "suspect": 7, + "dead": 4645, + "heal": 79722, + "nowSevere": 8, + "importedCase": 1709, + "healRate": "94.3", + "date": "05.20", + "confirm": 84507, + "deadRate": "5.5", + "noInfect": 375, + "nowConfirm": 140 + }, + { + "confirm": 84520, + "importedCase": 1711, + "deadRate": "5.5", + "nowSevere": 8, + "healRate": "94.3", + "date": "05.21", + "noInfect": 365, + "suspect": 7, + "dead": 4645, + "heal": 79736, + "nowConfirm": 139 + }, + { + "confirm": 84522, + "nowSevere": 9, + "deadRate": "5.5", + "healRate": "94.3", + "noInfect": 370, + "suspect": 6, + "dead": 4645, + "heal": 79740, + "nowConfirm": 137, + "importedCase": 1711, + "date": "05.22" + }, + { + "heal": 79746, + "importedCase": 1713, + "noInfect": 371, + "nowConfirm": 134, + "nowSevere": 8, + "deadRate": "5.5", + "healRate": "94.3", + "date": "05.23", + "confirm": 84525, + "suspect": 9, + "dead": 4645 + }, + { + "dead": 4645, + "heal": 79757, + "nowConfirm": 134, + "importedCase": 1724, + "healRate": "94.3", + "date": "05.24", + "noInfect": 396, + "confirm": 84536, + "suspect": 6, + "nowSevere": 7, + "deadRate": "5.5" + }, + { + "date": "05.25", + "heal": 79767, + "nowSevere": 7, + "deadRate": "5.5", + "healRate": "94.4", + "importedCase": 1731, + "noInfect": 403, + "confirm": 84543, + "suspect": 5, + "dead": 4645, + "nowConfirm": 131 + }, + { + "confirm": 84544, + "nowConfirm": 125, + "nowSevere": 5, + "deadRate": "5.5", + "date": "05.26", + "noInfect": 404, + "suspect": 6, + "dead": 4645, + "heal": 79774, + "importedCase": 1732, + "healRate": "94.4" + }, + { + "dead": 4645, + "suspect": 5, + "heal": 79786, + "nowConfirm": 116, + "nowSevere": 4, + "importedCase": 1734, + "deadRate": "5.5", + "healRate": "94.4", + "confirm": 84547, + "noInfect": 413, + "date": "05.27" + }, + { + "nowSevere": 4, + "noInfect": 409, + "suspect": 5, + "dead": 4645, + "nowConfirm": 111, + "deadRate": "5.5", + "healRate": "94.4", + "date": "05.28", + "confirm": 84547, + "heal": 79791, + "importedCase": 1734 + }, + { + "nowConfirm": 118, + "deadRate": "5.5", + "healRate": "94.4", + "date": "05.29", + "noInfect": 396, + "confirm": 84565, + "suspect": 5, + "dead": 4645, + "heal": 79802, + "nowSevere": 3, + "importedCase": 1738 + }, + { + "healRate": "94.4", + "date": "05.30", + "noInfect": 389, + "confirm": 84570, + "suspect": 4, + "nowConfirm": 119, + "deadRate": "5.5", + "dead": 4645, + "heal": 79806, + "nowSevere": 3, + "importedCase": 1740 + }, + { + "importedCase": 1756, + "healRate": "94.4", + "noInfect": 397, + "deadRate": "5.5", + "date": "05.31", + "confirm": 84588, + "suspect": 3, + "dead": 4645, + "heal": 79812, + "nowConfirm": 131, + "nowSevere": 3 + }, + { + "nowConfirm": 128, + "deadRate": "5.5", + "healRate": "94.4", + "suspect": 2, + "dead": 4645, + "heal": 79824, + "nowSevere": 3, + "importedCase": 1761, + "date": "06.01", + "noInfect": 371, + "confirm": 84597 + }, + { + "healRate": "94.4", + "dead": 4645, + "heal": 79824, + "nowConfirm": 133, + "nowSevere": 2, + "importedCase": 1762, + "confirm": 84602, + "suspect": 3, + "deadRate": "5.5", + "date": "06.02", + "noInfect": 357 + }, + { + "nowSevere": 2, + "importedCase": 1763, + "confirm": 84603, + "dead": 4645, + "nowConfirm": 127, + "deadRate": "5.5", + "healRate": "94.4", + "date": "06.03", + "noInfect": 326, + "suspect": 3, + "heal": 79831 + }, + { + "heal": 79842, + "deadRate": "5.5", + "healRate": "94.4", + "date": "06.04", + "noInfect": 297, + "dead": 4645, + "suspect": 2, + "nowConfirm": 127, + "nowSevere": 1, + "importedCase": 1768, + "confirm": 84614 + }, + { + "suspect": 2, + "dead": 4645, + "heal": 79848, + "nowSevere": 1, + "importedCase": 1771, + "date": "06.05", + "noInfect": 257, + "confirm": 84620, + "nowConfirm": 127, + "deadRate": "5.5", + "healRate": "94.4" + }, + { + "importedCase": 1776, + "healRate": "94.4", + "dead": 4645, + "heal": 79854, + "nowConfirm": 130, + "nowSevere": 0, + "noInfect": 236, + "confirm": 84629, + "suspect": 3, + "deadRate": "5.5", + "date": "06.06" + }, + { + "heal": 79865, + "nowSevere": 0, + "importedCase": 1780, + "noInfect": 201, + "confirm": 84634, + "suspect": 4, + "dead": 4645, + "date": "06.07", + "nowConfirm": 124, + "deadRate": "5.5", + "healRate": "94.4" + }, + { + "suspect": 1, + "deadRate": "5.5", + "date": "06.08", + "noInfect": 174, + "confirm": 84638, + "dead": 4645, + "heal": 79875, + "nowConfirm": 118, + "nowSevere": 0, + "importedCase": 1783, + "healRate": "94.4" + }, + { + "suspect": 2, + "importedCase": 1786, + "healRate": "94.4", + "date": "06.09", + "noInfect": 155, + "deadRate": "5.5", + "confirm": 84641, + "dead": 4645, + "heal": 79883, + "nowConfirm": 113, + "nowSevere": 0 + }, + { + "noInfect": 129, + "suspect": 1, + "nowConfirm": 119, + "nowSevere": 0, + "importedCase": 1797, + "deadRate": "5.5", + "healRate": "94.4", + "date": "06.10", + "confirm": 84652, + "dead": 4645, + "heal": 79888 + }, + { + "confirm": 84659, + "nowConfirm": 118, + "nowSevere": 0, + "importedCase": 1803, + "date": "06.11", + "suspect": 1, + "dead": 4645, + "heal": 79896, + "deadRate": "5.5", + "healRate": "94.4", + "noInfect": 104 + }, + { + "importedCase": 1808, + "confirm": 84671, + "suspect": 1, + "nowSevere": 0, + "deadRate": "5.5", + "healRate": "94.4", + "date": "06.12", + "noInfect": 98, + "dead": 4645, + "heal": 79903, + "nowConfirm": 123 + }, + { + "deadRate": "5.5", + "healRate": "94.3", + "noInfect": 103, + "confirm": 84729, + "nowConfirm": 178, + "nowSevere": 1, + "importedCase": 1827, + "date": "06.13", + "suspect": 2, + "dead": 4645, + "heal": 79906 + }, + { + "dead": 4645, + "deadRate": "5.5", + "noInfect": 112, + "date": "06.14", + "confirm": 84778, + "suspect": 3, + "heal": 79913, + "nowConfirm": 220, + "nowSevere": 2, + "importedCase": 1837, + "healRate": "94.3" + }, + { + "heal": 79922, + "nowSevere": 5, + "deadRate": "5.5", + "noInfect": 110, + "suspect": 4, + "dead": 4645, + "importedCase": 1845, + "healRate": "94.2", + "date": "06.15", + "confirm": 84823, + "nowConfirm": 256 + }, + { + "noInfect": 106, + "suspect": 7, + "dead": 4645, + "heal": 79926, + "nowConfirm": 296, + "nowSevere": 7, + "deadRate": "5.5", + "healRate": "94.2", + "confirm": 84867, + "importedCase": 1856, + "date": "06.16" + }, + { + "nowConfirm": 314, + "deadRate": "5.5", + "healRate": "94.2", + "confirm": 84903, + "dead": 4645, + "heal": 79944, + "nowSevere": 9, + "importedCase": 1860, + "date": "06.17", + "noInfect": 111, + "suspect": 7 + }, + { + "confirm": 84940, + "suspect": 7, + "heal": 79949, + "nowConfirm": 346, + "nowSevere": 13, + "importedCase": 1864, + "healRate": "94.1", + "date": "06.18", + "noInfect": 110, + "dead": 4645, + "deadRate": "5.5" + }, + { + "noInfect": 108, + "dead": 4645, + "heal": 79963, + "importedCase": 1868, + "deadRate": "5.5", + "healRate": "94.1", + "date": "06.19", + "confirm": 84970, + "suspect": 11, + "nowConfirm": 362, + "nowSevere": 13 + }, + { + "importedCase": 1869, + "healRate": "94.1", + "date": "06.20", + "suspect": 13, + "dead": 4645, + "nowConfirm": 382, + "nowSevere": 15, + "confirm": 84997, + "heal": 79969, + "deadRate": "5.5", + "noInfect": 111 + }, + { + "importedCase": 1876, + "deadRate": "5.5", + "healRate": "94.1", + "date": "06.21", + "noInfect": 114, + "confirm": 85018, + "suspect": 15, + "nowConfirm": 402, + "dead": 4646, + "heal": 79970, + "nowSevere": 12 + }, + { + "confirm": 85070, + "dead": 4646, + "heal": 79983, + "healRate": "94.0", + "date": "06.22", + "noInfect": 99, + "suspect": 15, + "nowConfirm": 441, + "nowSevere": 13, + "importedCase": 1885, + "deadRate": "5.5" + }, + { + "noInfect": 100, + "dead": 4647, + "nowConfirm": 460, + "nowSevere": 12, + "deadRate": "5.5", + "healRate": "94.0", + "date": "06.23", + "confirm": 85098, + "suspect": 18, + "heal": 79991, + "importedCase": 1888 + }, + { + "nowSevere": 15, + "confirm": 85119, + "suspect": 13, + "dead": 4647, + "deadRate": "5.5", + "healRate": "94.0", + "date": "06.24", + "noInfect": 97, + "heal": 79999, + "nowConfirm": 473, + "importedCase": 1893 + }, + { + "nowSevere": 8, + "deadRate": "5.5", + "healRate": "94.0", + "noInfect": 97, + "confirm": 85148, + "dead": 4648, + "nowConfirm": 493, + "date": "06.25", + "suspect": 10, + "heal": 80007, + "importedCase": 1895 + }, + { + "heal": 80015, + "nowSevere": 8, + "deadRate": "5.5", + "healRate": "93.9", + "suspect": 8, + "dead": 4648, + "nowConfirm": 509, + "importedCase": 1899, + "date": "06.26", + "noInfect": 106, + "confirm": 85172 + }, + { + "date": "06.27", + "dead": 4648, + "heal": 80026, + "nowConfirm": 516, + "importedCase": 1902, + "healRate": "93.9", + "confirm": 85190, + "suspect": 8, + "nowSevere": 8, + "deadRate": "5.5", + "noInfect": 106 + }, + { + "healRate": "93.9", + "date": "06.28", + "suspect": 10, + "dead": 4648, + "nowConfirm": 512, + "importedCase": 1907, + "deadRate": "5.5", + "noInfect": 102, + "confirm": 85204, + "heal": 80044, + "nowSevere": 8 + }, + { + "nowConfirm": 525, + "nowSevere": 7, + "deadRate": "5.5", + "healRate": "93.9", + "date": "06.29", + "confirm": 85227, + "suspect": 7, + "heal": 80054, + "noInfect": 99, + "dead": 4648, + "importedCase": 1918 + }, + { + "confirm": 85232, + "importedCase": 1918, + "healRate": "93.9", + "date": "06.30", + "noInfect": 100, + "suspect": 8, + "dead": 4648, + "heal": 80068, + "nowConfirm": 516, + "nowSevere": 7, + "deadRate": "5.5" + }, + { + "importedCase": 1920, + "healRate": "93.9", + "confirm": 85263, + "dead": 4648, + "nowConfirm": 528, + "nowSevere": 7, + "noInfect": 99, + "suspect": 5, + "heal": 80087, + "deadRate": "5.5", + "date": "07.01" + }, + { + "healRate": "93.9", + "date": "07.02", + "confirm": 85278, + "suspect": 6, + "heal": 80102, + "importedCase": 1923, + "deadRate": "5.5", + "dead": 4648, + "nowConfirm": 528, + "nowSevere": 8, + "noInfect": 97 + }, + { + "nowConfirm": 522, + "nowSevere": 6, + "deadRate": "5.4", + "date": "07.03", + "noInfect": 98, + "dead": 4648, + "heal": 80117, + "importedCase": 1925, + "healRate": "93.9", + "confirm": 85287, + "suspect": 7 + }, + { + "noInfect": 99, + "confirm": 85306, + "suspect": 7, + "dead": 4648, + "heal": 80144, + "nowConfirm": 514, + "importedCase": 1931, + "deadRate": "5.4", + "nowSevere": 6, + "healRate": "93.9", + "date": "07.04" + }, + { + "dead": 4648, + "heal": 80157, + "nowConfirm": 515, + "importedCase": 1934, + "deadRate": "5.4", + "date": "07.05", + "noInfect": 109, + "confirm": 85320, + "suspect": 7, + "nowSevere": 6, + "healRate": "93.9" + }, + { + "suspect": 7, + "dead": 4648, + "heal": 80168, + "nowConfirm": 529, + "importedCase": 1942, + "date": "07.06", + "noInfect": 114, + "confirm": 85345, + "nowSevere": 7, + "deadRate": "5.4", + "healRate": "93.9" + }, + { + "dead": 4648, + "heal": 80192, + "nowConfirm": 526, + "deadRate": "5.4", + "suspect": 6, + "nowSevere": 6, + "importedCase": 1949, + "healRate": "93.9", + "date": "07.07", + "noInfect": 117, + "confirm": 85366 + }, + { + "dead": 4648, + "heal": 80240, + "nowConfirm": 511, + "nowSevere": 5, + "healRate": "94.0", + "confirm": 85399, + "suspect": 5, + "date": "07.08", + "noInfect": 112, + "importedCase": 1958, + "deadRate": "5.4" + }, + { + "confirm": 85445, + "suspect": 8, + "dead": 4648, + "heal": 80268, + "importedCase": 1962, + "deadRate": "5.4", + "healRate": "93.9", + "date": "07.09", + "noInfect": 113, + "nowConfirm": 529, + "nowSevere": 4 + }, + { + "confirm": 85487, + "suspect": 8, + "dead": 4648, + "importedCase": 1964, + "deadRate": "5.4", + "noInfect": 111, + "heal": 80293, + "nowConfirm": 546, + "nowSevere": 3, + "healRate": "93.9", + "date": "07.10" + }, + { + "suspect": 7, + "heal": 80314, + "nowConfirm": 560, + "date": "07.11", + "noInfect": 112, + "confirm": 85522, + "nowSevere": 3, + "importedCase": 1971, + "deadRate": "5.4", + "healRate": "93.9", + "dead": 4648 + }, + { + "nowConfirm": 575, + "nowSevere": 3, + "importedCase": 1979, + "deadRate": "5.4", + "confirm": 85568, + "suspect": 7, + "dead": 4648, + "heal": 80345, + "healRate": "93.9", + "date": "07.12", + "noInfect": 110 + }, + { + "confirm": 85623, + "heal": 80376, + "nowConfirm": 598, + "deadRate": "5.4", + "date": "07.13", + "noInfect": 110, + "suspect": 5, + "dead": 4649, + "nowSevere": 3, + "importedCase": 1982, + "healRate": "93.9" + }, + { + "confirm": 85677, + "dead": 4649, + "heal": 80407, + "healRate": "93.8", + "date": "07.14", + "suspect": 3, + "nowConfirm": 621, + "nowSevere": 3, + "importedCase": 1988, + "deadRate": "5.4", + "noInfect": 110 + }, + { + "confirm": 85697, + "suspect": 3, + "dead": 4651, + "importedCase": 1989, + "deadRate": "5.4", + "noInfect": 104, + "heal": 80445, + "nowConfirm": 601, + "nowSevere": 3, + "healRate": "93.9", + "date": "07.15" + }, + { + "heal": 80476, + "nowConfirm": 648, + "nowSevere": 3, + "noInfect": 104, + "confirm": 85775, + "suspect": 3, + "dead": 4651, + "importedCase": 1998, + "deadRate": "5.4", + "healRate": "93.8", + "date": "07.16" + }, + { + "suspect": 4, + "nowConfirm": 697, + "noInfect": 109, + "healRate": "93.8", + "date": "07.17", + "confirm": 85857, + "dead": 4652, + "heal": 80508, + "nowSevere": 3, + "importedCase": 2004, + "deadRate": "5.4" + }, + { + "confirm": 85937, + "suspect": 4, + "dead": 4653, + "heal": 80535, + "importedCase": 2007, + "deadRate": "5.4", + "healRate": "93.7", + "noInfect": 147, + "nowConfirm": 749, + "nowSevere": 3, + "date": "07.18" + }, + { + "suspect": 4, + "deadRate": "5.4", + "healRate": "93.6", + "date": "07.19", + "noInfect": 154, + "confirm": 86068, + "dead": 4653, + "heal": 80579, + "nowConfirm": 836, + "nowSevere": 5, + "importedCase": 2012 + }, + { + "nowSevere": 7, + "importedCase": 2015, + "healRate": "93.6", + "noInfect": 149, + "date": "07.20", + "confirm": 86152, + "suspect": 1, + "dead": 4653, + "heal": 80605, + "nowConfirm": 894, + "deadRate": "5.4" + }, + { + "heal": 80650, + "deadRate": "5.4", + "healRate": "93.5", + "date": "07.21", + "suspect": 1, + "dead": 4655, + "nowSevere": 6, + "importedCase": 2020, + "noInfect": 164, + "confirm": 86226, + "nowConfirm": 921 + }, + { + "confirm": 86361, + "suspect": 4, + "dead": 4655, + "heal": 80685, + "healRate": "93.4", + "date": "07.22", + "nowConfirm": 1021, + "nowSevere": 11, + "importedCase": 2023, + "deadRate": "5.4", + "noInfect": 176 + }, + { + "suspect": 2, + "dead": 4656, + "nowConfirm": 1106, + "nowSevere": 12, + "importedCase": 2029, + "date": "07.23", + "noInfect": 204, + "confirm": 86500, + "deadRate": "5.4", + "healRate": "93.3", + "heal": 80738 + }, + { + "heal": 80782, + "deadRate": "5.4", + "healRate": "93.2", + "dead": 4657, + "suspect": 2, + "nowConfirm": 1221, + "nowSevere": 11, + "importedCase": 2034, + "date": "07.24", + "noInfect": 251, + "confirm": 86660 + }, + { + "confirm": 86839, + "heal": 80849, + "deadRate": "5.4", + "date": "07.25", + "healRate": "93.1", + "noInfect": 292, + "suspect": 3, + "dead": 4659, + "nowConfirm": 1331, + "nowSevere": 18, + "importedCase": 2045 + }, + { + "heal": 80899, + "importedCase": 2049, + "deadRate": "5.4", + "healRate": "93.0", + "date": "07.26", + "dead": 4659, + "suspect": 3, + "nowConfirm": 1470, + "nowSevere": 21, + "noInfect": 302, + "confirm": 87028 + }, + { + "nowConfirm": 1676, + "nowSevere": 20, + "healRate": "92.7", + "date": "07.27", + "noInfect": 306, + "confirm": 87245, + "dead": 4663, + "heal": 80906, + "suspect": 1, + "importedCase": 2053, + "deadRate": "5.3" + }, + { + "confirm": 87457, + "suspect": 1, + "heal": 80957, + "nowConfirm": 1836, + "nowSevere": 25, + "date": "07.28", + "dead": 4664, + "importedCase": 2056, + "deadRate": "5.3", + "healRate": "92.6", + "noInfect": 273 + }, + { + "nowConfirm": 1981, + "nowSevere": 33, + "deadRate": "5.3", + "healRate": "92.4", + "date": "07.29", + "suspect": 2, + "dead": 4665, + "heal": 81034, + "noInfect": 280, + "confirm": 87680, + "importedCase": 2059 + }, + { + "suspect": 2, + "nowConfirm": 2170, + "healRate": "92.2", + "importedCase": 2063, + "deadRate": "5.3", + "date": "07.30", + "noInfect": 246, + "confirm": 87956, + "dead": 4666, + "heal": 81120, + "nowSevere": 41 + }, + { + "healRate": "92.2", + "date": "07.31", + "suspect": 2, + "dead": 4668, + "heal": 81227, + "nowConfirm": 2227, + "importedCase": 2069, + "deadRate": "5.3", + "confirm": 88122, + "nowSevere": 39, + "noInfect": 252 + }, + { + "deadRate": "5.3", + "date": "08.01", + "noInfect": 257, + "suspect": 2, + "dead": 4672, + "nowConfirm": 2281, + "nowSevere": 36, + "confirm": 88301, + "heal": 81348, + "importedCase": 2085, + "healRate": "92.1" + }, + { + "confirm": 88459, + "suspect": 4, + "dead": 4676, + "nowConfirm": 2324, + "nowSevere": 35, + "importedCase": 2092, + "deadRate": "5.3", + "date": "08.02", + "noInfect": 257, + "heal": 81459, + "healRate": "92.1" + }, + { + "suspect": 5, + "heal": 81554, + "nowSevere": 36, + "importedCase": 2098, + "healRate": "92.1", + "noInfect": 264, + "confirm": 88573, + "dead": 4679, + "nowConfirm": 2340, + "deadRate": "5.3", + "date": "08.03" + }, + { + "healRate": "92.1", + "date": "08.04", + "confirm": 88682, + "importedCase": 2103, + "heal": 81675, + "nowConfirm": 2324, + "nowSevere": 36, + "deadRate": "5.3", + "noInfect": 272, + "suspect": 3, + "dead": 4683 + }, + { + "suspect": 2, + "dead": 4684, + "nowConfirm": 2262, + "importedCase": 2110, + "noInfect": 282, + "confirm": 88804, + "heal": 81858, + "nowSevere": 34, + "deadRate": "5.3", + "healRate": "92.2", + "date": "08.05" + }, + { + "dead": 4687, + "nowSevere": 36, + "importedCase": 2120, + "deadRate": "5.3", + "healRate": "92.2", + "date": "08.06", + "confirm": 88937, + "suspect": 3, + "heal": 82033, + "nowConfirm": 2217, + "noInfect": 273 + }, + { + "healRate": "92.3", + "date": "08.07", + "noInfect": 271, + "confirm": 89057, + "suspect": 7, + "heal": 82230, + "nowConfirm": 2139, + "dead": 4688, + "nowSevere": 42, + "importedCase": 2126, + "deadRate": "5.3" + }, + { + "confirm": 89149, + "heal": 82410, + "nowConfirm": 2051, + "noInfect": 270, + "suspect": 6, + "dead": 4688, + "nowSevere": 43, + "importedCase": 2134, + "deadRate": "5.3", + "healRate": "92.4", + "date": "08.08" + }, + { + "deadRate": "5.3", + "healRate": "92.5", + "date": "08.09", + "suspect": 7, + "dead": 4693, + "heal": 82566, + "nowConfirm": 2011, + "nowSevere": 41, + "importedCase": 2169, + "noInfect": 283, + "confirm": 89270 + }, + { + "confirm": 89383, + "suspect": 3, + "heal": 82688, + "date": "08.10", + "deadRate": "5.3", + "healRate": "92.5", + "noInfect": 285, + "dead": 4696, + "nowConfirm": 1999, + "nowSevere": 44, + "importedCase": 2200 + }, + { + "confirm": 89444, + "dead": 4699, + "heal": 82883, + "nowConfirm": 1862, + "deadRate": "5.3", + "date": "08.11", + "suspect": 3, + "nowSevere": 40, + "importedCase": 2216, + "healRate": "92.7", + "noInfect": 288 + }, + { + "heal": 83083, + "importedCase": 2227, + "deadRate": "5.3", + "healRate": "92.8", + "confirm": 89526, + "suspect": 4, + "dead": 4704, + "nowConfirm": 1739, + "nowSevere": 41, + "date": "08.12", + "noInfect": 295 + }, + { + "confirm": 89625, + "nowConfirm": 1665, + "noInfect": 309, + "suspect": 5, + "dead": 4707, + "heal": 83253, + "nowSevere": 39, + "importedCase": 2249, + "deadRate": "5.3", + "healRate": "92.9", + "date": "08.13" + }, + { + "noInfect": 318, + "suspect": 3, + "dead": 4708, + "nowConfirm": 1580, + "nowSevere": 36, + "date": "08.14", + "confirm": 89695, + "heal": 83407, + "importedCase": 2263, + "deadRate": "5.2", + "healRate": "93.0" + }, + { + "healRate": "93.1", + "noInfect": 319, + "confirm": 89761, + "importedCase": 2278, + "deadRate": "5.2", + "nowConfirm": 1492, + "nowSevere": 34, + "date": "08.15", + "suspect": 3, + "dead": 4710, + "heal": 83559 + }, + { + "date": "08.16", + "noInfect": 351, + "confirm": 89859, + "dead": 4710, + "nowSevere": 30, + "importedCase": 2300, + "healRate": "93.1", + "suspect": 4, + "heal": 83648, + "nowConfirm": 1501, + "deadRate": "5.2" + }, + { + "nowSevere": 27, + "deadRate": "5.2", + "date": "08.17", + "confirm": 89926, + "dead": 4710, + "heal": 83737, + "nowConfirm": 1479, + "importedCase": 2322, + "healRate": "93.1", + "noInfect": 356, + "suspect": 3 + }, + { + "importedCase": 2339, + "confirm": 89980, + "suspect": 2, + "dead": 4712, + "deadRate": "5.2", + "healRate": "93.2", + "date": "08.18", + "noInfect": 345, + "heal": 83858, + "nowConfirm": 1410, + "nowSevere": 26 + }, + { + "confirm": 90013, + "dead": 4713, + "nowSevere": 24, + "importedCase": 2346, + "suspect": 2, + "heal": 84027, + "nowConfirm": 1273, + "deadRate": "5.2", + "healRate": "93.3", + "date": "08.19", + "noInfect": 352 + }, + { + "date": "08.20", + "suspect": 0, + "dead": 4716, + "heal": 84122, + "nowConfirm": 1215, + "importedCase": 2368, + "confirm": 90053, + "nowSevere": 20, + "deadRate": "5.2", + "healRate": "93.4", + "noInfect": 353 + }, + { + "healRate": "93.5", + "date": "08.21", + "noInfect": 366, + "deadRate": "5.2", + "confirm": 90103, + "suspect": 1, + "dead": 4716, + "heal": 84254, + "nowConfirm": 1133, + "nowSevere": 19, + "importedCase": 2390 + }, + { + "heal": 84372, + "healRate": "93.6", + "confirm": 90141, + "suspect": 3, + "dead": 4717, + "nowConfirm": 1052, + "nowSevere": 16, + "importedCase": 2402, + "deadRate": "5.2", + "date": "08.22", + "noInfect": 370 + }, + { + "suspect": 2, + "deadRate": "5.2", + "nowSevere": 14, + "importedCase": 2418, + "healRate": "93.6", + "date": "08.23", + "confirm": 90182, + "dead": 4718, + "heal": 84446, + "nowConfirm": 1018, + "noInfect": 374 + }, + { + "deadRate": "5.2", + "date": "08.24", + "noInfect": 374, + "heal": 84516, + "suspect": 2, + "dead": 4718, + "nowConfirm": 971, + "nowSevere": 10, + "importedCase": 2432, + "healRate": "93.7", + "confirm": 90205 + }, + { + "deadRate": "5.2", + "healRate": "93.8", + "noInfect": 365, + "suspect": 0, + "nowConfirm": 894, + "importedCase": 2447, + "nowSevere": 7, + "date": "08.25", + "confirm": 90239, + "dead": 4719, + "heal": 84626 + }, + { + "importedCase": 2455, + "deadRate": "5.2", + "noInfect": 365, + "healRate": "93.8", + "date": "08.26", + "confirm": 90271, + "suspect": 1, + "dead": 4720, + "heal": 84715, + "nowConfirm": 836, + "nowSevere": 4 + }, + { + "nowSevere": 4, + "importedCase": 2464, + "date": "08.27", + "nowConfirm": 780, + "deadRate": "5.2", + "healRate": "93.9", + "noInfect": 358, + "confirm": 90301, + "suspect": 3, + "dead": 4722, + "heal": 84799 + }, + { + "importedCase": 2473, + "date": "08.28", + "noInfect": 351, + "confirm": 90323, + "dead": 4725, + "nowConfirm": 715, + "nowSevere": 4, + "suspect": 0, + "heal": 84883, + "deadRate": "5.2", + "healRate": "94.0" + }, + { + "dead": 4728, + "nowConfirm": 675, + "confirm": 90351, + "suspect": 0, + "importedCase": 2482, + "deadRate": "5.2", + "healRate": "94.0", + "date": "08.29", + "noInfect": 338, + "heal": 84948, + "nowSevere": 4 + }, + { + "dead": 4729, + "nowSevere": 4, + "nowConfirm": 649, + "importedCase": 2499, + "deadRate": "5.2", + "healRate": "94.0", + "date": "08.30", + "confirm": 90383, + "suspect": 0, + "heal": 85005, + "noInfect": 340 + }, + { + "healRate": "94.1", + "noInfect": 356, + "confirm": 90402, + "dead": 4730, + "nowSevere": 3, + "deadRate": "5.2", + "date": "08.31", + "suspect": 0, + "heal": 85058, + "nowConfirm": 614, + "importedCase": 2509 + }, + { + "importedCase": 2517, + "confirm": 90422, + "dead": 4731, + "heal": 85122, + "deadRate": "5.2", + "healRate": "94.1", + "date": "09.01", + "noInfect": 353, + "suspect": 0, + "nowConfirm": 569, + "nowSevere": 3 + }, + { + "noInfect": 349, + "heal": 85169, + "deadRate": "5.2", + "healRate": "94.2", + "date": "09.02", + "nowSevere": 3, + "importedCase": 2528, + "confirm": 90442, + "suspect": 0, + "dead": 4734, + "nowConfirm": 539 + }, + { + "heal": 85211, + "healRate": "94.2", + "noInfect": 358, + "confirm": 90475, + "suspect": 0, + "dead": 4735, + "nowConfirm": 529, + "nowSevere": 3, + "importedCase": 2553, + "deadRate": "5.2", + "date": "09.03" + }, + { + "suspect": 0, + "dead": 4735, + "heal": 85257, + "nowConfirm": 506, + "nowSevere": 2, + "healRate": "94.2", + "confirm": 90498, + "importedCase": 2563, + "deadRate": "5.2", + "date": "09.04", + "noInfect": 338 + }, + { + "heal": 85314, + "importedCase": 2573, + "deadRate": "5.2", + "healRate": "94.3", + "date": "09.05", + "noInfect": 329, + "confirm": 90517, + "suspect": 2, + "dead": 4735, + "nowConfirm": 468, + "nowSevere": 2 + }, + { + "dead": 4737, + "heal": 85350, + "deadRate": "5.2", + "noInfect": 329, + "confirm": 90551, + "nowConfirm": 464, + "nowSevere": 2, + "importedCase": 2585, + "healRate": "94.3", + "date": "09.06", + "suspect": 1 + }, + { + "suspect": 1, + "dead": 4739, + "heal": 85380, + "nowConfirm": 454, + "nowSevere": 2, + "importedCase": 2595, + "date": "09.07", + "noInfect": 324, + "confirm": 90573, + "deadRate": "5.2", + "healRate": "94.3" + }, + { + "dead": 4740, + "nowConfirm": 431, + "importedCase": 2597, + "date": "09.08", + "noInfect": 308, + "confirm": 90582, + "suspect": 6, + "heal": 85411, + "nowSevere": 2, + "deadRate": "5.2", + "healRate": "94.3" + }, + { + "heal": 85436, + "nowSevere": 2, + "deadRate": "5.2", + "healRate": "94.3", + "date": "09.09", + "confirm": 90595, + "suspect": 1, + "dead": 4740, + "nowConfirm": 419, + "importedCase": 2604, + "noInfect": 301 + }, + { + "confirm": 90623, + "heal": 85480, + "nowSevere": 1, + "date": "09.10", + "noInfect": 311, + "suspect": 1, + "dead": 4740, + "nowConfirm": 403, + "importedCase": 2619, + "deadRate": "5.2", + "healRate": "94.3" + }, + { + "confirm": 90643, + "suspect": 1, + "nowSevere": 1, + "importedCase": 2625, + "healRate": "94.3", + "date": "09.11", + "noInfect": 299, + "dead": 4740, + "heal": 85505, + "nowConfirm": 398, + "deadRate": "5.2" + }, + { + "heal": 85533, + "nowConfirm": 392, + "nowSevere": 1, + "importedCase": 2635, + "confirm": 90666, + "suspect": 0, + "dead": 4741, + "noInfect": 357, + "deadRate": "5.2", + "healRate": "94.3", + "date": "09.12" + }, + { + "confirm": 90695, + "suspect": 3, + "healRate": "94.3", + "date": "09.13", + "dead": 4741, + "heal": 85566, + "nowConfirm": 388, + "nowSevere": 1, + "importedCase": 2645, + "deadRate": "5.2", + "noInfect": 378 + }, + { + "date": "09.14", + "confirm": 90718, + "dead": 4742, + "heal": 85583, + "nowConfirm": 393, + "nowSevere": 1, + "importedCase": 2653, + "healRate": "94.3", + "suspect": 2, + "deadRate": "5.2", + "noInfect": 361 + }, + { + "heal": 85605, + "healRate": "94.3", + "date": "09.15", + "confirm": 90734, + "dead": 4743, + "nowSevere": 0, + "importedCase": 2665, + "deadRate": "5.2", + "noInfect": 361, + "suspect": 0, + "nowConfirm": 386 + }, + { + "dead": 4743, + "heal": 85634, + "nowConfirm": 376, + "healRate": "94.4", + "date": "09.16", + "noInfect": 354, + "confirm": 90753, + "suspect": 1, + "deadRate": "5.2", + "nowSevere": 1, + "importedCase": 2674 + }, + { + "confirm": 90797, + "suspect": 2, + "heal": 85662, + "nowConfirm": 392, + "healRate": "94.3", + "noInfect": 366, + "dead": 4743, + "nowSevere": 2, + "importedCase": 2706, + "deadRate": "5.2", + "date": "09.17" + }, + { + "date": "09.18", + "confirm": 90814, + "suspect": 1, + "dead": 4744, + "heal": 85684, + "deadRate": "5.2", + "nowConfirm": 386, + "nowSevere": 2, + "importedCase": 2720, + "healRate": "94.4", + "noInfect": 374 + }, + { + "confirm": 90840, + "dead": 4744, + "nowConfirm": 386, + "healRate": "94.4", + "date": "09.19", + "suspect": 2, + "heal": 85710, + "nowSevere": 2, + "importedCase": 2730, + "deadRate": "5.2", + "noInfect": 382 + }, + { + "dead": 4744, + "heal": 85721, + "deadRate": "5.2", + "healRate": "94.3", + "date": "09.20", + "suspect": 1, + "nowConfirm": 411, + "nowSevere": 2, + "importedCase": 2742, + "noInfect": 397, + "confirm": 90876 + }, + { + "nowSevere": 3, + "date": "09.21", + "noInfect": 391, + "confirm": 90890, + "suspect": 0, + "dead": 4744, + "nowConfirm": 407, + "heal": 85739, + "importedCase": 2748, + "deadRate": "5.2", + "healRate": "94.3" + }, + { + "noInfect": 385, + "suspect": 0, + "dead": 4744, + "nowConfirm": 405, + "importedCase": 2758, + "healRate": "94.3", + "date": "09.22", + "confirm": 90908, + "heal": 85759, + "nowSevere": 3, + "deadRate": "5.2" + }, + { + "confirm": 90918, + "heal": 85788, + "nowSevere": 3, + "importedCase": 2765, + "healRate": "94.4", + "date": "09.23", + "noInfect": 402, + "suspect": 0, + "dead": 4745, + "nowConfirm": 385, + "deadRate": "5.2" + }, + { + "deadRate": "5.2", + "healRate": "94.4", + "date": "09.24", + "confirm": 90933, + "suspect": 1, + "dead": 4745, + "heal": 85806, + "nowConfirm": 382, + "nowSevere": 3, + "importedCase": 2773, + "noInfect": 398 + }, + { + "confirm": 90951, + "suspect": 2, + "dead": 4746, + "importedCase": 2788, + "deadRate": "5.2", + "healRate": "94.4", + "date": "09.25", + "noInfect": 400, + "heal": 85827, + "nowConfirm": 378, + "nowSevere": 3 + }, + { + "healRate": "94.4", + "confirm": 90966, + "suspect": 2, + "nowConfirm": 376, + "deadRate": "5.2", + "date": "09.26", + "noInfect": 391, + "dead": 4746, + "heal": 85844, + "nowSevere": 3, + "importedCase": 2802 + }, + { + "dead": 4746, + "heal": 85865, + "nowConfirm": 382, + "nowSevere": 2, + "importedCase": 2823, + "healRate": "94.4", + "date": "09.27", + "confirm": 90993, + "noInfect": 367, + "deadRate": "5.2", + "suspect": 0 + }, + { + "dead": 4746, + "nowSevere": 2, + "deadRate": "5.2", + "healRate": "94.4", + "date": "09.28", + "confirm": 91018, + "suspect": 1, + "importedCase": 2835, + "noInfect": 376, + "heal": 85884, + "nowConfirm": 388 + }, + { + "suspect": 2, + "dead": 4746, + "heal": 85913, + "nowConfirm": 382, + "nowSevere": 2, + "importedCase": 2854, + "date": "09.29", + "noInfect": 375, + "confirm": 91041, + "deadRate": "5.2", + "healRate": "94.4" + }, + { + "nowConfirm": 365, + "nowSevere": 1, + "importedCase": 2865, + "healRate": "94.4", + "confirm": 91061, + "dead": 4746, + "heal": 85950, + "noInfect": 363, + "suspect": 3, + "deadRate": "5.2", + "date": "09.30" + }, + { + "heal": 85968, + "nowSevere": 1, + "importedCase": 2875, + "healRate": "94.4", + "date": "10.01", + "confirm": 91082, + "suspect": 3, + "deadRate": "5.2", + "noInfect": 377, + "dead": 4746, + "nowConfirm": 368 + }, + { + "dead": 4746, + "nowConfirm": 371, + "deadRate": "5.2", + "noInfect": 364, + "confirm": 91101, + "heal": 85984, + "nowSevere": 1, + "importedCase": 2885, + "healRate": "94.4", + "date": "10.02", + "suspect": 4 + }, + { + "dead": 4746, + "nowSevere": 1, + "deadRate": "5.2", + "healRate": "94.4", + "date": "10.03", + "confirm": 91121, + "suspect": 7, + "importedCase": 2901, + "noInfect": 366, + "heal": 86000, + "nowConfirm": 375 + }, + { + "suspect": 6, + "healRate": "94.4", + "date": "10.04", + "confirm": 91146, + "dead": 4746, + "heal": 86019, + "nowConfirm": 381, + "nowSevere": 1, + "importedCase": 2921, + "deadRate": "5.2", + "noInfect": 369 + }, + { + "suspect": 4, + "dead": 4746, + "heal": 86030, + "nowSevere": 1, + "importedCase": 2933, + "noInfect": 375, + "confirm": 91170, + "nowConfirm": 394, + "deadRate": "5.2", + "healRate": "94.4", + "date": "10.05" + }, + { + "suspect": 4, + "dead": 4746, + "importedCase": 2940, + "healRate": "94.4", + "confirm": 91188, + "heal": 86056, + "nowConfirm": 386, + "nowSevere": 1, + "deadRate": "5.2", + "date": "10.06", + "noInfect": 376 + }, + { + "suspect": 5, + "heal": 86083, + "deadRate": "5.2", + "date": "10.07", + "healRate": "94.4", + "noInfect": 366, + "confirm": 91212, + "dead": 4746, + "nowConfirm": 383, + "nowSevere": 1, + "importedCase": 2951 + }, + { + "suspect": 5, + "heal": 86104, + "importedCase": 2972, + "noInfect": 357, + "deadRate": "5.2", + "healRate": "94.4", + "date": "10.08", + "confirm": 91252, + "dead": 4746, + "nowConfirm": 402, + "nowSevere": 1 + }, + { + "deadRate": "5.2", + "date": "10.09", + "dead": 4746, + "nowSevere": 1, + "importedCase": 2987, + "nowConfirm": 396, + "healRate": "94.4", + "noInfect": 380, + "confirm": 91278, + "suspect": 4, + "heal": 86136 + }, + { + "suspect": 9, + "nowSevere": 0, + "deadRate": "5.2", + "date": "10.10", + "noInfect": 381, + "confirm": 91305, + "dead": 4746, + "heal": 86153, + "nowConfirm": 406, + "importedCase": 3008, + "healRate": "94.4" + }, + { + "noInfect": 395, + "confirm": 91333, + "nowConfirm": 420, + "nowSevere": 0, + "importedCase": 3029, + "healRate": "94.3", + "suspect": 9, + "dead": 4746, + "heal": 86167, + "deadRate": "5.2", + "date": "10.11" + }, + { + "heal": 86185, + "nowConfirm": 428, + "date": "10.12", + "noInfect": 386, + "confirm": 91359, + "dead": 4746, + "importedCase": 3036, + "deadRate": "5.2", + "healRate": "94.3", + "suspect": 7, + "nowSevere": 1 + }, + { + "nowConfirm": 440, + "healRate": "94.3", + "noInfect": 381, + "deadRate": "5.2", + "date": "10.13", + "confirm": 91388, + "suspect": 5, + "dead": 4746, + "heal": 86202, + "nowSevere": 4, + "importedCase": 3050 + }, + { + "nowSevere": 4, + "date": "10.14", + "noInfect": 385, + "healRate": "94.3", + "confirm": 91399, + "suspect": 7, + "dead": 4746, + "heal": 86217, + "nowConfirm": 436, + "importedCase": 3060, + "deadRate": "5.2" + }, + { + "suspect": 5, + "nowSevere": 4, + "noInfect": 376, + "deadRate": "5.2", + "healRate": "94.3", + "date": "10.15", + "confirm": 91436, + "dead": 4746, + "heal": 86239, + "nowConfirm": 451, + "importedCase": 3084 + }, + { + "nowConfirm": 460, + "deadRate": "5.2", + "healRate": "94.3", + "noInfect": 374, + "suspect": 5, + "heal": 86254, + "nowSevere": 5, + "importedCase": 3097, + "date": "10.16", + "confirm": 91460, + "dead": 4746 + }, + { + "heal": 86286, + "nowSevere": 5, + "importedCase": 3110, + "deadRate": "5.2", + "healRate": "94.3", + "confirm": 91490, + "dead": 4746, + "nowConfirm": 458, + "date": "10.17", + "noInfect": 389, + "suspect": 4 + }, + { + "healRate": "94.3", + "noInfect": 401, + "confirm": 91507, + "suspect": 3, + "nowConfirm": 449, + "importedCase": 3123, + "date": "10.18", + "dead": 4746, + "heal": 86312, + "nowSevere": 4, + "deadRate": "5.2" + }, + { + "confirm": 91546, + "suspect": 6, + "nowSevere": 4, + "deadRate": "5.2", + "healRate": "94.3", + "date": "10.19", + "noInfect": 403, + "dead": 4746, + "heal": 86333, + "nowConfirm": 467, + "importedCase": 3142 + }, + { + "heal": 86371, + "nowConfirm": 448, + "healRate": "94.3", + "date": "10.20", + "confirm": 91565, + "suspect": 5, + "dead": 4746, + "nowSevere": 3, + "importedCase": 3153, + "deadRate": "5.2", + "noInfect": 403 + }, + { + "dead": 4746, + "heal": 86395, + "nowConfirm": 447, + "importedCase": 3167, + "healRate": "94.3", + "date": "10.21", + "confirm": 91588, + "suspect": 5, + "nowSevere": 2, + "deadRate": "5.2", + "noInfect": 406 + }, + { + "confirm": 91621, + "dead": 4746, + "importedCase": 3185, + "date": "10.22", + "noInfect": 403, + "healRate": "94.3", + "suspect": 7, + "heal": 86427, + "nowConfirm": 448, + "nowSevere": 3, + "deadRate": "5.2" + }, + { + "nowSevere": 3, + "date": "10.23", + "confirm": 91653, + "suspect": 5, + "heal": 86448, + "deadRate": "5.2", + "healRate": "94.3", + "noInfect": 404, + "dead": 4746, + "nowConfirm": 459, + "importedCase": 3213 + }, + { + "date": "10.24", + "confirm": 91675, + "nowConfirm": 449, + "deadRate": "5.2", + "nowSevere": 3, + "importedCase": 3228, + "healRate": "94.3", + "noInfect": 405, + "suspect": 5, + "dead": 4746, + "heal": 86480 + }, + { + "heal": 86506, + "nowConfirm": 449, + "nowSevere": 4, + "importedCase": 3248, + "date": "10.25", + "confirm": 91701, + "suspect": 6, + "dead": 4746, + "deadRate": "5.2", + "healRate": "94.3", + "noInfect": 539 + }, + { + "dead": 4746, + "heal": 86526, + "nowConfirm": 453, + "nowSevere": 4, + "importedCase": 3264, + "deadRate": "5.2", + "confirm": 91725, + "suspect": 2, + "date": "10.26", + "healRate": "94.3", + "noInfect": 570 + }, + { + "suspect": 0, + "heal": 86537, + "nowConfirm": 489, + "importedCase": 3284, + "healRate": "94.3", + "confirm": 91772, + "dead": 4746, + "nowSevere": 4, + "deadRate": "5.2", + "date": "10.27", + "noInfect": 570 + }, + { + "nowConfirm": 515, + "nowSevere": 7, + "importedCase": 3308, + "healRate": "94.3", + "date": "10.28", + "noInfect": 543, + "suspect": 0, + "dead": 4746, + "heal": 86560, + "deadRate": "5.2", + "confirm": 91821 + }, + { + "confirm": 91852, + "dead": 4746, + "nowConfirm": 507, + "noInfect": 592, + "suspect": 6, + "heal": 86599, + "nowSevere": 7, + "importedCase": 3332, + "deadRate": "5.2", + "healRate": "94.3", + "date": "10.29" + }, + { + "dead": 4746, + "nowConfirm": 521, + "nowSevere": 9, + "deadRate": "5.2", + "healRate": "94.3", + "date": "10.30", + "confirm": 91893, + "suspect": 5, + "heal": 86626, + "importedCase": 3359, + "noInfect": 611 + }, + { + "healRate": "94.3", + "noInfect": 666, + "confirm": 91921, + "suspect": 0, + "importedCase": 3380, + "deadRate": "5.2", + "date": "10.31", + "dead": 4746, + "heal": 86654, + "nowConfirm": 521, + "nowSevere": 9 + }, + { + "healRate": "94.3", + "date": "11.01", + "noInfect": 684, + "dead": 4746, + "heal": 86684, + "nowSevere": 12, + "deadRate": "5.2", + "confirm": 91955, + "suspect": 1, + "nowConfirm": 525, + "importedCase": 3401 + }, + { + "suspect": 2, + "dead": 4746, + "heal": 86712, + "nowSevere": 9, + "date": "11.02", + "noInfect": 725, + "confirm": 92015, + "nowConfirm": 557, + "importedCase": 3445, + "deadRate": "5.2", + "healRate": "94.2" + }, + { + "confirm": 92045, + "dead": 4746, + "heal": 86737, + "importedCase": 3460, + "healRate": "94.2", + "suspect": 2, + "nowConfirm": 562, + "nowSevere": 9, + "deadRate": "5.2", + "date": "11.03", + "noInfect": 828 + }, + { + "healRate": "94.2", + "date": "11.04", + "heal": 86766, + "nowSevere": 9, + "deadRate": "5.2", + "nowConfirm": 564, + "importedCase": 3480, + "noInfect": 825, + "confirm": 92077, + "suspect": 4, + "dead": 4747 + }, + { + "deadRate": "5.2", + "noInfect": 832, + "confirm": 92121, + "heal": 86793, + "nowConfirm": 580, + "nowSevere": 9, + "date": "11.05", + "suspect": 23, + "dead": 4748, + "importedCase": 3510, + "healRate": "94.2" + }, + { + "heal": 86831, + "nowConfirm": 585, + "healRate": "94.2", + "suspect": 0, + "dead": 4748, + "nowSevere": 8, + "importedCase": 3543, + "deadRate": "5.2", + "date": "11.06", + "noInfect": 823, + "confirm": 92164 + }, + { + "healRate": "94.2", + "date": "11.07", + "noInfect": 824, + "confirm": 92195, + "nowConfirm": 571, + "deadRate": "5.1", + "nowSevere": 7, + "importedCase": 3571, + "suspect": 0, + "dead": 4748, + "heal": 86876 + }, + { + "nowConfirm": 593, + "importedCase": 3603, + "healRate": "94.2", + "suspect": 5, + "dead": 4748, + "heal": 86901, + "nowSevere": 8, + "deadRate": "5.1", + "date": "11.08", + "noInfect": 804, + "confirm": 92242 + }, + { + "noInfect": 786, + "dead": 4748, + "heal": 86925, + "nowSevere": 6, + "importedCase": 3624, + "healRate": "94.2", + "confirm": 92271, + "suspect": 2, + "nowConfirm": 598, + "deadRate": "5.1", + "date": "11.09" + }, + { + "confirm": 92299, + "suspect": 1, + "dead": 4749, + "deadRate": "5.1", + "healRate": "94.2", + "noInfect": 776, + "heal": 86955, + "nowConfirm": 595, + "nowSevere": 6, + "importedCase": 3640, + "date": "11.10" + }, + { + "importedCase": 3654, + "deadRate": "5.1", + "healRate": "94.2", + "date": "11.11", + "noInfect": 728, + "dead": 4749, + "heal": 86985, + "nowConfirm": 602, + "confirm": 92336, + "suspect": 2, + "nowSevere": 3 + }, + { + "nowConfirm": 596, + "deadRate": "5.1", + "date": "11.12", + "noInfect": 697, + "heal": 87027, + "suspect": 2, + "dead": 4749, + "nowSevere": 3, + "importedCase": 3662, + "healRate": "94.2", + "confirm": 92372 + }, + { + "suspect": 1, + "heal": 87059, + "nowConfirm": 596, + "nowSevere": 3, + "healRate": "94.2", + "date": "11.13", + "noInfect": 648, + "confirm": 92404, + "dead": 4749, + "importedCase": 3680, + "deadRate": "5.1" + }, + { + "nowConfirm": 592, + "nowSevere": 4, + "date": "11.14", + "noInfect": 613, + "dead": 4749, + "suspect": 2, + "heal": 87087, + "importedCase": 3693, + "deadRate": "5.1", + "healRate": "94.2", + "confirm": 92428 + }, + { + "suspect": 3, + "heal": 87114, + "deadRate": "5.1", + "healRate": "94.2", + "date": "11.15", + "confirm": 92452, + "dead": 4749, + "nowConfirm": 589, + "nowSevere": 4, + "importedCase": 3701, + "noInfect": 548 + }, + { + "deadRate": "5.1", + "healRate": "94.2", + "noInfect": 512, + "confirm": 92476, + "suspect": 2, + "heal": 87154, + "nowSevere": 4, + "importedCase": 3716, + "dead": 4749, + "nowConfirm": 573, + "date": "11.16" + }, + { + "suspect": 0, + "dead": 4749, + "nowSevere": 3, + "deadRate": "5.1", + "date": "11.17", + "confirm": 92490, + "heal": 87208, + "nowConfirm": 533, + "importedCase": 3723, + "healRate": "94.3", + "noInfect": 456 + }, + { + "confirm": 92513, + "dead": 4749, + "heal": 87244, + "nowConfirm": 520, + "healRate": "94.3", + "date": "11.18", + "noInfect": 419, + "suspect": 0, + "nowSevere": 1, + "importedCase": 3735, + "deadRate": "5.1" + }, + { + "importedCase": 3752, + "deadRate": "5.1", + "healRate": "94.3", + "noInfect": 373, + "dead": 4749, + "heal": 87277, + "nowConfirm": 518, + "nowSevere": 1, + "confirm": 92544, + "suspect": 1, + "date": "11.19" + }, + { + "nowConfirm": 536, + "nowSevere": 1, + "importedCase": 3761, + "deadRate": "5.1", + "noInfect": 378, + "confirm": 92588, + "suspect": 0, + "dead": 4749, + "heal": 87303, + "healRate": "94.3", + "date": "11.20" + }, + { + "date": "11.21", + "suspect": 0, + "dead": 4749, + "heal": 87321, + "nowConfirm": 578, + "nowSevere": 5, + "importedCase": 3775, + "deadRate": "5.1", + "noInfect": 365, + "confirm": 92648, + "healRate": "94.3" + }, + { + "importedCase": 3784, + "healRate": "94.2", + "suspect": 0, + "dead": 4749, + "nowConfirm": 638, + "nowSevere": 6, + "deadRate": "5.1", + "date": "11.22", + "noInfect": 357, + "confirm": 92733, + "heal": 87346 + }, + { + "dead": 4749, + "nowConfirm": 710, + "date": "11.23", + "noInfect": 348, + "confirm": 92829, + "heal": 87370, + "nowSevere": 6, + "importedCase": 3804, + "deadRate": "5.1", + "healRate": "94.1", + "suspect": 1 + }, + { + "confirm": 92914, + "suspect": 2, + "deadRate": "5.1", + "noInfect": 335, + "date": "11.24", + "dead": 4749, + "heal": 87399, + "nowConfirm": 766, + "nowSevere": 6, + "importedCase": 3809, + "healRate": "94.1" + }, + { + "noInfect": 321, + "suspect": 5, + "dead": 4749, + "nowConfirm": 832, + "nowSevere": 7, + "healRate": "94.0", + "date": "11.25", + "confirm": 93025, + "heal": 87444, + "importedCase": 3821, + "deadRate": "5.1" + }, + { + "nowConfirm": 905, + "nowSevere": 8, + "healRate": "93.9", + "confirm": 93113, + "dead": 4749, + "heal": 87459, + "date": "11.26", + "noInfect": 308, + "suspect": 4, + "importedCase": 3826, + "deadRate": "5.1" + }, + { + "healRate": "93.9", + "date": "11.27", + "noInfect": 288, + "dead": 4749, + "nowConfirm": 980, + "nowSevere": 8, + "importedCase": 3832, + "deadRate": "5.1", + "confirm": 93225, + "suspect": 4, + "heal": 87496 + }, + { + "suspect": 7, + "healRate": "93.8", + "date": "11.28", + "noInfect": 279, + "nowSevere": 8, + "importedCase": 3843, + "deadRate": "5.1", + "confirm": 93329, + "dead": 4750, + "heal": 87528, + "nowConfirm": 1051 + }, + { + "confirm": 93465, + "suspect": 7, + "dead": 4750, + "nowConfirm": 1145, + "deadRate": "5.1", + "healRate": "93.7", + "heal": 87570, + "nowSevere": 7, + "importedCase": 3858, + "date": "11.29", + "noInfect": 281 + }, + { + "confirm": 93577, + "suspect": 6, + "dead": 4750, + "nowSevere": 8, + "importedCase": 3866, + "heal": 87586, + "nowConfirm": 1241, + "deadRate": "5.1", + "healRate": "93.6", + "date": "11.30", + "noInfect": 264 + }, + { + "confirm": 93668, + "date": "12.01", + "deadRate": "5.1", + "healRate": "93.5", + "suspect": 7, + "dead": 4750, + "heal": 87621, + "nowConfirm": 1297, + "nowSevere": 8, + "importedCase": 3873, + "noInfect": 259 + }, + { + "heal": 87677, + "nowSevere": 6, + "importedCase": 3889, + "healRate": "93.5", + "date": "12.02", + "suspect": 8, + "dead": 4751, + "deadRate": "5.1", + "noInfect": 254, + "confirm": 93797, + "nowConfirm": 1369 + }, + { + "deadRate": "5.1", + "healRate": "93.4", + "date": "12.03", + "suspect": 8, + "dead": 4752, + "nowSevere": 5, + "importedCase": 3904, + "confirm": 93905, + "heal": 87720, + "nowConfirm": 1433, + "noInfect": 249 + }, + { + "noInfect": 249, + "confirm": 94038, + "suspect": 8, + "dead": 4753, + "importedCase": 3919, + "deadRate": "5.1", + "healRate": "93.3", + "date": "12.04", + "heal": 87777, + "nowConfirm": 1508, + "nowSevere": 6 + }, + { + "nowSevere": 6, + "deadRate": "5.0", + "confirm": 94160, + "suspect": 9, + "nowConfirm": 1570, + "importedCase": 3936, + "healRate": "93.3", + "date": "12.05", + "noInfect": 234, + "dead": 4753, + "heal": 87837 + }, + { + "deadRate": "5.0", + "date": "12.06", + "noInfect": 231, + "suspect": 5, + "dead": 4753, + "heal": 87906, + "nowConfirm": 1634, + "nowSevere": 6, + "confirm": 94293, + "importedCase": 3948, + "healRate": "93.2" + }, + { + "dead": 4753, + "deadRate": "5.0", + "healRate": "93.2", + "date": "12.07", + "noInfect": 219, + "confirm": 94383, + "suspect": 3, + "heal": 87978, + "nowConfirm": 1652, + "nowSevere": 6, + "importedCase": 3958 + }, + { + "suspect": 3, + "nowSevere": 5, + "importedCase": 3969, + "date": "12.08", + "noInfect": 210, + "confirm": 94500, + "dead": 4753, + "heal": 88067, + "nowConfirm": 1680, + "deadRate": "5.0", + "healRate": "93.2" + }, + { + "suspect": 3, + "heal": 88168, + "nowSevere": 5, + "deadRate": "5.0", + "healRate": "93.2", + "confirm": 94618, + "dead": 4755, + "nowConfirm": 1695, + "importedCase": 3980, + "date": "12.09", + "noInfect": 201 + }, + { + "suspect": 3, + "dead": 4755, + "heal": 88298, + "nowConfirm": 1696, + "nowSevere": 5, + "importedCase": 3989, + "confirm": 94749, + "deadRate": "5.0", + "healRate": "93.2", + "date": "12.10", + "noInfect": 200 + }, + { + "noInfect": 196, + "heal": 88411, + "importedCase": 4002, + "dead": 4755, + "nowConfirm": 1683, + "nowSevere": 5, + "deadRate": "5.0", + "healRate": "93.2", + "date": "12.11", + "confirm": 94849, + "suspect": 3 + }, + { + "suspect": 2, + "heal": 88546, + "nowConfirm": 1648, + "deadRate": "5.0", + "healRate": "93.3", + "date": "12.12", + "noInfect": 195, + "confirm": 94950, + "dead": 4756, + "nowSevere": 6, + "importedCase": 4021 + }, + { + "dead": 4758, + "heal": 88648, + "importedCase": 4035, + "noInfect": 197, + "date": "12.13", + "confirm": 95064, + "suspect": 2, + "nowConfirm": 1658, + "nowSevere": 7, + "deadRate": "5.0", + "healRate": "93.3" + }, + { + "heal": 88730, + "nowConfirm": 1676, + "importedCase": 4049, + "healRate": "93.2", + "date": "12.14", + "noInfect": 196, + "confirm": 95167, + "suspect": 2, + "dead": 4761, + "nowSevere": 7, + "deadRate": "5.0" + }, + { + "noInfect": 199, + "confirm": 95279, + "nowConfirm": 1692, + "nowSevere": 8, + "importedCase": 4061, + "healRate": "93.2", + "date": "12.15", + "suspect": 3, + "dead": 4764, + "heal": 88823, + "deadRate": "5.0" + }, + { + "deadRate": "5.0", + "heal": 88939, + "importedCase": 4068, + "dead": 4764, + "nowConfirm": 1672, + "nowSevere": 7, + "healRate": "93.3", + "date": "12.16", + "noInfect": 198, + "confirm": 95375, + "suspect": 4 + }, + { + "nowSevere": 8, + "deadRate": "5.0", + "healRate": "93.3", + "date": "12.17", + "noInfect": 198, + "suspect": 4, + "dead": 4766, + "heal": 89047, + "confirm": 95491, + "nowConfirm": 1678, + "importedCase": 4079 + }, + { + "noInfect": 203, + "suspect": 5, + "nowConfirm": 1652, + "heal": 89158, + "nowSevere": 7, + "importedCase": 4093, + "deadRate": "5.0", + "healRate": "93.3", + "date": "12.18", + "confirm": 95580, + "dead": 4770 + }, + { + "confirm": 95716, + "suspect": 4, + "dead": 4770, + "importedCase": 4115, + "date": "12.19", + "noInfect": 205, + "heal": 89294, + "nowConfirm": 1652, + "nowSevere": 5, + "deadRate": "5.0", + "healRate": "93.3" + }, + { + "nowConfirm": 1635, + "deadRate": "5.0", + "healRate": "93.3", + "date": "12.20", + "noInfect": 208, + "importedCase": 4136, + "confirm": 95816, + "suspect": 7, + "dead": 4771, + "heal": 89410, + "nowSevere": 4 + }, + { + "confirm": 95916, + "nowConfirm": 1652, + "nowSevere": 4, + "importedCase": 4149, + "date": "12.21", + "suspect": 1, + "dead": 4772, + "heal": 89492, + "deadRate": "5.0", + "healRate": "93.3", + "noInfect": 214 + }, + { + "dead": 4773, + "heal": 89601, + "nowConfirm": 1624, + "importedCase": 4163, + "healRate": "93.3", + "noInfect": 219, + "confirm": 95998, + "suspect": 0, + "date": "12.22", + "nowSevere": 5, + "deadRate": "5.0" + }, + { + "noInfect": 229, + "confirm": 96074, + "suspect": 0, + "nowConfirm": 1557, + "importedCase": 4174, + "deadRate": "5.0", + "healRate": "93.4", + "date": "12.23", + "dead": 4774, + "heal": 89743, + "nowSevere": 6 + }, + { + "suspect": 0, + "dead": 4776, + "heal": 89843, + "nowConfirm": 1540, + "nowSevere": 6, + "importedCase": 4181, + "deadRate": "5.0", + "confirm": 96159, + "healRate": "93.4", + "date": "12.24", + "noInfect": 236 + }, + { + "date": "12.25", + "dead": 4777, + "heal": 89974, + "importedCase": 4193, + "deadRate": "5.0", + "healRate": "93.5", + "noInfect": 245, + "confirm": 96240, + "suspect": 0, + "nowConfirm": 1489, + "nowSevere": 4 + }, + { + "dead": 4777, + "heal": 90074, + "deadRate": "5.0", + "healRate": "93.5", + "date": "12.26", + "noInfect": 251, + "confirm": 96324, + "suspect": 0, + "nowConfirm": 1473, + "nowSevere": 4, + "importedCase": 4203 + }, + { + "importedCase": 4218, + "healRate": "93.5", + "date": "12.27", + "nowConfirm": 1463, + "nowSevere": 5, + "deadRate": "5.0", + "noInfect": 267, + "confirm": 96417, + "suspect": 1, + "dead": 4778, + "heal": 90176 + }, + { + "nowSevere": 5, + "importedCase": 4230, + "deadRate": "5.0", + "dead": 4782, + "heal": 90247, + "nowConfirm": 1484, + "date": "12.28", + "noInfect": 262, + "confirm": 96513, + "suspect": 0, + "healRate": "93.5" + }, + { + "suspect": 0, + "dead": 4784, + "nowSevere": 6, + "importedCase": 4247, + "deadRate": "5.0", + "date": "12.29", + "confirm": 96592, + "heal": 90360, + "nowConfirm": 1448, + "healRate": "93.5", + "noInfect": 269 + }, + { + "confirm": 96673, + "date": "12.30", + "nowConfirm": 1401, + "nowSevere": 6, + "importedCase": 4263, + "deadRate": "5.0", + "healRate": "93.6", + "suspect": 0, + "dead": 4788, + "heal": 90484, + "noInfect": 267 + } + ], + "cityStatis": { + "zeroNowConfirm": 329, + "notZeroNowConfirm": 10, + "confirm": 339 + }, + "nowConfirmStatis": { + "gat": 1033, + "import": 275, + "province": 93 + }, + "provinceCompare": { + "广西": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 22 + }, + "重庆": { + "heal": 0, + "zero": 42, + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0 + }, + "陕西": { + "zero": 4, + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0 + }, + "浙江": { + "zero": 1, + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0 + }, + "辽宁": { + "nowConfirm": 5, + "confirmAdd": 5, + "dead": 0, + "heal": 0, + "zero": 0 + }, + "青海": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 329 + }, + "内蒙古": { + "nowConfirm": 2, + "confirmAdd": 3, + "dead": 0, + "heal": 1, + "zero": 0 + }, + "北京": { + "confirmAdd": 2, + "dead": 0, + "heal": 2, + "zero": 0, + "nowConfirm": 0 + }, + "山东": { + "nowConfirm": -1, + "confirmAdd": 0, + "dead": 0, + "heal": 1, + "zero": 1 + }, + "贵州": { + "heal": 0, + "zero": 277, + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0 + }, + "四川": { + "nowConfirm": 2, + "confirmAdd": 2, + "dead": 0, + "heal": 0, + "zero": 0 + }, + "河北": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 61 + }, + "湖北": { + "zero": 28, + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0 + }, + "山西": { + "zero": 10, + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0 + }, + "广东": { + "confirmAdd": 3, + "dead": 0, + "heal": 0, + "zero": 0, + "nowConfirm": 3 + }, + "海南": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 202 + }, + "上海": { + "heal": 5, + "zero": 0, + "nowConfirm": 1, + "confirmAdd": 6, + "dead": 0 + }, + "台湾": { + "zero": 0, + "nowConfirm": -3, + "confirmAdd": 2, + "dead": 0, + "heal": 5 + }, + "宁夏": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 302 + }, + "澳门": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 189 + }, + "江苏": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 18 + }, + "江西": { + "zero": 133, + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0 + }, + "湖南": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 5 + }, + "云南": { + "heal": 0, + "zero": 5, + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0 + }, + "福建": { + "nowConfirm": 0, + "confirmAdd": 1, + "dead": 0, + "heal": 1, + "zero": 0 + }, + "黑龙江": { + "zero": 0, + "nowConfirm": 1, + "confirmAdd": 2, + "dead": 0, + "heal": 1 + }, + "天津": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 0 + }, + "新疆": { + "heal": 0, + "zero": 55, + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0 + }, + "香港": { + "nowConfirm": -56, + "confirmAdd": 54, + "dead": 4, + "heal": 106, + "zero": 0 + }, + "甘肃": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 30 + }, + "西藏": { + "heal": 0, + "zero": 335, + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0 + }, + "吉林": { + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 157, + "nowConfirm": 0 + }, + "安徽": { + "nowConfirm": 0, + "confirmAdd": 0, + "dead": 0, + "heal": 0, + "zero": 4 + }, + "河南": { + "dead": 0, + "heal": 0, + "zero": 2, + "nowConfirm": 0, + "confirmAdd": 0 + } + } + } +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBean.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBean.java" new file mode 100644 index 0000000..9f36c30 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBean.java" @@ -0,0 +1,24 @@ +package com.zgh.bean; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("graph") +public class GraphBean implements Serializable { + + private String date; + + private int confirm; + + private int heal; + + private int dead; + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" new file mode 100644 index 0000000..a0c3a50 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" @@ -0,0 +1,49 @@ +package com.zgh.controller; + +import com.google.gson.Gson; +import com.zgh.bean.GraphBean; +import com.zgh.service.GraphService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.ArrayList; +import java.util.List; + +@Controller +public class GraphController { + + @Autowired + GraphService graphService; + + @GetMapping("/graph") + public String graph(Model model) { + + List graphList = graphService.list(); // mybatis-plus 查询全表数据 + + ArrayList dateList = new ArrayList<>(); + ArrayList confirmList = new ArrayList<>(); + ArrayList healList = new ArrayList<>(); + ArrayList deadList = new ArrayList<>(); + + for (int i = 0; i < graphList.size(); i++) { + + GraphBean bean = graphList.get(i); + dateList.add(bean.getDate()); + confirmList.add(bean.getConfirm()); + healList.add(bean.getHeal()); + deadList.add(bean.getDead()); + + } + + model.addAttribute("dateList", new Gson().toJson(dateList)); + model.addAttribute("confirmList", new Gson().toJson(confirmList)); + model.addAttribute("healList", new Gson().toJson(healList)); + model.addAttribute("deadList", new Gson().toJson(deadList)); + + return "graph"; + + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" index 21b99d8..88b5526 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" @@ -30,7 +30,7 @@ public class DataHandler { @PostConstruct public void saveData() { - System.out.println("初始化数据的存储"); + System.out.println("初始化数据的存储 - 表格"); // 1.爬取疫情数据 List dataBeans = getData(); @@ -53,7 +53,7 @@ public void saveData() { */ @Scheduled(cron = "0 0/10 * * * ?") public void updateData() { - System.out.println("更新数据存储, 当前时间 " + dateformet.format(new Date())); + System.out.println("更新数据存储 - 表格, 当前时间 " + dateformet.format(new Date())); List dataBeans = getData(); service.remove(null); service.saveBatch(dataBeans); diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" new file mode 100644 index 0000000..4a23a2b --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" @@ -0,0 +1,80 @@ +package com.zgh.handler; + +import com.google.gson.Gson; +import com.zgh.bean.GraphBean; +import com.zgh.service.GraphService; +import com.zgh.util.HttpConnUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Component +public class GraphHandler { + + @Autowired + GraphService service; + + // 初始化数据 + @PostConstruct + public void saveData() { + System.out.println("初始化数据的存储 - 折线图"); + + List graphBeans = getData(); + service.remove(null); + service.saveBatch(graphBeans); + } + + private static final SimpleDateFormat dateformet = new SimpleDateFormat("HH:mm:ss"); + + // 定时更新数据 每天中午12点触发 + @Scheduled(cron = "0 0 12 * * ?") + public void updateData() { + System.out.println("更新数据存储 - 折线图, 当前时间 " + dateformet.format(new Date())); + List graphBeans = getData(); + service.remove(null); + service.saveBatch(graphBeans); + } + + + // 新型冠状病毒肺炎 - 疫情实时追踪 from 腾讯新闻 + // 文件格式: JSON + public static String urlStr = "https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/list?modules=chinaDayList,chinaDayAddList,cityStatis,nowConfirmStatis,provinceCompare"; + + public static List getData() { + + String str = HttpConnUtil.doGet(urlStr); + + Gson gson = new Gson(); + Map map = gson.fromJson(str, Map.class); + + Map data = (Map) map.get("data"); + ArrayList dayList = (ArrayList) data.get("chinaDayList"); + + ArrayList result = new ArrayList<>(); + for (int i = 0; i < dayList.size(); i++) { + + Map tmp = (Map) dayList.get(i); + + String date = (String) tmp.get("date"); + double confirm = (double) tmp.get("confirm"); + double dead = (double) tmp.get("dead"); + double heal = (double) tmp.get("heal"); + + GraphBean graphBean = new GraphBean(date, (int) confirm, (int) heal, (int) dead); + result.add(graphBean); + + } + + return result; + + } + + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mapper/GraphMapper.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mapper/GraphMapper.java" new file mode 100644 index 0000000..5c97719 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mapper/GraphMapper.java" @@ -0,0 +1,7 @@ +package com.zgh.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zgh.bean.GraphBean; + +public interface GraphMapper extends BaseMapper { +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/GraphService.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/GraphService.java" new file mode 100644 index 0000000..61efb81 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/GraphService.java" @@ -0,0 +1,7 @@ +package com.zgh.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.zgh.bean.GraphBean; + +public interface GraphService extends IService { +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/GraphServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/GraphServiceImpl.java" new file mode 100644 index 0000000..9861e54 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/service/GraphServiceImpl.java" @@ -0,0 +1,10 @@ +package com.zgh.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zgh.bean.GraphBean; +import com.zgh.mapper.GraphMapper; +import org.springframework.stereotype.Service; + +@Service +public class GraphServiceImpl extends ServiceImpl implements GraphService{ +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/echarts.min.js" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/echarts.min.js" new file mode 100644 index 0000000..662a6a5 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/echarts.min.js" @@ -0,0 +1,19474 @@ +!function (t, e) { + "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e(t.echarts = {}) +}(this, function (t) { + "use strict"; + + function e(t, e) { + function n() { + this.constructor = t + } + + vv(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n) + } + + function n() { + for (var t = 0, e = 0, n = arguments.length; n > e; e++) t += arguments[e].length; + for (var i = Array(t), r = 0, e = 0; n > e; e++) for (var o = arguments[e], a = 0, s = o.length; s > a; a++, r++) i[r] = o[a]; + return i + } + + function i(t, e) { + var n = e.browser, i = t.match(/Firefox\/([\d.]+)/), + r = t.match(/MSIE\s([\d.]+)/) || t.match(/Trident\/.+?rv:(([\d.]+))/), o = t.match(/Edge\/([\d.]+)/), + a = /micromessenger/i.test(t); + i && (n.firefox = !0, n.version = i[1]), r && (n.ie = !0, n.version = r[1]), o && (n.edge = !0, n.version = o[1]), a && (n.weChat = !0), e.canvasSupported = !!document.createElement("canvas").getContext, e.svgSupported = "undefined" != typeof SVGRect, e.touchEventsSupported = "ontouchstart" in window && !n.ie && !n.edge, e.pointerEventsSupported = "onpointerdown" in window && (n.edge || n.ie && +n.version >= 11), e.domSupported = "undefined" != typeof document + } + + function r(t, e) { + Pv[t] = e + } + + function o() { + return Ov++ + } + + function a() { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + "undefined" != typeof console && console.error.apply(console, t) + } + + function s(t) { + if (null == t || "object" != typeof t) return t; + var e = t, n = Tv.call(t); + if ("[object Array]" === n) { + if (!Y(t)) { + e = []; + for (var i = 0, r = t.length; r > i; i++) e[i] = s(t[i]) + } + } else if (Sv[n]) { + if (!Y(t)) { + var o = t.constructor; + if (o.from) e = o.from(t); else { + e = new o(t.length); + for (var i = 0, r = t.length; r > i; i++) e[i] = s(t[i]) + } + } + } else if (!bv[n] && !Y(t) && !P(t)) { + e = {}; + for (var a in t) t.hasOwnProperty(a) && (e[a] = s(t[a])) + } + return e + } + + function l(t, e, n) { + if (!D(e) || !D(t)) return n ? s(e) : t; + for (var i in e) if (e.hasOwnProperty(i)) { + var r = t[i], o = e[i]; + !D(o) || !D(r) || T(o) || T(r) || P(o) || P(r) || k(o) || k(r) || Y(o) || Y(r) ? !n && i in t || (t[i] = s(e[i])) : l(r, o, n) + } + return t + } + + function u(t, e) { + for (var n = t[0], i = 1, r = t.length; r > i; i++) n = l(n, t[i], e); + return n + } + + function h(t, e) { + if (Object.assign) Object.assign(t, e); else for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]); + return t + } + + function c(t, e, n) { + for (var i = w(e), r = 0; r < i.length; r++) { + var o = i[r]; + (n ? null != e[o] : null == t[o]) && (t[o] = e[o]) + } + return t + } + + function p(t, e) { + if (t) { + if (t.indexOf) return t.indexOf(e); + for (var n = 0, i = t.length; i > n; n++) if (t[n] === e) return n + } + return -1 + } + + function f(t, e) { + function n() { + } + + var i = t.prototype; + n.prototype = e.prototype, t.prototype = new n; + for (var r in i) i.hasOwnProperty(r) && (t.prototype[r] = i[r]); + t.prototype.constructor = t, t.superClass = e + } + + function d(t, e, n) { + if (t = "prototype" in t ? t.prototype : t, e = "prototype" in e ? e.prototype : e, Object.getOwnPropertyNames) for (var i = Object.getOwnPropertyNames(e), r = 0; r < i.length; r++) { + var o = i[r]; + "constructor" !== o && (n ? null != e[o] : null == t[o]) && (t[o] = e[o]) + } else c(t, e, n) + } + + function g(t) { + return t ? "string" == typeof t ? !1 : "number" == typeof t.length : !1 + } + + function y(t, e, n) { + if (t && e) if (t.forEach && t.forEach === Cv) t.forEach(e, n); else if (t.length === +t.length) for (var i = 0, r = t.length; r > i; i++) e.call(n, t[i], i, t); else for (var o in t) t.hasOwnProperty(o) && e.call(n, t[o], o, t) + } + + function v(t, e, n) { + if (!t) return []; + if (!e) return H(t); + if (t.map && t.map === Dv) return t.map(e, n); + for (var i = [], r = 0, o = t.length; o > r; r++) i.push(e.call(n, t[r], r, t)); + return i + } + + function m(t, e, n, i) { + if (t && e) { + for (var r = 0, o = t.length; o > r; r++) n = e.call(i, n, t[r], r, t); + return n + } + } + + function _(t, e, n) { + if (!t) return []; + if (!e) return H(t); + if (t.filter && t.filter === Iv) return t.filter(e, n); + for (var i = [], r = 0, o = t.length; o > r; r++) e.call(n, t[r], r, t) && i.push(t[r]); + return i + } + + function x(t, e, n) { + if (t && e) for (var i = 0, r = t.length; r > i; i++) if (e.call(n, t[i], i, t)) return t[i] + } + + function w(t) { + if (!t) return []; + if (Object.keys) return Object.keys(t); + var e = []; + for (var n in t) t.hasOwnProperty(n) && e.push(n); + return e + } + + function b(t, e) { + for (var n = [], i = 2; i < arguments.length; i++) n[i - 2] = arguments[i]; + return function () { + return t.apply(e, n.concat(Av.call(arguments))) + } + } + + function S(t) { + for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; + return function () { + return t.apply(this, e.concat(Av.call(arguments))) + } + } + + function T(t) { + return Array.isArray ? Array.isArray(t) : "[object Array]" === Tv.call(t) + } + + function M(t) { + return "function" == typeof t + } + + function C(t) { + return "string" == typeof t + } + + function I(t) { + return "[object String]" === Tv.call(t) + } + + function A(t) { + return "number" == typeof t + } + + function D(t) { + var e = typeof t; + return "function" === e || !!t && "object" === e + } + + function k(t) { + return !!bv[Tv.call(t)] + } + + function L(t) { + return !!Sv[Tv.call(t)] + } + + function P(t) { + return "object" == typeof t && "number" == typeof t.nodeType && "object" == typeof t.ownerDocument + } + + function O(t) { + return null != t.colorStops + } + + function R(t) { + return null != t.image + } + + function E(t) { + return "[object RegExp]" === Tv.call(t) + } + + function z(t) { + return t !== t + } + + function B() { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + for (var n = 0, i = t.length; i > n; n++) if (null != t[n]) return t[n] + } + + function N(t, e) { + return null != t ? t : e + } + + function F(t, e, n) { + return null != t ? t : null != e ? e : n + } + + function H(t) { + for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; + return Av.apply(t, e) + } + + function V(t) { + if ("number" == typeof t) return [t, t, t, t]; + var e = t.length; + return 2 === e ? [t[0], t[1], t[0], t[1]] : 3 === e ? [t[0], t[1], t[2], t[1]] : t + } + + function G(t, e) { + if (!t) throw new Error(e) + } + + function W(t) { + return null == t ? null : "function" == typeof t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") + } + + function X(t) { + t[zv] = !0 + } + + function Y(t) { + return t[zv] + } + + function U(t) { + return new Bv(t) + } + + function q(t, e) { + for (var n = new t.constructor(t.length + e.length), i = 0; i < t.length; i++) n[i] = t[i]; + for (var r = t.length, i = 0; i < e.length; i++) n[i + r] = e[i]; + return n + } + + function j(t, e) { + var n; + if (Object.create) n = Object.create(t); else { + var i = function () { + }; + i.prototype = t, n = new i + } + return e && h(n, e), n + } + + function Z(t, e) { + return t.hasOwnProperty(e) + } + + function K() { + } + + function $(t, e) { + return null == t && (t = 0), null == e && (e = 0), [t, e] + } + + function J(t, e) { + return t[0] = e[0], t[1] = e[1], t + } + + function Q(t) { + return [t[0], t[1]] + } + + function te(t, e, n) { + return t[0] = e, t[1] = n, t + } + + function ee(t, e, n) { + return t[0] = e[0] + n[0], t[1] = e[1] + n[1], t + } + + function ne(t, e, n, i) { + return t[0] = e[0] + n[0] * i, t[1] = e[1] + n[1] * i, t + } + + function ie(t, e, n) { + return t[0] = e[0] - n[0], t[1] = e[1] - n[1], t + } + + function re(t) { + return Math.sqrt(oe(t)) + } + + function oe(t) { + return t[0] * t[0] + t[1] * t[1] + } + + function ae(t, e, n) { + return t[0] = e[0] * n[0], t[1] = e[1] * n[1], t + } + + function se(t, e, n) { + return t[0] = e[0] / n[0], t[1] = e[1] / n[1], t + } + + function le(t, e) { + return t[0] * e[0] + t[1] * e[1] + } + + function ue(t, e, n) { + return t[0] = e[0] * n, t[1] = e[1] * n, t + } + + function he(t, e) { + var n = re(e); + return 0 === n ? (t[0] = 0, t[1] = 0) : (t[0] = e[0] / n, t[1] = e[1] / n), t + } + + function ce(t, e) { + return Math.sqrt((t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1])) + } + + function pe(t, e) { + return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]) + } + + function fe(t, e) { + return t[0] = -e[0], t[1] = -e[1], t + } + + function de(t, e, n, i) { + return t[0] = e[0] + i * (n[0] - e[0]), t[1] = e[1] + i * (n[1] - e[1]), t + } + + function ge(t, e, n) { + var i = e[0], r = e[1]; + return t[0] = n[0] * i + n[2] * r + n[4], t[1] = n[1] * i + n[3] * r + n[5], t + } + + function ye(t, e, n) { + return t[0] = Math.min(e[0], n[0]), t[1] = Math.min(e[1], n[1]), t + } + + function ve(t, e, n) { + return t[0] = Math.max(e[0], n[0]), t[1] = Math.max(e[1], n[1]), t + } + + function me(t, e, n, i, r, o) { + var a = i + "-" + r, s = t.length; + if (o.hasOwnProperty(a)) return o[a]; + if (1 === e) { + var l = Math.round(Math.log((1 << s) - 1 & ~r) / qv); + return t[n][l] + } + for (var u = i | 1 << n, h = n + 1; i & 1 << h;) h++; + for (var c = 0, p = 0, f = 0; s > p; p++) { + var d = 1 << p; + d & r || (c += (f % 2 ? -1 : 1) * t[n][p] * me(t, e - 1, h, u, r | d, o), f++) + } + return o[a] = c, c + } + + function _e(t, e) { + var n = [[t[0], t[1], 1, 0, 0, 0, -e[0] * t[0], -e[0] * t[1]], [0, 0, 0, t[0], t[1], 1, -e[1] * t[0], -e[1] * t[1]], [t[2], t[3], 1, 0, 0, 0, -e[2] * t[2], -e[2] * t[3]], [0, 0, 0, t[2], t[3], 1, -e[3] * t[2], -e[3] * t[3]], [t[4], t[5], 1, 0, 0, 0, -e[4] * t[4], -e[4] * t[5]], [0, 0, 0, t[4], t[5], 1, -e[5] * t[4], -e[5] * t[5]], [t[6], t[7], 1, 0, 0, 0, -e[6] * t[6], -e[6] * t[7]], [0, 0, 0, t[6], t[7], 1, -e[7] * t[6], -e[7] * t[7]]], + i = {}, r = me(n, 8, 0, 0, 0, i); + if (0 !== r) { + for (var o = [], a = 0; 8 > a; a++) for (var s = 0; 8 > s; s++) null == o[s] && (o[s] = 0), o[s] += ((a + s) % 2 ? -1 : 1) * me(n, 7, 0 === a ? 1 : 0, 1 << a, 1 << s, i) / r * e[a]; + return function (t, e, n) { + var i = e * o[6] + n * o[7] + 1; + t[0] = (e * o[0] + n * o[1] + o[2]) / i, t[1] = (e * o[3] + n * o[4] + o[5]) / i + } + } + } + + function xe(t, e, n, i, r) { + return we(Zv, e, i, r, !0) && we(t, n, Zv[0], Zv[1]) + } + + function we(t, e, n, i, r) { + if (e.getBoundingClientRect && wv.domSupported && !Te(e)) { + var o = e[jv] || (e[jv] = {}), a = be(e, o), s = Se(a, o, r); + if (s) return s(t, n, i), !0 + } + return !1 + } + + function be(t, e) { + var n = e.markers; + if (n) return n; + n = e.markers = []; + for (var i = ["left", "right"], r = ["top", "bottom"], o = 0; 4 > o; o++) { + var a = document.createElement("div"), s = a.style, l = o % 2, u = (o >> 1) % 2; + s.cssText = ["position: absolute", "visibility: hidden", "padding: 0", "margin: 0", "border-width: 0", "user-select: none", "width:0", "height:0", i[l] + ":0", r[u] + ":0", i[1 - l] + ":auto", r[1 - u] + ":auto", ""].join("!important;"), t.appendChild(a), n.push(a) + } + return n + } + + function Se(t, e, n) { + for (var i = n ? "invTrans" : "trans", r = e[i], o = e.srcCoords, a = [], s = [], l = !0, u = 0; 4 > u; u++) { + var h = t[u].getBoundingClientRect(), c = 2 * u, p = h.left, f = h.top; + a.push(p, f), l = l && o && p === o[c] && f === o[c + 1], s.push(t[u].offsetLeft, t[u].offsetTop) + } + return l && r ? r : (e.srcCoords = a, e[i] = n ? _e(s, a) : _e(a, s)) + } + + function Te(t) { + return "CANVAS" === t.nodeName.toUpperCase() + } + + function Me(t, e, n, i) { + return n = n || {}, i || !wv.canvasSupported ? Ce(t, e, n) : wv.browser.firefox && null != e.layerX && e.layerX !== e.offsetX ? (n.zrX = e.layerX, n.zrY = e.layerY) : null != e.offsetX ? (n.zrX = e.offsetX, n.zrY = e.offsetY) : Ce(t, e, n), n + } + + function Ce(t, e, n) { + if (wv.domSupported && t.getBoundingClientRect) { + var i = e.clientX, r = e.clientY; + if (Te(t)) { + var o = t.getBoundingClientRect(); + return n.zrX = i - o.left, void (n.zrY = r - o.top) + } + if (we(Jv, t, i, r)) return n.zrX = Jv[0], void (n.zrY = Jv[1]) + } + n.zrX = n.zrY = 0 + } + + function Ie(t) { + return t || window.event + } + + function Ae(t, e, n) { + if (e = Ie(e), null != e.zrX) return e; + var i = e.type, r = i && i.indexOf("touch") >= 0; + if (r) { + var o = "touchend" !== i ? e.targetTouches[0] : e.changedTouches[0]; + o && Me(t, o, e, n) + } else { + Me(t, e, e, n); + var a = De(e); + e.zrDelta = a ? a / 120 : -(e.detail || 0) / 3 + } + var s = e.button; + return null == e.which && void 0 !== s && $v.test(e.type) && (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0), e + } + + function De(t) { + var e = t.wheelDelta; + if (e) return e; + var n = t.deltaX, i = t.deltaY; + if (null == n || null == i) return e; + var r = Math.abs(0 !== i ? i : n), o = i > 0 ? -1 : 0 > i ? 1 : n > 0 ? -1 : 1; + return 3 * r * o + } + + function ke(t, e, n, i) { + Kv ? t.addEventListener(e, n, i) : t.attachEvent("on" + e, n) + } + + function Le(t, e, n, i) { + Kv ? t.removeEventListener(e, n, i) : t.detachEvent("on" + e, n) + } + + function Pe(t) { + return 2 === t.which || 3 === t.which + } + + function Oe(t) { + var e = t[1][0] - t[0][0], n = t[1][1] - t[0][1]; + return Math.sqrt(e * e + n * n) + } + + function Re(t) { + return [(t[0][0] + t[1][0]) / 2, (t[0][1] + t[1][1]) / 2] + } + + function Ee(t, e, n) { + return { + type: t, + event: n, + target: e.target, + topTarget: e.topTarget, + cancelBubble: !1, + offsetX: n.zrX, + offsetY: n.zrY, + gestureEvent: n.gestureEvent, + pinchX: n.pinchX, + pinchY: n.pinchY, + pinchScale: n.pinchScale, + wheelDelta: n.zrDelta, + zrByTouch: n.zrByTouch, + which: n.which, + stop: ze + } + } + + function ze() { + Qv(this.event) + } + + function Be(t, e, n) { + if (t[t.rectHover ? "rectContain" : "contain"](e, n)) { + for (var i = t, r = void 0, o = !1; i;) { + if (i.ignoreClip && (o = !0), !o) { + var a = i.getClipPath(); + if (a && !a.contain(e, n)) return !1; + i.silent && (r = !0) + } + var s = i.__hostTarget; + i = s ? s : i.parent + } + return r ? nm : !0 + } + return !1 + } + + function Ne(t, e, n) { + var i = t.painter; + return 0 > e || e > i.getWidth() || 0 > n || n > i.getHeight() + } + + function Fe() { + return [1, 0, 0, 1, 0, 0] + } + + function He(t) { + return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t + } + + function Ve(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 Ge(t, e, n) { + var i = e[0] * n[0] + e[2] * n[1], r = e[1] * n[0] + e[3] * n[1], o = e[0] * n[2] + e[2] * n[3], + a = e[1] * n[2] + e[3] * n[3], s = e[0] * n[4] + e[2] * n[5] + e[4], l = e[1] * n[4] + e[3] * n[5] + e[5]; + return t[0] = i, t[1] = r, t[2] = o, t[3] = a, t[4] = s, t[5] = l, t + } + + function We(t, e, n) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4] + n[0], t[5] = e[5] + n[1], t + } + + function Xe(t, e, n) { + var i = e[0], r = e[2], o = e[4], a = e[1], s = e[3], l = e[5], u = Math.sin(n), h = Math.cos(n); + return t[0] = i * h + a * u, t[1] = -i * u + a * h, t[2] = r * h + s * u, t[3] = -r * u + h * s, t[4] = h * o + u * l, t[5] = h * l - u * o, t + } + + function Ye(t, e, n) { + var i = n[0], r = n[1]; + return t[0] = e[0] * i, t[1] = e[1] * r, t[2] = e[2] * i, t[3] = e[3] * r, t[4] = e[4] * i, t[5] = e[5] * r, t + } + + function Ue(t, e) { + var n = e[0], i = e[2], r = e[4], o = e[1], a = e[3], s = e[5], l = n * a - o * i; + return l ? (l = 1 / l, t[0] = a * l, t[1] = -o * l, t[2] = -i * l, t[3] = n * l, t[4] = (i * s - a * r) * l, t[5] = (o * r - n * s) * l, t) : null + } + + function qe(t) { + var e = Fe(); + return Ve(e, t), e + } + + function je(t) { + return t > cm || -cm > t + } + + function Ze(t) { + return t = Math.round(t), 0 > t ? 0 : t > 255 ? 255 : t + } + + function Ke(t) { + return t = Math.round(t), 0 > t ? 0 : t > 360 ? 360 : t + } + + function $e(t) { + return 0 > t ? 0 : t > 1 ? 1 : t + } + + function Je(t) { + var e = t; + return Ze(e.length && "%" === e.charAt(e.length - 1) ? parseFloat(e) / 100 * 255 : parseInt(e, 10)) + } + + function Qe(t) { + var e = t; + return $e(e.length && "%" === e.charAt(e.length - 1) ? parseFloat(e) / 100 : parseFloat(e)) + } + + function tn(t, e, n) { + return 0 > n ? n += 1 : n > 1 && (n -= 1), 1 > 6 * n ? t + (e - t) * n * 6 : 1 > 2 * n ? e : 2 > 3 * n ? t + (e - t) * (2 / 3 - n) * 6 : t + } + + function en(t, e, n) { + return t + (e - t) * n + } + + function nn(t, e, n, i, r) { + return t[0] = e, t[1] = n, t[2] = i, t[3] = r, t + } + + function rn(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t + } + + function on(t, e) { + Tm && rn(Tm, e), Tm = Sm.put(t, Tm || e.slice()) + } + + function an(t, e) { + if (t) { + e = e || []; + var n = Sm.get(t); + if (n) return rn(e, n); + t += ""; + var i = t.replace(/ /g, "").toLowerCase(); + if (i in bm) return rn(e, bm[i]), on(t, e), e; + var r = i.length; + if ("#" !== i.charAt(0)) { + var o = i.indexOf("("), a = i.indexOf(")"); + if (-1 !== o && a + 1 === r) { + var s = i.substr(0, o), l = i.substr(o + 1, a - (o + 1)).split(","), u = 1; + switch (s) { + case"rgba": + if (4 !== l.length) return 3 === l.length ? nn(e, +l[0], +l[1], +l[2], 1) : nn(e, 0, 0, 0, 1); + u = Qe(l.pop()); + case"rgb": + return 3 !== l.length ? void nn(e, 0, 0, 0, 1) : (nn(e, Je(l[0]), Je(l[1]), Je(l[2]), u), on(t, e), e); + case"hsla": + return 4 !== l.length ? void nn(e, 0, 0, 0, 1) : (l[3] = Qe(l[3]), sn(l, e), on(t, e), e); + case"hsl": + return 3 !== l.length ? void nn(e, 0, 0, 0, 1) : (sn(l, e), on(t, e), e); + default: + return + } + } + nn(e, 0, 0, 0, 1) + } else { + if (4 === r || 5 === r) { + var h = parseInt(i.slice(1, 4), 16); + return h >= 0 && 4095 >= h ? (nn(e, (3840 & h) >> 4 | (3840 & h) >> 8, 240 & h | (240 & h) >> 4, 15 & h | (15 & h) << 4, 5 === r ? parseInt(i.slice(4), 16) / 15 : 1), on(t, e), e) : void nn(e, 0, 0, 0, 1) + } + if (7 === r || 9 === r) { + var h = parseInt(i.slice(1, 7), 16); + return h >= 0 && 16777215 >= h ? (nn(e, (16711680 & h) >> 16, (65280 & h) >> 8, 255 & h, 9 === r ? parseInt(i.slice(7), 16) / 255 : 1), on(t, e), e) : void nn(e, 0, 0, 0, 1) + } + } + } + } + + function sn(t, e) { + var n = (parseFloat(t[0]) % 360 + 360) % 360 / 360, i = Qe(t[1]), r = Qe(t[2]), + o = .5 >= r ? r * (i + 1) : r + i - r * i, a = 2 * r - o; + return e = e || [], nn(e, Ze(255 * tn(a, o, n + 1 / 3)), Ze(255 * tn(a, o, n)), Ze(255 * tn(a, o, n - 1 / 3)), 1), 4 === t.length && (e[3] = t[3]), e + } + + function ln(t) { + if (t) { + var e, n, i = t[0] / 255, r = t[1] / 255, o = t[2] / 255, a = Math.min(i, r, o), s = Math.max(i, r, o), + l = s - a, u = (s + a) / 2; + if (0 === l) e = 0, n = 0; else { + n = .5 > u ? l / (s + a) : l / (2 - s - a); + var h = ((s - i) / 6 + l / 2) / l, c = ((s - r) / 6 + l / 2) / l, p = ((s - o) / 6 + l / 2) / l; + i === s ? e = p - c : r === s ? e = 1 / 3 + h - p : o === s && (e = 2 / 3 + c - h), 0 > e && (e += 1), e > 1 && (e -= 1) + } + var f = [360 * e, n, u]; + return null != t[3] && f.push(t[3]), f + } + } + + function un(t, e) { + var n = an(t); + if (n) { + for (var i = 0; 3 > i; i++) n[i] = 0 > e ? n[i] * (1 - e) | 0 : (255 - n[i]) * e + n[i] | 0, n[i] > 255 ? n[i] = 255 : n[i] < 0 && (n[i] = 0); + return gn(n, 4 === n.length ? "rgba" : "rgb") + } + } + + function hn(t) { + var e = an(t); + return e ? ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2]).toString(16).slice(1) : void 0 + } + + function cn(t, e, n) { + if (e && e.length && t >= 0 && 1 >= t) { + n = n || []; + var i = t * (e.length - 1), r = Math.floor(i), o = Math.ceil(i), a = e[r], s = e[o], l = i - r; + return n[0] = Ze(en(a[0], s[0], l)), n[1] = Ze(en(a[1], s[1], l)), n[2] = Ze(en(a[2], s[2], l)), n[3] = $e(en(a[3], s[3], l)), n + } + } + + function pn(t, e, n) { + if (e && e.length && t >= 0 && 1 >= t) { + var i = t * (e.length - 1), r = Math.floor(i), o = Math.ceil(i), a = an(e[r]), s = an(e[o]), l = i - r, + u = gn([Ze(en(a[0], s[0], l)), Ze(en(a[1], s[1], l)), Ze(en(a[2], s[2], l)), $e(en(a[3], s[3], l))], "rgba"); + return n ? {color: u, leftIndex: r, rightIndex: o, value: i} : u + } + } + + function fn(t, e, n, i) { + var r = an(t); + return t ? (r = ln(r), null != e && (r[0] = Ke(e)), null != n && (r[1] = Qe(n)), null != i && (r[2] = Qe(i)), gn(sn(r), "rgba")) : void 0 + } + + function dn(t, e) { + var n = an(t); + return n && null != e ? (n[3] = $e(e), gn(n, "rgba")) : void 0 + } + + function gn(t, e) { + if (t && t.length) { + var n = t[0] + "," + t[1] + "," + t[2]; + return ("rgba" === e || "hsva" === e || "hsla" === e) && (n += "," + t[3]), e + "(" + n + ")" + } + } + + function yn(t, e) { + var n = an(t); + return n ? (.299 * n[0] + .587 * n[1] + .114 * n[2]) * n[3] / 255 + (1 - n[3]) * e : 0 + } + + function vn() { + var t = Math.round(255 * Math.random()), e = Math.round(255 * Math.random()), + n = Math.round(255 * Math.random()); + return "rgb(" + t + "," + e + "," + n + ")" + } + + function mn(t, e, n) { + return (e - t) * n + t + } + + function _n(t, e, n) { + return n > .5 ? e : t + } + + function xn(t, e, n, i) { + for (var r = e.length, o = 0; r > o; o++) t[o] = mn(e[o], n[o], i) + } + + function wn(t, e, n, i) { + for (var r = e.length, o = r && e[0].length, a = 0; r > a; a++) { + t[a] || (t[a] = []); + for (var s = 0; o > s; s++) t[a][s] = mn(e[a][s], n[a][s], i) + } + } + + function bn(t, e, n, i) { + for (var r = e.length, o = 0; r > o; o++) t[o] = e[o] + n[o] * i; + return t + } + + function Sn(t, e, n, i) { + for (var r = e.length, o = r && e[0].length, a = 0; r > a; a++) { + t[a] || (t[a] = []); + for (var s = 0; o > s; s++) t[a][s] = e[a][s] + n[a][s] * i + } + return t + } + + function Tn(t, e, n) { + var i = t, r = e; + if (i.push && r.push) { + var o = i.length, a = r.length; + if (o !== a) { + var s = o > a; + if (s) i.length = a; else for (var l = o; a > l; l++) i.push(1 === n ? r[l] : Am.call(r[l])) + } + for (var u = i[0] && i[0].length, l = 0; l < i.length; l++) if (1 === n) isNaN(i[l]) && (i[l] = r[l]); else for (var h = 0; u > h; h++) isNaN(i[l][h]) && (i[l][h] = r[l][h]) + } + } + + function Mn(t, e) { + var n = t.length; + if (n !== e.length) return !1; + for (var i = 0; n > i; i++) if (t[i] !== e[i]) return !1; + return !0 + } + + function Cn(t, e, n, i, r, o, a) { + var s = .5 * (n - t), l = .5 * (i - e); + return (2 * (e - n) + s + l) * a + (-3 * (e - n) - 2 * s - l) * o + s * r + e + } + + function In(t, e, n, i, r, o, a, s) { + for (var l = e.length, u = 0; l > u; u++) t[u] = Cn(e[u], n[u], i[u], r[u], o, a, s) + } + + function An(t, e, n, i, r, o, a, s) { + for (var l = e.length, u = e[0].length, h = 0; l > h; h++) { + t[h] || (t[1] = []); + for (var c = 0; u > c; c++) t[h][c] = Cn(e[h][c], n[h][c], i[h][c], r[h][c], o, a, s) + } + } + + function Dn(t) { + if (g(t)) { + var e = t.length; + if (g(t[0])) { + for (var n = [], i = 0; e > i; i++) n.push(Am.call(t[i])); + return n + } + return Am.call(t) + } + return t + } + + function kn(t) { + return t[0] = Math.floor(t[0]), t[1] = Math.floor(t[1]), t[2] = Math.floor(t[2]), "rgba(" + t.join(",") + ")" + } + + function Ln(t) { + return g(t && t[0]) ? 2 : 1 + } + + function Pn(t, e) { + return sm || (sm = Rv().getContext("2d")), lm !== e && (lm = sm.font = e || Wm), sm.measureText(t) + } + + function On(t, e) { + e = e || Wm; + var n = Gm[e]; + n || (n = Gm[e] = new wm(500)); + var i = n.get(t); + return null == i && (i = Xm.measureText(t, e).width, n.put(t, i)), i + } + + function Rn(t, e, n, i) { + var r = On(t, e), o = Nn(e), a = zn(0, r, n), s = Bn(0, o, i), l = new Vm(a, s, r, o); + return l + } + + function En(t, e, n, i) { + var r = ((t || "") + "").split("\n"), o = r.length; + if (1 === o) return Rn(r[0], e, n, i); + for (var a = new Vm(0, 0, 0, 0), s = 0; s < r.length; s++) { + var l = Rn(r[s], e, n, i); + 0 === s ? a.copy(l) : a.union(l) + } + return a + } + + function zn(t, e, n) { + return "right" === n ? t -= e : "center" === n && (t -= e / 2), t + } + + function Bn(t, e, n) { + return "middle" === n ? t -= e / 2 : "bottom" === n && (t -= e), t + } + + function Nn(t) { + return On("国", t) + } + + function Fn(t, e) { + return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t + } + + function Hn(t, e, n) { + var i = e.position || "inside", r = null != e.distance ? e.distance : 5, o = n.height, a = n.width, s = o / 2, + l = n.x, u = n.y, h = "left", c = "top"; + if (i instanceof Array) l += Fn(i[0], n.width), u += Fn(i[1], n.height), h = null, c = null; else switch (i) { + case"left": + l -= r, u += s, h = "right", c = "middle"; + break; + case"right": + l += r + a, u += s, c = "middle"; + break; + case"top": + l += a / 2, u -= r, h = "center", c = "bottom"; + break; + case"bottom": + l += a / 2, u += o + r, h = "center"; + break; + case"inside": + l += a / 2, u += s, h = "center", c = "middle"; + break; + case"insideLeft": + l += r, u += s, c = "middle"; + break; + case"insideRight": + l += a - r, u += s, h = "right", c = "middle"; + break; + case"insideTop": + l += a / 2, u += r, h = "center"; + break; + case"insideBottom": + l += a / 2, u += o - r, h = "center", c = "bottom"; + break; + case"insideTopLeft": + l += r, u += r; + break; + case"insideTopRight": + l += a - r, u += r, h = "right"; + break; + case"insideBottomLeft": + l += r, u += o - r, c = "bottom"; + break; + case"insideBottomRight": + l += a - r, u += o - r, h = "right", c = "bottom" + } + return t = t || {}, t.x = l, t.y = u, t.align = h, t.verticalAlign = c, t + } + + function Vn(t, e, n, i, r) { + n = n || {}; + var o = []; + Yn(t, "", t, e, n, i, o, r); + var a = o.length, s = !1, l = n.done, u = n.aborted, h = function () { + s = !0, a--, 0 >= a && (s ? l && l() : u && u()) + }, c = function () { + a--, 0 >= a && (s ? l && l() : u && u()) + }; + a || l && l(), o.length > 0 && n.during && o[0].during(function (t, e) { + n.during(e) + }); + for (var p = 0; p < o.length; p++) { + var f = o[p]; + h && f.done(h), c && f.aborted(c), f.start(n.easing, n.force) + } + return o + } + + function Gn(t, e, n) { + for (var i = 0; n > i; i++) t[i] = e[i] + } + + function Wn(t) { + return g(t[0]) + } + + function Xn(t, e, n) { + if (g(e[n])) if (g(t[n]) || (t[n] = []), L(e[n])) { + var i = e[n].length; + t[n].length !== i && (t[n] = new e[n].constructor(i), Gn(t[n], e[n], i)) + } else { + var r = e[n], o = t[n], a = r.length; + if (Wn(r)) for (var s = r[0].length, l = 0; a > l; l++) o[l] ? Gn(o[l], r[l], s) : o[l] = Array.prototype.slice.call(r[l]); else Gn(o, r, a); + o.length = r.length + } else t[n] = e[n] + } + + function Yn(t, e, n, i, r, o, a, s) { + for (var l = [], u = [], h = w(i), c = r.duration, f = r.delay, d = r.additive, y = r.setToFinal, v = !D(o), m = 0; m < h.length; m++) { + var _ = h[m]; + if (null != n[_] && null != i[_] && (v || o[_])) if (D(i[_]) && !g(i[_])) { + if (e) { + s || (n[_] = i[_], t.updateDuringAnimation(e)); + continue + } + Yn(t, _, n[_], i[_], r, o && o[_], a, s) + } else l.push(_), u.push(_); else s || (n[_] = i[_], t.updateDuringAnimation(e), u.push(_)) + } + var x = l.length; + if (x > 0 || r.force && !a.length) { + for (var b = t.animators, S = [], T = 0; T < b.length; T++) b[T].targetName === e && S.push(b[T]); + if (!d && S.length) for (var T = 0; T < S.length; T++) { + var M = S[T].stopTracks(u); + if (M) { + var C = p(b, S[T]); + b.splice(C, 1) + } + } + var I = void 0, A = void 0, k = void 0; + if (s) { + A = {}, y && (I = {}); + for (var T = 0; x > T; T++) { + var _ = l[T]; + A[_] = n[_], y ? I[_] = i[_] : n[_] = i[_] + } + } else if (y) { + k = {}; + for (var T = 0; x > T; T++) { + var _ = l[T]; + k[_] = Dn(n[_]), Xn(n, i, _) + } + } + var L = new Lm(n, !1, d ? S : null); + L.targetName = e, r.scope && (L.scope = r.scope), y && I && L.whenWithKeys(0, I, l), k && L.whenWithKeys(0, k, l), L.whenWithKeys(null == c ? 500 : c, s ? A : i, l).delay(f || 0), t.addAnimator(L, e), a.push(L) + } + } + + function Un(t) { + for (var e = 0; t >= r_;) e |= 1 & t, t >>= 1; + return t + e + } + + function qn(t, e, n, i) { + var r = e + 1; + if (r === n) return 1; + if (i(t[r++], t[e]) < 0) { + for (; n > r && i(t[r], t[r - 1]) < 0;) r++; + jn(t, e, r) + } else for (; n > r && i(t[r], t[r - 1]) >= 0;) r++; + return r - e + } + + function jn(t, e, n) { + for (n--; n > e;) { + var i = t[e]; + t[e++] = t[n], t[n--] = i + } + } + + function Zn(t, e, n, i, r) { + for (i === e && i++; n > i; i++) { + for (var o, a = t[i], s = e, l = i; l > s;) o = s + l >>> 1, r(a, t[o]) < 0 ? l = o : s = o + 1; + var u = i - 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] = a + } + } + + function Kn(t, e, n, i, r, o) { + var a = 0, s = 0, l = 1; + if (o(t, e[n + r]) > 0) { + for (s = i - r; s > l && o(t, e[n + r + l]) > 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); + l > s && (l = s), a += r, l += r + } else { + for (s = r + 1; s > l && o(t, e[n + r - l]) <= 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); + l > s && (l = s); + var u = a; + a = r - l, l = r - u + } + for (a++; l > a;) { + var h = a + (l - a >>> 1); + o(t, e[n + h]) > 0 ? a = h + 1 : l = h + } + return l + } + + function $n(t, e, n, i, r, o) { + var a = 0, s = 0, l = 1; + if (o(t, e[n + r]) < 0) { + for (s = r + 1; s > l && o(t, e[n + r - l]) < 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); + l > s && (l = s); + var u = a; + a = r - l, l = r - u + } else { + for (s = i - r; s > l && o(t, e[n + r + l]) >= 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); + l > s && (l = s), a += r, l += r + } + for (a++; l > a;) { + var h = a + (l - a >>> 1); + o(t, e[n + h]) < 0 ? l = h : a = h + 1 + } + return l + } + + function Jn(t, e) { + function n(t, e) { + l[c] = t, u[c] = e, c += 1 + } + + function i() { + for (; c > 1;) { + var t = c - 2; + if (t >= 1 && u[t - 1] <= u[t] + u[t + 1] || t >= 2 && u[t - 2] <= u[t] + u[t - 1]) u[t - 1] < u[t + 1] && t--; else if (u[t] > u[t + 1]) break; + o(t) + } + } + + function r() { + for (; c > 1;) { + var t = c - 2; + t > 0 && u[t - 1] < u[t + 1] && t--, o(t) + } + } + + function o(n) { + var i = l[n], r = u[n], o = l[n + 1], h = u[n + 1]; + u[n] = r + h, n === c - 3 && (l[n + 1] = l[n + 2], u[n + 1] = u[n + 2]), c--; + var p = $n(t[o], t, i, r, 0, e); + i += p, r -= p, 0 !== r && (h = Kn(t[i + r - 1], t, o, h, h - 1, e), 0 !== h && (h >= r ? a(i, r, o, h) : s(i, r, o, h))) + } + + function a(n, i, r, o) { + var a = 0; + for (a = 0; i > a; a++) p[a] = t[n + a]; + var s = 0, l = r, u = n; + if (t[u++] = t[l++], 0 !== --o) { + if (1 === i) { + for (a = 0; o > a; a++) t[u + a] = t[l + a]; + return void (t[u + o] = p[s]) + } + for (var c, f, d, g = h; ;) { + c = 0, f = 0, d = !1; + do if (e(t[l], p[s]) < 0) { + if (t[u++] = t[l++], f++, c = 0, 0 === --o) { + d = !0; + break + } + } else if (t[u++] = p[s++], c++, f = 0, 1 === --i) { + d = !0; + break + } while (g > (c | f)); + if (d) break; + do { + if (c = $n(t[l], p, s, i, 0, e), 0 !== c) { + for (a = 0; c > a; a++) t[u + a] = p[s + a]; + if (u += c, s += c, i -= c, 1 >= i) { + d = !0; + break + } + } + if (t[u++] = t[l++], 0 === --o) { + d = !0; + break + } + if (f = Kn(p[s], t, l, o, 0, e), 0 !== f) { + for (a = 0; f > a; a++) t[u + a] = t[l + a]; + if (u += f, l += f, o -= f, 0 === o) { + d = !0; + break + } + } + if (t[u++] = p[s++], 1 === --i) { + d = !0; + break + } + g-- + } while (c >= o_ || f >= o_); + if (d) break; + 0 > g && (g = 0), g += 2 + } + if (h = g, 1 > h && (h = 1), 1 === i) { + for (a = 0; o > a; a++) t[u + a] = t[l + a]; + t[u + o] = p[s] + } else { + if (0 === i) throw new Error; + for (a = 0; i > a; a++) t[u + a] = p[s + a] + } + } else for (a = 0; i > a; a++) t[u + a] = p[s + a] + } + + function s(n, i, r, o) { + var a = 0; + for (a = 0; o > a; a++) p[a] = t[r + a]; + var s = n + i - 1, l = o - 1, u = r + o - 1, c = 0, f = 0; + if (t[u--] = t[s--], 0 !== --i) { + if (1 === o) { + for (u -= i, s -= i, f = u + 1, c = s + 1, a = i - 1; a >= 0; a--) t[f + a] = t[c + a]; + return void (t[u] = p[l]) + } + for (var d = h; ;) { + var g = 0, y = 0, v = !1; + do if (e(p[l], t[s]) < 0) { + if (t[u--] = t[s--], g++, y = 0, 0 === --i) { + v = !0; + break + } + } else if (t[u--] = p[l--], y++, g = 0, 1 === --o) { + v = !0; + break + } while (d > (g | y)); + if (v) break; + do { + if (g = i - $n(p[l], t, n, i, i - 1, e), 0 !== g) { + for (u -= g, s -= g, i -= g, f = u + 1, c = s + 1, a = g - 1; a >= 0; a--) t[f + a] = t[c + a]; + if (0 === i) { + v = !0; + break + } + } + if (t[u--] = p[l--], 1 === --o) { + v = !0; + break + } + if (y = o - Kn(t[s], p, 0, o, o - 1, e), 0 !== y) { + for (u -= y, l -= y, o -= y, f = u + 1, c = l + 1, a = 0; y > a; a++) t[f + a] = p[c + a]; + if (1 >= o) { + v = !0; + break + } + } + if (t[u--] = t[s--], 0 === --i) { + v = !0; + break + } + d-- + } while (g >= o_ || y >= o_); + if (v) break; + 0 > d && (d = 0), d += 2 + } + if (h = d, 1 > h && (h = 1), 1 === o) { + for (u -= i, s -= i, f = u + 1, c = s + 1, a = i - 1; a >= 0; a--) t[f + a] = t[c + a]; + t[u] = p[l] + } else { + if (0 === o) throw new Error; + for (c = u - (o - 1), a = 0; o > a; a++) t[c + a] = p[a] + } + } else for (c = u - (o - 1), a = 0; o > a; a++) t[c + a] = p[a] + } + + var l, u, h = o_, c = 0, p = []; + return l = [], u = [], {mergeRuns: i, forceMergeRuns: r, pushRun: n} + } + + function Qn(t, e, n, i) { + n || (n = 0), i || (i = t.length); + var r = i - n; + if (!(2 > r)) { + var o = 0; + if (r_ > r) return o = qn(t, n, i, e), void Zn(t, n, i, n + o, e); + var a = Jn(t, e), s = Un(r); + do { + if (o = qn(t, n, i, e), s > o) { + var l = r; + l > s && (l = s), Zn(t, n, n + l, n + o, e), o = l + } + a.pushRun(n, o), a.mergeRuns(), r -= o, n += o + } while (0 !== r); + a.forceMergeRuns() + } + } + + function ti() { + a_ || (a_ = !0, console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors")) + } + + function ei(t, e) { + return t.zlevel === e.zlevel ? t.z === e.z ? t.z2 - e.z2 : t.z - e.z : t.zlevel - e.zlevel + } + + function ni(t) { + var e = t.pointerType; + return "pen" === e || "touch" === e + } + + function ii(t) { + t.touching = !0, null != t.touchTimer && (clearTimeout(t.touchTimer), t.touchTimer = null), t.touchTimer = setTimeout(function () { + t.touching = !1, t.touchTimer = null + }, 700) + } + + function ri(t) { + t && (t.zrByTouch = !0) + } + + function oi(t, e) { + return Ae(t.dom, new g_(t, e), !0) + } + + function ai(t, e) { + for (var n = e, i = !1; n && 9 !== n.nodeType && !(i = n.domBelongToZr || n !== e && n === t.painterRoot);) n = n.parentNode; + return i + } + + function si(t, e) { + var n = e.domHandlers; + wv.pointerEventsSupported ? y(p_.pointer, function (i) { + ui(e, i, function (e) { + n[i].call(t, e) + }) + }) : (wv.touchEventsSupported && y(p_.touch, function (i) { + ui(e, i, function (r) { + n[i].call(t, r), ii(e) + }) + }), y(p_.mouse, function (i) { + ui(e, i, function (r) { + r = Ie(r), e.touching || n[i].call(t, r) + }) + })) + } + + function li(t, e) { + function n(n) { + function i(i) { + i = Ie(i), ai(t, i.target) || (i = oi(t, i), e.domHandlers[n].call(t, i)) + } + + ui(e, n, i, {capture: !0}) + } + + wv.pointerEventsSupported ? y(f_.pointer, n) : wv.touchEventsSupported || y(f_.mouse, n) + } + + function ui(t, e, n, i) { + t.mounted[e] = n, t.listenerOpts[e] = i, ke(t.domTarget, e, n, i) + } + + function hi(t) { + var e = t.mounted; + for (var n in e) e.hasOwnProperty(n) && Le(t.domTarget, n, e[n], t.listenerOpts[n]); + t.mounted = {} + } + + function ci(t, e, n) { + return M_.copy(t.getBoundingRect()), t.transform && M_.applyTransform(t.transform), C_.width = e, C_.height = n, !M_.intersect(C_) + } + + function pi(t) { + return t > -D_ && D_ > t + } + + function fi(t) { + return t > D_ || -D_ > t + } + + function di(t, e, n, i, r) { + var o = 1 - r; + return o * o * (o * t + 3 * r * e) + r * r * (r * i + 3 * o * n) + } + + function gi(t, e, n, i, r) { + var o = 1 - r; + return 3 * (((e - t) * o + 2 * (n - e) * r) * o + (i - n) * r * r) + } + + function yi(t, e, n, i, r, o) { + var a = i + 3 * (e - n) - t, s = 3 * (n - 2 * e + t), l = 3 * (e - t), u = t - r, h = s * s - 3 * a * l, + c = s * l - 9 * a * u, p = l * l - 3 * s * u, f = 0; + if (pi(h) && pi(c)) if (pi(s)) o[0] = 0; else { + var d = -l / s; + d >= 0 && 1 >= d && (o[f++] = d) + } else { + var g = c * c - 4 * h * p; + if (pi(g)) { + var y = c / h, d = -s / a + y, v = -y / 2; + d >= 0 && 1 >= d && (o[f++] = d), v >= 0 && 1 >= v && (o[f++] = v) + } else if (g > 0) { + var m = A_(g), _ = h * s + 1.5 * a * (-c + m), x = h * s + 1.5 * a * (-c - m); + _ = 0 > _ ? -I_(-_, P_) : I_(_, P_), x = 0 > x ? -I_(-x, P_) : I_(x, P_); + var d = (-s - (_ + x)) / (3 * a); + d >= 0 && 1 >= d && (o[f++] = d) + } else { + var w = (2 * h * s - 3 * a * c) / (2 * A_(h * h * h)), b = Math.acos(w) / 3, S = A_(h), T = Math.cos(b), + d = (-s - 2 * S * T) / (3 * a), v = (-s + S * (T + L_ * Math.sin(b))) / (3 * a), + M = (-s + S * (T - L_ * Math.sin(b))) / (3 * a); + d >= 0 && 1 >= d && (o[f++] = d), v >= 0 && 1 >= v && (o[f++] = v), M >= 0 && 1 >= M && (o[f++] = M) + } + } + return f + } + + function vi(t, e, n, i, r) { + var o = 6 * n - 12 * e + 6 * t, a = 9 * e + 3 * i - 3 * t - 9 * n, s = 3 * e - 3 * t, l = 0; + if (pi(a)) { + if (fi(o)) { + var u = -s / o; + u >= 0 && 1 >= u && (r[l++] = u) + } + } else { + var h = o * o - 4 * a * s; + if (pi(h)) r[0] = -o / (2 * a); else if (h > 0) { + var c = A_(h), u = (-o + c) / (2 * a), p = (-o - c) / (2 * a); + u >= 0 && 1 >= u && (r[l++] = u), p >= 0 && 1 >= p && (r[l++] = p) + } + } + return l + } + + function mi(t, e, n, i, r, o) { + var a = (e - t) * r + t, s = (n - e) * r + e, l = (i - n) * r + n, u = (s - a) * r + a, h = (l - s) * r + s, + c = (h - u) * r + u; + o[0] = t, o[1] = a, o[2] = u, o[3] = c, o[4] = c, o[5] = h, o[6] = l, o[7] = i + } + + function _i(t, e, n, i, r, o, a, s, l, u, h) { + var c, p, f, d, g, y = .005, v = 1 / 0; + O_[0] = l, O_[1] = u; + for (var m = 0; 1 > m; m += .05) R_[0] = di(t, n, r, a, m), R_[1] = di(e, i, o, s, m), d = Gv(O_, R_), v > d && (c = m, v = d); + v = 1 / 0; + for (var _ = 0; 32 > _ && !(k_ > y); _++) p = c - y, f = c + y, R_[0] = di(t, n, r, a, p), R_[1] = di(e, i, o, s, p), d = Gv(R_, O_), p >= 0 && v > d ? (c = p, v = d) : (E_[0] = di(t, n, r, a, f), E_[1] = di(e, i, o, s, f), g = Gv(E_, O_), 1 >= f && v > g ? (c = f, v = g) : y *= .5); + return h && (h[0] = di(t, n, r, a, c), h[1] = di(e, i, o, s, c)), A_(v) + } + + function xi(t, e, n, i, r, o, a, s, l) { + for (var u = t, h = e, c = 0, p = 1 / l, f = 1; l >= f; f++) { + var d = f * p, g = di(t, n, r, a, d), y = di(e, i, o, s, d), v = g - u, m = y - h; + c += Math.sqrt(v * v + m * m), u = g, h = y + } + return c + } + + function wi(t, e, n, i) { + var r = 1 - i; + return r * (r * t + 2 * i * e) + i * i * n + } + + function bi(t, e, n, i) { + return 2 * ((1 - i) * (e - t) + i * (n - e)) + } + + function Si(t, e, n, i, r) { + var o = t - 2 * e + n, a = 2 * (e - t), s = t - i, l = 0; + if (pi(o)) { + if (fi(a)) { + var u = -s / a; + u >= 0 && 1 >= u && (r[l++] = u) + } + } else { + var h = a * a - 4 * o * s; + if (pi(h)) { + var u = -a / (2 * o); + u >= 0 && 1 >= u && (r[l++] = u) + } else if (h > 0) { + var c = A_(h), u = (-a + c) / (2 * o), p = (-a - c) / (2 * o); + u >= 0 && 1 >= u && (r[l++] = u), p >= 0 && 1 >= p && (r[l++] = p) + } + } + return l + } + + function Ti(t, e, n) { + var i = t + n - 2 * e; + return 0 === i ? .5 : (t - e) / i + } + + function Mi(t, e, n, i, r) { + var o = (e - t) * i + t, a = (n - e) * i + e, s = (a - o) * i + o; + r[0] = t, r[1] = o, r[2] = s, r[3] = s, r[4] = a, r[5] = n + } + + function Ci(t, e, n, i, r, o, a, s, l) { + var u, h = .005, c = 1 / 0; + O_[0] = a, O_[1] = s; + for (var p = 0; 1 > p; p += .05) { + R_[0] = wi(t, n, r, p), R_[1] = wi(e, i, o, p); + var f = Gv(O_, R_); + c > f && (u = p, c = f) + } + c = 1 / 0; + for (var d = 0; 32 > d && !(k_ > h); d++) { + var g = u - h, y = u + h; + R_[0] = wi(t, n, r, g), R_[1] = wi(e, i, o, g); + var f = Gv(R_, O_); + if (g >= 0 && c > f) u = g, c = f; else { + E_[0] = wi(t, n, r, y), E_[1] = wi(e, i, o, y); + var v = Gv(E_, O_); + 1 >= y && c > v ? (u = y, c = v) : h *= .5 + } + } + return l && (l[0] = wi(t, n, r, u), l[1] = wi(e, i, o, u)), A_(c) + } + + function Ii(t, e, n, i, r, o, a) { + for (var s = t, l = e, u = 0, h = 1 / a, c = 1; a >= c; c++) { + var p = c * h, f = wi(t, n, r, p), d = wi(e, i, o, p), g = f - s, y = d - l; + u += Math.sqrt(g * g + y * y), s = f, l = d + } + return u + } + + function Ai(t, e, n) { + if (0 !== t.length) { + for (var i = t[0], r = i[0], o = i[0], a = i[1], s = i[1], l = 1; l < t.length; l++) i = t[l], r = z_(r, i[0]), o = B_(o, i[0]), a = z_(a, i[1]), s = B_(s, i[1]); + e[0] = r, e[1] = a, n[0] = o, n[1] = s + } + } + + function Di(t, e, n, i, r, o) { + r[0] = z_(t, n), r[1] = z_(e, i), o[0] = B_(t, n), o[1] = B_(e, i) + } + + function ki(t, e, n, i, r, o, a, s, l, u) { + var h = vi, c = di, p = h(t, n, r, a, X_); + l[0] = 1 / 0, l[1] = 1 / 0, u[0] = -1 / 0, u[1] = -1 / 0; + for (var f = 0; p > f; f++) { + var d = c(t, n, r, a, X_[f]); + l[0] = z_(d, l[0]), u[0] = B_(d, u[0]) + } + p = h(e, i, o, s, Y_); + for (var f = 0; p > f; f++) { + var g = c(e, i, o, s, Y_[f]); + l[1] = z_(g, l[1]), u[1] = B_(g, u[1]) + } + l[0] = z_(t, l[0]), u[0] = B_(t, u[0]), l[0] = z_(a, l[0]), u[0] = B_(a, u[0]), l[1] = z_(e, l[1]), u[1] = B_(e, u[1]), l[1] = z_(s, l[1]), u[1] = B_(s, u[1]) + } + + function Li(t, e, n, i, r, o, a, s) { + var l = Ti, u = wi, h = B_(z_(l(t, n, r), 1), 0), c = B_(z_(l(e, i, o), 1), 0), p = u(t, n, r, h), + f = u(e, i, o, c); + a[0] = z_(t, r, p), a[1] = z_(e, o, f), s[0] = B_(t, r, p), s[1] = B_(e, o, f) + } + + function Pi(t, e, n, i, r, o, a, s, l) { + var u = ye, h = ve, c = Math.abs(r - o); + if (1e-4 > c % H_ && c > 1e-4) return s[0] = t - n, s[1] = e - i, l[0] = t + n, void (l[1] = e + i); + if (V_[0] = F_(r) * n + t, V_[1] = N_(r) * i + e, G_[0] = F_(o) * n + t, G_[1] = N_(o) * i + e, u(s, V_, G_), h(l, V_, G_), r %= H_, 0 > r && (r += H_), o %= H_, 0 > o && (o += H_), r > o && !a ? o += H_ : o > r && a && (r += H_), a) { + var p = o; + o = r, r = p + } + for (var f = 0; o > f; f += Math.PI / 2) f > r && (W_[0] = F_(f) * n + t, W_[1] = N_(f) * i + e, u(s, W_, s), h(l, W_, l)) + } + + function Oi(t) { + var e = Math.round(t / ox * 1e8) / 1e8; + return e % 2 * ox + } + + function Ri(t, e) { + var n = Oi(t[0]); + 0 > n && (n += ax); + var i = n - t[0], r = t[1]; + r += i, !e && r - n >= ax ? r = n + ax : e && n - r >= ax ? r = n - ax : !e && n > r ? r = n + (ax - Oi(n - r)) : e && r > n && (r = n - (ax - Oi(r - n))), t[0] = n, t[1] = r + } + + function Ei(t, e, n, i, r, o, a) { + if (0 === r) return !1; + var s = r, l = 0, u = t; + if (a > e + s && a > i + s || e - s > a && i - s > a || o > t + s && o > n + s || t - s > o && n - s > o) return !1; + if (t === n) return Math.abs(o - t) <= s / 2; + l = (e - i) / (t - n), u = (t * i - n * e) / (t - n); + var h = l * o - a + u, c = h * h / (l * l + 1); + return s / 2 * s / 2 >= c + } + + function zi(t, e, n, i, r, o, a, s, l, u, h) { + if (0 === l) return !1; + var c = l; + if (h > e + c && h > i + c && h > o + c && h > s + c || e - c > h && i - c > h && o - c > h && s - c > h || u > t + c && u > n + c && u > r + c && u > a + c || t - c > u && n - c > u && r - c > u && a - c > u) return !1; + var p = _i(t, e, n, i, r, o, a, s, u, h, null); + return c / 2 >= p + } + + function Bi(t, e, n, i, r, o, a, s, l) { + if (0 === a) return !1; + var u = a; + if (l > e + u && l > i + u && l > o + u || e - u > l && i - u > l && o - u > l || s > t + u && s > n + u && s > r + u || t - u > s && n - u > s && r - u > s) return !1; + var h = Ci(t, e, n, i, r, o, s, l, null); + return u / 2 >= h + } + + function Ni(t) { + return t %= hx, 0 > t && (t += hx), t + } + + function Fi(t, e, n, i, r, o, a, s, l) { + if (0 === a) return !1; + var u = a; + s -= t, l -= e; + var h = Math.sqrt(s * s + l * l); + if (h - u > n || n > h + u) return !1; + if (Math.abs(i - r) % cx < 1e-4) return !0; + if (o) { + var c = i; + i = Ni(r), r = Ni(c) + } else i = Ni(i), r = Ni(r); + i > r && (r += cx); + var p = Math.atan2(l, s); + return 0 > p && (p += cx), p >= i && r >= p || p + cx >= i && r >= p + cx + } + + function Hi(t, e, n, i, r, o) { + if (o > e && o > i || e > o && i > o) return 0; + if (i === e) return 0; + var a = (o - e) / (i - e), s = e > i ? 1 : -1; + (1 === a || 0 === a) && (s = e > i ? .5 : -.5); + var l = a * (n - t) + t; + return l === r ? 1 / 0 : l > r ? s : 0 + } + + function Vi(t, e) { + return Math.abs(t - e) < dx + } + + function Gi() { + var t = yx[0]; + yx[0] = yx[1], yx[1] = t + } + + function Wi(t, e, n, i, r, o, a, s, l, u) { + if (u > e && u > i && u > o && u > s || e > u && i > u && o > u && s > u) return 0; + var h = yi(e, i, o, s, u, gx); + if (0 === h) return 0; + for (var c = 0, p = -1, f = void 0, d = void 0, g = 0; h > g; g++) { + var y = gx[g], v = 0 === y || 1 === y ? .5 : 1, m = di(t, n, r, a, y); + l > m || (0 > p && (p = vi(e, i, o, s, yx), yx[1] < yx[0] && p > 1 && Gi(), f = di(e, i, o, s, yx[0]), p > 1 && (d = di(e, i, o, s, yx[1]))), c += 2 === p ? y < yx[0] ? e > f ? v : -v : y < yx[1] ? f > d ? v : -v : d > s ? v : -v : y < yx[0] ? e > f ? v : -v : f > s ? v : -v) + } + return c + } + + function Xi(t, e, n, i, r, o, a, s) { + if (s > e && s > i && s > o || e > s && i > s && o > s) return 0; + var l = Si(e, i, o, s, gx); + if (0 === l) return 0; + var u = Ti(e, i, o); + if (u >= 0 && 1 >= u) { + for (var h = 0, c = wi(e, i, o, u), p = 0; l > p; p++) { + var f = 0 === gx[p] || 1 === gx[p] ? .5 : 1, d = wi(t, n, r, gx[p]); + a > d || (h += gx[p] < u ? e > c ? f : -f : c > o ? f : -f) + } + return h + } + var f = 0 === gx[0] || 1 === gx[0] ? .5 : 1, d = wi(t, n, r, gx[0]); + return a > d ? 0 : e > o ? f : -f + } + + function Yi(t, e, n, i, r, o, a, s) { + if (s -= e, s > n || -n > s) return 0; + var l = Math.sqrt(n * n - s * s); + gx[0] = -l, gx[1] = l; + var u = Math.abs(i - r); + if (1e-4 > u) return 0; + if (u >= fx - 1e-4) { + i = 0, r = fx; + var h = o ? 1 : -1; + return a >= gx[0] + t && a <= gx[1] + t ? h : 0 + } + if (i > r) { + var c = i; + i = r, r = c + } + 0 > i && (i += fx, r += fx); + for (var p = 0, f = 0; 2 > f; f++) { + var d = gx[f]; + if (d + t > a) { + var g = Math.atan2(s, d), h = o ? 1 : -1; + 0 > g && (g = fx + g), (g >= i && r >= g || g + fx >= i && r >= g + fx) && (g > Math.PI / 2 && g < 1.5 * Math.PI && (h = -h), p += h) + } + } + return p + } + + function Ui(t, e, n, i, r) { + for (var o, a, s = t.data, l = t.len(), u = 0, h = 0, c = 0, p = 0, f = 0, d = 0; l > d;) { + var g = s[d++], y = 1 === d; + switch (g === px.M && d > 1 && (n || (u += Hi(h, c, p, f, i, r))), y && (h = s[d], c = s[d + 1], p = h, f = c), g) { + case px.M: + p = s[d++], f = s[d++], h = p, c = f; + break; + case px.L: + if (n) { + if (Ei(h, c, s[d], s[d + 1], e, i, r)) return !0 + } else u += Hi(h, c, s[d], s[d + 1], i, r) || 0; + h = s[d++], c = s[d++]; + break; + case px.C: + if (n) { + if (zi(h, c, s[d++], s[d++], s[d++], s[d++], s[d], s[d + 1], e, i, r)) return !0 + } else u += Wi(h, c, s[d++], s[d++], s[d++], s[d++], s[d], s[d + 1], i, r) || 0; + h = s[d++], c = s[d++]; + break; + case px.Q: + if (n) { + if (Bi(h, c, s[d++], s[d++], s[d], s[d + 1], e, i, r)) return !0 + } else u += Xi(h, c, s[d++], s[d++], s[d], s[d + 1], i, r) || 0; + h = s[d++], c = s[d++]; + break; + case px.A: + var v = s[d++], m = s[d++], _ = s[d++], x = s[d++], w = s[d++], b = s[d++]; + d += 1; + var S = !!(1 - s[d++]); + o = Math.cos(w) * _ + v, a = Math.sin(w) * x + m, y ? (p = o, f = a) : u += Hi(h, c, o, a, i, r); + var T = (i - v) * x / _ + v; + if (n) { + if (Fi(v, m, x, w, w + b, S, e, T, r)) return !0 + } else u += Yi(v, m, x, w, w + b, S, T, r); + h = Math.cos(w + b) * _ + v, c = Math.sin(w + b) * x + m; + break; + case px.R: + p = h = s[d++], f = c = s[d++]; + var M = s[d++], C = s[d++]; + if (o = p + M, a = f + C, n) { + if (Ei(p, f, o, f, e, i, r) || Ei(o, f, o, a, e, i, r) || Ei(o, a, p, a, e, i, r) || Ei(p, a, p, f, e, i, r)) return !0 + } else u += Hi(o, f, o, a, i, r), u += Hi(p, a, p, f, i, r); + break; + case px.Z: + if (n) { + if (Ei(h, c, p, f, e, i, r)) return !0 + } else u += Hi(h, c, p, f, i, r); + h = p, c = f + } + } + return n || Vi(c, f) || (u += Hi(h, c, p, f, i, r) || 0), 0 !== u + } + + function qi(t, e, n) { + return Ui(t, 0, !1, e, n) + } + + function ji(t, e, n, i) { + return Ui(t, e, !0, n, i) + } + + function Zi(t, e) { + var n, i, r, o, a, s, l = t.data, u = t.len(), h = bx.M, c = bx.C, p = bx.L, f = bx.R, d = bx.A, g = bx.Q; + for (r = 0, o = 0; u > r;) { + switch (n = l[r++], o = r, i = 0, n) { + case h: + i = 1; + break; + case p: + i = 1; + break; + case c: + i = 3; + break; + case g: + i = 2; + break; + case d: + var y = e[4], v = e[5], m = Tx(e[0] * e[0] + e[1] * e[1]), _ = Tx(e[2] * e[2] + e[3] * e[3]), + x = Mx(-e[1] / _, e[0] / m); + l[r] *= m, l[r++] += y, l[r] *= _, l[r++] += v, l[r++] *= m, l[r++] *= _, l[r++] += x, l[r++] += x, r += 2, o = r; + break; + case f: + s[0] = l[r++], s[1] = l[r++], ge(s, s, e), l[o++] = s[0], l[o++] = s[1], s[0] += l[r++], s[1] += l[r++], ge(s, s, e), l[o++] = s[0], l[o++] = s[1] + } + for (a = 0; i > a; a++) { + var w = Sx[a]; + w[0] = l[r++], w[1] = l[r++], ge(w, w, e), l[o++] = w[0], l[o++] = w[1] + } + } + t.increaseVersion() + } + + function Ki(t) { + return Math.sqrt(t[0] * t[0] + t[1] * t[1]) + } + + function $i(t, e) { + return (t[0] * e[0] + t[1] * e[1]) / (Ki(t) * Ki(e)) + } + + function Ji(t, e) { + return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos($i(t, e)) + } + + function Qi(t, e, n, i, r, o, a, s, l, u, h) { + var c = l * (Dx / 180), p = Ax(c) * (t - n) / 2 + Ix(c) * (e - i) / 2, + f = -1 * Ix(c) * (t - n) / 2 + Ax(c) * (e - i) / 2, d = p * p / (a * a) + f * f / (s * s); + d > 1 && (a *= Cx(d), s *= Cx(d)); + var g = (r === o ? -1 : 1) * Cx((a * a * s * s - a * a * f * f - s * s * p * p) / (a * a * f * f + s * s * p * p)) || 0, + y = g * a * f / s, v = g * -s * p / a, m = (t + n) / 2 + Ax(c) * y - Ix(c) * v, + _ = (e + i) / 2 + Ix(c) * y + Ax(c) * v, x = Ji([1, 0], [(p - y) / a, (f - v) / s]), + w = [(p - y) / a, (f - v) / s], b = [(-1 * p - y) / a, (-1 * f - v) / s], S = Ji(w, b); + if ($i(w, b) <= -1 && (S = Dx), $i(w, b) >= 1 && (S = 0), 0 > S) { + var T = Math.round(S / Dx * 1e6) / 1e6; + S = 2 * Dx + T % 2 * Dx + } + h.addData(u, m, _, a, s, x, S, c, o) + } + + function tr(t) { + if (!t) return new ux; + for (var e, n = 0, i = 0, r = n, o = i, a = new ux, s = ux.CMD, l = t.match(kx), u = 0; u < l.length; u++) { + for (var h = l[u], c = h.charAt(0), p = void 0, f = h.match(Lx) || [], d = f.length, g = 0; d > g; g++) f[g] = parseFloat(f[g]); + for (var y = 0; d > y;) { + var v = void 0, m = void 0, _ = void 0, x = void 0, w = void 0, b = void 0, S = void 0, T = n, M = i, + C = void 0, I = void 0; + switch (c) { + case"l": + n += f[y++], i += f[y++], p = s.L, a.addData(p, n, i); + break; + case"L": + n = f[y++], i = f[y++], p = s.L, a.addData(p, n, i); + break; + case"m": + n += f[y++], i += f[y++], p = s.M, a.addData(p, n, i), r = n, o = i, c = "l"; + break; + case"M": + n = f[y++], i = f[y++], p = s.M, a.addData(p, n, i), r = n, o = i, c = "L"; + break; + case"h": + n += f[y++], p = s.L, a.addData(p, n, i); + break; + case"H": + n = f[y++], p = s.L, a.addData(p, n, i); + break; + case"v": + i += f[y++], p = s.L, a.addData(p, n, i); + break; + case"V": + i = f[y++], p = s.L, a.addData(p, n, i); + break; + case"C": + p = s.C, a.addData(p, f[y++], f[y++], f[y++], f[y++], f[y++], f[y++]), n = f[y - 2], i = f[y - 1]; + break; + case"c": + p = s.C, a.addData(p, f[y++] + n, f[y++] + i, f[y++] + n, f[y++] + i, f[y++] + n, f[y++] + i), n += f[y - 2], i += f[y - 1]; + break; + case"S": + v = n, m = i, C = a.len(), I = a.data, e === s.C && (v += n - I[C - 4], m += i - I[C - 3]), p = s.C, T = f[y++], M = f[y++], n = f[y++], i = f[y++], a.addData(p, v, m, T, M, n, i); + break; + case"s": + v = n, m = i, C = a.len(), I = a.data, e === s.C && (v += n - I[C - 4], m += i - I[C - 3]), p = s.C, T = n + f[y++], M = i + f[y++], n += f[y++], i += f[y++], a.addData(p, v, m, T, M, n, i); + break; + case"Q": + T = f[y++], M = f[y++], n = f[y++], i = f[y++], p = s.Q, a.addData(p, T, M, n, i); + break; + case"q": + T = f[y++] + n, M = f[y++] + i, n += f[y++], i += f[y++], p = s.Q, a.addData(p, T, M, n, i); + break; + case"T": + v = n, m = i, C = a.len(), I = a.data, e === s.Q && (v += n - I[C - 4], m += i - I[C - 3]), n = f[y++], i = f[y++], p = s.Q, a.addData(p, v, m, n, i); + break; + case"t": + v = n, m = i, C = a.len(), I = a.data, e === s.Q && (v += n - I[C - 4], m += i - I[C - 3]), n += f[y++], i += f[y++], p = s.Q, a.addData(p, v, m, n, i); + break; + case"A": + _ = f[y++], x = f[y++], w = f[y++], b = f[y++], S = f[y++], T = n, M = i, n = f[y++], i = f[y++], p = s.A, Qi(T, M, n, i, b, S, _, x, w, p, a); + break; + case"a": + _ = f[y++], x = f[y++], w = f[y++], b = f[y++], S = f[y++], T = n, M = i, n += f[y++], i += f[y++], p = s.A, Qi(T, M, n, i, b, S, _, x, w, p, a) + } + } + ("z" === c || "Z" === c) && (p = s.Z, a.addData(p), n = r, i = o), e = p + } + return a.toStatic(), a + } + + function er(t) { + return null != t.setData + } + + function nr(t, e) { + var n = tr(t), i = h({}, e); + return i.buildPath = function (t) { + if (er(t)) { + t.setData(n.data); + var e = t.getContext(); + e && t.rebuildPath(e, 1) + } else { + var e = t; + n.rebuildPath(e, 1) + } + }, i.applyTransform = function (t) { + Zi(n, t), this.dirtyShape() + }, i + } + + function ir(t, e) { + return new Px(nr(t, e)) + } + + function rr(t, n) { + var i = nr(t, n), r = function (t) { + function n(e) { + var n = t.call(this, e) || this; + return n.applyTransform = i.applyTransform, n.buildPath = i.buildPath, n + } + + return e(n, t), n + }(Px); + return r + } + + function or(t, e) { + for (var n = [], i = t.length, r = 0; i > r; r++) { + var o = t[r]; + o.path || o.createPathProxy(), o.shapeChanged() && o.buildPath(o.path, o.shape, !0), n.push(o.path) + } + var a = new xx(e); + return a.createPathProxy(), a.buildPath = function (t) { + if (er(t)) { + t.appendPath(n); + var e = t.getContext(); + e && t.rebuildPath(e, 1) + } + }, a + } + + function ar(t) { + return !!(t && "string" != typeof t && t.width && t.height) + } + + function sr(t, e) { + var n, i, r, o, a = e.x, s = e.y, l = e.width, u = e.height, h = e.r; + 0 > l && (a += l, l = -l), 0 > u && (s += u, u = -u), "number" == typeof h ? n = i = r = o = h : h instanceof Array ? 1 === h.length ? n = i = r = o = h[0] : 2 === h.length ? (n = r = h[0], i = o = h[1]) : 3 === h.length ? (n = h[0], i = o = h[1], r = h[2]) : (n = h[0], i = h[1], r = h[2], o = h[3]) : n = i = r = o = 0; + var c; + n + i > l && (c = n + i, n *= l / c, i *= l / c), r + o > l && (c = r + o, r *= l / c, o *= l / c), i + r > u && (c = i + r, i *= u / c, r *= u / c), n + o > u && (c = n + o, n *= u / c, o *= u / c), t.moveTo(a + n, s), t.lineTo(a + l - i, s), 0 !== i && t.arc(a + l - i, s + i, i, -Math.PI / 2, 0), t.lineTo(a + l, s + u - r), 0 !== r && t.arc(a + l - r, s + u - r, r, 0, Math.PI / 2), t.lineTo(a + o, s + u), 0 !== o && t.arc(a + o, s + u - o, o, Math.PI / 2, Math.PI), t.lineTo(a, s + n), 0 !== n && t.arc(a + n, s + n, n, Math.PI, 1.5 * Math.PI) + } + + function lr(t, e, n) { + if (e) { + var i = e.x1, r = e.x2, o = e.y1, a = e.y2; + t.x1 = i, t.x2 = r, t.y1 = o, t.y2 = a; + var s = n && n.lineWidth; + return s ? (Fx(2 * i) === Fx(2 * r) && (t.x1 = t.x2 = hr(i, s, !0)), Fx(2 * o) === Fx(2 * a) && (t.y1 = t.y2 = hr(o, s, !0)), t) : t + } + } + + function ur(t, e, n) { + if (e) { + var i = e.x, r = e.y, o = e.width, a = e.height; + t.x = i, t.y = r, t.width = o, t.height = a; + var s = n && n.lineWidth; + return s ? (t.x = hr(i, s, !0), t.y = hr(r, s, !0), t.width = Math.max(hr(i + o, s, !1) - t.x, 0 === o ? 0 : 1), t.height = Math.max(hr(r + a, s, !1) - t.y, 0 === a ? 0 : 1), t) : t + } + } + + function hr(t, e, n) { + if (!e) return t; + var i = Fx(2 * t); + return (i + Fx(e)) % 2 === 0 ? i / 2 : (i + (n ? 1 : -1)) / 2 + } + + function cr(t, e, n, i, r, o, a) { + var s = .5 * (n - t), l = .5 * (i - e); + return (2 * (e - n) + s + l) * a + (-3 * (e - n) - 2 * s - l) * o + s * r + e + } + + function pr(t, e) { + for (var n = t.length, i = [], r = 0, o = 1; n > o; o++) r += ce(t[o - 1], t[o]); + var a = r / 2; + a = n > a ? n : a; + for (var o = 0; a > o; o++) { + var s = o / (a - 1) * (e ? n : n - 1), l = Math.floor(s), u = s - l, h = void 0, c = t[l % n], p = void 0, + f = void 0; + e ? (h = t[(l - 1 + n) % n], p = t[(l + 1) % n], f = t[(l + 2) % n]) : (h = t[0 === l ? l : l - 1], p = t[l > n - 2 ? n - 1 : l + 1], f = t[l > n - 3 ? n - 1 : l + 2]); + var d = u * u, g = u * d; + i.push([cr(h[0], c[0], p[0], f[0], u, d, g), cr(h[1], c[1], p[1], f[1], u, d, g)]) + } + return i + } + + function fr(t, e, n, i) { + var r, o, a, s, l = [], u = [], h = [], c = []; + if (i) { + a = [1 / 0, 1 / 0], s = [-1 / 0, -1 / 0]; + for (var p = 0, f = t.length; f > p; p++) ye(a, a, t[p]), ve(s, s, t[p]); + ye(a, a, i[0]), ve(s, s, i[1]) + } + for (var p = 0, f = t.length; f > p; p++) { + var d = t[p]; + if (n) r = t[p ? p - 1 : f - 1], o = t[(p + 1) % f]; else { + if (0 === p || p === f - 1) { + l.push(Q(t[p])); + continue + } + r = t[p - 1], o = t[p + 1] + } + ie(u, o, r), ue(u, u, e); + var g = ce(d, r), y = ce(d, o), v = g + y; + 0 !== v && (g /= v, y /= v), ue(h, u, -g), ue(c, u, y); + var m = ee([], d, h), _ = ee([], d, c); + i && (ve(m, m, a), ye(m, m, s), ve(_, _, a), ye(_, _, s)), l.push(m), l.push(_) + } + return n && l.push(l.shift()), l + } + + function dr(t, e, n) { + var i = e.smooth, r = e.points; + if (r && r.length >= 2) { + if (i && "spline" !== i) { + var o = fr(r, i, n, e.smoothConstraint); + t.moveTo(r[0][0], r[0][1]); + for (var a = r.length, s = 0; (n ? a : a - 1) > s; s++) { + var l = o[2 * s], u = o[2 * s + 1], h = r[(s + 1) % a]; + t.bezierCurveTo(l[0], l[1], u[0], u[1], h[0], h[1]) + } + } else { + "spline" === i && (r = pr(r, n)), t.moveTo(r[0][0], r[0][1]); + for (var s = 1, c = r.length; c > s; s++) t.lineTo(r[s][0], r[s][1]) + } + n && t.closePath() + } + } + + function gr(t) { + if (C(t)) { + var e = new DOMParser; + t = e.parseFromString(t, "text/xml") + } + var n = t; + for (9 === n.nodeType && (n = n.firstChild); "svg" !== n.nodeName.toLowerCase() || 1 !== n.nodeType;) n = n.nextSibling; + return n + } + + function yr(t, e) { + for (var n = t.firstChild; n;) { + if (1 === n.nodeType) { + var i = n.getAttribute("offset"), r = void 0; + r = i.indexOf("%") > 0 ? parseInt(i, 10) / 100 : i ? parseFloat(i) : 0; + var o = n.getAttribute("stop-color") || "#000000"; + e.colorStops.push({offset: r, color: o}) + } + n = n.nextSibling + } + } + + function vr(t, e) { + t && t.__inheritedStyle && (e.__inheritedStyle || (e.__inheritedStyle = {}), c(e.__inheritedStyle, t.__inheritedStyle)) + } + + function mr(t) { + for (var e = W(t).split(iw), n = [], i = 0; i < e.length; i += 2) { + var r = parseFloat(e[i]), o = parseFloat(e[i + 1]); + n.push([r, o]) + } + return n + } + + function _r(t, e, n, i) { + var r = e, o = r.__inheritedStyle || {}; + if (1 === t.nodeType && (wr(t, e), h(o, br(t)), !i)) for (var a in aw) if (aw.hasOwnProperty(a)) { + var s = t.getAttribute(a); + null != s && (o[aw[a]] = s) + } + r.style = r.style || {}, null != o.fill && (r.style.fill = xr(o.fill, n)), null != o.stroke && (r.style.stroke = xr(o.stroke, n)), y(["lineWidth", "opacity", "fillOpacity", "strokeOpacity", "miterLimit", "fontSize"], function (t) { + null != o[t] && (r.style[t] = parseFloat(o[t])) + }), o.textBaseline && "auto" !== o.textBaseline || (o.textBaseline = "alphabetic"), "alphabetic" === o.textBaseline && (o.textBaseline = "bottom"), "start" === o.textAlign && (o.textAlign = "left"), "end" === o.textAlign && (o.textAlign = "right"), y(["lineDashOffset", "lineCap", "lineJoin", "fontWeight", "fontFamily", "fontStyle", "textAlign", "textBaseline"], function (t) { + null != o[t] && (r.style[t] = o[t]) + }), o.lineDash && (r.style.lineDash = v(W(o.lineDash).split(iw), function (t) { + return parseFloat(t) + })), r.__inheritedStyle = o + } + + function xr(t, e) { + var n = e && t && t.match(sw); + if (n) { + var i = W(n[1]), r = e[i]; + return r + } + return t + } + + function wr(t, e) { + var n = t.getAttribute("transform"); + if (n) { + n = n.replace(/,/g, " "); + var i = [], r = null; + n.replace(lw, function (t, e, n) { + return i.push(e, n), "" + }); + for (var o = i.length - 1; o > 0; o -= 2) { + var a = i[o], s = i[o - 1], l = void 0; + switch (r = r || Fe(), s) { + case"translate": + l = W(a).split(iw), We(r, r, [parseFloat(l[0]), parseFloat(l[1] || "0")]); + break; + case"scale": + l = W(a).split(iw), Ye(r, r, [parseFloat(l[0]), parseFloat(l[1] || l[0])]); + break; + case"rotate": + l = W(a).split(iw), Xe(r, r, parseFloat(l[0])); + break; + case"skew": + l = W(a).split(iw), console.warn("Skew transform is not supported yet"); + break; + case"matrix": + l = W(a).split(iw), r[0] = parseFloat(l[0]), r[1] = parseFloat(l[1]), r[2] = parseFloat(l[2]), r[3] = parseFloat(l[3]), r[4] = parseFloat(l[4]), r[5] = parseFloat(l[5]) + } + } + e.setLocalTransform(r) + } + } + + function br(t) { + var e = t.getAttribute("style"), n = {}; + if (!e) return n; + var i = {}; + uw.lastIndex = 0; + for (var r; null != (r = uw.exec(e));) i[r[1]] = r[2]; + for (var o in aw) aw.hasOwnProperty(o) && null != i[o] && (n[aw[o]] = i[o]); + return n + } + + function Sr(t, e, n) { + var i = e / t.width, r = n / t.height, o = Math.min(i, r); + return {scale: o, x: -(t.x + t.width / 2) * o + e / 2, y: -(t.y + t.height / 2) * o + n / 2} + } + + function Tr(t, e) { + var n = new rw; + return n.parse(t, e) + } + + function Mr(t, e, n, i, r, o, a, s) { + var l = n - t, u = i - e, h = a - r, c = s - o, p = c * l - h * u; + return xw > p * p ? void 0 : (p = (h * (e - o) - c * (t - r)) / p, [t + p * l, e + p * u]) + } + + function Cr(t, e, n, i, r, o, a) { + var s = t - n, l = e - i, u = (a ? o : -o) / vw(s * s + l * l), h = u * l, c = -u * s, p = t + h, f = e + c, + d = n + h, g = i + c, y = (p + d) / 2, v = (f + g) / 2, m = d - p, _ = g - f, x = m * m + _ * _, w = r - o, + b = p * g - d * f, S = (0 > _ ? -1 : 1) * vw(mw(0, w * w * x - b * b)), T = (b * _ - m * S) / x, + M = (-b * m - _ * S) / x, C = (b * _ + m * S) / x, I = (-b * m + _ * S) / x, A = T - y, D = M - v, + k = C - y, L = I - v; + return A * A + D * D > k * k + L * L && (T = C, M = I), { + cx: T, + cy: M, + x01: -h, + y01: -c, + x11: T * (r / w - 1), + y11: M * (r / w - 1) + } + } + + function Ir(t, e) { + var n = mw(e.r, 0), i = mw(e.r0 || 0, 0), r = n > 0, o = i > 0; + if (r || o) { + if (r || (n = i, i = 0), i > n) { + var a = n; + n = i, i = a + } + var s = !!e.clockwise, l = e.startAngle, u = e.endAngle, h = [l, u]; + Ri(h, !s); + var c = yw(h[0] - h[1]), p = e.cx, f = e.cy, d = e.cornerRadius || 0, g = e.innerCornerRadius || 0; + if (n > xw) if (c > cw - xw) t.moveTo(p + n * fw(l), f + n * pw(l)), t.arc(p, f, n, l, u, !s), i > xw && (t.moveTo(p + i * fw(u), f + i * pw(u)), t.arc(p, f, i, u, l, s)); else { + var y = yw(n - i) / 2, v = _w(y, d), m = _w(y, g), _ = m, x = v, w = n * fw(l), b = n * pw(l), + S = i * fw(u), T = i * pw(u), M = void 0, C = void 0, I = void 0, A = void 0; + if ((v > xw || m > xw) && (M = n * fw(u), C = n * pw(u), I = i * fw(l), A = i * pw(l), hw > c)) { + var D = Mr(w, b, I, A, M, C, S, T); + if (D) { + var k = w - D[0], L = b - D[1], P = M - D[0], O = C - D[1], + R = 1 / pw(dw((k * P + L * O) / (vw(k * k + L * L) * vw(P * P + O * O))) / 2), + E = vw(D[0] * D[0] + D[1] * D[1]); + _ = _w(m, (i - E) / (R - 1)), x = _w(v, (n - E) / (R + 1)) + } + } + if (c > xw) if (x > xw) { + var z = Cr(I, A, w, b, n, x, s), B = Cr(M, C, S, T, n, x, s); + t.moveTo(p + z.cx + z.x01, f + z.cy + z.y01), v > x ? t.arc(p + z.cx, f + z.cy, x, gw(z.y01, z.x01), gw(B.y01, B.x01), !s) : (t.arc(p + z.cx, f + z.cy, x, gw(z.y01, z.x01), gw(z.y11, z.x11), !s), t.arc(p, f, n, gw(z.cy + z.y11, z.cx + z.x11), gw(B.cy + B.y11, B.cx + B.x11), !s), t.arc(p + B.cx, f + B.cy, x, gw(B.y11, B.x11), gw(B.y01, B.x01), !s)) + } else t.moveTo(p + w, f + b), t.arc(p, f, n, l, u, !s); else t.moveTo(p + w, f + b); + if (i > xw && c > xw) if (_ > xw) { + var z = Cr(S, T, M, C, i, -_, s), B = Cr(w, b, I, A, i, -_, s); + t.lineTo(p + z.cx + z.x01, f + z.cy + z.y01), m > _ ? t.arc(p + z.cx, f + z.cy, _, gw(z.y01, z.x01), gw(B.y01, B.x01), !s) : (t.arc(p + z.cx, f + z.cy, _, gw(z.y01, z.x01), gw(z.y11, z.x11), !s), t.arc(p, f, i, gw(z.cy + z.y11, z.cx + z.x11), gw(B.cy + B.y11, B.cx + B.x11), s), t.arc(p + B.cx, f + B.cy, _, gw(B.y11, B.x11), gw(B.y01, B.x01), !s)) + } else t.lineTo(p + S, f + T), t.arc(p, f, i, u, l, s); else t.lineTo(p + S, f + T) + } else t.moveTo(p, f); + t.closePath() + } + } + + function Ar(t) { + if ("string" == typeof t) { + var e = Cw.get(t); + return e && e.image + } + return t + } + + function Dr(t, e, n, i, r) { + if (t) { + if ("string" == typeof t) { + if (e && e.__zrImageSrc === t || !n) return e; + var o = Cw.get(t), a = {hostEl: n, cb: i, cbPayload: r}; + return o ? (e = o.image, !Lr(e) && o.pending.push(a)) : (e = new Image, e.onload = e.onerror = kr, Cw.put(t, e.__cachedImgObj = { + image: e, + pending: [a] + }), e.src = e.__zrImageSrc = t), e + } + return t + } + return e + } + + function kr() { + var t = this.__cachedImgObj; + this.onload = this.onerror = this.__cachedImgObj = null; + for (var e = 0; e < t.pending.length; e++) { + var n = t.pending[e], i = n.cb; + i && i(this, n.cbPayload), n.hostEl.dirty() + } + t.pending.length = 0 + } + + function Lr(t) { + return t && t.width && t.height + } + + function Pr(t, e, n, i, r) { + if (!e) return ""; + var o = (t + "").split("\n"); + r = Or(e, n, i, r); + for (var a = 0, s = o.length; s > a; a++) o[a] = Rr(o[a], r); + return o.join("\n") + } + + function Or(t, e, n, i) { + i = i || {}; + var r = h({}, i); + r.font = e, n = N(n, "..."), r.maxIterations = N(i.maxIterations, 2); + var o = r.minChar = N(i.minChar, 0); + r.cnCharWidth = On("国", e); + var a = r.ascCharWidth = On("a", e); + r.placeholder = N(i.placeholder, ""); + for (var s = t = Math.max(0, t - 1), l = 0; o > l && s >= a; l++) s -= a; + var u = On(n, e); + return u > s && (n = "", u = 0), s = t - u, r.ellipsis = n, r.ellipsisWidth = u, r.contentWidth = s, r.containerWidth = t, r + } + + function Rr(t, e) { + var n = e.containerWidth, i = e.font, r = e.contentWidth; + if (!n) return ""; + var o = On(t, i); + if (n >= o) return t; + for (var a = 0; ; a++) { + if (r >= o || a >= e.maxIterations) { + t += e.ellipsis; + break + } + var s = 0 === a ? Er(t, r, e.ascCharWidth, e.cnCharWidth) : o > 0 ? Math.floor(t.length * r / o) : 0; + t = t.substr(0, s), o = On(t, i) + } + return "" === t && (t = e.placeholder), t + } + + function Er(t, e, n, i) { + for (var r = 0, o = 0, a = t.length; a > o && e > r; o++) { + var s = t.charCodeAt(o); + r += s >= 0 && 127 >= s ? n : i + } + return o + } + + function zr(t, e) { + null != t && (t += ""); + var n, i = e.overflow, r = e.padding, o = e.font, a = "truncate" === i, s = Nn(o), l = N(e.lineHeight, s), + u = "truncate" === e.lineOverflow, h = e.width; + n = null != h && "break" === i || "breakAll" === i ? t ? Vr(t, e.font, h, "breakAll" === i, 0).lines : [] : t ? t.split("\n") : []; + var c = n.length * l, p = N(e.height, c); + if (c > p && u) { + var f = Math.floor(p / l); + n = n.slice(0, f) + } + var d = p, g = h; + if (r && (d += r[0] + r[2], null != g && (g += r[1] + r[3])), t && a && null != g) for (var y = Or(h, o, e.ellipsis, { + minChar: e.truncateMinChar, + placeholder: e.placeholder + }), v = 0; v < n.length; v++) n[v] = Rr(n[v], y); + if (null == h) { + for (var m = 0, v = 0; v < n.length; v++) m = Math.max(On(n[v], o), m); + h = m + } + return {lines: n, height: p, outerHeight: d, lineHeight: l, calculatedLineHeight: s, contentHeight: c, width: h} + } + + function Br(t, e) { + function n(t, e, n) { + t.width = e, t.lineHeight = n, p += n, f = Math.max(f, e) + } + + var i = new kw; + if (null != t && (t += ""), !t) return i; + for (var r, o = e.width, a = e.height, s = e.overflow, l = "break" !== s && "breakAll" !== s || null == o ? null : { + width: o, + accumWidth: 0, + breakAll: "breakAll" === s + }, u = Iw.lastIndex = 0; null != (r = Iw.exec(t));) { + var h = r.index; + h > u && Nr(i, t.substring(u, h), e, l), Nr(i, r[2], e, l, r[1]), u = Iw.lastIndex + } + u < t.length && Nr(i, t.substring(u, t.length), e, l); + var c = [], p = 0, f = 0, d = e.padding, g = "truncate" === s, y = "truncate" === e.lineOverflow; + t:for (var v = 0; v < i.lines.length; v++) { + for (var m = i.lines[v], _ = 0, x = 0, w = 0; w < m.tokens.length; w++) { + var b = m.tokens[w], S = b.styleName && e.rich[b.styleName] || {}, T = b.textPadding = S.padding, + M = T ? T[1] + T[3] : 0, C = b.font = S.font || e.font; + b.contentHeight = Nn(C); + var I = N(S.height, b.contentHeight); + if (b.innerHeight = I, T && (I += T[0] + T[2]), b.height = I, b.lineHeight = F(S.lineHeight, e.lineHeight, I), b.align = S && S.align || e.align, b.verticalAlign = S && S.verticalAlign || "middle", y && null != a && p + b.lineHeight > a) { + w > 0 ? (m.tokens = m.tokens.slice(0, w), n(m, x, _), i.lines = i.lines.slice(0, v + 1)) : i.lines = i.lines.slice(0, v); + break t + } + var A = S.width, D = null == A || "auto" === A; + if ("string" == typeof A && "%" === A.charAt(A.length - 1)) b.percentWidth = A, c.push(b), b.contentWidth = On(b.text, C); else { + if (D) { + var k = S.backgroundColor, L = k && k.image; + L && (L = Ar(L), Lr(L) && (b.width = Math.max(b.width, L.width * I / L.height))) + } + var P = g && null != o ? o - x : null; + null != P && P < b.width ? !D || M > P ? (b.text = "", b.width = b.contentWidth = 0) : (b.text = Pr(b.text, P - M, C, e.ellipsis, {minChar: e.truncateMinChar}), b.width = b.contentWidth = On(b.text, C)) : b.contentWidth = On(b.text, C) + } + b.width += M, x += b.width, S && (_ = Math.max(_, b.lineHeight)) + } + n(m, x, _) + } + i.outerWidth = i.width = N(o, f), i.outerHeight = i.height = N(a, p), i.contentHeight = p, i.contentWidth = f, d && (i.outerWidth += d[1] + d[3], i.outerHeight += d[0] + d[2]); + for (var v = 0; v < c.length; v++) { + var b = c[v], O = b.percentWidth; + b.width = parseInt(O, 10) / 100 * i.width + } + return i + } + + function Nr(t, e, n, i, r) { + var o, a, s = "" === e, l = r && n.rich[r] || {}, u = t.lines, h = l.font || n.font, c = !1; + if (i) { + var p = l.padding, f = p ? p[1] + p[3] : 0; + if (null != l.width && "auto" !== l.width) { + var d = Gr(l.width, i.width) + f; + u.length > 0 && d + i.accumWidth > i.width && (o = e.split("\n"), c = !0), i.accumWidth = d + } else { + var g = Vr(e, h, i.width, i.breakAll, i.accumWidth); + i.accumWidth = g.accumWidth + f, a = g.linesWidths, o = g.lines + } + } else o = e.split("\n"); + for (var y = 0; y < o.length; y++) { + var v = o[y], m = new Aw; + if (m.styleName = r, m.text = v, m.isLineHolder = !v && !s, m.width = "number" == typeof l.width ? l.width : a ? a[y] : On(v, h), y || c) u.push(new Dw([m])); else { + var _ = (u[u.length - 1] || (u[0] = new Dw)).tokens, x = _.length; + 1 === x && _[0].isLineHolder ? _[0] = m : (v || !x || s) && _.push(m) + } + } + } + + function Fr(t) { + var e = t.charCodeAt(0); + return e >= 33 && 255 >= e + } + + function Hr(t) { + return Fr(t) ? Lw[t] ? !0 : !1 : !0 + } + + function Vr(t, e, n, i, r) { + for (var o = [], a = [], s = "", l = "", u = 0, h = 0, c = 0; c < t.length; c++) { + var p = t.charAt(c); + if ("\n" !== p) { + var f = On(p, e), d = i ? !1 : !Hr(p); + (o.length ? h + f > n : r + h + f > n) ? h ? (s || l) && (d ? (s || (s = l, l = "", u = 0, h = u), o.push(s), a.push(h - u), l += p, u += f, s = "", h = u) : (l && (s += l, h += u, l = "", u = 0), o.push(s), a.push(h), s = p, h = f)) : d ? (o.push(l), a.push(u), l = p, u = f) : (o.push(p), a.push(f)) : (h += f, d ? (l += p, u += f) : (l && (s += l, l = "", u = 0), s += p)) + } else l && (s += l, h += u), o.push(s), a.push(h), s = "", l = "", u = 0, h = 0 + } + return o.length || s || (s = t, l = "", u = 0), l && (s += l), s && (o.push(s), a.push(h)), 1 === o.length && (h += r), { + accumWidth: h, + lines: o, + linesWidths: a + } + } + + function Gr(t, e) { + return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t + } + + function Wr(t) { + return Xr(t), y(t.rich, Xr), t + } + + function Xr(t) { + if (t) { + t.font = Ew.makeFont(t); + var e = t.align; + "middle" === e && (e = "center"), t.align = null == e || zw[e] ? e : "left"; + var n = t.verticalAlign; + "center" === n && (n = "middle"), t.verticalAlign = null == n || Bw[n] ? n : "top"; + var i = t.padding; + i && (t.padding = V(t.padding)) + } + } + + function Yr(t, e) { + return null == t || 0 >= e || "transparent" === t || "none" === t ? null : t.image || t.colorStops ? "#000" : t + } + + function Ur(t) { + return null == t || "none" === t ? null : t.image || t.colorStops ? "#000" : t + } + + function qr(t, e, n) { + return "right" === e ? t - n[1] : "center" === e ? t + n[3] / 2 - n[1] / 2 : t + n[3] + } + + function jr(t) { + var e = t.text; + return null != e && (e += ""), e + } + + function Zr(t) { + return !!(t.backgroundColor || t.borderWidth && t.borderColor) + } + + function Kr(t, e, n) { + var i = t.cpx2, r = t.cpy2; + return null === i || null === r ? [(n ? gi : di)(t.x1, t.cpx1, t.cpx2, t.x2, e), (n ? gi : di)(t.y1, t.cpy1, t.cpy2, t.y2, e)] : [(n ? bi : wi)(t.x1, t.cpx1, t.x2, e), (n ? bi : wi)(t.y1, t.cpy1, t.y2, e)] + } + + function $r(t) { + delete bb[t] + } + + function Jr(t) { + if (!t) return !1; + if ("string" == typeof t) return yn(t, 1) < qm; + if (t.colorStops) { + for (var e = t.colorStops, n = 0, i = e.length, r = 0; i > r; r++) n += yn(e[r].color, 1); + return n /= i, qm > n + } + return !1 + } + + function Qr(t, e) { + var n = new Sb(o(), t, e); + return bb[n.id] = n, n + } + + function to(t) { + t.dispose() + } + + function eo() { + for (var t in bb) bb.hasOwnProperty(t) && bb[t].dispose(); + bb = {} + } + + function no(t) { + return bb[t] + } + + function io(t, e) { + wb[t] = e + } + + function ro(t) { + return t.replace(/^\s+|\s+$/g, "") + } + + function oo(t, e, n, i) { + var r = e[1] - e[0], o = n[1] - n[0]; + if (0 === r) return 0 === o ? n[0] : (n[0] + n[1]) / 2; + if (i) if (r > 0) { + if (t <= e[0]) return n[0]; + if (t >= e[1]) return n[1] + } else { + if (t >= e[0]) return n[0]; + if (t <= e[1]) return n[1] + } else { + if (t === e[0]) return n[0]; + if (t === e[1]) return n[1] + } + return (t - e[0]) / r * o + n[0] + } + + function ao(t, e) { + switch (t) { + case"center": + case"middle": + t = "50%"; + break; + case"left": + case"top": + t = "0%"; + break; + case"right": + case"bottom": + t = "100%" + } + return "string" == typeof t ? ro(t).match(/%$/) ? parseFloat(t) / 100 * e : parseFloat(t) : null == t ? 0 / 0 : +t + } + + function so(t, e, n) { + return null == e && (e = 10), e = Math.min(Math.max(0, e), 20), t = (+t).toFixed(e), n ? t : +t + } + + function lo(t) { + return t.sort(function (t, e) { + return t - e + }), t + } + + function uo(t) { + if (t = +t, isNaN(t)) return 0; + for (var e = 1, n = 0; Math.round(t * e) / e !== t;) e *= 10, n++; + return n + } + + function ho(t) { + var e = t.toString(), n = e.indexOf("e"); + if (n > 0) { + var i = +e.slice(n + 1); + return 0 > i ? -i : 0 + } + var r = e.indexOf("."); + return 0 > r ? 0 : e.length - 1 - r + } + + function co(t, e) { + var n = Math.log, i = Math.LN10, r = Math.floor(n(t[1] - t[0]) / i), + o = Math.round(n(Math.abs(e[1] - e[0])) / i), a = Math.min(Math.max(-r + o, 0), 20); + return isFinite(a) ? a : 20 + } + + function po(t, e, n) { + if (!t[e]) return 0; + var i = m(t, function (t, e) { + return t + (isNaN(e) ? 0 : e) + }, 0); + if (0 === i) return 0; + for (var r = Math.pow(10, n), o = v(t, function (t) { + return (isNaN(t) ? 0 : t) / i * r * 100 + }), a = 100 * r, s = v(o, function (t) { + return Math.floor(t) + }), l = m(s, function (t, e) { + return t + e + }, 0), u = v(o, function (t, e) { + return t - s[e] + }); a > l;) { + for (var h = Number.NEGATIVE_INFINITY, c = null, p = 0, f = u.length; f > p; ++p) u[p] > h && (h = u[p], c = p); + ++s[c], u[c] = 0, ++l + } + return s[e] / r + } + + function fo(t) { + var e = 2 * Math.PI; + return (t % e + e) % e + } + + function go(t) { + return t > -Cb && Cb > t + } + + function yo(t) { + if (t instanceof Date) return t; + if ("string" == typeof t) { + var e = Ab.exec(t); + if (!e) return new Date(0 / 0); + if (e[8]) { + var n = +e[4] || 0; + return "Z" !== e[8].toUpperCase() && (n -= +e[8].slice(0, 3)), new Date(Date.UTC(+e[1], +(e[2] || 1) - 1, +e[3] || 1, n, +(e[5] || 0), +e[6] || 0, +e[7] || 0)) + } + return new Date(+e[1], +(e[2] || 1) - 1, +e[3] || 1, +e[4] || 0, +(e[5] || 0), +e[6] || 0, +e[7] || 0) + } + return new Date(null == t ? 0 / 0 : Math.round(t)) + } + + function vo(t) { + return Math.pow(10, mo(t)) + } + + function mo(t) { + if (0 === t) return 0; + var e = Math.floor(Math.log(t) / Math.LN10); + return t / Math.pow(10, e) >= 10 && e++, e + } + + function _o(t, e) { + var n, i = mo(t), r = Math.pow(10, i), o = t / r; + return n = e ? 1.5 > o ? 1 : 2.5 > o ? 2 : 4 > o ? 3 : 7 > o ? 5 : 10 : 1 > o ? 1 : 2 > o ? 2 : 3 > o ? 3 : 5 > o ? 5 : 10, t = n * r, i >= -20 ? +t.toFixed(0 > i ? -i : 0) : t + } + + function xo(t, e) { + var n = (t.length - 1) * e + 1, i = Math.floor(n), r = +t[i - 1], o = n - i; + return o ? r + o * (t[i] - r) : r + } + + function wo(t) { + function e(t, n, i) { + return t.interval[i] < n.interval[i] || t.interval[i] === n.interval[i] && (t.close[i] - n.close[i] === (i ? -1 : 1) || !i && e(t, n, 1)) + } + + t.sort(function (t, n) { + return e(t, n, 0) ? -1 : 1 + }); + for (var n = -1 / 0, i = 1, r = 0; r < t.length;) { + for (var o = t[r].interval, a = t[r].close, s = 0; 2 > s; s++) o[s] <= n && (o[s] = n, a[s] = s ? 1 : 1 - i), n = o[s], i = a[s]; + o[0] === o[1] && a[0] * a[1] !== 1 ? t.splice(r, 1) : r++ + } + return t + } + + function bo(t) { + var e = parseFloat(t); + return e == t && (0 !== e || "string" != typeof t || t.indexOf("x") <= 0) ? e : 0 / 0 + } + + function So(t) { + return !isNaN(bo(t)) + } + + function To() { + return Math.round(9 * Math.random()) + } + + function Mo(t, e) { + return 0 === e ? t : Mo(e, t % e) + } + + function Co(t, e) { + return null == t ? e : null == e ? t : t * e / Mo(t, e) + } + + function Io(t) { + throw new Error(t) + } + + function Ao(t) { + return t instanceof Array ? t : null == t ? [] : [t] + } + + function Do(t, e, n) { + if (t) { + t[e] = t[e] || {}, t.emphasis = t.emphasis || {}, t.emphasis[e] = t.emphasis[e] || {}; + for (var i = 0, r = n.length; r > i; i++) { + var o = n[i]; + !t.emphasis[e].hasOwnProperty(o) && t[e].hasOwnProperty(o) && (t.emphasis[e][o] = t[e][o]) + } + } + } + + function ko(t) { + return !D(t) || T(t) || t instanceof Date ? t : t.value + } + + function Lo(t) { + return D(t) && !(t instanceof Array) + } + + function Po(t, e, n) { + var i = "normalMerge" === n, r = "replaceMerge" === n, o = "replaceAll" === n; + t = t || [], e = (e || []).slice(); + var a = U(); + y(e, function (t, n) { + return D(t) ? void 0 : void (e[n] = null) + }); + var s = Oo(t, a, n); + return (i || r) && Ro(s, t, a, e), i && Eo(s, e), i || r ? zo(s, e, r) : o && Bo(s, e), No(s), s + } + + function Oo(t, e, n) { + var i = []; + if ("replaceAll" === n) return i; + for (var r = 0; r < t.length; r++) { + var o = t[r]; + o && null != o.id && e.set(o.id, r), i.push({ + existing: "replaceMerge" === n || Wo(o) ? null : o, + newOption: null, + keyInfo: null, + brandNew: null + }) + } + return i + } + + function Ro(t, e, n, i) { + y(i, function (r, o) { + if (r && null != r.id) { + var a = Ho(r.id), s = n.get(a); + if (null != s) { + var l = t[s]; + G(!l.newOption, 'Duplicated option on id "' + a + '".'), l.newOption = r, l.existing = e[s], i[o] = null + } + } + }) + } + + function Eo(t, e) { + y(e, function (n, i) { + if (n && null != n.name) for (var r = 0; r < t.length; r++) { + var o = t[r].existing; + if (!t[r].newOption && o && (null == o.id || null == n.id) && !Wo(n) && !Wo(o) && Fo("name", o, n)) return t[r].newOption = n, void (e[i] = null) + } + }) + } + + function zo(t, e, n) { + y(e, function (e) { + if (e) { + for (var i, r = 0; (i = t[r]) && (i.newOption || Wo(i.existing) || i.existing && null != e.id && !Fo("id", e, i.existing));) r++; + i ? (i.newOption = e, i.brandNew = n) : t.push({ + newOption: e, + brandNew: n, + existing: null, + keyInfo: null + }), r++ + } + }) + } + + function Bo(t, e) { + y(e, function (e) { + t.push({newOption: e, brandNew: !0, existing: null, keyInfo: null}) + }) + } + + function No(t) { + var e = U(); + y(t, function (t) { + var n = t.existing; + n && e.set(n.id, t) + }), y(t, function (t) { + var n = t.newOption; + G(!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 = {}) + }), y(t, function (t, n) { + var i = t.existing, r = t.newOption, o = t.keyInfo; + if (D(r)) { + if (o.name = null != r.name ? Ho(r.name) : i ? i.name : kb + n, i) o.id = Ho(i.id); else if (null != r.id) o.id = Ho(r.id); else { + var a = 0; + do o.id = "\x00" + o.name + "\x00" + a++; while (e.get(o.id)) + } + e.set(o.id, t) + } + }) + } + + function Fo(t, e, n) { + var i = Vo(e[t], null), r = Vo(n[t], null); + return null != i && null != r && i === r + } + + function Ho(t) { + return Vo(t, "") + } + + function Vo(t, e) { + if (null == t) return e; + var n = typeof t; + return "string" === n ? t : "number" === n || I(t) ? t + "" : e + } + + function Go(t) { + var e = t.name; + return !(!e || !e.indexOf(kb)) + } + + function Wo(t) { + return t && null != t.id && 0 === Ho(t.id).indexOf(Lb) + } + + function Xo(t, e, n) { + y(t, function (t) { + var i = t.newOption; + D(i) && (t.keyInfo.mainType = e, t.keyInfo.subType = Yo(e, i, t.existing, n)) + }) + } + + function Yo(t, e, n, i) { + var r = e.type ? e.type : n ? n.subType : i.determineSubType(t, e); + return r + } + + function Uo(t, e) { + return null != e.dataIndexInside ? e.dataIndexInside : null != e.dataIndex ? T(e.dataIndex) ? v(e.dataIndex, function (e) { + return t.indexOfRawIndex(e) + }) : t.indexOfRawIndex(e.dataIndex) : null != e.name ? T(e.name) ? v(e.name, function (e) { + return t.indexOfName(e) + }) : t.indexOfName(e.name) : void 0 + } + + function qo() { + var t = "__ec_inner_" + Ob++; + return function (e) { + return e[t] || (e[t] = {}) + } + } + + function jo(t, e, n) { + var i; + if (C(e)) { + var r = {}; + r[e + "Index"] = 0, i = r + } else i = e; + var o = U(), a = {}, s = !1; + y(i, function (t, e) { + if ("dataIndex" === e || "dataIndexInside" === e) return void (a[e] = t); + var i = e.match(/^(\w+)(Index|Id|Name)$/) || [], r = i[1], l = (i[2] || "").toLowerCase(); + if (r && l && !(n && n.includeMainTypes && p(n.includeMainTypes, r) < 0)) { + s = s || !!r; + var u = o.get(r) || o.set(r, {}); + u[l] = t + } + }); + var l = n ? n.defaultMainType : null; + return !s && l && o.set(l, {}), o.each(function (e, i) { + var r = Zo(t, i, e, { + useDefault: l === i, + enableAll: n && null != n.enableAll ? n.enableAll : !0, + enableNone: n && null != n.enableNone ? n.enableNone : !0 + }); + a[i + "Models"] = r.models, a[i + "Model"] = r.models[0] + }), a + } + + function Zo(t, e, n, i) { + i = i || Rb; + var r = n.index, o = n.id, a = n.name, s = {models: null, specified: null != r || null != o || null != a}; + if (!s.specified) { + var l = void 0; + return s.models = i.useDefault && (l = t.getComponent(e)) ? [l] : [], s + } + return "none" === r || r === !1 ? (G(i.enableNone, '`"none"` or `false` is not a valid value on index option.'), s.models = [], s) : ("all" === r && (G(i.enableAll, '`"all"` is not a valid value on index option.'), r = o = a = null), s.models = t.queryComponents({ + mainType: e, + index: r, + id: o, + name: a + }), s) + } + + function Ko(t, e, n) { + t.setAttribute ? t.setAttribute(e, n) : t[e] = n + } + + function $o(t, e) { + return t.getAttribute ? t.getAttribute(e) : t[e] + } + + function Jo(t) { + return "auto" === t ? wv.domSupported ? "html" : "richText" : t || "html" + } + + function Qo(t, e, n, i, r) { + var o = null == e || "auto" === e; + if (null == i) return i; + if ("number" == typeof i) { + var a = mn(n || 0, i, r); + return so(a, o ? Math.max(ho(n || 0), ho(i)) : e) + } + if ("string" == typeof i) return 1 > r ? n : i; + for (var s = [], l = n || [], u = i, h = Math.max(l.length, u.length), c = 0; h > c; ++c) { + var p = t.getDimensionInfo(c); + if ("ordinal" === p.type) s[c] = (1 > r ? l : u)[c]; else { + var f = l && l[c] ? l[c] : 0, d = u[c], a = null == l ? i[c] : mn(f, d, r); + s[c] = so(a, o ? Math.max(ho(f), ho(d)) : e) + } + } + return s + } + + function ta(t) { + var e = {main: "", sub: ""}; + if (t) { + var n = t.split(Eb); + e.main = n[0] || "", e.sub = n[1] || "" + } + return e + } + + function ea(t) { + G(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t), 'componentType "' + t + '" illegal') + } + + function na(t) { + return !(!t || !t[Bb]) + } + + function ia(t) { + t.$constructor = t, t.extend = function (t) { + function e() { + for (var r = [], o = 0; o < arguments.length; o++) r[o] = arguments[o]; + if (t.$constructor) t.$constructor.apply(this, arguments); else { + if (ra(i)) { + var a = j(e.prototype, new (i.bind.apply(i, n([void 0], r)))); + return a + } + i.apply(this, arguments) + } + } + + var i = this; + return e[Bb] = !0, h(e.prototype, t), e.extend = this.extend, e.superCall = sa, e.superApply = la, f(e, this), e.superClass = i, e + } + } + + function ra(t) { + return "function" == typeof t && /^class\s/.test(Function.prototype.toString.call(t)) + } + + function oa(t, e) { + t.extend = e.extend + } + + function aa(t) { + var e = ["__\x00is_clz", Nb++].join("_"); + t.prototype[e] = !0, t.isInstance = function (t) { + return !(!t || !t[e]) + } + } + + function sa(t, e) { + for (var n = [], i = 2; i < arguments.length; i++) n[i - 2] = arguments[i]; + return this.superClass.prototype[e].apply(t, n) + } + + function la(t, e, n) { + return this.superClass.prototype[e].apply(t, n) + } + + function ua(t, e) { + function n(t) { + var e = i[t.main]; + return e && e[zb] || (e = i[t.main] = {}, e[zb] = !0), e + } + + e = e || {}; + var i = {}; + if (t.registerClass = function (t) { + var e = t.type || t.prototype.type; + if (e) { + ea(e), t.prototype.type = e; + var r = ta(e); + if (r.sub) { + if (r.sub !== zb) { + var o = n(r); + o[r.sub] = t + } + } else i[r.main] = t + } + return t + }, t.getClass = function (t, e, n) { + var r = i[t]; + if (r && r[zb] && (r = e ? r[e] : null), n && !r) throw new Error(e ? "Component " + t + "." + (e || "") + " not exists. Load it first." : t + ".type should be specified."); + return r + }, t.getClassesByMainType = function (t) { + var e = ta(t), n = [], r = i[e.main]; + return r && r[zb] ? y(r, function (t, e) { + e !== zb && n.push(t) + }) : n.push(r), n + }, t.hasClass = function (t) { + var e = ta(t); + return !!i[e.main] + }, t.getAllClassMainTypes = function () { + var t = []; + return y(i, function (e, n) { + t.push(n) + }), t + }, t.hasSubTypes = function (t) { + var e = ta(t), n = i[e.main]; + return n && n[zb] + }, e.registerWhenExtend) { + var r = t.extend; + r && (t.extend = function (e) { + var n = r.call(this, e); + return t.registerClass(n) + }) + } + } + + function ha(t, e) { + for (var n = 0; n < t.length; n++) t[n][1] || (t[n][1] = t[n][0]); + return e = e || !1, function (n, i, r) { + for (var o = {}, a = 0; a < t.length; a++) { + var s = t[a][1]; + if (!(i && p(i, s) >= 0 || r && p(r, s) < 0)) { + var l = n.getShallow(s, e); + null != l && (o[t[a][0]] = l) + } + } + return o + } + } + + function ca(t) { + return null != t && "none" !== t + } + + function pa(t) { + if ("string" != typeof t) return t; + var e = rS.get(t); + return e || (e = un(t, -.1), rS.put(t, e)), e + } + + function fa(t, e, n) { + t.onHoverStateChange && (t.hoverState || 0) !== n && t.onHoverStateChange(e), t.hoverState = n + } + + function da(t) { + fa(t, "emphasis", jb) + } + + function ga(t) { + t.hoverState === jb && fa(t, "normal", Ub) + } + + function ya(t) { + fa(t, "blur", qb) + } + + function va(t) { + t.hoverState === qb && fa(t, "normal", Ub) + } + + function ma(t) { + t.selected = !0 + } + + function _a(t) { + t.selected = !1 + } + + function xa(t, e, n) { + e(t, n) + } + + function wa(t, e, n) { + xa(t, e, n), t.isGroup && t.traverse(function (t) { + xa(t, e, n) + }) + } + + function ba(t, e) { + switch (e) { + case"emphasis": + t.hoverState = jb; + break; + case"normal": + t.hoverState = Ub; + break; + case"blur": + t.hoverState = qb; + break; + case"select": + t.selected = !0 + } + } + + function Sa(t, e, n, i) { + for (var r = t.style, o = {}, a = 0; a < e.length; a++) { + var s = e[a], l = r[s]; + o[s] = null == l ? i && i[s] : l + } + for (var a = 0; a < t.animators.length; a++) { + var u = t.animators[a]; + u.__fromStateTransition && u.__fromStateTransition.indexOf(n) < 0 && "style" === u.targetName && u.saveFinalToTarget(o, e) + } + return o + } + + function Ta(t, e, n, i) { + var r = n && p(n, "select") >= 0, o = !1; + if (t instanceof xx) { + var a = Yb(t), s = r ? a.selectFill || a.normalFill : a.normalFill, + l = r ? a.selectStroke || a.normalStroke : a.normalStroke; + if (ca(s) || ca(l)) { + i = i || {}; + var u = i.style || {}; + !ca(u.fill) && ca(s) ? (o = !0, i = h({}, i), u = h({}, u), u.fill = pa(s)) : !ca(u.stroke) && ca(l) && (o || (i = h({}, i), u = h({}, u)), u.stroke = pa(l)), i.style = u + } + } + if (i && null == i.z2) { + o || (i = h({}, i)); + var c = t.z2EmphasisLift; + i.z2 = t.z2 + (null != c ? c : $b) + } + return i + } + + function Ma(t, e, n) { + if (n && null == n.z2) { + n = h({}, n); + var i = t.z2SelectLift; + n.z2 = t.z2 + (null != i ? i : Jb) + } + return n + } + + function Ca(t, e, n) { + var i = p(t.currentStates, e) >= 0, r = t.style.opacity, o = i ? null : Sa(t, ["opacity"], e, {opacity: 1}); + n = n || {}; + var a = n.style || {}; + return null == a.opacity && (n = h({}, n), a = h({opacity: i ? r : .1 * o.opacity}, a), n.style = a), n + } + + function Ia(t, e) { + var n = this.states[t]; + if (this.style) { + if ("emphasis" === t) return Ta(this, t, e, n); + if ("blur" === t) return Ca(this, t, n); + if ("select" === t) return Ma(this, t, n) + } + return n + } + + function Aa(t) { + t.stateProxy = Ia; + var e = t.getTextContent(), n = t.getTextGuideLine(); + e && (e.stateProxy = Ia), n && (n.stateProxy = Ia) + } + + function Da(t, e) { + !Ba(t, e) && !t.__highByOuter && wa(t, da) + } + + function ka(t, e) { + !Ba(t, e) && !t.__highByOuter && wa(t, ga) + } + + function La(t, e) { + t.__highByOuter |= 1 << (e || 0), wa(t, da) + } + + function Pa(t, e) { + !(t.__highByOuter &= ~(1 << (e || 0))) && wa(t, ga) + } + + function Oa(t) { + wa(t, ya) + } + + function Ra(t) { + wa(t, va) + } + + function Ea(t) { + wa(t, ma) + } + + function za(t) { + wa(t, _a) + } + + function Ba(t, e) { + return t.__highDownSilentOnTouch && e.zrByTouch + } + + function Na(t) { + var e = t.getModel(); + e.eachComponent(function (e, n) { + var i = "series" === e ? t.getViewOfSeriesModel(n) : t.getViewOfComponentModel(n); + i.group.traverse(function (t) { + va(t) + }) + }) + } + + function Fa(t, e, n, i, r) { + function o(t, e) { + for (var n = 0; n < e.length; n++) { + var i = t.getItemGraphicEl(e[n]); + i && Ra(i) + } + } + + var a = i.getModel(); + if (n = n || "coordinateSystem", !r) return void Na(i); + if (null != t && e && "none" !== e) { + var s = a.getSeriesByIndex(t), l = s.coordinateSystem; + l && l.master && (l = l.master); + var u = []; + a.eachSeries(function (t) { + var r = s === t, a = t.coordinateSystem; + a && a.master && (a = a.master); + var h = a && l ? a === l : r; + if (!("series" === n && !r || "coordinateSystem" === n && !h || "series" === e && r)) { + var c = i.getViewOfSeriesModel(t); + if (c.group.traverse(function (t) { + ya(t) + }), g(e)) o(t.getData(), e); else if (D(e)) for (var p = w(e), f = 0; f < p.length; f++) o(t.getData(p[f]), e[p[f]]); + u.push(t) + } + }), a.eachComponent(function (t, e) { + if ("series" !== t) { + var n = i.getViewOfComponentModel(e); + n && n.blurSeries && n.blurSeries(u, a) + } + }) + } + } + + function Ha(t, e, n) { + if ($a(e)) { + var i = e.type === Qb, r = t.seriesIndex, o = t.getData(e.dataType), a = Uo(o, e); + a = (T(a) ? a[0] : a) || 0; + var s = o.getItemGraphicEl(a); + if (!s) for (var l = o.count(), u = 0; !s && l > u;) s = o.getItemGraphicEl(u++); + if (s) { + var h = Gb(s); + Fa(r, h.focus, h.blurScope, n, i) + } else { + var c = t.get(["emphasis", "focus"]), p = t.get(["emphasis", "blurScope"]); + null != c && Fa(r, c, p, n, i) + } + } + } + + function Va(t, e) { + if (Ka(e)) { + var n = e.dataType, i = t.getData(n), r = Uo(i, e); + T(r) || (r = [r]), t[e.type === iS ? "toggleSelect" : e.type === eS ? "select" : "unselect"](r, n) + } + } + + function Ga(t) { + var e = t.getAllData(); + y(e, function (e) { + var n = e.data, i = e.type; + n.eachItemGraphicEl(function (e, n) { + t.isSelected(n, i) ? Ea(e) : za(e) + }) + }) + } + + function Wa(t) { + var e = []; + return t.eachSeries(function (t) { + var n = t.getAllData(); + y(n, function (n) { + var i = (n.data, n.type), r = t.getSelectedDataIndices(); + if (r.length > 0) { + var o = {dataIndex: r, seriesIndex: t.seriesIndex}; + null != i && (o.dataType = i), e.push(o) + } + }) + }), e + } + + function Xa(t, e, n) { + qa(t, !0), wa(t, Aa), Ya(t, e, n) + } + + function Ya(t, e, n) { + var i = Gb(t); + null != e ? (i.focus = e, i.blurScope = n) : i.focus && (i.focus = null) + } + + function Ua(t, e, n, i) { + n = n || "itemStyle"; + for (var r = 0; r < oS.length; r++) { + var o = oS[r], a = e.getModel([o, n]), s = t.ensureState(o); + s.style = i ? i(a) : a[aS[n]]() + } + } + + function qa(t, e) { + var n = e === !1, i = t; + t.highDownSilentOnTouch && (i.__highDownSilentOnTouch = t.highDownSilentOnTouch), (!n || i.__highDownDispatcher) && (i.__highByOuter = i.__highByOuter || 0, i.__highDownDispatcher = !n) + } + + function ja(t) { + return !(!t || !t.__highDownDispatcher) + } + + function Za(t) { + var e = Xb[t]; + return null == e && 32 >= Wb && (e = Xb[t] = Wb++), e + } + + function Ka(t) { + var e = t.type; + return e === eS || e === nS || e === iS + } + + function $a(t) { + var e = t.type; + return e === Qb || e === tS + } + + function Ja(t) { + var e = Yb(t); + e.normalFill = t.style.fill, e.normalStroke = t.style.stroke; + var n = t.states.select || {}; + e.selectFill = n.style && n.style.fill || null, e.selectStroke = n.style && n.style.stroke || null + } + + function Qa(t) { + return xx.extend(t) + } + + function ts(t, e) { + return hS(t, e) + } + + function es(t, e) { + uS[t] = e + } + + function ns(t) { + return uS.hasOwnProperty(t) ? uS[t] : void 0 + } + + function is(t, e, n, i) { + var r = ir(t, e); + return n && ("center" === i && (n = os(n, r.getBoundingRect())), as(r, n)), r + } + + function rs(t, e, n) { + var i = new zx({ + style: {image: t, x: e.x, y: e.y, width: e.width, height: e.height}, onload: function (t) { + if ("center" === n) { + var r = {width: t.width, height: t.height}; + i.setStyle(os(e, r)) + } + } + }); + return i + } + + function os(t, e) { + var n, i = e.width / e.height, r = t.height * i; + r <= t.width ? n = t.height : (r = t.width, n = r / i); + var o = t.x + t.width / 2, a = t.y + t.height / 2; + return {x: o - r / 2, y: a - n / 2, width: r, height: n} + } + + function as(t, e) { + if (t.applyTransform) { + var n = t.getBoundingRect(), i = n.calculateTransform(e); + t.applyTransform(i) + } + } + + function ss(t) { + return lr(t.shape, t.shape, t.style), t + } + + function ls(t) { + return ur(t.shape, t.shape, t.style), t + } + + function us(t, e, n, i, r, o, a) { + var s, l = !1; + "function" == typeof r ? (a = o, o = r, r = null) : D(r) && (o = r.cb, a = r.during, l = r.isFrom, s = r.removeOpt, r = r.dataIndex); + var u, h = "update" === t, c = "remove" === t; + if (i && i.ecModel) { + var p = i.ecModel.getUpdatePayload(); + u = p && p.animation + } + var f = i && i.isAnimationEnabled(); + if (c || e.stopAnimation("remove"), f) { + var d = void 0, g = void 0, y = void 0; + u ? (d = u.duration || 0, g = u.easing || "cubicOut", y = u.delay || 0) : c ? (s = s || {}, d = N(s.duration, 200), g = N(s.easing, "cubicOut"), y = 0) : (d = i.getShallow(h ? "animationDurationUpdate" : "animationDuration"), g = i.getShallow(h ? "animationEasingUpdate" : "animationEasing"), y = i.getShallow(h ? "animationDelayUpdate" : "animationDelay")), "function" == typeof y && (y = y(r, i.getAnimationDelayParams ? i.getAnimationDelayParams(e, r) : null)), "function" == typeof d && (d = d(r)), d > 0 ? l ? e.animateFrom(n, { + duration: d, + delay: y || 0, + easing: g, + done: o, + force: !!o || !!a, + scope: t, + during: a + }) : e.animateTo(n, { + duration: d, + delay: y || 0, + easing: g, + done: o, + force: !!o || !!a, + setToFinal: !0, + scope: t, + during: a + }) : (e.stopAnimation(), !l && e.attr(n), o && o()) + } else e.stopAnimation(), !l && e.attr(n), a && a(1), o && o() + } + + function hs(t, e, n, i, r, o) { + us("update", t, e, n, i, r, o) + } + + function cs(t, e, n, i, r, o) { + us("init", t, e, n, i, r, o) + } + + function ps(t, e, n, i, r, o) { + gs(t) || us("remove", t, e, n, i, r, o) + } + + function fs(t, e, n, i) { + t.removeTextContent(), t.removeTextGuideLine(), ps(t, {style: {opacity: 0}}, e, n, i) + } + + function ds(t, e, n) { + function i() { + t.parent && t.parent.remove(t) + } + + t.isGroup ? t.traverse(function (t) { + t.isGroup || fs(t, e, n, i) + }) : fs(t, e, n, i) + } + + function gs(t) { + if (!t.__zr) return !0; + for (var e = 0; e < t.animators.length; e++) { + var n = t.animators[e]; + if ("remove" === n.scope) return !0 + } + return !1 + } + + function ys(t, e) { + for (var n = He([]); t && t !== e;) Ge(n, t.getLocalTransform(), n), t = t.parent; + return n + } + + function vs(t, e, n) { + return e && !g(e) && (e = ym.getLocalTransform(e)), n && (e = Ue([], e)), ge([], t, e) + } + + function ms(t, e, n) { + var i = 0 === e[4] || 0 === e[5] || 0 === e[0] ? 1 : Math.abs(2 * e[4] / e[0]), + r = 0 === e[4] || 0 === e[5] || 0 === e[2] ? 1 : Math.abs(2 * e[4] / e[2]), + o = ["left" === t ? -i : "right" === t ? i : 0, "top" === t ? -r : "bottom" === t ? r : 0]; + return o = vs(o, e, n), Math.abs(o[0]) > Math.abs(o[1]) ? o[0] > 0 ? "right" : "left" : o[1] > 0 ? "bottom" : "top" + } + + function _s(t) { + return !t.isGroup + } + + function xs(t) { + return null != t.shape + } + + function ws(t, e, n) { + function i(t) { + var e = {}; + return t.traverse(function (t) { + _s(t) && t.anid && (e[t.anid] = t) + }), e + } + + function r(t) { + var e = {x: t.x, y: t.y, rotation: t.rotation}; + return xs(t) && (e.shape = h({}, t.shape)), e + } + + if (t && e) { + var o = i(t); + e.traverse(function (t) { + if (_s(t) && t.anid) { + var e = o[t.anid]; + if (e) { + var i = r(t); + t.attr(r(e)), hs(t, i, n, Gb(t).dataIndex) + } + } + }) + } + } + + function bs(t, e) { + return v(t, function (t) { + var n = t[0]; + n = sS(n, e.x), n = lS(n, e.x + e.width); + var i = t[1]; + return i = sS(i, e.y), i = lS(i, e.y + e.height), [n, i] + }) + } + + function Ss(t, e) { + var n = sS(t.x, e.x), i = lS(t.x + t.width, e.x + e.width), r = sS(t.y, e.y), + o = lS(t.y + t.height, e.y + e.height); + return i >= n && o >= r ? {x: n, y: r, width: i - n, height: o - r} : void 0 + } + + function Ts(t, e, n) { + var i = h({rectHover: !0}, e), r = i.style = {strokeNoScale: !0}; + return n = n || { + x: -1, + y: -1, + width: 2, + height: 2 + }, t ? 0 === t.indexOf("image://") ? (r.image = t.slice(8), c(r, n), new zx(i)) : is(t.replace("path://", ""), i, n, "center") : void 0 + } + + function Ms(t, e, n, i, r) { + for (var o = 0, a = r[r.length - 1]; o < r.length; o++) { + var s = r[o]; + if (Cs(t, e, n, i, s[0], s[1], a[0], a[1])) return !0; + a = s + } + } + + function Cs(t, e, n, i, r, o, a, s) { + var l = n - t, u = i - e, h = a - r, c = s - o, p = Is(h, c, l, u); + if (As(p)) return !1; + var f = t - r, d = e - o, g = Is(f, d, l, u) / p; + if (0 > g || g > 1) return !1; + var y = Is(f, d, h, c) / p; + return 0 > y || y > 1 ? !1 : !0 + } + + function Is(t, e, n, i) { + return t * i - n * e + } + + function As(t) { + return 1e-6 >= t && t >= -1e-6 + } + + function Ds(t, e) { + for (var n = 0; n < Zb.length; n++) { + var i = Zb[n], r = e[i], o = t.ensureState(i); + o.style = o.style || {}, o.style.text = r + } + var a = t.currentStates.slice(); + t.clearStates(!0), t.setStyle({text: e.normal}), t.useStates(a, !0) + } + + function ks(t, e, n) { + var i, r = t.labelFetcher, o = t.labelDataIndex, a = t.labelDimIndex, s = e.normal; + r && (i = r.getFormattedLabel(o, "normal", null, a, s && s.get("formatter"), null != n ? {value: n} : null)), null == i && (i = M(t.defaultText) ? t.defaultText(o, t, n) : t.defaultText); + for (var l = {normal: i}, u = 0; u < Zb.length; u++) { + var h = Zb[u], c = e[h]; + l[h] = N(r ? r.getFormattedLabel(o, h, null, a, c && c.get("formatter")) : null, i) + } + return l + } + + function Ls(t, e, n, i) { + n = n || dS; + for (var r = t instanceof Ew, o = !1, a = 0; a < Kb.length; a++) { + var s = e[Kb[a]]; + if (s && s.getShallow("show")) { + o = !0; + break + } + } + var l = r ? t : t.getTextContent(); + if (o) { + r || (l || (l = new Ew, t.setTextContent(l)), t.stateProxy && (l.stateProxy = t.stateProxy)); + var u = ks(n, e), h = e.normal, c = !!h.getShallow("show"), p = Os(h, i && i.normal, n, !1, !r); + p.text = u.normal, r || t.setTextConfig(Rs(h, n, !1)); + for (var a = 0; a < Zb.length; a++) { + var f = Zb[a], s = e[f]; + if (s) { + var d = l.ensureState(f), g = !!N(s.getShallow("show"), c); + if (g !== c && (d.ignore = !g), d.style = Os(s, i && i[f], n, !0, !r), d.style.text = u[f], !r) { + var y = t.ensureState(f); + y.textConfig = Rs(s, n, !0) + } + } + } + l.silent = !!h.getShallow("silent"), null != l.style.x && (p.x = l.style.x), null != l.style.y && (p.y = l.style.y), l.ignore = !c, l.useStyle(p), l.dirty(), n.enableTextSetter && (mS(l).setLabelText = function (t) { + var i = ks(n, e, t); + Ds(l, i) + }) + } else l && (l.ignore = !0); + t.dirty() + } + + function Ps(t, e) { + e = e || "label"; + for (var n = {normal: t.getModel(e)}, i = 0; i < Zb.length; i++) { + var r = Zb[i]; + n[r] = t.getModel([r, e]) + } + return n + } + + function Os(t, e, n, i, r) { + var o = {}; + return Es(o, t, n, i, r), e && h(o, e), o + } + + function Rs(t, e, n) { + e = e || {}; + var i, r = {}, o = t.getShallow("rotate"), a = N(t.getShallow("distance"), n ? null : 5), + s = t.getShallow("offset"); + return i = t.getShallow("position") || (n ? null : "inside"), "outside" === i && (i = e.defaultOutsidePosition || "top"), null != i && (r.position = i), null != s && (r.offset = s), null != o && (o *= Math.PI / 180, r.rotation = o), null != a && (r.distance = a), r.outsideFill = "inherit" === t.get("color") ? e.inheritColor || null : "auto", r + } + + function Es(t, e, n, i, r) { + n = n || dS; + var o, a = e.ecModel, s = a && a.option.textStyle, l = zs(e); + if (l) { + o = {}; + for (var u in l) if (l.hasOwnProperty(u)) { + var h = e.getModel(["rich", u]); + Bs(o[u] = {}, h, s, n, i, r, !1, !0) + } + } + o && (t.rich = o); + var c = e.get("overflow"); + c && (t.overflow = c); + var p = e.get("minMargin"); + null != p && (t.margin = p), Bs(t, e, s, n, i, r, !0, !1) + } + + function zs(t) { + for (var e; t && t !== t.ecModel;) { + var n = (t.option || dS).rich; + if (n) { + e = e || {}; + for (var i = w(n), r = 0; r < i.length; r++) { + var o = i[r]; + e[o] = 1 + } + } + t = t.parentModel + } + return e + } + + function Bs(t, e, n, i, r, o, a, s) { + n = !r && n || dS; + var l = i && i.inheritColor, u = e.getShallow("color"), h = e.getShallow("textBorderColor"), + c = N(e.getShallow("opacity"), n.opacity); + ("inherit" === u || "auto" === u) && (u = l ? l : null), ("inherit" === h || "auto" === h) && (h = l ? l : null), o || (u = u || n.color, h = h || n.textBorderColor), null != u && (t.fill = u), null != h && (t.stroke = h); + var p = N(e.getShallow("textBorderWidth"), n.textBorderWidth); + null != p && (t.lineWidth = p); + var f = N(e.getShallow("textBorderType"), n.textBorderType); + null != f && (t.lineDash = f); + var d = N(e.getShallow("textBorderDashOffset"), n.textBorderDashOffset); + null != d && (t.lineDashOffset = d), r || null != c || s || (c = i && i.defaultOpacity), null != c && (t.opacity = c), r || o || null == t.fill && i.inheritColor && (t.fill = i.inheritColor); + for (var g = 0; g < gS.length; g++) { + var y = gS[g], v = N(e.getShallow(y), n[y]); + null != v && (t[y] = v) + } + for (var g = 0; g < yS.length; g++) { + var y = yS[g], v = e.getShallow(y); + null != v && (t[y] = v) + } + if (null == t.verticalAlign) { + var m = e.getShallow("baseline"); + null != m && (t.verticalAlign = m) + } + if (!a || !i.disableBox) { + for (var g = 0; g < vS.length; g++) { + var y = vS[g], v = e.getShallow(y); + null != v && (t[y] = v) + } + var _ = e.getShallow("borderType"); + null != _ && (t.borderDash = _), "auto" !== t.backgroundColor && "inherit" !== t.backgroundColor || !l || (t.backgroundColor = l), "auto" !== t.borderColor && "inherit" !== t.borderColor || !l || (t.borderColor = l) + } + } + + function Ns(t, e) { + var n = e && e.getModel("textStyle"); + return W([t.fontStyle || n && n.getShallow("fontStyle") || "", t.fontWeight || n && n.getShallow("fontWeight") || "", (t.fontSize || n && n.getShallow("fontSize") || 12) + "px", t.fontFamily || n && n.getShallow("fontFamily") || "sans-serif"].join(" ")) + } + + function Fs(t, e, n, i) { + if (t) { + var r = mS(t); + r.prevValue = r.value, r.value = n; + var o = e.normal; + r.valueAnimation = o.get("valueAnimation"), r.valueAnimation && (r.precision = o.get("precision"), r.defaultInterpolatedText = i, r.statesModels = e) + } + } + + function Hs(t, e, n, i) { + function r(i) { + var r = Qo(n, o.precision, s, l, i), + u = ks({labelDataIndex: e, defaultText: a ? a(r) : r + ""}, o.statesModels, r); + Ds(t, u) + } + + var o = mS(t); + if (o.valueAnimation) { + var a = o.defaultInterpolatedText, s = o.prevValue, l = o.value; + (null == s ? cs : hs)(t, {}, i, e, null, r) + } + } + + function Vs(t) { + return [t || "", DS++].join("_") + } + + function Gs(t) { + var e = {}; + t.registerSubTypeDefaulter = function (t, n) { + var i = ta(t); + e[i.main] = n + }, t.determineSubType = function (n, i) { + var r = i.type; + if (!r) { + var o = ta(n).main; + t.hasSubTypes(n) && e[o] && (r = e[o](i)) + } + return r + } + } + + function Ws(t, e) { + function n(t) { + var n = {}, o = []; + return y(t, function (a) { + var s = i(n, a), l = s.originalDeps = e(a), u = r(l, t); + s.entryCount = u.length, 0 === s.entryCount && o.push(a), y(u, function (t) { + p(s.predecessor, t) < 0 && s.predecessor.push(t); + var e = i(n, t); + p(e.successor, t) < 0 && e.successor.push(a) + }) + }), {graph: n, noEntryList: o} + } + + function i(t, e) { + return t[e] || (t[e] = {predecessor: [], successor: []}), t[e] + } + + function r(t, e) { + var n = []; + return y(t, function (t) { + p(e, t) >= 0 && n.push(t) + }), n + } + + t.topologicalTravel = function (t, e, i, r) { + function o(t) { + l[t].entryCount--, 0 === l[t].entryCount && u.push(t) + } + + function a(t) { + h[t] = !0, o(t) + } + + if (t.length) { + var s = n(e), l = s.graph, u = s.noEntryList, h = {}; + for (y(t, function (t) { + h[t] = !0 + }); u.length;) { + var c = u.pop(), p = l[c], f = !!h[c]; + f && (i.call(r, c, p.originalDeps.slice()), delete h[c]), y(p.successor, f ? a : o) + } + y(h, function () { + var t = ""; + throw new Error(t) + }) + } + } + } + + function Xs(t, e) { + return l(l({}, t, !0), e, !0) + } + + function Ys(t, e) { + t = t.toUpperCase(), zS[t] = new AS(e), ES[t] = e + } + + function Us(t) { + if (C(t)) { + var e = ES[t.toUpperCase()] || {}; + return t === PS || t === OS ? s(e) : l(s(e), s(ES[RS]), !1) + } + return l(s(t), s(ES[RS]), !1) + } + + function qs(t) { + return zS[t] + } + + function js() { + return zS[RS] + } + + function Zs(t, e) { + return t += "", "0000".substr(0, e - t.length) + t + } + + function Ks(t) { + switch (t) { + case"half-year": + case"quarter": + return "month"; + case"week": + case"half-week": + return "day"; + case"half-day": + case"quarter-day": + return "hour"; + default: + return t + } + } + + function $s(t) { + return t === Ks(t) + } + + function Js(t) { + switch (t) { + case"year": + case"month": + return "day"; + case"millisecond": + return "millisecond"; + default: + return "second" + } + } + + function Qs(t, e, n, i) { + var r = yo(t), o = r[il(n)](), a = r[rl(n)]() + 1, s = Math.floor((a - 1) / 4) + 1, l = r[ol(n)](), + u = r["get" + (n ? "UTC" : "") + "Day"](), h = r[al(n)](), c = (h - 1) % 12 + 1, p = r[sl(n)](), + f = r[ll(n)](), d = r[ul(n)](), g = i instanceof AS ? i : qs(i || BS) || js(), y = g.getModel("time"), + v = y.get("month"), m = y.get("monthAbbr"), _ = y.get("dayOfWeek"), x = y.get("dayOfWeekAbbr"); + return (e || "").replace(/{yyyy}/g, o + "").replace(/{yy}/g, o % 100 + "").replace(/{Q}/g, s + "").replace(/{MMMM}/g, v[a - 1]).replace(/{MMM}/g, m[a - 1]).replace(/{MM}/g, Zs(a, 2)).replace(/{M}/g, a + "").replace(/{dd}/g, Zs(l, 2)).replace(/{d}/g, l + "").replace(/{eeee}/g, _[u]).replace(/{ee}/g, x[u]).replace(/{e}/g, u + "").replace(/{HH}/g, Zs(h, 2)).replace(/{H}/g, h + "").replace(/{hh}/g, Zs(c + "", 2)).replace(/{h}/g, c + "").replace(/{mm}/g, Zs(p, 2)).replace(/{m}/g, p + "").replace(/{ss}/g, Zs(f, 2)).replace(/{s}/g, f + "").replace(/{SSS}/g, Zs(d, 3)).replace(/{S}/g, d + "") + } + + function tl(t, e, n, i, r) { + var o = null; + if ("string" == typeof n) o = n; else if ("function" == typeof n) o = n(t.value, e, {level: t.level}); else { + var a = h({}, WS); + if (t.level > 0) for (var s = 0; s < US.length; ++s) a[US[s]] = "{primary|" + a[US[s]] + "}"; + var l = n ? n.inherit === !1 ? n : c(n, a) : a, u = el(t.value, r); + if (l[u]) o = l[u]; else if (l.inherit) { + for (var p = qS.indexOf(u), s = p - 1; s >= 0; --s) if (l[u]) { + o = l[u]; + break + } + o = o || a.none + } + if (T(o)) { + var f = null == t.level ? 0 : t.level >= 0 ? t.level : o.length + t.level; + f = Math.min(f, o.length - 1), o = o[f] + } + } + return Qs(new Date(t.value), o, r, i) + } + + function el(t, e) { + var n = yo(t), i = n[rl(e)]() + 1, r = n[ol(e)](), o = n[al(e)](), a = n[sl(e)](), s = n[ll(e)](), + l = n[ul(e)](), u = 0 === l, h = u && 0 === s, c = h && 0 === a, p = c && 0 === o, f = p && 1 === r, + d = f && 1 === i; + return d ? "year" : f ? "month" : p ? "day" : c ? "hour" : h ? "minute" : u ? "second" : "millisecond" + } + + function nl(t, e, n) { + var i = "number" == typeof t ? yo(t) : t; + switch (e = e || el(t, n)) { + case"year": + return i[il(n)](); + case"half-year": + return i[rl(n)]() >= 6 ? 1 : 0; + case"quarter": + return Math.floor((i[rl(n)]() + 1) / 4); + case"month": + return i[rl(n)](); + case"day": + return i[ol(n)](); + case"half-day": + return i[al(n)]() / 24; + case"hour": + return i[al(n)](); + case"minute": + return i[sl(n)](); + case"second": + return i[ll(n)](); + case"millisecond": + return i[ul(n)]() + } + } + + function il(t) { + return t ? "getUTCFullYear" : "getFullYear" + } + + function rl(t) { + return t ? "getUTCMonth" : "getMonth" + } + + function ol(t) { + return t ? "getUTCDate" : "getDate" + } + + function al(t) { + return t ? "getUTCHours" : "getHours" + } + + function sl(t) { + return t ? "getUTCMinutes" : "getMinutes" + } + + function ll(t) { + return t ? "getUTCSeconds" : "getSeconds" + } + + function ul(t) { + return t ? "getUTCSeconds" : "getSeconds" + } + + function hl(t) { + return t ? "setUTCFullYear" : "setFullYear" + } + + function cl(t) { + return t ? "setUTCMonth" : "setMonth" + } + + function pl(t) { + return t ? "setUTCDate" : "setDate" + } + + function fl(t) { + return t ? "setUTCHours" : "setHours" + } + + function dl(t) { + return t ? "setUTCMinutes" : "setMinutes" + } + + function gl(t) { + return t ? "setUTCSeconds" : "setSeconds" + } + + function yl(t) { + return t ? "setUTCSeconds" : "setSeconds" + } + + function vl(t, e, n, i, r, o, a, s) { + var l = new Ew({ + style: { + text: t, + font: e, + align: n, + verticalAlign: i, + padding: r, + rich: o, + overflow: a ? "truncate" : null, + lineHeight: s + } + }); + return l.getBoundingRect() + } + + function ml(t) { + if (!So(t)) return C(t) ? t : "-"; + var e = (t + "").split("."); + return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (e.length > 1 ? "." + e[1] : "") + } + + function _l(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 xl(t) { + return null == t ? "" : (t + "").replace(ZS, function (t, e) { + return KS[e] + }) + } + + function wl(t, e, n) { + function i(t) { + return t && W(t) ? t : "-" + } + + function r(t) { + return !(null == t || isNaN(t) || !isFinite(t)) + } + + var o = "yyyy-MM-dd hh:mm:ss", a = "time" === e, s = t instanceof Date; + if (a || s) { + var l = a ? yo(t) : t; + if (!isNaN(+l)) return Qs(l, o, n); + if (s) return "-" + } + if ("ordinal" === e) return I(t) ? i(t) : A(t) && r(t) ? t + "" : "-"; + var u = bo(t); + return r(u) ? ml(u) : I(t) ? i(t) : "-" + } + + function bl(t, e, n) { + T(e) || (e = [e]); + var i = e.length; + if (!i) return ""; + for (var r = e[0].$vars || [], o = 0; o < r.length; o++) { + var a = $S[o]; + t = t.replace(JS(a), JS(a, 0)) + } + for (var s = 0; i > s; s++) for (var l = 0; l < r.length; l++) { + var u = e[s][r[l]]; + t = t.replace(JS($S[l], s), n ? xl(u) : u) + } + return t + } + + function Sl(t, e, n) { + return y(e, function (e, i) { + t = t.replace("{" + i + "}", n ? xl(e) : e) + }), t + } + + function Tl(t, e) { + var n = C(t) ? {color: t, extraCssText: e} : t || {}, i = n.color, r = n.type; + e = n.extraCssText; + var o = n.renderMode || "html"; + if (!i) return ""; + if ("html" === o) return "subItem" === r ? '' : ''; + var a = n.markerId || "markerX"; + return { + renderMode: o, + content: "{" + a + "|} ", + style: "subItem" === r ? {width: 4, height: 4, borderRadius: 2, backgroundColor: i} : { + width: 10, + height: 10, + borderRadius: 5, + backgroundColor: i + } + } + } + + function Ml(t, e, n) { + ("week" === t || "month" === t || "quarter" === t || "half-year" === t || "year" === t) && (t = "MM-dd\nyyyy"); + var i = yo(e), r = n ? "UTC" : "", o = i["get" + r + "FullYear"](), a = i["get" + r + "Month"]() + 1, + s = i["get" + r + "Date"](), l = i["get" + r + "Hours"](), u = i["get" + r + "Minutes"](), + h = i["get" + r + "Seconds"](), c = i["get" + r + "Milliseconds"](); + return t = t.replace("MM", Zs(a, 2)).replace("M", a).replace("yyyy", o).replace("yy", o % 100 + "").replace("dd", Zs(s, 2)).replace("d", s).replace("hh", Zs(l, 2)).replace("h", l).replace("mm", Zs(u, 2)).replace("m", u).replace("ss", Zs(h, 2)).replace("s", h).replace("SSS", Zs(c, 3)) + } + + function Cl(t) { + return t ? t.charAt(0).toUpperCase() + t.substr(1) : t + } + + function Il(t, e) { + return e = e || "transparent", C(t) ? t : D(t) ? t.colorStops && (t.colorStops[0] || {}).color || e : e + } + + function Al(t, e) { + if ("_blank" === e || "blank" === e) { + var n = window.open(); + n.opener = null, n.location.href = t + } else window.open(t, e) + } + + function Dl(t, e, n, i, r) { + var o = 0, a = 0; + null == i && (i = 1 / 0), null == r && (r = 1 / 0); + var s = 0; + e.eachChild(function (l, u) { + var h, c, p = l.getBoundingRect(), f = e.childAt(u + 1), d = f && f.getBoundingRect(); + if ("horizontal" === t) { + var g = p.width + (d ? -d.x + p.x : 0); + h = o + g, h > i || l.newline ? (o = 0, h = g, a += s + n, s = p.height) : s = Math.max(s, p.height) + } else { + var y = p.height + (d ? -d.y + p.y : 0); + c = a + y, c > r || l.newline ? (o += s + n, a = 0, c = y, s = p.width) : s = Math.max(s, p.width) + } + l.newline || (l.x = o, l.y = a, l.markRedraw(), "horizontal" === t ? o = h + n : a = c + n) + }) + } + + function kl(t, e, n) { + n = jS(n || 0); + var i = e.width, r = e.height, o = ao(t.left, i), a = ao(t.top, r), s = ao(t.right, i), l = ao(t.bottom, r), + u = ao(t.width, i), h = ao(t.height, r), c = n[2] + n[0], p = n[1] + n[3], f = t.aspect; + switch (isNaN(u) && (u = i - s - p - o), isNaN(h) && (h = r - l - c - a), null != f && (isNaN(u) && isNaN(h) && (f > i / r ? u = .8 * i : h = .8 * r), isNaN(u) && (u = f * h), isNaN(h) && (h = u / f)), isNaN(o) && (o = i - s - u - p), isNaN(a) && (a = r - l - h - c), t.left || t.right) { + case"center": + o = i / 2 - u / 2 - n[3]; + break; + case"right": + o = i - u - p + } + switch (t.top || t.bottom) { + case"middle": + case"center": + a = r / 2 - h / 2 - n[0]; + break; + case"bottom": + a = r - h - c + } + o = o || 0, a = a || 0, isNaN(u) && (u = i - p - o - (s || 0)), isNaN(h) && (h = r - c - a - (l || 0)); + var d = new Vm(o + n[3], a + n[0], u, h); + return d.margin = n, d + } + + function Ll(t) { + var e = t.layoutMode || t.constructor.layoutMode; + return D(e) ? e : e ? {type: e} : null + } + + function Pl(t, e, n) { + function i(n, i) { + var a = {}, l = 0, u = {}, h = 0, c = 2; + if (tT(n, function (e) { + u[e] = t[e] + }), tT(n, function (t) { + r(e, t) && (a[t] = u[t] = e[t]), o(a, t) && l++, o(u, t) && h++ + }), s[i]) return o(e, n[1]) ? u[n[2]] = null : o(e, n[2]) && (u[n[1]] = null), u; + if (h !== c && l) { + if (l >= c) return a; + for (var p = 0; p < n.length; p++) { + var f = n[p]; + if (!r(a, f) && r(t, f)) { + a[f] = t[f]; + break + } + } + return a + } + return u + } + + function r(t, e) { + return t.hasOwnProperty(e) + } + + function o(t, e) { + return null != t[e] && "auto" !== t[e] + } + + function a(t, e, n) { + tT(t, function (t) { + e[t] = n[t] + }) + } + + var s = n && n.ignoreSize; + !T(s) && (s = [s, s]); + var l = i(nT[0], 0), u = i(nT[1], 1); + a(nT[0], t, l), a(nT[1], t, u) + } + + function Ol(t) { + return Rl({}, t) + } + + function Rl(t, e) { + return e && t && tT(eT, function (n) { + e.hasOwnProperty(n) && (t[n] = e[n]) + }), t + } + + function El(t) { + var e = []; + return y(oT.getClassesByMainType(t), function (t) { + e = e.concat(t.dependencies || t.prototype.dependencies || []) + }), e = v(e, function (t) { + return ta(t).main + }), "dataset" !== t && p(e, "dataset") <= 0 && e.unshift("dataset"), e + } + + function zl(t) { + wT(t).datasetMap = U() + } + + function Bl(t, e) { + var n = t ? t.metaRawOption : null, i = N(e.seriesLayoutBy, n ? n.seriesLayoutBy : null), + r = N(e.sourceHeader, t ? t.startIndex : null), o = N(e.dimensions, t ? t.dimensionsDefine : null); + return {seriesLayoutBy: i, sourceHeader: r, dimensions: o} + } + + function Nl(t, e, n) { + function i(t, e, n) { + for (var i = 0; n > i; i++) t.push(e + i) + } + + function r(t) { + var e = t.dimsDef; + return e ? e.length : 1 + } + + var o = {}, a = Hl(e); + if (!a || !t) return o; + var s, l, u = [], h = [], c = e.ecModel, p = wT(c).datasetMap, f = a.uid + "_" + n.seriesLayoutBy; + t = t.slice(), y(t, function (e, n) { + var i = D(e) ? e : t[n] = {name: e}; + "ordinal" === i.type && null == s && (s = n, l = r(i)), o[i.name] = [] + }); + var d = p.get(f) || p.set(f, {categoryWayDim: l, valueWayDim: 0}); + return y(t, function (t, e) { + var n = t.name, a = r(t); + if (null == s) { + var l = d.valueWayDim; + i(o[n], l, a), i(h, l, a), d.valueWayDim += a + } else if (s === e) i(o[n], 0, a), i(u, 0, a); else { + var l = d.categoryWayDim; + i(o[n], l, a), i(h, l, a), d.categoryWayDim += a + } + }), u.length && (o.itemName = u), h.length && (o.seriesName = h), o + } + + function Fl(t, e, n) { + var i = {}, r = Hl(t); + if (!r) return i; + var o, a = e.sourceFormat, s = e.dimensionsDefine; + (a === dT || a === gT) && y(s, function (t, e) { + "name" === (D(t) ? t.name : t) && (o = e) + }); + var l = function () { + function t(t) { + return null != t.v && null != t.n + } + + for (var i = {}, r = {}, l = [], u = 0, h = Math.min(5, n); h > u; u++) { + var c = Wl(e.data, a, e.seriesLayoutBy, s, e.startIndex, u); + l.push(c); + var p = c === xT.Not; + if (p && null == i.v && u !== o && (i.v = u), (null == i.n || i.n === i.v || !p && l[i.n] === xT.Not) && (i.n = u), t(i) && l[i.n] !== xT.Not) return i; + p || (c === xT.Might && null == r.v && u !== o && (r.v = u), (null == r.n || r.n === r.v) && (r.n = u)) + } + return t(i) ? i : t(r) ? r : null + }(); + if (l) { + i.value = [l.v]; + var u = null != o ? o : l.n; + i.itemName = [u], i.seriesName = [u] + } + return i + } + + function Hl(t) { + var e = t.get("data", !0); + return e ? void 0 : Zo(t.ecModel, "dataset", { + index: t.get("datasetIndex", !0), + id: t.get("datasetId", !0) + }, Rb).models[0] + } + + function Vl(t) { + return t.get("transform", !0) || t.get("fromTransformResult", !0) ? Zo(t.ecModel, "dataset", { + index: t.get("fromDatasetIndex", !0), + id: t.get("fromDatasetId", !0) + }, Rb).models : [] + } + + function Gl(t, e) { + return Wl(t.data, t.sourceFormat, t.seriesLayoutBy, t.dimensionsDefine, t.startIndex, e) + } + + function Wl(t, e, n, i, r, o) { + function a(t) { + var e = C(t); + return null != t && isFinite(t) && "" !== t ? e ? xT.Might : xT.Not : e && "-" !== t ? xT.Must : void 0 + } + + var s, l = 5; + if (L(t)) return xT.Not; + var u, h; + if (i) { + var c = i[o]; + D(c) ? (u = c.name, h = c.type) : C(c) && (u = c) + } + if (null != h) return "ordinal" === h ? xT.Must : xT.Not; + if (e === fT) { + var p = t; + if (n === _T) { + for (var f = p[o], d = 0; d < (f || []).length && l > d; d++) if (null != (s = a(f[r + d]))) return s + } else for (var d = 0; d < p.length && l > d; d++) { + var g = p[r + d]; + if (g && null != (s = a(g[o]))) return s + } + } else if (e === dT) { + var y = t; + if (!u) return xT.Not; + for (var d = 0; d < y.length && l > d; d++) { + var v = y[d]; + if (v && null != (s = a(v[u]))) return s + } + } else if (e === gT) { + var m = t; + if (!u) return xT.Not; + var f = m[u]; + if (!f || L(f)) return xT.Not; + for (var d = 0; d < f.length && l > d; d++) if (null != (s = a(f[d]))) return s + } else if (e === pT) for (var _ = t, d = 0; d < _.length && l > d; d++) { + var v = _[d], x = ko(v); + if (!T(x)) return xT.Not; + if (null != (s = a(x[o]))) return s + } + return xT.Not + } + + function Xl(t, e, n) { + var i = bT.get(e); + if (!i) return n; + var r = i(t); + return r ? n.concat(r) : n + } + + function Yl(t, e) { + for (var n = t.length, i = 0; n > i; i++) if (t[i].length > e) return t[i]; + return t[n - 1] + } + + function Ul(t, e, n, i, r, o, a) { + o = o || t; + var s = e(o), l = s.paletteIdx || 0, u = s.paletteNameMap = s.paletteNameMap || {}; + if (u.hasOwnProperty(r)) return u[r]; + var h = null != a && i ? Yl(i, a) : n; + if (h = h || n, h && h.length) { + var c = h[l]; + return r && (u[r] = c), s.paletteIdx = (l + 1) % h.length, c + } + } + + function ql(t, e) { + e(t).paletteIdx = 0, e(t).paletteNameMap = {} + } + + function jl(t, e) { + if (e) { + var n = e.seriesIndex, i = e.seriesId, r = e.seriesName; + return null != n && t.componentIndex !== n || null != i && t.id !== i || null != r && t.name !== r + } + } + + function Zl(t, e) { + var n = t.color && !t.colorLayer; + y(e, function (e, i) { + "colorLayer" === i && n || oT.hasClass(i) || ("object" == typeof e ? t[i] = t[i] ? l(t[i], e, !1) : s(e) : null == t[i] && (t[i] = e)) + }) + } + + function Kl(t, e, n) { + if (T(e)) { + var i = U(); + return y(e, function (t) { + if (null != t) { + var e = Vo(t, null); + null != e && i.set(t, !0) + } + }), _(n, function (e) { + return e && i.get(e[t]) + }) + } + var r = Vo(e, null); + return _(n, function (e) { + return e && null != r && e[t] === r + }) + } + + function $l(t, e) { + return e.hasOwnProperty("subType") ? _(t, function (t) { + return t && t.subType === e.subType + }) : t + } + + function Jl(t) { + var e = U(); + return t && y(Ao(t.replaceMerge), function (t) { + e.set(t, !0) + }), {replaceMergeMainTypeMap: e} + } + + function Ql(t, e, n) { + function i(t) { + y(e, function (e) { + e(t, n) + }) + } + + var r, o, a = [], s = t.baseOption, l = t.timeline, u = t.options, h = t.media, c = !!t.media, + p = !!(u || l || s && s.timeline); + return s ? (o = s, o.timeline || (o.timeline = l)) : ((p || c) && (t.options = t.media = null), o = t), c && T(h) && y(h, function (t) { + t && t.option && (t.query ? a.push(t) : r || (r = t)) + }), i(o), y(u, function (t) { + return i(t) + }), y(a, function (t) { + return i(t.option) + }), {baseOption: o, timelineOptions: u || [], mediaDefault: r, mediaList: a} + } + + function tu(t, e, n) { + var i = {width: e, height: n, aspectratio: e / n}, r = !0; + return y(t, function (t, e) { + var n = e.match(zT); + if (n && n[1] && n[2]) { + var o = n[1], a = n[2].toLowerCase(); + eu(i[a], t, o) || (r = !1) + } + }), r + } + + function eu(t, e, n) { + return "min" === n ? t >= e : "max" === n ? e >= t : t === e + } + + function nu(t, e) { + return t.join(",") === e.join(",") + } + + function iu(t) { + var e = t && t.itemStyle; + if (e) for (var n = 0, i = HT.length; i > n; n++) { + var r = HT[n], o = e.normal, a = e.emphasis; + o && o[r] && (t[r] = t[r] || {}, t[r].normal ? l(t[r].normal, o[r]) : t[r].normal = o[r], o[r] = null), a && a[r] && (t[r] = t[r] || {}, t[r].emphasis ? l(t[r].emphasis, a[r]) : t[r].emphasis = a[r], a[r] = null) + } + } + + function ru(t, e, n) { + if (t && t[e] && (t[e].normal || t[e].emphasis)) { + var i = t[e].normal, r = t[e].emphasis; + i && (n ? (t[e].normal = t[e].emphasis = null, c(t[e], i)) : t[e] = i), r && (t.emphasis = t.emphasis || {}, t.emphasis[e] = r, r.focus && (t.emphasis.focus = r.focus), r.blurScope && (t.emphasis.blurScope = r.blurScope)) + } + } + + function ou(t) { + ru(t, "itemStyle"), ru(t, "lineStyle"), ru(t, "areaStyle"), ru(t, "label"), ru(t, "labelLine"), ru(t, "upperLabel"), ru(t, "edgeLabel") + } + + function au(t, e) { + var n = FT(t) && t[e], i = FT(n) && n.textStyle; + if (i) for (var r = 0, o = Pb.length; o > r; r++) { + var a = Pb[r]; + i.hasOwnProperty(a) && (n[a] = i[a]) + } + } + + function su(t) { + t && (ou(t), au(t, "label"), t.emphasis && au(t.emphasis, "label")) + } + + function lu(t) { + if (FT(t)) { + iu(t), ou(t), au(t, "label"), au(t, "upperLabel"), au(t, "edgeLabel"), t.emphasis && (au(t.emphasis, "label"), au(t.emphasis, "upperLabel"), au(t.emphasis, "edgeLabel")); + var e = t.markPoint; + e && (iu(e), su(e)); + var n = t.markLine; + n && (iu(n), su(n)); + var i = t.markArea; + i && su(i); + var r = t.data; + if ("graph" === t.type) { + r = r || t.nodes; + var o = t.links || t.edges; + if (o && !L(o)) for (var a = 0; a < o.length; a++) su(o[a]); + y(t.categories, function (t) { + ou(t) + }) + } + if (r && !L(r)) for (var a = 0; a < r.length; a++) su(r[a]); + if (e = t.markPoint, e && e.data) for (var s = e.data, a = 0; a < s.length; a++) su(s[a]); + if (n = t.markLine, n && n.data) for (var l = n.data, a = 0; a < l.length; a++) T(l[a]) ? (su(l[a][0]), su(l[a][1])) : su(l[a]); + "gauge" === t.type ? (au(t, "axisLabel"), au(t, "title"), au(t, "detail")) : "treemap" === t.type ? (ru(t.breadcrumb, "itemStyle"), y(t.levels, function (t) { + ou(t) + })) : "tree" === t.type && ou(t.leaves) + } + } + + function uu(t) { + return T(t) ? t : t ? [t] : [] + } + + function hu(t) { + return (T(t) ? t[0] : t) || {} + } + + function cu(t, e) { + NT(uu(t.series), function (t) { + FT(t) && lu(t) + }); + var n = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"]; + e && n.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"), NT(n, function (e) { + NT(uu(t[e]), function (t) { + t && (au(t, "axisLabel"), au(t.axisPointer, "label")) + }) + }), NT(uu(t.parallel), function (t) { + var e = t && t.parallelAxisDefault; + au(e, "axisLabel"), au(e && e.axisPointer, "label") + }), NT(uu(t.calendar), function (t) { + ru(t, "itemStyle"), au(t, "dayLabel"), au(t, "monthLabel"), au(t, "yearLabel") + }), NT(uu(t.radar), function (t) { + au(t, "name"), t.name && null == t.axisName && (t.axisName = t.name, delete t.name), null != t.nameGap && null == t.axisNameGap && (t.axisNameGap = t.nameGap, delete t.nameGap) + }), NT(uu(t.geo), function (t) { + FT(t) && (su(t), NT(uu(t.regions), function (t) { + su(t) + })) + }), NT(uu(t.timeline), function (t) { + su(t), ru(t, "label"), ru(t, "itemStyle"), ru(t, "controlStyle", !0); + var e = t.data; + T(e) && y(e, function (t) { + D(t) && (ru(t, "label"), ru(t, "itemStyle")) + }) + }), NT(uu(t.toolbox), function (t) { + ru(t, "iconStyle"), NT(t.feature, function (t) { + ru(t, "iconStyle") + }) + }), au(hu(t.axisPointer), "label"), au(hu(t.tooltip).axisPointer, "label") + } + + function pu(t, e) { + for (var n = e.split(","), i = t, r = 0; r < n.length && (i = i && i[n[r]], null != i); r++) ; + return i + } + + function fu(t, e, n, i) { + for (var r, o = e.split(","), a = t, s = 0; s < o.length - 1; s++) r = o[s], null == a[r] && (a[r] = {}), a = a[r]; + (i || null == a[o[s]]) && (a[o[s]] = n) + } + + function du(t) { + t && y(VT, function (e) { + e[0] in t && !(e[1] in t) && (t[e[1]] = t[e[0]]) + }) + } + + function gu(t) { + var e = t && t.itemStyle; + if (e) for (var n = 0; n < WT.length; n++) { + var i = WT[n][1], r = WT[n][0]; + null != e[i] && (e[r] = e[i]) + } + } + + function yu(t) { + t && "edge" === t.alignTo && null != t.margin && null == t.edgeDistance && (t.edgeDistance = t.margin) + } + + function vu(t) { + t && t.downplay && !t.blur && (t.blur = t.downplay) + } + + function mu(t) { + t && null != t.focusNodeAdjacency && (t.emphasis = t.emphasis || {}, null == t.emphasis.focus && (t.emphasis.focus = "adjacency")) + } + + function _u(t, e) { + if (t) for (var n = 0; n < t.length; n++) e(t[n]), t[n] && _u(t[n].children, e) + } + + function xu(t, e) { + cu(t, e), t.series = Ao(t.series), y(t.series, function (t) { + if (D(t)) { + var e = t.type; + if ("line" === e) null != t.clipOverflow && (t.clip = t.clipOverflow); else if ("pie" === e || "gauge" === e) { + null != t.clockWise && (t.clockwise = t.clockWise), yu(t.label); + var n = t.data; + if (n && !L(n)) for (var i = 0; i < n.length; i++) yu(n[i]); + null != t.hoverOffset && (t.emphasis = t.emphasis || {}, (t.emphasis.scaleSize = null) && (t.emphasis.scaleSize = t.hoverOffset)) + } else if ("gauge" === e) { + var r = pu(t, "pointer.color"); + null != r && fu(t, "itemStyle.color", r) + } else if ("bar" === e) { + gu(t), gu(t.backgroundStyle), gu(t.emphasis); + var n = t.data; + if (n && !L(n)) for (var i = 0; i < n.length; i++) "object" == typeof n[i] && (gu(n[i]), gu(n[i] && n[i].emphasis)) + } else if ("sunburst" === e) { + var o = t.highlightPolicy; + o && (t.emphasis = t.emphasis || {}, t.emphasis.focus || (t.emphasis.focus = o)), vu(t), _u(t.data, vu) + } else "graph" === e || "sankey" === e ? mu(t) : "map" === e && (t.mapType && !t.map && (t.map = t.mapType), t.mapLocation && c(t, t.mapLocation)); + null != t.hoverAnimation && (t.emphasis = t.emphasis || {}, t.emphasis && null == t.emphasis.scale && (t.emphasis.scale = t.hoverAnimation)), du(t) + } + }), t.dataRange && (t.visualMap = t.dataRange), y(GT, function (e) { + var n = t[e]; + n && (T(n) || (n = [n]), y(n, function (t) { + du(t) + })) + }) + } + + function wu(t) { + var e = U(); + t.eachSeries(function (t) { + var n = t.get("stack"); + if (n) { + var i = e.get(n) || e.set(n, []), r = t.getData(), o = { + stackResultDimension: r.getCalculationInfo("stackResultDimension"), + stackedOverDimension: r.getCalculationInfo("stackedOverDimension"), + stackedDimension: r.getCalculationInfo("stackedDimension"), + stackedByDimension: r.getCalculationInfo("stackedByDimension"), + isStackedByIndex: r.getCalculationInfo("isStackedByIndex"), + data: r, + seriesModel: t + }; + if (!o.stackedDimension || !o.isStackedByIndex && !o.stackedByDimension) return; + i.length && r.setCalculationInfo("stackedOnSeries", i[i.length - 1].seriesModel), i.push(o) + } + }), e.each(bu) + } + + function bu(t) { + y(t, function (e, n) { + var i = [], r = [0 / 0, 0 / 0], o = [e.stackResultDimension, e.stackedOverDimension], a = e.data, + s = e.isStackedByIndex, l = a.map(o, function (o, l, u) { + var h = a.get(e.stackedDimension, u); + if (isNaN(h)) return r; + var c, p; + s ? p = a.getRawIndex(u) : c = a.get(e.stackedByDimension, u); + for (var f = 0 / 0, d = n - 1; d >= 0; d--) { + var g = t[d]; + if (s || (p = g.data.rawIndexOf(g.stackedByDimension, c)), p >= 0) { + var y = g.data.getByRawIndex(g.stackResultDimension, p); + if (h >= 0 && y > 0 || 0 >= h && 0 > y) { + h += y, f = y; + break + } + } + } + return i[0] = h, i[1] = f, i + }); + a.hostModel.setData(l), e.data = l + }) + } + + function Su(t) { + return t instanceof XT + } + + function Tu(t, e, n, i) { + n = n || Au(t); + var r = e.seriesLayoutBy, o = Du(t, n, r, e.sourceHeader, e.dimensions), a = new XT({ + data: t, + sourceFormat: n, + seriesLayoutBy: r, + dimensionsDefine: o.dimensionsDefine, + startIndex: o.startIndex, + dimensionsDetectedCount: o.dimensionsDetectedCount, + encodeDefine: Iu(i), + metaRawOption: s(e) + }); + return a + } + + function Mu(t) { + return new XT({data: t, sourceFormat: L(t) ? yT : pT}) + } + + function Cu(t) { + return new XT({ + data: t.data, + sourceFormat: t.sourceFormat, + seriesLayoutBy: t.seriesLayoutBy, + dimensionsDefine: s(t.dimensionsDefine), + startIndex: t.startIndex, + dimensionsDetectedCount: t.dimensionsDetectedCount, + encodeDefine: Iu(t.encodeDefine) + }) + } + + function Iu(t) { + return t ? U(t) : null + } + + function Au(t) { + var e = vT; + if (L(t)) e = yT; else if (T(t)) { + 0 === t.length && (e = fT); + for (var n = 0, i = t.length; i > n; n++) { + var r = t[n]; + if (null != r) { + if (T(r)) { + e = fT; + break + } + if (D(r)) { + e = dT; + break + } + } + } + } else if (D(t)) { + for (var o in t) if (Z(t, o) && g(t[o])) { + e = gT; + break + } + } else if (null != t) throw new Error("Invalid data"); + return e + } + + function Du(t, e, n, i, r) { + var o, a; + if (!t) return {dimensionsDefine: Lu(r), startIndex: a, dimensionsDetectedCount: o}; + if (e === fT) { + var s = t; + "auto" === i || null == i ? Pu(function (t) { + null != t && "-" !== t && (C(t) ? null == a && (a = 1) : a = 0) + }, n, s, 10) : a = A(i) ? i : i ? 1 : 0, r || 1 !== a || (r = [], Pu(function (t, e) { + r[e] = null != t ? t + "" : "" + }, n, s, 1 / 0)), o = r ? r.length : n === _T ? s.length : s[0] ? s[0].length : null + } else if (e === dT) r || (r = ku(t)); else if (e === gT) r || (r = [], y(t, function (t, e) { + r.push(e) + })); else if (e === pT) { + var l = ko(t[0]); + o = T(l) && l.length || 1 + } + return {startIndex: a, dimensionsDefine: Lu(r), dimensionsDetectedCount: o} + } + + function ku(t) { + for (var e, n = 0; n < t.length && !(e = t[n++]);) ; + if (e) { + var i = []; + return y(e, function (t, e) { + i.push(e) + }), i + } + } + + function Lu(t) { + if (t) { + var e = U(); + return v(t, function (t) { + t = D(t) ? t : {name: t}; + var n = {name: t.name, displayName: t.displayName, type: t.type}; + if (null == name) return n; + n.name += "", null == n.displayName && (n.displayName = n.name); + var i = e.get(n.name); + return i ? n.name += "-" + i.count++ : e.set(n.name, {count: 1}), n + }) + } + } + + function Pu(t, e, n, i) { + if (e === _T) for (var r = 0; r < n.length && i > r; r++) t(n[r] ? n[r][0] : null, r); else for (var o = n[0] || [], r = 0; r < o.length && i > r; r++) t(o[r], r) + } + + function Ou(t, e) { + var n = qT[zu(t, e)]; + return n + } + + function Ru(t, e) { + var n = ZT[zu(t, e)]; + return n + } + + function Eu(t) { + var e = $T[t]; + return e + } + + function zu(t, e) { + return t === fT ? t + "_" + e : t + } + + function Bu(t, e, n) { + if (t) { + var i = t.getRawDataItem(e); + if (null != i) { + var r, o, a = t.getProvider().getSource().sourceFormat, s = t.getDimensionInfo(n); + return s && (r = s.name, o = s.index), Eu(a)(i, o, r) + } + } + } + + function Nu(t) { + var e, n; + return D(t) ? t.type && (n = t) : e = t, {markupText: e, markupFragment: n} + } + + function Fu(t) { + return new tM(t) + } + + function Hu(t, e) { + var n = e && e.type; + if ("ordinal" === n) { + var i = e && e.ordinalMeta; + return i ? i.parseAndCollect(t) : t + } + return "time" === n && "number" != typeof t && null != t && "-" !== t && (t = +yo(t)), null == t || "" === t ? 0 / 0 : +t + } + + function Vu(t, e) { + var n = new rM, i = t.data, r = n.sourceFormat = t.sourceFormat, o = t.startIndex, a = [], s = {}, + l = t.dimensionsDefine; + if (l) y(l, function (t, e) { + var n = t.name, i = {index: e, name: n, displayName: t.displayName}; + if (a.push(i), null != n) { + var r = ""; + Z(s, n) && Io(r), s[n] = i + } + }); else for (var u = 0; u < t.dimensionsDetectedCount; u++) a.push({index: u}); + var h = Ou(r, mT); + e.__isBuiltIn && (n.getRawDataItem = function (t) { + return h(i, o, a, t) + }, n.getRawData = Ev(Gu, null, t)), n.cloneRawData = Ev(Wu, null, t); + var c = Ru(r, mT); + n.count = Ev(c, null, i, o, a); + var p = Eu(r); + n.retrieveValue = function (t, e) { + var n = h(i, o, a, t); + return f(n, e) + }; + var f = n.retrieveValueFromItem = function (t, e) { + if (null != t) { + var n = a[e]; + return n ? p(t, e, n.name) : void 0 + } + }; + return n.getDimensionInfo = Ev(Xu, null, a, s), n.cloneAllDimensionInfo = Ev(Yu, null, a), n + } + + function Gu(t) { + var e = t.sourceFormat, n = t.data; + if (e === fT || e === dT || !n || T(n) && !n.length) return t.data; + var i = ""; + Io(i) + } + + function Wu(t) { + var e = t.sourceFormat, n = t.data; + if (!n) return n; + if (T(n) && !n.length) return []; + if (e === fT) { + for (var i = [], r = 0, o = n.length; o > r; r++) i.push(n[r].slice()); + return i + } + if (e === dT) { + for (var i = [], r = 0, o = n.length; o > r; r++) i.push(h({}, n[r])); + return i + } + } + + function Xu(t, e, n) { + return null != n ? "number" == typeof n || !isNaN(n) && !Z(e, n) ? t[n] : Z(e, n) ? e[n] : void 0 : void 0 + } + + function Yu(t) { + return s(t) + } + + function Uu(t) { + t = s(t); + var e = t.type, n = ""; + e || Io(n); + var i = e.split(":"); + 2 !== i.length && Io(n); + var r = !1; + "echarts" === i[0] && (e = i[1], r = !0), t.__isBuiltIn = r, oM.set(e, t) + } + + function qu(t, e, n) { + var i = Ao(t), r = i.length, o = ""; + r || Io(o); + for (var a = 0, s = r; s > a; a++) { + var l = i[a]; + e = ju(l, e, n, 1 === r ? null : a), a !== s - 1 && (e.length = Math.max(e.length, 1)) + } + return e + } + + function ju(t, e) { + var n = ""; + e.length || Io(n), D(t) || Io(n); + var i = t.type, r = oM.get(i); + r || Io(n); + var o = v(e, function (t) { + return Vu(t, r) + }), a = Ao(r.transform({upstream: o[0], upstreamList: o, config: s(t.config)})); + return v(a, function (t) { + var n = ""; + D(t) || Io(n); + var i = t.data; + null != i ? D(i) || g(i) || Io(n) : i = e[0].data; + var r = Bl(e[0], {seriesLayoutBy: mT, sourceHeader: 0, dimensions: t.dimensions}); + return Tu(i, r, null, null) + }) + } + + function Zu(t) { + var e = t.option.transform; + e && X(t.option.transform) + } + + function Ku(t) { + return "series" === t.mainType + } + + function $u(t) { + throw new Error(t) + } + + function Ju(t, e) { + return e.type = t, e + } + + function Qu(t) { + return Z(dM, t.type) && dM[t.type] + } + + function th(t, e, n) { + var i = [], r = e.blocks || []; + G(!r || T(r)), r = r || []; + var o = t.orderMode; + if (e.sortBlocks && o) { + r = r.slice(); + var a = {valueAsc: "asc", valueDesc: "desc"}; + if (Z(a, o)) { + var s = new iM(a[o], null); + r.sort(function (t, e) { + return s.evaluate(t.sortParam, e.sortParam) + }) + } else "seriesDesc" === o && r.reverse() + } + var l = nh(e); + return y(r, function (e, n) { + var r = Qu(e).build(t, e, n > 0 ? l.html : 0); + null != r && i.push(r) + }), i.length ? "richText" === t.renderMode ? i.join(l.richText) : ih(i.join(""), n) : void 0 + } + + function eh(t, e, n, i, r) { + if (t) { + var o = Qu(t); + o.planLayout(t); + var a = {useUTC: r, renderMode: n, orderMode: i, markupStyleCreator: e}; + return o.build(a, t, 0) + } + } + + function nh(t) { + var e = t.__gapLevelBetweenSubBlocks; + return {html: pM[e], richText: fM[e]} + } + + function ih(t, e) { + var n = '
', i = "margin: " + e + "px 0 0"; + return '
' + t + n + "
" + } + + function rh(t, e) { + var n = e ? "margin-left:2px" : ""; + return '' + xl(t) + "" + } + + function oh(t, e, n) { + var i = n ? "10px" : "20px", r = e ? "float:right;margin-left:" + i : ""; + return '' + v(t, function (t) { + return xl(t) + }).join("  ") + "" + } + + function ah(t, e) { + return t.markupStyleCreator.wrapRichTextStyle(e, lM) + } + + function sh(t, e, n, i) { + var r = [hM], o = i ? 10 : 20; + return n && r.push({ + padding: [0, 0, 0, o], + align: "right" + }), t.markupStyleCreator.wrapRichTextStyle(e.join(" "), r) + } + + function lh(t, e) { + var n = t.getData().getItemVisual(e, "style"), i = n[t.visualDrawType]; + return Il(i) + } + + function uh(t, e) { + var n = t.get("padding"); + return null != n ? n : "richText" === e ? [8, 10] : 10 + } + + function hh(t) { + var e, n, i, r, o = t.series, a = t.dataIndex, s = t.multipleSeries, l = o.getData(), + u = l.mapDimensionsAll("defaultedTooltip"), h = u.length, c = o.getRawValue(a), p = T(c), f = lh(o, a); + if (h > 1 || p && !h) { + var d = ch(c, o, a, u, f); + e = d.inlineValues, n = d.inlineValueTypes, i = d.blocks, r = d.inlineValues[0] + } else if (h) { + var g = l.getDimensionInfo(u[0]); + r = e = Bu(l, a, u[0]), n = g.type + } else r = e = p ? c[0] : c; + var y = Go(o), v = y && o.name || "", m = l.getName(a), _ = s ? v : m; + return Ju("section", { + header: v, + noHeader: s || !y, + sortParam: r, + blocks: [Ju("nameValue", { + markerType: "item", + markerColor: f, + name: _, + noName: !W(_), + value: e, + valueType: n + })].concat(i || []) + }) + } + + function ch(t, e, n, i, r) { + function o(t, e) { + var n = a.getDimensionInfo(e); + n && n.otherDims.tooltip !== !1 && (s ? h.push(Ju("nameValue", { + markerType: "subItem", + markerColor: r, + name: n.displayName, + value: t, + valueType: n.type + })) : (l.push(t), u.push(n.type))) + } + + var a = e.getData(), s = m(t, function (t, e, n) { + var i = a.getDimensionInfo(n); + return t = t || i && i.tooltip !== !1 && null != i.displayName + }, !1), l = [], u = [], h = []; + return i.length ? y(i, function (t) { + o(Bu(a, n, t), t) + }) : y(t, o), {inlineValues: l, inlineValueTypes: u, blocks: h} + } + + function ph(t, e) { + return t.getName(e) || t.getId(e) + } + + function fh(t) { + var e = t.name; + Go(t) || (t.name = dh(t) || e) + } + + function dh(t) { + var e = t.getRawData(), n = e.mapDimensionsAll("seriesName"), i = []; + return y(n, function (t) { + var n = e.getDimensionInfo(t); + n.displayName && i.push(n.displayName) + }), i.join(" ") + } + + function gh(t) { + return t.model.getRawData().count() + } + + function yh(t) { + var e = t.model; + return e.setData(e.getRawData().cloneShallow()), vh + } + + function vh(t, e) { + e.outputData && t.end > e.outputData.count() && e.model.getRawData().cloneShallow(e.outputData) + } + + function mh(t, e) { + y(n(t.CHANGABLE_METHODS, t.DOWNSAMPLE_METHODS), function (n) { + t.wrapMethod(n, S(_h, e)) + }) + } + + function _h(t, e) { + var n = xh(t); + return n && n.setOutputEnd((e || this).count()), e + } + + function xh(t) { + var e = (t.ecModel || {}).scheduler, n = e && e.getPipeline(t.uid); + if (n) { + var i = n.currentTask; + if (i) { + var r = i.agentStubMap; + r && (i = r.get(t.uid)) + } + return i + } + } + + function wh() { + var t = qo(); + return function (e) { + var n = t(e), i = e.pipelineContext, r = !!n.large, o = !!n.progressiveRender, + a = n.large = !(!i || !i.large), s = n.progressiveRender = !(!i || !i.progressiveRender); + return !(r === a && o === s) && "reset" + } + } + + function bh(t, e, n) { + t && ("emphasis" === e ? La : Pa)(t, n) + } + + function Sh(t, e, n) { + var i = Uo(t, e), r = e && null != e.highlightKey ? Za(e.highlightKey) : null; + null != i ? y(Ao(i), function (e) { + bh(t.getItemGraphicEl(e), n, r) + }) : t.eachItemGraphicEl(function (t) { + bh(t, n, r) + }) + } + + function Th(t) { + return xM(t.model) + } + + function Mh(t) { + var e = t.model, n = t.ecModel, i = t.api, r = t.payload, o = e.pipelineContext.progressiveRender, a = t.view, + s = r && _M(r).updateMethod, l = o ? "incrementalPrepareRender" : s && a[s] ? s : "render"; + return "render" !== l && a[l](e, n, i, r), SM[l] + } + + function Ch(t, e, n) { + function i() { + h = (new Date).getTime(), c = null, t.apply(a, s || []) + } + + var r, o, a, s, l, u = 0, h = 0, c = null; + e = e || 0; + var p = function () { + for (var t = [], p = 0; p < arguments.length; p++) t[p] = arguments[p]; + r = (new Date).getTime(), a = this, s = t; + var f = l || e, d = l || n; + l = null, o = r - (d ? u : h) - f, clearTimeout(c), d ? c = setTimeout(i, f) : o >= 0 ? i() : c = setTimeout(i, -o), u = r + }; + return p.clear = function () { + c && (clearTimeout(c), c = null) + }, p.debounceNextCall = function (t) { + l = t + }, p + } + + function Ih(t, e, n, i) { + var r = t[e]; + if (r) { + var o = r[TM] || r, a = r[CM], s = r[MM]; + if (s !== n || a !== i) { + if (null == n || !i) return t[e] = o; + r = t[e] = Ch(o, n, "debounce" === i), r[TM] = o, r[CM] = i, r[MM] = n + } + return r + } + } + + function Ah(t, e) { + var n = t.visualStyleMapper || AM[e]; + return n ? n : (console.warn("Unkown style type '" + e + "'."), AM.itemStyle) + } + + function Dh(t, e) { + var n = t.visualDrawType || DM[e]; + return n ? n : (console.warn("Unkown style type '" + e + "'."), "fill") + } + + function kh(t, e) { + e = e || {}, c(e, { + text: "loading", + textColor: "#000", + fontSize: "12px", + maskColor: "rgba(255, 255, 255, 0.8)", + showSpinner: !0, + color: "#5470c6", + spinnerRadius: 10, + lineWidth: 5, + zlevel: 0 + }); + var n = new Ox, i = new Gx({style: {fill: e.maskColor}, zlevel: e.zlevel, z: 1e4}); + n.add(i); + var r = e.fontSize + " sans-serif", o = new Gx({ + style: {fill: "none"}, + textContent: new Ew({style: {text: e.text, fill: e.textColor, font: r}}), + textConfig: {position: "right", distance: 10}, + zlevel: e.zlevel, + z: 10001 + }); + n.add(o); + var a; + return e.showSpinner && (a = new Fw({ + shape: {startAngle: -RM / 2, endAngle: -RM / 2 + .1, r: e.spinnerRadius}, + style: {stroke: e.color, lineCap: "round", lineWidth: e.lineWidth}, + zlevel: e.zlevel, + z: 10001 + }), a.animateShape(!0).when(1e3, {endAngle: 3 * RM / 2}).start("circularInOut"), a.animateShape(!0).when(1e3, {startAngle: 3 * RM / 2}).delay(300).start("circularInOut"), n.add(a)), n.resize = function () { + var n = On(e.text, r), s = e.showSpinner ? e.spinnerRadius : 0, + l = (t.getWidth() - 2 * s - (e.showSpinner && n ? 10 : 0) - n) / 2 - (e.showSpinner ? 0 : n / 2), + u = t.getHeight() / 2; + e.showSpinner && a.setShape({cx: l, cy: u}), o.setShape({ + x: l - s, + y: u - s, + width: 2 * s, + height: 2 * s + }), i.setShape({x: 0, y: 0, width: t.getWidth(), height: t.getHeight()}) + }, n.resize(), n + } + + function Lh(t) { + t.overallReset(t.ecModel, t.api, t.payload) + } + + function Ph(t) { + return t.overallProgress && Oh + } + + function Oh() { + this.agent.dirty(), this.getDownstream().dirty() + } + + function Rh() { + this.agent && this.agent.dirty() + } + + function Eh(t) { + return t.plan ? t.plan(t.model, t.ecModel, t.api, t.payload) : null + } + + function zh(t) { + t.useClearVisual && t.data.clearAllVisual(); + var e = t.resetDefines = Ao(t.reset(t.model, t.ecModel, t.api, t.payload)); + return e.length > 1 ? v(e, function (t, e) { + return Bh(e) + }) : zM + } + + function Bh(t) { + return function (e, n) { + var i = n.data, r = n.resetDefines[t]; + if (r && r.dataEach) for (var o = e.start; o < e.end; o++) r.dataEach(i, o); else r && r.progress && r.progress(e, i) + } + } + + function Nh(t) { + return t.data.count() + } + + function Fh(t) { + bM = null; + try { + t(BM, NM) + } catch (e) { + } + return bM + } + + function Hh(t, e) { + for (var n in e.prototype) t[n] = K + } + + function Vh(t, e, n) { + switch (n) { + case"color": + var i = t.getItemVisual(e, "style"); + return i[t.getVisual("drawType")]; + case"opacity": + return t.getItemVisual(e, "style").opacity; + case"symbol": + case"symbolSize": + case"liftZ": + return t.getItemVisual(e, n) + } + } + + function Gh(t, e) { + switch (e) { + case"color": + var n = t.getVisual("style"); + return n[t.getVisual("drawType")]; + case"opacity": + return t.getVisual("style").opacity; + case"symbol": + case"symbolSize": + case"liftZ": + return t.getVisual(e) + } + } + + function Wh(t, e, n, i, r) { + var o = n.width, a = n.height; + switch (t) { + case"top": + i.set(n.x + o / 2, n.y - e), r.set(0, -1); + break; + case"bottom": + i.set(n.x + o / 2, n.y + a + e), r.set(0, 1); + break; + case"left": + i.set(n.x - e, n.y + a / 2), r.set(-1, 0); + break; + case"right": + i.set(n.x + o + e, n.y + a / 2), r.set(1, 0) + } + } + + function Xh(t, e, n, i, r, o, a, s, l) { + a -= t, s -= e; + var u = Math.sqrt(a * a + s * s); + a /= u, s /= u; + var h = a * n + t, c = s * n + e; + if (Math.abs(i - r) % tC < 1e-4) return l[0] = h, l[1] = c, u - n; + if (o) { + var p = i; + i = Ni(r), r = Ni(p) + } else i = Ni(i), r = Ni(r); + i > r && (r += tC); + var f = Math.atan2(s, a); + if (0 > f && (f += tC), f >= i && r >= f || f + tC >= i && r >= f + tC) return l[0] = h, l[1] = c, u - n; + var d = n * Math.cos(i) + t, g = n * Math.sin(i) + e, y = n * Math.cos(r) + t, v = n * Math.sin(r) + e, + m = (d - a) * (d - a) + (g - s) * (g - s), _ = (y - a) * (y - a) + (v - s) * (v - s); + return _ > m ? (l[0] = d, l[1] = g, Math.sqrt(m)) : (l[0] = y, l[1] = v, Math.sqrt(_)) + } + + function Yh(t, e, n, i, r, o, a, s) { + var l = r - t, u = o - e, h = n - t, c = i - e, p = Math.sqrt(h * h + c * c); + h /= p, c /= p; + var f = l * h + u * c, d = f / p; + s && (d = Math.min(Math.max(d, 0), 1)), d *= p; + var g = a[0] = t + d * h, y = a[1] = e + d * c; + return Math.sqrt((g - r) * (g - r) + (y - o) * (y - o)) + } + + function Uh(t, e, n, i, r, o, a) { + 0 > n && (t += n, n = -n), 0 > i && (e += i, i = -i); + var s = t + n, l = e + i, u = a[0] = Math.min(Math.max(r, t), s), h = a[1] = Math.min(Math.max(o, e), l); + return Math.sqrt((u - r) * (u - r) + (h - o) * (h - o)) + } + + function qh(t, e, n) { + var i = Uh(e.x, e.y, e.width, e.height, t.x, t.y, iC); + return n.set(iC[0], iC[1]), i + } + + function jh(t, e, n) { + for (var i, r, o = 0, a = 0, s = 0, l = 0, u = 1 / 0, h = e.data, c = t.x, p = t.y, f = 0; f < h.length;) { + var d = h[f++]; + 1 === f && (o = h[f], a = h[f + 1], s = o, l = a); + var g = u; + switch (d) { + case eC.M: + s = h[f++], l = h[f++], o = s, a = l; + break; + case eC.L: + g = Yh(o, a, h[f], h[f + 1], c, p, iC, !0), o = h[f++], a = h[f++]; + break; + case eC.C: + g = _i(o, a, h[f++], h[f++], h[f++], h[f++], h[f], h[f + 1], c, p, iC), o = h[f++], a = h[f++]; + break; + case eC.Q: + g = Ci(o, a, h[f++], h[f++], h[f], h[f + 1], c, p, iC), o = h[f++], a = h[f++]; + break; + case eC.A: + var y = h[f++], v = h[f++], m = h[f++], _ = h[f++], x = h[f++], w = h[f++]; + f += 1; + var b = !!(1 - h[f++]); + i = Math.cos(x) * m + y, r = Math.sin(x) * _ + v, 1 >= f && (s = i, l = r); + var S = (c - y) * _ / m + y; + g = Xh(y, v, _, x, x + w, b, S, p, iC), o = Math.cos(x + w) * m + y, a = Math.sin(x + w) * _ + v; + break; + case eC.R: + s = o = h[f++], l = a = h[f++]; + var T = h[f++], M = h[f++]; + g = Uh(s, l, T, M, c, p, iC); + break; + case eC.Z: + g = Yh(o, a, s, l, c, p, iC, !0), o = s, a = l + } + u > g && (u = g, n.set(iC[0], iC[1])) + } + return u + } + + function Zh(t, e) { + if (t) { + var n = t.getTextGuideLine(), i = t.getTextContent(); + if (i && n) { + var r = t.textGuideLineConfig || {}, o = [[0, 0], [0, 0], [0, 0]], a = r.candidates || nC, + s = i.getBoundingRect().clone(); + s.applyTransform(i.getComputedTransform()); + var l = 1 / 0, u = r.anchor, h = t.getComputedTransform(), c = h && Ue([], h), + p = e.get("length2") || 0; + u && aC.copy(u); + for (var f = 0; f < a.length; f++) { + var d = a[f]; + Wh(d, 0, s, rC, sC), Pm.scaleAndAdd(oC, rC, sC, p), oC.transform(c); + var g = t.getBoundingRect(), + y = u ? u.distance(oC) : t instanceof xx ? jh(oC, t.path, aC) : qh(oC, g, aC); + l > y && (l = y, oC.transform(h), aC.transform(h), aC.toArray(o[0]), oC.toArray(o[1]), rC.toArray(o[2])) + } + Kh(o, e.get("minTurnAngle")), n.setShape({points: o}) + } + } + } + + function Kh(t, e) { + if (180 >= e && e > 0) { + e = e / 180 * Math.PI, rC.fromArray(t[0]), oC.fromArray(t[1]), aC.fromArray(t[2]), Pm.sub(sC, rC, oC), Pm.sub(lC, aC, oC); + var n = sC.len(), i = lC.len(); + if (!(.001 > n || .001 > i)) { + sC.scale(1 / n), lC.scale(1 / i); + var r = sC.dot(lC), o = Math.cos(e); + if (r > o) { + var a = Yh(oC.x, oC.y, aC.x, aC.y, rC.x, rC.y, uC, !1); + hC.fromArray(uC), hC.scaleAndAdd(lC, a / Math.tan(Math.PI - e)); + var s = aC.x !== oC.x ? (hC.x - oC.x) / (aC.x - oC.x) : (hC.y - oC.y) / (aC.y - oC.y); + if (isNaN(s)) return; + 0 > s ? Pm.copy(hC, oC) : s > 1 && Pm.copy(hC, aC), hC.toArray(t[1]) + } + } + } + } + + function $h(t, e, n) { + if (180 >= n && n > 0) { + n = n / 180 * Math.PI, rC.fromArray(t[0]), oC.fromArray(t[1]), aC.fromArray(t[2]), Pm.sub(sC, oC, rC), Pm.sub(lC, aC, oC); + var i = sC.len(), r = lC.len(); + if (!(.001 > i || .001 > r)) { + sC.scale(1 / i), lC.scale(1 / r); + var o = sC.dot(e), a = Math.cos(n); + if (a > o) { + var s = Yh(oC.x, oC.y, aC.x, aC.y, rC.x, rC.y, uC, !1); + hC.fromArray(uC); + var l = Math.PI / 2, u = Math.acos(lC.dot(e)), h = l + u - n; + if (h >= l) Pm.copy(hC, aC); else { + hC.scaleAndAdd(lC, s / Math.tan(Math.PI / 2 - h)); + var c = aC.x !== oC.x ? (hC.x - oC.x) / (aC.x - oC.x) : (hC.y - oC.y) / (aC.y - oC.y); + if (isNaN(c)) return; + 0 > c ? Pm.copy(hC, oC) : c > 1 && Pm.copy(hC, aC) + } + hC.toArray(t[1]) + } + } + } + } + + function Jh(t, e, n, i) { + var r = "normal" === n, o = r ? t : t.ensureState(n); + o.ignore = e; + var a = i.get("smooth"); + a && a === !0 && (a = .3), o.shape = o.shape || {}, a > 0 && (o.shape.smooth = a); + var s = i.getModel("lineStyle").getLineStyle(); + r ? t.useStyle(s) : o.style = s + } + + function Qh(t, e) { + var n = e.smooth, i = e.points; + if (i) if (t.moveTo(i[0][0], i[0][1]), n > 0 && i.length >= 3) { + var r = Vv(i[0], i[1]), o = Vv(i[1], i[2]); + if (!r || !o) return t.lineTo(i[1][0], i[1][1]), void t.lineTo(i[2][0], i[2][1]); + var a = Math.min(r, o) * n, s = de([], i[1], i[0], a / r), l = de([], i[1], i[2], a / o), + u = de([], s, l, .5); + t.bezierCurveTo(s[0], s[1], s[0], s[1], u[0], u[1]), t.bezierCurveTo(l[0], l[1], l[0], l[1], i[2][0], i[2][1]) + } else for (var h = 1; h < i.length; h++) t.lineTo(i[h][0], i[h][1]) + } + + function tc(t, e, n) { + var i = t.getTextGuideLine(), r = t.getTextContent(); + if (!r) return void (i && t.removeTextGuideLine()); + for (var o = e.normal, a = o.get("show"), s = r.ignore, l = 0; l < Kb.length; l++) { + var u = Kb[l], h = e[u], p = "normal" === u; + if (h) { + var f = h.get("show"), d = p ? s : N(r.states[u] && r.states[u].ignore, s); + if (d || !N(f, a)) { + var g = p ? i : i && i.states.normal; + g && (g.ignore = !0); + continue + } + i || (i = new $x, t.setTextGuideLine(i), p || !s && a || Jh(i, !0, "normal", e.normal), t.stateProxy && (i.stateProxy = t.stateProxy)), Jh(i, !1, u, h) + } + } + if (i) { + c(i.style, n), i.style.fill = null; + var y = o.get("showAbove"), v = t.textGuideLineConfig = t.textGuideLineConfig || {}; + v.showAbove = y || !1, i.buildPath = Qh + } + } + + function ec(t, e) { + e = e || "labelLine"; + for (var n = {normal: t.getModel(e)}, i = 0; i < Zb.length; i++) { + var r = Zb[i]; + n[r] = t.getModel([r, e]) + } + return n + } + + function nc(t) { + for (var e = [], n = 0; n < t.length; n++) { + var i = t[n]; + if (!i.defaultAttr.ignore) { + var r = i.label, o = r.getComputedTransform(), a = r.getBoundingRect(), + s = !o || o[1] < 1e-5 && o[2] < 1e-5, l = r.style.margin || 0, u = a.clone(); + u.applyTransform(o), u.x -= l / 2, u.y -= l / 2, u.width += l, u.height += l; + var h = s ? new _b(a, o) : null; + e.push({ + label: r, + labelLine: i.labelLine, + rect: u, + localRect: a, + obb: h, + priority: i.priority, + defaultAttr: i.defaultAttr, + layoutOption: i.computedLayoutOption, + axisAligned: s, + transform: o + }) + } + } + return e + } + + function ic(t, e, n, i, r, o) { + function a() { + w = S.rect[e] - i, b = r - T.rect[e] - T.rect[n] + } + + function s(t, e, n) { + if (0 > t) { + var i = Math.min(e, -t); + if (i > 0) { + l(i * n, 0, c); + var r = i + t; + 0 > r && u(-r * n, 1) + } else u(-t * n, 1) + } + } + + function l(n, i, r) { + 0 !== n && (d = !0); + for (var o = i; r > o; o++) { + var a = t[o], s = a.rect; + s[e] += n, a.label[e] += n + } + } + + function u(i, r) { + for (var o = [], a = 0, s = 1; c > s; s++) { + var u = t[s - 1].rect, h = Math.max(t[s].rect[e] - u[e] - u[n], 0); + o.push(h), a += h + } + if (a) { + var p = Math.min(Math.abs(i) / a, r); + if (i > 0) for (var s = 0; c - 1 > s; s++) { + var f = o[s] * p; + l(f, 0, s + 1) + } else for (var s = c - 1; s > 0; s--) { + var f = o[s - 1] * p; + l(-f, s, c) + } + } + } + + function h(t) { + var e = 0 > t ? -1 : 1; + t = Math.abs(t); + for (var n = Math.ceil(t / (c - 1)), i = 0; c - 1 > i; i++) if (e > 0 ? l(n, 0, i + 1) : l(-n, c - i - 1, c), t -= n, 0 >= t) return + } + + var c = t.length; + if (!(2 > c)) { + t.sort(function (t, n) { + return t.rect[e] - n.rect[e] + }); + for (var p, f = 0, d = !1, g = [], y = 0, v = 0; c > v; v++) { + var m = t[v], _ = m.rect; + p = _[e] - f, 0 > p && (_[e] -= p, m.label[e] -= p, d = !0); + var x = Math.max(-p, 0); + g.push(x), y += x, f = _[e] + _[n] + } + y > 0 && o && l(-y / c, 0, c); + var w, b, S = t[0], T = t[c - 1]; + return a(), 0 > w && u(-w, .8), 0 > b && u(b, .8), a(), s(w, b, 1), s(b, w, -1), a(), 0 > w && h(-w), 0 > b && h(b), d + } + } + + function rc(t, e, n, i) { + return ic(t, "x", "width", e, n, i) + } + + function oc(t, e, n, i) { + return ic(t, "y", "height", e, n, i) + } + + function ac(t) { + function e(t) { + if (!t.ignore) { + var e = t.ensureState("emphasis"); + null == e.ignore && (e.ignore = !1) + } + t.ignore = !0 + } + + var n = []; + t.sort(function (t, e) { + return e.priority - t.priority + }); + for (var i = new Vm(0, 0, 0, 0), r = 0; r < t.length; r++) { + var o = t[r], a = o.axisAligned, s = o.localRect, l = o.transform, u = o.label, h = o.labelLine; + i.copy(o.rect), i.width -= .1, i.height -= .1, i.x += .05, i.y += .05; + for (var c = o.obb, p = !1, f = 0; f < n.length; f++) { + var d = n[f]; + if (i.intersect(d.rect)) { + if (a && d.axisAligned) { + p = !0; + break + } + if (d.obb || (d.obb = new _b(d.localRect, d.transform)), c || (c = new _b(s, l)), c.intersect(d.obb)) { + p = !0; + break + } + } + } + p ? (e(u), h && e(h)) : (u.attr("ignore", o.defaultAttr.ignore), h && h.attr("ignore", o.defaultAttr.labelGuideIgnore), n.push(o)) + } + } + + function sc(t) { + if (t) { + for (var e = [], n = 0; n < t.length; n++) e.push(t[n].slice()); + return e + } + } + + function lc(t, e) { + var n = t.label, i = e && e.getTextGuideLine(); + return { + dataIndex: t.dataIndex, + dataType: t.dataType, + seriesIndex: t.seriesModel.seriesIndex, + text: t.label.style.text, + rect: t.hostRect, + labelRect: t.rect, + align: n.style.align, + verticalAlign: n.style.verticalAlign, + labelLinePoints: sc(i && i.shape.points) + } + } + + function uc(t, e, n) { + for (var i = 0; i < n.length; i++) { + var r = n[i]; + null != e[r] && (t[r] = e[r]) + } + } + + function hc(t, e) { + function n(e, n) { + var i = []; + return e.eachComponent({mainType: "series", subType: t, query: n}, function (t) { + i.push(t.seriesIndex) + }), i + } + + y([[t + "ToggleSelect", "toggleSelect"], [t + "Select", "select"], [t + "UnSelect", "unselect"]], function (t) { + e(t[0], function (e, i, r) { + e = h({}, e), r.dispatchAction(h(e, {type: t[1], seriesIndex: n(i, e)})) + }) + }) + } + + function cc(t, e, n, i, r) { + var o = t + e; + n.isSilent(o) || i.eachComponent({mainType: "series", subType: "pie"}, function (t) { + for (var e = t.seriesIndex, i = r.selected, a = 0; a < i.length; a++) if (i[a].seriesIndex === e) { + var s = t.getData(), l = Uo(s, r.fromActionPayload); + n.trigger(o, { + type: o, + seriesId: t.id, + name: s.getName(T(l) ? l[0] : l), + selected: h({}, t.option.selectedMap) + }) + } + }) + } + + function pc(t, e, n) { + t.on("selectchanged", function (t) { + t.isFromClick ? (cc("map", "selectchanged", e, n, t), cc("pie", "selectchanged", e, n, t)) : "select" === t.fromAction ? (cc("map", "selected", e, n, t), cc("pie", "selected", e, n, t)) : "unselect" === t.fromAction && (cc("map", "unselected", e, n, t), cc("pie", "unselected", e, n, t)) + }) + } + + function fc(t, e, n) { + var i = null == e.x ? 0 : e.x, r = null == e.x2 ? 1 : e.x2, o = null == e.y ? 0 : e.y, + a = null == e.y2 ? 0 : e.y2; + e.global || (i = i * n.width + n.x, r = r * n.width + n.x, o = o * n.height + n.y, a = a * n.height + n.y), i = isNaN(i) ? 0 : i, r = isNaN(r) ? 1 : r, o = isNaN(o) ? 0 : o, a = isNaN(a) ? 0 : a; + var s = t.createLinearGradient(i, o, r, a); + return s + } + + function dc(t, e, n) { + var i = n.width, r = n.height, o = Math.min(i, r), a = null == e.x ? .5 : e.x, s = null == e.y ? .5 : e.y, + l = null == e.r ? .5 : e.r; + e.global || (a = a * i + n.x, s = s * r + n.y, l *= o); + var u = t.createRadialGradient(a, s, 0, a, s, l); + return u + } + + function gc(t, e, n) { + for (var i = "radial" === e.type ? dc(t, e, n) : fc(t, e, n), r = e.colorStops, o = 0; o < r.length; o++) i.addColorStop(r[o].offset, r[o].color); + return i + } + + function yc(t, e) { + if (t === e || !t && !e) return !1; + if (!t || !e || t.length !== e.length) return !0; + for (var n = 0; n < t.length; n++) if (t[n] !== e[n]) return !0; + return !1 + } + + function vc(t, e) { + return t && "solid" !== t && e > 0 ? (e = e || 1, "dashed" === t ? [4 * e, 2 * e] : "dotted" === t ? [e] : A(t) ? [t] : T(t) ? t : null) : null + } + + function mc(t) { + var e = t.stroke; + return !(null == e || "none" === e || !(t.lineWidth > 0)) + } + + function _c(t) { + var e = t.fill; + return null != e && "none" !== e + } + + function xc(t, e) { + if (null != e.fillOpacity && 1 !== e.fillOpacity) { + var n = t.globalAlpha; + t.globalAlpha = e.fillOpacity * e.opacity, t.fill(), t.globalAlpha = n + } else t.fill() + } + + function wc(t, e) { + if (null != e.strokeOpacity && 1 !== e.strokeOpacity) { + var n = t.globalAlpha; + t.globalAlpha = e.strokeOpacity * e.opacity, t.stroke(), t.globalAlpha = n + } else t.stroke() + } + + function bc(t, e, n) { + var i = Dr(e.image, e.__image, n); + if (Lr(i)) { + var r = t.createPattern(i, e.repeat || "repeat"); + if ("function" == typeof DOMMatrix) { + var o = new DOMMatrix; + o.rotateSelf(0, 0, (e.rotation || 0) / Math.PI * 180), o.scaleSelf(e.scaleX || 1, e.scaleY || 1), o.translateSelf(e.x || 0, e.y || 0), r.setTransform(o) + } + return r + } + } + + function Sc(t, e, n, i) { + var r = mc(n), o = _c(n), a = n.strokePercent, s = 1 > a, l = !e.path; + e.silent && !s || !l || e.createPathProxy(); + var u = e.path || vC; + if (!i) { + var h = n.fill, c = n.stroke, p = o && !!h.colorStops, f = r && !!c.colorStops, d = o && !!h.image, + g = r && !!c.image, y = void 0, m = void 0, _ = void 0, x = void 0, w = void 0; + (p || f) && (w = e.getBoundingRect()), p && (y = e.__dirty ? gc(t, h, w) : e.__canvasFillGradient, e.__canvasFillGradient = y), f && (m = e.__dirty ? gc(t, c, w) : e.__canvasStrokeGradient, e.__canvasStrokeGradient = m), d && (_ = e.__dirty || !e.__canvasFillPattern ? bc(t, h, e) : e.__canvasFillPattern, e.__canvasFillPattern = _), g && (x = e.__dirty || !e.__canvasStrokePattern ? bc(t, c, e) : e.__canvasStrokePattern, e.__canvasStrokePattern = _), p ? t.fillStyle = y : d && (_ ? t.fillStyle = _ : o = !1), f ? t.strokeStyle = m : g && (x ? t.strokeStyle = x : r = !1) + } + var b = n.lineDash && n.lineWidth > 0 && vc(n.lineDash, n.lineWidth), S = n.lineDashOffset, T = !!t.setLineDash, + M = e.getGlobalScale(); + if (u.setScale(M[0], M[1], e.segmentIgnoreThreshold), b) { + var C = n.strokeNoScale && e.getLineScale ? e.getLineScale() : 1; + C && 1 !== C && (b = v(b, function (t) { + return t / C + }), S /= C) + } + var I = !0; + (l || e.__dirty & xx.SHAPE_CHANGED_BIT || b && !T && r) && (u.setDPR(t.dpr), s ? u.setContext(null) : (u.setContext(t), I = !1), u.reset(), b && !T && (u.setLineDash(b), u.setLineDashOffset(S)), e.buildPath(u, e.shape, i), u.toStatic(), e.pathUpdated()), I && u.rebuildPath(t, s ? a : 1), b && T && (t.setLineDash(b), t.lineDashOffset = S), i || (n.strokeFirst ? (r && wc(t, n), o && xc(t, n)) : (o && xc(t, n), r && wc(t, n))), b && T && t.setLineDash([]) + } + + function Tc(t, e, n) { + var i = e.__image = Dr(n.image, e.__image, e, e.onload); + if (i && Lr(i)) { + var r = n.x || 0, o = n.y || 0, a = e.getWidth(), s = e.getHeight(), l = i.width / i.height; + if (null == a && null != s ? a = s * l : null == s && null != a ? s = a / l : null == a && null == s && (a = i.width, s = i.height), n.sWidth && n.sHeight) { + var u = n.sx || 0, h = n.sy || 0; + t.drawImage(i, u, h, n.sWidth, n.sHeight, r, o, a, s) + } else if (n.sx && n.sy) { + var u = n.sx, h = n.sy, c = a - u, p = s - h; + t.drawImage(i, u, h, c, p, r, o, a, s) + } else t.drawImage(i, r, o, a, s) + } + } + + function Mc(t, e, n) { + var i = n.text; + if (null != i && (i += ""), i) { + t.font = n.font || Wm, t.textAlign = n.textAlign, t.textBaseline = n.textBaseline; + var r = void 0; + if (t.setLineDash) { + var o = n.lineDash && n.lineWidth > 0 && vc(n.lineDash, n.lineWidth), a = n.lineDashOffset; + if (o) { + var s = n.strokeNoScale && e.getLineScale ? e.getLineScale() : 1; + s && 1 !== s && (o = v(o, function (t) { + return t / s + }), a /= s), t.setLineDash(o), t.lineDashOffset = a, r = !0 + } + } + n.strokeFirst ? (mc(n) && t.strokeText(i, n.x, n.y), _c(n) && t.fillText(i, n.x, n.y)) : (_c(n) && t.fillText(i, n.x, n.y), mc(n) && t.strokeText(i, n.x, n.y)), r && t.setLineDash([]) + } + } + + function Cc(t, e, n, i, r) { + var o = !1; + if (!i && (n = n || {}, e === n)) return !1; + (i || e.opacity !== n.opacity) && (o || (Oc(t, r), o = !0), t.globalAlpha = null == e.opacity ? w_.opacity : e.opacity), (i || e.blend !== n.blend) && (o || (Oc(t, r), o = !0), t.globalCompositeOperation = e.blend || w_.blend); + for (var a = 0; a < mC.length; a++) { + var s = mC[a]; + (i || e[s] !== n[s]) && (o || (Oc(t, r), o = !0), t[s] = t.dpr * (e[s] || 0)) + } + return (i || e.shadowColor !== n.shadowColor) && (o || (Oc(t, r), o = !0), t.shadowColor = e.shadowColor || w_.shadowColor), o + } + + function Ic(t, e, n, i, r) { + var o = Rc(e, r.inHover), a = i ? null : n && Rc(n, r.inHover) || {}; + if (o === a) return !1; + var s = Cc(t, o, a, i, r); + if ((i || o.fill !== a.fill) && (s || (Oc(t, r), s = !0), t.fillStyle = o.fill), (i || o.stroke !== a.stroke) && (s || (Oc(t, r), s = !0), t.strokeStyle = o.stroke), (i || o.opacity !== a.opacity) && (s || (Oc(t, r), s = !0), t.globalAlpha = null == o.opacity ? 1 : o.opacity), e.hasStroke()) { + var l = o.lineWidth, u = l / (o.strokeNoScale && e && e.getLineScale ? e.getLineScale() : 1); + t.lineWidth !== u && (s || (Oc(t, r), s = !0), t.lineWidth = u) + } + for (var h = 0; h < _C.length; h++) { + var c = _C[h], p = c[0]; + (i || o[p] !== a[p]) && (s || (Oc(t, r), s = !0), t[p] = o[p] || c[1]) + } + return s + } + + function Ac(t, e, n, i, r) { + return Cc(t, Rc(e, r.inHover), n && Rc(n, r.inHover), i, r) + } + + function Dc(t, e) { + var n = e.transform, i = t.dpr || 1; + n ? t.setTransform(i * n[0], i * n[1], i * n[2], i * n[3], i * n[4], i * n[5]) : t.setTransform(i, 0, 0, i, 0, 0) + } + + function kc(t, e, n) { + for (var i = !1, r = 0; r < t.length; r++) { + var o = t[r]; + i = i || o.isZeroArea(), Dc(e, o), e.beginPath(), o.buildPath(e, o.shape), e.clip() + } + n.allClipped = i + } + + function Lc(t, e) { + return t && e ? 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 || e ? !0 : !1 + } + + function Pc(t) { + var e = _c(t), n = mc(t); + return !(t.lineDash || !(+e ^ +n) || e && "string" != typeof t.fill || n && "string" != typeof t.stroke || t.strokePercent < 1 || t.strokeOpacity < 1 || t.fillOpacity < 1) + } + + function Oc(t, e) { + e.batchFill && t.fill(), e.batchStroke && t.stroke(), e.batchFill = "", e.batchStroke = "" + } + + function Rc(t, e) { + return e ? t.__hoverStyle || t.style : t.style + } + + function Ec(t, e) { + zc(t, e, {inHover: !1, viewWidth: 0, viewHeight: 0}, !0) + } + + function zc(t, e, n, i) { + var r = e.transform; + if (!e.shouldBePainted(n.viewWidth, n.viewHeight, !1, !1)) return e.__dirty &= ~n_.REDARAW_BIT, void (e.__isRendered = !1); + var o = e.__clipPaths, a = n.prevElClipPaths, s = !1, l = !1; + if ((!a || yc(o, a)) && (a && a.length && (Oc(t, n), t.restore(), l = s = !0, n.prevElClipPaths = null, n.allClipped = !1, n.prevEl = null), o && o.length && (Oc(t, n), t.save(), kc(o, t, n), s = !0), n.prevElClipPaths = o), n.allClipped) return void (e.__isRendered = !1); + e.beforeBrush && e.beforeBrush(), e.innerBeforeBrush(); + var u = n.prevEl; + u || (l = s = !0); + var h = e instanceof xx && e.autoBatch && Pc(e.style); + s || Lc(r, u.transform) ? (Oc(t, n), Dc(t, e)) : h || Oc(t, n); + var c = Rc(e, n.inHover); + e instanceof xx ? (n.lastDrawType !== xC && (l = !0, n.lastDrawType = xC), Ic(t, e, u, l, n), h && (n.batchFill || n.batchStroke) || t.beginPath(), Sc(t, e, c, h), h && (n.batchFill = c.fill || "", n.batchStroke = c.stroke || "")) : e instanceof ew ? (n.lastDrawType !== bC && (l = !0, n.lastDrawType = bC), Ic(t, e, u, l, n), Mc(t, e, c)) : e instanceof zx ? (n.lastDrawType !== wC && (l = !0, n.lastDrawType = wC), Ac(t, e, u, l, n), Tc(t, e, c)) : e instanceof Mw && (n.lastDrawType !== SC && (l = !0, n.lastDrawType = SC), Bc(t, e, n)), h && i && Oc(t, n), e.innerAfterBrush(), e.afterBrush && e.afterBrush(), n.prevEl = e, e.__dirty = 0, e.__isRendered = !0 + } + + function Bc(t, e, n) { + var i = e.getDisplayables(), r = e.getTemporalDisplayables(); + t.save(); + var o, a, s = { + prevElClipPaths: null, + prevEl: null, + allClipped: !1, + viewWidth: n.viewWidth, + viewHeight: n.viewHeight, + inHover: n.inHover + }; + for (o = e.getCursor(), a = i.length; a > o; o++) { + var l = i[o]; + l.beforeBrush && l.beforeBrush(), l.innerBeforeBrush(), zc(t, l, s, o === a - 1), l.innerAfterBrush(), l.afterBrush && l.afterBrush(), s.prevEl = l + } + for (var u = 0, h = r.length; h > u; u++) { + var l = r[u]; + l.beforeBrush && l.beforeBrush(), l.innerBeforeBrush(), zc(t, l, s, u === h - 1), l.innerAfterBrush(), l.afterBrush && l.afterBrush(), s.prevEl = l + } + e.clearTemporalDisplayables(), e.notClear = !0, t.restore() + } + + function Nc() { + return !1 + } + + function Fc(t, e, n) { + var i = Rv(), r = e.getWidth(), o = e.getHeight(), a = i.style; + return a && (a.position = "absolute", a.left = "0", a.top = "0", a.width = r + "px", a.height = o + "px", i.setAttribute("data-zr-dom-id", t)), i.width = r * n, i.height = o * n, i + } + + function Hc(t) { + return parseInt(t, 10) + } + + function Vc(t) { + return t ? t.__builtin__ ? !0 : "function" != typeof t.resize || "function" != typeof t.refresh ? !1 : !0 : !1 + } + + function Gc(t, e) { + var n = document.createElement("div"); + return n.style.cssText = ["position:relative", "width:" + t + "px", "height:" + e + "px", "padding:0", "margin:0", "border-width:0"].join(";") + ";", n + } + + function Wc(t, e, n) { + for (var i; t && (!e(t) || (i = t, !n));) t = t.__hostTarget || t.parent; + return i + } + + function Xc(t, e) { + if ("image" !== this.type) { + var n = this.style; + this.__isEmptyBrush ? (n.stroke = t, n.fill = e || "#fff", n.lineWidth = 2) : n.fill = t, this.markRedraw() + } + } + + function Yc(t, e, n, i, r, o, a) { + var s = 0 === t.indexOf("empty"); + s && (t = t.substr(5, 1).toLowerCase() + t.substr(6)); + var l; + return l = 0 === t.indexOf("image://") ? rs(t.slice(8), new Vm(e, n, i, r), a ? "center" : "cover") : 0 === t.indexOf("path://") ? is(t.slice(7), {}, new Vm(e, n, i, r), a ? "center" : "cover") : new FC({ + shape: { + symbolType: t, + x: e, + y: n, + width: i, + height: r + } + }), l.__isEmptyBrush = s, l.setColor = Xc, o && l.setColor(o), l + } + + function Uc(t, e) { + function n(t) { + function e() { + for (var t = 1, e = 0, n = m.length; n > e; ++e) t = Co(t, m[e]); + for (var i = 1, e = 0, n = v.length; n > e; ++e) i = Co(i, v[e].length); + t *= i; + var r = _ * m.length * v.length; + return { + width: Math.max(1, Math.min(t, s.maxTileWidth)), + height: Math.max(1, Math.min(r, s.maxTileHeight)) + } + } + + function n() { + function t(t, e, n, a, l) { + var u = o ? 1 : i, h = Yc(l, t * u, e * u, n * u, a * u, s.color, s.symbolKeepAspect); + o ? w.appendChild(r.painter.paintOne(h)) : Ec(d, h) + } + + d && (d.clearRect(0, 0, x.width, x.height), s.backgroundColor && (d.fillStyle = s.backgroundColor, d.fillRect(0, 0, x.width, x.height))); + for (var e = 0, n = 0; n < y.length; ++n) e += y[n]; + if (!(0 >= e)) for (var a = -_, l = 0, u = 0, h = 0; a < b.height;) { + if (l % 2 === 0) { + for (var c = u / 2 % v.length, p = 0, f = 0, m = 0; p < 2 * b.width;) { + for (var S = 0, n = 0; n < g[h].length; ++n) S += g[h][n]; + if (0 >= S) break; + if (f % 2 === 0) { + var T = .5 * (1 - s.symbolSize), M = p + g[h][f] * T, C = a + y[l] * T, + I = g[h][f] * s.symbolSize, A = y[l] * s.symbolSize, D = m / 2 % v[c].length; + t(M, C, I, A, v[c][D]) + } + p += g[h][f], ++m, ++f, f === g[h].length && (f = 0) + } + ++h, h === g.length && (h = 0) + } + a += y[l], ++u, ++l, l === y.length && (l = 0) + } + } + + for (var a = [i], l = !0, u = 0; u < GC.length; ++u) { + var h = s[GC[u]], c = typeof h; + if (null != h && !T(h) && "string" !== c && "number" !== c && "boolean" !== c) { + l = !1; + break + } + a.push(h) + } + var p; + if (l) { + p = a.join(",") + (o ? "-svg" : ""); + var f = VC.get(p); + f && (o ? t.svgElement = f : t.image = f) + } + var d, g = jc(s.dashArrayX), y = Zc(s.dashArrayY), v = qc(s.symbol), m = Kc(g), _ = $c(y), x = !o && Rv(), + w = o && r.painter.createSVGElement("g"), b = e(); + x && (x.width = b.width * i, x.height = b.height * i, d = x.getContext("2d")), n(), l && VC.put(p, x || w), t.image = x, t.svgElement = w, t.svgWidth = b.width, t.svgHeight = b.height + } + + if ("none" === t) return null; + var i = e.getDevicePixelRatio(), r = e.getZr(), o = "svg" === r.painter.type; + t.dirty && HC["delete"](t); + var a = HC.get(t); + if (a) return a; + var s = c(t, { + symbol: "rect", + symbolSize: 1, + symbolKeepAspect: !0, + color: "rgba(0, 0, 0, 0.2)", + backgroundColor: null, + dashArrayX: 5, + dashArrayY: 5, + dashLineOffset: 0, + rotation: 0, + maxTileWidth: 512, + maxTileHeight: 512 + }); + "none" === s.backgroundColor && (s.backgroundColor = null); + var l = {repeat: "repeat"}; + return n(l), l.rotation = s.rotation, l.scaleX = l.scaleY = o ? 1 : 1 / i, HC.set(t, l), t.dirty = !1, l + } + + function qc(t) { + if (!t || 0 === t.length) return [["rect"]]; + if ("string" == typeof t) return [[t]]; + for (var e = !0, n = 0; n < t.length; ++n) if ("string" != typeof t[n]) { + e = !1; + break + } + if (e) return qc([t]); + for (var i = [], n = 0; n < t.length; ++n) i.push("string" == typeof t[n] ? [t[n]] : t[n]); + return i + } + + function jc(t) { + if (!t || 0 === t.length) return [[0, 0]]; + if ("number" == typeof t) { + var e = Math.ceil(t); + return [[e, e]] + } + for (var n = !0, i = 0; i < t.length; ++i) if ("number" != typeof t[i]) { + n = !1; + break + } + if (n) return jc([t]); + for (var r = [], i = 0; i < t.length; ++i) if ("number" == typeof t[i]) { + var e = Math.ceil(t[i]); + r.push([e, e]) + } else { + var e = v(t[i], function (t) { + return Math.ceil(t) + }); + r.push(e.length % 2 === 1 ? e.concat(e) : e) + } + return r + } + + function Zc(t) { + if (!t || "object" == typeof t && 0 === t.length) return [0, 0]; + if ("number" == typeof t) { + var e = Math.ceil(t); + return [e, e] + } + var n = v(t, function (t) { + return Math.ceil(t) + }); + return t.length % 2 ? n.concat(n) : n + } + + function Kc(t) { + return v(t, function (t) { + return $c(t) + }) + } + + function $c(t) { + for (var e = 0, n = 0; n < t.length; ++n) e += t[n]; + return t.length % 2 === 1 ? 2 * e : e + } + + function Jc(t, e) { + t.eachRawSeries(function (n) { + if (!t.isSeriesFiltered(n)) { + var i = n.getData(); + i.hasItemVisual() && i.each(function (t) { + var n = i.getItemVisual(t, "decal"); + if (n) { + var r = i.ensureUniqueItemVisual(t, "style"); + r.decal = Uc(n, e) + } + }); + var r = i.getVisual("decal"); + if (r) { + var o = i.getVisual("style"); + o.decal = Uc(r, e) + } + } + }) + } + + function Qc(t) { + return function () { + for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; + return this.isDisposed() ? void 0 : ep(this, t, e) + } + } + + function tp(t) { + return function () { + for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; + return ep(this, t, e) + } + } + + function ep(t, e, n) { + return n[0] = n[0] && n[0].toLowerCase(), Uv.prototype[e].apply(t, n) + } + + function np(t, e, n) { + var i = ap(t); + if (i) return i; + var r = new WI(t, e, n); + return r.id = "ec_" + iA++, eA[r.id] = r, Ko(t, oA, r.id), FI(r), XC(KI, function (t) { + t(r) + }), r + } + + function ip(t) { + if (T(t)) { + var e = t; + t = null, XC(e, function (e) { + null != e.group && (t = e.group) + }), t = t || "g_" + rA++, XC(e, function (e) { + e.group = t + }) + } + return nA[t] = !0, t + } + + function rp(t) { + nA[t] = !1 + } + + function op(t) { + "string" == typeof t ? t = eA[t] : t instanceof WI || (t = ap(t)), t instanceof WI && !t.isDisposed() && t.dispose() + } + + function ap(t) { + return eA[$o(t, oA)] + } + + function sp(t) { + return eA[t] + } + + function lp(t, e) { + QI[t] = e + } + + function up(t) { + ZI.push(t) + } + + function hp(t, e) { + mp(jI, t, e, QC) + } + + function cp(t) { + t && KI.push(t) + } + + function pp(t) { + t && $I.push(t) + } + + function fp(t, e, n) { + "function" == typeof e && (n = e, e = ""); + var i = UC(t) ? t.type : [t, t = {event: e}][0]; + t.event = (t.event || i).toLowerCase(), e = t.event, WC(gI.test(i) && gI.test(e)), UI[i] || (UI[i] = { + action: n, + actionInfo: t + }), qI[e] = i + } + + function dp(t, e) { + ET.register(t, e) + } + + function gp(t) { + var e = ET.get(t); + return e ? e.getDimensionsInfo ? e.getDimensionsInfo() : e.dimensions.slice() : void 0 + } + + function yp(t, e) { + mp(JI, t, e, eI, "layout") + } + + function vp(t, e) { + mp(JI, t, e, rI, "visual") + } + + function mp(t, e, n, i, r) { + (YC(e) || UC(e)) && (n = e, e = i); + var o = EM.wrapStageHandler(n, r); + o.__prio = e, o.__raw = n, t.push(o) + } + + function _p(t, e) { + tA[t] = e + } + + function xp(t) { + return oT.extend(t) + } + + function wp(t) { + return mM.extend(t) + } + + function bp(t) { + return vM.extend(t) + } + + function Sp(t) { + return wM.extend(t) + } + + function Tp(t) { + r("createCanvas", t) + } + + function Mp(t, e, n) { + ZM.registerMap(t, e, n) + } + + function Cp(t) { + var e = ZM.retrieveMap(t); + return e && e[0] && {geoJson: e[0].geoJSON, specialAreas: e[0].specialAreas} + } + + function Ip(t) { + return null == t ? 0 : t.length || 1 + } + + function Ap(t) { + return t + } + + function Dp(t) { + var e = {}, n = e.encode = {}, i = U(), r = [], o = [], + a = e.userOutput = {dimensionNames: t.dimensions.slice(), encode: {}}; + y(t.dimensions, function (e) { + var s = t.getDimensionInfo(e), l = s.coordDim; + if (l) { + var u = s.coordDimIndex; + kp(n, l)[u] = e, s.isExtraCoord || (i.set(l, 1), Pp(s.type) && (r[0] = e), kp(a.encode, l)[u] = s.index), s.defaultTooltip && o.push(e) + } + cT.each(function (t, e) { + var i = kp(n, e), r = s.otherDims[e]; + null != r && r !== !1 && (i[r] = s.name) + }) + }); + var s = [], l = {}; + i.each(function (t, e) { + var i = n[e]; + l[e] = i[0], s = s.concat(i) + }), e.dataDimsOnCoord = s, e.encodeFirstDimNotExtra = l; + var u = n.label; + u && u.length && (r = u.slice()); + var h = n.tooltip; + return h && h.length ? o = h.slice() : o.length || (o = r.slice()), n.defaultedLabel = r, n.defaultedTooltip = o, e + } + + function kp(t, e) { + return t.hasOwnProperty(e) || (t[e] = []), t[e] + } + + function Lp(t) { + return "category" === t ? "ordinal" : "time" === t ? "time" : "float" + } + + function Pp(t) { + return !("ordinal" === t || "time" === t) + } + + function Op(t, e, n) { + function i(t, e, n) { + null != cT.get(e) ? t.otherDims[e] = n : (t.coordDim = e, t.coordDimIndex = n, a.set(e, !0)) + } + + Su(e) || (e = Mu(e)), n = n || {}, t = (t || []).slice(); + for (var r = (n.dimsDef || []).slice(), o = U(), a = U(), l = [], u = Rp(e, t, r, n.dimCount), p = 0; u > p; p++) { + var f = r[p], d = r[p] = h({}, D(f) ? f : {name: f}), g = d.name, v = l[p] = new TA; + null != g && null == o.get(g) && (v.name = v.displayName = g, o.set(g, p)), null != d.type && (v.type = d.type), null != d.displayName && (v.displayName = d.displayName) + } + var m = n.encodeDef; + !m && n.encodeDefaulter && (m = n.encodeDefaulter(e, u)); + var _ = U(m); + _.each(function (t, e) { + var n = Ao(t).slice(); + if (1 === n.length && !C(n[0]) && n[0] < 0) return void _.set(e, !1); + var r = _.set(e, []); + y(n, function (t, n) { + var a = C(t) ? o.get(t) : t; + null != a && u > a && (r[n] = a, i(l[a], e, n)) + }) + }); + var x = 0; + y(t, function (t) { + var e, n, r, o; + if (C(t)) e = t, o = {}; else { + o = t, e = o.name; + var a = o.ordinalMeta; + o.ordinalMeta = null, o = s(o), o.ordinalMeta = a, n = o.dimsDef, r = o.otherDims, o.name = o.coordDim = o.coordDimIndex = o.dimsDef = o.otherDims = null + } + var u = _.get(e); + if (u !== !1) { + if (u = Ao(u), !u.length) for (var h = 0; h < (n && n.length || 1); h++) { + for (; x < l.length && null != l[x].coordDim;) x++; + x < l.length && u.push(x++) + } + y(u, function (t, a) { + var s = l[t]; + if (i(c(s, o), e, a), null == s.name && n) { + var u = n[a]; + !D(u) && (u = {name: u}), s.name = s.displayName = u.name, s.defaultTooltip = u.defaultTooltip + } + r && c(s.otherDims, r) + }) + } + }); + var w = n.generateCoord, b = n.generateCoordCount, S = null != b; + b = w ? b || 1 : 0; + for (var T = w || "value", M = 0; u > M; M++) { + var v = l[M] = l[M] || new TA, I = v.coordDim; + null == I && (v.coordDim = Ep(T, a, S), v.coordDimIndex = 0, (!w || 0 >= b) && (v.isExtraCoord = !0), b--), null == v.name && (v.name = Ep(v.coordDim, o, !1)), null != v.type || Gl(e, M) !== xT.Must && (!v.isExtraCoord || null == v.otherDims.itemName && null == v.otherDims.seriesName) || (v.type = "ordinal") + } + return l + } + + function Rp(t, e, n, i) { + var r = Math.max(t.dimensionsDetectedCount || 1, e.length, n.length, i || 0); + return y(e, function (t) { + var e; + D(t) && (e = t.dimsDef) && (r = Math.max(r, e.length)) + }), r + } + + function Ep(t, e, n) { + if (n || null != e.get(t)) { + for (var i = 0; null != e.get(t + i);) i++; + t += i + } + return e.set(t, !0), t + } + + function zp(t, e) { + return e = e || {}, Op(e.coordDimensions || [], t, { + dimsDef: e.dimensionsDefine || t.dimensionsDefine, + encodeDef: e.encodeDefine || t.encodeDefine, + dimCount: e.dimensionsCount, + encodeDefaulter: e.encodeDefaulter, + generateCoord: e.generateCoord, + generateCoordCount: e.generateCoordCount + }) + } + + function Bp(t) { + var e = t.get("coordinateSystem"), n = new NA(e), i = FA[e]; + return i ? (i(t, n, n.axisMap, n.categoryAxisMap), n) : void 0 + } + + function Np(t) { + return "category" === t.get("type") + } + + function Fp(t, e, n) { + n = n || {}; + var i, r, o, a, s = n.byIndex, l = n.stackedCoordDimension, u = !(!t || !t.get("stack")); + if (y(e, function (t, n) { + C(t) && (e[n] = t = {name: t}), u && !t.isExtraCoord && (s || i || !t.ordinalMeta || (i = t), r || "ordinal" === t.type || "time" === t.type || l && l !== t.coordDim || (r = t)) + }), !r || s || i || (s = !0), r) { + o = "__\x00ecstackresult", a = "__\x00ecstackedover", i && (i.createInvertedIndices = !0); + var h = r.coordDim, c = r.type, p = 0; + y(e, function (t) { + t.coordDim === h && p++ + }), e.push({ + name: o, + coordDim: h, + coordDimIndex: p, + type: c, + isExtraCoord: !0, + isCalculationCoord: !0 + }), p++, e.push({name: a, coordDim: a, coordDimIndex: p, type: c, isExtraCoord: !0, isCalculationCoord: !0}) + } + return { + stackedDimension: r && r.name, + stackedByDimension: i && i.name, + isStackedByIndex: s, + stackedOverDimension: a, + stackResultDimension: o + } + } + + function Hp(t, e) { + return !!e && e === t.getCalculationInfo("stackedDimension") + } + + function Vp(t, e) { + return Hp(t, e) ? t.getCalculationInfo("stackResultDimension") : e + } + + function Gp(t, e, n) { + n = n || {}, Su(t) || (t = Mu(t)); + var i, r = e.get("coordinateSystem"), o = ET.get(r), a = Bp(e); + a && a.coordSysDims && (i = v(a.coordSysDims, function (t) { + var e = {name: t}, n = a.axisMap.get(t); + if (n) { + var i = n.get("type"); + e.type = Lp(i) + } + return e + })), i || (i = o && (o.getDimensionsInfo ? o.getDimensionsInfo() : o.dimensions.slice()) || ["x", "y"]); + var s, l, u = n.useEncodeDefaulter, h = zp(t, { + coordDimensions: i, + generateCoord: n.generateCoord, + encodeDefaulter: M(u) ? u : u ? S(Nl, i, e) : null + }); + a && y(h, function (t, e) { + var n = t.coordDim, i = a.categoryAxisMap.get(n); + i && (null == s && (s = e), t.ordinalMeta = i.getOrdinalMeta()), null != t.otherDims.itemName && (l = !0) + }), l || null == s || (h[s].otherDims.itemName = 0); + var c = Fp(e, h), p = new BA(h, e); + p.setCalculationInfo(c); + var f = null != s && Wp(t) ? function (t, e, n, i) { + return i === s ? n : this.defaultDimValueGetter(t, e, n, i) + } : null; + return p.hasItemOption = !1, p.initData(t, null, f), p + } + + function Wp(t) { + if (t.sourceFormat === pT) { + var e = Xp(t.data || []); + return null != e && !T(ko(e)) + } + } + + function Xp(t) { + for (var e = 0; e < t.length && null == t[e];) e++; + return t[e] + } + + function Yp(t) { + return D(t) && null != t.value ? t.value : t + "" + } + + function Up(t, e, n, i) { + var r = {}, o = t[1] - t[0], a = r.interval = _o(o / e, !0); + null != n && n > a && (a = r.interval = n), null != i && a > i && (a = r.interval = i); + var s = r.intervalPrecision = qp(a), + l = r.niceTickExtent = [GA(Math.ceil(t[0] / a) * a, s), GA(Math.floor(t[1] / a) * a, s)]; + return Zp(l, t), r + } + + function qp(t) { + return ho(t) + 2 + } + + function jp(t, e, n) { + t[e] = Math.max(Math.min(t[e], n[1]), n[0]) + } + + function Zp(t, e) { + !isFinite(t[0]) && (t[0] = e[0]), !isFinite(t[1]) && (t[1] = e[1]), jp(t, 0, e), jp(t, 1, e), t[0] > t[1] && (t[0] = t[1]) + } + + function Kp(t, e) { + return t >= e[0] && t <= e[1] + } + + function $p(t, e) { + return e[1] === e[0] ? .5 : (t - e[0]) / (e[1] - e[0]) + } + + function Jp(t, e) { + return t * (e[1] - e[0]) + e[0] + } + + function Qp(t) { + return t.get("stack") || UA + t.seriesIndex + } + + function tf(t) { + return t.dim + t.index + } + + function ef(t, e) { + var n = []; + return e.eachSeriesByType(t, function (t) { + lf(t) && !uf(t) && n.push(t) + }), n + } + + function nf(t) { + var e = {}; + y(t, function (t) { + var n = t.coordinateSystem, i = n.getBaseAxis(); + if ("time" === i.type || "value" === i.type) for (var r = t.getData(), o = i.dim + "_" + i.index, a = r.mapDimension(i.dim), s = 0, l = r.count(); l > s; ++s) { + var u = r.get(a, s); + e[o] ? e[o].push(u) : e[o] = [u] + } + }); + var n = {}; + for (var i in e) if (e.hasOwnProperty(i)) { + var r = e[i]; + if (r) { + r.sort(function (t, e) { + return t - e + }); + for (var o = null, a = 1; a < r.length; ++a) { + var s = r[a] - r[a - 1]; + s > 0 && (o = null === o ? s : Math.min(o, s)) + } + n[i] = o + } + } + return n + } + + function rf(t) { + var e = nf(t), n = []; + return y(t, function (t) { + var i, r = t.coordinateSystem, o = r.getBaseAxis(), a = o.getExtent(); + if ("category" === o.type) i = o.getBandWidth(); else if ("value" === o.type || "time" === o.type) { + var s = o.dim + "_" + o.index, l = e[s], u = Math.abs(a[1] - a[0]), h = o.scale.getExtent(), + c = Math.abs(h[1] - h[0]); + i = l ? u / c * l : u + } else { + var p = t.getData(); + i = Math.abs(a[1] - a[0]) / p.count() + } + var f = ao(t.get("barWidth"), i), d = ao(t.get("barMaxWidth"), i), g = ao(t.get("barMinWidth") || 1, i), + y = t.get("barGap"), v = t.get("barCategoryGap"); + n.push({ + bandWidth: i, + barWidth: f, + barMaxWidth: d, + barMinWidth: g, + barGap: y, + barCategoryGap: v, + axisKey: tf(o), + stackId: Qp(t) + }) + }), of(n) + } + + function of(t) { + var e = {}; + y(t, function (t) { + var n = t.axisKey, i = t.bandWidth, r = e[n] || { + bandWidth: i, + remainedWidth: i, + autoWidthCount: 0, + categoryGap: null, + gap: "20%", + stacks: {} + }, o = r.stacks; + e[n] = r; + var a = t.stackId; + o[a] || r.autoWidthCount++, o[a] = o[a] || {width: 0, maxWidth: 0}; + var s = t.barWidth; + s && !o[a].width && (o[a].width = s, s = Math.min(r.remainedWidth, s), r.remainedWidth -= s); + var l = t.barMaxWidth; + l && (o[a].maxWidth = l); + var u = t.barMinWidth; + u && (o[a].minWidth = u); + var h = t.barGap; + null != h && (r.gap = h); + var c = t.barCategoryGap; + null != c && (r.categoryGap = c) + }); + var n = {}; + return y(e, function (t, e) { + n[e] = {}; + var i = t.stacks, r = t.bandWidth, o = t.categoryGap; + if (null == o) { + var a = w(i).length; + o = Math.max(35 - 4 * a, 15) + "%" + } + var s = ao(o, r), l = ao(t.gap, 1), u = t.remainedWidth, h = t.autoWidthCount, + c = (u - s) / (h + (h - 1) * l); + c = Math.max(c, 0), y(i, function (t) { + var e = t.maxWidth, n = t.minWidth; + if (t.width) { + var i = t.width; + e && (i = Math.min(i, e)), n && (i = Math.max(i, n)), t.width = i, u -= i + l * i, h-- + } else { + var i = c; + e && i > e && (i = Math.min(e, u)), n && n > i && (i = n), i !== c && (t.width = i, u -= i + l * i, h--) + } + }), c = (u - s) / (h + (h - 1) * l), c = Math.max(c, 0); + var p, f = 0; + y(i, function (t) { + t.width || (t.width = c), p = t, f += t.width * (1 + l) + }), p && (f -= p.width * l); + var d = -f / 2; + y(i, function (t, i) { + n[e][i] = n[e][i] || {bandWidth: r, offset: d, width: t.width}, d += t.width * (1 + l) + }) + }), n + } + + function af(t, e, n) { + if (t && e) { + var i = t[tf(e)]; + return null != i && null != n ? i[Qp(n)] : i + } + } + + function sf(t, e) { + var n = ef(t, e), i = rf(n), r = {}; + y(n, function (t) { + var e = t.getData(), n = t.coordinateSystem, o = n.getBaseAxis(), a = Qp(t), s = i[tf(o)][a], l = s.offset, + u = s.width, h = n.getOtherAxis(o), c = t.get("barMinHeight") || 0; + r[a] = r[a] || [], e.setLayout({bandWidth: s.bandWidth, offset: l, size: u}); + for (var p = e.mapDimension(h.dim), f = e.mapDimension(o.dim), d = Hp(e, p), g = h.isHorizontal(), y = hf(o, h, d), v = 0, m = e.count(); m > v; v++) { + var _ = e.get(p, v), x = e.get(f, v), w = _ >= 0 ? "p" : "n", b = y; + d && (r[a][x] || (r[a][x] = {p: y, n: y}), b = r[a][x][w]); + var S = void 0, T = void 0, M = void 0, C = void 0; + if (g) { + var I = n.dataToPoint([_, x]); + S = b, T = I[1] + l, M = I[0] - y, C = u, Math.abs(M) < c && (M = (0 > M ? -1 : 1) * c), isNaN(M) || d && (r[a][x][w] += M) + } else { + var I = n.dataToPoint([x, _]); + S = I[0] + l, T = b, M = u, C = I[1] - y, Math.abs(C) < c && (C = (0 >= C ? -1 : 1) * c), isNaN(C) || d && (r[a][x][w] += C) + } + e.setItemLayout(v, {x: S, y: T, width: M, height: C}) + } + }) + } + + function lf(t) { + return t.coordinateSystem && "cartesian2d" === t.coordinateSystem.type + } + + function uf(t) { + return t.pipelineContext && t.pipelineContext.large + } + + function hf(t, e) { + return e.toGlobalCoord(e.dataToCoord("log" === e.type ? 1 : 0)) + } + + function cf(t, e, n, i) { + var r = yo(e), o = yo(n), a = function (t) { + return nl(r, t, i) === nl(o, t, i) + }, s = function () { + return a("year") + }, l = function () { + return s() && a("month") + }, u = function () { + return l() && a("day") + }, h = function () { + return u() && a("hour") + }, c = function () { + return h() && a("minute") + }, p = function () { + return c() && a("second") + }, f = function () { + return p() && a("millisecond") + }; + switch (t) { + case"year": + return s(); + case"month": + return l(); + case"day": + return u(); + case"hour": + return h(); + case"minute": + return c(); + case"second": + return p(); + case"millisecond": + return f() + } + } + + function pf(t) { + return t /= VS, t > 16 ? 16 : t > 7.5 ? 7 : t > 3.5 ? 4 : t > 1.5 ? 2 : 1 + } + + function ff(t) { + var e = 30 * VS; + return t /= e, t > 6 ? 6 : t > 3 ? 3 : t > 2 ? 2 : 1 + } + + function df(t) { + return t /= HS, t > 12 ? 12 : t > 6 ? 6 : t > 3.5 ? 4 : t > 2 ? 2 : 1 + } + + function gf(t, e) { + return t /= e ? FS : NS, t > 30 ? 30 : t > 20 ? 20 : t > 15 ? 15 : t > 10 ? 10 : t > 5 ? 5 : t > 2 ? 2 : 1 + } + + function yf(t) { + return _o(t, !0) + } + + function vf(t, e, n) { + var i = new Date(t); + switch (Ks(e)) { + case"year": + case"month": + i[cl(n)](0); + case"day": + i[pl(n)](1); + case"hour": + i[fl(n)](0); + case"minute": + i[dl(n)](0); + case"second": + i[gl(n)](0), i[yl(n)](0) + } + return i.getTime() + } + + function mf(t, e, n, i) { + function r(t, e, n, r, o, a, s) { + for (var l = new Date(e), u = e, h = l[r](); n > u && u <= i[1];) s.push({value: u}), h += t, l[o](h), u = l.getTime(); + s.push({value: u, notAdd: !0}) + } + + function o(t, o, a) { + var s = [], l = !o.length; + if (!cf(Ks(t), i[0], i[1], n)) { + l && (o = [{value: vf(new Date(i[0]), t, n)}, {value: i[1]}]); + for (var u = 0; u < o.length - 1; u++) { + var h = o[u].value, c = o[u + 1].value; + if (h !== c) { + var p = void 0, f = void 0, d = void 0, g = !1; + switch (t) { + case"year": + p = Math.max(1, Math.round(e / VS / 365)), f = il(n), d = hl(n); + break; + case"half-year": + case"quarter": + case"month": + p = ff(e), f = rl(n), d = cl(n); + break; + case"week": + case"half-week": + case"day": + p = pf(e, 31), f = ol(n), d = pl(n), g = !0; + break; + case"half-day": + case"quarter-day": + case"hour": + p = df(e), f = al(n), d = fl(n); + break; + case"minute": + p = gf(e, !0), f = sl(n), d = dl(n); + break; + case"second": + p = gf(e, !1), f = ll(n), d = gl(n); + break; + case"millisecond": + p = yf(e), f = ul(n), d = yl(n) + } + r(p, h, c, f, d, g, s), "year" === t && a.length > 1 && 0 === u && a.unshift({value: a[0].value - p}) + } + } + for (var u = 0; u < s.length; u++) a.push(s[u]); + return s + } + } + + for (var a = 1e4, s = qS, l = 0, u = [], h = [], c = 0, p = 0, f = 0; f < s.length && l++ < a; ++f) { + var d = Ks(s[f]); + if ($s(s[f])) { + o(s[f], u[u.length - 1] || [], h); + var g = s[f + 1] ? Ks(s[f + 1]) : null; + if (d !== g) { + if (h.length) { + p = c, h.sort(function (t, e) { + return t.value - e.value + }); + for (var y = [], m = 0; m < h.length; ++m) { + var x = h[m].value; + (0 === m || h[m - 1].value !== x) && (y.push(h[m]), x >= i[0] && x <= i[1] && c++) + } + var w = (i[1] - i[0]) / e; + if (c > 1.5 * w && p > w / 1.5) break; + if (u.push(y), c > w || t === s[f]) break + } + h = [] + } + } + } + for (var b = _(v(u, function (t) { + return _(t, function (t) { + return t.value >= i[0] && t.value <= i[1] && !t.notAdd + }) + }), function (t) { + return t.length > 0 + }), S = [], T = b.length - 1, f = 0; f < b.length; ++f) for (var M = b[f], C = 0; C < M.length; ++C) S.push({ + value: M[C].value, + level: T - f + }); + S.sort(function (t, e) { + return t.value - e.value + }); + for (var I = [], f = 0; f < S.length; ++f) (0 === f || S[f].value !== S[f - 1].value) && I.push(S[f]); + return I + } + + function _f(t, e) { + return nD(t, eD(e)) + } + + function xf(t, e, n) { + var i = t.rawExtentInfo; + return i ? i : (i = new uD(t, e, n), t.rawExtentInfo = i, i) + } + + function wf(t, e) { + return null == e ? null : z(e) ? 0 / 0 : t.parse(e) + } + + function bf(t, e) { + var n = t.type, i = xf(t, e, t.getExtent()).calculate(); + t.setBlank(i.isBlank); + var r = i.min, o = i.max, a = e.ecModel; + if (a && "time" === n) { + var s = ef("bar", a), l = !1; + if (y(s, function (t) { + l = l || t.getBaseAxis() === e.axis + }), l) { + var u = rf(s), h = Sf(r, o, e, u); + r = h.min, o = h.max + } + } + return {extent: [r, o], fixMin: i.minFixed, fixMax: i.maxFixed} + } + + function Sf(t, e, n, i) { + var r = n.axis.getExtent(), o = r[1] - r[0], a = af(i, n.axis); + if (void 0 === a) return {min: t, max: e}; + var s = 1 / 0; + y(a, function (t) { + s = Math.min(t.offset, s) + }); + var l = -1 / 0; + y(a, 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 = 1 - (s + l) / o, p = h / c - h; + return e += p * (l / u), t -= p * (s / u), {min: t, max: e} + } + + function Tf(t, e) { + var n = bf(t, e), i = n.extent, r = e.get("splitNumber"); + t instanceof sD && (t.base = e.get("logBase")); + var o = t.type; + t.setExtent(i[0], i[1]), t.niceExtent({ + splitNumber: r, + fixMin: n.fixMin, + fixMax: n.fixMax, + minInterval: "interval" === o || "time" === o ? e.get("minInterval") : null, + maxInterval: "interval" === o || "time" === o ? e.get("maxInterval") : null + }); + var a = e.get("interval"); + null != a && t.setInterval && t.setInterval(a) + } + + function Mf(t, e) { + if (e = e || t.get("type")) switch (e) { + case"category": + return new WA({ + ordinalMeta: t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(), + extent: [1 / 0, -1 / 0] + }); + case"time": + return new $A({locale: t.ecModel.getLocaleModel(), useUTC: t.ecModel.get("useUTC")}); + default: + return new (HA.getClass(e) || YA) + } + } + + function Cf(t) { + var e = t.scale.getExtent(), n = e[0], i = e[1]; + return !(n > 0 && i > 0 || 0 > n && 0 > i) + } + + function If(t) { + var e = t.getLabelModel().get("formatter"), n = "category" === t.type ? t.scale.getExtent()[0] : null; + return "time" === t.scale.type ? function (e) { + return function (n, i) { + return t.scale.getFormattedLabel(n, i, e) + } + }(e) : "string" == typeof e ? function (e) { + return function (n) { + var i = t.scale.getLabel(n), r = e.replace("{value}", null != i ? i : ""); + return r + } + }(e) : "function" == typeof e ? function (e) { + return function (i, r) { + return null != n && (r = i.value - n), e(Af(t, i), r, null != i.level ? {level: i.level} : null) + } + }(e) : function (e) { + return t.scale.getLabel(e) + } + } + + function Af(t, e) { + return "category" === t.type ? t.scale.getLabel(e) : e.value + } + + function Df(t) { + var e = t.model, n = t.scale; + if (e.get(["axisLabel", "show"]) && !n.isBlank()) { + var i, r, o = n.getExtent(); + n instanceof WA ? r = n.count() : (i = n.getTicks(), r = i.length); + var a, s = t.getLabelModel(), l = If(t), u = 1; + r > 40 && (u = Math.ceil(r / 40)); + for (var h = 0; r > h; h += u) { + var c = i ? i[h] : {value: o[0] + h}, p = l(c, h), f = s.getTextRect(p), + d = kf(f, s.get("rotate") || 0); + a ? a.union(d) : a = d + } + return a + } + } + + function kf(t, e) { + var n = e * Math.PI / 180, i = t.width, r = t.height, o = i * Math.abs(Math.cos(n)) + Math.abs(r * Math.sin(n)), + a = i * Math.abs(Math.sin(n)) + Math.abs(r * Math.cos(n)), s = new Vm(t.x, t.y, o, a); + return s + } + + function Lf(t) { + var e = t.get("interval"); + return null == e ? "auto" : e + } + + function Pf(t) { + return "category" === t.type && 0 === Lf(t.getLabelModel()) + } + + function Of(t, e) { + var n = {}; + return y(t.mapDimensionsAll(e), function (e) { + n[Vp(t, e)] = !0 + }), w(n) + } + + function Rf(t, e, n) { + e && y(Of(e, n), function (n) { + var i = e.getApproximateExtent(n); + i[0] < t[0] && (t[0] = i[0]), i[1] > t[1] && (t[1] = i[1]) + }) + } + + function Ef(t) { + return Gp(t.getSource(), t) + } + + function zf(t, e) { + var n = e; + e instanceof AS || (n = new AS(e)); + var i = Mf(n); + return i.setExtent(t[0], t[1]), Tf(i, n), i + } + + function Bf(t) { + d(t, pD) + } + + function Nf(t, e) { + return Math.abs(t - e) < gD + } + + function Ff(t, e, n) { + var i = 0, r = t[0]; + if (!r) return !1; + for (var o = 1; o < t.length; o++) { + var a = t[o]; + i += Hi(r[0], r[1], a[0], a[1], e, n), r = a + } + var s = t[0]; + return Nf(r[0], s[0]) && Nf(r[1], s[1]) || (i += Hi(r[0], r[1], s[0], s[1], e, n)), 0 !== i + } + + function Hf(t) { + if (!t.UTF8Encoding) return t; + var e = t, n = e.UTF8Scale; + null == n && (n = 1024); + for (var i = e.features, r = 0; r < i.length; r++) { + var o = i[r], a = o.geometry; + if ("Polygon" === a.type) for (var s = a.coordinates, l = 0; l < s.length; l++) s[l] = Vf(s[l], a.encodeOffsets[l], n); else if ("MultiPolygon" === a.type) for (var s = a.coordinates, l = 0; l < s.length; l++) for (var u = s[l], h = 0; h < u.length; h++) u[h] = Vf(u[h], a.encodeOffsets[l][h], n) + } + return e.UTF8Encoding = !1, e + } + + function Vf(t, e, n) { + for (var i = [], r = e[0], o = e[1], a = 0; a < t.length; a += 2) { + var s = t.charCodeAt(a) - 64, l = t.charCodeAt(a + 1) - 64; + s = s >> 1 ^ -(1 & s), l = l >> 1 ^ -(1 & l), s += r, l += o, r = s, o = l, i.push([s / n, l / n]) + } + return i + } + + function Gf(t, e) { + return t = Hf(t), v(_(t.features, function (t) { + return t.geometry && t.properties && t.geometry.coordinates.length > 0 + }), function (t) { + var n = t.properties, i = t.geometry, r = []; + if ("Polygon" === i.type) { + var o = i.coordinates; + r.push({type: "polygon", exterior: o[0], interiors: o.slice(1)}) + } + if ("MultiPolygon" === i.type) { + var o = i.coordinates; + y(o, function (t) { + t[0] && r.push({type: "polygon", exterior: t[0], interiors: t.slice(1)}) + }) + } + var a = new yD(n[e || "name"], r, n.cp); + return a.properties = n, a + }) + } + + function Wf(t) { + return "category" === t.type ? Yf(t) : jf(t) + } + + function Xf(t, e) { + return "category" === t.type ? qf(t, e) : { + ticks: v(t.scale.getTicks(), function (t) { + return t.value + }) + } + } + + function Yf(t) { + var e = t.getLabelModel(), n = Uf(t, e); + return !e.get("show") || t.scale.isBlank() ? {labels: [], labelCategoryInterval: n.labelCategoryInterval} : n + } + + function Uf(t, e) { + var n = Zf(t, "labels"), i = Lf(e), r = Kf(n, i); + if (r) return r; + var o, a; + return M(i) ? o = nd(t, i) : (a = "auto" === i ? Jf(t) : i, o = ed(t, a)), $f(n, i, { + labels: o, + labelCategoryInterval: a + }) + } + + function qf(t, e) { + var n = Zf(t, "ticks"), i = Lf(e), r = Kf(n, i); + if (r) return r; + var o, a; + if ((!e.get("show") || t.scale.isBlank()) && (o = []), M(i)) o = nd(t, i, !0); else if ("auto" === i) { + var s = Uf(t, t.getLabelModel()); + a = s.labelCategoryInterval, o = v(s.labels, function (t) { + return t.tickValue + }) + } else a = i, o = ed(t, a, !0); + return $f(n, i, {ticks: o, tickCategoryInterval: a}) + } + + function jf(t) { + var e = t.scale.getTicks(), n = If(t); + return { + labels: v(e, function (e, i) { + return {formattedLabel: n(e, i), rawLabel: t.scale.getLabel(e), tickValue: e.value} + }) + } + } + + function Zf(t, e) { + return vD(t)[e] || (vD(t)[e] = []) + } + + function Kf(t, e) { + for (var n = 0; n < t.length; n++) if (t[n].key === e) return t[n].value + } + + function $f(t, e, n) { + return t.push({key: e, value: n}), n + } + + function Jf(t) { + var e = vD(t).autoInterval; + return null != e ? e : vD(t).autoInterval = t.calculateCategoryInterval() + } + + function Qf(t) { + var e = td(t), n = If(t), i = (e.axisRotate - e.labelRotate) / 180 * Math.PI, r = t.scale, o = r.getExtent(), + a = r.count(); + if (o[1] - o[0] < 1) return 0; + var s = 1; + a > 40 && (s = Math.max(1, Math.floor(a / 40))); + for (var l = o[0], u = t.dataToCoord(l + 1) - t.dataToCoord(l), h = Math.abs(u * Math.cos(i)), c = Math.abs(u * Math.sin(i)), p = 0, f = 0; l <= o[1]; l += s) { + var d = 0, g = 0, y = En(n({value: l}), e.font, "center", "top"); + d = 1.3 * y.width, g = 1.3 * y.height, p = Math.max(p, d, 7), f = Math.max(f, g, 7) + } + var v = p / h, m = f / c; + isNaN(v) && (v = 1 / 0), isNaN(m) && (m = 1 / 0); + var _ = Math.max(0, Math.floor(Math.min(v, m))), x = vD(t.model), w = t.getExtent(), b = x.lastAutoInterval, + S = x.lastTickCount; + return null != b && null != S && Math.abs(b - _) <= 1 && Math.abs(S - a) <= 1 && b > _ && x.axisExtent0 === w[0] && x.axisExtent1 === w[1] ? _ = b : (x.lastTickCount = a, x.lastAutoInterval = _, x.axisExtent0 = w[0], x.axisExtent1 = w[1]), _ + } + + function td(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 ed(t, e, n) { + function i(t) { + var e = {value: t}; + l.push(n ? t : {formattedLabel: r(e), rawLabel: o.getLabel(e), tickValue: t}) + } + + var r = If(t), o = t.scale, a = o.getExtent(), s = t.getLabelModel(), l = [], u = Math.max((e || 0) + 1, 1), + h = a[0], c = o.count(); + 0 !== h && u > 1 && c / u > 2 && (h = Math.round(Math.ceil(h / u) * u)); + var p = Pf(t), f = s.get("showMinLabel") || p, d = s.get("showMaxLabel") || p; + f && h !== a[0] && i(a[0]); + for (var g = h; g <= a[1]; g += u) i(g); + return d && g - u !== a[1] && i(a[1]), l + } + + function nd(t, e, n) { + var i = t.scale, r = If(t), o = []; + return y(i.getTicks(), function (t) { + var a = i.getLabel(t), s = t.value; + e(t.value, a) && o.push(n ? s : {formattedLabel: r(t), rawLabel: a, tickValue: s}) + }), o + } + + function id(t, e) { + var n = t[1] - t[0], i = e, r = n / i / 2; + t[0] += r, t[1] -= r + } + + function rd(t, e, n, i) { + function r(t, e) { + return t = so(t), e = so(e), p ? t > e : e > t + } + + var o = e.length; + if (t.onBand && !n && o) { + var a, s, l = t.getExtent(); + if (1 === o) e[0].coord = l[0], a = e[1] = {coord: l[0]}; else { + var u = e[o - 1].tickValue - e[0].tickValue, h = (e[o - 1].coord - e[0].coord) / u; + y(e, function (t) { + t.coord -= h / 2 + }); + var c = t.scale.getExtent(); + s = 1 + c[1] - e[o - 1].tickValue, a = {coord: e[o - 1].coord + h * s}, e.push(a) + } + var p = l[0] > l[1]; + r(e[0].coord, l[0]) && (i ? e[0].coord = l[0] : e.shift()), i && r(l[0], e[0].coord) && e.unshift({coord: l[0]}), r(l[1], a.coord) && (i ? a.coord = l[1] : e.pop()), i && r(a.coord, l[1]) && e.push({coord: l[1]}) + } + } + + function od(t) { + return "interval" === t.type || "time" === t.type + } + + function ad(t, e, n) { + n = n || {}; + var i = t.coordinateSystem, r = e.axis, o = {}, a = r.getAxesOnZeroOf()[0], s = r.position, + l = a ? "onZero" : s, u = r.dim, h = i.getRect(), c = [h.x, h.x + h.width, h.y, h.y + h.height], + p = {left: 0, right: 1, top: 0, bottom: 1, onZero: 2}, f = e.get("offset") || 0, + d = "x" === u ? [c[2] - f, c[3] + f] : [c[0] - f, c[1] + f]; + if (a) { + var g = a.toGlobalCoord(a.dataToCoord(0)); + d[p.onZero] = Math.max(Math.min(g, d[1]), d[0]) + } + o.position = ["y" === u ? d[p[l]] : c[0], "x" === u ? d[p[l]] : c[3]], o.rotation = Math.PI / 2 * ("x" === u ? 0 : 1); + var y = {top: -1, bottom: 1, left: -1, right: 1}; + o.labelDirection = o.tickDirection = o.nameDirection = y[s], o.labelOffset = a ? d[p[s]] - d[p.onZero] : 0, e.get(["axisTick", "inside"]) && (o.tickDirection = -o.tickDirection), B(n.labelInside, e.get(["axisLabel", "inside"])) && (o.labelDirection = -o.labelDirection); + var v = e.get(["axisLabel", "rotate"]); + return o.labelRotate = "top" === l ? -v : v, o.z2 = 1, o + } + + function sd(t) { + return "cartesian2d" === t.get("coordinateSystem") + } + + function ld(t) { + var e = {xAxisModel: null, yAxisModel: null}; + return y(e, function (n, i) { + var r = i.replace(/Model$/, ""), o = t.getReferringComponents(r, Rb).models[0]; + e[i] = o + }), e + } + + function ud(t, e) { + return t.getCoordSysModel() === e + } + + function hd(t, e, n, i) { + function r(t) { + return t.dim + "_" + t.index + } + + n.getAxesOnZeroOf = function () { + return o ? [o] : [] + }; + var o, a = t[e], s = n.model, l = s.get(["axisLine", "onZero"]), u = s.get(["axisLine", "onZeroAxisIndex"]); + if (l) { + if (null != u) cd(a[u]) && (o = a[u]); else for (var h in a) if (a.hasOwnProperty(h) && cd(a[h]) && !i[r(a[h])]) { + o = a[h]; + break + } + o && (i[r(o)] = !0) + } + } + + function cd(t) { + return t && "category" !== t.type && "time" !== t.type && Cf(t) + } + + function pd(t, e) { + var n = t.getExtent(), i = n[0] + n[1]; + t.toGlobalCoord = "x" === t.dim ? function (t) { + return t + e + } : function (t) { + return i - t + e + }, t.toLocalCoord = "x" === t.dim ? function (t) { + return t - e + } : function (t) { + return i - t + e + } + } + + function fd(t, e, n, i, r) { + var o = t.getArea(), a = o.x, s = o.y, l = o.width, u = o.height, h = n.get(["lineStyle", "width"]) || 2; + a -= h / 2, s -= h / 2, l += h, u += h, a = Math.floor(a), l = Math.round(l); + var c = new Gx({shape: {x: a, y: s, width: l, height: u}}); + if (e) { + var p = t.getBaseAxis(), f = p.isHorizontal(), d = p.inverse; + f ? (d && (c.shape.x += l), c.shape.width = 0) : (d || (c.shape.y += u), c.shape.height = 0); + var g = "function" == typeof r ? function (t) { + r(t, c) + } : null; + cs(c, {shape: {width: l, height: u, x: a, y: s}}, n, null, i, g) + } + return c + } + + function dd(t, e, n) { + var i = t.getArea(), r = so(i.r0, 1), o = so(i.r, 1), a = new bw({ + shape: { + cx: so(t.cx, 1), + cy: so(t.cy, 1), + r0: r, + r: o, + startAngle: i.startAngle, + endAngle: i.endAngle, + clockwise: i.clockwise + } + }); + if (e) { + var s = "angle" === t.getBaseAxis().dim; + s ? a.shape.endAngle = i.startAngle : a.shape.r = r, cs(a, {shape: {endAngle: i.endAngle, r: o}}, n) + } + return a + } + + function gd(t, e, n, i, r) { + return t ? "polar" === t.type ? dd(t, e, n) : "cartesian2d" === t.type ? fd(t, e, n, i, r) : null : null + } + + function yd(t, e) { + return t.type === e + } + + function vd(t, e) { + var n = t.mapDimensionsAll("defaultedLabel"), i = n.length; + if (1 === i) return Bu(t, e, n[0]); + if (i) { + for (var r = [], o = 0; o < n.length; o++) r.push(Bu(t, e, n[o])); + return r.join(" ") + } + } + + function md(t, e) { + var n = t.mapDimensionsAll("defaultedLabel"); + if (!T(e)) return e + ""; + for (var i = [], r = 0; r < n.length; r++) { + var o = t.getDimensionInfo(n[r]); + o && i.push(e[o.index]) + } + return i.join(" ") + } + + function _d(t, e) { + var n = t.getArea && t.getArea(); + if (yd(t, "cartesian2d")) { + var i = t.getBaseAxis(); + if ("category" !== i.type || !i.onBand) { + var r = e.getLayout("bandWidth"); + i.isHorizontal() ? (n.x -= r, n.width += 2 * r) : (n.y -= r, n.height += 2 * r) + } + } + return n + } + + function xd(t, e, n, i, r, o, a, s, l) { + if (n || e) { + var u = void 0, h = void 0; + a ? (h = {x: r.x, width: r.width}, u = {y: r.y, height: r.height}) : (h = { + y: r.y, + height: r.height + }, u = { + x: r.x, + width: r.width + }), l || (s ? hs : cs)(i, {shape: u}, t, o, null), (s ? hs : cs)(i, {shape: h}, e, o) + } + } + + function wd(t) { + return null != t.startAngle && null != t.endAngle && t.startAngle === t.endAngle + } + + function bd(t, e, n, i, r, o, a, s) { + var l = e.getItemVisual(n, "style"); + s || t.setShape("r", i.get(BD) || 0), t.useStyle(l); + var u = i.getShallow("cursor"); + if (u && t.attr("cursor", u), !s) { + var h = a ? r.height > 0 ? "bottom" : "top" : r.width > 0 ? "left" : "right", c = Ps(i); + Ls(t, c, { + labelFetcher: o, + labelDataIndex: n, + defaultText: vd(o.getData(), n), + inheritColor: l.fill, + defaultOpacity: l.opacity, + defaultOutsidePosition: h + }); + var p = t.getTextContent(); + Fs(p, c, o.getRawValue(n), function (t) { + return md(e, t) + }) + } + var f = i.getModel(["emphasis"]); + Xa(t, f.get("focus"), f.get("blurScope")), Ua(t, i), wd(r) && (t.style.fill = "none", t.style.stroke = "none", y(t.states, function (t) { + t.style && (t.style.fill = t.style.stroke = "none") + })) + } + + function Sd(t, e) { + var n = t.get(zD) || 0, i = isNaN(e.width) ? Number.MAX_VALUE : Math.abs(e.width), + r = isNaN(e.height) ? Number.MAX_VALUE : Math.abs(e.height); + return Math.min(n, i, r) + } + + function Td(t, e, n) { + var i = t.getData(), r = [], o = i.getLayout("valueAxisHorizontal") ? 1 : 0; + r[1 - o] = i.getLayout("valueAxisStart"); + var a = i.getLayout("largeDataIndices"), s = i.getLayout("barWidth"), l = t.getModel("backgroundStyle"), + u = t.get("showBackground", !0); + if (u) { + var h = i.getLayout("largeBackgroundPoints"), c = []; + c[1 - o] = i.getLayout("backgroundStart"); + var p = new UD({shape: {points: h}, incremental: !!n, silent: !0, z2: 0}); + p.__startPoint = c, p.__baseDimIdx = o, p.__largeDataIndices = a, p.__barWidth = s, Id(p, l, i), e.add(p) + } + var f = new UD({shape: {points: i.getLayout("largePoints")}, incremental: !!n}); + f.__startPoint = r, f.__baseDimIdx = o, f.__largeDataIndices = a, f.__barWidth = s, e.add(f), Cd(f, t, i), Gb(f).seriesIndex = t.seriesIndex, t.get("silent") || (f.on("mousedown", qD), f.on("mousemove", qD)) + } + + function Md(t, e, n) { + var i = t.__baseDimIdx, r = 1 - i, o = t.shape.points, a = t.__largeDataIndices, s = Math.abs(t.__barWidth / 2), + l = t.__startPoint[r]; + ND[0] = e, ND[1] = n; + for (var u = ND[i], h = ND[1 - i], c = u - s, p = u + s, f = 0, d = o.length / 2; d > f; f++) { + var g = 2 * f, y = o[g + i], v = o[g + r]; + if (y >= c && p >= y && (v >= l ? h >= l && v >= h : h >= v && l >= h)) return a[f] + } + return -1 + } + + function Cd(t, e, n) { + var i = n.getVisual("style"); + t.useStyle(h({}, i)), t.style.fill = null, t.style.stroke = i.fill, t.style.lineWidth = n.getLayout("barWidth") + } + + function Id(t, e, n) { + var i = e.get("borderColor") || e.get("color"), r = e.getItemStyle(); + t.useStyle(r), t.style.fill = null, t.style.stroke = i, t.style.lineWidth = n.getLayout("barWidth") + } + + function Ad(t, e, n) { + if (yd(n, "cartesian2d")) { + var i = e, r = n.getArea(); + return {x: t ? i.x : r.x, y: t ? r.y : i.y, width: t ? i.width : r.width, height: t ? r.height : i.height} + } + var r = n.getArea(), o = e; + return { + cx: r.cx, + cy: r.cy, + r0: t ? r.r0 : o.r0, + r: t ? r.r : o.r, + startAngle: t ? o.startAngle : 0, + endAngle: t ? o.endAngle : 2 * Math.PI + } + } + + function Dd(t, e, n) { + var i = "polar" === t.type ? bw : Gx; + return new i({shape: Ad(e, n, t), silent: !0, z2: 0}) + } + + function kd(t, n, i) { + y(tk, function (r, o) { + var a = l(l({}, QD[o], !0), i, !0), s = function (n) { + function i() { + for (var e = [], i = 0; i < arguments.length; i++) e[i] = arguments[i]; + var r = n.apply(this, e) || this; + return r.type = t + "Axis." + o, r + } + + return e(i, n), i.prototype.mergeDefaultAndTheme = function (t, e) { + var n = Ll(this), i = n ? Ol(t) : {}, r = e.getTheme(); + l(t, r.get(o + "Axis")), l(t, this.getDefaultOption()), t.type = Ld(t), n && Pl(t, i, n) + }, i.prototype.optionUpdated = function () { + var t = this.option; + "category" === t.type && (this.__ordinalMeta = VA.createByAxisModel(this)) + }, i.prototype.getCategories = function (t) { + var e = this.option; + return "category" === e.type ? t ? e.data : this.__ordinalMeta.categories : void 0 + }, i.prototype.getOrdinalMeta = function () { + return this.__ordinalMeta + }, i.type = t + "Axis." + o, i.defaultOption = a, i + }(n); + oT.registerClass(s) + }), oT.registerSubTypeDefaulter(t + "Axis", Ld) + } + + function Ld(t) { + return t.type || (t.data ? "category" : "value") + } + + function Pd(t, e, n, i) { + var r, o, a = fo(n - t), s = i[0] > i[1], l = "start" === e && !s || "start" !== e && s; + return go(a - ik / 2) ? (o = l ? "bottom" : "top", r = "center") : go(a - 1.5 * ik) ? (o = l ? "top" : "bottom", r = "center") : (o = "middle", r = 1.5 * ik > a && a > ik / 2 ? l ? "left" : "right" : l ? "right" : "left"), { + rotation: a, + textAlign: r, + textVerticalAlign: o + } + } + + function Od(t, e, n) { + if (!Pf(t.axis)) { + var i = t.get(["axisLabel", "showMinLabel"]), r = t.get(["axisLabel", "showMaxLabel"]); + e = e || [], n = n || []; + var o = e[0], a = e[1], s = e[e.length - 1], l = e[e.length - 2], u = n[0], h = n[1], c = n[n.length - 1], + p = n[n.length - 2]; + i === !1 ? (Rd(o), Rd(u)) : Ed(o, a) && (i ? (Rd(a), Rd(h)) : (Rd(o), Rd(u))), r === !1 ? (Rd(s), Rd(c)) : Ed(l, s) && (r ? (Rd(l), Rd(p)) : (Rd(s), Rd(c))) + } + } + + function Rd(t) { + t && (t.ignore = !0) + } + + function Ed(t, e) { + var n = t && t.getBoundingRect().clone(), i = e && e.getBoundingRect().clone(); + if (n && i) { + var r = He([]); + return Xe(r, r, -t.rotation), n.applyTransform(Ge([], r, t.getLocalTransform())), i.applyTransform(Ge([], r, e.getLocalTransform())), n.intersect(i) + } + } + + function zd(t) { + return "middle" === t || "center" === t + } + + function Bd(t, e, n, i, r) { + for (var o = [], a = [], s = [], l = 0; l < t.length; l++) { + var u = t[l].coord; + a[0] = u, a[1] = 0, s[0] = u, s[1] = n, e && (ge(a, a, e), ge(s, s, e)); + var h = new qx({ + subPixelOptimize: !0, + shape: {x1: a[0], y1: a[1], x2: s[0], y2: s[1]}, + style: i, + z2: 2, + autoBatch: !0, + silent: !0 + }); + h.anid = r + "_" + t[l].tickValue, o.push(h) + } + return o + } + + function Nd(t, e, n, i) { + var r = n.axis, o = n.getModel("axisTick"), a = o.get("show"); + if ("auto" === a && i.handleAutoShown && (a = i.handleAutoShown("axisTick")), a && !r.scale.isBlank()) { + for (var s = o.getModel("lineStyle"), l = i.tickDirection * o.get("length"), u = r.getTicksCoords(), h = Bd(u, e.transform, l, c(s.getLineStyle(), {stroke: n.get(["axisLine", "lineStyle", "color"])}), "ticks"), p = 0; p < h.length; p++) t.add(h[p]); + return h + } + } + + function Fd(t, e, n, i) { + var r = n.axis, o = n.getModel("minorTick"); + if (o.get("show") && !r.scale.isBlank()) { + var a = r.getMinorTicksCoords(); + if (a.length) for (var s = o.getModel("lineStyle"), l = i * o.get("length"), u = c(s.getLineStyle(), c(n.getModel("axisTick").getLineStyle(), {stroke: n.get(["axisLine", "lineStyle", "color"])})), h = 0; h < a.length; h++) for (var p = Bd(a[h], e.transform, l, u, "minorticks_" + h), f = 0; f < p.length; f++) t.add(p[f]) + } + } + + function Hd(t, e, n, i) { + var r = n.axis, o = B(i.axisLabelShow, n.get(["axisLabel", "show"])); + if (o && !r.scale.isBlank()) { + var a = n.getModel("axisLabel"), s = a.get("margin"), l = r.getViewLabels(), + u = (B(i.labelRotate, a.get("rotate")) || 0) * ik / 180, + h = rk.innerTextLayout(i.rotation, u, i.labelDirection), c = n.getCategories && n.getCategories(!0), + p = [], f = rk.isLabelSilent(n), d = n.get("triggerEvent"); + return y(l, function (o, l) { + var u = "ordinal" === r.scale.type ? r.scale.getRawIndex(o.tickValue) : o.tickValue, + g = o.formattedLabel, y = o.rawLabel, v = a; + if (c && c[u]) { + var m = c[u]; + D(m) && m.textStyle && (v = new AS(m.textStyle, a, n.ecModel)) + } + var _ = v.getTextColor() || n.get(["axisLine", "lineStyle", "color"]), x = r.dataToCoord(u), + w = new Ew({ + x: x, + y: i.labelOffset + i.labelDirection * s, + rotation: h.rotation, + silent: f, + z2: 10, + style: Os(v, { + text: g, + align: v.getShallow("align", !0) || h.textAlign, + verticalAlign: v.getShallow("verticalAlign", !0) || v.getShallow("baseline", !0) || h.textVerticalAlign, + fill: "function" == typeof _ ? _("category" === r.type ? y : "value" === r.type ? u + "" : u, l) : _ + }) + }); + if (w.anid = "label_" + u, d) { + var b = rk.makeAxisEventDataBase(n); + b.targetType = "axisLabel", b.value = y, Gb(w).eventData = b + } + e.add(w), w.updateTransform(), p.push(w), t.add(w), w.decomposeTransform() + }), p + } + } + + function Vd(t, e) { + var n = {axesInfo: {}, seriesInvolved: !1, coordSysAxesInfo: {}, coordSysMap: {}}; + return Gd(n, t, e), n.seriesInvolved && Xd(n, t), n + } + + function Gd(t, e, n) { + var i = e.getComponent("tooltip"), r = e.getComponent("axisPointer"), o = r.get("link", !0) || [], a = []; + y(n.getCoordinateSystems(), function (n) { + function s(i, s, l) { + var h = l.model.getModel("axisPointer", r), p = h.get("show"); + if (p && ("auto" !== p || i || Kd(h))) { + null == s && (s = h.get("triggerTooltip")), h = i ? Wd(l, c, r, e, i, s) : h; + var f = h.get("snap"), d = $d(l.model), g = s || f || "category" === l.type, y = t.axesInfo[d] = { + key: d, + axis: l, + coordSys: n, + axisPointerModel: h, + triggerTooltip: s, + involveSeries: g, + snap: f, + useHandle: Kd(h), + seriesModels: [], + linkGroup: null + }; + u[d] = y, t.seriesInvolved = t.seriesInvolved || g; + var v = Yd(o, l); + if (null != v) { + var m = a[v] || (a[v] = {axesInfo: {}}); + m.axesInfo[d] = y, m.mapper = o[v].mapper, y.linkGroup = m + } + } + } + + if (n.axisPointerEnabled) { + var l = $d(n.model), u = t.coordSysAxesInfo[l] = {}; + t.coordSysMap[l] = n; + var h = n.model, c = h.getModel("tooltip", i); + if (y(n.getAxes(), S(s, !1, null)), n.getTooltipAxes && i && c.get("show")) { + var p = "axis" === c.get("trigger"), f = "cross" === c.get(["axisPointer", "type"]), + d = n.getTooltipAxes(c.get(["axisPointer", "axis"])); + (p || f) && y(d.baseAxes, S(s, f ? "cross" : !0, p)), f && y(d.otherAxes, S(s, "cross", !1)) + } + } + }) + } + + function Wd(t, e, n, i, r, o) { + var a = e.getModel("axisPointer"), + l = ["type", "snap", "lineStyle", "shadowStyle", "label", "animation", "animationDurationUpdate", "animationEasingUpdate", "z"], + u = {}; + y(l, function (t) { + u[t] = s(a.get(t)) + }), u.snap = "category" !== t.type && !!o, "cross" === a.get("type") && (u.type = "line"); + var h = u.label || (u.label = {}); + if (null == h.show && (h.show = !1), "cross" === r) { + var p = a.get(["label", "show"]); + if (h.show = null != p ? p : !0, !o) { + var f = u.lineStyle = a.get("crossStyle"); + f && c(h, f.textStyle) + } + } + return t.model.getModel("axisPointer", new AS(u, n, i)) + } + + function Xd(t, e) { + e.eachSeries(function (e) { + var n = e.coordinateSystem, i = e.get(["tooltip", "trigger"], !0), r = e.get(["tooltip", "show"], !0); + n && "none" !== i && i !== !1 && "item" !== i && r !== !1 && e.get(["axisPointer", "show"], !0) !== !1 && y(t.coordSysAxesInfo[$d(n.model)], function (t) { + var i = t.axis; + n.getAxis(i.dim) === i && (t.seriesModels.push(e), null == t.seriesDataCount && (t.seriesDataCount = 0), t.seriesDataCount += e.getData().count()) + }) + }) + } + + function Yd(t, e) { + for (var n = e.model, i = e.dim, r = 0; r < t.length; r++) { + var o = t[r] || {}; + if (Ud(o[i + "AxisId"], n.id) || Ud(o[i + "AxisIndex"], n.componentIndex) || Ud(o[i + "AxisName"], n.name)) return r + } + } + + function Ud(t, e) { + return "all" === t || T(t) && p(t, e) >= 0 || t === e + } + + function qd(t) { + var e = jd(t); + if (e) { + var n = e.axisPointerModel, i = e.axis.scale, r = n.option, o = n.get("status"), a = n.get("value"); + null != a && (a = i.parse(a)); + var s = Kd(n); + null == o && (r.status = s ? "show" : "hide"); + var l = i.getExtent().slice(); + l[0] > l[1] && l.reverse(), (null == a || a > l[1]) && (a = l[1]), a < l[0] && (a = l[0]), r.value = a, s && (r.status = e.axis.scale.isBlank() ? "hide" : "show") + } + } + + function jd(t) { + var e = (t.ecModel.getComponent("axisPointer") || {}).coordSysAxesInfo; + return e && e.axesInfo[$d(t)] + } + + function Zd(t) { + var e = jd(t); + return e && e.axisPointerModel + } + + function Kd(t) { + return !!t.get(["handle", "show"]) + } + + function $d(t) { + return t.type + "||" + t.id + } + + function Jd(t, e, n, i) { + var r = n.axis; + if (!r.scale.isBlank()) { + var o = n.getModel("splitArea"), a = o.getModel("areaStyle"), s = a.get("color"), + l = i.coordinateSystem.getRect(), u = r.getTicksCoords({tickModel: o, clamp: !0}); + if (u.length) { + var h = s.length, p = lk(t).splitAreaColors, f = U(), d = 0; + if (p) for (var g = 0; g < u.length; g++) { + var y = p.get(u[g].tickValue); + if (null != y) { + d = (y + (h - 1) * g) % h; + break + } + } + var v = r.toGlobalCoord(u[0].coord), m = a.getAreaStyle(); + s = T(s) ? s : [s]; + for (var g = 1; g < u.length; g++) { + var _ = r.toGlobalCoord(u[g].coord), x = void 0, w = void 0, b = void 0, S = void 0; + r.isHorizontal() ? (x = v, w = l.y, b = _ - x, S = l.height, v = x + b) : (x = l.x, w = v, b = l.width, S = _ - w, v = w + S); + var M = u[g - 1].tickValue; + null != M && f.set(M, d), e.add(new Gx({ + anid: null != M ? "area_" + M : null, + shape: {x: x, y: w, width: b, height: S}, + style: c({fill: s[d]}, m), + autoBatch: !0, + silent: !0 + })), d = (d + 1) % h + } + lk(t).splitAreaColors = f + } + } + } + + function Qd(t) { + lk(t).splitAreaColors = null + } + + function tg(t, e, n) { + t.eachSeries(function (t) { + if (sd(t)) { + var i = ld(t), r = i.xAxisModel, o = i.yAxisModel, a = r.axis, s = o.axis, l = a.scale.rawExtentInfo, + u = s.scale.rawExtentInfo, h = t.getData(); + l && l.frozen || u && u.frozen || (n.push({ + seriesModel: t, + xAxisModel: r, + yAxisModel: o + }), Rf(ig(e, r).condExtent, h, a.dim), Rf(ig(e, o).condExtent, h, s.dim)) + } + }) + } + + function eg(t, e) { + y(e, function (e) { + function n(t, e) { + var n = e.condExtent, i = e.rawExtentResult; + "category" === t.type && (n[0] < i.min || i.max < n[1]) && y(Of(p, t.dim), function (e) { + Z(f, e) || (f[e] = !0, h = t) + }) + } + + function i(t, e) { + var n = e.rawExtentResult; + "category" === t.type || n.minFixed && n.maxFixed || y(Of(p, t.dim), function (t) { + Z(f, t) || Z(d, t) || (d[t] = !0, c = e) + }) + } + + var r = e.xAxisModel, o = e.yAxisModel, a = r.axis, s = o.axis, l = ig(t, r), u = ig(t, o); + l.rawExtentInfo = xf(a.scale, r, l.condExtent), u.rawExtentInfo = xf(s.scale, o, u.condExtent), l.rawExtentResult = l.rawExtentInfo.calculate(), u.rawExtentResult = u.rawExtentInfo.calculate(); + var h, c, p = e.seriesModel.getData(), f = {}, d = {}; + n(a, l), n(s, u), i(a, l), i(s, u); + var g = w(f), m = w(d), _ = v(m, function () { + return rg() + }), x = g.length, b = m.length; + if (x && b) { + var S = 1 === x ? g[0] : null, T = 1 === b ? m[0] : null, M = p.count(); + if (S && T) for (var C = 0; M > C; C++) { + var I = p.get(S, C); + h.scale.isInExtentRange(I) && og(_[0], p.get(T, C)) + } else for (var C = 0; M > C; C++) for (var A = 0; x > A; A++) { + var I = p.get(g[A], C); + if (h.scale.isInExtentRange(I)) { + for (var D = 0; b > D; D++) og(_[D], p.get(m[D], C)); + break + } + } + y(_, function (t, e) { + var n = m[e]; + p.setApproximateExtent(t, n); + var i = c.tarExtent = c.tarExtent || rg(); + og(i, t[0]), og(i, t[1]) + }) + } + }) + } + + function ng(t) { + t.each(function (t) { + var e = t.tarExtent; + if (e) { + var n = t.rawExtentResult, i = t.rawExtentInfo; + !n.minFixed && e[0] > n.min && i.modifyDataMinMax("min", e[0]), !n.maxFixed && e[1] < n.max && i.modifyDataMinMax("max", e[1]) + } + }) + } + + function ig(t, e) { + return t.get(e.uid) || t.set(e.uid, {condExtent: rg()}) + } + + function rg() { + return [1 / 0, -1 / 0] + } + + function og(t, e) { + e < t[0] && (t[0] = e), e > t[1] && (t[1] = e) + } + + function ag(t) { + return { + seriesType: t, reset: function (t, e, n) { + var i = t.getData(), r = t.get("sampling"), o = t.coordinateSystem, a = i.count(); + if (a > 10 && "cartesian2d" === o.type && r) { + var s = o.getBaseAxis(), l = o.getOtherAxis(s), u = s.getExtent(), h = n.getDevicePixelRatio(), + c = Math.abs(u[1] - u[0]) * (h || 1), p = Math.round(a / c); + if (p > 1) { + "lttb" === r && t.setData(i.lttbDownSample(i.mapDimension(l.dim), 1 / p)); + var f = void 0; + "string" == typeof r ? f = vk[r] : "function" == typeof r && (f = r), f && t.setData(i.downSample(i.mapDimension(l.dim), 1 / p, f, mk)) + } + } + } + } + } + + function sg(t, e) { + this.parent.drift(t, e) + } + + function lg(t, e, n, i) { + return !(!e || isNaN(e[0]) || isNaN(e[1]) || i.isIgnore && i.isIgnore(n) || i.clipShape && !i.clipShape.contain(e[0], e[1]) || "none" === t.getItemVisual(n, "symbol")) + } + + function ug(t) { + return null == t || D(t) || (t = {isIgnore: t}), t || {} + } + + function hg(t) { + var e = t.hostModel, n = e.getModel("emphasis"); + return { + emphasisItemStyle: n.getModel("itemStyle").getItemStyle(), + blurItemStyle: e.getModel(["blur", "itemStyle"]).getItemStyle(), + selectItemStyle: e.getModel(["select", "itemStyle"]).getItemStyle(), + focus: n.get("focus"), + blurScope: n.get("blurScope"), + symbolRotate: e.get("symbolRotate"), + symbolOffset: e.get("symbolOffset"), + hoverScale: n.get("scale"), + labelStatesModels: Ps(e), + cursorStyle: e.get("cursor") + } + } + + function cg(t, e, n) { + var i = t.getBaseAxis(), r = t.getOtherAxis(i), o = pg(r, n), a = i.dim, s = r.dim, l = e.mapDimension(s), + u = e.mapDimension(a), h = "x" === s || "radius" === s ? 1 : 0, c = v(t.dimensions, function (t) { + return e.mapDimension(t) + }), p = !1, f = e.getCalculationInfo("stackResultDimension"); + return Hp(e, c[0]) && (p = !0, c[0] = f), Hp(e, c[1]) && (p = !0, c[1] = f), { + dataDimsForPoint: c, + valueStart: o, + valueAxisDim: s, + baseAxisDim: a, + stacked: !!p, + valueDim: l, + baseDim: u, + baseDataOffset: h, + stackedOverDimension: e.getCalculationInfo("stackedOverDimension") + } + } + + function pg(t, e) { + var n = 0, i = t.scale.getExtent(); + return "start" === e ? n = i[0] : "end" === e ? n = i[1] : i[0] > 0 ? n = i[0] : i[1] < 0 && (n = i[1]), n + } + + function fg(t, e, n, i) { + var r = 0 / 0; + t.stacked && (r = n.get(n.getCalculationInfo("stackedOverDimension"), i)), isNaN(r) && (r = t.valueStart); + var o = t.baseDataOffset, a = []; + return a[o] = n.get(t.baseDim, i), a[1 - o] = r, e.dataToPoint(a) + } + + function dg(t) { + return T(t) ? bk ? new Float32Array(t) : t : new Sk(t) + } + + function gg(t, e) { + var n = []; + return e.diff(t).add(function (t) { + n.push({cmd: "+", idx: t}) + }).update(function (t, e) { + n.push({cmd: "=", idx: e, idx1: t}) + }).remove(function (t) { + n.push({cmd: "-", idx: t}) + }).execute(), n + } + + function yg(t, e, n, i, r, o, a, s) { + for (var l = gg(t, e), u = [], h = [], c = [], p = [], f = [], d = [], g = [], y = cg(r, e, a), v = cg(o, t, s), m = t.getLayout("points") || [], _ = e.getLayout("points") || [], x = 0; x < l.length; x++) { + var w = l[x], b = !0, S = void 0, T = void 0; + switch (w.cmd) { + case"=": + S = 2 * w.idx, T = 2 * w.idx1; + var M = m[S], C = m[S + 1], I = _[T], A = _[T + 1]; + (isNaN(M) || isNaN(C)) && (M = I, C = A), u.push(M, C), h.push(I, A), c.push(n[S], n[S + 1]), p.push(i[T], i[T + 1]), g.push(e.getRawIndex(w.idx1)); + break; + case"+": + var D = w.idx, k = y.dataDimsForPoint, L = r.dataToPoint([e.get(k[0], D), e.get(k[1], D)]); + T = 2 * D, u.push(L[0], L[1]), h.push(_[T], _[T + 1]); + var P = fg(y, r, e, D); + c.push(P[0], P[1]), p.push(i[T], i[T + 1]), g.push(e.getRawIndex(D)); + break; + case"-": + var O = w.idx, R = t.getRawIndex(O), E = v.dataDimsForPoint; + if (S = 2 * O, R !== O) { + var z = o.dataToPoint([t.get(E[0], O), t.get(E[1], O)]), B = fg(v, o, t, O); + u.push(m[S], m[S + 1]), h.push(z[0], z[1]), c.push(n[S], n[S + 1]), p.push(B[0], B[1]), g.push(R) + } else b = !1 + } + b && (f.push(w), d.push(d.length)) + } + d.sort(function (t, e) { + return g[t] - g[e] + }); + for (var N = u.length, F = dg(N), H = dg(N), V = dg(N), G = dg(N), W = [], x = 0; x < d.length; x++) { + var X = d[x], Y = 2 * x, U = 2 * X; + F[Y] = u[U], F[Y + 1] = u[U + 1], H[Y] = h[U], H[Y + 1] = h[U + 1], V[Y] = c[U], V[Y + 1] = c[U + 1], G[Y] = p[U], G[Y + 1] = p[U + 1], W[x] = f[X] + } + return {current: F, next: H, stackedOnCurrent: V, stackedOnNext: G, status: W} + } + + function vg(t, e) { + return isNaN(t) || isNaN(e) + } + + function mg(t, e, n, i, r, o, a, s, l) { + for (var u, h, c, p, f, d, g = n, y = 0; i > y; y++) { + var v = e[2 * g], m = e[2 * g + 1]; + if (g >= r || 0 > g) break; + if (vg(v, m)) { + if (l) { + g += o; + continue + } + break + } + if (g === n) t[o > 0 ? "moveTo" : "lineTo"](v, m), c = v, p = m; else { + var _ = v - u, x = m - h; + if (.5 > _ * _ + x * x) { + g += o; + continue + } + if (a > 0) { + var w = g + o, b = e[2 * w], S = e[2 * w + 1], T = y + 1; + if (l) for (; vg(b, S) && i > T;) T++, w += o, b = e[2 * w], S = e[2 * w + 1]; + var M = .5, C = 0, I = 0, A = void 0, D = void 0; + if (T >= i || vg(b, S)) f = v, d = m; else { + C = b - u, I = S - h; + var k = v - u, L = b - v, P = m - h, O = S - m, R = void 0, E = void 0; + "x" === s ? (R = Math.abs(k), E = Math.abs(L), f = v - R * a, d = m, A = v + R * a, D = m) : "y" === s ? (R = Math.abs(P), E = Math.abs(O), f = v, d = m - R * a, A = v, D = m + R * a) : (R = Math.sqrt(k * k + P * P), E = Math.sqrt(L * L + O * O), M = E / (E + R), f = v - C * a * (1 - M), d = m - I * a * (1 - M), A = v + C * a * M, D = m + I * a * M, A = Tk(A, Mk(b, v)), D = Tk(D, Mk(S, m)), A = Mk(A, Tk(b, v)), D = Mk(D, Tk(S, m)), C = A - v, I = D - m, f = v - C * R / E, d = m - I * R / E, f = Tk(f, Mk(u, v)), d = Tk(d, Mk(h, m)), f = Mk(f, Tk(u, v)), d = Mk(d, Tk(h, m)), C = v - f, I = m - d, A = v + C * E / R, D = m + I * E / R) + } + t.bezierCurveTo(c, p, f, d, v, m), c = A, p = D + } else t.lineTo(v, m) + } + u = v, h = m, g += o + } + return y + } + + function _g(t, e) { + if (t.length === e.length) { + for (var n = 0; n < t.length; n++) if (t[n] !== e[n]) return; + return !0 + } + } + + function xg(t) { + for (var e = 1 / 0, n = 1 / 0, i = -1 / 0, r = -1 / 0, o = 0; o < t.length;) { + var a = t[o++], s = t[o++]; + isNaN(a) || (e = Math.min(a, e), i = Math.max(a, i)), isNaN(s) || (n = Math.min(s, n), r = Math.max(s, r)) + } + return [[e, n], [i, r]] + } + + function wg(t, e) { + var n = xg(t), i = n[0], r = n[1], o = xg(e), a = o[0], s = o[1]; + return Math.max(Math.abs(i[0] - a[0]), Math.abs(i[1] - a[1]), Math.abs(r[0] - s[0]), Math.abs(r[1] - s[1])) + } + + function bg(t) { + return "number" == typeof t ? t : t ? .5 : 0 + } + + function Sg(t, e, n) { + if (!n.valueDim) return []; + for (var i = e.count(), r = dg(2 * i), o = 0; i > o; o++) { + var a = fg(n, t, e, o); + r[2 * o] = a[0], r[2 * o + 1] = a[1] + } + return r + } + + function Tg(t, e, n) { + for (var i = e.getBaseAxis(), r = "x" === i.dim || "radius" === i.dim ? 0 : 1, o = [], a = 0, s = [], l = [], u = []; a < t.length - 2; a += 2) switch (u[0] = t[a + 2], u[1] = t[a + 3], l[0] = t[a], l[1] = t[a + 1], o.push(l[0], l[1]), n) { + case"end": + s[r] = u[r], s[1 - r] = l[1 - r], o.push(s[0], s[1]); + break; + case"middle": + var h = (l[r] + u[r]) / 2, c = []; + s[r] = c[r] = h, s[1 - r] = l[1 - r], c[1 - r] = u[1 - r], o.push(s[0], s[1]), o.push(c[0], c[1]); + break; + default: + s[r] = l[r], s[1 - r] = u[1 - r], o.push(s[0], s[1]) + } + return o.push(t[a++], t[a++]), o + } + + function Mg(t, e) { + var n = t.getVisual("visualMeta"); + if (n && n.length && t.count() && "cartesian2d" === e.type) { + for (var i, r, o = n.length - 1; o >= 0; o--) { + var a = n[o].dimension, s = t.dimensions[a], l = t.getDimensionInfo(s); + if (i = l && l.coordDim, "x" === i || "y" === i) { + r = n[o]; + break + } + } + if (r) { + var u = e.getAxis(i), h = v(r.stops, function (t) { + return {offset: 0, coord: u.toGlobalCoord(u.dataToCoord(t.value)), color: t.color} + }), c = h.length, p = r.outerColors.slice(); + c && h[0].coord > h[c - 1].coord && (h.reverse(), p.reverse()); + var f = 10, d = h[0].coord - f, g = h[c - 1].coord + f, m = g - d; + if (.001 > m) return "transparent"; + y(h, function (t) { + t.offset = (t.coord - d) / m + }), 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 _ = new Qx(0, 0, 0, 0, h, !0); + return _[i] = d, _[i + "2"] = g, _ + } + } + } + + function Cg(t, e, n) { + var i = t.get("showAllSymbol"), r = "auto" === i; + if (!i || r) { + var o = n.getAxesByScale("ordinal")[0]; + if (o && (!r || !Ig(o, e))) { + var a = e.mapDimension(o.dim), s = {}; + return y(o.getViewLabels(), function (t) { + s[t.tickValue] = 1 + }), function (t) { + return !s.hasOwnProperty(e.get(a, t)) + } + } + } + } + + function Ig(t, e) { + var n = t.getExtent(), i = Math.abs(n[1] - n[0]) / t.scale.count(); + isNaN(i) && (i = 0); + for (var r = e.count(), o = Math.max(1, Math.round(r / 5)), a = 0; r > a; a += o) if (1.5 * xk.getSymbolSize(e, a)[t.isHorizontal() ? 1 : 0] > i) return !1; + return !0 + } + + function Ag(t, e) { + return isNaN(t) || isNaN(e) + } + + function Dg(t) { + for (var e = t.length / 2; e > 0 && Ag(t[2 * e - 2], t[2 * e - 1]); e--) ; + return e - 1 + } + + function kg(t, e) { + return [t[2 * e], t[2 * e + 1]] + } + + function Lg(t, e, n) { + for (var i, r, o = t.length / 2, a = "x" === n ? 0 : 1, s = 0, l = -1, u = 0; o > u; u++) if (r = t[2 * u + a], !isNaN(r) && !isNaN(t[2 * u + 1 - a])) if (0 !== u) { + if (e >= i && r >= e || i >= e && e >= r) { + l = u; + break + } + s = u, i = r + } else i = r; + return {range: [s, l], t: (e - i) / (r - i)} + } + + function Pg(t, e, n, i) { + if (yd(e, "cartesian2d")) { + var r = i.getModel("endLabel"), o = r.get("show"), a = r.get("valueAnimation"), s = i.getData(), + l = {lastFrameIndex: 0}, u = o ? function (n, i) { + t._endLabelOnDuring(n, i, s, l, a, r, e) + } : null, h = e.getBaseAxis().isHorizontal(), c = fd(e, n, i, function () { + var e = t._endLabel; + e && n && null != l.originalX && e.attr({x: l.originalX, y: l.originalY}) + }, u); + if (!i.get("clip", !0)) { + var p = c.shape, f = Math.max(p.width, p.height); + h ? (p.y -= f, p.height += 2 * f) : (p.x -= f, p.width += 2 * f) + } + return u && u(1, c), c + } + return dd(e, n, i) + } + + function Og(t, e) { + var n = e.getBaseAxis(), i = n.isHorizontal(), r = n.inverse, o = i ? r ? "right" : "left" : "center", + a = i ? "middle" : r ? "top" : "bottom"; + return { + normal: { + align: t.get("align") || o, + verticalAlign: t.get("verticalAlign") || a, + padding: t.get("distance") || 0 + } + } + } + + function Rg(t, e) { + return { + seriesType: t, plan: wh(), reset: function (t) { + var n = t.getData(), i = t.coordinateSystem, r = t.pipelineContext, o = e || r.large; + if (i) { + var a = v(i.dimensions, function (t) { + return n.mapDimension(t) + }).slice(0, 2), s = a.length, l = n.getCalculationInfo("stackResultDimension"); + Hp(n, a[0]) && (a[0] = l), Hp(n, a[1]) && (a[1] = l); + var u = n.getDimensionInfo(a[0]), h = n.getDimensionInfo(a[1]), c = u && u.index, p = h && h.index; + return s && { + progress: function (t, e) { + for (var n = t.end - t.start, r = o && dg(n * s), a = [], l = [], u = t.start, h = 0; u < t.end; u++) { + var f = void 0; + if (1 === s) { + var d = e.getByDimIdx(c, u); + f = i.dataToPoint(d, null, l) + } else a[0] = e.getByDimIdx(c, u), a[1] = e.getByDimIdx(p, u), f = i.dataToPoint(a, null, l); + o ? (r[h++] = f[0], r[h++] = f[1]) : e.setItemLayout(u, f.slice()) + } + o && e.setLayout("points", r) + } + } + } + } + } + } + + function Eg(t, e, n) { + e = T(e) && {coordDimensions: e} || h({}, e); + var i = t.getSource(), r = zp(i, e), o = new BA(r, t); + return o.initData(i, n), o + } + + function zg(t, e, n, i, r, o, a, s, l, u) { + function h(t) { + for (var o = t.rB, a = o * o, s = 0; s < t.list.length; s++) { + var l = t.list[s], u = Math.abs(l.label.y - n), h = i + l.len, c = h * h, + p = Math.sqrt((1 - Math.abs(u * u / a)) * c); + l.label.x = e + (p + l.len2) * r + } + } + + function c(t) { + for (var o = {list: [], maxY: 0}, a = { + list: [], + maxY: 0 + }, s = 0; s < t.length; s++) if ("none" === t[s].labelAlignTo) { + var l = t[s], u = l.label.y > n ? a : o, c = Math.abs(l.label.y - n); + if (c > u.maxY) { + var p = l.label.x - e - l.len2 * r, f = i + l.len, + d = f > p ? Math.sqrt(c * c / (1 - p * p / f / f)) : f; + u.rB = d, u.maxY = c + } + u.list.push(l) + } + h(o), h(a) + } + + if (!(t.length < 2)) { + for (var p = t.length, f = 0; p > f; f++) if ("outer" === t[f].position && "labelLine" === t[f].labelAlignTo) { + var d = t[f].label.x - u; + t[f].linePoints[1][0] += d, t[f].label.x = u + } + oc(t, l, l + a) && c(t) + } + } + + function Bg(t, e, n, i, r, o, a, s) { + for (var l = [], u = [], h = Number.MAX_VALUE, c = -Number.MAX_VALUE, p = 0; p < t.length; p++) { + var f = t[p].label; + Ng(t[p]) || (f.x < e ? (h = Math.min(h, f.x), l.push(t[p])) : (c = Math.max(c, f.x), u.push(t[p]))) + } + zg(u, e, n, i, 1, r, o, a, s, c), zg(l, e, n, i, -1, r, o, a, s, h); + for (var p = 0; p < t.length; p++) { + var d = t[p], f = d.label; + if (!Ng(d)) { + var g = d.linePoints; + if (g) { + var y = "edge" === d.labelAlignTo, v = d.rect.width, m = void 0; + m = y ? f.x < e ? g[2][0] - d.labelDistance - a - d.edgeDistance : a + r - d.edgeDistance - g[2][0] - d.labelDistance : f.x < e ? f.x - a - d.bleedMargin : a + r - f.x - d.bleedMargin, m < d.rect.width && (d.label.style.width = m, "edge" === d.labelAlignTo && (v = m)); + var _ = g[1][0] - g[2][0]; + y ? g[2][0] = f.x < e ? a + d.edgeDistance + v + d.labelDistance : a + r - d.edgeDistance - v - d.labelDistance : (g[2][0] = f.x < e ? f.x + d.labelDistance : f.x - d.labelDistance, g[1][0] = g[2][0] + _), g[1][1] = g[2][1] = f.y + } + } + } + } + + function Ng(t) { + return "center" === t.position + } + + function Fg(t) { + function e(t) { + t.ignore = !0 + } + + function n(t) { + if (!t.ignore) return !0; + for (var e in t.states) if (t.states[e].ignore === !1) return !0; + return !1 + } + + var i, r, o = t.getData(), a = [], s = !1, l = (t.get("minShowLabelAngle") || 0) * Ok, + u = o.getLayout("viewRect"), h = o.getLayout("r"), c = u.width, p = u.x, f = u.y, d = u.height; + o.each(function (t) { + var u = o.getItemGraphicEl(t), f = u.shape, d = u.getTextContent(), g = u.getTextGuideLine(), + v = o.getItemModel(t), m = v.getModel("label"), + _ = m.get("position") || v.get(["emphasis", "label", "position"]), x = m.get("distanceToLabelLine"), + w = m.get("alignTo"), b = ao(m.get("edgeDistance"), c), S = m.get("bleedMargin"), + T = v.getModel("labelLine"), M = T.get("length"); + M = ao(M, c); + var C = T.get("length2"); + if (C = ao(C, c), Math.abs(f.endAngle - f.startAngle) < l) return y(d.states, e), void (d.ignore = !0); + if (n(d)) { + var I, A, D, k, L = (f.startAngle + f.endAngle) / 2, P = Math.cos(L), O = Math.sin(L); + i = f.cx, r = f.cy; + var R = "inside" === _ || "inner" === _; + if ("center" === _) I = f.cx, A = f.cy, k = "center"; else { + var E = (R ? (f.r + f.r0) / 2 * P : f.r * P) + i, z = (R ? (f.r + f.r0) / 2 * O : f.r * O) + r; + if (I = E + 3 * P, A = z + 3 * O, !R) { + var B = E + P * (M + h - f.r), N = z + O * (M + h - f.r), F = B + (0 > P ? -1 : 1) * C, H = N; + I = "edge" === w ? 0 > P ? p + b : p + c - b : F + (0 > P ? -x : x), A = H, D = [[E, z], [B, N], [F, H]] + } + k = R ? "center" : "edge" === w ? P > 0 ? "right" : "left" : P > 0 ? "left" : "right" + } + var V, G = m.get("rotate"); + if (V = "number" == typeof G ? G * (Math.PI / 180) : G ? 0 > P ? -L + Math.PI : -L : 0, s = !!V, d.x = I, d.y = A, d.rotation = V, d.setStyle({verticalAlign: "middle"}), R) { + d.setStyle({align: k}); + var W = d.states.select; + W && (W.x += d.x, W.y += d.y) + } else { + var X = d.getBoundingRect().clone(); + X.applyTransform(d.getComputedTransform()); + var Y = (d.style.margin || 0) + 2.1; + X.y -= Y / 2, X.height += Y, a.push({ + label: d, + labelLine: g, + position: _, + len: M, + len2: C, + minTurnAngle: T.get("minTurnAngle"), + maxSurfaceAngle: T.get("maxSurfaceAngle"), + surfaceNormal: new Pm(P, O), + linePoints: D, + textAlign: k, + labelDistance: x, + labelAlignTo: w, + edgeDistance: b, + bleedMargin: S, + rect: X + }) + } + u.setTextConfig({inside: R}) + } + }), !s && t.get("avoidLabelOverlap") && Bg(a, i, r, h, c, d, p, f); + for (var g = 0; g < a.length; g++) { + var v = a[g], m = v.label, _ = v.labelLine, x = isNaN(m.x) || isNaN(m.y); + if (m) { + m.setStyle({align: v.textAlign}), x && (y(m.states, e), m.ignore = !0); + var w = m.states.select; + w && (w.x += m.x, w.y += m.y) + } + if (_) { + var b = v.linePoints; + x || !b ? (y(_.states, e), _.ignore = !0) : (Kh(b, v.minTurnAngle), $h(b, v.surfaceNormal, v.maxSurfaceAngle), _.setShape({points: b}), m.__hostTarget.textGuideLineConfig = {anchor: new Pm(b[0][0], b[0][1])}) + } + } + } + + function Hg(t, e) { + var n = t.get("borderRadius"); + return null == n ? null : (T(n) || (n = [n, n]), { + innerCornerRadius: Fn(n[0], e.r0), + cornerRadius: Fn(n[1], e.r) + }) + } + + function Vg(t, e) { + return kl(t.getBoxLayoutParams(), {width: e.getWidth(), height: e.getHeight()}) + } + + function Gg(t, e, n) { + e.eachSeriesByType(t, function (t) { + var e = t.getData(), i = e.mapDimension("value"), r = Vg(t, n), o = t.get("center"), a = t.get("radius"); + T(a) || (a = [0, a]), T(o) || (o = [o, o]); + var s = ao(r.width, n.getWidth()), l = ao(r.height, n.getHeight()), u = Math.min(s, l), + h = ao(o[0], s) + r.x, c = ao(o[1], l) + r.y, p = ao(a[0], u / 2), f = ao(a[1], u / 2), + d = -t.get("startAngle") * Bk, g = t.get("minAngle") * Bk, y = 0; + e.each(i, function (t) { + !isNaN(t) && y++ + }); + var v = e.getSum(i), m = Math.PI / (v || y) * 2, _ = t.get("clockwise"), x = t.get("roseType"), + w = t.get("stillShowZeroSum"), b = e.getDataExtent(i); + b[0] = 0; + var S = zk, M = 0, C = d, I = _ ? 1 : -1; + if (e.setLayout({viewRect: r, r: f}), e.each(i, function (t, n) { + var i; + if (isNaN(t)) return void e.setItemLayout(n, { + angle: 0 / 0, + startAngle: 0 / 0, + endAngle: 0 / 0, + clockwise: _, + cx: h, + cy: c, + r0: p, + r: x ? 0 / 0 : f + }); + i = "area" !== x ? 0 === v && w ? m : t * m : zk / y, g > i ? (i = g, S -= g) : M += t; + var r = C + I * i; + e.setItemLayout(n, { + angle: i, + startAngle: C, + endAngle: r, + clockwise: _, + cx: h, + cy: c, + r0: p, + r: x ? oo(t, b, [p, f]) : f + }), C = r + }), zk > S && y) if (.001 >= S) { + var A = zk / y; + e.each(i, function (t, n) { + if (!isNaN(t)) { + var i = e.getItemLayout(n); + i.angle = A, i.startAngle = d + I * n * A, i.endAngle = d + I * (n + 1) * A + } + }) + } else m = S / M, C = d, e.each(i, function (t, n) { + if (!isNaN(t)) { + var i = e.getItemLayout(n), r = i.angle === g ? g : t * m; + i.startAngle = C, i.endAngle = C + I * r, C += I * r + } + }) + }) + } + + function Wg(t) { + return { + seriesType: t, reset: function (t, e) { + var n = e.findComponents({mainType: "legend"}); + if (n && n.length) { + var i = t.getData(); + i.filterSelf(function (t) { + for (var e = i.getName(t), r = 0; r < n.length; r++) if (!n[r].isSelected(e)) return !1; + return !0 + }) + } + } + } + } + + function Xg(t) { + var e = t.seriesModel; + return e ? e.coordinateSystem : null + } + + function Yg(t, e) { + "china" === t && e.push(new yD("南海诸岛", v(Vk, function (t) { + return {type: "polygon", exterior: t} + }), Hk)) + } + + function Ug(t, e) { + if ("china" === t) { + var n = Xk[e.name]; + if (n) { + var i = e.center; + i[0] += n[0] / 10.5, i[1] += -n[1] / 14 + } + } + } + + function qg(t, e) { + if ("world" === t) { + var n = Yk[e.name]; + if (n) { + var i = e.center; + i[0] = n[0], i[1] = n[1] + } + } + } + + function jg(t, e) { + "china" === t && "台湾" === e.name && e.geometries.push({type: "polygon", exterior: Uk[0]}) + } + + function Zg(t) { + for (var e, n = 0; n < t.length; n++) { + var i = t[n].getBoundingRect(); + e = e || i.clone(), e.union(i) + } + return e + } + + function Kg(t, e) { + var n, i, r = t.svgXML; + try { + n = r && Tr(r, {ignoreViewBox: !0, ignoreRootClip: !0}) || {}, i = n.root, G(null != i) + } catch (o) { + throw new Error("Invalid svg format\n" + o.message) + } + var a = n.width, s = n.height, l = n.viewBoxRect; + if (e || (e = null == a || null == s ? i.getBoundingRect() : new Vm(0, 0, 0, 0), null != a && (e.width = a), null != s && (e.height = s)), l) { + var u = Sr(l, e.width, e.height), h = i; + i = new Ox, i.add(h), h.scaleX = h.scaleY = u.scale, h.x = u.x, h.y = u.y + } + return i.setClipPath(new Gx({shape: e.plain()})), {root: i, boundingRect: e} + } + + function $g(t) { + var e = ZM.retrieveMap(t) || []; + return e + } + + function Jg(t) { + var e = t.geoModel, n = t.seriesModel; + return e ? e.coordinateSystem : n ? n.coordinateSystem || (n.getReferringComponents("geo", Rb).models[0] || {}).coordinateSystem : null + } + + function Qg(t, e) { + var n = t.get("boundingCoords"); + if (null != n) { + var i = n[0], r = n[1]; + isNaN(i[0]) || isNaN(i[1]) || isNaN(r[0]) || isNaN(r[1]) || this.setBoundingRect(i[0], i[1], r[0] - i[0], r[1] - i[1]) + } + var o, a, s = this.getBoundingRect(), l = t.get("layoutCenter"), u = t.get("layoutSize"), h = e.getWidth(), + c = e.getHeight(), p = s.width / s.height * this.aspectScale, f = !1; + l && u && (o = [ao(l[0], h), ao(l[1], c)], a = ao(u, Math.min(h, c)), isNaN(o[0]) || isNaN(o[1]) || isNaN(a) || (f = !0)); + var d; + if (f) d = {}, p > 1 ? (d.width = a, d.height = a / p) : (d.height = a, d.width = a * p), d.y = o[1] - d.height / 2, d.x = o[0] - d.width / 2; else { + var g = t.getBoxLayoutParams(); + g.aspect = p, d = kl(g, {width: h, height: c}) + } + this.setViewRect(d.x, d.y, d.width, d.height), this.setCenter(t.get("center")), this.setZoom(t.get("zoom")) + } + + function ty(t, e) { + y(e.get("geoCoord"), function (e, n) { + t.addGeoCoord(n, e) + }) + } + + function ey(t, e) { + return !!ny(t)[e] + } + + function ny(t) { + return t[nL] || (t[nL] = {}) + } + + function iy(t, e, n, i, r) { + t.pointerChecker && t.pointerChecker(i, r.originX, r.originY) && (Qv(i.event), ry(t, e, n, i, r)) + } + + function ry(t, e, n, i, r) { + r.isAvailableBehavior = Ev(oy, null, n, i), t.trigger(e, r) + } + + function oy(t, e, n) { + var i = n[t]; + return !t || i && (!C(i) || e.event[i + "Key"]) + } + + function ay(t, e, n) { + var i = t.target; + i.x += e, i.y += n, i.dirty() + } + + function sy(t, e, n, i) { + var r = t.target, o = t.zoomLimit, a = t.zoom = t.zoom || 1; + if (a *= e, o) { + var s = o.min || 0, l = o.max || 1 / 0; + a = Math.max(Math.min(l, a), s) + } + var u = a / t.zoom; + t.zoom = a, r.x -= (n - r.x) * (u - 1), r.y -= (i - r.y) * (u - 1), r.scaleX *= u, r.scaleY *= u, r.dirty() + } + + function ly(t, e, n) { + var i = e.getComponentByElement(t.topTarget), r = i && i.coordinateSystem; + return i && i !== n && !rL.hasOwnProperty(i.mainType) && r && r.model !== n + } + + function uy(t) { + var e = t.getItemStyle(), n = t.get("areaColor"); + return null != n && (e.fill = n), e + } + + function hy(t, e, n) { + var i = t.getZoom(), r = t.getCenter(), o = e.zoom, a = t.dataToPoint(r); + if (null != e.dx && null != e.dy && (a[0] -= e.dx, a[1] -= e.dy, t.setCenter(t.pointToData(a))), null != o) { + if (n) { + var s = n.min || 0, l = n.max || 1 / 0; + o = Math.max(Math.min(i * o, l), s) / i + } + t.scaleX *= o, t.scaleY *= o; + var u = (e.originX - t.x) * (o - 1), h = (e.originY - t.y) * (o - 1); + t.x -= u, t.y -= h, t.updateTransform(), t.setCenter(t.pointToData(a)), t.setZoom(o * i) + } + return {center: t.getCenter(), zoom: t.getZoom()} + } + + function cy(t, e) { + e.update = "geo:updateSelectStatus", fp(e, function (e, n) { + var i = {}; + return n.eachComponent({mainType: "geo", query: e}, function (n) { + n[t](e.name); + var r = n.coordinateSystem; + y(r.regions, function (t) { + i[t.name] = n.isSelected(t.name) || !1 + }) + }), {selected: i, name: e.name} + }) + } + + function py(t, e, n) { + var i, r = {}, o = "toggleSelected" === t; + return n.eachComponent("legend", function (n) { + o && null != i ? n[i ? "select" : "unSelect"](e.name) : "allSelect" === t || "inverseSelect" === t ? n[t]() : (n[t](e.name), i = n.isSelected(e.name)); + var a = n.getData(); + y(a, function (t) { + var e = t.get("name"); + if ("\n" !== e && "" !== e) { + var i = n.isSelected(e); + r[e] = r.hasOwnProperty(e) ? r[e] && i : i + } + }) + }), "allSelect" === t || "inverseSelect" === t ? {selected: r} : {name: e.name, selected: r} + } + + function fy(t, e) { + var n = jS(e.get("padding")), i = e.getItemStyle(["color", "opacity"]); + return i.fill = e.get("backgroundColor"), t = new Gx({ + shape: { + x: t.x - n[3], + y: t.y - n[0], + width: t.width + n[1] + n[3], + height: t.height + n[0] + n[2], + r: e.get("borderRadius") + }, style: i, silent: !0, z2: -1 + }) + } + + function dy(t, e, n, i, r, o, a) { + var s; + return "line" !== e && e.indexOf("empty") < 0 ? (s = n.getItemStyle(), t.style.stroke = i, t.style.decal = o, a || (s.stroke = r)) : s = n.getItemStyle(["borderWidth", "borderColor"]), t.setStyle(s), t + } + + function gy(t, e, n, i) { + my(t, e, n, i), n.dispatchAction({type: "legendToggleSelect", name: null != t ? t : e}), vy(t, e, n, i) + } + + function yy(t) { + for (var e, n = t.getZr().storage.getDisplayList(), i = 0, r = n.length; r > i && !(e = n[i].states.emphasis);) i++; + return e && e.hoverLayer + } + + function vy(t, e, n, i) { + yy(n) || n.dispatchAction({type: "highlight", seriesName: t, name: e, excludeSeriesId: i}) + } + + function my(t, e, n, i) { + yy(n) || n.dispatchAction({type: "downplay", seriesName: t, name: e, excludeSeriesId: i}) + } + + function _y(t) { + var e = t.findComponents({mainType: "legend"}); + e && e.length && t.filterSeries(function (t) { + for (var n = 0; n < e.length; n++) if (!e[n].isSelected(t.name)) return !1; + return !0 + }) + } + + function xy(t, e, n) { + var i = t.getOrient(), r = [1, 1]; + r[i.index] = 0, Pl(e, n, {type: "box", ignoreSize: !!r}) + } + + function wy(t, e) { + var n, i = [], r = t.seriesIndex; + if (null == r || !(n = e.getSeriesByIndex(r))) return {point: []}; + var o = n.getData(), a = Uo(o, t); + if (null == a || 0 > a || T(a)) return {point: []}; + var s = o.getItemGraphicEl(a), l = n.coordinateSystem; + if (n.getTooltipPosition) i = n.getTooltipPosition(a) || []; else if (l && l.dataToPoint) if (t.isStacked) { + var u = l.getBaseAxis(), h = l.getOtherAxis(u), c = h.dim, p = u.dim, + f = "x" === c || "radius" === c ? 1 : 0, d = o.mapDimension(p), g = []; + g[f] = o.get(d, a), g[1 - f] = o.get(o.getCalculationInfo("stackResultDimension"), a), i = l.dataToPoint(g) || [] + } else i = l.dataToPoint(o.getValues(v(l.dimensions, function (t) { + return o.mapDimension(t) + }), a)) || []; else if (s) { + var y = s.getBoundingRect().clone(); + y.applyTransform(s.transform), i = [y.x + y.width / 2, y.y + y.height / 2] + } + return {point: i, el: s} + } + + function by(t, e, n) { + var i = t.currTrigger, r = [t.x, t.y], o = t, a = t.dispatchAction || Ev(n.dispatchAction, n), + s = e.getComponent("axisPointer").coordSysAxesInfo; + if (s) { + Py(r) && (r = wy({seriesIndex: o.seriesIndex, dataIndex: o.dataIndex}, e).point); + var l = Py(r), u = o.axesInfo, h = s.axesInfo, c = "leave" === i || Py(r), p = {}, f = {}, + d = {list: [], map: {}}, g = {showPointer: S(My, f), showTooltip: S(Cy, d)}; + y(s.coordSysMap, function (t, e) { + var n = l || t.containPoint(r); + y(s.coordSysAxesInfo[e], function (t) { + var e = t.axis, i = ky(u, t); + if (!c && n && (!u || i)) { + var o = i && i.value; + null != o || l || (o = e.pointToData(r)), null != o && Sy(t, o, g, !1, p) + } + }) + }); + var v = {}; + return y(h, function (t, e) { + var n = t.linkGroup; + n && !f[e] && y(n.axesInfo, function (e, i) { + var r = f[i]; + if (e !== t && r) { + var o = r.value; + n.mapper && (o = t.axis.scale.parse(n.mapper(o, Ly(e), Ly(t)))), v[t.key] = o + } + }) + }), y(v, function (t, e) { + Sy(h[e], t, g, !0, p) + }), Iy(f, h, p), Ay(d, r, t, a), Dy(h, a, n), p + } + } + + function Sy(t, e, n, i, r) { + var o = t.axis; + if (!o.scale.isBlank() && o.containData(e)) { + if (!t.involveSeries) return void n.showPointer(t, e); + var a = Ty(e, t), s = a.payloadBatch, l = a.snapToValue; + s[0] && null == r.seriesIndex && h(r, s[0]), !i && t.snap && o.containData(l) && null != l && (e = l), n.showPointer(t, e, s), n.showTooltip(t, a, l) + } + } + + function Ty(t, e) { + var n = e.axis, i = n.dim, r = t, o = [], a = Number.MAX_VALUE, s = -1; + return y(e.seriesModels, function (e) { + var l, u, h = e.getData().mapDimensionsAll(i); + if (e.getAxisTooltipData) { + var c = e.getAxisTooltipData(h, t, n); + u = c.dataIndices, l = c.nestestValue + } else { + if (u = e.getData().indicesOfNearest(h[0], t, "category" === n.type ? .5 : null), !u.length) return; + l = e.getData().get(h[0], u[0]) + } + if (null != l && isFinite(l)) { + var p = t - l, f = Math.abs(p); + a >= f && ((a > f || p >= 0 && 0 > s) && (a = f, s = p, r = l, o.length = 0), y(u, function (t) { + o.push({seriesIndex: e.seriesIndex, dataIndexInside: t, dataIndex: e.getData().getRawIndex(t)}) + })) + } + }), {payloadBatch: o, snapToValue: r} + } + + function My(t, e, n, i) { + t[e.key] = {value: n, payloadBatch: i} + } + + function Cy(t, e, n, i) { + var r = n.payloadBatch, o = e.axis, a = o.model, s = e.axisPointerModel; + if (e.triggerTooltip && r.length) { + var l = e.coordSys.model, u = $d(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: o.dim, + axisIndex: a.componentIndex, + axisType: a.type, + axisId: a.id, + value: i, + valueLabelOpt: {precision: s.get(["label", "precision"]), formatter: s.get(["label", "formatter"])}, + seriesDataIndices: r.slice() + }) + } + } + + function Iy(t, e, n) { + var i = n.axesInfo = []; + y(e, function (e, n) { + var r = e.axisPointerModel.option, o = t[n]; + o ? (!e.useHandle && (r.status = "show"), r.value = o.value, r.seriesDataIndices = (o.payloadBatch || []).slice()) : !e.useHandle && (r.status = "hide"), "show" === r.status && i.push({ + axisDim: e.axis.dim, + axisIndex: e.axis.model.componentIndex, + value: r.value + }) + }) + } + + function Ay(t, e, n, i) { + if (Py(e) || !t.list.length) return void i({type: "hideTip"}); + var r = ((t.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {}; + i({ + type: "showTip", + escapeConnect: !0, + x: e[0], + y: e[1], + tooltipOption: n.tooltipOption, + position: n.position, + dataIndexInside: r.dataIndexInside, + dataIndex: r.dataIndex, + seriesIndex: r.seriesIndex, + dataByCoordSys: t.list + }) + } + + function Dy(t, e, n) { + var i = n.getZr(), r = "axisPointerLastHighlights", o = wL(i)[r] || {}, a = wL(i)[r] = {}; + y(t, function (t) { + var e = t.axisPointerModel.option; + "show" === e.status && y(e.seriesDataIndices, function (t) { + var e = t.seriesIndex + " | " + t.dataIndex; + a[e] = t + }) + }); + var s = [], l = []; + y(o, function (t, e) { + !a[e] && l.push(t) + }), y(a, function (t, e) { + !o[e] && s.push(t) + }), l.length && n.dispatchAction({ + type: "downplay", + escapeConnect: !0, + notBlur: !0, + batch: l + }), s.length && n.dispatchAction({type: "highlight", escapeConnect: !0, notBlur: !0, batch: s}) + } + + function ky(t, e) { + for (var n = 0; n < (t || []).length; n++) { + var i = t[n]; + if (e.axis.dim === i.axisDim && e.axis.model.componentIndex === i.axisIndex) return i + } + } + + function Ly(t) { + var e = t.axis.model, n = {}, i = n.axisDim = t.axis.dim; + return n.axisIndex = n[i + "AxisIndex"] = e.componentIndex, n.axisName = n[i + "AxisName"] = e.name, n.axisId = n[i + "AxisId"] = e.id, n + } + + function Py(t) { + return !t || null == t[0] || isNaN(t[0]) || null == t[1] || isNaN(t[1]) + } + + function Oy(t, e, n) { + if (!wv.node) { + var i = e.getZr(); + bL(i).records || (bL(i).records = {}), Ry(i, e); + var r = bL(i).records[t] || (bL(i).records[t] = {}); + r.handler = n + } + } + + function Ry(t, e) { + function n(n, i) { + t.on(n, function (n) { + var r = Ny(e); + SL(bL(t).records, function (t) { + t && i(t, n, r.dispatchAction) + }), Ey(r.pendings, e) + }) + } + + bL(t).initialized || (bL(t).initialized = !0, n("click", S(By, "click")), n("mousemove", S(By, "mousemove")), n("globalout", zy)) + } + + function Ey(t, e) { + var n, i = t.showTip.length, r = t.hideTip.length; + i ? n = t.showTip[i - 1] : r && (n = t.hideTip[r - 1]), n && (n.dispatchAction = null, e.dispatchAction(n)) + } + + function zy(t, e, n) { + t.handler("leave", null, n) + } + + function By(t, e, n, i) { + e.handler(t, n, i) + } + + function Ny(t) { + var e = {showTip: [], hideTip: []}, n = function (i) { + var r = e[i.type]; + r ? r.push(i) : (i.dispatchAction = n, t.dispatchAction(i)) + }; + return {dispatchAction: n, pendings: e} + } + + function Fy(t, e) { + if (!wv.node) { + var n = e.getZr(), i = (bL(n).records || {})[t]; + i && (bL(n).records[t] = null) + } + } + + function Hy(t, e, n, i) { + Vy(ML(n).lastProp, i) || (ML(n).lastProp = i, e ? hs(n, i, t) : (n.stopAnimation(), n.attr(i))) + } + + function Vy(t, e) { + if (D(t) && D(e)) { + var n = !0; + return y(e, function (e, i) { + n = n && Vy(t[i], e) + }), !!n + } + return t === e + } + + function Gy(t, e) { + t[e.get(["label", "show"]) ? "show" : "hide"]() + } + + function Wy(t) { + return {x: t.x || 0, y: t.y || 0, rotation: t.rotation || 0} + } + + function Xy(t, e, n) { + var i = e.get("z"), r = e.get("zlevel"); + t && t.traverse(function (t) { + "group" !== t.type && (null != i && (t.z = i), null != r && (t.zlevel = r), t.silent = n) + }) + } + + function Yy(t) { + var e, n = t.get("type"), i = t.getModel(n + "Style"); + return "line" === n ? (e = i.getLineStyle(), e.fill = null) : "shadow" === n && (e = i.getAreaStyle(), e.stroke = null), e + } + + function Uy(t, e, n, i, r) { + var o = n.get("value"), a = jy(o, e.axis, e.ecModel, n.get("seriesDataIndices"), { + precision: n.get(["label", "precision"]), + formatter: n.get(["label", "formatter"]) + }), s = n.getModel("label"), l = jS(s.get("padding") || 0), u = s.getFont(), h = En(a, u), c = r.position, + p = h.width + l[1] + l[3], f = h.height + l[0] + l[2], d = r.align; + "right" === d && (c[0] -= p), "center" === d && (c[0] -= p / 2); + var g = r.verticalAlign; + "bottom" === g && (c[1] -= f), "middle" === g && (c[1] -= f / 2), qy(c, p, f, i); + var y = s.get("backgroundColor"); + y && "auto" !== y || (y = e.get(["axisLine", "lineStyle", "color"])), t.label = { + x: c[0], + y: c[1], + style: Os(s, {text: a, font: u, fill: s.getTextColor(), padding: l, backgroundColor: y}), + z2: 10 + } + } + + function qy(t, e, n, i) { + var r = i.getWidth(), o = i.getHeight(); + t[0] = Math.min(t[0] + e, r) - e, t[1] = Math.min(t[1] + n, o) - n, t[0] = Math.max(t[0], 0), t[1] = Math.max(t[1], 0) + } + + function jy(t, e, n, i, r) { + t = e.scale.parse(t); + var o = e.scale.getLabel({value: t}, {precision: r.precision}), a = r.formatter; + if (a) { + var s = {value: Af(e, {value: t}), axisDimension: e.dim, axisIndex: e.index, seriesData: []}; + y(i, function (t) { + var e = n.getSeriesByIndex(t.seriesIndex), i = t.dataIndexInside, r = e && e.getDataParams(i); + r && s.seriesData.push(r) + }), C(a) ? o = a.replace("{value}", o) : M(a) && (o = a(s)) + } + return o + } + + function Zy(t, e, n) { + var i = Fe(); + return Xe(i, i, n.rotation), We(i, i, n.position), vs([t.dataToCoord(e), (n.labelOffset || 0) + (n.labelDirection || 1) * (n.labelMargin || 0)], i) + } + + function Ky(t, e, n, i, r, o) { + var a = rk.innerTextLayout(n.rotation, 0, n.labelDirection); + n.labelMargin = r.get(["label", "margin"]), Uy(e, i, r, o, { + position: Zy(i.axis, t, n), + align: a.textAlign, + verticalAlign: a.textVerticalAlign + }) + } + + function $y(t, e, n) { + return n = n || 0, {x1: t[n], y1: t[1 - n], x2: e[n], y2: e[1 - n]} + } + + function Jy(t, e, n) { + return n = n || 0, {x: t[n], y: t[1 - n], width: e[n], height: e[1 - n]} + } + + function Qy(t, e) { + var n = {}; + return n[e.dim + "AxisIndex"] = e.index, t.getCartesian(n) + } + + function tv(t) { + return "x" === t.dim ? 0 : 1 + } + + function ev(t) { + var e = t.get("confine"); + return null != e ? !!e : "richText" === t.get("renderMode") + } + + function nv(t) { + return t = "left" === t ? "right" : "right" === t ? "left" : "top" === t ? "bottom" : "top" + } + + function iv(t, e, n) { + if (!C(n) || "inside" === n) return ""; + e = Il(e); + var i = nv(n), r = "", o = ""; + p(["left", "right"], i) > -1 ? (r = i + ":-6px;top:50%;", o = "translateY(-50%) rotate(" + ("left" === i ? -225 : -45) + "deg)") : (r = i + ":-6px;left:50%;", o = "translateX(-50%) rotate(" + ("top" === i ? 225 : 45) + "deg)"), o = v(OL, function (t) { + return t + "transform:" + o + }).join(";"); + var a = ["position:absolute;width:10px;height:10px;", "" + r + o + ";", "border-bottom: " + e + " solid 1px;", "border-right: " + e + " solid 1px;", "background-color: " + t + ";", "box-shadow: 8px 8px 16px -3px #000;"]; + return '
' + } + + function rv(t, e) { + var n = "cubic-bezier(0.23, 1, 0.32, 1)", i = "opacity " + t / 2 + "s " + n + ",visibility " + t / 2 + "s " + n; + return e || (i += ",left " + t + "s " + n + ",top " + t + "s " + n), v(OL, function (t) { + return t + "transition:" + i + }).join(";") + } + + function ov(t) { + var e = [], n = t.get("fontSize"), i = t.getTextColor(); + i && e.push("color:" + i), e.push("font:" + t.getFont()), n && e.push("line-height:" + Math.round(3 * n / 2) + "px"); + var r = t.get("textShadowColor"), o = t.get("textShadowBlur") || 0, a = t.get("textShadowOffsetX") || 0, + s = t.get("textShadowOffsetY") || 0; + return r && o && e.push("text-shadow:" + a + "px " + s + "px " + o + "px " + r), y(["decoration", "align"], function (n) { + var i = t.get(n); + i && e.push("text-" + n + ":" + i) + }), e.join(";") + } + + function av(t, e, n) { + var i = [], r = t.get("transitionDuration"), o = t.get("backgroundColor"), a = t.get("shadowBlur"), + s = t.get("shadowColor"), l = t.get("shadowOffsetX"), u = t.get("shadowOffsetY"), + h = t.getModel("textStyle"), c = uh(t, "html"), p = l + "px " + u + "px " + a + "px " + s; + return i.push("box-shadow:" + p), e && r && i.push(rv(r, n)), o && (wv.canvasSupported ? i.push("background-Color:" + o) : (i.push("background-Color:#" + hn(o)), i.push("filter:alpha(opacity=70)"))), y(["width", "color", "radius"], function (e) { + var n = "border-" + e, r = _l(n), o = t.get(r); + null != o && i.push(n + ":" + o + ("color" === e ? "" : "px")) + }), i.push(ov(h)), null != c && i.push("padding:" + jS(c).join("px ") + "px"), i.join(";") + ";" + } + + function sv(t, e, n, i, r) { + var o = e && e.painter; + if (n) { + var a = o && o.getViewportRoot(); + a && xe(t, a, document.body, i, r) + } else { + t[0] = i, t[1] = r; + var s = o && o.getViewportRootOffset(); + s && (t[0] += s.offsetLeft, t[1] += s.offsetTop) + } + t[2] = t[0] / e.getWidth(), t[3] = t[1] / e.getHeight() + } + + function lv(t) { + return Math.max(0, t) + } + + function uv(t) { + var e = lv(t.shadowBlur || 0), n = lv(t.shadowOffsetX || 0), i = lv(t.shadowOffsetY || 0); + return {left: lv(e - n), right: lv(e + n), top: lv(e - i), bottom: lv(e + i)} + } + + function hv(t, e, n, i) { + t[0] = n, t[1] = i, t[2] = t[0] / e.getWidth(), t[3] = t[1] / e.getHeight() + } + + function cv(t) { + for (var e = t.pop(); t.length;) { + var n = t.pop(); + n && (n instanceof AS && (n = n.get("tooltip", !0)), C(n) && (n = {formatter: n}), e = new AS(n, e, e.ecModel)) + } + return e + } + + function pv(t, e) { + return t.dispatchAction || Ev(e.dispatchAction, e) + } + + function fv(t, e, n, i, r, o, a) { + var s = n.getOuterSize(), l = s.width, u = s.height; + return null != o && (t + l + o + 2 > i ? t -= l + o : t += o), null != a && (e + u + a > r ? e -= u + a : e += a), [t, e] + } + + function dv(t, e, n, i, r) { + var o = n.getOuterSize(), a = o.width, s = o.height; + return t = Math.min(t + a, i) - a, e = Math.min(e + s, r) - s, t = Math.max(t, 0), e = Math.max(e, 0), [t, e] + } + + function gv(t, e, n) { + var i = n[0], r = n[1], o = 10, a = 5, s = 0, l = 0, u = e.width, h = e.height; + switch (t) { + case"inside": + s = e.x + u / 2 - i / 2, l = e.y + h / 2 - r / 2; + break; + case"top": + s = e.x + u / 2 - i / 2, l = e.y - r - o; + break; + case"bottom": + s = e.x + u / 2 - i / 2, l = e.y + h + o; + break; + case"left": + s = e.x - i - o - a, l = e.y + h / 2 - r / 2; + break; + case"right": + s = e.x + u + o + a, l = e.y + h / 2 - r / 2 + } + return [s, l] + } + + function yv(t) { + return "center" === t || "middle" === t + } + + var vv = function (t, e) { + return (vv = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) { + t.__proto__ = e + } || function (t, e) { + for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) + })(t, e) + }, mv = function () { + return mv = Object.assign || function (t) { + for (var e, n = 1, i = arguments.length; i > n; n++) { + e = arguments[n]; + for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]) + } + return t + }, mv.apply(this, arguments) + }, _v = function () { + function t() { + this.firefox = !1, this.ie = !1, this.edge = !1, this.weChat = !1 + } + + return t + }(), xv = function () { + function t() { + this.browser = new _v, this.node = !1, this.wxa = !1, this.worker = !1, this.canvasSupported = !1, this.svgSupported = !1, this.touchEventsSupported = !1, this.pointerEventsSupported = !1, this.domSupported = !1 + } + + return t + }(), wv = new xv; + "object" == typeof wx && "function" == typeof wx.getSystemInfoSync ? (wv.wxa = !0, wv.canvasSupported = !0, wv.touchEventsSupported = !0) : "undefined" == typeof document && "undefined" != typeof self ? (wv.worker = !0, wv.canvasSupported = !0) : "undefined" == typeof navigator ? (wv.node = !0, wv.canvasSupported = !0, wv.svgSupported = !0) : i(navigator.userAgent, wv); + var bv = { + "[object Function]": !0, + "[object RegExp]": !0, + "[object Date]": !0, + "[object Error]": !0, + "[object CanvasGradient]": !0, + "[object CanvasPattern]": !0, + "[object Image]": !0, + "[object Canvas]": !0 + }, Sv = { + "[object Int8Array]": !0, + "[object Uint8Array]": !0, + "[object Uint8ClampedArray]": !0, + "[object Int16Array]": !0, + "[object Uint16Array]": !0, + "[object Int32Array]": !0, + "[object Uint32Array]": !0, + "[object Float32Array]": !0, + "[object Float64Array]": !0 + }, Tv = Object.prototype.toString, Mv = Array.prototype, Cv = Mv.forEach, Iv = Mv.filter, Av = Mv.slice, + Dv = Mv.map, kv = function () { + }.constructor, Lv = kv ? kv.prototype : null, Pv = {}, Ov = 2311, Rv = function () { + return Pv.createCanvas() + }; + Pv.createCanvas = function () { + return document.createElement("canvas") + }; + var Ev = Lv && M(Lv.bind) ? Lv.call.bind(Lv.bind) : b, zv = "__ec_primitive__", Bv = function () { + function t(e) { + function n(t, e) { + i ? r.set(t, e) : r.set(e, t) + } + + this.data = {}; + var i = T(e); + this.data = {}; + var r = this; + e instanceof t ? e.each(n) : e && y(e, n) + } + + return t.prototype.get = function (t) { + return this.data.hasOwnProperty(t) ? this.data[t] : null + }, t.prototype.set = function (t, e) { + return this.data[t] = e + }, t.prototype.each = function (t, e) { + for (var n in this.data) this.data.hasOwnProperty(n) && t.call(e, this.data[n], n) + }, t.prototype.keys = function () { + return w(this.data) + }, t.prototype.removeKey = function (t) { + delete this.data[t] + }, t + }(), Nv = (Object.freeze || Object)({ + $override: r, + guid: o, + logError: a, + clone: s, + merge: l, + mergeAll: u, + extend: h, + defaults: c, + createCanvas: Rv, + indexOf: p, + inherits: f, + mixin: d, + isArrayLike: g, + each: y, + map: v, + reduce: m, + filter: _, + find: x, + keys: w, + bind: Ev, + curry: S, + isArray: T, + isFunction: M, + isString: C, + isStringSafe: I, + isNumber: A, + isObject: D, + isBuiltInObject: k, + isTypedArray: L, + isDom: P, + isGradientObject: O, + isPatternObject: R, + isRegExp: E, + eqNaN: z, + retrieve: B, + retrieve2: N, + retrieve3: F, + slice: H, + normalizeCssArray: V, + assert: G, + trim: W, + setAsPrimitive: X, + isPrimitive: Y, + HashMap: Bv, + createHashMap: U, + concatArray: q, + createObject: j, + hasOwn: Z, + noop: K + }), Fv = re, Hv = oe, Vv = ce, Gv = pe, Wv = (Object.freeze || Object)({ + create: $, + copy: J, + clone: Q, + set: te, + add: ee, + scaleAndAdd: ne, + sub: ie, + len: re, + length: Fv, + lenSquare: oe, + lengthSquare: Hv, + mul: ae, + div: se, + dot: le, + scale: ue, + normalize: he, + distance: ce, + dist: Vv, + distanceSquare: pe, + distSquare: Gv, + negate: fe, + lerp: de, + applyTransform: ge, + min: ye, + max: ve + }), Xv = function () { + function t(t, e) { + this.target = t, this.topTarget = e && e.topTarget + } + + return t + }(), Yv = function () { + function t(t) { + this.handler = t, t.on("mousedown", this._dragStart, this), t.on("mousemove", this._drag, this), t.on("mouseup", this._dragEnd, this) + } + + return t.prototype._dragStart = function (t) { + for (var e = t.target; e && !e.draggable;) e = e.parent; + e && (this._draggingTarget = e, e.dragging = !0, this._x = t.offsetX, this._y = t.offsetY, this.handler.dispatchToElement(new Xv(e, t), "dragstart", t.event)) + }, t.prototype._drag = function (t) { + var e = this._draggingTarget; + if (e) { + var n = t.offsetX, i = t.offsetY, r = n - this._x, o = i - this._y; + this._x = n, this._y = i, e.drift(r, o, t), this.handler.dispatchToElement(new Xv(e, t), "drag", t.event); + var a = this.handler.findHover(n, i, e).target, s = this._dropTarget; + this._dropTarget = a, e !== a && (s && a !== s && this.handler.dispatchToElement(new Xv(s, t), "dragleave", t.event), a && a !== s && this.handler.dispatchToElement(new Xv(a, t), "dragenter", t.event)) + } + }, t.prototype._dragEnd = function (t) { + var e = this._draggingTarget; + e && (e.dragging = !1), this.handler.dispatchToElement(new Xv(e, t), "dragend", t.event), this._dropTarget && this.handler.dispatchToElement(new Xv(this._dropTarget, t), "drop", t.event), this._draggingTarget = null, this._dropTarget = null + }, t + }(), Uv = function () { + function t(t) { + t && (this._$eventProcessor = t) + } + + return t.prototype.on = function (t, e, n, i) { + this._$handlers || (this._$handlers = {}); + var r = this._$handlers; + if ("function" == typeof e && (i = n, n = e, e = null), !n || !t) return this; + var o = this._$eventProcessor; + null != e && o && o.normalizeQuery && (e = o.normalizeQuery(e)), r[t] || (r[t] = []); + for (var a = 0; a < r[t].length; a++) if (r[t][a].h === n) return this; + var s = {h: n, query: e, ctx: i || this, callAtLast: n.zrEventfulCallAtLast}, l = r[t].length - 1, + u = r[t][l]; + return u && u.callAtLast ? r[t].splice(l, 0, s) : r[t].push(s), this + }, t.prototype.isSilent = function (t) { + var e = this._$handlers; + return !e || !e[t] || !e[t].length + }, t.prototype.off = function (t, e) { + var n = this._$handlers; + if (!n) return this; + if (!t) return this._$handlers = {}, this; + if (e) { + if (n[t]) { + for (var i = [], r = 0, o = n[t].length; o > r; r++) n[t][r].h !== e && i.push(n[t][r]); + n[t] = i + } + n[t] && 0 === n[t].length && delete n[t] + } else delete n[t]; + return this + }, t.prototype.trigger = function (t) { + for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; + if (!this._$handlers) return this; + var i = this._$handlers[t], r = this._$eventProcessor; + if (i) for (var o = e.length, a = i.length, s = 0; a > s; s++) { + var l = i[s]; + if (!r || !r.filter || null == l.query || r.filter(t, l.query)) switch (o) { + case 0: + l.h.call(l.ctx); + break; + case 1: + l.h.call(l.ctx, e[0]); + break; + case 2: + l.h.call(l.ctx, e[0], e[1]); + break; + default: + l.h.apply(l.ctx, e) + } + } + return r && r.afterTrigger && r.afterTrigger(t), this + }, t.prototype.triggerWithContext = function (t) { + if (!this._$handlers) return this; + var e = this._$handlers[t], n = this._$eventProcessor; + if (e) for (var i = arguments, r = i.length, o = i[r - 1], a = e.length, s = 0; a > s; s++) { + var l = e[s]; + if (!n || !n.filter || null == l.query || n.filter(t, l.query)) switch (r) { + case 0: + l.h.call(o); + break; + case 1: + l.h.call(o, i[0]); + break; + case 2: + l.h.call(o, i[0], i[1]); + break; + default: + l.h.apply(o, i.slice(1, r - 1)) + } + } + return n && n.afterTrigger && n.afterTrigger(t), this + }, t + }(), qv = Math.log(2), jv = "___zrEVENTSAVED", Zv = [], + Kv = "undefined" != typeof window && !!window.addEventListener, + $v = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, Jv = [], Qv = Kv ? function (t) { + t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0 + } : function (t) { + t.returnValue = !1, t.cancelBubble = !0 + }, tm = function () { + function t() { + this._track = [] + } + + return t.prototype.recognize = function (t, e, n) { + return this._doTrack(t, e, n), this._recognize(t) + }, t.prototype.clear = function () { + return this._track.length = 0, this + }, t.prototype._doTrack = function (t, e, n) { + var i = t.touches; + if (i) { + for (var r = {points: [], touches: [], target: e, event: t}, o = 0, a = i.length; a > o; o++) { + var s = i[o], l = Me(n, s, {}); + r.points.push([l.zrX, l.zrY]), r.touches.push(s) + } + this._track.push(r) + } + }, t.prototype._recognize = function (t) { + for (var e in em) if (em.hasOwnProperty(e)) { + var n = em[e](this._track, t); + if (n) return n + } + }, t + }(), em = { + pinch: function (t, e) { + var n = t.length; + if (n) { + var i = (t[n - 1] || {}).points, r = (t[n - 2] || {}).points || i; + if (r && r.length > 1 && i && i.length > 1) { + var o = Oe(i) / Oe(r); + !isFinite(o) && (o = 1), e.pinchScale = o; + var a = Re(i); + return e.pinchX = a[0], e.pinchY = a[1], {type: "pinch", target: t[0].target, event: e} + } + } + } + }, nm = "silent", im = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.handler = null, e + } + + return e(n, t), n.prototype.dispose = function () { + }, n.prototype.setCursor = function () { + }, n + }(Uv), rm = function () { + function t(t, e) { + this.x = t, this.y = e + } + + return t + }(), om = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], + am = function (t) { + function n(e, n, i, r) { + var o = t.call(this) || this; + return o._hovered = new rm(0, 0), o.storage = e, o.painter = n, o.painterRoot = r, i = i || new im, o.proxy = null, o.setHandlerProxy(i), o._draggingMgr = new Yv(o), o + } + + return e(n, t), n.prototype.setHandlerProxy = function (t) { + this.proxy && this.proxy.dispose(), t && (y(om, function (e) { + t.on && t.on(e, this[e], this) + }, this), t.handler = this), this.proxy = t + }, n.prototype.mousemove = function (t) { + var e = t.zrX, n = t.zrY, i = Ne(this, e, n), r = this._hovered, o = r.target; + o && !o.__zr && (r = this.findHover(r.x, r.y), o = r.target); + var a = this._hovered = i ? new rm(e, n) : this.findHover(e, n), s = a.target, l = this.proxy; + l.setCursor && l.setCursor(s ? s.cursor : "default"), o && s !== o && this.dispatchToElement(r, "mouseout", t), this.dispatchToElement(a, "mousemove", t), s && s !== o && this.dispatchToElement(a, "mouseover", t) + }, n.prototype.mouseout = function (t) { + var e = t.zrEventControl, n = t.zrIsToLocalDOM; + "only_globalout" !== e && this.dispatchToElement(this._hovered, "mouseout", t), "no_globalout" !== e && !n && this.trigger("globalout", { + type: "globalout", + event: t + }) + }, n.prototype.resize = function () { + this._hovered = new rm(0, 0) + }, n.prototype.dispatch = function (t, e) { + var n = this[t]; + n && n.call(this, e) + }, n.prototype.dispose = function () { + this.proxy.dispose(), this.storage = null, this.proxy = null, this.painter = null + }, n.prototype.setCursorStyle = function (t) { + var e = this.proxy; + e.setCursor && e.setCursor(t) + }, n.prototype.dispatchToElement = function (t, e, n) { + t = t || {}; + var i = t.target; + if (!i || !i.silent) { + for (var r = "on" + e, o = Ee(e, t, n); i && (i[r] && (o.cancelBubble = !!i[r].call(i, o)), i.trigger(e, o), i = i.__hostTarget ? i.__hostTarget : i.parent, !o.cancelBubble);) ; + o.cancelBubble || (this.trigger(e, o), this.painter && this.painter.eachOtherLayer && this.painter.eachOtherLayer(function (t) { + "function" == typeof t[r] && t[r].call(t, o), t.trigger && t.trigger(e, o) + })) + } + }, n.prototype.findHover = function (t, e, n) { + for (var i = this.storage.getDisplayList(), r = new rm(t, e), o = i.length - 1; o >= 0; o--) { + var a = void 0; + if (i[o] !== n && !i[o].ignore && (a = Be(i[o], t, e)) && (!r.topTarget && (r.topTarget = i[o]), a !== nm)) { + r.target = i[o]; + break + } + } + return r + }, n.prototype.processGesture = function (t, e) { + this._gestureMgr || (this._gestureMgr = new tm); + var n = this._gestureMgr; + "start" === e && n.clear(); + var i = n.recognize(t, this.findHover(t.zrX, t.zrY, null).target, this.proxy.dom); + if ("end" === e && n.clear(), i) { + var r = i.type; + t.gestureEvent = r; + var o = new rm; + o.target = i.target, this.dispatchToElement(o, r, i.event) + } + }, n + }(Uv); + y(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function (t) { + am.prototype[t] = function (e) { + var n, i, r = e.zrX, o = e.zrY, a = Ne(this, r, o); + if ("mouseup" === t && a || (n = this.findHover(r, o), i = n.target), "mousedown" === t) this._downEl = i, this._downPoint = [e.zrX, e.zrY], this._upEl = i; else if ("mouseup" === t) this._upEl = i; else if ("click" === t) { + if (this._downEl !== this._upEl || !this._downPoint || Vv(this._downPoint, [e.zrX, e.zrY]) > 4) return; + this._downPoint = null + } + this.dispatchToElement(n, t, e) + } + }); + var sm, lm, um = (Object.freeze || Object)({ + create: Fe, + identity: He, + copy: Ve, + mul: Ge, + translate: We, + rotate: Xe, + scale: Ye, + invert: Ue, + clone: qe + }), hm = He, cm = 5e-5, pm = [], fm = [], dm = Fe(), gm = Math.abs, ym = function () { + function t() { + } + + return t.prototype.setPosition = function (t) { + this.x = t[0], this.y = t[1] + }, t.prototype.setScale = function (t) { + this.scaleX = t[0], this.scaleY = t[1] + }, t.prototype.setOrigin = function (t) { + this.originX = t[0], this.originY = t[1] + }, t.prototype.needLocalTransform = function () { + return je(this.rotation) || je(this.x) || je(this.y) || je(this.scaleX - 1) || je(this.scaleY - 1) + }, t.prototype.updateTransform = function () { + var t = this.parent, e = t && t.transform, n = this.needLocalTransform(), i = this.transform; + return n || e ? (i = i || Fe(), n ? this.getLocalTransform(i) : hm(i), e && (n ? Ge(i, t.transform, i) : Ve(i, t.transform)), this.transform = i, void this._resolveGlobalScaleRatio(i)) : void (i && hm(i)) + }, t.prototype._resolveGlobalScaleRatio = function (t) { + var e = this.globalScaleRatio; + if (null != e && 1 !== e) { + this.getGlobalScale(pm); + var n = pm[0] < 0 ? -1 : 1, i = pm[1] < 0 ? -1 : 1, r = ((pm[0] - n) * e + n) / pm[0] || 0, + o = ((pm[1] - i) * e + i) / pm[1] || 0; + t[0] *= r, t[1] *= r, t[2] *= o, t[3] *= o + } + this.invTransform = this.invTransform || Fe(), Ue(this.invTransform, t) + }, t.prototype.getLocalTransform = function (e) { + return t.getLocalTransform(this, e) + }, t.prototype.getComputedTransform = function () { + for (var t = this, e = []; t;) e.push(t), t = t.parent; + for (; t = e.pop();) t.updateTransform(); + return this.transform + }, t.prototype.setLocalTransform = function (t) { + if (t) { + var e = t[0] * t[0] + t[1] * t[1], n = t[2] * t[2] + t[3] * t[3]; + je(e - 1) && (e = Math.sqrt(e)), je(n - 1) && (n = Math.sqrt(n)), t[0] < 0 && (e = -e), t[3] < 0 && (n = -n), this.rotation = Math.atan2(-t[1] / n, t[0] / e), 0 > e && 0 > n && (this.rotation += Math.PI, e = -e, n = -n), this.x = t[4], this.y = t[5], this.scaleX = e, this.scaleY = n + } + }, t.prototype.decomposeTransform = function () { + if (this.transform) { + var t = this.parent, e = this.transform; + t && t.transform && (Ge(fm, t.invTransform, e), e = fm); + var n = this.originX, i = this.originY; + (n || i) && (dm[4] = n, dm[5] = i, Ge(fm, e, dm), fm[4] -= n, fm[5] -= i, e = fm), this.setLocalTransform(e) + } + }, t.prototype.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) + }, t.prototype.transformCoordToLocal = function (t, e) { + var n = [t, e], i = this.invTransform; + return i && ge(n, n, i), n + }, t.prototype.transformCoordToGlobal = function (t, e) { + var n = [t, e], i = this.transform; + return i && ge(n, n, i), n + }, t.prototype.getLineScale = function () { + var t = this.transform; + return t && gm(t[0] - 1) > 1e-10 && gm(t[3] - 1) > 1e-10 ? Math.sqrt(gm(t[0] * t[3] - t[2] * t[1])) : 1 + }, t.getLocalTransform = function (t, e) { + e = e || [], hm(e); + var n = t.originX || 0, i = t.originY || 0, r = t.scaleX, o = t.scaleY, a = t.rotation || 0, s = t.x, + l = t.y; + return e[4] -= n, e[5] -= i, e[0] *= r, e[1] *= o, e[2] *= r, e[3] *= o, e[4] *= r, e[5] *= o, a && Xe(e, e, a), e[4] += n, e[5] += i, e[4] += s, e[5] += l, e + }, t.initDefaultProps = function () { + var e = t.prototype; + e.x = 0, e.y = 0, e.scaleX = 1, e.scaleY = 1, e.originX = 0, e.originY = 0, e.rotation = 0, e.globalScaleRatio = 1 + }(), t + }(), vm = { + 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 * (-Math.pow(2, -10 * (t - 1)) + 2) + }, 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, n = .1, i = .4; + return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 / n) / (2 * Math.PI), -(n * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / i))) + }, elasticOut: function (t) { + var e, n = .1, i = .4; + return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 / n) / (2 * Math.PI), n * Math.pow(2, -10 * t) * Math.sin(2 * (t - e) * Math.PI / i) + 1) + }, elasticInOut: function (t) { + var e, n = .1, i = .4; + return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 / n) / (2 * Math.PI), (t *= 2) < 1 ? -.5 * n * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / i) : n * Math.pow(2, -10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / i) * .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 ? .5 * t * t * ((e + 1) * t - e) : .5 * ((t -= 2) * t * ((e + 1) * t + e) + 2) + }, bounceIn: function (t) { + return 1 - vm.bounceOut(1 - t) + }, bounceOut: function (t) { + return 1 / 2.75 > t ? 7.5625 * t * t : 2 / 2.75 > t ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : 2.5 / 2.75 > t ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 + }, bounceInOut: function (t) { + return .5 > t ? .5 * vm.bounceIn(2 * t) : .5 * vm.bounceOut(2 * t - 1) + .5 + } + }, mm = function () { + function t(t) { + this._initialized = !1, this._startTime = 0, this._pausedTime = 0, this._paused = !1, this._life = t.life || 1e3, this._delay = t.delay || 0, this.loop = null == t.loop ? !1 : t.loop, this.gap = t.gap || 0, this.easing = t.easing || "linear", this.onframe = t.onframe, this.ondestroy = t.ondestroy, this.onrestart = t.onrestart + } + + return t.prototype.step = function (t, e) { + if (this._initialized || (this._startTime = t + this._delay, this._initialized = !0), this._paused) return void (this._pausedTime += e); + var n = (t - this._startTime - this._pausedTime) / this._life; + 0 > n && (n = 0), n = Math.min(n, 1); + var i = this.easing, r = "string" == typeof i ? vm[i] : i, o = "function" == typeof r ? r(n) : n; + if (this.onframe && this.onframe(o), 1 === n) { + if (!this.loop) return !0; + this._restart(t), this.onrestart && this.onrestart() + } + return !1 + }, t.prototype._restart = function (t) { + var e = (t - this._startTime - this._pausedTime) % this._life; + this._startTime = t - e + this.gap, this._pausedTime = 0 + }, t.prototype.pause = function () { + this._paused = !0 + }, t.prototype.resume = function () { + this._paused = !1 + }, t + }(), _m = function () { + function t(t) { + this.value = t + } + + return t + }(), xm = function () { + function t() { + this._len = 0 + } + + return t.prototype.insert = function (t) { + var e = new _m(t); + return this.insertEntry(e), e + }, t.prototype.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++ + }, t.prototype.remove = function (t) { + var e = t.prev, n = t.next; + e ? e.next = n : this.head = n, n ? n.prev = e : this.tail = e, t.next = t.prev = null, this._len-- + }, t.prototype.len = function () { + return this._len + }, t.prototype.clear = function () { + this.head = this.tail = null, this._len = 0 + }, t + }(), wm = function () { + function t(t) { + this._list = new xm, this._maxSize = 10, this._map = {}, this._maxSize = t + } + + return t.prototype.put = function (t, e) { + var n = this._list, i = this._map, r = null; + if (null == i[t]) { + var o = n.len(), a = this._lastRemovedEntry; + if (o >= this._maxSize && o > 0) { + var s = n.head; + n.remove(s), delete i[s.key], r = s.value, this._lastRemovedEntry = s + } + a ? a.value = e : a = new _m(e), a.key = t, n.insertEntry(a), i[t] = a + } + return r + }, t.prototype.get = function (t) { + var e = this._map[t], n = this._list; + return null != e ? (e !== n.tail && (n.remove(e), n.insertEntry(e)), e.value) : void 0 + }, t.prototype.clear = function () { + this._list.clear(), this._map = {} + }, t.prototype.len = function () { + return this._list.len() + }, t + }(), bm = { + 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] + }, Sm = new wm(20), Tm = null, Mm = cn, Cm = pn, Im = (Object.freeze || Object)({ + parse: an, + lift: un, + toHex: hn, + fastLerp: cn, + fastMapToColor: Mm, + lerp: pn, + mapToColor: Cm, + modifyHSL: fn, + modifyAlpha: dn, + stringify: gn, + lum: yn, + random: vn + }), Am = Array.prototype.slice, Dm = [0, 0, 0, 0], km = function () { + function t(t) { + this.keyframes = [], this.maxTime = 0, this.arrDim = 0, this.interpolable = !0, this._needsSort = !1, this._isAllValueEqual = !0, this._lastFrame = 0, this._lastFramePercent = 0, this.propName = t + } + + return t.prototype.isFinished = function () { + return this._finished + }, t.prototype.setFinished = function () { + this._finished = !0, this._additiveTrack && this._additiveTrack.setFinished() + }, t.prototype.needsAnimate = function () { + return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable + }, t.prototype.getAdditiveTrack = function () { + return this._additiveTrack + }, t.prototype.addKeyframe = function (t, e) { + t >= this.maxTime ? this.maxTime = t : this._needsSort = !0; + var n = this.keyframes, i = n.length; + if (this.interpolable) if (g(e)) { + var r = Ln(e); + if (i > 0 && this.arrDim !== r) return void (this.interpolable = !1); + if (1 === r && "number" != typeof e[0] || 2 === r && "number" != typeof e[0][0]) return void (this.interpolable = !1); + if (i > 0) { + var o = n[i - 1]; + this._isAllValueEqual && (1 === r ? Mn(e, o.value) || (this._isAllValueEqual = !1) : this._isAllValueEqual = !1) + } + this.arrDim = r + } else { + if (this.arrDim > 0) return void (this.interpolable = !1); + if ("string" == typeof e) { + var a = an(e); + a ? (e = a, this.isValueColor = !0) : this.interpolable = !1 + } else if ("number" != typeof e) return void (this.interpolable = !1); + if (this._isAllValueEqual && i > 0) { + var o = n[i - 1]; + this.isValueColor && !Mn(o.value, e) ? this._isAllValueEqual = !1 : o.value !== e && (this._isAllValueEqual = !1) + } + } + var s = {time: t, value: e, percent: 0}; + return this.keyframes.push(s), s + }, t.prototype.prepare = function (t) { + var e = this.keyframes; + this._needsSort && e.sort(function (t, e) { + return t.time - e.time + }); + for (var n = this.arrDim, i = e.length, r = e[i - 1], o = 0; i > o; o++) e[o].percent = e[o].time / this.maxTime, n > 0 && o !== i - 1 && Tn(e[o].value, r.value, n); + if (t && this.needsAnimate() && t.needsAnimate() && n === t.arrDim && this.isValueColor === t.isValueColor && !t._finished) { + this._additiveTrack = t; + for (var a = e[0].value, o = 0; i > o; o++) 0 === n ? e[o].additiveValue = this.isValueColor ? bn([], e[o].value, a, -1) : e[o].value - a : 1 === n ? e[o].additiveValue = bn([], e[o].value, a, -1) : 2 === n && (e[o].additiveValue = Sn([], e[o].value, a, -1)) + } + }, t.prototype.step = function (t, e) { + if (!this._finished) { + this._additiveTrack && this._additiveTrack._finished && (this._additiveTrack = null); + var n, i = null != this._additiveTrack, r = i ? "additiveValue" : "value", o = this.keyframes, + a = this.keyframes.length, s = this.propName, l = this.arrDim, u = this.isValueColor; + if (0 > e) n = 0; else if (e < this._lastFramePercent) { + var h = Math.min(this._lastFrame + 1, a - 1); + for (n = h; n >= 0 && !(o[n].percent <= e); n--) ; + n = Math.min(n, a - 2) + } else { + for (n = this._lastFrame; a > n && !(o[n].percent > e); n++) ; + n = Math.min(n - 1, a - 2) + } + var c = o[n + 1], p = o[n]; + if (p && c) { + this._lastFrame = n, this._lastFramePercent = e; + var f = c.percent - p.percent; + if (0 !== f) { + var d = (e - p.percent) / f, g = i ? this._additiveValue : u ? Dm : t[s]; + if ((l > 0 || u) && !g && (g = this._additiveValue = []), this.useSpline) { + var y = o[n][r], v = o[0 === n ? n : n - 1][r], m = o[n > a - 2 ? a - 1 : n + 1][r], + _ = o[n > a - 3 ? a - 1 : n + 2][r]; + if (l > 0) 1 === l ? In(g, v, y, m, _, d, d * d, d * d * d) : An(g, v, y, m, _, d, d * d, d * d * d); else if (u) In(g, v, y, m, _, d, d * d, d * d * d), i || (t[s] = kn(g)); else { + var x = void 0; + x = this.interpolable ? Cn(v, y, m, _, d, d * d, d * d * d) : m, i ? this._additiveValue = x : t[s] = x + } + } else if (l > 0) 1 === l ? xn(g, p[r], c[r], d) : wn(g, p[r], c[r], d); else if (u) xn(g, p[r], c[r], d), i || (t[s] = kn(g)); else { + var x = void 0; + x = this.interpolable ? mn(p[r], c[r], d) : _n(p[r], c[r], d), i ? this._additiveValue = x : t[s] = x + } + i && this._addToTarget(t) + } + } + } + }, t.prototype._addToTarget = function (t) { + var e = this.arrDim, n = this.propName, i = this._additiveValue; + 0 === e ? this.isValueColor ? (an(t[n], Dm), bn(Dm, Dm, i, 1), t[n] = kn(Dm)) : t[n] = t[n] + i : 1 === e ? bn(t[n], t[n], i, 1) : 2 === e && Sn(t[n], t[n], i, 1) + }, t + }(), Lm = function () { + function t(t, e, n) { + return this._tracks = {}, this._trackKeys = [], this._delay = 0, this._maxTime = 0, this._paused = !1, this._started = 0, this._clip = null, this._target = t, this._loop = e, e && n ? void a("Can' use additive animation on looped animation.") : void (this._additiveAnimators = n) + } + + return t.prototype.getTarget = function () { + return this._target + }, t.prototype.changeTarget = function (t) { + this._target = t + }, t.prototype.when = function (t, e) { + return this.whenWithKeys(t, e, w(e)) + }, t.prototype.whenWithKeys = function (t, e, n) { + for (var i = this._tracks, r = 0; r < n.length; r++) { + var o = n[r], a = i[o]; + if (!a) { + a = i[o] = new km(o); + var s = void 0, l = this._getAdditiveTrack(o); + if (l) { + var u = l.keyframes[l.keyframes.length - 1]; + s = u && u.value, l.isValueColor && s && (s = kn(s)) + } else s = this._target[o]; + if (null == s) continue; + 0 !== t && a.addKeyframe(0, Dn(s)), this._trackKeys.push(o) + } + a.addKeyframe(t, Dn(e[o])) + } + return this._maxTime = Math.max(this._maxTime, t), this + }, t.prototype.pause = function () { + this._clip.pause(), this._paused = !0 + }, t.prototype.resume = function () { + this._clip.resume(), this._paused = !1 + }, t.prototype.isPaused = function () { + return !!this._paused + }, t.prototype._doneCallback = function () { + this._setTracksFinished(), this._clip = null; + var t = this._doneList; + if (t) for (var e = t.length, n = 0; e > n; n++) t[n].call(this) + }, t.prototype._abortedCallback = function () { + this._setTracksFinished(); + var t = this.animation, e = this._abortedList; + if (t && t.removeClip(this._clip), this._clip = null, e) for (var n = 0; n < e.length; n++) e[n].call(this) + }, t.prototype._setTracksFinished = function () { + for (var t = this._tracks, e = this._trackKeys, n = 0; n < e.length; n++) t[e[n]].setFinished() + }, t.prototype._getAdditiveTrack = function (t) { + var e, n = this._additiveAnimators; + if (n) for (var i = 0; i < n.length; i++) { + var r = n[i].getTrack(t); + r && (e = r) + } + return e + }, t.prototype.start = function (t, e) { + if (!(this._started > 0)) { + this._started = 1; + for (var n = this, i = [], r = 0; r < this._trackKeys.length; r++) { + var o = this._trackKeys[r], a = this._tracks[o], s = this._getAdditiveTrack(o), l = a.keyframes; + if (a.prepare(s), a.needsAnimate()) i.push(a); else if (!a.interpolable) { + var u = l[l.length - 1]; + u && (n._target[a.propName] = u.value) + } + } + if (i.length || e) { + var h = new mm({ + life: this._maxTime, loop: this._loop, delay: this._delay, onframe: function (t) { + n._started = 2; + var e = n._additiveAnimators; + if (e) { + for (var r = !1, o = 0; o < e.length; o++) if (e[o]._clip) { + r = !0; + break + } + r || (n._additiveAnimators = null) + } + for (var o = 0; o < i.length; o++) i[o].step(n._target, t); + var a = n._onframeList; + if (a) for (var o = 0; o < a.length; o++) a[o](n._target, t) + }, ondestroy: function () { + n._doneCallback() + } + }); + this._clip = h, this.animation && this.animation.addClip(h), t && "spline" !== t && (h.easing = t) + } else this._doneCallback(); + return this + } + }, t.prototype.stop = function (t) { + if (this._clip) { + var e = this._clip; + t && e.onframe(1), this._abortedCallback() + } + }, t.prototype.delay = function (t) { + return this._delay = t, this + }, t.prototype.during = function (t) { + return t && (this._onframeList || (this._onframeList = []), this._onframeList.push(t)), this + }, t.prototype.done = function (t) { + return t && (this._doneList || (this._doneList = []), this._doneList.push(t)), this + }, t.prototype.aborted = function (t) { + return t && (this._abortedList || (this._abortedList = []), this._abortedList.push(t)), this + }, t.prototype.getClip = function () { + return this._clip + }, t.prototype.getTrack = function (t) { + return this._tracks[t] + }, t.prototype.stopTracks = function (t, e) { + if (!t.length || !this._clip) return !0; + for (var n = this._tracks, i = this._trackKeys, r = 0; r < t.length; r++) { + var o = n[t[r]]; + o && (e ? o.step(this._target, 1) : 1 === this._started && o.step(this._target, 0), o.setFinished()) + } + for (var a = !0, r = 0; r < i.length; r++) if (!n[i[r]].isFinished()) { + a = !1; + break + } + return a && this._abortedCallback(), a + }, t.prototype.saveFinalToTarget = function (t, e) { + if (t) { + e = e || this._trackKeys; + for (var n = 0; n < e.length; n++) { + var i = e[n], r = this._tracks[i]; + if (r && !r.isFinished()) { + var o = r.keyframes, a = o[o.length - 1]; + if (a) { + var s = Dn(a.value); + r.isValueColor && (s = kn(s)), t[i] = s + } + } + } + } + }, t.prototype.__changeFinalValue = function (t, e) { + e = e || w(t); + for (var n = 0; n < e.length; n++) { + var i = e[n], r = this._tracks[i]; + if (r) { + var o = r.keyframes; + if (o.length > 1) { + var a = o.pop(); + r.addKeyframe(a.time, t[i]), r.prepare(r.getAdditiveTrack()) + } + } + } + }, t + }(), Pm = function () { + function t(t, e) { + this.x = t || 0, this.y = e || 0 + } + + return t.prototype.copy = function (t) { + return this.x = t.x, this.y = t.y, this + }, t.prototype.clone = function () { + return new t(this.x, this.y) + }, t.prototype.set = function (t, e) { + return this.x = t, this.y = e, this + }, t.prototype.equal = function (t) { + return t.x === this.x && t.y === this.y + }, t.prototype.add = function (t) { + return this.x += t.x, this.y += t.y, this + }, t.prototype.scale = function (t) { + this.x *= t, this.y *= t + }, t.prototype.scaleAndAdd = function (t, e) { + this.x += t.x * e, this.y += t.y * e + }, t.prototype.sub = function (t) { + return this.x -= t.x, this.y -= t.y, this + }, t.prototype.dot = function (t) { + return this.x * t.x + this.y * t.y + }, t.prototype.len = function () { + return Math.sqrt(this.x * this.x + this.y * this.y) + }, t.prototype.lenSquare = function () { + return this.x * this.x + this.y * this.y + }, t.prototype.normalize = function () { + var t = this.len(); + return this.x /= t, this.y /= t, this + }, t.prototype.distance = function (t) { + var e = this.x - t.x, n = this.y - t.y; + return Math.sqrt(e * e + n * n) + }, t.prototype.distanceSquare = function (t) { + var e = this.x - t.x, n = this.y - t.y; + return e * e + n * n + }, t.prototype.negate = function () { + return this.x = -this.x, this.y = -this.y, this + }, t.prototype.transform = function (t) { + if (t) { + var e = this.x, n = this.y; + return this.x = t[0] * e + t[2] * n + t[4], this.y = t[1] * e + t[3] * n + t[5], this + } + }, t.prototype.toArray = function (t) { + return t[0] = this.x, t[1] = this.y, t + }, t.prototype.fromArray = function (t) { + this.x = t[0], this.y = t[1] + }, t.set = function (t, e, n) { + t.x = e, t.y = n + }, t.copy = function (t, e) { + t.x = e.x, t.y = e.y + }, t.len = function (t) { + return Math.sqrt(t.x * t.x + t.y * t.y) + }, t.lenSquare = function (t) { + return t.x * t.x + t.y * t.y + }, t.dot = function (t, e) { + return t.x * e.x + t.y * e.y + }, t.add = function (t, e, n) { + t.x = e.x + n.x, t.y = e.y + n.y + }, t.sub = function (t, e, n) { + t.x = e.x - n.x, t.y = e.y - n.y + }, t.scale = function (t, e, n) { + t.x = e.x * n, t.y = e.y * n + }, t.scaleAndAdd = function (t, e, n, i) { + t.x = e.x + n.x * i, t.y = e.y + n.y * i + }, t.lerp = function (t, e, n, i) { + var r = 1 - i; + t.x = r * e.x + i * n.x, t.y = r * e.y + i * n.y + }, t + }(), Om = Math.min, Rm = Math.max, Em = new Pm, zm = new Pm, Bm = new Pm, Nm = new Pm, Fm = new Pm, Hm = new Pm, + Vm = function () { + function t(t, e, n, i) { + 0 > n && isFinite(n) && (t += n, n = -n), 0 > i && isFinite(i) && (e += i, i = -i), this.x = t, this.y = e, this.width = n, this.height = i + } + + return t.prototype.union = function (t) { + var e = Om(t.x, this.x), n = Om(t.y, this.y); + this.width = isFinite(this.x) && isFinite(this.width) ? Rm(t.x + t.width, this.x + this.width) - e : t.width, this.height = isFinite(this.y) && isFinite(this.height) ? Rm(t.y + t.height, this.y + this.height) - n : t.height, this.x = e, this.y = n + }, t.prototype.applyTransform = function (e) { + t.applyTransform(this, this, e) + }, t.prototype.calculateTransform = function (t) { + var e = this, n = t.width / e.width, i = t.height / e.height, r = Fe(); + return We(r, r, [-e.x, -e.y]), Ye(r, r, [n, i]), We(r, r, [t.x, t.y]), r + }, t.prototype.intersect = function (e, n) { + if (!e) return !1; + e instanceof t || (e = t.create(e)); + var i = this, r = i.x, o = i.x + i.width, a = i.y, s = i.y + i.height, l = e.x, u = e.x + e.width, + h = e.y, c = e.y + e.height, p = !(l > o || r > u || h > s || a > c); + if (n) { + var f = 1 / 0, d = 0, g = Math.abs(o - l), y = Math.abs(u - r), v = Math.abs(s - h), + m = Math.abs(c - a), _ = Math.min(g, y), x = Math.min(v, m); + l > o || r > u ? _ > d && (d = _, y > g ? Pm.set(Hm, -g, 0) : Pm.set(Hm, y, 0)) : f > _ && (f = _, y > g ? Pm.set(Fm, g, 0) : Pm.set(Fm, -y, 0)), h > s || a > c ? x > d && (d = x, m > v ? Pm.set(Hm, 0, -v) : Pm.set(Hm, 0, m)) : f > _ && (f = _, m > v ? Pm.set(Fm, 0, v) : Pm.set(Fm, 0, -m)) + } + return n && Pm.copy(n, p ? Fm : Hm), p + }, t.prototype.contain = function (t, e) { + var n = this; + return t >= n.x && t <= n.x + n.width && e >= n.y && e <= n.y + n.height + }, t.prototype.clone = function () { + return new t(this.x, this.y, this.width, this.height) + }, t.prototype.copy = function (e) { + t.copy(this, e) + }, t.prototype.plain = function () { + return {x: this.x, y: this.y, width: this.width, height: this.height} + }, t.prototype.isFinite = function () { + return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height) + }, t.prototype.isZero = function () { + return 0 === this.width || 0 === this.height + }, t.create = function (e) { + return new t(e.x, e.y, e.width, e.height) + }, t.copy = function (t, e) { + t.x = e.x, t.y = e.y, t.width = e.width, t.height = e.height + }, t.applyTransform = function (e, n, i) { + if (!i) return void (e !== n && t.copy(e, n)); + if (i[1] < 1e-5 && i[1] > -1e-5 && i[2] < 1e-5 && i[2] > -1e-5) { + var r = i[0], o = i[3], a = i[4], s = i[5]; + return e.x = n.x * r + a, e.y = n.y * o + s, e.width = n.width * r, e.height = n.height * o, e.width < 0 && (e.x += e.width, e.width = -e.width), void (e.height < 0 && (e.y += e.height, e.height = -e.height)) + } + Em.x = Bm.x = n.x, Em.y = Nm.y = n.y, zm.x = Nm.x = n.x + n.width, zm.y = Bm.y = n.y + n.height, Em.transform(i), Nm.transform(i), zm.transform(i), Bm.transform(i), e.x = Om(Em.x, zm.x, Bm.x, Nm.x), e.y = Om(Em.y, zm.y, Bm.y, Nm.y); + var l = Rm(Em.x, zm.x, Bm.x, Nm.x), u = Rm(Em.y, zm.y, Bm.y, Nm.y); + e.width = l - e.x, e.height = u - e.y + }, t + }(), Gm = {}, Wm = "12px sans-serif", Xm = {measureText: Pn}, Ym = 1; + "undefined" != typeof window && (Ym = Math.max(window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI || 1, 1)); + var Um = Ym, qm = .4, jm = "#333", Zm = "#ccc", Km = "#eee", $m = "__zr_normal__", + Jm = ["x", "y", "scaleX", "scaleY", "originX", "originY", "rotation", "ignore"], + Qm = {x: !0, y: !0, scaleX: !0, scaleY: !0, originX: !0, originY: !0, rotation: !0, ignore: !1}, t_ = {}, + e_ = new Vm(0, 0, 0, 0), n_ = function () { + function t(t) { + this.id = o(), this.animators = [], this.currentStates = [], this.states = {}, this._init(t) + } + + return t.prototype._init = function (t) { + this.attr(t) + }, t.prototype.drift = function (t, e) { + switch (this.draggable) { + case"horizontal": + e = 0; + break; + case"vertical": + t = 0 + } + var n = this.transform; + n || (n = this.transform = [1, 0, 0, 1, 0, 0]), n[4] += t, n[5] += e, this.decomposeTransform(), this.markRedraw() + }, t.prototype.beforeUpdate = function () { + }, t.prototype.afterUpdate = function () { + }, t.prototype.update = function () { + this.updateTransform(), this.__dirty && this.updateInnerText() + }, t.prototype.updateInnerText = function (t) { + var e = this._textContent; + if (e && (!e.ignore || t)) { + this.textConfig || (this.textConfig = {}); + var n = this.textConfig, i = n.local, r = e.attachedTransform, o = void 0, a = void 0, s = !1; + r.parent = i ? this : null; + var l = !1; + if (r.x = e.x, r.y = e.y, r.originX = e.originX, r.originY = e.originY, r.rotation = e.rotation, r.scaleX = e.scaleX, r.scaleY = e.scaleY, null != n.position) { + var u = e_; + u.copy(n.layoutRect ? n.layoutRect : this.getBoundingRect()), i || u.applyTransform(this.transform), this.calculateTextPosition ? this.calculateTextPosition(t_, n, u) : Hn(t_, n, u), r.x = t_.x, r.y = t_.y, o = t_.align, a = t_.verticalAlign; + var h = n.origin; + if (h && null != n.rotation) { + var c = void 0, p = void 0; + "center" === h ? (c = .5 * u.width, p = .5 * u.height) : (c = Fn(h[0], u.width), p = Fn(h[1], u.height)), l = !0, r.originX = -r.x + c + (i ? 0 : u.x), r.originY = -r.y + p + (i ? 0 : u.y) + } + } + null != n.rotation && (r.rotation = n.rotation); + var f = n.offset; + f && (r.x += f[0], r.y += f[1], l || (r.originX = -f[0], r.originY = -f[1])); + var d = null == n.inside ? "string" == typeof n.position && n.position.indexOf("inside") >= 0 : n.inside, + g = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {}), y = void 0, v = void 0, + m = void 0; + d && this.canBeInsideText() ? (y = n.insideFill, v = n.insideStroke, (null == y || "auto" === y) && (y = this.getInsideTextFill()), (null == v || "auto" === v) && (v = this.getInsideTextStroke(y), m = !0)) : (y = n.outsideFill, v = n.outsideStroke, (null == y || "auto" === y) && (y = this.getOutsideFill()), (null == v || "auto" === v) && (v = this.getOutsideStroke(y), m = !0)), y = y || "#000", (y !== g.fill || v !== g.stroke || m !== g.autoStroke || o !== g.align || a !== g.verticalAlign) && (s = !0, g.fill = y, g.stroke = v, g.autoStroke = m, g.align = o, g.verticalAlign = a, e.setDefaultTextStyle(g)), s && e.dirtyStyle(), e.markRedraw() + } + }, t.prototype.canBeInsideText = function () { + return !0 + }, t.prototype.getInsideTextFill = function () { + return "#fff" + }, t.prototype.getInsideTextStroke = function () { + return "#000" + }, t.prototype.getOutsideFill = function () { + return this.__zr && this.__zr.isDarkMode() ? Zm : jm + }, t.prototype.getOutsideStroke = function () { + var t = this.__zr && this.__zr.getBackgroundColor(), e = "string" == typeof t && an(t); + e || (e = [255, 255, 255, 1]); + for (var n = e[3], i = this.__zr.isDarkMode(), r = 0; 3 > r; r++) e[r] = e[r] * n + (i ? 0 : 255) * (1 - n); + return e[3] = 1, gn(e, "rgba") + }, t.prototype.traverse = function () { + }, t.prototype.attrKV = function (t, e) { + "textConfig" === t ? this.setTextConfig(e) : "textContent" === t ? this.setTextContent(e) : "clipPath" === t ? this.setClipPath(e) : "extra" === t ? (this.extra = this.extra || {}, h(this.extra, e)) : this[t] = e + }, t.prototype.hide = function () { + this.ignore = !0, this.markRedraw() + }, t.prototype.show = function () { + this.ignore = !1, this.markRedraw() + }, t.prototype.attr = function (t, e) { + if ("string" == typeof t) this.attrKV(t, e); else if (D(t)) for (var n = t, i = w(n), r = 0; r < i.length; r++) { + var o = i[r]; + this.attrKV(o, t[o]) + } + return this.markRedraw(), this + }, t.prototype.saveCurrentToNormalState = function (t) { + this._innerSaveToNormal(t); + for (var e = this._normalState, n = 0; n < this.animators.length; n++) { + var i = this.animators[n], r = i.__fromStateTransition; + if (!r || r === $m) { + var o = i.targetName, a = o ? e[o] : e; + i.saveFinalToTarget(a) + } + } + }, t.prototype._innerSaveToNormal = function (t) { + var e = this._normalState; + e || (e = this._normalState = {}), t.textConfig && !e.textConfig && (e.textConfig = this.textConfig), this._savePrimaryToNormal(t, e, Jm) + }, t.prototype._savePrimaryToNormal = function (t, e, n) { + for (var i = 0; i < n.length; i++) { + var r = n[i]; + null == t[r] || r in e || (e[r] = this[r]) + } + }, t.prototype.hasState = function () { + return this.currentStates.length > 0 + }, t.prototype.getState = function (t) { + return this.states[t] + }, t.prototype.ensureState = function (t) { + var e = this.states; + return e[t] || (e[t] = {}), e[t] + }, t.prototype.clearStates = function (t) { + this.useState($m, !1, t) + }, t.prototype.useState = function (e, n, i) { + var r = e === $m, o = this.hasState(); + if (o || !r) { + var s = this.currentStates, l = this.stateTransition; + if (!(p(s, e) >= 0) || !n && 1 !== s.length) { + var u; + if (this.stateProxy && !r && (u = this.stateProxy(e)), u || (u = this.states && this.states[e]), !u && !r) return void a("State " + e + " not exists."); + r || this.saveCurrentToNormalState(u); + var h = !(!u || !u.hoverLayer); + return h && this._toggleHoverLayerFlag(!0), this._applyStateObj(e, u, this._normalState, n, !i && !this.__inHover && l && l.duration > 0, l), this._textContent && this._textContent.useState(e, n), this._textGuide && this._textGuide.useState(e, n), r ? (this.currentStates = [], this._normalState = {}) : n ? this.currentStates.push(e) : this.currentStates = [e], this._updateAnimationTargets(), this.markRedraw(), !h && this.__inHover && (this._toggleHoverLayerFlag(!1), this.__dirty &= ~t.REDARAW_BIT), u + } + } + }, t.prototype.useStates = function (e, n) { + if (e.length) { + var i = [], r = this.currentStates, o = e.length, a = o === r.length; + if (a) for (var s = 0; o > s; s++) if (e[s] !== r[s]) { + a = !1; + break + } + if (a) return; + for (var s = 0; o > s; s++) { + var l = e[s], u = void 0; + this.stateProxy && (u = this.stateProxy(l, e)), u || (u = this.states[l]), u && i.push(u) + } + var h = !(!i[o - 1] || !i[o - 1].hoverLayer); + h && this._toggleHoverLayerFlag(!0); + var c = this._mergeStates(i), p = this.stateTransition; + this.saveCurrentToNormalState(c), this._applyStateObj(e.join(","), c, this._normalState, !1, !n && !this.__inHover && p && p.duration > 0, p), this._textContent && this._textContent.useStates(e), this._textGuide && this._textGuide.useStates(e), this._updateAnimationTargets(), this.currentStates = e.slice(), this.markRedraw(), !h && this.__inHover && (this._toggleHoverLayerFlag(!1), this.__dirty &= ~t.REDARAW_BIT) + } else this.clearStates() + }, t.prototype._updateAnimationTargets = function () { + for (var t = 0; t < this.animators.length; t++) { + var e = this.animators[t]; + e.targetName && e.changeTarget(this[e.targetName]) + } + }, t.prototype.removeState = function (t) { + var e = p(this.currentStates, t); + if (e >= 0) { + var n = this.currentStates.slice(); + n.splice(e, 1), this.useStates(n) + } + }, t.prototype.replaceState = function (t, e, n) { + var i = this.currentStates.slice(), r = p(i, t), o = p(i, e) >= 0; + r >= 0 ? o ? i.splice(r, 1) : i[r] = e : n && !o && i.push(e), this.useStates(i) + }, t.prototype.toggleState = function (t, e) { + e ? this.useState(t, !0) : this.removeState(t) + }, t.prototype._mergeStates = function (t) { + for (var e, n = {}, i = 0; i < t.length; i++) { + var r = t[i]; + h(n, r), r.textConfig && (e = e || {}, h(e, r.textConfig)) + } + return e && (n.textConfig = e), n + }, t.prototype._applyStateObj = function (t, e, n, i, r, o) { + var a = !(e && i); + e && e.textConfig ? (this.textConfig = h({}, i ? this.textConfig : n.textConfig), h(this.textConfig, e.textConfig)) : a && n.textConfig && (this.textConfig = n.textConfig); + for (var s = {}, l = !1, u = 0; u < Jm.length; u++) { + var c = Jm[u], p = r && Qm[c]; + e && null != e[c] ? p ? (l = !0, s[c] = e[c]) : this[c] = e[c] : a && null != n[c] && (p ? (l = !0, s[c] = n[c]) : this[c] = n[c]) + } + if (!r) for (var u = 0; u < this.animators.length; u++) { + var f = this.animators[u], d = f.targetName; + f.__changeFinalValue(d ? (e || n)[d] : e || n) + } + l && this._transitionState(t, s, o) + }, t.prototype._attachComponent = function (t) { + if (t.__zr && !t.__hostTarget) throw new Error("Text element has been added to zrender."); + if (t === this) throw new Error("Recursive component attachment."); + var e = this.__zr; + e && t.addSelfToZr(e), t.__zr = e, t.__hostTarget = this + }, t.prototype._detachComponent = function (t) { + t.__zr && t.removeSelfFromZr(t.__zr), t.__zr = null, t.__hostTarget = null + }, t.prototype.getClipPath = function () { + return this._clipPath + }, t.prototype.setClipPath = function (t) { + this._clipPath && this._clipPath !== t && this.removeClipPath(), this._attachComponent(t), this._clipPath = t, this.markRedraw() + }, t.prototype.removeClipPath = function () { + var t = this._clipPath; + t && (this._detachComponent(t), this._clipPath = null, this.markRedraw()) + }, t.prototype.getTextContent = function () { + return this._textContent + }, t.prototype.setTextContent = function (t) { + var e = this._textContent; + if (e !== t) { + if (e && e !== t && this.removeTextContent(), t.__zr && !t.__hostTarget) throw new Error("Text element has been added to zrender."); + t.attachedTransform = new ym, this._attachComponent(t), this._textContent = t, this.markRedraw() + } + }, t.prototype.setTextConfig = function (t) { + this.textConfig || (this.textConfig = {}), h(this.textConfig, t), this.markRedraw() + }, t.prototype.removeTextContent = function () { + var t = this._textContent; + t && (t.attachedTransform = null, this._detachComponent(t), this._textContent = null, this._innerTextDefaultStyle = null, this.markRedraw()) + }, t.prototype.getTextGuideLine = function () { + return this._textGuide + }, t.prototype.setTextGuideLine = function (t) { + this._textGuide && this._textGuide !== t && this.removeTextGuideLine(), this._attachComponent(t), this._textGuide = t, this.markRedraw() + }, t.prototype.removeTextGuideLine = function () { + var t = this._textGuide; + t && (this._detachComponent(t), this._textGuide = null, this.markRedraw()) + }, t.prototype.markRedraw = function () { + this.__dirty |= t.REDARAW_BIT; + var e = this.__zr; + e && (this.__inHover ? e.refreshHover() : e.refresh()), this.__hostTarget && this.__hostTarget.markRedraw() + }, t.prototype.dirty = function () { + this.markRedraw() + }, t.prototype._toggleHoverLayerFlag = function (t) { + this.__inHover = t; + var e = this._textContent, n = this._textGuide; + e && (e.__inHover = t), n && (n.__inHover = t) + }, t.prototype.addSelfToZr = function (t) { + this.__zr = t; + var e = this.animators; + if (e) for (var n = 0; n < e.length; n++) t.animation.addAnimator(e[n]); + this._clipPath && this._clipPath.addSelfToZr(t), this._textContent && this._textContent.addSelfToZr(t), this._textGuide && this._textGuide.addSelfToZr(t) + }, t.prototype.removeSelfFromZr = function (t) { + this.__zr = null; + var e = this.animators; + if (e) for (var n = 0; n < e.length; n++) t.animation.removeAnimator(e[n]); + this._clipPath && this._clipPath.removeSelfFromZr(t), this._textContent && this._textContent.removeSelfFromZr(t), this._textGuide && this._textGuide.removeSelfFromZr(t) + }, t.prototype.animate = function (t, e) { + var n = t ? this[t] : this; + if (!n) return void a('Property "' + t + '" is not existed in element ' + this.id); + var i = new Lm(n, e); + return this.addAnimator(i, t), i + }, t.prototype.addAnimator = function (t, e) { + var n = this.__zr, i = this; + t.during(function () { + i.updateDuringAnimation(e) + }).done(function () { + var e = i.animators, n = p(e, t); + n >= 0 && e.splice(n, 1) + }), this.animators.push(t), n && n.animation.addAnimator(t), n && n.wakeUp() + }, t.prototype.updateDuringAnimation = function () { + this.markRedraw() + }, t.prototype.stopAnimation = function (t, e) { + for (var n = this.animators, i = n.length, r = [], o = 0; i > o; o++) { + var a = n[o]; + t && t !== a.scope ? r.push(a) : a.stop(e) + } + return this.animators = r, this + }, t.prototype.animateTo = function (t, e, n) { + Vn(this, t, e, n) + }, t.prototype.animateFrom = function (t, e, n) { + Vn(this, t, e, n, !0) + }, t.prototype._transitionState = function (t, e, n, i) { + for (var r = Vn(this, e, n, i), o = 0; o < r.length; o++) r[o].__fromStateTransition = t + }, t.prototype.getBoundingRect = function () { + return null + }, t.prototype.getPaintRect = function () { + return null + }, t.REDARAW_BIT = 1, t.initDefaultProps = function () { + function e(t, e, n) { + r[t + e + n] || (console.warn("DEPRECATED: '" + t + "' has been deprecated. use '" + e + "', '" + n + "' instead"), r[t + e + n] = !0) + } + + function n(t, n, r, o) { + function a(t, e) { + Object.defineProperty(e, 0, { + get: function () { + return t[r] + }, set: function (e) { + t[r] = e + } + }), Object.defineProperty(e, 1, { + get: function () { + return t[o] + }, set: function (e) { + t[o] = e + } + }) + } + + Object.defineProperty(i, t, { + get: function () { + if (e(t, r, o), !this[n]) { + var i = this[n] = []; + a(this, i) + } + return this[n] + }, set: function (i) { + e(t, r, o), this[r] = i[0], this[o] = i[1], this[n] = i, a(this, i) + } + }) + } + + var i = t.prototype; + i.type = "element", i.name = "", i.ignore = !1, i.silent = !1, i.isGroup = !1, i.draggable = !1, i.dragging = !1, i.ignoreClip = !1, i.__inHover = !1, i.__dirty = t.REDARAW_BIT; + var r = {}; + Object.defineProperty && (!wv.browser.ie || wv.browser.version > 8) && (n("position", "_legacyPos", "x", "y"), n("scale", "_legacyScale", "scaleX", "scaleY"), n("origin", "_legacyOrigin", "originX", "originY")) + }(), t + }(); + d(n_, Uv), d(n_, ym); + var i_, r_ = 32, o_ = 7, a_ = !1, s_ = function () { + function t() { + this._roots = [], this._displayList = [], this._displayListLen = 0, this.displayableSortFunc = ei + } + + return t.prototype.traverse = function (t, e) { + for (var n = 0; n < this._roots.length; n++) this._roots[n].traverse(t, e) + }, t.prototype.getDisplayList = function (t, e) { + e = e || !1; + var n = this._displayList; + return (t || !n.length) && this.updateDisplayList(e), n + }, t.prototype.updateDisplayList = function (t) { + this._displayListLen = 0; + for (var e = this._roots, n = this._displayList, i = 0, r = e.length; r > i; i++) this._updateAndAddDisplayable(e[i], null, t); + n.length = this._displayListLen, wv.canvasSupported && Qn(n, ei) + }, t.prototype._updateAndAddDisplayable = function (t, e, n) { + if (!t.ignore || n) { + t.beforeUpdate(), t.update(), t.afterUpdate(); + var i = t.getClipPath(); + if (t.ignoreClip) e = null; else if (i) { + e = e ? e.slice() : []; + for (var r = i, o = t; r;) r.parent = o, r.updateTransform(), e.push(r), o = r, r = r.getClipPath() + } + if (t.childrenRef) { + for (var a = t.childrenRef(), s = 0; s < a.length; s++) { + var l = a[s]; + t.__dirty && (l.__dirty |= n_.REDARAW_BIT), this._updateAndAddDisplayable(l, e, n) + } + t.__dirty = 0 + } else { + var u = t; + e && e.length ? u.__clipPaths = e : u.__clipPaths && u.__clipPaths.length > 0 && (u.__clipPaths = []), isNaN(u.z) && (ti(), u.z = 0), isNaN(u.z2) && (ti(), u.z2 = 0), isNaN(u.zlevel) && (ti(), u.zlevel = 0), this._displayList[this._displayListLen++] = u + } + var h = t.getDecalElement && t.getDecalElement(); + h && this._updateAndAddDisplayable(h, e, n); + var c = t.getTextGuideLine(); + c && this._updateAndAddDisplayable(c, e, n); + var p = t.getTextContent(); + p && this._updateAndAddDisplayable(p, e, n) + } + }, t.prototype.addRoot = function (t) { + t.__zr && t.__zr.storage === this || this._roots.push(t) + }, t.prototype.delRoot = function (t) { + if (t instanceof Array) for (var e = 0, n = t.length; n > e; e++) this.delRoot(t[e]); else { + var i = p(this._roots, t); + i >= 0 && this._roots.splice(i, 1) + } + }, t.prototype.delAllRoots = function () { + this._roots = [], this._displayList = [], this._displayListLen = 0 + }, t.prototype.getRoots = function () { + return this._roots + }, t.prototype.dispose = function () { + this._displayList = null, this._roots = null + }, t + }(); + i_ = "undefined" != typeof window && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function (t) { + return setTimeout(t, 16) + }; + var l_ = i_, u_ = function (t) { + function n(e) { + var n = t.call(this) || this; + return n._running = !1, n._time = 0, n._pausedTime = 0, n._pauseStart = 0, n._paused = !1, e = e || {}, n.stage = e.stage || {}, n.onframe = e.onframe || function () { + }, n + } + + return e(n, t), n.prototype.addClip = function (t) { + t.animation && this.removeClip(t), this._clipsHead ? (this._clipsTail.next = t, t.prev = this._clipsTail, t.next = null, this._clipsTail = t) : this._clipsHead = this._clipsTail = t, t.animation = this + }, n.prototype.addAnimator = function (t) { + t.animation = this; + var e = t.getClip(); + e && this.addClip(e) + }, n.prototype.removeClip = function (t) { + if (t.animation) { + var e = t.prev, n = t.next; + e ? e.next = n : this._clipsHead = n, n ? n.prev = e : this._clipsTail = e, t.next = t.prev = t.animation = null + } + }, n.prototype.removeAnimator = function (t) { + var e = t.getClip(); + e && this.removeClip(e), t.animation = null + }, n.prototype.update = function (t) { + for (var e = (new Date).getTime() - this._pausedTime, n = e - this._time, i = this._clipsHead; i;) { + var r = i.next, o = i.step(e, n); + o ? (i.ondestroy && i.ondestroy(), this.removeClip(i), i = r) : i = r + } + this._time = e, t || (this.onframe(n), this.trigger("frame", n), this.stage.update && this.stage.update()) + }, n.prototype._startLoop = function () { + function t() { + e._running && (l_(t), !e._paused && e.update()) + } + + var e = this; + this._running = !0, l_(t) + }, n.prototype.start = function () { + this._running || (this._time = (new Date).getTime(), this._pausedTime = 0, this._startLoop()) + }, n.prototype.stop = function () { + this._running = !1 + }, n.prototype.pause = function () { + this._paused || (this._pauseStart = (new Date).getTime(), this._paused = !0) + }, n.prototype.resume = function () { + this._paused && (this._pausedTime += (new Date).getTime() - this._pauseStart, this._paused = !1) + }, n.prototype.clear = function () { + for (var t = this._clipsHead; t;) { + var e = t.next; + t.prev = t.next = t.animation = null, t = e + } + this._clipsHead = this._clipsTail = null + }, n.prototype.isFinished = function () { + return null == this._clipsHead + }, n.prototype.animate = function (t, e) { + e = e || {}, this.start(); + var n = new Lm(t, e.loop); + return this.addAnimator(n), n + }, n + }(Uv), h_ = 300, c_ = wv.domSupported, p_ = function () { + var t = ["click", "dblclick", "mousewheel", "wheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], + e = ["touchstart", "touchend", "touchmove"], + n = {pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1}, i = v(t, function (t) { + var e = t.replace("mouse", "pointer"); + return n.hasOwnProperty(e) ? e : t + }); + return {mouse: t, touch: e, pointer: i} + }(), f_ = {mouse: ["mousemove", "mouseup"], pointer: ["pointermove", "pointerup"]}, d_ = !1, g_ = function () { + function t(t, e) { + this.stopPropagation = K, this.stopImmediatePropagation = K, this.preventDefault = K, this.type = e.type, this.target = this.currentTarget = t.dom, this.pointerType = e.pointerType, this.clientX = e.clientX, this.clientY = e.clientY + } + + return t + }(), y_ = { + mousedown: function (t) { + t = Ae(this.dom, t), this.__mayPointerCapture = [t.zrX, t.zrY], this.trigger("mousedown", t) + }, mousemove: function (t) { + t = Ae(this.dom, t); + var e = this.__mayPointerCapture; + !e || t.zrX === e[0] && t.zrY === e[1] || this.__togglePointerCapture(!0), this.trigger("mousemove", t) + }, mouseup: function (t) { + t = Ae(this.dom, t), this.__togglePointerCapture(!1), this.trigger("mouseup", t) + }, mouseout: function (t) { + if (t.target === this.dom) { + t = Ae(this.dom, t), this.__pointerCapturing && (t.zrEventControl = "no_globalout"); + var e = t.toElement || t.relatedTarget; + t.zrIsToLocalDOM = ai(this, e), this.trigger("mouseout", t) + } + }, wheel: function (t) { + d_ = !0, t = Ae(this.dom, t), this.trigger("mousewheel", t) + }, mousewheel: function (t) { + d_ || (t = Ae(this.dom, t), this.trigger("mousewheel", t)) + }, touchstart: function (t) { + t = Ae(this.dom, t), ri(t), this.__lastTouchMoment = new Date, this.handler.processGesture(t, "start"), y_.mousemove.call(this, t), y_.mousedown.call(this, t) + }, touchmove: function (t) { + t = Ae(this.dom, t), ri(t), this.handler.processGesture(t, "change"), y_.mousemove.call(this, t) + }, touchend: function (t) { + t = Ae(this.dom, t), ri(t), this.handler.processGesture(t, "end"), y_.mouseup.call(this, t), +new Date - +this.__lastTouchMoment < h_ && y_.click.call(this, t) + }, pointerdown: function (t) { + y_.mousedown.call(this, t) + }, pointermove: function (t) { + ni(t) || y_.mousemove.call(this, t) + }, pointerup: function (t) { + y_.mouseup.call(this, t) + }, pointerout: function (t) { + ni(t) || y_.mouseout.call(this, t) + } + }; + y(["click", "dblclick", "contextmenu"], function (t) { + y_[t] = function (e) { + e = Ae(this.dom, e), this.trigger(t, e) + } + }); + var v_ = { + pointermove: function (t) { + ni(t) || v_.mousemove.call(this, t) + }, pointerup: function (t) { + v_.mouseup.call(this, t) + }, mousemove: function (t) { + this.trigger("mousemove", t) + }, mouseup: function (t) { + var e = this.__pointerCapturing; + this.__togglePointerCapture(!1), this.trigger("mouseup", t), e && (t.zrEventControl = "only_globalout", this.trigger("mouseout", t)) + } + }, m_ = function () { + function t(t, e) { + this.mounted = {}, this.listenerOpts = {}, this.touching = !1, this.domTarget = t, this.domHandlers = e + } + + return t + }(), __ = function (t) { + function n(e, n) { + var i = t.call(this) || this; + return i.__pointerCapturing = !1, i.dom = e, i.painterRoot = n, i._localHandlerScope = new m_(e, y_), c_ && (i._globalHandlerScope = new m_(document, v_)), si(i, i._localHandlerScope), i + } + + return e(n, t), n.prototype.dispose = function () { + hi(this._localHandlerScope), c_ && hi(this._globalHandlerScope) + }, n.prototype.setCursor = function (t) { + this.dom.style && (this.dom.style.cursor = t || "default") + }, n.prototype.__togglePointerCapture = function (t) { + if (this.__mayPointerCapture = null, c_ && +this.__pointerCapturing ^ +t) { + this.__pointerCapturing = t; + var e = this._globalHandlerScope; + t ? li(this, e) : hi(e) + } + }, n + }(Uv), x_ = "__zr_style_" + Math.round(10 * Math.random()), + w_ = {shadowBlur: 0, shadowOffsetX: 0, shadowOffsetY: 0, shadowColor: "#000", opacity: 1, blend: "source-over"}, + b_ = {style: {shadowBlur: !0, shadowOffsetX: !0, shadowOffsetY: !0, shadowColor: !0, opacity: !0}}; + w_[x_] = !0; + var S_ = ["z", "z2", "invisible"], T_ = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype._init = function (e) { + for (var n = w(e), i = 0; i < n.length; i++) { + var r = n[i]; + "style" === r ? this.useStyle(e[r]) : t.prototype.attrKV.call(this, r, e[r]) + } + this.style || this.useStyle({}) + }, n.prototype.beforeBrush = function () { + }, n.prototype.afterBrush = function () { + }, n.prototype.innerBeforeBrush = function () { + }, n.prototype.innerAfterBrush = function () { + }, n.prototype.shouldBePainted = function (t, e, n, i) { + var r = this.transform; + if (this.ignore || this.invisible || 0 === this.style.opacity || this.culling && ci(this, t, e) || r && !r[0] && !r[3]) return !1; + if (n && this.__clipPaths) for (var o = 0; o < this.__clipPaths.length; ++o) if (this.__clipPaths[o].isZeroArea()) return !1; + if (i && this.parent) for (var a = this.parent; a;) { + if (a.ignore) return !1; + a = a.parent + } + return !0 + }, n.prototype.contain = function (t, e) { + return this.rectContain(t, e) + }, n.prototype.traverse = function (t, e) { + t.call(e, this) + }, n.prototype.rectContain = function (t, e) { + var n = this.transformCoordToLocal(t, e), i = this.getBoundingRect(); + return i.contain(n[0], n[1]) + }, n.prototype.getPaintRect = function () { + var t = this._paintRect; + if (!this._paintRect || this.__dirty) { + var e = this.transform, n = this.getBoundingRect(), i = this.style, r = i.shadowBlur || 0, + o = i.shadowOffsetX || 0, a = i.shadowOffsetY || 0; + t = this._paintRect || (this._paintRect = new Vm(0, 0, 0, 0)), e ? Vm.applyTransform(t, n, e) : t.copy(n), (r || o || a) && (t.width += 2 * r + Math.abs(o), t.height += 2 * r + Math.abs(a), t.x = Math.min(t.x, t.x + o - r), t.y = Math.min(t.y, t.y + a - r)); + var s = this.dirtyRectTolerance; + t.isZero() || (t.x = Math.floor(t.x - s), t.y = Math.floor(t.y - s), t.width = Math.ceil(t.width + 1 + 2 * s), t.height = Math.ceil(t.height + 1 + 2 * s)) + } + return t + }, n.prototype.setPrevPaintRect = function (t) { + t ? (this._prevPaintRect = this._prevPaintRect || new Vm(0, 0, 0, 0), this._prevPaintRect.copy(t)) : this._prevPaintRect = null + }, n.prototype.getPrevPaintRect = function () { + return this._prevPaintRect + }, n.prototype.animateStyle = function (t) { + return this.animate("style", t) + }, n.prototype.updateDuringAnimation = function (t) { + "style" === t ? this.dirtyStyle() : this.markRedraw() + }, n.prototype.attrKV = function (e, n) { + "style" !== e ? t.prototype.attrKV.call(this, e, n) : this.style ? this.setStyle(n) : this.useStyle(n) + }, n.prototype.setStyle = function (t, e) { + return "string" == typeof t ? this.style[t] = e : h(this.style, t), this.dirtyStyle(), this + }, n.prototype.dirtyStyle = function () { + this.markRedraw(), this.__dirty |= n.STYLE_CHANGED_BIT, this._rect && (this._rect = null) + }, n.prototype.dirty = function () { + this.dirtyStyle() + }, n.prototype.styleChanged = function () { + return !!(this.__dirty & n.STYLE_CHANGED_BIT) + }, n.prototype.styleUpdated = function () { + this.__dirty &= ~n.STYLE_CHANGED_BIT + }, n.prototype.createStyle = function (t) { + return j(w_, t) + }, n.prototype.useStyle = function (t) { + t[x_] || (t = this.createStyle(t)), this.__inHover ? this.__hoverStyle = t : this.style = t, this.dirtyStyle() + }, n.prototype.isStyleObject = function (t) { + return t[x_] + }, n.prototype._innerSaveToNormal = function (e) { + t.prototype._innerSaveToNormal.call(this, e); + var n = this._normalState; + e.style && !n.style && (n.style = this._mergeStyle(this.createStyle(), this.style)), this._savePrimaryToNormal(e, n, S_) + }, n.prototype._applyStateObj = function (e, n, i, r, o, a) { + t.prototype._applyStateObj.call(this, e, n, i, r, o, a); + var s, l = !(n && r); + if (n && n.style ? o ? r ? s = n.style : (s = this._mergeStyle(this.createStyle(), i.style), this._mergeStyle(s, n.style)) : (s = this._mergeStyle(this.createStyle(), r ? this.style : i.style), this._mergeStyle(s, n.style)) : l && (s = i.style), s) if (o) { + var u = this.style; + if (this.style = this.createStyle(l ? {} : u), l) for (var h = w(u), c = 0; c < h.length; c++) { + var p = h[c]; + p in s && (s[p] = s[p], this.style[p] = u[p]) + } + for (var f = w(s), c = 0; c < f.length; c++) { + var p = f[c]; + this.style[p] = this.style[p] + } + this._transitionState(e, {style: s}, a, this.getAnimationStyleProps()) + } else this.useStyle(s); + for (var c = 0; c < S_.length; c++) { + var p = S_[c]; + n && null != n[p] ? this[p] = n[p] : l && null != i[p] && (this[p] = i[p]) + } + }, n.prototype._mergeStates = function (e) { + for (var n, i = t.prototype._mergeStates.call(this, e), r = 0; r < e.length; r++) { + var o = e[r]; + o.style && (n = n || {}, this._mergeStyle(n, o.style)) + } + return n && (i.style = n), i + }, n.prototype._mergeStyle = function (t, e) { + return h(t, e), t + }, n.prototype.getAnimationStyleProps = function () { + return b_ + }, n.STYLE_CHANGED_BIT = 2, n.initDefaultProps = function () { + var t = n.prototype; + t.type = "displayable", t.invisible = !1, t.z = 0, t.z2 = 0, t.zlevel = 0, t.culling = !1, t.cursor = "pointer", t.rectHover = !1, t.incremental = !1, t._rect = null, t.dirtyRectTolerance = 0, t.__dirty = n_.REDARAW_BIT | n.STYLE_CHANGED_BIT + }(), n + }(n_), M_ = new Vm(0, 0, 0, 0), C_ = new Vm(0, 0, 0, 0), I_ = Math.pow, A_ = Math.sqrt, D_ = 1e-8, k_ = 1e-4, + L_ = A_(3), P_ = 1 / 3, O_ = $(), R_ = $(), E_ = $(), z_ = Math.min, B_ = Math.max, N_ = Math.sin, + F_ = Math.cos, H_ = 2 * Math.PI, V_ = $(), G_ = $(), W_ = $(), X_ = [], Y_ = [], + U_ = {M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, R: 7}, q_ = [], j_ = [], Z_ = [], K_ = [], $_ = [], J_ = [], + Q_ = Math.min, tx = Math.max, ex = Math.cos, nx = Math.sin, ix = Math.sqrt, rx = Math.abs, ox = Math.PI, + ax = 2 * ox, sx = "undefined" != typeof Float32Array, lx = [], ux = function () { + function t(t) { + this.dpr = 1, this._version = 0, this._xi = 0, this._yi = 0, this._x0 = 0, this._y0 = 0, this._len = 0, t && (this._saveData = !1), this._saveData && (this.data = []) + } + + return t.prototype.increaseVersion = function () { + this._version++ + }, t.prototype.getVersion = function () { + return this._version + }, t.prototype.setScale = function (t, e, n) { + n = n || 0, n > 0 && (this._ux = rx(n / Um / t) || 0, this._uy = rx(n / Um / e) || 0) + }, t.prototype.setDPR = function (t) { + this.dpr = t + }, t.prototype.setContext = function (t) { + this._ctx = t + }, t.prototype.getContext = function () { + return this._ctx + }, t.prototype.beginPath = function () { + return this._ctx && this._ctx.beginPath(), this.reset(), this + }, t.prototype.reset = function () { + this._saveData && (this._len = 0), this._lineDash && (this._lineDash = null, this._dashOffset = 0), this._pathSegLen && (this._pathSegLen = null, this._pathLen = 0), this._version++ + }, t.prototype.moveTo = function (t, e) { + return this.addData(U_.M, t, e), this._ctx && this._ctx.moveTo(t, e), this._x0 = t, this._y0 = e, this._xi = t, this._yi = e, this + }, t.prototype.lineTo = function (t, e) { + var n = rx(t - this._xi) > this._ux || rx(e - this._yi) > this._uy || this._len < 5; + return this.addData(U_.L, t, e), this._ctx && n && (this._needsDash ? this._dashedLineTo(t, e) : this._ctx.lineTo(t, e)), n && (this._xi = t, this._yi = e), this + }, t.prototype.bezierCurveTo = function (t, e, n, i, r, o) { + return this.addData(U_.C, t, e, n, i, r, o), this._ctx && (this._needsDash ? this._dashedBezierTo(t, e, n, i, r, o) : this._ctx.bezierCurveTo(t, e, n, i, r, o)), this._xi = r, this._yi = o, this + }, t.prototype.quadraticCurveTo = function (t, e, n, i) { + return this.addData(U_.Q, t, e, n, i), this._ctx && (this._needsDash ? this._dashedQuadraticTo(t, e, n, i) : this._ctx.quadraticCurveTo(t, e, n, i)), this._xi = n, this._yi = i, this + }, t.prototype.arc = function (t, e, n, i, r, o) { + lx[0] = i, lx[1] = r, Ri(lx, o), i = lx[0], r = lx[1]; + var a = r - i; + return this.addData(U_.A, t, e, n, n, i, a, 0, o ? 0 : 1), this._ctx && this._ctx.arc(t, e, n, i, r, o), this._xi = ex(r) * n + t, this._yi = nx(r) * n + e, this + }, t.prototype.arcTo = function (t, e, n, i, r) { + return this._ctx && this._ctx.arcTo(t, e, n, i, r), this + }, t.prototype.rect = function (t, e, n, i) { + return this._ctx && this._ctx.rect(t, e, n, i), this.addData(U_.R, t, e, n, i), this + }, t.prototype.closePath = function () { + this.addData(U_.Z); + var t = this._ctx, e = this._x0, n = this._y0; + return t && (this._needsDash && this._dashedLineTo(e, n), t.closePath()), this._xi = e, this._yi = n, this + }, t.prototype.fill = function (t) { + t && t.fill(), this.toStatic() + }, t.prototype.stroke = function (t) { + t && t.stroke(), this.toStatic() + }, t.prototype.setLineDash = function (t) { + if (t instanceof Array) { + this._lineDash = t, this._dashIdx = 0; + for (var e = 0, n = 0; n < t.length; n++) e += t[n]; + this._dashSum = e, this._needsDash = !0 + } else this._lineDash = null, this._needsDash = !1; + return this + }, t.prototype.setLineDashOffset = function (t) { + return this._dashOffset = t, this + }, t.prototype.len = function () { + return this._len + }, t.prototype.setData = function (t) { + var e = t.length; + this.data && this.data.length === e || !sx || (this.data = new Float32Array(e)); + for (var n = 0; e > n; n++) this.data[n] = t[n]; + this._len = e + }, t.prototype.appendPath = function (t) { + t instanceof Array || (t = [t]); + for (var e = t.length, n = 0, i = this._len, r = 0; e > r; r++) n += t[r].len(); + sx && this.data instanceof Float32Array && (this.data = new Float32Array(i + n)); + for (var r = 0; e > r; r++) for (var o = t[r].data, a = 0; a < o.length; a++) this.data[i++] = o[a]; + this._len = i + }, t.prototype.addData = function () { + if (this._saveData) { + var t = this.data; + this._len + arguments.length > t.length && (this._expandData(), t = this.data); + for (var e = 0; e < arguments.length; e++) t[this._len++] = arguments[e] + } + }, t.prototype._expandData = function () { + if (!(this.data instanceof Array)) { + for (var t = [], e = 0; e < this._len; e++) t[e] = this.data[e]; + this.data = t + } + }, t.prototype._dashedLineTo = function (t, e) { + var n, i, r = this._dashSum, o = this._lineDash, a = this._ctx, s = this._dashOffset, l = this._xi, + u = this._yi, h = t - l, c = e - u, p = ix(h * h + c * c), f = l, d = u, g = o.length; + for (h /= p, c /= p, 0 > s && (s = r + s), s %= r, f -= s * h, d -= s * c; h > 0 && t >= f || 0 > h && f >= t || 0 === h && (c > 0 && e >= d || 0 > c && d >= e);) i = this._dashIdx, n = o[i], f += h * n, d += c * n, this._dashIdx = (i + 1) % g, h > 0 && l > f || 0 > h && f > l || c > 0 && u > d || 0 > c && d > u || a[i % 2 ? "moveTo" : "lineTo"](h >= 0 ? Q_(f, t) : tx(f, t), c >= 0 ? Q_(d, e) : tx(d, e)); + h = f - t, c = d - e, this._dashOffset = -ix(h * h + c * c) + }, t.prototype._dashedBezierTo = function (t, e, n, i, r, o) { + var a, s, l, u, h, c = this._ctx, p = this._dashSum, f = this._dashOffset, d = this._lineDash, g = this._xi, + y = this._yi, v = 0, m = this._dashIdx, _ = d.length, x = 0; + for (0 > f && (f = p + f), f %= p, a = 0; 1 > a; a += .1) s = di(g, t, n, r, a + .1) - di(g, t, n, r, a), l = di(y, e, i, o, a + .1) - di(y, e, i, o, a), v += ix(s * s + l * l); + for (; _ > m && (x += d[m], !(x > f)); m++) ; + for (a = (x - f) / v; 1 >= a;) u = di(g, t, n, r, a), h = di(y, e, i, o, a), m % 2 ? c.moveTo(u, h) : c.lineTo(u, h), a += d[m] / v, m = (m + 1) % _; + m % 2 !== 0 && c.lineTo(r, o), s = r - u, l = o - h, this._dashOffset = -ix(s * s + l * l) + }, t.prototype._dashedQuadraticTo = function (t, e, n, i) { + var r = n, o = i; + n = (n + 2 * t) / 3, i = (i + 2 * e) / 3, t = (this._xi + 2 * t) / 3, e = (this._yi + 2 * e) / 3, this._dashedBezierTo(t, e, n, i, r, o) + }, t.prototype.toStatic = function () { + if (this._saveData) { + var t = this.data; + t instanceof Array && (t.length = this._len, sx && this._len > 11 && (this.data = new Float32Array(t))) + } + }, t.prototype.getBoundingRect = function () { + Z_[0] = Z_[1] = $_[0] = $_[1] = Number.MAX_VALUE, K_[0] = K_[1] = J_[0] = J_[1] = -Number.MAX_VALUE; + var t, e = this.data, n = 0, i = 0, r = 0, o = 0; + for (t = 0; t < this._len;) { + var a = e[t++], s = 1 === t; + switch (s && (n = e[t], i = e[t + 1], r = n, o = i), a) { + case U_.M: + n = r = e[t++], i = o = e[t++], $_[0] = r, $_[1] = o, J_[0] = r, J_[1] = o; + break; + case U_.L: + Di(n, i, e[t], e[t + 1], $_, J_), n = e[t++], i = e[t++]; + break; + case U_.C: + ki(n, i, e[t++], e[t++], e[t++], e[t++], e[t], e[t + 1], $_, J_), n = e[t++], i = e[t++]; + break; + case U_.Q: + Li(n, i, e[t++], e[t++], e[t], e[t + 1], $_, J_), n = e[t++], i = e[t++]; + break; + case U_.A: + var l = e[t++], u = e[t++], h = e[t++], c = e[t++], p = e[t++], f = e[t++] + p; + t += 1; + var d = !e[t++]; + s && (r = ex(p) * h + l, o = nx(p) * c + u), Pi(l, u, h, c, p, f, d, $_, J_), n = ex(f) * h + l, i = nx(f) * c + u; + break; + case U_.R: + r = n = e[t++], o = i = e[t++]; + var g = e[t++], y = e[t++]; + Di(r, o, r + g, o + y, $_, J_); + break; + case U_.Z: + n = r, i = o + } + ye(Z_, Z_, $_), ve(K_, K_, J_) + } + return 0 === t && (Z_[0] = Z_[1] = K_[0] = K_[1] = 0), new Vm(Z_[0], Z_[1], K_[0] - Z_[0], K_[1] - Z_[1]) + }, t.prototype._calculateLength = function () { + var t = this.data, e = this._len, n = this._ux, i = this._uy, r = 0, o = 0, a = 0, s = 0; + this._pathSegLen || (this._pathSegLen = []); + for (var l = this._pathSegLen, u = 0, h = 0, c = 0; e > c;) { + var p = t[c++], f = 1 === c; + f && (r = t[c], o = t[c + 1], a = r, s = o); + var d = -1; + switch (p) { + case U_.M: + r = a = t[c++], o = s = t[c++]; + break; + case U_.L: + var g = t[c++], y = t[c++], v = g - r, m = y - o; + (rx(v) > n || rx(m) > i || c === e - 1) && (d = Math.sqrt(v * v + m * m), r = g, o = y); + break; + case U_.C: + var _ = t[c++], x = t[c++], g = t[c++], y = t[c++], w = t[c++], b = t[c++]; + d = xi(r, o, _, x, g, y, w, b, 10), r = w, o = b; + break; + case U_.Q: + var _ = t[c++], x = t[c++], g = t[c++], y = t[c++]; + d = Ii(r, o, _, x, g, y, 10), r = g, o = y; + break; + case U_.A: + var S = t[c++], T = t[c++], M = t[c++], C = t[c++], I = t[c++], A = t[c++], D = A + I; + c += 1; + { + !t[c++] + } + f && (a = ex(I) * M + S, s = nx(I) * C + T), d = tx(M, C) * Q_(ax, Math.abs(A)), r = ex(D) * M + S, o = nx(D) * C + T; + break; + case U_.R: + a = r = t[c++], s = o = t[c++]; + var k = t[c++], L = t[c++]; + d = 2 * k + 2 * L; + break; + case U_.Z: + var v = a - r, m = s - o; + d = Math.sqrt(v * v + m * m), r = a, o = s + } + d >= 0 && (l[h++] = d, u += d) + } + return this._pathLen = u, u + }, t.prototype.rebuildPath = function (t, e) { + var n, i, r, o, a, s, l, u, h, c = this.data, p = this._ux, f = this._uy, d = this._len, g = 1 > e, y = 0, + v = 0; + if (!g || (this._pathSegLen || this._calculateLength(), l = this._pathSegLen, u = this._pathLen, h = e * u)) t:for (var m = 0; d > m;) { + var _ = c[m++], x = 1 === m; + switch (x && (r = c[m], o = c[m + 1], n = r, i = o), _) { + case U_.M: + n = r = c[m++], i = o = c[m++], t.moveTo(r, o); + break; + case U_.L: + if (a = c[m++], s = c[m++], rx(a - r) > p || rx(s - o) > f || m === d - 1) { + if (g) { + var w = l[v++]; + if (y + w > h) { + var b = (h - y) / w; + t.lineTo(r * (1 - b) + a * b, o * (1 - b) + s * b); + break t + } + y += w + } + t.lineTo(a, s), r = a, o = s + } + break; + case U_.C: + var S = c[m++], T = c[m++], M = c[m++], C = c[m++], I = c[m++], A = c[m++]; + if (g) { + var w = l[v++]; + if (y + w > h) { + var b = (h - y) / w; + mi(r, S, M, I, b, q_), mi(o, T, C, A, b, j_), t.bezierCurveTo(q_[1], j_[1], q_[2], j_[2], q_[3], j_[3]); + break t + } + y += w + } + t.bezierCurveTo(S, T, M, C, I, A), r = I, o = A; + break; + case U_.Q: + var S = c[m++], T = c[m++], M = c[m++], C = c[m++]; + if (g) { + var w = l[v++]; + if (y + w > h) { + var b = (h - y) / w; + Mi(r, S, M, b, q_), Mi(o, T, C, b, j_), t.quadraticCurveTo(q_[1], j_[1], q_[2], j_[2]); + break t + } + y += w + } + t.quadraticCurveTo(S, T, M, C), r = M, o = C; + break; + case U_.A: + var D = c[m++], k = c[m++], L = c[m++], P = c[m++], O = c[m++], R = c[m++], E = c[m++], + z = !c[m++], B = L > P ? L : P, N = rx(L - P) > .001, F = O + R, H = !1; + if (g) { + var w = l[v++]; + y + w > h && (F = O + R * (h - y) / w, H = !0), y += w + } + if (N && t.ellipse ? t.ellipse(D, k, L, P, E, O, F, z) : t.arc(D, k, B, O, F, z), H) break t; + x && (n = ex(O) * L + D, i = nx(O) * P + k), r = ex(F) * L + D, o = nx(F) * P + k; + break; + case U_.R: + n = r = c[m], i = o = c[m + 1], a = c[m++], s = c[m++]; + var V = c[m++], G = c[m++]; + if (g) { + var w = l[v++]; + if (y + w > h) { + var W = h - y; + t.moveTo(a, s), t.lineTo(a + Q_(W, V), s), W -= V, W > 0 && t.lineTo(a + V, s + Q_(W, G)), W -= G, W > 0 && t.lineTo(a + tx(V - W, 0), s + G), W -= V, W > 0 && t.lineTo(a, s + tx(G - W, 0)); + break t + } + y += w + } + t.rect(a, s, V, G); + break; + case U_.Z: + if (g) { + var w = l[v++]; + if (y + w > h) { + var b = (h - y) / w; + t.lineTo(r * (1 - b) + n * b, o * (1 - b) + i * b); + break t + } + y += w + } + t.closePath(), r = n, o = i + } + } + }, t.CMD = U_, t.initDefaultProps = function () { + var e = t.prototype; + e._saveData = !0, e._needsDash = !1, e._dashOffset = 0, e._dashIdx = 0, e._dashSum = 0, e._ux = 0, e._uy = 0 + }(), t + }(), hx = 2 * Math.PI, cx = 2 * Math.PI, px = ux.CMD, fx = 2 * Math.PI, dx = 1e-4, gx = [-1, -1, -1], yx = [-1, -1], + vx = c({ + fill: "#000", + stroke: null, + strokePercent: 1, + fillOpacity: 1, + strokeOpacity: 1, + lineDashOffset: 0, + lineWidth: 1, + lineCap: "butt", + miterLimit: 10, + strokeNoScale: !1, + strokeFirst: !1 + }, w_), mx = { + style: c({ + fill: !0, + stroke: !0, + strokePercent: !0, + fillOpacity: !0, + strokeOpacity: !0, + lineDashOffset: !0, + lineWidth: !0, + miterLimit: !0 + }, b_.style) + }, + _x = ["x", "y", "rotation", "scaleX", "scaleY", "originX", "originY", "invisible", "culling", "z", "z2", "zlevel", "parent"], + xx = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.update = function () { + var e = this; + t.prototype.update.call(this); + var i = this.style; + if (i.decal) { + var r = this._decalEl = this._decalEl || new n; + r.buildPath === n.prototype.buildPath && (r.buildPath = function (t) { + e.buildPath(t, e.shape) + }), r.silent = !0; + var o = r.style; + for (var a in i) o[a] !== i[a] && (o[a] = i[a]); + o.fill = i.fill ? i.decal : null, o.decal = null, o.shadowColor = null, i.strokeFirst && (o.stroke = null); + for (var s = 0; s < _x.length; ++s) r[_x[s]] = this[_x[s]]; + r.__dirty |= n_.REDARAW_BIT + } else this._decalEl && (this._decalEl = null) + }, n.prototype.getDecalElement = function () { + return this._decalEl + }, n.prototype._init = function (e) { + var n = w(e); + this.shape = this.getDefaultShape(); + var i = this.getDefaultStyle(); + i && this.useStyle(i); + for (var r = 0; r < n.length; r++) { + var o = n[r], a = e[o]; + "style" === o ? this.style ? h(this.style, a) : this.useStyle(a) : "shape" === o ? h(this.shape, a) : t.prototype.attrKV.call(this, o, a) + } + this.style || this.useStyle({}) + }, n.prototype.getDefaultStyle = function () { + return null + }, n.prototype.getDefaultShape = function () { + return {} + }, n.prototype.canBeInsideText = function () { + return this.hasFill() + }, n.prototype.getInsideTextFill = function () { + var t = this.style.fill; + if ("none" !== t) { + if (C(t)) { + var e = yn(t, 0); + return e > .5 ? jm : e > .2 ? Km : Zm + } + if (t) return Zm + } + return jm + }, n.prototype.getInsideTextStroke = function (t) { + var e = this.style.fill; + if (C(e)) { + var n = this.__zr, i = !(!n || !n.isDarkMode()), r = yn(t, 0) < qm; + if (i === r) return e + } + }, n.prototype.buildPath = function () { + }, n.prototype.pathUpdated = function () { + this.__dirty &= ~n.SHAPE_CHANGED_BIT + }, n.prototype.createPathProxy = function () { + this.path = new ux(!1) + }, n.prototype.hasStroke = function () { + var t = this.style, e = t.stroke; + return !(null == e || "none" === e || !(t.lineWidth > 0)) + }, n.prototype.hasFill = function () { + var t = this.style, e = t.fill; + return null != e && "none" !== e + }, n.prototype.getBoundingRect = function () { + var t = this._rect, e = this.style, i = !t; + if (i) { + var r = !1; + this.path || (r = !0, this.createPathProxy()); + var o = this.path; + (r || this.__dirty & n.SHAPE_CHANGED_BIT) && (o.beginPath(), this.buildPath(o, this.shape, !1), this.pathUpdated()), t = o.getBoundingRect() + } + if (this._rect = t, this.hasStroke() && this.path && this.path.len() > 0) { + var a = this._rectWithStroke || (this._rectWithStroke = t.clone()); + if (this.__dirty || i) { + a.copy(t); + var s = e.strokeNoScale ? this.getLineScale() : 1, l = e.lineWidth; + if (!this.hasFill()) { + var u = this.strokeContainThreshold; + l = Math.max(l, null == u ? 4 : u) + } + s > 1e-10 && (a.width += l / s, a.height += l / s, a.x -= l / s / 2, a.y -= l / s / 2) + } + return a + } + return t + }, n.prototype.contain = function (t, e) { + var n = this.transformCoordToLocal(t, e), i = this.getBoundingRect(), r = this.style; + if (t = n[0], e = n[1], i.contain(t, e)) { + var o = this.path; + if (this.hasStroke()) { + var a = r.lineWidth, s = r.strokeNoScale ? this.getLineScale() : 1; + if (s > 1e-10 && (this.hasFill() || (a = Math.max(a, this.strokeContainThreshold)), ji(o, a / s, t, e))) return !0 + } + if (this.hasFill()) return qi(o, t, e) + } + return !1 + }, n.prototype.dirtyShape = function () { + this.__dirty |= n.SHAPE_CHANGED_BIT, this._rect && (this._rect = null), this._decalEl && this._decalEl.dirtyShape(), this.markRedraw() + }, n.prototype.dirty = function () { + this.dirtyStyle(), this.dirtyShape() + }, n.prototype.animateShape = function (t) { + return this.animate("shape", t) + }, n.prototype.updateDuringAnimation = function (t) { + "style" === t ? this.dirtyStyle() : "shape" === t ? this.dirtyShape() : this.markRedraw() + }, n.prototype.attrKV = function (e, n) { + "shape" === e ? this.setShape(n) : t.prototype.attrKV.call(this, e, n) + }, n.prototype.setShape = function (t, e) { + var n = this.shape; + return n || (n = this.shape = {}), "string" == typeof t ? n[t] = e : h(n, t), this.dirtyShape(), this + }, n.prototype.shapeChanged = function () { + return !!(this.__dirty & n.SHAPE_CHANGED_BIT) + }, n.prototype.createStyle = function (t) { + return j(vx, t) + }, n.prototype._innerSaveToNormal = function (e) { + t.prototype._innerSaveToNormal.call(this, e); + var n = this._normalState; + e.shape && !n.shape && (n.shape = h({}, this.shape)) + }, n.prototype._applyStateObj = function (e, n, i, r, o, a) { + t.prototype._applyStateObj.call(this, e, n, i, r, o, a); + var s, l = !(n && r); + if (n && n.shape ? o ? r ? s = n.shape : (s = h({}, i.shape), h(s, n.shape)) : (s = h({}, r ? this.shape : i.shape), h(s, n.shape)) : l && (s = i.shape), s) if (o) { + this.shape = h({}, this.shape); + for (var u = {}, c = w(s), p = 0; p < c.length; p++) { + var f = c[p]; + "object" == typeof s[f] ? this.shape[f] = s[f] : u[f] = s[f] + } + this._transitionState(e, {shape: u}, a) + } else this.shape = s, this.dirtyShape() + }, n.prototype._mergeStates = function (e) { + for (var n, i = t.prototype._mergeStates.call(this, e), r = 0; r < e.length; r++) { + var o = e[r]; + o.shape && (n = n || {}, this._mergeStyle(n, o.shape)) + } + return n && (i.shape = n), i + }, n.prototype.getAnimationStyleProps = function () { + return mx + }, n.prototype.isZeroArea = function () { + return !1 + }, n.extend = function (t) { + var i = function (n) { + function i(e) { + var i = n.call(this, e) || this; + return t.init && t.init.call(i, e), i + } + + return e(i, n), i.prototype.getDefaultStyle = function () { + return s(t.style) + }, i.prototype.getDefaultShape = function () { + return s(t.shape) + }, i + }(n); + for (var r in t) "function" == typeof t[r] && (i.prototype[r] = t[r]); + return i + }, n.SHAPE_CHANGED_BIT = 4, n.initDefaultProps = function () { + var t = n.prototype; + t.type = "path", t.strokeContainThreshold = 5, t.segmentIgnoreThreshold = 0, t.subPixelOptimize = !1, t.autoBatch = !1, t.__dirty = n_.REDARAW_BIT | T_.STYLE_CHANGED_BIT | n.SHAPE_CHANGED_BIT + }(), n + }(T_), bx = ux.CMD, Sx = [[], [], []], Tx = Math.sqrt, Mx = Math.atan2, Cx = Math.sqrt, Ix = Math.sin, + Ax = Math.cos, Dx = Math.PI, kx = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi, + Lx = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g, Px = function (t) { + function n() { + return null !== t && t.apply(this, arguments) || this + } + + return e(n, t), n.prototype.applyTransform = function () { + }, n + }(xx), Ox = function (t) { + function n(e) { + var n = t.call(this) || this; + return n.isGroup = !0, n._children = [], n.attr(e), n + } + + return e(n, t), n.prototype.childrenRef = function () { + return this._children + }, n.prototype.children = function () { + return this._children.slice() + }, n.prototype.childAt = function (t) { + return this._children[t] + }, n.prototype.childOfName = function (t) { + for (var e = this._children, n = 0; n < e.length; n++) if (e[n].name === t) return e[n] + }, n.prototype.childCount = function () { + return this._children.length + }, n.prototype.add = function (t) { + if (t && (t !== this && t.parent !== this && (this._children.push(t), this._doAdd(t)), t.__hostTarget)) throw"This elemenet has been used as an attachment"; + return this + }, n.prototype.addBefore = function (t, e) { + if (t && t !== this && t.parent !== this && e && e.parent === this) { + var n = this._children, i = n.indexOf(e); + i >= 0 && (n.splice(i, 0, t), this._doAdd(t)) + } + return this + }, n.prototype.replaceAt = function (t, e) { + var n = this._children, i = n[e]; + if (t && t !== this && t.parent !== this && t !== i) { + n[e] = t, i.parent = null; + var r = this.__zr; + r && i.removeSelfFromZr(r), this._doAdd(t) + } + return this + }, n.prototype._doAdd = function (t) { + t.parent && t.parent.remove(t), t.parent = this; + var e = this.__zr; + e && e !== t.__zr && t.addSelfToZr(e), e && e.refresh() + }, n.prototype.remove = function (t) { + var e = this.__zr, n = this._children, i = p(n, t); + return 0 > i ? this : (n.splice(i, 1), t.parent = null, e && t.removeSelfFromZr(e), e && e.refresh(), this) + }, n.prototype.removeAll = function () { + for (var t = this._children, e = this.__zr, n = 0; n < t.length; n++) { + var i = t[n]; + e && i.removeSelfFromZr(e), i.parent = null + } + return t.length = 0, this + }, n.prototype.eachChild = function (t, e) { + for (var n = this._children, i = 0; i < n.length; i++) { + var r = n[i]; + t.call(e, r, i) + } + return this + }, n.prototype.traverse = function (t, e) { + for (var n = 0; n < this._children.length; n++) { + var i = this._children[n], r = t.call(e, i); + i.isGroup && !r && i.traverse(t, e) + } + return this + }, n.prototype.addSelfToZr = function (e) { + t.prototype.addSelfToZr.call(this, e); + for (var n = 0; n < this._children.length; n++) { + var i = this._children[n]; + i.addSelfToZr(e) + } + }, n.prototype.removeSelfFromZr = function (e) { + t.prototype.removeSelfFromZr.call(this, e); + for (var n = 0; n < this._children.length; n++) { + var i = this._children[n]; + i.removeSelfFromZr(e) + } + }, n.prototype.getBoundingRect = function (t) { + for (var e = new Vm(0, 0, 0, 0), n = t || this._children, i = [], r = null, o = 0; o < n.length; o++) { + var a = n[o]; + if (!a.ignore && !a.invisible) { + var s = a.getBoundingRect(), l = a.getLocalTransform(i); + l ? (Vm.applyTransform(e, s, l), r = r || e.clone(), r.union(e)) : (r = r || s.clone(), r.union(s)) + } + } + return r || e + }, n + }(n_); + Ox.prototype.type = "group"; + var Rx = c({x: 0, y: 0}, w_), + Ex = {style: c({x: !0, y: !0, width: !0, height: !0, sx: !0, sy: !0, sWidth: !0, sHeight: !0}, b_.style)}, + zx = function (t) { + function n() { + return null !== t && t.apply(this, arguments) || this + } + + return e(n, t), n.prototype.createStyle = function (t) { + return j(Rx, t) + }, n.prototype._getSize = function (t) { + var e = this.style, n = e[t]; + if (null != n) return n; + var i = ar(e.image) ? e.image : this.__image; + if (!i) return 0; + var r = "width" === t ? "height" : "width", o = e[r]; + return null == o ? i[t] : i[t] / i[r] * o + }, n.prototype.getWidth = function () { + return this._getSize("width") + }, n.prototype.getHeight = function () { + return this._getSize("height") + }, n.prototype.getAnimationStyleProps = function () { + return Ex + }, n.prototype.getBoundingRect = function () { + var t = this.style; + return this._rect || (this._rect = new Vm(t.x || 0, t.y || 0, this.getWidth(), this.getHeight())), this._rect + }, n + }(T_); + zx.prototype.type = "image"; + var Bx = function () { + function t() { + this.cx = 0, this.cy = 0, this.r = 0 + } + + return t + }(), Nx = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new Bx + }, n.prototype.buildPath = function (t, e, n) { + n && t.moveTo(e.cx + e.r, e.cy), t.arc(e.cx, e.cy, e.r, 0, 2 * Math.PI) + }, n + }(xx); + Nx.prototype.type = "circle"; + var Fx = Math.round, Hx = function () { + function t() { + this.x = 0, this.y = 0, this.width = 0, this.height = 0 + } + + return t + }(), Vx = {}, Gx = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new Hx + }, n.prototype.buildPath = function (t, e) { + var n, i, r, o; + if (this.subPixelOptimize) { + var a = ur(Vx, e, this.style); + n = a.x, i = a.y, r = a.width, o = a.height, a.r = e.r, e = a + } else n = e.x, i = e.y, r = e.width, o = e.height; + e.r ? sr(t, e) : t.rect(n, i, r, o) + }, n.prototype.isZeroArea = function () { + return !this.shape.width || !this.shape.height + }, n + }(xx); + Gx.prototype.type = "rect"; + var Wx = function () { + function t() { + this.cx = 0, this.cy = 0, this.rx = 0, this.ry = 0 + } + + return t + }(), Xx = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new Wx + }, n.prototype.buildPath = function (t, e) { + var n = .5522848, i = e.cx, r = e.cy, o = e.rx, a = e.ry, s = o * n, l = a * n; + t.moveTo(i - o, r), t.bezierCurveTo(i - o, r - l, i - s, r - a, i, r - a), t.bezierCurveTo(i + s, r - a, i + o, r - l, i + o, r), t.bezierCurveTo(i + o, r + l, i + s, r + a, i, r + a), t.bezierCurveTo(i - s, r + a, i - o, r + l, i - o, r), t.closePath() + }, n + }(xx); + Xx.prototype.type = "ellipse"; + var Yx = {}, Ux = function () { + function t() { + this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.percent = 1 + } + + return t + }(), qx = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultStyle = function () { + return {stroke: "#000", fill: null} + }, n.prototype.getDefaultShape = function () { + return new Ux + }, n.prototype.buildPath = function (t, e) { + var n, i, r, o; + if (this.subPixelOptimize) { + var a = lr(Yx, e, this.style); + n = a.x1, i = a.y1, r = a.x2, o = a.y2 + } else n = e.x1, i = e.y1, r = e.x2, o = e.y2; + var s = e.percent; + 0 !== s && (t.moveTo(n, i), 1 > s && (r = n * (1 - s) + r * s, o = i * (1 - s) + o * s), t.lineTo(r, o)) + }, n.prototype.pointAt = function (t) { + var e = this.shape; + return [e.x1 * (1 - t) + e.x2 * t, e.y1 * (1 - t) + e.y2 * t] + }, n + }(xx); + qx.prototype.type = "line"; + var jx = function () { + function t() { + this.points = null, this.smooth = 0, this.smoothConstraint = null + } + + return t + }(), Zx = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new jx + }, n.prototype.buildPath = function (t, e) { + dr(t, e, !0) + }, n + }(xx); + Zx.prototype.type = "polygon"; + var Kx = function () { + function t() { + this.points = null, this.percent = 1, this.smooth = 0, this.smoothConstraint = null + } + + return t + }(), $x = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultStyle = function () { + return {stroke: "#000", fill: null} + }, n.prototype.getDefaultShape = function () { + return new Kx + }, n.prototype.buildPath = function (t, e) { + dr(t, e, !1) + }, n + }(xx); + $x.prototype.type = "polyline"; + var Jx = function () { + function t(t) { + this.colorStops = t || [] + } + + return t.prototype.addColorStop = function (t, e) { + this.colorStops.push({offset: t, color: e}) + }, t + }(), Qx = function (t) { + function n(e, n, i, r, o, a) { + var s = t.call(this, o) || this; + return s.x = null == e ? 0 : e, s.y = null == n ? 0 : n, s.x2 = null == i ? 1 : i, s.y2 = null == r ? 0 : r, s.type = "linear", s.global = a || !1, s + } + + return e(n, t), n + }(Jx), tw = c({strokeFirst: !0, font: Wm, x: 0, y: 0, textAlign: "left", textBaseline: "top", miterLimit: 2}, vx), + ew = function (t) { + function n() { + return null !== t && t.apply(this, arguments) || this + } + + return e(n, t), n.prototype.hasStroke = function () { + var t = this.style, e = t.stroke; + return null != e && "none" !== e && t.lineWidth > 0 + }, n.prototype.hasFill = function () { + var t = this.style, e = t.fill; + return null != e && "none" !== e + }, n.prototype.createStyle = function (t) { + return j(tw, t) + }, n.prototype.setBoundingRect = function (t) { + this._rect = t + }, n.prototype.getBoundingRect = function () { + var t = this.style; + if (!this._rect) { + var e = t.text; + null != e ? e += "" : e = ""; + var n = En(e, t.font, t.textAlign, t.textBaseline); + if (n.x += t.x || 0, n.y += t.y || 0, this.hasStroke()) { + var i = t.lineWidth; + n.x -= i / 2, n.y -= i / 2, n.width += i, n.height += i + } + this._rect = n + } + return this._rect + }, n.initDefaultProps = function () { + var t = n.prototype; + t.dirtyRectTolerance = 10 + }(), n + }(T_); + ew.prototype.type = "tspan"; + var nw, iw = /[\s,]+/, rw = function () { + function t() { + this._defs = {}, this._root = null, this._isDefine = !1, this._isText = !1 + } + + return t.prototype.parse = function (t, e) { + e = e || {}; + var n = gr(t); + if (!n) throw new Error("Illegal svg"); + var i = new Ox; + this._root = i; + var r = n.getAttribute("viewBox") || "", o = parseFloat(n.getAttribute("width") || e.width), + a = parseFloat(n.getAttribute("height") || e.height); + isNaN(o) && (o = null), isNaN(a) && (a = null), _r(n, i, null, !0); + for (var s = n.firstChild; s;) this._parseNode(s, i), s = s.nextSibling; + var l, u; + if (r) { + var h = W(r).split(iw); + 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 != o && null != a && (u = Sr(l, o, a), !e.ignoreViewBox)) { + var c = i; + i = new Ox, i.add(c), c.scaleX = c.scaleY = u.scale, c.x = u.x, c.y = u.y + } + return e.ignoreRootClip || null == o || null == a || i.setClipPath(new Gx({ + shape: { + x: 0, + y: 0, + width: o, + height: a + } + })), {root: i, width: o, height: a, viewBoxRect: l, viewBoxTransform: u} + }, t.prototype._parseNode = function (t, e) { + var n = t.nodeName.toLowerCase(); + "defs" === n ? this._isDefine = !0 : "text" === n && (this._isText = !0); + var i; + if (this._isDefine) { + var r = ow[n]; + if (r) { + var o = r.call(this, t), a = t.getAttribute("id"); + a && (this._defs[a] = o) + } + } else { + var r = nw[n]; + r && (i = r.call(this, t, e), e.add(i)) + } + if (i) for (var s = t.firstChild; s;) 1 === s.nodeType && this._parseNode(s, i), 3 === s.nodeType && this._isText && this._parseText(s, i), s = s.nextSibling; + "defs" === n ? this._isDefine = !1 : "text" === n && (this._isText = !1) + }, t.prototype._parseText = function (t, e) { + if (1 === t.nodeType) { + var n = t.getAttribute("dx") || 0, i = t.getAttribute("dy") || 0; + this._textX += parseFloat(n), this._textY += parseFloat(i) + } + var r = new ew({style: {text: t.textContent}, x: this._textX || 0, y: this._textY || 0}); + vr(e, r), _r(t, r, this._defs); + var o = r.style, a = o.fontSize; + a && 9 > a && (o.fontSize = 9, r.scaleX *= a / 9, r.scaleY *= a / 9); + var s = (o.fontSize || o.fontFamily) && [o.fontStyle, o.fontWeight, (o.fontSize || 12) + "px", o.fontFamily || "sans-serif"].join(" "); + o.font = s; + var l = r.getBoundingRect(); + return this._textX += l.width, e.add(r), r + }, t.internalField = function () { + nw = { + g: function (t, e) { + var n = new Ox; + return vr(e, n), _r(t, n, this._defs), n + }, rect: function (t, e) { + var n = new Gx; + return vr(e, n), _r(t, n, this._defs), n.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") + }), n + }, circle: function (t, e) { + var n = new Nx; + return vr(e, n), _r(t, n, this._defs), n.setShape({ + cx: parseFloat(t.getAttribute("cx") || "0"), + cy: parseFloat(t.getAttribute("cy") || "0"), + r: parseFloat(t.getAttribute("r") || "0") + }), n + }, line: function (t, e) { + var n = new qx; + return vr(e, n), _r(t, n, this._defs), n.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") + }), n + }, ellipse: function (t, e) { + var n = new Xx; + return vr(e, n), _r(t, n, this._defs), n.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") + }), n + }, polygon: function (t, e) { + var n, i = t.getAttribute("points"); + i && (n = mr(i)); + var r = new Zx({shape: {points: n || []}}); + return vr(e, r), _r(t, r, this._defs), r + }, polyline: function (t, e) { + var n = new xx; + vr(e, n), _r(t, n, this._defs); + var i, r = t.getAttribute("points"); + r && (i = mr(r)); + var o = new $x({shape: {points: i || []}}); + return o + }, image: function (t, e) { + var n = new zx; + return vr(e, n), _r(t, n, this._defs), n.setStyle({ + image: t.getAttribute("xlink:href"), + x: +t.getAttribute("x"), + y: +t.getAttribute("y"), + width: +t.getAttribute("width"), + height: +t.getAttribute("height") + }), n + }, text: function (t, e) { + var n = t.getAttribute("x") || "0", i = t.getAttribute("y") || "0", r = t.getAttribute("dx") || "0", + o = t.getAttribute("dy") || "0"; + this._textX = parseFloat(n) + parseFloat(r), this._textY = parseFloat(i) + parseFloat(o); + var a = new Ox; + return vr(e, a), _r(t, a, this._defs), a + }, tspan: function (t, e) { + var n = t.getAttribute("x"), i = t.getAttribute("y"); + null != n && (this._textX = parseFloat(n)), null != i && (this._textY = parseFloat(i)); + var r = t.getAttribute("dx") || 0, o = t.getAttribute("dy") || 0, a = new Ox; + return vr(e, a), _r(t, a, this._defs), this._textX += r, this._textY += o, a + }, path: function (t, e) { + var n = t.getAttribute("d") || "", i = ir(n); + return vr(e, i), _r(t, i, this._defs), i + } + } + }(), t + }(), ow = { + lineargradient: function (t) { + var e = parseInt(t.getAttribute("x1") || "0", 10), n = parseInt(t.getAttribute("y1") || "0", 10), + i = parseInt(t.getAttribute("x2") || "10", 10), r = parseInt(t.getAttribute("y2") || "0", 10), + o = new Qx(e, n, i, r); + return yr(t, o), o + } + }, aw = { + 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" + }, sw = /url\(\s*#(.*?)\)/, lw = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g, + uw = /([^\s:;]+)\s*:\s*([^:;]+)/g, hw = Math.PI, cw = 2 * hw, pw = Math.sin, fw = Math.cos, dw = Math.acos, + gw = Math.atan2, yw = Math.abs, vw = Math.sqrt, mw = Math.max, _w = Math.min, xw = 1e-4, ww = function () { + function t() { + this.cx = 0, this.cy = 0, this.r0 = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0, this.cornerRadius = 0, this.innerCornerRadius = 0 + } + + return t + }(), bw = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new ww + }, n.prototype.buildPath = function (t, e) { + Ir(t, e) + }, n.prototype.isZeroArea = function () { + return this.shape.startAngle === this.shape.endAngle || this.shape.r === this.shape.r0 + }, n + }(xx); + bw.prototype.type = "sector"; + var Sw = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = "compound", e + } + + return e(n, t), n.prototype._updatePathDirty = function () { + for (var t = this.shape.paths, e = this.shapeChanged(), n = 0; n < t.length; n++) e = e || t[n].shapeChanged(); + e && this.dirtyShape() + }, n.prototype.beforeBrush = function () { + this._updatePathDirty(); + for (var t = this.shape.paths || [], e = this.getGlobalScale(), n = 0; n < t.length; n++) t[n].path || t[n].createPathProxy(), t[n].path.setScale(e[0], e[1], t[n].segmentIgnoreThreshold) + }, n.prototype.buildPath = function (t, e) { + for (var n = e.paths || [], i = 0; i < n.length; i++) n[i].buildPath(t, n[i].shape, !0) + }, n.prototype.afterBrush = function () { + for (var t = this.shape.paths || [], e = 0; e < t.length; e++) t[e].pathUpdated() + }, n.prototype.getBoundingRect = function () { + return this._updatePathDirty.call(this), xx.prototype.getBoundingRect.call(this) + }, n + }(xx), Tw = [], Mw = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.notClear = !0, e.incremental = !0, e._displayables = [], e._temporaryDisplayables = [], e._cursor = 0, e + } + + return e(n, t), n.prototype.traverse = function (t, e) { + t.call(e, this) + }, n.prototype.useStyle = function () { + this.style = {} + }, n.prototype.getCursor = function () { + return this._cursor + }, n.prototype.innerAfterBrush = function () { + this._cursor = this._displayables.length + }, n.prototype.clearDisplaybles = function () { + this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.markRedraw(), this.notClear = !1 + }, n.prototype.clearTemporalDisplayables = function () { + this._temporaryDisplayables = [] + }, n.prototype.addDisplayable = function (t, e) { + e ? this._temporaryDisplayables.push(t) : this._displayables.push(t), this.markRedraw() + }, n.prototype.addDisplayables = function (t, e) { + e = e || !1; + for (var n = 0; n < t.length; n++) this.addDisplayable(t[n], e) + }, n.prototype.getDisplayables = function () { + return this._displayables + }, n.prototype.getTemporalDisplayables = function () { + return this._temporaryDisplayables + }, n.prototype.eachPendingDisplayable = function (t) { + for (var e = this._cursor; e < this._displayables.length; e++) t && t(this._displayables[e]); + for (var e = 0; e < this._temporaryDisplayables.length; e++) t && t(this._temporaryDisplayables[e]) + }, n.prototype.update = function () { + this.updateTransform(); + for (var t = this._cursor; t < this._displayables.length; t++) { + var e = this._displayables[t]; + e.parent = this, e.update(), e.parent = null + } + for (var t = 0; t < this._temporaryDisplayables.length; t++) { + var e = this._temporaryDisplayables[t]; + e.parent = this, e.update(), e.parent = null + } + }, n.prototype.getBoundingRect = function () { + if (!this._rect) { + for (var t = new Vm(1 / 0, 1 / 0, -1 / 0, -1 / 0), e = 0; e < this._displayables.length; e++) { + var n = this._displayables[e], i = n.getBoundingRect().clone(); + n.needLocalTransform() && i.applyTransform(n.getLocalTransform(Tw)), t.union(i) + } + this._rect = t + } + return this._rect + }, n.prototype.contain = function (t, e) { + var n = this.transformCoordToLocal(t, e), i = this.getBoundingRect(); + if (i.contain(n[0], n[1])) for (var r = 0; r < this._displayables.length; r++) { + var o = this._displayables[r]; + if (o.contain(t, e)) return !0 + } + return !1 + }, n + }(T_), Cw = new wm(50), Iw = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g, Aw = function () { + function t() { + } + + return t + }(), Dw = function () { + function t(t) { + this.tokens = [], t && (this.tokens = t) + } + + return t + }(), kw = function () { + function t() { + this.width = 0, this.height = 0, this.contentWidth = 0, this.contentHeight = 0, this.outerWidth = 0, this.outerHeight = 0, this.lines = [] + } + + return t + }(), Lw = m(",&?/;] ".split(""), function (t, e) { + return t[e] = !0, t + }, {}), Pw = {fill: "#000"}, Ow = 2, Rw = { + style: c({ + fill: !0, + stroke: !0, + fillOpacity: !0, + strokeOpacity: !0, + lineWidth: !0, + fontSize: !0, + lineHeight: !0, + width: !0, + height: !0, + textShadowColor: !0, + textShadowBlur: !0, + textShadowOffsetX: !0, + textShadowOffsetY: !0, + backgroundColor: !0, + padding: !0, + borderColor: !0, + borderWidth: !0, + borderRadius: !0 + }, b_.style) + }, Ew = function (t) { + function n(e) { + var n = t.call(this) || this; + return n.type = "text", n._children = [], n._defaultStyle = Pw, n.attr(e), n + } + + return e(n, t), n.prototype.childrenRef = function () { + return this._children + }, n.prototype.update = function () { + this.styleChanged() && this._updateSubTexts(); + for (var e = 0; e < this._children.length; e++) { + var n = this._children[e]; + n.zlevel = this.zlevel, n.z = this.z, n.z2 = this.z2, n.culling = this.culling, n.cursor = this.cursor, n.invisible = this.invisible + } + var i = this.attachedTransform; + if (i) { + i.updateTransform(); + var r = i.transform; + r ? (this.transform = this.transform || [], Ve(this.transform, r)) : this.transform = null + } else t.prototype.update.call(this) + }, n.prototype.getComputedTransform = function () { + return this.__hostTarget && (this.__hostTarget.getComputedTransform(), this.__hostTarget.updateInnerText(!0)), this.attachedTransform ? this.attachedTransform.getComputedTransform() : t.prototype.getComputedTransform.call(this) + }, n.prototype._updateSubTexts = function () { + this._childCursor = 0, Wr(this.style), this.style.rich ? this._updateRichTexts() : this._updatePlainTexts(), this._children.length = this._childCursor, this.styleUpdated() + }, n.prototype.addSelfToZr = function (e) { + t.prototype.addSelfToZr.call(this, e); + for (var n = 0; n < this._children.length; n++) this._children[n].__zr = e + }, n.prototype.removeSelfFromZr = function (e) { + t.prototype.removeSelfFromZr.call(this, e); + for (var n = 0; n < this._children.length; n++) this._children[n].__zr = null + }, n.prototype.getBoundingRect = function () { + if (this.styleChanged() && this._updateSubTexts(), !this._rect) { + for (var t = new Vm(0, 0, 0, 0), e = this._children, n = [], i = null, r = 0; r < e.length; r++) { + var o = e[r], a = o.getBoundingRect(), s = o.getLocalTransform(n); + s ? (t.copy(a), t.applyTransform(s), i = i || t.clone(), i.union(t)) : (i = i || a.clone(), i.union(a)) + } + this._rect = i || t + } + return this._rect + }, n.prototype.setDefaultTextStyle = function (t) { + this._defaultStyle = t || Pw + }, n.prototype.setTextContent = function () { + throw new Error("Can't attach text on another text") + }, n.prototype._mergeStyle = function (t, e) { + if (!e) return t; + var n = e.rich, i = t.rich || n && {}; + return h(t, e), n && i ? (this._mergeRich(i, n), t.rich = i) : i && (t.rich = i), t + }, n.prototype._mergeRich = function (t, e) { + for (var n = w(e), i = 0; i < n.length; i++) { + var r = n[i]; + t[r] = t[r] || {}, h(t[r], e[r]) + } + }, n.prototype.getAnimationStyleProps = function () { + return Rw + }, n.prototype._getOrCreateChild = function (t) { + var e = this._children[this._childCursor]; + return e && e instanceof t || (e = new t), this._children[this._childCursor++] = e, e.__zr = this.__zr, e.parent = this, e + }, n.prototype._updatePlainTexts = function () { + var t = this.style, e = t.font || Wm, n = t.padding, i = jr(t), r = zr(i, t), o = Zr(t), + a = !!t.backgroundColor, s = r.outerHeight, l = r.lines, u = r.lineHeight, h = this._defaultStyle, + c = t.x || 0, p = t.y || 0, f = t.align || h.align || "left", + d = t.verticalAlign || h.verticalAlign || "top", g = c, y = Bn(p, r.contentHeight, d); + if (o || n) { + var v = r.width; + n && (v += n[1] + n[3]); + var m = zn(c, v, f), _ = Bn(p, s, d); + o && this._renderBackground(t, t, m, _, v, s) + } + y += u / 2, n && (g = qr(c, f, n), "top" === d ? y += n[0] : "bottom" === d && (y -= n[2])); + for (var x = 0, w = !1, b = (Ur("fill" in t ? t.fill : (w = !0, h.fill))), S = (Yr("stroke" in t ? t.stroke : a || h.autoStroke && !w ? null : (x = Ow, h.stroke))), T = t.textShadowBlur > 0, M = null != t.width && ("truncate" === t.overflow || "break" === t.overflow || "breakAll" === t.overflow), C = r.calculatedLineHeight, I = 0; I < l.length; I++) { + var A = this._getOrCreateChild(ew), D = A.createStyle(); + A.useStyle(D), D.text = l[I], D.x = g, D.y = y, f && (D.textAlign = f), D.textBaseline = "middle", D.opacity = t.opacity, D.strokeFirst = !0, T && (D.shadowBlur = t.textShadowBlur || 0, D.shadowColor = t.textShadowColor || "transparent", D.shadowOffsetX = t.textShadowOffsetX || 0, D.shadowOffsetY = t.textShadowOffsetY || 0), S && (D.stroke = S, D.lineWidth = t.lineWidth || x, D.lineDash = t.lineDash, D.lineDashOffset = t.lineDashOffset || 0), b && (D.fill = b), D.font = e, y += u, M && A.setBoundingRect(new Vm(zn(D.x, t.width, D.textAlign), Bn(D.y, C, D.textBaseline), t.width, C)) + } + }, n.prototype._updateRichTexts = function () { + var t = this.style, e = jr(t), n = Br(e, t), i = n.width, r = n.outerWidth, o = n.outerHeight, + a = t.padding, s = t.x || 0, l = t.y || 0, u = this._defaultStyle, h = t.align || u.align, + c = t.verticalAlign || u.verticalAlign, p = zn(s, r, h), f = Bn(l, o, c), d = p, g = f; + a && (d += a[3], g += a[0]); + var y = d + i; + Zr(t) && this._renderBackground(t, t, p, f, r, o); + for (var v = !!t.backgroundColor, m = 0; m < n.lines.length; m++) { + for (var _ = n.lines[m], x = _.tokens, w = x.length, b = _.lineHeight, S = _.width, T = 0, M = d, C = y, I = w - 1, A = void 0; w > T && (A = x[T], !A.align || "left" === A.align);) this._placeToken(A, t, b, g, M, "left", v), S -= A.width, M += A.width, T++; + for (; I >= 0 && (A = x[I], "right" === A.align);) this._placeToken(A, t, b, g, C, "right", v), S -= A.width, C -= A.width, I--; + for (M += (i - (M - d) - (y - C) - S) / 2; I >= T;) A = x[T], this._placeToken(A, t, b, g, M + A.width / 2, "center", v), M += A.width, T++; + g += b + } + }, n.prototype._placeToken = function (t, e, n, i, r, o, a) { + var s = e.rich[t.styleName] || {}; + s.text = t.text; + var l = t.verticalAlign, u = i + n / 2; + "top" === l ? u = i + t.height / 2 : "bottom" === l && (u = i + n - t.height / 2); + var h = !t.isLineHolder && Zr(s); + h && this._renderBackground(s, e, "right" === o ? r - t.width : "center" === o ? r - t.width / 2 : r, u - t.height / 2, t.width, t.height); + var c = !!s.backgroundColor, p = t.textPadding; + p && (r = qr(r, o, p), u -= t.height / 2 - p[0] - t.innerHeight / 2); + var f = this._getOrCreateChild(ew), d = f.createStyle(); + f.useStyle(d); + var g = this._defaultStyle, y = !1, v = 0, + m = Yr("fill" in s ? s.fill : "fill" in e ? e.fill : (y = !0, g.fill)), + _ = Yr("stroke" in s ? s.stroke : "stroke" in e ? e.stroke : c || a || g.autoStroke && !y ? null : (v = Ow, g.stroke)), + x = s.textShadowBlur > 0 || e.textShadowBlur > 0; + d.text = t.text, d.x = r, d.y = u, x && (d.shadowBlur = s.textShadowBlur || e.textShadowBlur || 0, d.shadowColor = s.textShadowColor || e.textShadowColor || "transparent", d.shadowOffsetX = s.textShadowOffsetX || e.textShadowOffsetX || 0, d.shadowOffsetY = s.textShadowOffsetY || e.textShadowOffsetY || 0), d.textAlign = o, d.textBaseline = "middle", d.font = t.font || Wm, d.opacity = F(s.opacity, e.opacity, 1), _ && (d.lineWidth = F(s.lineWidth, e.lineWidth, v), d.lineDash = N(s.lineDash, e.lineDash), d.lineDashOffset = e.lineDashOffset || 0, d.stroke = _), m && (d.fill = m); + var w = t.contentWidth, b = t.contentHeight; + f.setBoundingRect(new Vm(zn(d.x, w, d.textAlign), Bn(d.y, b, d.textBaseline), w, b)) + }, n.prototype._renderBackground = function (t, e, n, i, r, o) { + var a, s, l = t.backgroundColor, u = t.borderWidth, h = t.borderColor, c = C(l), p = t.borderRadius, + f = this; + if (c || u && h) { + a = this._getOrCreateChild(Gx), a.useStyle(a.createStyle()), a.style.fill = null; + var d = a.shape; + d.x = n, d.y = i, d.width = r, d.height = o, d.r = p, a.dirtyShape() + } + if (c) { + var g = a.style; + g.fill = l || null, g.fillOpacity = N(t.fillOpacity, 1) + } else if (l && l.image) { + s = this._getOrCreateChild(zx), s.onload = function () { + f.dirtyStyle() + }; + var y = s.style; + y.image = l.image, y.x = n, y.y = i, y.width = r, y.height = o + } + if (u && h) { + var g = a.style; + g.lineWidth = u, g.stroke = h, g.strokeOpacity = N(t.strokeOpacity, 1), g.lineDash = t.borderDash, g.lineDashOffset = t.borderDashOffset || 0, a.strokeContainThreshold = 0, a.hasFill() && a.hasStroke() && (g.strokeFirst = !0, g.lineWidth *= 2) + } + var v = (a || s).style; + v.shadowBlur = t.shadowBlur || 0, v.shadowColor = t.shadowColor || "transparent", v.shadowOffsetX = t.shadowOffsetX || 0, v.shadowOffsetY = t.shadowOffsetY || 0, v.opacity = F(t.opacity, e.opacity, 1) + }, n.makeFont = function (t) { + var e = ""; + if (t.fontSize || t.fontFamily || t.fontWeight) { + var n = ""; + n = "string" != typeof t.fontSize || -1 === t.fontSize.indexOf("px") && -1 === t.fontSize.indexOf("rem") && -1 === t.fontSize.indexOf("em") ? isNaN(+t.fontSize) ? "12px" : t.fontSize + "px" : t.fontSize, e = [t.fontStyle, t.fontWeight, n, t.fontFamily || "sans-serif"].join(" ") + } + return e && W(e) || t.textFont || t.font + }, n + }(T_), zw = {left: !0, right: 1, center: 1}, Bw = {top: 1, bottom: 1, middle: 1}, Nw = function () { + function t() { + this.cx = 0, this.cy = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0 + } + + return t + }(), Fw = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultStyle = function () { + return {stroke: "#000", fill: null} + }, n.prototype.getDefaultShape = function () { + return new Nw + }, n.prototype.buildPath = function (t, e) { + var n = e.cx, i = e.cy, r = Math.max(e.r, 0), o = e.startAngle, a = e.endAngle, s = e.clockwise, + l = Math.cos(o), u = Math.sin(o); + t.moveTo(l * r + n, u * r + i), t.arc(n, i, r, o, a, !s) + }, n + }(xx); + Fw.prototype.type = "arc"; + var Hw = [], Vw = function () { + function t() { + this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.cpx1 = 0, this.cpy1 = 0, this.percent = 1 + } + + return t + }(), Gw = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultStyle = function () { + return {stroke: "#000", fill: null} + }, n.prototype.getDefaultShape = function () { + return new Vw + }, n.prototype.buildPath = function (t, e) { + var n = e.x1, i = e.y1, r = e.x2, o = e.y2, a = e.cpx1, s = e.cpy1, l = e.cpx2, u = e.cpy2, h = e.percent; + 0 !== h && (t.moveTo(n, i), null == l || null == u ? (1 > h && (Mi(n, a, r, h, Hw), a = Hw[1], r = Hw[2], Mi(i, s, o, h, Hw), s = Hw[1], o = Hw[2]), t.quadraticCurveTo(a, s, r, o)) : (1 > h && (mi(n, a, l, r, h, Hw), a = Hw[1], l = Hw[2], r = Hw[3], mi(i, s, u, o, h, Hw), s = Hw[1], u = Hw[2], o = Hw[3]), t.bezierCurveTo(a, s, l, u, r, o))) + }, n.prototype.pointAt = function (t) { + return Kr(this.shape, t, !1) + }, n.prototype.tangentAt = function (t) { + var e = Kr(this.shape, t, !0); + return he(e, e) + }, n + }(xx); + Gw.prototype.type = "bezier-curve"; + var Ww = function () { + function t() { + this.cx = 0, this.cy = 0, this.width = 0, this.height = 0 + } + + return t + }(), Xw = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new Ww + }, n.prototype.buildPath = function (t, e) { + var n = e.cx, i = e.cy, r = e.width, o = e.height; + t.moveTo(n, i + r), t.bezierCurveTo(n + r, i + r, n + 3 * r / 2, i - r / 3, n, i - o), t.bezierCurveTo(n - 3 * r / 2, i - r / 3, n - r, i + r, n, i + r), t.closePath() + }, n + }(xx); + Xw.prototype.type = "droplet"; + var Yw = function () { + function t() { + this.cx = 0, this.cy = 0, this.width = 0, this.height = 0 + } + + return t + }(), Uw = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new Yw + }, n.prototype.buildPath = function (t, e) { + var n = e.cx, i = e.cy, r = e.width, o = e.height; + t.moveTo(n, i), t.bezierCurveTo(n + r / 2, i - 2 * o / 3, n + 2 * r, i + o / 3, n, i + o), t.bezierCurveTo(n - 2 * r, i + o / 3, n - r / 2, i - 2 * o / 3, n, i) + }, n + }(xx); + Uw.prototype.type = "heart"; + var qw = Math.PI, jw = Math.sin, Zw = Math.cos, Kw = function () { + function t() { + this.x = 0, this.y = 0, this.r = 0, this.n = 0 + } + + return t + }(), $w = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new Kw + }, n.prototype.buildPath = function (t, e) { + var n = e.n; + if (n && !(2 > n)) { + var i = e.x, r = e.y, o = e.r, a = 2 * qw / n, s = -qw / 2; + t.moveTo(i + o * Zw(s), r + o * jw(s)); + for (var l = 0, u = n - 1; u > l; l++) s += a, t.lineTo(i + o * Zw(s), r + o * jw(s)); + t.closePath() + } + }, n + }(xx); + $w.prototype.type = "isogon"; + var Jw = function () { + function t() { + this.cx = 0, this.cy = 0, this.r = 0, this.r0 = 0 + } + + return t + }(), Qw = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new Jw + }, n.prototype.buildPath = function (t, e) { + var n = e.cx, i = e.cy, r = 2 * Math.PI; + t.moveTo(n + e.r, i), t.arc(n, i, e.r, 0, r, !1), t.moveTo(n + e.r0, i), t.arc(n, i, e.r0, 0, r, !0) + }, n + }(xx); + Qw.prototype.type = "ring"; + var tb = Math.sin, eb = Math.cos, nb = Math.PI / 180, ib = function () { + function t() { + this.cx = 0, this.cy = 0, this.r = [], this.k = 0, this.n = 1 + } + + return t + }(), rb = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultStyle = function () { + return {stroke: "#000", fill: null} + }, n.prototype.getDefaultShape = function () { + return new ib + }, n.prototype.buildPath = function (t, e) { + var n, i, r, o = e.r, a = e.k, s = e.n, l = e.cx, u = e.cy; + t.moveTo(l, u); + for (var h = 0, c = o.length; c > h; h++) { + r = o[h]; + for (var p = 0; 360 * s >= p; p++) n = r * tb(a / s * p % 360 * nb) * eb(p * nb) + l, i = r * tb(a / s * p % 360 * nb) * tb(p * nb) + u, t.lineTo(n, i) + } + }, n + }(xx); + rb.prototype.type = "rose"; + var ob = Math.PI, ab = Math.cos, sb = Math.sin, lb = function () { + function t() { + this.cx = 0, this.cy = 0, this.n = 3, this.r = 0 + } + + return t + }(), ub = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new lb + }, n.prototype.buildPath = function (t, e) { + var n = e.n; + if (n && !(2 > n)) { + var i = e.cx, r = e.cy, o = e.r, a = e.r0; + null == a && (a = n > 4 ? o * ab(2 * ob / n) / ab(ob / n) : o / 3); + var s = ob / n, l = -ob / 2, u = i + o * ab(l), h = r + o * sb(l); + l += s, t.moveTo(u, h); + for (var c = 0, p = 2 * n - 1, f = void 0; p > c; c++) f = c % 2 === 0 ? a : o, t.lineTo(i + f * ab(l), r + f * sb(l)), l += s; + t.closePath() + } + }, n + }(xx); + ub.prototype.type = "star"; + var hb = Math.cos, cb = Math.sin, pb = function () { + function t() { + this.cx = 0, this.cy = 0, this.r = 0, this.r0 = 0, this.d = 0, this.location = "out" + } + + return t + }(), fb = function (t) { + function n(e) { + return t.call(this, e) || this + } + + return e(n, t), n.prototype.getDefaultStyle = function () { + return {stroke: "#000", fill: null} + }, n.prototype.getDefaultShape = function () { + return new pb + }, n.prototype.buildPath = function (t, e) { + var n, i, r, o, a = e.r, s = e.r0, l = e.d, u = e.cx, h = e.cy, c = "out" === e.location ? 1 : -1; + if (!(e.location && s >= a)) { + var p, f = 0, d = 1; + n = (a + c * s) * hb(0) - c * l * hb(0) + u, i = (a + c * s) * cb(0) - l * cb(0) + h, t.moveTo(n, i); + do f++; while (s * f % (a + c * s) !== 0); + do p = Math.PI / 180 * d, r = (a + c * s) * hb(p) - c * l * hb((a / s + c) * p) + u, o = (a + c * s) * cb(p) - l * cb((a / s + c) * p) + h, t.lineTo(r, o), d++; while (s * f / (a + c * s) * 360 >= d) + } + }, n + }(xx); + fb.prototype.type = "trochoid"; + var db = function (t) { + function n(e, n, i, r, o) { + var a = t.call(this, r) || this; + return a.x = null == e ? .5 : e, a.y = null == n ? .5 : n, a.r = null == i ? .5 : i, a.type = "radial", a.global = o || !1, a + } + + return e(n, t), n + }(Jx), gb = [0, 0], yb = [0, 0], vb = new Pm, mb = new Pm, _b = function () { + function t(t, e) { + this._corners = [], this._axes = [], this._origin = [0, 0]; + for (var n = 0; 4 > n; n++) this._corners[n] = new Pm; + for (var n = 0; 2 > n; n++) this._axes[n] = new Pm; + t && this.fromBoundingRect(t, e) + } + + return t.prototype.fromBoundingRect = function (t, e) { + var n = this._corners, i = this._axes, r = t.x, o = t.y, a = r + t.width, s = o + t.height; + if (n[0].set(r, o), n[1].set(a, o), n[2].set(a, s), n[3].set(r, s), e) for (var l = 0; 4 > l; l++) n[l].transform(e); + Pm.sub(i[0], n[1], n[0]), Pm.sub(i[1], n[3], n[0]), i[0].normalize(), i[1].normalize(); + for (var l = 0; 2 > l; l++) this._origin[l] = i[l].dot(n[0]) + }, t.prototype.intersect = function (t, e) { + var n = !0, i = !e; + return vb.set(1 / 0, 1 / 0), mb.set(0, 0), !this._intersectCheckOneSide(this, t, vb, mb, i, 1) && (n = !1, i) ? n : !this._intersectCheckOneSide(t, this, vb, mb, i, -1) && (n = !1, i) ? n : (i || Pm.copy(e, n ? vb : mb), n) + }, t.prototype._intersectCheckOneSide = function (t, e, n, i, r, o) { + for (var a = !0, s = 0; 2 > s; s++) { + var l = this._axes[s]; + if (this._getProjMinMaxOnAxis(s, t._corners, gb), this._getProjMinMaxOnAxis(s, e._corners, yb), gb[1] < yb[0] || gb[0] > yb[1]) { + if (a = !1, r) return a; + var u = Math.abs(yb[0] - gb[1]), h = Math.abs(gb[0] - yb[1]); + Math.min(u, h) > i.len() && (h > u ? Pm.scale(i, l, -u * o) : Pm.scale(i, l, h * o)) + } else if (n) { + var u = Math.abs(yb[0] - gb[1]), h = Math.abs(gb[0] - yb[1]); + Math.min(u, h) < n.len() && (h > u ? Pm.scale(n, l, u * o) : Pm.scale(n, l, -h * o)) + } + } + return a + }, t.prototype._getProjMinMaxOnAxis = function (t, e, n) { + for (var i = this._axes[t], r = this._origin, o = e[0].dot(i) + r[t], a = o, s = o, l = 1; l < e.length; l++) { + var u = e[l].dot(i) + r[t]; + a = Math.min(u, a), s = Math.max(u, s) + } + n[0] = a, n[1] = s + }, t + }(), xb = (function () { + function t(t) { + var e = this.dom = document.createElement("div"); + e.className = "ec-debug-dirty-rect", t = Object.assign({}, t), Object.assign(t, { + backgroundColor: "rgba(0, 0, 255, 0.2)", + border: "1px solid #00f" + }), e.style.cssText = "\nposition: absolute;\nopacity: 0;\ntransition: opacity 0.5s linear;\npointer-events: none;\n"; + for (var n in t) t.hasOwnProperty(n) && (e.style[n] = t[n]) + } + + return t.prototype.update = function (t) { + var e = this.dom.style; + e.width = t.width + "px", e.height = t.height + "px", e.left = t.x + "px", e.top = t.y + "px" + }, t.prototype.hide = function () { + this.dom.style.opacity = "0" + }, t.prototype.show = function (t) { + var e = this; + clearTimeout(this._hideTimeout), this.dom.style.opacity = "1", this._hideTimeout = setTimeout(function () { + e.hide() + }, t || 1e3) + }, t + }(), !wv.canvasSupported), wb = {}, bb = {}, Sb = function () { + function t(t, e, n) { + var i = this; + this._sleepAfterStill = 10, this._stillFrameAccum = 0, this._needsRefresh = !0, this._needsRefreshHover = !0, this._darkMode = !1, n = n || {}, this.dom = e, this.id = t; + var r = new s_, o = n.renderer; + if (xb) { + if (!wb.vml) throw new Error("You need to require 'zrender/vml/vml' to support IE8"); + o = "vml" + } else o || (o = "canvas"); + if (!wb[o]) throw new Error("Renderer '" + o + "' is not imported. Please import it first."); + n.useDirtyRect = null == n.useDirtyRect ? !1 : n.useDirtyRect; + var a = new wb[o](e, r, n, t); + this.storage = r, this.painter = a; + var s = wv.node || wv.worker ? null : new __(a.getViewportRoot(), a.root); + this.handler = new am(r, a, s, a.root), this.animation = new u_({ + stage: { + update: function () { + return i._flush(!0) + } + } + }), this.animation.start() + } + + return t.prototype.add = function (t) { + t && (this.storage.addRoot(t), t.addSelfToZr(this), this.refresh()) + }, t.prototype.remove = function (t) { + t && (this.storage.delRoot(t), t.removeSelfFromZr(this), this.refresh()) + }, t.prototype.configLayer = function (t, e) { + this.painter.configLayer && this.painter.configLayer(t, e), this.refresh() + }, t.prototype.setBackgroundColor = function (t) { + this.painter.setBackgroundColor && this.painter.setBackgroundColor(t), this.refresh(), this._backgroundColor = t, this._darkMode = Jr(t) + }, t.prototype.getBackgroundColor = function () { + return this._backgroundColor + }, t.prototype.setDarkMode = function (t) { + this._darkMode = t + }, t.prototype.isDarkMode = function () { + return this._darkMode + }, t.prototype.refreshImmediately = function (t) { + t || this.animation.update(!0), this._needsRefresh = !1, this.painter.refresh(), this._needsRefresh = !1 + }, t.prototype.refresh = function () { + this._needsRefresh = !0, this.animation.start() + }, t.prototype.flush = function () { + this._flush(!1) + }, t.prototype._flush = function (t) { + var e, n = (new Date).getTime(); + this._needsRefresh && (e = !0, this.refreshImmediately(t)), this._needsRefreshHover && (e = !0, this.refreshHoverImmediately()); + var i = (new Date).getTime(); + e ? (this._stillFrameAccum = 0, this.trigger("rendered", {elapsedTime: i - n})) : this._sleepAfterStill > 0 && (this._stillFrameAccum++, this._stillFrameAccum > this._sleepAfterStill && this.animation.stop()) + }, t.prototype.setSleepAfterStill = function (t) { + this._sleepAfterStill = t + }, t.prototype.wakeUp = function () { + this.animation.start(), this._stillFrameAccum = 0 + }, t.prototype.addHover = function () { + }, t.prototype.removeHover = function () { + }, t.prototype.clearHover = function () { + }, t.prototype.refreshHover = function () { + this._needsRefreshHover = !0 + }, t.prototype.refreshHoverImmediately = function () { + this._needsRefreshHover = !1, this.painter.refreshHover && "canvas" === this.painter.getType() && this.painter.refreshHover() + }, t.prototype.resize = function (t) { + t = t || {}, this.painter.resize(t.width, t.height), this.handler.resize() + }, t.prototype.clearAnimation = function () { + this.animation.clear() + }, t.prototype.getWidth = function () { + return this.painter.getWidth() + }, t.prototype.getHeight = function () { + return this.painter.getHeight() + }, t.prototype.pathToImage = function (t, e) { + return this.painter.pathToImage ? this.painter.pathToImage(t, e) : void 0 + }, t.prototype.setCursorStyle = function (t) { + this.handler.setCursorStyle(t) + }, t.prototype.findHover = function (t, e) { + return this.handler.findHover(t, e) + }, t.prototype.on = function (t, e, n) { + return this.handler.on(t, e, n), this + }, t.prototype.off = function (t, e) { + this.handler.off(t, e) + }, t.prototype.trigger = function (t, e) { + this.handler.trigger(t, e) + }, t.prototype.clear = function () { + for (var t = this.storage.getRoots(), e = 0; e < t.length; e++) t[e] instanceof Ox && t[e].removeSelfFromZr(this); + this.storage.delAllRoots(), this.painter.clear() + }, t.prototype.dispose = function () { + this.animation.stop(), this.clear(), this.storage.dispose(), this.painter.dispose(), this.handler.dispose(), this.animation = this.storage = this.painter = this.handler = null, $r(this.id) + }, t + }(), Tb = "5.0.1", Mb = (Object.freeze || Object)({ + init: Qr, + dispose: to, + disposeAll: eo, + getInstance: no, + registerPainter: io, + version: Tb + }), Cb = 1e-4, Ib = 9007199254740991, + Ab = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/, + Db = (Object.freeze || Object)({ + linearMap: oo, + parsePercent: ao, + round: so, + asc: lo, + getPrecision: uo, + getPrecisionSafe: ho, + getPixelPrecision: co, + getPercentWithPrecision: po, + MAX_SAFE_INTEGER: Ib, + remRadian: fo, + isRadianAroundZero: go, + parseDate: yo, + quantity: vo, + quantityExponent: mo, + nice: _o, + quantile: xo, + reformIntervals: wo, + numericToNumber: bo, + isNumeric: So, + getRandomIdBase: To, + getGreatestCommonDividor: Mo, + getLeastCommonMultiple: Co + }), kb = "series\x00", Lb = "\x00_ec_\x00", + Pb = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "rich", "tag", "color", "textBorderColor", "textBorderWidth", "width", "height", "lineHeight", "align", "verticalAlign", "baseline", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY", "backgroundColor", "borderColor", "borderWidth", "borderRadius", "padding"], + Ob = To(), Rb = {useDefault: !0, enableAll: !1, enableNone: !1}, Eb = ".", + zb = "___EC__COMPONENT__CONTAINER___", Bb = "___EC__EXTENDED_CLASS___", Nb = Math.round(10 * Math.random()), + Fb = [["fill", "color"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["opacity"], ["shadowColor"]], + Hb = ha(Fb), Vb = function () { + function t() { + } + + return t.prototype.getAreaStyle = function (t, e) { + return Hb(this, t, e) + }, t + }(), Gb = qo(), Wb = 1, Xb = {}, Yb = qo(), Ub = 0, qb = 1, jb = 2, Zb = ["emphasis", "blur", "select"], + Kb = ["normal", "emphasis", "blur", "select"], $b = 10, Jb = 9, Qb = "highlight", tS = "downplay", + eS = "select", nS = "unselect", iS = "toggleSelect", rS = new wm(100), oS = ["emphasis", "blur", "select"], + aS = {itemStyle: "getItemStyle", lineStyle: "getLineStyle", areaStyle: "getAreaStyle"}, sS = Math.max, + lS = Math.min, uS = {}, hS = rr, cS = or, pS = hr; + es("circle", Nx), es("ellipse", Xx), es("sector", bw), es("ring", Qw), es("polygon", Zx), es("polyline", $x), es("rect", Gx), es("line", qx), es("bezierCurve", Gw), es("arc", Fw); + var fS = (Object.freeze || Object)({ + extendShape: Qa, + extendPath: ts, + registerShape: es, + getShapeClass: ns, + makePath: is, + makeImage: rs, + mergePath: cS, + resizePath: as, + subPixelOptimizeLine: ss, + subPixelOptimizeRect: ls, + subPixelOptimize: pS, + updateProps: hs, + initProps: cs, + removeElement: ps, + removeElementWithFadeOut: ds, + isElementRemoved: gs, + getTransform: ys, + applyTransform: vs, + transformDirection: ms, + groupTransition: ws, + clipPointsByRect: bs, + clipRectByRect: Ss, + createIcon: Ts, + linePolygonIntersect: Ms, + lineLineIntersect: Cs, + Group: Ox, + Image: zx, + Text: Ew, + Circle: Nx, + Ellipse: Xx, + Sector: bw, + Ring: Qw, + Polygon: Zx, + Polyline: $x, + Rect: Gx, + Line: qx, + BezierCurve: Gw, + Arc: Fw, + IncrementalDisplayable: Mw, + CompoundPath: Sw, + LinearGradient: Qx, + RadialGradient: db, + BoundingRect: Vm, + OrientedBoundingRect: _b, + Point: Pm, + Path: xx + }), dS = {}, + gS = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY"], + yS = ["align", "lineHeight", "width", "height", "tag", "verticalAlign"], + vS = ["padding", "borderWidth", "borderRadius", "borderDashOffset", "backgroundColor", "borderColor", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"], + mS = qo(), _S = ["textStyle", "color"], xS = new Ew, wS = function () { + function t() { + } + + return t.prototype.getTextColor = function (t) { + var e = this.ecModel; + return this.getShallow("color") || (!t && e ? e.get(_S) : null) + }, t.prototype.getFont = function () { + return Ns({ + fontStyle: this.getShallow("fontStyle"), + fontWeight: this.getShallow("fontWeight"), + fontSize: this.getShallow("fontSize"), + fontFamily: this.getShallow("fontFamily") + }, this.ecModel) + }, t.prototype.getTextRect = function (t) { + return xS.useStyle({ + text: t, + fontStyle: this.getShallow("fontStyle"), + fontWeight: this.getShallow("fontWeight"), + fontSize: this.getShallow("fontSize"), + fontFamily: this.getShallow("fontFamily"), + verticalAlign: this.getShallow("verticalAlign") || this.getShallow("baseline"), + padding: this.getShallow("padding"), + lineHeight: this.getShallow("lineHeight"), + rich: this.getShallow("rich") + }), xS.update(), xS.getBoundingRect() + }, t + }(), + bS = [["lineWidth", "width"], ["stroke", "color"], ["opacity"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"], ["lineDash", "type"], ["lineDashOffset", "dashOffset"], ["lineCap", "cap"], ["lineJoin", "join"], ["miterLimit"]], + SS = ha(bS), TS = function () { + function t() { + } + + return t.prototype.getLineStyle = function (t) { + return SS(this, t) + }, t + }(), + MS = [["fill", "color"], ["stroke", "borderColor"], ["lineWidth", "borderWidth"], ["opacity"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"], ["lineDash", "borderType"], ["lineDashOffset", "borderDashOffset"], ["lineCap", "borderCap"], ["lineJoin", "borderJoin"], ["miterLimit", "borderMiterLimit"]], + CS = ha(MS), IS = function () { + function t() { + } + + return t.prototype.getItemStyle = function (t, e) { + return CS(this, t, e) + }, t + }(), AS = function () { + function t(t, e, n) { + this.parentModel = e, this.ecModel = n, this.option = t + } + + return t.prototype.init = function () { + for (var t = [], e = 3; e < arguments.length; e++) t[e - 3] = arguments[e] + }, t.prototype.mergeOption = function (t) { + l(this.option, t, !0) + }, t.prototype.get = function (t, e) { + return null == t ? this.option : this._doGet(this.parsePath(t), !e && this.parentModel) + }, t.prototype.getShallow = function (t, e) { + var n = this.option, i = null == n ? n : n[t]; + if (null == i && !e) { + var r = this.parentModel; + r && (i = r.getShallow(t)) + } + return i + }, t.prototype.getModel = function (e, n) { + var i = null != e, r = i ? this.parsePath(e) : null, o = i ? this._doGet(r) : this.option; + return n = n || this.parentModel && this.parentModel.getModel(this.resolveParentPath(r)), new t(o, n, this.ecModel) + }, t.prototype.isEmpty = function () { + return null == this.option + }, t.prototype.restoreData = function () { + }, t.prototype.clone = function () { + var t = this.constructor; + return new t(s(this.option)) + }, t.prototype.parsePath = function (t) { + return "string" == typeof t ? t.split(".") : t + }, t.prototype.resolveParentPath = function (t) { + return t + }, t.prototype.isAnimationEnabled = function () { + if (!wv.node && this.option) { + if (null != this.option.animation) return !!this.option.animation; + if (this.parentModel) return this.parentModel.isAnimationEnabled() + } + }, t.prototype._doGet = function (t, e) { + var n = this.option; + if (!t) return n; + for (var i = 0; i < t.length && (!t[i] || (n = n && "object" == typeof n ? n[t[i]] : null, null != n)); i++) ; + return null == n && e && (n = e._doGet(this.resolveParentPath(t), e.parentModel)), n + }, t + }(); + ia(AS), aa(AS), d(AS, TS), d(AS, IS), d(AS, Vb), d(AS, wS); + var DS = Math.round(10 * Math.random()), kS = { + time: { + month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + monthAbbr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], + dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + dayOfWeekAbbr: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] + }, + legend: {selector: {all: "All", inverse: "Inv"}}, + toolbox: { + brush: { + title: { + rect: "Box Select", + polygon: "Lasso Select", + lineX: "Horizontally Select", + lineY: "Vertically Select", + keep: "Keep Selections", + clear: "Clear Selections" + } + }, + dataView: {title: "Data View", lang: ["Data View", "Close", "Refresh"]}, + dataZoom: {title: {zoom: "Zoom", back: "Zoom Reset"}}, + magicType: { + title: { + line: "Switch to Line Chart", + bar: "Switch to Bar Chart", + stack: "Stack", + tiled: "Tile" + } + }, + restore: {title: "Restore"}, + saveAsImage: {title: "Save as Image", lang: ["Right Click to Save Image"]} + }, + series: { + typeNames: { + pie: "Pie chart", + bar: "Bar chart", + line: "Line chart", + scatter: "Scatter plot", + effectScatter: "Ripple scatter plot", + radar: "Radar chart", + tree: "Tree", + treemap: "Treemap", + boxplot: "Boxplot", + candlestick: "Candlestick", + k: "K line chart", + heatmap: "Heat map", + map: "Map", + parallel: "Parallel coordinate map", + lines: "Line graph", + graph: "Relationship graph", + sankey: "Sankey diagram", + funnel: "Funnel chart", + gauge: "Guage", + pictorialBar: "Pictorial bar", + themeRiver: "Theme River Map", + sunburst: "Sunburst" + } + }, + aria: { + general: {withTitle: 'This is a chart about "{title}"', withoutTitle: "This is a chart"}, + series: { + single: { + prefix: "", + withName: " with type {seriesType} named {seriesName}.", + withoutName: " with type {seriesType}." + }, + multiple: { + prefix: ". It consists of {seriesCount} series count.", + withName: " The {seriesId} series is a {seriesType} representing {seriesName}.", + withoutName: " The {seriesId} series is a {seriesType}.", + separator: {middle: "", end: ""} + } + }, + data: { + allData: "The data is as follows: ", + partialData: "The first {displayCnt} items are: ", + withName: "the data for {name} is {value}", + withoutName: "{value}", + separator: {middle: ", ", end: ". "} + } + } + }, LS = { + time: { + month: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + monthAbbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], + dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], + dayOfWeekAbbr: ["日", "一", "二", "三", "四", "五", "六"] + }, + legend: {selector: {all: "全选", inverse: "反选"}}, + 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: ""} + } + } + }, PS = "ZH", OS = "EN", RS = OS, ES = {}, zS = {}, BS = wv.domSupported ? function () { + var t = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase(); + return t.indexOf(PS) > -1 ? PS : RS + }() : RS; + Ys(OS, kS), Ys(PS, LS); + var NS = 1e3, FS = 60 * NS, HS = 60 * FS, VS = 24 * HS, GS = 365 * VS, WS = { + year: "{yyyy}", + month: "{MMM}", + day: "{d}", + hour: "{HH}:{mm}", + minute: "{HH}:{mm}", + second: "{HH}:{mm}:{ss}", + millisecond: "{hh}:{mm}:{ss} {SSS}", + none: "{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}" + }, XS = "{yyyy}-{MM}-{dd}", YS = { + year: "{yyyy}", + month: "{yyyy}-{MM}", + day: XS, + hour: XS + " " + WS.hour, + minute: XS + " " + WS.minute, + second: XS + " " + WS.second, + millisecond: WS.none + }, US = ["year", "month", "day", "hour", "minute", "second", "millisecond"], + qS = ["year", "half-year", "quarter", "month", "week", "half-week", "day", "half-day", "quarter-day", "hour", "minute", "second", "millisecond"], + jS = V, ZS = /([&<>"'])/g, KS = {"&": "&", "<": "<", ">": ">", '"': """, "'": "'"}, + $S = ["a", "b", "c", "d", "e", "f", "g"], JS = function (t, e) { + return "{" + t + (null == e ? "" : e) + "}" + }, QS = (Object.freeze || Object)({ + addCommas: ml, + toCamelCase: _l, + normalizeCssArray: jS, + encodeHTML: xl, + makeValueReadable: wl, + formatTpl: bl, + formatTplSimple: Sl, + getTooltipMarker: Tl, + formatTime: Ml, + capitalFirst: Cl, + convertToColorString: Il, + windowOpen: Al, + truncateText: Pr, + getTextRect: vl + }), tT = y, eT = ["left", "right", "top", "bottom", "width", "height"], + nT = [["width", "left", "right"], ["height", "top", "bottom"]], iT = Dl, + rT = (S(Dl, "vertical"), S(Dl, "horizontal"), qo()), oT = function (t) { + function n(e, n, i) { + var r = t.call(this, e, n, i) || this; + return r.uid = Vs("ec_cpt_model"), r + } + + return e(n, t), n.prototype.init = function (t, e, n) { + this.mergeDefaultAndTheme(t, n) + }, n.prototype.mergeDefaultAndTheme = function (t, e) { + var n = Ll(this), i = n ? Ol(t) : {}, r = e.getTheme(); + l(t, r.get(this.mainType)), l(t, this.getDefaultOption()), n && Pl(t, i, n) + }, n.prototype.mergeOption = function (t) { + l(this.option, t, !0); + var e = Ll(this); + e && Pl(this.option, t, e) + }, n.prototype.optionUpdated = function () { + }, n.prototype.getDefaultOption = function () { + var t = this.constructor; + if (!na(t)) return t.defaultOption; + var e = rT(this); + if (!e.defaultOption) { + for (var n = [], i = t; i;) { + var r = i.prototype.defaultOption; + r && n.push(r), i = i.superClass + } + for (var o = {}, a = n.length - 1; a >= 0; a--) o = l(o, n[a], !0); + e.defaultOption = o + } + return e.defaultOption + }, n.prototype.getReferringComponents = function (t, e) { + var n = t + "Index", i = t + "Id"; + return Zo(this.ecModel, t, {index: this.get(n, !0), id: this.get(i, !0)}, e) + }, n.prototype.getBoxLayoutParams = function () { + var t = this; + return { + left: t.get("left"), + top: t.get("top"), + right: t.get("right"), + bottom: t.get("bottom"), + width: t.get("width"), + height: t.get("height") + } + }, n.protoInitialize = function () { + var t = n.prototype; + t.type = "component", t.id = "", t.name = "", t.mainType = "", t.subType = "", t.componentIndex = 0 + }(), n + }(AS); + oa(oT, AS), ua(oT, {registerWhenExtend: !0}), Gs(oT), Ws(oT, El); + var aT = ""; + "undefined" != typeof navigator && (aT = navigator.platform || ""); + var sT, lT, uT = "rgba(0, 0, 0, 0.2)", hT = { + darkMode: "auto", + color: ["#5470c6", "#91cc75", "#fac858", "#ee6666", "#73c0de", "#3ba272", "#fc8452", "#9a60b4", "#ea7ccc"], + gradientColor: ["#f6efa6", "#d88273", "#bf444c"], + aria: { + decal: { + decals: [{ + color: uT, + dashArrayX: [1, 0], + dashArrayY: [2, 5], + symbolSize: 1, + rotation: Math.PI / 6 + }, { + color: uT, + symbol: "circle", + dashArrayX: [[8, 8], [0, 8, 8, 0]], + dashArrayY: [6, 0], + symbolSize: .8 + }, { + color: uT, + dashArrayX: [1, 0], + dashArrayY: [4, 3], + dashLineOffset: 0, + rotation: -Math.PI / 4 + }, {color: uT, dashArrayX: [[6, 6], [0, 6, 6, 0]], dashArrayY: [6, 0]}, { + color: uT, + dashArrayX: [[1, 0], [1, 6]], + dashArrayY: [1, 0, 6, 0], + rotation: Math.PI / 4 + }, { + color: uT, + symbol: "triangle", + dashArrayX: [[9, 9], [0, 9, 9, 0]], + dashArrayY: [7, 2], + symbolSize: .75 + }] + } + }, + textStyle: { + fontFamily: aT.match(/^Win/) ? "Microsoft YaHei" : "sans-serif", + fontSize: 12, + fontStyle: "normal", + fontWeight: "normal" + }, + blendMode: null, + stateAnimation: {duration: 300, easing: "cubicOut"}, + animation: "auto", + animationDuration: 1e3, + animationDurationUpdate: 500, + animationEasing: "cubicInOut", + animationEasingUpdate: "cubicInOut", + animationThreshold: 2e3, + progressiveThreshold: 3e3, + progressive: 400, + hoverLayerThreshold: 3e3, + useUTC: !1 + }, cT = U(["tooltip", "label", "itemName", "itemId", "seriesName"]), pT = "original", fT = "arrayRows", + dT = "objectRows", gT = "keyedColumns", yT = "typedArray", vT = "unknown", mT = "column", _T = "row", + xT = {Must: 1, Might: 2, Not: 3}, wT = qo(), bT = U(), ST = qo(), TT = (qo(), function () { + function t() { + } + + return t.prototype.getColorFromPalette = function (t, e, n) { + var i = Ao(this.get("color", !0)), r = this.get("colorLayer", !0); + return Ul(this, ST, i, r, t, e, n) + }, t.prototype.clearColorPalette = function () { + ql(this, ST) + }, t + }()), MT = "\x00_ec_inner", CT = function (t) { + function n() { + return null !== t && t.apply(this, arguments) || this + } + + return e(n, t), n.prototype.init = function (t, e, n, i, r, o) { + i = i || {}, this.option = null, this._theme = new AS(i), this._locale = new AS(r), this._optionManager = o + }, n.prototype.setOption = function (t, e, n) { + G(!(MT in t), "please use chart.getOption()"); + var i = Jl(e); + this._optionManager.setOption(t, n, i), this._resetOption(null, i) + }, n.prototype.resetOption = function (t, e) { + return this._resetOption(t, Jl(e)) + }, n.prototype._resetOption = function (t, e) { + var n = !1, i = this._optionManager; + if (!t || "recreate" === t) { + var r = i.mountOption("recreate" === t); + this.option && "recreate" !== t ? (this.restoreData(), this._mergeOption(r, e)) : lT(this, r), n = !0 + } + if (("timeline" === t || "media" === t) && this.restoreData(), !t || "recreate" === t || "timeline" === t) { + var o = i.getTimelineOption(this); + o && (n = !0, this._mergeOption(o, e)) + } + if (!t || "recreate" === t || "media" === t) { + var a = i.getMediaOption(this); + a.length && y(a, function (t) { + n = !0, this._mergeOption(t, e) + }, this) + } + return n + }, n.prototype.mergeOption = function (t) { + this._mergeOption(t, null) + }, n.prototype._mergeOption = function (t, e) { + function n(e) { + var n = Xl(this, e, Ao(t[e])), a = r.get(e), + s = a ? c && c.get(e) ? "replaceMerge" : "normalMerge" : "replaceAll", l = Po(a, n, s); + Xo(l, e, oT), i[e] = null, r.set(e, null), o.set(e, 0); + var u = [], p = [], f = 0; + y(l, function (t, n) { + var i = t.existing, r = t.newOption; + if (r) { + var o = oT.getClass(e, t.keyInfo.subType, !0); + if (i && i.constructor === o) i.name = t.keyInfo.name, i.mergeOption(r, this), i.optionUpdated(r, !1); else { + var a = h({componentIndex: n}, t.keyInfo); + i = new o(r, this, this, a), h(i, a), t.brandNew && (i.__requireNewView = !0), i.init(r, this, this), i.optionUpdated(null, !0) + } + } else i && (i.mergeOption({}, this), i.optionUpdated({}, !1)); + i ? (u.push(i.option), p.push(i), f++) : (u.push(void 0), p.push(void 0)) + }, this), i[e] = u, r.set(e, p), o.set(e, f), "series" === e && sT(this) + } + + var i = this.option, r = this._componentsMap, o = this._componentsCount, a = [], u = U(), + c = e && e.replaceMergeMainTypeMap; + zl(this), y(t, function (t, e) { + null != t && (oT.hasClass(e) ? e && (a.push(e), u.set(e, !0)) : i[e] = null == i[e] ? s(t) : l(i[e], t, !0)) + }), c && c.each(function (t, e) { + oT.hasClass(e) && !u.get(e) && (a.push(e), u.set(e, !0)) + }), oT.topologicalTravel(a, oT.getAllClassMainTypes(), n, this), this._seriesIndices || sT(this) + }, n.prototype.getOption = function () { + var t = s(this.option); + return y(t, function (e, n) { + if (oT.hasClass(n)) { + for (var i = Ao(e), r = i.length, o = !1, a = r - 1; a >= 0; a--) i[a] && !Wo(i[a]) ? o = !0 : (i[a] = null, !o && r--); + i.length = r, t[n] = i + } + }), delete t[MT], t + }, n.prototype.getTheme = function () { + return this._theme + }, n.prototype.getLocaleModel = function () { + return this._locale + }, n.prototype.getLocale = function (t) { + var e = this.getLocaleModel(); + return e.get(t) + }, n.prototype.setUpdatePayload = function (t) { + this._payload = t + }, n.prototype.getUpdatePayload = function () { + return this._payload + }, n.prototype.getComponent = function (t, e) { + var n = this._componentsMap.get(t); + if (n) { + var i = n[e || 0]; + if (i) return i; + if (null == e) for (var r = 0; r < n.length; r++) if (n[r]) return n[r] + } + }, n.prototype.queryComponents = function (t) { + var e = t.mainType; + if (!e) return []; + var n = t.index, i = t.id, r = t.name, o = this._componentsMap.get(e); + if (!o || !o.length) return []; + var a; + return null != n ? (a = [], y(Ao(n), function (t) { + o[t] && a.push(o[t]) + })) : a = null != i ? Kl("id", i, o) : null != r ? Kl("name", r, o) : _(o, function (t) { + return !!t + }), $l(a, t) + }, n.prototype.findComponents = function (t) { + function e(t) { + var e = r + "Index", n = r + "Id", i = r + "Name"; + return !t || null == t[e] && null == t[n] && null == t[i] ? null : { + mainType: r, + index: t[e], + id: t[n], + name: t[i] + } + } + + function n(e) { + return t.filter ? _(e, t.filter) : e + } + + var i = t.query, r = t.mainType, o = e(i), + a = o ? this.queryComponents(o) : _(this._componentsMap.get(r), function (t) { + return !!t + }); + return n($l(a, t)) + }, n.prototype.eachComponent = function (t, e, n) { + var i = this._componentsMap; + if (M(t)) { + var r = e, o = t; + i.each(function (t, e) { + for (var n = 0; t && n < t.length; n++) { + var i = t[n]; + i && o.call(r, e, i, i.componentIndex) + } + }) + } else for (var a = C(t) ? i.get(t) : D(t) ? this.findComponents(t) : null, s = 0; a && s < a.length; s++) { + var l = a[s]; + l && e.call(n, l, l.componentIndex) + } + }, n.prototype.getSeriesByName = function (t) { + var e = Vo(t, null); + return _(this._componentsMap.get("series"), function (t) { + return !!t && null != e && t.name === e + }) + }, n.prototype.getSeriesByIndex = function (t) { + return this._componentsMap.get("series")[t] + }, n.prototype.getSeriesByType = function (t) { + return _(this._componentsMap.get("series"), function (e) { + return !!e && e.subType === t + }) + }, n.prototype.getSeries = function () { + return _(this._componentsMap.get("series").slice(), function (t) { + return !!t + }) + }, n.prototype.getSeriesCount = function () { + return this._componentsCount.get("series") + }, n.prototype.eachSeries = function (t, e) { + y(this._seriesIndices, function (n) { + var i = this._componentsMap.get("series")[n]; + t.call(e, i, n) + }, this) + }, n.prototype.eachRawSeries = function (t, e) { + y(this._componentsMap.get("series"), function (n) { + n && t.call(e, n, n.componentIndex) + }) + }, n.prototype.eachSeriesByType = function (t, e, n) { + y(this._seriesIndices, function (i) { + var r = this._componentsMap.get("series")[i]; + r.subType === t && e.call(n, r, i) + }, this) + }, n.prototype.eachRawSeriesByType = function (t, e, n) { + return y(this.getSeriesByType(t), e, n) + }, n.prototype.isSeriesFiltered = function (t) { + return null == this._seriesIndicesMap.get(t.componentIndex) + }, n.prototype.getCurrentSeriesIndices = function () { + return (this._seriesIndices || []).slice() + }, n.prototype.filterSeries = function (t, e) { + var n = []; + y(this._seriesIndices, function (i) { + var r = this._componentsMap.get("series")[i]; + t.call(e, r, i) && n.push(i) + }, this), this._seriesIndices = n, this._seriesIndicesMap = U(n) + }, n.prototype.restoreData = function (t) { + sT(this); + var e = this._componentsMap, n = []; + e.each(function (t, e) { + oT.hasClass(e) && n.push(e) + }), oT.topologicalTravel(n, oT.getAllClassMainTypes(), function (n) { + y(e.get(n), function (e) { + !e || "series" === n && jl(e, t) || e.restoreData() + }) + }) + }, n.internalField = function () { + sT = function (t) { + var e = t._seriesIndices = []; + y(t._componentsMap.get("series"), function (t) { + t && e.push(t.componentIndex) + }), t._seriesIndicesMap = U(e) + }, lT = function (t, e) { + t.option = {}, t.option[MT] = 1, t._componentsMap = U({series: []}), t._componentsCount = U(); + var n = e.aria; + D(n) && null == n.enabled && (n.enabled = !0), Zl(e, t._theme.option), l(e, hT, !1), t._mergeOption(e, null) + } + }(), n + }(AS); + d(CT, TT); + var IT, AT, DT, kT, LT, + PT = ["getDom", "getZr", "getWidth", "getHeight", "getDevicePixelRatio", "dispatchAction", "isDisposed", "on", "off", "getDataURL", "getConnectedDataURL", "getOption", "getId", "updateLabelLayout"], + OT = function () { + function t(t) { + y(PT, function (e) { + this[e] = Ev(t[e], t) + }, this) + } + + return t + }(), RT = {}, ET = function () { + function t() { + this._coordinateSystems = [] + } + + return t.prototype.create = function (t, e) { + var n = []; + y(RT, function (i) { + var r = i.create(t, e); + n = n.concat(r || []) + }), this._coordinateSystems = n + }, t.prototype.update = function (t, e) { + y(this._coordinateSystems, function (n) { + n.update && n.update(t, e) + }) + }, t.prototype.getCoordinateSystems = function () { + return this._coordinateSystems.slice() + }, t.register = function (t, e) { + RT[t] = e + }, t.get = function (t) { + return RT[t] + }, t + }(), zT = /^(min|max)?(.+)$/, BT = function () { + function t(t) { + this._timelineOptions = [], this._mediaList = [], this._currentMediaIndices = [], this._api = t + } + + return t.prototype.setOption = function (t, e) { + t && (y(Ao(t.series), function (t) { + t && t.data && L(t.data) && X(t.data) + }), y(Ao(t.dataset), function (t) { + t && t.source && L(t.source) && X(t.source) + })), t = s(t); + var n = this._optionBackup, i = Ql(t, e, !n); + this._newBaseOption = i.baseOption, n ? (i.timelineOptions.length && (n.timelineOptions = i.timelineOptions), i.mediaList.length && (n.mediaList = i.mediaList), i.mediaDefault && (n.mediaDefault = i.mediaDefault)) : this._optionBackup = i + }, t.prototype.mountOption = function (t) { + var e = this._optionBackup; + return this._timelineOptions = e.timelineOptions, this._mediaList = e.mediaList, this._mediaDefault = e.mediaDefault, this._currentMediaIndices = [], s(t ? e.baseOption : this._newBaseOption) + }, t.prototype.getTimelineOption = function (t) { + var e, n = this._timelineOptions; + if (n.length) { + var i = t.getComponent("timeline"); + i && (e = s(n[i.getCurrentIndex()])) + } + return e + }, t.prototype.getMediaOption = function () { + var t = this._api.getWidth(), e = this._api.getHeight(), n = this._mediaList, i = this._mediaDefault, + r = [], o = []; + if (!n.length && !i) return o; + for (var a = 0, l = n.length; l > a; a++) tu(n[a].query, t, e) && r.push(a); + return !r.length && i && (r = [-1]), r.length && !nu(r, this._currentMediaIndices) && (o = v(r, function (t) { + return s(-1 === t ? i.option : n[t].option) + })), this._currentMediaIndices = r, o + }, t + }(), NT = y, FT = D, HT = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"], + VT = [["x", "left"], ["y", "top"], ["x2", "right"], ["y2", "bottom"]], + GT = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"], + WT = [["borderRadius", "barBorderRadius"], ["borderColor", "barBorderColor"], ["borderWidth", "barBorderWidth"]], + XT = function () { + function t(t) { + this.data = t.data || (t.sourceFormat === gT ? {} : []), this.sourceFormat = t.sourceFormat || vT, this.seriesLayoutBy = t.seriesLayoutBy || mT, this.startIndex = t.startIndex || 0, this.dimensionsDefine = t.dimensionsDefine, this.dimensionsDetectedCount = t.dimensionsDetectedCount, this.encodeDefine = t.encodeDefine, this.metaRawOption = t.metaRawOption + } + + return t + }(), YT = function () { + function t(t, e) { + var n = Su(t) ? t : Mu(t); + this._source = n; + var i = this._data = n.data; + n.sourceFormat === yT && (this._offset = 0, this._dimSize = e, this._data = i), LT(this, i, n) + } + + return t.prototype.getSource = function () { + return this._source + }, t.prototype.count = function () { + return 0 + }, t.prototype.getItem = function () { + }, t.prototype.appendData = function () { + }, t.prototype.clean = function () { + }, t.protoInitialize = function () { + var e = t.prototype; + e.pure = !1, e.persistent = !0 + }(), t.internalField = function () { + function t(t) { + for (var e = 0; e < t.length; e++) this._data.push(t[e]) + } + + var e; + LT = function (t, e, o) { + var a = o.sourceFormat, s = o.seriesLayoutBy, l = o.startIndex, u = o.dimensionsDefine, + c = kT[zu(a, s)]; + if (h(t, c), a === yT) t.getItem = n, t.count = r, t.fillStorage = i; else { + var p = Ou(a, s); + t.getItem = Ev(p, null, e, l, u); + var f = Ru(a, s); + t.count = Ev(f, null, e, l, u) + } + }; + var n = function (t, e) { + t -= this._offset, e = e || []; + for (var n = this._data, i = this._dimSize, r = i * t, o = 0; i > o; o++) e[o] = n[r + o]; + return e + }, i = function (t, e, n, i) { + for (var r = this._data, o = this._dimSize, a = 0; o > a; a++) { + for (var s = i[a], l = null == s[0] ? 1 / 0 : s[0], u = null == s[1] ? -1 / 0 : s[1], h = e - t, c = n[a], p = 0; h > p; p++) { + var f = r[(t + p) * o + a]; + c[t + p] = f, l > f && (l = f), f > u && (u = f) + } + s[0] = l, s[1] = u + } + }, r = function () { + return this._data ? this._data.length / this._dimSize : 0 + }; + e = {}, e[fT + "_" + mT] = {pure: !0, appendData: t}, e[fT + "_" + _T] = { + pure: !0, + appendData: function () { + throw new Error('Do not support appendData when set seriesLayoutBy: "row".') + } + }, e[dT] = {pure: !0, appendData: t}, e[gT] = { + pure: !0, appendData: function (t) { + var e = this._data; + y(t, function (t, n) { + for (var i = e[n] || (e[n] = []), r = 0; r < (t || []).length; r++) i.push(t[r]) + }) + } + }, e[pT] = {appendData: t}, e[yT] = { + persistent: !1, pure: !0, appendData: function (t) { + this._data = t + }, clean: function () { + this._offset += this.count(), this._data = null + } + }, kT = e + }(), t + }(), UT = function (t, e, n, i) { + return t[i] + }, qT = (IT = {}, IT[fT + "_" + mT] = function (t, e, n, i) { + return t[i + e] + }, IT[fT + "_" + _T] = function (t, e, n, i) { + i += e; + for (var r = [], o = t, a = 0; a < o.length; a++) { + var s = o[a]; + r.push(s ? s[i] : null) + } + return r + }, IT[dT] = UT, IT[gT] = function (t, e, n, i) { + for (var r = [], o = 0; o < n.length; o++) { + var a = n[o].name, s = t[a]; + r.push(s ? s[i] : null) + } + return r + }, IT[pT] = UT, IT), jT = function (t) { + return t.length + }, ZT = (AT = {}, AT[fT + "_" + mT] = function (t, e) { + return Math.max(0, t.length - e) + }, AT[fT + "_" + _T] = function (t, e) { + var n = t[0]; + return n ? Math.max(0, n.length - e) : 0 + }, AT[dT] = jT, AT[gT] = function (t, e, n) { + var i = n[0].name, r = t[i]; + return r ? r.length : 0 + }, AT[pT] = jT, AT), KT = function (t, e) { + return null != e ? t[e] : t + }, $T = (DT = {}, DT[fT] = KT, DT[dT] = function (t, e, n) { + return null != e ? t[n] : t + }, DT[gT] = KT, DT[pT] = function (t, e) { + var n = ko(t); + return null != e && n instanceof Array ? n[e] : n + }, DT[yT] = KT, DT), JT = /\{@(.+?)\}/g, QT = function () { + function t() { + } + + return t.prototype.getDataParams = function (t, e) { + var n = this.getData(e), i = this.getRawValue(t, e), r = n.getRawIndex(t), o = n.getName(t), + a = n.getRawDataItem(t), s = n.getItemVisual(t, "style"), + l = s && s[n.getItemVisual(t, "drawType") || "fill"], u = s && s.stroke, h = this.mainType, + c = "series" === h, p = n.userOutput; + return { + componentType: h, + componentSubType: this.subType, + componentIndex: this.componentIndex, + seriesType: c ? this.subType : null, + seriesIndex: this.seriesIndex, + seriesId: c ? this.id : null, + seriesName: c ? this.name : null, + name: o, + dataIndex: r, + data: a, + dataType: e, + value: i, + color: l, + borderColor: u, + dimensionNames: p ? p.dimensionNames : null, + encode: p ? p.encode : null, + $vars: ["seriesName", "name", "value"] + } + }, t.prototype.getFormattedLabel = function (t, e, n, i, r, o) { + e = e || "normal"; + var a = this.getData(n), s = this.getDataParams(t, n); + if (o && h(s, o), null != i && s.value instanceof Array && (s.value = s.value[i]), !r) { + var l = a.getItemModel(t); + r = l.get("normal" === e ? ["label", "formatter"] : [e, "label", "formatter"]) + } + if ("function" == typeof r) return s.status = e, s.dimensionIndex = i, r(s); + if ("string" == typeof r) { + var u = bl(r, s); + return u.replace(JT, function (e, n) { + var i = n.length; + return "[" === n.charAt(0) && "]" === n.charAt(i - 1) && (n = +n.slice(1, i - 1)), Bu(a, t, n) + }) + } + }, t.prototype.getRawValue = function (t, e) { + return Bu(this.getData(e), t) + }, t.prototype.formatTooltip = function () { + }, t + }(), tM = function () { + function t(t) { + t = t || {}, this._reset = t.reset, this._plan = t.plan, this._count = t.count, this._onDirty = t.onDirty, this._dirty = !0 + } + + return t.prototype.perform = function (t) { + function e(t) { + return !(t >= 1) && (t = 1), t + } + + var n = this._upstream, i = t && t.skip; + if (this._dirty && n) { + var r = this.context; + r.data = r.outputData = n.context.outputData + } + this.__pipeline && (this.__pipeline.currentTask = this); + var o; + this._plan && !i && (o = this._plan(this.context)); + var a = e(this._modBy), s = this._modDataCount || 0, l = e(t && t.modBy), u = t && t.modDataCount || 0; + (a !== l || s !== u) && (o = "reset"); + var h; + (this._dirty || "reset" === o) && (this._dirty = !1, h = this._doReset(i)), this._modBy = l, this._modDataCount = u; + var c = t && t.step; + if (this._dueEnd = n ? n._outputDueEnd : this._count ? this._count(this.context) : 1 / 0, this._progress) { + var p = this._dueIndex, f = Math.min(null != c ? this._dueIndex + c : 1 / 0, this._dueEnd); + if (!i && (h || f > p)) { + var d = this._progress; + if (T(d)) for (var g = 0; g < d.length; g++) this._doProgress(d[g], p, f, l, u); else this._doProgress(d, p, f, l, u) + } + this._dueIndex = f; + var y = null != this._settedOutputEnd ? this._settedOutputEnd : f; + this._outputDueEnd = y + } else this._dueIndex = this._outputDueEnd = null != this._settedOutputEnd ? this._settedOutputEnd : this._dueEnd; + return this.unfinished() + }, t.prototype.dirty = function () { + this._dirty = !0, this._onDirty && this._onDirty(this.context) + }, t.prototype._doProgress = function (t, e, n, i, r) { + eM.reset(e, n, i, r), this._callingProgress = t, this._callingProgress({ + start: e, + end: n, + count: n - e, + next: eM.next + }, this.context) + }, t.prototype._doReset = function (t) { + this._dueIndex = this._outputDueEnd = this._dueEnd = 0, this._settedOutputEnd = null; + var e, n; + !t && this._reset && (e = this._reset(this.context), e && e.progress && (n = e.forceFirstProgress, e = e.progress), T(e) && !e.length && (e = null)), this._progress = e, this._modBy = this._modDataCount = null; + var i = this._downstream; + return i && i.dirty(), n + }, t.prototype.unfinished = function () { + return this._progress && this._dueIndex < this._dueEnd + }, t.prototype.pipe = function (t) { + (this._downstream !== t || this._dirty) && (this._downstream = t, t._upstream = this, t.dirty()) + }, t.prototype.dispose = function () { + this._disposed || (this._upstream && (this._upstream._downstream = null), this._downstream && (this._downstream._upstream = null), this._dirty = !1, this._disposed = !0) + }, t.prototype.getUpstream = function () { + return this._upstream + }, t.prototype.getDownstream = function () { + return this._downstream + }, t.prototype.setOutputEnd = function (t) { + this._outputDueEnd = this._settedOutputEnd = t + }, t + }(), eM = function () { + function t() { + return n > i ? i++ : null + } + + function e() { + var t = i % a * r + Math.ceil(i / a), e = i >= n ? null : o > t ? t : i; + return i++, e + } + + var n, i, r, o, a, s = { + reset: function (l, u, h, c) { + i = l, n = u, r = h, o = c, a = Math.ceil(o / r), s.next = r > 1 && o > 0 ? e : t + } + }; + return s + }(), nM = (U({ + number: function (t) { + return parseFloat(t) + }, time: function (t) { + return +yo(t) + }, trim: function (t) { + return "string" == typeof t ? W(t) : t + } + }), { + lt: function (t, e) { + return e > t + }, lte: function (t, e) { + return e >= t + }, gt: function (t, e) { + return t > e + }, gte: function (t, e) { + return t >= e + } + }), iM = (function () { + function t(t, e) { + if ("number" != typeof e) { + var n = ""; + Io(n) + } + this._opFn = nM[t], this._rvalFloat = bo(e) + } + + return t.prototype.evaluate = function (t) { + return "number" == typeof t ? this._opFn(t, this._rvalFloat) : this._opFn(bo(t), this._rvalFloat) + }, t + }(), function () { + function t(t, e) { + var n = "desc" === t; + this._resultLT = n ? 1 : -1, null == e && (e = n ? "min" : "max"), this._incomparable = "min" === e ? -1 / 0 : 1 / 0 + } + + return t.prototype.evaluate = function (t, e) { + var n = typeof t, i = typeof e, r = "number" === n ? t : bo(t), o = "number" === i ? e : bo(e), + a = isNaN(r), s = isNaN(o); + if (a && (r = this._incomparable), s && (o = this._incomparable), a && s) { + var l = "string" === n, u = "string" === i; + l && (r = u ? t : 0), u && (o = l ? e : 0) + } + return o > r ? this._resultLT : r > o ? -this._resultLT : 0 + }, t + }()), rM = (function () { + function t(t, e) { + this._rval = e, this._isEQ = t, this._rvalTypeof = typeof e, this._rvalFloat = bo(e) + } + + return t.prototype.evaluate = function (t) { + var e = t === this._rval; + if (!e) { + var n = typeof t; + n === this._rvalTypeof || "number" !== n && "number" !== this._rvalTypeof || (e = bo(t) === this._rvalFloat) + } + return this._isEQ ? e : !e + }, t + }(), function () { + function t() { + } + + return t.prototype.getRawData = function () { + throw new Error("not supported") + }, t.prototype.getRawDataItem = function () { + throw new Error("not supported") + }, t.prototype.cloneRawData = function () { + }, t.prototype.getDimensionInfo = function () { + }, t.prototype.cloneAllDimensionInfo = function () { + }, t.prototype.count = function () { + }, t.prototype.retrieveValue = function () { + }, t.prototype.retrieveValueFromItem = function () { + }, t.prototype.convertValue = function (t, e) { + return Hu(t, e) + }, t + }()), oM = U(), aM = function () { + function t(t) { + this._sourceList = [], this._upstreamSignList = [], this._versionSignBase = 0, this._sourceHost = t + } + + return t.prototype.dirty = function () { + this._setLocalSource([], []) + }, t.prototype._setLocalSource = function (t, e) { + this._sourceList = t, this._upstreamSignList = e, this._versionSignBase++, this._versionSignBase > 9e10 && (this._versionSignBase = 0) + }, t.prototype._getVersionSign = function () { + return this._sourceHost.uid + "_" + this._versionSignBase + }, t.prototype.prepareSource = function () { + this._isDirty() && this._createSource() + }, t.prototype._createSource = function () { + this._setLocalSource([], []); + var t, e, n = this._sourceHost, i = this._getUpstreamSourceManagers(), r = !!i.length; + if (Ku(n)) { + var o = n, a = void 0, s = void 0, l = void 0; + if (r) { + var u = i[0]; + u.prepareSource(), l = u.getSource(), a = l.data, s = l.sourceFormat, e = [u._getVersionSign()] + } else a = o.get("data", !0), s = L(a) ? yT : pT, e = []; + var h = Bl(l, this._getSourceMetaRawOption()); + t = [Tu(a, h, s, o.get("encode", !0))] + } else { + var c = n; + if (r) { + var p = this._applyTransform(i); + t = p.sourceList, e = p.upstreamSignList + } else { + var f = c.get("source", !0); + t = [Tu(f, this._getSourceMetaRawOption(), null, null)], e = [] + } + } + this._setLocalSource(t, e) + }, t.prototype._applyTransform = function (t) { + var e = this._sourceHost, n = e.get("transform", !0), i = e.get("fromTransformResult", !0); + if (null != i) { + var r = ""; + 1 !== t.length && $u(r) + } + var o, a = [], s = []; + return y(t, function (t) { + t.prepareSource(); + var e = t.getSource(i || 0), n = ""; + null == i || e || $u(n), a.push(e), s.push(t._getVersionSign()) + }), n ? o = qu(n, a, {datasetIndex: e.componentIndex}) : null != i && (o = [Cu(a[0])]), { + sourceList: o, + upstreamSignList: s + } + }, t.prototype._isDirty = function () { + var t = this._sourceList; + if (!t.length) return !0; + for (var e = this._getUpstreamSourceManagers(), n = 0; n < e.length; n++) { + var i = e[n]; + if (i._isDirty() || this._upstreamSignList[n] !== i._getVersionSign()) return !0 + } + }, t.prototype.getSource = function (t) { + return this._sourceList[t || 0] + }, t.prototype._getUpstreamSourceManagers = function () { + var t = this._sourceHost; + if (Ku(t)) { + var e = Hl(t); + return e ? [e.getSourceManager()] : [] + } + return v(Vl(t), function (t) { + return t.getSourceManager() + }) + }, t.prototype._getSourceMetaRawOption = function () { + var t, e, n, i = this._sourceHost; + if (Ku(i)) t = i.get("seriesLayoutBy", !0), e = i.get("sourceHeader", !0), n = i.get("dimensions", !0); else if (!this._getUpstreamSourceManagers().length) { + var r = i; + t = r.get("seriesLayoutBy", !0), e = r.get("sourceHeader", !0), n = r.get("dimensions", !0) + } + return {seriesLayoutBy: t, sourceHeader: e, dimensions: n} + }, t + }(), sM = "font-size:12px;color:#6e7079", lM = {fontSize: 12, fill: "#6e7079"}, + uM = "font-size:14px;color:#464646;font-weight:900", hM = {fontSize: 14, fill: "#464646", fontWeight: 900}, + cM = "line-height:1", pM = [0, 10, 20, 30], fM = ["", "\n", "\n\n", "\n\n\n"], dM = { + section: { + planLayout: function (t) { + var e = t.blocks.length, n = e > 1 || e > 0 && !t.noHeader, i = 0; + y(t.blocks, function (t) { + Qu(t).planLayout(t); + var e = t.__gapLevelBetweenSubBlocks; + e >= i && (i = e + (!n || e && ("section" !== t.type || t.noHeader) ? 0 : 1)) + }), t.__gapLevelBetweenSubBlocks = i + }, build: function (t, e, n) { + var i = e.noHeader, r = nh(e), o = th(t, e, i ? n : r.html); + if (i) return o; + var a = wl(e.header, "ordinal", t.useUTC); + return "richText" === t.renderMode ? ah(t, a) + r.richText + o : ih('
' + xl(a) + "
" + o, n) + } + }, nameValue: { + planLayout: function (t) { + t.__gapLevelBetweenSubBlocks = 0 + }, build: function (t, e, n) { + var i = t.renderMode, r = e.noName, o = e.noValue, a = !e.markerType, s = e.name, l = e.value, + u = t.useUTC; + if (!r || !o) { + var h = a ? "" : t.markupStyleCreator.makeTooltipMarker(e.markerType, e.markerColor || "#333", i), + c = r ? "" : wl(s, "ordinal", u), p = e.valueType, f = o ? [] : T(l) ? v(l, function (t, e) { + return wl(t, T(p) ? p[e] : p, u) + }) : [wl(l, T(p) ? p[0] : p, u)], d = !a || !r, g = !a && r; + return "richText" === i ? (a ? "" : h) + (r ? "" : ah(t, c)) + (o ? "" : sh(t, f, d, g)) : ih((a ? "" : h) + (r ? "" : rh(c, !a)) + (o ? "" : oh(f, d, g)), n) + } + } + } + }, gM = function () { + function t() { + this.richTextStyles = {}, this._nextStyleNameId = To() + } + + return t.prototype._generateStyleName = function () { + return "__EC_aUTo_" + this._nextStyleNameId++ + }, t.prototype.makeTooltipMarker = function (t, e, n) { + var i = "richText" === n ? this._generateStyleName() : null, + r = Tl({color: e, type: t, renderMode: n, markerId: i}); + return C(r) ? r : (this.richTextStyles[i] = r.style, r.content) + }, t.prototype.wrapRichTextStyle = function (t, e) { + var n = {}; + T(e) ? y(e, function (t) { + return h(n, t) + }) : h(n, e); + var i = this._generateStyleName(); + return this.richTextStyles[i] = n, "{" + i + "|" + t + "}" + }, t + }(), yM = qo(), vM = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e._selectedDataIndicesMap = {}, e + } + + return e(n, t), n.prototype.init = function (t, e, n) { + this.seriesIndex = this.componentIndex, this.dataTask = Fu({ + count: gh, + reset: yh + }), this.dataTask.context = {model: this}, this.mergeDefaultAndTheme(t, n); + var i = yM(this).sourceManager = new aM(this); + i.prepareSource(); + var r = this.getInitialData(t, n); + mh(r, this), this.dataTask.context.data = r, yM(this).dataBeforeProcessed = r, fh(this), this._initSelectedMapFromData(r) + }, n.prototype.mergeDefaultAndTheme = function (t, e) { + var n = Ll(this), i = n ? Ol(t) : {}, r = this.subType; + oT.hasClass(r) && (r += "Series"), l(t, e.getTheme().get(this.subType)), l(t, this.getDefaultOption()), Do(t, "label", ["show"]), this.fillDataTextStyle(t.data), n && Pl(t, i, n) + }, n.prototype.mergeOption = function (t, e) { + t = l(this.option, t, !0), this.fillDataTextStyle(t.data); + var n = Ll(this); + n && Pl(this.option, t, n); + var i = yM(this).sourceManager; + i.dirty(), i.prepareSource(); + var r = this.getInitialData(t, e); + mh(r, this), this.dataTask.dirty(), this.dataTask.context.data = r, yM(this).dataBeforeProcessed = r, fh(this), this._initSelectedMapFromData(r) + }, n.prototype.fillDataTextStyle = function (t) { + if (t && !L(t)) for (var e = ["show"], n = 0; n < t.length; n++) t[n] && t[n].label && Do(t[n], "label", e) + }, n.prototype.getInitialData = function () { + }, n.prototype.appendData = function (t) { + var e = this.getRawData(); + e.appendData(t.data) + }, n.prototype.getData = function (t) { + var e = xh(this); + if (e) { + var n = e.context.data; + return null == t ? n : n.getLinkedData(t) + } + return yM(this).data + }, n.prototype.getAllData = function () { + var t = this.getData(); + return t && t.getLinkedDataAll ? t.getLinkedDataAll() : [{data: t}] + }, n.prototype.setData = function (t) { + var e = xh(this); + if (e) { + var n = e.context; + n.outputData = t, e !== this.dataTask && (n.data = t) + } + yM(this).data = t + }, n.prototype.getSource = function () { + return yM(this).sourceManager.getSource() + }, n.prototype.getRawData = function () { + return yM(this).dataBeforeProcessed + }, n.prototype.getBaseAxis = function () { + var t = this.coordinateSystem; + return t && t.getBaseAxis && t.getBaseAxis() + }, n.prototype.formatTooltip = function (t, e) { + return hh({series: this, dataIndex: t, multipleSeries: e}) + }, n.prototype.isAnimationEnabled = function () { + if (wv.node) return !1; + var t = this.getShallow("animation"); + return t && this.getData().count() > this.getShallow("animationThreshold") && (t = !1), !!t + }, n.prototype.restoreData = function () { + this.dataTask.dirty() + }, n.prototype.getColorFromPalette = function (t, e, n) { + var i = this.ecModel, r = TT.prototype.getColorFromPalette.call(this, t, e, n); + return r || (r = i.getColorFromPalette(t, e, n)), r + }, n.prototype.coordDimToDataDim = function (t) { + return this.getRawData().mapDimensionsAll(t) + }, n.prototype.getProgressive = function () { + return this.get("progressive") + }, n.prototype.getProgressiveThreshold = function () { + return this.get("progressiveThreshold") + }, n.prototype.select = function (t, e) { + this._innerSelect(this.getData(e), t) + }, n.prototype.unselect = function (t, e) { + var n = this.option.selectedMap; + if (n) for (var i = this.getData(e), r = 0; r < t.length; r++) { + var o = t[r], a = ph(i, o); + n[a] = !1, this._selectedDataIndicesMap[a] = -1 + } + }, n.prototype.toggleSelect = function (t, e) { + for (var n = [], i = 0; i < t.length; i++) n[0] = t[i], this.isSelected(t[i], e) ? this.unselect(n, e) : this.select(n, e) + }, n.prototype.getSelectedDataIndices = function () { + for (var t = this._selectedDataIndicesMap, e = w(t), n = [], i = 0; i < e.length; i++) { + var r = t[e[i]]; + r >= 0 && n.push(r) + } + return n + }, n.prototype.isSelected = function (t, e) { + var n = this.option.selectedMap; + if (!n) return !1; + var i = this.getData(e), r = ph(i, t); + return n[r] || !1 + }, n.prototype._innerSelect = function (t, e) { + var n, i, r = this.option.selectedMode, o = e.length; + if (r && o) if ("multiple" === r) for (var a = this.option.selectedMap || (this.option.selectedMap = {}), s = 0; o > s; s++) { + var l = e[s], u = ph(t, l); + a[u] = !0, this._selectedDataIndicesMap[u] = t.getRawIndex(l) + } else if ("single" === r || r === !0) { + var h = e[o - 1], u = ph(t, h); + this.option.selectedMap = (n = {}, n[u] = !0, n), this._selectedDataIndicesMap = (i = {}, i[u] = t.getRawIndex(h), i) + } + }, n.prototype._initSelectedMapFromData = function (t) { + if (!this.option.selectedMap) { + var e = []; + t.hasItemOption && t.each(function (n) { + var i = t.getRawDataItem(n); + "object" == typeof i && i.selected && e.push(n) + }), e.length > 0 && this._innerSelect(t, e) + } + }, n.registerClass = function (t) { + return oT.registerClass(t) + }, n.protoInitialize = function () { + var t = n.prototype; + t.type = "series.__base__", t.seriesIndex = 0, t.useColorPaletteOnData = !1, t.ignoreStyleOnData = !1, t.hasSymbolVisual = !1, t.defaultSymbol = "circle", t.visualStyleAccessPath = "itemStyle", t.visualDrawType = "fill" + }(), n + }(oT); + d(vM, QT), d(vM, TT), oa(vM, oT); + var mM = function () { + function t() { + this.group = new Ox, this.uid = Vs("viewComponent") + } + + return t.prototype.init = function () { + }, t.prototype.render = function () { + }, t.prototype.dispose = function () { + }, t.prototype.updateView = function () { + }, t.prototype.updateLayout = function () { + }, t.prototype.updateVisual = function () { + }, t.prototype.blurSeries = function () { + }, t + }(); + ia(mM), ua(mM, {registerWhenExtend: !0}); + var _M = qo(), xM = wh(), wM = function () { + function t() { + this.group = new Ox, this.uid = Vs("viewChart"), this.renderTask = Fu({ + plan: Th, + reset: Mh + }), this.renderTask.context = {view: this} + } + + return t.prototype.init = function () { + }, t.prototype.render = function () { + }, t.prototype.highlight = function (t, e, n, i) { + Sh(t.getData(), i, "emphasis") + }, t.prototype.downplay = function (t, e, n, i) { + Sh(t.getData(), i, "normal") + }, t.prototype.remove = function () { + this.group.removeAll() + }, t.prototype.dispose = function () { + }, t.prototype.updateView = function (t, e, n, i) { + this.render(t, e, n, i) + }, t.prototype.updateLayout = function (t, e, n, i) { + this.render(t, e, n, i) + }, t.prototype.updateVisual = function (t, e, n, i) { + this.render(t, e, n, i) + }, t.markUpdateMethod = function (t, e) { + _M(t).updateMethod = e + }, t.protoInitialize = function () { + var e = t.prototype; + e.type = "chart" + }(), t + }(); + ia(wM, ["dispose"]), ua(wM, {registerWhenExtend: !0}); + var bM, SM = { + 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) + } + } + }, TM = "\x00__throttleOriginMethod", MM = "\x00__throttleRate", CM = "\x00__throttleType", IM = qo(), + AM = {itemStyle: ha(MS, !0), lineStyle: ha(bS, !0)}, DM = {lineStyle: "stroke", itemStyle: "fill"}, kM = { + createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { + var n = t.getData(), i = t.visualStyleAccessPath || "itemStyle", r = t.getModel(i), o = Ah(t, i), a = o(r), + s = r.getShallow("decal"); + s && (n.setVisual("decal", s), s.dirty = !0); + var l = Dh(t, i), u = a[l], c = M(u) ? u : null; + return (!a[l] || c) && (a[l] = t.getColorFromPalette(t.name, null, e.getSeriesCount()), n.setVisual("colorFromPalette", !0)), n.setVisual("style", a), n.setVisual("drawType", l), !e.isSeriesFiltered(t) && c ? (n.setVisual("colorFromPalette", !1), { + dataEach: function (e, n) { + var i = t.getDataParams(n), r = h({}, a); + r[l] = c(i), e.setItemVisual(n, "style", r) + } + }) : void 0 + } + }, LM = new AS, PM = { + createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { + if (!t.ignoreStyleOnData && !e.isSeriesFiltered(t)) { + var n = t.getData(), i = t.visualStyleAccessPath || "itemStyle", r = Ah(t, i), + o = n.getVisual("drawType"); + return { + dataEach: n.hasItemOption ? function (t, e) { + var n = t.getRawDataItem(e); + if (n && n[i]) { + LM.option = n[i]; + var a = r(LM), s = t.ensureUniqueItemVisual(e, "style"); + h(s, a), LM.option.decal && (t.setItemVisual(e, "decal", LM.option.decal), LM.option.decal.dirty = !0), o in a && t.setItemVisual(e, "colorFromPalette", !1) + } + } : null + } + } + } + }, OM = { + performRawSeries: !0, overallReset: function (t) { + var e = U(); + t.eachSeries(function (t) { + if (t.useColorPaletteOnData) { + var n = e.get(t.type); + n || (n = {}, e.set(t.type, n)), IM(t).scope = n + } + }), t.eachSeries(function (e) { + if (e.useColorPaletteOnData && !t.isSeriesFiltered(e)) { + var n = e.getRawData(), i = {}, r = e.getData(), o = IM(e).scope, + a = e.visualStyleAccessPath || "itemStyle", s = Dh(e, a); + r.each(function (t) { + var e = r.getRawIndex(t); + i[e] = t + }), n.each(function (t) { + var a = i[t], l = r.getItemVisual(a, "colorFromPalette"); + if (l) { + var u = r.ensureUniqueItemVisual(a, "style"), h = n.getName(t) || t + "", c = n.count(); + u[s] = e.getColorFromPalette(h, o, c) + } + }) + } + }) + } + }, RM = Math.PI, EM = function () { + function t(t, e, n, i) { + this._stageTaskMap = U(), this.ecInstance = t, this.api = e, n = this._dataProcessorHandlers = n.slice(), i = this._visualHandlers = i.slice(), this._allHandlers = n.concat(i) + } + + return t.prototype.restoreData = function (t, e) { + t.restoreData(e), this._stageTaskMap.each(function (t) { + var e = t.overallTask; + e && e.dirty() + }) + }, t.prototype.getPerformArgs = function (t, e) { + if (t.__pipeline) { + var n = this._pipelineMap.get(t.__pipeline.id), i = n.context, + r = !e && n.progressiveEnabled && (!i || i.progressiveRender) && t.__idxInPipeline > n.blockIndex, + o = r ? n.step : null, a = i && i.modDataCount, s = null != a ? Math.ceil(a / o) : null; + return {step: o, modBy: s, modDataCount: a} + } + }, t.prototype.getPipeline = function (t) { + return this._pipelineMap.get(t) + }, t.prototype.updateStreamModes = function (t, e) { + var n = this._pipelineMap.get(t.uid), i = t.getData(), r = i.count(), + o = n.progressiveEnabled && e.incrementalPrepareRender && r >= n.threshold, + a = t.get("large") && r >= t.get("largeThreshold"), + s = "mod" === t.get("progressiveChunkMode") ? r : null; + t.pipelineContext = n.context = {progressiveRender: o, modDataCount: s, large: a} + }, t.prototype.restorePipelines = function (t) { + var e = this, n = e._pipelineMap = U(); + t.eachSeries(function (t) { + var i = t.getProgressive(), r = t.uid; + n.set(r, { + id: r, + head: null, + tail: null, + threshold: t.getProgressiveThreshold(), + progressiveEnabled: i && !(t.preventIncremental && t.preventIncremental()), + blockIndex: -1, + step: Math.round(i || 700), + count: 0 + }), e._pipe(t, t.dataTask) + }) + }, t.prototype.prepareStageTasks = function () { + var t = this._stageTaskMap, e = this.api.getModel(), n = this.api; + y(this._allHandlers, function (i) { + var r = t.get(i.uid) || t.set(i.uid, {}), o = ""; + G(!(i.reset && i.overallReset), o), i.reset && this._createSeriesStageTask(i, r, e, n), i.overallReset && this._createOverallStageTask(i, r, e, n) + }, this) + }, t.prototype.prepareView = function (t, e, n, i) { + var r = t.renderTask, o = r.context; + o.model = e, o.ecModel = n, o.api = i, r.__block = !t.incrementalPrepareRender, this._pipe(e, r) + }, t.prototype.performDataProcessorTasks = function (t, e) { + this._performStageTasks(this._dataProcessorHandlers, t, e, {block: !0}) + }, t.prototype.performVisualTasks = function (t, e, n) { + this._performStageTasks(this._visualHandlers, t, e, n) + }, t.prototype._performStageTasks = function (t, e, n, i) { + function r(t, e) { + return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id)) + } + + i = i || {}; + var o = !1, a = this; + y(t, function (t) { + if (!i.visualType || i.visualType === t.visualType) { + var s = a._stageTaskMap.get(t.uid), l = s.seriesTaskMap, u = s.overallTask; + if (u) { + var h, c = u.agentStubMap; + c.each(function (t) { + r(i, t) && (t.dirty(), h = !0) + }), h && u.dirty(), a.updatePayload(u, n); + var p = a.getPerformArgs(u, i.block); + c.each(function (t) { + t.perform(p) + }), u.perform(p) && (o = !0) + } else l && l.each(function (s) { + r(i, s) && s.dirty(); + var l = a.getPerformArgs(s, i.block); + l.skip = !t.performRawSeries && e.isSeriesFiltered(s.context.model), a.updatePayload(s, n), s.perform(l) && (o = !0) + }) + } + }), this.unfinished = o || this.unfinished + }, t.prototype.performSeriesTasks = function (t) { + var e; + t.eachSeries(function (t) { + e = t.dataTask.perform() || e + }), this.unfinished = e || this.unfinished + }, t.prototype.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) + }) + }, t.prototype.updatePayload = function (t, e) { + "remain" !== e && (t.context.payload = e) + }, t.prototype._createSeriesStageTask = function (t, e, n, i) { + function r(e) { + var r = e.uid, l = s.set(r, a && a.get(r) || Fu({plan: Eh, reset: zh, count: Nh})); + l.context = { + model: e, + ecModel: n, + api: i, + useClearVisual: t.isVisual && !t.isLayout, + plan: t.plan, + reset: t.reset, + scheduler: o + }, o._pipe(e, l) + } + + var o = this, a = e.seriesTaskMap, s = e.seriesTaskMap = U(), l = t.seriesType, u = t.getTargetSeries; + t.createOnAllSeries ? n.eachRawSeries(r) : l ? n.eachRawSeriesByType(l, r) : u && u(n, i).each(r) + }, t.prototype._createOverallStageTask = function (t, e, n, i) { + function r(t) { + var e = t.uid, n = l.set(e, s && s.get(e) || (p = !0, Fu({reset: Ph, onDirty: Rh}))); + n.context = {model: t, overallProgress: c}, n.agent = a, n.__block = c, o._pipe(t, n) + } + + var o = this, a = e.overallTask = e.overallTask || Fu({reset: Lh}); + a.context = {ecModel: n, api: i, overallReset: t.overallReset, scheduler: o}; + var s = a.agentStubMap, l = a.agentStubMap = U(), u = t.seriesType, h = t.getTargetSeries, c = !0, p = !1, + f = ""; + G(!t.createOnAllSeries, f), u ? n.eachRawSeriesByType(u, r) : h ? h(n, i).each(r) : (c = !1, y(n.getSeries(), r)), p && a.dirty() + }, t.prototype._pipe = function (t, e) { + var n = t.uid, i = this._pipelineMap.get(n); + !i.head && (i.head = e), i.tail && i.tail.pipe(e), i.tail = e, e.__idxInPipeline = i.count++, e.__pipeline = i + }, t.wrapStageHandler = function (t, e) { + return M(t) && (t = { + overallReset: t, + seriesType: Fh(t) + }), t.uid = Vs("stageHandler"), e && (t.visualType = e), t + }, t + }(), zM = Bh(0), BM = {}, NM = {}; + Hh(BM, CT), Hh(NM, OT), BM.eachSeriesByType = BM.eachRawSeriesByType = function (t) { + bM = t + }, BM.eachComponent = function (t) { + "series" === t.mainType && t.subType && (bM = t.subType) + }; + var FM = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1", "#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"], + HM = { + color: FM, + colorLayer: [["#37A2DA", "#ffd85c", "#fd7b5f"], ["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"], ["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA", "#96BFFF"], FM] + }, VM = "#B9B8CE", GM = "#100C2A", WM = function () { + return { + axisLine: {lineStyle: {color: VM}}, + splitLine: {lineStyle: {color: "#484753"}}, + splitArea: {areaStyle: {color: ["rgba(255,255,255,0.02)", "rgba(255,255,255,0.05)"]}}, + minorSplitLine: {lineStyle: {color: "#20203B"}} + } + }, XM = ["#4992ff", "#7cffb2", "#fddd60", "#ff6e76", "#58d9f9", "#05c091", "#ff8a45", "#8d48e3", "#dd79ff"], YM = { + darkMode: !0, + color: XM, + backgroundColor: GM, + axisPointer: {lineStyle: {color: "#817f91"}, crossStyle: {color: "#817f91"}, label: {color: "#fff"}}, + legend: {textStyle: {color: VM}}, + textStyle: {color: VM}, + title: {textStyle: {color: "#EEF1FA"}, subtextStyle: {color: "#B9B8CE"}}, + toolbox: {iconStyle: {borderColor: VM}}, + dataZoom: { + borderColor: "#71708A", + textStyle: {color: VM}, + brushStyle: {color: "rgba(135,163,206,0.3)"}, + handleStyle: {color: "#353450", borderColor: "#C5CBE3"}, + moveHandleStyle: {color: "#B0B6C3", opacity: .3}, + fillerColor: "rgba(135,163,206,0.2)", + emphasis: { + handleStyle: {borderColor: "#91B7F2", color: "#4D587D"}, + moveHandleStyle: {color: "#636D9A", opacity: .7} + }, + dataBackground: {lineStyle: {color: "#71708A", width: 1}, areaStyle: {color: "#71708A"}}, + selectedDataBackground: {lineStyle: {color: "#87A3CE"}, areaStyle: {color: "#87A3CE"}} + }, + visualMap: {textStyle: {color: VM}}, + timeline: {lineStyle: {color: VM}, label: {color: VM}, controlStyle: {color: VM, borderColor: VM}}, + calendar: {itemStyle: {color: GM}, dayLabel: {color: VM}, monthLabel: {color: VM}, yearLabel: {color: VM}}, + timeAxis: WM(), + logAxis: WM(), + valueAxis: WM(), + categoryAxis: WM(), + line: {symbol: "circle"}, + graph: {color: XM}, + gauge: { + title: {color: VM}, + axisLine: {lineStyle: {color: [[1, "rgba(207,212,219,0.2)"]]}}, + axisLabel: {color: VM}, + detail: {color: "#EEF1FA"} + }, + candlestick: {itemStyle: {color: "#FD1050", color0: "#0CF49B", borderColor: "#FD1050", borderColor0: "#0CF49B"}} + }; + YM.categoryAxis.splitLine.show = !1; + var UM = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = "dataset", e + } + + return e(n, t), n.prototype.init = function (e, n, i) { + t.prototype.init.call(this, e, n, i), this._sourceManager = new aM(this), Zu(this) + }, n.prototype.mergeOption = function (e, n) { + t.prototype.mergeOption.call(this, e, n), Zu(this) + }, n.prototype.optionUpdated = function () { + this._sourceManager.dirty() + }, n.prototype.getSourceManager = function () { + return this._sourceManager + }, n.type = "dataset", n.defaultOption = {seriesLayoutBy: mT}, n + }(oT); + oT.registerClass(UM); + var qM = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = "dataset", e + } + + return e(n, t), n.type = "dataset", n + }(mM); + mM.registerClass(qM); + var jM = U(), ZM = { + registerMap: function (t, e, n) { + var i; + if (T(e)) i = e; else if (e.svg) i = [{type: "svg", source: e.svg, specialAreas: e.specialAreas}]; else { + var r = e.geoJson || e.geoJSON; + r && !e.features && (n = e.specialAreas, e = r), i = [{type: "geoJSON", source: e, specialAreas: n}] + } + return y(i, function (t) { + var e = t.type; + "geoJson" === e && (e = t.type = "geoJSON"); + var n = KM[e]; + n(t) + }), jM.set(t, i) + }, retrieveMap: function (t) { + return jM.get(t) + } + }, KM = { + geoJSON: function (t) { + var e = t.source; + t.geoJSON = C(e) ? "undefined" != typeof JSON && JSON.parse ? JSON.parse(e) : new Function("return (" + e + ");")() : e + }, svg: function (t) { + t.svgXML = gr(t.source) + } + }, $M = function () { + function t() { + } + + return t.prototype.normalizeQuery = function (t) { + var e = {}, n = {}, i = {}; + if (C(t)) { + var r = ta(t); + e.mainType = r.main || null, e.subType = r.sub || null + } else { + var o = ["Index", "Name", "Id"], a = {name: 1, dataIndex: 1, dataType: 1}; + y(t, function (t, r) { + for (var s = !1, l = 0; l < o.length; l++) { + var u = o[l], h = r.lastIndexOf(u); + if (h > 0 && h === r.length - u.length) { + var c = r.slice(0, h); + "data" !== c && (e.mainType = c, e[u.toLowerCase()] = t, s = !0) + } + } + a.hasOwnProperty(r) && (n[r] = t, s = !0), s || (i[r] = t) + }) + } + return {cptQuery: e, dataQuery: n, otherQuery: i} + }, t.prototype.filter = function (t, e) { + function n(t, e, n, i) { + return null == t[n] || e[i || n] === t[n] + } + + var i = this.eventInfo; + if (!i) return !0; + var r = i.targetEl, o = i.packedEvent, a = i.model, s = i.view; + if (!a || !s) return !0; + var l = e.cptQuery, u = e.dataQuery; + return n(l, a, "mainType") && n(l, a, "subType") && n(l, a, "index", "componentIndex") && n(l, a, "name") && n(l, a, "id") && n(u, o, "name") && n(u, o, "dataIndex") && n(u, o, "dataType") && (!s.filterForExposedEvent || s.filterForExposedEvent(t, e.otherQuery, r, o)) + }, t.prototype.afterTrigger = function () { + this.eventInfo = null + }, t + }(), JM = { + createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { + function n(e, n) { + var i = t.getRawValue(n), a = t.getDataParams(n); + l && e.setItemVisual(n, "symbol", r(i, a)), u && e.setItemVisual(n, "symbolSize", o(i, a)), h && e.setItemVisual(n, "symbolRotate", s(i, a)) + } + + var i = t.getData(); + if (t.legendSymbol && i.setVisual("legendSymbol", t.legendSymbol), t.hasSymbolVisual) { + var r = t.get("symbol"), o = t.get("symbolSize"), a = t.get("symbolKeepAspect"), + s = t.get("symbolRotate"), l = M(r), u = M(o), h = M(s), c = l || u || h, + p = !l && r ? r : t.defaultSymbol, f = u ? null : o, d = h ? null : s; + if (i.setVisual({ + legendSymbol: t.legendSymbol || p, + symbol: p, + symbolSize: f, + symbolKeepAspect: a, + symbolRotate: d + }), !e.isSeriesFiltered(t)) return {dataEach: c ? n : null} + } + } + }, QM = { + createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { + function n(t, e) { + var n = t.getItemModel(e), i = n.getShallow("symbol", !0), r = n.getShallow("symbolSize", !0), + o = n.getShallow("symbolRotate", !0), a = n.getShallow("symbolKeepAspect", !0); + null != i && t.setItemVisual(e, "symbol", i), null != r && t.setItemVisual(e, "symbolSize", r), null != o && t.setItemVisual(e, "symbolRotate", o), null != a && t.setItemVisual(e, "symbolKeepAspect", a) + } + + if (t.hasSymbolVisual && !e.isSeriesFiltered(t)) { + var i = t.getData(); + return {dataEach: i.hasItemOption ? n : null} + } + } + }, tC = 2 * Math.PI, eC = ux.CMD, nC = ["top", "right", "bottom", "left"], iC = [], rC = new Pm, oC = new Pm, + aC = new Pm, sC = new Pm, lC = new Pm, uC = [], hC = new Pm, + cC = ["align", "verticalAlign", "width", "height", "fontSize"], pC = new ym, fC = qo(), dC = qo(), + gC = ["x", "y", "rotation"], yC = function () { + function t() { + this._labelList = [], this._chartViewList = [] + } + + return t.prototype.clearLabels = function () { + this._labelList = [], this._chartViewList = [] + }, t.prototype._addLabel = function (t, e, n, i, r) { + var o = i.style, a = i.__hostTarget, s = a.textConfig || {}, l = i.getComputedTransform(), + u = i.getBoundingRect().plain(); + Vm.applyTransform(u, u, l), l ? pC.setLocalTransform(l) : (pC.x = pC.y = pC.rotation = pC.originX = pC.originY = 0, pC.scaleX = pC.scaleY = 1); + var h, c = i.__hostTarget; + if (c) { + h = c.getBoundingRect().plain(); + var p = c.getComputedTransform(); + Vm.applyTransform(h, h, p) + } + var f = h && c.getTextGuideLine(); + this._labelList.push({ + label: i, + labelLine: f, + seriesModel: n, + dataIndex: t, + dataType: e, + layoutOption: r, + computedLayoutOption: null, + rect: u, + hostRect: h, + priority: h ? h.width * h.height : 0, + defaultAttr: { + ignore: i.ignore, + labelGuideIgnore: f && f.ignore, + x: pC.x, + y: pC.y, + rotation: pC.rotation, + style: { + x: o.x, + y: o.y, + align: o.align, + verticalAlign: o.verticalAlign, + width: o.width, + height: o.height, + fontSize: o.fontSize + }, + cursor: i.cursor, + attachedPos: s.position, + attachedRot: s.rotation + } + }) + }, t.prototype.addLabelsOfSeries = function (t) { + var e = this; + this._chartViewList.push(t); + var n = t.__model, i = n.get("labelLayout"); + (M(i) || w(i).length) && t.group.traverse(function (t) { + if (t.ignore) return !0; + var r = t.getTextContent(), o = Gb(t); + r && !r.disableLabelLayout && e._addLabel(o.dataIndex, o.dataType, n, r, i) + }) + }, t.prototype.updateLayoutConfig = function (t) { + function e(t, e) { + return function () { + Zh(t, e) + } + } + + for (var n = t.getWidth(), i = t.getHeight(), r = 0; r < this._labelList.length; r++) { + var o = this._labelList[r], a = o.label, s = a.__hostTarget, l = o.defaultAttr, u = void 0; + u = "function" == typeof o.layoutOption ? o.layoutOption(lc(o, s)) : o.layoutOption, u = u || {}, o.computedLayoutOption = u; + var h = Math.PI / 180; + s && s.setTextConfig({ + local: !1, + position: null != u.x || null != u.y ? null : l.attachedPos, + rotation: null != u.rotate ? u.rotate * h : l.attachedRot, + offset: [u.dx || 0, u.dy || 0] + }); + var c = !1; + if (null != u.x ? (a.x = ao(u.x, n), a.setStyle("x", 0), c = !0) : (a.x = l.x, a.setStyle("x", l.style.x)), null != u.y ? (a.y = ao(u.y, i), a.setStyle("y", 0), c = !0) : (a.y = l.y, a.setStyle("y", l.style.y)), u.labelLinePoints) { + var p = s.getTextGuideLine(); + p && (p.setShape({points: u.labelLinePoints}), c = !1) + } + var f = fC(a); + f.needsUpdateLabelLine = c, a.rotation = null != u.rotate ? u.rotate * h : l.rotation; + for (var d = 0; d < cC.length; d++) { + var g = cC[d]; + a.setStyle(g, null != u[g] ? u[g] : l.style[g]) + } + if (u.draggable) { + if (a.draggable = !0, a.cursor = "move", s) { + var y = o.seriesModel; + if (null != o.dataIndex) { + var v = o.seriesModel.getData(o.dataType); + y = v.getItemModel(o.dataIndex) + } + a.on("drag", e(s, y.getModel("labelLine"))) + } + } else a.off("drag"), a.cursor = l.cursor + } + }, t.prototype.layout = function (t) { + var e = t.getWidth(), n = t.getHeight(), i = nc(this._labelList), r = _(i, function (t) { + return "shiftX" === t.layoutOption.moveOverlap + }), o = _(i, function (t) { + return "shiftY" === t.layoutOption.moveOverlap + }); + rc(r, 0, e), oc(o, 0, n); + var a = _(i, function (t) { + return t.layoutOption.hideOverlap + }); + ac(a) + }, t.prototype.processLabelsOverall = function () { + var t = this; + y(this._chartViewList, function (e) { + var n = e.__model, i = e.ignoreLabelLineUpdate, r = n.isAnimationEnabled(); + e.group.traverse(function (e) { + if (e.ignore) return !0; + var o = !i, a = e.getTextContent(); + !o && a && (o = fC(a).needsUpdateLabelLine), o && t._updateLabelLine(e, n), r && t._animateLabels(e, n) + }) + }) + }, t.prototype._updateLabelLine = function (t, e) { + var n = t.getTextContent(), i = Gb(t), r = i.dataIndex; + if (n && null != r) { + var o = e.getData(i.dataType), a = o.getItemModel(r), s = {}, l = o.getItemVisual(r, "style"), + u = o.getVisual("drawType"); + s.stroke = l[u]; + var h = a.getModel("labelLine"); + tc(t, ec(a), s), Zh(t, h) + } + }, t.prototype._animateLabels = function (t, e) { + var n = t.getTextContent(), i = t.getTextGuideLine(); + if (n && !n.ignore && !n.invisible && !t.disableLabelAnimation && !gs(t)) { + var r = fC(n), o = r.oldLayout, a = Gb(t), s = a.dataIndex, l = {x: n.x, y: n.y, rotation: n.rotation}, + u = e.getData(a.dataType); + if (o) { + n.attr(o); + var h = t.prevStates; + h && (p(h, "select") >= 0 && n.attr(r.oldLayoutSelect), p(h, "emphasis") >= 0 && n.attr(r.oldLayoutEmphasis)), hs(n, l, e, s) + } else if (n.attr(l), !mS(n).valueAnimation) { + var c = N(n.style.opacity, 1); + n.style.opacity = 0, cs(n, {style: {opacity: c}}, e, s) + } + if (r.oldLayout = l, n.states.select) { + var f = r.oldLayoutSelect = {}; + uc(f, l, gC), uc(f, n.states.select, gC) + } + if (n.states.emphasis) { + var d = r.oldLayoutEmphasis = {}; + uc(d, l, gC), uc(d, n.states.emphasis, gC) + } + Hs(n, s, u, e) + } + if (i && !i.ignore && !i.invisible) { + var r = dC(i), o = r.oldLayout, g = {points: i.shape.points}; + o ? (i.attr({shape: o}), hs(i, {shape: g}, e)) : (i.setShape(g), i.style.strokePercent = 0, cs(i, {style: {strokePercent: 1}}, e)), r.oldLayout = g + } + }, t + }(), vC = new ux(!0), mC = ["shadowBlur", "shadowOffsetX", "shadowOffsetY"], + _C = [["lineCap", "butt"], ["lineJoin", "miter"], ["miterLimit", 10]], xC = 1, wC = 2, bC = 3, SC = 4, + TC = function (t) { + function n(e, n, i) { + var r = t.call(this) || this; + r.motionBlur = !1, r.lastFrameAlpha = .7, r.dpr = 1, r.virtual = !1, r.config = {}, r.incremental = !1, r.zlevel = 0, r.maxRepaintRectCount = 5, r.__dirty = !0, r.__firstTimePaint = !0, r.__used = !1, r.__drawIndex = 0, r.__startIndex = 0, r.__endIndex = 0, r.__prevStartIndex = null, r.__prevEndIndex = null; + var o; + i = i || Um, "string" == typeof e ? o = Fc(e, n, i) : D(e) && (o = e, e = o.id), r.id = e, r.dom = o; + var a = o.style; + return a && (o.onselectstart = Nc, a.webkitUserSelect = "none", a.userSelect = "none", a.webkitTapHighlightColor = "rgba(0,0,0,0)", a["-webkit-touch-callout"] = "none", a.padding = "0", a.margin = "0", a.borderWidth = "0"), r.domBack = null, r.ctxBack = null, r.painter = n, r.config = null, r.dpr = i, r + } + + return e(n, t), n.prototype.getElementCount = function () { + return this.__endIndex - this.__startIndex + }, n.prototype.afterBrush = function () { + this.__prevStartIndex = this.__startIndex, this.__prevEndIndex = this.__endIndex + }, n.prototype.initContext = function () { + this.ctx = this.dom.getContext("2d"), this.ctx.dpr = this.dpr + }, n.prototype.setUnpainted = function () { + this.__firstTimePaint = !0 + }, n.prototype.createBackBuffer = function () { + var t = this.dpr; + this.domBack = Fc("back-" + this.id, this.painter, t), this.ctxBack = this.domBack.getContext("2d"), 1 !== t && this.ctxBack.scale(t, t) + }, n.prototype.createRepaintRects = function (t, e, n, i) { + function r(t) { + if (t.isFinite() && !t.isZero()) if (0 === o.length) { + var e = new Vm(0, 0, 0, 0); + e.copy(t), o.push(e) + } else { + for (var n = !1, i = 1 / 0, r = 0, u = 0; u < o.length; ++u) { + var h = o[u]; + if (h.intersect(t)) { + var c = new Vm(0, 0, 0, 0); + c.copy(h), c.union(t), o[u] = c, n = !0; + break + } + if (s) { + l.copy(t), l.union(h); + var p = t.width * t.height, f = h.width * h.height, d = l.width * l.height, + g = d - p - f; + i > g && (i = i, r = u) + } + } + if (s && (o[r].union(t), n = !0), !n) { + var e = new Vm(0, 0, 0, 0); + e.copy(t), o.push(e) + } + s || (s = o.length >= a) + } + } + + if (this.__firstTimePaint) return this.__firstTimePaint = !1, null; + for (var o = [], a = this.maxRepaintRectCount, s = !1, l = new Vm(0, 0, 0, 0), u = this.__startIndex; u < this.__endIndex; ++u) { + var h = t[u]; + if (h) { + var c = h.shouldBePainted(n, i, !0, !0), + p = h.__isRendered && (h.__dirty & n_.REDARAW_BIT || !c) ? h.getPrevPaintRect() : null; + p && r(p); + var f = c && (h.__dirty & n_.REDARAW_BIT || !h.__isRendered) ? h.getPaintRect() : null; + f && r(f) + } + } + for (var u = this.__prevStartIndex; u < this.__prevEndIndex; ++u) { + var h = e[u], c = h.shouldBePainted(n, i, !0, !0); + if (h && (!c || !h.__zr) && h.__isRendered) { + var p = h.getPrevPaintRect(); + p && r(p) + } + } + var d; + do { + d = !1; + for (var u = 0; u < o.length;) if (o[u].isZero()) o.splice(u, 1); else { + for (var g = u + 1; g < o.length;) o[u].intersect(o[g]) ? (d = !0, o[u].union(o[g]), o.splice(g, 1)) : g++; + u++ + } + } while (d); + return this._paintRects = o, o + }, n.prototype.debugGetPaintRects = function () { + return (this._paintRects || []).slice() + }, n.prototype.resize = function (t, e) { + var n = this.dpr, i = this.dom, r = i.style, o = this.domBack; + r && (r.width = t + "px", r.height = e + "px"), i.width = t * n, i.height = e * n, o && (o.width = t * n, o.height = e * n, 1 !== n && this.ctxBack.scale(n, n)) + }, n.prototype.clear = function (t, e, n) { + function i(t, n, i, r) { + if (o.clearRect(t, n, i, r), e && "transparent" !== e) { + var a = void 0; + O(e) ? (a = e.__canvasGradient || gc(o, e, { + x: 0, + y: 0, + width: i, + height: r + }), e.__canvasGradient = a) : R(e) && (a = bc(o, e, { + dirty: function () { + c.setUnpainted(), c.__painter.refresh() + } + })), o.save(), o.fillStyle = a || e, o.fillRect(t, n, i, r), o.restore() + } + l && (o.save(), o.globalAlpha = u, o.drawImage(p, t, n, i, r), o.restore()) + } + + var r = this.dom, o = this.ctx, a = r.width, s = r.height; + e = e || this.clearColor; + var l = this.motionBlur && !t, u = this.lastFrameAlpha, h = this.dpr, c = this; + l && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(r, 0, 0, a / h, s / h)); + var p = this.domBack; + !n || l ? i(0, 0, a, s) : n.length && y(n, function (t) { + i(t.x * h, t.y * h, t.width * h, t.height * h) + }) + }, n + }(Uv), MC = 1e5, CC = 314159, IC = .01, AC = .001, DC = function () { + function t(t, e, n) { + this.type = "canvas", this._zlevelList = [], this._prevDisplayList = [], this._layers = {}, this._layerConfig = {}, this._needsManuallyCompositing = !1, this.type = "canvas"; + var i = !t.nodeName || "CANVAS" === t.nodeName.toUpperCase(); + this._opts = n = h({}, n || {}), this.dpr = n.devicePixelRatio || Um, this._singleCanvas = i, this.root = t; + var r = t.style; + r && (r.webkitTapHighlightColor = "transparent", r.webkitUserSelect = "none", r.userSelect = "none", r["-webkit-touch-callout"] = "none", t.innerHTML = ""), this.storage = e; + var o = this._zlevelList; + this._prevDisplayList = []; + var a = this._layers; + if (i) { + var s = t, l = s.width, u = s.height; + null != n.width && (l = n.width), null != n.height && (u = n.height), this.dpr = n.devicePixelRatio || 1, s.width = l * this.dpr, s.height = u * this.dpr, this._width = l, this._height = u; + var c = new TC(s, this, this.dpr); + c.__builtin__ = !0, c.initContext(), a[CC] = c, c.zlevel = CC, o.push(CC), this._domRoot = t + } else { + this._width = this._getSize(0), this._height = this._getSize(1); + var p = this._domRoot = Gc(this._width, this._height); + t.appendChild(p) + } + } + + return t.prototype.getType = function () { + return "canvas" + }, t.prototype.isSingleCanvas = function () { + return this._singleCanvas + }, t.prototype.getViewportRoot = function () { + return this._domRoot + }, t.prototype.getViewportRootOffset = function () { + var t = this.getViewportRoot(); + return t ? {offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0} : void 0 + }, t.prototype.refresh = function (t) { + var e = this.storage.getDisplayList(!0), n = this._prevDisplayList, i = this._zlevelList; + this._redrawId = Math.random(), this._paintList(e, n, t, this._redrawId); + for (var r = 0; r < i.length; r++) { + var o = i[r], a = this._layers[o]; + if (!a.__builtin__ && a.refresh) { + var s = 0 === r ? this._backgroundColor : null; + a.refresh(s) + } + } + return this._opts.useDirtyRect && (this._prevDisplayList = e.slice()), this + }, t.prototype.refreshHover = function () { + this._paintHoverList(this.storage.getDisplayList(!1)) + }, t.prototype._paintHoverList = function (t) { + var e = t.length, n = this._hoverlayer; + if (n && n.clear(), e) { + for (var i, r = {inHover: !0, viewWidth: this._width, viewHeight: this._height}, o = 0; e > o; o++) { + var a = t[o]; + a.__inHover && (n || (n = this._hoverlayer = this.getLayer(MC)), i || (i = n.ctx, i.save()), zc(i, a, r, o === e - 1)) + } + i && i.restore() + } + }, t.prototype.getHoverLayer = function () { + return this.getLayer(MC) + }, t.prototype.paintOne = function (t, e) { + Ec(t, e) + }, t.prototype._paintList = function (t, e, n, i) { + if (this._redrawId === i) { + n = n || !1, this._updateLayerStatus(t); + var r = this._doPaintList(t, e, n), o = r.finished, a = r.needsRefreshHover; + if (this._needsManuallyCompositing && this._compositeManually(), a && this._paintHoverList(t), o) this.eachLayer(function (t) { + t.afterBrush && t.afterBrush() + }); else { + var s = this; + l_(function () { + s._paintList(t, e, n, i) + }) + } + } + }, t.prototype._compositeManually = function () { + var t = this.getLayer(CC).ctx, e = this._domRoot.width, n = this._domRoot.height; + t.clearRect(0, 0, e, n), this.eachBuiltinLayer(function (i) { + i.virtual && t.drawImage(i.dom, 0, 0, e, n) + }) + }, t.prototype._doPaintList = function (t, e, n) { + for (var i = this, r = [], o = this._opts.useDirtyRect, a = 0; a < this._zlevelList.length; a++) { + var s = this._zlevelList[a], l = this._layers[s]; + l.__builtin__ && l !== this._hoverlayer && (l.__dirty || n) && r.push(l) + } + for (var u = !0, h = !1, c = function (a) { + var s = r[a], l = s.ctx, c = o && s.createRepaintRects(t, e, p._width, p._height); + l.save(); + var f = n ? s.__startIndex : s.__drawIndex, d = !n && s.incremental && Date.now, g = d && Date.now(), + y = s.zlevel === p._zlevelList[0] ? p._backgroundColor : null; + if (s.__startIndex === s.__endIndex) s.clear(!1, y, c); else if (f === s.__startIndex) { + var v = t[f]; + v.incremental && v.notClear && !n || s.clear(!1, y, c) + } + -1 === f && (console.error("For some unknown reason. drawIndex is -1"), f = s.__startIndex); + var m, _ = function (e) { + var n = {inHover: !1, allClipped: !1, prevEl: null, viewWidth: i._width, viewHeight: i._height}; + for (m = f; m < s.__endIndex; m++) { + var r = t[m]; + if (r.__inHover && (h = !0), i._doPaintEl(r, s, o, e, n, m === s.__endIndex - 1), d) { + var a = Date.now() - g; + if (a > 15) break + } + } + n.prevElClipPaths && l.restore() + }; + if (c) if (0 === c.length) m = s.__endIndex; else for (var x = p.dpr, w = 0; w < c.length; ++w) { + var b = c[w]; + l.save(), l.beginPath(), l.rect(b.x * x, b.y * x, b.width * x, b.height * x), l.clip(), _(b), l.restore() + } else l.save(), _(), l.restore(); + s.__drawIndex = m, s.__drawIndex < s.__endIndex && (u = !1) + }, p = this, f = 0; f < r.length; f++) c(f); + return wv.wxa && y(this._layers, function (t) { + t && t.ctx && t.ctx.draw && t.ctx.draw() + }), {finished: u, needsRefreshHover: h} + }, t.prototype._doPaintEl = function (t, e, n, i, r, o) { + var a = e.ctx; + if (n) { + var s = t.getPaintRect(); + (!i || s && s.intersect(i)) && (zc(a, t, r, o), t.setPrevPaintRect(s)) + } else zc(a, t, r, o) + }, t.prototype.getLayer = function (t, e) { + this._singleCanvas && !this._needsManuallyCompositing && (t = CC); + var n = this._layers[t]; + return n || (n = new TC("zr_" + t, this, this.dpr), n.zlevel = t, n.__builtin__ = !0, this._layerConfig[t] ? l(n, this._layerConfig[t], !0) : this._layerConfig[t - IC] && l(n, this._layerConfig[t - IC], !0), e && (n.virtual = e), this.insertLayer(t, n), n.initContext()), n + }, t.prototype.insertLayer = function (t, e) { + var n = this._layers, i = this._zlevelList, r = i.length, o = this._domRoot, s = null, l = -1; + if (n[t]) return void a("ZLevel " + t + " has been used already"); + if (!Vc(e)) return void a("Layer of zlevel " + t + " is not valid"); + if (r > 0 && t > i[0]) { + for (l = 0; r - 1 > l && !(i[l] < t && i[l + 1] > t); l++) ; + s = n[i[l]] + } + if (i.splice(l + 1, 0, t), n[t] = e, !e.virtual) if (s) { + var u = s.dom; + u.nextSibling ? o.insertBefore(e.dom, u.nextSibling) : o.appendChild(e.dom) + } else o.firstChild ? o.insertBefore(e.dom, o.firstChild) : o.appendChild(e.dom); + e.__painter = this + }, t.prototype.eachLayer = function (t, e) { + for (var n = this._zlevelList, i = 0; i < n.length; i++) { + var r = n[i]; + t.call(e, this._layers[r], r) + } + }, t.prototype.eachBuiltinLayer = function (t, e) { + for (var n = this._zlevelList, i = 0; i < n.length; i++) { + var r = n[i], o = this._layers[r]; + o.__builtin__ && t.call(e, o, r) + } + }, t.prototype.eachOtherLayer = function (t, e) { + for (var n = this._zlevelList, i = 0; i < n.length; i++) { + var r = n[i], o = this._layers[r]; + o.__builtin__ || t.call(e, o, r) + } + }, t.prototype.getLayers = function () { + return this._layers + }, t.prototype._updateLayerStatus = function (t) { + function e(t) { + s && (s.__endIndex !== t && (s.__dirty = !0), s.__endIndex = t) + } + + if (this.eachBuiltinLayer(function (t) { + t.__dirty = t.__used = !1 + }), this._singleCanvas) for (var n = 1; n < t.length; n++) { + var i = t[n]; + if (i.zlevel !== t[n - 1].zlevel || i.incremental) { + this._needsManuallyCompositing = !0; + break + } + } + var r, o, s = null, l = 0; + for (o = 0; o < t.length; o++) { + var i = t[o], u = i.zlevel, h = void 0; + r !== u && (r = u, l = 0), i.incremental ? (h = this.getLayer(u + AC, this._needsManuallyCompositing), h.incremental = !0, l = 1) : h = this.getLayer(u + (l > 0 ? IC : 0), this._needsManuallyCompositing), h.__builtin__ || a("ZLevel " + u + " has been used by unkown layer " + h.id), h !== s && (h.__used = !0, h.__startIndex !== o && (h.__dirty = !0), h.__startIndex = o, h.__drawIndex = h.incremental ? -1 : o, e(o), s = h), i.__dirty & n_.REDARAW_BIT && !i.__inHover && (h.__dirty = !0, h.incremental && h.__drawIndex < 0 && (h.__drawIndex = o)) + } + e(o), this.eachBuiltinLayer(function (t) { + !t.__used && t.getElementCount() > 0 && (t.__dirty = !0, t.__startIndex = t.__endIndex = t.__drawIndex = 0), t.__dirty && t.__drawIndex < 0 && (t.__drawIndex = t.__startIndex) + }) + }, t.prototype.clear = function () { + return this.eachBuiltinLayer(this._clearLayer), this + }, t.prototype._clearLayer = function (t) { + t.clear() + }, t.prototype.setBackgroundColor = function (t) { + this._backgroundColor = t, y(this._layers, function (t) { + t.setUnpainted() + }) + }, t.prototype.configLayer = function (t, e) { + if (e) { + var n = this._layerConfig; + n[t] ? l(n[t], e, !0) : n[t] = e; + for (var i = 0; i < this._zlevelList.length; i++) { + var r = this._zlevelList[i]; + if (r === t || r === t + IC) { + var o = this._layers[r]; + l(o, n[t], !0) + } + } + } + }, t.prototype.delLayer = function (t) { + var e = this._layers, n = this._zlevelList, i = e[t]; + i && (i.dom.parentNode.removeChild(i.dom), delete e[t], n.splice(p(n, t), 1)) + }, t.prototype.resize = function (t, e) { + if (this._domRoot.style) { + var n = this._domRoot; + n.style.display = "none"; + var i = this._opts; + if (null != t && (i.width = t), null != e && (i.height = e), t = this._getSize(0), e = this._getSize(1), n.style.display = "", this._width !== t || e !== this._height) { + n.style.width = t + "px", n.style.height = e + "px"; + for (var r in this._layers) this._layers.hasOwnProperty(r) && this._layers[r].resize(t, e); + this.refresh(!0) + } + this._width = t, this._height = e + } else { + if (null == t || null == e) return; + this._width = t, this._height = e, this.getLayer(CC).resize(t, e) + } + return this + }, t.prototype.clearLayer = function (t) { + var e = this._layers[t]; + e && e.clear() + }, t.prototype.dispose = function () { + this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null + }, t.prototype.getRenderedCanvas = function (t) { + if (t = t || {}, this._singleCanvas && !this._compositeManually) return this._layers[CC].dom; + var e = new TC("image", this, t.pixelRatio || this.dpr), n = e.ctx; + if (e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor), t.pixelRatio <= this.dpr) { + this.refresh(); + var i = e.dom.width, r = e.dom.height, o = e.ctx; + this.eachLayer(function (t) { + t.__builtin__ ? o.drawImage(t.dom, 0, 0, i, r) : t.renderToCanvas && (e.ctx.save(), t.renderToCanvas(e.ctx), e.ctx.restore()) + }) + } else for (var a = { + inHover: !1, + viewWidth: this._width, + viewHeight: this._height + }, s = this.storage.getDisplayList(!0), l = 0, u = s.length; u > l; l++) { + var h = s[l]; + zc(n, h, a, l === u - 1) + } + return e.dom + }, t.prototype.getWidth = function () { + return this._width + }, t.prototype.getHeight = function () { + return this._height + }, t.prototype._getSize = function (t) { + var e = this._opts, n = ["width", "height"][t], i = ["clientWidth", "clientHeight"][t], + r = ["paddingLeft", "paddingTop"][t], o = ["paddingRight", "paddingBottom"][t]; + if (null != e[n] && "auto" !== e[n]) return parseFloat(e[n]); + var a = this.root, s = document.defaultView.getComputedStyle(a); + return (a[i] || Hc(s[n]) || Hc(a.style[n])) - (Hc(s[r]) || 0) - (Hc(s[o]) || 0) | 0 + }, t.prototype.pathToImage = function (t, e) { + e = e || this.dpr; + var n = document.createElement("canvas"), i = n.getContext("2d"), r = t.getBoundingRect(), o = t.style, + a = o.shadowBlur * e, s = o.shadowOffsetX * e, l = o.shadowOffsetY * e, + u = t.hasStroke() ? o.lineWidth : 0, c = Math.max(u / 2, -s + a), p = Math.max(u / 2, s + a), + f = Math.max(u / 2, -l + a), d = Math.max(u / 2, l + a), g = r.width + c + p, y = r.height + f + d; + n.width = g * e, n.height = y * e, i.scale(e, e), i.clearRect(0, 0, g, y), i.dpr = e; + var v = { + x: t.x, + y: t.y, + scaleX: t.scaleX, + scaleY: t.scaleY, + rotation: t.rotation, + originX: t.originX, + originY: t.originY + }; + t.x = c - r.x, t.y = f - r.y, t.rotation = 0, t.scaleX = 1, t.scaleY = 1, t.updateTransform(), t && zc(i, t, { + inHover: !1, + viewWidth: this._width, + viewHeight: this._height + }, !0); + var m = new zx({style: {x: 0, y: 0, image: n}}); + return h(t, v), m + }, t + }(); + io("canvas", DC); + var kC = Math.round(9 * Math.random()), LC = function () { + function t() { + this._id = "__ec_inner_" + kC++ + } + + return t.prototype.get = function (t) { + return this._guard(t)[this._id] + }, t.prototype.set = function (t, e) { + var n = this._guard(t); + return "function" == typeof Object.defineProperty ? Object.defineProperty(n, this._id, { + value: e, + enumerable: !1, + configurable: !0 + }) : n[this._id] = e, this + }, t.prototype["delete"] = function (t) { + return this.has(t) ? (delete this._guard(t)[this._id], !0) : !1 + }, t.prototype.has = function (t) { + return !!this._guard(t)[this._id] + }, t.prototype._guard = function (t) { + if (t !== Object(t)) throw TypeError("Value of WeakMap is not a non-null object."); + return t + }, t + }(), PC = xx.extend({ + type: "triangle", shape: {cx: 0, cy: 0, width: 0, height: 0}, buildPath: function (t, e) { + var n = e.cx, i = e.cy, r = e.width / 2, o = e.height / 2; + t.moveTo(n, i - o), t.lineTo(n + r, i + o), t.lineTo(n - r, i + o), t.closePath() + } + }), OC = xx.extend({ + type: "diamond", shape: {cx: 0, cy: 0, width: 0, height: 0}, buildPath: function (t, e) { + var n = e.cx, i = e.cy, r = e.width / 2, o = e.height / 2; + t.moveTo(n, i - o), t.lineTo(n + r, i), t.lineTo(n, i + o), t.lineTo(n - r, i), t.closePath() + } + }), RC = xx.extend({ + type: "pin", shape: {x: 0, y: 0, width: 0, height: 0}, buildPath: function (t, e) { + var n = e.x, i = e.y, r = e.width / 5 * 3, o = Math.max(r, e.height), a = r / 2, s = a * a / (o - a), + l = i - o + a + s, u = Math.asin(s / a), h = Math.cos(u) * a, c = Math.sin(u), p = Math.cos(u), + f = .6 * a, d = .7 * a; + t.moveTo(n - h, l + s), t.arc(n, l, a, Math.PI - u, 2 * Math.PI + u), t.bezierCurveTo(n + h - c * f, l + s + p * f, n, i - d, n, i), t.bezierCurveTo(n, i - d, n - h + c * f, l + s + p * f, n - h, l + s), t.closePath() + } + }), EC = xx.extend({ + type: "arrow", shape: {x: 0, y: 0, width: 0, height: 0}, buildPath: function (t, e) { + var n = e.height, i = e.width, r = e.x, o = e.y, a = i / 3 * 2; + t.moveTo(r, o), t.lineTo(r + a, o + n), t.lineTo(r, o + n / 4 * 3), t.lineTo(r - a, o + n), t.lineTo(r, o), t.closePath() + } + }), zC = {line: Gx, rect: Gx, roundRect: Gx, square: Gx, circle: Nx, diamond: OC, pin: RC, arrow: EC, triangle: PC}, + BC = { + line: function (t, e, n, i, r) { + var o = 2; + r.x = t, r.y = e + i / 2 - o / 2, r.width = n, r.height = o + }, rect: function (t, e, n, i, r) { + r.x = t, r.y = e, r.width = n, r.height = i + }, roundRect: function (t, e, n, i, r) { + r.x = t, r.y = e, r.width = n, r.height = i, r.r = Math.min(n, i) / 4 + }, square: function (t, e, n, i, r) { + var o = Math.min(n, i); + r.x = t, r.y = e, r.width = o, r.height = o + }, circle: function (t, e, n, i, r) { + r.cx = t + n / 2, r.cy = e + i / 2, r.r = Math.min(n, i) / 2 + }, diamond: function (t, e, n, i, r) { + r.cx = t + n / 2, r.cy = e + i / 2, r.width = n, r.height = i + }, pin: function (t, e, n, i, r) { + r.x = t + n / 2, r.y = e + i / 2, r.width = n, r.height = i + }, arrow: function (t, e, n, i, r) { + r.x = t + n / 2, r.y = e + i / 2, r.width = n, r.height = i + }, triangle: function (t, e, n, i, r) { + r.cx = t + n / 2, r.cy = e + i / 2, r.width = n, r.height = i + } + }, NC = {}; + y(zC, function (t, e) { + NC[e] = new t + }); + var FC = xx.extend({ + type: "symbol", + shape: {symbolType: "", x: 0, y: 0, width: 0, height: 0}, + calculateTextPosition: function (t, e, n) { + var i = Hn(t, e, n), r = this.shape; + return r && "pin" === r.symbolType && "inside" === e.position && (i.y = n.y + .4 * n.height), i + }, + buildPath: function (t, e, n) { + var i = e.symbolType; + if ("none" !== i) { + var r = NC[i]; + r || (i = "rect", r = NC[i]), BC[i](e.x, e.y, e.width, e.height, r.shape), r.buildPath(t, r.shape, n) + } + } + }), HC = new LC, VC = new wm(100), + GC = ["symbol", "symbolSize", "symbolKeepAspect", "color", "backgroundColor", "dashArrayX", "dashArrayY", "dashLineOffset", "maxTileWidth", "maxTileHeight"], + WC = G, XC = y, YC = M, UC = D, qC = "5.0.0", jC = {zrender: "5.0.1"}, ZC = 1, KC = 800, $C = 900, JC = 1e3, + QC = 2e3, tI = 5e3, eI = 1e3, nI = 1100, iI = 2e3, rI = 3e3, oI = 4e3, aI = 4500, sI = 4600, lI = 5e3, uI = 6e3, + hI = 7e3, cI = { + PROCESSOR: {FILTER: JC, SERIES_FILTER: KC, STATISTIC: tI}, + VISUAL: { + LAYOUT: eI, + PROGRESSIVE_LAYOUT: nI, + GLOBAL: iI, + CHART: rI, + POST_CHART_LAYOUT: sI, + COMPONENT: oI, + BRUSH: lI, + CHART_ITEM: aI, + ARIA: uI, + DECAL: hI + } + }, pI = "__flagInMainProcess", fI = "__optionUpdated", dI = "__needsUpdateStatus", gI = /^[a-zA-Z0-9_]+$/, + yI = "__connectUpdateStatus", vI = 0, mI = 1, _I = 2, xI = function (t) { + function n() { + return null !== t && t.apply(this, arguments) || this + } + + return e(n, t), n + }(Uv), wI = xI.prototype; + wI.on = tp("on"), wI.off = tp("off"); + var bI, SI, TI, MI, CI, II, AI, DI, kI, LI, PI, OI, RI, EI, zI, BI, NI, FI, HI, VI, GI, WI = function (t) { + function n(e, n, i) { + function r(t, e) { + return t.__prio - e.__prio + } + + var o = t.call(this, new $M) || this; + o._chartsViews = [], o._chartsMap = {}, o._componentsViews = [], o._componentsMap = {}, o._pendingActions = [], i = i || {}, "string" == typeof n && (n = QI[n]), o._dom = e; + var a = "canvas", l = !1, u = o._zr = Qr(e, { + renderer: i.renderer || a, + devicePixelRatio: i.devicePixelRatio, + width: i.width, + height: i.height, + useDirtyRect: null == i.useDirtyRect ? l : i.useDirtyRect + }); + o._throttledZrFlush = Ch(Ev(u.flush, u), 17), n = s(n), n && xu(n, !0), o._theme = n, o._locale = Us(i.locale || BS), o._coordSysMgr = new ET; + var h = o._api = NI(o); + return Qn(JI, r), Qn(jI, r), o._scheduler = new EM(o, h, jI, JI), o._messageCenter = new xI, o._labelManager = new yC, o._initEvents(), o.resize = Ev(o.resize, o), u.animation.on("frame", o._onframe, o), LI(u, o), PI(u, o), X(o), o + } + + return e(n, t), n.prototype._onframe = function () { + if (!this._disposed) { + GI(this); + var t = this._scheduler; + if (this[fI]) { + var e = this[fI].silent; + this[pI] = !0, bI(this), MI.update.call(this), this._zr.flush(), this[pI] = !1, this[fI] = !1, DI.call(this, e), kI.call(this, e) + } else if (t.unfinished) { + var n = ZC, i = this._model, r = this._api; + t.unfinished = !1; + do { + var o = +new Date; + t.performSeriesTasks(i), t.performDataProcessorTasks(i), II(this, i), t.performVisualTasks(i), zI(this, this._model, r, "remain"), n -= +new Date - o + } while (n > 0 && t.unfinished); + t.unfinished || this._zr.flush() + } + } + }, n.prototype.getDom = function () { + return this._dom + }, n.prototype.getId = function () { + return this.id + }, n.prototype.getZr = function () { + return this._zr + }, n.prototype.setOption = function (t, e, n) { + if (!this._disposed) { + var i, r, o; + if (UC(e) && (n = e.lazyUpdate, i = e.silent, r = e.replaceMerge, o = e.transition, e = e.notMerge), this[pI] = !0, !this._model || e) { + var a = new BT(this._api), s = this._theme, l = this._model = new CT; + l.scheduler = this._scheduler, l.init(null, null, null, s, this._locale, a) + } + this._model.setOption(t, {replaceMerge: r}, ZI), HI(this, o), n ? (this[fI] = {silent: i}, this[pI] = !1, this.getZr().wakeUp()) : (bI(this), MI.update.call(this), this._zr.flush(), this[fI] = !1, this[pI] = !1, DI.call(this, i), kI.call(this, i)) + } + }, n.prototype.setTheme = function () { + console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0") + }, n.prototype.getModel = function () { + return this._model + }, n.prototype.getOption = function () { + return this._model && this._model.getOption() + }, n.prototype.getWidth = function () { + return this._zr.getWidth() + }, n.prototype.getHeight = function () { + return this._zr.getHeight() + }, n.prototype.getDevicePixelRatio = function () { + return this._zr.painter.dpr || window.devicePixelRatio || 1 + }, n.prototype.getRenderedCanvas = function (t) { + if (wv.canvasSupported) { + t = h({}, t || {}), t.pixelRatio = t.pixelRatio || 1, t.backgroundColor = t.backgroundColor || this._model.get("backgroundColor"); + var e = this._zr; + return e.painter.getRenderedCanvas(t) + } + }, n.prototype.getSvgDataURL = function () { + if (wv.svgSupported) { + var t = this._zr, e = t.storage.getDisplayList(); + return y(e, function (t) { + t.stopAnimation(null, !0) + }), t.painter.toDataURL() + } + }, n.prototype.getDataURL = function (t) { + if (!this._disposed) { + t = t || {}; + var e = t.excludeComponents, n = this._model, i = [], r = this; + XC(e, function (t) { + n.eachComponent({mainType: t}, function (t) { + var e = r._componentsMap[t.__viewId]; + e.group.ignore || (i.push(e), e.group.ignore = !0) + }) + }); + var o = "svg" === this._zr.painter.getType() ? this.getSvgDataURL() : this.getRenderedCanvas(t).toDataURL("image/" + (t && t.type || "png")); + return XC(i, function (t) { + t.group.ignore = !1 + }), o + } + }, n.prototype.getConnectedDataURL = function (t) { + if (!this._disposed && wv.canvasSupported) { + var e = "svg" === t.type, n = this.group, i = Math.min, r = Math.max, o = 1 / 0; + if (nA[n]) { + var a = o, l = o, u = -o, h = -o, c = [], p = t && t.pixelRatio || 1; + y(eA, function (o) { + if (o.group === n) { + var p = e ? o.getZr().painter.getSvgDom().innerHTML : o.getRenderedCanvas(s(t)), + f = o.getDom().getBoundingClientRect(); + a = i(f.left, a), l = i(f.top, l), u = r(f.right, u), h = r(f.bottom, h), c.push({ + dom: p, + left: f.left, + top: f.top + }) + } + }), a *= p, l *= p, u *= p, h *= p; + var f = u - a, d = h - l, g = Rv(), v = Qr(g, {renderer: e ? "svg" : "canvas"}); + if (v.resize({width: f, height: d}), e) { + var m = ""; + return XC(c, function (t) { + var e = t.left - a, n = t.top - l; + m += '' + t.dom + "" + }), v.painter.getSvgRoot().innerHTML = m, t.connectedBackgroundColor && v.painter.setBackgroundColor(t.connectedBackgroundColor), v.refreshImmediately(), v.painter.toDataURL() + } + return t.connectedBackgroundColor && v.add(new Gx({ + shape: {x: 0, y: 0, width: f, height: d}, + style: {fill: t.connectedBackgroundColor} + })), XC(c, function (t) { + var e = new zx({style: {x: t.left * p - a, y: t.top * p - l, image: t.dom}}); + v.add(e) + }), v.refreshImmediately(), g.toDataURL("image/" + (t && t.type || "png")) + } + return this.getDataURL(t) + } + }, n.prototype.convertToPixel = function (t, e) { + return CI(this, "convertToPixel", t, e) + }, n.prototype.convertFromPixel = function (t, e) { + return CI(this, "convertFromPixel", t, e) + }, n.prototype.containPixel = function (t, e) { + if (!this._disposed) { + var n, i = this._model, r = jo(i, t); + return y(r, function (t, i) { + i.indexOf("Models") >= 0 && y(t, function (t) { + var r = t.coordinateSystem; + if (r && r.containPoint) n = n || !!r.containPoint(e); else if ("seriesModels" === i) { + var o = this._chartsMap[t.__viewId]; + o && o.containPoint && (n = n || o.containPoint(e, t)) + } + }, this) + }, this), !!n + } + }, n.prototype.getVisual = function (t, e) { + var n = this._model, i = jo(n, t, {defaultMainType: "series"}), r = i.seriesModel, o = r.getData(), + a = i.hasOwnProperty("dataIndexInside") ? i.dataIndexInside : i.hasOwnProperty("dataIndex") ? o.indexOfRawIndex(i.dataIndex) : null; + return null != a ? Vh(o, a, e) : Gh(o, e) + }, n.prototype.getViewOfComponentModel = function (t) { + return this._componentsMap[t.__viewId] + }, n.prototype.getViewOfSeriesModel = function (t) { + return this._chartsMap[t.__viewId] + }, n.prototype._initEvents = function () { + var t = this; + XC(YI, function (e) { + var n = function (n) { + var i, r = t.getModel(), o = n.target, a = "globalout" === e; + if (a ? i = {} : o && Wc(o, function (t) { + var e = Gb(t); + if (e && null != e.dataIndex) { + var n = e.dataModel || r.getSeriesByIndex(e.seriesIndex); + return i = n && n.getDataParams(e.dataIndex, e.dataType) || {}, !0 + } + return e.eventData ? (i = h({}, e.eventData), !0) : void 0 + }, !0), i) { + var s = i.componentType, l = i.componentIndex; + ("markLine" === s || "markPoint" === s || "markArea" === s) && (s = "series", l = i.seriesIndex); + var u = s && null != l && r.getComponent(s, l), + c = u && t["series" === u.mainType ? "_chartsMap" : "_componentsMap"][u.__viewId]; + i.event = n, i.type = e, t._$eventProcessor.eventInfo = { + targetEl: o, + packedEvent: i, + model: u, + view: c + }, t.trigger(e, i) + } + }; + n.zrEventfulCallAtLast = !0, t._zr.on(e, n, t) + }), XC(qI, function (e, n) { + t._messageCenter.on(n, function (t) { + this.trigger(n, t) + }, t) + }), XC(["selectchanged"], function (e) { + t._messageCenter.on(e, function (t) { + this.trigger(e, t) + }, t) + }), pc(this._messageCenter, this, this._model) + }, n.prototype.isDisposed = function () { + return this._disposed + }, n.prototype.clear = function () { + this._disposed || this.setOption({series: []}, !0) + }, n.prototype.dispose = function () { + if (!this._disposed) { + this._disposed = !0, Ko(this.getDom(), oA, ""); + var t = this._api, e = this._model; + XC(this._componentsViews, function (n) { + n.dispose(e, t) + }), XC(this._chartsViews, function (n) { + n.dispose(e, t) + }), this._zr.dispose(), delete eA[this.id] + } + }, n.prototype.resize = function (t) { + if (!this._disposed) { + this._zr.resize(t); + var e = this._model; + if (this._loadingFX && this._loadingFX.resize(), e) { + var n = e.resetOption("media"), i = t && t.silent; + this[pI] = !0, n && bI(this), MI.update.call(this, { + type: "resize", + animation: {duration: 0} + }), this[pI] = !1, DI.call(this, i), kI.call(this, i) + } + } + }, n.prototype.showLoading = function (t, e) { + if (!this._disposed && (UC(t) && (e = t, t = ""), t = t || "default", this.hideLoading(), tA[t])) { + var n = tA[t](this._api, e), i = this._zr; + this._loadingFX = n, i.add(n) + } + }, n.prototype.hideLoading = function () { + this._disposed || (this._loadingFX && this._zr.remove(this._loadingFX), this._loadingFX = null) + }, n.prototype.makeActionFromEvent = function (t) { + var e = h({}, t); + return e.type = qI[t.type], e + }, n.prototype.dispatchAction = function (t, e) { + if (!this._disposed && (UC(e) || (e = {silent: !!e}), UI[t.type] && this._model)) { + if (this[pI]) return void this._pendingActions.push(t); + var n = e.silent; + AI.call(this, t, n); + var i = e.flush; + i ? this._zr.flush() : i !== !1 && wv.browser.weChat && this._throttledZrFlush(), DI.call(this, n), kI.call(this, n) + } + }, n.prototype.updateLabelLayout = function () { + var t = this._labelManager; + t.updateLayoutConfig(this._api), t.layout(this._api), t.processLabelsOverall() + }, n.prototype.appendData = function (t) { + if (!this._disposed) { + var e = t.seriesIndex, n = this.getModel(), i = n.getSeriesByIndex(e); + i.appendData(t), this._scheduler.unfinished = !0, this.getZr().wakeUp() + } + }, n.internalField = function () { + function t(t) { + for (var e = [], n = t.currentStates, i = 0; i < n.length; i++) { + var r = n[i]; + "emphasis" !== r && "blur" !== r && "select" !== r && e.push(r) + } + t.selected && t.states.select && e.push("select"), t.hoverState === jb && t.states.emphasis ? e.push("emphasis") : t.hoverState === qb && t.states.blur && e.push("blur"), t.useStates(e) + } + + function n(t, e) { + var n = t._zr, i = n.storage, r = 0; + i.traverse(function (t) { + t.isGroup || r++ + }), r > e.get("hoverLayerThreshold") && !wv.node && !wv.worker && e.eachSeries(function (e) { + if (!e.preventUsingHoverLayer) { + var n = t._chartsMap[e.__viewId]; + n.__alive && n.group.traverse(function (t) { + t.states.emphasis && (t.states.emphasis.hoverLayer = !0) + }) + } + }) + } + + function i(t, e) { + var n = t.get("blendMode") || null; + e.group.traverse(function (t) { + t.isGroup || (t.style.blend = n), t.eachPendingDisplayable && t.eachPendingDisplayable(function (t) { + t.style.blend = n + }) + }) + } + + function r(t, e) { + if (!t.preventAutoZ) { + var n = t.get("z"), i = t.get("zlevel"); + e.group.traverse(function (t) { + if (!t.isGroup) { + null != n && (t.z = n), null != i && (t.zlevel = i); + var e = t.getTextContent(), r = t.getTextGuideLine(); + if (e && (e.z = t.z, e.zlevel = t.zlevel, e.z2 = t.z2 + 2), r) { + var o = t.textGuideLineConfig && t.textGuideLineConfig.showAbove; + r.z = t.z, r.zlevel = t.zlevel, r.z2 = t.z2 + (o ? 1 : -1) + } + } + }) + } + } + + function o(t, e) { + e.group.traverse(function (t) { + if (!gs(t)) { + var e = t.getTextContent(), n = t.getTextGuideLine(); + t.stateTransition && (t.stateTransition = null), e && e.stateTransition && (e.stateTransition = null), n && n.stateTransition && (n.stateTransition = null), t.hasState() ? (t.prevStates = t.currentStates, t.clearStates()) : t.prevStates && (t.prevStates = null) + } + }) + } + + function a(e, n) { + var i = e.getModel("stateAnimation"), r = e.isAnimationEnabled(), o = i.get("duration"), + a = o > 0 ? {duration: o, delay: i.get("delay"), easing: i.get("easing")} : null; + n.group.traverse(function (e) { + if (e.states && e.states.emphasis) { + if (gs(e)) return; + if (e instanceof xx && Ja(e), e.__dirty) { + var n = e.prevStates; + n && e.useStates(n) + } + if (r) { + e.stateTransition = a; + var i = e.getTextContent(), o = e.getTextGuideLine(); + i && (i.stateTransition = a), o && (o.stateTransition = a) + } + e.__dirty && t(e) + } + }) + } + + bI = function (t) { + var e = t._scheduler; + e.restorePipelines(t._model), e.prepareStageTasks(), SI(t, !0), SI(t, !1), e.plan() + }, SI = function (t, e) { + function n(t) { + var n = t.__requireNewView; + t.__requireNewView = !1; + var u = "_ec_" + t.id + "_" + t.type, h = !n && a[u]; + if (!h) { + var c = ta(t.type), p = e ? mM.getClass(c.main, c.sub) : wM.getClass(c.sub); + h = new p, h.init(i, l), a[u] = h, o.push(h), s.add(h.group) + } + t.__viewId = h.__id = u, h.__alive = !0, h.__model = t, h.group.__ecComponentInfo = { + mainType: t.mainType, + index: t.componentIndex + }, !e && r.prepareView(h, t, i, l) + } + + for (var i = t._model, r = t._scheduler, o = e ? t._componentsViews : t._chartsViews, a = e ? t._componentsMap : t._chartsMap, s = t._zr, l = t._api, u = 0; u < o.length; u++) o[u].__alive = !1; + e ? i.eachComponent(function (t, e) { + "series" !== t && n(e) + }) : i.eachSeries(n); + for (var u = 0; u < o.length;) { + var h = o[u]; + h.__alive ? u++ : (!e && h.renderTask.dispose(), s.remove(h.group), h.dispose(i, l), o.splice(u, 1), a[h.__id] === h && delete a[h.__id], h.__id = h.group.__ecComponentInfo = null) + } + }, TI = function (t, e, n, i, r) { + function o(i) { + i && i.__alive && i[e] && i[e](i.__model, a, t._api, n) + } + + var a = t._model; + if (a.setUpdatePayload(n), !i) return void XC([].concat(t._componentsViews).concat(t._chartsViews), o); + var s = {}; + s[i + "Id"] = n[i + "Id"], s[i + "Index"] = n[i + "Index"], s[i + "Name"] = n[i + "Name"]; + var l = {mainType: i, query: s}; + r && (l.subType = r); + var u, h = n.excludeSeriesId; + null != h && (u = U(), XC(Ao(h), function (t) { + var e = Vo(t, null); + null != e && u.set(e, !0) + })), a && a.eachComponent(l, function (e) { + u && null != u.get(e.id) || ($a(n) && !n.notBlur ? e instanceof vM && Ha(e, n, t._api) : Ka(n) && e instanceof vM && (Va(e, n, t._api), Ga(e), VI(t)), o(t["series" === i ? "_chartsMap" : "_componentsMap"][e.__viewId])) + }, t) + }, MI = { + prepareAndUpdate: function (t) { + bI(this), MI.update.call(this, t) + }, update: function (t) { + var e = this._model, n = this._api, i = this._zr, r = this._coordSysMgr, o = this._scheduler; + if (e) { + e.setUpdatePayload(t), o.restoreData(e, t), o.performSeriesTasks(e), r.create(e, n), o.performDataProcessorTasks(e, t), II(this, e), r.update(e, n), OI(e), o.performVisualTasks(e, t), RI(this, e, n, t); + var a = e.get("backgroundColor") || "transparent", s = e.get("darkMode"); + if (wv.canvasSupported) i.setBackgroundColor(a), null != s && "auto" !== s && i.setDarkMode(s); else { + var l = an(a); + a = gn(l, "rgb"), 0 === l[3] && (a = "transparent") + } + BI(e, n) + } + }, updateTransform: function (t) { + var e = this, n = this._model, i = this._api; + if (n) { + n.setUpdatePayload(t); + var r = []; + n.eachComponent(function (o, a) { + if ("series" !== o) { + var s = e.getViewOfComponentModel(a); + if (s && s.__alive) if (s.updateTransform) { + var l = s.updateTransform(a, n, i, t); + l && l.update && r.push(s) + } else r.push(s) + } + }); + var o = U(); + n.eachSeries(function (r) { + var a = e._chartsMap[r.__viewId]; + if (a.updateTransform) { + var s = a.updateTransform(r, n, i, t); + s && s.update && o.set(r.uid, 1) + } else o.set(r.uid, 1) + }), OI(n), this._scheduler.performVisualTasks(n, t, { + setDirty: !0, + dirtyMap: o + }), zI(this, n, i, t, o), BI(n, this._api) + } + }, updateView: function (t) { + var e = this._model; + e && (e.setUpdatePayload(t), wM.markUpdateMethod(t, "updateView"), OI(e), this._scheduler.performVisualTasks(e, t, {setDirty: !0}), RI(this, this._model, this._api, t), BI(e, this._api)) + }, updateVisual: function (t) { + var e = this, n = this._model; + n && (n.setUpdatePayload(t), n.eachSeries(function (t) { + t.getData().clearAllVisual() + }), wM.markUpdateMethod(t, "updateVisual"), OI(n), this._scheduler.performVisualTasks(n, t, { + visualType: "visual", + setDirty: !0 + }), n.eachComponent(function (i, r) { + if ("series" !== i) { + var o = e.getViewOfComponentModel(r); + o && o.__alive && o.updateVisual(r, n, e._api, t) + } + }), n.eachSeries(function (i) { + var r = e._chartsMap[i.__viewId]; + r.updateVisual(i, n, e._api, t) + }), BI(n, this._api)) + }, updateLayout: function (t) { + MI.update.call(this, t) + } + }, CI = function (t, e, n, i) { + if (!t._disposed) for (var r, o = t._model, a = t._coordSysMgr.getCoordinateSystems(), s = jo(o, n), l = 0; l < a.length; l++) { + var u = a[l]; + if (u[e] && null != (r = u[e](o, s, i))) return r + } + }, II = function (t, e) { + var n = t._chartsMap, i = t._scheduler; + e.eachSeries(function (t) { + i.updateStreamModes(t, n[t.__viewId]) + }) + }, AI = function (t, e) { + var n = this, i = this.getModel(), r = t.type, o = t.escapeConnect, a = UI[r], s = a.actionInfo, + l = (s.update || "update").split(":"), u = l.pop(), p = null != l[0] && ta(l[0]); + this[pI] = !0; + var f = [t], d = !1; + t.batch && (d = !0, f = v(t.batch, function (e) { + return e = c(h({}, e), t), e.batch = null, e + })); + var g, y = [], m = Ka(t), _ = $a(t) || m; + if (XC(f, function (t) { + g = a.action(t, n._model, n._api), g = g || h({}, t), g.type = s.event || g.type, y.push(g), _ ? (TI(n, u, t, "series"), VI(n)) : p && TI(n, u, t, p.main, p.sub) + }), "none" === u || _ || p || (this[fI] ? (bI(this), MI.update.call(this, t), this[fI] = !1) : MI[u].call(this, t)), g = d ? { + type: s.event || r, + escapeConnect: o, + batch: y + } : y[0], this[pI] = !1, !e) { + var x = this._messageCenter; + if (x.trigger(g.type, g), m) { + var w = { + type: "selectchanged", + escapeConnect: o, + selected: Wa(i), + isFromClick: t.isFromClick || !1, + fromAction: t.type, + fromActionPayload: t + }; + x.trigger(w.type, w) + } + } + }, DI = function (t) { + for (var e = this._pendingActions; e.length;) { + var n = e.shift(); + AI.call(this, n, t) + } + }, kI = function (t) { + !t && this.trigger("updated") + }, LI = function (t, e) { + t.on("rendered", function (n) { + e.trigger("rendered", n), !t.animation.isFinished() || e[fI] || e._scheduler.unfinished || e._pendingActions.length || e.trigger("finished") + }) + }, PI = function (t, e) { + t.on("mouseover", function (t) { + var n = t.target, i = Wc(n, ja); + if (i) { + var r = Gb(i); + Fa(r.seriesIndex, r.focus, r.blurScope, e._api, !0), Da(i, t), VI(e) + } + }).on("mouseout", function (t) { + var n = t.target, i = Wc(n, ja); + if (i) { + var r = Gb(i); + Fa(r.seriesIndex, r.focus, r.blurScope, e._api, !1), ka(i, t), VI(e) + } + }).on("click", function (t) { + var n = t.target, i = Wc(n, function (t) { + return null != Gb(t).dataIndex + }, !0); + if (i) { + var r = i.selected ? "unselect" : "select", o = Gb(i); + e._api.dispatchAction({ + type: r, + dataType: o.dataType, + dataIndexInside: o.dataIndex, + seriesIndex: o.seriesIndex, + isFromClick: !0 + }) + } + }) + }, OI = function (t) { + t.clearColorPalette(), t.eachSeries(function (t) { + t.clearColorPalette() + }) + }, RI = function (t, e, n, i) { + EI(t, e, n, i), XC(t._chartsViews, function (t) { + t.__alive = !1 + }), zI(t, e, n, i), XC(t._chartsViews, function (t) { + t.__alive || t.remove(e, n) + }) + }, EI = function (t, e, n, i, s) { + XC(s || t._componentsViews, function (t) { + var s = t.__model; + o(s, t), t.render(s, e, n, i), r(s, t), a(s, t) + }) + }, zI = function (t, e, s, l, u) { + var h = t._scheduler, c = t._labelManager; + c.clearLabels(); + var p = !1; + e.eachSeries(function (e) { + var n = t._chartsMap[e.__viewId]; + n.__alive = !0; + var r = n.renderTask; + h.updatePayload(r, l), o(e, n), u && u.get(e.uid) && r.dirty(), r.perform(h.getPerformArgs(r)) && (p = !0), e.__transientTransitionOpt = null, n.group.silent = !!e.get("silent"), i(e, n), Ga(e), c.addLabelsOfSeries(n) + }), h.unfinished = p || h.unfinished, c.updateLayoutConfig(s), c.layout(s), c.processLabelsOverall(), e.eachSeries(function (e) { + var n = t._chartsMap[e.__viewId]; + r(e, n), a(e, n) + }), n(t, e) + }, BI = function (t, e) { + XC($I, function (n) { + n(t, e) + }) + }, VI = function (t) { + t[dI] = !0, t.getZr().wakeUp() + }, GI = function (e) { + e[dI] && (e.getZr().storage.traverse(function (e) { + gs(e) || t(e) + }), e[dI] = !1) + }, NI = function (t) { + return new (function (n) { + function i() { + return null !== n && n.apply(this, arguments) || this + } + + return e(i, n), i.prototype.getCoordinateSystems = function () { + return t._coordSysMgr.getCoordinateSystems() + }, i.prototype.getComponentByElement = function (e) { + for (; e;) { + var n = e.__ecComponentInfo; + if (null != n) return t._model.getComponent(n.mainType, n.index); + e = e.parent + } + }, i.prototype.enterEmphasis = function (e, n) { + La(e, n), VI(t) + }, i.prototype.leaveEmphasis = function (e, n) { + Pa(e, n), VI(t) + }, i.prototype.enterBlur = function (e) { + Oa(e), VI(t) + }, i.prototype.leaveBlur = function (e) { + Ra(e), VI(t) + }, i.prototype.enterSelect = function (e) { + Ea(e), VI(t) + }, i.prototype.leaveSelect = function (e) { + za(e), VI(t) + }, i.prototype.getModel = function () { + return t.getModel() + }, i.prototype.getViewOfComponentModel = function (e) { + return t.getViewOfComponentModel(e) + }, i.prototype.getViewOfSeriesModel = function (e) { + return t.getViewOfSeriesModel(e) + }, i + }(OT))(t) + }, FI = function (t) { + function e(t, e) { + for (var n = 0; n < t.length; n++) { + var i = t[n]; + i[yI] = e + } + } + + XC(qI, function (n, i) { + t._messageCenter.on(i, function (n) { + if (nA[t.group] && t[yI] !== vI) { + if (n && n.escapeConnect) return; + var i = t.makeActionFromEvent(n), r = []; + XC(eA, function (e) { + e !== t && e.group === t.group && r.push(e) + }), e(r, vI), XC(r, function (t) { + t[yI] !== mI && t.dispatchAction(i) + }), e(r, _I) + } + }) + }) + }, HI = function (t, e) { + var n = t._model; + y(Ao(e), function (t) { + var e, i = t.from, r = t.to; + null == r && Io(e); + var o = {includeMainTypes: ["series"], enableAll: !1, enableNone: !1}, a = i ? jo(n, i, o) : null, + s = jo(n, r, o), l = s.seriesModel; + null == l && (e = ""), a && a.seriesModel !== l && (e = ""), null != e && Io(e), l.__transientTransitionOpt = { + from: i ? i.dimension : null, + to: r.dimension, + dividingMethod: t.dividingMethod + } + }) + } + }(), n + }(Uv), XI = WI.prototype; + XI.on = Qc("on"), XI.off = Qc("off"), XI.one = function (t, e, n) { + function i() { + for (var n = [], o = 0; o < arguments.length; o++) n[o] = arguments[o]; + e && e.apply && e.apply(this, n), r.off(t, i) + } + + var r = this; + this.on.call(this, t, i, n) + }; + var YI = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout", "contextmenu"], + UI = {}, qI = {}, jI = [], ZI = [], KI = [], $I = [], JI = [], QI = {}, tA = {}, eA = {}, nA = {}, + iA = +new Date - 0, rA = +new Date - 0, oA = "_echarts_instance_", aA = rp, sA = Uu; + vp(iI, kM), vp(aI, PM), vp(aI, OM), vp(iI, JM), vp(aI, QM), vp(hI, Jc), up(xu), hp($C, wu), _p("default", kh), fp({ + type: Qb, + event: Qb, + update: Qb + }, K), fp({type: tS, event: tS, update: tS}, K), fp({type: eS, event: eS, update: eS}, K), fp({ + type: nS, + event: nS, + update: nS + }, K), fp({type: iS, event: iS, update: iS}, K), lp("light", HM), lp("dark", YM); + var lA, uA, hA, cA, pA, fA, dA, gA, yA, vA, mA, _A, xA, wA, bA = {}, SA = function () { + function t(t, e, n, i, r, o) { + this._old = t, this._new = e, this._oldKeyGetter = n || Ap, this._newKeyGetter = i || Ap, this.context = r, this._diffModeMultiple = "multiple" === o + } + + return t.prototype.add = function (t) { + return this._add = t, this + }, t.prototype.update = function (t) { + return this._update = t, this + }, t.prototype.updateManyToOne = function (t) { + return this._updateManyToOne = t, this + }, t.prototype.updateOneToMany = function (t) { + return this._updateOneToMany = t, this + }, t.prototype.remove = function (t) { + return this._remove = t, this + }, t.prototype.execute = function () { + this[this._diffModeMultiple ? "_executeMultiple" : "_executeOneToOne"]() + }, t.prototype._executeOneToOne = function () { + var t = this._old, e = this._new, n = {}, i = new Array(t.length), r = new Array(e.length); + this._initIndexMap(t, null, i, "_oldKeyGetter"), this._initIndexMap(e, n, r, "_newKeyGetter"); + for (var o = 0; o < t.length; o++) { + var a = i[o], s = n[a], l = Ip(s); + if (l > 1) { + var u = s.shift(); + 1 === s.length && (n[a] = s[0]), this._update && this._update(u, o) + } else 1 === l ? (n[a] = null, this._update && this._update(s, o)) : this._remove && this._remove(o) + } + this._performRestAdd(r, n) + }, t.prototype._executeMultiple = function () { + var t = this._old, e = this._new, n = {}, i = {}, r = [], o = []; + this._initIndexMap(t, n, r, "_oldKeyGetter"), this._initIndexMap(e, i, o, "_newKeyGetter"); + for (var a = 0; a < r.length; a++) { + var s = r[a], l = n[s], u = i[s], h = Ip(l), c = Ip(u); + if (h > 1 && 1 === c) this._updateManyToOne && this._updateManyToOne(u, l), i[s] = null; else if (1 === h && c > 1) this._updateOneToMany && this._updateOneToMany(u, l), i[s] = null; else if (1 === h && 1 === c) this._update && this._update(u, l), i[s] = null; else if (h > 1) for (var p = 0; h > p; p++) this._remove && this._remove(l[p]); else this._remove && this._remove(l) + } + this._performRestAdd(o, i) + }, t.prototype._performRestAdd = function (t, e) { + for (var n = 0; n < t.length; n++) { + var i = t[n], r = e[i], o = Ip(r); + if (o > 1) for (var a = 0; o > a; a++) this._add && this._add(r[a]); else 1 === o && this._add && this._add(r); + e[i] = null + } + }, t.prototype._initIndexMap = function (t, e, n, i) { + for (var r = this._diffModeMultiple, o = 0; o < t.length; o++) { + var a = "_ec_" + this[i](t[o], o); + if (r || (n[o] = a), e) { + var s = e[a], l = Ip(s); + 0 === l ? (e[a] = o, r && n.push(a)) : 1 === l ? e[a] = [s, o] : s.push(o) + } + } + }, t + }(), TA = function () { + function t(t) { + this.otherDims = {}, null != t && h(this, t) + } + + return t + }(), MA = Math.floor, CA = D, IA = v, AA = "undefined", DA = -1, kA = "e\x00\x00", LA = { + "float": typeof Float64Array === AA ? Array : Float64Array, + "int": typeof Int32Array === AA ? Array : Int32Array, + ordinal: Array, + number: Array, + time: Array + }, PA = typeof Uint32Array === AA ? Array : Uint32Array, OA = typeof Int32Array === AA ? Array : Int32Array, + RA = typeof Uint16Array === AA ? Array : Uint16Array, + EA = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_rawData", "_dimValueGetter", "_count", "_rawCount", "_nameDimIdx", "_idDimIdx", "_nameRepeatCount"], + zA = ["_extent", "_approximateExtent", "_rawExtent"], BA = function () { + function t(t, e) { + this.type = "list", this._count = 0, this._rawCount = 0, this._storage = {}, this._storageArr = [], this._nameList = [], this._idList = [], this._visual = {}, this._layout = {}, this._itemVisuals = [], this._itemLayouts = [], this._graphicEls = [], this._rawExtent = {}, this._extent = {}, this._approximateExtent = {}, this._calculationInfo = {}, this.hasItemOption = !0, this.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "lttbDownSample", "map"], this.CHANGABLE_METHODS = ["filterSelf", "selectRange"], this.DOWNSAMPLE_METHODS = ["downSample", "lttbDownSample"], this.getRawIndex = pA, t = t || ["x", "y"]; + for (var n = {}, i = [], r = {}, o = 0; o < t.length; o++) { + var a = t[o], s = C(a) ? new TA({name: a}) : a instanceof TA ? a : new TA(a), l = s.name; + s.type = s.type || "float", s.coordDim || (s.coordDim = l, s.coordDimIndex = 0); + var u = s.otherDims = s.otherDims || {}; + i.push(l), n[l] = s, s.index = o, s.createInvertedIndices && (r[l] = []), 0 === u.itemName && (this._nameDimIdx = o, this._nameOrdinalMeta = s.ordinalMeta), 0 === u.itemId && (this._idDimIdx = o, this._idOrdinalMeta = s.ordinalMeta) + } + this.dimensions = i, this._dimensionInfos = n, this.hostModel = e, this._dimensionsSummary = Dp(this), this._invertedIndicesMap = r, this.userOutput = this._dimensionsSummary.userOutput + } + + return t.prototype.getDimension = function (t) { + return ("number" == typeof t || !isNaN(t) && !this._dimensionInfos.hasOwnProperty(t)) && (t = this.dimensions[t]), t + }, t.prototype.getDimensionInfo = function (t) { + return this._dimensionInfos[this.getDimension(t)] + }, t.prototype.getDimensionsOnCoord = function () { + return this._dimensionsSummary.dataDimsOnCoord.slice() + }, t.prototype.mapDimension = function (t, e) { + var n = this._dimensionsSummary; + if (null == e) return n.encodeFirstDimNotExtra[t]; + var i = n.encode[t]; + return i ? i[e] : null + }, t.prototype.mapDimensionsAll = function (t) { + var e = this._dimensionsSummary, n = e.encode[t]; + return (n || []).slice() + }, t.prototype.initData = function (t, e, n) { + var i = Su(t) || g(t), r = i ? new YT(t, this.dimensions.length) : t; + this._rawData = r; + var o = r.getSource().sourceFormat; + this._storage = {}, this._indices = null, this._dontMakeIdFromName = null != this._idDimIdx || o === yT || !!r.fillStorage, this._nameList = (e || []).slice(), this._idList = [], this._nameRepeatCount = {}, n || (this.hasItemOption = !1), this.defaultDimValueGetter = lA[o], this._dimValueGetter = n = n || this.defaultDimValueGetter, this._dimValueGetterArrayRows = lA.arrayRows, this._rawExtent = {}, this._initDataFromProvider(0, r.count()), r.pure && (this.hasItemOption = !1) + }, t.prototype.getProvider = function () { + return this._rawData + }, t.prototype.appendData = function (t) { + var e = this._rawData, n = this.count(); + e.appendData(t); + var i = e.count(); + e.persistent || (i += n), this._initDataFromProvider(n, i, !0) + }, t.prototype.appendValues = function (t, e) { + for (var n = this._storage, i = this.dimensions, r = i.length, o = this._rawExtent, a = this.count(), s = a + Math.max(t.length, e ? e.length : 0), l = 0; r > l; l++) { + var u = i[l]; + o[u] || (o[u] = _A()), cA(n, this._dimensionInfos[u], s, !0) + } + for (var h = IA(i, function (t) { + return o[t] + }), c = this._storageArr = IA(i, function (t) { + return n[t] + }), p = [], f = a; s > f; f++) { + for (var d = f - a, g = 0; r > g; g++) { + var u = i[g], y = this._dimValueGetterArrayRows(t[d] || p, u, d, g); + c[g][f] = y; + var v = h[g]; + y < v[0] && (v[0] = y), y > v[1] && (v[1] = y) + } + e && (this._nameList[f] = e[d], this._dontMakeIdFromName || yA(this, f)) + } + this._rawCount = this._count = s, this._extent = {}, uA(this) + }, t.prototype._initDataFromProvider = function (t, e, n) { + if (!(t >= e)) { + for (var i = this._rawData, r = this._storage, o = this.dimensions, a = o.length, s = this._dimensionInfos, l = this._nameList, u = this._idList, h = this._rawExtent, c = i.getSource().sourceFormat, p = c === pT, f = 0; a > f; f++) { + var d = o[f]; + h[d] || (h[d] = _A()), cA(r, s[d], e, n) + } + var g = this._storageArr = IA(o, function (t) { + return r[t] + }), y = IA(o, function (t) { + return h[t] + }); + if (i.fillStorage) i.fillStorage(t, e, g, y); else for (var v = [], m = t; e > m; m++) { + v = i.getItem(m, v); + for (var _ = 0; a > _; _++) { + var d = o[_], x = g[_], w = this._dimValueGetter(v, d, m, _); + x[m] = w; + var b = y[_]; + w < b[0] && (b[0] = w), w > b[1] && (b[1] = w) + } + if (p && !i.pure && v) { + var S = v.name; + null == l[m] && null != S && (l[m] = Vo(S, null)); + var T = v.id; + null == u[m] && null != T && (u[m] = Vo(T, null)) + } + this._dontMakeIdFromName || yA(this, m) + } + !i.persistent && i.clean && i.clean(), this._rawCount = this._count = e, this._extent = {}, uA(this) + } + }, t.prototype.count = function () { + return this._count + }, t.prototype.getIndices = function () { + var t, e = this._indices; + if (e) { + var n = e.constructor, i = this._count; + if (n === Array) { + t = new n(i); + for (var r = 0; i > r; r++) t[r] = e[r] + } else t = new n(e.buffer, 0, i) + } else { + var n = hA(this); + t = new n(this.count()); + for (var r = 0; r < t.length; r++) t[r] = r + } + return t + }, t.prototype.getByDimIdx = function (t, e) { + if (!(e >= 0 && e < this._count)) return 0 / 0; + var n = this._storageArr[t]; + return n ? n[this.getRawIndex(e)] : 0 / 0 + }, t.prototype.get = function (t, e) { + if (!(e >= 0 && e < this._count)) return 0 / 0; + var n = this._storage[t]; + return n ? n[this.getRawIndex(e)] : 0 / 0 + }, t.prototype.getByRawIndex = function (t, e) { + if (!(e >= 0 && e < this._rawCount)) return 0 / 0; + var n = this._storage[t]; + return n ? n[e] : 0 / 0 + }, t.prototype.getValues = function (t, e) { + var n = []; + T(t) || (e = t, t = this.dimensions); + for (var i = 0, r = t.length; r > i; i++) n.push(this.get(t[i], e)); + return n + }, t.prototype.hasValue = function (t) { + for (var e = this._dimensionsSummary.dataDimsOnCoord, n = 0, i = e.length; i > n; n++) if (isNaN(this.get(e[n], t))) return !1; + return !0 + }, t.prototype.getDataExtent = function (t) { + t = this.getDimension(t); + var e = this._storage[t], n = _A(); + if (!e) return n; + var i, r = this.count(), o = !this._indices; + if (o) return this._rawExtent[t].slice(); + if (i = this._extent[t]) return i.slice(); + i = n; + for (var a = i[0], s = i[1], l = 0; r > l; l++) { + var u = this.getRawIndex(l), h = e[u]; + a > h && (a = h), h > s && (s = h) + } + return i = [a, s], this._extent[t] = i, i + }, t.prototype.getApproximateExtent = function (t) { + return t = this.getDimension(t), this._approximateExtent[t] || this.getDataExtent(t) + }, t.prototype.setApproximateExtent = function (t, e) { + e = this.getDimension(e), this._approximateExtent[e] = t.slice() + }, t.prototype.getCalculationInfo = function (t) { + return this._calculationInfo[t] + }, t.prototype.setCalculationInfo = function (t, e) { + CA(t) ? h(this._calculationInfo, t) : this._calculationInfo[t] = e + }, t.prototype.getSum = function (t) { + var e = this._storage[t], n = 0; + if (e) for (var i = 0, r = this.count(); r > i; i++) { + var o = this.get(t, i); + isNaN(o) || (n += o) + } + return n + }, t.prototype.getMedian = function (t) { + var e = []; + this.each(t, function (t) { + isNaN(t) || e.push(t) + }); + var n = e.sort(function (t, e) { + return t - e + }), i = this.count(); + return 0 === i ? 0 : i % 2 === 1 ? n[(i - 1) / 2] : (n[i / 2] + n[i / 2 - 1]) / 2 + }, t.prototype.rawIndexOf = function (t, e) { + var n = t && this._invertedIndicesMap[t], i = n[e]; + return null == i || isNaN(i) ? DA : i + }, t.prototype.indexOfName = function (t) { + for (var e = 0, n = this.count(); n > e; e++) if (this.getName(e) === t) return e; + return -1 + }, t.prototype.indexOfRawIndex = function (t) { + if (t >= this._rawCount || 0 > t) return -1; + if (!this._indices) return t; + var e = this._indices, n = e[t]; + if (null != n && n < this._count && n === t) return t; + for (var i = 0, r = this._count - 1; r >= i;) { + var o = (i + r) / 2 | 0; + if (e[o] < t) i = o + 1; else { + if (!(e[o] > t)) return o; + r = o - 1 + } + } + return -1 + }, t.prototype.indicesOfNearest = function (t, e, n) { + var i = this._storage, r = i[t], o = []; + if (!r) return o; + null == n && (n = 1 / 0); + for (var a = 1 / 0, s = -1, l = 0, u = 0, h = this.count(); h > u; u++) { + var c = this.getRawIndex(u), p = e - r[c], f = Math.abs(p); + n >= f && ((a > f || f === a && p >= 0 && 0 > s) && (a = f, s = p, l = 0), p === s && (o[l++] = u)) + } + return o.length = l, o + }, t.prototype.getRawDataItem = function (t) { + if (this._rawData.persistent) return this._rawData.getItem(this.getRawIndex(t)); + for (var e = [], n = 0; n < this.dimensions.length; n++) { + var i = this.dimensions[n]; + e.push(this.get(i, t)) + } + return e + }, t.prototype.getName = function (t) { + var e = this.getRawIndex(t), n = this._nameList[e]; + return null == n && null != this._nameDimIdx && (n = gA(this, this._nameDimIdx, this._nameOrdinalMeta, e)), null == n && (n = ""), n + }, t.prototype.getId = function (t) { + return dA(this, this.getRawIndex(t)) + }, t.prototype.each = function (t, e, n, i) { + var r = this; + if (this._count) { + "function" == typeof t && (i = n, n = e, e = t, t = []); + for (var o = n || i || this, a = IA(vA(t), this.getDimension, this), s = a.length, l = IA(a, function (t) { + return r._dimensionInfos[t].index + }), u = this._storageArr, h = 0, c = this.count(); c > h; h++) { + var p = this.getRawIndex(h); + switch (s) { + case 0: + e.call(o, h); + break; + case 1: + e.call(o, u[l[0]][p], h); + break; + case 2: + e.call(o, u[l[0]][p], u[l[1]][p], h); + break; + default: + for (var f = 0, d = []; s > f; f++) d[f] = u[l[f]][p]; + d[f] = h, e.apply(o, d) + } + } + } + }, t.prototype.filterSelf = function (t, e, n, i) { + var r = this; + if (this._count) { + "function" == typeof t && (i = n, n = e, e = t, t = []); + for (var o = n || i || this, a = IA(vA(t), this.getDimension, this), s = this.count(), l = hA(this), u = new l(s), h = [], c = a.length, p = 0, f = IA(a, function (t) { + return r._dimensionInfos[t].index + }), d = f[0], g = this._storageArr, y = 0; s > y; y++) { + var v = void 0, m = this.getRawIndex(y); + if (0 === c) v = e.call(o, y); else if (1 === c) { + var _ = g[d][m]; + v = e.call(o, _, y) + } else { + for (var x = 0; c > x; x++) h[x] = g[f[x]][m]; + h[x] = y, v = e.apply(o, h) + } + v && (u[p++] = m) + } + return s > p && (this._indices = u), this._count = p, this._extent = {}, this.getRawIndex = this._indices ? fA : pA, this + } + }, t.prototype.selectRange = function (t) { + var e = this, n = this._count; + if (n) { + var i = []; + for (var r in t) t.hasOwnProperty(r) && i.push(r); + var o = i.length; + if (o) { + var a = this.count(), s = hA(this), l = new s(a), u = 0, h = i[0], c = IA(i, function (t) { + return e._dimensionInfos[t].index + }), p = t[h][0], f = t[h][1], d = this._storageArr, g = !1; + if (!this._indices) { + var y = 0; + if (1 === o) { + for (var v = d[c[0]], m = 0; n > m; m++) { + var _ = v[m]; + (_ >= p && f >= _ || isNaN(_)) && (l[u++] = y), y++ + } + g = !0 + } else if (2 === o) { + for (var v = d[c[0]], x = d[c[1]], w = t[i[1]][0], b = t[i[1]][1], m = 0; n > m; m++) { + var _ = v[m], S = x[m]; + (_ >= p && f >= _ || isNaN(_)) && (S >= w && b >= S || isNaN(S)) && (l[u++] = y), y++ + } + g = !0 + } + } + if (!g) if (1 === o) for (var m = 0; a > m; m++) { + var T = this.getRawIndex(m), _ = d[c[0]][T]; + (_ >= p && f >= _ || isNaN(_)) && (l[u++] = T) + } else for (var m = 0; a > m; m++) { + for (var M = !0, T = this.getRawIndex(m), C = 0; o > C; C++) { + var I = i[C], _ = d[c[C]][T]; + (_ < t[I][0] || _ > t[I][1]) && (M = !1) + } + M && (l[u++] = this.getRawIndex(m)) + } + return a > u && (this._indices = l), this._count = u, this._extent = {}, this.getRawIndex = this._indices ? fA : pA, this + } + } + }, t.prototype.mapArray = function (t, e, n, i) { + "function" == typeof t && (i = n, n = e, e = t, t = []), n = n || i || this; + var r = []; + return this.each(t, function () { + r.push(e && e.apply(this, arguments)) + }, n), r + }, t.prototype.map = function (t, e, n, i) { + var r = n || i || this, o = IA(vA(t), this.getDimension, this), a = mA(this, o), s = a._storage; + a._indices = this._indices, a.getRawIndex = a._indices ? fA : pA; + for (var l = [], u = o.length, h = this.count(), c = [], p = a._rawExtent, f = 0; h > f; f++) { + for (var d = 0; u > d; d++) c[d] = this.get(o[d], f); + c[u] = f; + var g = e && e.apply(r, c); + if (null != g) { + "object" != typeof g && (l[0] = g, g = l); + for (var y = this.getRawIndex(f), v = 0; v < g.length; v++) { + var m = o[v], _ = g[v], x = p[m], w = s[m]; + w && (w[y] = _), _ < x[0] && (x[0] = _), _ > x[1] && (x[1] = _) + } + } + } + return a + }, t.prototype.downSample = function (t, e, n, i) { + for (var r = mA(this, [t]), o = r._storage, a = [], s = MA(1 / e), l = o[t], u = this.count(), h = r._rawExtent[t], c = new (hA(this))(u), p = 0, f = 0; u > f; f += s) { + s > u - f && (s = u - f, a.length = s); + for (var d = 0; s > d; d++) { + var g = this.getRawIndex(f + d); + a[d] = l[g] + } + var y = n(a), v = this.getRawIndex(Math.min(f + i(a, y) || 0, u - 1)); + l[v] = y, y < h[0] && (h[0] = y), y > h[1] && (h[1] = y), c[p++] = v + } + return r._count = p, r._indices = c, r.getRawIndex = fA, r + }, t.prototype.lttbDownSample = function (t, e) { + var n, i, r, o = mA(this, []), a = o._storage, s = a[t], l = this.count(), u = new (hA(this))(l), h = 0, + c = MA(1 / e), p = this.getRawIndex(0); + u[h++] = p; + for (var f = 1; l - 1 > f; f += c) { + for (var d = Math.min(f + c, l - 1), g = Math.min(f + 2 * c, l), y = (g + d) / 2, v = 0, m = d; g > m; m++) { + var _ = this.getRawIndex(m), x = s[_]; + isNaN(x) || (v += x) + } + v /= g - d; + var w = f, b = Math.min(f + c, l), S = f - 1, T = s[p]; + n = -1, r = w; + for (var m = w; b > m; m++) { + var _ = this.getRawIndex(m), x = s[_]; + isNaN(x) || (i = Math.abs((S - y) * (x - T) - (S - m) * (v - T)), i > n && (n = i, r = _)) + } + u[h++] = r, p = r + } + return u[h++] = this.getRawIndex(l - 1), o._count = h, o._indices = u, o.getRawIndex = fA, o + }, t.prototype.getItemModel = function (t) { + var e = this.hostModel, n = this.getRawDataItem(t); + return new AS(n, e, e && e.ecModel) + }, t.prototype.diff = function (t) { + var e = this; + return new SA(t ? t.getIndices() : [], this.getIndices(), function (e) { + return dA(t, e) + }, function (t) { + return dA(e, t) + }) + }, t.prototype.getVisual = function (t) { + var e = this._visual; + return e && e[t] + }, t.prototype.setVisual = function (t, e) { + this._visual = this._visual || {}, CA(t) ? h(this._visual, t) : this._visual[t] = e + }, t.prototype.getItemVisual = function (t, e) { + var n = this._itemVisuals[t], i = n && n[e]; + return null == i ? this.getVisual(e) : i + }, t.prototype.hasItemVisual = function () { + return this._itemVisuals.length > 0 + }, t.prototype.ensureUniqueItemVisual = function (t, e) { + var n = this._itemVisuals, i = n[t]; + i || (i = n[t] = {}); + var r = i[e]; + return null == r && (r = this.getVisual(e), T(r) ? r = r.slice() : CA(r) && (r = h({}, r)), i[e] = r), r + }, t.prototype.setItemVisual = function (t, e, n) { + var i = this._itemVisuals[t] || {}; + this._itemVisuals[t] = i, CA(e) ? h(i, e) : i[e] = n + }, t.prototype.clearAllVisual = function () { + this._visual = {}, this._itemVisuals = [] + }, t.prototype.setLayout = function (t, e) { + if (CA(t)) for (var n in t) t.hasOwnProperty(n) && this.setLayout(n, t[n]); else this._layout[t] = e + }, t.prototype.getLayout = function (t) { + return this._layout[t] + }, t.prototype.getItemLayout = function (t) { + return this._itemLayouts[t] + }, t.prototype.setItemLayout = function (t, e, n) { + this._itemLayouts[t] = n ? h(this._itemLayouts[t] || {}, e) : e + }, t.prototype.clearItemLayouts = function () { + this._itemLayouts.length = 0 + }, t.prototype.setItemGraphicEl = function (t, e) { + var n = this.hostModel; + if (e) { + var i = Gb(e); + i.dataIndex = t, i.dataType = this.dataType, i.seriesIndex = n && n.seriesIndex, "group" === e.type && e.traverse(xA, e) + } + this._graphicEls[t] = e + }, t.prototype.getItemGraphicEl = function (t) { + return this._graphicEls[t] + }, t.prototype.eachItemGraphicEl = function (t, e) { + y(this._graphicEls, function (n, i) { + n && t && t.call(e, n, i) + }) + }, t.prototype.cloneShallow = function (e) { + if (!e) { + var n = IA(this.dimensions, this.getDimensionInfo, this); + e = new t(n, this.hostModel) + } + if (e._storage = this._storage, e._storageArr = this._storageArr, wA(e, this), this._indices) { + var i = this._indices.constructor; + if (i === Array) { + var r = this._indices.length; + e._indices = new i(r); + for (var o = 0; r > o; o++) e._indices[o] = this._indices[o] + } else e._indices = new i(this._indices) + } else e._indices = null; + return e.getRawIndex = e._indices ? fA : pA, e + }, t.prototype.wrapMethod = function (t, e) { + var n = this[t]; + "function" == typeof n && (this.__wrappedMethods = this.__wrappedMethods || [], this.__wrappedMethods.push(t), this[t] = function () { + var t = n.apply(this, arguments); + return e.apply(this, [t].concat(H(arguments))) + }) + }, t.internalField = function () { + function e(t, e, n, i) { + return Hu(t[i], this._dimensionInfos[e]) + } + + function n(t) { + var e = t.constructor; + return e === Array ? t.slice() : new e(t) + } + + lA = { + arrayRows: e, objectRows: function (t, e) { + return Hu(t[e], this._dimensionInfos[e]) + }, keyedColumns: e, original: function (t, e, n, i) { + var r = t && (null == t.value ? t : t.value); + return !this._rawData.pure && Lo(t) && (this.hasItemOption = !0), Hu(r instanceof Array ? r[i] : r, this._dimensionInfos[e]) + }, typedArray: function (t, e, n, i) { + return t[i] + } + }, uA = function (t) { + var e = t._invertedIndicesMap; + y(e, function (n, i) { + var r = t._dimensionInfos[i], o = r.ordinalMeta; + if (o) { + n = e[i] = new OA(o.categories.length); + for (var a = 0; a < n.length; a++) n[a] = DA; + for (var a = 0; a < t._count; a++) n[t.get(i, a)] = a + } + }) + }, gA = function (t, e, n, i) { + var r, o = t._storageArr[e]; + return o && (r = o[i], n && n.categories.length && (r = n.categories[r])), Vo(r, null) + }, hA = function (t) { + return t._rawCount > 65535 ? PA : RA + }, cA = function (t, e, n, i) { + var r = LA[e.type], o = e.name; + if (i) { + var a = t[o], s = a && a.length; + if (s !== n) { + for (var l = new r(n), u = 0; s > u; u++) l[u] = a[u]; + t[o] = l + } + } else t[o] = new r(n) + }, pA = function (t) { + return t + }, fA = function (t) { + return t < this._count && t >= 0 ? this._indices[t] : -1 + }, dA = function (t, e) { + var n = t._idList[e]; + return null == n && null != t._idDimIdx && (n = gA(t, t._idDimIdx, t._idOrdinalMeta, e)), null == n && (n = kA + e), n + }, vA = function (t) { + return T(t) || (t = null != t ? [t] : []), t + }, mA = function (e, i) { + var r = e.dimensions, o = new t(IA(r, e.getDimensionInfo, e), e.hostModel); + wA(o, e); + for (var a = o._storage = {}, s = e._storage, l = o._storageArr = [], u = 0; u < r.length; u++) { + var h = r[u]; + s[h] && (p(i, h) >= 0 ? (a[h] = n(s[h]), o._rawExtent[h] = _A(), o._extent[h] = null) : a[h] = s[h], l.push(a[h])) + } + return o + }, _A = function () { + return [1 / 0, -1 / 0] + }, xA = function (t) { + var e = Gb(t), n = Gb(this); + e.seriesIndex = n.seriesIndex, e.dataIndex = n.dataIndex, e.dataType = n.dataType + }, wA = function (t, e) { + y(EA.concat(e.__wrappedMethods || []), function (n) { + e.hasOwnProperty(n) && (t[n] = e[n]) + }), t.__wrappedMethods = e.__wrappedMethods, y(zA, function (n) { + t[n] = s(e[n]) + }), t._calculationInfo = h({}, e._calculationInfo) + }, yA = function (t, e) { + var n = t._nameList, i = t._idList, r = t._nameDimIdx, o = t._idDimIdx, a = n[e], s = i[e]; + if (null == a && null != r && (n[e] = a = gA(t, r, t._nameOrdinalMeta, e)), null == s && null != o && (i[e] = s = gA(t, o, t._idOrdinalMeta, e)), null == s && null != a) { + var l = t._nameRepeatCount, u = l[a] = (l[a] || 0) + 1; + s = a, u > 1 && (s += "__ec__" + u), i[e] = s + } + } + }(), t + }(), NA = function () { + function t(t) { + this.coordSysDims = [], this.axisMap = U(), this.categoryAxisMap = U(), this.coordSysName = t + } + + return t + }(), FA = { + cartesian2d: function (t, e, n, i) { + var r = t.getReferringComponents("xAxis", Rb).models[0], + o = t.getReferringComponents("yAxis", Rb).models[0]; + e.coordSysDims = ["x", "y"], n.set("x", r), n.set("y", o), Np(r) && (i.set("x", r), e.firstCategoryDimIndex = 0), Np(o) && (i.set("y", o), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = 1)) + }, singleAxis: function (t, e, n, i) { + var r = t.getReferringComponents("singleAxis", Rb).models[0]; + e.coordSysDims = ["single"], n.set("single", r), Np(r) && (i.set("single", r), e.firstCategoryDimIndex = 0) + }, polar: function (t, e, n, i) { + var r = t.getReferringComponents("polar", Rb).models[0], o = r.findAxisModel("radiusAxis"), + a = r.findAxisModel("angleAxis"); + e.coordSysDims = ["radius", "angle"], n.set("radius", o), n.set("angle", a), Np(o) && (i.set("radius", o), e.firstCategoryDimIndex = 0), Np(a) && (i.set("angle", a), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = 1)) + }, geo: function (t, e) { + e.coordSysDims = ["lng", "lat"] + }, parallel: function (t, e, n, i) { + var r = t.ecModel, o = r.getComponent("parallel", t.get("parallelIndex")), + a = e.coordSysDims = o.dimensions.slice(); + y(o.parallelAxisIndex, function (t, o) { + var s = r.getComponent("parallelAxis", t), l = a[o]; + n.set(l, s), Np(s) && (i.set(l, s), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = o)) + }) + } + }, HA = function () { + function t(t) { + this._setting = t || {}, this._extent = [1 / 0, -1 / 0] + } + + return t.prototype.getSetting = function (t) { + return this._setting[t] + }, t.prototype.unionExtent = function (t) { + var e = this._extent; + t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]) + }, t.prototype.unionExtentFromData = function (t, e) { + this.unionExtent(t.getApproximateExtent(e)) + }, t.prototype.getExtent = function () { + return this._extent.slice() + }, t.prototype.setExtent = function (t, e) { + var n = this._extent; + isNaN(t) || (n[0] = t), isNaN(e) || (n[1] = e) + }, t.prototype.isInExtentRange = function (t) { + return this._extent[0] <= t && this._extent[1] >= t + }, t.prototype.isBlank = function () { + return this._isBlank + }, t.prototype.setBlank = function (t) { + this._isBlank = t + }, t + }(); + ua(HA, {registerWhenExtend: !0}); + var VA = function () { + function t(t) { + this.categories = t.categories || [], this._needCollect = t.needCollect, this._deduplication = t.deduplication + } + + return t.createByAxisModel = function (e) { + var n = e.option, i = n.data, r = i && v(i, Yp); + return new t({categories: r, needCollect: !r, deduplication: n.dedplication !== !1}) + }, t.prototype.getOrdinal = function (t) { + return this._getOrCreateMap().get(t) + }, t.prototype.parseAndCollect = function (t) { + var e, n = this._needCollect; + if ("string" != typeof t && !n) return t; + if (n && !this._deduplication) return e = this.categories.length, this.categories[e] = t, e; + var i = this._getOrCreateMap(); + return e = i.get(t), null == e && (n ? (e = this.categories.length, this.categories[e] = t, i.set(t, e)) : e = 0 / 0), e + }, t.prototype._getOrCreateMap = function () { + return this._map || (this._map = U(this.categories)) + }, t + }(), GA = so, WA = function (t) { + function n(e) { + var n = t.call(this, e) || this; + n.type = "ordinal"; + var i = n.getSetting("ordinalMeta"); + return i || (i = new VA({})), T(i) && (i = new VA({ + categories: v(i, function (t) { + return D(t) ? t.value : t + }) + })), n._ordinalMeta = i, n._categorySortInfo = [], n._extent = n.getSetting("extent") || [0, i.categories.length - 1], n + } + + return e(n, t), n.prototype.parse = function (t) { + return "string" == typeof t ? this._ordinalMeta.getOrdinal(t) : Math.round(t) + }, n.prototype.contain = function (t) { + return t = this.parse(t), Kp(t, this._extent) && null != this._ordinalMeta.categories[t] + }, n.prototype.normalize = function (t) { + return t = this.getCategoryIndex(this.parse(t)), $p(t, this._extent) + }, n.prototype.scale = function (t) { + return t = this.getCategoryIndex(t), Math.round(Jp(t, this._extent)) + }, n.prototype.getTicks = function () { + for (var t = [], e = this._extent, n = e[0]; n <= e[1];) t.push({value: this.getCategoryIndex(n)}), n++; + return t + }, n.prototype.getMinorTicks = function () { + }, n.prototype.setCategorySortInfo = function (t) { + this._categorySortInfo = t + }, n.prototype.getCategorySortInfo = function () { + return this._categorySortInfo + }, n.prototype.getCategoryIndex = function (t) { + return this._categorySortInfo.length ? this._categorySortInfo[t].beforeSortIndex : t + }, n.prototype.getRawIndex = function (t) { + return this._categorySortInfo.length ? this._categorySortInfo[t].ordinalNumber : t + }, n.prototype.getLabel = function (t) { + if (!this.isBlank()) { + var e = this.getRawIndex(t.value), n = this._ordinalMeta.categories[e]; + return null == n ? "" : n + "" + } + }, n.prototype.count = function () { + return this._extent[1] - this._extent[0] + 1 + }, n.prototype.unionExtentFromData = function (t, e) { + this.unionExtent(t.getApproximateExtent(e)) + }, n.prototype.isInExtentRange = function (t) { + return t = this.getCategoryIndex(t), this._extent[0] <= t && this._extent[1] >= t + }, n.prototype.getOrdinalMeta = function () { + return this._ordinalMeta + }, n.prototype.niceTicks = function () { + }, n.prototype.niceExtent = function () { + }, n.type = "ordinal", n + }(HA); + HA.registerClass(WA); + var XA = so, YA = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = "interval", e._interval = 0, e._intervalPrecision = 2, e + } + + return e(n, t), n.prototype.parse = function (t) { + return t + }, n.prototype.contain = function (t) { + return Kp(t, this._extent) + }, n.prototype.normalize = function (t) { + return $p(t, this._extent) + }, n.prototype.scale = function (t) { + return Jp(t, this._extent) + }, n.prototype.setExtent = function (t, e) { + var n = this._extent; + isNaN(t) || (n[0] = parseFloat(t)), isNaN(e) || (n[1] = parseFloat(e)) + }, n.prototype.unionExtent = function (t) { + var e = this._extent; + t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]), this.setExtent(e[0], e[1]) + }, n.prototype.getInterval = function () { + return this._interval + }, n.prototype.setInterval = function (t) { + this._interval = t, this._niceExtent = this._extent.slice(), this._intervalPrecision = qp(t) + }, n.prototype.getTicks = function (t) { + var e = this._interval, n = this._extent, i = this._niceExtent, r = this._intervalPrecision, o = []; + if (!e) return o; + var a = 1e4; + n[0] < i[0] && o.push(t ? {value: XA(i[0] - e, r)} : {value: n[0]}); + for (var s = i[0]; s <= i[1] && (o.push({value: s}), s = XA(s + e, r), s !== o[o.length - 1].value);) if (o.length > a) return []; + var l = o.length ? o[o.length - 1].value : i[1]; + return n[1] > l && o.push(t ? {value: XA(l + e, r)} : {value: n[1]}), o + }, n.prototype.getMinorTicks = function (t) { + for (var e = this.getTicks(!0), n = [], i = this.getExtent(), r = 1; r < e.length; r++) { + for (var o = e[r], a = e[r - 1], s = 0, l = [], u = o.value - a.value, h = u / t; t - 1 > s;) { + var c = XA(a.value + (s + 1) * h); + c > i[0] && c < i[1] && l.push(c), s++ + } + n.push(l) + } + return n + }, n.prototype.getLabel = function (t, e) { + if (null == t) return ""; + var n = e && e.precision; + null == n ? n = ho(t.value) || 0 : "auto" === n && (n = this._intervalPrecision); + var i = XA(t.value, n, !0); + return ml(i) + }, n.prototype.niceTicks = function (t, e, n) { + t = t || 5; + var i = this._extent, r = i[1] - i[0]; + if (isFinite(r)) { + 0 > r && (r = -r, i.reverse()); + var o = Up(i, t, e, n); + this._intervalPrecision = o.intervalPrecision, this._interval = o.interval, this._niceExtent = o.niceTickExtent + } + }, n.prototype.niceExtent = function (t) { + var e = this._extent; + if (e[0] === e[1]) if (0 !== e[0]) { + var n = e[0]; + t.fixMax ? e[0] -= n / 2 : (e[1] += n / 2, e[0] -= n / 2) + } else e[1] = 1; + var i = e[1] - e[0]; + isFinite(i) || (e[0] = 0, e[1] = 1), this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval); + var r = this._interval; + t.fixMin || (e[0] = XA(Math.floor(e[0] / r) * r)), t.fixMax || (e[1] = XA(Math.ceil(e[1] / r) * r)) + }, n.type = "interval", n + }(HA); + HA.registerClass(YA); + var UA = "__ec_stack_", qA = .5, jA = "undefined" != typeof Float32Array ? Float32Array : Array, ZA = { + seriesType: "bar", plan: wh(), reset: function (t) { + if (lf(t) && uf(t)) { + var e = t.getData(), n = t.coordinateSystem, i = n.master.getRect(), r = n.getBaseAxis(), + o = n.getOtherAxis(r), a = e.mapDimension(o.dim), s = e.mapDimension(r.dim), l = o.isHorizontal(), + u = l ? 0 : 1, h = af(rf([t]), r, t).width; + return h > qA || (h = qA), { + progress: function (t, e) { + for (var c, p = t.count, f = new jA(2 * p), d = new jA(2 * p), g = new jA(p), y = [], v = [], m = 0, _ = 0; null != (c = t.next());) v[u] = e.get(a, c), v[1 - u] = e.get(s, c), y = n.dataToPoint(v, null, y), d[m] = l ? i.x + i.width : y[0], f[m++] = y[0], d[m] = l ? y[1] : i.y + i.height, f[m++] = y[1], g[_++] = c; + e.setLayout({ + largePoints: f, + largeDataIndices: g, + largeBackgroundPoints: d, + barWidth: h, + valueAxisStart: hf(r, o, !1), + backgroundStart: l ? i.x : i.y, + valueAxisHorizontal: l + }) + } + } + } + } + }, KA = function (t, e, n, i) { + for (; i > n;) { + var r = n + i >>> 1; + t[r][1] < e ? n = r + 1 : i = r + } + return n + }, $A = function (t) { + function n(e) { + var n = t.call(this, e) || this; + return n.type = "time", n + } + + return e(n, t), n.prototype.getLabel = function (t) { + var e = this.getSetting("useUTC"); + return Qs(t.value, YS[Js(Ks(this._minLevelUnit))] || YS.second, e, this.getSetting("locale")) + }, n.prototype.getFormattedLabel = function (t, e, n) { + var i = this.getSetting("useUTC"), r = this.getSetting("locale"); + return tl(t, e, n, r, i) + }, n.prototype.getTicks = function () { + var t = this._interval, e = this._extent, n = []; + if (!t) return n; + n.push({value: e[0], level: 0}); + var i = this.getSetting("useUTC"), r = mf(this._minLevelUnit, this._approxInterval, i, e); + return n = n.concat(r), n.push({value: e[1], level: 0}), n + }, n.prototype.niceExtent = function (t) { + var e = this._extent; + if (e[0] === e[1] && (e[0] -= VS, e[1] += VS), e[1] === -1 / 0 && 1 / 0 === e[0]) { + var n = new Date; + e[1] = +new Date(n.getFullYear(), n.getMonth(), n.getDate()), e[0] = e[1] - VS + } + this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval) + }, n.prototype.niceTicks = function (t, e, n) { + t = t || 10; + var i = this._extent, r = i[1] - i[0]; + this._approxInterval = r / t, null != e && this._approxInterval < e && (this._approxInterval = e), null != n && this._approxInterval > n && (this._approxInterval = n); + var o = JA.length, a = Math.min(KA(JA, this._approxInterval, 0, o), o - 1); + this._interval = JA[a][1], this._minLevelUnit = JA[Math.max(a - 1, 0)][0] + }, n.prototype.parse = function (t) { + return "number" == typeof t ? t : +yo(t) + }, n.prototype.contain = function (t) { + return Kp(this.parse(t), this._extent) + }, n.prototype.normalize = function (t) { + return $p(this.parse(t), this._extent) + }, n.prototype.scale = function (t) { + return Jp(t, this._extent) + }, n.type = "time", n + }(YA), + JA = [["second", NS], ["minute", FS], ["hour", HS], ["quarter-day", 6 * HS], ["half-day", 12 * HS], ["day", 1.2 * VS], ["half-week", 3.5 * VS], ["week", 7 * VS], ["month", 31 * VS], ["quarter", 95 * VS], ["half-year", GS / 2], ["year", GS]]; + HA.registerClass($A); + var QA = HA.prototype, tD = YA.prototype, eD = ho, nD = so, iD = Math.floor, rD = Math.ceil, oD = Math.pow, + aD = Math.log, sD = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = "log", e.base = 10, e._originalScale = new YA, e._interval = 0, e + } + + return e(n, t), n.prototype.getTicks = function (t) { + var e = this._originalScale, n = this._extent, i = e.getExtent(), r = tD.getTicks.call(this, t); + return v(r, function (t) { + var e = t.value, r = so(oD(this.base, e)); + return r = e === n[0] && this._fixMin ? _f(r, i[0]) : r, r = e === n[1] && this._fixMax ? _f(r, i[1]) : r, {value: r} + }, this) + }, n.prototype.setExtent = function (t, e) { + var n = this.base; + t = aD(t) / aD(n), e = aD(e) / aD(n), tD.setExtent.call(this, t, e) + }, n.prototype.getExtent = function () { + var t = this.base, e = QA.getExtent.call(this); + e[0] = oD(t, e[0]), e[1] = oD(t, e[1]); + var n = this._originalScale, i = n.getExtent(); + return this._fixMin && (e[0] = _f(e[0], i[0])), this._fixMax && (e[1] = _f(e[1], i[1])), e + }, n.prototype.unionExtent = function (t) { + this._originalScale.unionExtent(t); + var e = this.base; + t[0] = aD(t[0]) / aD(e), t[1] = aD(t[1]) / aD(e), QA.unionExtent.call(this, t) + }, n.prototype.unionExtentFromData = function (t, e) { + this.unionExtent(t.getApproximateExtent(e)) + }, n.prototype.niceTicks = function (t) { + t = t || 10; + var e = this._extent, n = e[1] - e[0]; + if (!(1 / 0 === n || 0 >= n)) { + var i = vo(n), r = t / n * i; + for (.5 >= r && (i *= 10); !isNaN(i) && Math.abs(i) < 1 && Math.abs(i) > 0;) i *= 10; + var o = [so(rD(e[0] / i) * i), so(iD(e[1] / i) * i)]; + this._interval = i, this._niceExtent = o + } + }, n.prototype.niceExtent = function (t) { + tD.niceExtent.call(this, t), this._fixMin = t.fixMin, this._fixMax = t.fixMax + }, n.prototype.parse = function (t) { + return t + }, n.prototype.contain = function (t) { + return t = aD(t) / aD(this.base), Kp(t, this._extent) + }, n.prototype.normalize = function (t) { + return t = aD(t) / aD(this.base), $p(t, this._extent) + }, n.prototype.scale = function (t) { + return t = Jp(t, this._extent), oD(this.base, t) + }, n.type = "log", n + }(HA), lD = sD.prototype; + lD.getMinorTicks = tD.getMinorTicks, lD.getLabel = tD.getLabel, HA.registerClass(sD); + var uD = function () { + function t(t, e, n) { + this._prepareParams(t, e, n) + } + + return t.prototype._prepareParams = function (t, e, n) { + n[1] < n[0] && (n = [0 / 0, 0 / 0]), this._dataMin = n[0], this._dataMax = n[1]; + var i = this._isOrdinal = "ordinal" === t.type; + this._needCrossZero = e.getNeedCrossZero && e.getNeedCrossZero(); + var r = this._modelMinRaw = e.get("min", !0); + M(r) ? this._modelMinNum = wf(t, r({ + min: n[0], + max: n[1] + })) : "dataMin" !== r && (this._modelMinNum = wf(t, r)); + var o = this._modelMaxRaw = e.get("max", !0); + if (M(o) ? this._modelMaxNum = wf(t, o({ + min: n[0], + max: n[1] + })) : "dataMax" !== o && (this._modelMaxNum = wf(t, o)), i) this._axisDataLen = e.getCategories().length; else { + var a = e.get("boundaryGap"), s = T(a) ? a : [a || 0, a || 0]; + this._boundaryGapInner = "boolean" == typeof s[0] || "boolean" == typeof s[1] ? [0, 0] : [Fn(s[0], 1), Fn(s[1], 1)] + } + }, t.prototype.calculate = function () { + var t = this._isOrdinal, e = this._dataMin, n = this._dataMax, i = this._axisDataLen, + r = this._boundaryGapInner, o = t ? null : n - e || Math.abs(e), + a = "dataMin" === this._modelMinRaw ? e : this._modelMinNum, + s = "dataMax" === this._modelMaxRaw ? n : this._modelMaxNum, l = null != a, u = null != s; + null == a && (a = t ? i ? 0 : 0 / 0 : e - r[0] * o), null == s && (s = t ? i ? i - 1 : 0 / 0 : n + r[1] * o), (null == a || !isFinite(a)) && (a = 0 / 0), (null == s || !isFinite(s)) && (s = 0 / 0), a > s && (a = 0 / 0, s = 0 / 0); + var h = z(a) || z(s) || t && !i; + this._needCrossZero && (a > 0 && s > 0 && !l && (a = 0), 0 > a && 0 > s && !u && (s = 0)); + var c = this._determinedMin, p = this._determinedMax; + return null != c && (a = c, l = !0), null != p && (s = p, u = !0), { + min: a, + max: s, + minFixed: l, + maxFixed: u, + isBlank: h + } + }, t.prototype.modifyDataMinMax = function (t, e) { + this[cD[t]] = e + }, t.prototype.setDeterminedMinMax = function (t, e) { + var n = hD[t]; + this[n] = e + }, t.prototype.freeze = function () { + this.frozen = !0 + }, t + }(), hD = {min: "_determinedMin", max: "_determinedMax"}, cD = {min: "_dataMin", max: "_dataMax"}, + pD = function () { + function t() { + } + + return t.prototype.getNeedCrossZero = function () { + var t = this.option; + return !t.scale + }, t.prototype.getCoordSysModel = function () { + }, t + }(), fD = {isDimensionStacked: Hp, enableDataStack: Fp, getStackedDimension: Vp}, + dD = (Object.freeze || Object)({ + createList: Ef, + getLayoutRect: kl, + dataStack: fD, + createScale: zf, + mixinAxisModelCommonMethods: Bf, + getECData: Gb, + createDimensions: zp, + createSymbol: Yc + }), gD = 1e-8, yD = function () { + function t(t, e, n) { + if (this.name = t, this.geometries = e, n) n = [n[0], n[1]]; else { + var i = this.getBoundingRect(); + n = [i.x + i.width / 2, i.y + i.height / 2] + } + this.center = n + } + + return t.prototype.getBoundingRect = function () { + var t = this._rect; + if (t) return t; + for (var e = Number.MAX_VALUE, n = [e, e], i = [-e, -e], r = [], o = [], a = this.geometries, s = 0; s < a.length; s++) if ("polygon" === a[s].type) { + var l = a[s].exterior; + Ai(l, r, o), ye(n, n, r), ve(i, i, o) + } + return 0 === s && (n[0] = n[1] = i[0] = i[1] = 0), this._rect = new Vm(n[0], n[1], i[0] - n[0], i[1] - n[1]) + }, t.prototype.contain = function (t) { + var e = this.getBoundingRect(), n = this.geometries; + if (!e.contain(t[0], t[1])) return !1; + t:for (var i = 0, r = n.length; r > i; i++) if ("polygon" === n[i].type) { + var o = n[i].exterior, a = n[i].interiors; + if (Ff(o, t[0], t[1])) { + for (var s = 0; s < (a ? a.length : 0); s++) if (Ff(a[s], t[0], t[1])) continue t; + return !0 + } + } + return !1 + }, t.prototype.transformTo = function (t, e, n, i) { + var r = this.getBoundingRect(), o = r.width / r.height; + n ? i || (i = n / o) : n = o * i; + for (var a = new Vm(t, e, n, i), s = r.calculateTransform(a), l = this.geometries, u = 0; u < l.length; u++) if ("polygon" === l[u].type) { + for (var h = l[u].exterior, c = l[u].interiors, p = 0; p < h.length; p++) ge(h[p], h[p], s); + for (var f = 0; f < (c ? c.length : 0); f++) for (var p = 0; p < c[f].length; p++) ge(c[f][p], c[f][p], s) + } + r = this._rect, r.copy(a), this.center = [r.x + r.width / 2, r.y + r.height / 2] + }, t.prototype.cloneShallow = function (e) { + null == e && (e = this.name); + var n = new t(e, this.geometries, this.center); + return n._rect = this._rect, n.transformTo = null, n + }, t + }(), vD = qo(), mD = [0, 1], _D = function () { + function t(t, e, n) { + this.onBand = !1, this.inverse = !1, this.dim = t, this.scale = e, this._extent = n || [0, 0] + } + + return t.prototype.contain = function (t) { + var e = this._extent, n = Math.min(e[0], e[1]), i = Math.max(e[0], e[1]); + return t >= n && i >= t + }, t.prototype.containData = function (t) { + return this.scale.contain(t) + }, t.prototype.getExtent = function () { + return this._extent.slice() + }, t.prototype.getPixelPrecision = function (t) { + return co(t || this.scale.getExtent(), this._extent) + }, t.prototype.setExtent = function (t, e) { + var n = this._extent; + n[0] = t, n[1] = e + }, t.prototype.dataToCoord = function (t, e) { + var n = this._extent, i = this.scale; + return t = i.normalize(t), this.onBand && "ordinal" === i.type && (n = n.slice(), id(n, i.count())), oo(t, mD, n, e) + }, t.prototype.coordToData = function (t, e) { + var n = this._extent, i = this.scale; + this.onBand && "ordinal" === i.type && (n = n.slice(), id(n, i.count())); + var r = oo(t, n, mD, e); + return this.scale.scale(r) + }, t.prototype.pointToData = function () { + }, t.prototype.getTicksCoords = function (t) { + t = t || {}; + var e = t.tickModel || this.getTickModel(), n = Xf(this, e), i = n.ticks, r = v(i, function (t) { + return { + coord: this.dataToCoord("ordinal" === this.scale.type ? this.scale.getRawIndex(t) : t), + tickValue: t + } + }, this), o = e.get("alignWithLabel"); + return rd(this, r, o, t.clamp), r + }, t.prototype.getMinorTicksCoords = function () { + if ("ordinal" === this.scale.type) return []; + var t = this.model.getModel("minorTick"), e = t.get("splitNumber"); + e > 0 && 100 > e || (e = 5); + var n = this.scale.getMinorTicks(e), i = v(n, function (t) { + return v(t, function (t) { + return {coord: this.dataToCoord(t), tickValue: t} + }, this) + }, this); + return i + }, t.prototype.getViewLabels = function () { + return Wf(this).labels + }, t.prototype.getLabelModel = function () { + return this.model.getModel("axisLabel") + }, t.prototype.getTickModel = function () { + return this.model.getModel("axisTick") + }, t.prototype.getBandWidth = function () { + var t = this._extent, e = this.scale.getExtent(), n = e[1] - e[0] + (this.onBand ? 1 : 0); + 0 === n && (n = 1); + var i = Math.abs(t[1] - t[0]); + return Math.abs(i) / n + }, t.prototype.calculateCategoryInterval = function () { + return Qf(this) + }, t + }(), xD = Gf, wD = {}; + y(["linearMap", "round", "asc", "getPrecision", "getPrecisionSafe", "getPixelPrecision", "getPercentWithPrecision", "MAX_SAFE_INTEGER", "remRadian", "isRadianAroundZero", "parseDate", "quantity", "quantityExponent", "nice", "quantile", "reformIntervals", "isNumeric", "numericToNumber"], function (t) { + wD[t] = Db[t] + }); + var bD = {}; + y(["addCommas", "toCamelCase", "normalizeCssArray", "encodeHTML", "formatTpl", "getTooltipMarker", "formatTime", "capitalFirst", "truncateText", "getTextRect"], function (t) { + bD[t] = QS[t] + }); + var SD = {parse: yo, format: Qs}, TD = {}; + y(["map", "each", "filter", "indexOf", "inherits", "reduce", "filter", "bind", "curry", "isArray", "isString", "isObject", "isFunction", "extend", "defaults", "clone", "merge"], function (t) { + TD[t] = Nv[t] + }); + var MD = ["extendShape", "extendPath", "makePath", "makeImage", "mergePath", "resizePath", "createIcon", "updateProps", "initProps", "getTransform", "clipPointsByRect", "clipRectByRect", "registerShape", "getShapeClass", "Group", "Image", "Text", "Circle", "Ellipse", "Sector", "Ring", "Polygon", "Polyline", "Rect", "Line", "BezierCurve", "Arc", "IncrementalDisplayable", "CompoundPath", "LinearGradient", "RadialGradient", "BoundingRect"], + CD = {}; + y(MD, function (t) { + CD[t] = fS[t] + }); + var ID = function () { + function t(t) { + this.type = "cartesian", this._dimList = [], this._axes = {}, this.name = t || "" + } + + return t.prototype.getAxis = function (t) { + return this._axes[t] + }, t.prototype.getAxes = function () { + return v(this._dimList, function (t) { + return this._axes[t] + }, this) + }, t.prototype.getAxesByScale = function (t) { + return t = t.toLowerCase(), _(this.getAxes(), function (e) { + return e.scale.type === t + }) + }, t.prototype.addAxis = function (t) { + var e = t.dim; + this._axes[e] = t, this._dimList.push(e) + }, t + }(), AD = ["x", "y"], DD = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = "cartesian2d", e.dimensions = AD, e + } + + return e(n, t), n.prototype.calcAffineTransform = function () { + this._transform = this._invTransform = null; + var t = this.getAxis("x").scale, e = this.getAxis("y").scale; + if (od(t) && od(e)) { + var n = t.getExtent(), i = e.getExtent(), r = this.dataToPoint([n[0], i[0]]), + o = this.dataToPoint([n[1], i[1]]), a = n[1] - n[0], s = i[1] - i[0]; + if (a && s) { + var l = (o[0] - r[0]) / a, u = (o[1] - r[1]) / s, h = r[0] - n[0] * l, c = r[1] - i[0] * u, + p = this._transform = [l, 0, 0, u, h, c]; + this._invTransform = Ue([], p) + } + } + }, n.prototype.getBaseAxis = function () { + return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAxis("x") + }, n.prototype.containPoint = function (t) { + var e = this.getAxis("x"), n = this.getAxis("y"); + return e.contain(e.toLocalCoord(t[0])) && n.contain(n.toLocalCoord(t[1])) + }, n.prototype.containData = function (t) { + return this.getAxis("x").containData(t[0]) && this.getAxis("y").containData(t[1]) + }, n.prototype.dataToPoint = function (t, e, n) { + n = n || []; + var i = t[0], r = t[1]; + if (this._transform && null != i && isFinite(i) && null != r && isFinite(r)) return ge(n, t, this._transform); + var o = this.getAxis("x"), a = this.getAxis("y"); + return n[0] = o.toGlobalCoord(o.dataToCoord(i)), n[1] = a.toGlobalCoord(a.dataToCoord(r)), n + }, n.prototype.clampData = function (t, e) { + var n = this.getAxis("x").scale, i = this.getAxis("y").scale, r = n.getExtent(), o = i.getExtent(), + a = n.parse(t[0]), s = i.parse(t[1]); + return e = e || [], e[0] = Math.min(Math.max(Math.min(r[0], r[1]), a), Math.max(r[0], r[1])), e[1] = Math.min(Math.max(Math.min(o[0], o[1]), s), Math.max(o[0], o[1])), e + }, n.prototype.pointToData = function (t, e) { + if (e = e || [], this._invTransform) return ge(e, t, this._invTransform); + var n = this.getAxis("x"), i = this.getAxis("y"); + return e[0] = n.coordToData(n.toLocalCoord(t[0])), e[1] = i.coordToData(i.toLocalCoord(t[1])), e + }, n.prototype.getOtherAxis = function (t) { + return this.getAxis("x" === t.dim ? "y" : "x") + }, n.prototype.getArea = function () { + var t = this.getAxis("x").getGlobalExtent(), e = this.getAxis("y").getGlobalExtent(), + n = Math.min(t[0], t[1]), i = Math.min(e[0], e[1]), r = Math.max(t[0], t[1]) - n, + o = Math.max(e[0], e[1]) - i; + return new Vm(n, i, r, o) + }, n + }(ID), kD = function (t) { + function n(e, n, i, r, o) { + var a = t.call(this, e, n, i) || this; + return a.index = 0, a.type = r || "value", a.position = o || "bottom", a + } + + return e(n, t), n.prototype.isHorizontal = function () { + var t = this.position; + return "top" === t || "bottom" === t + }, n.prototype.getGlobalExtent = function (t) { + var e = this.getExtent(); + return e[0] = this.toGlobalCoord(e[0]), e[1] = this.toGlobalCoord(e[1]), t && e[0] > e[1] && e.reverse(), e + }, n.prototype.pointToData = function (t, e) { + return this.coordToData(this.toLocalCoord(t["x" === this.dim ? 0 : 1]), e) + }, n.prototype.setCategorySortInfo = function (t) { + return "category" !== this.type ? !1 : (this.model.option.categorySortInfo = t, void this.scale.setCategorySortInfo(t)) + }, n + }(_D), LD = function () { + function t(t, e, n) { + this.type = "grid", this._coordsMap = {}, this._coordsList = [], this._axesMap = {}, this._axesList = [], this.axisPointerEnabled = !0, this.dimensions = AD, this._initCartesian(t, e, n), this.model = t + } + + return t.prototype.getRect = function () { + return this._rect + }, t.prototype.update = function (t, e) { + var n = this._axesMap; + this._updateScale(t, this.model), y(n.x, function (t) { + Tf(t.scale, t.model) + }), y(n.y, function (t) { + Tf(t.scale, t.model) + }); + var i = {}; + y(n.x, function (t) { + hd(n, "y", t, i) + }), y(n.y, function (t) { + hd(n, "x", t, i) + }), this.resize(this.model, e) + }, t.prototype.resize = function (t, e, n) { + function i() { + y(s, function (t) { + var e = t.isHorizontal(), n = e ? [0, a.width] : [0, a.height], i = t.inverse ? 1 : 0; + t.setExtent(n[i], n[1 - i]), pd(t, e ? a.x : a.y) + }) + } + + var r = t.getBoxLayoutParams(), o = !n && t.get("containLabel"), + a = kl(r, {width: e.getWidth(), height: e.getHeight()}); + this._rect = a; + var s = this._axesList; + i(), o && (y(s, function (t) { + if (!t.model.get(["axisLabel", "inside"])) { + var e = Df(t); + if (e) { + var n = t.isHorizontal() ? "height" : "width", i = t.model.get(["axisLabel", "margin"]); + a[n] -= e[n] + i, "top" === t.position ? a.y += e.height + i : "left" === t.position && (a.x += e.width + i) + } + } + }), i()), y(this._coordsList, function (t) { + t.calcAffineTransform() + }) + }, t.prototype.getAxis = function (t, e) { + var n = this._axesMap[t]; + return null != n ? n[e || 0] : void 0 + }, t.prototype.getAxes = function () { + return this._axesList.slice() + }, t.prototype.getCartesian = function (t, e) { + if (null != t && null != e) { + var n = "x" + t + "y" + e; + return this._coordsMap[n] + } + D(t) && (e = t.yAxisIndex, t = t.xAxisIndex); + for (var i = 0, r = this._coordsList; i < r.length; i++) if (r[i].getAxis("x").index === t || r[i].getAxis("y").index === e) return r[i] + }, t.prototype.getCartesians = function () { + return this._coordsList.slice() + }, t.prototype.convertToPixel = function (t, e, n) { + var i = this._findConvertTarget(e); + return i.cartesian ? i.cartesian.dataToPoint(n) : i.axis ? i.axis.toGlobalCoord(i.axis.dataToCoord(n)) : null + }, t.prototype.convertFromPixel = function (t, e, n) { + var i = this._findConvertTarget(e); + return i.cartesian ? i.cartesian.pointToData(n) : i.axis ? i.axis.coordToData(i.axis.toLocalCoord(n)) : null + }, t.prototype._findConvertTarget = function (t) { + var e, n, i = t.seriesModel, r = t.xAxisModel || i && i.getReferringComponents("xAxis", Rb).models[0], + o = t.yAxisModel || i && i.getReferringComponents("yAxis", Rb).models[0], a = t.gridModel, + s = this._coordsList; + if (i) e = i.coordinateSystem, p(s, e) < 0 && (e = null); else if (r && o) e = this.getCartesian(r.componentIndex, o.componentIndex); else if (r) n = this.getAxis("x", r.componentIndex); else if (o) n = this.getAxis("y", o.componentIndex); else if (a) { + var l = a.coordinateSystem; + l === this && (e = this._coordsList[0]) + } + return {cartesian: e, axis: n} + }, t.prototype.containPoint = function (t) { + var e = this._coordsList[0]; + return e ? e.containPoint(t) : void 0 + }, t.prototype._initCartesian = function (t, e) { + function n(e) { + return function (n, i) { + if (ud(n, t)) { + var l = n.get("position"); + "x" === e ? "top" !== l && "bottom" !== l && (l = o.bottom ? "top" : "bottom") : "left" !== l && "right" !== l && (l = o.left ? "right" : "left"), o[l] = !0; + var u = new kD(e, Mf(n), [0, 0], n.get("type"), l), h = "category" === u.type; + u.onBand = h && n.get("boundaryGap"), u.inverse = n.get("inverse"), n.axis = u, u.model = n, u.grid = r, u.index = i, r._axesList.push(u), a[e][i] = u, s[e]++ + } + } + } + + var i = this, r = this, o = {left: !1, right: !1, top: !1, bottom: !1}, a = {x: {}, y: {}}, + s = {x: 0, y: 0}; + return e.eachComponent("xAxis", n("x"), this), e.eachComponent("yAxis", n("y"), this), s.x && s.y ? (this._axesMap = a, void y(a.x, function (e, n) { + y(a.y, function (r, o) { + var a = "x" + n + "y" + o, s = new DD(a); + s.master = i, s.model = t, i._coordsMap[a] = s, i._coordsList.push(s), s.addAxis(e), s.addAxis(r) + }) + })) : (this._axesMap = {}, void (this._axesList = [])) + }, t.prototype._updateScale = function (t, e) { + function n(t, e) { + y(Of(t, e.dim), function (n) { + e.scale.unionExtentFromData(t, n) + }) + } + + y(this._axesList, function (t) { + if (t.scale.setExtent(1 / 0, -1 / 0), "category" === t.type) { + var e = t.model.get("categorySortInfo"); + t.scale.setCategorySortInfo(e) + } + }), t.eachSeries(function (t) { + if (sd(t)) { + var i = ld(t), r = i.xAxisModel, o = i.yAxisModel; + if (!ud(r, e) || !ud(o, e)) return; + var a = this.getCartesian(r.componentIndex, o.componentIndex), s = t.getData(), l = a.getAxis("x"), + u = a.getAxis("y"); + "list" === s.type && (n(s, l), n(s, u)) + } + }, this) + }, t.prototype.getTooltipAxes = function (t) { + var e = [], n = []; + return y(this.getCartesians(), function (i) { + var r = null != t && "auto" !== t ? i.getAxis(t) : i.getBaseAxis(), o = i.getOtherAxis(r); + p(e, r) < 0 && e.push(r), p(n, o) < 0 && n.push(o) + }), {baseAxes: e, otherAxes: n} + }, t.create = function (e, n) { + var i = []; + return e.eachComponent("grid", function (r, o) { + var a = new t(r, e, n); + a.name = "grid_" + o, a.resize(r, n, !0), r.coordinateSystem = a, i.push(a) + }), e.eachSeries(function (t) { + if (sd(t)) { + var e = ld(t), n = e.xAxisModel, i = e.yAxisModel, r = n.getCoordSysModel(), o = r.coordinateSystem; + t.coordinateSystem = o.getCartesian(n.componentIndex, i.componentIndex) + } + }), i + }, t.dimensions = AD, t + }(); + ET.register("cartesian2d", LD); + var PD = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.prototype.getInitialData = function () { + return Gp(this.getSource(), this, {useEncodeDefaulter: !0}) + }, n.prototype.getMarkerPosition = function (t) { + var e = this.coordinateSystem; + if (e) { + var n = e.dataToPoint(e.clampData(t)), i = this.getData(), r = i.getLayout("offset"), + o = i.getLayout("size"), a = e.getBaseAxis().isHorizontal() ? 0 : 1; + return n[a] += r + o / 2, n + } + return [0 / 0, 0 / 0] + }, n.type = "series.__base_bar__", n.defaultOption = { + zlevel: 0, + z: 2, + coordinateSystem: "cartesian2d", + legendHoverLink: !0, + barMinHeight: 0, + barMinAngle: 0, + large: !1, + largeThreshold: 400, + progressive: 3e3, + progressiveChunkMode: "mod" + }, n + }(vM); + vM.registerClass(PD); + var OD = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.prototype.getProgressive = function () { + return this.get("large") ? this.get("progressive") : !1 + }, n.prototype.getProgressiveThreshold = function () { + var t = this.get("progressiveThreshold"), e = this.get("largeThreshold"); + return e > t && (t = e), t + }, n.prototype.brushSelector = function (t, e, n) { + return n.rect(e.getItemLayout(t)) + }, n.type = "series.bar", n.dependencies = ["grid", "polar"], n.defaultOption = Xs(PD.defaultOption, { + clip: !0, + roundCap: !1, + showBackground: !1, + backgroundStyle: { + color: "rgba(180, 180, 180, 0.2)", + borderColor: null, + borderWidth: 0, + borderType: "solid", + borderRadius: 0, + shadowBlur: 0, + shadowColor: null, + shadowOffsetX: 0, + shadowOffsetY: 0, + opacity: 1 + }, + select: {itemStyle: {borderColor: "#212121"}}, + realtimeSort: !1 + }), n + }(PD); + vM.registerClass(OD); + var RD = function () { + function t() { + this.cx = 0, this.cy = 0, this.r0 = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0 + } + + return t + }(), ED = function (t) { + function n(e) { + var n = t.call(this, e) || this; + return n.type = "sausage", n + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new RD + }, n.prototype.buildPath = function (t, e) { + var n = e.cx, i = e.cy, r = Math.max(e.r0 || 0, 0), o = Math.max(e.r, 0), a = .5 * (o - r), s = r + a, + l = e.startAngle, u = e.endAngle, h = e.clockwise, c = Math.cos(l), p = Math.sin(l), f = Math.cos(u), + d = Math.sin(u), g = h ? u - l < 2 * Math.PI : l - u < 2 * Math.PI; + g && (t.moveTo(c * r + n, p * r + i), t.arc(c * s + n, p * s + i, a, -Math.PI + l, l, !h)), t.arc(n, i, o, l, u, !h), t.moveTo(f * o + n, d * o + i), t.arc(f * s + n, d * s + i, a, u - 2 * Math.PI, u - Math.PI, !h), 0 !== r && (t.arc(n, i, r, u, l, h), t.moveTo(c * r + n, d * r + i)), t.closePath() + }, n + }(xx), zD = ["itemStyle", "borderWidth"], BD = ["itemStyle", "borderRadius"], ND = [0, 0], FD = Math.max, + HD = Math.min, VD = function (t) { + function n() { + var e = t.call(this) || this; + return e.type = n.type, e._isFirstFrame = !0, e + } + + return e(n, t), n.prototype.render = function (t, e, n, i) { + this._model = t, this.removeOnRenderedListener(n), this._updateDrawMode(t); + var r = t.get("coordinateSystem"); + ("cartesian2d" === r || "polar" === r) && (this._isLargeDraw ? this._renderLarge(t, e, n) : this._renderNormal(t, e, n, i)) + }, n.prototype.incrementalPrepareRender = function (t) { + this._clear(), this._updateDrawMode(t), this._updateLargeClip(t) + }, n.prototype.incrementalRender = function (t, e) { + this._incrementalRenderLarge(t, e) + }, n.prototype._updateDrawMode = function (t) { + var e = t.pipelineContext.large; + (null == this._isLargeDraw || e !== this._isLargeDraw) && (this._isLargeDraw = e, this._clear()) + }, n.prototype._renderNormal = function (t, e, n, i) { + function r(t) { + var e = XD[h.type](l, t), n = Dd(h, o, e); + return n.useStyle(_.getItemStyle()), "cartesian2d" === h.type && n.setShape("r", x), w[t] = n, n + } + + var o, a = this, s = this.group, l = t.getData(), u = this._data, h = t.coordinateSystem, + c = h.getBaseAxis(); + "cartesian2d" === h.type ? o = c.isHorizontal() : "polar" === h.type && (o = "angle" === c.dim); + var p = t.isAnimationEnabled() ? t : null, f = c.model, d = t.get("realtimeSort"); + if (d && l.count()) { + if (this._isFirstFrame) return this._initSort(l, o, c, n), void (this._isFirstFrame = !1); + this._onRendered = function () { + var t = function (t) { + var e = l.getItemGraphicEl(t); + if (e) { + var n = e.shape; + return (o ? n.y + n.height : n.x + n.width) || 0 + } + return 0 + }; + a._updateSort(l, t, c, n) + }, n.getZr().on("rendered", this._onRendered) + } + var g = t.get("clip", !0) || d, y = _d(h, l); + s.removeClipPath(); + var v = t.get("roundCap", !0), m = t.get("showBackground", !0), _ = t.getModel("backgroundStyle"), + x = _.get("borderRadius") || 0, w = [], b = this._backgroundEls, S = i && i.isInitSort, + T = i && "changeAxisOrder" === i.type; + l.diff(u).add(function (e) { + var n = l.getItemModel(e), i = XD[h.type](l, e, n); + if (m && r(e), l.hasValue(e)) { + var a = !1; + g && (a = GD[h.type](y, i)); + var u = WD[h.type](t, l, e, i, o, p, c.model, !1, v); + bd(u, l, e, n, i, t, o, "polar" === h.type), S ? u.attr({shape: i}) : d ? xd(t, f, p, u, i, e, o, !1, !1) : cs(u, {shape: i}, t, e), l.setItemGraphicEl(e, u), s.add(u), u.ignore = a + } + }).update(function (e, n) { + var i = l.getItemModel(e), a = XD[h.type](l, e, i); + if (m) { + var M = void 0; + 0 === b.length ? M = r(n) : (M = b[n], M.useStyle(_.getItemStyle()), "cartesian2d" === h.type && M.setShape("r", x), w[e] = M); + var C = XD[h.type](l, e), I = Ad(o, C, h); + hs(M, {shape: I}, p, e) + } + var A = u.getItemGraphicEl(n); + if (!l.hasValue(e)) return s.remove(A), void (A = null); + var D = !1; + g && (D = GD[h.type](y, a), D && s.remove(A)), A || (A = WD[h.type](t, l, e, a, o, p, c.model, !!A, v)), T || bd(A, l, e, i, a, t, o, "polar" === h.type), S ? A.attr({shape: a}) : d ? xd(t, f, p, A, a, e, o, !0, T) : hs(A, {shape: a}, t, e, null), l.setItemGraphicEl(e, A), A.ignore = D, s.add(A) + }).remove(function (e) { + var n = u.getItemGraphicEl(e); + n && ds(n, t, e) + }).execute(); + var M = this._backgroundGroup || (this._backgroundGroup = new Ox); + M.removeAll(); + for (var C = 0; C < w.length; ++C) M.add(w[C]); + s.add(M), this._backgroundEls = w, this._data = l + }, n.prototype._renderLarge = function (t) { + this._clear(), Td(t, this.group), this._updateLargeClip(t) + }, n.prototype._incrementalRenderLarge = function (t, e) { + this._removeBackground(), Td(e, this.group, !0) + }, n.prototype._updateLargeClip = function (t) { + var e = t.get("clip", !0) ? gd(t.coordinateSystem, !1, t) : null; + e ? this.group.setClipPath(e) : this.group.removeClipPath() + }, n.prototype._dataSort = function (t, e) { + var n = []; + t.each(function (t) { + n.push({mappedValue: e(t), ordinalNumber: t, beforeSortIndex: null}) + }), n.sort(function (t, e) { + return e.mappedValue - t.mappedValue + }); + for (var i = 0; i < n.length; ++i) n[n[i].ordinalNumber].beforeSortIndex = i; + return v(n, function (t) { + return {ordinalNumber: t.ordinalNumber, beforeSortIndex: t.beforeSortIndex} + }) + }, n.prototype._isDataOrderChanged = function (t, e, n) { + var i = n ? n.length : 0; + if (i !== t.count()) return !0; + for (var r = Number.MAX_VALUE, o = 0; o < n.length; ++o) { + var a = e(n[o].ordinalNumber); + if (a > r) return !0; + r = a + } + return !1 + }, n.prototype._updateSort = function (t, e, n, i) { + var r = n.scale.getCategorySortInfo(), o = this._isDataOrderChanged(t, e, r); + if (o) for (var a = this._dataSort(t, e), s = n.scale.getExtent(), l = s[0]; l < s[1]; ++l) if (!r[l] || r[l].ordinalNumber !== a[l].ordinalNumber) { + this.removeOnRenderedListener(i); + var u = {type: "changeAxisOrder", componentType: n.dim + "Axis", axisId: n.index, sortInfo: a}; + i.dispatchAction(u); + break + } + }, n.prototype._initSort = function (t, e, n, i) { + var r = { + type: "changeAxisOrder", + componentType: n.dim + "Axis", + isInitSort: !0, + axisId: n.index, + sortInfo: this._dataSort(t, function (n) { + return parseFloat(t.get(e ? "y" : "x", n)) || 0 + }) + }; + i.dispatchAction(r) + }, n.prototype.remove = function (t, e) { + this._clear(this._model), this.removeOnRenderedListener(e) + }, n.prototype.dispose = function (t, e) { + this.removeOnRenderedListener(e) + }, n.prototype.removeOnRenderedListener = function (t) { + this._onRendered && (t.getZr().off("rendered", this._onRendered), this._onRendered = null) + }, n.prototype._clear = function (t) { + var e = this.group, n = this._data; + t && t.isAnimationEnabled() && n && !this._isLargeDraw ? (this._removeBackground(), this._backgroundEls = [], n.eachItemGraphicEl(function (e) { + ds(e, t, Gb(e).dataIndex) + })) : e.removeAll(), this._data = null, this._isFirstFrame = !0 + }, n.prototype._removeBackground = function () { + this.group.remove(this._backgroundGroup), this._backgroundGroup = null + }, n.type = "bar", n + }(wM), GD = { + cartesian2d: function (t, e) { + var n = e.width < 0 ? -1 : 1, i = e.height < 0 ? -1 : 1; + 0 > n && (e.x += e.width, e.width = -e.width), 0 > i && (e.y += e.height, e.height = -e.height); + var r = FD(e.x, t.x), o = HD(e.x + e.width, t.x + t.width), a = FD(e.y, t.y), + s = HD(e.y + e.height, t.y + t.height); + e.x = r, e.y = a, e.width = o - r, e.height = s - a; + var l = e.width < 0 || e.height < 0; + return 0 > n && (e.x += e.width, e.width = -e.width), 0 > i && (e.y += e.height, e.height = -e.height), l + }, polar: function (t, e) { + var n = e.r0 <= e.r ? 1 : -1; + if (0 > n) { + var i = e.r; + e.r = e.r0, e.r0 = i + } + var r = HD(e.r, t.r), o = FD(e.r0, t.r0); + e.r = r, e.r0 = o; + var a = 0 > r - o; + if (0 > n) { + var i = e.r; + e.r = e.r0, e.r0 = i + } + return a + } + }, WD = { + cartesian2d: function (t, e, n, i, r, o) { + var a = new Gx({shape: h({}, i), z2: 1}); + if (a.__dataIndex = n, a.name = "item", o) { + var s = a.shape, l = r ? "height" : "width"; + s[l] = 0 + } + return a + }, polar: function (t, e, n, i, r, o, a, s, l) { + var u = i.startAngle < i.endAngle, h = !r && l ? ED : bw, p = new h({shape: c({clockwise: u}, i), z2: 1}); + if (p.name = "item", o) { + var f = p.shape, d = r ? "r" : "endAngle", g = {}; + f[d] = r ? 0 : i.startAngle, g[d] = i[d], (s ? hs : cs)(p, {shape: g}, o) + } + return p + } + }, XD = { + cartesian2d: function (t, e, n) { + var i = t.getItemLayout(e), r = n ? Sd(n, i) : 0, o = i.width > 0 ? 1 : -1, a = i.height > 0 ? 1 : -1; + return {x: i.x + o * r / 2, y: i.y + a * r / 2, width: i.width - o * r, height: i.height - a * r} + }, polar: function (t, e) { + var n = t.getItemLayout(e); + return {cx: n.cx, cy: n.cy, r0: n.r0, r: n.r, startAngle: n.startAngle, endAngle: n.endAngle} + } + }, YD = function () { + function t() { + } + + return t + }(), UD = function (t) { + function n(e) { + var n = t.call(this, e) || this; + return n.type = "largeBar", n + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new YD + }, n.prototype.buildPath = function (t, e) { + for (var n = e.points, i = this.__startPoint, r = this.__baseDimIdx, o = 0; o < n.length; o += 2) i[r] = n[o + r], t.moveTo(i[0], i[1]), t.lineTo(n[o], n[o + 1]) + }, n + }(xx), qD = Ch(function (t) { + var e = this, n = Md(e, t.offsetX, t.offsetY); + Gb(e).dataIndex = n >= 0 ? n : null + }, 30, !1); + wM.registerClass(VD), fp({type: "changeAxisOrder", event: "changeAxisOrder", update: "update"}, function (t, e) { + var n = t.componentType || "series"; + e.eachComponent({mainType: n, query: t}, function (e) { + t.sortInfo && e.axis.setCategorySortInfo(t.sortInfo) + }) + }); + var jD = { + 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: "#6E7079", width: 1, type: "solid"}, + symbol: ["none", "none"], + symbolSize: [10, 15] + }, + axisTick: {show: !0, inside: !1, length: 5, lineStyle: {width: 1}}, + axisLabel: {show: !0, inside: !1, rotate: 0, showMinLabel: null, showMaxLabel: null, margin: 8, fontSize: 12}, + splitLine: {show: !0, lineStyle: {color: ["#E0E6F1"], width: 1, type: "solid"}}, + splitArea: {show: !1, areaStyle: {color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]}} + }, ZD = l({ + boundaryGap: !0, + deduplication: null, + splitLine: {show: !1}, + axisTick: {alignWithLabel: !1, interval: "auto"}, + axisLabel: {interval: "auto"} + }, jD), KD = l({ + boundaryGap: [0, 0], + axisLine: {show: "auto"}, + axisTick: {show: "auto"}, + splitNumber: 5, + minorTick: {show: !1, splitNumber: 5, length: 3, lineStyle: {}}, + minorSplitLine: {show: !1, lineStyle: {color: "#F4F7FD", width: 1}} + }, jD), $D = l({ + scale: !0, + splitNumber: 6, + axisLabel: {showMinLabel: !1, showMaxLabel: !1, rich: {primary: {fontWeight: "bold"}}}, + splitLine: {show: !1} + }, KD), JD = c({scale: !0, logBase: 10}, KD), QD = {category: ZD, value: KD, time: $D, log: JD}, + tk = {value: 1, category: 1, time: 1, log: 1}, ek = function (t) { + function n() { + return null !== t && t.apply(this, arguments) || this + } + + return e(n, t), n.prototype.getCoordSysModel = function () { + return this.getReferringComponents("grid", Rb).models[0] + }, n.type = "cartesian2dAxis", n + }(oT); + d(ek, pD); + var nk = {offset: 0, categorySortInfo: []}; + kd("x", ek, nk), kd("y", ek, nk); + var ik = Math.PI, rk = function () { + function t(t, e) { + this.group = new Ox, this.opt = e, this.axisModel = t, c(e, { + labelOffset: 0, + nameDirection: 1, + tickDirection: 1, + labelDirection: 1, + silent: !0, + handleAutoShown: function () { + return !0 + } + }); + var n = new Ox({x: e.position[0], y: e.position[1], rotation: e.rotation}); + n.updateTransform(), this._transformGroup = n + } + + return t.prototype.hasBuilder = function (t) { + return !!ok[t] + }, t.prototype.add = function (t) { + ok[t](this.opt, this.axisModel, this.group, this._transformGroup) + }, t.prototype.getGroup = function () { + return this.group + }, t.innerTextLayout = function (t, e, n) { + var i, r, o = fo(e - t); + return go(o) ? (r = n > 0 ? "top" : "bottom", i = "center") : go(o - ik) ? (r = n > 0 ? "bottom" : "top", i = "center") : (r = "middle", i = o > 0 && ik > o ? n > 0 ? "right" : "left" : n > 0 ? "left" : "right"), { + rotation: o, + textAlign: i, + textVerticalAlign: r + } + }, t.makeAxisEventDataBase = function (t) { + var e = {componentType: t.mainType, componentIndex: t.componentIndex}; + return e[t.mainType + "Index"] = t.componentIndex, e + }, t.isLabelSilent = function (t) { + var e = t.get("tooltip"); + return t.get("silent") || !(t.get("triggerEvent") || e && e.show) + }, t + }(), ok = { + axisLine: function (t, e, n, i) { + var r = e.get(["axisLine", "show"]); + if ("auto" === r && t.handleAutoShown && (r = t.handleAutoShown("axisLine")), r) { + var o = e.axis.getExtent(), a = i.transform, s = [o[0], 0], l = [o[1], 0]; + a && (ge(s, s, a), ge(l, l, a)); + var u = h({lineCap: "round"}, e.getModel(["axisLine", "lineStyle"]).getLineStyle()), c = new qx({ + subPixelOptimize: !0, + shape: {x1: s[0], y1: s[1], x2: l[0], y2: l[1]}, + style: u, + strokeContainThreshold: t.strokeContainThreshold || 5, + silent: !0, + z2: 1 + }); + c.anid = "line", n.add(c); + var p = e.get(["axisLine", "symbol"]), f = e.get(["axisLine", "symbolSize"]), + d = e.get(["axisLine", "symbolOffset"]) || 0; + if ("number" == typeof d && (d = [d, d]), null != p) { + "string" == typeof p && (p = [p, p]), ("string" == typeof f || "number" == typeof f) && (f = [f, f]); + var g = f[0], v = f[1]; + y([{rotate: t.rotation + Math.PI / 2, offset: d[0], r: 0}, { + rotate: t.rotation - Math.PI / 2, + offset: d[1], + r: Math.sqrt((s[0] - l[0]) * (s[0] - l[0]) + (s[1] - l[1]) * (s[1] - l[1])) + }], function (e, i) { + if ("none" !== p[i] && null != p[i]) { + var r = Yc(p[i], -g / 2, -v / 2, g, v, u.stroke, !0), o = e.r + e.offset; + r.attr({ + rotation: e.rotate, + x: s[0] + o * Math.cos(t.rotation), + y: s[1] - o * Math.sin(t.rotation), + silent: !0, + z2: 11 + }), n.add(r) + } + }) + } + } + }, axisTickLabel: function (t, e, n, i) { + var r = Nd(n, i, e, t), o = Hd(n, i, e, t); + Od(e, o, r), Fd(n, i, e, t.tickDirection) + }, axisName: function (t, e, n, i) { + var r = B(t.axisName, e.get("name")); + if (r) { + var o, a = e.get("nameLocation"), s = t.nameDirection, l = e.getModel("nameTextStyle"), + u = e.get("nameGap") || 0, c = e.axis.getExtent(), p = c[0] > c[1] ? -1 : 1, + f = ["start" === a ? c[0] - p * u : "end" === a ? c[1] + p * u : (c[0] + c[1]) / 2, zd(a) ? t.labelOffset + s * u : 0], + d = e.get("nameRotate"); + null != d && (d = d * ik / 180); + var g; + zd(a) ? o = rk.innerTextLayout(t.rotation, null != d ? d : t.rotation, s) : (o = Pd(t.rotation, a, d || 0, c), g = t.axisNameAvailableWidth, null != g && (g = Math.abs(g / Math.sin(o.rotation)), !isFinite(g) && (g = null))); + var y = l.getFont(), v = e.get("nameTruncate", !0) || {}, m = v.ellipsis, + _ = B(t.nameTruncateMaxWidth, v.maxWidth, g), x = e.get("tooltip", !0), w = e.mainType, + b = {componentType: w, name: r, $vars: ["name"]}; + b[w + "Index"] = e.componentIndex; + var S = new Ew({ + x: f[0], + y: f[1], + rotation: o.rotation, + silent: rk.isLabelSilent(e), + style: Os(l, { + text: r, + font: y, + overflow: "truncate", + width: _, + ellipsis: m, + fill: l.getTextColor() || e.get(["axisLine", "lineStyle", "color"]), + align: l.get("align") || o.textAlign, + verticalAlign: l.get("verticalAlign") || o.textVerticalAlign + }), + z2: 1 + }); + if (S.tooltip = x && x.show ? h({ + content: r, formatter: function () { + return r + }, formatterParams: b + }, x) : null, S.__fullText = r, S.anid = "name", e.get("triggerEvent")) { + var T = rk.makeAxisEventDataBase(e); + T.targetType = "axisName", T.name = r, Gb(S).eventData = T + } + i.add(S), S.updateTransform(), n.add(S), S.decomposeTransform() + } + } + }, ak = {}, sk = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.prototype.render = function (e, n, i) { + this.axisPointerClass && qd(e), t.prototype.render.apply(this, arguments), this._doUpdateAxisPointerClass(e, i, !0) + }, n.prototype.updateAxisPointer = function (t, e, n) { + this._doUpdateAxisPointerClass(t, n, !1) + }, n.prototype.remove = function (t, e) { + var n = this._axisPointer; + n && n.remove(e) + }, n.prototype.dispose = function (e, n) { + this._disposeAxisPointer(n), t.prototype.dispose.apply(this, arguments) + }, n.prototype._doUpdateAxisPointerClass = function (t, e, i) { + var r = n.getAxisPointerClass(this.axisPointerClass); + if (r) { + var o = Zd(t); + o ? (this._axisPointer || (this._axisPointer = new r)).render(t, o, e, i) : this._disposeAxisPointer(e) + } + }, n.prototype._disposeAxisPointer = function (t) { + this._axisPointer && this._axisPointer.dispose(t), this._axisPointer = null + }, n.registerAxisPointerClass = function (t, e) { + ak[t] = e + }, n.getAxisPointerClass = function (t) { + return t && ak[t] + }, n.type = "axis", n + }(mM), lk = qo(), uk = ["axisLine", "axisTickLabel", "axisName"], hk = ["splitArea", "splitLine", "minorSplitLine"], + ck = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e.axisPointerClass = "CartesianAxisPointer", e + } + + return e(n, t), n.prototype.render = function (e, n, i, r) { + this.group.removeAll(); + var o = this._axisGroup; + if (this._axisGroup = new Ox, this.group.add(this._axisGroup), e.get("show")) { + var a = e.getCoordSysModel(), s = ad(a, e), l = new rk(e, h({ + handleAutoShown: function () { + for (var t = a.coordinateSystem.getCartesians(), n = 0; n < t.length; n++) { + var i = t[n].getOtherAxis(e.axis).type; + if ("value" === i || "log" === i) return !0 + } + return !1 + } + }, s)); + y(uk, l.add, l), this._axisGroup.add(l.getGroup()), y(hk, function (t) { + e.get([t, "show"]) && pk[t](this, this._axisGroup, e, a) + }, this), ws(o, this._axisGroup, e), t.prototype.render.call(this, e, n, i, r) + } + }, n.prototype.remove = function () { + Qd(this) + }, n.type = "cartesianAxis", n + }(sk), pk = { + splitLine: function (t, e, n, i) { + var r = n.axis; + if (!r.scale.isBlank()) { + var o = n.getModel("splitLine"), a = o.getModel("lineStyle"), s = a.get("color"); + s = T(s) ? s : [s]; + for (var l = i.coordinateSystem.getRect(), u = r.isHorizontal(), h = 0, p = r.getTicksCoords({tickModel: o}), f = [], d = [], g = a.getLineStyle(), y = 0; y < p.length; y++) { + var v = r.toGlobalCoord(p[y].coord); + u ? (f[0] = v, f[1] = l.y, d[0] = v, d[1] = l.y + l.height) : (f[0] = l.x, f[1] = v, d[0] = l.x + l.width, d[1] = v); + var m = h++ % s.length, _ = p[y].tickValue; + e.add(new qx({ + anid: null != _ ? "line_" + p[y].tickValue : null, + subPixelOptimize: !0, + autoBatch: !0, + shape: {x1: f[0], y1: f[1], x2: d[0], y2: d[1]}, + style: c({stroke: s[m]}, g), + silent: !0 + })) + } + } + }, minorSplitLine: function (t, e, n, i) { + var r = n.axis, o = n.getModel("minorSplitLine"), a = o.getModel("lineStyle"), + s = i.coordinateSystem.getRect(), l = r.isHorizontal(), u = r.getMinorTicksCoords(); + if (u.length) for (var h = [], c = [], p = a.getLineStyle(), f = 0; f < u.length; f++) for (var d = 0; d < u[f].length; d++) { + var g = r.toGlobalCoord(u[f][d].coord); + l ? (h[0] = g, h[1] = s.y, c[0] = g, c[1] = s.y + s.height) : (h[0] = s.x, h[1] = g, c[0] = s.x + s.width, c[1] = g), e.add(new qx({ + anid: "minor_line_" + u[f][d].tickValue, + subPixelOptimize: !0, + autoBatch: !0, + shape: {x1: h[0], y1: h[1], x2: c[0], y2: c[1]}, + style: p, + silent: !0 + })) + } + }, splitArea: function (t, e, n, i) { + Jd(t, e, n, i) + } + }, fk = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.type = "xAxis", n + }(ck), dk = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = fk.type, e + } + + return e(n, t), n.type = "yAxis", n + }(ck); + mM.registerClass(fk), mM.registerClass(dk), hp(cI.PROCESSOR.FILTER + 10, { + getTargetSeries: function (t) { + var e = U(); + return t.eachSeries(function (t) { + sd(t) && e.set(t.uid, t) + }), e + }, overallReset: function (t) { + var e = [], n = U(); + tg(t, n, e), eg(n, e), ng(n) + } + }); + var gk = function (t) { + function n() { + return null !== t && t.apply(this, arguments) || this + } + + return e(n, t), n.type = "grid", n.dependencies = ["xAxis", "yAxis"], n.layoutMode = "box", n.defaultOption = { + show: !1, + zlevel: 0, + z: 0, + left: "10%", + top: 60, + right: "10%", + bottom: 70, + containLabel: !1, + backgroundColor: "rgba(0,0,0,0)", + borderWidth: 1, + borderColor: "#ccc" + }, n + }(oT), yk = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = "grid", e + } + + return e(n, t), n.prototype.render = function (t) { + this.group.removeAll(), t.get("show") && this.group.add(new Gx({ + shape: t.coordinateSystem.getRect(), + style: c({fill: t.get("backgroundColor")}, t.getItemStyle()), + silent: !0, + z2: -1 + })) + }, n.type = "grid", n + }(mM); + mM.registerClass(yk), oT.registerClass(gk), up(function (t) { + t.xAxis && t.yAxis && !t.grid && (t.grid = {}) + }); + var vk = { + average: function (t) { + for (var e = 0, n = 0, i = 0; i < t.length; i++) isNaN(t[i]) || (e += t[i], n++); + return 0 === n ? 0 / 0 : e / n + }, sum: function (t) { + for (var e = 0, n = 0; n < t.length; n++) e += t[n] || 0; + return e + }, max: function (t) { + for (var e = -1 / 0, n = 0; n < t.length; n++) t[n] > e && (e = t[n]); + return isFinite(e) ? e : 0 / 0 + }, min: function (t) { + for (var e = 1 / 0, n = 0; n < t.length; n++) t[n] < e && (e = t[n]); + return isFinite(e) ? e : 0 / 0 + }, nearest: function (t) { + return t[0] + } + }, mk = function (t) { + return Math.round(t.length / 2) + }; + yp(cI.VISUAL.LAYOUT, S(sf, "bar")), yp(cI.VISUAL.PROGRESSIVE_LAYOUT, ZA), vp({ + seriesType: "bar", + reset: function (t) { + t.getData().setVisual("legendSymbol", "roundRect") + } + }), hp(cI.PROCESSOR.STATISTIC, ag("bar")); + var _k = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e.hasSymbolVisual = !0, e.legendSymbol = "line", e + } + + return e(n, t), n.prototype.getInitialData = function () { + return Gp(this.getSource(), this, {useEncodeDefaulter: !0}) + }, n.type = "series.line", n.dependencies = ["grid", "polar"], n.defaultOption = { + zlevel: 0, + z: 3, + coordinateSystem: "cartesian2d", + legendHoverLink: !0, + clip: !0, + label: {position: "top"}, + endLabel: {show: !1, valueAnimation: !0, distance: 8}, + lineStyle: {width: 2, type: "solid"}, + emphasis: {scale: !0, lineStyle: {width: "bolder"}}, + 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 + }, n + }(vM); + vM.registerClass(_k); + var xk = function (t) { + function n(e, n, i, r) { + var o = t.call(this) || this; + return o.updateData(e, n, i, r), o + } + + return e(n, t), n.prototype._createSymbol = function (t, e, n, i, r) { + this.removeAll(); + var o = Yc(t, -1, -1, 2, 2, null, r); + o.attr({ + z2: 100, + culling: !0, + scaleX: i[0] / 2, + scaleY: i[1] / 2 + }), o.drift = sg, this._symbolType = t, this.add(o) + }, n.prototype.stopSymbolAnimation = function (t) { + this.childAt(0).stopAnimation(null, t) + }, n.prototype.getSymbolPath = function () { + return this.childAt(0) + }, n.prototype.highlight = function () { + La(this.childAt(0)) + }, n.prototype.downplay = function () { + Pa(this.childAt(0)) + }, n.prototype.setZ = function (t, e) { + var n = this.childAt(0); + n.zlevel = t, n.z = e + }, n.prototype.setDraggable = function (t) { + var e = this.childAt(0); + e.draggable = t, e.cursor = t ? "move" : e.cursor + }, n.prototype.updateData = function (t, e, i, r) { + this.silent = !1; + var o = t.getItemVisual(e, "symbol") || "circle", a = t.hostModel, s = n.getSymbolSize(t, e), + l = o !== this._symbolType, u = r && r.disableAnimation; + if (l) { + var h = t.getItemVisual(e, "symbolKeepAspect"); + this._createSymbol(o, t, e, s, h) + } else { + var c = this.childAt(0); + c.silent = !1; + var p = {scaleX: s[0] / 2, scaleY: s[1] / 2}; + u ? c.attr(p) : hs(c, p, a, e) + } + if (this._updateCommon(t, e, s, i, r), l) { + var c = this.childAt(0); + if (!u) { + var p = {scaleX: this._sizeX, scaleY: this._sizeY, style: {opacity: c.style.opacity}}; + c.scaleX = c.scaleY = 0, c.style.opacity = 0, cs(c, p, a, e) + } + } + u && this.childAt(0).stopAnimation("remove"), this._seriesModel = a + }, n.prototype._updateCommon = function (t, e, n, i, r) { + function o(e) { + return C ? t.getName(e) : vd(t, e) + } + + var a, s, l, u, c, p, f, d, g, y = this.childAt(0), v = t.hostModel; + if (i && (a = i.emphasisItemStyle, s = i.blurItemStyle, l = i.selectItemStyle, u = i.focus, c = i.blurScope, p = i.symbolOffset, f = i.labelStatesModels, d = i.hoverScale, g = i.cursorStyle), !i || t.hasItemOption) { + var m = i && i.itemModel ? i.itemModel : t.getItemModel(e), _ = m.getModel("emphasis"); + a = _.getModel("itemStyle").getItemStyle(), l = m.getModel(["select", "itemStyle"]).getItemStyle(), s = m.getModel(["blur", "itemStyle"]).getItemStyle(), u = _.get("focus"), c = _.get("blurScope"), p = m.getShallow("symbolOffset"), f = Ps(m), d = _.getShallow("scale"), g = m.getShallow("cursor") + } + var x = t.getItemVisual(e, "symbolRotate"); + y.attr("rotation", (x || 0) * Math.PI / 180 || 0), p && (y.x = ao(p[0], n[0]), y.y = ao(p[1], n[1])), g && y.attr("cursor", g); + var w = t.getItemVisual(e, "style"), b = w.fill; + if (y instanceof zx) { + var S = y.style; + y.useStyle(h({image: S.image, x: S.x, y: S.y, width: S.width, height: S.height}, w)) + } else y.useStyle(y.__isEmptyBrush ? h({}, w) : w), y.style.decal = null, y.setColor(b, r && r.symbolInnerColor), y.style.strokeNoScale = !0; + var T = t.getItemVisual(e, "liftZ"), M = this._z2; + null != T ? null == M && (this._z2 = y.z2, y.z2 += T) : null != M && (y.z2 = M, this._z2 = null); + var C = r && r.useNameLabel; + Ls(y, f, { + labelFetcher: v, + labelDataIndex: e, + defaultText: o, + inheritColor: b, + defaultOpacity: w.opacity + }), this._sizeX = n[0] / 2, this._sizeY = n[1] / 2; + var I = y.ensureState("emphasis"); + if (I.style = a, y.ensureState("select").style = l, y.ensureState("blur").style = s, d) { + var A = Math.max(1.1, 3 / this._sizeY); + I.scaleX = this._sizeX * A, I.scaleY = this._sizeY * A + } + this.setSymbolScale(1), Xa(this, u, c) + }, n.prototype.setSymbolScale = function (t) { + this.scaleX = this.scaleY = t + }, n.prototype.fadeOut = function (t, e) { + var n = this.childAt(0), i = this._seriesModel, r = Gb(this).dataIndex, o = e && e.animation; + if (this.silent = n.silent = !0, e && e.fadeLabel) { + var a = n.getTextContent(); + a && ps(a, {style: {opacity: 0}}, i, { + dataIndex: r, removeOpt: o, cb: function () { + n.removeTextContent() + } + }) + } else n.removeTextContent(); + ps(n, {style: {opacity: 0}, scaleX: 0, scaleY: 0}, i, {dataIndex: r, cb: t, removeOpt: o}) + }, n.getSymbolSize = function (t, e) { + var n = t.getItemVisual(e, "symbolSize"); + return n instanceof Array ? n.slice() : [+n, +n] + }, n + }(Ox), wk = function () { + function t(t) { + this.group = new Ox, this._SymbolCtor = t || xk + } + + return t.prototype.updateData = function (t, e) { + e = ug(e); + var n = this.group, i = t.hostModel, r = this._data, o = this._SymbolCtor, a = e.disableAnimation, + s = hg(t), l = {disableAnimation: a}, u = e.getSymbolPoint || function (e) { + return t.getItemLayout(e) + }; + r || n.removeAll(), t.diff(r).add(function (i) { + var r = u(i); + if (lg(t, r, i, e)) { + var a = new o(t, i, s, l); + a.setPosition(r), t.setItemGraphicEl(i, a), n.add(a) + } + }).update(function (h, c) { + var p = r.getItemGraphicEl(c), f = u(h); + if (!lg(t, f, h, e)) return void n.remove(p); + if (p) { + p.updateData(t, h, s, l); + var d = {x: f[0], y: f[1]}; + a ? p.attr(d) : hs(p, d, i) + } else p = new o(t, h), p.setPosition(f); + n.add(p), t.setItemGraphicEl(h, p) + }).remove(function (t) { + var e = r.getItemGraphicEl(t); + e && e.fadeOut(function () { + n.remove(e) + }) + }).execute(), this._getSymbolPoint = u, this._data = t + }, t.prototype.isPersistent = function () { + return !0 + }, t.prototype.updateLayout = function () { + var t = this, e = this._data; + e && e.eachItemGraphicEl(function (e, n) { + var i = t._getSymbolPoint(n); + e.setPosition(i), e.markRedraw() + }) + }, t.prototype.incrementalPrepareUpdate = function (t) { + this._seriesScope = hg(t), this._data = null, this.group.removeAll() + }, t.prototype.incrementalUpdate = function (t, e, n) { + function i(t) { + t.isGroup || (t.incremental = !0, t.ensureState("emphasis").hoverLayer = !0) + } + + n = ug(n); + for (var r = t.start; r < t.end; r++) { + var o = e.getItemLayout(r); + if (lg(e, o, r, n)) { + var a = new this._SymbolCtor(e, r, this._seriesScope); + a.traverse(i), a.setPosition(o), this.group.add(a), e.setItemGraphicEl(r, a) + } + } + }, t.prototype.remove = function (t) { + var e = this.group, n = this._data; + n && t ? n.eachItemGraphicEl(function (t) { + t.fadeOut(function () { + e.remove(t) + }) + }) : e.removeAll() + }, t + }(), bk = "undefined" != typeof Float32Array, Sk = bk ? Float32Array : Array, Tk = Math.min, Mk = Math.max, + Ck = function () { + function t() { + this.smooth = 0, this.smoothConstraint = !0 + } + + return t + }(), Ik = function (t) { + function n(e) { + var n = t.call(this, e) || this; + return n.type = "ec-polyline", n + } + + return e(n, t), n.prototype.getDefaultStyle = function () { + return {stroke: "#000", fill: null} + }, n.prototype.getDefaultShape = function () { + return new Ck + }, n.prototype.buildPath = function (t, e) { + var n = e.points, i = 0, r = n.length / 2; + if (e.connectNulls) { + for (; r > 0 && vg(n[2 * r - 2], n[2 * r - 1]); r--) ; + for (; r > i && vg(n[2 * i], n[2 * i + 1]); i++) ; + } + for (; r > i;) i += mg(t, n, i, r, r, 1, e.smooth, e.smoothMonotone, e.connectNulls) + 1 + }, n.prototype.getPointOn = function (t, e) { + this.path || (this.createPathProxy(), this.buildPath(this.path, this.shape)); + for (var n, i, r = this.path, o = r.data, a = ux.CMD, s = "x" === e, l = [], u = 0; u < o.length;) { + var h = o[u++], c = void 0, p = void 0, f = void 0, d = void 0, g = void 0, y = void 0, v = void 0; + switch (h) { + case a.M: + n = o[u++], i = o[u++]; + break; + case a.L: + if (c = o[u++], p = o[u++], v = s ? (t - n) / (c - n) : (t - i) / (p - i), 1 >= v && v >= 0) { + var m = s ? (p - i) * v + i : (c - n) * v + n; + return s ? [t, m] : [m, t] + } + n = c, i = p; + break; + case a.C: + c = o[u++], p = o[u++], f = o[u++], d = o[u++], g = o[u++], y = o[u++]; + var _ = s ? yi(n, c, f, g, t, l) : yi(i, p, d, y, t, l); + if (_ > 0) for (var x = 0; _ > x; x++) { + var w = l[x]; + if (1 >= w && w >= 0) { + var m = s ? di(i, p, d, y, w) : di(n, c, f, g, w); + return s ? [t, m] : [m, t] + } + } + n = g, i = y + } + } + }, n + }(xx), Ak = function (t) { + function n() { + return null !== t && t.apply(this, arguments) || this + } + + return e(n, t), n + }(Ck), Dk = function (t) { + function n(e) { + var n = t.call(this, e) || this; + return n.type = "ec-polygon", n + } + + return e(n, t), n.prototype.getDefaultShape = function () { + return new Ak + }, n.prototype.buildPath = function (t, e) { + var n = e.points, i = e.stackedOnPoints, r = 0, o = n.length / 2, a = e.smoothMonotone; + if (e.connectNulls) { + for (; o > 0 && vg(n[2 * o - 2], n[2 * o - 1]); o--) ; + for (; o > r && vg(n[2 * r], n[2 * r + 1]); r++) ; + } + for (; o > r;) { + var s = mg(t, n, r, o, o, 1, e.smooth, a, e.connectNulls); + mg(t, i, r + s - 1, s, o, -1, e.stackedOnSmooth, a, e.connectNulls), r += s + 1, t.closePath() + } + }, n + }(xx), kk = function (t) { + function n() { + return null !== t && t.apply(this, arguments) || this + } + + return e(n, t), n.prototype.init = function () { + var t = new Ox, e = new wk; + this.group.add(e.group), this._symbolDraw = e, this._lineGroup = t + }, n.prototype.render = function (t, e, n) { + var i = this, r = t.coordinateSystem, o = this.group, a = t.getData(), s = t.getModel("lineStyle"), + l = t.getModel("areaStyle"), u = a.getLayout("points") || [], h = "polar" === r.type, + p = this._coordSys, f = this._symbolDraw, d = this._polyline, g = this._polygon, y = this._lineGroup, + v = t.get("animation"), m = !l.isEmpty(), _ = l.get("origin"), x = cg(r, a, _), w = m && Sg(r, a, x), + b = t.get("showSymbol"), S = b && !h && Cg(t, a, r), T = this._data; + T && T.eachItemGraphicEl(function (t, e) { + t.__temp && (o.remove(t), T.setItemGraphicEl(e, null)) + }), b || f.remove(), o.add(y); + var M, C = h ? !1 : t.get("step"); + r && r.getArea && t.get("clip", !0) && (M = r.getArea(), null != M.width ? (M.x -= .1, M.y -= .1, M.width += .2, M.height += .2) : M.r0 && (M.r0 -= .5, M.r += .5)), this._clipShapeForSymbol = M, d && p.type === r.type && C === this._step ? (m && !g ? g = this._newPolygon(u, w) : g && !m && (y.remove(g), g = this._polygon = null), h || this._initOrUpdateEndLabel(t, r), y.setClipPath(Pg(this, r, !1, t)), b && f.updateData(a, { + isIgnore: S, + clipShape: M, + disableAnimation: !0, + getSymbolPoint: function (t) { + return [u[2 * t], u[2 * t + 1]] + } + }), _g(this._stackedOnPoints, w) && _g(this._points, u) || (v ? this._doUpdateAnimation(a, w, r, n, C, _) : (C && (u = Tg(u, r, C), w && (w = Tg(w, r, C))), d.setShape({points: u}), g && g.setShape({ + points: u, + stackedOnPoints: w + })))) : (b && f.updateData(a, { + isIgnore: S, + clipShape: M, + disableAnimation: !0, + getSymbolPoint: function (t) { + return [u[2 * t], u[2 * t + 1]] + } + }), v && this._initSymbolLabelAnimation(a, r, M), C && (u = Tg(u, r, C), w && (w = Tg(w, r, C))), d = this._newPolyline(u), m && (g = this._newPolygon(u, w)), h || this._initOrUpdateEndLabel(t, r), y.setClipPath(Pg(this, r, !0, t))); + var I = Mg(a, r) || a.getVisual("style")[a.getVisual("drawType")], A = t.get(["emphasis", "focus"]), + D = t.get(["emphasis", "blurScope"]); + if (d.useStyle(c(s.getLineStyle(), { + fill: "none", + stroke: I, + lineJoin: "bevel" + })), Ua(d, t, "lineStyle"), d.style.lineWidth > 0 && "bolder" === t.get(["emphasis", "lineStyle", "width"])) { + var k = d.getState("emphasis").style; + k.lineWidth = d.style.lineWidth + 1 + } + Gb(d).seriesIndex = t.seriesIndex, Xa(d, A, D); + var L = bg(t.get("smooth")), P = t.get("smoothMonotone"), O = t.get("connectNulls"); + if (d.setShape({smooth: L, smoothMonotone: P, connectNulls: O}), g) { + var R = a.getCalculationInfo("stackedOnSeries"), E = 0; + g.useStyle(c(l.getAreaStyle(), { + fill: I, + opacity: .7, + lineJoin: "bevel", + decal: a.getVisual("style").decal + })), R && (E = bg(R.get("smooth"))), g.setShape({ + smooth: L, + stackedOnSmooth: E, + smoothMonotone: P, + connectNulls: O + }), Ua(g, t, "areaStyle"), Gb(g).seriesIndex = t.seriesIndex, Xa(g, A, D) + } + var z = function (t) { + i._changePolyState(t) + }; + a.eachItemGraphicEl(function (t) { + t && (t.onHoverStateChange = z) + }), this._polyline.onHoverStateChange = z, this._data = a, this._coordSys = r, this._stackedOnPoints = w, this._points = u, this._step = C, this._valueOrigin = _ + }, n.prototype.dispose = function () { + }, n.prototype.highlight = function (t, e, n, i) { + var r = t.getData(), o = Uo(r, i); + if (this._changePolyState("emphasis"), !(o instanceof Array) && null != o && o >= 0) { + var a = r.getLayout("points"), s = r.getItemGraphicEl(o); + if (!s) { + var l = a[2 * o], u = a[2 * o + 1]; + if (isNaN(l) || isNaN(u)) return; + if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(l, u)) return; + s = new xk(r, o), s.x = l, s.y = u, s.setZ(t.get("zlevel"), t.get("z")), s.__temp = !0, r.setItemGraphicEl(o, s), s.stopSymbolAnimation(!0), this.group.add(s) + } + s.highlight() + } else wM.prototype.highlight.call(this, t, e, n, i) + }, n.prototype.downplay = function (t, e, n, i) { + var r = t.getData(), o = Uo(r, i); + if (this._changePolyState("normal"), null != o && o >= 0) { + var a = r.getItemGraphicEl(o); + a && (a.__temp ? (r.setItemGraphicEl(o, null), this.group.remove(a)) : a.downplay()) + } else wM.prototype.downplay.call(this, t, e, n, i) + }, n.prototype._changePolyState = function (t) { + var e = this._polygon; + ba(this._polyline, t), e && ba(e, t) + }, n.prototype._newPolyline = function (t) { + var e = this._polyline; + return e && this._lineGroup.remove(e), e = new Ik({ + shape: {points: t}, + segmentIgnoreThreshold: 2, + z2: 10 + }), this._lineGroup.add(e), this._polyline = e, e + }, n.prototype._newPolygon = function (t, e) { + var n = this._polygon; + return n && this._lineGroup.remove(n), n = new Dk({ + shape: {points: t, stackedOnPoints: e}, + segmentIgnoreThreshold: 2 + }), this._lineGroup.add(n), this._polygon = n, n + }, n.prototype._initSymbolLabelAnimation = function (t, e, n) { + var i, r, o = e.getBaseAxis(), a = o.inverse; + "cartesian2d" === e.type ? (i = o.isHorizontal(), r = !1) : "polar" === e.type && (i = "angle" === o.dim, r = !0); + var s = t.hostModel, l = s.get("animationDuration"); + "function" == typeof l && (l = l(null)); + var u = s.get("animationDelay") || 0, h = "function" == typeof u ? u(null) : u; + t.eachItemGraphicEl(function (t, o) { + var s = t; + if (s) { + var c = [t.x, t.y], p = void 0, f = void 0, d = void 0; + if (r) { + var g = n, y = e.pointToCoord(c); + i ? (p = g.startAngle, f = g.endAngle, d = -y[1] / 180 * Math.PI) : (p = g.r0, f = g.r, d = y[0]) + } else { + var v = n; + i ? (p = v.x, f = v.x + v.width, d = t.x) : (p = v.y + v.height, f = v.y, d = t.y) + } + var m = f === p ? 0 : (d - p) / (f - p); + a && (m = 1 - m); + var _ = "function" == typeof u ? u(o) : l * m + h, x = s.getSymbolPath(), w = x.getTextContent(); + s.attr({scaleX: 0, scaleY: 0}), s.animateTo({scaleX: 1, scaleY: 1}, { + duration: 200, + delay: _ + }), w && w.animateFrom({style: {opacity: 0}}, { + duration: 300, + delay: _ + }), x.disableLabelAnimation = !0 + } + }) + }, n.prototype._initOrUpdateEndLabel = function (t, e) { + var n = t.getModel("endLabel"); + if (n.get("show")) { + var i = t.getData(), r = this._polyline, o = this._endLabel; + o || (o = this._endLabel = new Ew({z2: 200}), o.ignoreClip = !0, r.setTextContent(this._endLabel), r.disableLabelAnimation = !0); + var a = Dg(i.getLayout("points")); + a >= 0 && Ls(o, Ps(t, "endLabel"), { + labelFetcher: t, + labelDataIndex: a, + defaultText: function (t, e, n) { + return n ? md(i, n) : vd(i, t) + }, + enableTextSetter: !0 + }, Og(n, e)) + } else this._endLabel && (this._polyline.removeTextContent(), this._endLabel = null) + }, n.prototype._endLabelOnDuring = function (t, e, n, i, r, o, a) { + var s = this._endLabel, l = this._polyline; + if (s) { + 1 > t && null == i.originalX && (i.originalX = s.x, i.originalY = s.y); + var u = n.getLayout("points"), h = n.hostModel, c = h.get("connectNulls"), p = o.get("precision"), + f = a.getBaseAxis(), d = f.isHorizontal(), g = f.inverse, y = e.shape, + v = g ? d ? y.x : y.y + y.height : d ? y.x + y.width : y.y, m = d ? "x" : "y", _ = Lg(u, v, m), + x = _.range, w = x[1] - x[0], b = void 0; + if (w >= 1) { + if (w > 1 && !c) { + var S = kg(u, x[0]); + s.attr({x: S[0], y: S[1]}), r && (b = h.getRawValue(x[0])) + } else { + var S = l.getPointOn(v, m); + S && s.attr({x: S[0], y: S[1]}); + var T = h.getRawValue(x[0]), M = h.getRawValue(x[1]); + r && (b = Qo(n, p, T, M, _.t)) + } + i.lastFrameIndex = x[0] + } else { + var C = 1 === t || i.lastFrameIndex > 0 ? x[0] : 0, S = kg(u, C); + r && (b = h.getRawValue(C)), s.attr({x: S[0], y: S[1]}) + } + r && mS(s).setLabelText(b) + } + }, n.prototype._doUpdateAnimation = function (t, e, n, i, r, o) { + var a = this._polyline, s = this._polygon, l = t.hostModel, + u = yg(this._data, t, this._stackedOnPoints, e, this._coordSys, n, this._valueOrigin, o), h = u.current, + c = u.stackedOnCurrent, p = u.next, f = u.stackedOnNext; + if (r && (h = Tg(u.current, n, r), c = Tg(u.stackedOnCurrent, n, r), p = Tg(u.next, n, r), f = Tg(u.stackedOnNext, n, r)), wg(h, p) > 3e3 || s && wg(c, f) > 3e3) return a.setShape({points: p}), void (s && s.setShape({ + points: p, + stackedOnPoints: f + })); + a.shape.__points = u.current, a.shape.points = h; + var d = {shape: {points: p}}; + u.current !== h && (d.shape.__points = u.next), a.stopAnimation(), hs(a, d, l), s && (s.setShape({ + points: h, + stackedOnPoints: c + }), s.stopAnimation(), hs(s, {shape: {stackedOnPoints: f}}, l), a.shape.points !== s.shape.points && (s.shape.points = a.shape.points)); + for (var g = [], y = u.status, v = 0; v < y.length; v++) { + var m = y[v].cmd; + if ("=" === m) { + var _ = t.getItemGraphicEl(y[v].idx1); + _ && g.push({el: _, ptIdx: v}) + } + } + a.animators && a.animators.length && a.animators[0].during(function () { + s && s.dirtyShape(); + for (var t = a.shape.__points, e = 0; e < g.length; e++) { + var n = g[e].el, i = 2 * g[e].ptIdx; + n.x = t[i], n.y = t[i + 1], n.markRedraw() + } + }) + }, n.prototype.remove = function () { + var t = this.group, e = this._data; + this._lineGroup.removeAll(), this._symbolDraw.remove(!0), e && e.eachItemGraphicEl(function (n, i) { + n.__temp && (t.remove(n), e.setItemGraphicEl(i, null)) + }), this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null + }, n.type = "line", n + }(wM); + wM.registerClass(kk), yp(Rg("line", !0)), hp(cI.PROCESSOR.STATISTIC, ag("line")); + var Lk = function () { + function t(t, e) { + this._getDataWithEncodedVisual = t, this._getRawData = e + } + + return t.prototype.getAllNames = function () { + var t = this._getRawData(); + return t.mapArray(t.getName) + }, t.prototype.containName = function (t) { + var e = this._getRawData(); + return e.indexOfName(t) >= 0 + }, t.prototype.indexOfName = function (t) { + var e = this._getDataWithEncodedVisual(); + return e.indexOfName(t) + }, t.prototype.getItemVisual = function (t, e) { + var n = this._getDataWithEncodedVisual(); + return n.getItemVisual(t, e) + }, t + }(), Pk = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.useColorPaletteOnData = !0, e + } + + return e(n, t), n.prototype.init = function (e) { + t.prototype.init.apply(this, arguments), this.legendVisualProvider = new Lk(Ev(this.getData, this), Ev(this.getRawData, this)), this._defaultLabelLine(e) + }, n.prototype.mergeOption = function () { + t.prototype.mergeOption.apply(this, arguments) + }, n.prototype.getInitialData = function () { + return Eg(this, {coordDimensions: ["value"], encodeDefaulter: S(Fl, this)}) + }, n.prototype.getDataParams = function (e) { + var n = this.getData(), i = t.prototype.getDataParams.call(this, e), r = []; + return n.each(n.mapDimension("value"), function (t) { + r.push(t) + }), i.percent = po(r, e, n.hostModel.get("percentPrecision")), i.$vars.push("percent"), i + }, n.prototype._defaultLabelLine = function (t) { + Do(t, "labelLine", ["show"]); + var e = t.labelLine, n = t.emphasis.labelLine; + e.show = e.show && t.label.show, n.show = n.show && t.emphasis.label.show + }, n.type = "series.pie", n.defaultOption = { + zlevel: 0, + z: 2, + legendHoverLink: !0, + center: ["50%", "50%"], + radius: [0, "75%"], + clockwise: !0, + startAngle: 90, + minAngle: 0, + minShowLabelAngle: 0, + selectedOffset: 10, + percentPrecision: 2, + stillShowZeroSum: !0, + left: 0, + top: 0, + right: 0, + bottom: 0, + width: null, + height: null, + label: { + rotate: 0, + show: !0, + overflow: "truncate", + position: "outer", + alignTo: "none", + edgeDistance: "25%", + bleedMargin: 10, + distanceToLabelLine: 5 + }, + labelLine: { + show: !0, + length: 15, + length2: 15, + smooth: !1, + minTurnAngle: 90, + maxSurfaceAngle: 90, + lineStyle: {width: 1, type: "solid"} + }, + itemStyle: {borderWidth: 1}, + labelLayout: {hideOverlap: !0}, + emphasis: {scale: !0, scaleSize: 5}, + avoidLabelOverlap: !0, + animationType: "expansion", + animationDuration: 1e3, + animationTypeUpdate: "transition", + animationEasingUpdate: "cubicInOut", + animationDurationUpdate: 500, + animationEasing: "cubicInOut" + }, n + }(vM); + vM.registerClass(Pk); + var Ok = Math.PI / 180, Rk = function (t) { + function n(e, n, i) { + var r = t.call(this) || this; + r.z2 = 2; + var o = new $x, a = new Ew; + return r.setTextGuideLine(o), r.setTextContent(a), r.updateData(e, n, i, !0), r + } + + return e(n, t), n.prototype.updateData = function (t, e, n, i) { + var r = this, o = t.hostModel, a = t.getItemModel(e), s = a.getModel("emphasis"), l = t.getItemLayout(e), + u = h(Hg(a.getModel("itemStyle"), l) || {}, l); + if (i) { + r.setShape(u); + var c = o.getShallow("animationType"); + "scale" === c ? (r.shape.r = l.r0, cs(r, {shape: {r: l.r}}, o, e)) : null != n ? (r.setShape({ + startAngle: n, + endAngle: n + }), cs(r, { + shape: { + startAngle: l.startAngle, + endAngle: l.endAngle + } + }, o, e)) : (r.shape.endAngle = l.startAngle, hs(r, {shape: {endAngle: l.endAngle}}, o, e)) + } else hs(r, {shape: u}, o, e); + r.useStyle(t.getItemVisual(e, "style")), Ua(r, a); + var p = (l.startAngle + l.endAngle) / 2, f = o.get("selectedOffset"), d = Math.cos(p) * f, + g = Math.sin(p) * f, y = a.getShallow("cursor"); + y && r.attr("cursor", y), this._updateLabel(o, t, e), r.ensureState("emphasis").shape = mv({r: l.r + (s.get("scale") ? s.get("scaleSize") || 0 : 0)}, Hg(s.getModel("itemStyle"), l)), h(r.ensureState("select"), { + x: d, + y: g, + shape: Hg(a.getModel(["select", "itemStyle"]), l) + }), h(r.ensureState("blur"), {shape: Hg(a.getModel(["blur", "itemStyle"]), l)}); + var v = r.getTextGuideLine(), m = r.getTextContent(); + h(v.ensureState("select"), {x: d, y: g}), h(m.ensureState("select"), { + x: d, + y: g + }), Xa(this, s.get("focus"), s.get("blurScope")) + }, n.prototype._updateLabel = function (t, e, n) { + var i = this, r = e.getItemModel(n), o = r.getModel("labelLine"), a = e.getItemVisual(n, "style"), + s = a && a.fill, l = a && a.opacity; + Ls(i, Ps(r), { + labelFetcher: e.hostModel, + labelDataIndex: n, + inheritColor: s, + defaultOpacity: l, + defaultText: t.getFormattedLabel(n, "normal") || e.getName(n) + }); + var u = i.getTextContent(); + i.setTextConfig({position: null, rotation: null}), u.attr({z2: 10}), tc(this, ec(r), { + stroke: s, + opacity: F(o.get(["lineStyle", "opacity"]), l, 1) + }) + }, n + }(bw), Ek = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.ignoreLabelLineUpdate = !0, e + } + + return e(n, t), n.prototype.init = function () { + var t = new Ox; + this._sectorGroup = t + }, n.prototype.render = function (t) { + var e, n = t.getData(), i = this._data, r = this.group; + if (!i && n.count() > 0) { + for (var o = n.getItemLayout(0), a = 1; isNaN(o && o.startAngle) && a < n.count(); ++a) o = n.getItemLayout(a); + o && (e = o.startAngle) + } + n.diff(i).add(function (t) { + var i = new Rk(n, t, e); + n.setItemGraphicEl(t, i), r.add(i) + }).update(function (t, o) { + var a = i.getItemGraphicEl(o); + a.updateData(n, t, e), a.off("click"), r.add(a), n.setItemGraphicEl(t, a) + }).remove(function (e) { + var n = i.getItemGraphicEl(e); + ds(n, t, e) + }).execute(), Fg(t), "expansion" !== t.get("animationTypeUpdate") && (this._data = n) + }, n.prototype.dispose = function () { + }, n.prototype.containPoint = function (t, e) { + var n = e.getData(), i = n.getItemLayout(0); + if (i) { + var r = t[0] - i.cx, o = t[1] - i.cy, a = Math.sqrt(r * r + o * o); + return a <= i.r && a >= i.r0 + } + }, n.type = "pie", n + }(wM); + wM.registerClass(Ek); + var zk = 2 * Math.PI, Bk = Math.PI / 180; + hc("pie", fp), yp(S(Gg, "pie")), hp(Wg("pie")); + for (var Nk = ge, Fk = function (t) { + function n(e) { + var n = t.call(this) || this; + return n.type = "view", n.dimensions = ["x", "y"], n._roamTransformable = new ym, n._rawTransformable = new ym, n.name = e, n + } + + return e(n, t), n.prototype.setBoundingRect = function (t, e, n, i) { + return this._rect = new Vm(t, e, n, i), this._rect + }, n.prototype.getBoundingRect = function () { + return this._rect + }, n.prototype.setViewRect = function (t, e, n, i) { + this.transformTo(t, e, n, i), this._viewRect = new Vm(t, e, n, i) + }, n.prototype.transformTo = function (t, e, n, i) { + var r = this.getBoundingRect(), o = this._rawTransformable; + o.transform = r.calculateTransform(new Vm(t, e, n, i)), o.decomposeTransform(), this._updateTransform() + }, n.prototype.setCenter = function (t) { + t && (this._center = t, this._updateCenterAndZoom()) + }, n.prototype.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() + }, n.prototype.getDefaultCenter = function () { + var t = this.getBoundingRect(), e = t.x + t.width / 2, n = t.y + t.height / 2; + return [e, n] + }, n.prototype.getCenter = function () { + return this._center || this.getDefaultCenter() + }, n.prototype.getZoom = function () { + return this._zoom || 1 + }, n.prototype.getRoamTransform = function () { + return this._roamTransformable.getLocalTransform() + }, n.prototype._updateCenterAndZoom = function () { + var t = this._rawTransformable.getLocalTransform(), e = this._roamTransformable, + n = this.getDefaultCenter(), i = this.getCenter(), r = this.getZoom(); + i = ge([], i, t), n = ge([], n, t), e.originX = i[0], e.originY = i[1], e.x = n[0] - i[0], e.y = n[1] - i[1], e.scaleX = e.scaleY = r, this._updateTransform() + }, n.prototype._updateTransform = function () { + var t = this._roamTransformable, e = this._rawTransformable; + e.parent = t, t.updateTransform(), e.updateTransform(), Ve(this.transform || (this.transform = []), e.transform || Fe()), this._rawTransform = e.getLocalTransform(), this.invTransform = this.invTransform || [], Ue(this.invTransform, this.transform), this.decomposeTransform() + }, n.prototype.getTransformInfo = function () { + var t = this._roamTransformable.transform, e = this._rawTransformable; + return {roamTransform: t ? H(t) : Fe(), rawScaleX: e.scaleX, rawScaleY: e.scaleY, rawX: e.x, rawY: e.y} + }, n.prototype.getViewRect = function () { + return this._viewRect + }, n.prototype.getViewRectAfterRoam = function () { + var t = this.getBoundingRect().clone(); + return t.applyTransform(this.transform), t + }, n.prototype.dataToPoint = function (t, e, n) { + var i = e ? this._rawTransform : this.transform; + return n = n || [], i ? Nk(n, t, i) : J(n, t) + }, n.prototype.pointToData = function (t) { + var e = this.invTransform; + return e ? Nk([], t, e) : [t[0], t[1]] + }, n.prototype.convertToPixel = function (t, e, n) { + var i = Xg(e); + return i === this ? i.dataToPoint(n) : null + }, n.prototype.convertFromPixel = function (t, e, n) { + var i = Xg(e); + return i === this ? i.pointToData(n) : null + }, n.prototype.containPoint = function (t) { + return this.getViewRectAfterRoam().contain(t[0], t[1]) + }, n.dimensions = ["x", "y"], n + }(ym), Hk = [126, 25], Vk = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, .7], [52, .7], [56, 7.7], [59, .7], [64, .7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]], Gk = 0; Gk < Vk.length; Gk++) for (var Wk = 0; Wk < Vk[Gk].length; Wk++) Vk[Gk][Wk][0] /= 10.5, Vk[Gk][Wk][1] /= -14, Vk[Gk][Wk][0] += Hk[0], Vk[Gk][Wk][1] += Hk[1]; + var Xk = {"南海诸岛": [32, 80], "广东": [0, -10], "香港": [10, 5], "澳门": [-10, 10], "天津": [5, 5]}, + Yk = {Russia: [100, 60], "United States": [-99, 38], "United States of America": [-99, 38]}, + Uk = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]], + qk = qo(), jk = { + load: function (t, e, n) { + var i = qk(e).parsed; + if (i) return i; + var r, o = e.specialAreas || {}, a = e.geoJSON; + try { + r = a ? Gf(a, n) : [] + } catch (s) { + throw new Error("Invalid geoJson format\n" + s.message) + } + return Yg(t, r), y(r, function (e) { + var n = e.name; + Ug(t, e), qg(t, e), jg(t, e); + var i = o[n]; + i && e.transformTo(i.left, i.top, i.width, i.height) + }), qk(e).parsed = {regions: r, boundingRect: Zg(r)} + } + }, Zk = qo(), Kk = { + load: function (t, e) { + var n = Zk(e).originRoot; + if (n) return {root: n, boundingRect: Zk(e).boundingRect}; + var i = Kg(e); + return Zk(e).originRoot = i.root, Zk(e).boundingRect = i.boundingRect, i + }, makeGraphic: function (t, e, n) { + var i = Zk(e), r = i.rootMap || (i.rootMap = U()), o = r.get(n); + if (o) return o; + var a = i.originRoot, s = i.boundingRect; + return i.originRootHostKey ? o = Kg(e, s).root : (i.originRootHostKey = n, o = a), r.set(n, o) + }, removeGraphic: function (t, e, n) { + var i = Zk(e), r = i.rootMap; + r && r.removeKey(n), n === i.originRootHostKey && (i.originRootHostKey = null) + } + }, $k = {geoJSON: jk, svg: Kk}, Jk = { + load: function (t, e, n) { + var i, r = [], o = U(), a = U(), s = $g(t); + return y(s, function (s) { + var l = $k[s.type].load(t, s, n); + y(l.regions, function (t) { + var n = t.name; + e && e.hasOwnProperty(n) && (t = t.cloneShallow(n = e[n])), r.push(t), o.set(n, t), a.set(n, t.center) + }); + var u = l.boundingRect; + u && (i ? i.union(u) : i = u.clone()) + }), {regions: r, regionsMap: o, nameCoordMap: a, boundingRect: i || new Vm(0, 0, 0, 0)} + }, makeGraphic: function (t, e) { + var n = $g(t), i = []; + return y(n, function (n) { + var r = $k[n.type].makeGraphic; + r && i.push(r(t, n, e)) + }), i + }, removeGraphic: function (t, e) { + var n = $g(t); + y(n, function (n) { + var i = $k[n.type].makeGraphic; + i && i(t, n, e) + }) + } + }, Qk = function (t) { + function n(e, n, i, r) { + var o = t.call(this, e) || this; + o.dimensions = ["lng", "lat"], o.type = "geo", o.map = n; + var a = Jk.load(n, i); + return o._nameCoordMap = a.nameCoordMap, o._regionsMap = a.regionsMap, o._invertLongitute = null == r ? !0 : r, o.regions = a.regions, o._rect = a.boundingRect, o + } + + return e(n, t), n.prototype.containCoord = function (t) { + for (var e = this.regions, n = 0; n < e.length; n++) if (e[n].contain(t)) return !0; + return !1 + }, n.prototype.transformTo = function (t, e, n, i) { + var r = this.getBoundingRect(), o = this._invertLongitute; + r = r.clone(), o && (r.y = -r.y - r.height); + var a = this._rawTransformable; + a.transform = r.calculateTransform(new Vm(t, e, n, i)), a.decomposeTransform(), o && (a.scaleY = -a.scaleY), a.updateTransform(), this._updateTransform() + }, n.prototype.getRegion = function (t) { + return this._regionsMap.get(t) + }, n.prototype.getRegionByCoord = function (t) { + for (var e = this.regions, n = 0; n < e.length; n++) if (e[n].contain(t)) return e[n] + }, n.prototype.addGeoCoord = function (t, e) { + this._nameCoordMap.set(t, e) + }, n.prototype.getGeoCoord = function (t) { + return this._nameCoordMap.get(t) + }, n.prototype.getBoundingRect = function () { + return this._rect + }, n.prototype.dataToPoint = function (t, e, n) { + return "string" == typeof t && (t = this.getGeoCoord(t)), t ? Fk.prototype.dataToPoint.call(this, t, e, n) : void 0 + }, n.prototype.convertToPixel = function (t, e, n) { + var i = Jg(e); + return i === this ? i.dataToPoint(n) : null + }, n.prototype.convertFromPixel = function (t, e, n) { + var i = Jg(e); + return i === this ? i.pointToData(n) : null + }, n + }(Fk); + d(Qk, Fk); + var tL = function () { + function t() { + this.dimensions = Qk.prototype.dimensions + } + + return t.prototype.create = function (t, e) { + var n = []; + t.eachComponent("geo", function (t, i) { + var r = t.get("map"), o = t.get("aspectScale"), a = !0, s = ZM.retrieveMap(r); + s && s[0] && "svg" === s[0].type ? (null == o && (o = 1), a = !1) : null == o && (o = .75); + var l = new Qk(r + i, r, t.get("nameMap"), a); + l.aspectScale = o, l.zoomLimit = t.get("scaleLimit"), n.push(l), t.coordinateSystem = l, l.model = t, l.resize = Qg, l.resize(t, e) + }), t.eachSeries(function (t) { + var e = t.get("coordinateSystem"); + if ("geo" === e) { + var i = t.get("geoIndex") || 0; + t.coordinateSystem = n[i] + } + }); + var i = {}; + return t.eachSeriesByType("map", function (t) { + if (!t.getHostGeoModel()) { + var e = t.getMapType(); + i[e] = i[e] || [], i[e].push(t) + } + }), y(i, function (t, i) { + var r = v(t, function (t) { + return t.get("nameMap") + }), o = new Qk(i, i, u(r)); + o.zoomLimit = B.apply(null, v(t, function (t) { + return t.get("scaleLimit") + })), n.push(o), o.resize = Qg, o.aspectScale = t[0].get("aspectScale"), o.resize(t[0], e), y(t, function (t) { + t.coordinateSystem = o, ty(o, t) + }) + }), n + }, t.prototype.getFilledRegions = function (t, e, n) { + for (var i = (t || []).slice(), r = U(), o = 0; o < i.length; o++) r.set(i[o].name, i[o]); + var a = Jk.load(e, n); + return y(a.regions, function (t) { + var e = t.name; + !r.get(e) && i.push({name: e}) + }), i + }, t + }(), eL = new tL; + dp("geo", eL); + var nL = "\x00_ec_interaction_mutex"; + fp({type: "takeGlobalCursor", event: "globalCursorTaken", update: "update"}, function () { + }); + var iL = function (t) { + function n(e) { + var n = t.call(this) || this; + n._zr = e; + var i = Ev(n._mousedownHandler, n), r = Ev(n._mousemoveHandler, n), o = Ev(n._mouseupHandler, n), + a = Ev(n._mousewheelHandler, n), l = Ev(n._pinchHandler, n); + return n.enable = function (t, n) { + this.disable(), this._opt = c(s(n) || {}, { + zoomOnMouseWheel: !0, + moveOnMouseMove: !0, + moveOnMouseWheel: !1, + preventDefaultMouseMove: !0 + }), null == t && (t = !0), (t === !0 || "move" === t || "pan" === t) && (e.on("mousedown", i), e.on("mousemove", r), e.on("mouseup", o)), (t === !0 || "scale" === t || "zoom" === t) && (e.on("mousewheel", a), e.on("pinch", l)) + }, n.disable = function () { + e.off("mousedown", i), e.off("mousemove", r), e.off("mouseup", o), e.off("mousewheel", a), e.off("pinch", l) + }, n + } + + return e(n, t), n.prototype.isDragging = function () { + return this._dragging + }, n.prototype.isPinching = function () { + return this._pinching + }, n.prototype.setPointerChecker = function (t) { + this.pointerChecker = t + }, n.prototype.dispose = function () { + this.disable() + }, n.prototype._mousedownHandler = function (t) { + if (!(Pe(t) || t.target && t.target.draggable)) { + var e = t.offsetX, n = t.offsetY; + this.pointerChecker && this.pointerChecker(t, e, n) && (this._x = e, this._y = n, this._dragging = !0) + } + }, n.prototype._mousemoveHandler = function (t) { + if (this._dragging && oy("moveOnMouseMove", t, this._opt) && "pinch" !== t.gestureEvent && !ey(this._zr, "globalPan")) { + var e = t.offsetX, n = t.offsetY, i = this._x, r = this._y, o = e - i, a = n - r; + this._x = e, this._y = n, this._opt.preventDefaultMouseMove && Qv(t.event), ry(this, "pan", "moveOnMouseMove", t, { + dx: o, + dy: a, + oldX: i, + oldY: r, + newX: e, + newY: n, + isAvailableBehavior: null + }) + } + }, n.prototype._mouseupHandler = function (t) { + Pe(t) || (this._dragging = !1) + }, n.prototype._mousewheelHandler = function (t) { + var e = oy("zoomOnMouseWheel", t, this._opt), n = oy("moveOnMouseWheel", t, this._opt), i = t.wheelDelta, + r = Math.abs(i), o = t.offsetX, a = t.offsetY; + if (0 !== i && (e || n)) { + if (e) { + var s = r > 3 ? 1.4 : r > 1 ? 1.2 : 1.1, l = i > 0 ? s : 1 / s; + iy(this, "zoom", "zoomOnMouseWheel", t, { + scale: l, + originX: o, + originY: a, + isAvailableBehavior: null + }) + } + if (n) { + var u = Math.abs(i), h = (i > 0 ? 1 : -1) * (u > 3 ? .4 : u > 1 ? .15 : .05); + iy(this, "scrollMove", "moveOnMouseWheel", t, { + scrollDelta: h, + originX: o, + originY: a, + isAvailableBehavior: null + }) + } + } + }, n.prototype._pinchHandler = function (t) { + if (!ey(this._zr, "globalPan")) { + var e = t.pinchScale > 1 ? 1.1 : 1 / 1.1; + iy(this, "zoom", null, t, {scale: e, originX: t.pinchX, originY: t.pinchY, isAvailableBehavior: null}) + } + }, n + }(Uv), rL = {axisPointer: 1, tooltip: 1, brush: 1}, oL = function () { + function t(t) { + var e = new Ox; + this.uid = Vs("ec_map_draw"), this._controller = new iL(t.getZr()), this._controllerHost = {target: e}, this.group = e, e.add(this._regionsGroup = new Ox), e.add(this._backgroundGroup = new Ox) + } + + return t.prototype.draw = function (t, e, n, i, r) { + var o = "geo" === t.mainType, a = t.getData && t.getData(); + o && e.eachComponent({mainType: "series", subType: "map"}, function (e) { + a || e.getHostGeoModel() !== t || (a = e.getData()) + }); + var s = t.coordinateSystem; + this._updateBackground(s); + var l, u, h = this._regionsGroup, c = this.group, p = s.getTransformInfo(), f = !h.childAt(0) || r; + if (f) c.transform = p.roamTransform, c.decomposeTransform(), c.dirty(); else { + var d = new ym; + d.transform = p.roamTransform, d.decomposeTransform(); + var g = {scaleX: d.scaleX, scaleY: d.scaleY, x: d.x, y: d.y}; + l = d.scaleX, u = d.scaleY, hs(c, g, t) + } + h.removeAll(); + var v = U(), m = a && a.getVisual("visualMeta") && a.getVisual("visualMeta").length > 0; + y(s.regions, function (e) { + var i = v.get(e.name) || v.set(e.name, new Ox), + r = new Sw({segmentIgnoreThreshold: 1, shape: {paths: []}}); + i.add(r); + var s, d = t.getRegionModel(e.name) || t, g = d.getModel("itemStyle"), _ = d.getModel("emphasis"), + x = _.getModel("itemStyle"), w = d.getModel(["blur", "itemStyle"]), + b = d.getModel(["select", "itemStyle"]), S = uy(g), T = uy(x), M = uy(w), C = uy(b); + if (a) { + s = a.indexOfName(e.name); + var I = a.getItemVisual(s, "style"), A = a.getItemVisual(s, "decal"); + m && I.fill && (S.fill = I.fill), A && (S.decal = Uc(A, n)) + } + var D = p.rawScaleX, k = p.rawScaleY, L = p.rawX, P = p.rawY, O = function (t) { + return [t[0] * D + L, t[1] * k + P] + }; + y(e.geometries, function (t) { + if ("polygon" === t.type) { + for (var e = [], n = 0; n < t.exterior.length; ++n) e.push(O(t.exterior[n])); + r.shape.paths.push(new Zx({segmentIgnoreThreshold: 1, shape: {points: e}})); + for (var n = 0; n < (t.interiors ? t.interiors.length : 0); ++n) { + for (var i = t.interiors[n], o = [], a = 0; a < i.length; ++a) o.push(O(i[a])); + r.shape.paths.push(new Zx({segmentIgnoreThreshold: 1, shape: {points: o}})) + } + } + }), r.setStyle(S), r.style.strokeNoScale = !0, r.culling = !0, r.ensureState("emphasis").style = T, r.ensureState("blur").style = M, r.ensureState("select").style = C; + for (var R = !1, E = 0; E < Kb.length; E++) { + var z = Kb[E]; + if (d.get("normal" === z ? ["label", "show"] : [z, "label", "show"])) { + R = !0; + break + } + } + var B = a && isNaN(a.get(a.mapDimension("value"), s)), N = a && a.getItemLayout(s); + if (o || B && R || N && N.showLabel) { + var F = o ? e.name : s, H = void 0; + (!a || s >= 0) && (H = t); + var V = O(e.center), + G = new Ew({x: V[0], y: V[1], scaleX: 1 / c.scaleX, scaleY: 1 / c.scaleY, z2: 10, silent: !0}); + Ls(G, Ps(d), {labelFetcher: H, labelDataIndex: F, defaultText: e.name}, { + normal: { + align: "center", + verticalAlign: "middle" + } + }), r.setTextContent(G), r.setTextConfig({local: !0}), r.disableLabelAnimation = !0, f || hs(G, { + scaleX: 1 / l, + scaleY: 1 / u + }, t) + } + if (a) a.setItemGraphicEl(s, i); else { + var W = t.getRegionModel(e.name); + Gb(r).eventData = { + componentType: "geo", + componentIndex: t.componentIndex, + geoIndex: t.componentIndex, + name: e.name, + region: W && W.option || {} + } + } + var X = i.__regions || (i.__regions = []); + X.push(e), i.highDownSilentOnTouch = !!t.get("selectedMode"), Xa(i, _.get("focus"), _.get("blurScope")), h.add(i) + }), this._updateController(t, e, n), this._updateMapSelectHandler(t, h, n, i) + }, t.prototype.remove = function () { + this._regionsGroup.removeAll(), this._backgroundGroup.removeAll(), this._controller.dispose(), this._mapName && Jk.removeGraphic(this._mapName, this.uid), this._mapName = null, this._controllerHost = null + }, t.prototype._updateBackground = function (t) { + var e = t.map; + this._mapName !== e && y(Jk.makeGraphic(e, this.uid), function (t) { + this._backgroundGroup.add(t) + }, this), this._mapName = e + }, t.prototype._updateController = function (t, e, n) { + function i() { + var e = {type: "geoRoam", componentType: s}; + return e[s + "Id"] = t.id, e + } + + var r = t.coordinateSystem, o = this._controller, a = this._controllerHost; + a.zoomLimit = t.get("scaleLimit"), a.zoom = r.getZoom(), o.enable(t.get("roam") || !1); + var s = t.mainType; + o.off("pan").on("pan", function (t) { + this._mouseDownFlag = !1, ay(a, t.dx, t.dy), n.dispatchAction(h(i(), {dx: t.dx, dy: t.dy})) + }, this), o.off("zoom").on("zoom", function (t) { + this._mouseDownFlag = !1, sy(a, t.scale, t.originX, t.originY), n.dispatchAction(h(i(), { + zoom: t.scale, + originX: t.originX, + originY: t.originY + })); + var e = this.group; + this._regionsGroup.traverse(function (t) { + var n = t.getTextContent(); + n && (n.scaleX = 1 / e.scaleX, n.scaleY = 1 / e.scaleY, n.markRedraw()) + }) + }, this), o.setPointerChecker(function (e, i, o) { + return r.getViewRectAfterRoam().contain(i, o) && !ly(e, n, t) + }) + }, t.prototype._updateMapSelectHandler = function (t, e) { + var n = this; + e.off("mousedown"), t.get("selectedMode") && (e.on("mousedown", function () { + n._mouseDownFlag = !0 + }), e.on("click", function () { + n._mouseDownFlag && (n._mouseDownFlag = !1) + })) + }, t + }(), aL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.prototype.init = function (t, e) { + var n = new oL(e); + this._mapDraw = n, this.group.add(n.group), this._api = e + }, n.prototype.render = function (t, e, n, i) { + var r = this._mapDraw; + t.get("show") ? r.draw(t, e, n, this, i) : this._mapDraw.group.removeAll(), r.group.on("click", this._handleRegionClick, this), r.group.silent = t.get("silent"), this._model = t, this.updateSelectStatus(t, e, n) + }, n.prototype._handleRegionClick = function (t) { + for (var e, n = t.target; n && null == (e = Gb(n).eventData);) n = n.__hostTarget || n.parent; + e && this._api.dispatchAction({type: "geoToggleSelect", geoId: this._model.id, name: e.name}) + }, n.prototype.updateSelectStatus = function (t, e, n) { + var i = this; + this._mapDraw.group.traverse(function (t) { + var e = Gb(t).eventData; + return e ? (i._model.isSelected(e.name) ? n.enterSelect(t) : n.leaveSelect(t), !0) : void 0 + }) + }, n.prototype.dispose = function () { + this._mapDraw && this._mapDraw.remove() + }, n.type = "geo", n + }(mM); + mM.registerClass(aL), fp({type: "geoRoam", event: "geoRoam", update: "updateTransform"}, function (t, e) { + var n = t.componentType || "series"; + e.eachComponent({mainType: n, query: t}, function (e) { + var i = e.coordinateSystem; + if ("geo" === i.type) { + var r = hy(i, t, e.get("scaleLimit")); + e.setCenter && e.setCenter(r.center), e.setZoom && e.setZoom(r.zoom), "series" === n && y(e.seriesGroup, function (t) { + t.setCenter(r.center), t.setZoom(r.zoom) + }) + } + }) + }); + var sL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.prototype.init = function (e, n, i) { + t.prototype.init.call(this, e, n, i), Do(e, "label", ["show"]) + }, n.prototype.optionUpdated = function () { + var t = this.option, e = this; + t.regions = eL.getFilledRegions(t.regions, t.map, t.nameMap); + var n = {}; + this._optionModelMap = m(t.regions || [], function (t, i) { + var r = i.name; + return r && (t.set(r, new AS(i, e)), i.selected && (n[r] = !0)), t + }, U()), t.selectedMap || (t.selectedMap = n) + }, n.prototype.getRegionModel = function (t) { + return this._optionModelMap.get(t) || new AS(null, this, this.ecModel) + }, n.prototype.getFormattedLabel = function (t, e) { + var n = this.getRegionModel(t), + i = n.get("normal" === e ? ["label", "formatter"] : ["emphasis", "label", "formatter"]), r = {name: t}; + return "function" == typeof i ? (r.status = e, i(r)) : "string" == typeof i ? i.replace("{a}", null != t ? t : "") : void 0 + }, n.prototype.setZoom = function (t) { + this.option.zoom = t + }, n.prototype.setCenter = function (t) { + this.option.center = t + }, n.prototype.select = function (t) { + var e = this.option, n = e.selectedMode; + if (n) { + "multiple" !== n && (e.selectedMap = null); + var i = e.selectedMap || (e.selectedMap = {}); + i[t] = !0 + } + }, n.prototype.unSelect = function (t) { + var e = this.option.selectedMap; + e && (e[t] = !1) + }, n.prototype.toggleSelected = function (t) { + this[this.isSelected(t) ? "unSelect" : "select"](t) + }, n.prototype.isSelected = function (t) { + var e = this.option.selectedMap; + return !(!e || !e[t]) + }, n.prototype._initSelectedMapFromData = function () { + }, n.type = "geo", n.layoutMode = "box", n.defaultOption = { + zlevel: 0, + z: 0, + show: !0, + left: "center", + top: "center", + aspectScale: null, + silent: !1, + map: "", + boundingCoords: null, + center: null, + zoom: 1, + scaleLimit: null, + label: {show: !1, color: "#000"}, + itemStyle: {borderWidth: .5, borderColor: "#444", color: "#eee"}, + emphasis: {label: {show: !0, color: "rgb(100,0,0)"}, itemStyle: {color: "rgba(255,215,0,0.8)"}}, + select: {label: {show: !0, color: "rgb(100,0,0)"}, itemStyle: {color: "rgba(255,215,0,0.8)"}}, + regions: [] + }, n + }(oT); + oT.registerClass(sL), cy("toggleSelected", { + type: "geoToggleSelect", + event: "geoselectchanged" + }), cy("select", {type: "geoSelect", event: "geoselected"}), cy("unSelect", { + type: "geoUnSelect", + event: "geounselected" + }); + var lL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e.layoutMode = {type: "box", ignoreSize: !0}, e + } + + return e(n, t), n.type = "title", n.defaultOption = { + zlevel: 0, + z: 6, + show: !0, + text: "", + target: "blank", + subtext: "", + subtarget: "blank", + left: 0, + top: 0, + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + borderWidth: 0, + padding: 5, + itemGap: 10, + textStyle: {fontSize: 18, fontWeight: "bold", color: "#464646"}, + subtextStyle: {fontSize: 12, color: "#6E7079"} + }, n + }(oT); + oT.registerClass(lL); + var uL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.prototype.render = function (t, e, n) { + if (this.group.removeAll(), t.get("show")) { + var i = this.group, r = t.getModel("textStyle"), o = t.getModel("subtextStyle"), a = t.get("textAlign"), + s = N(t.get("textBaseline"), t.get("textVerticalAlign")), + l = new Ew({style: Os(r, {text: t.get("text"), fill: r.getTextColor()}, {disableBox: !0}), z2: 10}), + u = l.getBoundingRect(), h = t.get("subtext"), c = new Ew({ + style: Os(o, { + text: h, + fill: o.getTextColor(), + y: u.height + t.get("itemGap"), + verticalAlign: "top" + }, {disableBox: !0}), z2: 10 + }), p = t.get("link"), f = t.get("sublink"), d = t.get("triggerEvent", !0); + l.silent = !p && !d, c.silent = !f && !d, p && l.on("click", function () { + Al(p, "_" + t.get("target")) + }), f && c.on("click", function () { + Al(f, "_" + t.get("subtarget")) + }), Gb(l).eventData = Gb(c).eventData = d ? { + componentType: "title", + componentIndex: t.componentIndex + } : null, i.add(l), h && i.add(c); + var g = i.getBoundingRect(), y = t.getBoxLayoutParams(); + y.width = g.width, y.height = g.height; + var v = kl(y, {width: n.getWidth(), height: n.getHeight()}, t.get("padding")); + a || (a = t.get("left") || t.get("right"), "middle" === a && (a = "center"), "right" === a ? v.x += v.width : "center" === a && (v.x += v.width / 2)), s || (s = t.get("top") || t.get("bottom"), "center" === s && (s = "middle"), "bottom" === s ? v.y += v.height : "middle" === s && (v.y += v.height / 2), s = s || "top"), i.x = v.x, i.y = v.y, i.markRedraw(); + var m = {align: a, verticalAlign: s}; + l.setStyle(m), c.setStyle(m), g = i.getBoundingRect(); + var _ = v.margin, x = t.getItemStyle(["color", "opacity"]); + x.fill = t.get("backgroundColor"); + var w = new Gx({ + shape: { + x: g.x - _[3], + y: g.y - _[0], + width: g.width + _[1] + _[3], + height: g.height + _[0] + _[2], + r: t.get("borderRadius") + }, style: x, subPixelOptimize: !0, silent: !0 + }); + i.add(w) + } + }, n.type = "title", n + }(mM); + mM.registerClass(uL); + var hL = function (t, e) { + return "all" === e ? { + type: "all", + title: t.getLocale(["legend", "selector", "all"]) + } : "inverse" === e ? {type: "inverse", title: t.getLocale(["legend", "selector", "inverse"])} : void 0 + }, cL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e.layoutMode = {type: "box", ignoreSize: !0}, e + } + + return e(n, t), n.prototype.init = function (t, e, n) { + this.mergeDefaultAndTheme(t, n), t.selected = t.selected || {}, this._updateSelector(t) + }, n.prototype.mergeOption = function (e, n) { + t.prototype.mergeOption.call(this, e, n), this._updateSelector(e) + }, n.prototype._updateSelector = function (t) { + var e = t.selector, n = this.ecModel; + e === !0 && (e = t.selector = ["all", "inverse"]), T(e) && y(e, function (t, i) { + C(t) && (t = {type: t}), e[i] = l(t, hL(n, t.type)) + }) + }, n.prototype.optionUpdated = function () { + this._updateData(this.ecModel); + var t = this._data; + if (t[0] && "single" === this.get("selectedMode")) { + for (var e = !1, n = 0; n < t.length; n++) { + var i = t[n].get("name"); + if (this.isSelected(i)) { + this.select(i), e = !0; + break + } + } + !e && this.select(t[0].get("name")) + } + }, n.prototype._updateData = function (t) { + var e = [], n = []; + t.eachRawSeries(function (i) { + var r = i.name; + n.push(r); + var o; + if (i.legendVisualProvider) { + var a = i.legendVisualProvider, s = a.getAllNames(); + t.isSeriesFiltered(i) || (n = n.concat(s)), s.length ? e = e.concat(s) : o = !0 + } else o = !0; + o && Go(i) && e.push(i.name) + }), this._availableNames = n; + var i = this.get("data") || e, r = v(i, function (t) { + return ("string" == typeof t || "number" == typeof t) && (t = {name: t}), new AS(t, this, this.ecModel) + }, this); + this._data = r + }, n.prototype.getData = function () { + return this._data + }, n.prototype.select = function (t) { + var e = this.option.selected, n = this.get("selectedMode"); + if ("single" === n) { + var i = this._data; + y(i, function (t) { + e[t.get("name")] = !1 + }) + } + e[t] = !0 + }, n.prototype.unSelect = function (t) { + "single" !== this.get("selectedMode") && (this.option.selected[t] = !1) + }, n.prototype.toggleSelected = function (t) { + var e = this.option.selected; + e.hasOwnProperty(t) || (e[t] = !0), this[e[t] ? "unSelect" : "select"](t) + }, n.prototype.allSelect = function () { + var t = this._data, e = this.option.selected; + y(t, function (t) { + e[t.get("name", !0)] = !0 + }) + }, n.prototype.inverseSelect = function () { + var t = this._data, e = this.option.selected; + y(t, function (t) { + var n = t.get("name", !0); + e.hasOwnProperty(n) || (e[n] = !0), e[n] = !e[n] + }) + }, n.prototype.isSelected = function (t) { + var e = this.option.selected; + return !(e.hasOwnProperty(t) && !e[t]) && p(this._availableNames, t) >= 0 + }, n.prototype.getOrient = function () { + return "vertical" === this.get("orient") ? {index: 1, name: "vertical"} : {index: 0, name: "horizontal"} + }, n.type = "legend.plain", n.dependencies = ["series"], n.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", + inactiveBorderColor: "#ccc", + itemStyle: {borderWidth: 0}, + textStyle: {color: "#333"}, + selectedMode: !0, + selector: !1, + selectorLabel: { + show: !0, + borderRadius: 10, + padding: [3, 5, 3, 5], + fontSize: 12, + fontFamily: " sans-serif", + color: "#666", + borderWidth: 1, + borderColor: "#666" + }, + emphasis: {selectorLabel: {show: !0, color: "#eee", backgroundColor: "#666"}}, + selectorPosition: "auto", + selectorItemGap: 7, + selectorButtonGap: 10, + tooltip: {show: !1} + }, n + }(oT); + oT.registerClass(cL), fp("legendToggleSelect", "legendselectchanged", S(py, "toggleSelected")), fp("legendAllSelect", "legendselectall", S(py, "allSelect")), fp("legendInverseSelect", "legendinverseselect", S(py, "inverseSelect")), fp("legendSelect", "legendselected", S(py, "select")), fp("legendUnSelect", "legendunselected", S(py, "unSelect")); + var pL = S, fL = y, dL = Ox, gL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e.newlineDisabled = !1, e + } + + return e(n, t), n.prototype.init = function () { + this.group.add(this._contentGroup = new dL), this.group.add(this._selectorGroup = new dL), this._isFirstRender = !0 + }, n.prototype.getContentGroup = function () { + return this._contentGroup + }, n.prototype.getSelectorGroup = function () { + return this._selectorGroup + }, n.prototype.render = function (t, e, n) { + var i = this._isFirstRender; + if (this._isFirstRender = !1, this.resetInner(), t.get("show", !0)) { + var r = t.get("align"), o = t.get("orient"); + r && "auto" !== r || (r = "right" === t.get("left") && "vertical" === o ? "right" : "left"); + var a = t.get("selector", !0), s = t.get("selectorPosition", !0); + !a || s && "auto" !== s || (s = "horizontal" === o ? "end" : "start"), this.renderInner(r, t, e, n, a, o, s); + var l = t.getBoxLayoutParams(), u = {width: n.getWidth(), height: n.getHeight()}, h = t.get("padding"), + p = kl(l, u, h), f = this.layoutInner(t, r, p, i, a, s), + d = kl(c({width: f.width, height: f.height}, l), u, h); + this.group.x = d.x - f.x, this.group.y = d.y - f.y, this.group.markRedraw(), this.group.add(this._backgroundEl = fy(f, t)) + } + }, n.prototype.resetInner = function () { + this.getContentGroup().removeAll(), this._backgroundEl && this.group.remove(this._backgroundEl), this.getSelectorGroup().removeAll() + }, n.prototype.renderInner = function (t, e, n, i, r, o, a) { + var s = this.getContentGroup(), l = U(), u = e.get("selectedMode"), h = []; + n.eachRawSeries(function (t) { + !t.get("legendHoverLink") && h.push(t.id) + }), fL(e.getData(), function (r, o) { + var a = r.get("name"); + if (!this.newlineDisabled && ("" === a || "\n" === a)) { + var c = new dL; + return c.newline = !0, void s.add(c) + } + var p = n.getSeriesByName(a)[0]; + if (!l.get(a)) if (p) { + var f = p.getData(), d = f.getVisual("style"), g = d[f.getVisual("drawType")] || d.fill, + y = d.stroke, v = d.decal, m = f.getVisual("legendSymbol") || "roundRect", + _ = f.getVisual("symbol"), x = this._createItem(a, o, r, e, m, _, t, g, y, v, u); + x.on("click", pL(gy, a, null, i, h)).on("mouseover", pL(vy, p.name, null, i, h)).on("mouseout", pL(my, p.name, null, i, h)), l.set(a, !0) + } else n.eachRawSeries(function (n) { + if (!l.get(a) && n.legendVisualProvider) { + var s = n.legendVisualProvider; + if (!s.containName(a)) return; + var c = s.indexOfName(a), p = s.getItemVisual(c, "style"), f = p.stroke, d = p.decal, + g = p.fill, y = an(p.fill); + y && 0 === y[3] && (y[3] = .2, g = gn(y, "rgba")); + var v = "roundRect", m = this._createItem(a, o, r, e, v, null, t, g, f, d, u); + m.on("click", pL(gy, null, a, i, h)).on("mouseover", pL(vy, null, a, i, h)).on("mouseout", pL(my, null, a, i, h)), l.set(a, !0) + } + }, this) + }, this), r && this._createSelector(r, e, i, o, a) + }, n.prototype._createSelector = function (t, e, n) { + var i = this.getSelectorGroup(); + fL(t, function (t) { + var r = t.type, o = new Ew({ + style: {x: 0, y: 0, align: "center", verticalAlign: "middle"}, onclick: function () { + n.dispatchAction({type: "all" === r ? "legendAllSelect" : "legendInverseSelect"}) + } + }); + i.add(o); + var a = e.getModel("selectorLabel"), s = e.getModel(["emphasis", "selectorLabel"]); + Ls(o, {normal: a, emphasis: s}, {defaultText: t.title}), Xa(o) + }) + }, n.prototype._createItem = function (t, e, n, i, r, o, a, s, l, u, c) { + var p = i.get("itemWidth"), f = i.get("itemHeight"), d = i.get("inactiveColor"), + g = i.get("inactiveBorderColor"), y = i.get("symbolKeepAspect"), v = i.getModel("itemStyle"), + m = i.isSelected(t), _ = new dL, x = n.getModel("textStyle"), w = n.get("icon"), + b = n.getModel("tooltip"), S = b.parentModel; + r = w || r; + var T = Yc(r, 0, 0, p, f, m ? s : d, null == y ? !0 : y); + if (_.add(dy(T, r, v, l, g, u, m)), !w && o && (o !== r || "none" === o)) { + var M = .8 * f; + "none" === o && (o = "circle"); + var C = Yc(o, (p - M) / 2, (f - M) / 2, M, M, m ? s : d, null == y ? !0 : y); + _.add(dy(C, o, v, l, g, u, m)) + } + var I = "left" === a ? p + 5 : -5, A = a, D = i.get("formatter"), k = t; + "string" == typeof D && D ? k = D.replace("{name}", null != t ? t : "") : "function" == typeof D && (k = D(t)), _.add(new Ew({ + style: Os(x, { + text: k, + x: I, + y: f / 2, + fill: m ? x.getTextColor() : d, + align: A, + verticalAlign: "middle" + }) + })); + var L = new Gx({shape: _.getBoundingRect(), invisible: !0}); + if (b.get("show")) { + var P = {componentType: "legend", legendIndex: i.componentIndex, name: t, $vars: ["name"]}; + L.tooltip = h({ + content: t, formatter: S.get("formatter", !0) || function (t) { + return t.name + }, formatterParams: P + }, b.option) + } + return _.add(L), _.eachChild(function (t) { + t.silent = !0 + }), L.silent = !c, this.getContentGroup().add(_), Xa(_), _.__legendDataIndex = e, _ + }, n.prototype.layoutInner = function (t, e, n, i, r, o) { + var a = this.getContentGroup(), s = this.getSelectorGroup(); + iT(t.get("orient"), a, t.get("itemGap"), n.width, n.height); + var l = a.getBoundingRect(), u = [-l.x, -l.y]; + if (s.markRedraw(), a.markRedraw(), r) { + iT("horizontal", s, t.get("selectorItemGap", !0)); + var h = s.getBoundingRect(), c = [-h.x, -h.y], p = t.get("selectorButtonGap", !0), + f = t.getOrient().index, d = 0 === f ? "width" : "height", g = 0 === f ? "height" : "width", + y = 0 === f ? "y" : "x"; + "end" === o ? c[f] += l[d] + p : u[f] += h[d] + p, c[1 - f] += l[g] / 2 - h[g] / 2, s.x = c[0], s.y = c[1], a.x = u[0], a.y = u[1]; + var v = {x: 0, y: 0}; + return v[d] = l[d] + p + h[d], v[g] = Math.max(l[g], h[g]), v[y] = Math.min(0, h[y] + c[1 - f]), v + } + return a.x = u[0], a.y = u[1], this.group.getBoundingRect() + }, n.prototype.remove = function () { + this.getContentGroup().removeAll(), this._isFirstRender = !0 + }, n.type = "legend.plain", n + }(mM); + mM.registerClass(gL), hp(cI.PROCESSOR.SERIES_FILTER, _y), oT.registerSubTypeDefaulter("legend", function () { + return "plain" + }); + var yL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.prototype.setScrollDataIndex = function (t) { + this.option.scrollDataIndex = t + }, n.prototype.init = function (e, n, i) { + var r = Ol(e); + t.prototype.init.call(this, e, n, i), xy(this, e, r) + }, n.prototype.mergeOption = function (e, n) { + t.prototype.mergeOption.call(this, e, n), xy(this, this.option, e) + }, n.type = "legend.scroll", n.defaultOption = Xs(cL.defaultOption, { + scrollDataIndex: 0, + pageButtonItemGap: 5, + pageButtonGap: null, + pageButtonPosition: "end", + pageFormatter: "{current}/{total}", + pageIcons: { + horizontal: ["M0,0L12,-10L12,10z", "M0,0L-12,-10L-12,10z"], + vertical: ["M0,0L20,0L10,-20z", "M0,0L20,0L10,20z"] + }, + pageIconColor: "#2f4554", + pageIconInactiveColor: "#aaa", + pageIconSize: 15, + pageTextStyle: {color: "#333"}, + animationDurationUpdate: 800 + }), n + }(cL); + oT.registerClass(yL); + var vL = Ox, mL = ["width", "height"], _L = ["x", "y"], xL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e.newlineDisabled = !0, e._currentIndex = 0, e + } + + return e(n, t), n.prototype.init = function () { + t.prototype.init.call(this), this.group.add(this._containerGroup = new vL), this._containerGroup.add(this.getContentGroup()), this.group.add(this._controllerGroup = new vL) + }, n.prototype.resetInner = function () { + t.prototype.resetInner.call(this), this._controllerGroup.removeAll(), this._containerGroup.removeClipPath(), this._containerGroup.__rectSize = null + }, n.prototype.renderInner = function (e, n, i, r, o, a, s) { + function l(t, e) { + var i = t + "DataIndex", + o = Ts(n.get("pageIcons", !0)[n.getOrient().name][e], {onclick: Ev(u._pageGo, u, i, n, r)}, { + x: -p[0] / 2, + y: -p[1] / 2, + width: p[0], + height: p[1] + }); + o.name = t, h.add(o) + } + + var u = this; + t.prototype.renderInner.call(this, e, n, i, r, o, a, s); + var h = this._controllerGroup, c = n.get("pageIconSize", !0), p = T(c) ? c : [c, c]; + l("pagePrev", 0); + var f = n.getModel("pageTextStyle"); + h.add(new Ew({ + name: "pageText", + style: { + text: "xx/xx", + fill: f.getTextColor(), + font: f.getFont(), + verticalAlign: "middle", + align: "center" + }, + silent: !0 + })), l("pageNext", 1) + }, n.prototype.layoutInner = function (t, e, n, i, r, o) { + var a = this.getSelectorGroup(), l = t.getOrient().index, u = mL[l], h = _L[l], c = mL[1 - l], + p = _L[1 - l]; + r && iT("horizontal", a, t.get("selectorItemGap", !0)); + var f = t.get("selectorButtonGap", !0), d = a.getBoundingRect(), g = [-d.x, -d.y], y = s(n); + r && (y[u] = n[u] - d[u] - f); + var v = this._layoutContentAndController(t, i, y, l, u, c, p, h); + if (r) { + if ("end" === o) g[l] += v[u] + f; else { + var m = d[u] + f; + g[l] -= m, v[h] -= m + } + v[u] += d[u] + f, g[1 - l] += v[p] + v[c] / 2 - d[c] / 2, v[c] = Math.max(v[c], d[c]), v[p] = Math.min(v[p], d[p] + g[1 - l]), a.x = g[0], a.y = g[1], a.markRedraw() + } + return v + }, n.prototype._layoutContentAndController = function (t, e, n, i, r, o, a, s) { + var l = this.getContentGroup(), u = this._containerGroup, h = this._controllerGroup; + iT(t.get("orient"), l, t.get("itemGap"), i ? n.width : null, i ? null : n.height), iT("horizontal", h, t.get("pageButtonItemGap", !0)); + var c = l.getBoundingRect(), p = h.getBoundingRect(), f = this._showController = c[r] > n[r], + d = [-c.x, -c.y]; + e || (d[i] = l[s]); + var g = [0, 0], y = [-p.x, -p.y], v = N(t.get("pageButtonGap", !0), t.get("itemGap", !0)); + if (f) { + var m = t.get("pageButtonPosition", !0); + "end" === m ? y[i] += n[r] - p[r] : g[i] += p[r] + v + } + y[1 - i] += c[o] / 2 - p[o] / 2, l.setPosition(d), u.setPosition(g), h.setPosition(y); + var _ = {x: 0, y: 0}; + if (_[r] = f ? n[r] : c[r], _[o] = Math.max(c[o], p[o]), _[a] = Math.min(0, p[a] + y[1 - i]), u.__rectSize = n[r], f) { + var x = {x: 0, y: 0}; + x[r] = Math.max(n[r] - p[r] - v, 0), x[o] = _[o], u.setClipPath(new Gx({shape: x})), u.__rectSize = x[r] + } else h.eachChild(function (t) { + t.attr({invisible: !0, silent: !0}) + }); + var w = this._getPageInfo(t); + return null != w.pageIndex && hs(l, { + x: w.contentPosition[0], + y: w.contentPosition[1] + }, f ? t : null), this._updatePageInfoView(t, w), _ + }, n.prototype._pageGo = function (t, e, n) { + var i = this._getPageInfo(e)[t]; + null != i && n.dispatchAction({type: "legendScroll", scrollDataIndex: i, legendId: e.id}) + }, n.prototype._updatePageInfoView = function (t, e) { + var n = this._controllerGroup; + y(["pagePrev", "pageNext"], function (i) { + var r = i + "DataIndex", o = null != e[r], a = n.childOfName(i); + a && (a.setStyle("fill", o ? t.get("pageIconColor", !0) : t.get("pageIconInactiveColor", !0)), a.cursor = o ? "pointer" : "default") + }); + var i = n.childOfName("pageText"), r = t.get("pageFormatter"), o = e.pageIndex, a = null != o ? o + 1 : 0, + s = e.pageCount; + i && r && i.setStyle("text", C(r) ? r.replace("{current}", null == a ? "" : a + "").replace("{total}", null == s ? "" : s + "") : r({ + current: a, + total: s + })) + }, n.prototype._getPageInfo = function (t) { + function e(t) { + if (t) { + var e = t.getBoundingRect(), n = e[l] + t[l]; + return {s: n, e: n + e[s], i: t.__legendDataIndex} + } + } + + function n(t, e) { + return t.e >= e && t.s <= e + o + } + + var i = t.get("scrollDataIndex", !0), r = this.getContentGroup(), o = this._containerGroup.__rectSize, + a = t.getOrient().index, s = mL[a], l = _L[a], u = this._findTargetItemIndex(i), h = r.children(), + c = h[u], p = h.length, f = p ? 1 : 0, d = { + contentPosition: [r.x, r.y], + pageCount: f, + pageIndex: f - 1, + pagePrevDataIndex: null, + pageNextDataIndex: null + }; + if (!c) return d; + var g = e(c); + d.contentPosition[a] = -g.s; + for (var y = u + 1, v = g, m = g, _ = null; p >= y; ++y) _ = e(h[y]), (!_ && m.e > v.s + o || _ && !n(_, v.s)) && (v = m.i > v.i ? m : _, v && (null == d.pageNextDataIndex && (d.pageNextDataIndex = v.i), ++d.pageCount)), m = _; + for (var y = u - 1, v = g, m = g, _ = null; y >= -1; --y) _ = e(h[y]), _ && n(m, _.s) || !(v.i < m.i) || (m = v, null == d.pagePrevDataIndex && (d.pagePrevDataIndex = v.i), ++d.pageCount, ++d.pageIndex), v = _; + return d + }, n.prototype._findTargetItemIndex = function (t) { + if (!this._showController) return 0; + var e, n, i = this.getContentGroup(); + return i.eachChild(function (i, r) { + var o = i.__legendDataIndex; + null == n && null != o && (n = r), o === t && (e = r) + }), null != e ? e : n + }, n.type = "legend.scroll", n + }(gL); + mM.registerClass(xL), fp("legendScroll", "legendscroll", function (t, e) { + var n = t.scrollDataIndex; + null != n && e.eachComponent({mainType: "legend", subType: "scroll", query: t}, function (t) { + t.setScrollDataIndex(n) + }) + }); + var wL = qo(), bL = qo(), SL = y, TL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.prototype.render = function (t, e, n) { + var i = e.getComponent("tooltip"), r = t.get("triggerOn") || i && i.get("triggerOn") || "mousemove|click"; + Oy("axisPointer", n, function (t, e, n) { + "none" !== r && ("leave" === t || r.indexOf(t) >= 0) && n({ + type: "updateAxisPointer", + currTrigger: t, + x: e && e.offsetX, + y: e && e.offsetY + }) + }) + }, n.prototype.remove = function (t, e) { + Fy("axisPointer", e) + }, n.prototype.dispose = function (t, e) { + Fy("axisPointer", e) + }, n.type = "axisPointer", n + }(mM); + mM.registerClass(TL); + var ML = qo(), CL = s, IL = Ev, AL = function () { + function t() { + this._dragging = !1, this.animationThreshold = 15 + } + + return t.prototype.render = function (t, e, n, i) { + var r = e.get("value"), o = e.get("status"); + if (this._axisModel = t, this._axisPointerModel = e, this._api = n, i || this._lastValue !== r || this._lastStatus !== o) { + this._lastValue = r, this._lastStatus = o; + var a = this._group, s = this._handle; + if (!o || "hide" === o) return a && a.hide(), void (s && s.hide()); + a && a.show(), s && s.show(); + var l = {}; + this.makeElOption(l, r, t, e, n); + var u = l.graphicKey; + u !== this._lastGraphicKey && this.clear(n), this._lastGraphicKey = u; + var h = this._moveAnimation = this.determineAnimation(t, e); + if (a) { + var c = S(Hy, e, h); + this.updatePointerEl(a, l, c), this.updateLabelEl(a, l, c, e) + } else a = this._group = new Ox, this.createPointerEl(a, l, t, e), this.createLabelEl(a, l, t, e), n.getZr().add(a); + Xy(a, e, !0), this._renderHandle(r) + } + }, t.prototype.remove = function (t) { + this.clear(t) + }, t.prototype.dispose = function (t) { + this.clear(t) + }, t.prototype.determineAnimation = function (t, e) { + var n = e.get("animation"), i = t.axis, r = "category" === i.type, o = e.get("snap"); + if (!o && !r) return !1; + if ("auto" === n || null == n) { + var a = this.animationThreshold; + if (r && i.getBandWidth() > a) return !0; + if (o) { + var s = jd(t).seriesDataCount, l = i.getExtent(); + return Math.abs(l[0] - l[1]) / s > a + } + return !1 + } + return n === !0 + }, t.prototype.makeElOption = function () { + }, t.prototype.createPointerEl = function (t, e) { + var n = e.pointer; + if (n) { + var i = ML(t).pointerEl = new fS[n.type](CL(e.pointer)); + t.add(i) + } + }, t.prototype.createLabelEl = function (t, e, n, i) { + if (e.label) { + var r = ML(t).labelEl = new Ew(CL(e.label)); + t.add(r), Gy(r, i) + } + }, t.prototype.updatePointerEl = function (t, e, n) { + var i = ML(t).pointerEl; + i && e.pointer && (i.setStyle(e.pointer.style), n(i, {shape: e.pointer.shape})) + }, t.prototype.updateLabelEl = function (t, e, n, i) { + var r = ML(t).labelEl; + r && (r.setStyle(e.label.style), n(r, {x: e.label.x, y: e.label.y}), Gy(r, i)) + }, t.prototype._renderHandle = function (t) { + if (!this._dragging && this.updateHandleTransform) { + var e = this._axisPointerModel, n = this._api.getZr(), i = this._handle, r = e.getModel("handle"), + o = e.get("status"); + if (!r.get("show") || !o || "hide" === o) return i && n.remove(i), void (this._handle = null); + var a; + this._handle || (a = !0, i = this._handle = Ts(r.get("icon"), { + cursor: "move", + draggable: !0, + onmousemove: function (t) { + Qv(t.event) + }, + onmousedown: IL(this._onHandleDragMove, this, 0, 0), + drift: IL(this._onHandleDragMove, this), + ondragend: IL(this._onHandleDragEnd, this) + }), n.add(i)), Xy(i, e, !1), i.setStyle(r.getItemStyle(null, ["color", "borderColor", "borderWidth", "opacity", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"])); + var s = r.get("size"); + T(s) || (s = [s, s]), i.scaleX = s[0] / 2, i.scaleY = s[1] / 2, Ih(this, "_doDispatchAxisPointer", r.get("throttle") || 0, "fixRate"), this._moveHandleToValue(t, a) + } + }, t.prototype._moveHandleToValue = function (t, e) { + Hy(this._axisPointerModel, !e && this._moveAnimation, this._handle, Wy(this.getHandleTransform(t, this._axisModel, this._axisPointerModel))) + }, t.prototype._onHandleDragMove = function (t, e) { + var n = this._handle; + if (n) { + this._dragging = !0; + var i = this.updateHandleTransform(Wy(n), [t, e], this._axisModel, this._axisPointerModel); + this._payloadInfo = i, n.stopAnimation(), n.attr(Wy(i)), ML(n).lastProp = null, this._doDispatchAxisPointer() + } + }, t.prototype._doDispatchAxisPointer = function () { + var t = this._handle; + if (t) { + var e = this._payloadInfo, n = this._axisModel; + this._api.dispatchAction({ + type: "updateAxisPointer", + x: e.cursorPoint[0], + y: e.cursorPoint[1], + tooltipOption: e.tooltipOption, + axesInfo: [{axisDim: n.axis.dim, axisIndex: n.componentIndex}] + }) + } + }, t.prototype._onHandleDragEnd = function () { + this._dragging = !1; + var t = this._handle; + if (t) { + var e = this._axisPointerModel.get("value"); + this._moveHandleToValue(e), this._api.dispatchAction({type: "hideTip"}) + } + }, t.prototype.clear = function (t) { + this._lastValue = null, this._lastStatus = null; + var e = t.getZr(), n = this._group, i = this._handle; + e && n && (this._lastGraphicKey = null, n && e.remove(n), i && e.remove(i), this._group = null, this._handle = null, this._payloadInfo = null) + }, t.prototype.doClear = function () { + }, t.prototype.buildLabel = function (t, e, n) { + return n = n || 0, {x: t[n], y: t[1 - n], width: e[n], height: e[1 - n]} + }, t + }(), DL = function (t) { + function n() { + return null !== t && t.apply(this, arguments) || this + } + + return e(n, t), n.prototype.makeElOption = function (t, e, n, i, r) { + var o = n.axis, a = o.grid, s = i.get("type"), l = Qy(a, o).getOtherAxis(o).getGlobalExtent(), + u = o.toGlobalCoord(o.dataToCoord(e, !0)); + if (s && "none" !== s) { + var h = Yy(i), c = kL[s](o, u, l); + c.style = h, t.graphicKey = c.type, t.pointer = c + } + var p = ad(a.model, n); + Ky(e, t, p, n, i, r) + }, n.prototype.getHandleTransform = function (t, e, n) { + var i = ad(e.axis.grid.model, e, {labelInside: !1}); + i.labelMargin = n.get(["handle", "margin"]); + var r = Zy(e.axis, t, i); + return {x: r[0], y: r[1], rotation: i.rotation + (i.labelDirection < 0 ? Math.PI : 0)} + }, n.prototype.updateHandleTransform = function (t, e, n) { + var i = n.axis, r = i.grid, o = i.getGlobalExtent(!0), a = Qy(r, i).getOtherAxis(i).getGlobalExtent(), + s = "x" === i.dim ? 0 : 1, l = [t.x, t.y]; + l[s] += e[s], l[s] = Math.min(o[1], l[s]), l[s] = Math.max(o[0], l[s]); + var u = (a[1] + a[0]) / 2, h = [u, u]; + h[s] = l[s]; + var c = [{verticalAlign: "middle"}, {align: "center"}]; + return {x: l[0], y: l[1], rotation: t.rotation, cursorPoint: h, tooltipOption: c[s]} + }, n + }(AL), kL = { + line: function (t, e, n) { + var i = $y([e, n[0]], [e, n[1]], tv(t)); + return {type: "Line", subPixelOptimize: !0, shape: i} + }, shadow: function (t, e, n) { + var i = Math.max(1, t.getBandWidth()), r = n[1] - n[0]; + return {type: "Rect", shape: Jy([e - i / 2, n[0]], [i, r], tv(t))} + } + }; + sk.registerAxisPointerClass("CartesianAxisPointer", DL); + var LL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.type = "axisPointer", n.defaultOption = { + show: "auto", + zlevel: 0, + z: 50, + type: "line", + snap: !1, + triggerTooltip: !0, + value: null, + status: null, + link: [], + animation: null, + animationDurationUpdate: 200, + lineStyle: {color: "#B9BEC9", width: 1, type: "dashed"}, + shadowStyle: {color: "rgba(210,219,238,0.2)"}, + label: { + show: !0, + formatter: null, + precision: "auto", + margin: 3, + color: "#fff", + padding: [5, 7, 5, 7], + backgroundColor: "auto", + borderColor: null, + borderWidth: 0, + borderRadius: 3 + }, + handle: { + show: !1, + icon: "M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z", + size: 45, + margin: 50, + color: "#333", + shadowBlur: 3, + shadowColor: "#aaa", + shadowOffsetX: 0, + shadowOffsetY: 2, + throttle: 40 + } + }, n + }(oT); + oT.registerClass(LL), up(function (t) { + if (t) { + (!t.axisPointer || 0 === t.axisPointer.length) && (t.axisPointer = {}); + var e = t.axisPointer.link; + e && !T(e) && (t.axisPointer.link = [e]) + } + }), hp(cI.PROCESSOR.STATISTIC, function (t, e) { + t.getComponent("axisPointer").coordSysAxesInfo = Vd(t, e) + }), fp({type: "updateAxisPointer", event: "updateAxisPointer", update: ":updateAxisPointer"}, by); + var PL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.type = "tooltip", n.dependencies = ["axisPointer"], n.defaultOption = { + zlevel: 0, + z: 60, + show: !0, + showContent: !0, + trigger: "item", + triggerOn: "mousemove|click", + alwaysShowContent: !1, + displayMode: "single", + renderMode: "auto", + confine: null, + showDelay: 0, + hideDelay: 100, + transitionDuration: .4, + enterable: !1, + backgroundColor: "#fff", + shadowBlur: 10, + shadowColor: "rgba(0, 0, 0, .2)", + shadowOffsetX: 1, + shadowOffsetY: 2, + borderColor: "#333", + borderRadius: 4, + borderWidth: 1, + padding: null, + extraCssText: "", + axisPointer: { + type: "line", + axis: "auto", + animation: "auto", + animationDurationUpdate: 200, + animationEasingUpdate: "exponentialOut", + crossStyle: {color: "#999", width: 1, type: "dashed", textStyle: {}} + }, + textStyle: {color: "#666", fontSize: 14} + }, n + }(oT); + oT.registerClass(PL); + var OL = ["-ms-", "-moz-", "-o-", "-webkit-", ""], + RL = "position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;", + EL = function () { + function t(t, e, n) { + if (this._show = !1, this._styleCoord = [0, 0, 0, 0], this._enterable = !0, this._firstShow = !0, this._longHide = !0, wv.wxa) return null; + var i = document.createElement("div"); + i.domBelongToZr = !0, this.el = i; + var r = this._zr = e.getZr(), o = this._appendToBody = n && n.appendToBody; + sv(this._styleCoord, r, o, e.getWidth() / 2, e.getHeight() / 2), o ? document.body.appendChild(i) : t.appendChild(i), this._container = t; + var a = this; + i.onmouseenter = function () { + a._enterable && (clearTimeout(a._hideTimeout), a._show = !0), a._inContent = !0 + }, i.onmousemove = function (t) { + if (t = t || window.event, !a._enterable) { + var e = r.handler, n = r.painter.getViewportRoot(); + Ae(n, t, !0), e.dispatch("mousemove", t) + } + }, i.onmouseleave = function () { + a._inContent = !1, a._enterable && a._show && a.hideLater(a._hideDelay) + } + } + + return t.prototype.update = function (t) { + var e = this._container, n = e.currentStyle || document.defaultView.getComputedStyle(e), i = e.style; + "absolute" !== i.position && "absolute" !== n.position && (i.position = "relative"); + var r = t.get("alwaysShowContent"); + r && this._moveIfResized(), this.el.className = t.get("className") || "" + }, t.prototype.show = function (t, e) { + clearTimeout(this._hideTimeout), clearTimeout(this._longHideTimeout); + var n = this.el, i = this._styleCoord, r = n.offsetHeight / 2; + e = Il(e), n.style.cssText = RL + av(t, !this._firstShow, this._longHide) + ";left:" + i[0] + "px;top:" + (i[1] - r) + "px;" + ("border-color: " + e + ";") + (t.get("extraCssText") || ""), n.style.display = n.innerHTML ? "block" : "none", n.style.pointerEvents = this._enterable ? "auto" : "none", this._show = !0, this._firstShow = !1, this._longHide = !1 + }, t.prototype.setContent = function (t, e, n, i, r) { + if (null != t) { + var o = this.el; + if (C(r) && "item" === n.get("trigger") && !ev(n) && (t += iv(n.get("backgroundColor"), i, r)), C(t)) o.innerHTML = t; else if (t) { + o.innerHTML = "", T(t) || (t = [t]); + for (var a = 0; a < t.length; a++) P(t[a]) && t[a].parentNode !== o && o.appendChild(t[a]) + } + } + }, t.prototype.setEnterable = function (t) { + this._enterable = t + }, t.prototype.getSize = function () { + var t = this.el; + return [t.clientWidth, t.clientHeight] + }, t.prototype.moveTo = function (t, e) { + var n = this._styleCoord; + if (sv(n, this._zr, this._appendToBody, t, e), null != n[0] && null != n[1]) { + var i = this.el.style; + i.left = n[0].toFixed(0) + "px", i.top = n[1].toFixed(0) + "px" + } + }, t.prototype._moveIfResized = function () { + var t = this._styleCoord[2], e = this._styleCoord[3]; + this.moveTo(t * this._zr.getWidth(), e * this._zr.getHeight()) + }, t.prototype.hide = function () { + var t = this; + this.el.style.visibility = "hidden", this.el.style.opacity = "0", this._show = !1, this._longHideTimeout = setTimeout(function () { + return t._longHide = !0 + }, 500) + }, t.prototype.hideLater = function (t) { + !this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout = setTimeout(Ev(this.hide, this), t)) : this.hide()) + }, t.prototype.isShow = function () { + return this._show + }, t.prototype.dispose = function () { + this.el.parentNode.removeChild(this.el) + }, t.prototype.getOuterSize = function () { + var t = this.el.clientWidth, e = this.el.clientHeight; + if (document.defaultView && document.defaultView.getComputedStyle) { + var n = document.defaultView.getComputedStyle(this.el); + n && (t += parseInt(n.borderLeftWidth, 10) + parseInt(n.borderRightWidth, 10), e += parseInt(n.borderTopWidth, 10) + parseInt(n.borderBottomWidth, 10)) + } + return {width: t, height: e} + }, t + }(), zL = function () { + function t(t) { + this._show = !1, this._styleCoord = [0, 0, 0, 0], this._enterable = !0, this._zr = t.getZr(), hv(this._styleCoord, this._zr, t.getWidth() / 2, t.getHeight() / 2) + } + + return t.prototype.update = function (t) { + var e = t.get("alwaysShowContent"); + e && this._moveIfResized() + }, t.prototype.show = function () { + this._hideTimeout && clearTimeout(this._hideTimeout), this.el.show(), this._show = !0 + }, t.prototype.setContent = function (t, e, n, i) { + D(t) && Io(""), this.el && this._zr.remove(this.el); + var r = n.getModel("textStyle"); + this.el = new Ew({ + style: { + rich: e.richTextStyles, + text: t, + lineHeight: 22, + backgroundColor: n.get("backgroundColor"), + borderRadius: n.get("borderRadius"), + borderWidth: 1, + borderColor: i, + shadowColor: n.get("shadowColor"), + shadowBlur: n.get("shadowBlur"), + shadowOffsetX: n.get("shadowOffsetX"), + shadowOffsetY: n.get("shadowOffsetY"), + textShadowColor: r.get("textShadowColor"), + textShadowBlur: r.get("textShadowBlur") || 0, + textShadowOffsetX: r.get("textShadowOffsetX") || 0, + textShadowOffsetY: r.get("textShadowOffsetY") || 0, + fill: n.get(["textStyle", "color"]), + padding: uh(n, "richText"), + verticalAlign: "top", + align: "left" + }, z: n.get("z") + }), this._zr.add(this.el); + var o = this; + this.el.on("mouseover", function () { + o._enterable && (clearTimeout(o._hideTimeout), o._show = !0), o._inContent = !0 + }), this.el.on("mouseout", function () { + o._enterable && o._show && o.hideLater(o._hideDelay), o._inContent = !1 + }) + }, t.prototype.setEnterable = function (t) { + this._enterable = t + }, t.prototype.getSize = function () { + var t = this.el, e = this.el.getBoundingRect(), n = uv(t.style); + return [e.width + n.left + n.right, e.height + n.top + n.bottom] + }, t.prototype.moveTo = function (t, e) { + var n = this.el; + if (n) { + var i = this._styleCoord; + hv(i, this._zr, t, e), t = i[0], e = i[1]; + var r = n.style, o = lv(r.borderWidth || 0), a = uv(r); + n.x = t + o + a.left, n.y = e + o + a.top, n.markRedraw() + } + }, t.prototype._moveIfResized = function () { + var t = this._styleCoord[2], e = this._styleCoord[3]; + this.moveTo(t * this._zr.getWidth(), e * this._zr.getHeight()) + }, t.prototype.hide = function () { + this.el && this.el.hide(), this._show = !1 + }, t.prototype.hideLater = function (t) { + !this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout = setTimeout(Ev(this.hide, this), t)) : this.hide()) + }, t.prototype.isShow = function () { + return this._show + }, t.prototype.getOuterSize = function () { + var t = this.getSize(); + return {width: t[0], height: t[1]} + }, t.prototype.dispose = function () { + this._zr.remove(this.el) + }, t + }(), BL = Ev, NL = y, FL = ao, HL = new Gx({shape: {x: -1, y: -1, width: 2, height: 2}}), VL = function (t) { + function n() { + var e = null !== t && t.apply(this, arguments) || this; + return e.type = n.type, e + } + + return e(n, t), n.prototype.init = function (t, e) { + if (!wv.node) { + var n = t.getComponent("tooltip"), i = n.get("renderMode"); + this._renderMode = Jo(i), this._tooltipContent = "richText" === this._renderMode ? new zL(e) : new EL(e.getDom(), e, {appendToBody: n.get("appendToBody", !0)}) + } + }, n.prototype.render = function (t, e, n) { + if (!wv.node) { + this.group.removeAll(), this._tooltipModel = t, this._ecModel = e, this._api = n, this._alwaysShowContent = t.get("alwaysShowContent"); + var i = this._tooltipContent; + i.update(t), i.setEnterable(t.get("enterable")), this._initGlobalListener(), this._keepShow() + } + }, n.prototype._initGlobalListener = function () { + var t = this._tooltipModel, e = t.get("triggerOn"); + Oy("itemTooltip", this._api, BL(function (t, n, i) { + "none" !== e && (e.indexOf(t) >= 0 ? this._tryShow(n, i) : "leave" === t && this._hide(i)) + }, this)) + }, n.prototype._keepShow = function () { + var t = this._tooltipModel, e = this._ecModel, n = this._api; + if (null != this._lastX && null != this._lastY && "none" !== t.get("triggerOn")) { + var i = this; + clearTimeout(this._refreshUpdateTimeout), this._refreshUpdateTimeout = setTimeout(function () { + !n.isDisposed() && i.manuallyShowTip(t, e, n, { + x: i._lastX, + y: i._lastY, + dataByCoordSys: i._lastDataByCoordSys + }) + }) + } + }, n.prototype.manuallyShowTip = function (t, e, n, i) { + if (i.from !== this.uid && !wv.node) { + var r = pv(i, n); + this._ticket = ""; + var o = i.dataByCoordSys; + if (i.tooltip && null != i.x && null != i.y) { + var a = HL; + a.x = i.x, a.y = i.y, a.update(), a.tooltip = i.tooltip, this._tryShow({ + offsetX: i.x, + offsetY: i.y, + target: a + }, r) + } else if (o) this._tryShow({ + offsetX: i.x, + offsetY: i.y, + position: i.position, + dataByCoordSys: o, + tooltipOption: i.tooltipOption + }, r); else if (null != i.seriesIndex) { + if (this._manuallyAxisShowTip(t, e, n, i)) return; + var s = wy(i, e), l = s.point[0], u = s.point[1]; + null != l && null != u && this._tryShow({ + offsetX: l, + offsetY: u, + position: i.position, + target: s.el + }, r) + } else null != i.x && null != i.y && (n.dispatchAction({ + type: "updateAxisPointer", + x: i.x, + y: i.y + }), this._tryShow({ + offsetX: i.x, + offsetY: i.y, + position: i.position, + target: n.getZr().findHover(i.x, i.y).target + }, r)) + } + }, n.prototype.manuallyHideTip = function (t, e, n, i) { + var r = this._tooltipContent; + !this._alwaysShowContent && this._tooltipModel && r.hideLater(this._tooltipModel.get("hideDelay")), this._lastX = this._lastY = this._lastDataByCoordSys = null, i.from !== this.uid && this._hide(pv(i, n)) + }, n.prototype._manuallyAxisShowTip = function (t, e, n, i) { + var r = i.seriesIndex, o = i.dataIndex, a = e.getComponent("axisPointer").coordSysAxesInfo; + if (null != r && null != o && null != a) { + var s = e.getSeriesByIndex(r); + if (s) { + var l = s.getData(), u = cv([l.getItemModel(o), s, (s.coordinateSystem || {}).model, t]); + if ("axis" === u.get("trigger")) return n.dispatchAction({ + type: "updateAxisPointer", + seriesIndex: r, + dataIndex: o, + position: i.position + }), !0 + } + } + }, n.prototype._tryShow = function (t, e) { + var n = t.target, i = this._tooltipModel; + if (i) { + this._lastX = t.offsetX, this._lastY = t.offsetY; + var r = t.dataByCoordSys; + r && r.length ? this._showAxisTooltip(r, t) : n && Wc(n, function (t) { + return null != Gb(t).dataIndex + }) ? (this._lastDataByCoordSys = null, this._showSeriesItemTooltip(t, n, e)) : n && n.tooltip ? (this._lastDataByCoordSys = null, this._showComponentItemTooltip(t, n, e)) : (this._lastDataByCoordSys = null, this._hide(e)) + } + }, n.prototype._showOrMove = function (t, e) { + var n = t.get("showDelay"); + e = Ev(e, this), clearTimeout(this._showTimout), n > 0 ? this._showTimout = setTimeout(e, n) : e() + }, n.prototype._showAxisTooltip = function (t, e) { + var n = this._ecModel, i = this._tooltipModel, r = [e.offsetX, e.offsetY], o = cv([e.tooltipOption, i]), + a = this._renderMode, s = [], l = Ju("section", {blocks: [], noHeader: !0}), u = [], h = new gM; + NL(t, function (t) { + NL(t.dataByAxis, function (t) { + var e = n.getComponent(t.axisDim + "Axis", t.axisIndex), i = t.value; + if (e && null != i) { + var r = jy(i, e.axis, n, t.seriesDataIndices, t.valueLabelOpt), + o = Ju("section", {header: r, noHeader: !W(r), sortBlocks: !0, blocks: []}); + l.blocks.push(o), y(t.seriesDataIndices, function (l) { + var c = n.getSeriesByIndex(l.seriesIndex), p = l.dataIndexInside, f = c.getDataParams(p); + f.axisDim = t.axisDim, f.axisIndex = t.axisIndex, f.axisType = t.axisType, f.axisId = t.axisId, f.axisValue = Af(e.axis, {value: i}), f.axisValueLabel = r, f.marker = h.makeTooltipMarker("item", Il(f.color), a); + var d = Nu(c.formatTooltip(p, !0, null)); + d.markupFragment && o.blocks.push(d.markupFragment), d.markupText && u.push(d.markupText), s.push(f) + }) + } + }) + }), l.blocks.reverse(), u.reverse(); + var c = e.position, p = o.get("order"), f = eh(l, h, a, p, n.get("useUTC")); + f && u.unshift(f); + var d = "richText" === a ? "\n\n" : "
", g = u.join(d); + this._showOrMove(o, function () { + this._updateContentNotChangedOnAxis(t) ? this._updatePosition(o, c, r[0], r[1], this._tooltipContent, s) : this._showTooltipContent(o, g, s, Math.random() + "", r[0], r[1], c, null, h) + }) + }, n.prototype._showSeriesItemTooltip = function (t, e, n) { + var i = Wc(e, function (t) { + return null != Gb(t).dataIndex + }), r = this._ecModel, o = Gb(i), a = o.seriesIndex, s = r.getSeriesByIndex(a), l = o.dataModel || s, + u = o.dataIndex, h = o.dataType, c = l.getData(h), p = this._renderMode, + f = cv([c.getItemModel(u), l, s && (s.coordinateSystem || {}).model, this._tooltipModel]), + d = f.get("trigger"); + if (null == d || "item" === d) { + var g = l.getDataParams(u, h), y = new gM; + g.marker = y.makeTooltipMarker("item", Il(g.color), p); + var v = Nu(l.formatTooltip(u, !1, h)), m = f.get("order"), + _ = v.markupFragment ? eh(v.markupFragment, y, p, m, r.get("useUTC")) : v.markupText, + x = "item_" + l.name + "_" + u; + this._showOrMove(f, function () { + this._showTooltipContent(f, _, g, x, t.offsetX, t.offsetY, t.position, t.target, y) + }), n({ + type: "showTip", + dataIndexInside: u, + dataIndex: c.getRawIndex(u), + seriesIndex: a, + from: this.uid + }) + } + }, n.prototype._showComponentItemTooltip = function (t, e, n) { + var i = e.tooltip; + if (C(i)) { + var r = i; + i = {content: r, formatter: r} + } + var o = new AS(i, this._tooltipModel, this._ecModel), a = o.get("content"), s = Math.random() + "", + l = new gM; + this._showOrMove(o, function () { + this._showTooltipContent(o, a, o.get("formatterParams") || {}, s, t.offsetX, t.offsetY, t.position, e, l) + }), n({type: "showTip", from: this.uid}) + }, n.prototype._showTooltipContent = function (t, e, n, i, r, o, a, s, l) { + if (this._ticket = "", t.get("showContent") && t.get("show")) { + var u = this._tooltipContent, h = t.get("formatter"); + a = a || t.get("position"); + var c = e, p = this._getNearestPoint([r, o], n, t.get("trigger")); + if (h && C(h)) { + var f = t.ecModel.get("useUTC"), d = T(n) ? n[0] : n, + g = d && d.axisType && d.axisType.indexOf("time") >= 0; + c = h, g && (c = Qs(d.axisValue, c, f)), c = bl(c, n, !0) + } else if (M(h)) { + var y = BL(function (e, i) { + e === this._ticket && (u.setContent(i, l, t, p.color, a), this._updatePosition(t, a, r, o, u, n, s)) + }, this); + this._ticket = i, c = h(n, i, y) + } + u.setContent(c, l, t, p.color, a), u.show(t, p.color), this._updatePosition(t, a, r, o, u, n, s) + } + }, n.prototype._getNearestPoint = function (t, e, n) { + return "axis" === n || T(e) ? {color: "html" === this._renderMode ? "#fff" : "none"} : T(e) ? void 0 : {color: e.color || e.borderColor} + }, n.prototype._updatePosition = function (t, e, n, i, r, o, a) { + var s = this._api.getWidth(), l = this._api.getHeight(); + e = e || t.get("position"); + var u = r.getSize(), h = t.get("align"), c = t.get("verticalAlign"), p = a && a.getBoundingRect().clone(); + if (a && p.applyTransform(a.transform), M(e) && (e = e([n, i], o, r.el, p, { + viewSize: [s, l], + contentSize: u.slice() + })), T(e)) n = FL(e[0], s), i = FL(e[1], l); else if (D(e)) { + var f = e; + f.width = u[0], f.height = u[1]; + var d = kl(f, {width: s, height: l}); + n = d.x, i = d.y, h = null, c = null + } else if (C(e) && a) { + var g = gv(e, p, u); + n = g[0], i = g[1] + } else { + var g = fv(n, i, r, s, l, h ? null : 20, c ? null : 20); + n = g[0], i = g[1] + } + if (h && (n -= yv(h) ? u[0] / 2 : "right" === h ? u[0] : 0), c && (i -= yv(c) ? u[1] / 2 : "bottom" === c ? u[1] : 0), ev(t)) { + var g = dv(n, i, r, s, l); + n = g[0], i = g[1] + } + r.moveTo(n, i) + }, n.prototype._updateContentNotChangedOnAxis = function (t) { + var e = this._lastDataByCoordSys, n = !!e && e.length === t.length; + return n && NL(e, function (e, i) { + var r = e.dataByAxis || [], o = t[i] || {}, a = o.dataByAxis || []; + n = n && r.length === a.length, n && NL(r, function (t, e) { + var i = a[e] || {}, r = t.seriesDataIndices || [], o = i.seriesDataIndices || []; + n = n && t.value === i.value && t.axisType === i.axisType && t.axisId === i.axisId && r.length === o.length, n && NL(r, function (t, e) { + var i = o[e]; + n = n && t.seriesIndex === i.seriesIndex && t.dataIndex === i.dataIndex + }) + }) + }), this._lastDataByCoordSys = t, !!n + }, n.prototype._hide = function (t) { + this._lastDataByCoordSys = null, t({type: "hideTip", from: this.uid}) + }, n.prototype.dispose = function (t, e) { + wv.node || (this._tooltipContent.dispose(), Fy("itemTooltip", e)) + }, n.type = "tooltip", n + }(mM); + mM.registerClass(VL), fp({type: "showTip", event: "showTip", update: "tooltip:manuallyShowTip"}, function () { + }), fp({type: "hideTip", event: "hideTip", update: "tooltip:manuallyHideTip"}, function () { + }), t.version = qC, t.dependencies = jC, t.PRIORITY = cI, t.init = np, t.connect = ip, t.disConnect = rp, t.disconnect = aA, t.dispose = op, t.getInstanceByDom = ap, t.getInstanceById = sp, t.registerTheme = lp, t.registerPreprocessor = up, t.registerProcessor = hp, t.registerPostInit = cp, t.registerPostUpdate = pp, t.registerAction = fp, t.registerCoordinateSystem = dp, t.getCoordinateSystemDimensions = gp, t.registerLayout = yp, t.registerVisual = vp, t.registerLoading = _p, t.extendComponentModel = xp, t.extendComponentView = wp, t.extendSeriesModel = bp, t.extendChartView = Sp, t.setCanvasCreator = Tp, t.registerMap = Mp, t.getMap = Cp, t.registerTransform = sA, t.dataTool = bA, t.registerLocale = Ys, t.zrender = Mb, t.throttle = Ch, t.helper = dD, t.matrix = um, t.vector = Wv, t.color = Im, t.parseGeoJSON = Gf, t.parseGeoJson = xD, t.number = wD, t.format = bD, t.time = SD, t.util = TD, t.graphic = CD, t.innerDrawElementOnCanvas = Ec, t.List = BA, t.Model = AS, t.Axis = _D, t.env = wv +}); \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graph.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graph.html" new file mode 100644 index 0000000..33dfd1c --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graph.html" @@ -0,0 +1,60 @@ + + + + + epidemic + + + + + + +
+ + + + + + \ No newline at end of file From 05295e277a0a206e8ca6eddad71eaf7e8a20a680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Thu, 31 Dec 2020 13:14:57 +0800 Subject: [PATCH 05/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20=E4=BD=BF=E7=94=A8HttpClient=E5=8F=91?= =?UTF-8?q?=E9=80=81http=E8=AF=B7=E6=B1=82=20+=20Debug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pom.xml" | 7 ++ .../main/java/com/zgh/bean/GraphBean.java" | 2 + .../java/com/zgh/handler/DataHandler.java" | 4 +- .../java/com/zgh/handler/GraphHandler.java" | 6 +- .../java/com/zgh/util/HttpClientUtil.java" | 57 ++++++++++++ .../main/java/com/zgh/util/HttpConnUtil.java" | 90 ++++++++++++++++++- 6 files changed, 158 insertions(+), 8 deletions(-) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpClientUtil.java" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" index f09a7a1..001422b 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" @@ -76,6 +76,13 @@ 3.2.0 + + + org.apache.httpcomponents + httpclient + 4.5.13 + + diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBean.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBean.java" index 9f36c30..72d9f43 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBean.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBean.java" @@ -13,6 +13,8 @@ @TableName("graph") public class GraphBean implements Serializable { + private Long id; + private String date; private int confirm; diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" index 88b5526..14b5dd6 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" @@ -3,7 +3,7 @@ import com.google.gson.Gson; import com.zgh.bean.DataBean; import com.zgh.service.DataService; -import com.zgh.util.HttpConnUtil; +import com.zgh.util.HttpClientUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -65,7 +65,7 @@ public void updateData() { public static List getData() { - String str = HttpConnUtil.doGet(urlStr); + String str = HttpClientUtil.doGet(urlStr); Gson gson = new Gson(); Map map = gson.fromJson(str, Map.class); diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" index 4a23a2b..1e67cee 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" @@ -3,7 +3,7 @@ import com.google.gson.Gson; import com.zgh.bean.GraphBean; import com.zgh.service.GraphService; -import com.zgh.util.HttpConnUtil; +import com.zgh.util.HttpClientUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -49,7 +49,7 @@ public void updateData() { public static List getData() { - String str = HttpConnUtil.doGet(urlStr); + String str = HttpClientUtil.doGet(urlStr); Gson gson = new Gson(); Map map = gson.fromJson(str, Map.class); @@ -67,7 +67,7 @@ public static List getData() { double dead = (double) tmp.get("dead"); double heal = (double) tmp.get("heal"); - GraphBean graphBean = new GraphBean(date, (int) confirm, (int) heal, (int) dead); + GraphBean graphBean = new GraphBean(null, date, (int) confirm, (int) heal, (int) dead); result.add(graphBean); } diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpClientUtil.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpClientUtil.java" new file mode 100644 index 0000000..c864a2f --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpClientUtil.java" @@ -0,0 +1,57 @@ +package com.zgh.util; + +import org.apache.http.HttpEntity; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; + +/** + * HttpClient 实现 http 请求 + */ +public class HttpClientUtil { + + public static String doGet(String urlStr) { + + // 提供了 闭合的httpclient对象 + CloseableHttpClient httpClient = null; + // 也提供了 闭合的响应对象 + CloseableHttpResponse response = null; + + String result = null; + + try { + // 使用默认创建方式 + httpClient = HttpClients.createDefault(); + // 创建一个get请求 传入url + HttpGet httpGet = new HttpGet(urlStr); + // 设置请求头的方式 + httpGet.addHeader("Accept", "application/json"); + + // 设置请求参数 连接时间、数据读取时间(socketTimeOut)等 单位是ms + // ConnectionRequestTimeout 指从共享连接池中取出连接的超时时间 + RequestConfig requestConfig = RequestConfig.custom() + .setConnectTimeout(35000) + .setConnectionRequestTimeout(35000) + .setSocketTimeout(60000) + .build(); + + // 设置配置参数 + httpGet.setConfig(requestConfig); + // 执行请求 + response = httpClient.execute(httpGet); + // 从返回对象中获取返回数据 + HttpEntity entity = response.getEntity(); + + result = EntityUtils.toString(entity); + + }catch (Exception e){ + e.printStackTrace(); + } + + return result; + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpConnUtil.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpConnUtil.java" index ef7eb1a..2beeb4d 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpConnUtil.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/HttpConnUtil.java" @@ -1,10 +1,10 @@ package com.zgh.util; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; +import java.io.*; import java.net.HttpURLConnection; import java.net.URL; +import java.util.Iterator; +import java.util.Map; /** * Java 实现 http 请求 @@ -69,5 +69,89 @@ public static String doGet(String urlStr) { return result.toString(); } + public String doPost(String urlStr, Map parameterMap) throws Exception { + + StringBuffer parameterBuffer = new StringBuffer(); + if (parameterMap != null) { + Iterator iterator = parameterMap.keySet().iterator(); + while (iterator.hasNext()) { + String key = (String) iterator.next(); + String value = ""; + if (parameterMap.get(key) != null) { + value = (String) parameterMap.get(key); + } + + parameterBuffer.append(key).append("=").append(value); + if (iterator.hasNext()) { + parameterBuffer.append("&"); + } + } + } + + System.out.println("POST parameter : " + parameterBuffer.toString()); + + URL url = new URL(urlStr); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + + connection.setDoOutput(true); + connection.setRequestMethod("POST"); + connection.setRequestProperty("Accept-Charset", "utf-8"); + connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + connection.setRequestProperty("Content-Length", + String.valueOf(parameterBuffer.length())); + + OutputStream outputStream = null; + OutputStreamWriter outputStreamWriter = null; + InputStream inputStream = null; + InputStreamReader inputStreamReader = null; + BufferedReader reader = null; + + StringBuffer resultBuffer = new StringBuffer(); + + try { + outputStream = connection.getOutputStream(); + outputStreamWriter = new OutputStreamWriter(outputStream); + + outputStreamWriter.write(parameterBuffer.toString()); + outputStreamWriter.flush(); + + connection.connect(); + + if (connection.getResponseCode() != 200) { + throw new Exception("HTTP Request is not success, " + + "Response code is " + connection.getResponseCode()); + } + + inputStream = connection.getInputStream(); + inputStreamReader = new InputStreamReader(inputStream); + reader = new BufferedReader(inputStreamReader); + + String tempLine = null; + while ((tempLine = reader.readLine()) != null) { + resultBuffer.append(tempLine); + } + + } finally { + + if (outputStreamWriter != null) { + outputStreamWriter.close(); + } + if (outputStream != null) { + outputStream.close(); + } + if (reader != null) { + reader.close(); + } + if (inputStreamReader != null) { + inputStreamReader.close(); + } + if (inputStream != null) { + inputStream.close(); + } + + } + + return resultBuffer.toString(); + } } From d9303baa85d7d284c508732d57181f1a02bb9571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Thu, 31 Dec 2020 15:02:53 +0800 Subject: [PATCH 06/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20=E4=BD=BF=E7=94=A8echarts=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E6=95=B0=E6=8D=AE=E5=8F=AF=E8=A7=86=E5=8C=96=20?= =?UTF-8?q?=E6=9F=B1=E7=8A=B6=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/zgh/bean/GraphBarBean.java" | 21 ++++++++ .../com/zgh/controller/GraphController.java" | 24 +++++++++ .../java/com/zgh/handler/DataHandler.java" | 2 + .../java/com/zgh/handler/GraphHandler.java" | 47 +++++++++++++++++ .../src/main/resources/templates/graph.html" | 3 ++ .../main/resources/templates/graphBar.html" | 51 +++++++++++++++++++ 6 files changed, 148 insertions(+) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBarBean.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graphBar.html" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBarBean.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBarBean.java" new file mode 100644 index 0000000..44a1c5e --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/GraphBarBean.java" @@ -0,0 +1,21 @@ +package com.zgh.bean; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class GraphBarBean implements Comparable{ + + private String name; + + private int fromAbroad; + + @Override + public int compareTo(GraphBarBean o) { + return o.getFromAbroad() - this.getFromAbroad(); //递减 + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" index a0c3a50..d128280 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" @@ -1,7 +1,9 @@ package com.zgh.controller; import com.google.gson.Gson; +import com.zgh.bean.GraphBarBean; import com.zgh.bean.GraphBean; +import com.zgh.handler.GraphHandler; import com.zgh.service.GraphService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -9,6 +11,7 @@ import org.springframework.web.bind.annotation.GetMapping; import java.util.ArrayList; +import java.util.Collections; import java.util.List; @Controller @@ -46,4 +49,25 @@ public String graph(Model model) { } + @GetMapping("/graphBar") + public String graphBar(Model model) { + + List lists = GraphHandler.getImportData(); + Collections.sort(lists); + + ArrayList nameList = new ArrayList<>(); + ArrayList fromAbroadList = new ArrayList<>(); + + for (int i = 0; i < 10; i++) { + GraphBarBean bean = lists.get(i); + nameList.add(bean.getName()); + fromAbroadList.add(bean.getFromAbroad()); + } + + model.addAttribute("nameList", new Gson().toJson(nameList)); + model.addAttribute("fromAbroadList", new Gson().toJson(fromAbroadList)); + + return "graphBar"; + } + } diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" index 14b5dd6..6a1f248 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/DataHandler.java" @@ -61,6 +61,8 @@ public void updateData() { // 新型冠状病毒肺炎 - 疫情实时追踪 from 腾讯新闻 // 文件格式: JSON + // 爬取内容: 中国各省份的 现有确诊人数 now_confirm、累计确诊人数 confirm、死亡人数 dead、治愈人数 heal + // 前端展示: 表格 public static String urlStr = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"; public static List getData() { diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" index 1e67cee..f7a79ba 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/handler/GraphHandler.java" @@ -1,6 +1,7 @@ package com.zgh.handler; import com.google.gson.Gson; +import com.zgh.bean.GraphBarBean; import com.zgh.bean.GraphBean; import com.zgh.service.GraphService; import com.zgh.util.HttpClientUtil; @@ -45,6 +46,8 @@ public void updateData() { // 新型冠状病毒肺炎 - 疫情实时追踪 from 腾讯新闻 // 文件格式: JSON + // 爬取内容: 自疫情爆发以来国内每日 累计确诊人数 confirm、死亡人数 dead、治愈人数 heal + // 前端展示: 折线图 public static String urlStr = "https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/list?modules=chinaDayList,chinaDayAddList,cityStatis,nowConfirmStatis,provinceCompare"; public static List getData() { @@ -76,5 +79,49 @@ public static List getData() { } + // 新型冠状病毒肺炎 - 疫情实时追踪 from 腾讯新闻 + // 文件格式: JSON + // 爬取内容: 省市境外输入 + // 前端展示: 柱状图 + // 注意: 这部分内容就不经过数据库了呀 + public static String urlStr2 = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"; + + public static List getImportData() { + + String str = HttpClientUtil.doGet(urlStr2); + + Gson gson = new Gson(); + Map map = gson.fromJson(str, Map.class); + + String dataStr = (String) map.get("data"); + Map data = gson.fromJson(dataStr, Map.class); + + ArrayList areaList = (ArrayList) data.get("areaTree"); + Map dataMap = (Map) areaList.get(0); + ArrayList childrenList = (ArrayList) dataMap.get("children"); + + ArrayList result = new ArrayList<>(); + for (int i = 0; i < childrenList.size(); i++) { + + Map temp = (Map) childrenList.get(i); + + String name = (String) temp.get("name"); + + ArrayList children = (ArrayList) temp.get("children"); + for (int j = 0; j < children.size(); j++) { + Map importMap = (Map) children.get(j); + if ("境外输入".equals(importMap.get("name"))){ + Map importTotalMap = (Map) importMap.get("total"); + double confirm = (double) importTotalMap.get("confirm"); + + GraphBarBean bean = new GraphBarBean(name, (int) confirm); + result.add(bean); + } + } + } + + return result; + + } } diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graph.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graph.html" index 33dfd1c..91e3ec6 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graph.html" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graph.html" @@ -28,6 +28,9 @@ legend: { data:['累计确诊','累计治愈','累计死亡'] }, + tooltip: { + trigger: 'axis' + }, // 坐标系的x轴数据 xAxis: { data: JSON.parse(dateStr) diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graphBar.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graphBar.html" new file mode 100644 index 0000000..dcee2e7 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graphBar.html" @@ -0,0 +1,51 @@ + + + + + epidemic + + + + + + +
+ + + + + + \ No newline at end of file From 4eae1a4d80a6c332a8c0b7ae66cec4352c08c814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Thu, 31 Dec 2020 17:52:20 +0800 Subject: [PATCH 07/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20=E4=BD=BF=E7=94=A8echarts=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E6=95=B0=E6=8D=AE=E5=8F=AF=E8=A7=86=E5=8C=96=20?= =?UTF-8?q?=E4=B8=AD=E5=9B=BD=E5=9C=B0=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/zgh/bean/MapBean.java" | 16 + .../com/zgh/controller/GraphController.java" | 34 + .../main/resources/static/echarts/china.js" | 273 + .../resources/static/echarts/echarts.min.js" | 19498 +--------------- .../src/main/resources/templates/map.html" | 110 + .../README.md" | 39 +- 6 files changed, 493 insertions(+), 19477 deletions(-) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/MapBean.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/china.js" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/map.html" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/MapBean.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/MapBean.java" new file mode 100644 index 0000000..5be3750 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/bean/MapBean.java" @@ -0,0 +1,16 @@ +package com.zgh.bean; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class MapBean { + + private String name; + + private int value; + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" index d128280..d8b72e4 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/controller/GraphController.java" @@ -1,9 +1,12 @@ package com.zgh.controller; import com.google.gson.Gson; +import com.zgh.bean.DataBean; import com.zgh.bean.GraphBarBean; import com.zgh.bean.GraphBean; +import com.zgh.bean.MapBean; import com.zgh.handler.GraphHandler; +import com.zgh.service.DataService; import com.zgh.service.GraphService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -20,6 +23,9 @@ public class GraphController { @Autowired GraphService graphService; + @Autowired + DataService dataService; + @GetMapping("/graph") public String graph(Model model) { @@ -70,4 +76,32 @@ public String graphBar(Model model) { return "graphBar"; } + // 展示国内疫情地图 + @GetMapping("/map") + public String map(Model model) { + + List dataList = dataService.list(); // mybatis-plus 查询全表数据 + + List confirmList = new ArrayList<>(); + List nowConfirmList = new ArrayList<>(); + + for (int i = 0; i < dataList.size(); i++) { + + DataBean data = dataList.get(i); + + MapBean bean1 = new MapBean(data.getName(), data.getConfirm()); + confirmList.add(bean1); + + MapBean bean2 = new MapBean(data.getName(), data.getNowConfirm()); + nowConfirmList.add(bean2); + + } + + model.addAttribute("confirmList", new Gson().toJson(confirmList)); + model.addAttribute("nowConfirmList", new Gson().toJson(nowConfirmList)); + + return "map"; + + } + } diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/china.js" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/china.js" new file mode 100644 index 0000000..1ec4fac --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/china.js" @@ -0,0 +1,273 @@ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['exports', 'echarts'], factory); + } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { + // CommonJS + factory(exports, require('echarts')); + } else { + // Browser globals + factory({}, root.echarts); + } +}(this, function (exports, echarts) { + var log = function (msg) { + if (typeof console !== 'undefined') { + console && console.error && console.error(msg); + } + } + if (!echarts) { + log('ECharts is not Loaded'); + return; + } + if (!echarts.registerMap) { + log('ECharts Map is not loaded') + return; + } + echarts.registerMap('china', { + "type": "FeatureCollection", + "features": [{ + "id": "710000", + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@°Ü¯Û"], ["@@ƛĴÕƊÉɼģºðʀ\\ƎsÆNŌÔĚäœnÜƤɊĂǀĆĴžĤNJŨxĚĮǂƺòƌ‚–âÔ®ĮXŦţƸZûЋƕƑGđ¨ĭMó·ęcëƝɉlÝƯֹÅŃ^Ó·śŃNjƏďíåɛGɉ™¿@ăƑŽ¥ĘWǬÏĶŁâ"], ["@@\\p|WoYG¿¥I†j@¢"], ["@@…¡‰@ˆV^RqˆBbAŒnTXeRz¤Lž«³I"], ["@@ÆEE—„kWqë @œ"], ["@@fced"]], + "encodeOffsets": [[[122886, 24033]], [[123335, 22980]], [[122375, 24193]], [[122518, 24117]], [[124427, 22618]], [[124862, 26043]]] + }, + "properties": {"cp": [121.509062, 25.044332], "name": "台湾", "childNum": 6} + }, { + "id": "130000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@o~†Z]‚ªr‰ºc_ħ²G¼s`jΟnüsœłNX_“M`ǽÓnUK…Ĝēs¤­©yrý§uģŒc†JŠ›e"], ["@@U`Ts¿m‚"], ["@@oºƋÄd–eVŽDJj£€J|Ådz•Ft~žKŨ¸IÆv|”‡¢r}膎onb˜}`RÎÄn°ÒdÞ²„^®’lnÐèĄlðӜ×]ªÆ}LiĂ±Ö`^°Ç¶p®đDcœŋ`–ZÔ’¶êqvFƚ†N®ĆTH®¦O’¾ŠIbÐã´BĐɢŴÆíȦp–ĐÞXR€·nndOž¤’OÀĈƒ­Qg˜µFo|gȒęSWb©osx|hYh•gŃfmÖĩnº€T̒Sp›¢dYĤ¶UĈjl’ǐpäìë|³kÛfw²Xjz~ÂqbTŠÑ„ěŨ@|oM‡’zv¢ZrÃVw¬ŧˏfŒ°ÐT€ªqŽs{Sž¯r æÝlNd®²Ğ džiGʂJ™¼lr}~K¨ŸƐÌWö€™ÆŠzRš¤lêmĞL΄’@¡|q]SvK€ÑcwpÏρ†ĿćènĪWlĄkT}ˆJ”¤~ƒÈT„d„™pddʾĬŠ”ŽBVt„EÀ¢ôPĎƗè@~‚k–ü\\rÊĔÖæW_§¼F˜†´©òDòj’ˆYÈrbĞāøŀG{ƀ|¦ðrb|ÀH`pʞkv‚GpuARhÞÆǶgƊTǼƹS£¨¡ù³ŘÍ]¿Ây™ôEP xX¶¹܇O¡“gÚ¡IwÃ鑦ÅB‡Ï|ǰ…N«úmH¯‹âŸDùŽyŜžŲIÄuШDž•¸dɂ‡‚FŸƒ•›Oh‡đ©OŸ›iÃ`ww^ƒÌkŸ‘ÑH«ƇǤŗĺtFu…{Z}Ö@U‡´…ʚLg®¯Oı°ÃwŸ ^˜—€VbÉs‡ˆmA…ê]]w„§›RRl£‡ȭµu¯b{ÍDěïÿȧŽuT£ġƒěŗƃĝ“Q¨fV†Ƌ•ƅn­a@‘³@šď„yýIĹÊKšŭfċŰóŒxV@tˆƯŒJ”]eƒR¾fe|rHA˜|h~Ėƍl§ÏŠlTíb ØoˆÅbbx³^zÃ͚¶Sj®A”yÂhðk`š«P€”ˈµEF†Û¬Y¨Ļrõqi¼‰Wi°§’б´°^[ˆÀ|ĠO@ÆxO\\tŽa\\tĕtû{ġŒȧXýĪÓjùÎRb›š^ΛfK[ݏděYfíÙTyŽuUSyŌŏů@Oi½’éŅ­aVcř§ax¹XŻác‡žWU£ôãºQ¨÷Ñws¥qEH‰Ù|‰›šYQoŕÇyáĂ£MðoťÊ‰P¡mšWO¡€v†{ôvîēÜISpÌhp¨ ‘j†deŔQÖj˜X³à™Ĉ[n`Yp@Už–cM`’RKhŒEbœ”pŞlNut®Etq‚nsÁŠgA‹iú‹oH‡qCX‡”hfgu“~ϋWP½¢G^}¯ÅīGCŸÑ^ãziMáļMTÃƘrMc|O_ž¯Ŏ´|‡morDkO\\mĆJfl@c̬¢aĦtRıҙ¾ùƀ^juųœK­ƒUFy™—Ɲ…›īÛ÷ąV×qƥV¿aȉd³B›qPBm›aËđŻģm“Å®Vйd^K‡KoŸnYg“¯Xhqa”Ldu¥•ÍpDž¡KąÅƒkĝęěhq‡}HyÓ]¹ǧ£…Í÷¿qáµ§š™g‘¤o^á¾ZE‡¤i`ij{n•ƒOl»ŸWÝĔįhg›F[¿¡—ßkOüš_‰€ū‹i„DZàUtėGylƒ}ŒÓM}€jpEC~¡FtoQi‘šHkk{Ãmï‚"]], + "encodeOffsets": [[[119712, 40641]], [[121616, 39981]], [[116462, 37237]]] + }, "properties": {"cp": [114.502461, 38.045474], "name": "河北", "childNum": 3} + }, { + "id": "140000", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": ["@@Þĩ҃S‰ra}Á€yWix±Üe´lè“ßÓǏok‘ćiµVZģ¡coœ‘TS˹ĪmnÕńe–hZg{gtwªpXaĚThȑp{¶Eh—®RćƑP¿£‘Pmc¸mQÝW•ďȥoÅîɡųAďä³aωJ‘½¥PG­ąSM­™…EÅruµé€‘Yӎ•Ō_d›ĒCo­Èµ]¯_²ÕjāŽK~©ÅØ^ԛkïçămϑk]­±ƒcݯÑÃmQÍ~_a—pm…~ç¡q“ˆu{JÅŧ·Ls}–EyÁÆcI{¤IiCfUc•ƌÃp§]웫vD@¡SÀ‘µM‚ÅwuŽYY‡¡DbÑc¡hƒ×]nkoQdaMç~eD•ÛtT‰©±@¥ù@É¡‰ZcW|WqOJmĩl«ħşvOÓ«IqăV—¥ŸD[mI~Ó¢cehiÍ]Ɠ~ĥqXŠ·eƷœn±“}v•[ěďŽŕ]_‘œ•`‰¹ƒ§ÕōI™o©b­s^}Ét±ū«³p£ÿ·Wµ|¡¥ăFÏs׌¥ŅxŸÊdÒ{ºvĴÎêÌɊ²¶€ü¨|ÞƸµȲ‘LLúÉƎ¤ϊęĔV`„_bª‹S^|ŸdŠzY|dz¥p†ZbÆ£¶ÒK}tĦÔņƠ‚PYzn€ÍvX¶Ěn ĠÔ„zý¦ª˜÷žÑĸَUȌ¸‚dòÜJð´’ìúNM¬ŒXZ´‘¤ŊǸ_tldIš{¦ƀðĠȤ¥NehXnYG‚‡R° ƬDj¬¸|CĞ„Kq‚ºfƐiĺ©ª~ĆOQª ¤@ìǦɌ²æBŒÊ”TœŸ˜ʂōĖ’šĴŞ–ȀœÆÿȄlŤĒö„t”νî¼ĨXhŒ‘˜|ªM¤Ðz"], + "encodeOffsets": [[116874, 41716]] + }, + "properties": {"cp": [112.549248, 37.857014], "name": "山西", "childNum": 1} + }, { + "id": "150000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@Č^â£Ăh–šĖMÈÄw‚\\fŦ°W ¢¾luŸD„wŠ\\̀ʉÌÛM…Ā[bӞEn}¶Vc…ê“sƒ–›¯PqƒFB…‰|S•³C|kñ•H‹d‘iÄ¥sˆʼnő…PóÑÑE^‘ÅPpy_YtS™hQ·aHwsOnʼnÚs©iqj›‰€USiº]ïWš‰«gW¡A–R붛ijʕ…Œů`çõh]y»ǃŸǛҤxÒm~zf}pf|ÜroÈzrKÈĵSƧ„ż؜Ġu¦ö"], ["@@sKCš…GS|úþX”gp›{ÁX¿Ÿć{ƱȏñZáĔyoÁhA™}ŅĆfdʼn„_¹„Y°ėǩÑ¡H¯¶oMQqð¡Ë™|‘Ñ`ƭŁX½·óۓxğįÅcQ‡ˆ“ƒs«tȋDžF“Ÿù^i‘t«Č¯[›hAi©á¥ÇĚ×l|¹y¯YȵƓ‹ñǙµï‚ċ™Ļ|Dœ™üȭ¶¡˜›oŽäÕG\\ďT¿Òõr¯œŸLguÏYęRƩšɷŌO\\İТæ^Ŋ IJȶȆbÜGŽĝ¬¿ĚVĎgª^íu½jÿĕęjık@Ľƒ]ėl¥Ë‡ĭûÁ„ƒėéV©±ćn©­ȇžÍq¯½•YÃÔʼn“ÉNѝÅÝy¹NqáʅDǡËñ­ƁYÅy̱os§ȋµʽǘǏƬɱà‘ưN¢ƔÊuľýľώȪƺɂļžxœZĈ}ÌʼnŪ˜ĺœŽĭFЛĽ̅ȣͽÒŵìƩÇϋÿȮǡŏçƑůĕ~Ǎ›¼ȳÐUf†dIxÿ\\G ˆzâɏÙOº·pqy£†@ŒŠqþ@Ǟ˽IBäƣzsÂZ†ÁàĻdñ°ŕzéØűzșCìDȐĴĺf®ŽÀľưø@ɜÖÞKĊŇƄ§‚͑těï͡VAġÑÑ»d³öǍÝXĉĕÖ{þĉu¸ËʅğU̎éhɹƆ̗̮ȘNJ֥ड़ࡰţાíϲäʮW¬®ҌeרūȠkɬɻ̼ãüfƠSצɩςåȈHϚÎKdzͲOðÏȆƘ¼CϚǚ࢚˼ФԂ¤ƌžĞ̪Qʤ´¼mȠJˀŸƲÀɠmǐnǔĎȆÞǠN~€ʢĜ‚¶ƌĆĘźʆȬ˪ĚǏĞGȖƴƀj`ĢçĶāàŃºē̃ĖćšYŒÀŎüôQÐÂŎŞdžŞêƖš˜oˆDĤÕºÑǘÛˤ³̀gńƘĔÀ^žªƂ`ªt¾äƚêĦĀ¼Ð€Ĕǎ¨Ȕ»͠^ˮÊȦƤøxRrŜH¤¸ÂxDĝŒ|ø˂˜ƮÐ¬ɚwɲFjĔ²Äw°dždÀɞ_ĸdîàŎjʜêTĞªŌ‡ŜWÈ|tqĢUB~´°ÎFC•ŽU¼pĀēƄN¦¾O¶ŠłKĊOj“Ě”j´ĜYp˜{¦„ˆSĚÍ\\Tš×ªV–÷Ší¨ÅDK°ßtŇĔKš¨ǵÂcḷ̌ĚǣȄĽF‡lġUĵœŇ‹ȣFʉɁƒMğįʏƶɷØŭOǽ«ƽū¹Ʊő̝Ȩ§ȞʘĖiɜɶʦ}¨֪ࠜ̀ƇǬ¹ǨE˦ĥªÔêFŽxúQ„Er´W„rh¤Ɛ \\talĈDJ˜Ü|[Pll̚¸ƎGú´Pž¬W¦†^¦–H]prR“n|or¾wLVnÇIujkmon£cX^Bh`¥V”„¦U¤¸}€xRj–[^xN[~ªŠxQ„‚[`ªHÆÂExx^wšN¶Ê˜|¨ì†˜€MrœdYp‚oRzNy˜ÀDs~€bcfÌ`L–¾n‹|¾T‚°c¨È¢a‚r¤–`[|òDŞĔöxElÖdH„ÀI`„Ď\\Àì~ƎR¼tf•¦^¢ķ¶e”ÐÚMŒptgj–„ɡČÅyġLû™ŇV®ŠÄÈƀ†Ď°P|ªVV†ªj–¬ĚÒêp¬–E|ŬÂc|ÀtƐK fˆ{ĘFǜƌXƲąo½Ę‘\\¥–o}›Ûu£ç­kX‘{uĩ«āíÓUŅßŢq€Ť¥lyň[€oi{¦‹L‡ń‡ðFȪȖ”ĒL„¿Ì‹ˆfŒ£K£ʺ™oqNŸƒwğc`ue—tOj×°KJ±qƒÆġm‰Ěŗos¬…qehqsuœƒH{¸kH¡Š…ÊRǪÇƌbȆ¢´ä܍¢NìÉʖ¦â©Ż؛Ç@Vu»A—ylßí¹ĵê…ÝlISò³C¹Ìâ„²i¶’Ìoú^H“²CǜңDŽ z¼g^èöŰ_‹‚–†IJĕꄜ}gÁnUI«m‰…„‹]j‡vV¼euhwqA„aW˜ƒ_µj…»çjioQR¹ēÃßt@r³[ÛlćË^ÍÉáG“›OUۗOB±•XŸkŇ¹£k|e]ol™ŸkVͼÕqtaÏõjgÁ£§U^Œ”RLˆËnX°Ç’Bz†^~wfvˆypV ¯„ƫĉ˭ȫƗŷɿÿĿƑ˃ĝÿÃǃßËőó©ǐȍŒĖM×ÍEyx‹þp]Évïè‘vƀnÂĴÖ@‚‰†V~Ĉ™Š³MEˆĸÅĖt—ējyÄDXÄxGQuv_›i¦aBçw‘˛wD™©{ŸtāmQ€{EJ§KPśƘƿ¥@‰sCT•É}ɃwˆƇy±ŸgÑ“}T[÷kÐ禫…SÒ¥¸ëBX½‰HáŵÀğtSÝÂa[ƣ°¯¦P]£ġ“–“Òk®G²„èQ°óMq}EŠóƐÇ\\ƒ‡@áügQ͋u¥Fƒ“T՛¿Jû‡]|mvāÎYua^WoÀa·­ząÒot×¶CLƗi¯¤mƎHNJ¤îìɾŊìTdåwsRÖgĒųúÍġäÕ}Q¶—ˆ¿A•†‹[¡Œ{d×uQAƒ›M•xV‹vMOmăl«ct[wº_šÇʊŽŸjb£ĦS_é“QZ“_lwgOiýe`YYLq§IÁˆdz£ÙË[ÕªuƏ³ÍT—s·bÁĽäė[›b[ˆŗfãcn¥îC¿÷µ[ŏÀQ­ōšĉm¿Á^£mJVm‡—L[{Ï_£›F¥Ö{ŹA}…×Wu©ÅaųijƳhB{·TQqÙIķˑZđ©Yc|M¡…L•eVUóK_QWk’_ĥ‘¿ãZ•»X\\ĴuUƒè‡lG®ěłTĠğDєOrÍd‚ÆÍz]‹±…ŭ©ŸÅ’]ŒÅÐ}UË¥©Tċ™ïxgckfWgi\\ÏĒ¥HkµE˜ë{»ÏetcG±ahUiñiWsɁˆ·c–C‚Õk]wȑ|ća}w…VaĚ᠞ŒG°ùnM¬¯†{ÈˆÐÆA’¥ÄêJxÙ¢”hP¢Ûˆº€µwWOŸóFŽšÁz^ÀŗÎú´§¢T¤ǻƺSė‰ǵhÝÅQgvBHouʝl_o¿Ga{ïq{¥|ſĿHĂ÷aĝÇq‡Z‘ñiñC³ª—…»E`¨åXēÕqÉû[l•}ç@čƘóO¿¡ƒFUsA‰“ʽīccšocƒ‚ƒÇS}„“£‡IS~ălkĩXçmĈ…ŀЂoÐdxÒuL^T{r@¢‘žÍƒĝKén£kQ™‰yšÅõËXŷƏL§~}kqš»IHėDžjĝŸ»ÑÞoŸå°qTt|r©ÏS‹¯·eŨĕx«È[eMˆ¿yuˆ‘pN~¹ÏyN£{©’—g‹ħWí»Í¾s“əšDž_ÃĀɗ±ą™ijĉʍŌŷ—S›É“A‹±åǥɋ@럣R©ąP©}ĹªƏj¹erƒLDĝ·{i«ƫC£µ"]], + "encodeOffsets": [[[127444, 52594]], [[113793, 40312]]] + }, "properties": {"cp": [111.670801, 40.818311], "name": "内蒙古", "childNum": 2} + }, { + "id": "210000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@L–Ž@@s™a"], ["@@MnNm"], ["@@d‚c"], ["@@eÀ‚C@b‚“‰"], ["@@f‡…Xwkbr–Ä`qg"], ["@@^jtW‘Q"], ["@@~ Y]c"], ["@@G`ĔN^_¿Z‚ÃM"], ["@@iX¶B‹Y"], ["@@„YƒZ"], ["@@L_{Epf"], ["@@^WqCT\\"], ["@@\\[“‹§t|”¤_"], ["@@m`n_"], ["@@Ïxnj{q_×^Giip"], ["@@@œé^B†‡ntˆaÊU—˜Ÿ]x ¯ÄPIJ­°h€ʙK³†VˆÕ@Y~†|EvĹsDŽ¦­L^p²ŸÒG ’Ël]„xxÄ_˜fT¤Ď¤cŽœP„–C¨¸TVjbgH²sdÎdHt`Bˆ—²¬GJję¶[ÐhjeXdlwhšðSȦªVÊπ‹Æ‘Z˜ÆŶ®²†^ŒÎyÅÎcPqń“ĚDMħĜŁH­ˆk„çvV[ij¼W–‚YÀäĦ’‘`XlžR`žôLUVžfK–¢†{NZdĒª’YĸÌÚJRr¸SA|ƴgŴĴÆbvªØX~†źBŽ|¦ÕœEž¤Ð`\\|Kˆ˜UnnI]¤ÀÂĊnŎ™R®Ő¿¶\\ÀøíDm¦ÎbŨab‰œaĘ\\ľã‚¸a˜tÎSƐ´©v\\ÖÚÌǴ¤Â‡¨JKr€Z_Z€fjþhPkx€`Y”’RIŒjJcVf~sCN¤ ˆE‚œhæm‰–sHy¨SðÑÌ\\\\ŸĐRZk°IS§fqŒßýáЍÙÉÖ[^¯ǤŲ„ê´\\¦¬ĆPM¯£Ÿˆ»uïpùzEx€žanµyoluqe¦W^£ÊL}ñrkqWňûP™‰UP¡ôJŠoo·ŒU}£Œ„[·¨@XŒĸŸ“‹‹DXm­Ûݏº‡›GU‹CÁª½{íĂ^cj‡k“¶Ã[q¤“LÉö³cux«zZfƒ²BWÇ®Yß½ve±ÃC•ý£W{Ú^’q^sÑ·¨‹ÍOt“¹·C¥‡GD›rí@wÕKţ݋˜Ÿ«V·i}xËÍ÷‘i©ĝ‡ɝǡ]ƒˆ{c™±OW‹³Ya±Ÿ‰_穂Hžĕoƫ€Ňqƒr³‰Lys[„ñ³¯OS–ďOMisZ†±ÅFC¥Pq{‚Ã[Pg}\\—¿ghćO…•k^ģÁFıĉĥM­oEqqZûěʼn³F‘¦oĵ—hŸÕP{¯~TÍlª‰N‰ßY“Ð{Ps{ÃVU™™eĎwk±ʼnVÓ½ŽJãÇÇ»Jm°dhcÀff‘dF~ˆ€ĀeĖ€d`sx² šƒ®EżĀdQ‹Âd^~ăÔHˆ¦\\›LKpĄVez¤NP ǹӗR™ÆąJSh­a[¦´Âghwm€BÐ¨źhI|žVVŽ—Ž|p] Â¼èNä¶ÜBÖ¼“L`‚¼bØæŒKV”ŸpoœúNZÞÒKxpw|ÊEMnzEQšŽIZ”ŽZ‡NBˆčÚFÜçmĩ‚WĪñt‘ÞĵÇñZ«uD‚±|Əlij¥ãn·±PmÍa‰–da‡ CL‡Ǒkùó¡³Ï«QaċϑOÃ¥ÕđQȥċƭy‹³ÃA"]], + "encodeOffsets": [[[123686, 41445]], [[126019, 40435]], [[124393, 40128]], [[126117, 39963]], [[125322, 40140]], [[126686, 40700]], [[126041, 40374]], [[125584, 40168]], [[125453, 40165]], [[125362, 40214]], [[125280, 40291]], [[125774, 39997]], [[125976, 40496]], [[125822, 39993]], [[125509, 40217]], [[122731, 40949]]] + }, "properties": {"cp": [123.429096, 41.796767], "name": "辽宁", "childNum": 16} + }, { + "id": "220000", "type": "Feature", "geometry": { + "type": "Polygon", + "coordinates": ["@@‘p䔳PClƒFbbÍzš€wBG’ĭ€Z„Åi“»ƒlY­ċ²SgŽkÇ£—^S‰“qd¯•‹R…©éŽ£¯S†\\cZ¹iűƏCuƍÓX‡oR}“M^o•£…R}oªU­F…uuXHlEŕ‡€Ï©¤ÛmTŽþ¤D–²ÄufàÀ­XXȱAe„yYw¬dvõ´KÊ£”\\rµÄl”iˆdā]|DÂVŒœH¹ˆÞ®ÜWnŒC”Œķ W‹§@\\¸‹ƒ~¤‹Vp¸‰póIO¢ŠVOšŇürXql~òÉK]¤¥Xrfkvzpm¶bwyFoúvð‡¼¤ N°ąO¥«³[ƒéǡű_°Õ\\ÚÊĝŽþâőàerR¨­JYlďQ[ ÏYëЧTGz•tnŠß¡gFkMŸāGÁ¤ia É‰™È¹`\\xs€¬dĆkNnuNUŠ–užP@‚vRY¾•–\\¢…ŒGªóĄ~RãÖÎĢù‚đŴÕhQŽxtcæëSɽʼníëlj£ƍG£nj°KƘµDsØÑpyƸ®¿bXp‚]vbÍZuĂ{nˆ^IüœÀSք”¦EŒvRÎûh@℈[‚Əȉô~FNr¯ôçR±ƒ­HÑl•’Ģ–^¤¢‚OðŸŒævxsŒ]ÞÁTĠs¶¿âƊGW¾ìA¦·TѬ†è¥€ÏÐJ¨¼ÒÖ¼ƒƦɄxÊ~S–tD@ŠĂ¼Ŵ¡jlºWžvЉˆzƦZЎ²CH— „Axiukd‹ŒGgetqmcžÛ£Ozy¥cE}|…¾cZ…k‚‰¿uŐã[oxGikfeäT@…šSUwpiÚFM©’£è^ڟ‚`@v¶eň†f h˜eP¶žt“äOlÔUgƒÞzŸU`lœ}ÔÆUvØ_Ō¬Öi^ĉi§²ÃŠB~¡Ĉ™ÚEgc|DC_Ȧm²rBx¼MÔ¦ŮdĨÃâYx‘ƘDVÇĺĿg¿cwÅ\\¹˜¥Yĭlœ¤žOv†šLjM_a W`zļMž·\\swqÝSA‡š—q‰Śij¯Š‘°kŠRē°wx^Đkǂғ„œž“œŽ„‹\\]˜nrĂ}²ĊŲÒøãh·M{yMzysěnĒġV·°“G³¼XÀ““™¤¹i´o¤ŃšŸÈ`̃DzÄUĞd\\i֚ŒˆmÈBĤÜɲDEh LG¾ƀľ{WaŒYÍȏĢĘÔRîĐj‹}Ǟ“ccj‡oUb½š{“h§Ǿ{K‹ƖµÎ÷žGĀÖŠåưÎs­l›•yiē«‹`姝H¥Ae^§„GK}iã\\c]v©ģZ“mÃ|“[M}ģTɟĵ‘Â`À–çm‰‘FK¥ÚíÁbXš³ÌQґHof{‰]e€pt·GŋĜYünĎųVY^’˜ydõkÅZW„«WUa~U·Sb•wGçǑ‚“iW^q‹F‚“›uNĝ—·Ew„‹UtW·Ýďæ©PuqEzwAV•—XR‰ãQ`­©GŒM‡ehc›c”ďϝd‡©ÑW_ϗYƅŒ»…é\\ƒɹ~ǙG³mØ©BšuT§Ĥ½¢Ã_ý‘L¡‘ýŸqT^rme™\\Pp•ZZbƒyŸ’uybQ—efµ]UhĿDCmûvašÙNSkCwn‰cćfv~…Y‹„ÇG"], + "encodeOffsets": [[130196, 42528]] + }, "properties": {"cp": [125.3245, 43.886841], "name": "吉林", "childNum": 1} + }, { + "id": "230000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@ƨƒĶTLÇyqpÇÛqe{~oyen}s‰`q‡iXG”ù]Ëp½“©lɇÁp]Þñ´FÔ^f‘äîºkà˜z¼BUvÈ@"], ["@@UƒµNÿ¥īè灋•HÍøƕ¶LŒǽ|g¨|”™Ža¾pViˆdd”~ÈiŒíďÓQġėǐZ΋ŽXb½|ſÃH½ŸKFgɱCģÛÇA‡n™‹jÕc[VĝDZÃ˄Ç_™ £ń³pŽj£º”š¿”»WH´¯”U¸đĢmžtĜyzzNN|g¸÷äűѱĉā~mq^—Œ[ƒ”››”ƒǁÑďlw]¯xQĔ‰¯l‰’€°řĴrŠ™˜BˆÞTxr[tޏĻN_yŸX`biN™Ku…P›£k‚ZĮ—¦[ºxÆÀdhŽĹŀUÈƗCw’áZħÄŭcÓ¥»NAw±qȥnD`{ChdÙFćš}¢‰A±Äj¨]ĊÕjŋ«×`VuÓś~_kŷVÝyh„“VkÄãPs”Oµ—fŸge‚Ň…µf@u_Ù ÙcŸªNªÙEojVx™T@†ãSefjlwH\\pŏäÀvŠŽlY†½d{†F~¦dyz¤PÜndsrhf‹HcŒvlwjFœ£G˜±DύƥY‡yϊu¹XikĿ¦ÏqƗǀOŜ¨LI|FRĂn sª|Cš˜zxAè¥bœfudTrFWÁ¹Am|˜ĔĕsķÆF‡´Nš‰}ć…UŠÕ@Áijſmužç’uð^ÊýowŒFzØÎĕNőžǏȎôªÌŒDŽàĀÄ˄ĞŀƒʀĀƘŸˮȬƬĊ°ƒUŸzou‡xe]}Ž…AyȑW¯ÌmK‡“Q]‹Īºif¸ÄX|sZt|½ÚUΠlkš^p{f¤lˆºlÆW –€A²˜PVܜPH”Êâ]ÎĈÌÜk´\\@qàsĔÄQºpRij¼èi†`¶—„bXƒrBgxfv»ŽuUiˆŒ^v~”J¬mVp´£Œ´VWrnP½ì¢BX‚¬h™ŠðX¹^TjVœŠriªj™tŊÄm€tPGx¸bgRšŽsT`ZozÆO]’ÒFô҆Oƒ‡ŊŒvŞ”p’cGŒêŠsx´DR–Œ{A†„EOr°Œ•žx|íœbˆ³Wm~DVjºéNN†Ëܲɶ­GƒxŷCStŸ}]ûō•SmtuÇÃĕN•™āg»šíT«u}ç½BĵÞʣ¥ëÊ¡Mێ³ãȅ¡ƋaǩÈÉQ‰†G¢·lG|›„tvgrrf«†ptęŘnŠÅĢr„I²¯LiØsPf˜_vĠd„xM prʹšL¤‹¤‡eˌƒÀđK“žïÙVY§]I‡óáĥ]ķ†Kˆ¥Œj|pŇ\\kzţ¦šnņäÔVĂîά|vW’®l¤èØr‚˜•xm¶ă~lÄƯĄ̈́öȄEÔ¤ØQĄ–Ą»ƢjȦOǺ¨ìSŖÆƬy”Qœv`–cwƒZSÌ®ü±DŽ]ŀç¬B¬©ńzƺŷɄeeOĨS’Œfm Ċ‚ƀP̎ēz©Ċ‚ÄÕÊmgŸÇsJ¥ƔˆŊśæ’΁Ñqv¿íUOµª‰ÂnĦÁ_½ä@ê텣P}Ġ[@gġ}g“ɊדûÏWXá¢užƻÌsNͽƎÁ§č՛AēeL³àydl›¦ĘVçŁpśdžĽĺſʃQíÜçÛġԏsĕ¬—Ǹ¯YßċġHµ ¡eå`ļƒrĉŘóƢFì“ĎWøxÊk†”ƈdƬv|–I|·©NqńRŀƒ¤é”eŊœŀ›ˆàŀU²ŕƀB‚Q£Ď}L¹Îk@©ĈuǰųǨ”Ú§ƈnTËÇéƟÊcfčŤ^Xm‡—HĊĕË«W·ċëx³ǔķÐċJā‚wİ_ĸ˜Ȁ^ôWr­°oú¬Ħ…ŨK~”ȰCĐ´Ƕ£’fNÎèâw¢XnŮeÂÆĶŽ¾¾xäLĴĘlļO¤ÒĨA¢Êɚ¨®‚ØCÔ ŬGƠ”ƦYĜ‡ĘÜƬDJ—g_ͥœ@čŅĻA“¶¯@wÎqC½Ĉ»NŸăëK™ďÍQ“Ùƫ[«Ãí•gßÔÇOÝáW‘ñuZ“¯ĥ€Ÿŕā¡ÑķJu¤E Ÿå¯°WKɱ_d_}}vyŸõu¬ï¹ÓU±½@gÏ¿rýD‰†g…Cd‰µ—°MFYxw¿CG£‹Rƛ½Õ{]L§{qqąš¿BÇƻğëšܭNJË|c²}Fµ}›ÙRsÓpg±ŠQNqǫŋRwŕnéÑÉKŸ†«SeYR…ŋ‹@{¤SJ}šD Ûǖ֍Ÿ]gr¡µŷjqWÛham³~S«“„›Þ]"]], + "encodeOffsets": [[[127123, 51780]], [[134456, 44547]]] + }, "properties": {"cp": [126.642464, 45.756967], "name": "黑龙江", "childNum": 2} + }, { + "id": "320000", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": ["@@cþÅPiŠ`ZŸRu¥É\\]~°ŽY`µ†Óƒ^phÁbnÀşúŽòa–ĬºTÖŒb‚˜e¦¦€{¸ZâćNpŒ©žHr|^ˆmjhŠSEb\\afv`sz^lkŽlj‹Ätg‹¤D˜­¾Xš¿À’|ДiZ„ȀåB·î}GL¢õcßjaŸyBFµÏC^ĭ•cÙt¿sğH]j{s©HM¢ƒQnDÀ©DaÜތ·jgàiDbPufjDk`dPOîƒhw¡ĥ‡¥šG˜ŸP²ĐobºrY†„î¶aHŢ´ ]´‚rılw³r_{£DB_Ûdåuk|ˆŨ¯F Cºyr{XFy™e³Þċ‡¿Â™kĭB¿„MvÛpm`rÚã”@ƹhågËÖƿxnlč¶Åì½Ot¾dJlŠVJʜǀœŞqvnOŠ^ŸJ”Z‘ż·Q}ê͎ÅmµÒ]Žƍ¦Dq}¬R^èĂ´ŀĻĊIԒtžIJyQŐĠMNtœR®òLh‰›Ěs©»œ}OӌGZz¶A\\jĨFˆäOĤ˜HYš†JvÞHNiÜaϚɖnFQlšNM¤ˆB´ĄNöɂtp–Ŭdf先‹qm¿QûŠùއÚb¤uŃJŴu»¹Ą•lȖħŴw̌ŵ²ǹǠ͛hĭłƕrçü±Y™xci‡tğ®jű¢KOķ•Coy`å®VTa­_Ā]ŐÝɞï²ʯÊ^]afYǸÃĆēĪȣJđ͍ôƋĝÄ͎ī‰çÛɈǥ£­ÛmY`ó£Z«§°Ó³QafusNıDž_k}¢m[ÝóDµ—¡RLčiXy‡ÅNïă¡¸iĔϑNÌŕoēdōîåŤûHcs}~Ûwbù¹£¦ÓCt‹OPrƒE^ÒoŠg™ĉIµžÛÅʹK…¤½phMŠü`o怆ŀ"], + "encodeOffsets": [[121740, 32276]] + }, + "properties": {"cp": [118.767413, 32.041544], "name": "江苏", "childNum": 1} + }, { + "id": "330000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@E^dQ]K"], ["@@jX^j‡"], ["@@sfŠbU‡"], ["@@qP\\xz[ck"], ["@@‘Rƒ¢‚FX}°[s_"], ["@@Cbœ\\—}"], ["@@e|v\\la{u"], ["@@v~u}"], ["@@QxÂF¯}"], ["@@¹nŒvÞs¯o"], ["@@rSkUEj"], ["@@bi­ZŒP"], ["@@p[}INf"], ["@@À¿€"], ["@@¹dnbŒ…"], ["@@rSŸBnR"], ["@@g~h}"], ["@@FlEk"], ["@@OdPc"], ["@@v[u\\"], ["@@FjâL~wyoo~›sµL–\\"], ["@@¬e¹aNˆ"], ["@@\\nÔ¡q]L³ë\\ÿ®ŒQ֎"], ["@@ÊA­©[¬"], ["@@KxŒv­"], ["@@@hlIk]"], ["@@pW{o||j"], ["@@Md|_mC"], ["@@¢…X£ÏylD¼XˆtH"], ["@@hlÜ[LykAvyfw^Ež›¤"], ["@@fp¤Mus“R"], ["@@®_ma~•LÁ¬šZ"], ["@@iM„xZ"], ["@@ZcYd"], ["@@Z~dOSo|A¿qZv"], ["@@@`”EN¡v"], ["@@|–TY{"], ["@@@n@m"], ["@@XWkCT\\"], ["@@ºwšZRkĕWO¢"], ["@@™X®±Grƪ\\ÔáXq{‹"], ["@@ůTG°ĄLHm°UC‹"], ["@@¤Ž€aÜx~}dtüGæţŎíĔcŖpMËВj碷ðĄÆMzˆjWKĎ¢Q¶˜À_꒔_Bı€i«pZ€gf€¤Nrq]§ĂN®«H±‡yƳí¾×ŸīàLłčŴǝĂíÀBŖÕªˆŠÁŖHŗʼnåqûõi¨hÜ·ƒñt»¹ýv_[«¸m‰YL¯‰Qª…mĉÅdMˆ•gÇjcº«•ęœ¬­K­´ƒB«Âącoċ\\xKd¡gěŧ«®á’[~ıxu·Å”KsËɏc¢Ù\\ĭƛëbf¹­ģSƒĜkáƉÔ­ĈZB{ŠaM‘µ‰fzʼnfåÂŧįƋǝÊĕġć£g³ne­ą»@­¦S®‚\\ßðCšh™iqªĭiAu‡A­µ”_W¥ƣO\\lċĢttC¨£t`ˆ™PZäuXßBs‡Ļyek€OđġĵHuXBšµ]׌‡­­\\›°®¬F¢¾pµ¼kŘó¬Wät’¸|@ž•L¨¸µr“ºù³Ù~§WI‹ŸZWŽ®’±Ð¨ÒÉx€`‰²pĜ•rOògtÁZ}þÙ]„’¡ŒŸFK‚wsPlU[}¦Rvn`hq¬\\”nQ´ĘRWb”‚_ rtČFI֊kŠŠĦPJ¶ÖÀÖJĈĄTĚòžC ²@Pú…Øzœ©PœCÈÚœĒ±„hŖ‡l¬â~nm¨f©–iļ«m‡nt–u†ÖZÜÄj“ŠLŽ®E̜Fª²iÊxبžIÈhhst"], ["@@o\\V’zRZ}y"], ["@@†@°¡mۛGĕ¨§Ianá[ýƤjfæ‡ØL–•äGr™"]], + "encodeOffsets": [[[125592, 31553]], [[125785, 31436]], [[125729, 31431]], [[125513, 31380]], [[125223, 30438]], [[125115, 30114]], [[124815, 29155]], [[124419, 28746]], [[124095, 28635]], [[124005, 28609]], [[125000, 30713]], [[125111, 30698]], [[125078, 30682]], [[125150, 30684]], [[124014, 28103]], [[125008, 31331]], [[125411, 31468]], [[125329, 31479]], [[125626, 30916]], [[125417, 30956]], [[125254, 30976]], [[125199, 30997]], [[125095, 31058]], [[125083, 30915]], [[124885, 31015]], [[125218, 30798]], [[124867, 30838]], [[124755, 30788]], [[124802, 30809]], [[125267, 30657]], [[125218, 30578]], [[125200, 30562]], [[124968, 30474]], [[125167, 30396]], [[124955, 29879]], [[124714, 29781]], [[124762, 29462]], [[124325, 28754]], [[123990, 28459]], [[125366, 31477]], [[125115, 30363]], [[125369, 31139]], [[122495, 31878]], [[125329, 30690]], [[125192, 30787]]] + }, "properties": {"cp": [120.153576, 30.287459], "name": "浙江", "childNum": 45} + }, { + "id": "340000", + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@^iuLX^"], ["@@‚e©Ehl"], ["@@°ZÆëϵmkǀwÌÕæhºgBĝâqÙĊz›ÖgņtÀÁÊÆá’hEz|WzqD¹€Ÿ°E‡ŧl{ævÜcA`¤C`|´qžxIJkq^³³ŸGšµbƒíZ…¹qpa±ď OH—¦™Ħˆx¢„gPícOl_iCveaOjCh߸i݋bÛªCC¿€m„RV§¢A|t^iĠGÀtÚs–d]ĮÐDE¶zAb àiödK¡~H¸íæAžǿYƒ“j{ď¿‘™À½W—®£ChŒÃsiŒkkly]_teu[bFa‰Tig‡n{]Gqªo‹ĈMYá|·¥f¥—őaSÕė™NµñĞ«ImŒ_m¿Âa]uĜp …Z_§{Cƒäg¤°r[_Yj‰ÆOdý“[ŽI[á·¥“Q_n‡ùgL¾mv™ˊBÜÆ¶ĊJhšp“c¹˜O]iŠ]œ¥ jtsggJǧw×jÉ©±›EFˍ­‰Ki”ÛÃÕYv…s•ˆm¬njĻª•§emná}k«ŕˆƒgđ²Ù›DǤ›í¡ªOy›†×Où±@DŸñSęćăÕIÕ¿IµĥO‰‰jNÕËT¡¿tNæŇàåyķrĕq§ÄĩsWÆßŽF¶žX®¿‰mŒ™w…RIޓfßoG‘³¾©uyH‘į{Ɓħ¯AFnuP…ÍÔzšŒV—dàôº^Ðæd´€‡oG¤{S‰¬ćxã}›ŧ×Kǥĩ«žÕOEзÖdÖsƘѨ[’Û^Xr¢¼˜§xvěƵ`K”§ tÒ´Cvlo¸fzŨð¾NY´ı~ÉĔē…ßúLÃϖ_ÈÏ|]ÂÏFl”g`bšežž€n¾¢pU‚h~ƴ˶_‚r sĄ~cž”ƈ]|r c~`¼{À{ȒiJjz`îÀT¥Û³…]’u}›f…ïQl{skl“oNdŸjŸäËzDvčoQŠďHI¦rb“tHĔ~BmlRš—V_„ħTLnñH±’DžœL‘¼L˜ªl§Ťa¸ŒĚlK²€\\RòvDcÎJbt[¤€D@®hh~kt°ǾzÖ@¾ªdb„YhüóZ ň¶vHrľ\\ʗJuxAT|dmÀO„‹[ÃԋG·ĚąĐlŪÚpSJ¨ĸˆLvÞcPæķŨŽ®mАˆálŸwKhïgA¢ųƩޖ¤OȜm’°ŒK´"]], + "encodeOffsets": [[[121722, 32278]], [[119475, 30423]], [[119168, 35472]]] + }, + "properties": {"cp": [117.283042, 31.86119], "name": "安徽", "childNum": 3} + }, { + "id": "350000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@“zht´‡]"], ["@@aj^~ĆG—©O"], ["@@ed¨„C}}i"], ["@@@vˆPGsQ"], ["@@‰sBz‚ddW]Q"], ["@@SލQ“{"], ["@@NŽVucW"], ["@@qptBAq"], ["@@‰’¸[mu"], ["@@Q\\pD]_"], ["@@jSwUadpF"], ["@@eXª~ƒ•"], ["@@AjvFso"], ["@@fT–›_Çí\\Ÿ™—v|ba¦jZÆy€°"], ["@@IjJi"], ["@@wJI€ˆxš«¼AoNe{M­"], ["@@K‰±¡Óˆ”ČäeZ"], ["@@k¡¹Eh~c®wBk‹UplÀ¡I•~Māe£bN¨gZý¡a±Öcp©PhžI”Ÿ¢Qq…ÇGj‹|¥U™ g[Ky¬ŏ–v@OpˆtÉEŸF„\\@ åA¬ˆV{Xģ‰ĐBy…cpě…¼³Ăp·¤ƒ¥o“hqqÚ¡ŅLsƒ^ᗞ§qlŸÀhH¨MCe»åÇGD¥zPO£čÙkJA¼ß–ėu›ĕeûҍiÁŧSW¥˜QŠûŗ½ùěcݧSùĩąSWó«íęACµ›eR—åǃRCÒÇZÍ¢‹ź±^dlsŒtjD¸•‚ZpužÔâÒH¾oLUêÃÔjjēò´ĄW‚ƛ…^Ñ¥‹ĦŸ@Çò–ŠmŒƒOw¡õyJ†yD}¢ďÑÈġfŠZd–a©º²z£šN–ƒjD°Ötj¶¬ZSÎ~¾c°¶Ðm˜x‚O¸¢Pl´žSL|¥žA†ȪĖM’ņIJg®áIJČĒü` ŽQF‡¬h|ÓJ@zµ |ê³È ¸UÖŬŬÀEttĸr‚]€˜ðŽM¤ĶIJHtÏ A’†žĬkvsq‡^aÎbvŒd–™fÊòSD€´Z^’xPsÞrv‹ƞŀ˜jJd×ŘÉ ®A–ΦĤd€xĆqAŒ†ZR”ÀMźŒnĊ»ŒİÐZ— YX–æJŠyĊ²ˆ·¶q§·–K@·{s‘Xãô«lŗ¶»o½E¡­«¢±¨Yˆ®Ø‹¶^A™vWĶGĒĢžPlzfˆļŽtàAvWYãšO_‡¤sD§ssČġ[kƤPX¦Ž`¶“ž®ˆBBvĪjv©šjx[L¥àï[F…¼ÍË»ğV`«•Ip™}ccÅĥZE‹ãoP…´B@ŠD—¸m±“z«Ƴ—¿å³BRضˆœWlâþäą`“]Z£Tc— ĹGµ¶H™m@_©—kŒ‰¾xĨ‡ôȉðX«½đCIbćqK³Á‹Äš¬OAwã»aLʼn‡ËĥW[“ÂGI—ÂNxij¤D¢ŽîĎÎB§°_JœGsƒ¥E@…¤uć…P‘å†cuMuw¢BI¿‡]zG¹guĮck\\_"]], + "encodeOffsets": [[[123250, 27563]], [[122541, 27268]], [[123020, 27189]], [[122916, 27125]], [[122887, 26845]], [[122808, 26762]], [[122568, 25912]], [[122778, 26197]], [[122515, 26757]], [[122816, 26587]], [[123388, 27005]], [[122450, 26243]], [[122578, 25962]], [[121255, 25103]], [[120987, 24903]], [[122339, 25802]], [[121042, 25093]], [[122439, 26024]]] + }, "properties": {"cp": [119.306239, 26.075302], "name": "福建", "childNum": 18} + }, { + "id": "360000", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": ["@@ĢĨƐgÂMD~ņªe^\\^§„ý©j׍cZ†Ø¨zdÒa¶ˆlҍJŒìõ`oz÷@¤u޸´†ôęöY¼‰HČƶajlÞƩ¥éZ[”|h}^U Œ ¥p„ĄžƦO lt¸Æ €Q\\€ŠaÆ|CnÂOjt­ĚĤd’ÈŒF`’¶„@Ð딠¦ōҞ¨Sêv†HĢûXD®…QgėWiØPÞìºr¤dž€NĠ¢l–•ĄtZoœCƞÔºCxrpĠV®Ê{f_Y`_ƒeq’’®Aot`@o‚DXfkp¨|Šs¬\\D‘ÄSfè©Hn¬…^DhÆyøJh“ØxĢĀLʈ„ƠPżċĄwȠ̦G®ǒĤäTŠÆ~ĦwŠ«|TF¡Šn€c³Ïå¹]ĉđxe{ÎӐ†vOEm°BƂĨİ|G’vz½ª´€H’àp”eJ݆Qšxn‹ÀŠW­žEµàXÅĪt¨ÃĖrÄwÀFÎ|ňÓMå¼ibµ¯»åDT±m[“r«_gŽmQu~¥V\\OkxtL E¢‹ƒ‘Ú^~ýê‹Pó–qo슱_Êw§ÑªåƗ⼋mĉŹ‹¿NQ“…YB‹ąrwģcÍ¥B•Ÿ­ŗÊcØiI—žƝĿuŒqtāwO]‘³YCñTeɕš‹caub͈]trlu€ī…B‘ПGsĵıN£ï—^ķqss¿FūūV՟·´Ç{éĈý‰ÿ›OEˆR_ŸđûIċâJh­ŅıN‘ȩĕB…¦K{Tk³¡OP·wn—µÏd¯}½TÍ«YiµÕsC¯„iM•¤™­•¦¯P|ÿUHv“he¥oFTu‰õ\\ŽOSs‹MòđƇiaºćXŸĊĵà·çhƃ÷ǜ{‘ígu^›đg’m[×zkKN‘¶Õ»lčÓ{XSƉv©_ÈëJbVk„ĔVÀ¤P¾ºÈMÖxlò~ªÚàGĂ¢B„±’ÌŒK˜y’áV‡¼Ã~­…`g›ŸsÙfI›Ƌlę¹e|–~udjˆuTlXµf`¿JdŠ[\\˜„L‚‘²"], + "encodeOffsets": [[116689, 26234]] + }, + "properties": {"cp": [115.892151, 28.676493], "name": "江西", "childNum": 1} + }, { + "id": "370000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@Xjd]{K"], ["@@itbFHy"], ["@@HlGk"], ["@@T‚ŒGŸy"], ["@@K¬˜•‹U"], ["@@WdXc"], ["@@PtOs"], ["@@•LnXhc"], ["@@ppVƒu]Or"], ["@@cdzAUa"], ["@@udRhnCI‡"], ["@@ˆoIƒpR„"], ["@@Ľč{fzƤî’Kš–ÎMĮ]†—ZFˆ½Y]â£ph’™š¶¨râøÀ†ÎǨ¤^ºÄ”Gzˆ~grĚĜlĞÆ„LĆdž¢Îo¦–cv“Kb€gr°Wh”mZp ˆL]LºcU‰Æ­n”żĤÌǜbAnrOAœ´žȊcÀbƦUØrĆUÜøœĬƞ†š˜Ez„VL®öØBkŖÝĐ˹ŧ̄±ÀbÎɜnb²ĦhņBĖ›žįĦåXćì@L¯´ywƕCéõė ƿ¸‘lµ¾Z|†ZWyFYŸ¨Mf~C¿`€à_RÇzwƌfQnny´INoƬˆèôº|sT„JUš›‚L„îVj„ǎ¾Ē؍‚Dz²XPn±ŴPè¸ŔLƔÜƺ_T‘üÃĤBBċȉöA´fa„˜M¨{«M`‡¶d¡ô‰Ö°šmȰBÔjjŒ´PM|”c^d¤u•ƒ¤Û´Œä«ƢfPk¶Môlˆ]Lb„}su^ke{lC‘…M•rDŠÇ­]NÑFsmoõľH‰yGă{{çrnÓE‰‹ƕZGª¹Fj¢ïW…uøCǷ돡ąuhÛ¡^Kx•C`C\\bÅxì²ĝÝ¿_N‰īCȽĿåB¥¢·IŖÕy\\‡¹kx‡Ã£Č×GDyÕ¤ÁçFQ¡„KtŵƋ]CgÏAùSed‡cÚź—ŠuYfƒyMmhUWpSyGwMPqŀ—›Á¼zK›¶†G•­Y§Ëƒ@–´śÇµƕBmœ@Io‚g——Z¯u‹TMx}C‘‰VK‚ï{éƵP—™_K«™pÛÙqċtkkù]gŽ‹Tğwo•ɁsMõ³ă‡AN£™MRkmEʕč™ÛbMjÝGu…IZ™—GPģ‡ãħE[iµBEuŸDPԛ~ª¼ętŠœ]ŒûG§€¡QMsğNPŏįzs£Ug{đJĿļā³]ç«Qr~¥CƎÑ^n¶ÆéÎR~ݏY’I“] P‰umŝrƿ›‰›Iā‹[x‰edz‹L‘¯v¯s¬ÁY…~}…ťuٌg›ƋpÝĄ_ņī¶ÏSR´ÁP~ž¿Cyžċßdwk´Ss•X|t‰`Ä Èð€AªìÎT°¦Dd–€a^lĎDĶÚY°Ž`ĪŴǒˆ”àŠv\\ebŒZH„ŖR¬ŢƱùęO•ÑM­³FۃWp[ƒ"]], + "encodeOffsets": [[[123806, 39303]], [[123821, 39266]], [[123742, 39256]], [[123702, 39203]], [[123649, 39066]], [[123847, 38933]], [[123580, 38839]], [[123894, 37288]], [[123043, 36624]], [[123344, 38676]], [[123522, 38857]], [[123628, 38858]], [[118260, 36742]]] + }, "properties": {"cp": [117.000923, 36.675807], "name": "山东", "childNum": 13} + }, { + "id": "410000", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": ["@@•ýL™ùµP³swIÓxcŢĞð†´E®žÚPt†ĴXØx¶˜@«ŕŕQGƒ‹Yfa[şu“ßǩ™đš_X³ijÕčC]kbc•¥CS¯ëÍB©÷‹–³­Siˆ_}m˜YTtž³xlàcȂzÀD}ÂOQ³ÐTĨ¯†ƗòËŖ[hœł‹Ŧv~††}ÂZž«¤lPǕ£ªÝŴÅR§ØnhcŒtâk‡nύ­ľŹUÓÝdKuķ‡I§oTũÙďkęĆH¸ÓŒ\\ăŒ¿PcnS{wBIvɘĽ[GqµuŸŇôYgûƒZcaŽ©@½Õǽys¯}lgg@­C\\£as€IdÍuCQñ[L±ęk·‹ţb¨©kK—’»›KC²‘òGKmĨS`ƒ˜UQ™nk}AGē”sqaJ¥ĐGR‰ĎpCuÌy ã iMc”plk|tRk†ðœev~^‘´†¦ÜŽSí¿_iyjI|ȑ|¿_»d}qŸ^{“Ƈdă}Ÿtqµ`Ƴĕg}V¡om½fa™Ço³TTj¥„tĠ—Ry”K{ùÓjuµ{t}uËR‘iŸvGŠçJFjµŠÍyqΘàQÂFewixGw½Yŷpµú³XU›½ġy™łå‰kÚwZXˆ·l„¢Á¢K”zO„Λ΀jc¼htoDHr…|­J“½}JZ_¯iPq{tę½ĕ¦Zpĵø«kQ…Ťƒ]MÛfaQpě±ǽ¾]u­Fu‹÷nƒ™čįADp}AjmcEǒaª³o³ÆÍSƇĈÙDIzˑ赟^ˆKLœ—i—Þñ€[œƒaA²zz‰Ì÷Dœ|[šíijgf‚ÕÞd®|`ƒĆ~„oĠƑô³Ŋ‘D×°¯CsŠøÀ«ì‰UMhTº¨¸ǡîS–Ô„DruÂÇZ•ÖEŽ’vPZ„žW”~؋ÐtĄE¢¦Ðy¸bŠô´oŬ¬Ž²Ês~€€]®tªašpŎJ¨Öº„_ŠŔ–`’Ŗ^Ѝ\\Ĝu–”~m²Ƹ›¸fW‰ĦrƔ}Î^gjdfÔ¡J}\\n C˜¦þWxªJRÔŠu¬ĨĨmF†dM{\\d\\ŠYÊ¢ú@@¦ª²SŠÜsC–}fNècbpRmlØ^g„d¢aÒ¢CZˆZxvÆ¶N¿’¢T@€uCœ¬^ĊðÄn|žlGl’™Rjsp¢ED}€Fio~ÔNŽ‹„~zkĘHVsDzßjƒŬŒŠŢ`Pûàl¢˜\\ÀœEhŽİgÞē X¼Pk–„|m"], + "encodeOffsets": [[118256, 37017]] + }, + "properties": {"cp": [113.665412, 34.757975], "name": "河南", "childNum": 1} + }, { + "id": "420000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@AB‚"], ["@@lskt"], ["@@¾«}{ra®pîÃ\\™›{øCŠËyyB±„b\\›ò˜Ý˜jK›‡L ]ĎĽÌ’JyÚCƈćÎT´Å´pb©È‘dFin~BCo°BĎĚømvŒ®E^vǾ½Ĝ²Ro‚bÜeNŽ„^ĺ£R†¬lĶ÷YoĖ¥Ě¾|sOr°jY`~I”¾®I†{GqpCgyl{‡£œÍƒÍyPL“¡ƒ¡¸kW‡xYlÙæŠšŁĢzœ¾žV´W¶ùŸo¾ZHxjwfx„GNÁ•³Xéæl¶‰EièIH‰ u’jÌQ~v|sv¶Ôi|ú¢Fh˜Qsğ¦ƒSiŠBg™ÐE^ÁÐ{–čnOÂȞUÎóĔ†ÊēIJ}Z³½Mŧïeyp·uk³DsѨŸL“¶_œÅuèw»—€¡WqÜ]\\‘Ò§tƗcÕ¸ÕFÏǝĉăxŻČƟO‡ƒKÉġÿ×wg”÷IÅzCg†]m«ªGeçÃTC’«[‰t§{loWeC@ps_Bp‘­r‘„f_``Z|ei¡—oċMqow€¹DƝӛDYpûs•–‹Ykıǃ}s¥ç³[§ŸcYЧHK„«Qy‰]¢“wwö€¸ïx¼ņ¾Xv®ÇÀµRĠЋžHMž±cÏd„ƒǍũȅȷ±DSyúĝ£ŤĀàtÖÿï[îb\\}pĭÉI±Ñy…¿³x¯N‰o‰|¹H™ÏÛm‹júË~Tš•u˜ęjCöAwě¬R’đl¯ Ñb­‰ŇT†Ŀ_[Œ‘IčĄʿnM¦ğ\\É[T·™k¹œ©oĕ@A¾w•ya¥Y\\¥Âaz¯ãÁ¡k¥ne£Ûw†E©Êō¶˓uoj_Uƒ¡cF¹­[Wv“P©w—huÕyBF“ƒ`R‹qJUw\\i¡{jŸŸEPïÿ½fć…QÑÀQ{ž‚°‡fLԁ~wXg—ītêݾ–ĺ‘Hdˆ³fJd]‹HJ²…E€ƒoU¥†HhwQsƐ»Xmg±çve›]Dm͂PˆoCc¾‹_h”–høYrŊU¶eD°Č_N~øĹĚ·`z’]Äþp¼…äÌQŒv\\rCŒé¾TnkžŐڀÜa‡“¼ÝƆ̶Ûo…d…ĔňТJq’Pb ¾|JŒ¾fXŠƐîĨ_Z¯À}úƲ‹N_ĒĊ^„‘ĈaŐyp»CÇĕKŠšñL³ŠġMŒ²wrIÒŭxjb[œžn«øœ˜—æˆàƒ ^²­h¯Ú€ŐªÞ¸€Y²ĒVø}Ā^İ™´‚LŠÚm„¥ÀJÞ{JVŒųÞŃx×sxxƈē ģMř–ÚðòIf–Ċ“Œ\\Ʈ±ŒdʧĘD†vČ_Àæ~DŒċ´A®µ†¨ØLV¦êHÒ¤"]], + "encodeOffsets": [[[113712, 34000]], [[115612, 30507]], [[113649, 34054]]] + }, "properties": {"cp": [114.298572, 30.584355], "name": "湖北", "childNum": 3} + }, { + "id": "430000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@—n„FTs"], ["@@ßÅÆá‰½ÔXr—†CO™“…ËR‘ïÿĩ­TooQyšÓ[‹ŅBE¬–ÎÓXa„į§Ã¸G °ITxp‰úxÚij¥Ïš–̾ŠedžÄ©ĸG…œàGh‚€M¤–Â_U}Ċ}¢pczfŠþg¤€”ÇòAV‘‹M"], ["@@©K—ƒA·³CQ±Á«³BUŠƑ¹AŠtćOw™D]ŒJiØSm¯b£‘ylƒ›X…HËѱH•«–‘C^õľA–Å§¤É¥„ïyuǙuA¢^{ÌC´­¦ŷJ£^[†“ª¿‡ĕ~•Ƈ…•N… skóā‡¹¿€ï]ă~÷O§­@—Vm¡‹Qđ¦¢Ĥ{ºjԏŽŒª¥nf´•~ÕoŸž×Ûą‹MąıuZœmZcÒ IJβSÊDŽŶ¨ƚƒ’CÖŎªQؼrŭŽ­«}NÏürʬŒmjr€@ĘrTW ­SsdHzƓ^ÇÂyUi¯DÅYlŹu{hTœ}mĉ–¹¥ě‰Dÿë©ıÓ[Oº£ž“¥ót€ł¹MՄžƪƒ`Pš…Di–ÛUоÅ‌ìˆU’ñB“È£ýhe‰dy¡oċ€`pfmjP~‚kZa…ZsÐd°wj§ƒ@€Ĵ®w~^‚kÀÅKvNmX\\¨a“”сqvíó¿F„¤¡@ũÑVw}S@j}¾«pĂr–ªg àÀ²NJ¶¶Dô…K‚|^ª†Ž°LX¾ŴäPᜣEXd›”^¶›IJÞܓ~‘u¸ǔ˜Ž›MRhsR…e†`ÄofIÔ\\Ø  i”ćymnú¨cj ¢»–GČìƊÿШXeĈ¾Oð Fi ¢|[jVxrIQŒ„_E”zAN¦zLU`œcªx”OTu RLÄ¢dV„i`p˔vŎµªÉžF~ƒØ€d¢ºgİàw¸Áb[¦Zb¦–z½xBĖ@ªpº›šlS¸Ö\\Ĕ[N¥ˀmĎă’J\\‹ŀ`€…ňSڊĖÁĐiO“Ĝ«BxDõĚiv—ž–S™Ì}iùŒžÜnšÐºGŠ{Šp°M´w†ÀÒzJ²ò¨ oTçüöoÛÿñŽőФ‚ùTz²CȆȸǎۃƑÐc°dPÎŸğ˶[Ƚu¯½WM¡­Éž“’B·rížnZŸÒ `‡¨GA¾\\pē˜XhÆRC­üWGġu…T靧Ŏѝ©ò³I±³}_‘‹EÃħg®ęisÁPDmÅ{‰b[Rşs·€kPŸŽƥƒóRo”O‹ŸVŸ~]{g\\“êYƪ¦kÝbiċƵŠGZ»Ěõ…ó·³vŝž£ø@pyö_‹ëŽIkѵ‡bcѧy…×dY؎ªiþž¨ƒ[]f]Ņ©C}ÁN‡»hĻħƏ’ĩ"]], + "encodeOffsets": [[[115640, 30489]], [[112543, 27312]], [[116690, 26230]]] + }, "properties": {"cp": [112.982279, 28.19409], "name": "湖南", "childNum": 3} + }, { + "id": "440000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@QdˆAua"], ["@@ƒlxDLo"], ["@@sbhNLo"], ["@@Ă āŸ"], ["@@WltO[["], ["@@Krœ]S"], ["@@e„„I]y"], ["@@I|„Mym"], ["@@ƒÛ³LSŒž¼Y"], ["@@nvºB–ëui©`¾"], ["@@zdšÛ›Jw®"], ["@@†°…¯"], ["@@a yAª¸ËJIx،@€ĀHAmßV¡o•fu•o"], ["@@šs‰ŗÃÔėAƁ›ZšÄ ~°ČP‚‹äh"], ["@@‹¶Ý’Ì‚vmĞh­ı‡Q"], ["@@HœŠdSjĒ¢D}war…“u«ZqadYM"], ["@@elŒ\\LqqU"], ["@@~rMo\\"], ["@@f„^ƒC"], ["@@øPªoj÷ÍÝħXČx”°Q¨ıXNv"], ["@@gÇƳˆŽˆ”oˆŠˆ[~tly"], ["@@E–ÆC¿‘"], ["@@OŽP"], ["@@w‹†đóg‰™ĝ—[³‹¡VÙæÅöM̳¹pÁaËýý©D©Ü“JŹƕģGą¤{Ùū…ǘO²«BƱéA—Ò‰ĥ‡¡«BhlmtÃPµyU¯uc“d·w_bŝcīímGOŽ|KP’ȏ‡ŹãŝIŕŭŕ@Óoo¿ē‹±ß}Ž…ŭ‚ŸIJWÈCőâUâǙI›ğʼn©I›ijEׅÁ”³Aó›wXJþ±ÌŒÜӔĨ£L]ĈÙƺZǾĆĖMĸĤfŒÎĵl•ŨnȈ‘ĐtF”Š–FĤ–‚êk¶œ^k°f¶gŠŽœ}®Fa˜f`vXŲxl˜„¦–ÔÁ²¬ÐŸ¦pqÊ̲ˆi€XŸØRDÎ}†Ä@ZĠ’s„x®AR~®ETtĄZ†–ƈfŠŠHâÒÐA†µ\\S¸„^wĖkRzŠalŽŜ|E¨ÈNĀňZTŒ’pBh£\\ŒĎƀuXĖtKL–¶G|Ž»ĺEļĞ~ÜĢÛĊrˆO˜Ùîvd]nˆ¬VœÊĜ°R֟pM††–‚ƂªFbwžEÀˆ˜©Œž\\…¤]ŸI®¥D³|ˎ]CöAŤ¦…æ’´¥¸Lv¼€•¢ĽBaô–F~—š®²GÌҐEY„„œzk¤’°ahlV՞I^‹šCxĈPŽsB‰ƒºV‰¸@¾ªR²ĨN]´_eavSi‡vc•}p}Đ¼ƌkJœÚe thœ†_¸ ºx±ò_xN›Ë‹²‘@ƒă¡ßH©Ùñ}wkNÕ¹ÇO½¿£ĕ]ly_WìIžÇª`ŠuTÅxYĒÖ¼k֞’µ‚MžjJÚwn\\h‘œĒv]îh|’È›Ƅøègž¸Ķß ĉĈWb¹ƀdéƌNTtP[ŠöSvrCZžžaGuœbo´ŖÒÇА~¡zCI…özx¢„Pn‹•‰Èñ @ŒĥÒ¦†]ƞŠV}³ăĔñiiÄÓVépKG½Ä‘ÓávYo–C·sit‹iaÀy„ŧΡÈYDÑům}‰ý|m[węõĉZÅxUO}÷N¹³ĉo_qtă“qwµŁYلǝŕ¹tïÛUïmRCº…ˆĭ|µ›ÕÊK™½R‘ē ó]‘–GªęAx–»HO£|ām‡¡diď×YïYWªʼnOeÚtĐ«zđ¹T…ā‡úE™á²\\‹ķÍ}jYàÙÆſ¿Çdğ·ùTßÇţʄ¡XgWÀLJğ·¿ÃˆOj YÇ÷Qě‹i"]], + "encodeOffsets": [[[117381, 22988]], [[116552, 22934]], [[116790, 22617]], [[116973, 22545]], [[116444, 22536]], [[116931, 22515]], [[116496, 22490]], [[116453, 22449]], [[113301, 21439]], [[118726, 21604]], [[118709, 21486]], [[113210, 20816]], [[115482, 22082]], [[113171, 21585]], [[113199, 21590]], [[115232, 22102]], [[115739, 22373]], [[115134, 22184]], [[113056, 21175]], [[119573, 21271]], [[119957, 24020]], [[115859, 22356]], [[116561, 22649]], [[116285, 22746]]] + }, "properties": {"cp": [113.280637, 23.125178], "name": "广东", "childNum": 24} + }, { + "id": "450000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@H– TQ§•A"], ["@@ĨʪƒLƒƊDÎĹĐCǦė¸zÚGn£¾›rªŀÜt¬@֛ڈSx~øOŒ˜ŶÐÂæȠ\\„ÈÜObĖw^oބLf¬°bI lTØB̈F£Ć¹gñĤaY“t¿¤VSñœK¸¤nM†¼‚JE±„½¸šŠño‹ÜCƆæĪ^ŠĚQÖ¦^‡ˆˆf´Q†üÜʝz¯šlzUĺš@쇀p¶n]sxtx¶@„~ÒĂJb©gk‚{°‚~c°`ԙ¬rV\\“la¼¤ôá`¯¹LC†ÆbŒxEræO‚v[H­˜„[~|aB£ÖsºdAĐzNÂðsŽÞƔ…Ĥªbƒ–ab`ho¡³F«èVloޤ™ÔRzpp®SŽĪº¨ÖƒºN…ij„d`’a”¦¤F³ºDÎńĀìŠCžĜº¦Ċ•~nS›|gźvZkCÆj°zVÈÁƔ]LÊFZg…čP­kini«‹qǀcz͔Y®¬Ů»qR×ō©DՄ‘§ƙǃŵTÉĩ±ŸıdÑnYY›IJvNĆÌØÜ Öp–}e³¦m‹©iÓ|¹Ÿħņ›|ª¦QF¢Â¬ʖovg¿em‡^ucà÷gՎuŒíÙćĝ}FϼĹ{µHK•sLSđƃr‹č¤[Ag‘oS‹ŇYMÿ§Ç{Fśbky‰lQxĕƒ]T·¶[B…ÑÏGáşşƇe€…•ăYSs­FQ}­Bƒw‘tYğÃ@~…C̀Q ×W‡j˱rÉ¥oÏ ±«ÓÂ¥•ƒ€k—ŽwWűŒmcih³K›~‰µh¯e]lµ›él•E쉕E“ďs‡’mǖŧē`ãògK_ÛsUʝ“ćğ¶hŒöŒO¤Ǜn³Žc‘`¡y‹¦C‘ez€YŠwa™–‘[ďĵűMę§]X˜Î_‚훘Û]é’ÛUćİÕBƣ±…dƒy¹T^džûÅÑŦ·‡PĻþÙ`K€¦˜…¢ÍeœĥR¿Œ³£[~Œäu¼dl‰t‚†W¸oRM¢ď\\zœ}Æzdvň–{ÎXF¶°Â_„ÒÂÏL©Ö•TmuŸ¼ãl‰›īkiqéfA„·Êµ\\őDc¥ÝF“y›Ôć˜c€űH_hL܋êĺШc}rn`½„Ì@¸¶ªVLŒŠhŒ‹\\•Ţĺk~ŽĠið°|gŒtTĭĸ^x‘vK˜VGréAé‘bUu›MJ‰VÃO¡…qĂXËS‰ģãlýàŸ_ju‡YÛÒB†œG^˜é֊¶§ŽƒEG”ÅzěƒƯ¤Ek‡N[kdåucé¬dnYpAyČ{`]þ¯T’bÜÈk‚¡Ġ•vŒàh„ÂƄ¢Jî¶²"]], + "encodeOffsets": [[[111707, 21520]], [[107619, 25527]]] + }, "properties": {"cp": [108.320004, 22.82402], "name": "广西", "childNum": 2} + }, { + "id": "460000", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": ["@@š¦Ŝil¢”XƦ‘ƞò–ïè§ŞCêɕrŧůÇąĻõ™·ĉ³œ̅kÇm@ċȧƒŧĥ‰Ľʉ­ƅſ“ȓÒ˦ŝE}ºƑ[ÍĜȋ gÎfǐÏĤ¨êƺ\\Ɔ¸ĠĎvʄȀœÐ¾jNðĀÒRŒšZdž™zÐŘΰH¨Ƣb²_Ġ "], + "encodeOffsets": [[112750, 20508]] + }, + "properties": {"cp": [110.33119, 20.031971], "name": "海南", "childNum": 1} + }, { + "id": "510000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@LqKr"], ["@@Š[ĻéV£ž_ţġñpG •réÏ·~ąSfy×͂·ºſƽiÍıƣıĻmHH}siaX@iǰÁÃ×t«ƒ­Tƒ¤J–JJŒyJ•ÈŠ`Ohߦ¡uËhIyCjmÿw…ZG……Ti‹SˆsO‰žB²ŸfNmsPaˆ{M{ŠõE‘^Hj}gYpaeuž¯‘oáwHjÁ½M¡pM“–uå‡mni{fk”\\oƒÎqCw†EZ¼K›ĝŠƒAy{m÷L‡wO×SimRI¯rK™õBS«sFe‡]fµ¢óY_ÆPRcue°Cbo׌bd£ŌIHgtrnyPt¦foaXďx›lBowz‹_{ÊéWiêE„GhܸºuFĈIxf®Ž•Y½ĀǙ]¤EyŸF²ċ’w¸¿@g¢§RGv»–áŸW`ÃĵJwi]t¥wO­½a[׈]`Ãi­üL€¦LabbTÀå’c}Íh™Æhˆ‹®BH€î|Ék­¤S†y£„ia©taį·Ɖ`ō¥Uh“O…ƒĝLk}©Fos‰´›Jm„µlŁu—…ø–nÑJWΪ–YÀïAetTžŅ‚ӍG™Ë«bo‰{ıwodƟ½ƒžOġܑµxàNÖ¾P²§HKv¾–]|•B‡ÆåoZ`¡Ø`ÀmºĠ~ÌЧnDž¿¤]wğ@sƒ‰rğu‰~‘Io”[é±¹ ¿žſđӉ@q‹gˆ¹zƱřaí°KtǤV»Ã[ĩǭƑ^ÇÓ@ỗs›Zϕ‹œÅĭ€Ƌ•ěpwDóÖሯneQˌq·•GCœýS]xŸ·ý‹q³•O՜Œ¶Qzßti{ř‰áÍÇWŝŭñzÇW‹pç¿JŒ™‚Xœĩè½cŒF–ÂLiVjx}\\N†ŇĖ¥Ge–“JA¼ÄHfÈu~¸Æ«dE³ÉMA|b˜Ò…˜ćhG¬CM‚õŠ„ƤąAvƒüV€éŀ‰_V̳ĐwQj´·ZeÈÁ¨X´Æ¡Qu·»Ÿ“˜ÕZ³ġqDo‰y`L¬gdp°şŠp¦ėìÅĮZްIä”h‚‘ˆzŠĵœf²å ›ĚрKp‹IN|‹„Ñz]ń……·FU×é»R³™MƒÉ»GM«€ki€™ér™}Ã`¹ăÞmȝnÁîRǀ³ĜoİzŔwǶVÚ£À]ɜ»ĆlƂ²Ġ…þTº·àUȞÏʦ¶†I’«dĽĢdĬ¿–»Ĕ׊h\\c¬†ä²GêëĤł¥ÀǿżÃÆMº}BÕĢyFVvw–ˆxBèĻĒ©Ĉ“tCĢɽŠȣ¦āæ·HĽî“ôNԓ~^¤Ɗœu„œ^s¼{TA¼ø°¢İªDè¾Ň¶ÝJ‘®Z´ğ~Sn|ªWÚ©òzPOȸ‚bð¢|‹øĞŠŒœŒQìÛÐ@Ğ™ǎRS¤Á§d…i“´ezÝúØã]Hq„kIŸþËQǦÃsǤ[E¬ÉŪÍxXƒ·ÖƁİlƞ¹ª¹|XÊwn‘ÆƄmÀêErĒtD®ċæcQƒ”E®³^ĭ¥©l}äQto˜ŖÜqƎkµ–„ªÔĻĴ¡@Ċ°B²Èw^^RsºT£ڿœQP‘JvÄz„^Đ¹Æ¯fLà´GC²‘dt˜­ĀRt¼¤ĦOðğfÔðDŨŁĞƘïžPȆ®âbMüÀXZ ¸£@Ś›»»QÉ­™]d“sÖ×_͖_ÌêŮPrĔĐÕGĂeZÜîĘqBhtO ¤tE[h|Y‹Ô‚ZśÎs´xº±UŒ’ñˆt|O’ĩĠºNbgþŠJy^dÂY Į„]Řz¦gC‚³€R`Šz’¢AjŒ¸CL„¤RÆ»@­Ŏk\\Ç´£YW}z@Z}‰Ã¶“oû¶]´^N‡Ò}èN‚ª–P˜Íy¹`S°´†ATe€VamdUĐwʄvĮÕ\\ƒu‹Æŗ¨Yp¹àZÂm™Wh{á„}WØǍ•Éüw™ga§áCNęÎ[ĀÕĪgÖɪX˜øx¬½Ů¦¦[€—„NΆL€ÜUÖ´òrÙŠxR^–†J˜k„ijnDX{Uƒ~ET{ļº¦PZc”jF²Ė@Žp˜g€ˆ¨“B{ƒu¨ŦyhoÚD®¯¢˜ WòàFΤ¨GDäz¦kŮPœġq˚¥À]€Ÿ˜eŽâÚ´ªKxī„Pˆ—Ö|æ[xäJÞĥ‚s’NÖ½ž€I†¬nĨY´®Ð—ƐŠ€mD™ŝuäđđEb…e’e_™v¡}ìęNJē}q”É埁T¯µRs¡M@}ůa†a­¯wvƉåZwž\\Z{åû^›"]], + "encodeOffsets": [[[108815, 30935]], [[110617, 31811]]] + }, "properties": {"cp": [104.065735, 30.659462], "name": "四川", "childNum": 2} + }, { + "id": "520000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@†G\\†lY£‘in"], ["@@q‚|ˆ‚mc¯tχVSÎ"], ["@@hÑ£Is‡NgßH†›HªķÃh_¹ƒ¡ĝħń¦uيùŽgS¯JHŸ|sÝÅtÁïyMDč»eÕtA¤{b\\}—ƒG®u\\åPFq‹wÅaD…žK°ºâ_£ùbµ”mÁ‹ÛœĹM[q|hlaªāI}тƒµ@swtwm^oµˆD鼊yV™ky°ÉžûÛR…³‚‡eˆ‡¥]RՋěħ[ƅåÛDpŒ”J„iV™™‰ÂF²I…»mN·£›LbÒYb—WsÀbŽ™pki™TZĄă¶HŒq`……ĥ_JŸ¯ae«ƒKpÝx]aĕÛPƒÇȟ[ÁåŵÏő—÷Pw}‡TœÙ@Õs«ĿÛq©½œm¤ÙH·yǥĘĉBµĨÕnđ]K„©„œá‹ŸG纍§Õßg‡ǗĦTèƤƺ{¶ÉHÎd¾ŚÊ·OÐjXWrãLyzÉAL¾ę¢bĶėy_qMĔąro¼hĊžw¶øV¤w”²Ĉ]ʚKx|`ź¦ÂÈdr„cȁbe¸›`I¼čTF´¼Óýȃr¹ÍJ©k_șl³´_pН`oÒh޶pa‚^ÓĔ}D»^Xyœ`d˜[Kv…JPhèhCrĂĚÂ^Êƌ wˆZL­Ġ£šÁbrzOIl’MM”ĪŐžËr×ÎeŦŽtw|Œ¢mKjSǘňĂStÎŦEtqFT†¾†E쬬ôxÌO¢Ÿ KгŀºäY†„”PVgŎ¦Ŋm޼VZwVlŒ„z¤…ž£Tl®ctĽÚó{G­A‡ŒÇgeš~Αd¿æaSba¥KKûj®_ć^\\ؾbP®¦x^sxjĶI_Ä X‚⼕Hu¨Qh¡À@Ëô}ޱžGNìĎlT¸ˆ…`V~R°tbÕĊ`¸úÛtπFDu€[ƒMfqGH·¥yA‰ztMFe|R‚_Gk†ChZeÚ°to˜v`x‹b„ŒDnÐ{E}šZ˜è€x—†NEފREn˜[Pv@{~rĆAB§‚EO¿|UZ~ì„Uf¨J²ĂÝÆ€‚sª–B`„s¶œfvö¦ŠÕ~dÔq¨¸º»uù[[§´sb¤¢zþFœ¢Æ…Àhˆ™ÂˆW\\ıŽËI݊o±ĭŠ£þˆÊs}¡R]ŒěƒD‚g´VG¢‚j±®è†ºÃmpU[Á›‘Œëº°r›ÜbNu¸}Žº¼‡`ni”ºÔXĄ¤¼Ôdaµ€Á_À…†ftQQgœR—‘·Ǔ’v”}Ýלĵ]µœ“Wc¤F²›OĩųãW½¯K‚©…]€{†LóµCIµ±Mß¿hŸ•©āq¬o‚½ž~@i~TUxŪÒ¢@ƒ£ÀEîôruń‚”“‚b[§nWuMÆLl¿]x}ij­€½"]], + "encodeOffsets": [[[112158, 27383]], [[112105, 27474]], [[112095, 27476]]] + }, "properties": {"cp": [106.713478, 26.578343], "name": "贵州", "childNum": 3} + }, { + "id": "530000", "type": "Feature", "geometry": { + "type": "Polygon", + "coordinates": ["@@[„ùx½}ÑRH‘YīĺûsÍn‘iEoã½Ya²ė{c¬ĝg•ĂsA•ØÅwď‚õzFjw}—«Dx¿}UũlŸê™@•HÅ­F‰¨ÇoJ´Ónũuą¡Ã¢pÒŌ“Ø TF²‚xa²ËX€‚cʋlHîAßËŁkŻƑŷÉ©h™W­æßU‡“Ës¡¦}•teèÆ¶StǀÇ}Fd£j‹ĈZĆÆ‹¤T‚č\\Dƒ}O÷š£Uˆ§~ŃG™‚åŃDĝ¸œTsd¶¶Bªš¤u¢ŌĎo~t¾ÍŶÒtD¦Ú„iôö‰€z›ØX²ghįh½Û±¯€ÿm·zR¦Ɵ`ªŊÃh¢rOԍ´£Ym¼èêf¯ŪĽn„†cÚbŒw\\zlvWžªâˆ ¦g–mĿBş£¢ƹřbĥkǫßeeZkÙIKueT»sVesb‘aĕ  ¶®dNœĄÄpªyސ¼—„³BE˜®l‡ŽGœŭCœǶwêżĔÂe„pÍÀQƞpC„–¼ŲÈ­AÎô¶R„ä’Q^Øu¬°š_Èôc´¹ò¨P΢hlϦ´Ħ“Æ´sâDŽŲPnÊD^¯°’Upv†}®BP̪–jǬx–Söwlfòªv€qĸ|`H€­viļ€ndĜ­Ćhň•‚em·FyށqóžSᝑ³X_ĞçêtryvL¤§z„¦c¦¥jnŞk˜ˆlD¤øz½ĜàžĂŧMÅ|áƆàÊcðÂF܎‚áŢ¥\\\\º™İøÒÐJĴ‡„îD¦zK²ǏÎEh~’CD­hMn^ÌöÄ©ČZÀžaü„fɭyœpį´ěFűk]Ôě¢qlÅĆÙa¶~Äqššê€ljN¬¼H„ÊšNQ´ê¼VظE††^ŃÒyŒƒM{ŒJLoÒœęæŸe±Ķ›y‰’‡gã“¯JYÆĭĘëo¥Š‰o¯hcK«z_pŠrC´ĢÖY”—¼ v¸¢RŽÅW³Â§fǸYi³xR´ďUˊ`êĿU„û€uĆBƒƣö‰N€DH«Ĉg†——Ñ‚aB{ÊNF´¬c·Åv}eÇÃGB»”If•¦HňĕM…~[iwjUÁKE•Ž‹¾dĪçW›šI‹èÀŒoÈXòyŞŮÈXâÎŚŠj|àsRy‹µÖ›–Pr´þŒ ¸^wþTDŔ–Hr¸‹žRÌmf‡żÕâCôox–ĜƌÆĮŒ›Ð–œY˜tâŦÔ@]ÈǮƒ\\μģUsȯLbîƲŚºyh‡rŒŠ@ĒԝƀŸÀ²º\\êp“’JŠ}ĠvŠqt„Ġ@^xÀ£È†¨mËÏğ}n¹_¿¢×Y_æpˆÅ–A^{½•Lu¨GO±Õ½ßM¶w’ÁĢۂP‚›Ƣ¼pcIJxŠ|ap̬HšÐŒŊSfsðBZ¿©“XÏÒK•k†÷Eû¿‰S…rEFsÕūk”óVǥʼniTL‚¡n{‹uxţÏh™ôŝ¬ğōN“‘NJkyPaq™Âğ¤K®‡YŸxÉƋÁ]āęDqçgOg†ILu—\\_gz—]W¼ž~CÔē]bµogpў_oď`´³Țkl`IªºÎȄqÔþž»E³ĎSJ»œ_f·‚adÇqƒÇc¥Á_Źw{™L^ɱćx“U£µ÷xgĉp»ĆqNē`rĘzaĵĚ¡K½ÊBzyäKXqiWPÏɸ½řÍcÊG|µƕƣG˛÷Ÿk°_^ý|_zċBZocmø¯hhcæ\\lˆMFlư£Ĝ„ÆyH“„F¨‰µêÕ]—›HA…àӄ^it `þßäkŠĤÎT~Wlÿ¨„ÔPzUC–NVv [jâôDôď[}ž‰z¿–msSh‹¯{jïğl}šĹ[–őŒ‰gK‹©U·µË@¾ƒm_~q¡f¹…ÅË^»‘f³ø}Q•„¡Ö˳gͱ^ǁ…\\ëÃA_—¿bW›Ï[¶ƛ鏝£F{īZgm@|kHǭƁć¦UĔťƒ×ë}ǝƒeďºȡȘÏíBə£āĘPªij¶“ʼnÿ‡y©n‰ď£G¹¡I›Š±LÉĺÑdĉ܇W¥˜‰}g˜Á†{aqÃ¥aŠıęÏZ—ï`"], + "encodeOffsets": [[104636, 22969]] + }, "properties": {"cp": [102.712251, 25.040609], "name": "云南", "childNum": 1} + }, { + "id": "540000", "type": "Feature", "geometry": { + "type": "Polygon", + "coordinates": ["@@hžľxŽŖ‰xƒÒVކºÅâAĪÝȆµę¯Ňa±r_w~uSÕň‘qOj]ɄQ…£Z……UDûoY’»©M[‹L¼qãË{V͕çWViŽ]ë©Ä÷àyƛh›ÚU°ŒŒa”d„cQƒ~Mx¥™cc¡ÙaSyF—ցk­ŒuRýq¿Ôµ•QĽ³aG{¿FµëªéĜÿª@¬·–K‰·àariĕĀ«V»Ŷ™Ĵū˜gèLǴŇƶaf‹tŒèBŚ£^Šâ†ǐÝ®–šM¦ÁǞÿ¬LhŸŽJ¾óƾƺcxw‹f]Y…´ƒ¦|œQLn°aœdĊ…œ\\¨o’œǀÍŎœ´ĩĀd`tÊQŞŕ|‚¨C^©œĈ¦„¦ÎJĊ{ŽëĎjª²rЉšl`¼Ą[t|¦St辉PŒÜK¸€d˜Ƅı]s¤—î_v¹ÎVòŦj˜£Əsc—¬_Ğ´|٘¦Avަw`ăaÝaa­¢e¤ı²©ªSªšÈMĄwžÉØŔì@T‘¤—Ę™\\õª@”þo´­xA s”ÂtŎKzó´ÇĊµ¢rž^nĊ­Æ¬×üGž¢‚³ {âĊ]š™G‚~bÀgVjzlhǶf€žOšfdЉªB]pj„•TO–tĊ‚n¤}®¦ƒČ¥d¢¼»ddš”Y¼Žt—¢eȤJ¤}Ǿ¡°§¤AГlc@ĝ”sªćļđAç‡wx•UuzEÖġ~AN¹ÄÅȀݦ¿ģŁéì±H…ãd«g[؉¼ēÀ•cīľġ¬cJ‘µ…ÐʥVȝ¸ßS¹†ý±ğkƁ¼ą^ɛ¤Ûÿ‰b[}¬ōõÃ]ËNm®g@•Bg}ÍF±ǐyL¥íCˆƒIij€Ï÷њį[¹¦[⚍EÛïÁÉdƅß{âNÆāŨߝ¾ě÷yC£‡k­´ÓH@¹†TZ¥¢įƒ·ÌAЧ®—Zc…v½ŸZ­¹|ŕWZqgW“|ieZÅYVӁqdq•bc²R@†c‡¥Rã»Ge†ŸeƃīQ•}J[ғK…¬Ə|o’ėjġĠÑN¡ð¯EBčnwôɍėªƒ²•CλŹġǝʅįĭạ̃ūȹ]ΓͧgšsgȽóϧµǛ†ęgſ¶ҍć`ĘąŌJޚä¤rÅň¥ÖÁUětęuůÞiĊÄÀ\\Æs¦ÓRb|Â^řÌkÄŷ¶½÷‡f±iMݑ›‰@ĥ°G¬ÃM¥n£Øą‚ğ¯ß”§aëbéüÑOčœk£{\\‘eµª×M‘šÉfm«Ƒ{Å׃Gŏǩãy³©WÑăû‚··‘Q—òı}¯ã‰I•éÕÂZ¨īès¶ZÈsŽæĔTŘvŽgÌsN@îá¾ó@‰˜ÙwU±ÉT廣TđŸWxq¹Zo‘b‹s[׌¯cĩv‡Œėŧ³BM|¹k‰ªħ—¥TzNYnݍßpęrñĠĉRS~½ŠěVVе‚õ‡«ŒM££µB•ĉ¥áºae~³AuĐh`Ü³ç@BۘïĿa©|z²Ý¼D”£à貋ŸƒIƒû›I ā€óK¥}rÝ_Á´éMaň¨€~ªSĈ½Ž½KÙóĿeƃÆBŽ·¬ën×W|Uº}LJrƳ˜lŒµ`bÔ`QˆˆÐÓ@s¬ñIŒÍ@ûws¡åQÑßÁ`ŋĴ{Ī“T•ÚÅTSij‚‹Yo|Ç[ǾµMW¢ĭiÕØ¿@˜šMh…pÕ]j†éò¿OƇĆƇp€êĉâlØw–ěsˆǩ‚ĵ¸c…bU¹ř¨WavquSMzeo_^gsÏ·¥Ó@~¯¿RiīB™Š\\”qTGªÇĜçPoŠÿfñòą¦óQīÈáP•œābß{ƒZŗĸIæÅ„hnszÁCËìñšÏ·ąĚÝUm®ó­L·ăU›Èíoù´Êj°ŁŤ_uµ^‘°Œìǖ@tĶĒ¡Æ‡M³Ģ«˜İĨÅ®ğ†RŽāð“ggheÆ¢z‚Ê©Ô\\°ÝĎz~ź¤Pn–MĪÖB£Ÿk™n鄧żćŠ˜ĆK„ǰ¼L¶è‰âz¨u¦¥LDĘz¬ýÎmĘd¾ß”Fz“hg²™Fy¦ĝ¤ċņbΛ@y‚Ąæm°NĮZRÖíŽJ²öLĸÒ¨Y®ƌÐV‰à˜tt_ڀÂyĠzž]Ţh€zĎ{†ĢX”ˆc|šÐqŽšfO¢¤ög‚ÌHNŽ„PKŖœŽ˜Uú´xx[xˆvĐCûŠìÖT¬¸^}Ìsòd´_އKgžLĴ…ÀBon|H@–Êx˜—¦BpŰˆŌ¿fµƌA¾zLjRxжF”œkĄźRzŀˆ~¶[”´Hnª–VƞuĒ­È¨ƎcƽÌm¸ÁÈM¦x͊ëÀxdžB’šú^´W†£–d„kɾĬpœw‚˂ØɦļĬIŚœÊ•n›Ŕa¸™~J°î”lɌxĤÊÈðhÌ®‚g˜T´øŽàCˆŽÀ^ªerrƘdž¢İP|Ė ŸWœªĦ^¶´ÂL„aT±üWƜ˜ǀRšŶUńšĖ[QhlLüA†‹Ü\\†qR›Ą©"], + "encodeOffsets": [[90849, 37210]] + }, "properties": {"cp": [91.132212, 29.660361], "name": "西藏", "childNum": 1} + }, { + "id": "610000", "type": "Feature", "geometry": { + "type": "Polygon", + "coordinates": ["@@˜p¢—ȮµšûG™Ħ}Ħšðǚ¶òƄ€jɂz°{ºØkÈęâ¦jª‚Bg‚\\œċ°s¬Ž’]jžú ‚E”Ȍdž¬s„t‡”RˆÆdĠݎwܔ¸ôW¾ƮłÒ_{’Ìšû¼„jº¹¢GǪÒ¯ĘƒZ`ºŊƒecņąš~BÂgzpâēòYǠȰÌTΨÂWœ|fcŸă§uF—Œ@NŸ¢XLƒŠRMº[ğȣſï|¥J™kc`sʼnǷ’Y¹‹W@µ÷K…ãï³ÛIcñ·VȋڍÒķø©—þ¥ƒy‚ÓŸğęmWµÎumZyOŅƟĥÓ~sÑL¤µaŅY¦ocyZ{‰y c]{ŒTa©ƒ`U_Ěē£ωÊƍKù’K¶ȱÝƷ§{û»ÅÁȹÍéuij|¹cÑd‘ŠìUYƒŽO‘uF–ÕÈYvÁCqӃT•Ǣí§·S¹NgŠV¬ë÷Át‡°Dد’C´ʼnƒópģ}„ċcE˅FŸŸéGU¥×K…§­¶³B‹Č}C¿åċ`wġB·¤őcƭ²ő[Å^axwQO…ÿEËߌ•ĤNĔŸwƇˆÄŠńwĪ­Šo[„_KÓª³“ÙnK‰Çƒěœÿ]ď€ă_d©·©Ýŏ°Ù®g]±„Ÿ‡ß˜å›—¬÷m\\›iaǑkěX{¢|ZKlçhLt€Ňîŵ€œè[€É@ƉĄEœ‡tƇÏ˜³­ħZ«mJ…›×¾‘MtÝĦ£IwÄå\\Õ{‡˜ƒOwĬ©LÙ³ÙgBƕŀr̛ĢŭO¥lãyC§HÍ£ßEñŸX¡—­°ÙCgpťz‘ˆb`wI„vA|§”‡—hoĕ@E±“iYd¥OϹS|}F@¾oAO²{tfžÜ—¢Fǂ҈W²°BĤh^Wx{@„¬‚­F¸¡„ķn£P|ŸªĴ@^ĠĈæb–Ôc¶l˜Yi…–^Mi˜cϰÂ[ä€vï¶gv@À“Ĭ·lJ¸sn|¼u~a]’ÆÈtŌºJp’ƒþ£KKf~ЦUbyäIšĺãn‡Ô¿^­žŵMT–hĠܤko¼Ŏìąǜh`[tŒRd²IJ_œXPrɲ‰l‘‚XžiL§àƒ–¹ŽH˜°Ȧqº®QC—bA†„ŌJ¸ĕÚ³ĺ§ `d¨YjžiZvRĺ±öVKkjGȊĐePОZmļKÀ€‚[ŠŽ`ösìh†ïÎoĬdtKÞ{¬èÒÒBŒÔpIJÇĬJŊ¦±J«ˆY§‹@·pH€µàåVKe›pW†ftsAÅqC·¬ko«pHÆuK@oŸHĆۄķhx“e‘n›S³àǍrqƶRbzy€¸ËАl›¼EºpĤ¼Œx¼½~Ğ’”à@†ÚüdK^ˆmÌSj"], + "encodeOffsets": [[110234, 38774]] + }, "properties": {"cp": [108.948024, 34.263161], "name": "陕西", "childNum": 1} + }, { + "id": "620000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@VuUv"], ["@@ũ‹EĠtt~nkh`Q‰¦ÅÄÜdw˜Ab×ĠąJˆ¤DüègĺqBqœj°lI¡ĨÒ¤úSHbš‡ŠjΑBаaZˆ¢KJŽ’O[|A£žDx}Nì•HUnrk„ kp€¼Y kMJn[aG‚áÚÏ[½rc†}aQxOgsPMnUs‡nc‹Z…ž–sKúvA›t„Þġ’£®ĀYKdnFwš¢JE°”Latf`¼h¬we|€Æ‡šbj}GA€·~WŽ”—`†¢MC¤tL©IJ°qdf”O‚“bÞĬ¹ttu`^ZúE`Œ[@„Æsîz®¡’C„ƳƜG²“R‘¢R’m”fŽwĸg܃‚ą G@pzJM½mŠhVy¸uÈÔO±¨{LfæU¶ßGĂq\\ª¬‡²I‚¥IʼnÈīoı‹ÓÑAçÑ|«LÝcspīðÍg…të_õ‰\\ĉñLYnĝg’ŸRǡÁiHLlõUĹ²uQjYi§Z_c¨Ÿ´ĹĖÙ·ŋI…ƒaBD˜­R¹ȥr—¯G•ºß„K¨jWk’ɱŠOq›Wij\\a­‹Q\\sg_ĆǛōëp»£lğۀgS•ŶN®À]ˆÓäm™ĹãJaz¥V}‰Le¤L„ýo‘¹IsŋÅÇ^‘Žbz…³tmEÁ´aйcčecÇN•ĊãÁ\\蝗dNj•]j†—ZµkÓda•ćå]ğij@ ©O{¤ĸm¢ƒE·®ƒ«|@Xwg]A챝‡XǁÑdzªc›wQÚŝñsÕ³ÛV_ýƒ˜¥\\ů¥©¾÷w—Ž©WÕÊĩhÿÖÁRo¸V¬âDb¨šhûx–Ê×nj~Zâƒg|šXÁnßYoº§ZÅŘvŒ[„ĭÖʃuďxcVbnUSf…B¯³_Tzº—ΕO©çMÑ~Mˆ³]µ^püµ”ŠÄY~y@X~¤Z³€[Èōl@®Å¼£QKƒ·Di‹¡By‘ÿ‰Q_´D¥hŗyƒ^ŸĭÁZ]cIzý‰ah¹MĪğP‘s{ò‡‹‘²Vw¹t³Ŝˁ[ŽÑ}X\\gsFŸ£sPAgěp×ëfYHāďÖqēŭOÏë“dLü•\\iŒ”t^c®šRʺ¶—¢H°mˆ‘rYŸ£BŸ¹čIoľu¶uI]vģSQ{ƒUŻ”Å}QÂ|̋°ƅ¤ĩŪU ęĄžÌZҞ\\v˜²PĔ»ƢNHƒĂyAmƂwVmž`”]ȏb•”H`‰Ì¢²ILvĜ—H®¤Dlt_„¢JJÄämèÔDëþgºƫ™”aʎÌrêYi~ ÎݤNpÀA¾Ĕ¼b…ð÷’Žˆ‡®‚”üs”zMzÖĖQdȨý†v§Tè|ªH’þa¸|šÐ ƒwKĢx¦ivr^ÿ ¸l öæfƟĴ·PJv}n\\h¹¶v†·À|\\ƁĚN´Ĝ€çèÁz]ġ¤²¨QÒŨTIl‡ªťØ}¼˗ƦvÄùØE‹’«Fï˛Iq”ōŒTvāÜŏ‚íÛߜÛV—j³âwGăÂíNOŠˆŠPìyV³ʼnĖýZso§HіiYw[߆\\X¦¥c]ÔƩÜ·«j‡ÐqvÁ¦m^ċ±R™¦΋ƈťĚgÀ»IïĨʗƮްƝ˜ĻþÍAƉſ±tÍEÕÞāNU͗¡\\ſčåÒʻĘm ƭÌŹöʥ’ëQ¤µ­ÇcƕªoIýˆ‰Iɐ_mkl³ă‰Ɠ¦j—¡Yz•Ňi–}Msßõ–īʋ —}ƒÁVmŸ_[n}eı­Uĥ¼‘ª•I{ΧDӜƻėoj‘qYhĹT©oūĶ£]ďxĩ‹ǑMĝ‰q`B´ƃ˺Ч—ç~™²ņj@”¥@đ´ί}ĥtPńǾV¬ufӃÉC‹tÓ̻‰…¹£G³€]ƖƾŎĪŪĘ̖¨ʈĢƂlɘ۪üºňUðǜȢƢż̌ȦǼ‚ĤŊɲĖ­Kq´ï¦—ºĒDzņɾªǀÞĈĂD†½ĄĎÌŗĞrôñnŽœN¼â¾ʄľԆ|DŽŽ֦ज़ȗlj̘̭ɺƅêgV̍ʆĠ·ÌĊv|ýĖÕWĊǎÞ´õ¼cÒÒBĢ͢UĜð͒s¨ňƃLĉÕÝ@ɛƯ÷¿Ľ­ĹeȏijëCȚDŲyê×Ŗyò¯ļcÂßY…tÁƤyAã˾J@ǝrý‹‰@¤…rz¸oP¹ɐÚyᐇHŸĀ[Jw…cVeȴϜ»ÈŽĖ}ƒŰŐèȭǢόĀƪÈŶë;Ñ̆ȤМľĮEŔ—ĹŊũ~ËUă{ŸĻƹɁύȩþĽvĽƓÉ@ē„ĽɲßǐƫʾǗĒpäWÐxnsÀ^ƆwW©¦cÅ¡Ji§vúF¶Ž¨c~c¼īŒeXǚ‹\\đ¾JŽwÀďksãA‹fÕ¦L}wa‚o”Z’‹D½†Ml«]eÒÅaɲáo½FõÛ]ĻÒ¡wYR£¢rvÓ®y®LF‹LzĈ„ôe]gx}•|KK}xklL]c¦£fRtív¦†PĤoH{tK"]], + "encodeOffsets": [[[108619, 36299]], [[108589, 36341]]] + }, "properties": {"cp": [103.823557, 36.058039], "name": "甘肃", "childNum": 2} + }, { + "id": "630000", "type": "Feature", "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@InJm"], ["@@CƒÆ½OŃĦsΰ~dz¦@@“Ņiš±è}ؘƄ˹A³r_ĞŠǒNΌĐw¤^ŬĵªpĺSZg’rpiƼĘԛ¨C|͖J’©Ħ»®VIJ~f\\m `Un„˜~ʌŸ•ĬàöNt•~ňjy–¢Zi˜Ɣ¥ĄŠk´nl`JʇŠJþ©pdƖ®È£¶ìRʦ‘źõƮËnŸʼėæÑƀĎ[‚˜¢VÎĂMÖÝÎF²sƊƀÎBļýƞ—¯ʘƭðħ¼Jh¿ŦęΌƇš¥²Q]Č¥nuÂÏriˆ¸¬ƪÛ^Ó¦d€¥[Wà…x\\ZŽjҕ¨GtpþYŊĕ´€zUO뇉P‰îMĄÁxH´á˜iÜUà›îÜՁĂÛSuŎ‹r“œJð̬EŒ‘FÁú×uÃÎkr“Ē{V}İ«O_ÌËĬ©ŽÓŧSRѱ§Ģ£^ÂyèçěM³Ƃę{[¸¿u…ºµ[gt£¸OƤĿéYŸõ·kŸq]juw¥Dĩƍ€õÇPéĽG‘ž©ã‡¤G…uȧþRcÕĕNy“yût“ˆ­‡ø‘†ï»a½ē¿BMoᣟÍj}éZËqbʍš“Ƭh¹ìÿÓAçãnIáI`ƒks£CG­ě˜Uy×Cy•…’Ÿ@¶ʡÊBnāzG„ơMē¼±O÷õJËĚăVŸĪũƆ£Œ¯{ËL½Ìzż“„VR|ĠTbuvJvµhĻĖH”Aëáa…­OÇðñęNw‡…œľ·L›mI±íĠĩPÉ×®ÿs—’cB³±JKßĊ«`…ađ»·QAmO’‘Vţéÿ¤¹SQt]]Çx€±¯A@ĉij¢Ó祖•ƒl¶ÅÛr—ŕspãRk~¦ª]Į­´“FR„åd­ČsCqđéFn¿Åƃm’Éx{W©ºƝºįkÕƂƑ¸wWūЩÈFž£\\tÈ¥ÄRÈýÌJ ƒlGr^×äùyÞ³fj”c†€¨£ÂZ|ǓMĝšÏ@ëÜőR‹›ĝ‰Œ÷¡{aïȷPu°ËXÙ{©TmĠ}Y³’­ÞIňµç½©C¡į÷¯B»|St»›]vƒųƒs»”}MÓ ÿʪƟǭA¡fs˜»PY¼c¡»¦c„ċ­¥£~msĉP•–Siƒ^o©A‰Šec‚™PeǵŽkg‚yUi¿h}aH™šĉ^|ᴟ¡HØûÅ«ĉ®]m€¡qĉ¶³ÈyôōLÁst“BŸ®wn±ă¥HSò뚣˜S’ë@לÊăxÇN©™©T±ª£IJ¡fb®ÞbŽb_Ą¥xu¥B—ž{łĝ³«`d˜Ɛt—¤ťiñžÍUuºí`£˜^tƃIJc—·ÛLO‹½Šsç¥Ts{ă\\_»™kϊ±q©čiìĉ|ÍIƒ¥ć¥›€]ª§D{ŝŖÉR_sÿc³Īō›ƿΑ›§p›[ĉ†›c¯bKm›R¥{³„Z†e^ŽŒwx¹dƽŽôIg §Mĕ ƹĴ¿—ǣÜ̓]‹Ý–]snåA{‹eŒƭ`ǻŊĿ\\ijŬű”YÂÿ¬jĖqŽßbЏ•L«¸©@ěĀ©ê¶ìÀEH|´bRľž–Ó¶rÀQþ‹vl®Õ‚E˜TzÜdb ˜hw¤{LR„ƒd“c‹b¯‹ÙVgœ‚ƜßzÃô쮍^jUèXΖ|UäÌ»rKŽ\\ŒªN‘¼pZCü†VY††¤ɃRi^rPҒTÖ}|br°qňb̰ªiƶGQ¾²„x¦PœmlŜ‘[Ĥ¡ΞsĦŸÔÏâ\\ªÚŒU\\f…¢N²§x|¤§„xĔsZPòʛ²SÐqF`ª„VƒÞŜĶƨVZŒÌL`ˆ¢dŐIqr\\oäõ–F礻Ŷ×h¹]Clـ\\¦ďÌį¬řtTӺƙgQÇÓHţĒ”´ÃbEÄlbʔC”|CˆŮˆk„Ʈ[ʼ¬ňœ´KŮÈΰÌζƶlð”ļA†TUvdTŠG†º̼ŠÔ€ŒsÊDԄveOg"]], + "encodeOffsets": [[[105308, 37219]], [[95370, 40081]]] + }, "properties": {"cp": [101.778916, 36.623178], "name": "青海", "childNum": 2} + }, { + "id": "640000", + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@KëÀęĞ«OęȿȕŸı]ʼn¡åįÕÔ«Ǵõƪ™ĚQÐZhv K°›öqÀѐS[ÃÖHƖčË‡nL]ûc…Ùß@‚“ĝ‘¾}w»»‹oģF¹œ»kÌÏ·{zPƒ§B­¢íyÅt@ƒ@áš]Yv_ssģ¼i߁”ĻL¾ġsKD£¡N_…“˜X¸}B~Haiˆ™Åf{«x»ge_bs“KF¯¡Ix™mELcÿZ¤­Ģ‘ƒÝœsuBLù•t†ŒYdˆmVtNmtOPhRw~bd…¾qÐ\\âÙH\\bImlNZŸ»loƒŸqlVm–Gā§~QCw¤™{A\\‘PKŸNY‡¯bF‡kC¥’sk‹Šs_Ã\\ă«¢ħkJi¯r›rAhĹûç£CU‡ĕĊ_ԗBixÅُĄnªÑaM~ħpOu¥sîeQ¥¤^dkKwlL~{L~–hw^‚ófćƒKyEŒ­K­zuÔ¡qQ¤xZÑ¢^ļöܾEpž±âbÊÑÆ^fk¬…NC¾‘Œ“YpxbK~¥Že֎ŒäBlt¿Đx½I[ĒǙŒWž‹f»Ĭ}d§dµùEuj¨‚IÆ¢¥dXªƅx¿]mtÏwßR͌X¢͎vÆzƂZò®ǢÌʆCrâºMÞzžÆMҔÊÓŊZľ–r°Î®Ȉmª²ĈUªĚøºˆĮ¦ÌĘk„^FłĬhĚiĀ˾iİbjÕ"], ["@@mfwěwMrŢªv@G‰"]], + "encodeOffsets": [[[109366, 40242]], [[108600, 36303]]] + }, + "properties": {"cp": [106.278179, 38.46637], "name": "宁夏", "childNum": 2} + }, { + "id": "650000", "type": "Feature", "geometry": { + "type": "Polygon", + "coordinates": ["@@QØĔ²X¨”~ǘBºjʐߨvK”ƔX¨vĊOžÃƒ·¢i@~c—‡ĝe_«”Eš“}QxgɪëÏÃ@sÅyXoŖ{ô«ŸuX…ê•Îf`œC‚¹ÂÿÐGĮÕĞXŪōŸMźÈƺQèĽôe|¿ƸJR¤ĘEjcUóº¯Ĩ_ŘÁMª÷Ð¥Oéȇ¿ÖğǤǷÂF҇zÉx[]­Ĥĝ‰œ¦EP}ûƥé¿İƷTėƫœŕƅ™ƱB»Đ±’ēO…¦E–•}‘`cȺrĦáŖuҞª«IJ‡πdƺÏØZƴwʄ¤ĖGЙǂZ̓èH¶}ÚZצʥĪï|ÇĦMŔ»İĝLj‹ì¥Βœba­¯¥ǕǚkĆŵĦɑĺƯxūД̵nơʃĽá½M»›òmqóŘĝč˾ăC…ćāƿÝɽ©DZŅ¹đ¥˜³ðLrÁ®ɱĕģʼnǻ̋ȥơŻǛȡVï¹Ň۩ûkɗġƁ§ʇė̕ĩũƽō^ƕŠUv£ƁQï“Ƶkŏ½ΉÃŭdzLқʻ«ƭ\\lƒ‡ŭD‡“{ʓDkaFÃÄa“³ŤđÔGRÈƚhSӹŚsİ«ĐË[¥ÚDkº^Øg¼ŵ¸£EÍö•€ůʼnT¡c_‡ËKY‹ƧUśĵ„݃U_©rETÏʜ±OñtYw獃{£¨uM³x½şL©Ùá[ÓÐĥ Νtģ¢\\‚ś’nkO›w¥±ƒT»ƷFɯàĩÞáB¹Æ…ÑUw„੍žĽw[“mG½Èå~‡Æ÷QyŠěCFmĭZī—ŵVÁ™ƿQƛ—ûXS²‰b½KϽĉS›©ŷXĕŸ{ŽĕK·¥Ɨcqq©f¿]‡ßDõU³h—­gËÇïģÉɋw“k¯í}I·šœbmœÉ–ř›īJɥĻˁ×xo›ɹī‡l•c…¤³Xù]‘™DžA¿w͉ì¥wÇN·ÂËnƾƍdǧđ®Ɲv•Um©³G\\“}µĿ‡QyŹl㓛µEw‰LJQ½yƋBe¶ŋÀů‡ož¥A—˜Éw@•{Gpm¿Aij†ŽKLhˆ³`ñcËtW‚±»ÕS‰ëüÿďD‡u\\wwwù³—V›LŕƒOMËGh£õP¡™er™Ïd{“‡ġWÁ…č|yšg^ğyÁzÙs`—s|ÉåªÇ}m¢Ń¨`x¥’ù^•}ƒÌ¥H«‰Yªƅ”Aйn~Ꝛf¤áÀz„gŠÇDIԝ´AňĀ҄¶ûEYospõD[{ù°]u›Jq•U•|Soċxţ[õÔĥkŋÞŭZ˺óYËüċrw €ÞkrťË¿XGÉbřaDü·Ē÷Aê[Ää€I®BÕИÞ_¢āĠpŠÛÄȉĖġDKwbm‡ÄNô‡ŠfœƫVÉvi†dz—H‘‹QµâFšù­Âœ³¦{YGžƒd¢ĚÜO „€{Ö¦ÞÍÀPŒ^b–ƾŠlŽ[„vt×ĈÍE˨¡Đ~´î¸ùÎh€uè`¸ŸHÕŔVºwĠââWò‡@{œÙNÝ´ə²ȕn{¿¥{l—÷eé^e’ďˆXj©î\\ªÑò˜Üìc\\üqˆÕ[Č¡xoÂċªbØ­Œø|€¶ȴZdÆÂšońéŒGš\\”¼C°ÌƁn´nxšÊOĨ’ہƴĸ¢¸òTxÊǪMīИÖŲÃɎOvˆʦƢ~FއRěò—¿ġ~åŊœú‰Nšžš¸qŽ’Ę[Ĕ¶ÂćnÒPĒÜvúĀÊbÖ{Äî¸~Ŕünp¤ÂH¾œĄYÒ©ÊfºmԈĘcDoĬMŬ’˜S¤„s²‚”ʘچžȂVŦ –ŽèW°ªB|IJXŔþÈJĦÆæFĚêŠYĂªĂ]øªŖNÞüA€’fɨJ€˜¯ÎrDDšĤ€`€mz\\„§~D¬{vJÂ˜«lµĂb–¤p€ŌŰNĄ¨ĊXW|ų ¿¾ɄĦƐMT”‡òP˜÷fØĶK¢ȝ˔Sô¹òEð­”`Ɩ½ǒÂň×äı–§ĤƝ§C~¡‚hlå‚ǺŦŞkâ’~}ŽFøàIJaĞ‚fƠ¥Ž„Ŕdž˜®U¸ˆźXœv¢aƆúŪtŠųƠjd•ƺŠƺÅìnrh\\ĺ¯äɝĦ]èpĄ¦´LƞĬŠ´ƤǬ˼Ēɸ¤rºǼ²¨zÌPðŀbþ¹ļD¢¹œ\\ĜÑŚŸ¶ZƄ³àjĨoâŠȴLʉȮŒĐ­ĚăŽÀêZǚŐ¤qȂ\\L¢ŌİfÆs|zºeªÙæ§΢{Ā´ƐÚ¬¨Ĵà²łhʺKÞºÖTŠiƢ¾ªì°`öøu®Ê¾ãØ"], + "encodeOffsets": [[88824, 50096]] + }, "properties": {"cp": [87.617733, 43.792818], "name": "新疆", "childNum": 1} + }, { + "id": "110000", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": ["@@ĽOÁ›ûtŷmiÍt_H»Ĩ±d`й­{bw…Yr“³S]§§o¹€qGtm_Sŧ€“oa›‹FLg‘QN_•dV€@Zom_ć\\ߚc±x¯oœRcfe…£’o§ËgToÛJíĔóu…|wP¤™XnO¢ÉˆŦ¯rNÄā¤zâŖÈRpŢZŠœÚ{GŠrFt¦Òx§ø¹RóäV¤XdˆżâºWbwڍUd®bêņ¾‘jnŎGŃŶŠnzÚSeîĜZczî¾i]͜™QaúÍÔiþĩȨWĢ‹ü|Ėu[qb[swP@ÅğP¿{\\‡¥A¨Ï‘Ѩj¯ŠX\\¯œMK‘pA³[H…īu}}"], + "encodeOffsets": [[120023, 41045]] + }, + "properties": {"cp": [116.405285, 39.904989], "name": "北京", "childNum": 1} + }, { + "id": "120000", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": ["@@ŬgX§Ü«E…¶Ḟ“¬O_™ïlÁg“z±AXe™µÄĵ{¶]gitgšIj·›¥îakS€‰¨ÐƎk}ĕ{gB—qGf{¿a†U^fI“ư‹³õ{YƒıëNĿžk©ïËZŏ‘R§òoY×Ógc…ĥs¡bġ«@dekąI[nlPqCnp{ˆō³°`{PNdƗqSÄĻNNâyj]äžÒD ĬH°Æ]~¡HO¾ŒX}ÐxŒgp“gWˆrDGˆŒpù‚Š^L‚ˆrzWxˆZ^¨´T\\|~@I‰zƒ–bĤ‹œjeĊªz£®Ĕvě€L†mV¾Ô_ȔNW~zbĬvG†²ZmDM~”~"], + "encodeOffsets": [[120237, 41215]] + }, + "properties": {"cp": [117.190182, 39.125596], "name": "天津", "childNum": 1} + }, { + "id": "310000", + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@ɧư¬EpƸÁxc‡"], ["@@©„ªƒ"], ["@@”MA‹‘š"], ["@@Qp݁E§ÉC¾"], ["@@bŝՕÕEȣÚƥêImɇǦèÜĠŒÚžÃƌÃ͎ó"], ["@@ǜûȬɋŠŭ™×^‰sYŒɍDŋ‘ŽąñCG²«ªč@h–_p¯A{‡oloY€¬j@IJ`•gQڛhr|ǀ^MIJvtbe´R¯Ô¬¨YŽô¤r]ì†Ƭį"]], + "encodeOffsets": [[[124702, 32062]], [[124547, 32200]], [[124808, 31991]], [[124726, 32110]], [[124903, 32376]], [[124438, 32149]]] + }, + "properties": {"cp": [121.472644, 31.231706], "name": "上海", "childNum": 6} + }, { + "id": "500000", + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@vjG~nGŘŬĶȂƀƾ¹¸ØÎezĆT¸}êЖqHŸðqĖ䒊¥^CƒIj–²p…\\_ æüY|[YxƊæuž°xb®…Űb@~¢NQt°¶‚S栓Ê~rljĔëĚ¢~šuf`‘‚†fa‚ĔJåĊ„nÖ]„jƎćÊ@Š£¾a®£Ű{ŶĕF‹ègLk{Y|¡ĜWƔtƬJÑxq‹±ĢN´‰òK‰™–LÈüD|s`ŋ’ć]ƒÃ‰`đŒMûƱ½~Y°ħ`ƏíW‰½eI‹½{aŸ‘OIrÏ¡ĕŇa†p†µÜƅġ‘œ^ÖÛbÙŽŏml½S‹êqDu[R‹ãË»†ÿw`»y‘¸_ĺę}÷`M¯ċfCVµqʼn÷Z•gg“Œ`d½pDO‡ÎCnœ^uf²ènh¼WtƏxRGg¦…pV„†FI±ŽG^ŒIc´ec‡’G•ĹÞ½sëĬ„h˜xW‚}Kӈe­Xsbk”F¦›L‘ØgTkïƵNï¶}Gy“w\\oñ¡nmĈzjŸ•@™Óc£»Wă¹Ój“_m»ˆ¹·~MvÛaqœ»­‰êœ’\\ÂoVnŽÓØÍ™²«‹bq¿efE „€‹Ĝ^Qž~ Évý‡ş¤²Į‰pEİ}zcĺƒL‹½‡š¿gņ›¡ýE¡ya£³t\\¨\\vú»¼§·Ñr_oÒý¥u‚•_n»_ƒ•At©Þűā§IVeëƒY}{VPÀFA¨ąB}q@|Ou—\\Fm‰QF݅Mw˜å}]•€|FmϋCaƒwŒu_p—¯sfÙgY…DHl`{QEfNysBЦzG¸rHe‚„N\\CvEsÐùÜ_·ÖĉsaQ¯€}_U‡†xÃđŠq›NH¬•Äd^ÝŰR¬ã°wećJEž·vÝ·Hgƒ‚éFXjÉê`|yŒpxkAwœWĐpb¥eOsmzwqChóUQl¥F^laf‹anòsr›EvfQdÁUVf—ÎvÜ^efˆtET¬ôA\\œ¢sJŽnQTjP؈xøK|nBz‰„œĞ»LY‚…FDxӄvr“[ehľš•vN”¢o¾NiÂxGp⬐z›bfZo~hGi’]öF|‰|Nb‡tOMn eA±ŠtPT‡LjpYQ|†SH††YĀxinzDJ€Ìg¢và¥Pg‰_–ÇzII‹€II•„£®S¬„Øs쐣ŒN"], ["@@ifjN@s"]], + "encodeOffsets": [[[109628, 30765]], [[111725, 31320]]] + }, + "properties": {"cp": [106.504962, 29.533155], "name": "重庆", "childNum": 2} + }, { + "id": "810000", + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [["@@AlBk"], ["@@mŽn"], ["@@EpFo"], ["@@ea¢pl¸Eõ¹‡hj[ƒ]ÔCΖ@lj˜¡uBXŸ…•´‹AI¹…[‹yDUˆ]W`çwZkmc–…M›žp€Åv›}I‹oJlcaƒfёKްä¬XJmРđhI®æÔtSHn€Eˆ„ÒrÈc"], ["@@rMUw‡AS®€e"]], + "encodeOffsets": [[[117111, 23002]], [[117072, 22876]], [[117045, 22887]], [[116975, 23082]], [[116882, 22747]]] + }, + "properties": {"cp": [114.173355, 22.320048], "name": "香港", "childNum": 5} + }, { + "id": "820000", + "type": "Feature", + "geometry": {"type": "Polygon", "coordinates": ["@@kÊd°å§s"], "encodeOffsets": [[116279, 22639]]}, + "properties": {"cp": [113.54909, 22.198951], "name": "澳门", "childNum": 1} + }], + "UTF8Encoding": true + }); +})); \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/echarts.min.js" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/echarts.min.js" index 662a6a5..a760476 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/echarts.min.js" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/static/echarts/echarts.min.js" @@ -1,19474 +1,24 @@ -!function (t, e) { - "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e(t.echarts = {}) -}(this, function (t) { - "use strict"; - - function e(t, e) { - function n() { - this.constructor = t - } - - vv(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n) - } - - function n() { - for (var t = 0, e = 0, n = arguments.length; n > e; e++) t += arguments[e].length; - for (var i = Array(t), r = 0, e = 0; n > e; e++) for (var o = arguments[e], a = 0, s = o.length; s > a; a++, r++) i[r] = o[a]; - return i - } - - function i(t, e) { - var n = e.browser, i = t.match(/Firefox\/([\d.]+)/), - r = t.match(/MSIE\s([\d.]+)/) || t.match(/Trident\/.+?rv:(([\d.]+))/), o = t.match(/Edge\/([\d.]+)/), - a = /micromessenger/i.test(t); - i && (n.firefox = !0, n.version = i[1]), r && (n.ie = !0, n.version = r[1]), o && (n.edge = !0, n.version = o[1]), a && (n.weChat = !0), e.canvasSupported = !!document.createElement("canvas").getContext, e.svgSupported = "undefined" != typeof SVGRect, e.touchEventsSupported = "ontouchstart" in window && !n.ie && !n.edge, e.pointerEventsSupported = "onpointerdown" in window && (n.edge || n.ie && +n.version >= 11), e.domSupported = "undefined" != typeof document - } - - function r(t, e) { - Pv[t] = e - } - - function o() { - return Ov++ - } - - function a() { - for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; - "undefined" != typeof console && console.error.apply(console, t) - } - - function s(t) { - if (null == t || "object" != typeof t) return t; - var e = t, n = Tv.call(t); - if ("[object Array]" === n) { - if (!Y(t)) { - e = []; - for (var i = 0, r = t.length; r > i; i++) e[i] = s(t[i]) - } - } else if (Sv[n]) { - if (!Y(t)) { - var o = t.constructor; - if (o.from) e = o.from(t); else { - e = new o(t.length); - for (var i = 0, r = t.length; r > i; i++) e[i] = s(t[i]) - } - } - } else if (!bv[n] && !Y(t) && !P(t)) { - e = {}; - for (var a in t) t.hasOwnProperty(a) && (e[a] = s(t[a])) - } - return e - } - - function l(t, e, n) { - if (!D(e) || !D(t)) return n ? s(e) : t; - for (var i in e) if (e.hasOwnProperty(i)) { - var r = t[i], o = e[i]; - !D(o) || !D(r) || T(o) || T(r) || P(o) || P(r) || k(o) || k(r) || Y(o) || Y(r) ? !n && i in t || (t[i] = s(e[i])) : l(r, o, n) - } - return t - } - - function u(t, e) { - for (var n = t[0], i = 1, r = t.length; r > i; i++) n = l(n, t[i], e); - return n - } - - function h(t, e) { - if (Object.assign) Object.assign(t, e); else for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]); - return t - } - - function c(t, e, n) { - for (var i = w(e), r = 0; r < i.length; r++) { - var o = i[r]; - (n ? null != e[o] : null == t[o]) && (t[o] = e[o]) - } - return t - } - - function p(t, e) { - if (t) { - if (t.indexOf) return t.indexOf(e); - for (var n = 0, i = t.length; i > n; n++) if (t[n] === e) return n - } - return -1 - } - - function f(t, e) { - function n() { - } - - var i = t.prototype; - n.prototype = e.prototype, t.prototype = new n; - for (var r in i) i.hasOwnProperty(r) && (t.prototype[r] = i[r]); - t.prototype.constructor = t, t.superClass = e - } - - function d(t, e, n) { - if (t = "prototype" in t ? t.prototype : t, e = "prototype" in e ? e.prototype : e, Object.getOwnPropertyNames) for (var i = Object.getOwnPropertyNames(e), r = 0; r < i.length; r++) { - var o = i[r]; - "constructor" !== o && (n ? null != e[o] : null == t[o]) && (t[o] = e[o]) - } else c(t, e, n) - } - - function g(t) { - return t ? "string" == typeof t ? !1 : "number" == typeof t.length : !1 - } - - function y(t, e, n) { - if (t && e) if (t.forEach && t.forEach === Cv) t.forEach(e, n); else if (t.length === +t.length) for (var i = 0, r = t.length; r > i; i++) e.call(n, t[i], i, t); else for (var o in t) t.hasOwnProperty(o) && e.call(n, t[o], o, t) - } - - function v(t, e, n) { - if (!t) return []; - if (!e) return H(t); - if (t.map && t.map === Dv) return t.map(e, n); - for (var i = [], r = 0, o = t.length; o > r; r++) i.push(e.call(n, t[r], r, t)); - return i - } - - function m(t, e, n, i) { - if (t && e) { - for (var r = 0, o = t.length; o > r; r++) n = e.call(i, n, t[r], r, t); - return n - } - } - - function _(t, e, n) { - if (!t) return []; - if (!e) return H(t); - if (t.filter && t.filter === Iv) return t.filter(e, n); - for (var i = [], r = 0, o = t.length; o > r; r++) e.call(n, t[r], r, t) && i.push(t[r]); - return i - } - - function x(t, e, n) { - if (t && e) for (var i = 0, r = t.length; r > i; i++) if (e.call(n, t[i], i, t)) return t[i] - } - - function w(t) { - if (!t) return []; - if (Object.keys) return Object.keys(t); - var e = []; - for (var n in t) t.hasOwnProperty(n) && e.push(n); - return e - } - - function b(t, e) { - for (var n = [], i = 2; i < arguments.length; i++) n[i - 2] = arguments[i]; - return function () { - return t.apply(e, n.concat(Av.call(arguments))) - } - } - - function S(t) { - for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; - return function () { - return t.apply(this, e.concat(Av.call(arguments))) - } - } - - function T(t) { - return Array.isArray ? Array.isArray(t) : "[object Array]" === Tv.call(t) - } - - function M(t) { - return "function" == typeof t - } - - function C(t) { - return "string" == typeof t - } - - function I(t) { - return "[object String]" === Tv.call(t) - } - - function A(t) { - return "number" == typeof t - } - - function D(t) { - var e = typeof t; - return "function" === e || !!t && "object" === e - } - - function k(t) { - return !!bv[Tv.call(t)] - } - - function L(t) { - return !!Sv[Tv.call(t)] - } - - function P(t) { - return "object" == typeof t && "number" == typeof t.nodeType && "object" == typeof t.ownerDocument - } - - function O(t) { - return null != t.colorStops - } - - function R(t) { - return null != t.image - } - - function E(t) { - return "[object RegExp]" === Tv.call(t) - } - - function z(t) { - return t !== t - } - - function B() { - for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; - for (var n = 0, i = t.length; i > n; n++) if (null != t[n]) return t[n] - } - - function N(t, e) { - return null != t ? t : e - } - - function F(t, e, n) { - return null != t ? t : null != e ? e : n - } - - function H(t) { - for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; - return Av.apply(t, e) - } - - function V(t) { - if ("number" == typeof t) return [t, t, t, t]; - var e = t.length; - return 2 === e ? [t[0], t[1], t[0], t[1]] : 3 === e ? [t[0], t[1], t[2], t[1]] : t - } - - function G(t, e) { - if (!t) throw new Error(e) - } - - function W(t) { - return null == t ? null : "function" == typeof t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") - } - - function X(t) { - t[zv] = !0 - } - - function Y(t) { - return t[zv] - } - - function U(t) { - return new Bv(t) - } - - function q(t, e) { - for (var n = new t.constructor(t.length + e.length), i = 0; i < t.length; i++) n[i] = t[i]; - for (var r = t.length, i = 0; i < e.length; i++) n[i + r] = e[i]; - return n - } - - function j(t, e) { - var n; - if (Object.create) n = Object.create(t); else { - var i = function () { - }; - i.prototype = t, n = new i - } - return e && h(n, e), n - } - - function Z(t, e) { - return t.hasOwnProperty(e) - } - - function K() { - } - - function $(t, e) { - return null == t && (t = 0), null == e && (e = 0), [t, e] - } - - function J(t, e) { - return t[0] = e[0], t[1] = e[1], t - } - - function Q(t) { - return [t[0], t[1]] - } - - function te(t, e, n) { - return t[0] = e, t[1] = n, t - } - - function ee(t, e, n) { - return t[0] = e[0] + n[0], t[1] = e[1] + n[1], t - } - - function ne(t, e, n, i) { - return t[0] = e[0] + n[0] * i, t[1] = e[1] + n[1] * i, t - } - - function ie(t, e, n) { - return t[0] = e[0] - n[0], t[1] = e[1] - n[1], t - } - - function re(t) { - return Math.sqrt(oe(t)) - } - - function oe(t) { - return t[0] * t[0] + t[1] * t[1] - } - - function ae(t, e, n) { - return t[0] = e[0] * n[0], t[1] = e[1] * n[1], t - } - - function se(t, e, n) { - return t[0] = e[0] / n[0], t[1] = e[1] / n[1], t - } - - function le(t, e) { - return t[0] * e[0] + t[1] * e[1] - } - - function ue(t, e, n) { - return t[0] = e[0] * n, t[1] = e[1] * n, t - } - - function he(t, e) { - var n = re(e); - return 0 === n ? (t[0] = 0, t[1] = 0) : (t[0] = e[0] / n, t[1] = e[1] / n), t - } - - function ce(t, e) { - return Math.sqrt((t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1])) - } - - function pe(t, e) { - return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]) - } - - function fe(t, e) { - return t[0] = -e[0], t[1] = -e[1], t - } - - function de(t, e, n, i) { - return t[0] = e[0] + i * (n[0] - e[0]), t[1] = e[1] + i * (n[1] - e[1]), t - } - - function ge(t, e, n) { - var i = e[0], r = e[1]; - return t[0] = n[0] * i + n[2] * r + n[4], t[1] = n[1] * i + n[3] * r + n[5], t - } - - function ye(t, e, n) { - return t[0] = Math.min(e[0], n[0]), t[1] = Math.min(e[1], n[1]), t - } - - function ve(t, e, n) { - return t[0] = Math.max(e[0], n[0]), t[1] = Math.max(e[1], n[1]), t - } - - function me(t, e, n, i, r, o) { - var a = i + "-" + r, s = t.length; - if (o.hasOwnProperty(a)) return o[a]; - if (1 === e) { - var l = Math.round(Math.log((1 << s) - 1 & ~r) / qv); - return t[n][l] - } - for (var u = i | 1 << n, h = n + 1; i & 1 << h;) h++; - for (var c = 0, p = 0, f = 0; s > p; p++) { - var d = 1 << p; - d & r || (c += (f % 2 ? -1 : 1) * t[n][p] * me(t, e - 1, h, u, r | d, o), f++) - } - return o[a] = c, c - } - - function _e(t, e) { - var n = [[t[0], t[1], 1, 0, 0, 0, -e[0] * t[0], -e[0] * t[1]], [0, 0, 0, t[0], t[1], 1, -e[1] * t[0], -e[1] * t[1]], [t[2], t[3], 1, 0, 0, 0, -e[2] * t[2], -e[2] * t[3]], [0, 0, 0, t[2], t[3], 1, -e[3] * t[2], -e[3] * t[3]], [t[4], t[5], 1, 0, 0, 0, -e[4] * t[4], -e[4] * t[5]], [0, 0, 0, t[4], t[5], 1, -e[5] * t[4], -e[5] * t[5]], [t[6], t[7], 1, 0, 0, 0, -e[6] * t[6], -e[6] * t[7]], [0, 0, 0, t[6], t[7], 1, -e[7] * t[6], -e[7] * t[7]]], - i = {}, r = me(n, 8, 0, 0, 0, i); - if (0 !== r) { - for (var o = [], a = 0; 8 > a; a++) for (var s = 0; 8 > s; s++) null == o[s] && (o[s] = 0), o[s] += ((a + s) % 2 ? -1 : 1) * me(n, 7, 0 === a ? 1 : 0, 1 << a, 1 << s, i) / r * e[a]; - return function (t, e, n) { - var i = e * o[6] + n * o[7] + 1; - t[0] = (e * o[0] + n * o[1] + o[2]) / i, t[1] = (e * o[3] + n * o[4] + o[5]) / i - } - } - } - - function xe(t, e, n, i, r) { - return we(Zv, e, i, r, !0) && we(t, n, Zv[0], Zv[1]) - } - - function we(t, e, n, i, r) { - if (e.getBoundingClientRect && wv.domSupported && !Te(e)) { - var o = e[jv] || (e[jv] = {}), a = be(e, o), s = Se(a, o, r); - if (s) return s(t, n, i), !0 - } - return !1 - } - - function be(t, e) { - var n = e.markers; - if (n) return n; - n = e.markers = []; - for (var i = ["left", "right"], r = ["top", "bottom"], o = 0; 4 > o; o++) { - var a = document.createElement("div"), s = a.style, l = o % 2, u = (o >> 1) % 2; - s.cssText = ["position: absolute", "visibility: hidden", "padding: 0", "margin: 0", "border-width: 0", "user-select: none", "width:0", "height:0", i[l] + ":0", r[u] + ":0", i[1 - l] + ":auto", r[1 - u] + ":auto", ""].join("!important;"), t.appendChild(a), n.push(a) - } - return n - } - - function Se(t, e, n) { - for (var i = n ? "invTrans" : "trans", r = e[i], o = e.srcCoords, a = [], s = [], l = !0, u = 0; 4 > u; u++) { - var h = t[u].getBoundingClientRect(), c = 2 * u, p = h.left, f = h.top; - a.push(p, f), l = l && o && p === o[c] && f === o[c + 1], s.push(t[u].offsetLeft, t[u].offsetTop) - } - return l && r ? r : (e.srcCoords = a, e[i] = n ? _e(s, a) : _e(a, s)) - } - - function Te(t) { - return "CANVAS" === t.nodeName.toUpperCase() - } - - function Me(t, e, n, i) { - return n = n || {}, i || !wv.canvasSupported ? Ce(t, e, n) : wv.browser.firefox && null != e.layerX && e.layerX !== e.offsetX ? (n.zrX = e.layerX, n.zrY = e.layerY) : null != e.offsetX ? (n.zrX = e.offsetX, n.zrY = e.offsetY) : Ce(t, e, n), n - } - - function Ce(t, e, n) { - if (wv.domSupported && t.getBoundingClientRect) { - var i = e.clientX, r = e.clientY; - if (Te(t)) { - var o = t.getBoundingClientRect(); - return n.zrX = i - o.left, void (n.zrY = r - o.top) - } - if (we(Jv, t, i, r)) return n.zrX = Jv[0], void (n.zrY = Jv[1]) - } - n.zrX = n.zrY = 0 - } - - function Ie(t) { - return t || window.event - } - - function Ae(t, e, n) { - if (e = Ie(e), null != e.zrX) return e; - var i = e.type, r = i && i.indexOf("touch") >= 0; - if (r) { - var o = "touchend" !== i ? e.targetTouches[0] : e.changedTouches[0]; - o && Me(t, o, e, n) - } else { - Me(t, e, e, n); - var a = De(e); - e.zrDelta = a ? a / 120 : -(e.detail || 0) / 3 - } - var s = e.button; - return null == e.which && void 0 !== s && $v.test(e.type) && (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0), e - } - - function De(t) { - var e = t.wheelDelta; - if (e) return e; - var n = t.deltaX, i = t.deltaY; - if (null == n || null == i) return e; - var r = Math.abs(0 !== i ? i : n), o = i > 0 ? -1 : 0 > i ? 1 : n > 0 ? -1 : 1; - return 3 * r * o - } - - function ke(t, e, n, i) { - Kv ? t.addEventListener(e, n, i) : t.attachEvent("on" + e, n) - } - - function Le(t, e, n, i) { - Kv ? t.removeEventListener(e, n, i) : t.detachEvent("on" + e, n) - } - - function Pe(t) { - return 2 === t.which || 3 === t.which - } - - function Oe(t) { - var e = t[1][0] - t[0][0], n = t[1][1] - t[0][1]; - return Math.sqrt(e * e + n * n) - } - - function Re(t) { - return [(t[0][0] + t[1][0]) / 2, (t[0][1] + t[1][1]) / 2] - } - - function Ee(t, e, n) { - return { - type: t, - event: n, - target: e.target, - topTarget: e.topTarget, - cancelBubble: !1, - offsetX: n.zrX, - offsetY: n.zrY, - gestureEvent: n.gestureEvent, - pinchX: n.pinchX, - pinchY: n.pinchY, - pinchScale: n.pinchScale, - wheelDelta: n.zrDelta, - zrByTouch: n.zrByTouch, - which: n.which, - stop: ze - } - } - - function ze() { - Qv(this.event) - } - - function Be(t, e, n) { - if (t[t.rectHover ? "rectContain" : "contain"](e, n)) { - for (var i = t, r = void 0, o = !1; i;) { - if (i.ignoreClip && (o = !0), !o) { - var a = i.getClipPath(); - if (a && !a.contain(e, n)) return !1; - i.silent && (r = !0) - } - var s = i.__hostTarget; - i = s ? s : i.parent - } - return r ? nm : !0 - } - return !1 - } - - function Ne(t, e, n) { - var i = t.painter; - return 0 > e || e > i.getWidth() || 0 > n || n > i.getHeight() - } - - function Fe() { - return [1, 0, 0, 1, 0, 0] - } - - function He(t) { - return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t - } - - function Ve(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 Ge(t, e, n) { - var i = e[0] * n[0] + e[2] * n[1], r = e[1] * n[0] + e[3] * n[1], o = e[0] * n[2] + e[2] * n[3], - a = e[1] * n[2] + e[3] * n[3], s = e[0] * n[4] + e[2] * n[5] + e[4], l = e[1] * n[4] + e[3] * n[5] + e[5]; - return t[0] = i, t[1] = r, t[2] = o, t[3] = a, t[4] = s, t[5] = l, t - } - - function We(t, e, n) { - return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4] + n[0], t[5] = e[5] + n[1], t - } - - function Xe(t, e, n) { - var i = e[0], r = e[2], o = e[4], a = e[1], s = e[3], l = e[5], u = Math.sin(n), h = Math.cos(n); - return t[0] = i * h + a * u, t[1] = -i * u + a * h, t[2] = r * h + s * u, t[3] = -r * u + h * s, t[4] = h * o + u * l, t[5] = h * l - u * o, t - } - - function Ye(t, e, n) { - var i = n[0], r = n[1]; - return t[0] = e[0] * i, t[1] = e[1] * r, t[2] = e[2] * i, t[3] = e[3] * r, t[4] = e[4] * i, t[5] = e[5] * r, t - } - - function Ue(t, e) { - var n = e[0], i = e[2], r = e[4], o = e[1], a = e[3], s = e[5], l = n * a - o * i; - return l ? (l = 1 / l, t[0] = a * l, t[1] = -o * l, t[2] = -i * l, t[3] = n * l, t[4] = (i * s - a * r) * l, t[5] = (o * r - n * s) * l, t) : null - } - - function qe(t) { - var e = Fe(); - return Ve(e, t), e - } - - function je(t) { - return t > cm || -cm > t - } - - function Ze(t) { - return t = Math.round(t), 0 > t ? 0 : t > 255 ? 255 : t - } - - function Ke(t) { - return t = Math.round(t), 0 > t ? 0 : t > 360 ? 360 : t - } - - function $e(t) { - return 0 > t ? 0 : t > 1 ? 1 : t - } - - function Je(t) { - var e = t; - return Ze(e.length && "%" === e.charAt(e.length - 1) ? parseFloat(e) / 100 * 255 : parseInt(e, 10)) - } - - function Qe(t) { - var e = t; - return $e(e.length && "%" === e.charAt(e.length - 1) ? parseFloat(e) / 100 : parseFloat(e)) - } - - function tn(t, e, n) { - return 0 > n ? n += 1 : n > 1 && (n -= 1), 1 > 6 * n ? t + (e - t) * n * 6 : 1 > 2 * n ? e : 2 > 3 * n ? t + (e - t) * (2 / 3 - n) * 6 : t - } - - function en(t, e, n) { - return t + (e - t) * n - } - - function nn(t, e, n, i, r) { - return t[0] = e, t[1] = n, t[2] = i, t[3] = r, t - } - - function rn(t, e) { - return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t - } - - function on(t, e) { - Tm && rn(Tm, e), Tm = Sm.put(t, Tm || e.slice()) - } - - function an(t, e) { - if (t) { - e = e || []; - var n = Sm.get(t); - if (n) return rn(e, n); - t += ""; - var i = t.replace(/ /g, "").toLowerCase(); - if (i in bm) return rn(e, bm[i]), on(t, e), e; - var r = i.length; - if ("#" !== i.charAt(0)) { - var o = i.indexOf("("), a = i.indexOf(")"); - if (-1 !== o && a + 1 === r) { - var s = i.substr(0, o), l = i.substr(o + 1, a - (o + 1)).split(","), u = 1; - switch (s) { - case"rgba": - if (4 !== l.length) return 3 === l.length ? nn(e, +l[0], +l[1], +l[2], 1) : nn(e, 0, 0, 0, 1); - u = Qe(l.pop()); - case"rgb": - return 3 !== l.length ? void nn(e, 0, 0, 0, 1) : (nn(e, Je(l[0]), Je(l[1]), Je(l[2]), u), on(t, e), e); - case"hsla": - return 4 !== l.length ? void nn(e, 0, 0, 0, 1) : (l[3] = Qe(l[3]), sn(l, e), on(t, e), e); - case"hsl": - return 3 !== l.length ? void nn(e, 0, 0, 0, 1) : (sn(l, e), on(t, e), e); - default: - return - } - } - nn(e, 0, 0, 0, 1) - } else { - if (4 === r || 5 === r) { - var h = parseInt(i.slice(1, 4), 16); - return h >= 0 && 4095 >= h ? (nn(e, (3840 & h) >> 4 | (3840 & h) >> 8, 240 & h | (240 & h) >> 4, 15 & h | (15 & h) << 4, 5 === r ? parseInt(i.slice(4), 16) / 15 : 1), on(t, e), e) : void nn(e, 0, 0, 0, 1) - } - if (7 === r || 9 === r) { - var h = parseInt(i.slice(1, 7), 16); - return h >= 0 && 16777215 >= h ? (nn(e, (16711680 & h) >> 16, (65280 & h) >> 8, 255 & h, 9 === r ? parseInt(i.slice(7), 16) / 255 : 1), on(t, e), e) : void nn(e, 0, 0, 0, 1) - } - } - } - } - - function sn(t, e) { - var n = (parseFloat(t[0]) % 360 + 360) % 360 / 360, i = Qe(t[1]), r = Qe(t[2]), - o = .5 >= r ? r * (i + 1) : r + i - r * i, a = 2 * r - o; - return e = e || [], nn(e, Ze(255 * tn(a, o, n + 1 / 3)), Ze(255 * tn(a, o, n)), Ze(255 * tn(a, o, n - 1 / 3)), 1), 4 === t.length && (e[3] = t[3]), e - } - - function ln(t) { - if (t) { - var e, n, i = t[0] / 255, r = t[1] / 255, o = t[2] / 255, a = Math.min(i, r, o), s = Math.max(i, r, o), - l = s - a, u = (s + a) / 2; - if (0 === l) e = 0, n = 0; else { - n = .5 > u ? l / (s + a) : l / (2 - s - a); - var h = ((s - i) / 6 + l / 2) / l, c = ((s - r) / 6 + l / 2) / l, p = ((s - o) / 6 + l / 2) / l; - i === s ? e = p - c : r === s ? e = 1 / 3 + h - p : o === s && (e = 2 / 3 + c - h), 0 > e && (e += 1), e > 1 && (e -= 1) - } - var f = [360 * e, n, u]; - return null != t[3] && f.push(t[3]), f - } - } - - function un(t, e) { - var n = an(t); - if (n) { - for (var i = 0; 3 > i; i++) n[i] = 0 > e ? n[i] * (1 - e) | 0 : (255 - n[i]) * e + n[i] | 0, n[i] > 255 ? n[i] = 255 : n[i] < 0 && (n[i] = 0); - return gn(n, 4 === n.length ? "rgba" : "rgb") - } - } - - function hn(t) { - var e = an(t); - return e ? ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2]).toString(16).slice(1) : void 0 - } - - function cn(t, e, n) { - if (e && e.length && t >= 0 && 1 >= t) { - n = n || []; - var i = t * (e.length - 1), r = Math.floor(i), o = Math.ceil(i), a = e[r], s = e[o], l = i - r; - return n[0] = Ze(en(a[0], s[0], l)), n[1] = Ze(en(a[1], s[1], l)), n[2] = Ze(en(a[2], s[2], l)), n[3] = $e(en(a[3], s[3], l)), n - } - } - - function pn(t, e, n) { - if (e && e.length && t >= 0 && 1 >= t) { - var i = t * (e.length - 1), r = Math.floor(i), o = Math.ceil(i), a = an(e[r]), s = an(e[o]), l = i - r, - u = gn([Ze(en(a[0], s[0], l)), Ze(en(a[1], s[1], l)), Ze(en(a[2], s[2], l)), $e(en(a[3], s[3], l))], "rgba"); - return n ? {color: u, leftIndex: r, rightIndex: o, value: i} : u - } - } - - function fn(t, e, n, i) { - var r = an(t); - return t ? (r = ln(r), null != e && (r[0] = Ke(e)), null != n && (r[1] = Qe(n)), null != i && (r[2] = Qe(i)), gn(sn(r), "rgba")) : void 0 - } - - function dn(t, e) { - var n = an(t); - return n && null != e ? (n[3] = $e(e), gn(n, "rgba")) : void 0 - } - - function gn(t, e) { - if (t && t.length) { - var n = t[0] + "," + t[1] + "," + t[2]; - return ("rgba" === e || "hsva" === e || "hsla" === e) && (n += "," + t[3]), e + "(" + n + ")" - } - } - - function yn(t, e) { - var n = an(t); - return n ? (.299 * n[0] + .587 * n[1] + .114 * n[2]) * n[3] / 255 + (1 - n[3]) * e : 0 - } - - function vn() { - var t = Math.round(255 * Math.random()), e = Math.round(255 * Math.random()), - n = Math.round(255 * Math.random()); - return "rgb(" + t + "," + e + "," + n + ")" - } - - function mn(t, e, n) { - return (e - t) * n + t - } - - function _n(t, e, n) { - return n > .5 ? e : t - } - - function xn(t, e, n, i) { - for (var r = e.length, o = 0; r > o; o++) t[o] = mn(e[o], n[o], i) - } - - function wn(t, e, n, i) { - for (var r = e.length, o = r && e[0].length, a = 0; r > a; a++) { - t[a] || (t[a] = []); - for (var s = 0; o > s; s++) t[a][s] = mn(e[a][s], n[a][s], i) - } - } - - function bn(t, e, n, i) { - for (var r = e.length, o = 0; r > o; o++) t[o] = e[o] + n[o] * i; - return t - } - - function Sn(t, e, n, i) { - for (var r = e.length, o = r && e[0].length, a = 0; r > a; a++) { - t[a] || (t[a] = []); - for (var s = 0; o > s; s++) t[a][s] = e[a][s] + n[a][s] * i - } - return t - } - - function Tn(t, e, n) { - var i = t, r = e; - if (i.push && r.push) { - var o = i.length, a = r.length; - if (o !== a) { - var s = o > a; - if (s) i.length = a; else for (var l = o; a > l; l++) i.push(1 === n ? r[l] : Am.call(r[l])) - } - for (var u = i[0] && i[0].length, l = 0; l < i.length; l++) if (1 === n) isNaN(i[l]) && (i[l] = r[l]); else for (var h = 0; u > h; h++) isNaN(i[l][h]) && (i[l][h] = r[l][h]) - } - } - - function Mn(t, e) { - var n = t.length; - if (n !== e.length) return !1; - for (var i = 0; n > i; i++) if (t[i] !== e[i]) return !1; - return !0 - } - - function Cn(t, e, n, i, r, o, a) { - var s = .5 * (n - t), l = .5 * (i - e); - return (2 * (e - n) + s + l) * a + (-3 * (e - n) - 2 * s - l) * o + s * r + e - } - - function In(t, e, n, i, r, o, a, s) { - for (var l = e.length, u = 0; l > u; u++) t[u] = Cn(e[u], n[u], i[u], r[u], o, a, s) - } - - function An(t, e, n, i, r, o, a, s) { - for (var l = e.length, u = e[0].length, h = 0; l > h; h++) { - t[h] || (t[1] = []); - for (var c = 0; u > c; c++) t[h][c] = Cn(e[h][c], n[h][c], i[h][c], r[h][c], o, a, s) - } - } - - function Dn(t) { - if (g(t)) { - var e = t.length; - if (g(t[0])) { - for (var n = [], i = 0; e > i; i++) n.push(Am.call(t[i])); - return n - } - return Am.call(t) - } - return t - } - - function kn(t) { - return t[0] = Math.floor(t[0]), t[1] = Math.floor(t[1]), t[2] = Math.floor(t[2]), "rgba(" + t.join(",") + ")" - } - - function Ln(t) { - return g(t && t[0]) ? 2 : 1 - } - - function Pn(t, e) { - return sm || (sm = Rv().getContext("2d")), lm !== e && (lm = sm.font = e || Wm), sm.measureText(t) - } - - function On(t, e) { - e = e || Wm; - var n = Gm[e]; - n || (n = Gm[e] = new wm(500)); - var i = n.get(t); - return null == i && (i = Xm.measureText(t, e).width, n.put(t, i)), i - } - - function Rn(t, e, n, i) { - var r = On(t, e), o = Nn(e), a = zn(0, r, n), s = Bn(0, o, i), l = new Vm(a, s, r, o); - return l - } - - function En(t, e, n, i) { - var r = ((t || "") + "").split("\n"), o = r.length; - if (1 === o) return Rn(r[0], e, n, i); - for (var a = new Vm(0, 0, 0, 0), s = 0; s < r.length; s++) { - var l = Rn(r[s], e, n, i); - 0 === s ? a.copy(l) : a.union(l) - } - return a - } - - function zn(t, e, n) { - return "right" === n ? t -= e : "center" === n && (t -= e / 2), t - } - - function Bn(t, e, n) { - return "middle" === n ? t -= e / 2 : "bottom" === n && (t -= e), t - } - - function Nn(t) { - return On("国", t) - } - - function Fn(t, e) { - return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t - } - - function Hn(t, e, n) { - var i = e.position || "inside", r = null != e.distance ? e.distance : 5, o = n.height, a = n.width, s = o / 2, - l = n.x, u = n.y, h = "left", c = "top"; - if (i instanceof Array) l += Fn(i[0], n.width), u += Fn(i[1], n.height), h = null, c = null; else switch (i) { - case"left": - l -= r, u += s, h = "right", c = "middle"; - break; - case"right": - l += r + a, u += s, c = "middle"; - break; - case"top": - l += a / 2, u -= r, h = "center", c = "bottom"; - break; - case"bottom": - l += a / 2, u += o + r, h = "center"; - break; - case"inside": - l += a / 2, u += s, h = "center", c = "middle"; - break; - case"insideLeft": - l += r, u += s, c = "middle"; - break; - case"insideRight": - l += a - r, u += s, h = "right", c = "middle"; - break; - case"insideTop": - l += a / 2, u += r, h = "center"; - break; - case"insideBottom": - l += a / 2, u += o - r, h = "center", c = "bottom"; - break; - case"insideTopLeft": - l += r, u += r; - break; - case"insideTopRight": - l += a - r, u += r, h = "right"; - break; - case"insideBottomLeft": - l += r, u += o - r, c = "bottom"; - break; - case"insideBottomRight": - l += a - r, u += o - r, h = "right", c = "bottom" - } - return t = t || {}, t.x = l, t.y = u, t.align = h, t.verticalAlign = c, t - } - - function Vn(t, e, n, i, r) { - n = n || {}; - var o = []; - Yn(t, "", t, e, n, i, o, r); - var a = o.length, s = !1, l = n.done, u = n.aborted, h = function () { - s = !0, a--, 0 >= a && (s ? l && l() : u && u()) - }, c = function () { - a--, 0 >= a && (s ? l && l() : u && u()) - }; - a || l && l(), o.length > 0 && n.during && o[0].during(function (t, e) { - n.during(e) - }); - for (var p = 0; p < o.length; p++) { - var f = o[p]; - h && f.done(h), c && f.aborted(c), f.start(n.easing, n.force) - } - return o - } - - function Gn(t, e, n) { - for (var i = 0; n > i; i++) t[i] = e[i] - } - - function Wn(t) { - return g(t[0]) - } - - function Xn(t, e, n) { - if (g(e[n])) if (g(t[n]) || (t[n] = []), L(e[n])) { - var i = e[n].length; - t[n].length !== i && (t[n] = new e[n].constructor(i), Gn(t[n], e[n], i)) - } else { - var r = e[n], o = t[n], a = r.length; - if (Wn(r)) for (var s = r[0].length, l = 0; a > l; l++) o[l] ? Gn(o[l], r[l], s) : o[l] = Array.prototype.slice.call(r[l]); else Gn(o, r, a); - o.length = r.length - } else t[n] = e[n] - } - - function Yn(t, e, n, i, r, o, a, s) { - for (var l = [], u = [], h = w(i), c = r.duration, f = r.delay, d = r.additive, y = r.setToFinal, v = !D(o), m = 0; m < h.length; m++) { - var _ = h[m]; - if (null != n[_] && null != i[_] && (v || o[_])) if (D(i[_]) && !g(i[_])) { - if (e) { - s || (n[_] = i[_], t.updateDuringAnimation(e)); - continue - } - Yn(t, _, n[_], i[_], r, o && o[_], a, s) - } else l.push(_), u.push(_); else s || (n[_] = i[_], t.updateDuringAnimation(e), u.push(_)) - } - var x = l.length; - if (x > 0 || r.force && !a.length) { - for (var b = t.animators, S = [], T = 0; T < b.length; T++) b[T].targetName === e && S.push(b[T]); - if (!d && S.length) for (var T = 0; T < S.length; T++) { - var M = S[T].stopTracks(u); - if (M) { - var C = p(b, S[T]); - b.splice(C, 1) - } - } - var I = void 0, A = void 0, k = void 0; - if (s) { - A = {}, y && (I = {}); - for (var T = 0; x > T; T++) { - var _ = l[T]; - A[_] = n[_], y ? I[_] = i[_] : n[_] = i[_] - } - } else if (y) { - k = {}; - for (var T = 0; x > T; T++) { - var _ = l[T]; - k[_] = Dn(n[_]), Xn(n, i, _) - } - } - var L = new Lm(n, !1, d ? S : null); - L.targetName = e, r.scope && (L.scope = r.scope), y && I && L.whenWithKeys(0, I, l), k && L.whenWithKeys(0, k, l), L.whenWithKeys(null == c ? 500 : c, s ? A : i, l).delay(f || 0), t.addAnimator(L, e), a.push(L) - } - } - - function Un(t) { - for (var e = 0; t >= r_;) e |= 1 & t, t >>= 1; - return t + e - } - - function qn(t, e, n, i) { - var r = e + 1; - if (r === n) return 1; - if (i(t[r++], t[e]) < 0) { - for (; n > r && i(t[r], t[r - 1]) < 0;) r++; - jn(t, e, r) - } else for (; n > r && i(t[r], t[r - 1]) >= 0;) r++; - return r - e - } - - function jn(t, e, n) { - for (n--; n > e;) { - var i = t[e]; - t[e++] = t[n], t[n--] = i - } - } - - function Zn(t, e, n, i, r) { - for (i === e && i++; n > i; i++) { - for (var o, a = t[i], s = e, l = i; l > s;) o = s + l >>> 1, r(a, t[o]) < 0 ? l = o : s = o + 1; - var u = i - 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] = a - } - } - - function Kn(t, e, n, i, r, o) { - var a = 0, s = 0, l = 1; - if (o(t, e[n + r]) > 0) { - for (s = i - r; s > l && o(t, e[n + r + l]) > 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); - l > s && (l = s), a += r, l += r - } else { - for (s = r + 1; s > l && o(t, e[n + r - l]) <= 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); - l > s && (l = s); - var u = a; - a = r - l, l = r - u - } - for (a++; l > a;) { - var h = a + (l - a >>> 1); - o(t, e[n + h]) > 0 ? a = h + 1 : l = h - } - return l - } - - function $n(t, e, n, i, r, o) { - var a = 0, s = 0, l = 1; - if (o(t, e[n + r]) < 0) { - for (s = r + 1; s > l && o(t, e[n + r - l]) < 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); - l > s && (l = s); - var u = a; - a = r - l, l = r - u - } else { - for (s = i - r; s > l && o(t, e[n + r + l]) >= 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); - l > s && (l = s), a += r, l += r - } - for (a++; l > a;) { - var h = a + (l - a >>> 1); - o(t, e[n + h]) < 0 ? l = h : a = h + 1 - } - return l - } - - function Jn(t, e) { - function n(t, e) { - l[c] = t, u[c] = e, c += 1 - } - - function i() { - for (; c > 1;) { - var t = c - 2; - if (t >= 1 && u[t - 1] <= u[t] + u[t + 1] || t >= 2 && u[t - 2] <= u[t] + u[t - 1]) u[t - 1] < u[t + 1] && t--; else if (u[t] > u[t + 1]) break; - o(t) - } - } - - function r() { - for (; c > 1;) { - var t = c - 2; - t > 0 && u[t - 1] < u[t + 1] && t--, o(t) - } - } - - function o(n) { - var i = l[n], r = u[n], o = l[n + 1], h = u[n + 1]; - u[n] = r + h, n === c - 3 && (l[n + 1] = l[n + 2], u[n + 1] = u[n + 2]), c--; - var p = $n(t[o], t, i, r, 0, e); - i += p, r -= p, 0 !== r && (h = Kn(t[i + r - 1], t, o, h, h - 1, e), 0 !== h && (h >= r ? a(i, r, o, h) : s(i, r, o, h))) - } - - function a(n, i, r, o) { - var a = 0; - for (a = 0; i > a; a++) p[a] = t[n + a]; - var s = 0, l = r, u = n; - if (t[u++] = t[l++], 0 !== --o) { - if (1 === i) { - for (a = 0; o > a; a++) t[u + a] = t[l + a]; - return void (t[u + o] = p[s]) - } - for (var c, f, d, g = h; ;) { - c = 0, f = 0, d = !1; - do if (e(t[l], p[s]) < 0) { - if (t[u++] = t[l++], f++, c = 0, 0 === --o) { - d = !0; - break - } - } else if (t[u++] = p[s++], c++, f = 0, 1 === --i) { - d = !0; - break - } while (g > (c | f)); - if (d) break; - do { - if (c = $n(t[l], p, s, i, 0, e), 0 !== c) { - for (a = 0; c > a; a++) t[u + a] = p[s + a]; - if (u += c, s += c, i -= c, 1 >= i) { - d = !0; - break - } - } - if (t[u++] = t[l++], 0 === --o) { - d = !0; - break - } - if (f = Kn(p[s], t, l, o, 0, e), 0 !== f) { - for (a = 0; f > a; a++) t[u + a] = t[l + a]; - if (u += f, l += f, o -= f, 0 === o) { - d = !0; - break - } - } - if (t[u++] = p[s++], 1 === --i) { - d = !0; - break - } - g-- - } while (c >= o_ || f >= o_); - if (d) break; - 0 > g && (g = 0), g += 2 - } - if (h = g, 1 > h && (h = 1), 1 === i) { - for (a = 0; o > a; a++) t[u + a] = t[l + a]; - t[u + o] = p[s] - } else { - if (0 === i) throw new Error; - for (a = 0; i > a; a++) t[u + a] = p[s + a] - } - } else for (a = 0; i > a; a++) t[u + a] = p[s + a] - } - - function s(n, i, r, o) { - var a = 0; - for (a = 0; o > a; a++) p[a] = t[r + a]; - var s = n + i - 1, l = o - 1, u = r + o - 1, c = 0, f = 0; - if (t[u--] = t[s--], 0 !== --i) { - if (1 === o) { - for (u -= i, s -= i, f = u + 1, c = s + 1, a = i - 1; a >= 0; a--) t[f + a] = t[c + a]; - return void (t[u] = p[l]) - } - for (var d = h; ;) { - var g = 0, y = 0, v = !1; - do if (e(p[l], t[s]) < 0) { - if (t[u--] = t[s--], g++, y = 0, 0 === --i) { - v = !0; - break - } - } else if (t[u--] = p[l--], y++, g = 0, 1 === --o) { - v = !0; - break - } while (d > (g | y)); - if (v) break; - do { - if (g = i - $n(p[l], t, n, i, i - 1, e), 0 !== g) { - for (u -= g, s -= g, i -= g, f = u + 1, c = s + 1, a = g - 1; a >= 0; a--) t[f + a] = t[c + a]; - if (0 === i) { - v = !0; - break - } - } - if (t[u--] = p[l--], 1 === --o) { - v = !0; - break - } - if (y = o - Kn(t[s], p, 0, o, o - 1, e), 0 !== y) { - for (u -= y, l -= y, o -= y, f = u + 1, c = l + 1, a = 0; y > a; a++) t[f + a] = p[c + a]; - if (1 >= o) { - v = !0; - break - } - } - if (t[u--] = t[s--], 0 === --i) { - v = !0; - break - } - d-- - } while (g >= o_ || y >= o_); - if (v) break; - 0 > d && (d = 0), d += 2 - } - if (h = d, 1 > h && (h = 1), 1 === o) { - for (u -= i, s -= i, f = u + 1, c = s + 1, a = i - 1; a >= 0; a--) t[f + a] = t[c + a]; - t[u] = p[l] - } else { - if (0 === o) throw new Error; - for (c = u - (o - 1), a = 0; o > a; a++) t[c + a] = p[a] - } - } else for (c = u - (o - 1), a = 0; o > a; a++) t[c + a] = p[a] - } - - var l, u, h = o_, c = 0, p = []; - return l = [], u = [], {mergeRuns: i, forceMergeRuns: r, pushRun: n} - } - - function Qn(t, e, n, i) { - n || (n = 0), i || (i = t.length); - var r = i - n; - if (!(2 > r)) { - var o = 0; - if (r_ > r) return o = qn(t, n, i, e), void Zn(t, n, i, n + o, e); - var a = Jn(t, e), s = Un(r); - do { - if (o = qn(t, n, i, e), s > o) { - var l = r; - l > s && (l = s), Zn(t, n, n + l, n + o, e), o = l - } - a.pushRun(n, o), a.mergeRuns(), r -= o, n += o - } while (0 !== r); - a.forceMergeRuns() - } - } - - function ti() { - a_ || (a_ = !0, console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors")) - } - - function ei(t, e) { - return t.zlevel === e.zlevel ? t.z === e.z ? t.z2 - e.z2 : t.z - e.z : t.zlevel - e.zlevel - } - - function ni(t) { - var e = t.pointerType; - return "pen" === e || "touch" === e - } - - function ii(t) { - t.touching = !0, null != t.touchTimer && (clearTimeout(t.touchTimer), t.touchTimer = null), t.touchTimer = setTimeout(function () { - t.touching = !1, t.touchTimer = null - }, 700) - } - - function ri(t) { - t && (t.zrByTouch = !0) - } - - function oi(t, e) { - return Ae(t.dom, new g_(t, e), !0) - } - - function ai(t, e) { - for (var n = e, i = !1; n && 9 !== n.nodeType && !(i = n.domBelongToZr || n !== e && n === t.painterRoot);) n = n.parentNode; - return i - } - - function si(t, e) { - var n = e.domHandlers; - wv.pointerEventsSupported ? y(p_.pointer, function (i) { - ui(e, i, function (e) { - n[i].call(t, e) - }) - }) : (wv.touchEventsSupported && y(p_.touch, function (i) { - ui(e, i, function (r) { - n[i].call(t, r), ii(e) - }) - }), y(p_.mouse, function (i) { - ui(e, i, function (r) { - r = Ie(r), e.touching || n[i].call(t, r) - }) - })) - } - - function li(t, e) { - function n(n) { - function i(i) { - i = Ie(i), ai(t, i.target) || (i = oi(t, i), e.domHandlers[n].call(t, i)) - } - - ui(e, n, i, {capture: !0}) - } - - wv.pointerEventsSupported ? y(f_.pointer, n) : wv.touchEventsSupported || y(f_.mouse, n) - } - - function ui(t, e, n, i) { - t.mounted[e] = n, t.listenerOpts[e] = i, ke(t.domTarget, e, n, i) - } - - function hi(t) { - var e = t.mounted; - for (var n in e) e.hasOwnProperty(n) && Le(t.domTarget, n, e[n], t.listenerOpts[n]); - t.mounted = {} - } - - function ci(t, e, n) { - return M_.copy(t.getBoundingRect()), t.transform && M_.applyTransform(t.transform), C_.width = e, C_.height = n, !M_.intersect(C_) - } - - function pi(t) { - return t > -D_ && D_ > t - } - - function fi(t) { - return t > D_ || -D_ > t - } - - function di(t, e, n, i, r) { - var o = 1 - r; - return o * o * (o * t + 3 * r * e) + r * r * (r * i + 3 * o * n) - } - - function gi(t, e, n, i, r) { - var o = 1 - r; - return 3 * (((e - t) * o + 2 * (n - e) * r) * o + (i - n) * r * r) - } - - function yi(t, e, n, i, r, o) { - var a = i + 3 * (e - n) - t, s = 3 * (n - 2 * e + t), l = 3 * (e - t), u = t - r, h = s * s - 3 * a * l, - c = s * l - 9 * a * u, p = l * l - 3 * s * u, f = 0; - if (pi(h) && pi(c)) if (pi(s)) o[0] = 0; else { - var d = -l / s; - d >= 0 && 1 >= d && (o[f++] = d) - } else { - var g = c * c - 4 * h * p; - if (pi(g)) { - var y = c / h, d = -s / a + y, v = -y / 2; - d >= 0 && 1 >= d && (o[f++] = d), v >= 0 && 1 >= v && (o[f++] = v) - } else if (g > 0) { - var m = A_(g), _ = h * s + 1.5 * a * (-c + m), x = h * s + 1.5 * a * (-c - m); - _ = 0 > _ ? -I_(-_, P_) : I_(_, P_), x = 0 > x ? -I_(-x, P_) : I_(x, P_); - var d = (-s - (_ + x)) / (3 * a); - d >= 0 && 1 >= d && (o[f++] = d) - } else { - var w = (2 * h * s - 3 * a * c) / (2 * A_(h * h * h)), b = Math.acos(w) / 3, S = A_(h), T = Math.cos(b), - d = (-s - 2 * S * T) / (3 * a), v = (-s + S * (T + L_ * Math.sin(b))) / (3 * a), - M = (-s + S * (T - L_ * Math.sin(b))) / (3 * a); - d >= 0 && 1 >= d && (o[f++] = d), v >= 0 && 1 >= v && (o[f++] = v), M >= 0 && 1 >= M && (o[f++] = M) - } - } - return f - } - - function vi(t, e, n, i, r) { - var o = 6 * n - 12 * e + 6 * t, a = 9 * e + 3 * i - 3 * t - 9 * n, s = 3 * e - 3 * t, l = 0; - if (pi(a)) { - if (fi(o)) { - var u = -s / o; - u >= 0 && 1 >= u && (r[l++] = u) - } - } else { - var h = o * o - 4 * a * s; - if (pi(h)) r[0] = -o / (2 * a); else if (h > 0) { - var c = A_(h), u = (-o + c) / (2 * a), p = (-o - c) / (2 * a); - u >= 0 && 1 >= u && (r[l++] = u), p >= 0 && 1 >= p && (r[l++] = p) - } - } - return l - } - - function mi(t, e, n, i, r, o) { - var a = (e - t) * r + t, s = (n - e) * r + e, l = (i - n) * r + n, u = (s - a) * r + a, h = (l - s) * r + s, - c = (h - u) * r + u; - o[0] = t, o[1] = a, o[2] = u, o[3] = c, o[4] = c, o[5] = h, o[6] = l, o[7] = i - } - - function _i(t, e, n, i, r, o, a, s, l, u, h) { - var c, p, f, d, g, y = .005, v = 1 / 0; - O_[0] = l, O_[1] = u; - for (var m = 0; 1 > m; m += .05) R_[0] = di(t, n, r, a, m), R_[1] = di(e, i, o, s, m), d = Gv(O_, R_), v > d && (c = m, v = d); - v = 1 / 0; - for (var _ = 0; 32 > _ && !(k_ > y); _++) p = c - y, f = c + y, R_[0] = di(t, n, r, a, p), R_[1] = di(e, i, o, s, p), d = Gv(R_, O_), p >= 0 && v > d ? (c = p, v = d) : (E_[0] = di(t, n, r, a, f), E_[1] = di(e, i, o, s, f), g = Gv(E_, O_), 1 >= f && v > g ? (c = f, v = g) : y *= .5); - return h && (h[0] = di(t, n, r, a, c), h[1] = di(e, i, o, s, c)), A_(v) - } - - function xi(t, e, n, i, r, o, a, s, l) { - for (var u = t, h = e, c = 0, p = 1 / l, f = 1; l >= f; f++) { - var d = f * p, g = di(t, n, r, a, d), y = di(e, i, o, s, d), v = g - u, m = y - h; - c += Math.sqrt(v * v + m * m), u = g, h = y - } - return c - } - - function wi(t, e, n, i) { - var r = 1 - i; - return r * (r * t + 2 * i * e) + i * i * n - } - - function bi(t, e, n, i) { - return 2 * ((1 - i) * (e - t) + i * (n - e)) - } - - function Si(t, e, n, i, r) { - var o = t - 2 * e + n, a = 2 * (e - t), s = t - i, l = 0; - if (pi(o)) { - if (fi(a)) { - var u = -s / a; - u >= 0 && 1 >= u && (r[l++] = u) - } - } else { - var h = a * a - 4 * o * s; - if (pi(h)) { - var u = -a / (2 * o); - u >= 0 && 1 >= u && (r[l++] = u) - } else if (h > 0) { - var c = A_(h), u = (-a + c) / (2 * o), p = (-a - c) / (2 * o); - u >= 0 && 1 >= u && (r[l++] = u), p >= 0 && 1 >= p && (r[l++] = p) - } - } - return l - } - - function Ti(t, e, n) { - var i = t + n - 2 * e; - return 0 === i ? .5 : (t - e) / i - } - - function Mi(t, e, n, i, r) { - var o = (e - t) * i + t, a = (n - e) * i + e, s = (a - o) * i + o; - r[0] = t, r[1] = o, r[2] = s, r[3] = s, r[4] = a, r[5] = n - } - - function Ci(t, e, n, i, r, o, a, s, l) { - var u, h = .005, c = 1 / 0; - O_[0] = a, O_[1] = s; - for (var p = 0; 1 > p; p += .05) { - R_[0] = wi(t, n, r, p), R_[1] = wi(e, i, o, p); - var f = Gv(O_, R_); - c > f && (u = p, c = f) - } - c = 1 / 0; - for (var d = 0; 32 > d && !(k_ > h); d++) { - var g = u - h, y = u + h; - R_[0] = wi(t, n, r, g), R_[1] = wi(e, i, o, g); - var f = Gv(R_, O_); - if (g >= 0 && c > f) u = g, c = f; else { - E_[0] = wi(t, n, r, y), E_[1] = wi(e, i, o, y); - var v = Gv(E_, O_); - 1 >= y && c > v ? (u = y, c = v) : h *= .5 - } - } - return l && (l[0] = wi(t, n, r, u), l[1] = wi(e, i, o, u)), A_(c) - } - - function Ii(t, e, n, i, r, o, a) { - for (var s = t, l = e, u = 0, h = 1 / a, c = 1; a >= c; c++) { - var p = c * h, f = wi(t, n, r, p), d = wi(e, i, o, p), g = f - s, y = d - l; - u += Math.sqrt(g * g + y * y), s = f, l = d - } - return u - } - - function Ai(t, e, n) { - if (0 !== t.length) { - for (var i = t[0], r = i[0], o = i[0], a = i[1], s = i[1], l = 1; l < t.length; l++) i = t[l], r = z_(r, i[0]), o = B_(o, i[0]), a = z_(a, i[1]), s = B_(s, i[1]); - e[0] = r, e[1] = a, n[0] = o, n[1] = s - } - } - - function Di(t, e, n, i, r, o) { - r[0] = z_(t, n), r[1] = z_(e, i), o[0] = B_(t, n), o[1] = B_(e, i) - } - - function ki(t, e, n, i, r, o, a, s, l, u) { - var h = vi, c = di, p = h(t, n, r, a, X_); - l[0] = 1 / 0, l[1] = 1 / 0, u[0] = -1 / 0, u[1] = -1 / 0; - for (var f = 0; p > f; f++) { - var d = c(t, n, r, a, X_[f]); - l[0] = z_(d, l[0]), u[0] = B_(d, u[0]) - } - p = h(e, i, o, s, Y_); - for (var f = 0; p > f; f++) { - var g = c(e, i, o, s, Y_[f]); - l[1] = z_(g, l[1]), u[1] = B_(g, u[1]) - } - l[0] = z_(t, l[0]), u[0] = B_(t, u[0]), l[0] = z_(a, l[0]), u[0] = B_(a, u[0]), l[1] = z_(e, l[1]), u[1] = B_(e, u[1]), l[1] = z_(s, l[1]), u[1] = B_(s, u[1]) - } - - function Li(t, e, n, i, r, o, a, s) { - var l = Ti, u = wi, h = B_(z_(l(t, n, r), 1), 0), c = B_(z_(l(e, i, o), 1), 0), p = u(t, n, r, h), - f = u(e, i, o, c); - a[0] = z_(t, r, p), a[1] = z_(e, o, f), s[0] = B_(t, r, p), s[1] = B_(e, o, f) - } - - function Pi(t, e, n, i, r, o, a, s, l) { - var u = ye, h = ve, c = Math.abs(r - o); - if (1e-4 > c % H_ && c > 1e-4) return s[0] = t - n, s[1] = e - i, l[0] = t + n, void (l[1] = e + i); - if (V_[0] = F_(r) * n + t, V_[1] = N_(r) * i + e, G_[0] = F_(o) * n + t, G_[1] = N_(o) * i + e, u(s, V_, G_), h(l, V_, G_), r %= H_, 0 > r && (r += H_), o %= H_, 0 > o && (o += H_), r > o && !a ? o += H_ : o > r && a && (r += H_), a) { - var p = o; - o = r, r = p - } - for (var f = 0; o > f; f += Math.PI / 2) f > r && (W_[0] = F_(f) * n + t, W_[1] = N_(f) * i + e, u(s, W_, s), h(l, W_, l)) - } - - function Oi(t) { - var e = Math.round(t / ox * 1e8) / 1e8; - return e % 2 * ox - } - - function Ri(t, e) { - var n = Oi(t[0]); - 0 > n && (n += ax); - var i = n - t[0], r = t[1]; - r += i, !e && r - n >= ax ? r = n + ax : e && n - r >= ax ? r = n - ax : !e && n > r ? r = n + (ax - Oi(n - r)) : e && r > n && (r = n - (ax - Oi(r - n))), t[0] = n, t[1] = r - } - - function Ei(t, e, n, i, r, o, a) { - if (0 === r) return !1; - var s = r, l = 0, u = t; - if (a > e + s && a > i + s || e - s > a && i - s > a || o > t + s && o > n + s || t - s > o && n - s > o) return !1; - if (t === n) return Math.abs(o - t) <= s / 2; - l = (e - i) / (t - n), u = (t * i - n * e) / (t - n); - var h = l * o - a + u, c = h * h / (l * l + 1); - return s / 2 * s / 2 >= c - } - - function zi(t, e, n, i, r, o, a, s, l, u, h) { - if (0 === l) return !1; - var c = l; - if (h > e + c && h > i + c && h > o + c && h > s + c || e - c > h && i - c > h && o - c > h && s - c > h || u > t + c && u > n + c && u > r + c && u > a + c || t - c > u && n - c > u && r - c > u && a - c > u) return !1; - var p = _i(t, e, n, i, r, o, a, s, u, h, null); - return c / 2 >= p - } - - function Bi(t, e, n, i, r, o, a, s, l) { - if (0 === a) return !1; - var u = a; - if (l > e + u && l > i + u && l > o + u || e - u > l && i - u > l && o - u > l || s > t + u && s > n + u && s > r + u || t - u > s && n - u > s && r - u > s) return !1; - var h = Ci(t, e, n, i, r, o, s, l, null); - return u / 2 >= h - } - - function Ni(t) { - return t %= hx, 0 > t && (t += hx), t - } - - function Fi(t, e, n, i, r, o, a, s, l) { - if (0 === a) return !1; - var u = a; - s -= t, l -= e; - var h = Math.sqrt(s * s + l * l); - if (h - u > n || n > h + u) return !1; - if (Math.abs(i - r) % cx < 1e-4) return !0; - if (o) { - var c = i; - i = Ni(r), r = Ni(c) - } else i = Ni(i), r = Ni(r); - i > r && (r += cx); - var p = Math.atan2(l, s); - return 0 > p && (p += cx), p >= i && r >= p || p + cx >= i && r >= p + cx - } - - function Hi(t, e, n, i, r, o) { - if (o > e && o > i || e > o && i > o) return 0; - if (i === e) return 0; - var a = (o - e) / (i - e), s = e > i ? 1 : -1; - (1 === a || 0 === a) && (s = e > i ? .5 : -.5); - var l = a * (n - t) + t; - return l === r ? 1 / 0 : l > r ? s : 0 - } - - function Vi(t, e) { - return Math.abs(t - e) < dx - } - - function Gi() { - var t = yx[0]; - yx[0] = yx[1], yx[1] = t - } - - function Wi(t, e, n, i, r, o, a, s, l, u) { - if (u > e && u > i && u > o && u > s || e > u && i > u && o > u && s > u) return 0; - var h = yi(e, i, o, s, u, gx); - if (0 === h) return 0; - for (var c = 0, p = -1, f = void 0, d = void 0, g = 0; h > g; g++) { - var y = gx[g], v = 0 === y || 1 === y ? .5 : 1, m = di(t, n, r, a, y); - l > m || (0 > p && (p = vi(e, i, o, s, yx), yx[1] < yx[0] && p > 1 && Gi(), f = di(e, i, o, s, yx[0]), p > 1 && (d = di(e, i, o, s, yx[1]))), c += 2 === p ? y < yx[0] ? e > f ? v : -v : y < yx[1] ? f > d ? v : -v : d > s ? v : -v : y < yx[0] ? e > f ? v : -v : f > s ? v : -v) - } - return c - } - - function Xi(t, e, n, i, r, o, a, s) { - if (s > e && s > i && s > o || e > s && i > s && o > s) return 0; - var l = Si(e, i, o, s, gx); - if (0 === l) return 0; - var u = Ti(e, i, o); - if (u >= 0 && 1 >= u) { - for (var h = 0, c = wi(e, i, o, u), p = 0; l > p; p++) { - var f = 0 === gx[p] || 1 === gx[p] ? .5 : 1, d = wi(t, n, r, gx[p]); - a > d || (h += gx[p] < u ? e > c ? f : -f : c > o ? f : -f) - } - return h - } - var f = 0 === gx[0] || 1 === gx[0] ? .5 : 1, d = wi(t, n, r, gx[0]); - return a > d ? 0 : e > o ? f : -f - } - - function Yi(t, e, n, i, r, o, a, s) { - if (s -= e, s > n || -n > s) return 0; - var l = Math.sqrt(n * n - s * s); - gx[0] = -l, gx[1] = l; - var u = Math.abs(i - r); - if (1e-4 > u) return 0; - if (u >= fx - 1e-4) { - i = 0, r = fx; - var h = o ? 1 : -1; - return a >= gx[0] + t && a <= gx[1] + t ? h : 0 - } - if (i > r) { - var c = i; - i = r, r = c - } - 0 > i && (i += fx, r += fx); - for (var p = 0, f = 0; 2 > f; f++) { - var d = gx[f]; - if (d + t > a) { - var g = Math.atan2(s, d), h = o ? 1 : -1; - 0 > g && (g = fx + g), (g >= i && r >= g || g + fx >= i && r >= g + fx) && (g > Math.PI / 2 && g < 1.5 * Math.PI && (h = -h), p += h) - } - } - return p - } - - function Ui(t, e, n, i, r) { - for (var o, a, s = t.data, l = t.len(), u = 0, h = 0, c = 0, p = 0, f = 0, d = 0; l > d;) { - var g = s[d++], y = 1 === d; - switch (g === px.M && d > 1 && (n || (u += Hi(h, c, p, f, i, r))), y && (h = s[d], c = s[d + 1], p = h, f = c), g) { - case px.M: - p = s[d++], f = s[d++], h = p, c = f; - break; - case px.L: - if (n) { - if (Ei(h, c, s[d], s[d + 1], e, i, r)) return !0 - } else u += Hi(h, c, s[d], s[d + 1], i, r) || 0; - h = s[d++], c = s[d++]; - break; - case px.C: - if (n) { - if (zi(h, c, s[d++], s[d++], s[d++], s[d++], s[d], s[d + 1], e, i, r)) return !0 - } else u += Wi(h, c, s[d++], s[d++], s[d++], s[d++], s[d], s[d + 1], i, r) || 0; - h = s[d++], c = s[d++]; - break; - case px.Q: - if (n) { - if (Bi(h, c, s[d++], s[d++], s[d], s[d + 1], e, i, r)) return !0 - } else u += Xi(h, c, s[d++], s[d++], s[d], s[d + 1], i, r) || 0; - h = s[d++], c = s[d++]; - break; - case px.A: - var v = s[d++], m = s[d++], _ = s[d++], x = s[d++], w = s[d++], b = s[d++]; - d += 1; - var S = !!(1 - s[d++]); - o = Math.cos(w) * _ + v, a = Math.sin(w) * x + m, y ? (p = o, f = a) : u += Hi(h, c, o, a, i, r); - var T = (i - v) * x / _ + v; - if (n) { - if (Fi(v, m, x, w, w + b, S, e, T, r)) return !0 - } else u += Yi(v, m, x, w, w + b, S, T, r); - h = Math.cos(w + b) * _ + v, c = Math.sin(w + b) * x + m; - break; - case px.R: - p = h = s[d++], f = c = s[d++]; - var M = s[d++], C = s[d++]; - if (o = p + M, a = f + C, n) { - if (Ei(p, f, o, f, e, i, r) || Ei(o, f, o, a, e, i, r) || Ei(o, a, p, a, e, i, r) || Ei(p, a, p, f, e, i, r)) return !0 - } else u += Hi(o, f, o, a, i, r), u += Hi(p, a, p, f, i, r); - break; - case px.Z: - if (n) { - if (Ei(h, c, p, f, e, i, r)) return !0 - } else u += Hi(h, c, p, f, i, r); - h = p, c = f - } - } - return n || Vi(c, f) || (u += Hi(h, c, p, f, i, r) || 0), 0 !== u - } - - function qi(t, e, n) { - return Ui(t, 0, !1, e, n) - } - - function ji(t, e, n, i) { - return Ui(t, e, !0, n, i) - } - - function Zi(t, e) { - var n, i, r, o, a, s, l = t.data, u = t.len(), h = bx.M, c = bx.C, p = bx.L, f = bx.R, d = bx.A, g = bx.Q; - for (r = 0, o = 0; u > r;) { - switch (n = l[r++], o = r, i = 0, n) { - case h: - i = 1; - break; - case p: - i = 1; - break; - case c: - i = 3; - break; - case g: - i = 2; - break; - case d: - var y = e[4], v = e[5], m = Tx(e[0] * e[0] + e[1] * e[1]), _ = Tx(e[2] * e[2] + e[3] * e[3]), - x = Mx(-e[1] / _, e[0] / m); - l[r] *= m, l[r++] += y, l[r] *= _, l[r++] += v, l[r++] *= m, l[r++] *= _, l[r++] += x, l[r++] += x, r += 2, o = r; - break; - case f: - s[0] = l[r++], s[1] = l[r++], ge(s, s, e), l[o++] = s[0], l[o++] = s[1], s[0] += l[r++], s[1] += l[r++], ge(s, s, e), l[o++] = s[0], l[o++] = s[1] - } - for (a = 0; i > a; a++) { - var w = Sx[a]; - w[0] = l[r++], w[1] = l[r++], ge(w, w, e), l[o++] = w[0], l[o++] = w[1] - } - } - t.increaseVersion() - } - - function Ki(t) { - return Math.sqrt(t[0] * t[0] + t[1] * t[1]) - } - - function $i(t, e) { - return (t[0] * e[0] + t[1] * e[1]) / (Ki(t) * Ki(e)) - } - - function Ji(t, e) { - return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos($i(t, e)) - } - - function Qi(t, e, n, i, r, o, a, s, l, u, h) { - var c = l * (Dx / 180), p = Ax(c) * (t - n) / 2 + Ix(c) * (e - i) / 2, - f = -1 * Ix(c) * (t - n) / 2 + Ax(c) * (e - i) / 2, d = p * p / (a * a) + f * f / (s * s); - d > 1 && (a *= Cx(d), s *= Cx(d)); - var g = (r === o ? -1 : 1) * Cx((a * a * s * s - a * a * f * f - s * s * p * p) / (a * a * f * f + s * s * p * p)) || 0, - y = g * a * f / s, v = g * -s * p / a, m = (t + n) / 2 + Ax(c) * y - Ix(c) * v, - _ = (e + i) / 2 + Ix(c) * y + Ax(c) * v, x = Ji([1, 0], [(p - y) / a, (f - v) / s]), - w = [(p - y) / a, (f - v) / s], b = [(-1 * p - y) / a, (-1 * f - v) / s], S = Ji(w, b); - if ($i(w, b) <= -1 && (S = Dx), $i(w, b) >= 1 && (S = 0), 0 > S) { - var T = Math.round(S / Dx * 1e6) / 1e6; - S = 2 * Dx + T % 2 * Dx - } - h.addData(u, m, _, a, s, x, S, c, o) - } - - function tr(t) { - if (!t) return new ux; - for (var e, n = 0, i = 0, r = n, o = i, a = new ux, s = ux.CMD, l = t.match(kx), u = 0; u < l.length; u++) { - for (var h = l[u], c = h.charAt(0), p = void 0, f = h.match(Lx) || [], d = f.length, g = 0; d > g; g++) f[g] = parseFloat(f[g]); - for (var y = 0; d > y;) { - var v = void 0, m = void 0, _ = void 0, x = void 0, w = void 0, b = void 0, S = void 0, T = n, M = i, - C = void 0, I = void 0; - switch (c) { - case"l": - n += f[y++], i += f[y++], p = s.L, a.addData(p, n, i); - break; - case"L": - n = f[y++], i = f[y++], p = s.L, a.addData(p, n, i); - break; - case"m": - n += f[y++], i += f[y++], p = s.M, a.addData(p, n, i), r = n, o = i, c = "l"; - break; - case"M": - n = f[y++], i = f[y++], p = s.M, a.addData(p, n, i), r = n, o = i, c = "L"; - break; - case"h": - n += f[y++], p = s.L, a.addData(p, n, i); - break; - case"H": - n = f[y++], p = s.L, a.addData(p, n, i); - break; - case"v": - i += f[y++], p = s.L, a.addData(p, n, i); - break; - case"V": - i = f[y++], p = s.L, a.addData(p, n, i); - break; - case"C": - p = s.C, a.addData(p, f[y++], f[y++], f[y++], f[y++], f[y++], f[y++]), n = f[y - 2], i = f[y - 1]; - break; - case"c": - p = s.C, a.addData(p, f[y++] + n, f[y++] + i, f[y++] + n, f[y++] + i, f[y++] + n, f[y++] + i), n += f[y - 2], i += f[y - 1]; - break; - case"S": - v = n, m = i, C = a.len(), I = a.data, e === s.C && (v += n - I[C - 4], m += i - I[C - 3]), p = s.C, T = f[y++], M = f[y++], n = f[y++], i = f[y++], a.addData(p, v, m, T, M, n, i); - break; - case"s": - v = n, m = i, C = a.len(), I = a.data, e === s.C && (v += n - I[C - 4], m += i - I[C - 3]), p = s.C, T = n + f[y++], M = i + f[y++], n += f[y++], i += f[y++], a.addData(p, v, m, T, M, n, i); - break; - case"Q": - T = f[y++], M = f[y++], n = f[y++], i = f[y++], p = s.Q, a.addData(p, T, M, n, i); - break; - case"q": - T = f[y++] + n, M = f[y++] + i, n += f[y++], i += f[y++], p = s.Q, a.addData(p, T, M, n, i); - break; - case"T": - v = n, m = i, C = a.len(), I = a.data, e === s.Q && (v += n - I[C - 4], m += i - I[C - 3]), n = f[y++], i = f[y++], p = s.Q, a.addData(p, v, m, n, i); - break; - case"t": - v = n, m = i, C = a.len(), I = a.data, e === s.Q && (v += n - I[C - 4], m += i - I[C - 3]), n += f[y++], i += f[y++], p = s.Q, a.addData(p, v, m, n, i); - break; - case"A": - _ = f[y++], x = f[y++], w = f[y++], b = f[y++], S = f[y++], T = n, M = i, n = f[y++], i = f[y++], p = s.A, Qi(T, M, n, i, b, S, _, x, w, p, a); - break; - case"a": - _ = f[y++], x = f[y++], w = f[y++], b = f[y++], S = f[y++], T = n, M = i, n += f[y++], i += f[y++], p = s.A, Qi(T, M, n, i, b, S, _, x, w, p, a) - } - } - ("z" === c || "Z" === c) && (p = s.Z, a.addData(p), n = r, i = o), e = p - } - return a.toStatic(), a - } - - function er(t) { - return null != t.setData - } - - function nr(t, e) { - var n = tr(t), i = h({}, e); - return i.buildPath = function (t) { - if (er(t)) { - t.setData(n.data); - var e = t.getContext(); - e && t.rebuildPath(e, 1) - } else { - var e = t; - n.rebuildPath(e, 1) - } - }, i.applyTransform = function (t) { - Zi(n, t), this.dirtyShape() - }, i - } - - function ir(t, e) { - return new Px(nr(t, e)) - } - - function rr(t, n) { - var i = nr(t, n), r = function (t) { - function n(e) { - var n = t.call(this, e) || this; - return n.applyTransform = i.applyTransform, n.buildPath = i.buildPath, n - } - - return e(n, t), n - }(Px); - return r - } - - function or(t, e) { - for (var n = [], i = t.length, r = 0; i > r; r++) { - var o = t[r]; - o.path || o.createPathProxy(), o.shapeChanged() && o.buildPath(o.path, o.shape, !0), n.push(o.path) - } - var a = new xx(e); - return a.createPathProxy(), a.buildPath = function (t) { - if (er(t)) { - t.appendPath(n); - var e = t.getContext(); - e && t.rebuildPath(e, 1) - } - }, a - } - - function ar(t) { - return !!(t && "string" != typeof t && t.width && t.height) - } - - function sr(t, e) { - var n, i, r, o, a = e.x, s = e.y, l = e.width, u = e.height, h = e.r; - 0 > l && (a += l, l = -l), 0 > u && (s += u, u = -u), "number" == typeof h ? n = i = r = o = h : h instanceof Array ? 1 === h.length ? n = i = r = o = h[0] : 2 === h.length ? (n = r = h[0], i = o = h[1]) : 3 === h.length ? (n = h[0], i = o = h[1], r = h[2]) : (n = h[0], i = h[1], r = h[2], o = h[3]) : n = i = r = o = 0; - var c; - n + i > l && (c = n + i, n *= l / c, i *= l / c), r + o > l && (c = r + o, r *= l / c, o *= l / c), i + r > u && (c = i + r, i *= u / c, r *= u / c), n + o > u && (c = n + o, n *= u / c, o *= u / c), t.moveTo(a + n, s), t.lineTo(a + l - i, s), 0 !== i && t.arc(a + l - i, s + i, i, -Math.PI / 2, 0), t.lineTo(a + l, s + u - r), 0 !== r && t.arc(a + l - r, s + u - r, r, 0, Math.PI / 2), t.lineTo(a + o, s + u), 0 !== o && t.arc(a + o, s + u - o, o, Math.PI / 2, Math.PI), t.lineTo(a, s + n), 0 !== n && t.arc(a + n, s + n, n, Math.PI, 1.5 * Math.PI) - } - - function lr(t, e, n) { - if (e) { - var i = e.x1, r = e.x2, o = e.y1, a = e.y2; - t.x1 = i, t.x2 = r, t.y1 = o, t.y2 = a; - var s = n && n.lineWidth; - return s ? (Fx(2 * i) === Fx(2 * r) && (t.x1 = t.x2 = hr(i, s, !0)), Fx(2 * o) === Fx(2 * a) && (t.y1 = t.y2 = hr(o, s, !0)), t) : t - } - } - - function ur(t, e, n) { - if (e) { - var i = e.x, r = e.y, o = e.width, a = e.height; - t.x = i, t.y = r, t.width = o, t.height = a; - var s = n && n.lineWidth; - return s ? (t.x = hr(i, s, !0), t.y = hr(r, s, !0), t.width = Math.max(hr(i + o, s, !1) - t.x, 0 === o ? 0 : 1), t.height = Math.max(hr(r + a, s, !1) - t.y, 0 === a ? 0 : 1), t) : t - } - } - - function hr(t, e, n) { - if (!e) return t; - var i = Fx(2 * t); - return (i + Fx(e)) % 2 === 0 ? i / 2 : (i + (n ? 1 : -1)) / 2 - } - - function cr(t, e, n, i, r, o, a) { - var s = .5 * (n - t), l = .5 * (i - e); - return (2 * (e - n) + s + l) * a + (-3 * (e - n) - 2 * s - l) * o + s * r + e - } - - function pr(t, e) { - for (var n = t.length, i = [], r = 0, o = 1; n > o; o++) r += ce(t[o - 1], t[o]); - var a = r / 2; - a = n > a ? n : a; - for (var o = 0; a > o; o++) { - var s = o / (a - 1) * (e ? n : n - 1), l = Math.floor(s), u = s - l, h = void 0, c = t[l % n], p = void 0, - f = void 0; - e ? (h = t[(l - 1 + n) % n], p = t[(l + 1) % n], f = t[(l + 2) % n]) : (h = t[0 === l ? l : l - 1], p = t[l > n - 2 ? n - 1 : l + 1], f = t[l > n - 3 ? n - 1 : l + 2]); - var d = u * u, g = u * d; - i.push([cr(h[0], c[0], p[0], f[0], u, d, g), cr(h[1], c[1], p[1], f[1], u, d, g)]) - } - return i - } - - function fr(t, e, n, i) { - var r, o, a, s, l = [], u = [], h = [], c = []; - if (i) { - a = [1 / 0, 1 / 0], s = [-1 / 0, -1 / 0]; - for (var p = 0, f = t.length; f > p; p++) ye(a, a, t[p]), ve(s, s, t[p]); - ye(a, a, i[0]), ve(s, s, i[1]) - } - for (var p = 0, f = t.length; f > p; p++) { - var d = t[p]; - if (n) r = t[p ? p - 1 : f - 1], o = t[(p + 1) % f]; else { - if (0 === p || p === f - 1) { - l.push(Q(t[p])); - continue - } - r = t[p - 1], o = t[p + 1] - } - ie(u, o, r), ue(u, u, e); - var g = ce(d, r), y = ce(d, o), v = g + y; - 0 !== v && (g /= v, y /= v), ue(h, u, -g), ue(c, u, y); - var m = ee([], d, h), _ = ee([], d, c); - i && (ve(m, m, a), ye(m, m, s), ve(_, _, a), ye(_, _, s)), l.push(m), l.push(_) - } - return n && l.push(l.shift()), l - } - - function dr(t, e, n) { - var i = e.smooth, r = e.points; - if (r && r.length >= 2) { - if (i && "spline" !== i) { - var o = fr(r, i, n, e.smoothConstraint); - t.moveTo(r[0][0], r[0][1]); - for (var a = r.length, s = 0; (n ? a : a - 1) > s; s++) { - var l = o[2 * s], u = o[2 * s + 1], h = r[(s + 1) % a]; - t.bezierCurveTo(l[0], l[1], u[0], u[1], h[0], h[1]) - } - } else { - "spline" === i && (r = pr(r, n)), t.moveTo(r[0][0], r[0][1]); - for (var s = 1, c = r.length; c > s; s++) t.lineTo(r[s][0], r[s][1]) - } - n && t.closePath() - } - } - - function gr(t) { - if (C(t)) { - var e = new DOMParser; - t = e.parseFromString(t, "text/xml") - } - var n = t; - for (9 === n.nodeType && (n = n.firstChild); "svg" !== n.nodeName.toLowerCase() || 1 !== n.nodeType;) n = n.nextSibling; - return n - } - - function yr(t, e) { - for (var n = t.firstChild; n;) { - if (1 === n.nodeType) { - var i = n.getAttribute("offset"), r = void 0; - r = i.indexOf("%") > 0 ? parseInt(i, 10) / 100 : i ? parseFloat(i) : 0; - var o = n.getAttribute("stop-color") || "#000000"; - e.colorStops.push({offset: r, color: o}) - } - n = n.nextSibling - } - } - - function vr(t, e) { - t && t.__inheritedStyle && (e.__inheritedStyle || (e.__inheritedStyle = {}), c(e.__inheritedStyle, t.__inheritedStyle)) - } - - function mr(t) { - for (var e = W(t).split(iw), n = [], i = 0; i < e.length; i += 2) { - var r = parseFloat(e[i]), o = parseFloat(e[i + 1]); - n.push([r, o]) - } - return n - } - - function _r(t, e, n, i) { - var r = e, o = r.__inheritedStyle || {}; - if (1 === t.nodeType && (wr(t, e), h(o, br(t)), !i)) for (var a in aw) if (aw.hasOwnProperty(a)) { - var s = t.getAttribute(a); - null != s && (o[aw[a]] = s) - } - r.style = r.style || {}, null != o.fill && (r.style.fill = xr(o.fill, n)), null != o.stroke && (r.style.stroke = xr(o.stroke, n)), y(["lineWidth", "opacity", "fillOpacity", "strokeOpacity", "miterLimit", "fontSize"], function (t) { - null != o[t] && (r.style[t] = parseFloat(o[t])) - }), o.textBaseline && "auto" !== o.textBaseline || (o.textBaseline = "alphabetic"), "alphabetic" === o.textBaseline && (o.textBaseline = "bottom"), "start" === o.textAlign && (o.textAlign = "left"), "end" === o.textAlign && (o.textAlign = "right"), y(["lineDashOffset", "lineCap", "lineJoin", "fontWeight", "fontFamily", "fontStyle", "textAlign", "textBaseline"], function (t) { - null != o[t] && (r.style[t] = o[t]) - }), o.lineDash && (r.style.lineDash = v(W(o.lineDash).split(iw), function (t) { - return parseFloat(t) - })), r.__inheritedStyle = o - } - - function xr(t, e) { - var n = e && t && t.match(sw); - if (n) { - var i = W(n[1]), r = e[i]; - return r - } - return t - } - - function wr(t, e) { - var n = t.getAttribute("transform"); - if (n) { - n = n.replace(/,/g, " "); - var i = [], r = null; - n.replace(lw, function (t, e, n) { - return i.push(e, n), "" - }); - for (var o = i.length - 1; o > 0; o -= 2) { - var a = i[o], s = i[o - 1], l = void 0; - switch (r = r || Fe(), s) { - case"translate": - l = W(a).split(iw), We(r, r, [parseFloat(l[0]), parseFloat(l[1] || "0")]); - break; - case"scale": - l = W(a).split(iw), Ye(r, r, [parseFloat(l[0]), parseFloat(l[1] || l[0])]); - break; - case"rotate": - l = W(a).split(iw), Xe(r, r, parseFloat(l[0])); - break; - case"skew": - l = W(a).split(iw), console.warn("Skew transform is not supported yet"); - break; - case"matrix": - l = W(a).split(iw), r[0] = parseFloat(l[0]), r[1] = parseFloat(l[1]), r[2] = parseFloat(l[2]), r[3] = parseFloat(l[3]), r[4] = parseFloat(l[4]), r[5] = parseFloat(l[5]) - } - } - e.setLocalTransform(r) - } - } - - function br(t) { - var e = t.getAttribute("style"), n = {}; - if (!e) return n; - var i = {}; - uw.lastIndex = 0; - for (var r; null != (r = uw.exec(e));) i[r[1]] = r[2]; - for (var o in aw) aw.hasOwnProperty(o) && null != i[o] && (n[aw[o]] = i[o]); - return n - } - - function Sr(t, e, n) { - var i = e / t.width, r = n / t.height, o = Math.min(i, r); - return {scale: o, x: -(t.x + t.width / 2) * o + e / 2, y: -(t.y + t.height / 2) * o + n / 2} - } - - function Tr(t, e) { - var n = new rw; - return n.parse(t, e) - } - - function Mr(t, e, n, i, r, o, a, s) { - var l = n - t, u = i - e, h = a - r, c = s - o, p = c * l - h * u; - return xw > p * p ? void 0 : (p = (h * (e - o) - c * (t - r)) / p, [t + p * l, e + p * u]) - } - - function Cr(t, e, n, i, r, o, a) { - var s = t - n, l = e - i, u = (a ? o : -o) / vw(s * s + l * l), h = u * l, c = -u * s, p = t + h, f = e + c, - d = n + h, g = i + c, y = (p + d) / 2, v = (f + g) / 2, m = d - p, _ = g - f, x = m * m + _ * _, w = r - o, - b = p * g - d * f, S = (0 > _ ? -1 : 1) * vw(mw(0, w * w * x - b * b)), T = (b * _ - m * S) / x, - M = (-b * m - _ * S) / x, C = (b * _ + m * S) / x, I = (-b * m + _ * S) / x, A = T - y, D = M - v, - k = C - y, L = I - v; - return A * A + D * D > k * k + L * L && (T = C, M = I), { - cx: T, - cy: M, - x01: -h, - y01: -c, - x11: T * (r / w - 1), - y11: M * (r / w - 1) - } - } - - function Ir(t, e) { - var n = mw(e.r, 0), i = mw(e.r0 || 0, 0), r = n > 0, o = i > 0; - if (r || o) { - if (r || (n = i, i = 0), i > n) { - var a = n; - n = i, i = a - } - var s = !!e.clockwise, l = e.startAngle, u = e.endAngle, h = [l, u]; - Ri(h, !s); - var c = yw(h[0] - h[1]), p = e.cx, f = e.cy, d = e.cornerRadius || 0, g = e.innerCornerRadius || 0; - if (n > xw) if (c > cw - xw) t.moveTo(p + n * fw(l), f + n * pw(l)), t.arc(p, f, n, l, u, !s), i > xw && (t.moveTo(p + i * fw(u), f + i * pw(u)), t.arc(p, f, i, u, l, s)); else { - var y = yw(n - i) / 2, v = _w(y, d), m = _w(y, g), _ = m, x = v, w = n * fw(l), b = n * pw(l), - S = i * fw(u), T = i * pw(u), M = void 0, C = void 0, I = void 0, A = void 0; - if ((v > xw || m > xw) && (M = n * fw(u), C = n * pw(u), I = i * fw(l), A = i * pw(l), hw > c)) { - var D = Mr(w, b, I, A, M, C, S, T); - if (D) { - var k = w - D[0], L = b - D[1], P = M - D[0], O = C - D[1], - R = 1 / pw(dw((k * P + L * O) / (vw(k * k + L * L) * vw(P * P + O * O))) / 2), - E = vw(D[0] * D[0] + D[1] * D[1]); - _ = _w(m, (i - E) / (R - 1)), x = _w(v, (n - E) / (R + 1)) - } - } - if (c > xw) if (x > xw) { - var z = Cr(I, A, w, b, n, x, s), B = Cr(M, C, S, T, n, x, s); - t.moveTo(p + z.cx + z.x01, f + z.cy + z.y01), v > x ? t.arc(p + z.cx, f + z.cy, x, gw(z.y01, z.x01), gw(B.y01, B.x01), !s) : (t.arc(p + z.cx, f + z.cy, x, gw(z.y01, z.x01), gw(z.y11, z.x11), !s), t.arc(p, f, n, gw(z.cy + z.y11, z.cx + z.x11), gw(B.cy + B.y11, B.cx + B.x11), !s), t.arc(p + B.cx, f + B.cy, x, gw(B.y11, B.x11), gw(B.y01, B.x01), !s)) - } else t.moveTo(p + w, f + b), t.arc(p, f, n, l, u, !s); else t.moveTo(p + w, f + b); - if (i > xw && c > xw) if (_ > xw) { - var z = Cr(S, T, M, C, i, -_, s), B = Cr(w, b, I, A, i, -_, s); - t.lineTo(p + z.cx + z.x01, f + z.cy + z.y01), m > _ ? t.arc(p + z.cx, f + z.cy, _, gw(z.y01, z.x01), gw(B.y01, B.x01), !s) : (t.arc(p + z.cx, f + z.cy, _, gw(z.y01, z.x01), gw(z.y11, z.x11), !s), t.arc(p, f, i, gw(z.cy + z.y11, z.cx + z.x11), gw(B.cy + B.y11, B.cx + B.x11), s), t.arc(p + B.cx, f + B.cy, _, gw(B.y11, B.x11), gw(B.y01, B.x01), !s)) - } else t.lineTo(p + S, f + T), t.arc(p, f, i, u, l, s); else t.lineTo(p + S, f + T) - } else t.moveTo(p, f); - t.closePath() - } - } - - function Ar(t) { - if ("string" == typeof t) { - var e = Cw.get(t); - return e && e.image - } - return t - } - - function Dr(t, e, n, i, r) { - if (t) { - if ("string" == typeof t) { - if (e && e.__zrImageSrc === t || !n) return e; - var o = Cw.get(t), a = {hostEl: n, cb: i, cbPayload: r}; - return o ? (e = o.image, !Lr(e) && o.pending.push(a)) : (e = new Image, e.onload = e.onerror = kr, Cw.put(t, e.__cachedImgObj = { - image: e, - pending: [a] - }), e.src = e.__zrImageSrc = t), e - } - return t - } - return e - } - - function kr() { - var t = this.__cachedImgObj; - this.onload = this.onerror = this.__cachedImgObj = null; - for (var e = 0; e < t.pending.length; e++) { - var n = t.pending[e], i = n.cb; - i && i(this, n.cbPayload), n.hostEl.dirty() - } - t.pending.length = 0 - } - - function Lr(t) { - return t && t.width && t.height - } - - function Pr(t, e, n, i, r) { - if (!e) return ""; - var o = (t + "").split("\n"); - r = Or(e, n, i, r); - for (var a = 0, s = o.length; s > a; a++) o[a] = Rr(o[a], r); - return o.join("\n") - } - - function Or(t, e, n, i) { - i = i || {}; - var r = h({}, i); - r.font = e, n = N(n, "..."), r.maxIterations = N(i.maxIterations, 2); - var o = r.minChar = N(i.minChar, 0); - r.cnCharWidth = On("国", e); - var a = r.ascCharWidth = On("a", e); - r.placeholder = N(i.placeholder, ""); - for (var s = t = Math.max(0, t - 1), l = 0; o > l && s >= a; l++) s -= a; - var u = On(n, e); - return u > s && (n = "", u = 0), s = t - u, r.ellipsis = n, r.ellipsisWidth = u, r.contentWidth = s, r.containerWidth = t, r - } - - function Rr(t, e) { - var n = e.containerWidth, i = e.font, r = e.contentWidth; - if (!n) return ""; - var o = On(t, i); - if (n >= o) return t; - for (var a = 0; ; a++) { - if (r >= o || a >= e.maxIterations) { - t += e.ellipsis; - break - } - var s = 0 === a ? Er(t, r, e.ascCharWidth, e.cnCharWidth) : o > 0 ? Math.floor(t.length * r / o) : 0; - t = t.substr(0, s), o = On(t, i) - } - return "" === t && (t = e.placeholder), t - } - - function Er(t, e, n, i) { - for (var r = 0, o = 0, a = t.length; a > o && e > r; o++) { - var s = t.charCodeAt(o); - r += s >= 0 && 127 >= s ? n : i - } - return o - } - - function zr(t, e) { - null != t && (t += ""); - var n, i = e.overflow, r = e.padding, o = e.font, a = "truncate" === i, s = Nn(o), l = N(e.lineHeight, s), - u = "truncate" === e.lineOverflow, h = e.width; - n = null != h && "break" === i || "breakAll" === i ? t ? Vr(t, e.font, h, "breakAll" === i, 0).lines : [] : t ? t.split("\n") : []; - var c = n.length * l, p = N(e.height, c); - if (c > p && u) { - var f = Math.floor(p / l); - n = n.slice(0, f) - } - var d = p, g = h; - if (r && (d += r[0] + r[2], null != g && (g += r[1] + r[3])), t && a && null != g) for (var y = Or(h, o, e.ellipsis, { - minChar: e.truncateMinChar, - placeholder: e.placeholder - }), v = 0; v < n.length; v++) n[v] = Rr(n[v], y); - if (null == h) { - for (var m = 0, v = 0; v < n.length; v++) m = Math.max(On(n[v], o), m); - h = m - } - return {lines: n, height: p, outerHeight: d, lineHeight: l, calculatedLineHeight: s, contentHeight: c, width: h} - } - - function Br(t, e) { - function n(t, e, n) { - t.width = e, t.lineHeight = n, p += n, f = Math.max(f, e) - } - - var i = new kw; - if (null != t && (t += ""), !t) return i; - for (var r, o = e.width, a = e.height, s = e.overflow, l = "break" !== s && "breakAll" !== s || null == o ? null : { - width: o, - accumWidth: 0, - breakAll: "breakAll" === s - }, u = Iw.lastIndex = 0; null != (r = Iw.exec(t));) { - var h = r.index; - h > u && Nr(i, t.substring(u, h), e, l), Nr(i, r[2], e, l, r[1]), u = Iw.lastIndex - } - u < t.length && Nr(i, t.substring(u, t.length), e, l); - var c = [], p = 0, f = 0, d = e.padding, g = "truncate" === s, y = "truncate" === e.lineOverflow; - t:for (var v = 0; v < i.lines.length; v++) { - for (var m = i.lines[v], _ = 0, x = 0, w = 0; w < m.tokens.length; w++) { - var b = m.tokens[w], S = b.styleName && e.rich[b.styleName] || {}, T = b.textPadding = S.padding, - M = T ? T[1] + T[3] : 0, C = b.font = S.font || e.font; - b.contentHeight = Nn(C); - var I = N(S.height, b.contentHeight); - if (b.innerHeight = I, T && (I += T[0] + T[2]), b.height = I, b.lineHeight = F(S.lineHeight, e.lineHeight, I), b.align = S && S.align || e.align, b.verticalAlign = S && S.verticalAlign || "middle", y && null != a && p + b.lineHeight > a) { - w > 0 ? (m.tokens = m.tokens.slice(0, w), n(m, x, _), i.lines = i.lines.slice(0, v + 1)) : i.lines = i.lines.slice(0, v); - break t - } - var A = S.width, D = null == A || "auto" === A; - if ("string" == typeof A && "%" === A.charAt(A.length - 1)) b.percentWidth = A, c.push(b), b.contentWidth = On(b.text, C); else { - if (D) { - var k = S.backgroundColor, L = k && k.image; - L && (L = Ar(L), Lr(L) && (b.width = Math.max(b.width, L.width * I / L.height))) - } - var P = g && null != o ? o - x : null; - null != P && P < b.width ? !D || M > P ? (b.text = "", b.width = b.contentWidth = 0) : (b.text = Pr(b.text, P - M, C, e.ellipsis, {minChar: e.truncateMinChar}), b.width = b.contentWidth = On(b.text, C)) : b.contentWidth = On(b.text, C) - } - b.width += M, x += b.width, S && (_ = Math.max(_, b.lineHeight)) - } - n(m, x, _) - } - i.outerWidth = i.width = N(o, f), i.outerHeight = i.height = N(a, p), i.contentHeight = p, i.contentWidth = f, d && (i.outerWidth += d[1] + d[3], i.outerHeight += d[0] + d[2]); - for (var v = 0; v < c.length; v++) { - var b = c[v], O = b.percentWidth; - b.width = parseInt(O, 10) / 100 * i.width - } - return i - } - - function Nr(t, e, n, i, r) { - var o, a, s = "" === e, l = r && n.rich[r] || {}, u = t.lines, h = l.font || n.font, c = !1; - if (i) { - var p = l.padding, f = p ? p[1] + p[3] : 0; - if (null != l.width && "auto" !== l.width) { - var d = Gr(l.width, i.width) + f; - u.length > 0 && d + i.accumWidth > i.width && (o = e.split("\n"), c = !0), i.accumWidth = d - } else { - var g = Vr(e, h, i.width, i.breakAll, i.accumWidth); - i.accumWidth = g.accumWidth + f, a = g.linesWidths, o = g.lines - } - } else o = e.split("\n"); - for (var y = 0; y < o.length; y++) { - var v = o[y], m = new Aw; - if (m.styleName = r, m.text = v, m.isLineHolder = !v && !s, m.width = "number" == typeof l.width ? l.width : a ? a[y] : On(v, h), y || c) u.push(new Dw([m])); else { - var _ = (u[u.length - 1] || (u[0] = new Dw)).tokens, x = _.length; - 1 === x && _[0].isLineHolder ? _[0] = m : (v || !x || s) && _.push(m) - } - } - } - - function Fr(t) { - var e = t.charCodeAt(0); - return e >= 33 && 255 >= e - } - - function Hr(t) { - return Fr(t) ? Lw[t] ? !0 : !1 : !0 - } - - function Vr(t, e, n, i, r) { - for (var o = [], a = [], s = "", l = "", u = 0, h = 0, c = 0; c < t.length; c++) { - var p = t.charAt(c); - if ("\n" !== p) { - var f = On(p, e), d = i ? !1 : !Hr(p); - (o.length ? h + f > n : r + h + f > n) ? h ? (s || l) && (d ? (s || (s = l, l = "", u = 0, h = u), o.push(s), a.push(h - u), l += p, u += f, s = "", h = u) : (l && (s += l, h += u, l = "", u = 0), o.push(s), a.push(h), s = p, h = f)) : d ? (o.push(l), a.push(u), l = p, u = f) : (o.push(p), a.push(f)) : (h += f, d ? (l += p, u += f) : (l && (s += l, l = "", u = 0), s += p)) - } else l && (s += l, h += u), o.push(s), a.push(h), s = "", l = "", u = 0, h = 0 - } - return o.length || s || (s = t, l = "", u = 0), l && (s += l), s && (o.push(s), a.push(h)), 1 === o.length && (h += r), { - accumWidth: h, - lines: o, - linesWidths: a - } - } - - function Gr(t, e) { - return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t - } - - function Wr(t) { - return Xr(t), y(t.rich, Xr), t - } - - function Xr(t) { - if (t) { - t.font = Ew.makeFont(t); - var e = t.align; - "middle" === e && (e = "center"), t.align = null == e || zw[e] ? e : "left"; - var n = t.verticalAlign; - "center" === n && (n = "middle"), t.verticalAlign = null == n || Bw[n] ? n : "top"; - var i = t.padding; - i && (t.padding = V(t.padding)) - } - } - - function Yr(t, e) { - return null == t || 0 >= e || "transparent" === t || "none" === t ? null : t.image || t.colorStops ? "#000" : t - } - - function Ur(t) { - return null == t || "none" === t ? null : t.image || t.colorStops ? "#000" : t - } - - function qr(t, e, n) { - return "right" === e ? t - n[1] : "center" === e ? t + n[3] / 2 - n[1] / 2 : t + n[3] - } - - function jr(t) { - var e = t.text; - return null != e && (e += ""), e - } - - function Zr(t) { - return !!(t.backgroundColor || t.borderWidth && t.borderColor) - } - - function Kr(t, e, n) { - var i = t.cpx2, r = t.cpy2; - return null === i || null === r ? [(n ? gi : di)(t.x1, t.cpx1, t.cpx2, t.x2, e), (n ? gi : di)(t.y1, t.cpy1, t.cpy2, t.y2, e)] : [(n ? bi : wi)(t.x1, t.cpx1, t.x2, e), (n ? bi : wi)(t.y1, t.cpy1, t.y2, e)] - } - - function $r(t) { - delete bb[t] - } - - function Jr(t) { - if (!t) return !1; - if ("string" == typeof t) return yn(t, 1) < qm; - if (t.colorStops) { - for (var e = t.colorStops, n = 0, i = e.length, r = 0; i > r; r++) n += yn(e[r].color, 1); - return n /= i, qm > n - } - return !1 - } - - function Qr(t, e) { - var n = new Sb(o(), t, e); - return bb[n.id] = n, n - } - - function to(t) { - t.dispose() - } - - function eo() { - for (var t in bb) bb.hasOwnProperty(t) && bb[t].dispose(); - bb = {} - } - - function no(t) { - return bb[t] - } - - function io(t, e) { - wb[t] = e - } - - function ro(t) { - return t.replace(/^\s+|\s+$/g, "") - } - - function oo(t, e, n, i) { - var r = e[1] - e[0], o = n[1] - n[0]; - if (0 === r) return 0 === o ? n[0] : (n[0] + n[1]) / 2; - if (i) if (r > 0) { - if (t <= e[0]) return n[0]; - if (t >= e[1]) return n[1] - } else { - if (t >= e[0]) return n[0]; - if (t <= e[1]) return n[1] - } else { - if (t === e[0]) return n[0]; - if (t === e[1]) return n[1] - } - return (t - e[0]) / r * o + n[0] - } - - function ao(t, e) { - switch (t) { - case"center": - case"middle": - t = "50%"; - break; - case"left": - case"top": - t = "0%"; - break; - case"right": - case"bottom": - t = "100%" - } - return "string" == typeof t ? ro(t).match(/%$/) ? parseFloat(t) / 100 * e : parseFloat(t) : null == t ? 0 / 0 : +t - } - - function so(t, e, n) { - return null == e && (e = 10), e = Math.min(Math.max(0, e), 20), t = (+t).toFixed(e), n ? t : +t - } - - function lo(t) { - return t.sort(function (t, e) { - return t - e - }), t - } - - function uo(t) { - if (t = +t, isNaN(t)) return 0; - for (var e = 1, n = 0; Math.round(t * e) / e !== t;) e *= 10, n++; - return n - } - - function ho(t) { - var e = t.toString(), n = e.indexOf("e"); - if (n > 0) { - var i = +e.slice(n + 1); - return 0 > i ? -i : 0 - } - var r = e.indexOf("."); - return 0 > r ? 0 : e.length - 1 - r - } - - function co(t, e) { - var n = Math.log, i = Math.LN10, r = Math.floor(n(t[1] - t[0]) / i), - o = Math.round(n(Math.abs(e[1] - e[0])) / i), a = Math.min(Math.max(-r + o, 0), 20); - return isFinite(a) ? a : 20 - } - - function po(t, e, n) { - if (!t[e]) return 0; - var i = m(t, function (t, e) { - return t + (isNaN(e) ? 0 : e) - }, 0); - if (0 === i) return 0; - for (var r = Math.pow(10, n), o = v(t, function (t) { - return (isNaN(t) ? 0 : t) / i * r * 100 - }), a = 100 * r, s = v(o, function (t) { - return Math.floor(t) - }), l = m(s, function (t, e) { - return t + e - }, 0), u = v(o, function (t, e) { - return t - s[e] - }); a > l;) { - for (var h = Number.NEGATIVE_INFINITY, c = null, p = 0, f = u.length; f > p; ++p) u[p] > h && (h = u[p], c = p); - ++s[c], u[c] = 0, ++l - } - return s[e] / r - } - - function fo(t) { - var e = 2 * Math.PI; - return (t % e + e) % e - } - - function go(t) { - return t > -Cb && Cb > t - } - - function yo(t) { - if (t instanceof Date) return t; - if ("string" == typeof t) { - var e = Ab.exec(t); - if (!e) return new Date(0 / 0); - if (e[8]) { - var n = +e[4] || 0; - return "Z" !== e[8].toUpperCase() && (n -= +e[8].slice(0, 3)), new Date(Date.UTC(+e[1], +(e[2] || 1) - 1, +e[3] || 1, n, +(e[5] || 0), +e[6] || 0, +e[7] || 0)) - } - return new Date(+e[1], +(e[2] || 1) - 1, +e[3] || 1, +e[4] || 0, +(e[5] || 0), +e[6] || 0, +e[7] || 0) - } - return new Date(null == t ? 0 / 0 : Math.round(t)) - } - - function vo(t) { - return Math.pow(10, mo(t)) - } - - function mo(t) { - if (0 === t) return 0; - var e = Math.floor(Math.log(t) / Math.LN10); - return t / Math.pow(10, e) >= 10 && e++, e - } - - function _o(t, e) { - var n, i = mo(t), r = Math.pow(10, i), o = t / r; - return n = e ? 1.5 > o ? 1 : 2.5 > o ? 2 : 4 > o ? 3 : 7 > o ? 5 : 10 : 1 > o ? 1 : 2 > o ? 2 : 3 > o ? 3 : 5 > o ? 5 : 10, t = n * r, i >= -20 ? +t.toFixed(0 > i ? -i : 0) : t - } - - function xo(t, e) { - var n = (t.length - 1) * e + 1, i = Math.floor(n), r = +t[i - 1], o = n - i; - return o ? r + o * (t[i] - r) : r - } - - function wo(t) { - function e(t, n, i) { - return t.interval[i] < n.interval[i] || t.interval[i] === n.interval[i] && (t.close[i] - n.close[i] === (i ? -1 : 1) || !i && e(t, n, 1)) - } - - t.sort(function (t, n) { - return e(t, n, 0) ? -1 : 1 - }); - for (var n = -1 / 0, i = 1, r = 0; r < t.length;) { - for (var o = t[r].interval, a = t[r].close, s = 0; 2 > s; s++) o[s] <= n && (o[s] = n, a[s] = s ? 1 : 1 - i), n = o[s], i = a[s]; - o[0] === o[1] && a[0] * a[1] !== 1 ? t.splice(r, 1) : r++ - } - return t - } - - function bo(t) { - var e = parseFloat(t); - return e == t && (0 !== e || "string" != typeof t || t.indexOf("x") <= 0) ? e : 0 / 0 - } - - function So(t) { - return !isNaN(bo(t)) - } - - function To() { - return Math.round(9 * Math.random()) - } - - function Mo(t, e) { - return 0 === e ? t : Mo(e, t % e) - } - - function Co(t, e) { - return null == t ? e : null == e ? t : t * e / Mo(t, e) - } - - function Io(t) { - throw new Error(t) - } - - function Ao(t) { - return t instanceof Array ? t : null == t ? [] : [t] - } - - function Do(t, e, n) { - if (t) { - t[e] = t[e] || {}, t.emphasis = t.emphasis || {}, t.emphasis[e] = t.emphasis[e] || {}; - for (var i = 0, r = n.length; r > i; i++) { - var o = n[i]; - !t.emphasis[e].hasOwnProperty(o) && t[e].hasOwnProperty(o) && (t.emphasis[e][o] = t[e][o]) - } - } - } - - function ko(t) { - return !D(t) || T(t) || t instanceof Date ? t : t.value - } - - function Lo(t) { - return D(t) && !(t instanceof Array) - } - - function Po(t, e, n) { - var i = "normalMerge" === n, r = "replaceMerge" === n, o = "replaceAll" === n; - t = t || [], e = (e || []).slice(); - var a = U(); - y(e, function (t, n) { - return D(t) ? void 0 : void (e[n] = null) - }); - var s = Oo(t, a, n); - return (i || r) && Ro(s, t, a, e), i && Eo(s, e), i || r ? zo(s, e, r) : o && Bo(s, e), No(s), s - } - - function Oo(t, e, n) { - var i = []; - if ("replaceAll" === n) return i; - for (var r = 0; r < t.length; r++) { - var o = t[r]; - o && null != o.id && e.set(o.id, r), i.push({ - existing: "replaceMerge" === n || Wo(o) ? null : o, - newOption: null, - keyInfo: null, - brandNew: null - }) - } - return i - } - - function Ro(t, e, n, i) { - y(i, function (r, o) { - if (r && null != r.id) { - var a = Ho(r.id), s = n.get(a); - if (null != s) { - var l = t[s]; - G(!l.newOption, 'Duplicated option on id "' + a + '".'), l.newOption = r, l.existing = e[s], i[o] = null - } - } - }) - } - - function Eo(t, e) { - y(e, function (n, i) { - if (n && null != n.name) for (var r = 0; r < t.length; r++) { - var o = t[r].existing; - if (!t[r].newOption && o && (null == o.id || null == n.id) && !Wo(n) && !Wo(o) && Fo("name", o, n)) return t[r].newOption = n, void (e[i] = null) - } - }) - } - - function zo(t, e, n) { - y(e, function (e) { - if (e) { - for (var i, r = 0; (i = t[r]) && (i.newOption || Wo(i.existing) || i.existing && null != e.id && !Fo("id", e, i.existing));) r++; - i ? (i.newOption = e, i.brandNew = n) : t.push({ - newOption: e, - brandNew: n, - existing: null, - keyInfo: null - }), r++ - } - }) - } - - function Bo(t, e) { - y(e, function (e) { - t.push({newOption: e, brandNew: !0, existing: null, keyInfo: null}) - }) - } - - function No(t) { - var e = U(); - y(t, function (t) { - var n = t.existing; - n && e.set(n.id, t) - }), y(t, function (t) { - var n = t.newOption; - G(!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 = {}) - }), y(t, function (t, n) { - var i = t.existing, r = t.newOption, o = t.keyInfo; - if (D(r)) { - if (o.name = null != r.name ? Ho(r.name) : i ? i.name : kb + n, i) o.id = Ho(i.id); else if (null != r.id) o.id = Ho(r.id); else { - var a = 0; - do o.id = "\x00" + o.name + "\x00" + a++; while (e.get(o.id)) - } - e.set(o.id, t) - } - }) - } - - function Fo(t, e, n) { - var i = Vo(e[t], null), r = Vo(n[t], null); - return null != i && null != r && i === r - } - - function Ho(t) { - return Vo(t, "") - } - - function Vo(t, e) { - if (null == t) return e; - var n = typeof t; - return "string" === n ? t : "number" === n || I(t) ? t + "" : e - } - - function Go(t) { - var e = t.name; - return !(!e || !e.indexOf(kb)) - } - - function Wo(t) { - return t && null != t.id && 0 === Ho(t.id).indexOf(Lb) - } - - function Xo(t, e, n) { - y(t, function (t) { - var i = t.newOption; - D(i) && (t.keyInfo.mainType = e, t.keyInfo.subType = Yo(e, i, t.existing, n)) - }) - } - - function Yo(t, e, n, i) { - var r = e.type ? e.type : n ? n.subType : i.determineSubType(t, e); - return r - } - - function Uo(t, e) { - return null != e.dataIndexInside ? e.dataIndexInside : null != e.dataIndex ? T(e.dataIndex) ? v(e.dataIndex, function (e) { - return t.indexOfRawIndex(e) - }) : t.indexOfRawIndex(e.dataIndex) : null != e.name ? T(e.name) ? v(e.name, function (e) { - return t.indexOfName(e) - }) : t.indexOfName(e.name) : void 0 - } - - function qo() { - var t = "__ec_inner_" + Ob++; - return function (e) { - return e[t] || (e[t] = {}) - } - } - - function jo(t, e, n) { - var i; - if (C(e)) { - var r = {}; - r[e + "Index"] = 0, i = r - } else i = e; - var o = U(), a = {}, s = !1; - y(i, function (t, e) { - if ("dataIndex" === e || "dataIndexInside" === e) return void (a[e] = t); - var i = e.match(/^(\w+)(Index|Id|Name)$/) || [], r = i[1], l = (i[2] || "").toLowerCase(); - if (r && l && !(n && n.includeMainTypes && p(n.includeMainTypes, r) < 0)) { - s = s || !!r; - var u = o.get(r) || o.set(r, {}); - u[l] = t - } - }); - var l = n ? n.defaultMainType : null; - return !s && l && o.set(l, {}), o.each(function (e, i) { - var r = Zo(t, i, e, { - useDefault: l === i, - enableAll: n && null != n.enableAll ? n.enableAll : !0, - enableNone: n && null != n.enableNone ? n.enableNone : !0 - }); - a[i + "Models"] = r.models, a[i + "Model"] = r.models[0] - }), a - } - - function Zo(t, e, n, i) { - i = i || Rb; - var r = n.index, o = n.id, a = n.name, s = {models: null, specified: null != r || null != o || null != a}; - if (!s.specified) { - var l = void 0; - return s.models = i.useDefault && (l = t.getComponent(e)) ? [l] : [], s - } - return "none" === r || r === !1 ? (G(i.enableNone, '`"none"` or `false` is not a valid value on index option.'), s.models = [], s) : ("all" === r && (G(i.enableAll, '`"all"` is not a valid value on index option.'), r = o = a = null), s.models = t.queryComponents({ - mainType: e, - index: r, - id: o, - name: a - }), s) - } - - function Ko(t, e, n) { - t.setAttribute ? t.setAttribute(e, n) : t[e] = n - } - - function $o(t, e) { - return t.getAttribute ? t.getAttribute(e) : t[e] - } - - function Jo(t) { - return "auto" === t ? wv.domSupported ? "html" : "richText" : t || "html" - } - - function Qo(t, e, n, i, r) { - var o = null == e || "auto" === e; - if (null == i) return i; - if ("number" == typeof i) { - var a = mn(n || 0, i, r); - return so(a, o ? Math.max(ho(n || 0), ho(i)) : e) - } - if ("string" == typeof i) return 1 > r ? n : i; - for (var s = [], l = n || [], u = i, h = Math.max(l.length, u.length), c = 0; h > c; ++c) { - var p = t.getDimensionInfo(c); - if ("ordinal" === p.type) s[c] = (1 > r ? l : u)[c]; else { - var f = l && l[c] ? l[c] : 0, d = u[c], a = null == l ? i[c] : mn(f, d, r); - s[c] = so(a, o ? Math.max(ho(f), ho(d)) : e) - } - } - return s - } - - function ta(t) { - var e = {main: "", sub: ""}; - if (t) { - var n = t.split(Eb); - e.main = n[0] || "", e.sub = n[1] || "" - } - return e - } - - function ea(t) { - G(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t), 'componentType "' + t + '" illegal') - } - - function na(t) { - return !(!t || !t[Bb]) - } - - function ia(t) { - t.$constructor = t, t.extend = function (t) { - function e() { - for (var r = [], o = 0; o < arguments.length; o++) r[o] = arguments[o]; - if (t.$constructor) t.$constructor.apply(this, arguments); else { - if (ra(i)) { - var a = j(e.prototype, new (i.bind.apply(i, n([void 0], r)))); - return a - } - i.apply(this, arguments) - } - } - - var i = this; - return e[Bb] = !0, h(e.prototype, t), e.extend = this.extend, e.superCall = sa, e.superApply = la, f(e, this), e.superClass = i, e - } - } - - function ra(t) { - return "function" == typeof t && /^class\s/.test(Function.prototype.toString.call(t)) - } - - function oa(t, e) { - t.extend = e.extend - } - - function aa(t) { - var e = ["__\x00is_clz", Nb++].join("_"); - t.prototype[e] = !0, t.isInstance = function (t) { - return !(!t || !t[e]) - } - } - - function sa(t, e) { - for (var n = [], i = 2; i < arguments.length; i++) n[i - 2] = arguments[i]; - return this.superClass.prototype[e].apply(t, n) - } - - function la(t, e, n) { - return this.superClass.prototype[e].apply(t, n) - } - - function ua(t, e) { - function n(t) { - var e = i[t.main]; - return e && e[zb] || (e = i[t.main] = {}, e[zb] = !0), e - } - - e = e || {}; - var i = {}; - if (t.registerClass = function (t) { - var e = t.type || t.prototype.type; - if (e) { - ea(e), t.prototype.type = e; - var r = ta(e); - if (r.sub) { - if (r.sub !== zb) { - var o = n(r); - o[r.sub] = t - } - } else i[r.main] = t - } - return t - }, t.getClass = function (t, e, n) { - var r = i[t]; - if (r && r[zb] && (r = e ? r[e] : null), n && !r) throw new Error(e ? "Component " + t + "." + (e || "") + " not exists. Load it first." : t + ".type should be specified."); - return r - }, t.getClassesByMainType = function (t) { - var e = ta(t), n = [], r = i[e.main]; - return r && r[zb] ? y(r, function (t, e) { - e !== zb && n.push(t) - }) : n.push(r), n - }, t.hasClass = function (t) { - var e = ta(t); - return !!i[e.main] - }, t.getAllClassMainTypes = function () { - var t = []; - return y(i, function (e, n) { - t.push(n) - }), t - }, t.hasSubTypes = function (t) { - var e = ta(t), n = i[e.main]; - return n && n[zb] - }, e.registerWhenExtend) { - var r = t.extend; - r && (t.extend = function (e) { - var n = r.call(this, e); - return t.registerClass(n) - }) - } - } - - function ha(t, e) { - for (var n = 0; n < t.length; n++) t[n][1] || (t[n][1] = t[n][0]); - return e = e || !1, function (n, i, r) { - for (var o = {}, a = 0; a < t.length; a++) { - var s = t[a][1]; - if (!(i && p(i, s) >= 0 || r && p(r, s) < 0)) { - var l = n.getShallow(s, e); - null != l && (o[t[a][0]] = l) - } - } - return o - } - } - - function ca(t) { - return null != t && "none" !== t - } - - function pa(t) { - if ("string" != typeof t) return t; - var e = rS.get(t); - return e || (e = un(t, -.1), rS.put(t, e)), e - } - - function fa(t, e, n) { - t.onHoverStateChange && (t.hoverState || 0) !== n && t.onHoverStateChange(e), t.hoverState = n - } - - function da(t) { - fa(t, "emphasis", jb) - } - - function ga(t) { - t.hoverState === jb && fa(t, "normal", Ub) - } - - function ya(t) { - fa(t, "blur", qb) - } - - function va(t) { - t.hoverState === qb && fa(t, "normal", Ub) - } - - function ma(t) { - t.selected = !0 - } - - function _a(t) { - t.selected = !1 - } - - function xa(t, e, n) { - e(t, n) - } - - function wa(t, e, n) { - xa(t, e, n), t.isGroup && t.traverse(function (t) { - xa(t, e, n) - }) - } - - function ba(t, e) { - switch (e) { - case"emphasis": - t.hoverState = jb; - break; - case"normal": - t.hoverState = Ub; - break; - case"blur": - t.hoverState = qb; - break; - case"select": - t.selected = !0 - } - } - - function Sa(t, e, n, i) { - for (var r = t.style, o = {}, a = 0; a < e.length; a++) { - var s = e[a], l = r[s]; - o[s] = null == l ? i && i[s] : l - } - for (var a = 0; a < t.animators.length; a++) { - var u = t.animators[a]; - u.__fromStateTransition && u.__fromStateTransition.indexOf(n) < 0 && "style" === u.targetName && u.saveFinalToTarget(o, e) - } - return o - } - - function Ta(t, e, n, i) { - var r = n && p(n, "select") >= 0, o = !1; - if (t instanceof xx) { - var a = Yb(t), s = r ? a.selectFill || a.normalFill : a.normalFill, - l = r ? a.selectStroke || a.normalStroke : a.normalStroke; - if (ca(s) || ca(l)) { - i = i || {}; - var u = i.style || {}; - !ca(u.fill) && ca(s) ? (o = !0, i = h({}, i), u = h({}, u), u.fill = pa(s)) : !ca(u.stroke) && ca(l) && (o || (i = h({}, i), u = h({}, u)), u.stroke = pa(l)), i.style = u - } - } - if (i && null == i.z2) { - o || (i = h({}, i)); - var c = t.z2EmphasisLift; - i.z2 = t.z2 + (null != c ? c : $b) - } - return i - } - - function Ma(t, e, n) { - if (n && null == n.z2) { - n = h({}, n); - var i = t.z2SelectLift; - n.z2 = t.z2 + (null != i ? i : Jb) - } - return n - } - - function Ca(t, e, n) { - var i = p(t.currentStates, e) >= 0, r = t.style.opacity, o = i ? null : Sa(t, ["opacity"], e, {opacity: 1}); - n = n || {}; - var a = n.style || {}; - return null == a.opacity && (n = h({}, n), a = h({opacity: i ? r : .1 * o.opacity}, a), n.style = a), n - } - - function Ia(t, e) { - var n = this.states[t]; - if (this.style) { - if ("emphasis" === t) return Ta(this, t, e, n); - if ("blur" === t) return Ca(this, t, n); - if ("select" === t) return Ma(this, t, n) - } - return n - } - - function Aa(t) { - t.stateProxy = Ia; - var e = t.getTextContent(), n = t.getTextGuideLine(); - e && (e.stateProxy = Ia), n && (n.stateProxy = Ia) - } - - function Da(t, e) { - !Ba(t, e) && !t.__highByOuter && wa(t, da) - } - - function ka(t, e) { - !Ba(t, e) && !t.__highByOuter && wa(t, ga) - } - - function La(t, e) { - t.__highByOuter |= 1 << (e || 0), wa(t, da) - } - - function Pa(t, e) { - !(t.__highByOuter &= ~(1 << (e || 0))) && wa(t, ga) - } - - function Oa(t) { - wa(t, ya) - } - - function Ra(t) { - wa(t, va) - } - - function Ea(t) { - wa(t, ma) - } - - function za(t) { - wa(t, _a) - } - - function Ba(t, e) { - return t.__highDownSilentOnTouch && e.zrByTouch - } - - function Na(t) { - var e = t.getModel(); - e.eachComponent(function (e, n) { - var i = "series" === e ? t.getViewOfSeriesModel(n) : t.getViewOfComponentModel(n); - i.group.traverse(function (t) { - va(t) - }) - }) - } - - function Fa(t, e, n, i, r) { - function o(t, e) { - for (var n = 0; n < e.length; n++) { - var i = t.getItemGraphicEl(e[n]); - i && Ra(i) - } - } - - var a = i.getModel(); - if (n = n || "coordinateSystem", !r) return void Na(i); - if (null != t && e && "none" !== e) { - var s = a.getSeriesByIndex(t), l = s.coordinateSystem; - l && l.master && (l = l.master); - var u = []; - a.eachSeries(function (t) { - var r = s === t, a = t.coordinateSystem; - a && a.master && (a = a.master); - var h = a && l ? a === l : r; - if (!("series" === n && !r || "coordinateSystem" === n && !h || "series" === e && r)) { - var c = i.getViewOfSeriesModel(t); - if (c.group.traverse(function (t) { - ya(t) - }), g(e)) o(t.getData(), e); else if (D(e)) for (var p = w(e), f = 0; f < p.length; f++) o(t.getData(p[f]), e[p[f]]); - u.push(t) - } - }), a.eachComponent(function (t, e) { - if ("series" !== t) { - var n = i.getViewOfComponentModel(e); - n && n.blurSeries && n.blurSeries(u, a) - } - }) - } - } - - function Ha(t, e, n) { - if ($a(e)) { - var i = e.type === Qb, r = t.seriesIndex, o = t.getData(e.dataType), a = Uo(o, e); - a = (T(a) ? a[0] : a) || 0; - var s = o.getItemGraphicEl(a); - if (!s) for (var l = o.count(), u = 0; !s && l > u;) s = o.getItemGraphicEl(u++); - if (s) { - var h = Gb(s); - Fa(r, h.focus, h.blurScope, n, i) - } else { - var c = t.get(["emphasis", "focus"]), p = t.get(["emphasis", "blurScope"]); - null != c && Fa(r, c, p, n, i) - } - } - } - - function Va(t, e) { - if (Ka(e)) { - var n = e.dataType, i = t.getData(n), r = Uo(i, e); - T(r) || (r = [r]), t[e.type === iS ? "toggleSelect" : e.type === eS ? "select" : "unselect"](r, n) - } - } - - function Ga(t) { - var e = t.getAllData(); - y(e, function (e) { - var n = e.data, i = e.type; - n.eachItemGraphicEl(function (e, n) { - t.isSelected(n, i) ? Ea(e) : za(e) - }) - }) - } - - function Wa(t) { - var e = []; - return t.eachSeries(function (t) { - var n = t.getAllData(); - y(n, function (n) { - var i = (n.data, n.type), r = t.getSelectedDataIndices(); - if (r.length > 0) { - var o = {dataIndex: r, seriesIndex: t.seriesIndex}; - null != i && (o.dataType = i), e.push(o) - } - }) - }), e - } - - function Xa(t, e, n) { - qa(t, !0), wa(t, Aa), Ya(t, e, n) - } - - function Ya(t, e, n) { - var i = Gb(t); - null != e ? (i.focus = e, i.blurScope = n) : i.focus && (i.focus = null) - } - - function Ua(t, e, n, i) { - n = n || "itemStyle"; - for (var r = 0; r < oS.length; r++) { - var o = oS[r], a = e.getModel([o, n]), s = t.ensureState(o); - s.style = i ? i(a) : a[aS[n]]() - } - } - - function qa(t, e) { - var n = e === !1, i = t; - t.highDownSilentOnTouch && (i.__highDownSilentOnTouch = t.highDownSilentOnTouch), (!n || i.__highDownDispatcher) && (i.__highByOuter = i.__highByOuter || 0, i.__highDownDispatcher = !n) - } - - function ja(t) { - return !(!t || !t.__highDownDispatcher) - } - - function Za(t) { - var e = Xb[t]; - return null == e && 32 >= Wb && (e = Xb[t] = Wb++), e - } - - function Ka(t) { - var e = t.type; - return e === eS || e === nS || e === iS - } - - function $a(t) { - var e = t.type; - return e === Qb || e === tS - } - - function Ja(t) { - var e = Yb(t); - e.normalFill = t.style.fill, e.normalStroke = t.style.stroke; - var n = t.states.select || {}; - e.selectFill = n.style && n.style.fill || null, e.selectStroke = n.style && n.style.stroke || null - } - - function Qa(t) { - return xx.extend(t) - } - - function ts(t, e) { - return hS(t, e) - } - - function es(t, e) { - uS[t] = e - } - - function ns(t) { - return uS.hasOwnProperty(t) ? uS[t] : void 0 - } - - function is(t, e, n, i) { - var r = ir(t, e); - return n && ("center" === i && (n = os(n, r.getBoundingRect())), as(r, n)), r - } - - function rs(t, e, n) { - var i = new zx({ - style: {image: t, x: e.x, y: e.y, width: e.width, height: e.height}, onload: function (t) { - if ("center" === n) { - var r = {width: t.width, height: t.height}; - i.setStyle(os(e, r)) - } - } - }); - return i - } - - function os(t, e) { - var n, i = e.width / e.height, r = t.height * i; - r <= t.width ? n = t.height : (r = t.width, n = r / i); - var o = t.x + t.width / 2, a = t.y + t.height / 2; - return {x: o - r / 2, y: a - n / 2, width: r, height: n} - } - - function as(t, e) { - if (t.applyTransform) { - var n = t.getBoundingRect(), i = n.calculateTransform(e); - t.applyTransform(i) - } - } - - function ss(t) { - return lr(t.shape, t.shape, t.style), t - } - - function ls(t) { - return ur(t.shape, t.shape, t.style), t - } - - function us(t, e, n, i, r, o, a) { - var s, l = !1; - "function" == typeof r ? (a = o, o = r, r = null) : D(r) && (o = r.cb, a = r.during, l = r.isFrom, s = r.removeOpt, r = r.dataIndex); - var u, h = "update" === t, c = "remove" === t; - if (i && i.ecModel) { - var p = i.ecModel.getUpdatePayload(); - u = p && p.animation - } - var f = i && i.isAnimationEnabled(); - if (c || e.stopAnimation("remove"), f) { - var d = void 0, g = void 0, y = void 0; - u ? (d = u.duration || 0, g = u.easing || "cubicOut", y = u.delay || 0) : c ? (s = s || {}, d = N(s.duration, 200), g = N(s.easing, "cubicOut"), y = 0) : (d = i.getShallow(h ? "animationDurationUpdate" : "animationDuration"), g = i.getShallow(h ? "animationEasingUpdate" : "animationEasing"), y = i.getShallow(h ? "animationDelayUpdate" : "animationDelay")), "function" == typeof y && (y = y(r, i.getAnimationDelayParams ? i.getAnimationDelayParams(e, r) : null)), "function" == typeof d && (d = d(r)), d > 0 ? l ? e.animateFrom(n, { - duration: d, - delay: y || 0, - easing: g, - done: o, - force: !!o || !!a, - scope: t, - during: a - }) : e.animateTo(n, { - duration: d, - delay: y || 0, - easing: g, - done: o, - force: !!o || !!a, - setToFinal: !0, - scope: t, - during: a - }) : (e.stopAnimation(), !l && e.attr(n), o && o()) - } else e.stopAnimation(), !l && e.attr(n), a && a(1), o && o() - } - - function hs(t, e, n, i, r, o) { - us("update", t, e, n, i, r, o) - } - - function cs(t, e, n, i, r, o) { - us("init", t, e, n, i, r, o) - } - - function ps(t, e, n, i, r, o) { - gs(t) || us("remove", t, e, n, i, r, o) - } - - function fs(t, e, n, i) { - t.removeTextContent(), t.removeTextGuideLine(), ps(t, {style: {opacity: 0}}, e, n, i) - } - - function ds(t, e, n) { - function i() { - t.parent && t.parent.remove(t) - } - - t.isGroup ? t.traverse(function (t) { - t.isGroup || fs(t, e, n, i) - }) : fs(t, e, n, i) - } - - function gs(t) { - if (!t.__zr) return !0; - for (var e = 0; e < t.animators.length; e++) { - var n = t.animators[e]; - if ("remove" === n.scope) return !0 - } - return !1 - } - - function ys(t, e) { - for (var n = He([]); t && t !== e;) Ge(n, t.getLocalTransform(), n), t = t.parent; - return n - } - - function vs(t, e, n) { - return e && !g(e) && (e = ym.getLocalTransform(e)), n && (e = Ue([], e)), ge([], t, e) - } - - function ms(t, e, n) { - var i = 0 === e[4] || 0 === e[5] || 0 === e[0] ? 1 : Math.abs(2 * e[4] / e[0]), - r = 0 === e[4] || 0 === e[5] || 0 === e[2] ? 1 : Math.abs(2 * e[4] / e[2]), - o = ["left" === t ? -i : "right" === t ? i : 0, "top" === t ? -r : "bottom" === t ? r : 0]; - return o = vs(o, e, n), Math.abs(o[0]) > Math.abs(o[1]) ? o[0] > 0 ? "right" : "left" : o[1] > 0 ? "bottom" : "top" - } - - function _s(t) { - return !t.isGroup - } - - function xs(t) { - return null != t.shape - } - - function ws(t, e, n) { - function i(t) { - var e = {}; - return t.traverse(function (t) { - _s(t) && t.anid && (e[t.anid] = t) - }), e - } - - function r(t) { - var e = {x: t.x, y: t.y, rotation: t.rotation}; - return xs(t) && (e.shape = h({}, t.shape)), e - } - - if (t && e) { - var o = i(t); - e.traverse(function (t) { - if (_s(t) && t.anid) { - var e = o[t.anid]; - if (e) { - var i = r(t); - t.attr(r(e)), hs(t, i, n, Gb(t).dataIndex) - } - } - }) - } - } - - function bs(t, e) { - return v(t, function (t) { - var n = t[0]; - n = sS(n, e.x), n = lS(n, e.x + e.width); - var i = t[1]; - return i = sS(i, e.y), i = lS(i, e.y + e.height), [n, i] - }) - } - - function Ss(t, e) { - var n = sS(t.x, e.x), i = lS(t.x + t.width, e.x + e.width), r = sS(t.y, e.y), - o = lS(t.y + t.height, e.y + e.height); - return i >= n && o >= r ? {x: n, y: r, width: i - n, height: o - r} : void 0 - } - - function Ts(t, e, n) { - var i = h({rectHover: !0}, e), r = i.style = {strokeNoScale: !0}; - return n = n || { - x: -1, - y: -1, - width: 2, - height: 2 - }, t ? 0 === t.indexOf("image://") ? (r.image = t.slice(8), c(r, n), new zx(i)) : is(t.replace("path://", ""), i, n, "center") : void 0 - } - - function Ms(t, e, n, i, r) { - for (var o = 0, a = r[r.length - 1]; o < r.length; o++) { - var s = r[o]; - if (Cs(t, e, n, i, s[0], s[1], a[0], a[1])) return !0; - a = s - } - } - - function Cs(t, e, n, i, r, o, a, s) { - var l = n - t, u = i - e, h = a - r, c = s - o, p = Is(h, c, l, u); - if (As(p)) return !1; - var f = t - r, d = e - o, g = Is(f, d, l, u) / p; - if (0 > g || g > 1) return !1; - var y = Is(f, d, h, c) / p; - return 0 > y || y > 1 ? !1 : !0 - } - - function Is(t, e, n, i) { - return t * i - n * e - } - - function As(t) { - return 1e-6 >= t && t >= -1e-6 - } - - function Ds(t, e) { - for (var n = 0; n < Zb.length; n++) { - var i = Zb[n], r = e[i], o = t.ensureState(i); - o.style = o.style || {}, o.style.text = r - } - var a = t.currentStates.slice(); - t.clearStates(!0), t.setStyle({text: e.normal}), t.useStates(a, !0) - } - - function ks(t, e, n) { - var i, r = t.labelFetcher, o = t.labelDataIndex, a = t.labelDimIndex, s = e.normal; - r && (i = r.getFormattedLabel(o, "normal", null, a, s && s.get("formatter"), null != n ? {value: n} : null)), null == i && (i = M(t.defaultText) ? t.defaultText(o, t, n) : t.defaultText); - for (var l = {normal: i}, u = 0; u < Zb.length; u++) { - var h = Zb[u], c = e[h]; - l[h] = N(r ? r.getFormattedLabel(o, h, null, a, c && c.get("formatter")) : null, i) - } - return l - } - - function Ls(t, e, n, i) { - n = n || dS; - for (var r = t instanceof Ew, o = !1, a = 0; a < Kb.length; a++) { - var s = e[Kb[a]]; - if (s && s.getShallow("show")) { - o = !0; - break - } - } - var l = r ? t : t.getTextContent(); - if (o) { - r || (l || (l = new Ew, t.setTextContent(l)), t.stateProxy && (l.stateProxy = t.stateProxy)); - var u = ks(n, e), h = e.normal, c = !!h.getShallow("show"), p = Os(h, i && i.normal, n, !1, !r); - p.text = u.normal, r || t.setTextConfig(Rs(h, n, !1)); - for (var a = 0; a < Zb.length; a++) { - var f = Zb[a], s = e[f]; - if (s) { - var d = l.ensureState(f), g = !!N(s.getShallow("show"), c); - if (g !== c && (d.ignore = !g), d.style = Os(s, i && i[f], n, !0, !r), d.style.text = u[f], !r) { - var y = t.ensureState(f); - y.textConfig = Rs(s, n, !0) - } - } - } - l.silent = !!h.getShallow("silent"), null != l.style.x && (p.x = l.style.x), null != l.style.y && (p.y = l.style.y), l.ignore = !c, l.useStyle(p), l.dirty(), n.enableTextSetter && (mS(l).setLabelText = function (t) { - var i = ks(n, e, t); - Ds(l, i) - }) - } else l && (l.ignore = !0); - t.dirty() - } - - function Ps(t, e) { - e = e || "label"; - for (var n = {normal: t.getModel(e)}, i = 0; i < Zb.length; i++) { - var r = Zb[i]; - n[r] = t.getModel([r, e]) - } - return n - } - - function Os(t, e, n, i, r) { - var o = {}; - return Es(o, t, n, i, r), e && h(o, e), o - } - - function Rs(t, e, n) { - e = e || {}; - var i, r = {}, o = t.getShallow("rotate"), a = N(t.getShallow("distance"), n ? null : 5), - s = t.getShallow("offset"); - return i = t.getShallow("position") || (n ? null : "inside"), "outside" === i && (i = e.defaultOutsidePosition || "top"), null != i && (r.position = i), null != s && (r.offset = s), null != o && (o *= Math.PI / 180, r.rotation = o), null != a && (r.distance = a), r.outsideFill = "inherit" === t.get("color") ? e.inheritColor || null : "auto", r - } - - function Es(t, e, n, i, r) { - n = n || dS; - var o, a = e.ecModel, s = a && a.option.textStyle, l = zs(e); - if (l) { - o = {}; - for (var u in l) if (l.hasOwnProperty(u)) { - var h = e.getModel(["rich", u]); - Bs(o[u] = {}, h, s, n, i, r, !1, !0) - } - } - o && (t.rich = o); - var c = e.get("overflow"); - c && (t.overflow = c); - var p = e.get("minMargin"); - null != p && (t.margin = p), Bs(t, e, s, n, i, r, !0, !1) - } - - function zs(t) { - for (var e; t && t !== t.ecModel;) { - var n = (t.option || dS).rich; - if (n) { - e = e || {}; - for (var i = w(n), r = 0; r < i.length; r++) { - var o = i[r]; - e[o] = 1 - } - } - t = t.parentModel - } - return e - } - - function Bs(t, e, n, i, r, o, a, s) { - n = !r && n || dS; - var l = i && i.inheritColor, u = e.getShallow("color"), h = e.getShallow("textBorderColor"), - c = N(e.getShallow("opacity"), n.opacity); - ("inherit" === u || "auto" === u) && (u = l ? l : null), ("inherit" === h || "auto" === h) && (h = l ? l : null), o || (u = u || n.color, h = h || n.textBorderColor), null != u && (t.fill = u), null != h && (t.stroke = h); - var p = N(e.getShallow("textBorderWidth"), n.textBorderWidth); - null != p && (t.lineWidth = p); - var f = N(e.getShallow("textBorderType"), n.textBorderType); - null != f && (t.lineDash = f); - var d = N(e.getShallow("textBorderDashOffset"), n.textBorderDashOffset); - null != d && (t.lineDashOffset = d), r || null != c || s || (c = i && i.defaultOpacity), null != c && (t.opacity = c), r || o || null == t.fill && i.inheritColor && (t.fill = i.inheritColor); - for (var g = 0; g < gS.length; g++) { - var y = gS[g], v = N(e.getShallow(y), n[y]); - null != v && (t[y] = v) - } - for (var g = 0; g < yS.length; g++) { - var y = yS[g], v = e.getShallow(y); - null != v && (t[y] = v) - } - if (null == t.verticalAlign) { - var m = e.getShallow("baseline"); - null != m && (t.verticalAlign = m) - } - if (!a || !i.disableBox) { - for (var g = 0; g < vS.length; g++) { - var y = vS[g], v = e.getShallow(y); - null != v && (t[y] = v) - } - var _ = e.getShallow("borderType"); - null != _ && (t.borderDash = _), "auto" !== t.backgroundColor && "inherit" !== t.backgroundColor || !l || (t.backgroundColor = l), "auto" !== t.borderColor && "inherit" !== t.borderColor || !l || (t.borderColor = l) - } - } - - function Ns(t, e) { - var n = e && e.getModel("textStyle"); - return W([t.fontStyle || n && n.getShallow("fontStyle") || "", t.fontWeight || n && n.getShallow("fontWeight") || "", (t.fontSize || n && n.getShallow("fontSize") || 12) + "px", t.fontFamily || n && n.getShallow("fontFamily") || "sans-serif"].join(" ")) - } - - function Fs(t, e, n, i) { - if (t) { - var r = mS(t); - r.prevValue = r.value, r.value = n; - var o = e.normal; - r.valueAnimation = o.get("valueAnimation"), r.valueAnimation && (r.precision = o.get("precision"), r.defaultInterpolatedText = i, r.statesModels = e) - } - } - - function Hs(t, e, n, i) { - function r(i) { - var r = Qo(n, o.precision, s, l, i), - u = ks({labelDataIndex: e, defaultText: a ? a(r) : r + ""}, o.statesModels, r); - Ds(t, u) - } - - var o = mS(t); - if (o.valueAnimation) { - var a = o.defaultInterpolatedText, s = o.prevValue, l = o.value; - (null == s ? cs : hs)(t, {}, i, e, null, r) - } - } - - function Vs(t) { - return [t || "", DS++].join("_") - } - - function Gs(t) { - var e = {}; - t.registerSubTypeDefaulter = function (t, n) { - var i = ta(t); - e[i.main] = n - }, t.determineSubType = function (n, i) { - var r = i.type; - if (!r) { - var o = ta(n).main; - t.hasSubTypes(n) && e[o] && (r = e[o](i)) - } - return r - } - } - - function Ws(t, e) { - function n(t) { - var n = {}, o = []; - return y(t, function (a) { - var s = i(n, a), l = s.originalDeps = e(a), u = r(l, t); - s.entryCount = u.length, 0 === s.entryCount && o.push(a), y(u, function (t) { - p(s.predecessor, t) < 0 && s.predecessor.push(t); - var e = i(n, t); - p(e.successor, t) < 0 && e.successor.push(a) - }) - }), {graph: n, noEntryList: o} - } - - function i(t, e) { - return t[e] || (t[e] = {predecessor: [], successor: []}), t[e] - } - - function r(t, e) { - var n = []; - return y(t, function (t) { - p(e, t) >= 0 && n.push(t) - }), n - } - - t.topologicalTravel = function (t, e, i, r) { - function o(t) { - l[t].entryCount--, 0 === l[t].entryCount && u.push(t) - } - - function a(t) { - h[t] = !0, o(t) - } - - if (t.length) { - var s = n(e), l = s.graph, u = s.noEntryList, h = {}; - for (y(t, function (t) { - h[t] = !0 - }); u.length;) { - var c = u.pop(), p = l[c], f = !!h[c]; - f && (i.call(r, c, p.originalDeps.slice()), delete h[c]), y(p.successor, f ? a : o) - } - y(h, function () { - var t = ""; - throw new Error(t) - }) - } - } - } - - function Xs(t, e) { - return l(l({}, t, !0), e, !0) - } - - function Ys(t, e) { - t = t.toUpperCase(), zS[t] = new AS(e), ES[t] = e - } - - function Us(t) { - if (C(t)) { - var e = ES[t.toUpperCase()] || {}; - return t === PS || t === OS ? s(e) : l(s(e), s(ES[RS]), !1) - } - return l(s(t), s(ES[RS]), !1) - } - - function qs(t) { - return zS[t] - } - - function js() { - return zS[RS] - } - - function Zs(t, e) { - return t += "", "0000".substr(0, e - t.length) + t - } - - function Ks(t) { - switch (t) { - case"half-year": - case"quarter": - return "month"; - case"week": - case"half-week": - return "day"; - case"half-day": - case"quarter-day": - return "hour"; - default: - return t - } - } - - function $s(t) { - return t === Ks(t) - } - - function Js(t) { - switch (t) { - case"year": - case"month": - return "day"; - case"millisecond": - return "millisecond"; - default: - return "second" - } - } - - function Qs(t, e, n, i) { - var r = yo(t), o = r[il(n)](), a = r[rl(n)]() + 1, s = Math.floor((a - 1) / 4) + 1, l = r[ol(n)](), - u = r["get" + (n ? "UTC" : "") + "Day"](), h = r[al(n)](), c = (h - 1) % 12 + 1, p = r[sl(n)](), - f = r[ll(n)](), d = r[ul(n)](), g = i instanceof AS ? i : qs(i || BS) || js(), y = g.getModel("time"), - v = y.get("month"), m = y.get("monthAbbr"), _ = y.get("dayOfWeek"), x = y.get("dayOfWeekAbbr"); - return (e || "").replace(/{yyyy}/g, o + "").replace(/{yy}/g, o % 100 + "").replace(/{Q}/g, s + "").replace(/{MMMM}/g, v[a - 1]).replace(/{MMM}/g, m[a - 1]).replace(/{MM}/g, Zs(a, 2)).replace(/{M}/g, a + "").replace(/{dd}/g, Zs(l, 2)).replace(/{d}/g, l + "").replace(/{eeee}/g, _[u]).replace(/{ee}/g, x[u]).replace(/{e}/g, u + "").replace(/{HH}/g, Zs(h, 2)).replace(/{H}/g, h + "").replace(/{hh}/g, Zs(c + "", 2)).replace(/{h}/g, c + "").replace(/{mm}/g, Zs(p, 2)).replace(/{m}/g, p + "").replace(/{ss}/g, Zs(f, 2)).replace(/{s}/g, f + "").replace(/{SSS}/g, Zs(d, 3)).replace(/{S}/g, d + "") - } - - function tl(t, e, n, i, r) { - var o = null; - if ("string" == typeof n) o = n; else if ("function" == typeof n) o = n(t.value, e, {level: t.level}); else { - var a = h({}, WS); - if (t.level > 0) for (var s = 0; s < US.length; ++s) a[US[s]] = "{primary|" + a[US[s]] + "}"; - var l = n ? n.inherit === !1 ? n : c(n, a) : a, u = el(t.value, r); - if (l[u]) o = l[u]; else if (l.inherit) { - for (var p = qS.indexOf(u), s = p - 1; s >= 0; --s) if (l[u]) { - o = l[u]; - break - } - o = o || a.none - } - if (T(o)) { - var f = null == t.level ? 0 : t.level >= 0 ? t.level : o.length + t.level; - f = Math.min(f, o.length - 1), o = o[f] - } - } - return Qs(new Date(t.value), o, r, i) - } - - function el(t, e) { - var n = yo(t), i = n[rl(e)]() + 1, r = n[ol(e)](), o = n[al(e)](), a = n[sl(e)](), s = n[ll(e)](), - l = n[ul(e)](), u = 0 === l, h = u && 0 === s, c = h && 0 === a, p = c && 0 === o, f = p && 1 === r, - d = f && 1 === i; - return d ? "year" : f ? "month" : p ? "day" : c ? "hour" : h ? "minute" : u ? "second" : "millisecond" - } - - function nl(t, e, n) { - var i = "number" == typeof t ? yo(t) : t; - switch (e = e || el(t, n)) { - case"year": - return i[il(n)](); - case"half-year": - return i[rl(n)]() >= 6 ? 1 : 0; - case"quarter": - return Math.floor((i[rl(n)]() + 1) / 4); - case"month": - return i[rl(n)](); - case"day": - return i[ol(n)](); - case"half-day": - return i[al(n)]() / 24; - case"hour": - return i[al(n)](); - case"minute": - return i[sl(n)](); - case"second": - return i[ll(n)](); - case"millisecond": - return i[ul(n)]() - } - } - - function il(t) { - return t ? "getUTCFullYear" : "getFullYear" - } - - function rl(t) { - return t ? "getUTCMonth" : "getMonth" - } - - function ol(t) { - return t ? "getUTCDate" : "getDate" - } - - function al(t) { - return t ? "getUTCHours" : "getHours" - } - - function sl(t) { - return t ? "getUTCMinutes" : "getMinutes" - } - - function ll(t) { - return t ? "getUTCSeconds" : "getSeconds" - } - - function ul(t) { - return t ? "getUTCSeconds" : "getSeconds" - } - - function hl(t) { - return t ? "setUTCFullYear" : "setFullYear" - } - - function cl(t) { - return t ? "setUTCMonth" : "setMonth" - } - - function pl(t) { - return t ? "setUTCDate" : "setDate" - } - - function fl(t) { - return t ? "setUTCHours" : "setHours" - } - - function dl(t) { - return t ? "setUTCMinutes" : "setMinutes" - } - - function gl(t) { - return t ? "setUTCSeconds" : "setSeconds" - } - - function yl(t) { - return t ? "setUTCSeconds" : "setSeconds" - } - - function vl(t, e, n, i, r, o, a, s) { - var l = new Ew({ - style: { - text: t, - font: e, - align: n, - verticalAlign: i, - padding: r, - rich: o, - overflow: a ? "truncate" : null, - lineHeight: s - } - }); - return l.getBoundingRect() - } - - function ml(t) { - if (!So(t)) return C(t) ? t : "-"; - var e = (t + "").split("."); - return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (e.length > 1 ? "." + e[1] : "") - } - - function _l(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 xl(t) { - return null == t ? "" : (t + "").replace(ZS, function (t, e) { - return KS[e] - }) - } - - function wl(t, e, n) { - function i(t) { - return t && W(t) ? t : "-" - } - - function r(t) { - return !(null == t || isNaN(t) || !isFinite(t)) - } - - var o = "yyyy-MM-dd hh:mm:ss", a = "time" === e, s = t instanceof Date; - if (a || s) { - var l = a ? yo(t) : t; - if (!isNaN(+l)) return Qs(l, o, n); - if (s) return "-" - } - if ("ordinal" === e) return I(t) ? i(t) : A(t) && r(t) ? t + "" : "-"; - var u = bo(t); - return r(u) ? ml(u) : I(t) ? i(t) : "-" - } - - function bl(t, e, n) { - T(e) || (e = [e]); - var i = e.length; - if (!i) return ""; - for (var r = e[0].$vars || [], o = 0; o < r.length; o++) { - var a = $S[o]; - t = t.replace(JS(a), JS(a, 0)) - } - for (var s = 0; i > s; s++) for (var l = 0; l < r.length; l++) { - var u = e[s][r[l]]; - t = t.replace(JS($S[l], s), n ? xl(u) : u) - } - return t - } - - function Sl(t, e, n) { - return y(e, function (e, i) { - t = t.replace("{" + i + "}", n ? xl(e) : e) - }), t - } - - function Tl(t, e) { - var n = C(t) ? {color: t, extraCssText: e} : t || {}, i = n.color, r = n.type; - e = n.extraCssText; - var o = n.renderMode || "html"; - if (!i) return ""; - if ("html" === o) return "subItem" === r ? '' : ''; - var a = n.markerId || "markerX"; - return { - renderMode: o, - content: "{" + a + "|} ", - style: "subItem" === r ? {width: 4, height: 4, borderRadius: 2, backgroundColor: i} : { - width: 10, - height: 10, - borderRadius: 5, - backgroundColor: i - } - } - } - - function Ml(t, e, n) { - ("week" === t || "month" === t || "quarter" === t || "half-year" === t || "year" === t) && (t = "MM-dd\nyyyy"); - var i = yo(e), r = n ? "UTC" : "", o = i["get" + r + "FullYear"](), a = i["get" + r + "Month"]() + 1, - s = i["get" + r + "Date"](), l = i["get" + r + "Hours"](), u = i["get" + r + "Minutes"](), - h = i["get" + r + "Seconds"](), c = i["get" + r + "Milliseconds"](); - return t = t.replace("MM", Zs(a, 2)).replace("M", a).replace("yyyy", o).replace("yy", o % 100 + "").replace("dd", Zs(s, 2)).replace("d", s).replace("hh", Zs(l, 2)).replace("h", l).replace("mm", Zs(u, 2)).replace("m", u).replace("ss", Zs(h, 2)).replace("s", h).replace("SSS", Zs(c, 3)) - } - - function Cl(t) { - return t ? t.charAt(0).toUpperCase() + t.substr(1) : t - } - - function Il(t, e) { - return e = e || "transparent", C(t) ? t : D(t) ? t.colorStops && (t.colorStops[0] || {}).color || e : e - } - - function Al(t, e) { - if ("_blank" === e || "blank" === e) { - var n = window.open(); - n.opener = null, n.location.href = t - } else window.open(t, e) - } - - function Dl(t, e, n, i, r) { - var o = 0, a = 0; - null == i && (i = 1 / 0), null == r && (r = 1 / 0); - var s = 0; - e.eachChild(function (l, u) { - var h, c, p = l.getBoundingRect(), f = e.childAt(u + 1), d = f && f.getBoundingRect(); - if ("horizontal" === t) { - var g = p.width + (d ? -d.x + p.x : 0); - h = o + g, h > i || l.newline ? (o = 0, h = g, a += s + n, s = p.height) : s = Math.max(s, p.height) - } else { - var y = p.height + (d ? -d.y + p.y : 0); - c = a + y, c > r || l.newline ? (o += s + n, a = 0, c = y, s = p.width) : s = Math.max(s, p.width) - } - l.newline || (l.x = o, l.y = a, l.markRedraw(), "horizontal" === t ? o = h + n : a = c + n) - }) - } - - function kl(t, e, n) { - n = jS(n || 0); - var i = e.width, r = e.height, o = ao(t.left, i), a = ao(t.top, r), s = ao(t.right, i), l = ao(t.bottom, r), - u = ao(t.width, i), h = ao(t.height, r), c = n[2] + n[0], p = n[1] + n[3], f = t.aspect; - switch (isNaN(u) && (u = i - s - p - o), isNaN(h) && (h = r - l - c - a), null != f && (isNaN(u) && isNaN(h) && (f > i / r ? u = .8 * i : h = .8 * r), isNaN(u) && (u = f * h), isNaN(h) && (h = u / f)), isNaN(o) && (o = i - s - u - p), isNaN(a) && (a = r - l - h - c), t.left || t.right) { - case"center": - o = i / 2 - u / 2 - n[3]; - break; - case"right": - o = i - u - p - } - switch (t.top || t.bottom) { - case"middle": - case"center": - a = r / 2 - h / 2 - n[0]; - break; - case"bottom": - a = r - h - c - } - o = o || 0, a = a || 0, isNaN(u) && (u = i - p - o - (s || 0)), isNaN(h) && (h = r - c - a - (l || 0)); - var d = new Vm(o + n[3], a + n[0], u, h); - return d.margin = n, d - } - - function Ll(t) { - var e = t.layoutMode || t.constructor.layoutMode; - return D(e) ? e : e ? {type: e} : null - } - - function Pl(t, e, n) { - function i(n, i) { - var a = {}, l = 0, u = {}, h = 0, c = 2; - if (tT(n, function (e) { - u[e] = t[e] - }), tT(n, function (t) { - r(e, t) && (a[t] = u[t] = e[t]), o(a, t) && l++, o(u, t) && h++ - }), s[i]) return o(e, n[1]) ? u[n[2]] = null : o(e, n[2]) && (u[n[1]] = null), u; - if (h !== c && l) { - if (l >= c) return a; - for (var p = 0; p < n.length; p++) { - var f = n[p]; - if (!r(a, f) && r(t, f)) { - a[f] = t[f]; - break - } - } - return a - } - return u - } - - function r(t, e) { - return t.hasOwnProperty(e) - } - - function o(t, e) { - return null != t[e] && "auto" !== t[e] - } - - function a(t, e, n) { - tT(t, function (t) { - e[t] = n[t] - }) - } - - var s = n && n.ignoreSize; - !T(s) && (s = [s, s]); - var l = i(nT[0], 0), u = i(nT[1], 1); - a(nT[0], t, l), a(nT[1], t, u) - } - - function Ol(t) { - return Rl({}, t) - } - - function Rl(t, e) { - return e && t && tT(eT, function (n) { - e.hasOwnProperty(n) && (t[n] = e[n]) - }), t - } - - function El(t) { - var e = []; - return y(oT.getClassesByMainType(t), function (t) { - e = e.concat(t.dependencies || t.prototype.dependencies || []) - }), e = v(e, function (t) { - return ta(t).main - }), "dataset" !== t && p(e, "dataset") <= 0 && e.unshift("dataset"), e - } - - function zl(t) { - wT(t).datasetMap = U() - } - - function Bl(t, e) { - var n = t ? t.metaRawOption : null, i = N(e.seriesLayoutBy, n ? n.seriesLayoutBy : null), - r = N(e.sourceHeader, t ? t.startIndex : null), o = N(e.dimensions, t ? t.dimensionsDefine : null); - return {seriesLayoutBy: i, sourceHeader: r, dimensions: o} - } - - function Nl(t, e, n) { - function i(t, e, n) { - for (var i = 0; n > i; i++) t.push(e + i) - } - - function r(t) { - var e = t.dimsDef; - return e ? e.length : 1 - } - - var o = {}, a = Hl(e); - if (!a || !t) return o; - var s, l, u = [], h = [], c = e.ecModel, p = wT(c).datasetMap, f = a.uid + "_" + n.seriesLayoutBy; - t = t.slice(), y(t, function (e, n) { - var i = D(e) ? e : t[n] = {name: e}; - "ordinal" === i.type && null == s && (s = n, l = r(i)), o[i.name] = [] - }); - var d = p.get(f) || p.set(f, {categoryWayDim: l, valueWayDim: 0}); - return y(t, function (t, e) { - var n = t.name, a = r(t); - if (null == s) { - var l = d.valueWayDim; - i(o[n], l, a), i(h, l, a), d.valueWayDim += a - } else if (s === e) i(o[n], 0, a), i(u, 0, a); else { - var l = d.categoryWayDim; - i(o[n], l, a), i(h, l, a), d.categoryWayDim += a - } - }), u.length && (o.itemName = u), h.length && (o.seriesName = h), o - } - - function Fl(t, e, n) { - var i = {}, r = Hl(t); - if (!r) return i; - var o, a = e.sourceFormat, s = e.dimensionsDefine; - (a === dT || a === gT) && y(s, function (t, e) { - "name" === (D(t) ? t.name : t) && (o = e) - }); - var l = function () { - function t(t) { - return null != t.v && null != t.n - } - - for (var i = {}, r = {}, l = [], u = 0, h = Math.min(5, n); h > u; u++) { - var c = Wl(e.data, a, e.seriesLayoutBy, s, e.startIndex, u); - l.push(c); - var p = c === xT.Not; - if (p && null == i.v && u !== o && (i.v = u), (null == i.n || i.n === i.v || !p && l[i.n] === xT.Not) && (i.n = u), t(i) && l[i.n] !== xT.Not) return i; - p || (c === xT.Might && null == r.v && u !== o && (r.v = u), (null == r.n || r.n === r.v) && (r.n = u)) - } - return t(i) ? i : t(r) ? r : null - }(); - if (l) { - i.value = [l.v]; - var u = null != o ? o : l.n; - i.itemName = [u], i.seriesName = [u] - } - return i - } - - function Hl(t) { - var e = t.get("data", !0); - return e ? void 0 : Zo(t.ecModel, "dataset", { - index: t.get("datasetIndex", !0), - id: t.get("datasetId", !0) - }, Rb).models[0] - } - - function Vl(t) { - return t.get("transform", !0) || t.get("fromTransformResult", !0) ? Zo(t.ecModel, "dataset", { - index: t.get("fromDatasetIndex", !0), - id: t.get("fromDatasetId", !0) - }, Rb).models : [] - } - - function Gl(t, e) { - return Wl(t.data, t.sourceFormat, t.seriesLayoutBy, t.dimensionsDefine, t.startIndex, e) - } - - function Wl(t, e, n, i, r, o) { - function a(t) { - var e = C(t); - return null != t && isFinite(t) && "" !== t ? e ? xT.Might : xT.Not : e && "-" !== t ? xT.Must : void 0 - } - - var s, l = 5; - if (L(t)) return xT.Not; - var u, h; - if (i) { - var c = i[o]; - D(c) ? (u = c.name, h = c.type) : C(c) && (u = c) - } - if (null != h) return "ordinal" === h ? xT.Must : xT.Not; - if (e === fT) { - var p = t; - if (n === _T) { - for (var f = p[o], d = 0; d < (f || []).length && l > d; d++) if (null != (s = a(f[r + d]))) return s - } else for (var d = 0; d < p.length && l > d; d++) { - var g = p[r + d]; - if (g && null != (s = a(g[o]))) return s - } - } else if (e === dT) { - var y = t; - if (!u) return xT.Not; - for (var d = 0; d < y.length && l > d; d++) { - var v = y[d]; - if (v && null != (s = a(v[u]))) return s - } - } else if (e === gT) { - var m = t; - if (!u) return xT.Not; - var f = m[u]; - if (!f || L(f)) return xT.Not; - for (var d = 0; d < f.length && l > d; d++) if (null != (s = a(f[d]))) return s - } else if (e === pT) for (var _ = t, d = 0; d < _.length && l > d; d++) { - var v = _[d], x = ko(v); - if (!T(x)) return xT.Not; - if (null != (s = a(x[o]))) return s - } - return xT.Not - } - - function Xl(t, e, n) { - var i = bT.get(e); - if (!i) return n; - var r = i(t); - return r ? n.concat(r) : n - } - - function Yl(t, e) { - for (var n = t.length, i = 0; n > i; i++) if (t[i].length > e) return t[i]; - return t[n - 1] - } - - function Ul(t, e, n, i, r, o, a) { - o = o || t; - var s = e(o), l = s.paletteIdx || 0, u = s.paletteNameMap = s.paletteNameMap || {}; - if (u.hasOwnProperty(r)) return u[r]; - var h = null != a && i ? Yl(i, a) : n; - if (h = h || n, h && h.length) { - var c = h[l]; - return r && (u[r] = c), s.paletteIdx = (l + 1) % h.length, c - } - } - - function ql(t, e) { - e(t).paletteIdx = 0, e(t).paletteNameMap = {} - } - - function jl(t, e) { - if (e) { - var n = e.seriesIndex, i = e.seriesId, r = e.seriesName; - return null != n && t.componentIndex !== n || null != i && t.id !== i || null != r && t.name !== r - } - } - - function Zl(t, e) { - var n = t.color && !t.colorLayer; - y(e, function (e, i) { - "colorLayer" === i && n || oT.hasClass(i) || ("object" == typeof e ? t[i] = t[i] ? l(t[i], e, !1) : s(e) : null == t[i] && (t[i] = e)) - }) - } - - function Kl(t, e, n) { - if (T(e)) { - var i = U(); - return y(e, function (t) { - if (null != t) { - var e = Vo(t, null); - null != e && i.set(t, !0) - } - }), _(n, function (e) { - return e && i.get(e[t]) - }) - } - var r = Vo(e, null); - return _(n, function (e) { - return e && null != r && e[t] === r - }) - } - - function $l(t, e) { - return e.hasOwnProperty("subType") ? _(t, function (t) { - return t && t.subType === e.subType - }) : t - } - - function Jl(t) { - var e = U(); - return t && y(Ao(t.replaceMerge), function (t) { - e.set(t, !0) - }), {replaceMergeMainTypeMap: e} - } - - function Ql(t, e, n) { - function i(t) { - y(e, function (e) { - e(t, n) - }) - } - - var r, o, a = [], s = t.baseOption, l = t.timeline, u = t.options, h = t.media, c = !!t.media, - p = !!(u || l || s && s.timeline); - return s ? (o = s, o.timeline || (o.timeline = l)) : ((p || c) && (t.options = t.media = null), o = t), c && T(h) && y(h, function (t) { - t && t.option && (t.query ? a.push(t) : r || (r = t)) - }), i(o), y(u, function (t) { - return i(t) - }), y(a, function (t) { - return i(t.option) - }), {baseOption: o, timelineOptions: u || [], mediaDefault: r, mediaList: a} - } - - function tu(t, e, n) { - var i = {width: e, height: n, aspectratio: e / n}, r = !0; - return y(t, function (t, e) { - var n = e.match(zT); - if (n && n[1] && n[2]) { - var o = n[1], a = n[2].toLowerCase(); - eu(i[a], t, o) || (r = !1) - } - }), r - } - - function eu(t, e, n) { - return "min" === n ? t >= e : "max" === n ? e >= t : t === e - } - - function nu(t, e) { - return t.join(",") === e.join(",") - } - - function iu(t) { - var e = t && t.itemStyle; - if (e) for (var n = 0, i = HT.length; i > n; n++) { - var r = HT[n], o = e.normal, a = e.emphasis; - o && o[r] && (t[r] = t[r] || {}, t[r].normal ? l(t[r].normal, o[r]) : t[r].normal = o[r], o[r] = null), a && a[r] && (t[r] = t[r] || {}, t[r].emphasis ? l(t[r].emphasis, a[r]) : t[r].emphasis = a[r], a[r] = null) - } - } - - function ru(t, e, n) { - if (t && t[e] && (t[e].normal || t[e].emphasis)) { - var i = t[e].normal, r = t[e].emphasis; - i && (n ? (t[e].normal = t[e].emphasis = null, c(t[e], i)) : t[e] = i), r && (t.emphasis = t.emphasis || {}, t.emphasis[e] = r, r.focus && (t.emphasis.focus = r.focus), r.blurScope && (t.emphasis.blurScope = r.blurScope)) - } - } - - function ou(t) { - ru(t, "itemStyle"), ru(t, "lineStyle"), ru(t, "areaStyle"), ru(t, "label"), ru(t, "labelLine"), ru(t, "upperLabel"), ru(t, "edgeLabel") - } - - function au(t, e) { - var n = FT(t) && t[e], i = FT(n) && n.textStyle; - if (i) for (var r = 0, o = Pb.length; o > r; r++) { - var a = Pb[r]; - i.hasOwnProperty(a) && (n[a] = i[a]) - } - } - - function su(t) { - t && (ou(t), au(t, "label"), t.emphasis && au(t.emphasis, "label")) - } - - function lu(t) { - if (FT(t)) { - iu(t), ou(t), au(t, "label"), au(t, "upperLabel"), au(t, "edgeLabel"), t.emphasis && (au(t.emphasis, "label"), au(t.emphasis, "upperLabel"), au(t.emphasis, "edgeLabel")); - var e = t.markPoint; - e && (iu(e), su(e)); - var n = t.markLine; - n && (iu(n), su(n)); - var i = t.markArea; - i && su(i); - var r = t.data; - if ("graph" === t.type) { - r = r || t.nodes; - var o = t.links || t.edges; - if (o && !L(o)) for (var a = 0; a < o.length; a++) su(o[a]); - y(t.categories, function (t) { - ou(t) - }) - } - if (r && !L(r)) for (var a = 0; a < r.length; a++) su(r[a]); - if (e = t.markPoint, e && e.data) for (var s = e.data, a = 0; a < s.length; a++) su(s[a]); - if (n = t.markLine, n && n.data) for (var l = n.data, a = 0; a < l.length; a++) T(l[a]) ? (su(l[a][0]), su(l[a][1])) : su(l[a]); - "gauge" === t.type ? (au(t, "axisLabel"), au(t, "title"), au(t, "detail")) : "treemap" === t.type ? (ru(t.breadcrumb, "itemStyle"), y(t.levels, function (t) { - ou(t) - })) : "tree" === t.type && ou(t.leaves) - } - } - - function uu(t) { - return T(t) ? t : t ? [t] : [] - } - - function hu(t) { - return (T(t) ? t[0] : t) || {} - } - - function cu(t, e) { - NT(uu(t.series), function (t) { - FT(t) && lu(t) - }); - var n = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"]; - e && n.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"), NT(n, function (e) { - NT(uu(t[e]), function (t) { - t && (au(t, "axisLabel"), au(t.axisPointer, "label")) - }) - }), NT(uu(t.parallel), function (t) { - var e = t && t.parallelAxisDefault; - au(e, "axisLabel"), au(e && e.axisPointer, "label") - }), NT(uu(t.calendar), function (t) { - ru(t, "itemStyle"), au(t, "dayLabel"), au(t, "monthLabel"), au(t, "yearLabel") - }), NT(uu(t.radar), function (t) { - au(t, "name"), t.name && null == t.axisName && (t.axisName = t.name, delete t.name), null != t.nameGap && null == t.axisNameGap && (t.axisNameGap = t.nameGap, delete t.nameGap) - }), NT(uu(t.geo), function (t) { - FT(t) && (su(t), NT(uu(t.regions), function (t) { - su(t) - })) - }), NT(uu(t.timeline), function (t) { - su(t), ru(t, "label"), ru(t, "itemStyle"), ru(t, "controlStyle", !0); - var e = t.data; - T(e) && y(e, function (t) { - D(t) && (ru(t, "label"), ru(t, "itemStyle")) - }) - }), NT(uu(t.toolbox), function (t) { - ru(t, "iconStyle"), NT(t.feature, function (t) { - ru(t, "iconStyle") - }) - }), au(hu(t.axisPointer), "label"), au(hu(t.tooltip).axisPointer, "label") - } - - function pu(t, e) { - for (var n = e.split(","), i = t, r = 0; r < n.length && (i = i && i[n[r]], null != i); r++) ; - return i - } - - function fu(t, e, n, i) { - for (var r, o = e.split(","), a = t, s = 0; s < o.length - 1; s++) r = o[s], null == a[r] && (a[r] = {}), a = a[r]; - (i || null == a[o[s]]) && (a[o[s]] = n) - } - - function du(t) { - t && y(VT, function (e) { - e[0] in t && !(e[1] in t) && (t[e[1]] = t[e[0]]) - }) - } - - function gu(t) { - var e = t && t.itemStyle; - if (e) for (var n = 0; n < WT.length; n++) { - var i = WT[n][1], r = WT[n][0]; - null != e[i] && (e[r] = e[i]) - } - } - - function yu(t) { - t && "edge" === t.alignTo && null != t.margin && null == t.edgeDistance && (t.edgeDistance = t.margin) - } - - function vu(t) { - t && t.downplay && !t.blur && (t.blur = t.downplay) - } - - function mu(t) { - t && null != t.focusNodeAdjacency && (t.emphasis = t.emphasis || {}, null == t.emphasis.focus && (t.emphasis.focus = "adjacency")) - } - - function _u(t, e) { - if (t) for (var n = 0; n < t.length; n++) e(t[n]), t[n] && _u(t[n].children, e) - } - - function xu(t, e) { - cu(t, e), t.series = Ao(t.series), y(t.series, function (t) { - if (D(t)) { - var e = t.type; - if ("line" === e) null != t.clipOverflow && (t.clip = t.clipOverflow); else if ("pie" === e || "gauge" === e) { - null != t.clockWise && (t.clockwise = t.clockWise), yu(t.label); - var n = t.data; - if (n && !L(n)) for (var i = 0; i < n.length; i++) yu(n[i]); - null != t.hoverOffset && (t.emphasis = t.emphasis || {}, (t.emphasis.scaleSize = null) && (t.emphasis.scaleSize = t.hoverOffset)) - } else if ("gauge" === e) { - var r = pu(t, "pointer.color"); - null != r && fu(t, "itemStyle.color", r) - } else if ("bar" === e) { - gu(t), gu(t.backgroundStyle), gu(t.emphasis); - var n = t.data; - if (n && !L(n)) for (var i = 0; i < n.length; i++) "object" == typeof n[i] && (gu(n[i]), gu(n[i] && n[i].emphasis)) - } else if ("sunburst" === e) { - var o = t.highlightPolicy; - o && (t.emphasis = t.emphasis || {}, t.emphasis.focus || (t.emphasis.focus = o)), vu(t), _u(t.data, vu) - } else "graph" === e || "sankey" === e ? mu(t) : "map" === e && (t.mapType && !t.map && (t.map = t.mapType), t.mapLocation && c(t, t.mapLocation)); - null != t.hoverAnimation && (t.emphasis = t.emphasis || {}, t.emphasis && null == t.emphasis.scale && (t.emphasis.scale = t.hoverAnimation)), du(t) - } - }), t.dataRange && (t.visualMap = t.dataRange), y(GT, function (e) { - var n = t[e]; - n && (T(n) || (n = [n]), y(n, function (t) { - du(t) - })) - }) - } - - function wu(t) { - var e = U(); - t.eachSeries(function (t) { - var n = t.get("stack"); - if (n) { - var i = e.get(n) || e.set(n, []), r = t.getData(), o = { - stackResultDimension: r.getCalculationInfo("stackResultDimension"), - stackedOverDimension: r.getCalculationInfo("stackedOverDimension"), - stackedDimension: r.getCalculationInfo("stackedDimension"), - stackedByDimension: r.getCalculationInfo("stackedByDimension"), - isStackedByIndex: r.getCalculationInfo("isStackedByIndex"), - data: r, - seriesModel: t - }; - if (!o.stackedDimension || !o.isStackedByIndex && !o.stackedByDimension) return; - i.length && r.setCalculationInfo("stackedOnSeries", i[i.length - 1].seriesModel), i.push(o) - } - }), e.each(bu) - } - - function bu(t) { - y(t, function (e, n) { - var i = [], r = [0 / 0, 0 / 0], o = [e.stackResultDimension, e.stackedOverDimension], a = e.data, - s = e.isStackedByIndex, l = a.map(o, function (o, l, u) { - var h = a.get(e.stackedDimension, u); - if (isNaN(h)) return r; - var c, p; - s ? p = a.getRawIndex(u) : c = a.get(e.stackedByDimension, u); - for (var f = 0 / 0, d = n - 1; d >= 0; d--) { - var g = t[d]; - if (s || (p = g.data.rawIndexOf(g.stackedByDimension, c)), p >= 0) { - var y = g.data.getByRawIndex(g.stackResultDimension, p); - if (h >= 0 && y > 0 || 0 >= h && 0 > y) { - h += y, f = y; - break - } - } - } - return i[0] = h, i[1] = f, i - }); - a.hostModel.setData(l), e.data = l - }) - } - - function Su(t) { - return t instanceof XT - } - - function Tu(t, e, n, i) { - n = n || Au(t); - var r = e.seriesLayoutBy, o = Du(t, n, r, e.sourceHeader, e.dimensions), a = new XT({ - data: t, - sourceFormat: n, - seriesLayoutBy: r, - dimensionsDefine: o.dimensionsDefine, - startIndex: o.startIndex, - dimensionsDetectedCount: o.dimensionsDetectedCount, - encodeDefine: Iu(i), - metaRawOption: s(e) - }); - return a - } - - function Mu(t) { - return new XT({data: t, sourceFormat: L(t) ? yT : pT}) - } - - function Cu(t) { - return new XT({ - data: t.data, - sourceFormat: t.sourceFormat, - seriesLayoutBy: t.seriesLayoutBy, - dimensionsDefine: s(t.dimensionsDefine), - startIndex: t.startIndex, - dimensionsDetectedCount: t.dimensionsDetectedCount, - encodeDefine: Iu(t.encodeDefine) - }) - } - - function Iu(t) { - return t ? U(t) : null - } - - function Au(t) { - var e = vT; - if (L(t)) e = yT; else if (T(t)) { - 0 === t.length && (e = fT); - for (var n = 0, i = t.length; i > n; n++) { - var r = t[n]; - if (null != r) { - if (T(r)) { - e = fT; - break - } - if (D(r)) { - e = dT; - break - } - } - } - } else if (D(t)) { - for (var o in t) if (Z(t, o) && g(t[o])) { - e = gT; - break - } - } else if (null != t) throw new Error("Invalid data"); - return e - } - - function Du(t, e, n, i, r) { - var o, a; - if (!t) return {dimensionsDefine: Lu(r), startIndex: a, dimensionsDetectedCount: o}; - if (e === fT) { - var s = t; - "auto" === i || null == i ? Pu(function (t) { - null != t && "-" !== t && (C(t) ? null == a && (a = 1) : a = 0) - }, n, s, 10) : a = A(i) ? i : i ? 1 : 0, r || 1 !== a || (r = [], Pu(function (t, e) { - r[e] = null != t ? t + "" : "" - }, n, s, 1 / 0)), o = r ? r.length : n === _T ? s.length : s[0] ? s[0].length : null - } else if (e === dT) r || (r = ku(t)); else if (e === gT) r || (r = [], y(t, function (t, e) { - r.push(e) - })); else if (e === pT) { - var l = ko(t[0]); - o = T(l) && l.length || 1 - } - return {startIndex: a, dimensionsDefine: Lu(r), dimensionsDetectedCount: o} - } - - function ku(t) { - for (var e, n = 0; n < t.length && !(e = t[n++]);) ; - if (e) { - var i = []; - return y(e, function (t, e) { - i.push(e) - }), i - } - } - - function Lu(t) { - if (t) { - var e = U(); - return v(t, function (t) { - t = D(t) ? t : {name: t}; - var n = {name: t.name, displayName: t.displayName, type: t.type}; - if (null == name) return n; - n.name += "", null == n.displayName && (n.displayName = n.name); - var i = e.get(n.name); - return i ? n.name += "-" + i.count++ : e.set(n.name, {count: 1}), n - }) - } - } - - function Pu(t, e, n, i) { - if (e === _T) for (var r = 0; r < n.length && i > r; r++) t(n[r] ? n[r][0] : null, r); else for (var o = n[0] || [], r = 0; r < o.length && i > r; r++) t(o[r], r) - } - - function Ou(t, e) { - var n = qT[zu(t, e)]; - return n - } - - function Ru(t, e) { - var n = ZT[zu(t, e)]; - return n - } - - function Eu(t) { - var e = $T[t]; - return e - } - - function zu(t, e) { - return t === fT ? t + "_" + e : t - } - - function Bu(t, e, n) { - if (t) { - var i = t.getRawDataItem(e); - if (null != i) { - var r, o, a = t.getProvider().getSource().sourceFormat, s = t.getDimensionInfo(n); - return s && (r = s.name, o = s.index), Eu(a)(i, o, r) - } - } - } - - function Nu(t) { - var e, n; - return D(t) ? t.type && (n = t) : e = t, {markupText: e, markupFragment: n} - } - - function Fu(t) { - return new tM(t) - } - - function Hu(t, e) { - var n = e && e.type; - if ("ordinal" === n) { - var i = e && e.ordinalMeta; - return i ? i.parseAndCollect(t) : t - } - return "time" === n && "number" != typeof t && null != t && "-" !== t && (t = +yo(t)), null == t || "" === t ? 0 / 0 : +t - } - - function Vu(t, e) { - var n = new rM, i = t.data, r = n.sourceFormat = t.sourceFormat, o = t.startIndex, a = [], s = {}, - l = t.dimensionsDefine; - if (l) y(l, function (t, e) { - var n = t.name, i = {index: e, name: n, displayName: t.displayName}; - if (a.push(i), null != n) { - var r = ""; - Z(s, n) && Io(r), s[n] = i - } - }); else for (var u = 0; u < t.dimensionsDetectedCount; u++) a.push({index: u}); - var h = Ou(r, mT); - e.__isBuiltIn && (n.getRawDataItem = function (t) { - return h(i, o, a, t) - }, n.getRawData = Ev(Gu, null, t)), n.cloneRawData = Ev(Wu, null, t); - var c = Ru(r, mT); - n.count = Ev(c, null, i, o, a); - var p = Eu(r); - n.retrieveValue = function (t, e) { - var n = h(i, o, a, t); - return f(n, e) - }; - var f = n.retrieveValueFromItem = function (t, e) { - if (null != t) { - var n = a[e]; - return n ? p(t, e, n.name) : void 0 - } - }; - return n.getDimensionInfo = Ev(Xu, null, a, s), n.cloneAllDimensionInfo = Ev(Yu, null, a), n - } - - function Gu(t) { - var e = t.sourceFormat, n = t.data; - if (e === fT || e === dT || !n || T(n) && !n.length) return t.data; - var i = ""; - Io(i) - } - - function Wu(t) { - var e = t.sourceFormat, n = t.data; - if (!n) return n; - if (T(n) && !n.length) return []; - if (e === fT) { - for (var i = [], r = 0, o = n.length; o > r; r++) i.push(n[r].slice()); - return i - } - if (e === dT) { - for (var i = [], r = 0, o = n.length; o > r; r++) i.push(h({}, n[r])); - return i - } - } - - function Xu(t, e, n) { - return null != n ? "number" == typeof n || !isNaN(n) && !Z(e, n) ? t[n] : Z(e, n) ? e[n] : void 0 : void 0 - } - - function Yu(t) { - return s(t) - } - - function Uu(t) { - t = s(t); - var e = t.type, n = ""; - e || Io(n); - var i = e.split(":"); - 2 !== i.length && Io(n); - var r = !1; - "echarts" === i[0] && (e = i[1], r = !0), t.__isBuiltIn = r, oM.set(e, t) - } - - function qu(t, e, n) { - var i = Ao(t), r = i.length, o = ""; - r || Io(o); - for (var a = 0, s = r; s > a; a++) { - var l = i[a]; - e = ju(l, e, n, 1 === r ? null : a), a !== s - 1 && (e.length = Math.max(e.length, 1)) - } - return e - } - - function ju(t, e) { - var n = ""; - e.length || Io(n), D(t) || Io(n); - var i = t.type, r = oM.get(i); - r || Io(n); - var o = v(e, function (t) { - return Vu(t, r) - }), a = Ao(r.transform({upstream: o[0], upstreamList: o, config: s(t.config)})); - return v(a, function (t) { - var n = ""; - D(t) || Io(n); - var i = t.data; - null != i ? D(i) || g(i) || Io(n) : i = e[0].data; - var r = Bl(e[0], {seriesLayoutBy: mT, sourceHeader: 0, dimensions: t.dimensions}); - return Tu(i, r, null, null) - }) - } - - function Zu(t) { - var e = t.option.transform; - e && X(t.option.transform) - } - - function Ku(t) { - return "series" === t.mainType - } - - function $u(t) { - throw new Error(t) - } - - function Ju(t, e) { - return e.type = t, e - } - - function Qu(t) { - return Z(dM, t.type) && dM[t.type] - } - - function th(t, e, n) { - var i = [], r = e.blocks || []; - G(!r || T(r)), r = r || []; - var o = t.orderMode; - if (e.sortBlocks && o) { - r = r.slice(); - var a = {valueAsc: "asc", valueDesc: "desc"}; - if (Z(a, o)) { - var s = new iM(a[o], null); - r.sort(function (t, e) { - return s.evaluate(t.sortParam, e.sortParam) - }) - } else "seriesDesc" === o && r.reverse() - } - var l = nh(e); - return y(r, function (e, n) { - var r = Qu(e).build(t, e, n > 0 ? l.html : 0); - null != r && i.push(r) - }), i.length ? "richText" === t.renderMode ? i.join(l.richText) : ih(i.join(""), n) : void 0 - } - - function eh(t, e, n, i, r) { - if (t) { - var o = Qu(t); - o.planLayout(t); - var a = {useUTC: r, renderMode: n, orderMode: i, markupStyleCreator: e}; - return o.build(a, t, 0) - } - } - - function nh(t) { - var e = t.__gapLevelBetweenSubBlocks; - return {html: pM[e], richText: fM[e]} - } - - function ih(t, e) { - var n = '
', i = "margin: " + e + "px 0 0"; - return '
' + t + n + "
" - } - - function rh(t, e) { - var n = e ? "margin-left:2px" : ""; - return '' + xl(t) + "" - } - - function oh(t, e, n) { - var i = n ? "10px" : "20px", r = e ? "float:right;margin-left:" + i : ""; - return '' + v(t, function (t) { - return xl(t) - }).join("  ") + "" - } - - function ah(t, e) { - return t.markupStyleCreator.wrapRichTextStyle(e, lM) - } - - function sh(t, e, n, i) { - var r = [hM], o = i ? 10 : 20; - return n && r.push({ - padding: [0, 0, 0, o], - align: "right" - }), t.markupStyleCreator.wrapRichTextStyle(e.join(" "), r) - } - - function lh(t, e) { - var n = t.getData().getItemVisual(e, "style"), i = n[t.visualDrawType]; - return Il(i) - } - - function uh(t, e) { - var n = t.get("padding"); - return null != n ? n : "richText" === e ? [8, 10] : 10 - } - - function hh(t) { - var e, n, i, r, o = t.series, a = t.dataIndex, s = t.multipleSeries, l = o.getData(), - u = l.mapDimensionsAll("defaultedTooltip"), h = u.length, c = o.getRawValue(a), p = T(c), f = lh(o, a); - if (h > 1 || p && !h) { - var d = ch(c, o, a, u, f); - e = d.inlineValues, n = d.inlineValueTypes, i = d.blocks, r = d.inlineValues[0] - } else if (h) { - var g = l.getDimensionInfo(u[0]); - r = e = Bu(l, a, u[0]), n = g.type - } else r = e = p ? c[0] : c; - var y = Go(o), v = y && o.name || "", m = l.getName(a), _ = s ? v : m; - return Ju("section", { - header: v, - noHeader: s || !y, - sortParam: r, - blocks: [Ju("nameValue", { - markerType: "item", - markerColor: f, - name: _, - noName: !W(_), - value: e, - valueType: n - })].concat(i || []) - }) - } - - function ch(t, e, n, i, r) { - function o(t, e) { - var n = a.getDimensionInfo(e); - n && n.otherDims.tooltip !== !1 && (s ? h.push(Ju("nameValue", { - markerType: "subItem", - markerColor: r, - name: n.displayName, - value: t, - valueType: n.type - })) : (l.push(t), u.push(n.type))) - } - - var a = e.getData(), s = m(t, function (t, e, n) { - var i = a.getDimensionInfo(n); - return t = t || i && i.tooltip !== !1 && null != i.displayName - }, !1), l = [], u = [], h = []; - return i.length ? y(i, function (t) { - o(Bu(a, n, t), t) - }) : y(t, o), {inlineValues: l, inlineValueTypes: u, blocks: h} - } - - function ph(t, e) { - return t.getName(e) || t.getId(e) - } - - function fh(t) { - var e = t.name; - Go(t) || (t.name = dh(t) || e) - } - - function dh(t) { - var e = t.getRawData(), n = e.mapDimensionsAll("seriesName"), i = []; - return y(n, function (t) { - var n = e.getDimensionInfo(t); - n.displayName && i.push(n.displayName) - }), i.join(" ") - } - - function gh(t) { - return t.model.getRawData().count() - } - - function yh(t) { - var e = t.model; - return e.setData(e.getRawData().cloneShallow()), vh - } - - function vh(t, e) { - e.outputData && t.end > e.outputData.count() && e.model.getRawData().cloneShallow(e.outputData) - } - - function mh(t, e) { - y(n(t.CHANGABLE_METHODS, t.DOWNSAMPLE_METHODS), function (n) { - t.wrapMethod(n, S(_h, e)) - }) - } - - function _h(t, e) { - var n = xh(t); - return n && n.setOutputEnd((e || this).count()), e - } - - function xh(t) { - var e = (t.ecModel || {}).scheduler, n = e && e.getPipeline(t.uid); - if (n) { - var i = n.currentTask; - if (i) { - var r = i.agentStubMap; - r && (i = r.get(t.uid)) - } - return i - } - } - - function wh() { - var t = qo(); - return function (e) { - var n = t(e), i = e.pipelineContext, r = !!n.large, o = !!n.progressiveRender, - a = n.large = !(!i || !i.large), s = n.progressiveRender = !(!i || !i.progressiveRender); - return !(r === a && o === s) && "reset" - } - } - - function bh(t, e, n) { - t && ("emphasis" === e ? La : Pa)(t, n) - } - - function Sh(t, e, n) { - var i = Uo(t, e), r = e && null != e.highlightKey ? Za(e.highlightKey) : null; - null != i ? y(Ao(i), function (e) { - bh(t.getItemGraphicEl(e), n, r) - }) : t.eachItemGraphicEl(function (t) { - bh(t, n, r) - }) - } - - function Th(t) { - return xM(t.model) - } - - function Mh(t) { - var e = t.model, n = t.ecModel, i = t.api, r = t.payload, o = e.pipelineContext.progressiveRender, a = t.view, - s = r && _M(r).updateMethod, l = o ? "incrementalPrepareRender" : s && a[s] ? s : "render"; - return "render" !== l && a[l](e, n, i, r), SM[l] - } - - function Ch(t, e, n) { - function i() { - h = (new Date).getTime(), c = null, t.apply(a, s || []) - } - - var r, o, a, s, l, u = 0, h = 0, c = null; - e = e || 0; - var p = function () { - for (var t = [], p = 0; p < arguments.length; p++) t[p] = arguments[p]; - r = (new Date).getTime(), a = this, s = t; - var f = l || e, d = l || n; - l = null, o = r - (d ? u : h) - f, clearTimeout(c), d ? c = setTimeout(i, f) : o >= 0 ? i() : c = setTimeout(i, -o), u = r - }; - return p.clear = function () { - c && (clearTimeout(c), c = null) - }, p.debounceNextCall = function (t) { - l = t - }, p - } - - function Ih(t, e, n, i) { - var r = t[e]; - if (r) { - var o = r[TM] || r, a = r[CM], s = r[MM]; - if (s !== n || a !== i) { - if (null == n || !i) return t[e] = o; - r = t[e] = Ch(o, n, "debounce" === i), r[TM] = o, r[CM] = i, r[MM] = n - } - return r - } - } - - function Ah(t, e) { - var n = t.visualStyleMapper || AM[e]; - return n ? n : (console.warn("Unkown style type '" + e + "'."), AM.itemStyle) - } - - function Dh(t, e) { - var n = t.visualDrawType || DM[e]; - return n ? n : (console.warn("Unkown style type '" + e + "'."), "fill") - } - - function kh(t, e) { - e = e || {}, c(e, { - text: "loading", - textColor: "#000", - fontSize: "12px", - maskColor: "rgba(255, 255, 255, 0.8)", - showSpinner: !0, - color: "#5470c6", - spinnerRadius: 10, - lineWidth: 5, - zlevel: 0 - }); - var n = new Ox, i = new Gx({style: {fill: e.maskColor}, zlevel: e.zlevel, z: 1e4}); - n.add(i); - var r = e.fontSize + " sans-serif", o = new Gx({ - style: {fill: "none"}, - textContent: new Ew({style: {text: e.text, fill: e.textColor, font: r}}), - textConfig: {position: "right", distance: 10}, - zlevel: e.zlevel, - z: 10001 - }); - n.add(o); - var a; - return e.showSpinner && (a = new Fw({ - shape: {startAngle: -RM / 2, endAngle: -RM / 2 + .1, r: e.spinnerRadius}, - style: {stroke: e.color, lineCap: "round", lineWidth: e.lineWidth}, - zlevel: e.zlevel, - z: 10001 - }), a.animateShape(!0).when(1e3, {endAngle: 3 * RM / 2}).start("circularInOut"), a.animateShape(!0).when(1e3, {startAngle: 3 * RM / 2}).delay(300).start("circularInOut"), n.add(a)), n.resize = function () { - var n = On(e.text, r), s = e.showSpinner ? e.spinnerRadius : 0, - l = (t.getWidth() - 2 * s - (e.showSpinner && n ? 10 : 0) - n) / 2 - (e.showSpinner ? 0 : n / 2), - u = t.getHeight() / 2; - e.showSpinner && a.setShape({cx: l, cy: u}), o.setShape({ - x: l - s, - y: u - s, - width: 2 * s, - height: 2 * s - }), i.setShape({x: 0, y: 0, width: t.getWidth(), height: t.getHeight()}) - }, n.resize(), n - } - - function Lh(t) { - t.overallReset(t.ecModel, t.api, t.payload) - } - - function Ph(t) { - return t.overallProgress && Oh - } - - function Oh() { - this.agent.dirty(), this.getDownstream().dirty() - } - - function Rh() { - this.agent && this.agent.dirty() - } - - function Eh(t) { - return t.plan ? t.plan(t.model, t.ecModel, t.api, t.payload) : null - } - - function zh(t) { - t.useClearVisual && t.data.clearAllVisual(); - var e = t.resetDefines = Ao(t.reset(t.model, t.ecModel, t.api, t.payload)); - return e.length > 1 ? v(e, function (t, e) { - return Bh(e) - }) : zM - } - - function Bh(t) { - return function (e, n) { - var i = n.data, r = n.resetDefines[t]; - if (r && r.dataEach) for (var o = e.start; o < e.end; o++) r.dataEach(i, o); else r && r.progress && r.progress(e, i) - } - } - - function Nh(t) { - return t.data.count() - } - - function Fh(t) { - bM = null; - try { - t(BM, NM) - } catch (e) { - } - return bM - } - - function Hh(t, e) { - for (var n in e.prototype) t[n] = K - } - - function Vh(t, e, n) { - switch (n) { - case"color": - var i = t.getItemVisual(e, "style"); - return i[t.getVisual("drawType")]; - case"opacity": - return t.getItemVisual(e, "style").opacity; - case"symbol": - case"symbolSize": - case"liftZ": - return t.getItemVisual(e, n) - } - } - - function Gh(t, e) { - switch (e) { - case"color": - var n = t.getVisual("style"); - return n[t.getVisual("drawType")]; - case"opacity": - return t.getVisual("style").opacity; - case"symbol": - case"symbolSize": - case"liftZ": - return t.getVisual(e) - } - } - - function Wh(t, e, n, i, r) { - var o = n.width, a = n.height; - switch (t) { - case"top": - i.set(n.x + o / 2, n.y - e), r.set(0, -1); - break; - case"bottom": - i.set(n.x + o / 2, n.y + a + e), r.set(0, 1); - break; - case"left": - i.set(n.x - e, n.y + a / 2), r.set(-1, 0); - break; - case"right": - i.set(n.x + o + e, n.y + a / 2), r.set(1, 0) - } - } - - function Xh(t, e, n, i, r, o, a, s, l) { - a -= t, s -= e; - var u = Math.sqrt(a * a + s * s); - a /= u, s /= u; - var h = a * n + t, c = s * n + e; - if (Math.abs(i - r) % tC < 1e-4) return l[0] = h, l[1] = c, u - n; - if (o) { - var p = i; - i = Ni(r), r = Ni(p) - } else i = Ni(i), r = Ni(r); - i > r && (r += tC); - var f = Math.atan2(s, a); - if (0 > f && (f += tC), f >= i && r >= f || f + tC >= i && r >= f + tC) return l[0] = h, l[1] = c, u - n; - var d = n * Math.cos(i) + t, g = n * Math.sin(i) + e, y = n * Math.cos(r) + t, v = n * Math.sin(r) + e, - m = (d - a) * (d - a) + (g - s) * (g - s), _ = (y - a) * (y - a) + (v - s) * (v - s); - return _ > m ? (l[0] = d, l[1] = g, Math.sqrt(m)) : (l[0] = y, l[1] = v, Math.sqrt(_)) - } - - function Yh(t, e, n, i, r, o, a, s) { - var l = r - t, u = o - e, h = n - t, c = i - e, p = Math.sqrt(h * h + c * c); - h /= p, c /= p; - var f = l * h + u * c, d = f / p; - s && (d = Math.min(Math.max(d, 0), 1)), d *= p; - var g = a[0] = t + d * h, y = a[1] = e + d * c; - return Math.sqrt((g - r) * (g - r) + (y - o) * (y - o)) - } - - function Uh(t, e, n, i, r, o, a) { - 0 > n && (t += n, n = -n), 0 > i && (e += i, i = -i); - var s = t + n, l = e + i, u = a[0] = Math.min(Math.max(r, t), s), h = a[1] = Math.min(Math.max(o, e), l); - return Math.sqrt((u - r) * (u - r) + (h - o) * (h - o)) - } - - function qh(t, e, n) { - var i = Uh(e.x, e.y, e.width, e.height, t.x, t.y, iC); - return n.set(iC[0], iC[1]), i - } - - function jh(t, e, n) { - for (var i, r, o = 0, a = 0, s = 0, l = 0, u = 1 / 0, h = e.data, c = t.x, p = t.y, f = 0; f < h.length;) { - var d = h[f++]; - 1 === f && (o = h[f], a = h[f + 1], s = o, l = a); - var g = u; - switch (d) { - case eC.M: - s = h[f++], l = h[f++], o = s, a = l; - break; - case eC.L: - g = Yh(o, a, h[f], h[f + 1], c, p, iC, !0), o = h[f++], a = h[f++]; - break; - case eC.C: - g = _i(o, a, h[f++], h[f++], h[f++], h[f++], h[f], h[f + 1], c, p, iC), o = h[f++], a = h[f++]; - break; - case eC.Q: - g = Ci(o, a, h[f++], h[f++], h[f], h[f + 1], c, p, iC), o = h[f++], a = h[f++]; - break; - case eC.A: - var y = h[f++], v = h[f++], m = h[f++], _ = h[f++], x = h[f++], w = h[f++]; - f += 1; - var b = !!(1 - h[f++]); - i = Math.cos(x) * m + y, r = Math.sin(x) * _ + v, 1 >= f && (s = i, l = r); - var S = (c - y) * _ / m + y; - g = Xh(y, v, _, x, x + w, b, S, p, iC), o = Math.cos(x + w) * m + y, a = Math.sin(x + w) * _ + v; - break; - case eC.R: - s = o = h[f++], l = a = h[f++]; - var T = h[f++], M = h[f++]; - g = Uh(s, l, T, M, c, p, iC); - break; - case eC.Z: - g = Yh(o, a, s, l, c, p, iC, !0), o = s, a = l - } - u > g && (u = g, n.set(iC[0], iC[1])) - } - return u - } - - function Zh(t, e) { - if (t) { - var n = t.getTextGuideLine(), i = t.getTextContent(); - if (i && n) { - var r = t.textGuideLineConfig || {}, o = [[0, 0], [0, 0], [0, 0]], a = r.candidates || nC, - s = i.getBoundingRect().clone(); - s.applyTransform(i.getComputedTransform()); - var l = 1 / 0, u = r.anchor, h = t.getComputedTransform(), c = h && Ue([], h), - p = e.get("length2") || 0; - u && aC.copy(u); - for (var f = 0; f < a.length; f++) { - var d = a[f]; - Wh(d, 0, s, rC, sC), Pm.scaleAndAdd(oC, rC, sC, p), oC.transform(c); - var g = t.getBoundingRect(), - y = u ? u.distance(oC) : t instanceof xx ? jh(oC, t.path, aC) : qh(oC, g, aC); - l > y && (l = y, oC.transform(h), aC.transform(h), aC.toArray(o[0]), oC.toArray(o[1]), rC.toArray(o[2])) - } - Kh(o, e.get("minTurnAngle")), n.setShape({points: o}) - } - } - } - - function Kh(t, e) { - if (180 >= e && e > 0) { - e = e / 180 * Math.PI, rC.fromArray(t[0]), oC.fromArray(t[1]), aC.fromArray(t[2]), Pm.sub(sC, rC, oC), Pm.sub(lC, aC, oC); - var n = sC.len(), i = lC.len(); - if (!(.001 > n || .001 > i)) { - sC.scale(1 / n), lC.scale(1 / i); - var r = sC.dot(lC), o = Math.cos(e); - if (r > o) { - var a = Yh(oC.x, oC.y, aC.x, aC.y, rC.x, rC.y, uC, !1); - hC.fromArray(uC), hC.scaleAndAdd(lC, a / Math.tan(Math.PI - e)); - var s = aC.x !== oC.x ? (hC.x - oC.x) / (aC.x - oC.x) : (hC.y - oC.y) / (aC.y - oC.y); - if (isNaN(s)) return; - 0 > s ? Pm.copy(hC, oC) : s > 1 && Pm.copy(hC, aC), hC.toArray(t[1]) - } - } - } - } - - function $h(t, e, n) { - if (180 >= n && n > 0) { - n = n / 180 * Math.PI, rC.fromArray(t[0]), oC.fromArray(t[1]), aC.fromArray(t[2]), Pm.sub(sC, oC, rC), Pm.sub(lC, aC, oC); - var i = sC.len(), r = lC.len(); - if (!(.001 > i || .001 > r)) { - sC.scale(1 / i), lC.scale(1 / r); - var o = sC.dot(e), a = Math.cos(n); - if (a > o) { - var s = Yh(oC.x, oC.y, aC.x, aC.y, rC.x, rC.y, uC, !1); - hC.fromArray(uC); - var l = Math.PI / 2, u = Math.acos(lC.dot(e)), h = l + u - n; - if (h >= l) Pm.copy(hC, aC); else { - hC.scaleAndAdd(lC, s / Math.tan(Math.PI / 2 - h)); - var c = aC.x !== oC.x ? (hC.x - oC.x) / (aC.x - oC.x) : (hC.y - oC.y) / (aC.y - oC.y); - if (isNaN(c)) return; - 0 > c ? Pm.copy(hC, oC) : c > 1 && Pm.copy(hC, aC) - } - hC.toArray(t[1]) - } - } - } - } - - function Jh(t, e, n, i) { - var r = "normal" === n, o = r ? t : t.ensureState(n); - o.ignore = e; - var a = i.get("smooth"); - a && a === !0 && (a = .3), o.shape = o.shape || {}, a > 0 && (o.shape.smooth = a); - var s = i.getModel("lineStyle").getLineStyle(); - r ? t.useStyle(s) : o.style = s - } - - function Qh(t, e) { - var n = e.smooth, i = e.points; - if (i) if (t.moveTo(i[0][0], i[0][1]), n > 0 && i.length >= 3) { - var r = Vv(i[0], i[1]), o = Vv(i[1], i[2]); - if (!r || !o) return t.lineTo(i[1][0], i[1][1]), void t.lineTo(i[2][0], i[2][1]); - var a = Math.min(r, o) * n, s = de([], i[1], i[0], a / r), l = de([], i[1], i[2], a / o), - u = de([], s, l, .5); - t.bezierCurveTo(s[0], s[1], s[0], s[1], u[0], u[1]), t.bezierCurveTo(l[0], l[1], l[0], l[1], i[2][0], i[2][1]) - } else for (var h = 1; h < i.length; h++) t.lineTo(i[h][0], i[h][1]) - } - - function tc(t, e, n) { - var i = t.getTextGuideLine(), r = t.getTextContent(); - if (!r) return void (i && t.removeTextGuideLine()); - for (var o = e.normal, a = o.get("show"), s = r.ignore, l = 0; l < Kb.length; l++) { - var u = Kb[l], h = e[u], p = "normal" === u; - if (h) { - var f = h.get("show"), d = p ? s : N(r.states[u] && r.states[u].ignore, s); - if (d || !N(f, a)) { - var g = p ? i : i && i.states.normal; - g && (g.ignore = !0); - continue - } - i || (i = new $x, t.setTextGuideLine(i), p || !s && a || Jh(i, !0, "normal", e.normal), t.stateProxy && (i.stateProxy = t.stateProxy)), Jh(i, !1, u, h) - } - } - if (i) { - c(i.style, n), i.style.fill = null; - var y = o.get("showAbove"), v = t.textGuideLineConfig = t.textGuideLineConfig || {}; - v.showAbove = y || !1, i.buildPath = Qh - } - } - - function ec(t, e) { - e = e || "labelLine"; - for (var n = {normal: t.getModel(e)}, i = 0; i < Zb.length; i++) { - var r = Zb[i]; - n[r] = t.getModel([r, e]) - } - return n - } - - function nc(t) { - for (var e = [], n = 0; n < t.length; n++) { - var i = t[n]; - if (!i.defaultAttr.ignore) { - var r = i.label, o = r.getComputedTransform(), a = r.getBoundingRect(), - s = !o || o[1] < 1e-5 && o[2] < 1e-5, l = r.style.margin || 0, u = a.clone(); - u.applyTransform(o), u.x -= l / 2, u.y -= l / 2, u.width += l, u.height += l; - var h = s ? new _b(a, o) : null; - e.push({ - label: r, - labelLine: i.labelLine, - rect: u, - localRect: a, - obb: h, - priority: i.priority, - defaultAttr: i.defaultAttr, - layoutOption: i.computedLayoutOption, - axisAligned: s, - transform: o - }) - } - } - return e - } - - function ic(t, e, n, i, r, o) { - function a() { - w = S.rect[e] - i, b = r - T.rect[e] - T.rect[n] - } - - function s(t, e, n) { - if (0 > t) { - var i = Math.min(e, -t); - if (i > 0) { - l(i * n, 0, c); - var r = i + t; - 0 > r && u(-r * n, 1) - } else u(-t * n, 1) - } - } - - function l(n, i, r) { - 0 !== n && (d = !0); - for (var o = i; r > o; o++) { - var a = t[o], s = a.rect; - s[e] += n, a.label[e] += n - } - } - - function u(i, r) { - for (var o = [], a = 0, s = 1; c > s; s++) { - var u = t[s - 1].rect, h = Math.max(t[s].rect[e] - u[e] - u[n], 0); - o.push(h), a += h - } - if (a) { - var p = Math.min(Math.abs(i) / a, r); - if (i > 0) for (var s = 0; c - 1 > s; s++) { - var f = o[s] * p; - l(f, 0, s + 1) - } else for (var s = c - 1; s > 0; s--) { - var f = o[s - 1] * p; - l(-f, s, c) - } - } - } - - function h(t) { - var e = 0 > t ? -1 : 1; - t = Math.abs(t); - for (var n = Math.ceil(t / (c - 1)), i = 0; c - 1 > i; i++) if (e > 0 ? l(n, 0, i + 1) : l(-n, c - i - 1, c), t -= n, 0 >= t) return - } - - var c = t.length; - if (!(2 > c)) { - t.sort(function (t, n) { - return t.rect[e] - n.rect[e] - }); - for (var p, f = 0, d = !1, g = [], y = 0, v = 0; c > v; v++) { - var m = t[v], _ = m.rect; - p = _[e] - f, 0 > p && (_[e] -= p, m.label[e] -= p, d = !0); - var x = Math.max(-p, 0); - g.push(x), y += x, f = _[e] + _[n] - } - y > 0 && o && l(-y / c, 0, c); - var w, b, S = t[0], T = t[c - 1]; - return a(), 0 > w && u(-w, .8), 0 > b && u(b, .8), a(), s(w, b, 1), s(b, w, -1), a(), 0 > w && h(-w), 0 > b && h(b), d - } - } - - function rc(t, e, n, i) { - return ic(t, "x", "width", e, n, i) - } - - function oc(t, e, n, i) { - return ic(t, "y", "height", e, n, i) - } - - function ac(t) { - function e(t) { - if (!t.ignore) { - var e = t.ensureState("emphasis"); - null == e.ignore && (e.ignore = !1) - } - t.ignore = !0 - } - - var n = []; - t.sort(function (t, e) { - return e.priority - t.priority - }); - for (var i = new Vm(0, 0, 0, 0), r = 0; r < t.length; r++) { - var o = t[r], a = o.axisAligned, s = o.localRect, l = o.transform, u = o.label, h = o.labelLine; - i.copy(o.rect), i.width -= .1, i.height -= .1, i.x += .05, i.y += .05; - for (var c = o.obb, p = !1, f = 0; f < n.length; f++) { - var d = n[f]; - if (i.intersect(d.rect)) { - if (a && d.axisAligned) { - p = !0; - break - } - if (d.obb || (d.obb = new _b(d.localRect, d.transform)), c || (c = new _b(s, l)), c.intersect(d.obb)) { - p = !0; - break - } - } - } - p ? (e(u), h && e(h)) : (u.attr("ignore", o.defaultAttr.ignore), h && h.attr("ignore", o.defaultAttr.labelGuideIgnore), n.push(o)) - } - } - - function sc(t) { - if (t) { - for (var e = [], n = 0; n < t.length; n++) e.push(t[n].slice()); - return e - } - } - - function lc(t, e) { - var n = t.label, i = e && e.getTextGuideLine(); - return { - dataIndex: t.dataIndex, - dataType: t.dataType, - seriesIndex: t.seriesModel.seriesIndex, - text: t.label.style.text, - rect: t.hostRect, - labelRect: t.rect, - align: n.style.align, - verticalAlign: n.style.verticalAlign, - labelLinePoints: sc(i && i.shape.points) - } - } - - function uc(t, e, n) { - for (var i = 0; i < n.length; i++) { - var r = n[i]; - null != e[r] && (t[r] = e[r]) - } - } - - function hc(t, e) { - function n(e, n) { - var i = []; - return e.eachComponent({mainType: "series", subType: t, query: n}, function (t) { - i.push(t.seriesIndex) - }), i - } - - y([[t + "ToggleSelect", "toggleSelect"], [t + "Select", "select"], [t + "UnSelect", "unselect"]], function (t) { - e(t[0], function (e, i, r) { - e = h({}, e), r.dispatchAction(h(e, {type: t[1], seriesIndex: n(i, e)})) - }) - }) - } - - function cc(t, e, n, i, r) { - var o = t + e; - n.isSilent(o) || i.eachComponent({mainType: "series", subType: "pie"}, function (t) { - for (var e = t.seriesIndex, i = r.selected, a = 0; a < i.length; a++) if (i[a].seriesIndex === e) { - var s = t.getData(), l = Uo(s, r.fromActionPayload); - n.trigger(o, { - type: o, - seriesId: t.id, - name: s.getName(T(l) ? l[0] : l), - selected: h({}, t.option.selectedMap) - }) - } - }) - } - - function pc(t, e, n) { - t.on("selectchanged", function (t) { - t.isFromClick ? (cc("map", "selectchanged", e, n, t), cc("pie", "selectchanged", e, n, t)) : "select" === t.fromAction ? (cc("map", "selected", e, n, t), cc("pie", "selected", e, n, t)) : "unselect" === t.fromAction && (cc("map", "unselected", e, n, t), cc("pie", "unselected", e, n, t)) - }) - } - - function fc(t, e, n) { - var i = null == e.x ? 0 : e.x, r = null == e.x2 ? 1 : e.x2, o = null == e.y ? 0 : e.y, - a = null == e.y2 ? 0 : e.y2; - e.global || (i = i * n.width + n.x, r = r * n.width + n.x, o = o * n.height + n.y, a = a * n.height + n.y), i = isNaN(i) ? 0 : i, r = isNaN(r) ? 1 : r, o = isNaN(o) ? 0 : o, a = isNaN(a) ? 0 : a; - var s = t.createLinearGradient(i, o, r, a); - return s - } - - function dc(t, e, n) { - var i = n.width, r = n.height, o = Math.min(i, r), a = null == e.x ? .5 : e.x, s = null == e.y ? .5 : e.y, - l = null == e.r ? .5 : e.r; - e.global || (a = a * i + n.x, s = s * r + n.y, l *= o); - var u = t.createRadialGradient(a, s, 0, a, s, l); - return u - } - - function gc(t, e, n) { - for (var i = "radial" === e.type ? dc(t, e, n) : fc(t, e, n), r = e.colorStops, o = 0; o < r.length; o++) i.addColorStop(r[o].offset, r[o].color); - return i - } - - function yc(t, e) { - if (t === e || !t && !e) return !1; - if (!t || !e || t.length !== e.length) return !0; - for (var n = 0; n < t.length; n++) if (t[n] !== e[n]) return !0; - return !1 - } - - function vc(t, e) { - return t && "solid" !== t && e > 0 ? (e = e || 1, "dashed" === t ? [4 * e, 2 * e] : "dotted" === t ? [e] : A(t) ? [t] : T(t) ? t : null) : null - } - - function mc(t) { - var e = t.stroke; - return !(null == e || "none" === e || !(t.lineWidth > 0)) - } - - function _c(t) { - var e = t.fill; - return null != e && "none" !== e - } - - function xc(t, e) { - if (null != e.fillOpacity && 1 !== e.fillOpacity) { - var n = t.globalAlpha; - t.globalAlpha = e.fillOpacity * e.opacity, t.fill(), t.globalAlpha = n - } else t.fill() - } - - function wc(t, e) { - if (null != e.strokeOpacity && 1 !== e.strokeOpacity) { - var n = t.globalAlpha; - t.globalAlpha = e.strokeOpacity * e.opacity, t.stroke(), t.globalAlpha = n - } else t.stroke() - } - - function bc(t, e, n) { - var i = Dr(e.image, e.__image, n); - if (Lr(i)) { - var r = t.createPattern(i, e.repeat || "repeat"); - if ("function" == typeof DOMMatrix) { - var o = new DOMMatrix; - o.rotateSelf(0, 0, (e.rotation || 0) / Math.PI * 180), o.scaleSelf(e.scaleX || 1, e.scaleY || 1), o.translateSelf(e.x || 0, e.y || 0), r.setTransform(o) - } - return r - } - } - - function Sc(t, e, n, i) { - var r = mc(n), o = _c(n), a = n.strokePercent, s = 1 > a, l = !e.path; - e.silent && !s || !l || e.createPathProxy(); - var u = e.path || vC; - if (!i) { - var h = n.fill, c = n.stroke, p = o && !!h.colorStops, f = r && !!c.colorStops, d = o && !!h.image, - g = r && !!c.image, y = void 0, m = void 0, _ = void 0, x = void 0, w = void 0; - (p || f) && (w = e.getBoundingRect()), p && (y = e.__dirty ? gc(t, h, w) : e.__canvasFillGradient, e.__canvasFillGradient = y), f && (m = e.__dirty ? gc(t, c, w) : e.__canvasStrokeGradient, e.__canvasStrokeGradient = m), d && (_ = e.__dirty || !e.__canvasFillPattern ? bc(t, h, e) : e.__canvasFillPattern, e.__canvasFillPattern = _), g && (x = e.__dirty || !e.__canvasStrokePattern ? bc(t, c, e) : e.__canvasStrokePattern, e.__canvasStrokePattern = _), p ? t.fillStyle = y : d && (_ ? t.fillStyle = _ : o = !1), f ? t.strokeStyle = m : g && (x ? t.strokeStyle = x : r = !1) - } - var b = n.lineDash && n.lineWidth > 0 && vc(n.lineDash, n.lineWidth), S = n.lineDashOffset, T = !!t.setLineDash, - M = e.getGlobalScale(); - if (u.setScale(M[0], M[1], e.segmentIgnoreThreshold), b) { - var C = n.strokeNoScale && e.getLineScale ? e.getLineScale() : 1; - C && 1 !== C && (b = v(b, function (t) { - return t / C - }), S /= C) - } - var I = !0; - (l || e.__dirty & xx.SHAPE_CHANGED_BIT || b && !T && r) && (u.setDPR(t.dpr), s ? u.setContext(null) : (u.setContext(t), I = !1), u.reset(), b && !T && (u.setLineDash(b), u.setLineDashOffset(S)), e.buildPath(u, e.shape, i), u.toStatic(), e.pathUpdated()), I && u.rebuildPath(t, s ? a : 1), b && T && (t.setLineDash(b), t.lineDashOffset = S), i || (n.strokeFirst ? (r && wc(t, n), o && xc(t, n)) : (o && xc(t, n), r && wc(t, n))), b && T && t.setLineDash([]) - } - - function Tc(t, e, n) { - var i = e.__image = Dr(n.image, e.__image, e, e.onload); - if (i && Lr(i)) { - var r = n.x || 0, o = n.y || 0, a = e.getWidth(), s = e.getHeight(), l = i.width / i.height; - if (null == a && null != s ? a = s * l : null == s && null != a ? s = a / l : null == a && null == s && (a = i.width, s = i.height), n.sWidth && n.sHeight) { - var u = n.sx || 0, h = n.sy || 0; - t.drawImage(i, u, h, n.sWidth, n.sHeight, r, o, a, s) - } else if (n.sx && n.sy) { - var u = n.sx, h = n.sy, c = a - u, p = s - h; - t.drawImage(i, u, h, c, p, r, o, a, s) - } else t.drawImage(i, r, o, a, s) - } - } - - function Mc(t, e, n) { - var i = n.text; - if (null != i && (i += ""), i) { - t.font = n.font || Wm, t.textAlign = n.textAlign, t.textBaseline = n.textBaseline; - var r = void 0; - if (t.setLineDash) { - var o = n.lineDash && n.lineWidth > 0 && vc(n.lineDash, n.lineWidth), a = n.lineDashOffset; - if (o) { - var s = n.strokeNoScale && e.getLineScale ? e.getLineScale() : 1; - s && 1 !== s && (o = v(o, function (t) { - return t / s - }), a /= s), t.setLineDash(o), t.lineDashOffset = a, r = !0 - } - } - n.strokeFirst ? (mc(n) && t.strokeText(i, n.x, n.y), _c(n) && t.fillText(i, n.x, n.y)) : (_c(n) && t.fillText(i, n.x, n.y), mc(n) && t.strokeText(i, n.x, n.y)), r && t.setLineDash([]) - } - } - - function Cc(t, e, n, i, r) { - var o = !1; - if (!i && (n = n || {}, e === n)) return !1; - (i || e.opacity !== n.opacity) && (o || (Oc(t, r), o = !0), t.globalAlpha = null == e.opacity ? w_.opacity : e.opacity), (i || e.blend !== n.blend) && (o || (Oc(t, r), o = !0), t.globalCompositeOperation = e.blend || w_.blend); - for (var a = 0; a < mC.length; a++) { - var s = mC[a]; - (i || e[s] !== n[s]) && (o || (Oc(t, r), o = !0), t[s] = t.dpr * (e[s] || 0)) - } - return (i || e.shadowColor !== n.shadowColor) && (o || (Oc(t, r), o = !0), t.shadowColor = e.shadowColor || w_.shadowColor), o - } - - function Ic(t, e, n, i, r) { - var o = Rc(e, r.inHover), a = i ? null : n && Rc(n, r.inHover) || {}; - if (o === a) return !1; - var s = Cc(t, o, a, i, r); - if ((i || o.fill !== a.fill) && (s || (Oc(t, r), s = !0), t.fillStyle = o.fill), (i || o.stroke !== a.stroke) && (s || (Oc(t, r), s = !0), t.strokeStyle = o.stroke), (i || o.opacity !== a.opacity) && (s || (Oc(t, r), s = !0), t.globalAlpha = null == o.opacity ? 1 : o.opacity), e.hasStroke()) { - var l = o.lineWidth, u = l / (o.strokeNoScale && e && e.getLineScale ? e.getLineScale() : 1); - t.lineWidth !== u && (s || (Oc(t, r), s = !0), t.lineWidth = u) - } - for (var h = 0; h < _C.length; h++) { - var c = _C[h], p = c[0]; - (i || o[p] !== a[p]) && (s || (Oc(t, r), s = !0), t[p] = o[p] || c[1]) - } - return s - } - - function Ac(t, e, n, i, r) { - return Cc(t, Rc(e, r.inHover), n && Rc(n, r.inHover), i, r) - } - - function Dc(t, e) { - var n = e.transform, i = t.dpr || 1; - n ? t.setTransform(i * n[0], i * n[1], i * n[2], i * n[3], i * n[4], i * n[5]) : t.setTransform(i, 0, 0, i, 0, 0) - } - - function kc(t, e, n) { - for (var i = !1, r = 0; r < t.length; r++) { - var o = t[r]; - i = i || o.isZeroArea(), Dc(e, o), e.beginPath(), o.buildPath(e, o.shape), e.clip() - } - n.allClipped = i - } - - function Lc(t, e) { - return t && e ? 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 || e ? !0 : !1 - } - - function Pc(t) { - var e = _c(t), n = mc(t); - return !(t.lineDash || !(+e ^ +n) || e && "string" != typeof t.fill || n && "string" != typeof t.stroke || t.strokePercent < 1 || t.strokeOpacity < 1 || t.fillOpacity < 1) - } - - function Oc(t, e) { - e.batchFill && t.fill(), e.batchStroke && t.stroke(), e.batchFill = "", e.batchStroke = "" - } - - function Rc(t, e) { - return e ? t.__hoverStyle || t.style : t.style - } - - function Ec(t, e) { - zc(t, e, {inHover: !1, viewWidth: 0, viewHeight: 0}, !0) - } - - function zc(t, e, n, i) { - var r = e.transform; - if (!e.shouldBePainted(n.viewWidth, n.viewHeight, !1, !1)) return e.__dirty &= ~n_.REDARAW_BIT, void (e.__isRendered = !1); - var o = e.__clipPaths, a = n.prevElClipPaths, s = !1, l = !1; - if ((!a || yc(o, a)) && (a && a.length && (Oc(t, n), t.restore(), l = s = !0, n.prevElClipPaths = null, n.allClipped = !1, n.prevEl = null), o && o.length && (Oc(t, n), t.save(), kc(o, t, n), s = !0), n.prevElClipPaths = o), n.allClipped) return void (e.__isRendered = !1); - e.beforeBrush && e.beforeBrush(), e.innerBeforeBrush(); - var u = n.prevEl; - u || (l = s = !0); - var h = e instanceof xx && e.autoBatch && Pc(e.style); - s || Lc(r, u.transform) ? (Oc(t, n), Dc(t, e)) : h || Oc(t, n); - var c = Rc(e, n.inHover); - e instanceof xx ? (n.lastDrawType !== xC && (l = !0, n.lastDrawType = xC), Ic(t, e, u, l, n), h && (n.batchFill || n.batchStroke) || t.beginPath(), Sc(t, e, c, h), h && (n.batchFill = c.fill || "", n.batchStroke = c.stroke || "")) : e instanceof ew ? (n.lastDrawType !== bC && (l = !0, n.lastDrawType = bC), Ic(t, e, u, l, n), Mc(t, e, c)) : e instanceof zx ? (n.lastDrawType !== wC && (l = !0, n.lastDrawType = wC), Ac(t, e, u, l, n), Tc(t, e, c)) : e instanceof Mw && (n.lastDrawType !== SC && (l = !0, n.lastDrawType = SC), Bc(t, e, n)), h && i && Oc(t, n), e.innerAfterBrush(), e.afterBrush && e.afterBrush(), n.prevEl = e, e.__dirty = 0, e.__isRendered = !0 - } - - function Bc(t, e, n) { - var i = e.getDisplayables(), r = e.getTemporalDisplayables(); - t.save(); - var o, a, s = { - prevElClipPaths: null, - prevEl: null, - allClipped: !1, - viewWidth: n.viewWidth, - viewHeight: n.viewHeight, - inHover: n.inHover - }; - for (o = e.getCursor(), a = i.length; a > o; o++) { - var l = i[o]; - l.beforeBrush && l.beforeBrush(), l.innerBeforeBrush(), zc(t, l, s, o === a - 1), l.innerAfterBrush(), l.afterBrush && l.afterBrush(), s.prevEl = l - } - for (var u = 0, h = r.length; h > u; u++) { - var l = r[u]; - l.beforeBrush && l.beforeBrush(), l.innerBeforeBrush(), zc(t, l, s, u === h - 1), l.innerAfterBrush(), l.afterBrush && l.afterBrush(), s.prevEl = l - } - e.clearTemporalDisplayables(), e.notClear = !0, t.restore() - } - - function Nc() { - return !1 - } - - function Fc(t, e, n) { - var i = Rv(), r = e.getWidth(), o = e.getHeight(), a = i.style; - return a && (a.position = "absolute", a.left = "0", a.top = "0", a.width = r + "px", a.height = o + "px", i.setAttribute("data-zr-dom-id", t)), i.width = r * n, i.height = o * n, i - } - - function Hc(t) { - return parseInt(t, 10) - } - - function Vc(t) { - return t ? t.__builtin__ ? !0 : "function" != typeof t.resize || "function" != typeof t.refresh ? !1 : !0 : !1 - } - - function Gc(t, e) { - var n = document.createElement("div"); - return n.style.cssText = ["position:relative", "width:" + t + "px", "height:" + e + "px", "padding:0", "margin:0", "border-width:0"].join(";") + ";", n - } - - function Wc(t, e, n) { - for (var i; t && (!e(t) || (i = t, !n));) t = t.__hostTarget || t.parent; - return i - } - - function Xc(t, e) { - if ("image" !== this.type) { - var n = this.style; - this.__isEmptyBrush ? (n.stroke = t, n.fill = e || "#fff", n.lineWidth = 2) : n.fill = t, this.markRedraw() - } - } - - function Yc(t, e, n, i, r, o, a) { - var s = 0 === t.indexOf("empty"); - s && (t = t.substr(5, 1).toLowerCase() + t.substr(6)); - var l; - return l = 0 === t.indexOf("image://") ? rs(t.slice(8), new Vm(e, n, i, r), a ? "center" : "cover") : 0 === t.indexOf("path://") ? is(t.slice(7), {}, new Vm(e, n, i, r), a ? "center" : "cover") : new FC({ - shape: { - symbolType: t, - x: e, - y: n, - width: i, - height: r - } - }), l.__isEmptyBrush = s, l.setColor = Xc, o && l.setColor(o), l - } - - function Uc(t, e) { - function n(t) { - function e() { - for (var t = 1, e = 0, n = m.length; n > e; ++e) t = Co(t, m[e]); - for (var i = 1, e = 0, n = v.length; n > e; ++e) i = Co(i, v[e].length); - t *= i; - var r = _ * m.length * v.length; - return { - width: Math.max(1, Math.min(t, s.maxTileWidth)), - height: Math.max(1, Math.min(r, s.maxTileHeight)) - } - } - - function n() { - function t(t, e, n, a, l) { - var u = o ? 1 : i, h = Yc(l, t * u, e * u, n * u, a * u, s.color, s.symbolKeepAspect); - o ? w.appendChild(r.painter.paintOne(h)) : Ec(d, h) - } - - d && (d.clearRect(0, 0, x.width, x.height), s.backgroundColor && (d.fillStyle = s.backgroundColor, d.fillRect(0, 0, x.width, x.height))); - for (var e = 0, n = 0; n < y.length; ++n) e += y[n]; - if (!(0 >= e)) for (var a = -_, l = 0, u = 0, h = 0; a < b.height;) { - if (l % 2 === 0) { - for (var c = u / 2 % v.length, p = 0, f = 0, m = 0; p < 2 * b.width;) { - for (var S = 0, n = 0; n < g[h].length; ++n) S += g[h][n]; - if (0 >= S) break; - if (f % 2 === 0) { - var T = .5 * (1 - s.symbolSize), M = p + g[h][f] * T, C = a + y[l] * T, - I = g[h][f] * s.symbolSize, A = y[l] * s.symbolSize, D = m / 2 % v[c].length; - t(M, C, I, A, v[c][D]) - } - p += g[h][f], ++m, ++f, f === g[h].length && (f = 0) - } - ++h, h === g.length && (h = 0) - } - a += y[l], ++u, ++l, l === y.length && (l = 0) - } - } - - for (var a = [i], l = !0, u = 0; u < GC.length; ++u) { - var h = s[GC[u]], c = typeof h; - if (null != h && !T(h) && "string" !== c && "number" !== c && "boolean" !== c) { - l = !1; - break - } - a.push(h) - } - var p; - if (l) { - p = a.join(",") + (o ? "-svg" : ""); - var f = VC.get(p); - f && (o ? t.svgElement = f : t.image = f) - } - var d, g = jc(s.dashArrayX), y = Zc(s.dashArrayY), v = qc(s.symbol), m = Kc(g), _ = $c(y), x = !o && Rv(), - w = o && r.painter.createSVGElement("g"), b = e(); - x && (x.width = b.width * i, x.height = b.height * i, d = x.getContext("2d")), n(), l && VC.put(p, x || w), t.image = x, t.svgElement = w, t.svgWidth = b.width, t.svgHeight = b.height - } - - if ("none" === t) return null; - var i = e.getDevicePixelRatio(), r = e.getZr(), o = "svg" === r.painter.type; - t.dirty && HC["delete"](t); - var a = HC.get(t); - if (a) return a; - var s = c(t, { - symbol: "rect", - symbolSize: 1, - symbolKeepAspect: !0, - color: "rgba(0, 0, 0, 0.2)", - backgroundColor: null, - dashArrayX: 5, - dashArrayY: 5, - dashLineOffset: 0, - rotation: 0, - maxTileWidth: 512, - maxTileHeight: 512 - }); - "none" === s.backgroundColor && (s.backgroundColor = null); - var l = {repeat: "repeat"}; - return n(l), l.rotation = s.rotation, l.scaleX = l.scaleY = o ? 1 : 1 / i, HC.set(t, l), t.dirty = !1, l - } - - function qc(t) { - if (!t || 0 === t.length) return [["rect"]]; - if ("string" == typeof t) return [[t]]; - for (var e = !0, n = 0; n < t.length; ++n) if ("string" != typeof t[n]) { - e = !1; - break - } - if (e) return qc([t]); - for (var i = [], n = 0; n < t.length; ++n) i.push("string" == typeof t[n] ? [t[n]] : t[n]); - return i - } - - function jc(t) { - if (!t || 0 === t.length) return [[0, 0]]; - if ("number" == typeof t) { - var e = Math.ceil(t); - return [[e, e]] - } - for (var n = !0, i = 0; i < t.length; ++i) if ("number" != typeof t[i]) { - n = !1; - break - } - if (n) return jc([t]); - for (var r = [], i = 0; i < t.length; ++i) if ("number" == typeof t[i]) { - var e = Math.ceil(t[i]); - r.push([e, e]) - } else { - var e = v(t[i], function (t) { - return Math.ceil(t) - }); - r.push(e.length % 2 === 1 ? e.concat(e) : e) - } - return r - } - - function Zc(t) { - if (!t || "object" == typeof t && 0 === t.length) return [0, 0]; - if ("number" == typeof t) { - var e = Math.ceil(t); - return [e, e] - } - var n = v(t, function (t) { - return Math.ceil(t) - }); - return t.length % 2 ? n.concat(n) : n - } - - function Kc(t) { - return v(t, function (t) { - return $c(t) - }) - } - - function $c(t) { - for (var e = 0, n = 0; n < t.length; ++n) e += t[n]; - return t.length % 2 === 1 ? 2 * e : e - } - - function Jc(t, e) { - t.eachRawSeries(function (n) { - if (!t.isSeriesFiltered(n)) { - var i = n.getData(); - i.hasItemVisual() && i.each(function (t) { - var n = i.getItemVisual(t, "decal"); - if (n) { - var r = i.ensureUniqueItemVisual(t, "style"); - r.decal = Uc(n, e) - } - }); - var r = i.getVisual("decal"); - if (r) { - var o = i.getVisual("style"); - o.decal = Uc(r, e) - } - } - }) - } - - function Qc(t) { - return function () { - for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; - return this.isDisposed() ? void 0 : ep(this, t, e) - } - } - - function tp(t) { - return function () { - for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; - return ep(this, t, e) - } - } - - function ep(t, e, n) { - return n[0] = n[0] && n[0].toLowerCase(), Uv.prototype[e].apply(t, n) - } - - function np(t, e, n) { - var i = ap(t); - if (i) return i; - var r = new WI(t, e, n); - return r.id = "ec_" + iA++, eA[r.id] = r, Ko(t, oA, r.id), FI(r), XC(KI, function (t) { - t(r) - }), r - } - - function ip(t) { - if (T(t)) { - var e = t; - t = null, XC(e, function (e) { - null != e.group && (t = e.group) - }), t = t || "g_" + rA++, XC(e, function (e) { - e.group = t - }) - } - return nA[t] = !0, t - } - - function rp(t) { - nA[t] = !1 - } - - function op(t) { - "string" == typeof t ? t = eA[t] : t instanceof WI || (t = ap(t)), t instanceof WI && !t.isDisposed() && t.dispose() - } - - function ap(t) { - return eA[$o(t, oA)] - } - - function sp(t) { - return eA[t] - } - - function lp(t, e) { - QI[t] = e - } - - function up(t) { - ZI.push(t) - } - - function hp(t, e) { - mp(jI, t, e, QC) - } - - function cp(t) { - t && KI.push(t) - } - - function pp(t) { - t && $I.push(t) - } - - function fp(t, e, n) { - "function" == typeof e && (n = e, e = ""); - var i = UC(t) ? t.type : [t, t = {event: e}][0]; - t.event = (t.event || i).toLowerCase(), e = t.event, WC(gI.test(i) && gI.test(e)), UI[i] || (UI[i] = { - action: n, - actionInfo: t - }), qI[e] = i - } - - function dp(t, e) { - ET.register(t, e) - } - - function gp(t) { - var e = ET.get(t); - return e ? e.getDimensionsInfo ? e.getDimensionsInfo() : e.dimensions.slice() : void 0 - } - - function yp(t, e) { - mp(JI, t, e, eI, "layout") - } - - function vp(t, e) { - mp(JI, t, e, rI, "visual") - } - - function mp(t, e, n, i, r) { - (YC(e) || UC(e)) && (n = e, e = i); - var o = EM.wrapStageHandler(n, r); - o.__prio = e, o.__raw = n, t.push(o) - } - - function _p(t, e) { - tA[t] = e - } - - function xp(t) { - return oT.extend(t) - } - - function wp(t) { - return mM.extend(t) - } - - function bp(t) { - return vM.extend(t) - } - - function Sp(t) { - return wM.extend(t) - } - - function Tp(t) { - r("createCanvas", t) - } - - function Mp(t, e, n) { - ZM.registerMap(t, e, n) - } - - function Cp(t) { - var e = ZM.retrieveMap(t); - return e && e[0] && {geoJson: e[0].geoJSON, specialAreas: e[0].specialAreas} - } - - function Ip(t) { - return null == t ? 0 : t.length || 1 - } - - function Ap(t) { - return t - } - - function Dp(t) { - var e = {}, n = e.encode = {}, i = U(), r = [], o = [], - a = e.userOutput = {dimensionNames: t.dimensions.slice(), encode: {}}; - y(t.dimensions, function (e) { - var s = t.getDimensionInfo(e), l = s.coordDim; - if (l) { - var u = s.coordDimIndex; - kp(n, l)[u] = e, s.isExtraCoord || (i.set(l, 1), Pp(s.type) && (r[0] = e), kp(a.encode, l)[u] = s.index), s.defaultTooltip && o.push(e) - } - cT.each(function (t, e) { - var i = kp(n, e), r = s.otherDims[e]; - null != r && r !== !1 && (i[r] = s.name) - }) - }); - var s = [], l = {}; - i.each(function (t, e) { - var i = n[e]; - l[e] = i[0], s = s.concat(i) - }), e.dataDimsOnCoord = s, e.encodeFirstDimNotExtra = l; - var u = n.label; - u && u.length && (r = u.slice()); - var h = n.tooltip; - return h && h.length ? o = h.slice() : o.length || (o = r.slice()), n.defaultedLabel = r, n.defaultedTooltip = o, e - } - - function kp(t, e) { - return t.hasOwnProperty(e) || (t[e] = []), t[e] - } - - function Lp(t) { - return "category" === t ? "ordinal" : "time" === t ? "time" : "float" - } - - function Pp(t) { - return !("ordinal" === t || "time" === t) - } - - function Op(t, e, n) { - function i(t, e, n) { - null != cT.get(e) ? t.otherDims[e] = n : (t.coordDim = e, t.coordDimIndex = n, a.set(e, !0)) - } - - Su(e) || (e = Mu(e)), n = n || {}, t = (t || []).slice(); - for (var r = (n.dimsDef || []).slice(), o = U(), a = U(), l = [], u = Rp(e, t, r, n.dimCount), p = 0; u > p; p++) { - var f = r[p], d = r[p] = h({}, D(f) ? f : {name: f}), g = d.name, v = l[p] = new TA; - null != g && null == o.get(g) && (v.name = v.displayName = g, o.set(g, p)), null != d.type && (v.type = d.type), null != d.displayName && (v.displayName = d.displayName) - } - var m = n.encodeDef; - !m && n.encodeDefaulter && (m = n.encodeDefaulter(e, u)); - var _ = U(m); - _.each(function (t, e) { - var n = Ao(t).slice(); - if (1 === n.length && !C(n[0]) && n[0] < 0) return void _.set(e, !1); - var r = _.set(e, []); - y(n, function (t, n) { - var a = C(t) ? o.get(t) : t; - null != a && u > a && (r[n] = a, i(l[a], e, n)) - }) - }); - var x = 0; - y(t, function (t) { - var e, n, r, o; - if (C(t)) e = t, o = {}; else { - o = t, e = o.name; - var a = o.ordinalMeta; - o.ordinalMeta = null, o = s(o), o.ordinalMeta = a, n = o.dimsDef, r = o.otherDims, o.name = o.coordDim = o.coordDimIndex = o.dimsDef = o.otherDims = null - } - var u = _.get(e); - if (u !== !1) { - if (u = Ao(u), !u.length) for (var h = 0; h < (n && n.length || 1); h++) { - for (; x < l.length && null != l[x].coordDim;) x++; - x < l.length && u.push(x++) - } - y(u, function (t, a) { - var s = l[t]; - if (i(c(s, o), e, a), null == s.name && n) { - var u = n[a]; - !D(u) && (u = {name: u}), s.name = s.displayName = u.name, s.defaultTooltip = u.defaultTooltip - } - r && c(s.otherDims, r) - }) - } - }); - var w = n.generateCoord, b = n.generateCoordCount, S = null != b; - b = w ? b || 1 : 0; - for (var T = w || "value", M = 0; u > M; M++) { - var v = l[M] = l[M] || new TA, I = v.coordDim; - null == I && (v.coordDim = Ep(T, a, S), v.coordDimIndex = 0, (!w || 0 >= b) && (v.isExtraCoord = !0), b--), null == v.name && (v.name = Ep(v.coordDim, o, !1)), null != v.type || Gl(e, M) !== xT.Must && (!v.isExtraCoord || null == v.otherDims.itemName && null == v.otherDims.seriesName) || (v.type = "ordinal") - } - return l - } - - function Rp(t, e, n, i) { - var r = Math.max(t.dimensionsDetectedCount || 1, e.length, n.length, i || 0); - return y(e, function (t) { - var e; - D(t) && (e = t.dimsDef) && (r = Math.max(r, e.length)) - }), r - } - - function Ep(t, e, n) { - if (n || null != e.get(t)) { - for (var i = 0; null != e.get(t + i);) i++; - t += i - } - return e.set(t, !0), t - } - - function zp(t, e) { - return e = e || {}, Op(e.coordDimensions || [], t, { - dimsDef: e.dimensionsDefine || t.dimensionsDefine, - encodeDef: e.encodeDefine || t.encodeDefine, - dimCount: e.dimensionsCount, - encodeDefaulter: e.encodeDefaulter, - generateCoord: e.generateCoord, - generateCoordCount: e.generateCoordCount - }) - } - - function Bp(t) { - var e = t.get("coordinateSystem"), n = new NA(e), i = FA[e]; - return i ? (i(t, n, n.axisMap, n.categoryAxisMap), n) : void 0 - } - - function Np(t) { - return "category" === t.get("type") - } - - function Fp(t, e, n) { - n = n || {}; - var i, r, o, a, s = n.byIndex, l = n.stackedCoordDimension, u = !(!t || !t.get("stack")); - if (y(e, function (t, n) { - C(t) && (e[n] = t = {name: t}), u && !t.isExtraCoord && (s || i || !t.ordinalMeta || (i = t), r || "ordinal" === t.type || "time" === t.type || l && l !== t.coordDim || (r = t)) - }), !r || s || i || (s = !0), r) { - o = "__\x00ecstackresult", a = "__\x00ecstackedover", i && (i.createInvertedIndices = !0); - var h = r.coordDim, c = r.type, p = 0; - y(e, function (t) { - t.coordDim === h && p++ - }), e.push({ - name: o, - coordDim: h, - coordDimIndex: p, - type: c, - isExtraCoord: !0, - isCalculationCoord: !0 - }), p++, e.push({name: a, coordDim: a, coordDimIndex: p, type: c, isExtraCoord: !0, isCalculationCoord: !0}) - } - return { - stackedDimension: r && r.name, - stackedByDimension: i && i.name, - isStackedByIndex: s, - stackedOverDimension: a, - stackResultDimension: o - } - } - - function Hp(t, e) { - return !!e && e === t.getCalculationInfo("stackedDimension") - } - - function Vp(t, e) { - return Hp(t, e) ? t.getCalculationInfo("stackResultDimension") : e - } - - function Gp(t, e, n) { - n = n || {}, Su(t) || (t = Mu(t)); - var i, r = e.get("coordinateSystem"), o = ET.get(r), a = Bp(e); - a && a.coordSysDims && (i = v(a.coordSysDims, function (t) { - var e = {name: t}, n = a.axisMap.get(t); - if (n) { - var i = n.get("type"); - e.type = Lp(i) - } - return e - })), i || (i = o && (o.getDimensionsInfo ? o.getDimensionsInfo() : o.dimensions.slice()) || ["x", "y"]); - var s, l, u = n.useEncodeDefaulter, h = zp(t, { - coordDimensions: i, - generateCoord: n.generateCoord, - encodeDefaulter: M(u) ? u : u ? S(Nl, i, e) : null - }); - a && y(h, function (t, e) { - var n = t.coordDim, i = a.categoryAxisMap.get(n); - i && (null == s && (s = e), t.ordinalMeta = i.getOrdinalMeta()), null != t.otherDims.itemName && (l = !0) - }), l || null == s || (h[s].otherDims.itemName = 0); - var c = Fp(e, h), p = new BA(h, e); - p.setCalculationInfo(c); - var f = null != s && Wp(t) ? function (t, e, n, i) { - return i === s ? n : this.defaultDimValueGetter(t, e, n, i) - } : null; - return p.hasItemOption = !1, p.initData(t, null, f), p - } - - function Wp(t) { - if (t.sourceFormat === pT) { - var e = Xp(t.data || []); - return null != e && !T(ko(e)) - } - } - - function Xp(t) { - for (var e = 0; e < t.length && null == t[e];) e++; - return t[e] - } - - function Yp(t) { - return D(t) && null != t.value ? t.value : t + "" - } - - function Up(t, e, n, i) { - var r = {}, o = t[1] - t[0], a = r.interval = _o(o / e, !0); - null != n && n > a && (a = r.interval = n), null != i && a > i && (a = r.interval = i); - var s = r.intervalPrecision = qp(a), - l = r.niceTickExtent = [GA(Math.ceil(t[0] / a) * a, s), GA(Math.floor(t[1] / a) * a, s)]; - return Zp(l, t), r - } - - function qp(t) { - return ho(t) + 2 - } - - function jp(t, e, n) { - t[e] = Math.max(Math.min(t[e], n[1]), n[0]) - } - - function Zp(t, e) { - !isFinite(t[0]) && (t[0] = e[0]), !isFinite(t[1]) && (t[1] = e[1]), jp(t, 0, e), jp(t, 1, e), t[0] > t[1] && (t[0] = t[1]) - } - - function Kp(t, e) { - return t >= e[0] && t <= e[1] - } - - function $p(t, e) { - return e[1] === e[0] ? .5 : (t - e[0]) / (e[1] - e[0]) - } - - function Jp(t, e) { - return t * (e[1] - e[0]) + e[0] - } - - function Qp(t) { - return t.get("stack") || UA + t.seriesIndex - } - - function tf(t) { - return t.dim + t.index - } - - function ef(t, e) { - var n = []; - return e.eachSeriesByType(t, function (t) { - lf(t) && !uf(t) && n.push(t) - }), n - } - - function nf(t) { - var e = {}; - y(t, function (t) { - var n = t.coordinateSystem, i = n.getBaseAxis(); - if ("time" === i.type || "value" === i.type) for (var r = t.getData(), o = i.dim + "_" + i.index, a = r.mapDimension(i.dim), s = 0, l = r.count(); l > s; ++s) { - var u = r.get(a, s); - e[o] ? e[o].push(u) : e[o] = [u] - } - }); - var n = {}; - for (var i in e) if (e.hasOwnProperty(i)) { - var r = e[i]; - if (r) { - r.sort(function (t, e) { - return t - e - }); - for (var o = null, a = 1; a < r.length; ++a) { - var s = r[a] - r[a - 1]; - s > 0 && (o = null === o ? s : Math.min(o, s)) - } - n[i] = o - } - } - return n - } - - function rf(t) { - var e = nf(t), n = []; - return y(t, function (t) { - var i, r = t.coordinateSystem, o = r.getBaseAxis(), a = o.getExtent(); - if ("category" === o.type) i = o.getBandWidth(); else if ("value" === o.type || "time" === o.type) { - var s = o.dim + "_" + o.index, l = e[s], u = Math.abs(a[1] - a[0]), h = o.scale.getExtent(), - c = Math.abs(h[1] - h[0]); - i = l ? u / c * l : u - } else { - var p = t.getData(); - i = Math.abs(a[1] - a[0]) / p.count() - } - var f = ao(t.get("barWidth"), i), d = ao(t.get("barMaxWidth"), i), g = ao(t.get("barMinWidth") || 1, i), - y = t.get("barGap"), v = t.get("barCategoryGap"); - n.push({ - bandWidth: i, - barWidth: f, - barMaxWidth: d, - barMinWidth: g, - barGap: y, - barCategoryGap: v, - axisKey: tf(o), - stackId: Qp(t) - }) - }), of(n) - } - - function of(t) { - var e = {}; - y(t, function (t) { - var n = t.axisKey, i = t.bandWidth, r = e[n] || { - bandWidth: i, - remainedWidth: i, - autoWidthCount: 0, - categoryGap: null, - gap: "20%", - stacks: {} - }, o = r.stacks; - e[n] = r; - var a = t.stackId; - o[a] || r.autoWidthCount++, o[a] = o[a] || {width: 0, maxWidth: 0}; - var s = t.barWidth; - s && !o[a].width && (o[a].width = s, s = Math.min(r.remainedWidth, s), r.remainedWidth -= s); - var l = t.barMaxWidth; - l && (o[a].maxWidth = l); - var u = t.barMinWidth; - u && (o[a].minWidth = u); - var h = t.barGap; - null != h && (r.gap = h); - var c = t.barCategoryGap; - null != c && (r.categoryGap = c) - }); - var n = {}; - return y(e, function (t, e) { - n[e] = {}; - var i = t.stacks, r = t.bandWidth, o = t.categoryGap; - if (null == o) { - var a = w(i).length; - o = Math.max(35 - 4 * a, 15) + "%" - } - var s = ao(o, r), l = ao(t.gap, 1), u = t.remainedWidth, h = t.autoWidthCount, - c = (u - s) / (h + (h - 1) * l); - c = Math.max(c, 0), y(i, function (t) { - var e = t.maxWidth, n = t.minWidth; - if (t.width) { - var i = t.width; - e && (i = Math.min(i, e)), n && (i = Math.max(i, n)), t.width = i, u -= i + l * i, h-- - } else { - var i = c; - e && i > e && (i = Math.min(e, u)), n && n > i && (i = n), i !== c && (t.width = i, u -= i + l * i, h--) - } - }), c = (u - s) / (h + (h - 1) * l), c = Math.max(c, 0); - var p, f = 0; - y(i, function (t) { - t.width || (t.width = c), p = t, f += t.width * (1 + l) - }), p && (f -= p.width * l); - var d = -f / 2; - y(i, function (t, i) { - n[e][i] = n[e][i] || {bandWidth: r, offset: d, width: t.width}, d += t.width * (1 + l) - }) - }), n - } - - function af(t, e, n) { - if (t && e) { - var i = t[tf(e)]; - return null != i && null != n ? i[Qp(n)] : i - } - } - - function sf(t, e) { - var n = ef(t, e), i = rf(n), r = {}; - y(n, function (t) { - var e = t.getData(), n = t.coordinateSystem, o = n.getBaseAxis(), a = Qp(t), s = i[tf(o)][a], l = s.offset, - u = s.width, h = n.getOtherAxis(o), c = t.get("barMinHeight") || 0; - r[a] = r[a] || [], e.setLayout({bandWidth: s.bandWidth, offset: l, size: u}); - for (var p = e.mapDimension(h.dim), f = e.mapDimension(o.dim), d = Hp(e, p), g = h.isHorizontal(), y = hf(o, h, d), v = 0, m = e.count(); m > v; v++) { - var _ = e.get(p, v), x = e.get(f, v), w = _ >= 0 ? "p" : "n", b = y; - d && (r[a][x] || (r[a][x] = {p: y, n: y}), b = r[a][x][w]); - var S = void 0, T = void 0, M = void 0, C = void 0; - if (g) { - var I = n.dataToPoint([_, x]); - S = b, T = I[1] + l, M = I[0] - y, C = u, Math.abs(M) < c && (M = (0 > M ? -1 : 1) * c), isNaN(M) || d && (r[a][x][w] += M) - } else { - var I = n.dataToPoint([x, _]); - S = I[0] + l, T = b, M = u, C = I[1] - y, Math.abs(C) < c && (C = (0 >= C ? -1 : 1) * c), isNaN(C) || d && (r[a][x][w] += C) - } - e.setItemLayout(v, {x: S, y: T, width: M, height: C}) - } - }) - } - - function lf(t) { - return t.coordinateSystem && "cartesian2d" === t.coordinateSystem.type - } - - function uf(t) { - return t.pipelineContext && t.pipelineContext.large - } - - function hf(t, e) { - return e.toGlobalCoord(e.dataToCoord("log" === e.type ? 1 : 0)) - } - - function cf(t, e, n, i) { - var r = yo(e), o = yo(n), a = function (t) { - return nl(r, t, i) === nl(o, t, i) - }, s = function () { - return a("year") - }, l = function () { - return s() && a("month") - }, u = function () { - return l() && a("day") - }, h = function () { - return u() && a("hour") - }, c = function () { - return h() && a("minute") - }, p = function () { - return c() && a("second") - }, f = function () { - return p() && a("millisecond") - }; - switch (t) { - case"year": - return s(); - case"month": - return l(); - case"day": - return u(); - case"hour": - return h(); - case"minute": - return c(); - case"second": - return p(); - case"millisecond": - return f() - } - } - - function pf(t) { - return t /= VS, t > 16 ? 16 : t > 7.5 ? 7 : t > 3.5 ? 4 : t > 1.5 ? 2 : 1 - } - - function ff(t) { - var e = 30 * VS; - return t /= e, t > 6 ? 6 : t > 3 ? 3 : t > 2 ? 2 : 1 - } - - function df(t) { - return t /= HS, t > 12 ? 12 : t > 6 ? 6 : t > 3.5 ? 4 : t > 2 ? 2 : 1 - } - - function gf(t, e) { - return t /= e ? FS : NS, t > 30 ? 30 : t > 20 ? 20 : t > 15 ? 15 : t > 10 ? 10 : t > 5 ? 5 : t > 2 ? 2 : 1 - } - - function yf(t) { - return _o(t, !0) - } - - function vf(t, e, n) { - var i = new Date(t); - switch (Ks(e)) { - case"year": - case"month": - i[cl(n)](0); - case"day": - i[pl(n)](1); - case"hour": - i[fl(n)](0); - case"minute": - i[dl(n)](0); - case"second": - i[gl(n)](0), i[yl(n)](0) - } - return i.getTime() - } - - function mf(t, e, n, i) { - function r(t, e, n, r, o, a, s) { - for (var l = new Date(e), u = e, h = l[r](); n > u && u <= i[1];) s.push({value: u}), h += t, l[o](h), u = l.getTime(); - s.push({value: u, notAdd: !0}) - } - - function o(t, o, a) { - var s = [], l = !o.length; - if (!cf(Ks(t), i[0], i[1], n)) { - l && (o = [{value: vf(new Date(i[0]), t, n)}, {value: i[1]}]); - for (var u = 0; u < o.length - 1; u++) { - var h = o[u].value, c = o[u + 1].value; - if (h !== c) { - var p = void 0, f = void 0, d = void 0, g = !1; - switch (t) { - case"year": - p = Math.max(1, Math.round(e / VS / 365)), f = il(n), d = hl(n); - break; - case"half-year": - case"quarter": - case"month": - p = ff(e), f = rl(n), d = cl(n); - break; - case"week": - case"half-week": - case"day": - p = pf(e, 31), f = ol(n), d = pl(n), g = !0; - break; - case"half-day": - case"quarter-day": - case"hour": - p = df(e), f = al(n), d = fl(n); - break; - case"minute": - p = gf(e, !0), f = sl(n), d = dl(n); - break; - case"second": - p = gf(e, !1), f = ll(n), d = gl(n); - break; - case"millisecond": - p = yf(e), f = ul(n), d = yl(n) - } - r(p, h, c, f, d, g, s), "year" === t && a.length > 1 && 0 === u && a.unshift({value: a[0].value - p}) - } - } - for (var u = 0; u < s.length; u++) a.push(s[u]); - return s - } - } - - for (var a = 1e4, s = qS, l = 0, u = [], h = [], c = 0, p = 0, f = 0; f < s.length && l++ < a; ++f) { - var d = Ks(s[f]); - if ($s(s[f])) { - o(s[f], u[u.length - 1] || [], h); - var g = s[f + 1] ? Ks(s[f + 1]) : null; - if (d !== g) { - if (h.length) { - p = c, h.sort(function (t, e) { - return t.value - e.value - }); - for (var y = [], m = 0; m < h.length; ++m) { - var x = h[m].value; - (0 === m || h[m - 1].value !== x) && (y.push(h[m]), x >= i[0] && x <= i[1] && c++) - } - var w = (i[1] - i[0]) / e; - if (c > 1.5 * w && p > w / 1.5) break; - if (u.push(y), c > w || t === s[f]) break - } - h = [] - } - } - } - for (var b = _(v(u, function (t) { - return _(t, function (t) { - return t.value >= i[0] && t.value <= i[1] && !t.notAdd - }) - }), function (t) { - return t.length > 0 - }), S = [], T = b.length - 1, f = 0; f < b.length; ++f) for (var M = b[f], C = 0; C < M.length; ++C) S.push({ - value: M[C].value, - level: T - f - }); - S.sort(function (t, e) { - return t.value - e.value - }); - for (var I = [], f = 0; f < S.length; ++f) (0 === f || S[f].value !== S[f - 1].value) && I.push(S[f]); - return I - } - - function _f(t, e) { - return nD(t, eD(e)) - } - - function xf(t, e, n) { - var i = t.rawExtentInfo; - return i ? i : (i = new uD(t, e, n), t.rawExtentInfo = i, i) - } - - function wf(t, e) { - return null == e ? null : z(e) ? 0 / 0 : t.parse(e) - } - - function bf(t, e) { - var n = t.type, i = xf(t, e, t.getExtent()).calculate(); - t.setBlank(i.isBlank); - var r = i.min, o = i.max, a = e.ecModel; - if (a && "time" === n) { - var s = ef("bar", a), l = !1; - if (y(s, function (t) { - l = l || t.getBaseAxis() === e.axis - }), l) { - var u = rf(s), h = Sf(r, o, e, u); - r = h.min, o = h.max - } - } - return {extent: [r, o], fixMin: i.minFixed, fixMax: i.maxFixed} - } - - function Sf(t, e, n, i) { - var r = n.axis.getExtent(), o = r[1] - r[0], a = af(i, n.axis); - if (void 0 === a) return {min: t, max: e}; - var s = 1 / 0; - y(a, function (t) { - s = Math.min(t.offset, s) - }); - var l = -1 / 0; - y(a, 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 = 1 - (s + l) / o, p = h / c - h; - return e += p * (l / u), t -= p * (s / u), {min: t, max: e} - } - - function Tf(t, e) { - var n = bf(t, e), i = n.extent, r = e.get("splitNumber"); - t instanceof sD && (t.base = e.get("logBase")); - var o = t.type; - t.setExtent(i[0], i[1]), t.niceExtent({ - splitNumber: r, - fixMin: n.fixMin, - fixMax: n.fixMax, - minInterval: "interval" === o || "time" === o ? e.get("minInterval") : null, - maxInterval: "interval" === o || "time" === o ? e.get("maxInterval") : null - }); - var a = e.get("interval"); - null != a && t.setInterval && t.setInterval(a) - } - - function Mf(t, e) { - if (e = e || t.get("type")) switch (e) { - case"category": - return new WA({ - ordinalMeta: t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(), - extent: [1 / 0, -1 / 0] - }); - case"time": - return new $A({locale: t.ecModel.getLocaleModel(), useUTC: t.ecModel.get("useUTC")}); - default: - return new (HA.getClass(e) || YA) - } - } - - function Cf(t) { - var e = t.scale.getExtent(), n = e[0], i = e[1]; - return !(n > 0 && i > 0 || 0 > n && 0 > i) - } - - function If(t) { - var e = t.getLabelModel().get("formatter"), n = "category" === t.type ? t.scale.getExtent()[0] : null; - return "time" === t.scale.type ? function (e) { - return function (n, i) { - return t.scale.getFormattedLabel(n, i, e) - } - }(e) : "string" == typeof e ? function (e) { - return function (n) { - var i = t.scale.getLabel(n), r = e.replace("{value}", null != i ? i : ""); - return r - } - }(e) : "function" == typeof e ? function (e) { - return function (i, r) { - return null != n && (r = i.value - n), e(Af(t, i), r, null != i.level ? {level: i.level} : null) - } - }(e) : function (e) { - return t.scale.getLabel(e) - } - } - - function Af(t, e) { - return "category" === t.type ? t.scale.getLabel(e) : e.value - } - - function Df(t) { - var e = t.model, n = t.scale; - if (e.get(["axisLabel", "show"]) && !n.isBlank()) { - var i, r, o = n.getExtent(); - n instanceof WA ? r = n.count() : (i = n.getTicks(), r = i.length); - var a, s = t.getLabelModel(), l = If(t), u = 1; - r > 40 && (u = Math.ceil(r / 40)); - for (var h = 0; r > h; h += u) { - var c = i ? i[h] : {value: o[0] + h}, p = l(c, h), f = s.getTextRect(p), - d = kf(f, s.get("rotate") || 0); - a ? a.union(d) : a = d - } - return a - } - } - - function kf(t, e) { - var n = e * Math.PI / 180, i = t.width, r = t.height, o = i * Math.abs(Math.cos(n)) + Math.abs(r * Math.sin(n)), - a = i * Math.abs(Math.sin(n)) + Math.abs(r * Math.cos(n)), s = new Vm(t.x, t.y, o, a); - return s - } - - function Lf(t) { - var e = t.get("interval"); - return null == e ? "auto" : e - } - - function Pf(t) { - return "category" === t.type && 0 === Lf(t.getLabelModel()) - } - - function Of(t, e) { - var n = {}; - return y(t.mapDimensionsAll(e), function (e) { - n[Vp(t, e)] = !0 - }), w(n) - } - - function Rf(t, e, n) { - e && y(Of(e, n), function (n) { - var i = e.getApproximateExtent(n); - i[0] < t[0] && (t[0] = i[0]), i[1] > t[1] && (t[1] = i[1]) - }) - } - - function Ef(t) { - return Gp(t.getSource(), t) - } - - function zf(t, e) { - var n = e; - e instanceof AS || (n = new AS(e)); - var i = Mf(n); - return i.setExtent(t[0], t[1]), Tf(i, n), i - } - - function Bf(t) { - d(t, pD) - } - - function Nf(t, e) { - return Math.abs(t - e) < gD - } - - function Ff(t, e, n) { - var i = 0, r = t[0]; - if (!r) return !1; - for (var o = 1; o < t.length; o++) { - var a = t[o]; - i += Hi(r[0], r[1], a[0], a[1], e, n), r = a - } - var s = t[0]; - return Nf(r[0], s[0]) && Nf(r[1], s[1]) || (i += Hi(r[0], r[1], s[0], s[1], e, n)), 0 !== i - } - - function Hf(t) { - if (!t.UTF8Encoding) return t; - var e = t, n = e.UTF8Scale; - null == n && (n = 1024); - for (var i = e.features, r = 0; r < i.length; r++) { - var o = i[r], a = o.geometry; - if ("Polygon" === a.type) for (var s = a.coordinates, l = 0; l < s.length; l++) s[l] = Vf(s[l], a.encodeOffsets[l], n); else if ("MultiPolygon" === a.type) for (var s = a.coordinates, l = 0; l < s.length; l++) for (var u = s[l], h = 0; h < u.length; h++) u[h] = Vf(u[h], a.encodeOffsets[l][h], n) - } - return e.UTF8Encoding = !1, e - } - - function Vf(t, e, n) { - for (var i = [], r = e[0], o = e[1], a = 0; a < t.length; a += 2) { - var s = t.charCodeAt(a) - 64, l = t.charCodeAt(a + 1) - 64; - s = s >> 1 ^ -(1 & s), l = l >> 1 ^ -(1 & l), s += r, l += o, r = s, o = l, i.push([s / n, l / n]) - } - return i - } - - function Gf(t, e) { - return t = Hf(t), v(_(t.features, function (t) { - return t.geometry && t.properties && t.geometry.coordinates.length > 0 - }), function (t) { - var n = t.properties, i = t.geometry, r = []; - if ("Polygon" === i.type) { - var o = i.coordinates; - r.push({type: "polygon", exterior: o[0], interiors: o.slice(1)}) - } - if ("MultiPolygon" === i.type) { - var o = i.coordinates; - y(o, function (t) { - t[0] && r.push({type: "polygon", exterior: t[0], interiors: t.slice(1)}) - }) - } - var a = new yD(n[e || "name"], r, n.cp); - return a.properties = n, a - }) - } - - function Wf(t) { - return "category" === t.type ? Yf(t) : jf(t) - } - - function Xf(t, e) { - return "category" === t.type ? qf(t, e) : { - ticks: v(t.scale.getTicks(), function (t) { - return t.value - }) - } - } - - function Yf(t) { - var e = t.getLabelModel(), n = Uf(t, e); - return !e.get("show") || t.scale.isBlank() ? {labels: [], labelCategoryInterval: n.labelCategoryInterval} : n - } - - function Uf(t, e) { - var n = Zf(t, "labels"), i = Lf(e), r = Kf(n, i); - if (r) return r; - var o, a; - return M(i) ? o = nd(t, i) : (a = "auto" === i ? Jf(t) : i, o = ed(t, a)), $f(n, i, { - labels: o, - labelCategoryInterval: a - }) - } - - function qf(t, e) { - var n = Zf(t, "ticks"), i = Lf(e), r = Kf(n, i); - if (r) return r; - var o, a; - if ((!e.get("show") || t.scale.isBlank()) && (o = []), M(i)) o = nd(t, i, !0); else if ("auto" === i) { - var s = Uf(t, t.getLabelModel()); - a = s.labelCategoryInterval, o = v(s.labels, function (t) { - return t.tickValue - }) - } else a = i, o = ed(t, a, !0); - return $f(n, i, {ticks: o, tickCategoryInterval: a}) - } - - function jf(t) { - var e = t.scale.getTicks(), n = If(t); - return { - labels: v(e, function (e, i) { - return {formattedLabel: n(e, i), rawLabel: t.scale.getLabel(e), tickValue: e.value} - }) - } - } - - function Zf(t, e) { - return vD(t)[e] || (vD(t)[e] = []) - } - - function Kf(t, e) { - for (var n = 0; n < t.length; n++) if (t[n].key === e) return t[n].value - } - - function $f(t, e, n) { - return t.push({key: e, value: n}), n - } - - function Jf(t) { - var e = vD(t).autoInterval; - return null != e ? e : vD(t).autoInterval = t.calculateCategoryInterval() - } - - function Qf(t) { - var e = td(t), n = If(t), i = (e.axisRotate - e.labelRotate) / 180 * Math.PI, r = t.scale, o = r.getExtent(), - a = r.count(); - if (o[1] - o[0] < 1) return 0; - var s = 1; - a > 40 && (s = Math.max(1, Math.floor(a / 40))); - for (var l = o[0], u = t.dataToCoord(l + 1) - t.dataToCoord(l), h = Math.abs(u * Math.cos(i)), c = Math.abs(u * Math.sin(i)), p = 0, f = 0; l <= o[1]; l += s) { - var d = 0, g = 0, y = En(n({value: l}), e.font, "center", "top"); - d = 1.3 * y.width, g = 1.3 * y.height, p = Math.max(p, d, 7), f = Math.max(f, g, 7) - } - var v = p / h, m = f / c; - isNaN(v) && (v = 1 / 0), isNaN(m) && (m = 1 / 0); - var _ = Math.max(0, Math.floor(Math.min(v, m))), x = vD(t.model), w = t.getExtent(), b = x.lastAutoInterval, - S = x.lastTickCount; - return null != b && null != S && Math.abs(b - _) <= 1 && Math.abs(S - a) <= 1 && b > _ && x.axisExtent0 === w[0] && x.axisExtent1 === w[1] ? _ = b : (x.lastTickCount = a, x.lastAutoInterval = _, x.axisExtent0 = w[0], x.axisExtent1 = w[1]), _ - } - - function td(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 ed(t, e, n) { - function i(t) { - var e = {value: t}; - l.push(n ? t : {formattedLabel: r(e), rawLabel: o.getLabel(e), tickValue: t}) - } - - var r = If(t), o = t.scale, a = o.getExtent(), s = t.getLabelModel(), l = [], u = Math.max((e || 0) + 1, 1), - h = a[0], c = o.count(); - 0 !== h && u > 1 && c / u > 2 && (h = Math.round(Math.ceil(h / u) * u)); - var p = Pf(t), f = s.get("showMinLabel") || p, d = s.get("showMaxLabel") || p; - f && h !== a[0] && i(a[0]); - for (var g = h; g <= a[1]; g += u) i(g); - return d && g - u !== a[1] && i(a[1]), l - } - - function nd(t, e, n) { - var i = t.scale, r = If(t), o = []; - return y(i.getTicks(), function (t) { - var a = i.getLabel(t), s = t.value; - e(t.value, a) && o.push(n ? s : {formattedLabel: r(t), rawLabel: a, tickValue: s}) - }), o - } - - function id(t, e) { - var n = t[1] - t[0], i = e, r = n / i / 2; - t[0] += r, t[1] -= r - } - - function rd(t, e, n, i) { - function r(t, e) { - return t = so(t), e = so(e), p ? t > e : e > t - } - - var o = e.length; - if (t.onBand && !n && o) { - var a, s, l = t.getExtent(); - if (1 === o) e[0].coord = l[0], a = e[1] = {coord: l[0]}; else { - var u = e[o - 1].tickValue - e[0].tickValue, h = (e[o - 1].coord - e[0].coord) / u; - y(e, function (t) { - t.coord -= h / 2 - }); - var c = t.scale.getExtent(); - s = 1 + c[1] - e[o - 1].tickValue, a = {coord: e[o - 1].coord + h * s}, e.push(a) - } - var p = l[0] > l[1]; - r(e[0].coord, l[0]) && (i ? e[0].coord = l[0] : e.shift()), i && r(l[0], e[0].coord) && e.unshift({coord: l[0]}), r(l[1], a.coord) && (i ? a.coord = l[1] : e.pop()), i && r(a.coord, l[1]) && e.push({coord: l[1]}) - } - } - - function od(t) { - return "interval" === t.type || "time" === t.type - } - - function ad(t, e, n) { - n = n || {}; - var i = t.coordinateSystem, r = e.axis, o = {}, a = r.getAxesOnZeroOf()[0], s = r.position, - l = a ? "onZero" : s, u = r.dim, h = i.getRect(), c = [h.x, h.x + h.width, h.y, h.y + h.height], - p = {left: 0, right: 1, top: 0, bottom: 1, onZero: 2}, f = e.get("offset") || 0, - d = "x" === u ? [c[2] - f, c[3] + f] : [c[0] - f, c[1] + f]; - if (a) { - var g = a.toGlobalCoord(a.dataToCoord(0)); - d[p.onZero] = Math.max(Math.min(g, d[1]), d[0]) - } - o.position = ["y" === u ? d[p[l]] : c[0], "x" === u ? d[p[l]] : c[3]], o.rotation = Math.PI / 2 * ("x" === u ? 0 : 1); - var y = {top: -1, bottom: 1, left: -1, right: 1}; - o.labelDirection = o.tickDirection = o.nameDirection = y[s], o.labelOffset = a ? d[p[s]] - d[p.onZero] : 0, e.get(["axisTick", "inside"]) && (o.tickDirection = -o.tickDirection), B(n.labelInside, e.get(["axisLabel", "inside"])) && (o.labelDirection = -o.labelDirection); - var v = e.get(["axisLabel", "rotate"]); - return o.labelRotate = "top" === l ? -v : v, o.z2 = 1, o - } - - function sd(t) { - return "cartesian2d" === t.get("coordinateSystem") - } - - function ld(t) { - var e = {xAxisModel: null, yAxisModel: null}; - return y(e, function (n, i) { - var r = i.replace(/Model$/, ""), o = t.getReferringComponents(r, Rb).models[0]; - e[i] = o - }), e - } - - function ud(t, e) { - return t.getCoordSysModel() === e - } - - function hd(t, e, n, i) { - function r(t) { - return t.dim + "_" + t.index - } - - n.getAxesOnZeroOf = function () { - return o ? [o] : [] - }; - var o, a = t[e], s = n.model, l = s.get(["axisLine", "onZero"]), u = s.get(["axisLine", "onZeroAxisIndex"]); - if (l) { - if (null != u) cd(a[u]) && (o = a[u]); else for (var h in a) if (a.hasOwnProperty(h) && cd(a[h]) && !i[r(a[h])]) { - o = a[h]; - break - } - o && (i[r(o)] = !0) - } - } - - function cd(t) { - return t && "category" !== t.type && "time" !== t.type && Cf(t) - } - - function pd(t, e) { - var n = t.getExtent(), i = n[0] + n[1]; - t.toGlobalCoord = "x" === t.dim ? function (t) { - return t + e - } : function (t) { - return i - t + e - }, t.toLocalCoord = "x" === t.dim ? function (t) { - return t - e - } : function (t) { - return i - t + e - } - } - - function fd(t, e, n, i, r) { - var o = t.getArea(), a = o.x, s = o.y, l = o.width, u = o.height, h = n.get(["lineStyle", "width"]) || 2; - a -= h / 2, s -= h / 2, l += h, u += h, a = Math.floor(a), l = Math.round(l); - var c = new Gx({shape: {x: a, y: s, width: l, height: u}}); - if (e) { - var p = t.getBaseAxis(), f = p.isHorizontal(), d = p.inverse; - f ? (d && (c.shape.x += l), c.shape.width = 0) : (d || (c.shape.y += u), c.shape.height = 0); - var g = "function" == typeof r ? function (t) { - r(t, c) - } : null; - cs(c, {shape: {width: l, height: u, x: a, y: s}}, n, null, i, g) - } - return c - } - - function dd(t, e, n) { - var i = t.getArea(), r = so(i.r0, 1), o = so(i.r, 1), a = new bw({ - shape: { - cx: so(t.cx, 1), - cy: so(t.cy, 1), - r0: r, - r: o, - startAngle: i.startAngle, - endAngle: i.endAngle, - clockwise: i.clockwise - } - }); - if (e) { - var s = "angle" === t.getBaseAxis().dim; - s ? a.shape.endAngle = i.startAngle : a.shape.r = r, cs(a, {shape: {endAngle: i.endAngle, r: o}}, n) - } - return a - } - - function gd(t, e, n, i, r) { - return t ? "polar" === t.type ? dd(t, e, n) : "cartesian2d" === t.type ? fd(t, e, n, i, r) : null : null - } - - function yd(t, e) { - return t.type === e - } - - function vd(t, e) { - var n = t.mapDimensionsAll("defaultedLabel"), i = n.length; - if (1 === i) return Bu(t, e, n[0]); - if (i) { - for (var r = [], o = 0; o < n.length; o++) r.push(Bu(t, e, n[o])); - return r.join(" ") - } - } - - function md(t, e) { - var n = t.mapDimensionsAll("defaultedLabel"); - if (!T(e)) return e + ""; - for (var i = [], r = 0; r < n.length; r++) { - var o = t.getDimensionInfo(n[r]); - o && i.push(e[o.index]) - } - return i.join(" ") - } - - function _d(t, e) { - var n = t.getArea && t.getArea(); - if (yd(t, "cartesian2d")) { - var i = t.getBaseAxis(); - if ("category" !== i.type || !i.onBand) { - var r = e.getLayout("bandWidth"); - i.isHorizontal() ? (n.x -= r, n.width += 2 * r) : (n.y -= r, n.height += 2 * r) - } - } - return n - } - - function xd(t, e, n, i, r, o, a, s, l) { - if (n || e) { - var u = void 0, h = void 0; - a ? (h = {x: r.x, width: r.width}, u = {y: r.y, height: r.height}) : (h = { - y: r.y, - height: r.height - }, u = { - x: r.x, - width: r.width - }), l || (s ? hs : cs)(i, {shape: u}, t, o, null), (s ? hs : cs)(i, {shape: h}, e, o) - } - } - - function wd(t) { - return null != t.startAngle && null != t.endAngle && t.startAngle === t.endAngle - } - - function bd(t, e, n, i, r, o, a, s) { - var l = e.getItemVisual(n, "style"); - s || t.setShape("r", i.get(BD) || 0), t.useStyle(l); - var u = i.getShallow("cursor"); - if (u && t.attr("cursor", u), !s) { - var h = a ? r.height > 0 ? "bottom" : "top" : r.width > 0 ? "left" : "right", c = Ps(i); - Ls(t, c, { - labelFetcher: o, - labelDataIndex: n, - defaultText: vd(o.getData(), n), - inheritColor: l.fill, - defaultOpacity: l.opacity, - defaultOutsidePosition: h - }); - var p = t.getTextContent(); - Fs(p, c, o.getRawValue(n), function (t) { - return md(e, t) - }) - } - var f = i.getModel(["emphasis"]); - Xa(t, f.get("focus"), f.get("blurScope")), Ua(t, i), wd(r) && (t.style.fill = "none", t.style.stroke = "none", y(t.states, function (t) { - t.style && (t.style.fill = t.style.stroke = "none") - })) - } - - function Sd(t, e) { - var n = t.get(zD) || 0, i = isNaN(e.width) ? Number.MAX_VALUE : Math.abs(e.width), - r = isNaN(e.height) ? Number.MAX_VALUE : Math.abs(e.height); - return Math.min(n, i, r) - } - - function Td(t, e, n) { - var i = t.getData(), r = [], o = i.getLayout("valueAxisHorizontal") ? 1 : 0; - r[1 - o] = i.getLayout("valueAxisStart"); - var a = i.getLayout("largeDataIndices"), s = i.getLayout("barWidth"), l = t.getModel("backgroundStyle"), - u = t.get("showBackground", !0); - if (u) { - var h = i.getLayout("largeBackgroundPoints"), c = []; - c[1 - o] = i.getLayout("backgroundStart"); - var p = new UD({shape: {points: h}, incremental: !!n, silent: !0, z2: 0}); - p.__startPoint = c, p.__baseDimIdx = o, p.__largeDataIndices = a, p.__barWidth = s, Id(p, l, i), e.add(p) - } - var f = new UD({shape: {points: i.getLayout("largePoints")}, incremental: !!n}); - f.__startPoint = r, f.__baseDimIdx = o, f.__largeDataIndices = a, f.__barWidth = s, e.add(f), Cd(f, t, i), Gb(f).seriesIndex = t.seriesIndex, t.get("silent") || (f.on("mousedown", qD), f.on("mousemove", qD)) - } - - function Md(t, e, n) { - var i = t.__baseDimIdx, r = 1 - i, o = t.shape.points, a = t.__largeDataIndices, s = Math.abs(t.__barWidth / 2), - l = t.__startPoint[r]; - ND[0] = e, ND[1] = n; - for (var u = ND[i], h = ND[1 - i], c = u - s, p = u + s, f = 0, d = o.length / 2; d > f; f++) { - var g = 2 * f, y = o[g + i], v = o[g + r]; - if (y >= c && p >= y && (v >= l ? h >= l && v >= h : h >= v && l >= h)) return a[f] - } - return -1 - } - - function Cd(t, e, n) { - var i = n.getVisual("style"); - t.useStyle(h({}, i)), t.style.fill = null, t.style.stroke = i.fill, t.style.lineWidth = n.getLayout("barWidth") - } - - function Id(t, e, n) { - var i = e.get("borderColor") || e.get("color"), r = e.getItemStyle(); - t.useStyle(r), t.style.fill = null, t.style.stroke = i, t.style.lineWidth = n.getLayout("barWidth") - } - - function Ad(t, e, n) { - if (yd(n, "cartesian2d")) { - var i = e, r = n.getArea(); - return {x: t ? i.x : r.x, y: t ? r.y : i.y, width: t ? i.width : r.width, height: t ? r.height : i.height} - } - var r = n.getArea(), o = e; - return { - cx: r.cx, - cy: r.cy, - r0: t ? r.r0 : o.r0, - r: t ? r.r : o.r, - startAngle: t ? o.startAngle : 0, - endAngle: t ? o.endAngle : 2 * Math.PI - } - } - - function Dd(t, e, n) { - var i = "polar" === t.type ? bw : Gx; - return new i({shape: Ad(e, n, t), silent: !0, z2: 0}) - } - - function kd(t, n, i) { - y(tk, function (r, o) { - var a = l(l({}, QD[o], !0), i, !0), s = function (n) { - function i() { - for (var e = [], i = 0; i < arguments.length; i++) e[i] = arguments[i]; - var r = n.apply(this, e) || this; - return r.type = t + "Axis." + o, r - } - - return e(i, n), i.prototype.mergeDefaultAndTheme = function (t, e) { - var n = Ll(this), i = n ? Ol(t) : {}, r = e.getTheme(); - l(t, r.get(o + "Axis")), l(t, this.getDefaultOption()), t.type = Ld(t), n && Pl(t, i, n) - }, i.prototype.optionUpdated = function () { - var t = this.option; - "category" === t.type && (this.__ordinalMeta = VA.createByAxisModel(this)) - }, i.prototype.getCategories = function (t) { - var e = this.option; - return "category" === e.type ? t ? e.data : this.__ordinalMeta.categories : void 0 - }, i.prototype.getOrdinalMeta = function () { - return this.__ordinalMeta - }, i.type = t + "Axis." + o, i.defaultOption = a, i - }(n); - oT.registerClass(s) - }), oT.registerSubTypeDefaulter(t + "Axis", Ld) - } - - function Ld(t) { - return t.type || (t.data ? "category" : "value") - } - - function Pd(t, e, n, i) { - var r, o, a = fo(n - t), s = i[0] > i[1], l = "start" === e && !s || "start" !== e && s; - return go(a - ik / 2) ? (o = l ? "bottom" : "top", r = "center") : go(a - 1.5 * ik) ? (o = l ? "top" : "bottom", r = "center") : (o = "middle", r = 1.5 * ik > a && a > ik / 2 ? l ? "left" : "right" : l ? "right" : "left"), { - rotation: a, - textAlign: r, - textVerticalAlign: o - } - } - - function Od(t, e, n) { - if (!Pf(t.axis)) { - var i = t.get(["axisLabel", "showMinLabel"]), r = t.get(["axisLabel", "showMaxLabel"]); - e = e || [], n = n || []; - var o = e[0], a = e[1], s = e[e.length - 1], l = e[e.length - 2], u = n[0], h = n[1], c = n[n.length - 1], - p = n[n.length - 2]; - i === !1 ? (Rd(o), Rd(u)) : Ed(o, a) && (i ? (Rd(a), Rd(h)) : (Rd(o), Rd(u))), r === !1 ? (Rd(s), Rd(c)) : Ed(l, s) && (r ? (Rd(l), Rd(p)) : (Rd(s), Rd(c))) - } - } - - function Rd(t) { - t && (t.ignore = !0) - } - - function Ed(t, e) { - var n = t && t.getBoundingRect().clone(), i = e && e.getBoundingRect().clone(); - if (n && i) { - var r = He([]); - return Xe(r, r, -t.rotation), n.applyTransform(Ge([], r, t.getLocalTransform())), i.applyTransform(Ge([], r, e.getLocalTransform())), n.intersect(i) - } - } - - function zd(t) { - return "middle" === t || "center" === t - } - - function Bd(t, e, n, i, r) { - for (var o = [], a = [], s = [], l = 0; l < t.length; l++) { - var u = t[l].coord; - a[0] = u, a[1] = 0, s[0] = u, s[1] = n, e && (ge(a, a, e), ge(s, s, e)); - var h = new qx({ - subPixelOptimize: !0, - shape: {x1: a[0], y1: a[1], x2: s[0], y2: s[1]}, - style: i, - z2: 2, - autoBatch: !0, - silent: !0 - }); - h.anid = r + "_" + t[l].tickValue, o.push(h) - } - return o - } - - function Nd(t, e, n, i) { - var r = n.axis, o = n.getModel("axisTick"), a = o.get("show"); - if ("auto" === a && i.handleAutoShown && (a = i.handleAutoShown("axisTick")), a && !r.scale.isBlank()) { - for (var s = o.getModel("lineStyle"), l = i.tickDirection * o.get("length"), u = r.getTicksCoords(), h = Bd(u, e.transform, l, c(s.getLineStyle(), {stroke: n.get(["axisLine", "lineStyle", "color"])}), "ticks"), p = 0; p < h.length; p++) t.add(h[p]); - return h - } - } - - function Fd(t, e, n, i) { - var r = n.axis, o = n.getModel("minorTick"); - if (o.get("show") && !r.scale.isBlank()) { - var a = r.getMinorTicksCoords(); - if (a.length) for (var s = o.getModel("lineStyle"), l = i * o.get("length"), u = c(s.getLineStyle(), c(n.getModel("axisTick").getLineStyle(), {stroke: n.get(["axisLine", "lineStyle", "color"])})), h = 0; h < a.length; h++) for (var p = Bd(a[h], e.transform, l, u, "minorticks_" + h), f = 0; f < p.length; f++) t.add(p[f]) - } - } - - function Hd(t, e, n, i) { - var r = n.axis, o = B(i.axisLabelShow, n.get(["axisLabel", "show"])); - if (o && !r.scale.isBlank()) { - var a = n.getModel("axisLabel"), s = a.get("margin"), l = r.getViewLabels(), - u = (B(i.labelRotate, a.get("rotate")) || 0) * ik / 180, - h = rk.innerTextLayout(i.rotation, u, i.labelDirection), c = n.getCategories && n.getCategories(!0), - p = [], f = rk.isLabelSilent(n), d = n.get("triggerEvent"); - return y(l, function (o, l) { - var u = "ordinal" === r.scale.type ? r.scale.getRawIndex(o.tickValue) : o.tickValue, - g = o.formattedLabel, y = o.rawLabel, v = a; - if (c && c[u]) { - var m = c[u]; - D(m) && m.textStyle && (v = new AS(m.textStyle, a, n.ecModel)) - } - var _ = v.getTextColor() || n.get(["axisLine", "lineStyle", "color"]), x = r.dataToCoord(u), - w = new Ew({ - x: x, - y: i.labelOffset + i.labelDirection * s, - rotation: h.rotation, - silent: f, - z2: 10, - style: Os(v, { - text: g, - align: v.getShallow("align", !0) || h.textAlign, - verticalAlign: v.getShallow("verticalAlign", !0) || v.getShallow("baseline", !0) || h.textVerticalAlign, - fill: "function" == typeof _ ? _("category" === r.type ? y : "value" === r.type ? u + "" : u, l) : _ - }) - }); - if (w.anid = "label_" + u, d) { - var b = rk.makeAxisEventDataBase(n); - b.targetType = "axisLabel", b.value = y, Gb(w).eventData = b - } - e.add(w), w.updateTransform(), p.push(w), t.add(w), w.decomposeTransform() - }), p - } - } - - function Vd(t, e) { - var n = {axesInfo: {}, seriesInvolved: !1, coordSysAxesInfo: {}, coordSysMap: {}}; - return Gd(n, t, e), n.seriesInvolved && Xd(n, t), n - } - - function Gd(t, e, n) { - var i = e.getComponent("tooltip"), r = e.getComponent("axisPointer"), o = r.get("link", !0) || [], a = []; - y(n.getCoordinateSystems(), function (n) { - function s(i, s, l) { - var h = l.model.getModel("axisPointer", r), p = h.get("show"); - if (p && ("auto" !== p || i || Kd(h))) { - null == s && (s = h.get("triggerTooltip")), h = i ? Wd(l, c, r, e, i, s) : h; - var f = h.get("snap"), d = $d(l.model), g = s || f || "category" === l.type, y = t.axesInfo[d] = { - key: d, - axis: l, - coordSys: n, - axisPointerModel: h, - triggerTooltip: s, - involveSeries: g, - snap: f, - useHandle: Kd(h), - seriesModels: [], - linkGroup: null - }; - u[d] = y, t.seriesInvolved = t.seriesInvolved || g; - var v = Yd(o, l); - if (null != v) { - var m = a[v] || (a[v] = {axesInfo: {}}); - m.axesInfo[d] = y, m.mapper = o[v].mapper, y.linkGroup = m - } - } - } - - if (n.axisPointerEnabled) { - var l = $d(n.model), u = t.coordSysAxesInfo[l] = {}; - t.coordSysMap[l] = n; - var h = n.model, c = h.getModel("tooltip", i); - if (y(n.getAxes(), S(s, !1, null)), n.getTooltipAxes && i && c.get("show")) { - var p = "axis" === c.get("trigger"), f = "cross" === c.get(["axisPointer", "type"]), - d = n.getTooltipAxes(c.get(["axisPointer", "axis"])); - (p || f) && y(d.baseAxes, S(s, f ? "cross" : !0, p)), f && y(d.otherAxes, S(s, "cross", !1)) - } - } - }) - } - - function Wd(t, e, n, i, r, o) { - var a = e.getModel("axisPointer"), - l = ["type", "snap", "lineStyle", "shadowStyle", "label", "animation", "animationDurationUpdate", "animationEasingUpdate", "z"], - u = {}; - y(l, function (t) { - u[t] = s(a.get(t)) - }), u.snap = "category" !== t.type && !!o, "cross" === a.get("type") && (u.type = "line"); - var h = u.label || (u.label = {}); - if (null == h.show && (h.show = !1), "cross" === r) { - var p = a.get(["label", "show"]); - if (h.show = null != p ? p : !0, !o) { - var f = u.lineStyle = a.get("crossStyle"); - f && c(h, f.textStyle) - } - } - return t.model.getModel("axisPointer", new AS(u, n, i)) - } - - function Xd(t, e) { - e.eachSeries(function (e) { - var n = e.coordinateSystem, i = e.get(["tooltip", "trigger"], !0), r = e.get(["tooltip", "show"], !0); - n && "none" !== i && i !== !1 && "item" !== i && r !== !1 && e.get(["axisPointer", "show"], !0) !== !1 && y(t.coordSysAxesInfo[$d(n.model)], function (t) { - var i = t.axis; - n.getAxis(i.dim) === i && (t.seriesModels.push(e), null == t.seriesDataCount && (t.seriesDataCount = 0), t.seriesDataCount += e.getData().count()) - }) - }) - } - - function Yd(t, e) { - for (var n = e.model, i = e.dim, r = 0; r < t.length; r++) { - var o = t[r] || {}; - if (Ud(o[i + "AxisId"], n.id) || Ud(o[i + "AxisIndex"], n.componentIndex) || Ud(o[i + "AxisName"], n.name)) return r - } - } - - function Ud(t, e) { - return "all" === t || T(t) && p(t, e) >= 0 || t === e - } - - function qd(t) { - var e = jd(t); - if (e) { - var n = e.axisPointerModel, i = e.axis.scale, r = n.option, o = n.get("status"), a = n.get("value"); - null != a && (a = i.parse(a)); - var s = Kd(n); - null == o && (r.status = s ? "show" : "hide"); - var l = i.getExtent().slice(); - l[0] > l[1] && l.reverse(), (null == a || a > l[1]) && (a = l[1]), a < l[0] && (a = l[0]), r.value = a, s && (r.status = e.axis.scale.isBlank() ? "hide" : "show") - } - } - - function jd(t) { - var e = (t.ecModel.getComponent("axisPointer") || {}).coordSysAxesInfo; - return e && e.axesInfo[$d(t)] - } - - function Zd(t) { - var e = jd(t); - return e && e.axisPointerModel - } - - function Kd(t) { - return !!t.get(["handle", "show"]) - } - - function $d(t) { - return t.type + "||" + t.id - } - - function Jd(t, e, n, i) { - var r = n.axis; - if (!r.scale.isBlank()) { - var o = n.getModel("splitArea"), a = o.getModel("areaStyle"), s = a.get("color"), - l = i.coordinateSystem.getRect(), u = r.getTicksCoords({tickModel: o, clamp: !0}); - if (u.length) { - var h = s.length, p = lk(t).splitAreaColors, f = U(), d = 0; - if (p) for (var g = 0; g < u.length; g++) { - var y = p.get(u[g].tickValue); - if (null != y) { - d = (y + (h - 1) * g) % h; - break - } - } - var v = r.toGlobalCoord(u[0].coord), m = a.getAreaStyle(); - s = T(s) ? s : [s]; - for (var g = 1; g < u.length; g++) { - var _ = r.toGlobalCoord(u[g].coord), x = void 0, w = void 0, b = void 0, S = void 0; - r.isHorizontal() ? (x = v, w = l.y, b = _ - x, S = l.height, v = x + b) : (x = l.x, w = v, b = l.width, S = _ - w, v = w + S); - var M = u[g - 1].tickValue; - null != M && f.set(M, d), e.add(new Gx({ - anid: null != M ? "area_" + M : null, - shape: {x: x, y: w, width: b, height: S}, - style: c({fill: s[d]}, m), - autoBatch: !0, - silent: !0 - })), d = (d + 1) % h - } - lk(t).splitAreaColors = f - } - } - } - - function Qd(t) { - lk(t).splitAreaColors = null - } - - function tg(t, e, n) { - t.eachSeries(function (t) { - if (sd(t)) { - var i = ld(t), r = i.xAxisModel, o = i.yAxisModel, a = r.axis, s = o.axis, l = a.scale.rawExtentInfo, - u = s.scale.rawExtentInfo, h = t.getData(); - l && l.frozen || u && u.frozen || (n.push({ - seriesModel: t, - xAxisModel: r, - yAxisModel: o - }), Rf(ig(e, r).condExtent, h, a.dim), Rf(ig(e, o).condExtent, h, s.dim)) - } - }) - } - - function eg(t, e) { - y(e, function (e) { - function n(t, e) { - var n = e.condExtent, i = e.rawExtentResult; - "category" === t.type && (n[0] < i.min || i.max < n[1]) && y(Of(p, t.dim), function (e) { - Z(f, e) || (f[e] = !0, h = t) - }) - } - - function i(t, e) { - var n = e.rawExtentResult; - "category" === t.type || n.minFixed && n.maxFixed || y(Of(p, t.dim), function (t) { - Z(f, t) || Z(d, t) || (d[t] = !0, c = e) - }) - } - - var r = e.xAxisModel, o = e.yAxisModel, a = r.axis, s = o.axis, l = ig(t, r), u = ig(t, o); - l.rawExtentInfo = xf(a.scale, r, l.condExtent), u.rawExtentInfo = xf(s.scale, o, u.condExtent), l.rawExtentResult = l.rawExtentInfo.calculate(), u.rawExtentResult = u.rawExtentInfo.calculate(); - var h, c, p = e.seriesModel.getData(), f = {}, d = {}; - n(a, l), n(s, u), i(a, l), i(s, u); - var g = w(f), m = w(d), _ = v(m, function () { - return rg() - }), x = g.length, b = m.length; - if (x && b) { - var S = 1 === x ? g[0] : null, T = 1 === b ? m[0] : null, M = p.count(); - if (S && T) for (var C = 0; M > C; C++) { - var I = p.get(S, C); - h.scale.isInExtentRange(I) && og(_[0], p.get(T, C)) - } else for (var C = 0; M > C; C++) for (var A = 0; x > A; A++) { - var I = p.get(g[A], C); - if (h.scale.isInExtentRange(I)) { - for (var D = 0; b > D; D++) og(_[D], p.get(m[D], C)); - break - } - } - y(_, function (t, e) { - var n = m[e]; - p.setApproximateExtent(t, n); - var i = c.tarExtent = c.tarExtent || rg(); - og(i, t[0]), og(i, t[1]) - }) - } - }) - } - - function ng(t) { - t.each(function (t) { - var e = t.tarExtent; - if (e) { - var n = t.rawExtentResult, i = t.rawExtentInfo; - !n.minFixed && e[0] > n.min && i.modifyDataMinMax("min", e[0]), !n.maxFixed && e[1] < n.max && i.modifyDataMinMax("max", e[1]) - } - }) - } - - function ig(t, e) { - return t.get(e.uid) || t.set(e.uid, {condExtent: rg()}) - } - - function rg() { - return [1 / 0, -1 / 0] - } - - function og(t, e) { - e < t[0] && (t[0] = e), e > t[1] && (t[1] = e) - } - - function ag(t) { - return { - seriesType: t, reset: function (t, e, n) { - var i = t.getData(), r = t.get("sampling"), o = t.coordinateSystem, a = i.count(); - if (a > 10 && "cartesian2d" === o.type && r) { - var s = o.getBaseAxis(), l = o.getOtherAxis(s), u = s.getExtent(), h = n.getDevicePixelRatio(), - c = Math.abs(u[1] - u[0]) * (h || 1), p = Math.round(a / c); - if (p > 1) { - "lttb" === r && t.setData(i.lttbDownSample(i.mapDimension(l.dim), 1 / p)); - var f = void 0; - "string" == typeof r ? f = vk[r] : "function" == typeof r && (f = r), f && t.setData(i.downSample(i.mapDimension(l.dim), 1 / p, f, mk)) - } - } - } - } - } - - function sg(t, e) { - this.parent.drift(t, e) - } - - function lg(t, e, n, i) { - return !(!e || isNaN(e[0]) || isNaN(e[1]) || i.isIgnore && i.isIgnore(n) || i.clipShape && !i.clipShape.contain(e[0], e[1]) || "none" === t.getItemVisual(n, "symbol")) - } - - function ug(t) { - return null == t || D(t) || (t = {isIgnore: t}), t || {} - } - - function hg(t) { - var e = t.hostModel, n = e.getModel("emphasis"); - return { - emphasisItemStyle: n.getModel("itemStyle").getItemStyle(), - blurItemStyle: e.getModel(["blur", "itemStyle"]).getItemStyle(), - selectItemStyle: e.getModel(["select", "itemStyle"]).getItemStyle(), - focus: n.get("focus"), - blurScope: n.get("blurScope"), - symbolRotate: e.get("symbolRotate"), - symbolOffset: e.get("symbolOffset"), - hoverScale: n.get("scale"), - labelStatesModels: Ps(e), - cursorStyle: e.get("cursor") - } - } - - function cg(t, e, n) { - var i = t.getBaseAxis(), r = t.getOtherAxis(i), o = pg(r, n), a = i.dim, s = r.dim, l = e.mapDimension(s), - u = e.mapDimension(a), h = "x" === s || "radius" === s ? 1 : 0, c = v(t.dimensions, function (t) { - return e.mapDimension(t) - }), p = !1, f = e.getCalculationInfo("stackResultDimension"); - return Hp(e, c[0]) && (p = !0, c[0] = f), Hp(e, c[1]) && (p = !0, c[1] = f), { - dataDimsForPoint: c, - valueStart: o, - valueAxisDim: s, - baseAxisDim: a, - stacked: !!p, - valueDim: l, - baseDim: u, - baseDataOffset: h, - stackedOverDimension: e.getCalculationInfo("stackedOverDimension") - } - } - - function pg(t, e) { - var n = 0, i = t.scale.getExtent(); - return "start" === e ? n = i[0] : "end" === e ? n = i[1] : i[0] > 0 ? n = i[0] : i[1] < 0 && (n = i[1]), n - } - - function fg(t, e, n, i) { - var r = 0 / 0; - t.stacked && (r = n.get(n.getCalculationInfo("stackedOverDimension"), i)), isNaN(r) && (r = t.valueStart); - var o = t.baseDataOffset, a = []; - return a[o] = n.get(t.baseDim, i), a[1 - o] = r, e.dataToPoint(a) - } - - function dg(t) { - return T(t) ? bk ? new Float32Array(t) : t : new Sk(t) - } - - function gg(t, e) { - var n = []; - return e.diff(t).add(function (t) { - n.push({cmd: "+", idx: t}) - }).update(function (t, e) { - n.push({cmd: "=", idx: e, idx1: t}) - }).remove(function (t) { - n.push({cmd: "-", idx: t}) - }).execute(), n - } - - function yg(t, e, n, i, r, o, a, s) { - for (var l = gg(t, e), u = [], h = [], c = [], p = [], f = [], d = [], g = [], y = cg(r, e, a), v = cg(o, t, s), m = t.getLayout("points") || [], _ = e.getLayout("points") || [], x = 0; x < l.length; x++) { - var w = l[x], b = !0, S = void 0, T = void 0; - switch (w.cmd) { - case"=": - S = 2 * w.idx, T = 2 * w.idx1; - var M = m[S], C = m[S + 1], I = _[T], A = _[T + 1]; - (isNaN(M) || isNaN(C)) && (M = I, C = A), u.push(M, C), h.push(I, A), c.push(n[S], n[S + 1]), p.push(i[T], i[T + 1]), g.push(e.getRawIndex(w.idx1)); - break; - case"+": - var D = w.idx, k = y.dataDimsForPoint, L = r.dataToPoint([e.get(k[0], D), e.get(k[1], D)]); - T = 2 * D, u.push(L[0], L[1]), h.push(_[T], _[T + 1]); - var P = fg(y, r, e, D); - c.push(P[0], P[1]), p.push(i[T], i[T + 1]), g.push(e.getRawIndex(D)); - break; - case"-": - var O = w.idx, R = t.getRawIndex(O), E = v.dataDimsForPoint; - if (S = 2 * O, R !== O) { - var z = o.dataToPoint([t.get(E[0], O), t.get(E[1], O)]), B = fg(v, o, t, O); - u.push(m[S], m[S + 1]), h.push(z[0], z[1]), c.push(n[S], n[S + 1]), p.push(B[0], B[1]), g.push(R) - } else b = !1 - } - b && (f.push(w), d.push(d.length)) - } - d.sort(function (t, e) { - return g[t] - g[e] - }); - for (var N = u.length, F = dg(N), H = dg(N), V = dg(N), G = dg(N), W = [], x = 0; x < d.length; x++) { - var X = d[x], Y = 2 * x, U = 2 * X; - F[Y] = u[U], F[Y + 1] = u[U + 1], H[Y] = h[U], H[Y + 1] = h[U + 1], V[Y] = c[U], V[Y + 1] = c[U + 1], G[Y] = p[U], G[Y + 1] = p[U + 1], W[x] = f[X] - } - return {current: F, next: H, stackedOnCurrent: V, stackedOnNext: G, status: W} - } - - function vg(t, e) { - return isNaN(t) || isNaN(e) - } - - function mg(t, e, n, i, r, o, a, s, l) { - for (var u, h, c, p, f, d, g = n, y = 0; i > y; y++) { - var v = e[2 * g], m = e[2 * g + 1]; - if (g >= r || 0 > g) break; - if (vg(v, m)) { - if (l) { - g += o; - continue - } - break - } - if (g === n) t[o > 0 ? "moveTo" : "lineTo"](v, m), c = v, p = m; else { - var _ = v - u, x = m - h; - if (.5 > _ * _ + x * x) { - g += o; - continue - } - if (a > 0) { - var w = g + o, b = e[2 * w], S = e[2 * w + 1], T = y + 1; - if (l) for (; vg(b, S) && i > T;) T++, w += o, b = e[2 * w], S = e[2 * w + 1]; - var M = .5, C = 0, I = 0, A = void 0, D = void 0; - if (T >= i || vg(b, S)) f = v, d = m; else { - C = b - u, I = S - h; - var k = v - u, L = b - v, P = m - h, O = S - m, R = void 0, E = void 0; - "x" === s ? (R = Math.abs(k), E = Math.abs(L), f = v - R * a, d = m, A = v + R * a, D = m) : "y" === s ? (R = Math.abs(P), E = Math.abs(O), f = v, d = m - R * a, A = v, D = m + R * a) : (R = Math.sqrt(k * k + P * P), E = Math.sqrt(L * L + O * O), M = E / (E + R), f = v - C * a * (1 - M), d = m - I * a * (1 - M), A = v + C * a * M, D = m + I * a * M, A = Tk(A, Mk(b, v)), D = Tk(D, Mk(S, m)), A = Mk(A, Tk(b, v)), D = Mk(D, Tk(S, m)), C = A - v, I = D - m, f = v - C * R / E, d = m - I * R / E, f = Tk(f, Mk(u, v)), d = Tk(d, Mk(h, m)), f = Mk(f, Tk(u, v)), d = Mk(d, Tk(h, m)), C = v - f, I = m - d, A = v + C * E / R, D = m + I * E / R) - } - t.bezierCurveTo(c, p, f, d, v, m), c = A, p = D - } else t.lineTo(v, m) - } - u = v, h = m, g += o - } - return y - } - - function _g(t, e) { - if (t.length === e.length) { - for (var n = 0; n < t.length; n++) if (t[n] !== e[n]) return; - return !0 - } - } - - function xg(t) { - for (var e = 1 / 0, n = 1 / 0, i = -1 / 0, r = -1 / 0, o = 0; o < t.length;) { - var a = t[o++], s = t[o++]; - isNaN(a) || (e = Math.min(a, e), i = Math.max(a, i)), isNaN(s) || (n = Math.min(s, n), r = Math.max(s, r)) - } - return [[e, n], [i, r]] - } - - function wg(t, e) { - var n = xg(t), i = n[0], r = n[1], o = xg(e), a = o[0], s = o[1]; - return Math.max(Math.abs(i[0] - a[0]), Math.abs(i[1] - a[1]), Math.abs(r[0] - s[0]), Math.abs(r[1] - s[1])) - } - - function bg(t) { - return "number" == typeof t ? t : t ? .5 : 0 - } - - function Sg(t, e, n) { - if (!n.valueDim) return []; - for (var i = e.count(), r = dg(2 * i), o = 0; i > o; o++) { - var a = fg(n, t, e, o); - r[2 * o] = a[0], r[2 * o + 1] = a[1] - } - return r - } - - function Tg(t, e, n) { - for (var i = e.getBaseAxis(), r = "x" === i.dim || "radius" === i.dim ? 0 : 1, o = [], a = 0, s = [], l = [], u = []; a < t.length - 2; a += 2) switch (u[0] = t[a + 2], u[1] = t[a + 3], l[0] = t[a], l[1] = t[a + 1], o.push(l[0], l[1]), n) { - case"end": - s[r] = u[r], s[1 - r] = l[1 - r], o.push(s[0], s[1]); - break; - case"middle": - var h = (l[r] + u[r]) / 2, c = []; - s[r] = c[r] = h, s[1 - r] = l[1 - r], c[1 - r] = u[1 - r], o.push(s[0], s[1]), o.push(c[0], c[1]); - break; - default: - s[r] = l[r], s[1 - r] = u[1 - r], o.push(s[0], s[1]) - } - return o.push(t[a++], t[a++]), o - } - - function Mg(t, e) { - var n = t.getVisual("visualMeta"); - if (n && n.length && t.count() && "cartesian2d" === e.type) { - for (var i, r, o = n.length - 1; o >= 0; o--) { - var a = n[o].dimension, s = t.dimensions[a], l = t.getDimensionInfo(s); - if (i = l && l.coordDim, "x" === i || "y" === i) { - r = n[o]; - break - } - } - if (r) { - var u = e.getAxis(i), h = v(r.stops, function (t) { - return {offset: 0, coord: u.toGlobalCoord(u.dataToCoord(t.value)), color: t.color} - }), c = h.length, p = r.outerColors.slice(); - c && h[0].coord > h[c - 1].coord && (h.reverse(), p.reverse()); - var f = 10, d = h[0].coord - f, g = h[c - 1].coord + f, m = g - d; - if (.001 > m) return "transparent"; - y(h, function (t) { - t.offset = (t.coord - d) / m - }), 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 _ = new Qx(0, 0, 0, 0, h, !0); - return _[i] = d, _[i + "2"] = g, _ - } - } - } - - function Cg(t, e, n) { - var i = t.get("showAllSymbol"), r = "auto" === i; - if (!i || r) { - var o = n.getAxesByScale("ordinal")[0]; - if (o && (!r || !Ig(o, e))) { - var a = e.mapDimension(o.dim), s = {}; - return y(o.getViewLabels(), function (t) { - s[t.tickValue] = 1 - }), function (t) { - return !s.hasOwnProperty(e.get(a, t)) - } - } - } - } - - function Ig(t, e) { - var n = t.getExtent(), i = Math.abs(n[1] - n[0]) / t.scale.count(); - isNaN(i) && (i = 0); - for (var r = e.count(), o = Math.max(1, Math.round(r / 5)), a = 0; r > a; a += o) if (1.5 * xk.getSymbolSize(e, a)[t.isHorizontal() ? 1 : 0] > i) return !1; - return !0 - } - - function Ag(t, e) { - return isNaN(t) || isNaN(e) - } - - function Dg(t) { - for (var e = t.length / 2; e > 0 && Ag(t[2 * e - 2], t[2 * e - 1]); e--) ; - return e - 1 - } - - function kg(t, e) { - return [t[2 * e], t[2 * e + 1]] - } - - function Lg(t, e, n) { - for (var i, r, o = t.length / 2, a = "x" === n ? 0 : 1, s = 0, l = -1, u = 0; o > u; u++) if (r = t[2 * u + a], !isNaN(r) && !isNaN(t[2 * u + 1 - a])) if (0 !== u) { - if (e >= i && r >= e || i >= e && e >= r) { - l = u; - break - } - s = u, i = r - } else i = r; - return {range: [s, l], t: (e - i) / (r - i)} - } - - function Pg(t, e, n, i) { - if (yd(e, "cartesian2d")) { - var r = i.getModel("endLabel"), o = r.get("show"), a = r.get("valueAnimation"), s = i.getData(), - l = {lastFrameIndex: 0}, u = o ? function (n, i) { - t._endLabelOnDuring(n, i, s, l, a, r, e) - } : null, h = e.getBaseAxis().isHorizontal(), c = fd(e, n, i, function () { - var e = t._endLabel; - e && n && null != l.originalX && e.attr({x: l.originalX, y: l.originalY}) - }, u); - if (!i.get("clip", !0)) { - var p = c.shape, f = Math.max(p.width, p.height); - h ? (p.y -= f, p.height += 2 * f) : (p.x -= f, p.width += 2 * f) - } - return u && u(1, c), c - } - return dd(e, n, i) - } - - function Og(t, e) { - var n = e.getBaseAxis(), i = n.isHorizontal(), r = n.inverse, o = i ? r ? "right" : "left" : "center", - a = i ? "middle" : r ? "top" : "bottom"; - return { - normal: { - align: t.get("align") || o, - verticalAlign: t.get("verticalAlign") || a, - padding: t.get("distance") || 0 - } - } - } - - function Rg(t, e) { - return { - seriesType: t, plan: wh(), reset: function (t) { - var n = t.getData(), i = t.coordinateSystem, r = t.pipelineContext, o = e || r.large; - if (i) { - var a = v(i.dimensions, function (t) { - return n.mapDimension(t) - }).slice(0, 2), s = a.length, l = n.getCalculationInfo("stackResultDimension"); - Hp(n, a[0]) && (a[0] = l), Hp(n, a[1]) && (a[1] = l); - var u = n.getDimensionInfo(a[0]), h = n.getDimensionInfo(a[1]), c = u && u.index, p = h && h.index; - return s && { - progress: function (t, e) { - for (var n = t.end - t.start, r = o && dg(n * s), a = [], l = [], u = t.start, h = 0; u < t.end; u++) { - var f = void 0; - if (1 === s) { - var d = e.getByDimIdx(c, u); - f = i.dataToPoint(d, null, l) - } else a[0] = e.getByDimIdx(c, u), a[1] = e.getByDimIdx(p, u), f = i.dataToPoint(a, null, l); - o ? (r[h++] = f[0], r[h++] = f[1]) : e.setItemLayout(u, f.slice()) - } - o && e.setLayout("points", r) - } - } - } - } - } - } - - function Eg(t, e, n) { - e = T(e) && {coordDimensions: e} || h({}, e); - var i = t.getSource(), r = zp(i, e), o = new BA(r, t); - return o.initData(i, n), o - } - - function zg(t, e, n, i, r, o, a, s, l, u) { - function h(t) { - for (var o = t.rB, a = o * o, s = 0; s < t.list.length; s++) { - var l = t.list[s], u = Math.abs(l.label.y - n), h = i + l.len, c = h * h, - p = Math.sqrt((1 - Math.abs(u * u / a)) * c); - l.label.x = e + (p + l.len2) * r - } - } - - function c(t) { - for (var o = {list: [], maxY: 0}, a = { - list: [], - maxY: 0 - }, s = 0; s < t.length; s++) if ("none" === t[s].labelAlignTo) { - var l = t[s], u = l.label.y > n ? a : o, c = Math.abs(l.label.y - n); - if (c > u.maxY) { - var p = l.label.x - e - l.len2 * r, f = i + l.len, - d = f > p ? Math.sqrt(c * c / (1 - p * p / f / f)) : f; - u.rB = d, u.maxY = c - } - u.list.push(l) - } - h(o), h(a) - } - - if (!(t.length < 2)) { - for (var p = t.length, f = 0; p > f; f++) if ("outer" === t[f].position && "labelLine" === t[f].labelAlignTo) { - var d = t[f].label.x - u; - t[f].linePoints[1][0] += d, t[f].label.x = u - } - oc(t, l, l + a) && c(t) - } - } - - function Bg(t, e, n, i, r, o, a, s) { - for (var l = [], u = [], h = Number.MAX_VALUE, c = -Number.MAX_VALUE, p = 0; p < t.length; p++) { - var f = t[p].label; - Ng(t[p]) || (f.x < e ? (h = Math.min(h, f.x), l.push(t[p])) : (c = Math.max(c, f.x), u.push(t[p]))) - } - zg(u, e, n, i, 1, r, o, a, s, c), zg(l, e, n, i, -1, r, o, a, s, h); - for (var p = 0; p < t.length; p++) { - var d = t[p], f = d.label; - if (!Ng(d)) { - var g = d.linePoints; - if (g) { - var y = "edge" === d.labelAlignTo, v = d.rect.width, m = void 0; - m = y ? f.x < e ? g[2][0] - d.labelDistance - a - d.edgeDistance : a + r - d.edgeDistance - g[2][0] - d.labelDistance : f.x < e ? f.x - a - d.bleedMargin : a + r - f.x - d.bleedMargin, m < d.rect.width && (d.label.style.width = m, "edge" === d.labelAlignTo && (v = m)); - var _ = g[1][0] - g[2][0]; - y ? g[2][0] = f.x < e ? a + d.edgeDistance + v + d.labelDistance : a + r - d.edgeDistance - v - d.labelDistance : (g[2][0] = f.x < e ? f.x + d.labelDistance : f.x - d.labelDistance, g[1][0] = g[2][0] + _), g[1][1] = g[2][1] = f.y - } - } - } - } - - function Ng(t) { - return "center" === t.position - } - - function Fg(t) { - function e(t) { - t.ignore = !0 - } - - function n(t) { - if (!t.ignore) return !0; - for (var e in t.states) if (t.states[e].ignore === !1) return !0; - return !1 - } - - var i, r, o = t.getData(), a = [], s = !1, l = (t.get("minShowLabelAngle") || 0) * Ok, - u = o.getLayout("viewRect"), h = o.getLayout("r"), c = u.width, p = u.x, f = u.y, d = u.height; - o.each(function (t) { - var u = o.getItemGraphicEl(t), f = u.shape, d = u.getTextContent(), g = u.getTextGuideLine(), - v = o.getItemModel(t), m = v.getModel("label"), - _ = m.get("position") || v.get(["emphasis", "label", "position"]), x = m.get("distanceToLabelLine"), - w = m.get("alignTo"), b = ao(m.get("edgeDistance"), c), S = m.get("bleedMargin"), - T = v.getModel("labelLine"), M = T.get("length"); - M = ao(M, c); - var C = T.get("length2"); - if (C = ao(C, c), Math.abs(f.endAngle - f.startAngle) < l) return y(d.states, e), void (d.ignore = !0); - if (n(d)) { - var I, A, D, k, L = (f.startAngle + f.endAngle) / 2, P = Math.cos(L), O = Math.sin(L); - i = f.cx, r = f.cy; - var R = "inside" === _ || "inner" === _; - if ("center" === _) I = f.cx, A = f.cy, k = "center"; else { - var E = (R ? (f.r + f.r0) / 2 * P : f.r * P) + i, z = (R ? (f.r + f.r0) / 2 * O : f.r * O) + r; - if (I = E + 3 * P, A = z + 3 * O, !R) { - var B = E + P * (M + h - f.r), N = z + O * (M + h - f.r), F = B + (0 > P ? -1 : 1) * C, H = N; - I = "edge" === w ? 0 > P ? p + b : p + c - b : F + (0 > P ? -x : x), A = H, D = [[E, z], [B, N], [F, H]] - } - k = R ? "center" : "edge" === w ? P > 0 ? "right" : "left" : P > 0 ? "left" : "right" - } - var V, G = m.get("rotate"); - if (V = "number" == typeof G ? G * (Math.PI / 180) : G ? 0 > P ? -L + Math.PI : -L : 0, s = !!V, d.x = I, d.y = A, d.rotation = V, d.setStyle({verticalAlign: "middle"}), R) { - d.setStyle({align: k}); - var W = d.states.select; - W && (W.x += d.x, W.y += d.y) - } else { - var X = d.getBoundingRect().clone(); - X.applyTransform(d.getComputedTransform()); - var Y = (d.style.margin || 0) + 2.1; - X.y -= Y / 2, X.height += Y, a.push({ - label: d, - labelLine: g, - position: _, - len: M, - len2: C, - minTurnAngle: T.get("minTurnAngle"), - maxSurfaceAngle: T.get("maxSurfaceAngle"), - surfaceNormal: new Pm(P, O), - linePoints: D, - textAlign: k, - labelDistance: x, - labelAlignTo: w, - edgeDistance: b, - bleedMargin: S, - rect: X - }) - } - u.setTextConfig({inside: R}) - } - }), !s && t.get("avoidLabelOverlap") && Bg(a, i, r, h, c, d, p, f); - for (var g = 0; g < a.length; g++) { - var v = a[g], m = v.label, _ = v.labelLine, x = isNaN(m.x) || isNaN(m.y); - if (m) { - m.setStyle({align: v.textAlign}), x && (y(m.states, e), m.ignore = !0); - var w = m.states.select; - w && (w.x += m.x, w.y += m.y) - } - if (_) { - var b = v.linePoints; - x || !b ? (y(_.states, e), _.ignore = !0) : (Kh(b, v.minTurnAngle), $h(b, v.surfaceNormal, v.maxSurfaceAngle), _.setShape({points: b}), m.__hostTarget.textGuideLineConfig = {anchor: new Pm(b[0][0], b[0][1])}) - } - } - } - - function Hg(t, e) { - var n = t.get("borderRadius"); - return null == n ? null : (T(n) || (n = [n, n]), { - innerCornerRadius: Fn(n[0], e.r0), - cornerRadius: Fn(n[1], e.r) - }) - } - - function Vg(t, e) { - return kl(t.getBoxLayoutParams(), {width: e.getWidth(), height: e.getHeight()}) - } - - function Gg(t, e, n) { - e.eachSeriesByType(t, function (t) { - var e = t.getData(), i = e.mapDimension("value"), r = Vg(t, n), o = t.get("center"), a = t.get("radius"); - T(a) || (a = [0, a]), T(o) || (o = [o, o]); - var s = ao(r.width, n.getWidth()), l = ao(r.height, n.getHeight()), u = Math.min(s, l), - h = ao(o[0], s) + r.x, c = ao(o[1], l) + r.y, p = ao(a[0], u / 2), f = ao(a[1], u / 2), - d = -t.get("startAngle") * Bk, g = t.get("minAngle") * Bk, y = 0; - e.each(i, function (t) { - !isNaN(t) && y++ - }); - var v = e.getSum(i), m = Math.PI / (v || y) * 2, _ = t.get("clockwise"), x = t.get("roseType"), - w = t.get("stillShowZeroSum"), b = e.getDataExtent(i); - b[0] = 0; - var S = zk, M = 0, C = d, I = _ ? 1 : -1; - if (e.setLayout({viewRect: r, r: f}), e.each(i, function (t, n) { - var i; - if (isNaN(t)) return void e.setItemLayout(n, { - angle: 0 / 0, - startAngle: 0 / 0, - endAngle: 0 / 0, - clockwise: _, - cx: h, - cy: c, - r0: p, - r: x ? 0 / 0 : f - }); - i = "area" !== x ? 0 === v && w ? m : t * m : zk / y, g > i ? (i = g, S -= g) : M += t; - var r = C + I * i; - e.setItemLayout(n, { - angle: i, - startAngle: C, - endAngle: r, - clockwise: _, - cx: h, - cy: c, - r0: p, - r: x ? oo(t, b, [p, f]) : f - }), C = r - }), zk > S && y) if (.001 >= S) { - var A = zk / y; - e.each(i, function (t, n) { - if (!isNaN(t)) { - var i = e.getItemLayout(n); - i.angle = A, i.startAngle = d + I * n * A, i.endAngle = d + I * (n + 1) * A - } - }) - } else m = S / M, C = d, e.each(i, function (t, n) { - if (!isNaN(t)) { - var i = e.getItemLayout(n), r = i.angle === g ? g : t * m; - i.startAngle = C, i.endAngle = C + I * r, C += I * r - } - }) - }) - } - - function Wg(t) { - return { - seriesType: t, reset: function (t, e) { - var n = e.findComponents({mainType: "legend"}); - if (n && n.length) { - var i = t.getData(); - i.filterSelf(function (t) { - for (var e = i.getName(t), r = 0; r < n.length; r++) if (!n[r].isSelected(e)) return !1; - return !0 - }) - } - } - } - } - - function Xg(t) { - var e = t.seriesModel; - return e ? e.coordinateSystem : null - } - - function Yg(t, e) { - "china" === t && e.push(new yD("南海诸岛", v(Vk, function (t) { - return {type: "polygon", exterior: t} - }), Hk)) - } - - function Ug(t, e) { - if ("china" === t) { - var n = Xk[e.name]; - if (n) { - var i = e.center; - i[0] += n[0] / 10.5, i[1] += -n[1] / 14 - } - } - } - - function qg(t, e) { - if ("world" === t) { - var n = Yk[e.name]; - if (n) { - var i = e.center; - i[0] = n[0], i[1] = n[1] - } - } - } - - function jg(t, e) { - "china" === t && "台湾" === e.name && e.geometries.push({type: "polygon", exterior: Uk[0]}) - } - - function Zg(t) { - for (var e, n = 0; n < t.length; n++) { - var i = t[n].getBoundingRect(); - e = e || i.clone(), e.union(i) - } - return e - } - - function Kg(t, e) { - var n, i, r = t.svgXML; - try { - n = r && Tr(r, {ignoreViewBox: !0, ignoreRootClip: !0}) || {}, i = n.root, G(null != i) - } catch (o) { - throw new Error("Invalid svg format\n" + o.message) - } - var a = n.width, s = n.height, l = n.viewBoxRect; - if (e || (e = null == a || null == s ? i.getBoundingRect() : new Vm(0, 0, 0, 0), null != a && (e.width = a), null != s && (e.height = s)), l) { - var u = Sr(l, e.width, e.height), h = i; - i = new Ox, i.add(h), h.scaleX = h.scaleY = u.scale, h.x = u.x, h.y = u.y - } - return i.setClipPath(new Gx({shape: e.plain()})), {root: i, boundingRect: e} - } - - function $g(t) { - var e = ZM.retrieveMap(t) || []; - return e - } - - function Jg(t) { - var e = t.geoModel, n = t.seriesModel; - return e ? e.coordinateSystem : n ? n.coordinateSystem || (n.getReferringComponents("geo", Rb).models[0] || {}).coordinateSystem : null - } - - function Qg(t, e) { - var n = t.get("boundingCoords"); - if (null != n) { - var i = n[0], r = n[1]; - isNaN(i[0]) || isNaN(i[1]) || isNaN(r[0]) || isNaN(r[1]) || this.setBoundingRect(i[0], i[1], r[0] - i[0], r[1] - i[1]) - } - var o, a, s = this.getBoundingRect(), l = t.get("layoutCenter"), u = t.get("layoutSize"), h = e.getWidth(), - c = e.getHeight(), p = s.width / s.height * this.aspectScale, f = !1; - l && u && (o = [ao(l[0], h), ao(l[1], c)], a = ao(u, Math.min(h, c)), isNaN(o[0]) || isNaN(o[1]) || isNaN(a) || (f = !0)); - var d; - if (f) d = {}, p > 1 ? (d.width = a, d.height = a / p) : (d.height = a, d.width = a * p), d.y = o[1] - d.height / 2, d.x = o[0] - d.width / 2; else { - var g = t.getBoxLayoutParams(); - g.aspect = p, d = kl(g, {width: h, height: c}) - } - this.setViewRect(d.x, d.y, d.width, d.height), this.setCenter(t.get("center")), this.setZoom(t.get("zoom")) - } - - function ty(t, e) { - y(e.get("geoCoord"), function (e, n) { - t.addGeoCoord(n, e) - }) - } - - function ey(t, e) { - return !!ny(t)[e] - } - - function ny(t) { - return t[nL] || (t[nL] = {}) - } - - function iy(t, e, n, i, r) { - t.pointerChecker && t.pointerChecker(i, r.originX, r.originY) && (Qv(i.event), ry(t, e, n, i, r)) - } - - function ry(t, e, n, i, r) { - r.isAvailableBehavior = Ev(oy, null, n, i), t.trigger(e, r) - } - - function oy(t, e, n) { - var i = n[t]; - return !t || i && (!C(i) || e.event[i + "Key"]) - } - - function ay(t, e, n) { - var i = t.target; - i.x += e, i.y += n, i.dirty() - } - - function sy(t, e, n, i) { - var r = t.target, o = t.zoomLimit, a = t.zoom = t.zoom || 1; - if (a *= e, o) { - var s = o.min || 0, l = o.max || 1 / 0; - a = Math.max(Math.min(l, a), s) - } - var u = a / t.zoom; - t.zoom = a, r.x -= (n - r.x) * (u - 1), r.y -= (i - r.y) * (u - 1), r.scaleX *= u, r.scaleY *= u, r.dirty() - } - - function ly(t, e, n) { - var i = e.getComponentByElement(t.topTarget), r = i && i.coordinateSystem; - return i && i !== n && !rL.hasOwnProperty(i.mainType) && r && r.model !== n - } - - function uy(t) { - var e = t.getItemStyle(), n = t.get("areaColor"); - return null != n && (e.fill = n), e - } - - function hy(t, e, n) { - var i = t.getZoom(), r = t.getCenter(), o = e.zoom, a = t.dataToPoint(r); - if (null != e.dx && null != e.dy && (a[0] -= e.dx, a[1] -= e.dy, t.setCenter(t.pointToData(a))), null != o) { - if (n) { - var s = n.min || 0, l = n.max || 1 / 0; - o = Math.max(Math.min(i * o, l), s) / i - } - t.scaleX *= o, t.scaleY *= o; - var u = (e.originX - t.x) * (o - 1), h = (e.originY - t.y) * (o - 1); - t.x -= u, t.y -= h, t.updateTransform(), t.setCenter(t.pointToData(a)), t.setZoom(o * i) - } - return {center: t.getCenter(), zoom: t.getZoom()} - } - - function cy(t, e) { - e.update = "geo:updateSelectStatus", fp(e, function (e, n) { - var i = {}; - return n.eachComponent({mainType: "geo", query: e}, function (n) { - n[t](e.name); - var r = n.coordinateSystem; - y(r.regions, function (t) { - i[t.name] = n.isSelected(t.name) || !1 - }) - }), {selected: i, name: e.name} - }) - } - - function py(t, e, n) { - var i, r = {}, o = "toggleSelected" === t; - return n.eachComponent("legend", function (n) { - o && null != i ? n[i ? "select" : "unSelect"](e.name) : "allSelect" === t || "inverseSelect" === t ? n[t]() : (n[t](e.name), i = n.isSelected(e.name)); - var a = n.getData(); - y(a, function (t) { - var e = t.get("name"); - if ("\n" !== e && "" !== e) { - var i = n.isSelected(e); - r[e] = r.hasOwnProperty(e) ? r[e] && i : i - } - }) - }), "allSelect" === t || "inverseSelect" === t ? {selected: r} : {name: e.name, selected: r} - } - - function fy(t, e) { - var n = jS(e.get("padding")), i = e.getItemStyle(["color", "opacity"]); - return i.fill = e.get("backgroundColor"), t = new Gx({ - shape: { - x: t.x - n[3], - y: t.y - n[0], - width: t.width + n[1] + n[3], - height: t.height + n[0] + n[2], - r: e.get("borderRadius") - }, style: i, silent: !0, z2: -1 - }) - } - - function dy(t, e, n, i, r, o, a) { - var s; - return "line" !== e && e.indexOf("empty") < 0 ? (s = n.getItemStyle(), t.style.stroke = i, t.style.decal = o, a || (s.stroke = r)) : s = n.getItemStyle(["borderWidth", "borderColor"]), t.setStyle(s), t - } - - function gy(t, e, n, i) { - my(t, e, n, i), n.dispatchAction({type: "legendToggleSelect", name: null != t ? t : e}), vy(t, e, n, i) - } - - function yy(t) { - for (var e, n = t.getZr().storage.getDisplayList(), i = 0, r = n.length; r > i && !(e = n[i].states.emphasis);) i++; - return e && e.hoverLayer - } - - function vy(t, e, n, i) { - yy(n) || n.dispatchAction({type: "highlight", seriesName: t, name: e, excludeSeriesId: i}) - } - - function my(t, e, n, i) { - yy(n) || n.dispatchAction({type: "downplay", seriesName: t, name: e, excludeSeriesId: i}) - } - - function _y(t) { - var e = t.findComponents({mainType: "legend"}); - e && e.length && t.filterSeries(function (t) { - for (var n = 0; n < e.length; n++) if (!e[n].isSelected(t.name)) return !1; - return !0 - }) - } - - function xy(t, e, n) { - var i = t.getOrient(), r = [1, 1]; - r[i.index] = 0, Pl(e, n, {type: "box", ignoreSize: !!r}) - } - - function wy(t, e) { - var n, i = [], r = t.seriesIndex; - if (null == r || !(n = e.getSeriesByIndex(r))) return {point: []}; - var o = n.getData(), a = Uo(o, t); - if (null == a || 0 > a || T(a)) return {point: []}; - var s = o.getItemGraphicEl(a), l = n.coordinateSystem; - if (n.getTooltipPosition) i = n.getTooltipPosition(a) || []; else if (l && l.dataToPoint) if (t.isStacked) { - var u = l.getBaseAxis(), h = l.getOtherAxis(u), c = h.dim, p = u.dim, - f = "x" === c || "radius" === c ? 1 : 0, d = o.mapDimension(p), g = []; - g[f] = o.get(d, a), g[1 - f] = o.get(o.getCalculationInfo("stackResultDimension"), a), i = l.dataToPoint(g) || [] - } else i = l.dataToPoint(o.getValues(v(l.dimensions, function (t) { - return o.mapDimension(t) - }), a)) || []; else if (s) { - var y = s.getBoundingRect().clone(); - y.applyTransform(s.transform), i = [y.x + y.width / 2, y.y + y.height / 2] - } - return {point: i, el: s} - } - - function by(t, e, n) { - var i = t.currTrigger, r = [t.x, t.y], o = t, a = t.dispatchAction || Ev(n.dispatchAction, n), - s = e.getComponent("axisPointer").coordSysAxesInfo; - if (s) { - Py(r) && (r = wy({seriesIndex: o.seriesIndex, dataIndex: o.dataIndex}, e).point); - var l = Py(r), u = o.axesInfo, h = s.axesInfo, c = "leave" === i || Py(r), p = {}, f = {}, - d = {list: [], map: {}}, g = {showPointer: S(My, f), showTooltip: S(Cy, d)}; - y(s.coordSysMap, function (t, e) { - var n = l || t.containPoint(r); - y(s.coordSysAxesInfo[e], function (t) { - var e = t.axis, i = ky(u, t); - if (!c && n && (!u || i)) { - var o = i && i.value; - null != o || l || (o = e.pointToData(r)), null != o && Sy(t, o, g, !1, p) - } - }) - }); - var v = {}; - return y(h, function (t, e) { - var n = t.linkGroup; - n && !f[e] && y(n.axesInfo, function (e, i) { - var r = f[i]; - if (e !== t && r) { - var o = r.value; - n.mapper && (o = t.axis.scale.parse(n.mapper(o, Ly(e), Ly(t)))), v[t.key] = o - } - }) - }), y(v, function (t, e) { - Sy(h[e], t, g, !0, p) - }), Iy(f, h, p), Ay(d, r, t, a), Dy(h, a, n), p - } - } - - function Sy(t, e, n, i, r) { - var o = t.axis; - if (!o.scale.isBlank() && o.containData(e)) { - if (!t.involveSeries) return void n.showPointer(t, e); - var a = Ty(e, t), s = a.payloadBatch, l = a.snapToValue; - s[0] && null == r.seriesIndex && h(r, s[0]), !i && t.snap && o.containData(l) && null != l && (e = l), n.showPointer(t, e, s), n.showTooltip(t, a, l) - } - } - - function Ty(t, e) { - var n = e.axis, i = n.dim, r = t, o = [], a = Number.MAX_VALUE, s = -1; - return y(e.seriesModels, function (e) { - var l, u, h = e.getData().mapDimensionsAll(i); - if (e.getAxisTooltipData) { - var c = e.getAxisTooltipData(h, t, n); - u = c.dataIndices, l = c.nestestValue - } else { - if (u = e.getData().indicesOfNearest(h[0], t, "category" === n.type ? .5 : null), !u.length) return; - l = e.getData().get(h[0], u[0]) - } - if (null != l && isFinite(l)) { - var p = t - l, f = Math.abs(p); - a >= f && ((a > f || p >= 0 && 0 > s) && (a = f, s = p, r = l, o.length = 0), y(u, function (t) { - o.push({seriesIndex: e.seriesIndex, dataIndexInside: t, dataIndex: e.getData().getRawIndex(t)}) - })) - } - }), {payloadBatch: o, snapToValue: r} - } - - function My(t, e, n, i) { - t[e.key] = {value: n, payloadBatch: i} - } - - function Cy(t, e, n, i) { - var r = n.payloadBatch, o = e.axis, a = o.model, s = e.axisPointerModel; - if (e.triggerTooltip && r.length) { - var l = e.coordSys.model, u = $d(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: o.dim, - axisIndex: a.componentIndex, - axisType: a.type, - axisId: a.id, - value: i, - valueLabelOpt: {precision: s.get(["label", "precision"]), formatter: s.get(["label", "formatter"])}, - seriesDataIndices: r.slice() - }) - } - } - - function Iy(t, e, n) { - var i = n.axesInfo = []; - y(e, function (e, n) { - var r = e.axisPointerModel.option, o = t[n]; - o ? (!e.useHandle && (r.status = "show"), r.value = o.value, r.seriesDataIndices = (o.payloadBatch || []).slice()) : !e.useHandle && (r.status = "hide"), "show" === r.status && i.push({ - axisDim: e.axis.dim, - axisIndex: e.axis.model.componentIndex, - value: r.value - }) - }) - } - - function Ay(t, e, n, i) { - if (Py(e) || !t.list.length) return void i({type: "hideTip"}); - var r = ((t.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {}; - i({ - type: "showTip", - escapeConnect: !0, - x: e[0], - y: e[1], - tooltipOption: n.tooltipOption, - position: n.position, - dataIndexInside: r.dataIndexInside, - dataIndex: r.dataIndex, - seriesIndex: r.seriesIndex, - dataByCoordSys: t.list - }) - } - - function Dy(t, e, n) { - var i = n.getZr(), r = "axisPointerLastHighlights", o = wL(i)[r] || {}, a = wL(i)[r] = {}; - y(t, function (t) { - var e = t.axisPointerModel.option; - "show" === e.status && y(e.seriesDataIndices, function (t) { - var e = t.seriesIndex + " | " + t.dataIndex; - a[e] = t - }) - }); - var s = [], l = []; - y(o, function (t, e) { - !a[e] && l.push(t) - }), y(a, function (t, e) { - !o[e] && s.push(t) - }), l.length && n.dispatchAction({ - type: "downplay", - escapeConnect: !0, - notBlur: !0, - batch: l - }), s.length && n.dispatchAction({type: "highlight", escapeConnect: !0, notBlur: !0, batch: s}) - } - - function ky(t, e) { - for (var n = 0; n < (t || []).length; n++) { - var i = t[n]; - if (e.axis.dim === i.axisDim && e.axis.model.componentIndex === i.axisIndex) return i - } - } - - function Ly(t) { - var e = t.axis.model, n = {}, i = n.axisDim = t.axis.dim; - return n.axisIndex = n[i + "AxisIndex"] = e.componentIndex, n.axisName = n[i + "AxisName"] = e.name, n.axisId = n[i + "AxisId"] = e.id, n - } - - function Py(t) { - return !t || null == t[0] || isNaN(t[0]) || null == t[1] || isNaN(t[1]) - } - - function Oy(t, e, n) { - if (!wv.node) { - var i = e.getZr(); - bL(i).records || (bL(i).records = {}), Ry(i, e); - var r = bL(i).records[t] || (bL(i).records[t] = {}); - r.handler = n - } - } - - function Ry(t, e) { - function n(n, i) { - t.on(n, function (n) { - var r = Ny(e); - SL(bL(t).records, function (t) { - t && i(t, n, r.dispatchAction) - }), Ey(r.pendings, e) - }) - } - - bL(t).initialized || (bL(t).initialized = !0, n("click", S(By, "click")), n("mousemove", S(By, "mousemove")), n("globalout", zy)) - } - - function Ey(t, e) { - var n, i = t.showTip.length, r = t.hideTip.length; - i ? n = t.showTip[i - 1] : r && (n = t.hideTip[r - 1]), n && (n.dispatchAction = null, e.dispatchAction(n)) - } - - function zy(t, e, n) { - t.handler("leave", null, n) - } - - function By(t, e, n, i) { - e.handler(t, n, i) - } - - function Ny(t) { - var e = {showTip: [], hideTip: []}, n = function (i) { - var r = e[i.type]; - r ? r.push(i) : (i.dispatchAction = n, t.dispatchAction(i)) - }; - return {dispatchAction: n, pendings: e} - } - - function Fy(t, e) { - if (!wv.node) { - var n = e.getZr(), i = (bL(n).records || {})[t]; - i && (bL(n).records[t] = null) - } - } - - function Hy(t, e, n, i) { - Vy(ML(n).lastProp, i) || (ML(n).lastProp = i, e ? hs(n, i, t) : (n.stopAnimation(), n.attr(i))) - } - - function Vy(t, e) { - if (D(t) && D(e)) { - var n = !0; - return y(e, function (e, i) { - n = n && Vy(t[i], e) - }), !!n - } - return t === e - } - - function Gy(t, e) { - t[e.get(["label", "show"]) ? "show" : "hide"]() - } - - function Wy(t) { - return {x: t.x || 0, y: t.y || 0, rotation: t.rotation || 0} - } - - function Xy(t, e, n) { - var i = e.get("z"), r = e.get("zlevel"); - t && t.traverse(function (t) { - "group" !== t.type && (null != i && (t.z = i), null != r && (t.zlevel = r), t.silent = n) - }) - } - - function Yy(t) { - var e, n = t.get("type"), i = t.getModel(n + "Style"); - return "line" === n ? (e = i.getLineStyle(), e.fill = null) : "shadow" === n && (e = i.getAreaStyle(), e.stroke = null), e - } - - function Uy(t, e, n, i, r) { - var o = n.get("value"), a = jy(o, e.axis, e.ecModel, n.get("seriesDataIndices"), { - precision: n.get(["label", "precision"]), - formatter: n.get(["label", "formatter"]) - }), s = n.getModel("label"), l = jS(s.get("padding") || 0), u = s.getFont(), h = En(a, u), c = r.position, - p = h.width + l[1] + l[3], f = h.height + l[0] + l[2], d = r.align; - "right" === d && (c[0] -= p), "center" === d && (c[0] -= p / 2); - var g = r.verticalAlign; - "bottom" === g && (c[1] -= f), "middle" === g && (c[1] -= f / 2), qy(c, p, f, i); - var y = s.get("backgroundColor"); - y && "auto" !== y || (y = e.get(["axisLine", "lineStyle", "color"])), t.label = { - x: c[0], - y: c[1], - style: Os(s, {text: a, font: u, fill: s.getTextColor(), padding: l, backgroundColor: y}), - z2: 10 - } - } - - function qy(t, e, n, i) { - var r = i.getWidth(), o = i.getHeight(); - t[0] = Math.min(t[0] + e, r) - e, t[1] = Math.min(t[1] + n, o) - n, t[0] = Math.max(t[0], 0), t[1] = Math.max(t[1], 0) - } - - function jy(t, e, n, i, r) { - t = e.scale.parse(t); - var o = e.scale.getLabel({value: t}, {precision: r.precision}), a = r.formatter; - if (a) { - var s = {value: Af(e, {value: t}), axisDimension: e.dim, axisIndex: e.index, seriesData: []}; - y(i, function (t) { - var e = n.getSeriesByIndex(t.seriesIndex), i = t.dataIndexInside, r = e && e.getDataParams(i); - r && s.seriesData.push(r) - }), C(a) ? o = a.replace("{value}", o) : M(a) && (o = a(s)) - } - return o - } - - function Zy(t, e, n) { - var i = Fe(); - return Xe(i, i, n.rotation), We(i, i, n.position), vs([t.dataToCoord(e), (n.labelOffset || 0) + (n.labelDirection || 1) * (n.labelMargin || 0)], i) - } - - function Ky(t, e, n, i, r, o) { - var a = rk.innerTextLayout(n.rotation, 0, n.labelDirection); - n.labelMargin = r.get(["label", "margin"]), Uy(e, i, r, o, { - position: Zy(i.axis, t, n), - align: a.textAlign, - verticalAlign: a.textVerticalAlign - }) - } - - function $y(t, e, n) { - return n = n || 0, {x1: t[n], y1: t[1 - n], x2: e[n], y2: e[1 - n]} - } - - function Jy(t, e, n) { - return n = n || 0, {x: t[n], y: t[1 - n], width: e[n], height: e[1 - n]} - } - - function Qy(t, e) { - var n = {}; - return n[e.dim + "AxisIndex"] = e.index, t.getCartesian(n) - } - - function tv(t) { - return "x" === t.dim ? 0 : 1 - } - - function ev(t) { - var e = t.get("confine"); - return null != e ? !!e : "richText" === t.get("renderMode") - } - - function nv(t) { - return t = "left" === t ? "right" : "right" === t ? "left" : "top" === t ? "bottom" : "top" - } - - function iv(t, e, n) { - if (!C(n) || "inside" === n) return ""; - e = Il(e); - var i = nv(n), r = "", o = ""; - p(["left", "right"], i) > -1 ? (r = i + ":-6px;top:50%;", o = "translateY(-50%) rotate(" + ("left" === i ? -225 : -45) + "deg)") : (r = i + ":-6px;left:50%;", o = "translateX(-50%) rotate(" + ("top" === i ? 225 : 45) + "deg)"), o = v(OL, function (t) { - return t + "transform:" + o - }).join(";"); - var a = ["position:absolute;width:10px;height:10px;", "" + r + o + ";", "border-bottom: " + e + " solid 1px;", "border-right: " + e + " solid 1px;", "background-color: " + t + ";", "box-shadow: 8px 8px 16px -3px #000;"]; - return '
' - } - - function rv(t, e) { - var n = "cubic-bezier(0.23, 1, 0.32, 1)", i = "opacity " + t / 2 + "s " + n + ",visibility " + t / 2 + "s " + n; - return e || (i += ",left " + t + "s " + n + ",top " + t + "s " + n), v(OL, function (t) { - return t + "transition:" + i - }).join(";") - } - - function ov(t) { - var e = [], n = t.get("fontSize"), i = t.getTextColor(); - i && e.push("color:" + i), e.push("font:" + t.getFont()), n && e.push("line-height:" + Math.round(3 * n / 2) + "px"); - var r = t.get("textShadowColor"), o = t.get("textShadowBlur") || 0, a = t.get("textShadowOffsetX") || 0, - s = t.get("textShadowOffsetY") || 0; - return r && o && e.push("text-shadow:" + a + "px " + s + "px " + o + "px " + r), y(["decoration", "align"], function (n) { - var i = t.get(n); - i && e.push("text-" + n + ":" + i) - }), e.join(";") - } - - function av(t, e, n) { - var i = [], r = t.get("transitionDuration"), o = t.get("backgroundColor"), a = t.get("shadowBlur"), - s = t.get("shadowColor"), l = t.get("shadowOffsetX"), u = t.get("shadowOffsetY"), - h = t.getModel("textStyle"), c = uh(t, "html"), p = l + "px " + u + "px " + a + "px " + s; - return i.push("box-shadow:" + p), e && r && i.push(rv(r, n)), o && (wv.canvasSupported ? i.push("background-Color:" + o) : (i.push("background-Color:#" + hn(o)), i.push("filter:alpha(opacity=70)"))), y(["width", "color", "radius"], function (e) { - var n = "border-" + e, r = _l(n), o = t.get(r); - null != o && i.push(n + ":" + o + ("color" === e ? "" : "px")) - }), i.push(ov(h)), null != c && i.push("padding:" + jS(c).join("px ") + "px"), i.join(";") + ";" - } - - function sv(t, e, n, i, r) { - var o = e && e.painter; - if (n) { - var a = o && o.getViewportRoot(); - a && xe(t, a, document.body, i, r) - } else { - t[0] = i, t[1] = r; - var s = o && o.getViewportRootOffset(); - s && (t[0] += s.offsetLeft, t[1] += s.offsetTop) - } - t[2] = t[0] / e.getWidth(), t[3] = t[1] / e.getHeight() - } - - function lv(t) { - return Math.max(0, t) - } - - function uv(t) { - var e = lv(t.shadowBlur || 0), n = lv(t.shadowOffsetX || 0), i = lv(t.shadowOffsetY || 0); - return {left: lv(e - n), right: lv(e + n), top: lv(e - i), bottom: lv(e + i)} - } - - function hv(t, e, n, i) { - t[0] = n, t[1] = i, t[2] = t[0] / e.getWidth(), t[3] = t[1] / e.getHeight() - } - - function cv(t) { - for (var e = t.pop(); t.length;) { - var n = t.pop(); - n && (n instanceof AS && (n = n.get("tooltip", !0)), C(n) && (n = {formatter: n}), e = new AS(n, e, e.ecModel)) - } - return e - } - - function pv(t, e) { - return t.dispatchAction || Ev(e.dispatchAction, e) - } - - function fv(t, e, n, i, r, o, a) { - var s = n.getOuterSize(), l = s.width, u = s.height; - return null != o && (t + l + o + 2 > i ? t -= l + o : t += o), null != a && (e + u + a > r ? e -= u + a : e += a), [t, e] - } - - function dv(t, e, n, i, r) { - var o = n.getOuterSize(), a = o.width, s = o.height; - return t = Math.min(t + a, i) - a, e = Math.min(e + s, r) - s, t = Math.max(t, 0), e = Math.max(e, 0), [t, e] - } - - function gv(t, e, n) { - var i = n[0], r = n[1], o = 10, a = 5, s = 0, l = 0, u = e.width, h = e.height; - switch (t) { - case"inside": - s = e.x + u / 2 - i / 2, l = e.y + h / 2 - r / 2; - break; - case"top": - s = e.x + u / 2 - i / 2, l = e.y - r - o; - break; - case"bottom": - s = e.x + u / 2 - i / 2, l = e.y + h + o; - break; - case"left": - s = e.x - i - o - a, l = e.y + h / 2 - r / 2; - break; - case"right": - s = e.x + u + o + a, l = e.y + h / 2 - r / 2 - } - return [s, l] - } - - function yv(t) { - return "center" === t || "middle" === t - } - - var vv = function (t, e) { - return (vv = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) { - t.__proto__ = e - } || function (t, e) { - for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) - })(t, e) - }, mv = function () { - return mv = Object.assign || function (t) { - for (var e, n = 1, i = arguments.length; i > n; n++) { - e = arguments[n]; - for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]) - } - return t - }, mv.apply(this, arguments) - }, _v = function () { - function t() { - this.firefox = !1, this.ie = !1, this.edge = !1, this.weChat = !1 - } - - return t - }(), xv = function () { - function t() { - this.browser = new _v, this.node = !1, this.wxa = !1, this.worker = !1, this.canvasSupported = !1, this.svgSupported = !1, this.touchEventsSupported = !1, this.pointerEventsSupported = !1, this.domSupported = !1 - } - - return t - }(), wv = new xv; - "object" == typeof wx && "function" == typeof wx.getSystemInfoSync ? (wv.wxa = !0, wv.canvasSupported = !0, wv.touchEventsSupported = !0) : "undefined" == typeof document && "undefined" != typeof self ? (wv.worker = !0, wv.canvasSupported = !0) : "undefined" == typeof navigator ? (wv.node = !0, wv.canvasSupported = !0, wv.svgSupported = !0) : i(navigator.userAgent, wv); - var bv = { - "[object Function]": !0, - "[object RegExp]": !0, - "[object Date]": !0, - "[object Error]": !0, - "[object CanvasGradient]": !0, - "[object CanvasPattern]": !0, - "[object Image]": !0, - "[object Canvas]": !0 - }, Sv = { - "[object Int8Array]": !0, - "[object Uint8Array]": !0, - "[object Uint8ClampedArray]": !0, - "[object Int16Array]": !0, - "[object Uint16Array]": !0, - "[object Int32Array]": !0, - "[object Uint32Array]": !0, - "[object Float32Array]": !0, - "[object Float64Array]": !0 - }, Tv = Object.prototype.toString, Mv = Array.prototype, Cv = Mv.forEach, Iv = Mv.filter, Av = Mv.slice, - Dv = Mv.map, kv = function () { - }.constructor, Lv = kv ? kv.prototype : null, Pv = {}, Ov = 2311, Rv = function () { - return Pv.createCanvas() - }; - Pv.createCanvas = function () { - return document.createElement("canvas") - }; - var Ev = Lv && M(Lv.bind) ? Lv.call.bind(Lv.bind) : b, zv = "__ec_primitive__", Bv = function () { - function t(e) { - function n(t, e) { - i ? r.set(t, e) : r.set(e, t) - } - - this.data = {}; - var i = T(e); - this.data = {}; - var r = this; - e instanceof t ? e.each(n) : e && y(e, n) - } - - return t.prototype.get = function (t) { - return this.data.hasOwnProperty(t) ? this.data[t] : null - }, t.prototype.set = function (t, e) { - return this.data[t] = e - }, t.prototype.each = function (t, e) { - for (var n in this.data) this.data.hasOwnProperty(n) && t.call(e, this.data[n], n) - }, t.prototype.keys = function () { - return w(this.data) - }, t.prototype.removeKey = function (t) { - delete this.data[t] - }, t - }(), Nv = (Object.freeze || Object)({ - $override: r, - guid: o, - logError: a, - clone: s, - merge: l, - mergeAll: u, - extend: h, - defaults: c, - createCanvas: Rv, - indexOf: p, - inherits: f, - mixin: d, - isArrayLike: g, - each: y, - map: v, - reduce: m, - filter: _, - find: x, - keys: w, - bind: Ev, - curry: S, - isArray: T, - isFunction: M, - isString: C, - isStringSafe: I, - isNumber: A, - isObject: D, - isBuiltInObject: k, - isTypedArray: L, - isDom: P, - isGradientObject: O, - isPatternObject: R, - isRegExp: E, - eqNaN: z, - retrieve: B, - retrieve2: N, - retrieve3: F, - slice: H, - normalizeCssArray: V, - assert: G, - trim: W, - setAsPrimitive: X, - isPrimitive: Y, - HashMap: Bv, - createHashMap: U, - concatArray: q, - createObject: j, - hasOwn: Z, - noop: K - }), Fv = re, Hv = oe, Vv = ce, Gv = pe, Wv = (Object.freeze || Object)({ - create: $, - copy: J, - clone: Q, - set: te, - add: ee, - scaleAndAdd: ne, - sub: ie, - len: re, - length: Fv, - lenSquare: oe, - lengthSquare: Hv, - mul: ae, - div: se, - dot: le, - scale: ue, - normalize: he, - distance: ce, - dist: Vv, - distanceSquare: pe, - distSquare: Gv, - negate: fe, - lerp: de, - applyTransform: ge, - min: ye, - max: ve - }), Xv = function () { - function t(t, e) { - this.target = t, this.topTarget = e && e.topTarget - } - - return t - }(), Yv = function () { - function t(t) { - this.handler = t, t.on("mousedown", this._dragStart, this), t.on("mousemove", this._drag, this), t.on("mouseup", this._dragEnd, this) - } - - return t.prototype._dragStart = function (t) { - for (var e = t.target; e && !e.draggable;) e = e.parent; - e && (this._draggingTarget = e, e.dragging = !0, this._x = t.offsetX, this._y = t.offsetY, this.handler.dispatchToElement(new Xv(e, t), "dragstart", t.event)) - }, t.prototype._drag = function (t) { - var e = this._draggingTarget; - if (e) { - var n = t.offsetX, i = t.offsetY, r = n - this._x, o = i - this._y; - this._x = n, this._y = i, e.drift(r, o, t), this.handler.dispatchToElement(new Xv(e, t), "drag", t.event); - var a = this.handler.findHover(n, i, e).target, s = this._dropTarget; - this._dropTarget = a, e !== a && (s && a !== s && this.handler.dispatchToElement(new Xv(s, t), "dragleave", t.event), a && a !== s && this.handler.dispatchToElement(new Xv(a, t), "dragenter", t.event)) - } - }, t.prototype._dragEnd = function (t) { - var e = this._draggingTarget; - e && (e.dragging = !1), this.handler.dispatchToElement(new Xv(e, t), "dragend", t.event), this._dropTarget && this.handler.dispatchToElement(new Xv(this._dropTarget, t), "drop", t.event), this._draggingTarget = null, this._dropTarget = null - }, t - }(), Uv = function () { - function t(t) { - t && (this._$eventProcessor = t) - } - - return t.prototype.on = function (t, e, n, i) { - this._$handlers || (this._$handlers = {}); - var r = this._$handlers; - if ("function" == typeof e && (i = n, n = e, e = null), !n || !t) return this; - var o = this._$eventProcessor; - null != e && o && o.normalizeQuery && (e = o.normalizeQuery(e)), r[t] || (r[t] = []); - for (var a = 0; a < r[t].length; a++) if (r[t][a].h === n) return this; - var s = {h: n, query: e, ctx: i || this, callAtLast: n.zrEventfulCallAtLast}, l = r[t].length - 1, - u = r[t][l]; - return u && u.callAtLast ? r[t].splice(l, 0, s) : r[t].push(s), this - }, t.prototype.isSilent = function (t) { - var e = this._$handlers; - return !e || !e[t] || !e[t].length - }, t.prototype.off = function (t, e) { - var n = this._$handlers; - if (!n) return this; - if (!t) return this._$handlers = {}, this; - if (e) { - if (n[t]) { - for (var i = [], r = 0, o = n[t].length; o > r; r++) n[t][r].h !== e && i.push(n[t][r]); - n[t] = i - } - n[t] && 0 === n[t].length && delete n[t] - } else delete n[t]; - return this - }, t.prototype.trigger = function (t) { - for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; - if (!this._$handlers) return this; - var i = this._$handlers[t], r = this._$eventProcessor; - if (i) for (var o = e.length, a = i.length, s = 0; a > s; s++) { - var l = i[s]; - if (!r || !r.filter || null == l.query || r.filter(t, l.query)) switch (o) { - case 0: - l.h.call(l.ctx); - break; - case 1: - l.h.call(l.ctx, e[0]); - break; - case 2: - l.h.call(l.ctx, e[0], e[1]); - break; - default: - l.h.apply(l.ctx, e) - } - } - return r && r.afterTrigger && r.afterTrigger(t), this - }, t.prototype.triggerWithContext = function (t) { - if (!this._$handlers) return this; - var e = this._$handlers[t], n = this._$eventProcessor; - if (e) for (var i = arguments, r = i.length, o = i[r - 1], a = e.length, s = 0; a > s; s++) { - var l = e[s]; - if (!n || !n.filter || null == l.query || n.filter(t, l.query)) switch (r) { - case 0: - l.h.call(o); - break; - case 1: - l.h.call(o, i[0]); - break; - case 2: - l.h.call(o, i[0], i[1]); - break; - default: - l.h.apply(o, i.slice(1, r - 1)) - } - } - return n && n.afterTrigger && n.afterTrigger(t), this - }, t - }(), qv = Math.log(2), jv = "___zrEVENTSAVED", Zv = [], - Kv = "undefined" != typeof window && !!window.addEventListener, - $v = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, Jv = [], Qv = Kv ? function (t) { - t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0 - } : function (t) { - t.returnValue = !1, t.cancelBubble = !0 - }, tm = function () { - function t() { - this._track = [] - } - - return t.prototype.recognize = function (t, e, n) { - return this._doTrack(t, e, n), this._recognize(t) - }, t.prototype.clear = function () { - return this._track.length = 0, this - }, t.prototype._doTrack = function (t, e, n) { - var i = t.touches; - if (i) { - for (var r = {points: [], touches: [], target: e, event: t}, o = 0, a = i.length; a > o; o++) { - var s = i[o], l = Me(n, s, {}); - r.points.push([l.zrX, l.zrY]), r.touches.push(s) - } - this._track.push(r) - } - }, t.prototype._recognize = function (t) { - for (var e in em) if (em.hasOwnProperty(e)) { - var n = em[e](this._track, t); - if (n) return n - } - }, t - }(), em = { - pinch: function (t, e) { - var n = t.length; - if (n) { - var i = (t[n - 1] || {}).points, r = (t[n - 2] || {}).points || i; - if (r && r.length > 1 && i && i.length > 1) { - var o = Oe(i) / Oe(r); - !isFinite(o) && (o = 1), e.pinchScale = o; - var a = Re(i); - return e.pinchX = a[0], e.pinchY = a[1], {type: "pinch", target: t[0].target, event: e} - } - } - } - }, nm = "silent", im = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.handler = null, e - } - - return e(n, t), n.prototype.dispose = function () { - }, n.prototype.setCursor = function () { - }, n - }(Uv), rm = function () { - function t(t, e) { - this.x = t, this.y = e - } - - return t - }(), om = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], - am = function (t) { - function n(e, n, i, r) { - var o = t.call(this) || this; - return o._hovered = new rm(0, 0), o.storage = e, o.painter = n, o.painterRoot = r, i = i || new im, o.proxy = null, o.setHandlerProxy(i), o._draggingMgr = new Yv(o), o - } - - return e(n, t), n.prototype.setHandlerProxy = function (t) { - this.proxy && this.proxy.dispose(), t && (y(om, function (e) { - t.on && t.on(e, this[e], this) - }, this), t.handler = this), this.proxy = t - }, n.prototype.mousemove = function (t) { - var e = t.zrX, n = t.zrY, i = Ne(this, e, n), r = this._hovered, o = r.target; - o && !o.__zr && (r = this.findHover(r.x, r.y), o = r.target); - var a = this._hovered = i ? new rm(e, n) : this.findHover(e, n), s = a.target, l = this.proxy; - l.setCursor && l.setCursor(s ? s.cursor : "default"), o && s !== o && this.dispatchToElement(r, "mouseout", t), this.dispatchToElement(a, "mousemove", t), s && s !== o && this.dispatchToElement(a, "mouseover", t) - }, n.prototype.mouseout = function (t) { - var e = t.zrEventControl, n = t.zrIsToLocalDOM; - "only_globalout" !== e && this.dispatchToElement(this._hovered, "mouseout", t), "no_globalout" !== e && !n && this.trigger("globalout", { - type: "globalout", - event: t - }) - }, n.prototype.resize = function () { - this._hovered = new rm(0, 0) - }, n.prototype.dispatch = function (t, e) { - var n = this[t]; - n && n.call(this, e) - }, n.prototype.dispose = function () { - this.proxy.dispose(), this.storage = null, this.proxy = null, this.painter = null - }, n.prototype.setCursorStyle = function (t) { - var e = this.proxy; - e.setCursor && e.setCursor(t) - }, n.prototype.dispatchToElement = function (t, e, n) { - t = t || {}; - var i = t.target; - if (!i || !i.silent) { - for (var r = "on" + e, o = Ee(e, t, n); i && (i[r] && (o.cancelBubble = !!i[r].call(i, o)), i.trigger(e, o), i = i.__hostTarget ? i.__hostTarget : i.parent, !o.cancelBubble);) ; - o.cancelBubble || (this.trigger(e, o), this.painter && this.painter.eachOtherLayer && this.painter.eachOtherLayer(function (t) { - "function" == typeof t[r] && t[r].call(t, o), t.trigger && t.trigger(e, o) - })) - } - }, n.prototype.findHover = function (t, e, n) { - for (var i = this.storage.getDisplayList(), r = new rm(t, e), o = i.length - 1; o >= 0; o--) { - var a = void 0; - if (i[o] !== n && !i[o].ignore && (a = Be(i[o], t, e)) && (!r.topTarget && (r.topTarget = i[o]), a !== nm)) { - r.target = i[o]; - break - } - } - return r - }, n.prototype.processGesture = function (t, e) { - this._gestureMgr || (this._gestureMgr = new tm); - var n = this._gestureMgr; - "start" === e && n.clear(); - var i = n.recognize(t, this.findHover(t.zrX, t.zrY, null).target, this.proxy.dom); - if ("end" === e && n.clear(), i) { - var r = i.type; - t.gestureEvent = r; - var o = new rm; - o.target = i.target, this.dispatchToElement(o, r, i.event) - } - }, n - }(Uv); - y(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function (t) { - am.prototype[t] = function (e) { - var n, i, r = e.zrX, o = e.zrY, a = Ne(this, r, o); - if ("mouseup" === t && a || (n = this.findHover(r, o), i = n.target), "mousedown" === t) this._downEl = i, this._downPoint = [e.zrX, e.zrY], this._upEl = i; else if ("mouseup" === t) this._upEl = i; else if ("click" === t) { - if (this._downEl !== this._upEl || !this._downPoint || Vv(this._downPoint, [e.zrX, e.zrY]) > 4) return; - this._downPoint = null - } - this.dispatchToElement(n, t, e) - } - }); - var sm, lm, um = (Object.freeze || Object)({ - create: Fe, - identity: He, - copy: Ve, - mul: Ge, - translate: We, - rotate: Xe, - scale: Ye, - invert: Ue, - clone: qe - }), hm = He, cm = 5e-5, pm = [], fm = [], dm = Fe(), gm = Math.abs, ym = function () { - function t() { - } - - return t.prototype.setPosition = function (t) { - this.x = t[0], this.y = t[1] - }, t.prototype.setScale = function (t) { - this.scaleX = t[0], this.scaleY = t[1] - }, t.prototype.setOrigin = function (t) { - this.originX = t[0], this.originY = t[1] - }, t.prototype.needLocalTransform = function () { - return je(this.rotation) || je(this.x) || je(this.y) || je(this.scaleX - 1) || je(this.scaleY - 1) - }, t.prototype.updateTransform = function () { - var t = this.parent, e = t && t.transform, n = this.needLocalTransform(), i = this.transform; - return n || e ? (i = i || Fe(), n ? this.getLocalTransform(i) : hm(i), e && (n ? Ge(i, t.transform, i) : Ve(i, t.transform)), this.transform = i, void this._resolveGlobalScaleRatio(i)) : void (i && hm(i)) - }, t.prototype._resolveGlobalScaleRatio = function (t) { - var e = this.globalScaleRatio; - if (null != e && 1 !== e) { - this.getGlobalScale(pm); - var n = pm[0] < 0 ? -1 : 1, i = pm[1] < 0 ? -1 : 1, r = ((pm[0] - n) * e + n) / pm[0] || 0, - o = ((pm[1] - i) * e + i) / pm[1] || 0; - t[0] *= r, t[1] *= r, t[2] *= o, t[3] *= o - } - this.invTransform = this.invTransform || Fe(), Ue(this.invTransform, t) - }, t.prototype.getLocalTransform = function (e) { - return t.getLocalTransform(this, e) - }, t.prototype.getComputedTransform = function () { - for (var t = this, e = []; t;) e.push(t), t = t.parent; - for (; t = e.pop();) t.updateTransform(); - return this.transform - }, t.prototype.setLocalTransform = function (t) { - if (t) { - var e = t[0] * t[0] + t[1] * t[1], n = t[2] * t[2] + t[3] * t[3]; - je(e - 1) && (e = Math.sqrt(e)), je(n - 1) && (n = Math.sqrt(n)), t[0] < 0 && (e = -e), t[3] < 0 && (n = -n), this.rotation = Math.atan2(-t[1] / n, t[0] / e), 0 > e && 0 > n && (this.rotation += Math.PI, e = -e, n = -n), this.x = t[4], this.y = t[5], this.scaleX = e, this.scaleY = n - } - }, t.prototype.decomposeTransform = function () { - if (this.transform) { - var t = this.parent, e = this.transform; - t && t.transform && (Ge(fm, t.invTransform, e), e = fm); - var n = this.originX, i = this.originY; - (n || i) && (dm[4] = n, dm[5] = i, Ge(fm, e, dm), fm[4] -= n, fm[5] -= i, e = fm), this.setLocalTransform(e) - } - }, t.prototype.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) - }, t.prototype.transformCoordToLocal = function (t, e) { - var n = [t, e], i = this.invTransform; - return i && ge(n, n, i), n - }, t.prototype.transformCoordToGlobal = function (t, e) { - var n = [t, e], i = this.transform; - return i && ge(n, n, i), n - }, t.prototype.getLineScale = function () { - var t = this.transform; - return t && gm(t[0] - 1) > 1e-10 && gm(t[3] - 1) > 1e-10 ? Math.sqrt(gm(t[0] * t[3] - t[2] * t[1])) : 1 - }, t.getLocalTransform = function (t, e) { - e = e || [], hm(e); - var n = t.originX || 0, i = t.originY || 0, r = t.scaleX, o = t.scaleY, a = t.rotation || 0, s = t.x, - l = t.y; - return e[4] -= n, e[5] -= i, e[0] *= r, e[1] *= o, e[2] *= r, e[3] *= o, e[4] *= r, e[5] *= o, a && Xe(e, e, a), e[4] += n, e[5] += i, e[4] += s, e[5] += l, e - }, t.initDefaultProps = function () { - var e = t.prototype; - e.x = 0, e.y = 0, e.scaleX = 1, e.scaleY = 1, e.originX = 0, e.originY = 0, e.rotation = 0, e.globalScaleRatio = 1 - }(), t - }(), vm = { - 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 * (-Math.pow(2, -10 * (t - 1)) + 2) - }, 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, n = .1, i = .4; - return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 / n) / (2 * Math.PI), -(n * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / i))) - }, elasticOut: function (t) { - var e, n = .1, i = .4; - return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 / n) / (2 * Math.PI), n * Math.pow(2, -10 * t) * Math.sin(2 * (t - e) * Math.PI / i) + 1) - }, elasticInOut: function (t) { - var e, n = .1, i = .4; - return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 / n) / (2 * Math.PI), (t *= 2) < 1 ? -.5 * n * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / i) : n * Math.pow(2, -10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / i) * .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 ? .5 * t * t * ((e + 1) * t - e) : .5 * ((t -= 2) * t * ((e + 1) * t + e) + 2) - }, bounceIn: function (t) { - return 1 - vm.bounceOut(1 - t) - }, bounceOut: function (t) { - return 1 / 2.75 > t ? 7.5625 * t * t : 2 / 2.75 > t ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : 2.5 / 2.75 > t ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 - }, bounceInOut: function (t) { - return .5 > t ? .5 * vm.bounceIn(2 * t) : .5 * vm.bounceOut(2 * t - 1) + .5 - } - }, mm = function () { - function t(t) { - this._initialized = !1, this._startTime = 0, this._pausedTime = 0, this._paused = !1, this._life = t.life || 1e3, this._delay = t.delay || 0, this.loop = null == t.loop ? !1 : t.loop, this.gap = t.gap || 0, this.easing = t.easing || "linear", this.onframe = t.onframe, this.ondestroy = t.ondestroy, this.onrestart = t.onrestart - } - - return t.prototype.step = function (t, e) { - if (this._initialized || (this._startTime = t + this._delay, this._initialized = !0), this._paused) return void (this._pausedTime += e); - var n = (t - this._startTime - this._pausedTime) / this._life; - 0 > n && (n = 0), n = Math.min(n, 1); - var i = this.easing, r = "string" == typeof i ? vm[i] : i, o = "function" == typeof r ? r(n) : n; - if (this.onframe && this.onframe(o), 1 === n) { - if (!this.loop) return !0; - this._restart(t), this.onrestart && this.onrestart() - } - return !1 - }, t.prototype._restart = function (t) { - var e = (t - this._startTime - this._pausedTime) % this._life; - this._startTime = t - e + this.gap, this._pausedTime = 0 - }, t.prototype.pause = function () { - this._paused = !0 - }, t.prototype.resume = function () { - this._paused = !1 - }, t - }(), _m = function () { - function t(t) { - this.value = t - } - - return t - }(), xm = function () { - function t() { - this._len = 0 - } - - return t.prototype.insert = function (t) { - var e = new _m(t); - return this.insertEntry(e), e - }, t.prototype.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++ - }, t.prototype.remove = function (t) { - var e = t.prev, n = t.next; - e ? e.next = n : this.head = n, n ? n.prev = e : this.tail = e, t.next = t.prev = null, this._len-- - }, t.prototype.len = function () { - return this._len - }, t.prototype.clear = function () { - this.head = this.tail = null, this._len = 0 - }, t - }(), wm = function () { - function t(t) { - this._list = new xm, this._maxSize = 10, this._map = {}, this._maxSize = t - } - - return t.prototype.put = function (t, e) { - var n = this._list, i = this._map, r = null; - if (null == i[t]) { - var o = n.len(), a = this._lastRemovedEntry; - if (o >= this._maxSize && o > 0) { - var s = n.head; - n.remove(s), delete i[s.key], r = s.value, this._lastRemovedEntry = s - } - a ? a.value = e : a = new _m(e), a.key = t, n.insertEntry(a), i[t] = a - } - return r - }, t.prototype.get = function (t) { - var e = this._map[t], n = this._list; - return null != e ? (e !== n.tail && (n.remove(e), n.insertEntry(e)), e.value) : void 0 - }, t.prototype.clear = function () { - this._list.clear(), this._map = {} - }, t.prototype.len = function () { - return this._list.len() - }, t - }(), bm = { - 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] - }, Sm = new wm(20), Tm = null, Mm = cn, Cm = pn, Im = (Object.freeze || Object)({ - parse: an, - lift: un, - toHex: hn, - fastLerp: cn, - fastMapToColor: Mm, - lerp: pn, - mapToColor: Cm, - modifyHSL: fn, - modifyAlpha: dn, - stringify: gn, - lum: yn, - random: vn - }), Am = Array.prototype.slice, Dm = [0, 0, 0, 0], km = function () { - function t(t) { - this.keyframes = [], this.maxTime = 0, this.arrDim = 0, this.interpolable = !0, this._needsSort = !1, this._isAllValueEqual = !0, this._lastFrame = 0, this._lastFramePercent = 0, this.propName = t - } - - return t.prototype.isFinished = function () { - return this._finished - }, t.prototype.setFinished = function () { - this._finished = !0, this._additiveTrack && this._additiveTrack.setFinished() - }, t.prototype.needsAnimate = function () { - return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable - }, t.prototype.getAdditiveTrack = function () { - return this._additiveTrack - }, t.prototype.addKeyframe = function (t, e) { - t >= this.maxTime ? this.maxTime = t : this._needsSort = !0; - var n = this.keyframes, i = n.length; - if (this.interpolable) if (g(e)) { - var r = Ln(e); - if (i > 0 && this.arrDim !== r) return void (this.interpolable = !1); - if (1 === r && "number" != typeof e[0] || 2 === r && "number" != typeof e[0][0]) return void (this.interpolable = !1); - if (i > 0) { - var o = n[i - 1]; - this._isAllValueEqual && (1 === r ? Mn(e, o.value) || (this._isAllValueEqual = !1) : this._isAllValueEqual = !1) - } - this.arrDim = r - } else { - if (this.arrDim > 0) return void (this.interpolable = !1); - if ("string" == typeof e) { - var a = an(e); - a ? (e = a, this.isValueColor = !0) : this.interpolable = !1 - } else if ("number" != typeof e) return void (this.interpolable = !1); - if (this._isAllValueEqual && i > 0) { - var o = n[i - 1]; - this.isValueColor && !Mn(o.value, e) ? this._isAllValueEqual = !1 : o.value !== e && (this._isAllValueEqual = !1) - } - } - var s = {time: t, value: e, percent: 0}; - return this.keyframes.push(s), s - }, t.prototype.prepare = function (t) { - var e = this.keyframes; - this._needsSort && e.sort(function (t, e) { - return t.time - e.time - }); - for (var n = this.arrDim, i = e.length, r = e[i - 1], o = 0; i > o; o++) e[o].percent = e[o].time / this.maxTime, n > 0 && o !== i - 1 && Tn(e[o].value, r.value, n); - if (t && this.needsAnimate() && t.needsAnimate() && n === t.arrDim && this.isValueColor === t.isValueColor && !t._finished) { - this._additiveTrack = t; - for (var a = e[0].value, o = 0; i > o; o++) 0 === n ? e[o].additiveValue = this.isValueColor ? bn([], e[o].value, a, -1) : e[o].value - a : 1 === n ? e[o].additiveValue = bn([], e[o].value, a, -1) : 2 === n && (e[o].additiveValue = Sn([], e[o].value, a, -1)) - } - }, t.prototype.step = function (t, e) { - if (!this._finished) { - this._additiveTrack && this._additiveTrack._finished && (this._additiveTrack = null); - var n, i = null != this._additiveTrack, r = i ? "additiveValue" : "value", o = this.keyframes, - a = this.keyframes.length, s = this.propName, l = this.arrDim, u = this.isValueColor; - if (0 > e) n = 0; else if (e < this._lastFramePercent) { - var h = Math.min(this._lastFrame + 1, a - 1); - for (n = h; n >= 0 && !(o[n].percent <= e); n--) ; - n = Math.min(n, a - 2) - } else { - for (n = this._lastFrame; a > n && !(o[n].percent > e); n++) ; - n = Math.min(n - 1, a - 2) - } - var c = o[n + 1], p = o[n]; - if (p && c) { - this._lastFrame = n, this._lastFramePercent = e; - var f = c.percent - p.percent; - if (0 !== f) { - var d = (e - p.percent) / f, g = i ? this._additiveValue : u ? Dm : t[s]; - if ((l > 0 || u) && !g && (g = this._additiveValue = []), this.useSpline) { - var y = o[n][r], v = o[0 === n ? n : n - 1][r], m = o[n > a - 2 ? a - 1 : n + 1][r], - _ = o[n > a - 3 ? a - 1 : n + 2][r]; - if (l > 0) 1 === l ? In(g, v, y, m, _, d, d * d, d * d * d) : An(g, v, y, m, _, d, d * d, d * d * d); else if (u) In(g, v, y, m, _, d, d * d, d * d * d), i || (t[s] = kn(g)); else { - var x = void 0; - x = this.interpolable ? Cn(v, y, m, _, d, d * d, d * d * d) : m, i ? this._additiveValue = x : t[s] = x - } - } else if (l > 0) 1 === l ? xn(g, p[r], c[r], d) : wn(g, p[r], c[r], d); else if (u) xn(g, p[r], c[r], d), i || (t[s] = kn(g)); else { - var x = void 0; - x = this.interpolable ? mn(p[r], c[r], d) : _n(p[r], c[r], d), i ? this._additiveValue = x : t[s] = x - } - i && this._addToTarget(t) - } - } - } - }, t.prototype._addToTarget = function (t) { - var e = this.arrDim, n = this.propName, i = this._additiveValue; - 0 === e ? this.isValueColor ? (an(t[n], Dm), bn(Dm, Dm, i, 1), t[n] = kn(Dm)) : t[n] = t[n] + i : 1 === e ? bn(t[n], t[n], i, 1) : 2 === e && Sn(t[n], t[n], i, 1) - }, t - }(), Lm = function () { - function t(t, e, n) { - return this._tracks = {}, this._trackKeys = [], this._delay = 0, this._maxTime = 0, this._paused = !1, this._started = 0, this._clip = null, this._target = t, this._loop = e, e && n ? void a("Can' use additive animation on looped animation.") : void (this._additiveAnimators = n) - } - - return t.prototype.getTarget = function () { - return this._target - }, t.prototype.changeTarget = function (t) { - this._target = t - }, t.prototype.when = function (t, e) { - return this.whenWithKeys(t, e, w(e)) - }, t.prototype.whenWithKeys = function (t, e, n) { - for (var i = this._tracks, r = 0; r < n.length; r++) { - var o = n[r], a = i[o]; - if (!a) { - a = i[o] = new km(o); - var s = void 0, l = this._getAdditiveTrack(o); - if (l) { - var u = l.keyframes[l.keyframes.length - 1]; - s = u && u.value, l.isValueColor && s && (s = kn(s)) - } else s = this._target[o]; - if (null == s) continue; - 0 !== t && a.addKeyframe(0, Dn(s)), this._trackKeys.push(o) - } - a.addKeyframe(t, Dn(e[o])) - } - return this._maxTime = Math.max(this._maxTime, t), this - }, t.prototype.pause = function () { - this._clip.pause(), this._paused = !0 - }, t.prototype.resume = function () { - this._clip.resume(), this._paused = !1 - }, t.prototype.isPaused = function () { - return !!this._paused - }, t.prototype._doneCallback = function () { - this._setTracksFinished(), this._clip = null; - var t = this._doneList; - if (t) for (var e = t.length, n = 0; e > n; n++) t[n].call(this) - }, t.prototype._abortedCallback = function () { - this._setTracksFinished(); - var t = this.animation, e = this._abortedList; - if (t && t.removeClip(this._clip), this._clip = null, e) for (var n = 0; n < e.length; n++) e[n].call(this) - }, t.prototype._setTracksFinished = function () { - for (var t = this._tracks, e = this._trackKeys, n = 0; n < e.length; n++) t[e[n]].setFinished() - }, t.prototype._getAdditiveTrack = function (t) { - var e, n = this._additiveAnimators; - if (n) for (var i = 0; i < n.length; i++) { - var r = n[i].getTrack(t); - r && (e = r) - } - return e - }, t.prototype.start = function (t, e) { - if (!(this._started > 0)) { - this._started = 1; - for (var n = this, i = [], r = 0; r < this._trackKeys.length; r++) { - var o = this._trackKeys[r], a = this._tracks[o], s = this._getAdditiveTrack(o), l = a.keyframes; - if (a.prepare(s), a.needsAnimate()) i.push(a); else if (!a.interpolable) { - var u = l[l.length - 1]; - u && (n._target[a.propName] = u.value) - } - } - if (i.length || e) { - var h = new mm({ - life: this._maxTime, loop: this._loop, delay: this._delay, onframe: function (t) { - n._started = 2; - var e = n._additiveAnimators; - if (e) { - for (var r = !1, o = 0; o < e.length; o++) if (e[o]._clip) { - r = !0; - break - } - r || (n._additiveAnimators = null) - } - for (var o = 0; o < i.length; o++) i[o].step(n._target, t); - var a = n._onframeList; - if (a) for (var o = 0; o < a.length; o++) a[o](n._target, t) - }, ondestroy: function () { - n._doneCallback() - } - }); - this._clip = h, this.animation && this.animation.addClip(h), t && "spline" !== t && (h.easing = t) - } else this._doneCallback(); - return this - } - }, t.prototype.stop = function (t) { - if (this._clip) { - var e = this._clip; - t && e.onframe(1), this._abortedCallback() - } - }, t.prototype.delay = function (t) { - return this._delay = t, this - }, t.prototype.during = function (t) { - return t && (this._onframeList || (this._onframeList = []), this._onframeList.push(t)), this - }, t.prototype.done = function (t) { - return t && (this._doneList || (this._doneList = []), this._doneList.push(t)), this - }, t.prototype.aborted = function (t) { - return t && (this._abortedList || (this._abortedList = []), this._abortedList.push(t)), this - }, t.prototype.getClip = function () { - return this._clip - }, t.prototype.getTrack = function (t) { - return this._tracks[t] - }, t.prototype.stopTracks = function (t, e) { - if (!t.length || !this._clip) return !0; - for (var n = this._tracks, i = this._trackKeys, r = 0; r < t.length; r++) { - var o = n[t[r]]; - o && (e ? o.step(this._target, 1) : 1 === this._started && o.step(this._target, 0), o.setFinished()) - } - for (var a = !0, r = 0; r < i.length; r++) if (!n[i[r]].isFinished()) { - a = !1; - break - } - return a && this._abortedCallback(), a - }, t.prototype.saveFinalToTarget = function (t, e) { - if (t) { - e = e || this._trackKeys; - for (var n = 0; n < e.length; n++) { - var i = e[n], r = this._tracks[i]; - if (r && !r.isFinished()) { - var o = r.keyframes, a = o[o.length - 1]; - if (a) { - var s = Dn(a.value); - r.isValueColor && (s = kn(s)), t[i] = s - } - } - } - } - }, t.prototype.__changeFinalValue = function (t, e) { - e = e || w(t); - for (var n = 0; n < e.length; n++) { - var i = e[n], r = this._tracks[i]; - if (r) { - var o = r.keyframes; - if (o.length > 1) { - var a = o.pop(); - r.addKeyframe(a.time, t[i]), r.prepare(r.getAdditiveTrack()) - } - } - } - }, t - }(), Pm = function () { - function t(t, e) { - this.x = t || 0, this.y = e || 0 - } - - return t.prototype.copy = function (t) { - return this.x = t.x, this.y = t.y, this - }, t.prototype.clone = function () { - return new t(this.x, this.y) - }, t.prototype.set = function (t, e) { - return this.x = t, this.y = e, this - }, t.prototype.equal = function (t) { - return t.x === this.x && t.y === this.y - }, t.prototype.add = function (t) { - return this.x += t.x, this.y += t.y, this - }, t.prototype.scale = function (t) { - this.x *= t, this.y *= t - }, t.prototype.scaleAndAdd = function (t, e) { - this.x += t.x * e, this.y += t.y * e - }, t.prototype.sub = function (t) { - return this.x -= t.x, this.y -= t.y, this - }, t.prototype.dot = function (t) { - return this.x * t.x + this.y * t.y - }, t.prototype.len = function () { - return Math.sqrt(this.x * this.x + this.y * this.y) - }, t.prototype.lenSquare = function () { - return this.x * this.x + this.y * this.y - }, t.prototype.normalize = function () { - var t = this.len(); - return this.x /= t, this.y /= t, this - }, t.prototype.distance = function (t) { - var e = this.x - t.x, n = this.y - t.y; - return Math.sqrt(e * e + n * n) - }, t.prototype.distanceSquare = function (t) { - var e = this.x - t.x, n = this.y - t.y; - return e * e + n * n - }, t.prototype.negate = function () { - return this.x = -this.x, this.y = -this.y, this - }, t.prototype.transform = function (t) { - if (t) { - var e = this.x, n = this.y; - return this.x = t[0] * e + t[2] * n + t[4], this.y = t[1] * e + t[3] * n + t[5], this - } - }, t.prototype.toArray = function (t) { - return t[0] = this.x, t[1] = this.y, t - }, t.prototype.fromArray = function (t) { - this.x = t[0], this.y = t[1] - }, t.set = function (t, e, n) { - t.x = e, t.y = n - }, t.copy = function (t, e) { - t.x = e.x, t.y = e.y - }, t.len = function (t) { - return Math.sqrt(t.x * t.x + t.y * t.y) - }, t.lenSquare = function (t) { - return t.x * t.x + t.y * t.y - }, t.dot = function (t, e) { - return t.x * e.x + t.y * e.y - }, t.add = function (t, e, n) { - t.x = e.x + n.x, t.y = e.y + n.y - }, t.sub = function (t, e, n) { - t.x = e.x - n.x, t.y = e.y - n.y - }, t.scale = function (t, e, n) { - t.x = e.x * n, t.y = e.y * n - }, t.scaleAndAdd = function (t, e, n, i) { - t.x = e.x + n.x * i, t.y = e.y + n.y * i - }, t.lerp = function (t, e, n, i) { - var r = 1 - i; - t.x = r * e.x + i * n.x, t.y = r * e.y + i * n.y - }, t - }(), Om = Math.min, Rm = Math.max, Em = new Pm, zm = new Pm, Bm = new Pm, Nm = new Pm, Fm = new Pm, Hm = new Pm, - Vm = function () { - function t(t, e, n, i) { - 0 > n && isFinite(n) && (t += n, n = -n), 0 > i && isFinite(i) && (e += i, i = -i), this.x = t, this.y = e, this.width = n, this.height = i - } - - return t.prototype.union = function (t) { - var e = Om(t.x, this.x), n = Om(t.y, this.y); - this.width = isFinite(this.x) && isFinite(this.width) ? Rm(t.x + t.width, this.x + this.width) - e : t.width, this.height = isFinite(this.y) && isFinite(this.height) ? Rm(t.y + t.height, this.y + this.height) - n : t.height, this.x = e, this.y = n - }, t.prototype.applyTransform = function (e) { - t.applyTransform(this, this, e) - }, t.prototype.calculateTransform = function (t) { - var e = this, n = t.width / e.width, i = t.height / e.height, r = Fe(); - return We(r, r, [-e.x, -e.y]), Ye(r, r, [n, i]), We(r, r, [t.x, t.y]), r - }, t.prototype.intersect = function (e, n) { - if (!e) return !1; - e instanceof t || (e = t.create(e)); - var i = this, r = i.x, o = i.x + i.width, a = i.y, s = i.y + i.height, l = e.x, u = e.x + e.width, - h = e.y, c = e.y + e.height, p = !(l > o || r > u || h > s || a > c); - if (n) { - var f = 1 / 0, d = 0, g = Math.abs(o - l), y = Math.abs(u - r), v = Math.abs(s - h), - m = Math.abs(c - a), _ = Math.min(g, y), x = Math.min(v, m); - l > o || r > u ? _ > d && (d = _, y > g ? Pm.set(Hm, -g, 0) : Pm.set(Hm, y, 0)) : f > _ && (f = _, y > g ? Pm.set(Fm, g, 0) : Pm.set(Fm, -y, 0)), h > s || a > c ? x > d && (d = x, m > v ? Pm.set(Hm, 0, -v) : Pm.set(Hm, 0, m)) : f > _ && (f = _, m > v ? Pm.set(Fm, 0, v) : Pm.set(Fm, 0, -m)) - } - return n && Pm.copy(n, p ? Fm : Hm), p - }, t.prototype.contain = function (t, e) { - var n = this; - return t >= n.x && t <= n.x + n.width && e >= n.y && e <= n.y + n.height - }, t.prototype.clone = function () { - return new t(this.x, this.y, this.width, this.height) - }, t.prototype.copy = function (e) { - t.copy(this, e) - }, t.prototype.plain = function () { - return {x: this.x, y: this.y, width: this.width, height: this.height} - }, t.prototype.isFinite = function () { - return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height) - }, t.prototype.isZero = function () { - return 0 === this.width || 0 === this.height - }, t.create = function (e) { - return new t(e.x, e.y, e.width, e.height) - }, t.copy = function (t, e) { - t.x = e.x, t.y = e.y, t.width = e.width, t.height = e.height - }, t.applyTransform = function (e, n, i) { - if (!i) return void (e !== n && t.copy(e, n)); - if (i[1] < 1e-5 && i[1] > -1e-5 && i[2] < 1e-5 && i[2] > -1e-5) { - var r = i[0], o = i[3], a = i[4], s = i[5]; - return e.x = n.x * r + a, e.y = n.y * o + s, e.width = n.width * r, e.height = n.height * o, e.width < 0 && (e.x += e.width, e.width = -e.width), void (e.height < 0 && (e.y += e.height, e.height = -e.height)) - } - Em.x = Bm.x = n.x, Em.y = Nm.y = n.y, zm.x = Nm.x = n.x + n.width, zm.y = Bm.y = n.y + n.height, Em.transform(i), Nm.transform(i), zm.transform(i), Bm.transform(i), e.x = Om(Em.x, zm.x, Bm.x, Nm.x), e.y = Om(Em.y, zm.y, Bm.y, Nm.y); - var l = Rm(Em.x, zm.x, Bm.x, Nm.x), u = Rm(Em.y, zm.y, Bm.y, Nm.y); - e.width = l - e.x, e.height = u - e.y - }, t - }(), Gm = {}, Wm = "12px sans-serif", Xm = {measureText: Pn}, Ym = 1; - "undefined" != typeof window && (Ym = Math.max(window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI || 1, 1)); - var Um = Ym, qm = .4, jm = "#333", Zm = "#ccc", Km = "#eee", $m = "__zr_normal__", - Jm = ["x", "y", "scaleX", "scaleY", "originX", "originY", "rotation", "ignore"], - Qm = {x: !0, y: !0, scaleX: !0, scaleY: !0, originX: !0, originY: !0, rotation: !0, ignore: !1}, t_ = {}, - e_ = new Vm(0, 0, 0, 0), n_ = function () { - function t(t) { - this.id = o(), this.animators = [], this.currentStates = [], this.states = {}, this._init(t) - } - - return t.prototype._init = function (t) { - this.attr(t) - }, t.prototype.drift = function (t, e) { - switch (this.draggable) { - case"horizontal": - e = 0; - break; - case"vertical": - t = 0 - } - var n = this.transform; - n || (n = this.transform = [1, 0, 0, 1, 0, 0]), n[4] += t, n[5] += e, this.decomposeTransform(), this.markRedraw() - }, t.prototype.beforeUpdate = function () { - }, t.prototype.afterUpdate = function () { - }, t.prototype.update = function () { - this.updateTransform(), this.__dirty && this.updateInnerText() - }, t.prototype.updateInnerText = function (t) { - var e = this._textContent; - if (e && (!e.ignore || t)) { - this.textConfig || (this.textConfig = {}); - var n = this.textConfig, i = n.local, r = e.attachedTransform, o = void 0, a = void 0, s = !1; - r.parent = i ? this : null; - var l = !1; - if (r.x = e.x, r.y = e.y, r.originX = e.originX, r.originY = e.originY, r.rotation = e.rotation, r.scaleX = e.scaleX, r.scaleY = e.scaleY, null != n.position) { - var u = e_; - u.copy(n.layoutRect ? n.layoutRect : this.getBoundingRect()), i || u.applyTransform(this.transform), this.calculateTextPosition ? this.calculateTextPosition(t_, n, u) : Hn(t_, n, u), r.x = t_.x, r.y = t_.y, o = t_.align, a = t_.verticalAlign; - var h = n.origin; - if (h && null != n.rotation) { - var c = void 0, p = void 0; - "center" === h ? (c = .5 * u.width, p = .5 * u.height) : (c = Fn(h[0], u.width), p = Fn(h[1], u.height)), l = !0, r.originX = -r.x + c + (i ? 0 : u.x), r.originY = -r.y + p + (i ? 0 : u.y) - } - } - null != n.rotation && (r.rotation = n.rotation); - var f = n.offset; - f && (r.x += f[0], r.y += f[1], l || (r.originX = -f[0], r.originY = -f[1])); - var d = null == n.inside ? "string" == typeof n.position && n.position.indexOf("inside") >= 0 : n.inside, - g = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {}), y = void 0, v = void 0, - m = void 0; - d && this.canBeInsideText() ? (y = n.insideFill, v = n.insideStroke, (null == y || "auto" === y) && (y = this.getInsideTextFill()), (null == v || "auto" === v) && (v = this.getInsideTextStroke(y), m = !0)) : (y = n.outsideFill, v = n.outsideStroke, (null == y || "auto" === y) && (y = this.getOutsideFill()), (null == v || "auto" === v) && (v = this.getOutsideStroke(y), m = !0)), y = y || "#000", (y !== g.fill || v !== g.stroke || m !== g.autoStroke || o !== g.align || a !== g.verticalAlign) && (s = !0, g.fill = y, g.stroke = v, g.autoStroke = m, g.align = o, g.verticalAlign = a, e.setDefaultTextStyle(g)), s && e.dirtyStyle(), e.markRedraw() - } - }, t.prototype.canBeInsideText = function () { - return !0 - }, t.prototype.getInsideTextFill = function () { - return "#fff" - }, t.prototype.getInsideTextStroke = function () { - return "#000" - }, t.prototype.getOutsideFill = function () { - return this.__zr && this.__zr.isDarkMode() ? Zm : jm - }, t.prototype.getOutsideStroke = function () { - var t = this.__zr && this.__zr.getBackgroundColor(), e = "string" == typeof t && an(t); - e || (e = [255, 255, 255, 1]); - for (var n = e[3], i = this.__zr.isDarkMode(), r = 0; 3 > r; r++) e[r] = e[r] * n + (i ? 0 : 255) * (1 - n); - return e[3] = 1, gn(e, "rgba") - }, t.prototype.traverse = function () { - }, t.prototype.attrKV = function (t, e) { - "textConfig" === t ? this.setTextConfig(e) : "textContent" === t ? this.setTextContent(e) : "clipPath" === t ? this.setClipPath(e) : "extra" === t ? (this.extra = this.extra || {}, h(this.extra, e)) : this[t] = e - }, t.prototype.hide = function () { - this.ignore = !0, this.markRedraw() - }, t.prototype.show = function () { - this.ignore = !1, this.markRedraw() - }, t.prototype.attr = function (t, e) { - if ("string" == typeof t) this.attrKV(t, e); else if (D(t)) for (var n = t, i = w(n), r = 0; r < i.length; r++) { - var o = i[r]; - this.attrKV(o, t[o]) - } - return this.markRedraw(), this - }, t.prototype.saveCurrentToNormalState = function (t) { - this._innerSaveToNormal(t); - for (var e = this._normalState, n = 0; n < this.animators.length; n++) { - var i = this.animators[n], r = i.__fromStateTransition; - if (!r || r === $m) { - var o = i.targetName, a = o ? e[o] : e; - i.saveFinalToTarget(a) - } - } - }, t.prototype._innerSaveToNormal = function (t) { - var e = this._normalState; - e || (e = this._normalState = {}), t.textConfig && !e.textConfig && (e.textConfig = this.textConfig), this._savePrimaryToNormal(t, e, Jm) - }, t.prototype._savePrimaryToNormal = function (t, e, n) { - for (var i = 0; i < n.length; i++) { - var r = n[i]; - null == t[r] || r in e || (e[r] = this[r]) - } - }, t.prototype.hasState = function () { - return this.currentStates.length > 0 - }, t.prototype.getState = function (t) { - return this.states[t] - }, t.prototype.ensureState = function (t) { - var e = this.states; - return e[t] || (e[t] = {}), e[t] - }, t.prototype.clearStates = function (t) { - this.useState($m, !1, t) - }, t.prototype.useState = function (e, n, i) { - var r = e === $m, o = this.hasState(); - if (o || !r) { - var s = this.currentStates, l = this.stateTransition; - if (!(p(s, e) >= 0) || !n && 1 !== s.length) { - var u; - if (this.stateProxy && !r && (u = this.stateProxy(e)), u || (u = this.states && this.states[e]), !u && !r) return void a("State " + e + " not exists."); - r || this.saveCurrentToNormalState(u); - var h = !(!u || !u.hoverLayer); - return h && this._toggleHoverLayerFlag(!0), this._applyStateObj(e, u, this._normalState, n, !i && !this.__inHover && l && l.duration > 0, l), this._textContent && this._textContent.useState(e, n), this._textGuide && this._textGuide.useState(e, n), r ? (this.currentStates = [], this._normalState = {}) : n ? this.currentStates.push(e) : this.currentStates = [e], this._updateAnimationTargets(), this.markRedraw(), !h && this.__inHover && (this._toggleHoverLayerFlag(!1), this.__dirty &= ~t.REDARAW_BIT), u - } - } - }, t.prototype.useStates = function (e, n) { - if (e.length) { - var i = [], r = this.currentStates, o = e.length, a = o === r.length; - if (a) for (var s = 0; o > s; s++) if (e[s] !== r[s]) { - a = !1; - break - } - if (a) return; - for (var s = 0; o > s; s++) { - var l = e[s], u = void 0; - this.stateProxy && (u = this.stateProxy(l, e)), u || (u = this.states[l]), u && i.push(u) - } - var h = !(!i[o - 1] || !i[o - 1].hoverLayer); - h && this._toggleHoverLayerFlag(!0); - var c = this._mergeStates(i), p = this.stateTransition; - this.saveCurrentToNormalState(c), this._applyStateObj(e.join(","), c, this._normalState, !1, !n && !this.__inHover && p && p.duration > 0, p), this._textContent && this._textContent.useStates(e), this._textGuide && this._textGuide.useStates(e), this._updateAnimationTargets(), this.currentStates = e.slice(), this.markRedraw(), !h && this.__inHover && (this._toggleHoverLayerFlag(!1), this.__dirty &= ~t.REDARAW_BIT) - } else this.clearStates() - }, t.prototype._updateAnimationTargets = function () { - for (var t = 0; t < this.animators.length; t++) { - var e = this.animators[t]; - e.targetName && e.changeTarget(this[e.targetName]) - } - }, t.prototype.removeState = function (t) { - var e = p(this.currentStates, t); - if (e >= 0) { - var n = this.currentStates.slice(); - n.splice(e, 1), this.useStates(n) - } - }, t.prototype.replaceState = function (t, e, n) { - var i = this.currentStates.slice(), r = p(i, t), o = p(i, e) >= 0; - r >= 0 ? o ? i.splice(r, 1) : i[r] = e : n && !o && i.push(e), this.useStates(i) - }, t.prototype.toggleState = function (t, e) { - e ? this.useState(t, !0) : this.removeState(t) - }, t.prototype._mergeStates = function (t) { - for (var e, n = {}, i = 0; i < t.length; i++) { - var r = t[i]; - h(n, r), r.textConfig && (e = e || {}, h(e, r.textConfig)) - } - return e && (n.textConfig = e), n - }, t.prototype._applyStateObj = function (t, e, n, i, r, o) { - var a = !(e && i); - e && e.textConfig ? (this.textConfig = h({}, i ? this.textConfig : n.textConfig), h(this.textConfig, e.textConfig)) : a && n.textConfig && (this.textConfig = n.textConfig); - for (var s = {}, l = !1, u = 0; u < Jm.length; u++) { - var c = Jm[u], p = r && Qm[c]; - e && null != e[c] ? p ? (l = !0, s[c] = e[c]) : this[c] = e[c] : a && null != n[c] && (p ? (l = !0, s[c] = n[c]) : this[c] = n[c]) - } - if (!r) for (var u = 0; u < this.animators.length; u++) { - var f = this.animators[u], d = f.targetName; - f.__changeFinalValue(d ? (e || n)[d] : e || n) - } - l && this._transitionState(t, s, o) - }, t.prototype._attachComponent = function (t) { - if (t.__zr && !t.__hostTarget) throw new Error("Text element has been added to zrender."); - if (t === this) throw new Error("Recursive component attachment."); - var e = this.__zr; - e && t.addSelfToZr(e), t.__zr = e, t.__hostTarget = this - }, t.prototype._detachComponent = function (t) { - t.__zr && t.removeSelfFromZr(t.__zr), t.__zr = null, t.__hostTarget = null - }, t.prototype.getClipPath = function () { - return this._clipPath - }, t.prototype.setClipPath = function (t) { - this._clipPath && this._clipPath !== t && this.removeClipPath(), this._attachComponent(t), this._clipPath = t, this.markRedraw() - }, t.prototype.removeClipPath = function () { - var t = this._clipPath; - t && (this._detachComponent(t), this._clipPath = null, this.markRedraw()) - }, t.prototype.getTextContent = function () { - return this._textContent - }, t.prototype.setTextContent = function (t) { - var e = this._textContent; - if (e !== t) { - if (e && e !== t && this.removeTextContent(), t.__zr && !t.__hostTarget) throw new Error("Text element has been added to zrender."); - t.attachedTransform = new ym, this._attachComponent(t), this._textContent = t, this.markRedraw() - } - }, t.prototype.setTextConfig = function (t) { - this.textConfig || (this.textConfig = {}), h(this.textConfig, t), this.markRedraw() - }, t.prototype.removeTextContent = function () { - var t = this._textContent; - t && (t.attachedTransform = null, this._detachComponent(t), this._textContent = null, this._innerTextDefaultStyle = null, this.markRedraw()) - }, t.prototype.getTextGuideLine = function () { - return this._textGuide - }, t.prototype.setTextGuideLine = function (t) { - this._textGuide && this._textGuide !== t && this.removeTextGuideLine(), this._attachComponent(t), this._textGuide = t, this.markRedraw() - }, t.prototype.removeTextGuideLine = function () { - var t = this._textGuide; - t && (this._detachComponent(t), this._textGuide = null, this.markRedraw()) - }, t.prototype.markRedraw = function () { - this.__dirty |= t.REDARAW_BIT; - var e = this.__zr; - e && (this.__inHover ? e.refreshHover() : e.refresh()), this.__hostTarget && this.__hostTarget.markRedraw() - }, t.prototype.dirty = function () { - this.markRedraw() - }, t.prototype._toggleHoverLayerFlag = function (t) { - this.__inHover = t; - var e = this._textContent, n = this._textGuide; - e && (e.__inHover = t), n && (n.__inHover = t) - }, t.prototype.addSelfToZr = function (t) { - this.__zr = t; - var e = this.animators; - if (e) for (var n = 0; n < e.length; n++) t.animation.addAnimator(e[n]); - this._clipPath && this._clipPath.addSelfToZr(t), this._textContent && this._textContent.addSelfToZr(t), this._textGuide && this._textGuide.addSelfToZr(t) - }, t.prototype.removeSelfFromZr = function (t) { - this.__zr = null; - var e = this.animators; - if (e) for (var n = 0; n < e.length; n++) t.animation.removeAnimator(e[n]); - this._clipPath && this._clipPath.removeSelfFromZr(t), this._textContent && this._textContent.removeSelfFromZr(t), this._textGuide && this._textGuide.removeSelfFromZr(t) - }, t.prototype.animate = function (t, e) { - var n = t ? this[t] : this; - if (!n) return void a('Property "' + t + '" is not existed in element ' + this.id); - var i = new Lm(n, e); - return this.addAnimator(i, t), i - }, t.prototype.addAnimator = function (t, e) { - var n = this.__zr, i = this; - t.during(function () { - i.updateDuringAnimation(e) - }).done(function () { - var e = i.animators, n = p(e, t); - n >= 0 && e.splice(n, 1) - }), this.animators.push(t), n && n.animation.addAnimator(t), n && n.wakeUp() - }, t.prototype.updateDuringAnimation = function () { - this.markRedraw() - }, t.prototype.stopAnimation = function (t, e) { - for (var n = this.animators, i = n.length, r = [], o = 0; i > o; o++) { - var a = n[o]; - t && t !== a.scope ? r.push(a) : a.stop(e) - } - return this.animators = r, this - }, t.prototype.animateTo = function (t, e, n) { - Vn(this, t, e, n) - }, t.prototype.animateFrom = function (t, e, n) { - Vn(this, t, e, n, !0) - }, t.prototype._transitionState = function (t, e, n, i) { - for (var r = Vn(this, e, n, i), o = 0; o < r.length; o++) r[o].__fromStateTransition = t - }, t.prototype.getBoundingRect = function () { - return null - }, t.prototype.getPaintRect = function () { - return null - }, t.REDARAW_BIT = 1, t.initDefaultProps = function () { - function e(t, e, n) { - r[t + e + n] || (console.warn("DEPRECATED: '" + t + "' has been deprecated. use '" + e + "', '" + n + "' instead"), r[t + e + n] = !0) - } - - function n(t, n, r, o) { - function a(t, e) { - Object.defineProperty(e, 0, { - get: function () { - return t[r] - }, set: function (e) { - t[r] = e - } - }), Object.defineProperty(e, 1, { - get: function () { - return t[o] - }, set: function (e) { - t[o] = e - } - }) - } - - Object.defineProperty(i, t, { - get: function () { - if (e(t, r, o), !this[n]) { - var i = this[n] = []; - a(this, i) - } - return this[n] - }, set: function (i) { - e(t, r, o), this[r] = i[0], this[o] = i[1], this[n] = i, a(this, i) - } - }) - } - - var i = t.prototype; - i.type = "element", i.name = "", i.ignore = !1, i.silent = !1, i.isGroup = !1, i.draggable = !1, i.dragging = !1, i.ignoreClip = !1, i.__inHover = !1, i.__dirty = t.REDARAW_BIT; - var r = {}; - Object.defineProperty && (!wv.browser.ie || wv.browser.version > 8) && (n("position", "_legacyPos", "x", "y"), n("scale", "_legacyScale", "scaleX", "scaleY"), n("origin", "_legacyOrigin", "originX", "originY")) - }(), t - }(); - d(n_, Uv), d(n_, ym); - var i_, r_ = 32, o_ = 7, a_ = !1, s_ = function () { - function t() { - this._roots = [], this._displayList = [], this._displayListLen = 0, this.displayableSortFunc = ei - } - - return t.prototype.traverse = function (t, e) { - for (var n = 0; n < this._roots.length; n++) this._roots[n].traverse(t, e) - }, t.prototype.getDisplayList = function (t, e) { - e = e || !1; - var n = this._displayList; - return (t || !n.length) && this.updateDisplayList(e), n - }, t.prototype.updateDisplayList = function (t) { - this._displayListLen = 0; - for (var e = this._roots, n = this._displayList, i = 0, r = e.length; r > i; i++) this._updateAndAddDisplayable(e[i], null, t); - n.length = this._displayListLen, wv.canvasSupported && Qn(n, ei) - }, t.prototype._updateAndAddDisplayable = function (t, e, n) { - if (!t.ignore || n) { - t.beforeUpdate(), t.update(), t.afterUpdate(); - var i = t.getClipPath(); - if (t.ignoreClip) e = null; else if (i) { - e = e ? e.slice() : []; - for (var r = i, o = t; r;) r.parent = o, r.updateTransform(), e.push(r), o = r, r = r.getClipPath() - } - if (t.childrenRef) { - for (var a = t.childrenRef(), s = 0; s < a.length; s++) { - var l = a[s]; - t.__dirty && (l.__dirty |= n_.REDARAW_BIT), this._updateAndAddDisplayable(l, e, n) - } - t.__dirty = 0 - } else { - var u = t; - e && e.length ? u.__clipPaths = e : u.__clipPaths && u.__clipPaths.length > 0 && (u.__clipPaths = []), isNaN(u.z) && (ti(), u.z = 0), isNaN(u.z2) && (ti(), u.z2 = 0), isNaN(u.zlevel) && (ti(), u.zlevel = 0), this._displayList[this._displayListLen++] = u - } - var h = t.getDecalElement && t.getDecalElement(); - h && this._updateAndAddDisplayable(h, e, n); - var c = t.getTextGuideLine(); - c && this._updateAndAddDisplayable(c, e, n); - var p = t.getTextContent(); - p && this._updateAndAddDisplayable(p, e, n) - } - }, t.prototype.addRoot = function (t) { - t.__zr && t.__zr.storage === this || this._roots.push(t) - }, t.prototype.delRoot = function (t) { - if (t instanceof Array) for (var e = 0, n = t.length; n > e; e++) this.delRoot(t[e]); else { - var i = p(this._roots, t); - i >= 0 && this._roots.splice(i, 1) - } - }, t.prototype.delAllRoots = function () { - this._roots = [], this._displayList = [], this._displayListLen = 0 - }, t.prototype.getRoots = function () { - return this._roots - }, t.prototype.dispose = function () { - this._displayList = null, this._roots = null - }, t - }(); - i_ = "undefined" != typeof window && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function (t) { - return setTimeout(t, 16) - }; - var l_ = i_, u_ = function (t) { - function n(e) { - var n = t.call(this) || this; - return n._running = !1, n._time = 0, n._pausedTime = 0, n._pauseStart = 0, n._paused = !1, e = e || {}, n.stage = e.stage || {}, n.onframe = e.onframe || function () { - }, n - } - - return e(n, t), n.prototype.addClip = function (t) { - t.animation && this.removeClip(t), this._clipsHead ? (this._clipsTail.next = t, t.prev = this._clipsTail, t.next = null, this._clipsTail = t) : this._clipsHead = this._clipsTail = t, t.animation = this - }, n.prototype.addAnimator = function (t) { - t.animation = this; - var e = t.getClip(); - e && this.addClip(e) - }, n.prototype.removeClip = function (t) { - if (t.animation) { - var e = t.prev, n = t.next; - e ? e.next = n : this._clipsHead = n, n ? n.prev = e : this._clipsTail = e, t.next = t.prev = t.animation = null - } - }, n.prototype.removeAnimator = function (t) { - var e = t.getClip(); - e && this.removeClip(e), t.animation = null - }, n.prototype.update = function (t) { - for (var e = (new Date).getTime() - this._pausedTime, n = e - this._time, i = this._clipsHead; i;) { - var r = i.next, o = i.step(e, n); - o ? (i.ondestroy && i.ondestroy(), this.removeClip(i), i = r) : i = r - } - this._time = e, t || (this.onframe(n), this.trigger("frame", n), this.stage.update && this.stage.update()) - }, n.prototype._startLoop = function () { - function t() { - e._running && (l_(t), !e._paused && e.update()) - } - - var e = this; - this._running = !0, l_(t) - }, n.prototype.start = function () { - this._running || (this._time = (new Date).getTime(), this._pausedTime = 0, this._startLoop()) - }, n.prototype.stop = function () { - this._running = !1 - }, n.prototype.pause = function () { - this._paused || (this._pauseStart = (new Date).getTime(), this._paused = !0) - }, n.prototype.resume = function () { - this._paused && (this._pausedTime += (new Date).getTime() - this._pauseStart, this._paused = !1) - }, n.prototype.clear = function () { - for (var t = this._clipsHead; t;) { - var e = t.next; - t.prev = t.next = t.animation = null, t = e - } - this._clipsHead = this._clipsTail = null - }, n.prototype.isFinished = function () { - return null == this._clipsHead - }, n.prototype.animate = function (t, e) { - e = e || {}, this.start(); - var n = new Lm(t, e.loop); - return this.addAnimator(n), n - }, n - }(Uv), h_ = 300, c_ = wv.domSupported, p_ = function () { - var t = ["click", "dblclick", "mousewheel", "wheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], - e = ["touchstart", "touchend", "touchmove"], - n = {pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1}, i = v(t, function (t) { - var e = t.replace("mouse", "pointer"); - return n.hasOwnProperty(e) ? e : t - }); - return {mouse: t, touch: e, pointer: i} - }(), f_ = {mouse: ["mousemove", "mouseup"], pointer: ["pointermove", "pointerup"]}, d_ = !1, g_ = function () { - function t(t, e) { - this.stopPropagation = K, this.stopImmediatePropagation = K, this.preventDefault = K, this.type = e.type, this.target = this.currentTarget = t.dom, this.pointerType = e.pointerType, this.clientX = e.clientX, this.clientY = e.clientY - } - - return t - }(), y_ = { - mousedown: function (t) { - t = Ae(this.dom, t), this.__mayPointerCapture = [t.zrX, t.zrY], this.trigger("mousedown", t) - }, mousemove: function (t) { - t = Ae(this.dom, t); - var e = this.__mayPointerCapture; - !e || t.zrX === e[0] && t.zrY === e[1] || this.__togglePointerCapture(!0), this.trigger("mousemove", t) - }, mouseup: function (t) { - t = Ae(this.dom, t), this.__togglePointerCapture(!1), this.trigger("mouseup", t) - }, mouseout: function (t) { - if (t.target === this.dom) { - t = Ae(this.dom, t), this.__pointerCapturing && (t.zrEventControl = "no_globalout"); - var e = t.toElement || t.relatedTarget; - t.zrIsToLocalDOM = ai(this, e), this.trigger("mouseout", t) - } - }, wheel: function (t) { - d_ = !0, t = Ae(this.dom, t), this.trigger("mousewheel", t) - }, mousewheel: function (t) { - d_ || (t = Ae(this.dom, t), this.trigger("mousewheel", t)) - }, touchstart: function (t) { - t = Ae(this.dom, t), ri(t), this.__lastTouchMoment = new Date, this.handler.processGesture(t, "start"), y_.mousemove.call(this, t), y_.mousedown.call(this, t) - }, touchmove: function (t) { - t = Ae(this.dom, t), ri(t), this.handler.processGesture(t, "change"), y_.mousemove.call(this, t) - }, touchend: function (t) { - t = Ae(this.dom, t), ri(t), this.handler.processGesture(t, "end"), y_.mouseup.call(this, t), +new Date - +this.__lastTouchMoment < h_ && y_.click.call(this, t) - }, pointerdown: function (t) { - y_.mousedown.call(this, t) - }, pointermove: function (t) { - ni(t) || y_.mousemove.call(this, t) - }, pointerup: function (t) { - y_.mouseup.call(this, t) - }, pointerout: function (t) { - ni(t) || y_.mouseout.call(this, t) - } - }; - y(["click", "dblclick", "contextmenu"], function (t) { - y_[t] = function (e) { - e = Ae(this.dom, e), this.trigger(t, e) - } - }); - var v_ = { - pointermove: function (t) { - ni(t) || v_.mousemove.call(this, t) - }, pointerup: function (t) { - v_.mouseup.call(this, t) - }, mousemove: function (t) { - this.trigger("mousemove", t) - }, mouseup: function (t) { - var e = this.__pointerCapturing; - this.__togglePointerCapture(!1), this.trigger("mouseup", t), e && (t.zrEventControl = "only_globalout", this.trigger("mouseout", t)) - } - }, m_ = function () { - function t(t, e) { - this.mounted = {}, this.listenerOpts = {}, this.touching = !1, this.domTarget = t, this.domHandlers = e - } - - return t - }(), __ = function (t) { - function n(e, n) { - var i = t.call(this) || this; - return i.__pointerCapturing = !1, i.dom = e, i.painterRoot = n, i._localHandlerScope = new m_(e, y_), c_ && (i._globalHandlerScope = new m_(document, v_)), si(i, i._localHandlerScope), i - } - - return e(n, t), n.prototype.dispose = function () { - hi(this._localHandlerScope), c_ && hi(this._globalHandlerScope) - }, n.prototype.setCursor = function (t) { - this.dom.style && (this.dom.style.cursor = t || "default") - }, n.prototype.__togglePointerCapture = function (t) { - if (this.__mayPointerCapture = null, c_ && +this.__pointerCapturing ^ +t) { - this.__pointerCapturing = t; - var e = this._globalHandlerScope; - t ? li(this, e) : hi(e) - } - }, n - }(Uv), x_ = "__zr_style_" + Math.round(10 * Math.random()), - w_ = {shadowBlur: 0, shadowOffsetX: 0, shadowOffsetY: 0, shadowColor: "#000", opacity: 1, blend: "source-over"}, - b_ = {style: {shadowBlur: !0, shadowOffsetX: !0, shadowOffsetY: !0, shadowColor: !0, opacity: !0}}; - w_[x_] = !0; - var S_ = ["z", "z2", "invisible"], T_ = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype._init = function (e) { - for (var n = w(e), i = 0; i < n.length; i++) { - var r = n[i]; - "style" === r ? this.useStyle(e[r]) : t.prototype.attrKV.call(this, r, e[r]) - } - this.style || this.useStyle({}) - }, n.prototype.beforeBrush = function () { - }, n.prototype.afterBrush = function () { - }, n.prototype.innerBeforeBrush = function () { - }, n.prototype.innerAfterBrush = function () { - }, n.prototype.shouldBePainted = function (t, e, n, i) { - var r = this.transform; - if (this.ignore || this.invisible || 0 === this.style.opacity || this.culling && ci(this, t, e) || r && !r[0] && !r[3]) return !1; - if (n && this.__clipPaths) for (var o = 0; o < this.__clipPaths.length; ++o) if (this.__clipPaths[o].isZeroArea()) return !1; - if (i && this.parent) for (var a = this.parent; a;) { - if (a.ignore) return !1; - a = a.parent - } - return !0 - }, n.prototype.contain = function (t, e) { - return this.rectContain(t, e) - }, n.prototype.traverse = function (t, e) { - t.call(e, this) - }, n.prototype.rectContain = function (t, e) { - var n = this.transformCoordToLocal(t, e), i = this.getBoundingRect(); - return i.contain(n[0], n[1]) - }, n.prototype.getPaintRect = function () { - var t = this._paintRect; - if (!this._paintRect || this.__dirty) { - var e = this.transform, n = this.getBoundingRect(), i = this.style, r = i.shadowBlur || 0, - o = i.shadowOffsetX || 0, a = i.shadowOffsetY || 0; - t = this._paintRect || (this._paintRect = new Vm(0, 0, 0, 0)), e ? Vm.applyTransform(t, n, e) : t.copy(n), (r || o || a) && (t.width += 2 * r + Math.abs(o), t.height += 2 * r + Math.abs(a), t.x = Math.min(t.x, t.x + o - r), t.y = Math.min(t.y, t.y + a - r)); - var s = this.dirtyRectTolerance; - t.isZero() || (t.x = Math.floor(t.x - s), t.y = Math.floor(t.y - s), t.width = Math.ceil(t.width + 1 + 2 * s), t.height = Math.ceil(t.height + 1 + 2 * s)) - } - return t - }, n.prototype.setPrevPaintRect = function (t) { - t ? (this._prevPaintRect = this._prevPaintRect || new Vm(0, 0, 0, 0), this._prevPaintRect.copy(t)) : this._prevPaintRect = null - }, n.prototype.getPrevPaintRect = function () { - return this._prevPaintRect - }, n.prototype.animateStyle = function (t) { - return this.animate("style", t) - }, n.prototype.updateDuringAnimation = function (t) { - "style" === t ? this.dirtyStyle() : this.markRedraw() - }, n.prototype.attrKV = function (e, n) { - "style" !== e ? t.prototype.attrKV.call(this, e, n) : this.style ? this.setStyle(n) : this.useStyle(n) - }, n.prototype.setStyle = function (t, e) { - return "string" == typeof t ? this.style[t] = e : h(this.style, t), this.dirtyStyle(), this - }, n.prototype.dirtyStyle = function () { - this.markRedraw(), this.__dirty |= n.STYLE_CHANGED_BIT, this._rect && (this._rect = null) - }, n.prototype.dirty = function () { - this.dirtyStyle() - }, n.prototype.styleChanged = function () { - return !!(this.__dirty & n.STYLE_CHANGED_BIT) - }, n.prototype.styleUpdated = function () { - this.__dirty &= ~n.STYLE_CHANGED_BIT - }, n.prototype.createStyle = function (t) { - return j(w_, t) - }, n.prototype.useStyle = function (t) { - t[x_] || (t = this.createStyle(t)), this.__inHover ? this.__hoverStyle = t : this.style = t, this.dirtyStyle() - }, n.prototype.isStyleObject = function (t) { - return t[x_] - }, n.prototype._innerSaveToNormal = function (e) { - t.prototype._innerSaveToNormal.call(this, e); - var n = this._normalState; - e.style && !n.style && (n.style = this._mergeStyle(this.createStyle(), this.style)), this._savePrimaryToNormal(e, n, S_) - }, n.prototype._applyStateObj = function (e, n, i, r, o, a) { - t.prototype._applyStateObj.call(this, e, n, i, r, o, a); - var s, l = !(n && r); - if (n && n.style ? o ? r ? s = n.style : (s = this._mergeStyle(this.createStyle(), i.style), this._mergeStyle(s, n.style)) : (s = this._mergeStyle(this.createStyle(), r ? this.style : i.style), this._mergeStyle(s, n.style)) : l && (s = i.style), s) if (o) { - var u = this.style; - if (this.style = this.createStyle(l ? {} : u), l) for (var h = w(u), c = 0; c < h.length; c++) { - var p = h[c]; - p in s && (s[p] = s[p], this.style[p] = u[p]) - } - for (var f = w(s), c = 0; c < f.length; c++) { - var p = f[c]; - this.style[p] = this.style[p] - } - this._transitionState(e, {style: s}, a, this.getAnimationStyleProps()) - } else this.useStyle(s); - for (var c = 0; c < S_.length; c++) { - var p = S_[c]; - n && null != n[p] ? this[p] = n[p] : l && null != i[p] && (this[p] = i[p]) - } - }, n.prototype._mergeStates = function (e) { - for (var n, i = t.prototype._mergeStates.call(this, e), r = 0; r < e.length; r++) { - var o = e[r]; - o.style && (n = n || {}, this._mergeStyle(n, o.style)) - } - return n && (i.style = n), i - }, n.prototype._mergeStyle = function (t, e) { - return h(t, e), t - }, n.prototype.getAnimationStyleProps = function () { - return b_ - }, n.STYLE_CHANGED_BIT = 2, n.initDefaultProps = function () { - var t = n.prototype; - t.type = "displayable", t.invisible = !1, t.z = 0, t.z2 = 0, t.zlevel = 0, t.culling = !1, t.cursor = "pointer", t.rectHover = !1, t.incremental = !1, t._rect = null, t.dirtyRectTolerance = 0, t.__dirty = n_.REDARAW_BIT | n.STYLE_CHANGED_BIT - }(), n - }(n_), M_ = new Vm(0, 0, 0, 0), C_ = new Vm(0, 0, 0, 0), I_ = Math.pow, A_ = Math.sqrt, D_ = 1e-8, k_ = 1e-4, - L_ = A_(3), P_ = 1 / 3, O_ = $(), R_ = $(), E_ = $(), z_ = Math.min, B_ = Math.max, N_ = Math.sin, - F_ = Math.cos, H_ = 2 * Math.PI, V_ = $(), G_ = $(), W_ = $(), X_ = [], Y_ = [], - U_ = {M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, R: 7}, q_ = [], j_ = [], Z_ = [], K_ = [], $_ = [], J_ = [], - Q_ = Math.min, tx = Math.max, ex = Math.cos, nx = Math.sin, ix = Math.sqrt, rx = Math.abs, ox = Math.PI, - ax = 2 * ox, sx = "undefined" != typeof Float32Array, lx = [], ux = function () { - function t(t) { - this.dpr = 1, this._version = 0, this._xi = 0, this._yi = 0, this._x0 = 0, this._y0 = 0, this._len = 0, t && (this._saveData = !1), this._saveData && (this.data = []) - } - - return t.prototype.increaseVersion = function () { - this._version++ - }, t.prototype.getVersion = function () { - return this._version - }, t.prototype.setScale = function (t, e, n) { - n = n || 0, n > 0 && (this._ux = rx(n / Um / t) || 0, this._uy = rx(n / Um / e) || 0) - }, t.prototype.setDPR = function (t) { - this.dpr = t - }, t.prototype.setContext = function (t) { - this._ctx = t - }, t.prototype.getContext = function () { - return this._ctx - }, t.prototype.beginPath = function () { - return this._ctx && this._ctx.beginPath(), this.reset(), this - }, t.prototype.reset = function () { - this._saveData && (this._len = 0), this._lineDash && (this._lineDash = null, this._dashOffset = 0), this._pathSegLen && (this._pathSegLen = null, this._pathLen = 0), this._version++ - }, t.prototype.moveTo = function (t, e) { - return this.addData(U_.M, t, e), this._ctx && this._ctx.moveTo(t, e), this._x0 = t, this._y0 = e, this._xi = t, this._yi = e, this - }, t.prototype.lineTo = function (t, e) { - var n = rx(t - this._xi) > this._ux || rx(e - this._yi) > this._uy || this._len < 5; - return this.addData(U_.L, t, e), this._ctx && n && (this._needsDash ? this._dashedLineTo(t, e) : this._ctx.lineTo(t, e)), n && (this._xi = t, this._yi = e), this - }, t.prototype.bezierCurveTo = function (t, e, n, i, r, o) { - return this.addData(U_.C, t, e, n, i, r, o), this._ctx && (this._needsDash ? this._dashedBezierTo(t, e, n, i, r, o) : this._ctx.bezierCurveTo(t, e, n, i, r, o)), this._xi = r, this._yi = o, this - }, t.prototype.quadraticCurveTo = function (t, e, n, i) { - return this.addData(U_.Q, t, e, n, i), this._ctx && (this._needsDash ? this._dashedQuadraticTo(t, e, n, i) : this._ctx.quadraticCurveTo(t, e, n, i)), this._xi = n, this._yi = i, this - }, t.prototype.arc = function (t, e, n, i, r, o) { - lx[0] = i, lx[1] = r, Ri(lx, o), i = lx[0], r = lx[1]; - var a = r - i; - return this.addData(U_.A, t, e, n, n, i, a, 0, o ? 0 : 1), this._ctx && this._ctx.arc(t, e, n, i, r, o), this._xi = ex(r) * n + t, this._yi = nx(r) * n + e, this - }, t.prototype.arcTo = function (t, e, n, i, r) { - return this._ctx && this._ctx.arcTo(t, e, n, i, r), this - }, t.prototype.rect = function (t, e, n, i) { - return this._ctx && this._ctx.rect(t, e, n, i), this.addData(U_.R, t, e, n, i), this - }, t.prototype.closePath = function () { - this.addData(U_.Z); - var t = this._ctx, e = this._x0, n = this._y0; - return t && (this._needsDash && this._dashedLineTo(e, n), t.closePath()), this._xi = e, this._yi = n, this - }, t.prototype.fill = function (t) { - t && t.fill(), this.toStatic() - }, t.prototype.stroke = function (t) { - t && t.stroke(), this.toStatic() - }, t.prototype.setLineDash = function (t) { - if (t instanceof Array) { - this._lineDash = t, this._dashIdx = 0; - for (var e = 0, n = 0; n < t.length; n++) e += t[n]; - this._dashSum = e, this._needsDash = !0 - } else this._lineDash = null, this._needsDash = !1; - return this - }, t.prototype.setLineDashOffset = function (t) { - return this._dashOffset = t, this - }, t.prototype.len = function () { - return this._len - }, t.prototype.setData = function (t) { - var e = t.length; - this.data && this.data.length === e || !sx || (this.data = new Float32Array(e)); - for (var n = 0; e > n; n++) this.data[n] = t[n]; - this._len = e - }, t.prototype.appendPath = function (t) { - t instanceof Array || (t = [t]); - for (var e = t.length, n = 0, i = this._len, r = 0; e > r; r++) n += t[r].len(); - sx && this.data instanceof Float32Array && (this.data = new Float32Array(i + n)); - for (var r = 0; e > r; r++) for (var o = t[r].data, a = 0; a < o.length; a++) this.data[i++] = o[a]; - this._len = i - }, t.prototype.addData = function () { - if (this._saveData) { - var t = this.data; - this._len + arguments.length > t.length && (this._expandData(), t = this.data); - for (var e = 0; e < arguments.length; e++) t[this._len++] = arguments[e] - } - }, t.prototype._expandData = function () { - if (!(this.data instanceof Array)) { - for (var t = [], e = 0; e < this._len; e++) t[e] = this.data[e]; - this.data = t - } - }, t.prototype._dashedLineTo = function (t, e) { - var n, i, r = this._dashSum, o = this._lineDash, a = this._ctx, s = this._dashOffset, l = this._xi, - u = this._yi, h = t - l, c = e - u, p = ix(h * h + c * c), f = l, d = u, g = o.length; - for (h /= p, c /= p, 0 > s && (s = r + s), s %= r, f -= s * h, d -= s * c; h > 0 && t >= f || 0 > h && f >= t || 0 === h && (c > 0 && e >= d || 0 > c && d >= e);) i = this._dashIdx, n = o[i], f += h * n, d += c * n, this._dashIdx = (i + 1) % g, h > 0 && l > f || 0 > h && f > l || c > 0 && u > d || 0 > c && d > u || a[i % 2 ? "moveTo" : "lineTo"](h >= 0 ? Q_(f, t) : tx(f, t), c >= 0 ? Q_(d, e) : tx(d, e)); - h = f - t, c = d - e, this._dashOffset = -ix(h * h + c * c) - }, t.prototype._dashedBezierTo = function (t, e, n, i, r, o) { - var a, s, l, u, h, c = this._ctx, p = this._dashSum, f = this._dashOffset, d = this._lineDash, g = this._xi, - y = this._yi, v = 0, m = this._dashIdx, _ = d.length, x = 0; - for (0 > f && (f = p + f), f %= p, a = 0; 1 > a; a += .1) s = di(g, t, n, r, a + .1) - di(g, t, n, r, a), l = di(y, e, i, o, a + .1) - di(y, e, i, o, a), v += ix(s * s + l * l); - for (; _ > m && (x += d[m], !(x > f)); m++) ; - for (a = (x - f) / v; 1 >= a;) u = di(g, t, n, r, a), h = di(y, e, i, o, a), m % 2 ? c.moveTo(u, h) : c.lineTo(u, h), a += d[m] / v, m = (m + 1) % _; - m % 2 !== 0 && c.lineTo(r, o), s = r - u, l = o - h, this._dashOffset = -ix(s * s + l * l) - }, t.prototype._dashedQuadraticTo = function (t, e, n, i) { - var r = n, o = i; - n = (n + 2 * t) / 3, i = (i + 2 * e) / 3, t = (this._xi + 2 * t) / 3, e = (this._yi + 2 * e) / 3, this._dashedBezierTo(t, e, n, i, r, o) - }, t.prototype.toStatic = function () { - if (this._saveData) { - var t = this.data; - t instanceof Array && (t.length = this._len, sx && this._len > 11 && (this.data = new Float32Array(t))) - } - }, t.prototype.getBoundingRect = function () { - Z_[0] = Z_[1] = $_[0] = $_[1] = Number.MAX_VALUE, K_[0] = K_[1] = J_[0] = J_[1] = -Number.MAX_VALUE; - var t, e = this.data, n = 0, i = 0, r = 0, o = 0; - for (t = 0; t < this._len;) { - var a = e[t++], s = 1 === t; - switch (s && (n = e[t], i = e[t + 1], r = n, o = i), a) { - case U_.M: - n = r = e[t++], i = o = e[t++], $_[0] = r, $_[1] = o, J_[0] = r, J_[1] = o; - break; - case U_.L: - Di(n, i, e[t], e[t + 1], $_, J_), n = e[t++], i = e[t++]; - break; - case U_.C: - ki(n, i, e[t++], e[t++], e[t++], e[t++], e[t], e[t + 1], $_, J_), n = e[t++], i = e[t++]; - break; - case U_.Q: - Li(n, i, e[t++], e[t++], e[t], e[t + 1], $_, J_), n = e[t++], i = e[t++]; - break; - case U_.A: - var l = e[t++], u = e[t++], h = e[t++], c = e[t++], p = e[t++], f = e[t++] + p; - t += 1; - var d = !e[t++]; - s && (r = ex(p) * h + l, o = nx(p) * c + u), Pi(l, u, h, c, p, f, d, $_, J_), n = ex(f) * h + l, i = nx(f) * c + u; - break; - case U_.R: - r = n = e[t++], o = i = e[t++]; - var g = e[t++], y = e[t++]; - Di(r, o, r + g, o + y, $_, J_); - break; - case U_.Z: - n = r, i = o - } - ye(Z_, Z_, $_), ve(K_, K_, J_) - } - return 0 === t && (Z_[0] = Z_[1] = K_[0] = K_[1] = 0), new Vm(Z_[0], Z_[1], K_[0] - Z_[0], K_[1] - Z_[1]) - }, t.prototype._calculateLength = function () { - var t = this.data, e = this._len, n = this._ux, i = this._uy, r = 0, o = 0, a = 0, s = 0; - this._pathSegLen || (this._pathSegLen = []); - for (var l = this._pathSegLen, u = 0, h = 0, c = 0; e > c;) { - var p = t[c++], f = 1 === c; - f && (r = t[c], o = t[c + 1], a = r, s = o); - var d = -1; - switch (p) { - case U_.M: - r = a = t[c++], o = s = t[c++]; - break; - case U_.L: - var g = t[c++], y = t[c++], v = g - r, m = y - o; - (rx(v) > n || rx(m) > i || c === e - 1) && (d = Math.sqrt(v * v + m * m), r = g, o = y); - break; - case U_.C: - var _ = t[c++], x = t[c++], g = t[c++], y = t[c++], w = t[c++], b = t[c++]; - d = xi(r, o, _, x, g, y, w, b, 10), r = w, o = b; - break; - case U_.Q: - var _ = t[c++], x = t[c++], g = t[c++], y = t[c++]; - d = Ii(r, o, _, x, g, y, 10), r = g, o = y; - break; - case U_.A: - var S = t[c++], T = t[c++], M = t[c++], C = t[c++], I = t[c++], A = t[c++], D = A + I; - c += 1; - { - !t[c++] - } - f && (a = ex(I) * M + S, s = nx(I) * C + T), d = tx(M, C) * Q_(ax, Math.abs(A)), r = ex(D) * M + S, o = nx(D) * C + T; - break; - case U_.R: - a = r = t[c++], s = o = t[c++]; - var k = t[c++], L = t[c++]; - d = 2 * k + 2 * L; - break; - case U_.Z: - var v = a - r, m = s - o; - d = Math.sqrt(v * v + m * m), r = a, o = s - } - d >= 0 && (l[h++] = d, u += d) - } - return this._pathLen = u, u - }, t.prototype.rebuildPath = function (t, e) { - var n, i, r, o, a, s, l, u, h, c = this.data, p = this._ux, f = this._uy, d = this._len, g = 1 > e, y = 0, - v = 0; - if (!g || (this._pathSegLen || this._calculateLength(), l = this._pathSegLen, u = this._pathLen, h = e * u)) t:for (var m = 0; d > m;) { - var _ = c[m++], x = 1 === m; - switch (x && (r = c[m], o = c[m + 1], n = r, i = o), _) { - case U_.M: - n = r = c[m++], i = o = c[m++], t.moveTo(r, o); - break; - case U_.L: - if (a = c[m++], s = c[m++], rx(a - r) > p || rx(s - o) > f || m === d - 1) { - if (g) { - var w = l[v++]; - if (y + w > h) { - var b = (h - y) / w; - t.lineTo(r * (1 - b) + a * b, o * (1 - b) + s * b); - break t - } - y += w - } - t.lineTo(a, s), r = a, o = s - } - break; - case U_.C: - var S = c[m++], T = c[m++], M = c[m++], C = c[m++], I = c[m++], A = c[m++]; - if (g) { - var w = l[v++]; - if (y + w > h) { - var b = (h - y) / w; - mi(r, S, M, I, b, q_), mi(o, T, C, A, b, j_), t.bezierCurveTo(q_[1], j_[1], q_[2], j_[2], q_[3], j_[3]); - break t - } - y += w - } - t.bezierCurveTo(S, T, M, C, I, A), r = I, o = A; - break; - case U_.Q: - var S = c[m++], T = c[m++], M = c[m++], C = c[m++]; - if (g) { - var w = l[v++]; - if (y + w > h) { - var b = (h - y) / w; - Mi(r, S, M, b, q_), Mi(o, T, C, b, j_), t.quadraticCurveTo(q_[1], j_[1], q_[2], j_[2]); - break t - } - y += w - } - t.quadraticCurveTo(S, T, M, C), r = M, o = C; - break; - case U_.A: - var D = c[m++], k = c[m++], L = c[m++], P = c[m++], O = c[m++], R = c[m++], E = c[m++], - z = !c[m++], B = L > P ? L : P, N = rx(L - P) > .001, F = O + R, H = !1; - if (g) { - var w = l[v++]; - y + w > h && (F = O + R * (h - y) / w, H = !0), y += w - } - if (N && t.ellipse ? t.ellipse(D, k, L, P, E, O, F, z) : t.arc(D, k, B, O, F, z), H) break t; - x && (n = ex(O) * L + D, i = nx(O) * P + k), r = ex(F) * L + D, o = nx(F) * P + k; - break; - case U_.R: - n = r = c[m], i = o = c[m + 1], a = c[m++], s = c[m++]; - var V = c[m++], G = c[m++]; - if (g) { - var w = l[v++]; - if (y + w > h) { - var W = h - y; - t.moveTo(a, s), t.lineTo(a + Q_(W, V), s), W -= V, W > 0 && t.lineTo(a + V, s + Q_(W, G)), W -= G, W > 0 && t.lineTo(a + tx(V - W, 0), s + G), W -= V, W > 0 && t.lineTo(a, s + tx(G - W, 0)); - break t - } - y += w - } - t.rect(a, s, V, G); - break; - case U_.Z: - if (g) { - var w = l[v++]; - if (y + w > h) { - var b = (h - y) / w; - t.lineTo(r * (1 - b) + n * b, o * (1 - b) + i * b); - break t - } - y += w - } - t.closePath(), r = n, o = i - } - } - }, t.CMD = U_, t.initDefaultProps = function () { - var e = t.prototype; - e._saveData = !0, e._needsDash = !1, e._dashOffset = 0, e._dashIdx = 0, e._dashSum = 0, e._ux = 0, e._uy = 0 - }(), t - }(), hx = 2 * Math.PI, cx = 2 * Math.PI, px = ux.CMD, fx = 2 * Math.PI, dx = 1e-4, gx = [-1, -1, -1], yx = [-1, -1], - vx = c({ - fill: "#000", - stroke: null, - strokePercent: 1, - fillOpacity: 1, - strokeOpacity: 1, - lineDashOffset: 0, - lineWidth: 1, - lineCap: "butt", - miterLimit: 10, - strokeNoScale: !1, - strokeFirst: !1 - }, w_), mx = { - style: c({ - fill: !0, - stroke: !0, - strokePercent: !0, - fillOpacity: !0, - strokeOpacity: !0, - lineDashOffset: !0, - lineWidth: !0, - miterLimit: !0 - }, b_.style) - }, - _x = ["x", "y", "rotation", "scaleX", "scaleY", "originX", "originY", "invisible", "culling", "z", "z2", "zlevel", "parent"], - xx = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.update = function () { - var e = this; - t.prototype.update.call(this); - var i = this.style; - if (i.decal) { - var r = this._decalEl = this._decalEl || new n; - r.buildPath === n.prototype.buildPath && (r.buildPath = function (t) { - e.buildPath(t, e.shape) - }), r.silent = !0; - var o = r.style; - for (var a in i) o[a] !== i[a] && (o[a] = i[a]); - o.fill = i.fill ? i.decal : null, o.decal = null, o.shadowColor = null, i.strokeFirst && (o.stroke = null); - for (var s = 0; s < _x.length; ++s) r[_x[s]] = this[_x[s]]; - r.__dirty |= n_.REDARAW_BIT - } else this._decalEl && (this._decalEl = null) - }, n.prototype.getDecalElement = function () { - return this._decalEl - }, n.prototype._init = function (e) { - var n = w(e); - this.shape = this.getDefaultShape(); - var i = this.getDefaultStyle(); - i && this.useStyle(i); - for (var r = 0; r < n.length; r++) { - var o = n[r], a = e[o]; - "style" === o ? this.style ? h(this.style, a) : this.useStyle(a) : "shape" === o ? h(this.shape, a) : t.prototype.attrKV.call(this, o, a) - } - this.style || this.useStyle({}) - }, n.prototype.getDefaultStyle = function () { - return null - }, n.prototype.getDefaultShape = function () { - return {} - }, n.prototype.canBeInsideText = function () { - return this.hasFill() - }, n.prototype.getInsideTextFill = function () { - var t = this.style.fill; - if ("none" !== t) { - if (C(t)) { - var e = yn(t, 0); - return e > .5 ? jm : e > .2 ? Km : Zm - } - if (t) return Zm - } - return jm - }, n.prototype.getInsideTextStroke = function (t) { - var e = this.style.fill; - if (C(e)) { - var n = this.__zr, i = !(!n || !n.isDarkMode()), r = yn(t, 0) < qm; - if (i === r) return e - } - }, n.prototype.buildPath = function () { - }, n.prototype.pathUpdated = function () { - this.__dirty &= ~n.SHAPE_CHANGED_BIT - }, n.prototype.createPathProxy = function () { - this.path = new ux(!1) - }, n.prototype.hasStroke = function () { - var t = this.style, e = t.stroke; - return !(null == e || "none" === e || !(t.lineWidth > 0)) - }, n.prototype.hasFill = function () { - var t = this.style, e = t.fill; - return null != e && "none" !== e - }, n.prototype.getBoundingRect = function () { - var t = this._rect, e = this.style, i = !t; - if (i) { - var r = !1; - this.path || (r = !0, this.createPathProxy()); - var o = this.path; - (r || this.__dirty & n.SHAPE_CHANGED_BIT) && (o.beginPath(), this.buildPath(o, this.shape, !1), this.pathUpdated()), t = o.getBoundingRect() - } - if (this._rect = t, this.hasStroke() && this.path && this.path.len() > 0) { - var a = this._rectWithStroke || (this._rectWithStroke = t.clone()); - if (this.__dirty || i) { - a.copy(t); - var s = e.strokeNoScale ? this.getLineScale() : 1, l = e.lineWidth; - if (!this.hasFill()) { - var u = this.strokeContainThreshold; - l = Math.max(l, null == u ? 4 : u) - } - s > 1e-10 && (a.width += l / s, a.height += l / s, a.x -= l / s / 2, a.y -= l / s / 2) - } - return a - } - return t - }, n.prototype.contain = function (t, e) { - var n = this.transformCoordToLocal(t, e), i = this.getBoundingRect(), r = this.style; - if (t = n[0], e = n[1], i.contain(t, e)) { - var o = this.path; - if (this.hasStroke()) { - var a = r.lineWidth, s = r.strokeNoScale ? this.getLineScale() : 1; - if (s > 1e-10 && (this.hasFill() || (a = Math.max(a, this.strokeContainThreshold)), ji(o, a / s, t, e))) return !0 - } - if (this.hasFill()) return qi(o, t, e) - } - return !1 - }, n.prototype.dirtyShape = function () { - this.__dirty |= n.SHAPE_CHANGED_BIT, this._rect && (this._rect = null), this._decalEl && this._decalEl.dirtyShape(), this.markRedraw() - }, n.prototype.dirty = function () { - this.dirtyStyle(), this.dirtyShape() - }, n.prototype.animateShape = function (t) { - return this.animate("shape", t) - }, n.prototype.updateDuringAnimation = function (t) { - "style" === t ? this.dirtyStyle() : "shape" === t ? this.dirtyShape() : this.markRedraw() - }, n.prototype.attrKV = function (e, n) { - "shape" === e ? this.setShape(n) : t.prototype.attrKV.call(this, e, n) - }, n.prototype.setShape = function (t, e) { - var n = this.shape; - return n || (n = this.shape = {}), "string" == typeof t ? n[t] = e : h(n, t), this.dirtyShape(), this - }, n.prototype.shapeChanged = function () { - return !!(this.__dirty & n.SHAPE_CHANGED_BIT) - }, n.prototype.createStyle = function (t) { - return j(vx, t) - }, n.prototype._innerSaveToNormal = function (e) { - t.prototype._innerSaveToNormal.call(this, e); - var n = this._normalState; - e.shape && !n.shape && (n.shape = h({}, this.shape)) - }, n.prototype._applyStateObj = function (e, n, i, r, o, a) { - t.prototype._applyStateObj.call(this, e, n, i, r, o, a); - var s, l = !(n && r); - if (n && n.shape ? o ? r ? s = n.shape : (s = h({}, i.shape), h(s, n.shape)) : (s = h({}, r ? this.shape : i.shape), h(s, n.shape)) : l && (s = i.shape), s) if (o) { - this.shape = h({}, this.shape); - for (var u = {}, c = w(s), p = 0; p < c.length; p++) { - var f = c[p]; - "object" == typeof s[f] ? this.shape[f] = s[f] : u[f] = s[f] - } - this._transitionState(e, {shape: u}, a) - } else this.shape = s, this.dirtyShape() - }, n.prototype._mergeStates = function (e) { - for (var n, i = t.prototype._mergeStates.call(this, e), r = 0; r < e.length; r++) { - var o = e[r]; - o.shape && (n = n || {}, this._mergeStyle(n, o.shape)) - } - return n && (i.shape = n), i - }, n.prototype.getAnimationStyleProps = function () { - return mx - }, n.prototype.isZeroArea = function () { - return !1 - }, n.extend = function (t) { - var i = function (n) { - function i(e) { - var i = n.call(this, e) || this; - return t.init && t.init.call(i, e), i - } - - return e(i, n), i.prototype.getDefaultStyle = function () { - return s(t.style) - }, i.prototype.getDefaultShape = function () { - return s(t.shape) - }, i - }(n); - for (var r in t) "function" == typeof t[r] && (i.prototype[r] = t[r]); - return i - }, n.SHAPE_CHANGED_BIT = 4, n.initDefaultProps = function () { - var t = n.prototype; - t.type = "path", t.strokeContainThreshold = 5, t.segmentIgnoreThreshold = 0, t.subPixelOptimize = !1, t.autoBatch = !1, t.__dirty = n_.REDARAW_BIT | T_.STYLE_CHANGED_BIT | n.SHAPE_CHANGED_BIT - }(), n - }(T_), bx = ux.CMD, Sx = [[], [], []], Tx = Math.sqrt, Mx = Math.atan2, Cx = Math.sqrt, Ix = Math.sin, - Ax = Math.cos, Dx = Math.PI, kx = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi, - Lx = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g, Px = function (t) { - function n() { - return null !== t && t.apply(this, arguments) || this - } - - return e(n, t), n.prototype.applyTransform = function () { - }, n - }(xx), Ox = function (t) { - function n(e) { - var n = t.call(this) || this; - return n.isGroup = !0, n._children = [], n.attr(e), n - } - - return e(n, t), n.prototype.childrenRef = function () { - return this._children - }, n.prototype.children = function () { - return this._children.slice() - }, n.prototype.childAt = function (t) { - return this._children[t] - }, n.prototype.childOfName = function (t) { - for (var e = this._children, n = 0; n < e.length; n++) if (e[n].name === t) return e[n] - }, n.prototype.childCount = function () { - return this._children.length - }, n.prototype.add = function (t) { - if (t && (t !== this && t.parent !== this && (this._children.push(t), this._doAdd(t)), t.__hostTarget)) throw"This elemenet has been used as an attachment"; - return this - }, n.prototype.addBefore = function (t, e) { - if (t && t !== this && t.parent !== this && e && e.parent === this) { - var n = this._children, i = n.indexOf(e); - i >= 0 && (n.splice(i, 0, t), this._doAdd(t)) - } - return this - }, n.prototype.replaceAt = function (t, e) { - var n = this._children, i = n[e]; - if (t && t !== this && t.parent !== this && t !== i) { - n[e] = t, i.parent = null; - var r = this.__zr; - r && i.removeSelfFromZr(r), this._doAdd(t) - } - return this - }, n.prototype._doAdd = function (t) { - t.parent && t.parent.remove(t), t.parent = this; - var e = this.__zr; - e && e !== t.__zr && t.addSelfToZr(e), e && e.refresh() - }, n.prototype.remove = function (t) { - var e = this.__zr, n = this._children, i = p(n, t); - return 0 > i ? this : (n.splice(i, 1), t.parent = null, e && t.removeSelfFromZr(e), e && e.refresh(), this) - }, n.prototype.removeAll = function () { - for (var t = this._children, e = this.__zr, n = 0; n < t.length; n++) { - var i = t[n]; - e && i.removeSelfFromZr(e), i.parent = null - } - return t.length = 0, this - }, n.prototype.eachChild = function (t, e) { - for (var n = this._children, i = 0; i < n.length; i++) { - var r = n[i]; - t.call(e, r, i) - } - return this - }, n.prototype.traverse = function (t, e) { - for (var n = 0; n < this._children.length; n++) { - var i = this._children[n], r = t.call(e, i); - i.isGroup && !r && i.traverse(t, e) - } - return this - }, n.prototype.addSelfToZr = function (e) { - t.prototype.addSelfToZr.call(this, e); - for (var n = 0; n < this._children.length; n++) { - var i = this._children[n]; - i.addSelfToZr(e) - } - }, n.prototype.removeSelfFromZr = function (e) { - t.prototype.removeSelfFromZr.call(this, e); - for (var n = 0; n < this._children.length; n++) { - var i = this._children[n]; - i.removeSelfFromZr(e) - } - }, n.prototype.getBoundingRect = function (t) { - for (var e = new Vm(0, 0, 0, 0), n = t || this._children, i = [], r = null, o = 0; o < n.length; o++) { - var a = n[o]; - if (!a.ignore && !a.invisible) { - var s = a.getBoundingRect(), l = a.getLocalTransform(i); - l ? (Vm.applyTransform(e, s, l), r = r || e.clone(), r.union(e)) : (r = r || s.clone(), r.union(s)) - } - } - return r || e - }, n - }(n_); - Ox.prototype.type = "group"; - var Rx = c({x: 0, y: 0}, w_), - Ex = {style: c({x: !0, y: !0, width: !0, height: !0, sx: !0, sy: !0, sWidth: !0, sHeight: !0}, b_.style)}, - zx = function (t) { - function n() { - return null !== t && t.apply(this, arguments) || this - } - - return e(n, t), n.prototype.createStyle = function (t) { - return j(Rx, t) - }, n.prototype._getSize = function (t) { - var e = this.style, n = e[t]; - if (null != n) return n; - var i = ar(e.image) ? e.image : this.__image; - if (!i) return 0; - var r = "width" === t ? "height" : "width", o = e[r]; - return null == o ? i[t] : i[t] / i[r] * o - }, n.prototype.getWidth = function () { - return this._getSize("width") - }, n.prototype.getHeight = function () { - return this._getSize("height") - }, n.prototype.getAnimationStyleProps = function () { - return Ex - }, n.prototype.getBoundingRect = function () { - var t = this.style; - return this._rect || (this._rect = new Vm(t.x || 0, t.y || 0, this.getWidth(), this.getHeight())), this._rect - }, n - }(T_); - zx.prototype.type = "image"; - var Bx = function () { - function t() { - this.cx = 0, this.cy = 0, this.r = 0 - } - - return t - }(), Nx = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new Bx - }, n.prototype.buildPath = function (t, e, n) { - n && t.moveTo(e.cx + e.r, e.cy), t.arc(e.cx, e.cy, e.r, 0, 2 * Math.PI) - }, n - }(xx); - Nx.prototype.type = "circle"; - var Fx = Math.round, Hx = function () { - function t() { - this.x = 0, this.y = 0, this.width = 0, this.height = 0 - } - - return t - }(), Vx = {}, Gx = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new Hx - }, n.prototype.buildPath = function (t, e) { - var n, i, r, o; - if (this.subPixelOptimize) { - var a = ur(Vx, e, this.style); - n = a.x, i = a.y, r = a.width, o = a.height, a.r = e.r, e = a - } else n = e.x, i = e.y, r = e.width, o = e.height; - e.r ? sr(t, e) : t.rect(n, i, r, o) - }, n.prototype.isZeroArea = function () { - return !this.shape.width || !this.shape.height - }, n - }(xx); - Gx.prototype.type = "rect"; - var Wx = function () { - function t() { - this.cx = 0, this.cy = 0, this.rx = 0, this.ry = 0 - } - - return t - }(), Xx = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new Wx - }, n.prototype.buildPath = function (t, e) { - var n = .5522848, i = e.cx, r = e.cy, o = e.rx, a = e.ry, s = o * n, l = a * n; - t.moveTo(i - o, r), t.bezierCurveTo(i - o, r - l, i - s, r - a, i, r - a), t.bezierCurveTo(i + s, r - a, i + o, r - l, i + o, r), t.bezierCurveTo(i + o, r + l, i + s, r + a, i, r + a), t.bezierCurveTo(i - s, r + a, i - o, r + l, i - o, r), t.closePath() - }, n - }(xx); - Xx.prototype.type = "ellipse"; - var Yx = {}, Ux = function () { - function t() { - this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.percent = 1 - } - - return t - }(), qx = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultStyle = function () { - return {stroke: "#000", fill: null} - }, n.prototype.getDefaultShape = function () { - return new Ux - }, n.prototype.buildPath = function (t, e) { - var n, i, r, o; - if (this.subPixelOptimize) { - var a = lr(Yx, e, this.style); - n = a.x1, i = a.y1, r = a.x2, o = a.y2 - } else n = e.x1, i = e.y1, r = e.x2, o = e.y2; - var s = e.percent; - 0 !== s && (t.moveTo(n, i), 1 > s && (r = n * (1 - s) + r * s, o = i * (1 - s) + o * s), t.lineTo(r, o)) - }, n.prototype.pointAt = function (t) { - var e = this.shape; - return [e.x1 * (1 - t) + e.x2 * t, e.y1 * (1 - t) + e.y2 * t] - }, n - }(xx); - qx.prototype.type = "line"; - var jx = function () { - function t() { - this.points = null, this.smooth = 0, this.smoothConstraint = null - } - - return t - }(), Zx = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new jx - }, n.prototype.buildPath = function (t, e) { - dr(t, e, !0) - }, n - }(xx); - Zx.prototype.type = "polygon"; - var Kx = function () { - function t() { - this.points = null, this.percent = 1, this.smooth = 0, this.smoothConstraint = null - } - - return t - }(), $x = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultStyle = function () { - return {stroke: "#000", fill: null} - }, n.prototype.getDefaultShape = function () { - return new Kx - }, n.prototype.buildPath = function (t, e) { - dr(t, e, !1) - }, n - }(xx); - $x.prototype.type = "polyline"; - var Jx = function () { - function t(t) { - this.colorStops = t || [] - } - - return t.prototype.addColorStop = function (t, e) { - this.colorStops.push({offset: t, color: e}) - }, t - }(), Qx = function (t) { - function n(e, n, i, r, o, a) { - var s = t.call(this, o) || this; - return s.x = null == e ? 0 : e, s.y = null == n ? 0 : n, s.x2 = null == i ? 1 : i, s.y2 = null == r ? 0 : r, s.type = "linear", s.global = a || !1, s - } - - return e(n, t), n - }(Jx), tw = c({strokeFirst: !0, font: Wm, x: 0, y: 0, textAlign: "left", textBaseline: "top", miterLimit: 2}, vx), - ew = function (t) { - function n() { - return null !== t && t.apply(this, arguments) || this - } - - return e(n, t), n.prototype.hasStroke = function () { - var t = this.style, e = t.stroke; - return null != e && "none" !== e && t.lineWidth > 0 - }, n.prototype.hasFill = function () { - var t = this.style, e = t.fill; - return null != e && "none" !== e - }, n.prototype.createStyle = function (t) { - return j(tw, t) - }, n.prototype.setBoundingRect = function (t) { - this._rect = t - }, n.prototype.getBoundingRect = function () { - var t = this.style; - if (!this._rect) { - var e = t.text; - null != e ? e += "" : e = ""; - var n = En(e, t.font, t.textAlign, t.textBaseline); - if (n.x += t.x || 0, n.y += t.y || 0, this.hasStroke()) { - var i = t.lineWidth; - n.x -= i / 2, n.y -= i / 2, n.width += i, n.height += i - } - this._rect = n - } - return this._rect - }, n.initDefaultProps = function () { - var t = n.prototype; - t.dirtyRectTolerance = 10 - }(), n - }(T_); - ew.prototype.type = "tspan"; - var nw, iw = /[\s,]+/, rw = function () { - function t() { - this._defs = {}, this._root = null, this._isDefine = !1, this._isText = !1 - } - - return t.prototype.parse = function (t, e) { - e = e || {}; - var n = gr(t); - if (!n) throw new Error("Illegal svg"); - var i = new Ox; - this._root = i; - var r = n.getAttribute("viewBox") || "", o = parseFloat(n.getAttribute("width") || e.width), - a = parseFloat(n.getAttribute("height") || e.height); - isNaN(o) && (o = null), isNaN(a) && (a = null), _r(n, i, null, !0); - for (var s = n.firstChild; s;) this._parseNode(s, i), s = s.nextSibling; - var l, u; - if (r) { - var h = W(r).split(iw); - 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 != o && null != a && (u = Sr(l, o, a), !e.ignoreViewBox)) { - var c = i; - i = new Ox, i.add(c), c.scaleX = c.scaleY = u.scale, c.x = u.x, c.y = u.y - } - return e.ignoreRootClip || null == o || null == a || i.setClipPath(new Gx({ - shape: { - x: 0, - y: 0, - width: o, - height: a - } - })), {root: i, width: o, height: a, viewBoxRect: l, viewBoxTransform: u} - }, t.prototype._parseNode = function (t, e) { - var n = t.nodeName.toLowerCase(); - "defs" === n ? this._isDefine = !0 : "text" === n && (this._isText = !0); - var i; - if (this._isDefine) { - var r = ow[n]; - if (r) { - var o = r.call(this, t), a = t.getAttribute("id"); - a && (this._defs[a] = o) - } - } else { - var r = nw[n]; - r && (i = r.call(this, t, e), e.add(i)) - } - if (i) for (var s = t.firstChild; s;) 1 === s.nodeType && this._parseNode(s, i), 3 === s.nodeType && this._isText && this._parseText(s, i), s = s.nextSibling; - "defs" === n ? this._isDefine = !1 : "text" === n && (this._isText = !1) - }, t.prototype._parseText = function (t, e) { - if (1 === t.nodeType) { - var n = t.getAttribute("dx") || 0, i = t.getAttribute("dy") || 0; - this._textX += parseFloat(n), this._textY += parseFloat(i) - } - var r = new ew({style: {text: t.textContent}, x: this._textX || 0, y: this._textY || 0}); - vr(e, r), _r(t, r, this._defs); - var o = r.style, a = o.fontSize; - a && 9 > a && (o.fontSize = 9, r.scaleX *= a / 9, r.scaleY *= a / 9); - var s = (o.fontSize || o.fontFamily) && [o.fontStyle, o.fontWeight, (o.fontSize || 12) + "px", o.fontFamily || "sans-serif"].join(" "); - o.font = s; - var l = r.getBoundingRect(); - return this._textX += l.width, e.add(r), r - }, t.internalField = function () { - nw = { - g: function (t, e) { - var n = new Ox; - return vr(e, n), _r(t, n, this._defs), n - }, rect: function (t, e) { - var n = new Gx; - return vr(e, n), _r(t, n, this._defs), n.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") - }), n - }, circle: function (t, e) { - var n = new Nx; - return vr(e, n), _r(t, n, this._defs), n.setShape({ - cx: parseFloat(t.getAttribute("cx") || "0"), - cy: parseFloat(t.getAttribute("cy") || "0"), - r: parseFloat(t.getAttribute("r") || "0") - }), n - }, line: function (t, e) { - var n = new qx; - return vr(e, n), _r(t, n, this._defs), n.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") - }), n - }, ellipse: function (t, e) { - var n = new Xx; - return vr(e, n), _r(t, n, this._defs), n.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") - }), n - }, polygon: function (t, e) { - var n, i = t.getAttribute("points"); - i && (n = mr(i)); - var r = new Zx({shape: {points: n || []}}); - return vr(e, r), _r(t, r, this._defs), r - }, polyline: function (t, e) { - var n = new xx; - vr(e, n), _r(t, n, this._defs); - var i, r = t.getAttribute("points"); - r && (i = mr(r)); - var o = new $x({shape: {points: i || []}}); - return o - }, image: function (t, e) { - var n = new zx; - return vr(e, n), _r(t, n, this._defs), n.setStyle({ - image: t.getAttribute("xlink:href"), - x: +t.getAttribute("x"), - y: +t.getAttribute("y"), - width: +t.getAttribute("width"), - height: +t.getAttribute("height") - }), n - }, text: function (t, e) { - var n = t.getAttribute("x") || "0", i = t.getAttribute("y") || "0", r = t.getAttribute("dx") || "0", - o = t.getAttribute("dy") || "0"; - this._textX = parseFloat(n) + parseFloat(r), this._textY = parseFloat(i) + parseFloat(o); - var a = new Ox; - return vr(e, a), _r(t, a, this._defs), a - }, tspan: function (t, e) { - var n = t.getAttribute("x"), i = t.getAttribute("y"); - null != n && (this._textX = parseFloat(n)), null != i && (this._textY = parseFloat(i)); - var r = t.getAttribute("dx") || 0, o = t.getAttribute("dy") || 0, a = new Ox; - return vr(e, a), _r(t, a, this._defs), this._textX += r, this._textY += o, a - }, path: function (t, e) { - var n = t.getAttribute("d") || "", i = ir(n); - return vr(e, i), _r(t, i, this._defs), i - } - } - }(), t - }(), ow = { - lineargradient: function (t) { - var e = parseInt(t.getAttribute("x1") || "0", 10), n = parseInt(t.getAttribute("y1") || "0", 10), - i = parseInt(t.getAttribute("x2") || "10", 10), r = parseInt(t.getAttribute("y2") || "0", 10), - o = new Qx(e, n, i, r); - return yr(t, o), o - } - }, aw = { - 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" - }, sw = /url\(\s*#(.*?)\)/, lw = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g, - uw = /([^\s:;]+)\s*:\s*([^:;]+)/g, hw = Math.PI, cw = 2 * hw, pw = Math.sin, fw = Math.cos, dw = Math.acos, - gw = Math.atan2, yw = Math.abs, vw = Math.sqrt, mw = Math.max, _w = Math.min, xw = 1e-4, ww = function () { - function t() { - this.cx = 0, this.cy = 0, this.r0 = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0, this.cornerRadius = 0, this.innerCornerRadius = 0 - } - - return t - }(), bw = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new ww - }, n.prototype.buildPath = function (t, e) { - Ir(t, e) - }, n.prototype.isZeroArea = function () { - return this.shape.startAngle === this.shape.endAngle || this.shape.r === this.shape.r0 - }, n - }(xx); - bw.prototype.type = "sector"; - var Sw = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = "compound", e - } - - return e(n, t), n.prototype._updatePathDirty = function () { - for (var t = this.shape.paths, e = this.shapeChanged(), n = 0; n < t.length; n++) e = e || t[n].shapeChanged(); - e && this.dirtyShape() - }, n.prototype.beforeBrush = function () { - this._updatePathDirty(); - for (var t = this.shape.paths || [], e = this.getGlobalScale(), n = 0; n < t.length; n++) t[n].path || t[n].createPathProxy(), t[n].path.setScale(e[0], e[1], t[n].segmentIgnoreThreshold) - }, n.prototype.buildPath = function (t, e) { - for (var n = e.paths || [], i = 0; i < n.length; i++) n[i].buildPath(t, n[i].shape, !0) - }, n.prototype.afterBrush = function () { - for (var t = this.shape.paths || [], e = 0; e < t.length; e++) t[e].pathUpdated() - }, n.prototype.getBoundingRect = function () { - return this._updatePathDirty.call(this), xx.prototype.getBoundingRect.call(this) - }, n - }(xx), Tw = [], Mw = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.notClear = !0, e.incremental = !0, e._displayables = [], e._temporaryDisplayables = [], e._cursor = 0, e - } - - return e(n, t), n.prototype.traverse = function (t, e) { - t.call(e, this) - }, n.prototype.useStyle = function () { - this.style = {} - }, n.prototype.getCursor = function () { - return this._cursor - }, n.prototype.innerAfterBrush = function () { - this._cursor = this._displayables.length - }, n.prototype.clearDisplaybles = function () { - this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.markRedraw(), this.notClear = !1 - }, n.prototype.clearTemporalDisplayables = function () { - this._temporaryDisplayables = [] - }, n.prototype.addDisplayable = function (t, e) { - e ? this._temporaryDisplayables.push(t) : this._displayables.push(t), this.markRedraw() - }, n.prototype.addDisplayables = function (t, e) { - e = e || !1; - for (var n = 0; n < t.length; n++) this.addDisplayable(t[n], e) - }, n.prototype.getDisplayables = function () { - return this._displayables - }, n.prototype.getTemporalDisplayables = function () { - return this._temporaryDisplayables - }, n.prototype.eachPendingDisplayable = function (t) { - for (var e = this._cursor; e < this._displayables.length; e++) t && t(this._displayables[e]); - for (var e = 0; e < this._temporaryDisplayables.length; e++) t && t(this._temporaryDisplayables[e]) - }, n.prototype.update = function () { - this.updateTransform(); - for (var t = this._cursor; t < this._displayables.length; t++) { - var e = this._displayables[t]; - e.parent = this, e.update(), e.parent = null - } - for (var t = 0; t < this._temporaryDisplayables.length; t++) { - var e = this._temporaryDisplayables[t]; - e.parent = this, e.update(), e.parent = null - } - }, n.prototype.getBoundingRect = function () { - if (!this._rect) { - for (var t = new Vm(1 / 0, 1 / 0, -1 / 0, -1 / 0), e = 0; e < this._displayables.length; e++) { - var n = this._displayables[e], i = n.getBoundingRect().clone(); - n.needLocalTransform() && i.applyTransform(n.getLocalTransform(Tw)), t.union(i) - } - this._rect = t - } - return this._rect - }, n.prototype.contain = function (t, e) { - var n = this.transformCoordToLocal(t, e), i = this.getBoundingRect(); - if (i.contain(n[0], n[1])) for (var r = 0; r < this._displayables.length; r++) { - var o = this._displayables[r]; - if (o.contain(t, e)) return !0 - } - return !1 - }, n - }(T_), Cw = new wm(50), Iw = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g, Aw = function () { - function t() { - } - - return t - }(), Dw = function () { - function t(t) { - this.tokens = [], t && (this.tokens = t) - } - - return t - }(), kw = function () { - function t() { - this.width = 0, this.height = 0, this.contentWidth = 0, this.contentHeight = 0, this.outerWidth = 0, this.outerHeight = 0, this.lines = [] - } - - return t - }(), Lw = m(",&?/;] ".split(""), function (t, e) { - return t[e] = !0, t - }, {}), Pw = {fill: "#000"}, Ow = 2, Rw = { - style: c({ - fill: !0, - stroke: !0, - fillOpacity: !0, - strokeOpacity: !0, - lineWidth: !0, - fontSize: !0, - lineHeight: !0, - width: !0, - height: !0, - textShadowColor: !0, - textShadowBlur: !0, - textShadowOffsetX: !0, - textShadowOffsetY: !0, - backgroundColor: !0, - padding: !0, - borderColor: !0, - borderWidth: !0, - borderRadius: !0 - }, b_.style) - }, Ew = function (t) { - function n(e) { - var n = t.call(this) || this; - return n.type = "text", n._children = [], n._defaultStyle = Pw, n.attr(e), n - } - - return e(n, t), n.prototype.childrenRef = function () { - return this._children - }, n.prototype.update = function () { - this.styleChanged() && this._updateSubTexts(); - for (var e = 0; e < this._children.length; e++) { - var n = this._children[e]; - n.zlevel = this.zlevel, n.z = this.z, n.z2 = this.z2, n.culling = this.culling, n.cursor = this.cursor, n.invisible = this.invisible - } - var i = this.attachedTransform; - if (i) { - i.updateTransform(); - var r = i.transform; - r ? (this.transform = this.transform || [], Ve(this.transform, r)) : this.transform = null - } else t.prototype.update.call(this) - }, n.prototype.getComputedTransform = function () { - return this.__hostTarget && (this.__hostTarget.getComputedTransform(), this.__hostTarget.updateInnerText(!0)), this.attachedTransform ? this.attachedTransform.getComputedTransform() : t.prototype.getComputedTransform.call(this) - }, n.prototype._updateSubTexts = function () { - this._childCursor = 0, Wr(this.style), this.style.rich ? this._updateRichTexts() : this._updatePlainTexts(), this._children.length = this._childCursor, this.styleUpdated() - }, n.prototype.addSelfToZr = function (e) { - t.prototype.addSelfToZr.call(this, e); - for (var n = 0; n < this._children.length; n++) this._children[n].__zr = e - }, n.prototype.removeSelfFromZr = function (e) { - t.prototype.removeSelfFromZr.call(this, e); - for (var n = 0; n < this._children.length; n++) this._children[n].__zr = null - }, n.prototype.getBoundingRect = function () { - if (this.styleChanged() && this._updateSubTexts(), !this._rect) { - for (var t = new Vm(0, 0, 0, 0), e = this._children, n = [], i = null, r = 0; r < e.length; r++) { - var o = e[r], a = o.getBoundingRect(), s = o.getLocalTransform(n); - s ? (t.copy(a), t.applyTransform(s), i = i || t.clone(), i.union(t)) : (i = i || a.clone(), i.union(a)) - } - this._rect = i || t - } - return this._rect - }, n.prototype.setDefaultTextStyle = function (t) { - this._defaultStyle = t || Pw - }, n.prototype.setTextContent = function () { - throw new Error("Can't attach text on another text") - }, n.prototype._mergeStyle = function (t, e) { - if (!e) return t; - var n = e.rich, i = t.rich || n && {}; - return h(t, e), n && i ? (this._mergeRich(i, n), t.rich = i) : i && (t.rich = i), t - }, n.prototype._mergeRich = function (t, e) { - for (var n = w(e), i = 0; i < n.length; i++) { - var r = n[i]; - t[r] = t[r] || {}, h(t[r], e[r]) - } - }, n.prototype.getAnimationStyleProps = function () { - return Rw - }, n.prototype._getOrCreateChild = function (t) { - var e = this._children[this._childCursor]; - return e && e instanceof t || (e = new t), this._children[this._childCursor++] = e, e.__zr = this.__zr, e.parent = this, e - }, n.prototype._updatePlainTexts = function () { - var t = this.style, e = t.font || Wm, n = t.padding, i = jr(t), r = zr(i, t), o = Zr(t), - a = !!t.backgroundColor, s = r.outerHeight, l = r.lines, u = r.lineHeight, h = this._defaultStyle, - c = t.x || 0, p = t.y || 0, f = t.align || h.align || "left", - d = t.verticalAlign || h.verticalAlign || "top", g = c, y = Bn(p, r.contentHeight, d); - if (o || n) { - var v = r.width; - n && (v += n[1] + n[3]); - var m = zn(c, v, f), _ = Bn(p, s, d); - o && this._renderBackground(t, t, m, _, v, s) - } - y += u / 2, n && (g = qr(c, f, n), "top" === d ? y += n[0] : "bottom" === d && (y -= n[2])); - for (var x = 0, w = !1, b = (Ur("fill" in t ? t.fill : (w = !0, h.fill))), S = (Yr("stroke" in t ? t.stroke : a || h.autoStroke && !w ? null : (x = Ow, h.stroke))), T = t.textShadowBlur > 0, M = null != t.width && ("truncate" === t.overflow || "break" === t.overflow || "breakAll" === t.overflow), C = r.calculatedLineHeight, I = 0; I < l.length; I++) { - var A = this._getOrCreateChild(ew), D = A.createStyle(); - A.useStyle(D), D.text = l[I], D.x = g, D.y = y, f && (D.textAlign = f), D.textBaseline = "middle", D.opacity = t.opacity, D.strokeFirst = !0, T && (D.shadowBlur = t.textShadowBlur || 0, D.shadowColor = t.textShadowColor || "transparent", D.shadowOffsetX = t.textShadowOffsetX || 0, D.shadowOffsetY = t.textShadowOffsetY || 0), S && (D.stroke = S, D.lineWidth = t.lineWidth || x, D.lineDash = t.lineDash, D.lineDashOffset = t.lineDashOffset || 0), b && (D.fill = b), D.font = e, y += u, M && A.setBoundingRect(new Vm(zn(D.x, t.width, D.textAlign), Bn(D.y, C, D.textBaseline), t.width, C)) - } - }, n.prototype._updateRichTexts = function () { - var t = this.style, e = jr(t), n = Br(e, t), i = n.width, r = n.outerWidth, o = n.outerHeight, - a = t.padding, s = t.x || 0, l = t.y || 0, u = this._defaultStyle, h = t.align || u.align, - c = t.verticalAlign || u.verticalAlign, p = zn(s, r, h), f = Bn(l, o, c), d = p, g = f; - a && (d += a[3], g += a[0]); - var y = d + i; - Zr(t) && this._renderBackground(t, t, p, f, r, o); - for (var v = !!t.backgroundColor, m = 0; m < n.lines.length; m++) { - for (var _ = n.lines[m], x = _.tokens, w = x.length, b = _.lineHeight, S = _.width, T = 0, M = d, C = y, I = w - 1, A = void 0; w > T && (A = x[T], !A.align || "left" === A.align);) this._placeToken(A, t, b, g, M, "left", v), S -= A.width, M += A.width, T++; - for (; I >= 0 && (A = x[I], "right" === A.align);) this._placeToken(A, t, b, g, C, "right", v), S -= A.width, C -= A.width, I--; - for (M += (i - (M - d) - (y - C) - S) / 2; I >= T;) A = x[T], this._placeToken(A, t, b, g, M + A.width / 2, "center", v), M += A.width, T++; - g += b - } - }, n.prototype._placeToken = function (t, e, n, i, r, o, a) { - var s = e.rich[t.styleName] || {}; - s.text = t.text; - var l = t.verticalAlign, u = i + n / 2; - "top" === l ? u = i + t.height / 2 : "bottom" === l && (u = i + n - t.height / 2); - var h = !t.isLineHolder && Zr(s); - h && this._renderBackground(s, e, "right" === o ? r - t.width : "center" === o ? r - t.width / 2 : r, u - t.height / 2, t.width, t.height); - var c = !!s.backgroundColor, p = t.textPadding; - p && (r = qr(r, o, p), u -= t.height / 2 - p[0] - t.innerHeight / 2); - var f = this._getOrCreateChild(ew), d = f.createStyle(); - f.useStyle(d); - var g = this._defaultStyle, y = !1, v = 0, - m = Yr("fill" in s ? s.fill : "fill" in e ? e.fill : (y = !0, g.fill)), - _ = Yr("stroke" in s ? s.stroke : "stroke" in e ? e.stroke : c || a || g.autoStroke && !y ? null : (v = Ow, g.stroke)), - x = s.textShadowBlur > 0 || e.textShadowBlur > 0; - d.text = t.text, d.x = r, d.y = u, x && (d.shadowBlur = s.textShadowBlur || e.textShadowBlur || 0, d.shadowColor = s.textShadowColor || e.textShadowColor || "transparent", d.shadowOffsetX = s.textShadowOffsetX || e.textShadowOffsetX || 0, d.shadowOffsetY = s.textShadowOffsetY || e.textShadowOffsetY || 0), d.textAlign = o, d.textBaseline = "middle", d.font = t.font || Wm, d.opacity = F(s.opacity, e.opacity, 1), _ && (d.lineWidth = F(s.lineWidth, e.lineWidth, v), d.lineDash = N(s.lineDash, e.lineDash), d.lineDashOffset = e.lineDashOffset || 0, d.stroke = _), m && (d.fill = m); - var w = t.contentWidth, b = t.contentHeight; - f.setBoundingRect(new Vm(zn(d.x, w, d.textAlign), Bn(d.y, b, d.textBaseline), w, b)) - }, n.prototype._renderBackground = function (t, e, n, i, r, o) { - var a, s, l = t.backgroundColor, u = t.borderWidth, h = t.borderColor, c = C(l), p = t.borderRadius, - f = this; - if (c || u && h) { - a = this._getOrCreateChild(Gx), a.useStyle(a.createStyle()), a.style.fill = null; - var d = a.shape; - d.x = n, d.y = i, d.width = r, d.height = o, d.r = p, a.dirtyShape() - } - if (c) { - var g = a.style; - g.fill = l || null, g.fillOpacity = N(t.fillOpacity, 1) - } else if (l && l.image) { - s = this._getOrCreateChild(zx), s.onload = function () { - f.dirtyStyle() - }; - var y = s.style; - y.image = l.image, y.x = n, y.y = i, y.width = r, y.height = o - } - if (u && h) { - var g = a.style; - g.lineWidth = u, g.stroke = h, g.strokeOpacity = N(t.strokeOpacity, 1), g.lineDash = t.borderDash, g.lineDashOffset = t.borderDashOffset || 0, a.strokeContainThreshold = 0, a.hasFill() && a.hasStroke() && (g.strokeFirst = !0, g.lineWidth *= 2) - } - var v = (a || s).style; - v.shadowBlur = t.shadowBlur || 0, v.shadowColor = t.shadowColor || "transparent", v.shadowOffsetX = t.shadowOffsetX || 0, v.shadowOffsetY = t.shadowOffsetY || 0, v.opacity = F(t.opacity, e.opacity, 1) - }, n.makeFont = function (t) { - var e = ""; - if (t.fontSize || t.fontFamily || t.fontWeight) { - var n = ""; - n = "string" != typeof t.fontSize || -1 === t.fontSize.indexOf("px") && -1 === t.fontSize.indexOf("rem") && -1 === t.fontSize.indexOf("em") ? isNaN(+t.fontSize) ? "12px" : t.fontSize + "px" : t.fontSize, e = [t.fontStyle, t.fontWeight, n, t.fontFamily || "sans-serif"].join(" ") - } - return e && W(e) || t.textFont || t.font - }, n - }(T_), zw = {left: !0, right: 1, center: 1}, Bw = {top: 1, bottom: 1, middle: 1}, Nw = function () { - function t() { - this.cx = 0, this.cy = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0 - } - - return t - }(), Fw = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultStyle = function () { - return {stroke: "#000", fill: null} - }, n.prototype.getDefaultShape = function () { - return new Nw - }, n.prototype.buildPath = function (t, e) { - var n = e.cx, i = e.cy, r = Math.max(e.r, 0), o = e.startAngle, a = e.endAngle, s = e.clockwise, - l = Math.cos(o), u = Math.sin(o); - t.moveTo(l * r + n, u * r + i), t.arc(n, i, r, o, a, !s) - }, n - }(xx); - Fw.prototype.type = "arc"; - var Hw = [], Vw = function () { - function t() { - this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.cpx1 = 0, this.cpy1 = 0, this.percent = 1 - } - - return t - }(), Gw = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultStyle = function () { - return {stroke: "#000", fill: null} - }, n.prototype.getDefaultShape = function () { - return new Vw - }, n.prototype.buildPath = function (t, e) { - var n = e.x1, i = e.y1, r = e.x2, o = e.y2, a = e.cpx1, s = e.cpy1, l = e.cpx2, u = e.cpy2, h = e.percent; - 0 !== h && (t.moveTo(n, i), null == l || null == u ? (1 > h && (Mi(n, a, r, h, Hw), a = Hw[1], r = Hw[2], Mi(i, s, o, h, Hw), s = Hw[1], o = Hw[2]), t.quadraticCurveTo(a, s, r, o)) : (1 > h && (mi(n, a, l, r, h, Hw), a = Hw[1], l = Hw[2], r = Hw[3], mi(i, s, u, o, h, Hw), s = Hw[1], u = Hw[2], o = Hw[3]), t.bezierCurveTo(a, s, l, u, r, o))) - }, n.prototype.pointAt = function (t) { - return Kr(this.shape, t, !1) - }, n.prototype.tangentAt = function (t) { - var e = Kr(this.shape, t, !0); - return he(e, e) - }, n - }(xx); - Gw.prototype.type = "bezier-curve"; - var Ww = function () { - function t() { - this.cx = 0, this.cy = 0, this.width = 0, this.height = 0 - } - - return t - }(), Xw = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new Ww - }, n.prototype.buildPath = function (t, e) { - var n = e.cx, i = e.cy, r = e.width, o = e.height; - t.moveTo(n, i + r), t.bezierCurveTo(n + r, i + r, n + 3 * r / 2, i - r / 3, n, i - o), t.bezierCurveTo(n - 3 * r / 2, i - r / 3, n - r, i + r, n, i + r), t.closePath() - }, n - }(xx); - Xw.prototype.type = "droplet"; - var Yw = function () { - function t() { - this.cx = 0, this.cy = 0, this.width = 0, this.height = 0 - } - - return t - }(), Uw = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new Yw - }, n.prototype.buildPath = function (t, e) { - var n = e.cx, i = e.cy, r = e.width, o = e.height; - t.moveTo(n, i), t.bezierCurveTo(n + r / 2, i - 2 * o / 3, n + 2 * r, i + o / 3, n, i + o), t.bezierCurveTo(n - 2 * r, i + o / 3, n - r / 2, i - 2 * o / 3, n, i) - }, n - }(xx); - Uw.prototype.type = "heart"; - var qw = Math.PI, jw = Math.sin, Zw = Math.cos, Kw = function () { - function t() { - this.x = 0, this.y = 0, this.r = 0, this.n = 0 - } - - return t - }(), $w = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new Kw - }, n.prototype.buildPath = function (t, e) { - var n = e.n; - if (n && !(2 > n)) { - var i = e.x, r = e.y, o = e.r, a = 2 * qw / n, s = -qw / 2; - t.moveTo(i + o * Zw(s), r + o * jw(s)); - for (var l = 0, u = n - 1; u > l; l++) s += a, t.lineTo(i + o * Zw(s), r + o * jw(s)); - t.closePath() - } - }, n - }(xx); - $w.prototype.type = "isogon"; - var Jw = function () { - function t() { - this.cx = 0, this.cy = 0, this.r = 0, this.r0 = 0 - } - - return t - }(), Qw = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new Jw - }, n.prototype.buildPath = function (t, e) { - var n = e.cx, i = e.cy, r = 2 * Math.PI; - t.moveTo(n + e.r, i), t.arc(n, i, e.r, 0, r, !1), t.moveTo(n + e.r0, i), t.arc(n, i, e.r0, 0, r, !0) - }, n - }(xx); - Qw.prototype.type = "ring"; - var tb = Math.sin, eb = Math.cos, nb = Math.PI / 180, ib = function () { - function t() { - this.cx = 0, this.cy = 0, this.r = [], this.k = 0, this.n = 1 - } - - return t - }(), rb = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultStyle = function () { - return {stroke: "#000", fill: null} - }, n.prototype.getDefaultShape = function () { - return new ib - }, n.prototype.buildPath = function (t, e) { - var n, i, r, o = e.r, a = e.k, s = e.n, l = e.cx, u = e.cy; - t.moveTo(l, u); - for (var h = 0, c = o.length; c > h; h++) { - r = o[h]; - for (var p = 0; 360 * s >= p; p++) n = r * tb(a / s * p % 360 * nb) * eb(p * nb) + l, i = r * tb(a / s * p % 360 * nb) * tb(p * nb) + u, t.lineTo(n, i) - } - }, n - }(xx); - rb.prototype.type = "rose"; - var ob = Math.PI, ab = Math.cos, sb = Math.sin, lb = function () { - function t() { - this.cx = 0, this.cy = 0, this.n = 3, this.r = 0 - } - - return t - }(), ub = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new lb - }, n.prototype.buildPath = function (t, e) { - var n = e.n; - if (n && !(2 > n)) { - var i = e.cx, r = e.cy, o = e.r, a = e.r0; - null == a && (a = n > 4 ? o * ab(2 * ob / n) / ab(ob / n) : o / 3); - var s = ob / n, l = -ob / 2, u = i + o * ab(l), h = r + o * sb(l); - l += s, t.moveTo(u, h); - for (var c = 0, p = 2 * n - 1, f = void 0; p > c; c++) f = c % 2 === 0 ? a : o, t.lineTo(i + f * ab(l), r + f * sb(l)), l += s; - t.closePath() - } - }, n - }(xx); - ub.prototype.type = "star"; - var hb = Math.cos, cb = Math.sin, pb = function () { - function t() { - this.cx = 0, this.cy = 0, this.r = 0, this.r0 = 0, this.d = 0, this.location = "out" - } - - return t - }(), fb = function (t) { - function n(e) { - return t.call(this, e) || this - } - - return e(n, t), n.prototype.getDefaultStyle = function () { - return {stroke: "#000", fill: null} - }, n.prototype.getDefaultShape = function () { - return new pb - }, n.prototype.buildPath = function (t, e) { - var n, i, r, o, a = e.r, s = e.r0, l = e.d, u = e.cx, h = e.cy, c = "out" === e.location ? 1 : -1; - if (!(e.location && s >= a)) { - var p, f = 0, d = 1; - n = (a + c * s) * hb(0) - c * l * hb(0) + u, i = (a + c * s) * cb(0) - l * cb(0) + h, t.moveTo(n, i); - do f++; while (s * f % (a + c * s) !== 0); - do p = Math.PI / 180 * d, r = (a + c * s) * hb(p) - c * l * hb((a / s + c) * p) + u, o = (a + c * s) * cb(p) - l * cb((a / s + c) * p) + h, t.lineTo(r, o), d++; while (s * f / (a + c * s) * 360 >= d) - } - }, n - }(xx); - fb.prototype.type = "trochoid"; - var db = function (t) { - function n(e, n, i, r, o) { - var a = t.call(this, r) || this; - return a.x = null == e ? .5 : e, a.y = null == n ? .5 : n, a.r = null == i ? .5 : i, a.type = "radial", a.global = o || !1, a - } - - return e(n, t), n - }(Jx), gb = [0, 0], yb = [0, 0], vb = new Pm, mb = new Pm, _b = function () { - function t(t, e) { - this._corners = [], this._axes = [], this._origin = [0, 0]; - for (var n = 0; 4 > n; n++) this._corners[n] = new Pm; - for (var n = 0; 2 > n; n++) this._axes[n] = new Pm; - t && this.fromBoundingRect(t, e) - } - - return t.prototype.fromBoundingRect = function (t, e) { - var n = this._corners, i = this._axes, r = t.x, o = t.y, a = r + t.width, s = o + t.height; - if (n[0].set(r, o), n[1].set(a, o), n[2].set(a, s), n[3].set(r, s), e) for (var l = 0; 4 > l; l++) n[l].transform(e); - Pm.sub(i[0], n[1], n[0]), Pm.sub(i[1], n[3], n[0]), i[0].normalize(), i[1].normalize(); - for (var l = 0; 2 > l; l++) this._origin[l] = i[l].dot(n[0]) - }, t.prototype.intersect = function (t, e) { - var n = !0, i = !e; - return vb.set(1 / 0, 1 / 0), mb.set(0, 0), !this._intersectCheckOneSide(this, t, vb, mb, i, 1) && (n = !1, i) ? n : !this._intersectCheckOneSide(t, this, vb, mb, i, -1) && (n = !1, i) ? n : (i || Pm.copy(e, n ? vb : mb), n) - }, t.prototype._intersectCheckOneSide = function (t, e, n, i, r, o) { - for (var a = !0, s = 0; 2 > s; s++) { - var l = this._axes[s]; - if (this._getProjMinMaxOnAxis(s, t._corners, gb), this._getProjMinMaxOnAxis(s, e._corners, yb), gb[1] < yb[0] || gb[0] > yb[1]) { - if (a = !1, r) return a; - var u = Math.abs(yb[0] - gb[1]), h = Math.abs(gb[0] - yb[1]); - Math.min(u, h) > i.len() && (h > u ? Pm.scale(i, l, -u * o) : Pm.scale(i, l, h * o)) - } else if (n) { - var u = Math.abs(yb[0] - gb[1]), h = Math.abs(gb[0] - yb[1]); - Math.min(u, h) < n.len() && (h > u ? Pm.scale(n, l, u * o) : Pm.scale(n, l, -h * o)) - } - } - return a - }, t.prototype._getProjMinMaxOnAxis = function (t, e, n) { - for (var i = this._axes[t], r = this._origin, o = e[0].dot(i) + r[t], a = o, s = o, l = 1; l < e.length; l++) { - var u = e[l].dot(i) + r[t]; - a = Math.min(u, a), s = Math.max(u, s) - } - n[0] = a, n[1] = s - }, t - }(), xb = (function () { - function t(t) { - var e = this.dom = document.createElement("div"); - e.className = "ec-debug-dirty-rect", t = Object.assign({}, t), Object.assign(t, { - backgroundColor: "rgba(0, 0, 255, 0.2)", - border: "1px solid #00f" - }), e.style.cssText = "\nposition: absolute;\nopacity: 0;\ntransition: opacity 0.5s linear;\npointer-events: none;\n"; - for (var n in t) t.hasOwnProperty(n) && (e.style[n] = t[n]) - } - - return t.prototype.update = function (t) { - var e = this.dom.style; - e.width = t.width + "px", e.height = t.height + "px", e.left = t.x + "px", e.top = t.y + "px" - }, t.prototype.hide = function () { - this.dom.style.opacity = "0" - }, t.prototype.show = function (t) { - var e = this; - clearTimeout(this._hideTimeout), this.dom.style.opacity = "1", this._hideTimeout = setTimeout(function () { - e.hide() - }, t || 1e3) - }, t - }(), !wv.canvasSupported), wb = {}, bb = {}, Sb = function () { - function t(t, e, n) { - var i = this; - this._sleepAfterStill = 10, this._stillFrameAccum = 0, this._needsRefresh = !0, this._needsRefreshHover = !0, this._darkMode = !1, n = n || {}, this.dom = e, this.id = t; - var r = new s_, o = n.renderer; - if (xb) { - if (!wb.vml) throw new Error("You need to require 'zrender/vml/vml' to support IE8"); - o = "vml" - } else o || (o = "canvas"); - if (!wb[o]) throw new Error("Renderer '" + o + "' is not imported. Please import it first."); - n.useDirtyRect = null == n.useDirtyRect ? !1 : n.useDirtyRect; - var a = new wb[o](e, r, n, t); - this.storage = r, this.painter = a; - var s = wv.node || wv.worker ? null : new __(a.getViewportRoot(), a.root); - this.handler = new am(r, a, s, a.root), this.animation = new u_({ - stage: { - update: function () { - return i._flush(!0) - } - } - }), this.animation.start() - } - - return t.prototype.add = function (t) { - t && (this.storage.addRoot(t), t.addSelfToZr(this), this.refresh()) - }, t.prototype.remove = function (t) { - t && (this.storage.delRoot(t), t.removeSelfFromZr(this), this.refresh()) - }, t.prototype.configLayer = function (t, e) { - this.painter.configLayer && this.painter.configLayer(t, e), this.refresh() - }, t.prototype.setBackgroundColor = function (t) { - this.painter.setBackgroundColor && this.painter.setBackgroundColor(t), this.refresh(), this._backgroundColor = t, this._darkMode = Jr(t) - }, t.prototype.getBackgroundColor = function () { - return this._backgroundColor - }, t.prototype.setDarkMode = function (t) { - this._darkMode = t - }, t.prototype.isDarkMode = function () { - return this._darkMode - }, t.prototype.refreshImmediately = function (t) { - t || this.animation.update(!0), this._needsRefresh = !1, this.painter.refresh(), this._needsRefresh = !1 - }, t.prototype.refresh = function () { - this._needsRefresh = !0, this.animation.start() - }, t.prototype.flush = function () { - this._flush(!1) - }, t.prototype._flush = function (t) { - var e, n = (new Date).getTime(); - this._needsRefresh && (e = !0, this.refreshImmediately(t)), this._needsRefreshHover && (e = !0, this.refreshHoverImmediately()); - var i = (new Date).getTime(); - e ? (this._stillFrameAccum = 0, this.trigger("rendered", {elapsedTime: i - n})) : this._sleepAfterStill > 0 && (this._stillFrameAccum++, this._stillFrameAccum > this._sleepAfterStill && this.animation.stop()) - }, t.prototype.setSleepAfterStill = function (t) { - this._sleepAfterStill = t - }, t.prototype.wakeUp = function () { - this.animation.start(), this._stillFrameAccum = 0 - }, t.prototype.addHover = function () { - }, t.prototype.removeHover = function () { - }, t.prototype.clearHover = function () { - }, t.prototype.refreshHover = function () { - this._needsRefreshHover = !0 - }, t.prototype.refreshHoverImmediately = function () { - this._needsRefreshHover = !1, this.painter.refreshHover && "canvas" === this.painter.getType() && this.painter.refreshHover() - }, t.prototype.resize = function (t) { - t = t || {}, this.painter.resize(t.width, t.height), this.handler.resize() - }, t.prototype.clearAnimation = function () { - this.animation.clear() - }, t.prototype.getWidth = function () { - return this.painter.getWidth() - }, t.prototype.getHeight = function () { - return this.painter.getHeight() - }, t.prototype.pathToImage = function (t, e) { - return this.painter.pathToImage ? this.painter.pathToImage(t, e) : void 0 - }, t.prototype.setCursorStyle = function (t) { - this.handler.setCursorStyle(t) - }, t.prototype.findHover = function (t, e) { - return this.handler.findHover(t, e) - }, t.prototype.on = function (t, e, n) { - return this.handler.on(t, e, n), this - }, t.prototype.off = function (t, e) { - this.handler.off(t, e) - }, t.prototype.trigger = function (t, e) { - this.handler.trigger(t, e) - }, t.prototype.clear = function () { - for (var t = this.storage.getRoots(), e = 0; e < t.length; e++) t[e] instanceof Ox && t[e].removeSelfFromZr(this); - this.storage.delAllRoots(), this.painter.clear() - }, t.prototype.dispose = function () { - this.animation.stop(), this.clear(), this.storage.dispose(), this.painter.dispose(), this.handler.dispose(), this.animation = this.storage = this.painter = this.handler = null, $r(this.id) - }, t - }(), Tb = "5.0.1", Mb = (Object.freeze || Object)({ - init: Qr, - dispose: to, - disposeAll: eo, - getInstance: no, - registerPainter: io, - version: Tb - }), Cb = 1e-4, Ib = 9007199254740991, - Ab = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/, - Db = (Object.freeze || Object)({ - linearMap: oo, - parsePercent: ao, - round: so, - asc: lo, - getPrecision: uo, - getPrecisionSafe: ho, - getPixelPrecision: co, - getPercentWithPrecision: po, - MAX_SAFE_INTEGER: Ib, - remRadian: fo, - isRadianAroundZero: go, - parseDate: yo, - quantity: vo, - quantityExponent: mo, - nice: _o, - quantile: xo, - reformIntervals: wo, - numericToNumber: bo, - isNumeric: So, - getRandomIdBase: To, - getGreatestCommonDividor: Mo, - getLeastCommonMultiple: Co - }), kb = "series\x00", Lb = "\x00_ec_\x00", - Pb = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "rich", "tag", "color", "textBorderColor", "textBorderWidth", "width", "height", "lineHeight", "align", "verticalAlign", "baseline", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY", "backgroundColor", "borderColor", "borderWidth", "borderRadius", "padding"], - Ob = To(), Rb = {useDefault: !0, enableAll: !1, enableNone: !1}, Eb = ".", - zb = "___EC__COMPONENT__CONTAINER___", Bb = "___EC__EXTENDED_CLASS___", Nb = Math.round(10 * Math.random()), - Fb = [["fill", "color"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["opacity"], ["shadowColor"]], - Hb = ha(Fb), Vb = function () { - function t() { - } - - return t.prototype.getAreaStyle = function (t, e) { - return Hb(this, t, e) - }, t - }(), Gb = qo(), Wb = 1, Xb = {}, Yb = qo(), Ub = 0, qb = 1, jb = 2, Zb = ["emphasis", "blur", "select"], - Kb = ["normal", "emphasis", "blur", "select"], $b = 10, Jb = 9, Qb = "highlight", tS = "downplay", - eS = "select", nS = "unselect", iS = "toggleSelect", rS = new wm(100), oS = ["emphasis", "blur", "select"], - aS = {itemStyle: "getItemStyle", lineStyle: "getLineStyle", areaStyle: "getAreaStyle"}, sS = Math.max, - lS = Math.min, uS = {}, hS = rr, cS = or, pS = hr; - es("circle", Nx), es("ellipse", Xx), es("sector", bw), es("ring", Qw), es("polygon", Zx), es("polyline", $x), es("rect", Gx), es("line", qx), es("bezierCurve", Gw), es("arc", Fw); - var fS = (Object.freeze || Object)({ - extendShape: Qa, - extendPath: ts, - registerShape: es, - getShapeClass: ns, - makePath: is, - makeImage: rs, - mergePath: cS, - resizePath: as, - subPixelOptimizeLine: ss, - subPixelOptimizeRect: ls, - subPixelOptimize: pS, - updateProps: hs, - initProps: cs, - removeElement: ps, - removeElementWithFadeOut: ds, - isElementRemoved: gs, - getTransform: ys, - applyTransform: vs, - transformDirection: ms, - groupTransition: ws, - clipPointsByRect: bs, - clipRectByRect: Ss, - createIcon: Ts, - linePolygonIntersect: Ms, - lineLineIntersect: Cs, - Group: Ox, - Image: zx, - Text: Ew, - Circle: Nx, - Ellipse: Xx, - Sector: bw, - Ring: Qw, - Polygon: Zx, - Polyline: $x, - Rect: Gx, - Line: qx, - BezierCurve: Gw, - Arc: Fw, - IncrementalDisplayable: Mw, - CompoundPath: Sw, - LinearGradient: Qx, - RadialGradient: db, - BoundingRect: Vm, - OrientedBoundingRect: _b, - Point: Pm, - Path: xx - }), dS = {}, - gS = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY"], - yS = ["align", "lineHeight", "width", "height", "tag", "verticalAlign"], - vS = ["padding", "borderWidth", "borderRadius", "borderDashOffset", "backgroundColor", "borderColor", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"], - mS = qo(), _S = ["textStyle", "color"], xS = new Ew, wS = function () { - function t() { - } - - return t.prototype.getTextColor = function (t) { - var e = this.ecModel; - return this.getShallow("color") || (!t && e ? e.get(_S) : null) - }, t.prototype.getFont = function () { - return Ns({ - fontStyle: this.getShallow("fontStyle"), - fontWeight: this.getShallow("fontWeight"), - fontSize: this.getShallow("fontSize"), - fontFamily: this.getShallow("fontFamily") - }, this.ecModel) - }, t.prototype.getTextRect = function (t) { - return xS.useStyle({ - text: t, - fontStyle: this.getShallow("fontStyle"), - fontWeight: this.getShallow("fontWeight"), - fontSize: this.getShallow("fontSize"), - fontFamily: this.getShallow("fontFamily"), - verticalAlign: this.getShallow("verticalAlign") || this.getShallow("baseline"), - padding: this.getShallow("padding"), - lineHeight: this.getShallow("lineHeight"), - rich: this.getShallow("rich") - }), xS.update(), xS.getBoundingRect() - }, t - }(), - bS = [["lineWidth", "width"], ["stroke", "color"], ["opacity"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"], ["lineDash", "type"], ["lineDashOffset", "dashOffset"], ["lineCap", "cap"], ["lineJoin", "join"], ["miterLimit"]], - SS = ha(bS), TS = function () { - function t() { - } - - return t.prototype.getLineStyle = function (t) { - return SS(this, t) - }, t - }(), - MS = [["fill", "color"], ["stroke", "borderColor"], ["lineWidth", "borderWidth"], ["opacity"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"], ["lineDash", "borderType"], ["lineDashOffset", "borderDashOffset"], ["lineCap", "borderCap"], ["lineJoin", "borderJoin"], ["miterLimit", "borderMiterLimit"]], - CS = ha(MS), IS = function () { - function t() { - } - - return t.prototype.getItemStyle = function (t, e) { - return CS(this, t, e) - }, t - }(), AS = function () { - function t(t, e, n) { - this.parentModel = e, this.ecModel = n, this.option = t - } - - return t.prototype.init = function () { - for (var t = [], e = 3; e < arguments.length; e++) t[e - 3] = arguments[e] - }, t.prototype.mergeOption = function (t) { - l(this.option, t, !0) - }, t.prototype.get = function (t, e) { - return null == t ? this.option : this._doGet(this.parsePath(t), !e && this.parentModel) - }, t.prototype.getShallow = function (t, e) { - var n = this.option, i = null == n ? n : n[t]; - if (null == i && !e) { - var r = this.parentModel; - r && (i = r.getShallow(t)) - } - return i - }, t.prototype.getModel = function (e, n) { - var i = null != e, r = i ? this.parsePath(e) : null, o = i ? this._doGet(r) : this.option; - return n = n || this.parentModel && this.parentModel.getModel(this.resolveParentPath(r)), new t(o, n, this.ecModel) - }, t.prototype.isEmpty = function () { - return null == this.option - }, t.prototype.restoreData = function () { - }, t.prototype.clone = function () { - var t = this.constructor; - return new t(s(this.option)) - }, t.prototype.parsePath = function (t) { - return "string" == typeof t ? t.split(".") : t - }, t.prototype.resolveParentPath = function (t) { - return t - }, t.prototype.isAnimationEnabled = function () { - if (!wv.node && this.option) { - if (null != this.option.animation) return !!this.option.animation; - if (this.parentModel) return this.parentModel.isAnimationEnabled() - } - }, t.prototype._doGet = function (t, e) { - var n = this.option; - if (!t) return n; - for (var i = 0; i < t.length && (!t[i] || (n = n && "object" == typeof n ? n[t[i]] : null, null != n)); i++) ; - return null == n && e && (n = e._doGet(this.resolveParentPath(t), e.parentModel)), n - }, t - }(); - ia(AS), aa(AS), d(AS, TS), d(AS, IS), d(AS, Vb), d(AS, wS); - var DS = Math.round(10 * Math.random()), kS = { - time: { - month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthAbbr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - dayOfWeekAbbr: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] - }, - legend: {selector: {all: "All", inverse: "Inv"}}, - toolbox: { - brush: { - title: { - rect: "Box Select", - polygon: "Lasso Select", - lineX: "Horizontally Select", - lineY: "Vertically Select", - keep: "Keep Selections", - clear: "Clear Selections" - } - }, - dataView: {title: "Data View", lang: ["Data View", "Close", "Refresh"]}, - dataZoom: {title: {zoom: "Zoom", back: "Zoom Reset"}}, - magicType: { - title: { - line: "Switch to Line Chart", - bar: "Switch to Bar Chart", - stack: "Stack", - tiled: "Tile" - } - }, - restore: {title: "Restore"}, - saveAsImage: {title: "Save as Image", lang: ["Right Click to Save Image"]} - }, - series: { - typeNames: { - pie: "Pie chart", - bar: "Bar chart", - line: "Line chart", - scatter: "Scatter plot", - effectScatter: "Ripple scatter plot", - radar: "Radar chart", - tree: "Tree", - treemap: "Treemap", - boxplot: "Boxplot", - candlestick: "Candlestick", - k: "K line chart", - heatmap: "Heat map", - map: "Map", - parallel: "Parallel coordinate map", - lines: "Line graph", - graph: "Relationship graph", - sankey: "Sankey diagram", - funnel: "Funnel chart", - gauge: "Guage", - pictorialBar: "Pictorial bar", - themeRiver: "Theme River Map", - sunburst: "Sunburst" - } - }, - aria: { - general: {withTitle: 'This is a chart about "{title}"', withoutTitle: "This is a chart"}, - series: { - single: { - prefix: "", - withName: " with type {seriesType} named {seriesName}.", - withoutName: " with type {seriesType}." - }, - multiple: { - prefix: ". It consists of {seriesCount} series count.", - withName: " The {seriesId} series is a {seriesType} representing {seriesName}.", - withoutName: " The {seriesId} series is a {seriesType}.", - separator: {middle: "", end: ""} - } - }, - data: { - allData: "The data is as follows: ", - partialData: "The first {displayCnt} items are: ", - withName: "the data for {name} is {value}", - withoutName: "{value}", - separator: {middle: ", ", end: ". "} - } - } - }, LS = { - time: { - month: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], - monthAbbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], - dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], - dayOfWeekAbbr: ["日", "一", "二", "三", "四", "五", "六"] - }, - legend: {selector: {all: "全选", inverse: "反选"}}, - 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: ""} - } - } - }, PS = "ZH", OS = "EN", RS = OS, ES = {}, zS = {}, BS = wv.domSupported ? function () { - var t = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase(); - return t.indexOf(PS) > -1 ? PS : RS - }() : RS; - Ys(OS, kS), Ys(PS, LS); - var NS = 1e3, FS = 60 * NS, HS = 60 * FS, VS = 24 * HS, GS = 365 * VS, WS = { - year: "{yyyy}", - month: "{MMM}", - day: "{d}", - hour: "{HH}:{mm}", - minute: "{HH}:{mm}", - second: "{HH}:{mm}:{ss}", - millisecond: "{hh}:{mm}:{ss} {SSS}", - none: "{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}" - }, XS = "{yyyy}-{MM}-{dd}", YS = { - year: "{yyyy}", - month: "{yyyy}-{MM}", - day: XS, - hour: XS + " " + WS.hour, - minute: XS + " " + WS.minute, - second: XS + " " + WS.second, - millisecond: WS.none - }, US = ["year", "month", "day", "hour", "minute", "second", "millisecond"], - qS = ["year", "half-year", "quarter", "month", "week", "half-week", "day", "half-day", "quarter-day", "hour", "minute", "second", "millisecond"], - jS = V, ZS = /([&<>"'])/g, KS = {"&": "&", "<": "<", ">": ">", '"': """, "'": "'"}, - $S = ["a", "b", "c", "d", "e", "f", "g"], JS = function (t, e) { - return "{" + t + (null == e ? "" : e) + "}" - }, QS = (Object.freeze || Object)({ - addCommas: ml, - toCamelCase: _l, - normalizeCssArray: jS, - encodeHTML: xl, - makeValueReadable: wl, - formatTpl: bl, - formatTplSimple: Sl, - getTooltipMarker: Tl, - formatTime: Ml, - capitalFirst: Cl, - convertToColorString: Il, - windowOpen: Al, - truncateText: Pr, - getTextRect: vl - }), tT = y, eT = ["left", "right", "top", "bottom", "width", "height"], - nT = [["width", "left", "right"], ["height", "top", "bottom"]], iT = Dl, - rT = (S(Dl, "vertical"), S(Dl, "horizontal"), qo()), oT = function (t) { - function n(e, n, i) { - var r = t.call(this, e, n, i) || this; - return r.uid = Vs("ec_cpt_model"), r - } - - return e(n, t), n.prototype.init = function (t, e, n) { - this.mergeDefaultAndTheme(t, n) - }, n.prototype.mergeDefaultAndTheme = function (t, e) { - var n = Ll(this), i = n ? Ol(t) : {}, r = e.getTheme(); - l(t, r.get(this.mainType)), l(t, this.getDefaultOption()), n && Pl(t, i, n) - }, n.prototype.mergeOption = function (t) { - l(this.option, t, !0); - var e = Ll(this); - e && Pl(this.option, t, e) - }, n.prototype.optionUpdated = function () { - }, n.prototype.getDefaultOption = function () { - var t = this.constructor; - if (!na(t)) return t.defaultOption; - var e = rT(this); - if (!e.defaultOption) { - for (var n = [], i = t; i;) { - var r = i.prototype.defaultOption; - r && n.push(r), i = i.superClass - } - for (var o = {}, a = n.length - 1; a >= 0; a--) o = l(o, n[a], !0); - e.defaultOption = o - } - return e.defaultOption - }, n.prototype.getReferringComponents = function (t, e) { - var n = t + "Index", i = t + "Id"; - return Zo(this.ecModel, t, {index: this.get(n, !0), id: this.get(i, !0)}, e) - }, n.prototype.getBoxLayoutParams = function () { - var t = this; - return { - left: t.get("left"), - top: t.get("top"), - right: t.get("right"), - bottom: t.get("bottom"), - width: t.get("width"), - height: t.get("height") - } - }, n.protoInitialize = function () { - var t = n.prototype; - t.type = "component", t.id = "", t.name = "", t.mainType = "", t.subType = "", t.componentIndex = 0 - }(), n - }(AS); - oa(oT, AS), ua(oT, {registerWhenExtend: !0}), Gs(oT), Ws(oT, El); - var aT = ""; - "undefined" != typeof navigator && (aT = navigator.platform || ""); - var sT, lT, uT = "rgba(0, 0, 0, 0.2)", hT = { - darkMode: "auto", - color: ["#5470c6", "#91cc75", "#fac858", "#ee6666", "#73c0de", "#3ba272", "#fc8452", "#9a60b4", "#ea7ccc"], - gradientColor: ["#f6efa6", "#d88273", "#bf444c"], - aria: { - decal: { - decals: [{ - color: uT, - dashArrayX: [1, 0], - dashArrayY: [2, 5], - symbolSize: 1, - rotation: Math.PI / 6 - }, { - color: uT, - symbol: "circle", - dashArrayX: [[8, 8], [0, 8, 8, 0]], - dashArrayY: [6, 0], - symbolSize: .8 - }, { - color: uT, - dashArrayX: [1, 0], - dashArrayY: [4, 3], - dashLineOffset: 0, - rotation: -Math.PI / 4 - }, {color: uT, dashArrayX: [[6, 6], [0, 6, 6, 0]], dashArrayY: [6, 0]}, { - color: uT, - dashArrayX: [[1, 0], [1, 6]], - dashArrayY: [1, 0, 6, 0], - rotation: Math.PI / 4 - }, { - color: uT, - symbol: "triangle", - dashArrayX: [[9, 9], [0, 9, 9, 0]], - dashArrayY: [7, 2], - symbolSize: .75 - }] - } - }, - textStyle: { - fontFamily: aT.match(/^Win/) ? "Microsoft YaHei" : "sans-serif", - fontSize: 12, - fontStyle: "normal", - fontWeight: "normal" - }, - blendMode: null, - stateAnimation: {duration: 300, easing: "cubicOut"}, - animation: "auto", - animationDuration: 1e3, - animationDurationUpdate: 500, - animationEasing: "cubicInOut", - animationEasingUpdate: "cubicInOut", - animationThreshold: 2e3, - progressiveThreshold: 3e3, - progressive: 400, - hoverLayerThreshold: 3e3, - useUTC: !1 - }, cT = U(["tooltip", "label", "itemName", "itemId", "seriesName"]), pT = "original", fT = "arrayRows", - dT = "objectRows", gT = "keyedColumns", yT = "typedArray", vT = "unknown", mT = "column", _T = "row", - xT = {Must: 1, Might: 2, Not: 3}, wT = qo(), bT = U(), ST = qo(), TT = (qo(), function () { - function t() { - } - - return t.prototype.getColorFromPalette = function (t, e, n) { - var i = Ao(this.get("color", !0)), r = this.get("colorLayer", !0); - return Ul(this, ST, i, r, t, e, n) - }, t.prototype.clearColorPalette = function () { - ql(this, ST) - }, t - }()), MT = "\x00_ec_inner", CT = function (t) { - function n() { - return null !== t && t.apply(this, arguments) || this - } - - return e(n, t), n.prototype.init = function (t, e, n, i, r, o) { - i = i || {}, this.option = null, this._theme = new AS(i), this._locale = new AS(r), this._optionManager = o - }, n.prototype.setOption = function (t, e, n) { - G(!(MT in t), "please use chart.getOption()"); - var i = Jl(e); - this._optionManager.setOption(t, n, i), this._resetOption(null, i) - }, n.prototype.resetOption = function (t, e) { - return this._resetOption(t, Jl(e)) - }, n.prototype._resetOption = function (t, e) { - var n = !1, i = this._optionManager; - if (!t || "recreate" === t) { - var r = i.mountOption("recreate" === t); - this.option && "recreate" !== t ? (this.restoreData(), this._mergeOption(r, e)) : lT(this, r), n = !0 - } - if (("timeline" === t || "media" === t) && this.restoreData(), !t || "recreate" === t || "timeline" === t) { - var o = i.getTimelineOption(this); - o && (n = !0, this._mergeOption(o, e)) - } - if (!t || "recreate" === t || "media" === t) { - var a = i.getMediaOption(this); - a.length && y(a, function (t) { - n = !0, this._mergeOption(t, e) - }, this) - } - return n - }, n.prototype.mergeOption = function (t) { - this._mergeOption(t, null) - }, n.prototype._mergeOption = function (t, e) { - function n(e) { - var n = Xl(this, e, Ao(t[e])), a = r.get(e), - s = a ? c && c.get(e) ? "replaceMerge" : "normalMerge" : "replaceAll", l = Po(a, n, s); - Xo(l, e, oT), i[e] = null, r.set(e, null), o.set(e, 0); - var u = [], p = [], f = 0; - y(l, function (t, n) { - var i = t.existing, r = t.newOption; - if (r) { - var o = oT.getClass(e, t.keyInfo.subType, !0); - if (i && i.constructor === o) i.name = t.keyInfo.name, i.mergeOption(r, this), i.optionUpdated(r, !1); else { - var a = h({componentIndex: n}, t.keyInfo); - i = new o(r, this, this, a), h(i, a), t.brandNew && (i.__requireNewView = !0), i.init(r, this, this), i.optionUpdated(null, !0) - } - } else i && (i.mergeOption({}, this), i.optionUpdated({}, !1)); - i ? (u.push(i.option), p.push(i), f++) : (u.push(void 0), p.push(void 0)) - }, this), i[e] = u, r.set(e, p), o.set(e, f), "series" === e && sT(this) - } - - var i = this.option, r = this._componentsMap, o = this._componentsCount, a = [], u = U(), - c = e && e.replaceMergeMainTypeMap; - zl(this), y(t, function (t, e) { - null != t && (oT.hasClass(e) ? e && (a.push(e), u.set(e, !0)) : i[e] = null == i[e] ? s(t) : l(i[e], t, !0)) - }), c && c.each(function (t, e) { - oT.hasClass(e) && !u.get(e) && (a.push(e), u.set(e, !0)) - }), oT.topologicalTravel(a, oT.getAllClassMainTypes(), n, this), this._seriesIndices || sT(this) - }, n.prototype.getOption = function () { - var t = s(this.option); - return y(t, function (e, n) { - if (oT.hasClass(n)) { - for (var i = Ao(e), r = i.length, o = !1, a = r - 1; a >= 0; a--) i[a] && !Wo(i[a]) ? o = !0 : (i[a] = null, !o && r--); - i.length = r, t[n] = i - } - }), delete t[MT], t - }, n.prototype.getTheme = function () { - return this._theme - }, n.prototype.getLocaleModel = function () { - return this._locale - }, n.prototype.getLocale = function (t) { - var e = this.getLocaleModel(); - return e.get(t) - }, n.prototype.setUpdatePayload = function (t) { - this._payload = t - }, n.prototype.getUpdatePayload = function () { - return this._payload - }, n.prototype.getComponent = function (t, e) { - var n = this._componentsMap.get(t); - if (n) { - var i = n[e || 0]; - if (i) return i; - if (null == e) for (var r = 0; r < n.length; r++) if (n[r]) return n[r] - } - }, n.prototype.queryComponents = function (t) { - var e = t.mainType; - if (!e) return []; - var n = t.index, i = t.id, r = t.name, o = this._componentsMap.get(e); - if (!o || !o.length) return []; - var a; - return null != n ? (a = [], y(Ao(n), function (t) { - o[t] && a.push(o[t]) - })) : a = null != i ? Kl("id", i, o) : null != r ? Kl("name", r, o) : _(o, function (t) { - return !!t - }), $l(a, t) - }, n.prototype.findComponents = function (t) { - function e(t) { - var e = r + "Index", n = r + "Id", i = r + "Name"; - return !t || null == t[e] && null == t[n] && null == t[i] ? null : { - mainType: r, - index: t[e], - id: t[n], - name: t[i] - } - } - - function n(e) { - return t.filter ? _(e, t.filter) : e - } - - var i = t.query, r = t.mainType, o = e(i), - a = o ? this.queryComponents(o) : _(this._componentsMap.get(r), function (t) { - return !!t - }); - return n($l(a, t)) - }, n.prototype.eachComponent = function (t, e, n) { - var i = this._componentsMap; - if (M(t)) { - var r = e, o = t; - i.each(function (t, e) { - for (var n = 0; t && n < t.length; n++) { - var i = t[n]; - i && o.call(r, e, i, i.componentIndex) - } - }) - } else for (var a = C(t) ? i.get(t) : D(t) ? this.findComponents(t) : null, s = 0; a && s < a.length; s++) { - var l = a[s]; - l && e.call(n, l, l.componentIndex) - } - }, n.prototype.getSeriesByName = function (t) { - var e = Vo(t, null); - return _(this._componentsMap.get("series"), function (t) { - return !!t && null != e && t.name === e - }) - }, n.prototype.getSeriesByIndex = function (t) { - return this._componentsMap.get("series")[t] - }, n.prototype.getSeriesByType = function (t) { - return _(this._componentsMap.get("series"), function (e) { - return !!e && e.subType === t - }) - }, n.prototype.getSeries = function () { - return _(this._componentsMap.get("series").slice(), function (t) { - return !!t - }) - }, n.prototype.getSeriesCount = function () { - return this._componentsCount.get("series") - }, n.prototype.eachSeries = function (t, e) { - y(this._seriesIndices, function (n) { - var i = this._componentsMap.get("series")[n]; - t.call(e, i, n) - }, this) - }, n.prototype.eachRawSeries = function (t, e) { - y(this._componentsMap.get("series"), function (n) { - n && t.call(e, n, n.componentIndex) - }) - }, n.prototype.eachSeriesByType = function (t, e, n) { - y(this._seriesIndices, function (i) { - var r = this._componentsMap.get("series")[i]; - r.subType === t && e.call(n, r, i) - }, this) - }, n.prototype.eachRawSeriesByType = function (t, e, n) { - return y(this.getSeriesByType(t), e, n) - }, n.prototype.isSeriesFiltered = function (t) { - return null == this._seriesIndicesMap.get(t.componentIndex) - }, n.prototype.getCurrentSeriesIndices = function () { - return (this._seriesIndices || []).slice() - }, n.prototype.filterSeries = function (t, e) { - var n = []; - y(this._seriesIndices, function (i) { - var r = this._componentsMap.get("series")[i]; - t.call(e, r, i) && n.push(i) - }, this), this._seriesIndices = n, this._seriesIndicesMap = U(n) - }, n.prototype.restoreData = function (t) { - sT(this); - var e = this._componentsMap, n = []; - e.each(function (t, e) { - oT.hasClass(e) && n.push(e) - }), oT.topologicalTravel(n, oT.getAllClassMainTypes(), function (n) { - y(e.get(n), function (e) { - !e || "series" === n && jl(e, t) || e.restoreData() - }) - }) - }, n.internalField = function () { - sT = function (t) { - var e = t._seriesIndices = []; - y(t._componentsMap.get("series"), function (t) { - t && e.push(t.componentIndex) - }), t._seriesIndicesMap = U(e) - }, lT = function (t, e) { - t.option = {}, t.option[MT] = 1, t._componentsMap = U({series: []}), t._componentsCount = U(); - var n = e.aria; - D(n) && null == n.enabled && (n.enabled = !0), Zl(e, t._theme.option), l(e, hT, !1), t._mergeOption(e, null) - } - }(), n - }(AS); - d(CT, TT); - var IT, AT, DT, kT, LT, - PT = ["getDom", "getZr", "getWidth", "getHeight", "getDevicePixelRatio", "dispatchAction", "isDisposed", "on", "off", "getDataURL", "getConnectedDataURL", "getOption", "getId", "updateLabelLayout"], - OT = function () { - function t(t) { - y(PT, function (e) { - this[e] = Ev(t[e], t) - }, this) - } - - return t - }(), RT = {}, ET = function () { - function t() { - this._coordinateSystems = [] - } - - return t.prototype.create = function (t, e) { - var n = []; - y(RT, function (i) { - var r = i.create(t, e); - n = n.concat(r || []) - }), this._coordinateSystems = n - }, t.prototype.update = function (t, e) { - y(this._coordinateSystems, function (n) { - n.update && n.update(t, e) - }) - }, t.prototype.getCoordinateSystems = function () { - return this._coordinateSystems.slice() - }, t.register = function (t, e) { - RT[t] = e - }, t.get = function (t) { - return RT[t] - }, t - }(), zT = /^(min|max)?(.+)$/, BT = function () { - function t(t) { - this._timelineOptions = [], this._mediaList = [], this._currentMediaIndices = [], this._api = t - } - - return t.prototype.setOption = function (t, e) { - t && (y(Ao(t.series), function (t) { - t && t.data && L(t.data) && X(t.data) - }), y(Ao(t.dataset), function (t) { - t && t.source && L(t.source) && X(t.source) - })), t = s(t); - var n = this._optionBackup, i = Ql(t, e, !n); - this._newBaseOption = i.baseOption, n ? (i.timelineOptions.length && (n.timelineOptions = i.timelineOptions), i.mediaList.length && (n.mediaList = i.mediaList), i.mediaDefault && (n.mediaDefault = i.mediaDefault)) : this._optionBackup = i - }, t.prototype.mountOption = function (t) { - var e = this._optionBackup; - return this._timelineOptions = e.timelineOptions, this._mediaList = e.mediaList, this._mediaDefault = e.mediaDefault, this._currentMediaIndices = [], s(t ? e.baseOption : this._newBaseOption) - }, t.prototype.getTimelineOption = function (t) { - var e, n = this._timelineOptions; - if (n.length) { - var i = t.getComponent("timeline"); - i && (e = s(n[i.getCurrentIndex()])) - } - return e - }, t.prototype.getMediaOption = function () { - var t = this._api.getWidth(), e = this._api.getHeight(), n = this._mediaList, i = this._mediaDefault, - r = [], o = []; - if (!n.length && !i) return o; - for (var a = 0, l = n.length; l > a; a++) tu(n[a].query, t, e) && r.push(a); - return !r.length && i && (r = [-1]), r.length && !nu(r, this._currentMediaIndices) && (o = v(r, function (t) { - return s(-1 === t ? i.option : n[t].option) - })), this._currentMediaIndices = r, o - }, t - }(), NT = y, FT = D, HT = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"], - VT = [["x", "left"], ["y", "top"], ["x2", "right"], ["y2", "bottom"]], - GT = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"], - WT = [["borderRadius", "barBorderRadius"], ["borderColor", "barBorderColor"], ["borderWidth", "barBorderWidth"]], - XT = function () { - function t(t) { - this.data = t.data || (t.sourceFormat === gT ? {} : []), this.sourceFormat = t.sourceFormat || vT, this.seriesLayoutBy = t.seriesLayoutBy || mT, this.startIndex = t.startIndex || 0, this.dimensionsDefine = t.dimensionsDefine, this.dimensionsDetectedCount = t.dimensionsDetectedCount, this.encodeDefine = t.encodeDefine, this.metaRawOption = t.metaRawOption - } - - return t - }(), YT = function () { - function t(t, e) { - var n = Su(t) ? t : Mu(t); - this._source = n; - var i = this._data = n.data; - n.sourceFormat === yT && (this._offset = 0, this._dimSize = e, this._data = i), LT(this, i, n) - } - - return t.prototype.getSource = function () { - return this._source - }, t.prototype.count = function () { - return 0 - }, t.prototype.getItem = function () { - }, t.prototype.appendData = function () { - }, t.prototype.clean = function () { - }, t.protoInitialize = function () { - var e = t.prototype; - e.pure = !1, e.persistent = !0 - }(), t.internalField = function () { - function t(t) { - for (var e = 0; e < t.length; e++) this._data.push(t[e]) - } - - var e; - LT = function (t, e, o) { - var a = o.sourceFormat, s = o.seriesLayoutBy, l = o.startIndex, u = o.dimensionsDefine, - c = kT[zu(a, s)]; - if (h(t, c), a === yT) t.getItem = n, t.count = r, t.fillStorage = i; else { - var p = Ou(a, s); - t.getItem = Ev(p, null, e, l, u); - var f = Ru(a, s); - t.count = Ev(f, null, e, l, u) - } - }; - var n = function (t, e) { - t -= this._offset, e = e || []; - for (var n = this._data, i = this._dimSize, r = i * t, o = 0; i > o; o++) e[o] = n[r + o]; - return e - }, i = function (t, e, n, i) { - for (var r = this._data, o = this._dimSize, a = 0; o > a; a++) { - for (var s = i[a], l = null == s[0] ? 1 / 0 : s[0], u = null == s[1] ? -1 / 0 : s[1], h = e - t, c = n[a], p = 0; h > p; p++) { - var f = r[(t + p) * o + a]; - c[t + p] = f, l > f && (l = f), f > u && (u = f) - } - s[0] = l, s[1] = u - } - }, r = function () { - return this._data ? this._data.length / this._dimSize : 0 - }; - e = {}, e[fT + "_" + mT] = {pure: !0, appendData: t}, e[fT + "_" + _T] = { - pure: !0, - appendData: function () { - throw new Error('Do not support appendData when set seriesLayoutBy: "row".') - } - }, e[dT] = {pure: !0, appendData: t}, e[gT] = { - pure: !0, appendData: function (t) { - var e = this._data; - y(t, function (t, n) { - for (var i = e[n] || (e[n] = []), r = 0; r < (t || []).length; r++) i.push(t[r]) - }) - } - }, e[pT] = {appendData: t}, e[yT] = { - persistent: !1, pure: !0, appendData: function (t) { - this._data = t - }, clean: function () { - this._offset += this.count(), this._data = null - } - }, kT = e - }(), t - }(), UT = function (t, e, n, i) { - return t[i] - }, qT = (IT = {}, IT[fT + "_" + mT] = function (t, e, n, i) { - return t[i + e] - }, IT[fT + "_" + _T] = function (t, e, n, i) { - i += e; - for (var r = [], o = t, a = 0; a < o.length; a++) { - var s = o[a]; - r.push(s ? s[i] : null) - } - return r - }, IT[dT] = UT, IT[gT] = function (t, e, n, i) { - for (var r = [], o = 0; o < n.length; o++) { - var a = n[o].name, s = t[a]; - r.push(s ? s[i] : null) - } - return r - }, IT[pT] = UT, IT), jT = function (t) { - return t.length - }, ZT = (AT = {}, AT[fT + "_" + mT] = function (t, e) { - return Math.max(0, t.length - e) - }, AT[fT + "_" + _T] = function (t, e) { - var n = t[0]; - return n ? Math.max(0, n.length - e) : 0 - }, AT[dT] = jT, AT[gT] = function (t, e, n) { - var i = n[0].name, r = t[i]; - return r ? r.length : 0 - }, AT[pT] = jT, AT), KT = function (t, e) { - return null != e ? t[e] : t - }, $T = (DT = {}, DT[fT] = KT, DT[dT] = function (t, e, n) { - return null != e ? t[n] : t - }, DT[gT] = KT, DT[pT] = function (t, e) { - var n = ko(t); - return null != e && n instanceof Array ? n[e] : n - }, DT[yT] = KT, DT), JT = /\{@(.+?)\}/g, QT = function () { - function t() { - } - - return t.prototype.getDataParams = function (t, e) { - var n = this.getData(e), i = this.getRawValue(t, e), r = n.getRawIndex(t), o = n.getName(t), - a = n.getRawDataItem(t), s = n.getItemVisual(t, "style"), - l = s && s[n.getItemVisual(t, "drawType") || "fill"], u = s && s.stroke, h = this.mainType, - c = "series" === h, p = n.userOutput; - return { - componentType: h, - componentSubType: this.subType, - componentIndex: this.componentIndex, - seriesType: c ? this.subType : null, - seriesIndex: this.seriesIndex, - seriesId: c ? this.id : null, - seriesName: c ? this.name : null, - name: o, - dataIndex: r, - data: a, - dataType: e, - value: i, - color: l, - borderColor: u, - dimensionNames: p ? p.dimensionNames : null, - encode: p ? p.encode : null, - $vars: ["seriesName", "name", "value"] - } - }, t.prototype.getFormattedLabel = function (t, e, n, i, r, o) { - e = e || "normal"; - var a = this.getData(n), s = this.getDataParams(t, n); - if (o && h(s, o), null != i && s.value instanceof Array && (s.value = s.value[i]), !r) { - var l = a.getItemModel(t); - r = l.get("normal" === e ? ["label", "formatter"] : [e, "label", "formatter"]) - } - if ("function" == typeof r) return s.status = e, s.dimensionIndex = i, r(s); - if ("string" == typeof r) { - var u = bl(r, s); - return u.replace(JT, function (e, n) { - var i = n.length; - return "[" === n.charAt(0) && "]" === n.charAt(i - 1) && (n = +n.slice(1, i - 1)), Bu(a, t, n) - }) - } - }, t.prototype.getRawValue = function (t, e) { - return Bu(this.getData(e), t) - }, t.prototype.formatTooltip = function () { - }, t - }(), tM = function () { - function t(t) { - t = t || {}, this._reset = t.reset, this._plan = t.plan, this._count = t.count, this._onDirty = t.onDirty, this._dirty = !0 - } - - return t.prototype.perform = function (t) { - function e(t) { - return !(t >= 1) && (t = 1), t - } - - var n = this._upstream, i = t && t.skip; - if (this._dirty && n) { - var r = this.context; - r.data = r.outputData = n.context.outputData - } - this.__pipeline && (this.__pipeline.currentTask = this); - var o; - this._plan && !i && (o = this._plan(this.context)); - var a = e(this._modBy), s = this._modDataCount || 0, l = e(t && t.modBy), u = t && t.modDataCount || 0; - (a !== l || s !== u) && (o = "reset"); - var h; - (this._dirty || "reset" === o) && (this._dirty = !1, h = this._doReset(i)), this._modBy = l, this._modDataCount = u; - var c = t && t.step; - if (this._dueEnd = n ? n._outputDueEnd : this._count ? this._count(this.context) : 1 / 0, this._progress) { - var p = this._dueIndex, f = Math.min(null != c ? this._dueIndex + c : 1 / 0, this._dueEnd); - if (!i && (h || f > p)) { - var d = this._progress; - if (T(d)) for (var g = 0; g < d.length; g++) this._doProgress(d[g], p, f, l, u); else this._doProgress(d, p, f, l, u) - } - this._dueIndex = f; - var y = null != this._settedOutputEnd ? this._settedOutputEnd : f; - this._outputDueEnd = y - } else this._dueIndex = this._outputDueEnd = null != this._settedOutputEnd ? this._settedOutputEnd : this._dueEnd; - return this.unfinished() - }, t.prototype.dirty = function () { - this._dirty = !0, this._onDirty && this._onDirty(this.context) - }, t.prototype._doProgress = function (t, e, n, i, r) { - eM.reset(e, n, i, r), this._callingProgress = t, this._callingProgress({ - start: e, - end: n, - count: n - e, - next: eM.next - }, this.context) - }, t.prototype._doReset = function (t) { - this._dueIndex = this._outputDueEnd = this._dueEnd = 0, this._settedOutputEnd = null; - var e, n; - !t && this._reset && (e = this._reset(this.context), e && e.progress && (n = e.forceFirstProgress, e = e.progress), T(e) && !e.length && (e = null)), this._progress = e, this._modBy = this._modDataCount = null; - var i = this._downstream; - return i && i.dirty(), n - }, t.prototype.unfinished = function () { - return this._progress && this._dueIndex < this._dueEnd - }, t.prototype.pipe = function (t) { - (this._downstream !== t || this._dirty) && (this._downstream = t, t._upstream = this, t.dirty()) - }, t.prototype.dispose = function () { - this._disposed || (this._upstream && (this._upstream._downstream = null), this._downstream && (this._downstream._upstream = null), this._dirty = !1, this._disposed = !0) - }, t.prototype.getUpstream = function () { - return this._upstream - }, t.prototype.getDownstream = function () { - return this._downstream - }, t.prototype.setOutputEnd = function (t) { - this._outputDueEnd = this._settedOutputEnd = t - }, t - }(), eM = function () { - function t() { - return n > i ? i++ : null - } - - function e() { - var t = i % a * r + Math.ceil(i / a), e = i >= n ? null : o > t ? t : i; - return i++, e - } - - var n, i, r, o, a, s = { - reset: function (l, u, h, c) { - i = l, n = u, r = h, o = c, a = Math.ceil(o / r), s.next = r > 1 && o > 0 ? e : t - } - }; - return s - }(), nM = (U({ - number: function (t) { - return parseFloat(t) - }, time: function (t) { - return +yo(t) - }, trim: function (t) { - return "string" == typeof t ? W(t) : t - } - }), { - lt: function (t, e) { - return e > t - }, lte: function (t, e) { - return e >= t - }, gt: function (t, e) { - return t > e - }, gte: function (t, e) { - return t >= e - } - }), iM = (function () { - function t(t, e) { - if ("number" != typeof e) { - var n = ""; - Io(n) - } - this._opFn = nM[t], this._rvalFloat = bo(e) - } - - return t.prototype.evaluate = function (t) { - return "number" == typeof t ? this._opFn(t, this._rvalFloat) : this._opFn(bo(t), this._rvalFloat) - }, t - }(), function () { - function t(t, e) { - var n = "desc" === t; - this._resultLT = n ? 1 : -1, null == e && (e = n ? "min" : "max"), this._incomparable = "min" === e ? -1 / 0 : 1 / 0 - } - - return t.prototype.evaluate = function (t, e) { - var n = typeof t, i = typeof e, r = "number" === n ? t : bo(t), o = "number" === i ? e : bo(e), - a = isNaN(r), s = isNaN(o); - if (a && (r = this._incomparable), s && (o = this._incomparable), a && s) { - var l = "string" === n, u = "string" === i; - l && (r = u ? t : 0), u && (o = l ? e : 0) - } - return o > r ? this._resultLT : r > o ? -this._resultLT : 0 - }, t - }()), rM = (function () { - function t(t, e) { - this._rval = e, this._isEQ = t, this._rvalTypeof = typeof e, this._rvalFloat = bo(e) - } - - return t.prototype.evaluate = function (t) { - var e = t === this._rval; - if (!e) { - var n = typeof t; - n === this._rvalTypeof || "number" !== n && "number" !== this._rvalTypeof || (e = bo(t) === this._rvalFloat) - } - return this._isEQ ? e : !e - }, t - }(), function () { - function t() { - } - - return t.prototype.getRawData = function () { - throw new Error("not supported") - }, t.prototype.getRawDataItem = function () { - throw new Error("not supported") - }, t.prototype.cloneRawData = function () { - }, t.prototype.getDimensionInfo = function () { - }, t.prototype.cloneAllDimensionInfo = function () { - }, t.prototype.count = function () { - }, t.prototype.retrieveValue = function () { - }, t.prototype.retrieveValueFromItem = function () { - }, t.prototype.convertValue = function (t, e) { - return Hu(t, e) - }, t - }()), oM = U(), aM = function () { - function t(t) { - this._sourceList = [], this._upstreamSignList = [], this._versionSignBase = 0, this._sourceHost = t - } - - return t.prototype.dirty = function () { - this._setLocalSource([], []) - }, t.prototype._setLocalSource = function (t, e) { - this._sourceList = t, this._upstreamSignList = e, this._versionSignBase++, this._versionSignBase > 9e10 && (this._versionSignBase = 0) - }, t.prototype._getVersionSign = function () { - return this._sourceHost.uid + "_" + this._versionSignBase - }, t.prototype.prepareSource = function () { - this._isDirty() && this._createSource() - }, t.prototype._createSource = function () { - this._setLocalSource([], []); - var t, e, n = this._sourceHost, i = this._getUpstreamSourceManagers(), r = !!i.length; - if (Ku(n)) { - var o = n, a = void 0, s = void 0, l = void 0; - if (r) { - var u = i[0]; - u.prepareSource(), l = u.getSource(), a = l.data, s = l.sourceFormat, e = [u._getVersionSign()] - } else a = o.get("data", !0), s = L(a) ? yT : pT, e = []; - var h = Bl(l, this._getSourceMetaRawOption()); - t = [Tu(a, h, s, o.get("encode", !0))] - } else { - var c = n; - if (r) { - var p = this._applyTransform(i); - t = p.sourceList, e = p.upstreamSignList - } else { - var f = c.get("source", !0); - t = [Tu(f, this._getSourceMetaRawOption(), null, null)], e = [] - } - } - this._setLocalSource(t, e) - }, t.prototype._applyTransform = function (t) { - var e = this._sourceHost, n = e.get("transform", !0), i = e.get("fromTransformResult", !0); - if (null != i) { - var r = ""; - 1 !== t.length && $u(r) - } - var o, a = [], s = []; - return y(t, function (t) { - t.prepareSource(); - var e = t.getSource(i || 0), n = ""; - null == i || e || $u(n), a.push(e), s.push(t._getVersionSign()) - }), n ? o = qu(n, a, {datasetIndex: e.componentIndex}) : null != i && (o = [Cu(a[0])]), { - sourceList: o, - upstreamSignList: s - } - }, t.prototype._isDirty = function () { - var t = this._sourceList; - if (!t.length) return !0; - for (var e = this._getUpstreamSourceManagers(), n = 0; n < e.length; n++) { - var i = e[n]; - if (i._isDirty() || this._upstreamSignList[n] !== i._getVersionSign()) return !0 - } - }, t.prototype.getSource = function (t) { - return this._sourceList[t || 0] - }, t.prototype._getUpstreamSourceManagers = function () { - var t = this._sourceHost; - if (Ku(t)) { - var e = Hl(t); - return e ? [e.getSourceManager()] : [] - } - return v(Vl(t), function (t) { - return t.getSourceManager() - }) - }, t.prototype._getSourceMetaRawOption = function () { - var t, e, n, i = this._sourceHost; - if (Ku(i)) t = i.get("seriesLayoutBy", !0), e = i.get("sourceHeader", !0), n = i.get("dimensions", !0); else if (!this._getUpstreamSourceManagers().length) { - var r = i; - t = r.get("seriesLayoutBy", !0), e = r.get("sourceHeader", !0), n = r.get("dimensions", !0) - } - return {seriesLayoutBy: t, sourceHeader: e, dimensions: n} - }, t - }(), sM = "font-size:12px;color:#6e7079", lM = {fontSize: 12, fill: "#6e7079"}, - uM = "font-size:14px;color:#464646;font-weight:900", hM = {fontSize: 14, fill: "#464646", fontWeight: 900}, - cM = "line-height:1", pM = [0, 10, 20, 30], fM = ["", "\n", "\n\n", "\n\n\n"], dM = { - section: { - planLayout: function (t) { - var e = t.blocks.length, n = e > 1 || e > 0 && !t.noHeader, i = 0; - y(t.blocks, function (t) { - Qu(t).planLayout(t); - var e = t.__gapLevelBetweenSubBlocks; - e >= i && (i = e + (!n || e && ("section" !== t.type || t.noHeader) ? 0 : 1)) - }), t.__gapLevelBetweenSubBlocks = i - }, build: function (t, e, n) { - var i = e.noHeader, r = nh(e), o = th(t, e, i ? n : r.html); - if (i) return o; - var a = wl(e.header, "ordinal", t.useUTC); - return "richText" === t.renderMode ? ah(t, a) + r.richText + o : ih('
' + xl(a) + "
" + o, n) - } - }, nameValue: { - planLayout: function (t) { - t.__gapLevelBetweenSubBlocks = 0 - }, build: function (t, e, n) { - var i = t.renderMode, r = e.noName, o = e.noValue, a = !e.markerType, s = e.name, l = e.value, - u = t.useUTC; - if (!r || !o) { - var h = a ? "" : t.markupStyleCreator.makeTooltipMarker(e.markerType, e.markerColor || "#333", i), - c = r ? "" : wl(s, "ordinal", u), p = e.valueType, f = o ? [] : T(l) ? v(l, function (t, e) { - return wl(t, T(p) ? p[e] : p, u) - }) : [wl(l, T(p) ? p[0] : p, u)], d = !a || !r, g = !a && r; - return "richText" === i ? (a ? "" : h) + (r ? "" : ah(t, c)) + (o ? "" : sh(t, f, d, g)) : ih((a ? "" : h) + (r ? "" : rh(c, !a)) + (o ? "" : oh(f, d, g)), n) - } - } - } - }, gM = function () { - function t() { - this.richTextStyles = {}, this._nextStyleNameId = To() - } - - return t.prototype._generateStyleName = function () { - return "__EC_aUTo_" + this._nextStyleNameId++ - }, t.prototype.makeTooltipMarker = function (t, e, n) { - var i = "richText" === n ? this._generateStyleName() : null, - r = Tl({color: e, type: t, renderMode: n, markerId: i}); - return C(r) ? r : (this.richTextStyles[i] = r.style, r.content) - }, t.prototype.wrapRichTextStyle = function (t, e) { - var n = {}; - T(e) ? y(e, function (t) { - return h(n, t) - }) : h(n, e); - var i = this._generateStyleName(); - return this.richTextStyles[i] = n, "{" + i + "|" + t + "}" - }, t - }(), yM = qo(), vM = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e._selectedDataIndicesMap = {}, e - } - - return e(n, t), n.prototype.init = function (t, e, n) { - this.seriesIndex = this.componentIndex, this.dataTask = Fu({ - count: gh, - reset: yh - }), this.dataTask.context = {model: this}, this.mergeDefaultAndTheme(t, n); - var i = yM(this).sourceManager = new aM(this); - i.prepareSource(); - var r = this.getInitialData(t, n); - mh(r, this), this.dataTask.context.data = r, yM(this).dataBeforeProcessed = r, fh(this), this._initSelectedMapFromData(r) - }, n.prototype.mergeDefaultAndTheme = function (t, e) { - var n = Ll(this), i = n ? Ol(t) : {}, r = this.subType; - oT.hasClass(r) && (r += "Series"), l(t, e.getTheme().get(this.subType)), l(t, this.getDefaultOption()), Do(t, "label", ["show"]), this.fillDataTextStyle(t.data), n && Pl(t, i, n) - }, n.prototype.mergeOption = function (t, e) { - t = l(this.option, t, !0), this.fillDataTextStyle(t.data); - var n = Ll(this); - n && Pl(this.option, t, n); - var i = yM(this).sourceManager; - i.dirty(), i.prepareSource(); - var r = this.getInitialData(t, e); - mh(r, this), this.dataTask.dirty(), this.dataTask.context.data = r, yM(this).dataBeforeProcessed = r, fh(this), this._initSelectedMapFromData(r) - }, n.prototype.fillDataTextStyle = function (t) { - if (t && !L(t)) for (var e = ["show"], n = 0; n < t.length; n++) t[n] && t[n].label && Do(t[n], "label", e) - }, n.prototype.getInitialData = function () { - }, n.prototype.appendData = function (t) { - var e = this.getRawData(); - e.appendData(t.data) - }, n.prototype.getData = function (t) { - var e = xh(this); - if (e) { - var n = e.context.data; - return null == t ? n : n.getLinkedData(t) - } - return yM(this).data - }, n.prototype.getAllData = function () { - var t = this.getData(); - return t && t.getLinkedDataAll ? t.getLinkedDataAll() : [{data: t}] - }, n.prototype.setData = function (t) { - var e = xh(this); - if (e) { - var n = e.context; - n.outputData = t, e !== this.dataTask && (n.data = t) - } - yM(this).data = t - }, n.prototype.getSource = function () { - return yM(this).sourceManager.getSource() - }, n.prototype.getRawData = function () { - return yM(this).dataBeforeProcessed - }, n.prototype.getBaseAxis = function () { - var t = this.coordinateSystem; - return t && t.getBaseAxis && t.getBaseAxis() - }, n.prototype.formatTooltip = function (t, e) { - return hh({series: this, dataIndex: t, multipleSeries: e}) - }, n.prototype.isAnimationEnabled = function () { - if (wv.node) return !1; - var t = this.getShallow("animation"); - return t && this.getData().count() > this.getShallow("animationThreshold") && (t = !1), !!t - }, n.prototype.restoreData = function () { - this.dataTask.dirty() - }, n.prototype.getColorFromPalette = function (t, e, n) { - var i = this.ecModel, r = TT.prototype.getColorFromPalette.call(this, t, e, n); - return r || (r = i.getColorFromPalette(t, e, n)), r - }, n.prototype.coordDimToDataDim = function (t) { - return this.getRawData().mapDimensionsAll(t) - }, n.prototype.getProgressive = function () { - return this.get("progressive") - }, n.prototype.getProgressiveThreshold = function () { - return this.get("progressiveThreshold") - }, n.prototype.select = function (t, e) { - this._innerSelect(this.getData(e), t) - }, n.prototype.unselect = function (t, e) { - var n = this.option.selectedMap; - if (n) for (var i = this.getData(e), r = 0; r < t.length; r++) { - var o = t[r], a = ph(i, o); - n[a] = !1, this._selectedDataIndicesMap[a] = -1 - } - }, n.prototype.toggleSelect = function (t, e) { - for (var n = [], i = 0; i < t.length; i++) n[0] = t[i], this.isSelected(t[i], e) ? this.unselect(n, e) : this.select(n, e) - }, n.prototype.getSelectedDataIndices = function () { - for (var t = this._selectedDataIndicesMap, e = w(t), n = [], i = 0; i < e.length; i++) { - var r = t[e[i]]; - r >= 0 && n.push(r) - } - return n - }, n.prototype.isSelected = function (t, e) { - var n = this.option.selectedMap; - if (!n) return !1; - var i = this.getData(e), r = ph(i, t); - return n[r] || !1 - }, n.prototype._innerSelect = function (t, e) { - var n, i, r = this.option.selectedMode, o = e.length; - if (r && o) if ("multiple" === r) for (var a = this.option.selectedMap || (this.option.selectedMap = {}), s = 0; o > s; s++) { - var l = e[s], u = ph(t, l); - a[u] = !0, this._selectedDataIndicesMap[u] = t.getRawIndex(l) - } else if ("single" === r || r === !0) { - var h = e[o - 1], u = ph(t, h); - this.option.selectedMap = (n = {}, n[u] = !0, n), this._selectedDataIndicesMap = (i = {}, i[u] = t.getRawIndex(h), i) - } - }, n.prototype._initSelectedMapFromData = function (t) { - if (!this.option.selectedMap) { - var e = []; - t.hasItemOption && t.each(function (n) { - var i = t.getRawDataItem(n); - "object" == typeof i && i.selected && e.push(n) - }), e.length > 0 && this._innerSelect(t, e) - } - }, n.registerClass = function (t) { - return oT.registerClass(t) - }, n.protoInitialize = function () { - var t = n.prototype; - t.type = "series.__base__", t.seriesIndex = 0, t.useColorPaletteOnData = !1, t.ignoreStyleOnData = !1, t.hasSymbolVisual = !1, t.defaultSymbol = "circle", t.visualStyleAccessPath = "itemStyle", t.visualDrawType = "fill" - }(), n - }(oT); - d(vM, QT), d(vM, TT), oa(vM, oT); - var mM = function () { - function t() { - this.group = new Ox, this.uid = Vs("viewComponent") - } - - return t.prototype.init = function () { - }, t.prototype.render = function () { - }, t.prototype.dispose = function () { - }, t.prototype.updateView = function () { - }, t.prototype.updateLayout = function () { - }, t.prototype.updateVisual = function () { - }, t.prototype.blurSeries = function () { - }, t - }(); - ia(mM), ua(mM, {registerWhenExtend: !0}); - var _M = qo(), xM = wh(), wM = function () { - function t() { - this.group = new Ox, this.uid = Vs("viewChart"), this.renderTask = Fu({ - plan: Th, - reset: Mh - }), this.renderTask.context = {view: this} - } - - return t.prototype.init = function () { - }, t.prototype.render = function () { - }, t.prototype.highlight = function (t, e, n, i) { - Sh(t.getData(), i, "emphasis") - }, t.prototype.downplay = function (t, e, n, i) { - Sh(t.getData(), i, "normal") - }, t.prototype.remove = function () { - this.group.removeAll() - }, t.prototype.dispose = function () { - }, t.prototype.updateView = function (t, e, n, i) { - this.render(t, e, n, i) - }, t.prototype.updateLayout = function (t, e, n, i) { - this.render(t, e, n, i) - }, t.prototype.updateVisual = function (t, e, n, i) { - this.render(t, e, n, i) - }, t.markUpdateMethod = function (t, e) { - _M(t).updateMethod = e - }, t.protoInitialize = function () { - var e = t.prototype; - e.type = "chart" - }(), t - }(); - ia(wM, ["dispose"]), ua(wM, {registerWhenExtend: !0}); - var bM, SM = { - 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) - } - } - }, TM = "\x00__throttleOriginMethod", MM = "\x00__throttleRate", CM = "\x00__throttleType", IM = qo(), - AM = {itemStyle: ha(MS, !0), lineStyle: ha(bS, !0)}, DM = {lineStyle: "stroke", itemStyle: "fill"}, kM = { - createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { - var n = t.getData(), i = t.visualStyleAccessPath || "itemStyle", r = t.getModel(i), o = Ah(t, i), a = o(r), - s = r.getShallow("decal"); - s && (n.setVisual("decal", s), s.dirty = !0); - var l = Dh(t, i), u = a[l], c = M(u) ? u : null; - return (!a[l] || c) && (a[l] = t.getColorFromPalette(t.name, null, e.getSeriesCount()), n.setVisual("colorFromPalette", !0)), n.setVisual("style", a), n.setVisual("drawType", l), !e.isSeriesFiltered(t) && c ? (n.setVisual("colorFromPalette", !1), { - dataEach: function (e, n) { - var i = t.getDataParams(n), r = h({}, a); - r[l] = c(i), e.setItemVisual(n, "style", r) - } - }) : void 0 - } - }, LM = new AS, PM = { - createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { - if (!t.ignoreStyleOnData && !e.isSeriesFiltered(t)) { - var n = t.getData(), i = t.visualStyleAccessPath || "itemStyle", r = Ah(t, i), - o = n.getVisual("drawType"); - return { - dataEach: n.hasItemOption ? function (t, e) { - var n = t.getRawDataItem(e); - if (n && n[i]) { - LM.option = n[i]; - var a = r(LM), s = t.ensureUniqueItemVisual(e, "style"); - h(s, a), LM.option.decal && (t.setItemVisual(e, "decal", LM.option.decal), LM.option.decal.dirty = !0), o in a && t.setItemVisual(e, "colorFromPalette", !1) - } - } : null - } - } - } - }, OM = { - performRawSeries: !0, overallReset: function (t) { - var e = U(); - t.eachSeries(function (t) { - if (t.useColorPaletteOnData) { - var n = e.get(t.type); - n || (n = {}, e.set(t.type, n)), IM(t).scope = n - } - }), t.eachSeries(function (e) { - if (e.useColorPaletteOnData && !t.isSeriesFiltered(e)) { - var n = e.getRawData(), i = {}, r = e.getData(), o = IM(e).scope, - a = e.visualStyleAccessPath || "itemStyle", s = Dh(e, a); - r.each(function (t) { - var e = r.getRawIndex(t); - i[e] = t - }), n.each(function (t) { - var a = i[t], l = r.getItemVisual(a, "colorFromPalette"); - if (l) { - var u = r.ensureUniqueItemVisual(a, "style"), h = n.getName(t) || t + "", c = n.count(); - u[s] = e.getColorFromPalette(h, o, c) - } - }) - } - }) - } - }, RM = Math.PI, EM = function () { - function t(t, e, n, i) { - this._stageTaskMap = U(), this.ecInstance = t, this.api = e, n = this._dataProcessorHandlers = n.slice(), i = this._visualHandlers = i.slice(), this._allHandlers = n.concat(i) - } - - return t.prototype.restoreData = function (t, e) { - t.restoreData(e), this._stageTaskMap.each(function (t) { - var e = t.overallTask; - e && e.dirty() - }) - }, t.prototype.getPerformArgs = function (t, e) { - if (t.__pipeline) { - var n = this._pipelineMap.get(t.__pipeline.id), i = n.context, - r = !e && n.progressiveEnabled && (!i || i.progressiveRender) && t.__idxInPipeline > n.blockIndex, - o = r ? n.step : null, a = i && i.modDataCount, s = null != a ? Math.ceil(a / o) : null; - return {step: o, modBy: s, modDataCount: a} - } - }, t.prototype.getPipeline = function (t) { - return this._pipelineMap.get(t) - }, t.prototype.updateStreamModes = function (t, e) { - var n = this._pipelineMap.get(t.uid), i = t.getData(), r = i.count(), - o = n.progressiveEnabled && e.incrementalPrepareRender && r >= n.threshold, - a = t.get("large") && r >= t.get("largeThreshold"), - s = "mod" === t.get("progressiveChunkMode") ? r : null; - t.pipelineContext = n.context = {progressiveRender: o, modDataCount: s, large: a} - }, t.prototype.restorePipelines = function (t) { - var e = this, n = e._pipelineMap = U(); - t.eachSeries(function (t) { - var i = t.getProgressive(), r = t.uid; - n.set(r, { - id: r, - head: null, - tail: null, - threshold: t.getProgressiveThreshold(), - progressiveEnabled: i && !(t.preventIncremental && t.preventIncremental()), - blockIndex: -1, - step: Math.round(i || 700), - count: 0 - }), e._pipe(t, t.dataTask) - }) - }, t.prototype.prepareStageTasks = function () { - var t = this._stageTaskMap, e = this.api.getModel(), n = this.api; - y(this._allHandlers, function (i) { - var r = t.get(i.uid) || t.set(i.uid, {}), o = ""; - G(!(i.reset && i.overallReset), o), i.reset && this._createSeriesStageTask(i, r, e, n), i.overallReset && this._createOverallStageTask(i, r, e, n) - }, this) - }, t.prototype.prepareView = function (t, e, n, i) { - var r = t.renderTask, o = r.context; - o.model = e, o.ecModel = n, o.api = i, r.__block = !t.incrementalPrepareRender, this._pipe(e, r) - }, t.prototype.performDataProcessorTasks = function (t, e) { - this._performStageTasks(this._dataProcessorHandlers, t, e, {block: !0}) - }, t.prototype.performVisualTasks = function (t, e, n) { - this._performStageTasks(this._visualHandlers, t, e, n) - }, t.prototype._performStageTasks = function (t, e, n, i) { - function r(t, e) { - return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id)) - } - - i = i || {}; - var o = !1, a = this; - y(t, function (t) { - if (!i.visualType || i.visualType === t.visualType) { - var s = a._stageTaskMap.get(t.uid), l = s.seriesTaskMap, u = s.overallTask; - if (u) { - var h, c = u.agentStubMap; - c.each(function (t) { - r(i, t) && (t.dirty(), h = !0) - }), h && u.dirty(), a.updatePayload(u, n); - var p = a.getPerformArgs(u, i.block); - c.each(function (t) { - t.perform(p) - }), u.perform(p) && (o = !0) - } else l && l.each(function (s) { - r(i, s) && s.dirty(); - var l = a.getPerformArgs(s, i.block); - l.skip = !t.performRawSeries && e.isSeriesFiltered(s.context.model), a.updatePayload(s, n), s.perform(l) && (o = !0) - }) - } - }), this.unfinished = o || this.unfinished - }, t.prototype.performSeriesTasks = function (t) { - var e; - t.eachSeries(function (t) { - e = t.dataTask.perform() || e - }), this.unfinished = e || this.unfinished - }, t.prototype.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) - }) - }, t.prototype.updatePayload = function (t, e) { - "remain" !== e && (t.context.payload = e) - }, t.prototype._createSeriesStageTask = function (t, e, n, i) { - function r(e) { - var r = e.uid, l = s.set(r, a && a.get(r) || Fu({plan: Eh, reset: zh, count: Nh})); - l.context = { - model: e, - ecModel: n, - api: i, - useClearVisual: t.isVisual && !t.isLayout, - plan: t.plan, - reset: t.reset, - scheduler: o - }, o._pipe(e, l) - } - - var o = this, a = e.seriesTaskMap, s = e.seriesTaskMap = U(), l = t.seriesType, u = t.getTargetSeries; - t.createOnAllSeries ? n.eachRawSeries(r) : l ? n.eachRawSeriesByType(l, r) : u && u(n, i).each(r) - }, t.prototype._createOverallStageTask = function (t, e, n, i) { - function r(t) { - var e = t.uid, n = l.set(e, s && s.get(e) || (p = !0, Fu({reset: Ph, onDirty: Rh}))); - n.context = {model: t, overallProgress: c}, n.agent = a, n.__block = c, o._pipe(t, n) - } - - var o = this, a = e.overallTask = e.overallTask || Fu({reset: Lh}); - a.context = {ecModel: n, api: i, overallReset: t.overallReset, scheduler: o}; - var s = a.agentStubMap, l = a.agentStubMap = U(), u = t.seriesType, h = t.getTargetSeries, c = !0, p = !1, - f = ""; - G(!t.createOnAllSeries, f), u ? n.eachRawSeriesByType(u, r) : h ? h(n, i).each(r) : (c = !1, y(n.getSeries(), r)), p && a.dirty() - }, t.prototype._pipe = function (t, e) { - var n = t.uid, i = this._pipelineMap.get(n); - !i.head && (i.head = e), i.tail && i.tail.pipe(e), i.tail = e, e.__idxInPipeline = i.count++, e.__pipeline = i - }, t.wrapStageHandler = function (t, e) { - return M(t) && (t = { - overallReset: t, - seriesType: Fh(t) - }), t.uid = Vs("stageHandler"), e && (t.visualType = e), t - }, t - }(), zM = Bh(0), BM = {}, NM = {}; - Hh(BM, CT), Hh(NM, OT), BM.eachSeriesByType = BM.eachRawSeriesByType = function (t) { - bM = t - }, BM.eachComponent = function (t) { - "series" === t.mainType && t.subType && (bM = t.subType) - }; - var FM = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1", "#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"], - HM = { - color: FM, - colorLayer: [["#37A2DA", "#ffd85c", "#fd7b5f"], ["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"], ["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA", "#96BFFF"], FM] - }, VM = "#B9B8CE", GM = "#100C2A", WM = function () { - return { - axisLine: {lineStyle: {color: VM}}, - splitLine: {lineStyle: {color: "#484753"}}, - splitArea: {areaStyle: {color: ["rgba(255,255,255,0.02)", "rgba(255,255,255,0.05)"]}}, - minorSplitLine: {lineStyle: {color: "#20203B"}} - } - }, XM = ["#4992ff", "#7cffb2", "#fddd60", "#ff6e76", "#58d9f9", "#05c091", "#ff8a45", "#8d48e3", "#dd79ff"], YM = { - darkMode: !0, - color: XM, - backgroundColor: GM, - axisPointer: {lineStyle: {color: "#817f91"}, crossStyle: {color: "#817f91"}, label: {color: "#fff"}}, - legend: {textStyle: {color: VM}}, - textStyle: {color: VM}, - title: {textStyle: {color: "#EEF1FA"}, subtextStyle: {color: "#B9B8CE"}}, - toolbox: {iconStyle: {borderColor: VM}}, - dataZoom: { - borderColor: "#71708A", - textStyle: {color: VM}, - brushStyle: {color: "rgba(135,163,206,0.3)"}, - handleStyle: {color: "#353450", borderColor: "#C5CBE3"}, - moveHandleStyle: {color: "#B0B6C3", opacity: .3}, - fillerColor: "rgba(135,163,206,0.2)", - emphasis: { - handleStyle: {borderColor: "#91B7F2", color: "#4D587D"}, - moveHandleStyle: {color: "#636D9A", opacity: .7} - }, - dataBackground: {lineStyle: {color: "#71708A", width: 1}, areaStyle: {color: "#71708A"}}, - selectedDataBackground: {lineStyle: {color: "#87A3CE"}, areaStyle: {color: "#87A3CE"}} - }, - visualMap: {textStyle: {color: VM}}, - timeline: {lineStyle: {color: VM}, label: {color: VM}, controlStyle: {color: VM, borderColor: VM}}, - calendar: {itemStyle: {color: GM}, dayLabel: {color: VM}, monthLabel: {color: VM}, yearLabel: {color: VM}}, - timeAxis: WM(), - logAxis: WM(), - valueAxis: WM(), - categoryAxis: WM(), - line: {symbol: "circle"}, - graph: {color: XM}, - gauge: { - title: {color: VM}, - axisLine: {lineStyle: {color: [[1, "rgba(207,212,219,0.2)"]]}}, - axisLabel: {color: VM}, - detail: {color: "#EEF1FA"} - }, - candlestick: {itemStyle: {color: "#FD1050", color0: "#0CF49B", borderColor: "#FD1050", borderColor0: "#0CF49B"}} - }; - YM.categoryAxis.splitLine.show = !1; - var UM = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = "dataset", e - } - - return e(n, t), n.prototype.init = function (e, n, i) { - t.prototype.init.call(this, e, n, i), this._sourceManager = new aM(this), Zu(this) - }, n.prototype.mergeOption = function (e, n) { - t.prototype.mergeOption.call(this, e, n), Zu(this) - }, n.prototype.optionUpdated = function () { - this._sourceManager.dirty() - }, n.prototype.getSourceManager = function () { - return this._sourceManager - }, n.type = "dataset", n.defaultOption = {seriesLayoutBy: mT}, n - }(oT); - oT.registerClass(UM); - var qM = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = "dataset", e - } - - return e(n, t), n.type = "dataset", n - }(mM); - mM.registerClass(qM); - var jM = U(), ZM = { - registerMap: function (t, e, n) { - var i; - if (T(e)) i = e; else if (e.svg) i = [{type: "svg", source: e.svg, specialAreas: e.specialAreas}]; else { - var r = e.geoJson || e.geoJSON; - r && !e.features && (n = e.specialAreas, e = r), i = [{type: "geoJSON", source: e, specialAreas: n}] - } - return y(i, function (t) { - var e = t.type; - "geoJson" === e && (e = t.type = "geoJSON"); - var n = KM[e]; - n(t) - }), jM.set(t, i) - }, retrieveMap: function (t) { - return jM.get(t) - } - }, KM = { - geoJSON: function (t) { - var e = t.source; - t.geoJSON = C(e) ? "undefined" != typeof JSON && JSON.parse ? JSON.parse(e) : new Function("return (" + e + ");")() : e - }, svg: function (t) { - t.svgXML = gr(t.source) - } - }, $M = function () { - function t() { - } - - return t.prototype.normalizeQuery = function (t) { - var e = {}, n = {}, i = {}; - if (C(t)) { - var r = ta(t); - e.mainType = r.main || null, e.subType = r.sub || null - } else { - var o = ["Index", "Name", "Id"], a = {name: 1, dataIndex: 1, dataType: 1}; - y(t, function (t, r) { - for (var s = !1, l = 0; l < o.length; l++) { - var u = o[l], h = r.lastIndexOf(u); - if (h > 0 && h === r.length - u.length) { - var c = r.slice(0, h); - "data" !== c && (e.mainType = c, e[u.toLowerCase()] = t, s = !0) - } - } - a.hasOwnProperty(r) && (n[r] = t, s = !0), s || (i[r] = t) - }) - } - return {cptQuery: e, dataQuery: n, otherQuery: i} - }, t.prototype.filter = function (t, e) { - function n(t, e, n, i) { - return null == t[n] || e[i || n] === t[n] - } - - var i = this.eventInfo; - if (!i) return !0; - var r = i.targetEl, o = i.packedEvent, a = i.model, s = i.view; - if (!a || !s) return !0; - var l = e.cptQuery, u = e.dataQuery; - return n(l, a, "mainType") && n(l, a, "subType") && n(l, a, "index", "componentIndex") && n(l, a, "name") && n(l, a, "id") && n(u, o, "name") && n(u, o, "dataIndex") && n(u, o, "dataType") && (!s.filterForExposedEvent || s.filterForExposedEvent(t, e.otherQuery, r, o)) - }, t.prototype.afterTrigger = function () { - this.eventInfo = null - }, t - }(), JM = { - createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { - function n(e, n) { - var i = t.getRawValue(n), a = t.getDataParams(n); - l && e.setItemVisual(n, "symbol", r(i, a)), u && e.setItemVisual(n, "symbolSize", o(i, a)), h && e.setItemVisual(n, "symbolRotate", s(i, a)) - } - - var i = t.getData(); - if (t.legendSymbol && i.setVisual("legendSymbol", t.legendSymbol), t.hasSymbolVisual) { - var r = t.get("symbol"), o = t.get("symbolSize"), a = t.get("symbolKeepAspect"), - s = t.get("symbolRotate"), l = M(r), u = M(o), h = M(s), c = l || u || h, - p = !l && r ? r : t.defaultSymbol, f = u ? null : o, d = h ? null : s; - if (i.setVisual({ - legendSymbol: t.legendSymbol || p, - symbol: p, - symbolSize: f, - symbolKeepAspect: a, - symbolRotate: d - }), !e.isSeriesFiltered(t)) return {dataEach: c ? n : null} - } - } - }, QM = { - createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { - function n(t, e) { - var n = t.getItemModel(e), i = n.getShallow("symbol", !0), r = n.getShallow("symbolSize", !0), - o = n.getShallow("symbolRotate", !0), a = n.getShallow("symbolKeepAspect", !0); - null != i && t.setItemVisual(e, "symbol", i), null != r && t.setItemVisual(e, "symbolSize", r), null != o && t.setItemVisual(e, "symbolRotate", o), null != a && t.setItemVisual(e, "symbolKeepAspect", a) - } - - if (t.hasSymbolVisual && !e.isSeriesFiltered(t)) { - var i = t.getData(); - return {dataEach: i.hasItemOption ? n : null} - } - } - }, tC = 2 * Math.PI, eC = ux.CMD, nC = ["top", "right", "bottom", "left"], iC = [], rC = new Pm, oC = new Pm, - aC = new Pm, sC = new Pm, lC = new Pm, uC = [], hC = new Pm, - cC = ["align", "verticalAlign", "width", "height", "fontSize"], pC = new ym, fC = qo(), dC = qo(), - gC = ["x", "y", "rotation"], yC = function () { - function t() { - this._labelList = [], this._chartViewList = [] - } - - return t.prototype.clearLabels = function () { - this._labelList = [], this._chartViewList = [] - }, t.prototype._addLabel = function (t, e, n, i, r) { - var o = i.style, a = i.__hostTarget, s = a.textConfig || {}, l = i.getComputedTransform(), - u = i.getBoundingRect().plain(); - Vm.applyTransform(u, u, l), l ? pC.setLocalTransform(l) : (pC.x = pC.y = pC.rotation = pC.originX = pC.originY = 0, pC.scaleX = pC.scaleY = 1); - var h, c = i.__hostTarget; - if (c) { - h = c.getBoundingRect().plain(); - var p = c.getComputedTransform(); - Vm.applyTransform(h, h, p) - } - var f = h && c.getTextGuideLine(); - this._labelList.push({ - label: i, - labelLine: f, - seriesModel: n, - dataIndex: t, - dataType: e, - layoutOption: r, - computedLayoutOption: null, - rect: u, - hostRect: h, - priority: h ? h.width * h.height : 0, - defaultAttr: { - ignore: i.ignore, - labelGuideIgnore: f && f.ignore, - x: pC.x, - y: pC.y, - rotation: pC.rotation, - style: { - x: o.x, - y: o.y, - align: o.align, - verticalAlign: o.verticalAlign, - width: o.width, - height: o.height, - fontSize: o.fontSize - }, - cursor: i.cursor, - attachedPos: s.position, - attachedRot: s.rotation - } - }) - }, t.prototype.addLabelsOfSeries = function (t) { - var e = this; - this._chartViewList.push(t); - var n = t.__model, i = n.get("labelLayout"); - (M(i) || w(i).length) && t.group.traverse(function (t) { - if (t.ignore) return !0; - var r = t.getTextContent(), o = Gb(t); - r && !r.disableLabelLayout && e._addLabel(o.dataIndex, o.dataType, n, r, i) - }) - }, t.prototype.updateLayoutConfig = function (t) { - function e(t, e) { - return function () { - Zh(t, e) - } - } - - for (var n = t.getWidth(), i = t.getHeight(), r = 0; r < this._labelList.length; r++) { - var o = this._labelList[r], a = o.label, s = a.__hostTarget, l = o.defaultAttr, u = void 0; - u = "function" == typeof o.layoutOption ? o.layoutOption(lc(o, s)) : o.layoutOption, u = u || {}, o.computedLayoutOption = u; - var h = Math.PI / 180; - s && s.setTextConfig({ - local: !1, - position: null != u.x || null != u.y ? null : l.attachedPos, - rotation: null != u.rotate ? u.rotate * h : l.attachedRot, - offset: [u.dx || 0, u.dy || 0] - }); - var c = !1; - if (null != u.x ? (a.x = ao(u.x, n), a.setStyle("x", 0), c = !0) : (a.x = l.x, a.setStyle("x", l.style.x)), null != u.y ? (a.y = ao(u.y, i), a.setStyle("y", 0), c = !0) : (a.y = l.y, a.setStyle("y", l.style.y)), u.labelLinePoints) { - var p = s.getTextGuideLine(); - p && (p.setShape({points: u.labelLinePoints}), c = !1) - } - var f = fC(a); - f.needsUpdateLabelLine = c, a.rotation = null != u.rotate ? u.rotate * h : l.rotation; - for (var d = 0; d < cC.length; d++) { - var g = cC[d]; - a.setStyle(g, null != u[g] ? u[g] : l.style[g]) - } - if (u.draggable) { - if (a.draggable = !0, a.cursor = "move", s) { - var y = o.seriesModel; - if (null != o.dataIndex) { - var v = o.seriesModel.getData(o.dataType); - y = v.getItemModel(o.dataIndex) - } - a.on("drag", e(s, y.getModel("labelLine"))) - } - } else a.off("drag"), a.cursor = l.cursor - } - }, t.prototype.layout = function (t) { - var e = t.getWidth(), n = t.getHeight(), i = nc(this._labelList), r = _(i, function (t) { - return "shiftX" === t.layoutOption.moveOverlap - }), o = _(i, function (t) { - return "shiftY" === t.layoutOption.moveOverlap - }); - rc(r, 0, e), oc(o, 0, n); - var a = _(i, function (t) { - return t.layoutOption.hideOverlap - }); - ac(a) - }, t.prototype.processLabelsOverall = function () { - var t = this; - y(this._chartViewList, function (e) { - var n = e.__model, i = e.ignoreLabelLineUpdate, r = n.isAnimationEnabled(); - e.group.traverse(function (e) { - if (e.ignore) return !0; - var o = !i, a = e.getTextContent(); - !o && a && (o = fC(a).needsUpdateLabelLine), o && t._updateLabelLine(e, n), r && t._animateLabels(e, n) - }) - }) - }, t.prototype._updateLabelLine = function (t, e) { - var n = t.getTextContent(), i = Gb(t), r = i.dataIndex; - if (n && null != r) { - var o = e.getData(i.dataType), a = o.getItemModel(r), s = {}, l = o.getItemVisual(r, "style"), - u = o.getVisual("drawType"); - s.stroke = l[u]; - var h = a.getModel("labelLine"); - tc(t, ec(a), s), Zh(t, h) - } - }, t.prototype._animateLabels = function (t, e) { - var n = t.getTextContent(), i = t.getTextGuideLine(); - if (n && !n.ignore && !n.invisible && !t.disableLabelAnimation && !gs(t)) { - var r = fC(n), o = r.oldLayout, a = Gb(t), s = a.dataIndex, l = {x: n.x, y: n.y, rotation: n.rotation}, - u = e.getData(a.dataType); - if (o) { - n.attr(o); - var h = t.prevStates; - h && (p(h, "select") >= 0 && n.attr(r.oldLayoutSelect), p(h, "emphasis") >= 0 && n.attr(r.oldLayoutEmphasis)), hs(n, l, e, s) - } else if (n.attr(l), !mS(n).valueAnimation) { - var c = N(n.style.opacity, 1); - n.style.opacity = 0, cs(n, {style: {opacity: c}}, e, s) - } - if (r.oldLayout = l, n.states.select) { - var f = r.oldLayoutSelect = {}; - uc(f, l, gC), uc(f, n.states.select, gC) - } - if (n.states.emphasis) { - var d = r.oldLayoutEmphasis = {}; - uc(d, l, gC), uc(d, n.states.emphasis, gC) - } - Hs(n, s, u, e) - } - if (i && !i.ignore && !i.invisible) { - var r = dC(i), o = r.oldLayout, g = {points: i.shape.points}; - o ? (i.attr({shape: o}), hs(i, {shape: g}, e)) : (i.setShape(g), i.style.strokePercent = 0, cs(i, {style: {strokePercent: 1}}, e)), r.oldLayout = g - } - }, t - }(), vC = new ux(!0), mC = ["shadowBlur", "shadowOffsetX", "shadowOffsetY"], - _C = [["lineCap", "butt"], ["lineJoin", "miter"], ["miterLimit", 10]], xC = 1, wC = 2, bC = 3, SC = 4, - TC = function (t) { - function n(e, n, i) { - var r = t.call(this) || this; - r.motionBlur = !1, r.lastFrameAlpha = .7, r.dpr = 1, r.virtual = !1, r.config = {}, r.incremental = !1, r.zlevel = 0, r.maxRepaintRectCount = 5, r.__dirty = !0, r.__firstTimePaint = !0, r.__used = !1, r.__drawIndex = 0, r.__startIndex = 0, r.__endIndex = 0, r.__prevStartIndex = null, r.__prevEndIndex = null; - var o; - i = i || Um, "string" == typeof e ? o = Fc(e, n, i) : D(e) && (o = e, e = o.id), r.id = e, r.dom = o; - var a = o.style; - return a && (o.onselectstart = Nc, a.webkitUserSelect = "none", a.userSelect = "none", a.webkitTapHighlightColor = "rgba(0,0,0,0)", a["-webkit-touch-callout"] = "none", a.padding = "0", a.margin = "0", a.borderWidth = "0"), r.domBack = null, r.ctxBack = null, r.painter = n, r.config = null, r.dpr = i, r - } - - return e(n, t), n.prototype.getElementCount = function () { - return this.__endIndex - this.__startIndex - }, n.prototype.afterBrush = function () { - this.__prevStartIndex = this.__startIndex, this.__prevEndIndex = this.__endIndex - }, n.prototype.initContext = function () { - this.ctx = this.dom.getContext("2d"), this.ctx.dpr = this.dpr - }, n.prototype.setUnpainted = function () { - this.__firstTimePaint = !0 - }, n.prototype.createBackBuffer = function () { - var t = this.dpr; - this.domBack = Fc("back-" + this.id, this.painter, t), this.ctxBack = this.domBack.getContext("2d"), 1 !== t && this.ctxBack.scale(t, t) - }, n.prototype.createRepaintRects = function (t, e, n, i) { - function r(t) { - if (t.isFinite() && !t.isZero()) if (0 === o.length) { - var e = new Vm(0, 0, 0, 0); - e.copy(t), o.push(e) - } else { - for (var n = !1, i = 1 / 0, r = 0, u = 0; u < o.length; ++u) { - var h = o[u]; - if (h.intersect(t)) { - var c = new Vm(0, 0, 0, 0); - c.copy(h), c.union(t), o[u] = c, n = !0; - break - } - if (s) { - l.copy(t), l.union(h); - var p = t.width * t.height, f = h.width * h.height, d = l.width * l.height, - g = d - p - f; - i > g && (i = i, r = u) - } - } - if (s && (o[r].union(t), n = !0), !n) { - var e = new Vm(0, 0, 0, 0); - e.copy(t), o.push(e) - } - s || (s = o.length >= a) - } - } - - if (this.__firstTimePaint) return this.__firstTimePaint = !1, null; - for (var o = [], a = this.maxRepaintRectCount, s = !1, l = new Vm(0, 0, 0, 0), u = this.__startIndex; u < this.__endIndex; ++u) { - var h = t[u]; - if (h) { - var c = h.shouldBePainted(n, i, !0, !0), - p = h.__isRendered && (h.__dirty & n_.REDARAW_BIT || !c) ? h.getPrevPaintRect() : null; - p && r(p); - var f = c && (h.__dirty & n_.REDARAW_BIT || !h.__isRendered) ? h.getPaintRect() : null; - f && r(f) - } - } - for (var u = this.__prevStartIndex; u < this.__prevEndIndex; ++u) { - var h = e[u], c = h.shouldBePainted(n, i, !0, !0); - if (h && (!c || !h.__zr) && h.__isRendered) { - var p = h.getPrevPaintRect(); - p && r(p) - } - } - var d; - do { - d = !1; - for (var u = 0; u < o.length;) if (o[u].isZero()) o.splice(u, 1); else { - for (var g = u + 1; g < o.length;) o[u].intersect(o[g]) ? (d = !0, o[u].union(o[g]), o.splice(g, 1)) : g++; - u++ - } - } while (d); - return this._paintRects = o, o - }, n.prototype.debugGetPaintRects = function () { - return (this._paintRects || []).slice() - }, n.prototype.resize = function (t, e) { - var n = this.dpr, i = this.dom, r = i.style, o = this.domBack; - r && (r.width = t + "px", r.height = e + "px"), i.width = t * n, i.height = e * n, o && (o.width = t * n, o.height = e * n, 1 !== n && this.ctxBack.scale(n, n)) - }, n.prototype.clear = function (t, e, n) { - function i(t, n, i, r) { - if (o.clearRect(t, n, i, r), e && "transparent" !== e) { - var a = void 0; - O(e) ? (a = e.__canvasGradient || gc(o, e, { - x: 0, - y: 0, - width: i, - height: r - }), e.__canvasGradient = a) : R(e) && (a = bc(o, e, { - dirty: function () { - c.setUnpainted(), c.__painter.refresh() - } - })), o.save(), o.fillStyle = a || e, o.fillRect(t, n, i, r), o.restore() - } - l && (o.save(), o.globalAlpha = u, o.drawImage(p, t, n, i, r), o.restore()) - } - - var r = this.dom, o = this.ctx, a = r.width, s = r.height; - e = e || this.clearColor; - var l = this.motionBlur && !t, u = this.lastFrameAlpha, h = this.dpr, c = this; - l && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(r, 0, 0, a / h, s / h)); - var p = this.domBack; - !n || l ? i(0, 0, a, s) : n.length && y(n, function (t) { - i(t.x * h, t.y * h, t.width * h, t.height * h) - }) - }, n - }(Uv), MC = 1e5, CC = 314159, IC = .01, AC = .001, DC = function () { - function t(t, e, n) { - this.type = "canvas", this._zlevelList = [], this._prevDisplayList = [], this._layers = {}, this._layerConfig = {}, this._needsManuallyCompositing = !1, this.type = "canvas"; - var i = !t.nodeName || "CANVAS" === t.nodeName.toUpperCase(); - this._opts = n = h({}, n || {}), this.dpr = n.devicePixelRatio || Um, this._singleCanvas = i, this.root = t; - var r = t.style; - r && (r.webkitTapHighlightColor = "transparent", r.webkitUserSelect = "none", r.userSelect = "none", r["-webkit-touch-callout"] = "none", t.innerHTML = ""), this.storage = e; - var o = this._zlevelList; - this._prevDisplayList = []; - var a = this._layers; - if (i) { - var s = t, l = s.width, u = s.height; - null != n.width && (l = n.width), null != n.height && (u = n.height), this.dpr = n.devicePixelRatio || 1, s.width = l * this.dpr, s.height = u * this.dpr, this._width = l, this._height = u; - var c = new TC(s, this, this.dpr); - c.__builtin__ = !0, c.initContext(), a[CC] = c, c.zlevel = CC, o.push(CC), this._domRoot = t - } else { - this._width = this._getSize(0), this._height = this._getSize(1); - var p = this._domRoot = Gc(this._width, this._height); - t.appendChild(p) - } - } - - return t.prototype.getType = function () { - return "canvas" - }, t.prototype.isSingleCanvas = function () { - return this._singleCanvas - }, t.prototype.getViewportRoot = function () { - return this._domRoot - }, t.prototype.getViewportRootOffset = function () { - var t = this.getViewportRoot(); - return t ? {offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0} : void 0 - }, t.prototype.refresh = function (t) { - var e = this.storage.getDisplayList(!0), n = this._prevDisplayList, i = this._zlevelList; - this._redrawId = Math.random(), this._paintList(e, n, t, this._redrawId); - for (var r = 0; r < i.length; r++) { - var o = i[r], a = this._layers[o]; - if (!a.__builtin__ && a.refresh) { - var s = 0 === r ? this._backgroundColor : null; - a.refresh(s) - } - } - return this._opts.useDirtyRect && (this._prevDisplayList = e.slice()), this - }, t.prototype.refreshHover = function () { - this._paintHoverList(this.storage.getDisplayList(!1)) - }, t.prototype._paintHoverList = function (t) { - var e = t.length, n = this._hoverlayer; - if (n && n.clear(), e) { - for (var i, r = {inHover: !0, viewWidth: this._width, viewHeight: this._height}, o = 0; e > o; o++) { - var a = t[o]; - a.__inHover && (n || (n = this._hoverlayer = this.getLayer(MC)), i || (i = n.ctx, i.save()), zc(i, a, r, o === e - 1)) - } - i && i.restore() - } - }, t.prototype.getHoverLayer = function () { - return this.getLayer(MC) - }, t.prototype.paintOne = function (t, e) { - Ec(t, e) - }, t.prototype._paintList = function (t, e, n, i) { - if (this._redrawId === i) { - n = n || !1, this._updateLayerStatus(t); - var r = this._doPaintList(t, e, n), o = r.finished, a = r.needsRefreshHover; - if (this._needsManuallyCompositing && this._compositeManually(), a && this._paintHoverList(t), o) this.eachLayer(function (t) { - t.afterBrush && t.afterBrush() - }); else { - var s = this; - l_(function () { - s._paintList(t, e, n, i) - }) - } - } - }, t.prototype._compositeManually = function () { - var t = this.getLayer(CC).ctx, e = this._domRoot.width, n = this._domRoot.height; - t.clearRect(0, 0, e, n), this.eachBuiltinLayer(function (i) { - i.virtual && t.drawImage(i.dom, 0, 0, e, n) - }) - }, t.prototype._doPaintList = function (t, e, n) { - for (var i = this, r = [], o = this._opts.useDirtyRect, a = 0; a < this._zlevelList.length; a++) { - var s = this._zlevelList[a], l = this._layers[s]; - l.__builtin__ && l !== this._hoverlayer && (l.__dirty || n) && r.push(l) - } - for (var u = !0, h = !1, c = function (a) { - var s = r[a], l = s.ctx, c = o && s.createRepaintRects(t, e, p._width, p._height); - l.save(); - var f = n ? s.__startIndex : s.__drawIndex, d = !n && s.incremental && Date.now, g = d && Date.now(), - y = s.zlevel === p._zlevelList[0] ? p._backgroundColor : null; - if (s.__startIndex === s.__endIndex) s.clear(!1, y, c); else if (f === s.__startIndex) { - var v = t[f]; - v.incremental && v.notClear && !n || s.clear(!1, y, c) - } - -1 === f && (console.error("For some unknown reason. drawIndex is -1"), f = s.__startIndex); - var m, _ = function (e) { - var n = {inHover: !1, allClipped: !1, prevEl: null, viewWidth: i._width, viewHeight: i._height}; - for (m = f; m < s.__endIndex; m++) { - var r = t[m]; - if (r.__inHover && (h = !0), i._doPaintEl(r, s, o, e, n, m === s.__endIndex - 1), d) { - var a = Date.now() - g; - if (a > 15) break - } - } - n.prevElClipPaths && l.restore() - }; - if (c) if (0 === c.length) m = s.__endIndex; else for (var x = p.dpr, w = 0; w < c.length; ++w) { - var b = c[w]; - l.save(), l.beginPath(), l.rect(b.x * x, b.y * x, b.width * x, b.height * x), l.clip(), _(b), l.restore() - } else l.save(), _(), l.restore(); - s.__drawIndex = m, s.__drawIndex < s.__endIndex && (u = !1) - }, p = this, f = 0; f < r.length; f++) c(f); - return wv.wxa && y(this._layers, function (t) { - t && t.ctx && t.ctx.draw && t.ctx.draw() - }), {finished: u, needsRefreshHover: h} - }, t.prototype._doPaintEl = function (t, e, n, i, r, o) { - var a = e.ctx; - if (n) { - var s = t.getPaintRect(); - (!i || s && s.intersect(i)) && (zc(a, t, r, o), t.setPrevPaintRect(s)) - } else zc(a, t, r, o) - }, t.prototype.getLayer = function (t, e) { - this._singleCanvas && !this._needsManuallyCompositing && (t = CC); - var n = this._layers[t]; - return n || (n = new TC("zr_" + t, this, this.dpr), n.zlevel = t, n.__builtin__ = !0, this._layerConfig[t] ? l(n, this._layerConfig[t], !0) : this._layerConfig[t - IC] && l(n, this._layerConfig[t - IC], !0), e && (n.virtual = e), this.insertLayer(t, n), n.initContext()), n - }, t.prototype.insertLayer = function (t, e) { - var n = this._layers, i = this._zlevelList, r = i.length, o = this._domRoot, s = null, l = -1; - if (n[t]) return void a("ZLevel " + t + " has been used already"); - if (!Vc(e)) return void a("Layer of zlevel " + t + " is not valid"); - if (r > 0 && t > i[0]) { - for (l = 0; r - 1 > l && !(i[l] < t && i[l + 1] > t); l++) ; - s = n[i[l]] - } - if (i.splice(l + 1, 0, t), n[t] = e, !e.virtual) if (s) { - var u = s.dom; - u.nextSibling ? o.insertBefore(e.dom, u.nextSibling) : o.appendChild(e.dom) - } else o.firstChild ? o.insertBefore(e.dom, o.firstChild) : o.appendChild(e.dom); - e.__painter = this - }, t.prototype.eachLayer = function (t, e) { - for (var n = this._zlevelList, i = 0; i < n.length; i++) { - var r = n[i]; - t.call(e, this._layers[r], r) - } - }, t.prototype.eachBuiltinLayer = function (t, e) { - for (var n = this._zlevelList, i = 0; i < n.length; i++) { - var r = n[i], o = this._layers[r]; - o.__builtin__ && t.call(e, o, r) - } - }, t.prototype.eachOtherLayer = function (t, e) { - for (var n = this._zlevelList, i = 0; i < n.length; i++) { - var r = n[i], o = this._layers[r]; - o.__builtin__ || t.call(e, o, r) - } - }, t.prototype.getLayers = function () { - return this._layers - }, t.prototype._updateLayerStatus = function (t) { - function e(t) { - s && (s.__endIndex !== t && (s.__dirty = !0), s.__endIndex = t) - } - - if (this.eachBuiltinLayer(function (t) { - t.__dirty = t.__used = !1 - }), this._singleCanvas) for (var n = 1; n < t.length; n++) { - var i = t[n]; - if (i.zlevel !== t[n - 1].zlevel || i.incremental) { - this._needsManuallyCompositing = !0; - break - } - } - var r, o, s = null, l = 0; - for (o = 0; o < t.length; o++) { - var i = t[o], u = i.zlevel, h = void 0; - r !== u && (r = u, l = 0), i.incremental ? (h = this.getLayer(u + AC, this._needsManuallyCompositing), h.incremental = !0, l = 1) : h = this.getLayer(u + (l > 0 ? IC : 0), this._needsManuallyCompositing), h.__builtin__ || a("ZLevel " + u + " has been used by unkown layer " + h.id), h !== s && (h.__used = !0, h.__startIndex !== o && (h.__dirty = !0), h.__startIndex = o, h.__drawIndex = h.incremental ? -1 : o, e(o), s = h), i.__dirty & n_.REDARAW_BIT && !i.__inHover && (h.__dirty = !0, h.incremental && h.__drawIndex < 0 && (h.__drawIndex = o)) - } - e(o), this.eachBuiltinLayer(function (t) { - !t.__used && t.getElementCount() > 0 && (t.__dirty = !0, t.__startIndex = t.__endIndex = t.__drawIndex = 0), t.__dirty && t.__drawIndex < 0 && (t.__drawIndex = t.__startIndex) - }) - }, t.prototype.clear = function () { - return this.eachBuiltinLayer(this._clearLayer), this - }, t.prototype._clearLayer = function (t) { - t.clear() - }, t.prototype.setBackgroundColor = function (t) { - this._backgroundColor = t, y(this._layers, function (t) { - t.setUnpainted() - }) - }, t.prototype.configLayer = function (t, e) { - if (e) { - var n = this._layerConfig; - n[t] ? l(n[t], e, !0) : n[t] = e; - for (var i = 0; i < this._zlevelList.length; i++) { - var r = this._zlevelList[i]; - if (r === t || r === t + IC) { - var o = this._layers[r]; - l(o, n[t], !0) - } - } - } - }, t.prototype.delLayer = function (t) { - var e = this._layers, n = this._zlevelList, i = e[t]; - i && (i.dom.parentNode.removeChild(i.dom), delete e[t], n.splice(p(n, t), 1)) - }, t.prototype.resize = function (t, e) { - if (this._domRoot.style) { - var n = this._domRoot; - n.style.display = "none"; - var i = this._opts; - if (null != t && (i.width = t), null != e && (i.height = e), t = this._getSize(0), e = this._getSize(1), n.style.display = "", this._width !== t || e !== this._height) { - n.style.width = t + "px", n.style.height = e + "px"; - for (var r in this._layers) this._layers.hasOwnProperty(r) && this._layers[r].resize(t, e); - this.refresh(!0) - } - this._width = t, this._height = e - } else { - if (null == t || null == e) return; - this._width = t, this._height = e, this.getLayer(CC).resize(t, e) - } - return this - }, t.prototype.clearLayer = function (t) { - var e = this._layers[t]; - e && e.clear() - }, t.prototype.dispose = function () { - this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null - }, t.prototype.getRenderedCanvas = function (t) { - if (t = t || {}, this._singleCanvas && !this._compositeManually) return this._layers[CC].dom; - var e = new TC("image", this, t.pixelRatio || this.dpr), n = e.ctx; - if (e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor), t.pixelRatio <= this.dpr) { - this.refresh(); - var i = e.dom.width, r = e.dom.height, o = e.ctx; - this.eachLayer(function (t) { - t.__builtin__ ? o.drawImage(t.dom, 0, 0, i, r) : t.renderToCanvas && (e.ctx.save(), t.renderToCanvas(e.ctx), e.ctx.restore()) - }) - } else for (var a = { - inHover: !1, - viewWidth: this._width, - viewHeight: this._height - }, s = this.storage.getDisplayList(!0), l = 0, u = s.length; u > l; l++) { - var h = s[l]; - zc(n, h, a, l === u - 1) - } - return e.dom - }, t.prototype.getWidth = function () { - return this._width - }, t.prototype.getHeight = function () { - return this._height - }, t.prototype._getSize = function (t) { - var e = this._opts, n = ["width", "height"][t], i = ["clientWidth", "clientHeight"][t], - r = ["paddingLeft", "paddingTop"][t], o = ["paddingRight", "paddingBottom"][t]; - if (null != e[n] && "auto" !== e[n]) return parseFloat(e[n]); - var a = this.root, s = document.defaultView.getComputedStyle(a); - return (a[i] || Hc(s[n]) || Hc(a.style[n])) - (Hc(s[r]) || 0) - (Hc(s[o]) || 0) | 0 - }, t.prototype.pathToImage = function (t, e) { - e = e || this.dpr; - var n = document.createElement("canvas"), i = n.getContext("2d"), r = t.getBoundingRect(), o = t.style, - a = o.shadowBlur * e, s = o.shadowOffsetX * e, l = o.shadowOffsetY * e, - u = t.hasStroke() ? o.lineWidth : 0, c = Math.max(u / 2, -s + a), p = Math.max(u / 2, s + a), - f = Math.max(u / 2, -l + a), d = Math.max(u / 2, l + a), g = r.width + c + p, y = r.height + f + d; - n.width = g * e, n.height = y * e, i.scale(e, e), i.clearRect(0, 0, g, y), i.dpr = e; - var v = { - x: t.x, - y: t.y, - scaleX: t.scaleX, - scaleY: t.scaleY, - rotation: t.rotation, - originX: t.originX, - originY: t.originY - }; - t.x = c - r.x, t.y = f - r.y, t.rotation = 0, t.scaleX = 1, t.scaleY = 1, t.updateTransform(), t && zc(i, t, { - inHover: !1, - viewWidth: this._width, - viewHeight: this._height - }, !0); - var m = new zx({style: {x: 0, y: 0, image: n}}); - return h(t, v), m - }, t - }(); - io("canvas", DC); - var kC = Math.round(9 * Math.random()), LC = function () { - function t() { - this._id = "__ec_inner_" + kC++ - } - - return t.prototype.get = function (t) { - return this._guard(t)[this._id] - }, t.prototype.set = function (t, e) { - var n = this._guard(t); - return "function" == typeof Object.defineProperty ? Object.defineProperty(n, this._id, { - value: e, - enumerable: !1, - configurable: !0 - }) : n[this._id] = e, this - }, t.prototype["delete"] = function (t) { - return this.has(t) ? (delete this._guard(t)[this._id], !0) : !1 - }, t.prototype.has = function (t) { - return !!this._guard(t)[this._id] - }, t.prototype._guard = function (t) { - if (t !== Object(t)) throw TypeError("Value of WeakMap is not a non-null object."); - return t - }, t - }(), PC = xx.extend({ - type: "triangle", shape: {cx: 0, cy: 0, width: 0, height: 0}, buildPath: function (t, e) { - var n = e.cx, i = e.cy, r = e.width / 2, o = e.height / 2; - t.moveTo(n, i - o), t.lineTo(n + r, i + o), t.lineTo(n - r, i + o), t.closePath() - } - }), OC = xx.extend({ - type: "diamond", shape: {cx: 0, cy: 0, width: 0, height: 0}, buildPath: function (t, e) { - var n = e.cx, i = e.cy, r = e.width / 2, o = e.height / 2; - t.moveTo(n, i - o), t.lineTo(n + r, i), t.lineTo(n, i + o), t.lineTo(n - r, i), t.closePath() - } - }), RC = xx.extend({ - type: "pin", shape: {x: 0, y: 0, width: 0, height: 0}, buildPath: function (t, e) { - var n = e.x, i = e.y, r = e.width / 5 * 3, o = Math.max(r, e.height), a = r / 2, s = a * a / (o - a), - l = i - o + a + s, u = Math.asin(s / a), h = Math.cos(u) * a, c = Math.sin(u), p = Math.cos(u), - f = .6 * a, d = .7 * a; - t.moveTo(n - h, l + s), t.arc(n, l, a, Math.PI - u, 2 * Math.PI + u), t.bezierCurveTo(n + h - c * f, l + s + p * f, n, i - d, n, i), t.bezierCurveTo(n, i - d, n - h + c * f, l + s + p * f, n - h, l + s), t.closePath() - } - }), EC = xx.extend({ - type: "arrow", shape: {x: 0, y: 0, width: 0, height: 0}, buildPath: function (t, e) { - var n = e.height, i = e.width, r = e.x, o = e.y, a = i / 3 * 2; - t.moveTo(r, o), t.lineTo(r + a, o + n), t.lineTo(r, o + n / 4 * 3), t.lineTo(r - a, o + n), t.lineTo(r, o), t.closePath() - } - }), zC = {line: Gx, rect: Gx, roundRect: Gx, square: Gx, circle: Nx, diamond: OC, pin: RC, arrow: EC, triangle: PC}, - BC = { - line: function (t, e, n, i, r) { - var o = 2; - r.x = t, r.y = e + i / 2 - o / 2, r.width = n, r.height = o - }, rect: function (t, e, n, i, r) { - r.x = t, r.y = e, r.width = n, r.height = i - }, roundRect: function (t, e, n, i, r) { - r.x = t, r.y = e, r.width = n, r.height = i, r.r = Math.min(n, i) / 4 - }, square: function (t, e, n, i, r) { - var o = Math.min(n, i); - r.x = t, r.y = e, r.width = o, r.height = o - }, circle: function (t, e, n, i, r) { - r.cx = t + n / 2, r.cy = e + i / 2, r.r = Math.min(n, i) / 2 - }, diamond: function (t, e, n, i, r) { - r.cx = t + n / 2, r.cy = e + i / 2, r.width = n, r.height = i - }, pin: function (t, e, n, i, r) { - r.x = t + n / 2, r.y = e + i / 2, r.width = n, r.height = i - }, arrow: function (t, e, n, i, r) { - r.x = t + n / 2, r.y = e + i / 2, r.width = n, r.height = i - }, triangle: function (t, e, n, i, r) { - r.cx = t + n / 2, r.cy = e + i / 2, r.width = n, r.height = i - } - }, NC = {}; - y(zC, function (t, e) { - NC[e] = new t - }); - var FC = xx.extend({ - type: "symbol", - shape: {symbolType: "", x: 0, y: 0, width: 0, height: 0}, - calculateTextPosition: function (t, e, n) { - var i = Hn(t, e, n), r = this.shape; - return r && "pin" === r.symbolType && "inside" === e.position && (i.y = n.y + .4 * n.height), i - }, - buildPath: function (t, e, n) { - var i = e.symbolType; - if ("none" !== i) { - var r = NC[i]; - r || (i = "rect", r = NC[i]), BC[i](e.x, e.y, e.width, e.height, r.shape), r.buildPath(t, r.shape, n) - } - } - }), HC = new LC, VC = new wm(100), - GC = ["symbol", "symbolSize", "symbolKeepAspect", "color", "backgroundColor", "dashArrayX", "dashArrayY", "dashLineOffset", "maxTileWidth", "maxTileHeight"], - WC = G, XC = y, YC = M, UC = D, qC = "5.0.0", jC = {zrender: "5.0.1"}, ZC = 1, KC = 800, $C = 900, JC = 1e3, - QC = 2e3, tI = 5e3, eI = 1e3, nI = 1100, iI = 2e3, rI = 3e3, oI = 4e3, aI = 4500, sI = 4600, lI = 5e3, uI = 6e3, - hI = 7e3, cI = { - PROCESSOR: {FILTER: JC, SERIES_FILTER: KC, STATISTIC: tI}, - VISUAL: { - LAYOUT: eI, - PROGRESSIVE_LAYOUT: nI, - GLOBAL: iI, - CHART: rI, - POST_CHART_LAYOUT: sI, - COMPONENT: oI, - BRUSH: lI, - CHART_ITEM: aI, - ARIA: uI, - DECAL: hI - } - }, pI = "__flagInMainProcess", fI = "__optionUpdated", dI = "__needsUpdateStatus", gI = /^[a-zA-Z0-9_]+$/, - yI = "__connectUpdateStatus", vI = 0, mI = 1, _I = 2, xI = function (t) { - function n() { - return null !== t && t.apply(this, arguments) || this - } - - return e(n, t), n - }(Uv), wI = xI.prototype; - wI.on = tp("on"), wI.off = tp("off"); - var bI, SI, TI, MI, CI, II, AI, DI, kI, LI, PI, OI, RI, EI, zI, BI, NI, FI, HI, VI, GI, WI = function (t) { - function n(e, n, i) { - function r(t, e) { - return t.__prio - e.__prio - } - - var o = t.call(this, new $M) || this; - o._chartsViews = [], o._chartsMap = {}, o._componentsViews = [], o._componentsMap = {}, o._pendingActions = [], i = i || {}, "string" == typeof n && (n = QI[n]), o._dom = e; - var a = "canvas", l = !1, u = o._zr = Qr(e, { - renderer: i.renderer || a, - devicePixelRatio: i.devicePixelRatio, - width: i.width, - height: i.height, - useDirtyRect: null == i.useDirtyRect ? l : i.useDirtyRect - }); - o._throttledZrFlush = Ch(Ev(u.flush, u), 17), n = s(n), n && xu(n, !0), o._theme = n, o._locale = Us(i.locale || BS), o._coordSysMgr = new ET; - var h = o._api = NI(o); - return Qn(JI, r), Qn(jI, r), o._scheduler = new EM(o, h, jI, JI), o._messageCenter = new xI, o._labelManager = new yC, o._initEvents(), o.resize = Ev(o.resize, o), u.animation.on("frame", o._onframe, o), LI(u, o), PI(u, o), X(o), o - } - - return e(n, t), n.prototype._onframe = function () { - if (!this._disposed) { - GI(this); - var t = this._scheduler; - if (this[fI]) { - var e = this[fI].silent; - this[pI] = !0, bI(this), MI.update.call(this), this._zr.flush(), this[pI] = !1, this[fI] = !1, DI.call(this, e), kI.call(this, e) - } else if (t.unfinished) { - var n = ZC, i = this._model, r = this._api; - t.unfinished = !1; - do { - var o = +new Date; - t.performSeriesTasks(i), t.performDataProcessorTasks(i), II(this, i), t.performVisualTasks(i), zI(this, this._model, r, "remain"), n -= +new Date - o - } while (n > 0 && t.unfinished); - t.unfinished || this._zr.flush() - } - } - }, n.prototype.getDom = function () { - return this._dom - }, n.prototype.getId = function () { - return this.id - }, n.prototype.getZr = function () { - return this._zr - }, n.prototype.setOption = function (t, e, n) { - if (!this._disposed) { - var i, r, o; - if (UC(e) && (n = e.lazyUpdate, i = e.silent, r = e.replaceMerge, o = e.transition, e = e.notMerge), this[pI] = !0, !this._model || e) { - var a = new BT(this._api), s = this._theme, l = this._model = new CT; - l.scheduler = this._scheduler, l.init(null, null, null, s, this._locale, a) - } - this._model.setOption(t, {replaceMerge: r}, ZI), HI(this, o), n ? (this[fI] = {silent: i}, this[pI] = !1, this.getZr().wakeUp()) : (bI(this), MI.update.call(this), this._zr.flush(), this[fI] = !1, this[pI] = !1, DI.call(this, i), kI.call(this, i)) - } - }, n.prototype.setTheme = function () { - console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0") - }, n.prototype.getModel = function () { - return this._model - }, n.prototype.getOption = function () { - return this._model && this._model.getOption() - }, n.prototype.getWidth = function () { - return this._zr.getWidth() - }, n.prototype.getHeight = function () { - return this._zr.getHeight() - }, n.prototype.getDevicePixelRatio = function () { - return this._zr.painter.dpr || window.devicePixelRatio || 1 - }, n.prototype.getRenderedCanvas = function (t) { - if (wv.canvasSupported) { - t = h({}, t || {}), t.pixelRatio = t.pixelRatio || 1, t.backgroundColor = t.backgroundColor || this._model.get("backgroundColor"); - var e = this._zr; - return e.painter.getRenderedCanvas(t) - } - }, n.prototype.getSvgDataURL = function () { - if (wv.svgSupported) { - var t = this._zr, e = t.storage.getDisplayList(); - return y(e, function (t) { - t.stopAnimation(null, !0) - }), t.painter.toDataURL() - } - }, n.prototype.getDataURL = function (t) { - if (!this._disposed) { - t = t || {}; - var e = t.excludeComponents, n = this._model, i = [], r = this; - XC(e, function (t) { - n.eachComponent({mainType: t}, function (t) { - var e = r._componentsMap[t.__viewId]; - e.group.ignore || (i.push(e), e.group.ignore = !0) - }) - }); - var o = "svg" === this._zr.painter.getType() ? this.getSvgDataURL() : this.getRenderedCanvas(t).toDataURL("image/" + (t && t.type || "png")); - return XC(i, function (t) { - t.group.ignore = !1 - }), o - } - }, n.prototype.getConnectedDataURL = function (t) { - if (!this._disposed && wv.canvasSupported) { - var e = "svg" === t.type, n = this.group, i = Math.min, r = Math.max, o = 1 / 0; - if (nA[n]) { - var a = o, l = o, u = -o, h = -o, c = [], p = t && t.pixelRatio || 1; - y(eA, function (o) { - if (o.group === n) { - var p = e ? o.getZr().painter.getSvgDom().innerHTML : o.getRenderedCanvas(s(t)), - f = o.getDom().getBoundingClientRect(); - a = i(f.left, a), l = i(f.top, l), u = r(f.right, u), h = r(f.bottom, h), c.push({ - dom: p, - left: f.left, - top: f.top - }) - } - }), a *= p, l *= p, u *= p, h *= p; - var f = u - a, d = h - l, g = Rv(), v = Qr(g, {renderer: e ? "svg" : "canvas"}); - if (v.resize({width: f, height: d}), e) { - var m = ""; - return XC(c, function (t) { - var e = t.left - a, n = t.top - l; - m += '' + t.dom + "" - }), v.painter.getSvgRoot().innerHTML = m, t.connectedBackgroundColor && v.painter.setBackgroundColor(t.connectedBackgroundColor), v.refreshImmediately(), v.painter.toDataURL() - } - return t.connectedBackgroundColor && v.add(new Gx({ - shape: {x: 0, y: 0, width: f, height: d}, - style: {fill: t.connectedBackgroundColor} - })), XC(c, function (t) { - var e = new zx({style: {x: t.left * p - a, y: t.top * p - l, image: t.dom}}); - v.add(e) - }), v.refreshImmediately(), g.toDataURL("image/" + (t && t.type || "png")) - } - return this.getDataURL(t) - } - }, n.prototype.convertToPixel = function (t, e) { - return CI(this, "convertToPixel", t, e) - }, n.prototype.convertFromPixel = function (t, e) { - return CI(this, "convertFromPixel", t, e) - }, n.prototype.containPixel = function (t, e) { - if (!this._disposed) { - var n, i = this._model, r = jo(i, t); - return y(r, function (t, i) { - i.indexOf("Models") >= 0 && y(t, function (t) { - var r = t.coordinateSystem; - if (r && r.containPoint) n = n || !!r.containPoint(e); else if ("seriesModels" === i) { - var o = this._chartsMap[t.__viewId]; - o && o.containPoint && (n = n || o.containPoint(e, t)) - } - }, this) - }, this), !!n - } - }, n.prototype.getVisual = function (t, e) { - var n = this._model, i = jo(n, t, {defaultMainType: "series"}), r = i.seriesModel, o = r.getData(), - a = i.hasOwnProperty("dataIndexInside") ? i.dataIndexInside : i.hasOwnProperty("dataIndex") ? o.indexOfRawIndex(i.dataIndex) : null; - return null != a ? Vh(o, a, e) : Gh(o, e) - }, n.prototype.getViewOfComponentModel = function (t) { - return this._componentsMap[t.__viewId] - }, n.prototype.getViewOfSeriesModel = function (t) { - return this._chartsMap[t.__viewId] - }, n.prototype._initEvents = function () { - var t = this; - XC(YI, function (e) { - var n = function (n) { - var i, r = t.getModel(), o = n.target, a = "globalout" === e; - if (a ? i = {} : o && Wc(o, function (t) { - var e = Gb(t); - if (e && null != e.dataIndex) { - var n = e.dataModel || r.getSeriesByIndex(e.seriesIndex); - return i = n && n.getDataParams(e.dataIndex, e.dataType) || {}, !0 - } - return e.eventData ? (i = h({}, e.eventData), !0) : void 0 - }, !0), i) { - var s = i.componentType, l = i.componentIndex; - ("markLine" === s || "markPoint" === s || "markArea" === s) && (s = "series", l = i.seriesIndex); - var u = s && null != l && r.getComponent(s, l), - c = u && t["series" === u.mainType ? "_chartsMap" : "_componentsMap"][u.__viewId]; - i.event = n, i.type = e, t._$eventProcessor.eventInfo = { - targetEl: o, - packedEvent: i, - model: u, - view: c - }, t.trigger(e, i) - } - }; - n.zrEventfulCallAtLast = !0, t._zr.on(e, n, t) - }), XC(qI, function (e, n) { - t._messageCenter.on(n, function (t) { - this.trigger(n, t) - }, t) - }), XC(["selectchanged"], function (e) { - t._messageCenter.on(e, function (t) { - this.trigger(e, t) - }, t) - }), pc(this._messageCenter, this, this._model) - }, n.prototype.isDisposed = function () { - return this._disposed - }, n.prototype.clear = function () { - this._disposed || this.setOption({series: []}, !0) - }, n.prototype.dispose = function () { - if (!this._disposed) { - this._disposed = !0, Ko(this.getDom(), oA, ""); - var t = this._api, e = this._model; - XC(this._componentsViews, function (n) { - n.dispose(e, t) - }), XC(this._chartsViews, function (n) { - n.dispose(e, t) - }), this._zr.dispose(), delete eA[this.id] - } - }, n.prototype.resize = function (t) { - if (!this._disposed) { - this._zr.resize(t); - var e = this._model; - if (this._loadingFX && this._loadingFX.resize(), e) { - var n = e.resetOption("media"), i = t && t.silent; - this[pI] = !0, n && bI(this), MI.update.call(this, { - type: "resize", - animation: {duration: 0} - }), this[pI] = !1, DI.call(this, i), kI.call(this, i) - } - } - }, n.prototype.showLoading = function (t, e) { - if (!this._disposed && (UC(t) && (e = t, t = ""), t = t || "default", this.hideLoading(), tA[t])) { - var n = tA[t](this._api, e), i = this._zr; - this._loadingFX = n, i.add(n) - } - }, n.prototype.hideLoading = function () { - this._disposed || (this._loadingFX && this._zr.remove(this._loadingFX), this._loadingFX = null) - }, n.prototype.makeActionFromEvent = function (t) { - var e = h({}, t); - return e.type = qI[t.type], e - }, n.prototype.dispatchAction = function (t, e) { - if (!this._disposed && (UC(e) || (e = {silent: !!e}), UI[t.type] && this._model)) { - if (this[pI]) return void this._pendingActions.push(t); - var n = e.silent; - AI.call(this, t, n); - var i = e.flush; - i ? this._zr.flush() : i !== !1 && wv.browser.weChat && this._throttledZrFlush(), DI.call(this, n), kI.call(this, n) - } - }, n.prototype.updateLabelLayout = function () { - var t = this._labelManager; - t.updateLayoutConfig(this._api), t.layout(this._api), t.processLabelsOverall() - }, n.prototype.appendData = function (t) { - if (!this._disposed) { - var e = t.seriesIndex, n = this.getModel(), i = n.getSeriesByIndex(e); - i.appendData(t), this._scheduler.unfinished = !0, this.getZr().wakeUp() - } - }, n.internalField = function () { - function t(t) { - for (var e = [], n = t.currentStates, i = 0; i < n.length; i++) { - var r = n[i]; - "emphasis" !== r && "blur" !== r && "select" !== r && e.push(r) - } - t.selected && t.states.select && e.push("select"), t.hoverState === jb && t.states.emphasis ? e.push("emphasis") : t.hoverState === qb && t.states.blur && e.push("blur"), t.useStates(e) - } - - function n(t, e) { - var n = t._zr, i = n.storage, r = 0; - i.traverse(function (t) { - t.isGroup || r++ - }), r > e.get("hoverLayerThreshold") && !wv.node && !wv.worker && e.eachSeries(function (e) { - if (!e.preventUsingHoverLayer) { - var n = t._chartsMap[e.__viewId]; - n.__alive && n.group.traverse(function (t) { - t.states.emphasis && (t.states.emphasis.hoverLayer = !0) - }) - } - }) - } - - function i(t, e) { - var n = t.get("blendMode") || null; - e.group.traverse(function (t) { - t.isGroup || (t.style.blend = n), t.eachPendingDisplayable && t.eachPendingDisplayable(function (t) { - t.style.blend = n - }) - }) - } - - function r(t, e) { - if (!t.preventAutoZ) { - var n = t.get("z"), i = t.get("zlevel"); - e.group.traverse(function (t) { - if (!t.isGroup) { - null != n && (t.z = n), null != i && (t.zlevel = i); - var e = t.getTextContent(), r = t.getTextGuideLine(); - if (e && (e.z = t.z, e.zlevel = t.zlevel, e.z2 = t.z2 + 2), r) { - var o = t.textGuideLineConfig && t.textGuideLineConfig.showAbove; - r.z = t.z, r.zlevel = t.zlevel, r.z2 = t.z2 + (o ? 1 : -1) - } - } - }) - } - } - - function o(t, e) { - e.group.traverse(function (t) { - if (!gs(t)) { - var e = t.getTextContent(), n = t.getTextGuideLine(); - t.stateTransition && (t.stateTransition = null), e && e.stateTransition && (e.stateTransition = null), n && n.stateTransition && (n.stateTransition = null), t.hasState() ? (t.prevStates = t.currentStates, t.clearStates()) : t.prevStates && (t.prevStates = null) - } - }) - } - - function a(e, n) { - var i = e.getModel("stateAnimation"), r = e.isAnimationEnabled(), o = i.get("duration"), - a = o > 0 ? {duration: o, delay: i.get("delay"), easing: i.get("easing")} : null; - n.group.traverse(function (e) { - if (e.states && e.states.emphasis) { - if (gs(e)) return; - if (e instanceof xx && Ja(e), e.__dirty) { - var n = e.prevStates; - n && e.useStates(n) - } - if (r) { - e.stateTransition = a; - var i = e.getTextContent(), o = e.getTextGuideLine(); - i && (i.stateTransition = a), o && (o.stateTransition = a) - } - e.__dirty && t(e) - } - }) - } - - bI = function (t) { - var e = t._scheduler; - e.restorePipelines(t._model), e.prepareStageTasks(), SI(t, !0), SI(t, !1), e.plan() - }, SI = function (t, e) { - function n(t) { - var n = t.__requireNewView; - t.__requireNewView = !1; - var u = "_ec_" + t.id + "_" + t.type, h = !n && a[u]; - if (!h) { - var c = ta(t.type), p = e ? mM.getClass(c.main, c.sub) : wM.getClass(c.sub); - h = new p, h.init(i, l), a[u] = h, o.push(h), s.add(h.group) - } - t.__viewId = h.__id = u, h.__alive = !0, h.__model = t, h.group.__ecComponentInfo = { - mainType: t.mainType, - index: t.componentIndex - }, !e && r.prepareView(h, t, i, l) - } - - for (var i = t._model, r = t._scheduler, o = e ? t._componentsViews : t._chartsViews, a = e ? t._componentsMap : t._chartsMap, s = t._zr, l = t._api, u = 0; u < o.length; u++) o[u].__alive = !1; - e ? i.eachComponent(function (t, e) { - "series" !== t && n(e) - }) : i.eachSeries(n); - for (var u = 0; u < o.length;) { - var h = o[u]; - h.__alive ? u++ : (!e && h.renderTask.dispose(), s.remove(h.group), h.dispose(i, l), o.splice(u, 1), a[h.__id] === h && delete a[h.__id], h.__id = h.group.__ecComponentInfo = null) - } - }, TI = function (t, e, n, i, r) { - function o(i) { - i && i.__alive && i[e] && i[e](i.__model, a, t._api, n) - } - - var a = t._model; - if (a.setUpdatePayload(n), !i) return void XC([].concat(t._componentsViews).concat(t._chartsViews), o); - var s = {}; - s[i + "Id"] = n[i + "Id"], s[i + "Index"] = n[i + "Index"], s[i + "Name"] = n[i + "Name"]; - var l = {mainType: i, query: s}; - r && (l.subType = r); - var u, h = n.excludeSeriesId; - null != h && (u = U(), XC(Ao(h), function (t) { - var e = Vo(t, null); - null != e && u.set(e, !0) - })), a && a.eachComponent(l, function (e) { - u && null != u.get(e.id) || ($a(n) && !n.notBlur ? e instanceof vM && Ha(e, n, t._api) : Ka(n) && e instanceof vM && (Va(e, n, t._api), Ga(e), VI(t)), o(t["series" === i ? "_chartsMap" : "_componentsMap"][e.__viewId])) - }, t) - }, MI = { - prepareAndUpdate: function (t) { - bI(this), MI.update.call(this, t) - }, update: function (t) { - var e = this._model, n = this._api, i = this._zr, r = this._coordSysMgr, o = this._scheduler; - if (e) { - e.setUpdatePayload(t), o.restoreData(e, t), o.performSeriesTasks(e), r.create(e, n), o.performDataProcessorTasks(e, t), II(this, e), r.update(e, n), OI(e), o.performVisualTasks(e, t), RI(this, e, n, t); - var a = e.get("backgroundColor") || "transparent", s = e.get("darkMode"); - if (wv.canvasSupported) i.setBackgroundColor(a), null != s && "auto" !== s && i.setDarkMode(s); else { - var l = an(a); - a = gn(l, "rgb"), 0 === l[3] && (a = "transparent") - } - BI(e, n) - } - }, updateTransform: function (t) { - var e = this, n = this._model, i = this._api; - if (n) { - n.setUpdatePayload(t); - var r = []; - n.eachComponent(function (o, a) { - if ("series" !== o) { - var s = e.getViewOfComponentModel(a); - if (s && s.__alive) if (s.updateTransform) { - var l = s.updateTransform(a, n, i, t); - l && l.update && r.push(s) - } else r.push(s) - } - }); - var o = U(); - n.eachSeries(function (r) { - var a = e._chartsMap[r.__viewId]; - if (a.updateTransform) { - var s = a.updateTransform(r, n, i, t); - s && s.update && o.set(r.uid, 1) - } else o.set(r.uid, 1) - }), OI(n), this._scheduler.performVisualTasks(n, t, { - setDirty: !0, - dirtyMap: o - }), zI(this, n, i, t, o), BI(n, this._api) - } - }, updateView: function (t) { - var e = this._model; - e && (e.setUpdatePayload(t), wM.markUpdateMethod(t, "updateView"), OI(e), this._scheduler.performVisualTasks(e, t, {setDirty: !0}), RI(this, this._model, this._api, t), BI(e, this._api)) - }, updateVisual: function (t) { - var e = this, n = this._model; - n && (n.setUpdatePayload(t), n.eachSeries(function (t) { - t.getData().clearAllVisual() - }), wM.markUpdateMethod(t, "updateVisual"), OI(n), this._scheduler.performVisualTasks(n, t, { - visualType: "visual", - setDirty: !0 - }), n.eachComponent(function (i, r) { - if ("series" !== i) { - var o = e.getViewOfComponentModel(r); - o && o.__alive && o.updateVisual(r, n, e._api, t) - } - }), n.eachSeries(function (i) { - var r = e._chartsMap[i.__viewId]; - r.updateVisual(i, n, e._api, t) - }), BI(n, this._api)) - }, updateLayout: function (t) { - MI.update.call(this, t) - } - }, CI = function (t, e, n, i) { - if (!t._disposed) for (var r, o = t._model, a = t._coordSysMgr.getCoordinateSystems(), s = jo(o, n), l = 0; l < a.length; l++) { - var u = a[l]; - if (u[e] && null != (r = u[e](o, s, i))) return r - } - }, II = function (t, e) { - var n = t._chartsMap, i = t._scheduler; - e.eachSeries(function (t) { - i.updateStreamModes(t, n[t.__viewId]) - }) - }, AI = function (t, e) { - var n = this, i = this.getModel(), r = t.type, o = t.escapeConnect, a = UI[r], s = a.actionInfo, - l = (s.update || "update").split(":"), u = l.pop(), p = null != l[0] && ta(l[0]); - this[pI] = !0; - var f = [t], d = !1; - t.batch && (d = !0, f = v(t.batch, function (e) { - return e = c(h({}, e), t), e.batch = null, e - })); - var g, y = [], m = Ka(t), _ = $a(t) || m; - if (XC(f, function (t) { - g = a.action(t, n._model, n._api), g = g || h({}, t), g.type = s.event || g.type, y.push(g), _ ? (TI(n, u, t, "series"), VI(n)) : p && TI(n, u, t, p.main, p.sub) - }), "none" === u || _ || p || (this[fI] ? (bI(this), MI.update.call(this, t), this[fI] = !1) : MI[u].call(this, t)), g = d ? { - type: s.event || r, - escapeConnect: o, - batch: y - } : y[0], this[pI] = !1, !e) { - var x = this._messageCenter; - if (x.trigger(g.type, g), m) { - var w = { - type: "selectchanged", - escapeConnect: o, - selected: Wa(i), - isFromClick: t.isFromClick || !1, - fromAction: t.type, - fromActionPayload: t - }; - x.trigger(w.type, w) - } - } - }, DI = function (t) { - for (var e = this._pendingActions; e.length;) { - var n = e.shift(); - AI.call(this, n, t) - } - }, kI = function (t) { - !t && this.trigger("updated") - }, LI = function (t, e) { - t.on("rendered", function (n) { - e.trigger("rendered", n), !t.animation.isFinished() || e[fI] || e._scheduler.unfinished || e._pendingActions.length || e.trigger("finished") - }) - }, PI = function (t, e) { - t.on("mouseover", function (t) { - var n = t.target, i = Wc(n, ja); - if (i) { - var r = Gb(i); - Fa(r.seriesIndex, r.focus, r.blurScope, e._api, !0), Da(i, t), VI(e) - } - }).on("mouseout", function (t) { - var n = t.target, i = Wc(n, ja); - if (i) { - var r = Gb(i); - Fa(r.seriesIndex, r.focus, r.blurScope, e._api, !1), ka(i, t), VI(e) - } - }).on("click", function (t) { - var n = t.target, i = Wc(n, function (t) { - return null != Gb(t).dataIndex - }, !0); - if (i) { - var r = i.selected ? "unselect" : "select", o = Gb(i); - e._api.dispatchAction({ - type: r, - dataType: o.dataType, - dataIndexInside: o.dataIndex, - seriesIndex: o.seriesIndex, - isFromClick: !0 - }) - } - }) - }, OI = function (t) { - t.clearColorPalette(), t.eachSeries(function (t) { - t.clearColorPalette() - }) - }, RI = function (t, e, n, i) { - EI(t, e, n, i), XC(t._chartsViews, function (t) { - t.__alive = !1 - }), zI(t, e, n, i), XC(t._chartsViews, function (t) { - t.__alive || t.remove(e, n) - }) - }, EI = function (t, e, n, i, s) { - XC(s || t._componentsViews, function (t) { - var s = t.__model; - o(s, t), t.render(s, e, n, i), r(s, t), a(s, t) - }) - }, zI = function (t, e, s, l, u) { - var h = t._scheduler, c = t._labelManager; - c.clearLabels(); - var p = !1; - e.eachSeries(function (e) { - var n = t._chartsMap[e.__viewId]; - n.__alive = !0; - var r = n.renderTask; - h.updatePayload(r, l), o(e, n), u && u.get(e.uid) && r.dirty(), r.perform(h.getPerformArgs(r)) && (p = !0), e.__transientTransitionOpt = null, n.group.silent = !!e.get("silent"), i(e, n), Ga(e), c.addLabelsOfSeries(n) - }), h.unfinished = p || h.unfinished, c.updateLayoutConfig(s), c.layout(s), c.processLabelsOverall(), e.eachSeries(function (e) { - var n = t._chartsMap[e.__viewId]; - r(e, n), a(e, n) - }), n(t, e) - }, BI = function (t, e) { - XC($I, function (n) { - n(t, e) - }) - }, VI = function (t) { - t[dI] = !0, t.getZr().wakeUp() - }, GI = function (e) { - e[dI] && (e.getZr().storage.traverse(function (e) { - gs(e) || t(e) - }), e[dI] = !1) - }, NI = function (t) { - return new (function (n) { - function i() { - return null !== n && n.apply(this, arguments) || this - } - - return e(i, n), i.prototype.getCoordinateSystems = function () { - return t._coordSysMgr.getCoordinateSystems() - }, i.prototype.getComponentByElement = function (e) { - for (; e;) { - var n = e.__ecComponentInfo; - if (null != n) return t._model.getComponent(n.mainType, n.index); - e = e.parent - } - }, i.prototype.enterEmphasis = function (e, n) { - La(e, n), VI(t) - }, i.prototype.leaveEmphasis = function (e, n) { - Pa(e, n), VI(t) - }, i.prototype.enterBlur = function (e) { - Oa(e), VI(t) - }, i.prototype.leaveBlur = function (e) { - Ra(e), VI(t) - }, i.prototype.enterSelect = function (e) { - Ea(e), VI(t) - }, i.prototype.leaveSelect = function (e) { - za(e), VI(t) - }, i.prototype.getModel = function () { - return t.getModel() - }, i.prototype.getViewOfComponentModel = function (e) { - return t.getViewOfComponentModel(e) - }, i.prototype.getViewOfSeriesModel = function (e) { - return t.getViewOfSeriesModel(e) - }, i - }(OT))(t) - }, FI = function (t) { - function e(t, e) { - for (var n = 0; n < t.length; n++) { - var i = t[n]; - i[yI] = e - } - } - - XC(qI, function (n, i) { - t._messageCenter.on(i, function (n) { - if (nA[t.group] && t[yI] !== vI) { - if (n && n.escapeConnect) return; - var i = t.makeActionFromEvent(n), r = []; - XC(eA, function (e) { - e !== t && e.group === t.group && r.push(e) - }), e(r, vI), XC(r, function (t) { - t[yI] !== mI && t.dispatchAction(i) - }), e(r, _I) - } - }) - }) - }, HI = function (t, e) { - var n = t._model; - y(Ao(e), function (t) { - var e, i = t.from, r = t.to; - null == r && Io(e); - var o = {includeMainTypes: ["series"], enableAll: !1, enableNone: !1}, a = i ? jo(n, i, o) : null, - s = jo(n, r, o), l = s.seriesModel; - null == l && (e = ""), a && a.seriesModel !== l && (e = ""), null != e && Io(e), l.__transientTransitionOpt = { - from: i ? i.dimension : null, - to: r.dimension, - dividingMethod: t.dividingMethod - } - }) - } - }(), n - }(Uv), XI = WI.prototype; - XI.on = Qc("on"), XI.off = Qc("off"), XI.one = function (t, e, n) { - function i() { - for (var n = [], o = 0; o < arguments.length; o++) n[o] = arguments[o]; - e && e.apply && e.apply(this, n), r.off(t, i) - } - - var r = this; - this.on.call(this, t, i, n) - }; - var YI = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout", "contextmenu"], - UI = {}, qI = {}, jI = [], ZI = [], KI = [], $I = [], JI = [], QI = {}, tA = {}, eA = {}, nA = {}, - iA = +new Date - 0, rA = +new Date - 0, oA = "_echarts_instance_", aA = rp, sA = Uu; - vp(iI, kM), vp(aI, PM), vp(aI, OM), vp(iI, JM), vp(aI, QM), vp(hI, Jc), up(xu), hp($C, wu), _p("default", kh), fp({ - type: Qb, - event: Qb, - update: Qb - }, K), fp({type: tS, event: tS, update: tS}, K), fp({type: eS, event: eS, update: eS}, K), fp({ - type: nS, - event: nS, - update: nS - }, K), fp({type: iS, event: iS, update: iS}, K), lp("light", HM), lp("dark", YM); - var lA, uA, hA, cA, pA, fA, dA, gA, yA, vA, mA, _A, xA, wA, bA = {}, SA = function () { - function t(t, e, n, i, r, o) { - this._old = t, this._new = e, this._oldKeyGetter = n || Ap, this._newKeyGetter = i || Ap, this.context = r, this._diffModeMultiple = "multiple" === o - } - - return t.prototype.add = function (t) { - return this._add = t, this - }, t.prototype.update = function (t) { - return this._update = t, this - }, t.prototype.updateManyToOne = function (t) { - return this._updateManyToOne = t, this - }, t.prototype.updateOneToMany = function (t) { - return this._updateOneToMany = t, this - }, t.prototype.remove = function (t) { - return this._remove = t, this - }, t.prototype.execute = function () { - this[this._diffModeMultiple ? "_executeMultiple" : "_executeOneToOne"]() - }, t.prototype._executeOneToOne = function () { - var t = this._old, e = this._new, n = {}, i = new Array(t.length), r = new Array(e.length); - this._initIndexMap(t, null, i, "_oldKeyGetter"), this._initIndexMap(e, n, r, "_newKeyGetter"); - for (var o = 0; o < t.length; o++) { - var a = i[o], s = n[a], l = Ip(s); - if (l > 1) { - var u = s.shift(); - 1 === s.length && (n[a] = s[0]), this._update && this._update(u, o) - } else 1 === l ? (n[a] = null, this._update && this._update(s, o)) : this._remove && this._remove(o) - } - this._performRestAdd(r, n) - }, t.prototype._executeMultiple = function () { - var t = this._old, e = this._new, n = {}, i = {}, r = [], o = []; - this._initIndexMap(t, n, r, "_oldKeyGetter"), this._initIndexMap(e, i, o, "_newKeyGetter"); - for (var a = 0; a < r.length; a++) { - var s = r[a], l = n[s], u = i[s], h = Ip(l), c = Ip(u); - if (h > 1 && 1 === c) this._updateManyToOne && this._updateManyToOne(u, l), i[s] = null; else if (1 === h && c > 1) this._updateOneToMany && this._updateOneToMany(u, l), i[s] = null; else if (1 === h && 1 === c) this._update && this._update(u, l), i[s] = null; else if (h > 1) for (var p = 0; h > p; p++) this._remove && this._remove(l[p]); else this._remove && this._remove(l) - } - this._performRestAdd(o, i) - }, t.prototype._performRestAdd = function (t, e) { - for (var n = 0; n < t.length; n++) { - var i = t[n], r = e[i], o = Ip(r); - if (o > 1) for (var a = 0; o > a; a++) this._add && this._add(r[a]); else 1 === o && this._add && this._add(r); - e[i] = null - } - }, t.prototype._initIndexMap = function (t, e, n, i) { - for (var r = this._diffModeMultiple, o = 0; o < t.length; o++) { - var a = "_ec_" + this[i](t[o], o); - if (r || (n[o] = a), e) { - var s = e[a], l = Ip(s); - 0 === l ? (e[a] = o, r && n.push(a)) : 1 === l ? e[a] = [s, o] : s.push(o) - } - } - }, t - }(), TA = function () { - function t(t) { - this.otherDims = {}, null != t && h(this, t) - } - - return t - }(), MA = Math.floor, CA = D, IA = v, AA = "undefined", DA = -1, kA = "e\x00\x00", LA = { - "float": typeof Float64Array === AA ? Array : Float64Array, - "int": typeof Int32Array === AA ? Array : Int32Array, - ordinal: Array, - number: Array, - time: Array - }, PA = typeof Uint32Array === AA ? Array : Uint32Array, OA = typeof Int32Array === AA ? Array : Int32Array, - RA = typeof Uint16Array === AA ? Array : Uint16Array, - EA = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_rawData", "_dimValueGetter", "_count", "_rawCount", "_nameDimIdx", "_idDimIdx", "_nameRepeatCount"], - zA = ["_extent", "_approximateExtent", "_rawExtent"], BA = function () { - function t(t, e) { - this.type = "list", this._count = 0, this._rawCount = 0, this._storage = {}, this._storageArr = [], this._nameList = [], this._idList = [], this._visual = {}, this._layout = {}, this._itemVisuals = [], this._itemLayouts = [], this._graphicEls = [], this._rawExtent = {}, this._extent = {}, this._approximateExtent = {}, this._calculationInfo = {}, this.hasItemOption = !0, this.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "lttbDownSample", "map"], this.CHANGABLE_METHODS = ["filterSelf", "selectRange"], this.DOWNSAMPLE_METHODS = ["downSample", "lttbDownSample"], this.getRawIndex = pA, t = t || ["x", "y"]; - for (var n = {}, i = [], r = {}, o = 0; o < t.length; o++) { - var a = t[o], s = C(a) ? new TA({name: a}) : a instanceof TA ? a : new TA(a), l = s.name; - s.type = s.type || "float", s.coordDim || (s.coordDim = l, s.coordDimIndex = 0); - var u = s.otherDims = s.otherDims || {}; - i.push(l), n[l] = s, s.index = o, s.createInvertedIndices && (r[l] = []), 0 === u.itemName && (this._nameDimIdx = o, this._nameOrdinalMeta = s.ordinalMeta), 0 === u.itemId && (this._idDimIdx = o, this._idOrdinalMeta = s.ordinalMeta) - } - this.dimensions = i, this._dimensionInfos = n, this.hostModel = e, this._dimensionsSummary = Dp(this), this._invertedIndicesMap = r, this.userOutput = this._dimensionsSummary.userOutput - } - - return t.prototype.getDimension = function (t) { - return ("number" == typeof t || !isNaN(t) && !this._dimensionInfos.hasOwnProperty(t)) && (t = this.dimensions[t]), t - }, t.prototype.getDimensionInfo = function (t) { - return this._dimensionInfos[this.getDimension(t)] - }, t.prototype.getDimensionsOnCoord = function () { - return this._dimensionsSummary.dataDimsOnCoord.slice() - }, t.prototype.mapDimension = function (t, e) { - var n = this._dimensionsSummary; - if (null == e) return n.encodeFirstDimNotExtra[t]; - var i = n.encode[t]; - return i ? i[e] : null - }, t.prototype.mapDimensionsAll = function (t) { - var e = this._dimensionsSummary, n = e.encode[t]; - return (n || []).slice() - }, t.prototype.initData = function (t, e, n) { - var i = Su(t) || g(t), r = i ? new YT(t, this.dimensions.length) : t; - this._rawData = r; - var o = r.getSource().sourceFormat; - this._storage = {}, this._indices = null, this._dontMakeIdFromName = null != this._idDimIdx || o === yT || !!r.fillStorage, this._nameList = (e || []).slice(), this._idList = [], this._nameRepeatCount = {}, n || (this.hasItemOption = !1), this.defaultDimValueGetter = lA[o], this._dimValueGetter = n = n || this.defaultDimValueGetter, this._dimValueGetterArrayRows = lA.arrayRows, this._rawExtent = {}, this._initDataFromProvider(0, r.count()), r.pure && (this.hasItemOption = !1) - }, t.prototype.getProvider = function () { - return this._rawData - }, t.prototype.appendData = function (t) { - var e = this._rawData, n = this.count(); - e.appendData(t); - var i = e.count(); - e.persistent || (i += n), this._initDataFromProvider(n, i, !0) - }, t.prototype.appendValues = function (t, e) { - for (var n = this._storage, i = this.dimensions, r = i.length, o = this._rawExtent, a = this.count(), s = a + Math.max(t.length, e ? e.length : 0), l = 0; r > l; l++) { - var u = i[l]; - o[u] || (o[u] = _A()), cA(n, this._dimensionInfos[u], s, !0) - } - for (var h = IA(i, function (t) { - return o[t] - }), c = this._storageArr = IA(i, function (t) { - return n[t] - }), p = [], f = a; s > f; f++) { - for (var d = f - a, g = 0; r > g; g++) { - var u = i[g], y = this._dimValueGetterArrayRows(t[d] || p, u, d, g); - c[g][f] = y; - var v = h[g]; - y < v[0] && (v[0] = y), y > v[1] && (v[1] = y) - } - e && (this._nameList[f] = e[d], this._dontMakeIdFromName || yA(this, f)) - } - this._rawCount = this._count = s, this._extent = {}, uA(this) - }, t.prototype._initDataFromProvider = function (t, e, n) { - if (!(t >= e)) { - for (var i = this._rawData, r = this._storage, o = this.dimensions, a = o.length, s = this._dimensionInfos, l = this._nameList, u = this._idList, h = this._rawExtent, c = i.getSource().sourceFormat, p = c === pT, f = 0; a > f; f++) { - var d = o[f]; - h[d] || (h[d] = _A()), cA(r, s[d], e, n) - } - var g = this._storageArr = IA(o, function (t) { - return r[t] - }), y = IA(o, function (t) { - return h[t] - }); - if (i.fillStorage) i.fillStorage(t, e, g, y); else for (var v = [], m = t; e > m; m++) { - v = i.getItem(m, v); - for (var _ = 0; a > _; _++) { - var d = o[_], x = g[_], w = this._dimValueGetter(v, d, m, _); - x[m] = w; - var b = y[_]; - w < b[0] && (b[0] = w), w > b[1] && (b[1] = w) - } - if (p && !i.pure && v) { - var S = v.name; - null == l[m] && null != S && (l[m] = Vo(S, null)); - var T = v.id; - null == u[m] && null != T && (u[m] = Vo(T, null)) - } - this._dontMakeIdFromName || yA(this, m) - } - !i.persistent && i.clean && i.clean(), this._rawCount = this._count = e, this._extent = {}, uA(this) - } - }, t.prototype.count = function () { - return this._count - }, t.prototype.getIndices = function () { - var t, e = this._indices; - if (e) { - var n = e.constructor, i = this._count; - if (n === Array) { - t = new n(i); - for (var r = 0; i > r; r++) t[r] = e[r] - } else t = new n(e.buffer, 0, i) - } else { - var n = hA(this); - t = new n(this.count()); - for (var r = 0; r < t.length; r++) t[r] = r - } - return t - }, t.prototype.getByDimIdx = function (t, e) { - if (!(e >= 0 && e < this._count)) return 0 / 0; - var n = this._storageArr[t]; - return n ? n[this.getRawIndex(e)] : 0 / 0 - }, t.prototype.get = function (t, e) { - if (!(e >= 0 && e < this._count)) return 0 / 0; - var n = this._storage[t]; - return n ? n[this.getRawIndex(e)] : 0 / 0 - }, t.prototype.getByRawIndex = function (t, e) { - if (!(e >= 0 && e < this._rawCount)) return 0 / 0; - var n = this._storage[t]; - return n ? n[e] : 0 / 0 - }, t.prototype.getValues = function (t, e) { - var n = []; - T(t) || (e = t, t = this.dimensions); - for (var i = 0, r = t.length; r > i; i++) n.push(this.get(t[i], e)); - return n - }, t.prototype.hasValue = function (t) { - for (var e = this._dimensionsSummary.dataDimsOnCoord, n = 0, i = e.length; i > n; n++) if (isNaN(this.get(e[n], t))) return !1; - return !0 - }, t.prototype.getDataExtent = function (t) { - t = this.getDimension(t); - var e = this._storage[t], n = _A(); - if (!e) return n; - var i, r = this.count(), o = !this._indices; - if (o) return this._rawExtent[t].slice(); - if (i = this._extent[t]) return i.slice(); - i = n; - for (var a = i[0], s = i[1], l = 0; r > l; l++) { - var u = this.getRawIndex(l), h = e[u]; - a > h && (a = h), h > s && (s = h) - } - return i = [a, s], this._extent[t] = i, i - }, t.prototype.getApproximateExtent = function (t) { - return t = this.getDimension(t), this._approximateExtent[t] || this.getDataExtent(t) - }, t.prototype.setApproximateExtent = function (t, e) { - e = this.getDimension(e), this._approximateExtent[e] = t.slice() - }, t.prototype.getCalculationInfo = function (t) { - return this._calculationInfo[t] - }, t.prototype.setCalculationInfo = function (t, e) { - CA(t) ? h(this._calculationInfo, t) : this._calculationInfo[t] = e - }, t.prototype.getSum = function (t) { - var e = this._storage[t], n = 0; - if (e) for (var i = 0, r = this.count(); r > i; i++) { - var o = this.get(t, i); - isNaN(o) || (n += o) - } - return n - }, t.prototype.getMedian = function (t) { - var e = []; - this.each(t, function (t) { - isNaN(t) || e.push(t) - }); - var n = e.sort(function (t, e) { - return t - e - }), i = this.count(); - return 0 === i ? 0 : i % 2 === 1 ? n[(i - 1) / 2] : (n[i / 2] + n[i / 2 - 1]) / 2 - }, t.prototype.rawIndexOf = function (t, e) { - var n = t && this._invertedIndicesMap[t], i = n[e]; - return null == i || isNaN(i) ? DA : i - }, t.prototype.indexOfName = function (t) { - for (var e = 0, n = this.count(); n > e; e++) if (this.getName(e) === t) return e; - return -1 - }, t.prototype.indexOfRawIndex = function (t) { - if (t >= this._rawCount || 0 > t) return -1; - if (!this._indices) return t; - var e = this._indices, n = e[t]; - if (null != n && n < this._count && n === t) return t; - for (var i = 0, r = this._count - 1; r >= i;) { - var o = (i + r) / 2 | 0; - if (e[o] < t) i = o + 1; else { - if (!(e[o] > t)) return o; - r = o - 1 - } - } - return -1 - }, t.prototype.indicesOfNearest = function (t, e, n) { - var i = this._storage, r = i[t], o = []; - if (!r) return o; - null == n && (n = 1 / 0); - for (var a = 1 / 0, s = -1, l = 0, u = 0, h = this.count(); h > u; u++) { - var c = this.getRawIndex(u), p = e - r[c], f = Math.abs(p); - n >= f && ((a > f || f === a && p >= 0 && 0 > s) && (a = f, s = p, l = 0), p === s && (o[l++] = u)) - } - return o.length = l, o - }, t.prototype.getRawDataItem = function (t) { - if (this._rawData.persistent) return this._rawData.getItem(this.getRawIndex(t)); - for (var e = [], n = 0; n < this.dimensions.length; n++) { - var i = this.dimensions[n]; - e.push(this.get(i, t)) - } - return e - }, t.prototype.getName = function (t) { - var e = this.getRawIndex(t), n = this._nameList[e]; - return null == n && null != this._nameDimIdx && (n = gA(this, this._nameDimIdx, this._nameOrdinalMeta, e)), null == n && (n = ""), n - }, t.prototype.getId = function (t) { - return dA(this, this.getRawIndex(t)) - }, t.prototype.each = function (t, e, n, i) { - var r = this; - if (this._count) { - "function" == typeof t && (i = n, n = e, e = t, t = []); - for (var o = n || i || this, a = IA(vA(t), this.getDimension, this), s = a.length, l = IA(a, function (t) { - return r._dimensionInfos[t].index - }), u = this._storageArr, h = 0, c = this.count(); c > h; h++) { - var p = this.getRawIndex(h); - switch (s) { - case 0: - e.call(o, h); - break; - case 1: - e.call(o, u[l[0]][p], h); - break; - case 2: - e.call(o, u[l[0]][p], u[l[1]][p], h); - break; - default: - for (var f = 0, d = []; s > f; f++) d[f] = u[l[f]][p]; - d[f] = h, e.apply(o, d) - } - } - } - }, t.prototype.filterSelf = function (t, e, n, i) { - var r = this; - if (this._count) { - "function" == typeof t && (i = n, n = e, e = t, t = []); - for (var o = n || i || this, a = IA(vA(t), this.getDimension, this), s = this.count(), l = hA(this), u = new l(s), h = [], c = a.length, p = 0, f = IA(a, function (t) { - return r._dimensionInfos[t].index - }), d = f[0], g = this._storageArr, y = 0; s > y; y++) { - var v = void 0, m = this.getRawIndex(y); - if (0 === c) v = e.call(o, y); else if (1 === c) { - var _ = g[d][m]; - v = e.call(o, _, y) - } else { - for (var x = 0; c > x; x++) h[x] = g[f[x]][m]; - h[x] = y, v = e.apply(o, h) - } - v && (u[p++] = m) - } - return s > p && (this._indices = u), this._count = p, this._extent = {}, this.getRawIndex = this._indices ? fA : pA, this - } - }, t.prototype.selectRange = function (t) { - var e = this, n = this._count; - if (n) { - var i = []; - for (var r in t) t.hasOwnProperty(r) && i.push(r); - var o = i.length; - if (o) { - var a = this.count(), s = hA(this), l = new s(a), u = 0, h = i[0], c = IA(i, function (t) { - return e._dimensionInfos[t].index - }), p = t[h][0], f = t[h][1], d = this._storageArr, g = !1; - if (!this._indices) { - var y = 0; - if (1 === o) { - for (var v = d[c[0]], m = 0; n > m; m++) { - var _ = v[m]; - (_ >= p && f >= _ || isNaN(_)) && (l[u++] = y), y++ - } - g = !0 - } else if (2 === o) { - for (var v = d[c[0]], x = d[c[1]], w = t[i[1]][0], b = t[i[1]][1], m = 0; n > m; m++) { - var _ = v[m], S = x[m]; - (_ >= p && f >= _ || isNaN(_)) && (S >= w && b >= S || isNaN(S)) && (l[u++] = y), y++ - } - g = !0 - } - } - if (!g) if (1 === o) for (var m = 0; a > m; m++) { - var T = this.getRawIndex(m), _ = d[c[0]][T]; - (_ >= p && f >= _ || isNaN(_)) && (l[u++] = T) - } else for (var m = 0; a > m; m++) { - for (var M = !0, T = this.getRawIndex(m), C = 0; o > C; C++) { - var I = i[C], _ = d[c[C]][T]; - (_ < t[I][0] || _ > t[I][1]) && (M = !1) - } - M && (l[u++] = this.getRawIndex(m)) - } - return a > u && (this._indices = l), this._count = u, this._extent = {}, this.getRawIndex = this._indices ? fA : pA, this - } - } - }, t.prototype.mapArray = function (t, e, n, i) { - "function" == typeof t && (i = n, n = e, e = t, t = []), n = n || i || this; - var r = []; - return this.each(t, function () { - r.push(e && e.apply(this, arguments)) - }, n), r - }, t.prototype.map = function (t, e, n, i) { - var r = n || i || this, o = IA(vA(t), this.getDimension, this), a = mA(this, o), s = a._storage; - a._indices = this._indices, a.getRawIndex = a._indices ? fA : pA; - for (var l = [], u = o.length, h = this.count(), c = [], p = a._rawExtent, f = 0; h > f; f++) { - for (var d = 0; u > d; d++) c[d] = this.get(o[d], f); - c[u] = f; - var g = e && e.apply(r, c); - if (null != g) { - "object" != typeof g && (l[0] = g, g = l); - for (var y = this.getRawIndex(f), v = 0; v < g.length; v++) { - var m = o[v], _ = g[v], x = p[m], w = s[m]; - w && (w[y] = _), _ < x[0] && (x[0] = _), _ > x[1] && (x[1] = _) - } - } - } - return a - }, t.prototype.downSample = function (t, e, n, i) { - for (var r = mA(this, [t]), o = r._storage, a = [], s = MA(1 / e), l = o[t], u = this.count(), h = r._rawExtent[t], c = new (hA(this))(u), p = 0, f = 0; u > f; f += s) { - s > u - f && (s = u - f, a.length = s); - for (var d = 0; s > d; d++) { - var g = this.getRawIndex(f + d); - a[d] = l[g] - } - var y = n(a), v = this.getRawIndex(Math.min(f + i(a, y) || 0, u - 1)); - l[v] = y, y < h[0] && (h[0] = y), y > h[1] && (h[1] = y), c[p++] = v - } - return r._count = p, r._indices = c, r.getRawIndex = fA, r - }, t.prototype.lttbDownSample = function (t, e) { - var n, i, r, o = mA(this, []), a = o._storage, s = a[t], l = this.count(), u = new (hA(this))(l), h = 0, - c = MA(1 / e), p = this.getRawIndex(0); - u[h++] = p; - for (var f = 1; l - 1 > f; f += c) { - for (var d = Math.min(f + c, l - 1), g = Math.min(f + 2 * c, l), y = (g + d) / 2, v = 0, m = d; g > m; m++) { - var _ = this.getRawIndex(m), x = s[_]; - isNaN(x) || (v += x) - } - v /= g - d; - var w = f, b = Math.min(f + c, l), S = f - 1, T = s[p]; - n = -1, r = w; - for (var m = w; b > m; m++) { - var _ = this.getRawIndex(m), x = s[_]; - isNaN(x) || (i = Math.abs((S - y) * (x - T) - (S - m) * (v - T)), i > n && (n = i, r = _)) - } - u[h++] = r, p = r - } - return u[h++] = this.getRawIndex(l - 1), o._count = h, o._indices = u, o.getRawIndex = fA, o - }, t.prototype.getItemModel = function (t) { - var e = this.hostModel, n = this.getRawDataItem(t); - return new AS(n, e, e && e.ecModel) - }, t.prototype.diff = function (t) { - var e = this; - return new SA(t ? t.getIndices() : [], this.getIndices(), function (e) { - return dA(t, e) - }, function (t) { - return dA(e, t) - }) - }, t.prototype.getVisual = function (t) { - var e = this._visual; - return e && e[t] - }, t.prototype.setVisual = function (t, e) { - this._visual = this._visual || {}, CA(t) ? h(this._visual, t) : this._visual[t] = e - }, t.prototype.getItemVisual = function (t, e) { - var n = this._itemVisuals[t], i = n && n[e]; - return null == i ? this.getVisual(e) : i - }, t.prototype.hasItemVisual = function () { - return this._itemVisuals.length > 0 - }, t.prototype.ensureUniqueItemVisual = function (t, e) { - var n = this._itemVisuals, i = n[t]; - i || (i = n[t] = {}); - var r = i[e]; - return null == r && (r = this.getVisual(e), T(r) ? r = r.slice() : CA(r) && (r = h({}, r)), i[e] = r), r - }, t.prototype.setItemVisual = function (t, e, n) { - var i = this._itemVisuals[t] || {}; - this._itemVisuals[t] = i, CA(e) ? h(i, e) : i[e] = n - }, t.prototype.clearAllVisual = function () { - this._visual = {}, this._itemVisuals = [] - }, t.prototype.setLayout = function (t, e) { - if (CA(t)) for (var n in t) t.hasOwnProperty(n) && this.setLayout(n, t[n]); else this._layout[t] = e - }, t.prototype.getLayout = function (t) { - return this._layout[t] - }, t.prototype.getItemLayout = function (t) { - return this._itemLayouts[t] - }, t.prototype.setItemLayout = function (t, e, n) { - this._itemLayouts[t] = n ? h(this._itemLayouts[t] || {}, e) : e - }, t.prototype.clearItemLayouts = function () { - this._itemLayouts.length = 0 - }, t.prototype.setItemGraphicEl = function (t, e) { - var n = this.hostModel; - if (e) { - var i = Gb(e); - i.dataIndex = t, i.dataType = this.dataType, i.seriesIndex = n && n.seriesIndex, "group" === e.type && e.traverse(xA, e) - } - this._graphicEls[t] = e - }, t.prototype.getItemGraphicEl = function (t) { - return this._graphicEls[t] - }, t.prototype.eachItemGraphicEl = function (t, e) { - y(this._graphicEls, function (n, i) { - n && t && t.call(e, n, i) - }) - }, t.prototype.cloneShallow = function (e) { - if (!e) { - var n = IA(this.dimensions, this.getDimensionInfo, this); - e = new t(n, this.hostModel) - } - if (e._storage = this._storage, e._storageArr = this._storageArr, wA(e, this), this._indices) { - var i = this._indices.constructor; - if (i === Array) { - var r = this._indices.length; - e._indices = new i(r); - for (var o = 0; r > o; o++) e._indices[o] = this._indices[o] - } else e._indices = new i(this._indices) - } else e._indices = null; - return e.getRawIndex = e._indices ? fA : pA, e - }, t.prototype.wrapMethod = function (t, e) { - var n = this[t]; - "function" == typeof n && (this.__wrappedMethods = this.__wrappedMethods || [], this.__wrappedMethods.push(t), this[t] = function () { - var t = n.apply(this, arguments); - return e.apply(this, [t].concat(H(arguments))) - }) - }, t.internalField = function () { - function e(t, e, n, i) { - return Hu(t[i], this._dimensionInfos[e]) - } - - function n(t) { - var e = t.constructor; - return e === Array ? t.slice() : new e(t) - } - - lA = { - arrayRows: e, objectRows: function (t, e) { - return Hu(t[e], this._dimensionInfos[e]) - }, keyedColumns: e, original: function (t, e, n, i) { - var r = t && (null == t.value ? t : t.value); - return !this._rawData.pure && Lo(t) && (this.hasItemOption = !0), Hu(r instanceof Array ? r[i] : r, this._dimensionInfos[e]) - }, typedArray: function (t, e, n, i) { - return t[i] - } - }, uA = function (t) { - var e = t._invertedIndicesMap; - y(e, function (n, i) { - var r = t._dimensionInfos[i], o = r.ordinalMeta; - if (o) { - n = e[i] = new OA(o.categories.length); - for (var a = 0; a < n.length; a++) n[a] = DA; - for (var a = 0; a < t._count; a++) n[t.get(i, a)] = a - } - }) - }, gA = function (t, e, n, i) { - var r, o = t._storageArr[e]; - return o && (r = o[i], n && n.categories.length && (r = n.categories[r])), Vo(r, null) - }, hA = function (t) { - return t._rawCount > 65535 ? PA : RA - }, cA = function (t, e, n, i) { - var r = LA[e.type], o = e.name; - if (i) { - var a = t[o], s = a && a.length; - if (s !== n) { - for (var l = new r(n), u = 0; s > u; u++) l[u] = a[u]; - t[o] = l - } - } else t[o] = new r(n) - }, pA = function (t) { - return t - }, fA = function (t) { - return t < this._count && t >= 0 ? this._indices[t] : -1 - }, dA = function (t, e) { - var n = t._idList[e]; - return null == n && null != t._idDimIdx && (n = gA(t, t._idDimIdx, t._idOrdinalMeta, e)), null == n && (n = kA + e), n - }, vA = function (t) { - return T(t) || (t = null != t ? [t] : []), t - }, mA = function (e, i) { - var r = e.dimensions, o = new t(IA(r, e.getDimensionInfo, e), e.hostModel); - wA(o, e); - for (var a = o._storage = {}, s = e._storage, l = o._storageArr = [], u = 0; u < r.length; u++) { - var h = r[u]; - s[h] && (p(i, h) >= 0 ? (a[h] = n(s[h]), o._rawExtent[h] = _A(), o._extent[h] = null) : a[h] = s[h], l.push(a[h])) - } - return o - }, _A = function () { - return [1 / 0, -1 / 0] - }, xA = function (t) { - var e = Gb(t), n = Gb(this); - e.seriesIndex = n.seriesIndex, e.dataIndex = n.dataIndex, e.dataType = n.dataType - }, wA = function (t, e) { - y(EA.concat(e.__wrappedMethods || []), function (n) { - e.hasOwnProperty(n) && (t[n] = e[n]) - }), t.__wrappedMethods = e.__wrappedMethods, y(zA, function (n) { - t[n] = s(e[n]) - }), t._calculationInfo = h({}, e._calculationInfo) - }, yA = function (t, e) { - var n = t._nameList, i = t._idList, r = t._nameDimIdx, o = t._idDimIdx, a = n[e], s = i[e]; - if (null == a && null != r && (n[e] = a = gA(t, r, t._nameOrdinalMeta, e)), null == s && null != o && (i[e] = s = gA(t, o, t._idOrdinalMeta, e)), null == s && null != a) { - var l = t._nameRepeatCount, u = l[a] = (l[a] || 0) + 1; - s = a, u > 1 && (s += "__ec__" + u), i[e] = s - } - } - }(), t - }(), NA = function () { - function t(t) { - this.coordSysDims = [], this.axisMap = U(), this.categoryAxisMap = U(), this.coordSysName = t - } - - return t - }(), FA = { - cartesian2d: function (t, e, n, i) { - var r = t.getReferringComponents("xAxis", Rb).models[0], - o = t.getReferringComponents("yAxis", Rb).models[0]; - e.coordSysDims = ["x", "y"], n.set("x", r), n.set("y", o), Np(r) && (i.set("x", r), e.firstCategoryDimIndex = 0), Np(o) && (i.set("y", o), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = 1)) - }, singleAxis: function (t, e, n, i) { - var r = t.getReferringComponents("singleAxis", Rb).models[0]; - e.coordSysDims = ["single"], n.set("single", r), Np(r) && (i.set("single", r), e.firstCategoryDimIndex = 0) - }, polar: function (t, e, n, i) { - var r = t.getReferringComponents("polar", Rb).models[0], o = r.findAxisModel("radiusAxis"), - a = r.findAxisModel("angleAxis"); - e.coordSysDims = ["radius", "angle"], n.set("radius", o), n.set("angle", a), Np(o) && (i.set("radius", o), e.firstCategoryDimIndex = 0), Np(a) && (i.set("angle", a), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = 1)) - }, geo: function (t, e) { - e.coordSysDims = ["lng", "lat"] - }, parallel: function (t, e, n, i) { - var r = t.ecModel, o = r.getComponent("parallel", t.get("parallelIndex")), - a = e.coordSysDims = o.dimensions.slice(); - y(o.parallelAxisIndex, function (t, o) { - var s = r.getComponent("parallelAxis", t), l = a[o]; - n.set(l, s), Np(s) && (i.set(l, s), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = o)) - }) - } - }, HA = function () { - function t(t) { - this._setting = t || {}, this._extent = [1 / 0, -1 / 0] - } - - return t.prototype.getSetting = function (t) { - return this._setting[t] - }, t.prototype.unionExtent = function (t) { - var e = this._extent; - t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]) - }, t.prototype.unionExtentFromData = function (t, e) { - this.unionExtent(t.getApproximateExtent(e)) - }, t.prototype.getExtent = function () { - return this._extent.slice() - }, t.prototype.setExtent = function (t, e) { - var n = this._extent; - isNaN(t) || (n[0] = t), isNaN(e) || (n[1] = e) - }, t.prototype.isInExtentRange = function (t) { - return this._extent[0] <= t && this._extent[1] >= t - }, t.prototype.isBlank = function () { - return this._isBlank - }, t.prototype.setBlank = function (t) { - this._isBlank = t - }, t - }(); - ua(HA, {registerWhenExtend: !0}); - var VA = function () { - function t(t) { - this.categories = t.categories || [], this._needCollect = t.needCollect, this._deduplication = t.deduplication - } - - return t.createByAxisModel = function (e) { - var n = e.option, i = n.data, r = i && v(i, Yp); - return new t({categories: r, needCollect: !r, deduplication: n.dedplication !== !1}) - }, t.prototype.getOrdinal = function (t) { - return this._getOrCreateMap().get(t) - }, t.prototype.parseAndCollect = function (t) { - var e, n = this._needCollect; - if ("string" != typeof t && !n) return t; - if (n && !this._deduplication) return e = this.categories.length, this.categories[e] = t, e; - var i = this._getOrCreateMap(); - return e = i.get(t), null == e && (n ? (e = this.categories.length, this.categories[e] = t, i.set(t, e)) : e = 0 / 0), e - }, t.prototype._getOrCreateMap = function () { - return this._map || (this._map = U(this.categories)) - }, t - }(), GA = so, WA = function (t) { - function n(e) { - var n = t.call(this, e) || this; - n.type = "ordinal"; - var i = n.getSetting("ordinalMeta"); - return i || (i = new VA({})), T(i) && (i = new VA({ - categories: v(i, function (t) { - return D(t) ? t.value : t - }) - })), n._ordinalMeta = i, n._categorySortInfo = [], n._extent = n.getSetting("extent") || [0, i.categories.length - 1], n - } - - return e(n, t), n.prototype.parse = function (t) { - return "string" == typeof t ? this._ordinalMeta.getOrdinal(t) : Math.round(t) - }, n.prototype.contain = function (t) { - return t = this.parse(t), Kp(t, this._extent) && null != this._ordinalMeta.categories[t] - }, n.prototype.normalize = function (t) { - return t = this.getCategoryIndex(this.parse(t)), $p(t, this._extent) - }, n.prototype.scale = function (t) { - return t = this.getCategoryIndex(t), Math.round(Jp(t, this._extent)) - }, n.prototype.getTicks = function () { - for (var t = [], e = this._extent, n = e[0]; n <= e[1];) t.push({value: this.getCategoryIndex(n)}), n++; - return t - }, n.prototype.getMinorTicks = function () { - }, n.prototype.setCategorySortInfo = function (t) { - this._categorySortInfo = t - }, n.prototype.getCategorySortInfo = function () { - return this._categorySortInfo - }, n.prototype.getCategoryIndex = function (t) { - return this._categorySortInfo.length ? this._categorySortInfo[t].beforeSortIndex : t - }, n.prototype.getRawIndex = function (t) { - return this._categorySortInfo.length ? this._categorySortInfo[t].ordinalNumber : t - }, n.prototype.getLabel = function (t) { - if (!this.isBlank()) { - var e = this.getRawIndex(t.value), n = this._ordinalMeta.categories[e]; - return null == n ? "" : n + "" - } - }, n.prototype.count = function () { - return this._extent[1] - this._extent[0] + 1 - }, n.prototype.unionExtentFromData = function (t, e) { - this.unionExtent(t.getApproximateExtent(e)) - }, n.prototype.isInExtentRange = function (t) { - return t = this.getCategoryIndex(t), this._extent[0] <= t && this._extent[1] >= t - }, n.prototype.getOrdinalMeta = function () { - return this._ordinalMeta - }, n.prototype.niceTicks = function () { - }, n.prototype.niceExtent = function () { - }, n.type = "ordinal", n - }(HA); - HA.registerClass(WA); - var XA = so, YA = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = "interval", e._interval = 0, e._intervalPrecision = 2, e - } - - return e(n, t), n.prototype.parse = function (t) { - return t - }, n.prototype.contain = function (t) { - return Kp(t, this._extent) - }, n.prototype.normalize = function (t) { - return $p(t, this._extent) - }, n.prototype.scale = function (t) { - return Jp(t, this._extent) - }, n.prototype.setExtent = function (t, e) { - var n = this._extent; - isNaN(t) || (n[0] = parseFloat(t)), isNaN(e) || (n[1] = parseFloat(e)) - }, n.prototype.unionExtent = function (t) { - var e = this._extent; - t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]), this.setExtent(e[0], e[1]) - }, n.prototype.getInterval = function () { - return this._interval - }, n.prototype.setInterval = function (t) { - this._interval = t, this._niceExtent = this._extent.slice(), this._intervalPrecision = qp(t) - }, n.prototype.getTicks = function (t) { - var e = this._interval, n = this._extent, i = this._niceExtent, r = this._intervalPrecision, o = []; - if (!e) return o; - var a = 1e4; - n[0] < i[0] && o.push(t ? {value: XA(i[0] - e, r)} : {value: n[0]}); - for (var s = i[0]; s <= i[1] && (o.push({value: s}), s = XA(s + e, r), s !== o[o.length - 1].value);) if (o.length > a) return []; - var l = o.length ? o[o.length - 1].value : i[1]; - return n[1] > l && o.push(t ? {value: XA(l + e, r)} : {value: n[1]}), o - }, n.prototype.getMinorTicks = function (t) { - for (var e = this.getTicks(!0), n = [], i = this.getExtent(), r = 1; r < e.length; r++) { - for (var o = e[r], a = e[r - 1], s = 0, l = [], u = o.value - a.value, h = u / t; t - 1 > s;) { - var c = XA(a.value + (s + 1) * h); - c > i[0] && c < i[1] && l.push(c), s++ - } - n.push(l) - } - return n - }, n.prototype.getLabel = function (t, e) { - if (null == t) return ""; - var n = e && e.precision; - null == n ? n = ho(t.value) || 0 : "auto" === n && (n = this._intervalPrecision); - var i = XA(t.value, n, !0); - return ml(i) - }, n.prototype.niceTicks = function (t, e, n) { - t = t || 5; - var i = this._extent, r = i[1] - i[0]; - if (isFinite(r)) { - 0 > r && (r = -r, i.reverse()); - var o = Up(i, t, e, n); - this._intervalPrecision = o.intervalPrecision, this._interval = o.interval, this._niceExtent = o.niceTickExtent - } - }, n.prototype.niceExtent = function (t) { - var e = this._extent; - if (e[0] === e[1]) if (0 !== e[0]) { - var n = e[0]; - t.fixMax ? e[0] -= n / 2 : (e[1] += n / 2, e[0] -= n / 2) - } else e[1] = 1; - var i = e[1] - e[0]; - isFinite(i) || (e[0] = 0, e[1] = 1), this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval); - var r = this._interval; - t.fixMin || (e[0] = XA(Math.floor(e[0] / r) * r)), t.fixMax || (e[1] = XA(Math.ceil(e[1] / r) * r)) - }, n.type = "interval", n - }(HA); - HA.registerClass(YA); - var UA = "__ec_stack_", qA = .5, jA = "undefined" != typeof Float32Array ? Float32Array : Array, ZA = { - seriesType: "bar", plan: wh(), reset: function (t) { - if (lf(t) && uf(t)) { - var e = t.getData(), n = t.coordinateSystem, i = n.master.getRect(), r = n.getBaseAxis(), - o = n.getOtherAxis(r), a = e.mapDimension(o.dim), s = e.mapDimension(r.dim), l = o.isHorizontal(), - u = l ? 0 : 1, h = af(rf([t]), r, t).width; - return h > qA || (h = qA), { - progress: function (t, e) { - for (var c, p = t.count, f = new jA(2 * p), d = new jA(2 * p), g = new jA(p), y = [], v = [], m = 0, _ = 0; null != (c = t.next());) v[u] = e.get(a, c), v[1 - u] = e.get(s, c), y = n.dataToPoint(v, null, y), d[m] = l ? i.x + i.width : y[0], f[m++] = y[0], d[m] = l ? y[1] : i.y + i.height, f[m++] = y[1], g[_++] = c; - e.setLayout({ - largePoints: f, - largeDataIndices: g, - largeBackgroundPoints: d, - barWidth: h, - valueAxisStart: hf(r, o, !1), - backgroundStart: l ? i.x : i.y, - valueAxisHorizontal: l - }) - } - } - } - } - }, KA = function (t, e, n, i) { - for (; i > n;) { - var r = n + i >>> 1; - t[r][1] < e ? n = r + 1 : i = r - } - return n - }, $A = function (t) { - function n(e) { - var n = t.call(this, e) || this; - return n.type = "time", n - } - - return e(n, t), n.prototype.getLabel = function (t) { - var e = this.getSetting("useUTC"); - return Qs(t.value, YS[Js(Ks(this._minLevelUnit))] || YS.second, e, this.getSetting("locale")) - }, n.prototype.getFormattedLabel = function (t, e, n) { - var i = this.getSetting("useUTC"), r = this.getSetting("locale"); - return tl(t, e, n, r, i) - }, n.prototype.getTicks = function () { - var t = this._interval, e = this._extent, n = []; - if (!t) return n; - n.push({value: e[0], level: 0}); - var i = this.getSetting("useUTC"), r = mf(this._minLevelUnit, this._approxInterval, i, e); - return n = n.concat(r), n.push({value: e[1], level: 0}), n - }, n.prototype.niceExtent = function (t) { - var e = this._extent; - if (e[0] === e[1] && (e[0] -= VS, e[1] += VS), e[1] === -1 / 0 && 1 / 0 === e[0]) { - var n = new Date; - e[1] = +new Date(n.getFullYear(), n.getMonth(), n.getDate()), e[0] = e[1] - VS - } - this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval) - }, n.prototype.niceTicks = function (t, e, n) { - t = t || 10; - var i = this._extent, r = i[1] - i[0]; - this._approxInterval = r / t, null != e && this._approxInterval < e && (this._approxInterval = e), null != n && this._approxInterval > n && (this._approxInterval = n); - var o = JA.length, a = Math.min(KA(JA, this._approxInterval, 0, o), o - 1); - this._interval = JA[a][1], this._minLevelUnit = JA[Math.max(a - 1, 0)][0] - }, n.prototype.parse = function (t) { - return "number" == typeof t ? t : +yo(t) - }, n.prototype.contain = function (t) { - return Kp(this.parse(t), this._extent) - }, n.prototype.normalize = function (t) { - return $p(this.parse(t), this._extent) - }, n.prototype.scale = function (t) { - return Jp(t, this._extent) - }, n.type = "time", n - }(YA), - JA = [["second", NS], ["minute", FS], ["hour", HS], ["quarter-day", 6 * HS], ["half-day", 12 * HS], ["day", 1.2 * VS], ["half-week", 3.5 * VS], ["week", 7 * VS], ["month", 31 * VS], ["quarter", 95 * VS], ["half-year", GS / 2], ["year", GS]]; - HA.registerClass($A); - var QA = HA.prototype, tD = YA.prototype, eD = ho, nD = so, iD = Math.floor, rD = Math.ceil, oD = Math.pow, - aD = Math.log, sD = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = "log", e.base = 10, e._originalScale = new YA, e._interval = 0, e - } - - return e(n, t), n.prototype.getTicks = function (t) { - var e = this._originalScale, n = this._extent, i = e.getExtent(), r = tD.getTicks.call(this, t); - return v(r, function (t) { - var e = t.value, r = so(oD(this.base, e)); - return r = e === n[0] && this._fixMin ? _f(r, i[0]) : r, r = e === n[1] && this._fixMax ? _f(r, i[1]) : r, {value: r} - }, this) - }, n.prototype.setExtent = function (t, e) { - var n = this.base; - t = aD(t) / aD(n), e = aD(e) / aD(n), tD.setExtent.call(this, t, e) - }, n.prototype.getExtent = function () { - var t = this.base, e = QA.getExtent.call(this); - e[0] = oD(t, e[0]), e[1] = oD(t, e[1]); - var n = this._originalScale, i = n.getExtent(); - return this._fixMin && (e[0] = _f(e[0], i[0])), this._fixMax && (e[1] = _f(e[1], i[1])), e - }, n.prototype.unionExtent = function (t) { - this._originalScale.unionExtent(t); - var e = this.base; - t[0] = aD(t[0]) / aD(e), t[1] = aD(t[1]) / aD(e), QA.unionExtent.call(this, t) - }, n.prototype.unionExtentFromData = function (t, e) { - this.unionExtent(t.getApproximateExtent(e)) - }, n.prototype.niceTicks = function (t) { - t = t || 10; - var e = this._extent, n = e[1] - e[0]; - if (!(1 / 0 === n || 0 >= n)) { - var i = vo(n), r = t / n * i; - for (.5 >= r && (i *= 10); !isNaN(i) && Math.abs(i) < 1 && Math.abs(i) > 0;) i *= 10; - var o = [so(rD(e[0] / i) * i), so(iD(e[1] / i) * i)]; - this._interval = i, this._niceExtent = o - } - }, n.prototype.niceExtent = function (t) { - tD.niceExtent.call(this, t), this._fixMin = t.fixMin, this._fixMax = t.fixMax - }, n.prototype.parse = function (t) { - return t - }, n.prototype.contain = function (t) { - return t = aD(t) / aD(this.base), Kp(t, this._extent) - }, n.prototype.normalize = function (t) { - return t = aD(t) / aD(this.base), $p(t, this._extent) - }, n.prototype.scale = function (t) { - return t = Jp(t, this._extent), oD(this.base, t) - }, n.type = "log", n - }(HA), lD = sD.prototype; - lD.getMinorTicks = tD.getMinorTicks, lD.getLabel = tD.getLabel, HA.registerClass(sD); - var uD = function () { - function t(t, e, n) { - this._prepareParams(t, e, n) - } - - return t.prototype._prepareParams = function (t, e, n) { - n[1] < n[0] && (n = [0 / 0, 0 / 0]), this._dataMin = n[0], this._dataMax = n[1]; - var i = this._isOrdinal = "ordinal" === t.type; - this._needCrossZero = e.getNeedCrossZero && e.getNeedCrossZero(); - var r = this._modelMinRaw = e.get("min", !0); - M(r) ? this._modelMinNum = wf(t, r({ - min: n[0], - max: n[1] - })) : "dataMin" !== r && (this._modelMinNum = wf(t, r)); - var o = this._modelMaxRaw = e.get("max", !0); - if (M(o) ? this._modelMaxNum = wf(t, o({ - min: n[0], - max: n[1] - })) : "dataMax" !== o && (this._modelMaxNum = wf(t, o)), i) this._axisDataLen = e.getCategories().length; else { - var a = e.get("boundaryGap"), s = T(a) ? a : [a || 0, a || 0]; - this._boundaryGapInner = "boolean" == typeof s[0] || "boolean" == typeof s[1] ? [0, 0] : [Fn(s[0], 1), Fn(s[1], 1)] - } - }, t.prototype.calculate = function () { - var t = this._isOrdinal, e = this._dataMin, n = this._dataMax, i = this._axisDataLen, - r = this._boundaryGapInner, o = t ? null : n - e || Math.abs(e), - a = "dataMin" === this._modelMinRaw ? e : this._modelMinNum, - s = "dataMax" === this._modelMaxRaw ? n : this._modelMaxNum, l = null != a, u = null != s; - null == a && (a = t ? i ? 0 : 0 / 0 : e - r[0] * o), null == s && (s = t ? i ? i - 1 : 0 / 0 : n + r[1] * o), (null == a || !isFinite(a)) && (a = 0 / 0), (null == s || !isFinite(s)) && (s = 0 / 0), a > s && (a = 0 / 0, s = 0 / 0); - var h = z(a) || z(s) || t && !i; - this._needCrossZero && (a > 0 && s > 0 && !l && (a = 0), 0 > a && 0 > s && !u && (s = 0)); - var c = this._determinedMin, p = this._determinedMax; - return null != c && (a = c, l = !0), null != p && (s = p, u = !0), { - min: a, - max: s, - minFixed: l, - maxFixed: u, - isBlank: h - } - }, t.prototype.modifyDataMinMax = function (t, e) { - this[cD[t]] = e - }, t.prototype.setDeterminedMinMax = function (t, e) { - var n = hD[t]; - this[n] = e - }, t.prototype.freeze = function () { - this.frozen = !0 - }, t - }(), hD = {min: "_determinedMin", max: "_determinedMax"}, cD = {min: "_dataMin", max: "_dataMax"}, - pD = function () { - function t() { - } - - return t.prototype.getNeedCrossZero = function () { - var t = this.option; - return !t.scale - }, t.prototype.getCoordSysModel = function () { - }, t - }(), fD = {isDimensionStacked: Hp, enableDataStack: Fp, getStackedDimension: Vp}, - dD = (Object.freeze || Object)({ - createList: Ef, - getLayoutRect: kl, - dataStack: fD, - createScale: zf, - mixinAxisModelCommonMethods: Bf, - getECData: Gb, - createDimensions: zp, - createSymbol: Yc - }), gD = 1e-8, yD = function () { - function t(t, e, n) { - if (this.name = t, this.geometries = e, n) n = [n[0], n[1]]; else { - var i = this.getBoundingRect(); - n = [i.x + i.width / 2, i.y + i.height / 2] - } - this.center = n - } - - return t.prototype.getBoundingRect = function () { - var t = this._rect; - if (t) return t; - for (var e = Number.MAX_VALUE, n = [e, e], i = [-e, -e], r = [], o = [], a = this.geometries, s = 0; s < a.length; s++) if ("polygon" === a[s].type) { - var l = a[s].exterior; - Ai(l, r, o), ye(n, n, r), ve(i, i, o) - } - return 0 === s && (n[0] = n[1] = i[0] = i[1] = 0), this._rect = new Vm(n[0], n[1], i[0] - n[0], i[1] - n[1]) - }, t.prototype.contain = function (t) { - var e = this.getBoundingRect(), n = this.geometries; - if (!e.contain(t[0], t[1])) return !1; - t:for (var i = 0, r = n.length; r > i; i++) if ("polygon" === n[i].type) { - var o = n[i].exterior, a = n[i].interiors; - if (Ff(o, t[0], t[1])) { - for (var s = 0; s < (a ? a.length : 0); s++) if (Ff(a[s], t[0], t[1])) continue t; - return !0 - } - } - return !1 - }, t.prototype.transformTo = function (t, e, n, i) { - var r = this.getBoundingRect(), o = r.width / r.height; - n ? i || (i = n / o) : n = o * i; - for (var a = new Vm(t, e, n, i), s = r.calculateTransform(a), l = this.geometries, u = 0; u < l.length; u++) if ("polygon" === l[u].type) { - for (var h = l[u].exterior, c = l[u].interiors, p = 0; p < h.length; p++) ge(h[p], h[p], s); - for (var f = 0; f < (c ? c.length : 0); f++) for (var p = 0; p < c[f].length; p++) ge(c[f][p], c[f][p], s) - } - r = this._rect, r.copy(a), this.center = [r.x + r.width / 2, r.y + r.height / 2] - }, t.prototype.cloneShallow = function (e) { - null == e && (e = this.name); - var n = new t(e, this.geometries, this.center); - return n._rect = this._rect, n.transformTo = null, n - }, t - }(), vD = qo(), mD = [0, 1], _D = function () { - function t(t, e, n) { - this.onBand = !1, this.inverse = !1, this.dim = t, this.scale = e, this._extent = n || [0, 0] - } - - return t.prototype.contain = function (t) { - var e = this._extent, n = Math.min(e[0], e[1]), i = Math.max(e[0], e[1]); - return t >= n && i >= t - }, t.prototype.containData = function (t) { - return this.scale.contain(t) - }, t.prototype.getExtent = function () { - return this._extent.slice() - }, t.prototype.getPixelPrecision = function (t) { - return co(t || this.scale.getExtent(), this._extent) - }, t.prototype.setExtent = function (t, e) { - var n = this._extent; - n[0] = t, n[1] = e - }, t.prototype.dataToCoord = function (t, e) { - var n = this._extent, i = this.scale; - return t = i.normalize(t), this.onBand && "ordinal" === i.type && (n = n.slice(), id(n, i.count())), oo(t, mD, n, e) - }, t.prototype.coordToData = function (t, e) { - var n = this._extent, i = this.scale; - this.onBand && "ordinal" === i.type && (n = n.slice(), id(n, i.count())); - var r = oo(t, n, mD, e); - return this.scale.scale(r) - }, t.prototype.pointToData = function () { - }, t.prototype.getTicksCoords = function (t) { - t = t || {}; - var e = t.tickModel || this.getTickModel(), n = Xf(this, e), i = n.ticks, r = v(i, function (t) { - return { - coord: this.dataToCoord("ordinal" === this.scale.type ? this.scale.getRawIndex(t) : t), - tickValue: t - } - }, this), o = e.get("alignWithLabel"); - return rd(this, r, o, t.clamp), r - }, t.prototype.getMinorTicksCoords = function () { - if ("ordinal" === this.scale.type) return []; - var t = this.model.getModel("minorTick"), e = t.get("splitNumber"); - e > 0 && 100 > e || (e = 5); - var n = this.scale.getMinorTicks(e), i = v(n, function (t) { - return v(t, function (t) { - return {coord: this.dataToCoord(t), tickValue: t} - }, this) - }, this); - return i - }, t.prototype.getViewLabels = function () { - return Wf(this).labels - }, t.prototype.getLabelModel = function () { - return this.model.getModel("axisLabel") - }, t.prototype.getTickModel = function () { - return this.model.getModel("axisTick") - }, t.prototype.getBandWidth = function () { - var t = this._extent, e = this.scale.getExtent(), n = e[1] - e[0] + (this.onBand ? 1 : 0); - 0 === n && (n = 1); - var i = Math.abs(t[1] - t[0]); - return Math.abs(i) / n - }, t.prototype.calculateCategoryInterval = function () { - return Qf(this) - }, t - }(), xD = Gf, wD = {}; - y(["linearMap", "round", "asc", "getPrecision", "getPrecisionSafe", "getPixelPrecision", "getPercentWithPrecision", "MAX_SAFE_INTEGER", "remRadian", "isRadianAroundZero", "parseDate", "quantity", "quantityExponent", "nice", "quantile", "reformIntervals", "isNumeric", "numericToNumber"], function (t) { - wD[t] = Db[t] - }); - var bD = {}; - y(["addCommas", "toCamelCase", "normalizeCssArray", "encodeHTML", "formatTpl", "getTooltipMarker", "formatTime", "capitalFirst", "truncateText", "getTextRect"], function (t) { - bD[t] = QS[t] - }); - var SD = {parse: yo, format: Qs}, TD = {}; - y(["map", "each", "filter", "indexOf", "inherits", "reduce", "filter", "bind", "curry", "isArray", "isString", "isObject", "isFunction", "extend", "defaults", "clone", "merge"], function (t) { - TD[t] = Nv[t] - }); - var MD = ["extendShape", "extendPath", "makePath", "makeImage", "mergePath", "resizePath", "createIcon", "updateProps", "initProps", "getTransform", "clipPointsByRect", "clipRectByRect", "registerShape", "getShapeClass", "Group", "Image", "Text", "Circle", "Ellipse", "Sector", "Ring", "Polygon", "Polyline", "Rect", "Line", "BezierCurve", "Arc", "IncrementalDisplayable", "CompoundPath", "LinearGradient", "RadialGradient", "BoundingRect"], - CD = {}; - y(MD, function (t) { - CD[t] = fS[t] - }); - var ID = function () { - function t(t) { - this.type = "cartesian", this._dimList = [], this._axes = {}, this.name = t || "" - } - - return t.prototype.getAxis = function (t) { - return this._axes[t] - }, t.prototype.getAxes = function () { - return v(this._dimList, function (t) { - return this._axes[t] - }, this) - }, t.prototype.getAxesByScale = function (t) { - return t = t.toLowerCase(), _(this.getAxes(), function (e) { - return e.scale.type === t - }) - }, t.prototype.addAxis = function (t) { - var e = t.dim; - this._axes[e] = t, this._dimList.push(e) - }, t - }(), AD = ["x", "y"], DD = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = "cartesian2d", e.dimensions = AD, e - } - - return e(n, t), n.prototype.calcAffineTransform = function () { - this._transform = this._invTransform = null; - var t = this.getAxis("x").scale, e = this.getAxis("y").scale; - if (od(t) && od(e)) { - var n = t.getExtent(), i = e.getExtent(), r = this.dataToPoint([n[0], i[0]]), - o = this.dataToPoint([n[1], i[1]]), a = n[1] - n[0], s = i[1] - i[0]; - if (a && s) { - var l = (o[0] - r[0]) / a, u = (o[1] - r[1]) / s, h = r[0] - n[0] * l, c = r[1] - i[0] * u, - p = this._transform = [l, 0, 0, u, h, c]; - this._invTransform = Ue([], p) - } - } - }, n.prototype.getBaseAxis = function () { - return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAxis("x") - }, n.prototype.containPoint = function (t) { - var e = this.getAxis("x"), n = this.getAxis("y"); - return e.contain(e.toLocalCoord(t[0])) && n.contain(n.toLocalCoord(t[1])) - }, n.prototype.containData = function (t) { - return this.getAxis("x").containData(t[0]) && this.getAxis("y").containData(t[1]) - }, n.prototype.dataToPoint = function (t, e, n) { - n = n || []; - var i = t[0], r = t[1]; - if (this._transform && null != i && isFinite(i) && null != r && isFinite(r)) return ge(n, t, this._transform); - var o = this.getAxis("x"), a = this.getAxis("y"); - return n[0] = o.toGlobalCoord(o.dataToCoord(i)), n[1] = a.toGlobalCoord(a.dataToCoord(r)), n - }, n.prototype.clampData = function (t, e) { - var n = this.getAxis("x").scale, i = this.getAxis("y").scale, r = n.getExtent(), o = i.getExtent(), - a = n.parse(t[0]), s = i.parse(t[1]); - return e = e || [], e[0] = Math.min(Math.max(Math.min(r[0], r[1]), a), Math.max(r[0], r[1])), e[1] = Math.min(Math.max(Math.min(o[0], o[1]), s), Math.max(o[0], o[1])), e - }, n.prototype.pointToData = function (t, e) { - if (e = e || [], this._invTransform) return ge(e, t, this._invTransform); - var n = this.getAxis("x"), i = this.getAxis("y"); - return e[0] = n.coordToData(n.toLocalCoord(t[0])), e[1] = i.coordToData(i.toLocalCoord(t[1])), e - }, n.prototype.getOtherAxis = function (t) { - return this.getAxis("x" === t.dim ? "y" : "x") - }, n.prototype.getArea = function () { - var t = this.getAxis("x").getGlobalExtent(), e = this.getAxis("y").getGlobalExtent(), - n = Math.min(t[0], t[1]), i = Math.min(e[0], e[1]), r = Math.max(t[0], t[1]) - n, - o = Math.max(e[0], e[1]) - i; - return new Vm(n, i, r, o) - }, n - }(ID), kD = function (t) { - function n(e, n, i, r, o) { - var a = t.call(this, e, n, i) || this; - return a.index = 0, a.type = r || "value", a.position = o || "bottom", a - } - - return e(n, t), n.prototype.isHorizontal = function () { - var t = this.position; - return "top" === t || "bottom" === t - }, n.prototype.getGlobalExtent = function (t) { - var e = this.getExtent(); - return e[0] = this.toGlobalCoord(e[0]), e[1] = this.toGlobalCoord(e[1]), t && e[0] > e[1] && e.reverse(), e - }, n.prototype.pointToData = function (t, e) { - return this.coordToData(this.toLocalCoord(t["x" === this.dim ? 0 : 1]), e) - }, n.prototype.setCategorySortInfo = function (t) { - return "category" !== this.type ? !1 : (this.model.option.categorySortInfo = t, void this.scale.setCategorySortInfo(t)) - }, n - }(_D), LD = function () { - function t(t, e, n) { - this.type = "grid", this._coordsMap = {}, this._coordsList = [], this._axesMap = {}, this._axesList = [], this.axisPointerEnabled = !0, this.dimensions = AD, this._initCartesian(t, e, n), this.model = t - } - - return t.prototype.getRect = function () { - return this._rect - }, t.prototype.update = function (t, e) { - var n = this._axesMap; - this._updateScale(t, this.model), y(n.x, function (t) { - Tf(t.scale, t.model) - }), y(n.y, function (t) { - Tf(t.scale, t.model) - }); - var i = {}; - y(n.x, function (t) { - hd(n, "y", t, i) - }), y(n.y, function (t) { - hd(n, "x", t, i) - }), this.resize(this.model, e) - }, t.prototype.resize = function (t, e, n) { - function i() { - y(s, function (t) { - var e = t.isHorizontal(), n = e ? [0, a.width] : [0, a.height], i = t.inverse ? 1 : 0; - t.setExtent(n[i], n[1 - i]), pd(t, e ? a.x : a.y) - }) - } - - var r = t.getBoxLayoutParams(), o = !n && t.get("containLabel"), - a = kl(r, {width: e.getWidth(), height: e.getHeight()}); - this._rect = a; - var s = this._axesList; - i(), o && (y(s, function (t) { - if (!t.model.get(["axisLabel", "inside"])) { - var e = Df(t); - if (e) { - var n = t.isHorizontal() ? "height" : "width", i = t.model.get(["axisLabel", "margin"]); - a[n] -= e[n] + i, "top" === t.position ? a.y += e.height + i : "left" === t.position && (a.x += e.width + i) - } - } - }), i()), y(this._coordsList, function (t) { - t.calcAffineTransform() - }) - }, t.prototype.getAxis = function (t, e) { - var n = this._axesMap[t]; - return null != n ? n[e || 0] : void 0 - }, t.prototype.getAxes = function () { - return this._axesList.slice() - }, t.prototype.getCartesian = function (t, e) { - if (null != t && null != e) { - var n = "x" + t + "y" + e; - return this._coordsMap[n] - } - D(t) && (e = t.yAxisIndex, t = t.xAxisIndex); - for (var i = 0, r = this._coordsList; i < r.length; i++) if (r[i].getAxis("x").index === t || r[i].getAxis("y").index === e) return r[i] - }, t.prototype.getCartesians = function () { - return this._coordsList.slice() - }, t.prototype.convertToPixel = function (t, e, n) { - var i = this._findConvertTarget(e); - return i.cartesian ? i.cartesian.dataToPoint(n) : i.axis ? i.axis.toGlobalCoord(i.axis.dataToCoord(n)) : null - }, t.prototype.convertFromPixel = function (t, e, n) { - var i = this._findConvertTarget(e); - return i.cartesian ? i.cartesian.pointToData(n) : i.axis ? i.axis.coordToData(i.axis.toLocalCoord(n)) : null - }, t.prototype._findConvertTarget = function (t) { - var e, n, i = t.seriesModel, r = t.xAxisModel || i && i.getReferringComponents("xAxis", Rb).models[0], - o = t.yAxisModel || i && i.getReferringComponents("yAxis", Rb).models[0], a = t.gridModel, - s = this._coordsList; - if (i) e = i.coordinateSystem, p(s, e) < 0 && (e = null); else if (r && o) e = this.getCartesian(r.componentIndex, o.componentIndex); else if (r) n = this.getAxis("x", r.componentIndex); else if (o) n = this.getAxis("y", o.componentIndex); else if (a) { - var l = a.coordinateSystem; - l === this && (e = this._coordsList[0]) - } - return {cartesian: e, axis: n} - }, t.prototype.containPoint = function (t) { - var e = this._coordsList[0]; - return e ? e.containPoint(t) : void 0 - }, t.prototype._initCartesian = function (t, e) { - function n(e) { - return function (n, i) { - if (ud(n, t)) { - var l = n.get("position"); - "x" === e ? "top" !== l && "bottom" !== l && (l = o.bottom ? "top" : "bottom") : "left" !== l && "right" !== l && (l = o.left ? "right" : "left"), o[l] = !0; - var u = new kD(e, Mf(n), [0, 0], n.get("type"), l), h = "category" === u.type; - u.onBand = h && n.get("boundaryGap"), u.inverse = n.get("inverse"), n.axis = u, u.model = n, u.grid = r, u.index = i, r._axesList.push(u), a[e][i] = u, s[e]++ - } - } - } - - var i = this, r = this, o = {left: !1, right: !1, top: !1, bottom: !1}, a = {x: {}, y: {}}, - s = {x: 0, y: 0}; - return e.eachComponent("xAxis", n("x"), this), e.eachComponent("yAxis", n("y"), this), s.x && s.y ? (this._axesMap = a, void y(a.x, function (e, n) { - y(a.y, function (r, o) { - var a = "x" + n + "y" + o, s = new DD(a); - s.master = i, s.model = t, i._coordsMap[a] = s, i._coordsList.push(s), s.addAxis(e), s.addAxis(r) - }) - })) : (this._axesMap = {}, void (this._axesList = [])) - }, t.prototype._updateScale = function (t, e) { - function n(t, e) { - y(Of(t, e.dim), function (n) { - e.scale.unionExtentFromData(t, n) - }) - } - - y(this._axesList, function (t) { - if (t.scale.setExtent(1 / 0, -1 / 0), "category" === t.type) { - var e = t.model.get("categorySortInfo"); - t.scale.setCategorySortInfo(e) - } - }), t.eachSeries(function (t) { - if (sd(t)) { - var i = ld(t), r = i.xAxisModel, o = i.yAxisModel; - if (!ud(r, e) || !ud(o, e)) return; - var a = this.getCartesian(r.componentIndex, o.componentIndex), s = t.getData(), l = a.getAxis("x"), - u = a.getAxis("y"); - "list" === s.type && (n(s, l), n(s, u)) - } - }, this) - }, t.prototype.getTooltipAxes = function (t) { - var e = [], n = []; - return y(this.getCartesians(), function (i) { - var r = null != t && "auto" !== t ? i.getAxis(t) : i.getBaseAxis(), o = i.getOtherAxis(r); - p(e, r) < 0 && e.push(r), p(n, o) < 0 && n.push(o) - }), {baseAxes: e, otherAxes: n} - }, t.create = function (e, n) { - var i = []; - return e.eachComponent("grid", function (r, o) { - var a = new t(r, e, n); - a.name = "grid_" + o, a.resize(r, n, !0), r.coordinateSystem = a, i.push(a) - }), e.eachSeries(function (t) { - if (sd(t)) { - var e = ld(t), n = e.xAxisModel, i = e.yAxisModel, r = n.getCoordSysModel(), o = r.coordinateSystem; - t.coordinateSystem = o.getCartesian(n.componentIndex, i.componentIndex) - } - }), i - }, t.dimensions = AD, t - }(); - ET.register("cartesian2d", LD); - var PD = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.prototype.getInitialData = function () { - return Gp(this.getSource(), this, {useEncodeDefaulter: !0}) - }, n.prototype.getMarkerPosition = function (t) { - var e = this.coordinateSystem; - if (e) { - var n = e.dataToPoint(e.clampData(t)), i = this.getData(), r = i.getLayout("offset"), - o = i.getLayout("size"), a = e.getBaseAxis().isHorizontal() ? 0 : 1; - return n[a] += r + o / 2, n - } - return [0 / 0, 0 / 0] - }, n.type = "series.__base_bar__", n.defaultOption = { - zlevel: 0, - z: 2, - coordinateSystem: "cartesian2d", - legendHoverLink: !0, - barMinHeight: 0, - barMinAngle: 0, - large: !1, - largeThreshold: 400, - progressive: 3e3, - progressiveChunkMode: "mod" - }, n - }(vM); - vM.registerClass(PD); - var OD = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.prototype.getProgressive = function () { - return this.get("large") ? this.get("progressive") : !1 - }, n.prototype.getProgressiveThreshold = function () { - var t = this.get("progressiveThreshold"), e = this.get("largeThreshold"); - return e > t && (t = e), t - }, n.prototype.brushSelector = function (t, e, n) { - return n.rect(e.getItemLayout(t)) - }, n.type = "series.bar", n.dependencies = ["grid", "polar"], n.defaultOption = Xs(PD.defaultOption, { - clip: !0, - roundCap: !1, - showBackground: !1, - backgroundStyle: { - color: "rgba(180, 180, 180, 0.2)", - borderColor: null, - borderWidth: 0, - borderType: "solid", - borderRadius: 0, - shadowBlur: 0, - shadowColor: null, - shadowOffsetX: 0, - shadowOffsetY: 0, - opacity: 1 - }, - select: {itemStyle: {borderColor: "#212121"}}, - realtimeSort: !1 - }), n - }(PD); - vM.registerClass(OD); - var RD = function () { - function t() { - this.cx = 0, this.cy = 0, this.r0 = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0 - } - - return t - }(), ED = function (t) { - function n(e) { - var n = t.call(this, e) || this; - return n.type = "sausage", n - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new RD - }, n.prototype.buildPath = function (t, e) { - var n = e.cx, i = e.cy, r = Math.max(e.r0 || 0, 0), o = Math.max(e.r, 0), a = .5 * (o - r), s = r + a, - l = e.startAngle, u = e.endAngle, h = e.clockwise, c = Math.cos(l), p = Math.sin(l), f = Math.cos(u), - d = Math.sin(u), g = h ? u - l < 2 * Math.PI : l - u < 2 * Math.PI; - g && (t.moveTo(c * r + n, p * r + i), t.arc(c * s + n, p * s + i, a, -Math.PI + l, l, !h)), t.arc(n, i, o, l, u, !h), t.moveTo(f * o + n, d * o + i), t.arc(f * s + n, d * s + i, a, u - 2 * Math.PI, u - Math.PI, !h), 0 !== r && (t.arc(n, i, r, u, l, h), t.moveTo(c * r + n, d * r + i)), t.closePath() - }, n - }(xx), zD = ["itemStyle", "borderWidth"], BD = ["itemStyle", "borderRadius"], ND = [0, 0], FD = Math.max, - HD = Math.min, VD = function (t) { - function n() { - var e = t.call(this) || this; - return e.type = n.type, e._isFirstFrame = !0, e - } - - return e(n, t), n.prototype.render = function (t, e, n, i) { - this._model = t, this.removeOnRenderedListener(n), this._updateDrawMode(t); - var r = t.get("coordinateSystem"); - ("cartesian2d" === r || "polar" === r) && (this._isLargeDraw ? this._renderLarge(t, e, n) : this._renderNormal(t, e, n, i)) - }, n.prototype.incrementalPrepareRender = function (t) { - this._clear(), this._updateDrawMode(t), this._updateLargeClip(t) - }, n.prototype.incrementalRender = function (t, e) { - this._incrementalRenderLarge(t, e) - }, n.prototype._updateDrawMode = function (t) { - var e = t.pipelineContext.large; - (null == this._isLargeDraw || e !== this._isLargeDraw) && (this._isLargeDraw = e, this._clear()) - }, n.prototype._renderNormal = function (t, e, n, i) { - function r(t) { - var e = XD[h.type](l, t), n = Dd(h, o, e); - return n.useStyle(_.getItemStyle()), "cartesian2d" === h.type && n.setShape("r", x), w[t] = n, n - } - - var o, a = this, s = this.group, l = t.getData(), u = this._data, h = t.coordinateSystem, - c = h.getBaseAxis(); - "cartesian2d" === h.type ? o = c.isHorizontal() : "polar" === h.type && (o = "angle" === c.dim); - var p = t.isAnimationEnabled() ? t : null, f = c.model, d = t.get("realtimeSort"); - if (d && l.count()) { - if (this._isFirstFrame) return this._initSort(l, o, c, n), void (this._isFirstFrame = !1); - this._onRendered = function () { - var t = function (t) { - var e = l.getItemGraphicEl(t); - if (e) { - var n = e.shape; - return (o ? n.y + n.height : n.x + n.width) || 0 - } - return 0 - }; - a._updateSort(l, t, c, n) - }, n.getZr().on("rendered", this._onRendered) - } - var g = t.get("clip", !0) || d, y = _d(h, l); - s.removeClipPath(); - var v = t.get("roundCap", !0), m = t.get("showBackground", !0), _ = t.getModel("backgroundStyle"), - x = _.get("borderRadius") || 0, w = [], b = this._backgroundEls, S = i && i.isInitSort, - T = i && "changeAxisOrder" === i.type; - l.diff(u).add(function (e) { - var n = l.getItemModel(e), i = XD[h.type](l, e, n); - if (m && r(e), l.hasValue(e)) { - var a = !1; - g && (a = GD[h.type](y, i)); - var u = WD[h.type](t, l, e, i, o, p, c.model, !1, v); - bd(u, l, e, n, i, t, o, "polar" === h.type), S ? u.attr({shape: i}) : d ? xd(t, f, p, u, i, e, o, !1, !1) : cs(u, {shape: i}, t, e), l.setItemGraphicEl(e, u), s.add(u), u.ignore = a - } - }).update(function (e, n) { - var i = l.getItemModel(e), a = XD[h.type](l, e, i); - if (m) { - var M = void 0; - 0 === b.length ? M = r(n) : (M = b[n], M.useStyle(_.getItemStyle()), "cartesian2d" === h.type && M.setShape("r", x), w[e] = M); - var C = XD[h.type](l, e), I = Ad(o, C, h); - hs(M, {shape: I}, p, e) - } - var A = u.getItemGraphicEl(n); - if (!l.hasValue(e)) return s.remove(A), void (A = null); - var D = !1; - g && (D = GD[h.type](y, a), D && s.remove(A)), A || (A = WD[h.type](t, l, e, a, o, p, c.model, !!A, v)), T || bd(A, l, e, i, a, t, o, "polar" === h.type), S ? A.attr({shape: a}) : d ? xd(t, f, p, A, a, e, o, !0, T) : hs(A, {shape: a}, t, e, null), l.setItemGraphicEl(e, A), A.ignore = D, s.add(A) - }).remove(function (e) { - var n = u.getItemGraphicEl(e); - n && ds(n, t, e) - }).execute(); - var M = this._backgroundGroup || (this._backgroundGroup = new Ox); - M.removeAll(); - for (var C = 0; C < w.length; ++C) M.add(w[C]); - s.add(M), this._backgroundEls = w, this._data = l - }, n.prototype._renderLarge = function (t) { - this._clear(), Td(t, this.group), this._updateLargeClip(t) - }, n.prototype._incrementalRenderLarge = function (t, e) { - this._removeBackground(), Td(e, this.group, !0) - }, n.prototype._updateLargeClip = function (t) { - var e = t.get("clip", !0) ? gd(t.coordinateSystem, !1, t) : null; - e ? this.group.setClipPath(e) : this.group.removeClipPath() - }, n.prototype._dataSort = function (t, e) { - var n = []; - t.each(function (t) { - n.push({mappedValue: e(t), ordinalNumber: t, beforeSortIndex: null}) - }), n.sort(function (t, e) { - return e.mappedValue - t.mappedValue - }); - for (var i = 0; i < n.length; ++i) n[n[i].ordinalNumber].beforeSortIndex = i; - return v(n, function (t) { - return {ordinalNumber: t.ordinalNumber, beforeSortIndex: t.beforeSortIndex} - }) - }, n.prototype._isDataOrderChanged = function (t, e, n) { - var i = n ? n.length : 0; - if (i !== t.count()) return !0; - for (var r = Number.MAX_VALUE, o = 0; o < n.length; ++o) { - var a = e(n[o].ordinalNumber); - if (a > r) return !0; - r = a - } - return !1 - }, n.prototype._updateSort = function (t, e, n, i) { - var r = n.scale.getCategorySortInfo(), o = this._isDataOrderChanged(t, e, r); - if (o) for (var a = this._dataSort(t, e), s = n.scale.getExtent(), l = s[0]; l < s[1]; ++l) if (!r[l] || r[l].ordinalNumber !== a[l].ordinalNumber) { - this.removeOnRenderedListener(i); - var u = {type: "changeAxisOrder", componentType: n.dim + "Axis", axisId: n.index, sortInfo: a}; - i.dispatchAction(u); - break - } - }, n.prototype._initSort = function (t, e, n, i) { - var r = { - type: "changeAxisOrder", - componentType: n.dim + "Axis", - isInitSort: !0, - axisId: n.index, - sortInfo: this._dataSort(t, function (n) { - return parseFloat(t.get(e ? "y" : "x", n)) || 0 - }) - }; - i.dispatchAction(r) - }, n.prototype.remove = function (t, e) { - this._clear(this._model), this.removeOnRenderedListener(e) - }, n.prototype.dispose = function (t, e) { - this.removeOnRenderedListener(e) - }, n.prototype.removeOnRenderedListener = function (t) { - this._onRendered && (t.getZr().off("rendered", this._onRendered), this._onRendered = null) - }, n.prototype._clear = function (t) { - var e = this.group, n = this._data; - t && t.isAnimationEnabled() && n && !this._isLargeDraw ? (this._removeBackground(), this._backgroundEls = [], n.eachItemGraphicEl(function (e) { - ds(e, t, Gb(e).dataIndex) - })) : e.removeAll(), this._data = null, this._isFirstFrame = !0 - }, n.prototype._removeBackground = function () { - this.group.remove(this._backgroundGroup), this._backgroundGroup = null - }, n.type = "bar", n - }(wM), GD = { - cartesian2d: function (t, e) { - var n = e.width < 0 ? -1 : 1, i = e.height < 0 ? -1 : 1; - 0 > n && (e.x += e.width, e.width = -e.width), 0 > i && (e.y += e.height, e.height = -e.height); - var r = FD(e.x, t.x), o = HD(e.x + e.width, t.x + t.width), a = FD(e.y, t.y), - s = HD(e.y + e.height, t.y + t.height); - e.x = r, e.y = a, e.width = o - r, e.height = s - a; - var l = e.width < 0 || e.height < 0; - return 0 > n && (e.x += e.width, e.width = -e.width), 0 > i && (e.y += e.height, e.height = -e.height), l - }, polar: function (t, e) { - var n = e.r0 <= e.r ? 1 : -1; - if (0 > n) { - var i = e.r; - e.r = e.r0, e.r0 = i - } - var r = HD(e.r, t.r), o = FD(e.r0, t.r0); - e.r = r, e.r0 = o; - var a = 0 > r - o; - if (0 > n) { - var i = e.r; - e.r = e.r0, e.r0 = i - } - return a - } - }, WD = { - cartesian2d: function (t, e, n, i, r, o) { - var a = new Gx({shape: h({}, i), z2: 1}); - if (a.__dataIndex = n, a.name = "item", o) { - var s = a.shape, l = r ? "height" : "width"; - s[l] = 0 - } - return a - }, polar: function (t, e, n, i, r, o, a, s, l) { - var u = i.startAngle < i.endAngle, h = !r && l ? ED : bw, p = new h({shape: c({clockwise: u}, i), z2: 1}); - if (p.name = "item", o) { - var f = p.shape, d = r ? "r" : "endAngle", g = {}; - f[d] = r ? 0 : i.startAngle, g[d] = i[d], (s ? hs : cs)(p, {shape: g}, o) - } - return p - } - }, XD = { - cartesian2d: function (t, e, n) { - var i = t.getItemLayout(e), r = n ? Sd(n, i) : 0, o = i.width > 0 ? 1 : -1, a = i.height > 0 ? 1 : -1; - return {x: i.x + o * r / 2, y: i.y + a * r / 2, width: i.width - o * r, height: i.height - a * r} - }, polar: function (t, e) { - var n = t.getItemLayout(e); - return {cx: n.cx, cy: n.cy, r0: n.r0, r: n.r, startAngle: n.startAngle, endAngle: n.endAngle} - } - }, YD = function () { - function t() { - } - - return t - }(), UD = function (t) { - function n(e) { - var n = t.call(this, e) || this; - return n.type = "largeBar", n - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new YD - }, n.prototype.buildPath = function (t, e) { - for (var n = e.points, i = this.__startPoint, r = this.__baseDimIdx, o = 0; o < n.length; o += 2) i[r] = n[o + r], t.moveTo(i[0], i[1]), t.lineTo(n[o], n[o + 1]) - }, n - }(xx), qD = Ch(function (t) { - var e = this, n = Md(e, t.offsetX, t.offsetY); - Gb(e).dataIndex = n >= 0 ? n : null - }, 30, !1); - wM.registerClass(VD), fp({type: "changeAxisOrder", event: "changeAxisOrder", update: "update"}, function (t, e) { - var n = t.componentType || "series"; - e.eachComponent({mainType: n, query: t}, function (e) { - t.sortInfo && e.axis.setCategorySortInfo(t.sortInfo) - }) - }); - var jD = { - 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: "#6E7079", width: 1, type: "solid"}, - symbol: ["none", "none"], - symbolSize: [10, 15] - }, - axisTick: {show: !0, inside: !1, length: 5, lineStyle: {width: 1}}, - axisLabel: {show: !0, inside: !1, rotate: 0, showMinLabel: null, showMaxLabel: null, margin: 8, fontSize: 12}, - splitLine: {show: !0, lineStyle: {color: ["#E0E6F1"], width: 1, type: "solid"}}, - splitArea: {show: !1, areaStyle: {color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]}} - }, ZD = l({ - boundaryGap: !0, - deduplication: null, - splitLine: {show: !1}, - axisTick: {alignWithLabel: !1, interval: "auto"}, - axisLabel: {interval: "auto"} - }, jD), KD = l({ - boundaryGap: [0, 0], - axisLine: {show: "auto"}, - axisTick: {show: "auto"}, - splitNumber: 5, - minorTick: {show: !1, splitNumber: 5, length: 3, lineStyle: {}}, - minorSplitLine: {show: !1, lineStyle: {color: "#F4F7FD", width: 1}} - }, jD), $D = l({ - scale: !0, - splitNumber: 6, - axisLabel: {showMinLabel: !1, showMaxLabel: !1, rich: {primary: {fontWeight: "bold"}}}, - splitLine: {show: !1} - }, KD), JD = c({scale: !0, logBase: 10}, KD), QD = {category: ZD, value: KD, time: $D, log: JD}, - tk = {value: 1, category: 1, time: 1, log: 1}, ek = function (t) { - function n() { - return null !== t && t.apply(this, arguments) || this - } - - return e(n, t), n.prototype.getCoordSysModel = function () { - return this.getReferringComponents("grid", Rb).models[0] - }, n.type = "cartesian2dAxis", n - }(oT); - d(ek, pD); - var nk = {offset: 0, categorySortInfo: []}; - kd("x", ek, nk), kd("y", ek, nk); - var ik = Math.PI, rk = function () { - function t(t, e) { - this.group = new Ox, this.opt = e, this.axisModel = t, c(e, { - labelOffset: 0, - nameDirection: 1, - tickDirection: 1, - labelDirection: 1, - silent: !0, - handleAutoShown: function () { - return !0 - } - }); - var n = new Ox({x: e.position[0], y: e.position[1], rotation: e.rotation}); - n.updateTransform(), this._transformGroup = n - } - - return t.prototype.hasBuilder = function (t) { - return !!ok[t] - }, t.prototype.add = function (t) { - ok[t](this.opt, this.axisModel, this.group, this._transformGroup) - }, t.prototype.getGroup = function () { - return this.group - }, t.innerTextLayout = function (t, e, n) { - var i, r, o = fo(e - t); - return go(o) ? (r = n > 0 ? "top" : "bottom", i = "center") : go(o - ik) ? (r = n > 0 ? "bottom" : "top", i = "center") : (r = "middle", i = o > 0 && ik > o ? n > 0 ? "right" : "left" : n > 0 ? "left" : "right"), { - rotation: o, - textAlign: i, - textVerticalAlign: r - } - }, t.makeAxisEventDataBase = function (t) { - var e = {componentType: t.mainType, componentIndex: t.componentIndex}; - return e[t.mainType + "Index"] = t.componentIndex, e - }, t.isLabelSilent = function (t) { - var e = t.get("tooltip"); - return t.get("silent") || !(t.get("triggerEvent") || e && e.show) - }, t - }(), ok = { - axisLine: function (t, e, n, i) { - var r = e.get(["axisLine", "show"]); - if ("auto" === r && t.handleAutoShown && (r = t.handleAutoShown("axisLine")), r) { - var o = e.axis.getExtent(), a = i.transform, s = [o[0], 0], l = [o[1], 0]; - a && (ge(s, s, a), ge(l, l, a)); - var u = h({lineCap: "round"}, e.getModel(["axisLine", "lineStyle"]).getLineStyle()), c = new qx({ - subPixelOptimize: !0, - shape: {x1: s[0], y1: s[1], x2: l[0], y2: l[1]}, - style: u, - strokeContainThreshold: t.strokeContainThreshold || 5, - silent: !0, - z2: 1 - }); - c.anid = "line", n.add(c); - var p = e.get(["axisLine", "symbol"]), f = e.get(["axisLine", "symbolSize"]), - d = e.get(["axisLine", "symbolOffset"]) || 0; - if ("number" == typeof d && (d = [d, d]), null != p) { - "string" == typeof p && (p = [p, p]), ("string" == typeof f || "number" == typeof f) && (f = [f, f]); - var g = f[0], v = f[1]; - y([{rotate: t.rotation + Math.PI / 2, offset: d[0], r: 0}, { - rotate: t.rotation - Math.PI / 2, - offset: d[1], - r: Math.sqrt((s[0] - l[0]) * (s[0] - l[0]) + (s[1] - l[1]) * (s[1] - l[1])) - }], function (e, i) { - if ("none" !== p[i] && null != p[i]) { - var r = Yc(p[i], -g / 2, -v / 2, g, v, u.stroke, !0), o = e.r + e.offset; - r.attr({ - rotation: e.rotate, - x: s[0] + o * Math.cos(t.rotation), - y: s[1] - o * Math.sin(t.rotation), - silent: !0, - z2: 11 - }), n.add(r) - } - }) - } - } - }, axisTickLabel: function (t, e, n, i) { - var r = Nd(n, i, e, t), o = Hd(n, i, e, t); - Od(e, o, r), Fd(n, i, e, t.tickDirection) - }, axisName: function (t, e, n, i) { - var r = B(t.axisName, e.get("name")); - if (r) { - var o, a = e.get("nameLocation"), s = t.nameDirection, l = e.getModel("nameTextStyle"), - u = e.get("nameGap") || 0, c = e.axis.getExtent(), p = c[0] > c[1] ? -1 : 1, - f = ["start" === a ? c[0] - p * u : "end" === a ? c[1] + p * u : (c[0] + c[1]) / 2, zd(a) ? t.labelOffset + s * u : 0], - d = e.get("nameRotate"); - null != d && (d = d * ik / 180); - var g; - zd(a) ? o = rk.innerTextLayout(t.rotation, null != d ? d : t.rotation, s) : (o = Pd(t.rotation, a, d || 0, c), g = t.axisNameAvailableWidth, null != g && (g = Math.abs(g / Math.sin(o.rotation)), !isFinite(g) && (g = null))); - var y = l.getFont(), v = e.get("nameTruncate", !0) || {}, m = v.ellipsis, - _ = B(t.nameTruncateMaxWidth, v.maxWidth, g), x = e.get("tooltip", !0), w = e.mainType, - b = {componentType: w, name: r, $vars: ["name"]}; - b[w + "Index"] = e.componentIndex; - var S = new Ew({ - x: f[0], - y: f[1], - rotation: o.rotation, - silent: rk.isLabelSilent(e), - style: Os(l, { - text: r, - font: y, - overflow: "truncate", - width: _, - ellipsis: m, - fill: l.getTextColor() || e.get(["axisLine", "lineStyle", "color"]), - align: l.get("align") || o.textAlign, - verticalAlign: l.get("verticalAlign") || o.textVerticalAlign - }), - z2: 1 - }); - if (S.tooltip = x && x.show ? h({ - content: r, formatter: function () { - return r - }, formatterParams: b - }, x) : null, S.__fullText = r, S.anid = "name", e.get("triggerEvent")) { - var T = rk.makeAxisEventDataBase(e); - T.targetType = "axisName", T.name = r, Gb(S).eventData = T - } - i.add(S), S.updateTransform(), n.add(S), S.decomposeTransform() - } - } - }, ak = {}, sk = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.prototype.render = function (e, n, i) { - this.axisPointerClass && qd(e), t.prototype.render.apply(this, arguments), this._doUpdateAxisPointerClass(e, i, !0) - }, n.prototype.updateAxisPointer = function (t, e, n) { - this._doUpdateAxisPointerClass(t, n, !1) - }, n.prototype.remove = function (t, e) { - var n = this._axisPointer; - n && n.remove(e) - }, n.prototype.dispose = function (e, n) { - this._disposeAxisPointer(n), t.prototype.dispose.apply(this, arguments) - }, n.prototype._doUpdateAxisPointerClass = function (t, e, i) { - var r = n.getAxisPointerClass(this.axisPointerClass); - if (r) { - var o = Zd(t); - o ? (this._axisPointer || (this._axisPointer = new r)).render(t, o, e, i) : this._disposeAxisPointer(e) - } - }, n.prototype._disposeAxisPointer = function (t) { - this._axisPointer && this._axisPointer.dispose(t), this._axisPointer = null - }, n.registerAxisPointerClass = function (t, e) { - ak[t] = e - }, n.getAxisPointerClass = function (t) { - return t && ak[t] - }, n.type = "axis", n - }(mM), lk = qo(), uk = ["axisLine", "axisTickLabel", "axisName"], hk = ["splitArea", "splitLine", "minorSplitLine"], - ck = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e.axisPointerClass = "CartesianAxisPointer", e - } - - return e(n, t), n.prototype.render = function (e, n, i, r) { - this.group.removeAll(); - var o = this._axisGroup; - if (this._axisGroup = new Ox, this.group.add(this._axisGroup), e.get("show")) { - var a = e.getCoordSysModel(), s = ad(a, e), l = new rk(e, h({ - handleAutoShown: function () { - for (var t = a.coordinateSystem.getCartesians(), n = 0; n < t.length; n++) { - var i = t[n].getOtherAxis(e.axis).type; - if ("value" === i || "log" === i) return !0 - } - return !1 - } - }, s)); - y(uk, l.add, l), this._axisGroup.add(l.getGroup()), y(hk, function (t) { - e.get([t, "show"]) && pk[t](this, this._axisGroup, e, a) - }, this), ws(o, this._axisGroup, e), t.prototype.render.call(this, e, n, i, r) - } - }, n.prototype.remove = function () { - Qd(this) - }, n.type = "cartesianAxis", n - }(sk), pk = { - splitLine: function (t, e, n, i) { - var r = n.axis; - if (!r.scale.isBlank()) { - var o = n.getModel("splitLine"), a = o.getModel("lineStyle"), s = a.get("color"); - s = T(s) ? s : [s]; - for (var l = i.coordinateSystem.getRect(), u = r.isHorizontal(), h = 0, p = r.getTicksCoords({tickModel: o}), f = [], d = [], g = a.getLineStyle(), y = 0; y < p.length; y++) { - var v = r.toGlobalCoord(p[y].coord); - u ? (f[0] = v, f[1] = l.y, d[0] = v, d[1] = l.y + l.height) : (f[0] = l.x, f[1] = v, d[0] = l.x + l.width, d[1] = v); - var m = h++ % s.length, _ = p[y].tickValue; - e.add(new qx({ - anid: null != _ ? "line_" + p[y].tickValue : null, - subPixelOptimize: !0, - autoBatch: !0, - shape: {x1: f[0], y1: f[1], x2: d[0], y2: d[1]}, - style: c({stroke: s[m]}, g), - silent: !0 - })) - } - } - }, minorSplitLine: function (t, e, n, i) { - var r = n.axis, o = n.getModel("minorSplitLine"), a = o.getModel("lineStyle"), - s = i.coordinateSystem.getRect(), l = r.isHorizontal(), u = r.getMinorTicksCoords(); - if (u.length) for (var h = [], c = [], p = a.getLineStyle(), f = 0; f < u.length; f++) for (var d = 0; d < u[f].length; d++) { - var g = r.toGlobalCoord(u[f][d].coord); - l ? (h[0] = g, h[1] = s.y, c[0] = g, c[1] = s.y + s.height) : (h[0] = s.x, h[1] = g, c[0] = s.x + s.width, c[1] = g), e.add(new qx({ - anid: "minor_line_" + u[f][d].tickValue, - subPixelOptimize: !0, - autoBatch: !0, - shape: {x1: h[0], y1: h[1], x2: c[0], y2: c[1]}, - style: p, - silent: !0 - })) - } - }, splitArea: function (t, e, n, i) { - Jd(t, e, n, i) - } - }, fk = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.type = "xAxis", n - }(ck), dk = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = fk.type, e - } - - return e(n, t), n.type = "yAxis", n - }(ck); - mM.registerClass(fk), mM.registerClass(dk), hp(cI.PROCESSOR.FILTER + 10, { - getTargetSeries: function (t) { - var e = U(); - return t.eachSeries(function (t) { - sd(t) && e.set(t.uid, t) - }), e - }, overallReset: function (t) { - var e = [], n = U(); - tg(t, n, e), eg(n, e), ng(n) - } - }); - var gk = function (t) { - function n() { - return null !== t && t.apply(this, arguments) || this - } - - return e(n, t), n.type = "grid", n.dependencies = ["xAxis", "yAxis"], n.layoutMode = "box", n.defaultOption = { - show: !1, - zlevel: 0, - z: 0, - left: "10%", - top: 60, - right: "10%", - bottom: 70, - containLabel: !1, - backgroundColor: "rgba(0,0,0,0)", - borderWidth: 1, - borderColor: "#ccc" - }, n - }(oT), yk = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = "grid", e - } - - return e(n, t), n.prototype.render = function (t) { - this.group.removeAll(), t.get("show") && this.group.add(new Gx({ - shape: t.coordinateSystem.getRect(), - style: c({fill: t.get("backgroundColor")}, t.getItemStyle()), - silent: !0, - z2: -1 - })) - }, n.type = "grid", n - }(mM); - mM.registerClass(yk), oT.registerClass(gk), up(function (t) { - t.xAxis && t.yAxis && !t.grid && (t.grid = {}) - }); - var vk = { - average: function (t) { - for (var e = 0, n = 0, i = 0; i < t.length; i++) isNaN(t[i]) || (e += t[i], n++); - return 0 === n ? 0 / 0 : e / n - }, sum: function (t) { - for (var e = 0, n = 0; n < t.length; n++) e += t[n] || 0; - return e - }, max: function (t) { - for (var e = -1 / 0, n = 0; n < t.length; n++) t[n] > e && (e = t[n]); - return isFinite(e) ? e : 0 / 0 - }, min: function (t) { - for (var e = 1 / 0, n = 0; n < t.length; n++) t[n] < e && (e = t[n]); - return isFinite(e) ? e : 0 / 0 - }, nearest: function (t) { - return t[0] - } - }, mk = function (t) { - return Math.round(t.length / 2) - }; - yp(cI.VISUAL.LAYOUT, S(sf, "bar")), yp(cI.VISUAL.PROGRESSIVE_LAYOUT, ZA), vp({ - seriesType: "bar", - reset: function (t) { - t.getData().setVisual("legendSymbol", "roundRect") - } - }), hp(cI.PROCESSOR.STATISTIC, ag("bar")); - var _k = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e.hasSymbolVisual = !0, e.legendSymbol = "line", e - } - - return e(n, t), n.prototype.getInitialData = function () { - return Gp(this.getSource(), this, {useEncodeDefaulter: !0}) - }, n.type = "series.line", n.dependencies = ["grid", "polar"], n.defaultOption = { - zlevel: 0, - z: 3, - coordinateSystem: "cartesian2d", - legendHoverLink: !0, - clip: !0, - label: {position: "top"}, - endLabel: {show: !1, valueAnimation: !0, distance: 8}, - lineStyle: {width: 2, type: "solid"}, - emphasis: {scale: !0, lineStyle: {width: "bolder"}}, - 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 - }, n - }(vM); - vM.registerClass(_k); - var xk = function (t) { - function n(e, n, i, r) { - var o = t.call(this) || this; - return o.updateData(e, n, i, r), o - } - - return e(n, t), n.prototype._createSymbol = function (t, e, n, i, r) { - this.removeAll(); - var o = Yc(t, -1, -1, 2, 2, null, r); - o.attr({ - z2: 100, - culling: !0, - scaleX: i[0] / 2, - scaleY: i[1] / 2 - }), o.drift = sg, this._symbolType = t, this.add(o) - }, n.prototype.stopSymbolAnimation = function (t) { - this.childAt(0).stopAnimation(null, t) - }, n.prototype.getSymbolPath = function () { - return this.childAt(0) - }, n.prototype.highlight = function () { - La(this.childAt(0)) - }, n.prototype.downplay = function () { - Pa(this.childAt(0)) - }, n.prototype.setZ = function (t, e) { - var n = this.childAt(0); - n.zlevel = t, n.z = e - }, n.prototype.setDraggable = function (t) { - var e = this.childAt(0); - e.draggable = t, e.cursor = t ? "move" : e.cursor - }, n.prototype.updateData = function (t, e, i, r) { - this.silent = !1; - var o = t.getItemVisual(e, "symbol") || "circle", a = t.hostModel, s = n.getSymbolSize(t, e), - l = o !== this._symbolType, u = r && r.disableAnimation; - if (l) { - var h = t.getItemVisual(e, "symbolKeepAspect"); - this._createSymbol(o, t, e, s, h) - } else { - var c = this.childAt(0); - c.silent = !1; - var p = {scaleX: s[0] / 2, scaleY: s[1] / 2}; - u ? c.attr(p) : hs(c, p, a, e) - } - if (this._updateCommon(t, e, s, i, r), l) { - var c = this.childAt(0); - if (!u) { - var p = {scaleX: this._sizeX, scaleY: this._sizeY, style: {opacity: c.style.opacity}}; - c.scaleX = c.scaleY = 0, c.style.opacity = 0, cs(c, p, a, e) - } - } - u && this.childAt(0).stopAnimation("remove"), this._seriesModel = a - }, n.prototype._updateCommon = function (t, e, n, i, r) { - function o(e) { - return C ? t.getName(e) : vd(t, e) - } - - var a, s, l, u, c, p, f, d, g, y = this.childAt(0), v = t.hostModel; - if (i && (a = i.emphasisItemStyle, s = i.blurItemStyle, l = i.selectItemStyle, u = i.focus, c = i.blurScope, p = i.symbolOffset, f = i.labelStatesModels, d = i.hoverScale, g = i.cursorStyle), !i || t.hasItemOption) { - var m = i && i.itemModel ? i.itemModel : t.getItemModel(e), _ = m.getModel("emphasis"); - a = _.getModel("itemStyle").getItemStyle(), l = m.getModel(["select", "itemStyle"]).getItemStyle(), s = m.getModel(["blur", "itemStyle"]).getItemStyle(), u = _.get("focus"), c = _.get("blurScope"), p = m.getShallow("symbolOffset"), f = Ps(m), d = _.getShallow("scale"), g = m.getShallow("cursor") - } - var x = t.getItemVisual(e, "symbolRotate"); - y.attr("rotation", (x || 0) * Math.PI / 180 || 0), p && (y.x = ao(p[0], n[0]), y.y = ao(p[1], n[1])), g && y.attr("cursor", g); - var w = t.getItemVisual(e, "style"), b = w.fill; - if (y instanceof zx) { - var S = y.style; - y.useStyle(h({image: S.image, x: S.x, y: S.y, width: S.width, height: S.height}, w)) - } else y.useStyle(y.__isEmptyBrush ? h({}, w) : w), y.style.decal = null, y.setColor(b, r && r.symbolInnerColor), y.style.strokeNoScale = !0; - var T = t.getItemVisual(e, "liftZ"), M = this._z2; - null != T ? null == M && (this._z2 = y.z2, y.z2 += T) : null != M && (y.z2 = M, this._z2 = null); - var C = r && r.useNameLabel; - Ls(y, f, { - labelFetcher: v, - labelDataIndex: e, - defaultText: o, - inheritColor: b, - defaultOpacity: w.opacity - }), this._sizeX = n[0] / 2, this._sizeY = n[1] / 2; - var I = y.ensureState("emphasis"); - if (I.style = a, y.ensureState("select").style = l, y.ensureState("blur").style = s, d) { - var A = Math.max(1.1, 3 / this._sizeY); - I.scaleX = this._sizeX * A, I.scaleY = this._sizeY * A - } - this.setSymbolScale(1), Xa(this, u, c) - }, n.prototype.setSymbolScale = function (t) { - this.scaleX = this.scaleY = t - }, n.prototype.fadeOut = function (t, e) { - var n = this.childAt(0), i = this._seriesModel, r = Gb(this).dataIndex, o = e && e.animation; - if (this.silent = n.silent = !0, e && e.fadeLabel) { - var a = n.getTextContent(); - a && ps(a, {style: {opacity: 0}}, i, { - dataIndex: r, removeOpt: o, cb: function () { - n.removeTextContent() - } - }) - } else n.removeTextContent(); - ps(n, {style: {opacity: 0}, scaleX: 0, scaleY: 0}, i, {dataIndex: r, cb: t, removeOpt: o}) - }, n.getSymbolSize = function (t, e) { - var n = t.getItemVisual(e, "symbolSize"); - return n instanceof Array ? n.slice() : [+n, +n] - }, n - }(Ox), wk = function () { - function t(t) { - this.group = new Ox, this._SymbolCtor = t || xk - } - - return t.prototype.updateData = function (t, e) { - e = ug(e); - var n = this.group, i = t.hostModel, r = this._data, o = this._SymbolCtor, a = e.disableAnimation, - s = hg(t), l = {disableAnimation: a}, u = e.getSymbolPoint || function (e) { - return t.getItemLayout(e) - }; - r || n.removeAll(), t.diff(r).add(function (i) { - var r = u(i); - if (lg(t, r, i, e)) { - var a = new o(t, i, s, l); - a.setPosition(r), t.setItemGraphicEl(i, a), n.add(a) - } - }).update(function (h, c) { - var p = r.getItemGraphicEl(c), f = u(h); - if (!lg(t, f, h, e)) return void n.remove(p); - if (p) { - p.updateData(t, h, s, l); - var d = {x: f[0], y: f[1]}; - a ? p.attr(d) : hs(p, d, i) - } else p = new o(t, h), p.setPosition(f); - n.add(p), t.setItemGraphicEl(h, p) - }).remove(function (t) { - var e = r.getItemGraphicEl(t); - e && e.fadeOut(function () { - n.remove(e) - }) - }).execute(), this._getSymbolPoint = u, this._data = t - }, t.prototype.isPersistent = function () { - return !0 - }, t.prototype.updateLayout = function () { - var t = this, e = this._data; - e && e.eachItemGraphicEl(function (e, n) { - var i = t._getSymbolPoint(n); - e.setPosition(i), e.markRedraw() - }) - }, t.prototype.incrementalPrepareUpdate = function (t) { - this._seriesScope = hg(t), this._data = null, this.group.removeAll() - }, t.prototype.incrementalUpdate = function (t, e, n) { - function i(t) { - t.isGroup || (t.incremental = !0, t.ensureState("emphasis").hoverLayer = !0) - } - - n = ug(n); - for (var r = t.start; r < t.end; r++) { - var o = e.getItemLayout(r); - if (lg(e, o, r, n)) { - var a = new this._SymbolCtor(e, r, this._seriesScope); - a.traverse(i), a.setPosition(o), this.group.add(a), e.setItemGraphicEl(r, a) - } - } - }, t.prototype.remove = function (t) { - var e = this.group, n = this._data; - n && t ? n.eachItemGraphicEl(function (t) { - t.fadeOut(function () { - e.remove(t) - }) - }) : e.removeAll() - }, t - }(), bk = "undefined" != typeof Float32Array, Sk = bk ? Float32Array : Array, Tk = Math.min, Mk = Math.max, - Ck = function () { - function t() { - this.smooth = 0, this.smoothConstraint = !0 - } - - return t - }(), Ik = function (t) { - function n(e) { - var n = t.call(this, e) || this; - return n.type = "ec-polyline", n - } - - return e(n, t), n.prototype.getDefaultStyle = function () { - return {stroke: "#000", fill: null} - }, n.prototype.getDefaultShape = function () { - return new Ck - }, n.prototype.buildPath = function (t, e) { - var n = e.points, i = 0, r = n.length / 2; - if (e.connectNulls) { - for (; r > 0 && vg(n[2 * r - 2], n[2 * r - 1]); r--) ; - for (; r > i && vg(n[2 * i], n[2 * i + 1]); i++) ; - } - for (; r > i;) i += mg(t, n, i, r, r, 1, e.smooth, e.smoothMonotone, e.connectNulls) + 1 - }, n.prototype.getPointOn = function (t, e) { - this.path || (this.createPathProxy(), this.buildPath(this.path, this.shape)); - for (var n, i, r = this.path, o = r.data, a = ux.CMD, s = "x" === e, l = [], u = 0; u < o.length;) { - var h = o[u++], c = void 0, p = void 0, f = void 0, d = void 0, g = void 0, y = void 0, v = void 0; - switch (h) { - case a.M: - n = o[u++], i = o[u++]; - break; - case a.L: - if (c = o[u++], p = o[u++], v = s ? (t - n) / (c - n) : (t - i) / (p - i), 1 >= v && v >= 0) { - var m = s ? (p - i) * v + i : (c - n) * v + n; - return s ? [t, m] : [m, t] - } - n = c, i = p; - break; - case a.C: - c = o[u++], p = o[u++], f = o[u++], d = o[u++], g = o[u++], y = o[u++]; - var _ = s ? yi(n, c, f, g, t, l) : yi(i, p, d, y, t, l); - if (_ > 0) for (var x = 0; _ > x; x++) { - var w = l[x]; - if (1 >= w && w >= 0) { - var m = s ? di(i, p, d, y, w) : di(n, c, f, g, w); - return s ? [t, m] : [m, t] - } - } - n = g, i = y - } - } - }, n - }(xx), Ak = function (t) { - function n() { - return null !== t && t.apply(this, arguments) || this - } - - return e(n, t), n - }(Ck), Dk = function (t) { - function n(e) { - var n = t.call(this, e) || this; - return n.type = "ec-polygon", n - } - - return e(n, t), n.prototype.getDefaultShape = function () { - return new Ak - }, n.prototype.buildPath = function (t, e) { - var n = e.points, i = e.stackedOnPoints, r = 0, o = n.length / 2, a = e.smoothMonotone; - if (e.connectNulls) { - for (; o > 0 && vg(n[2 * o - 2], n[2 * o - 1]); o--) ; - for (; o > r && vg(n[2 * r], n[2 * r + 1]); r++) ; - } - for (; o > r;) { - var s = mg(t, n, r, o, o, 1, e.smooth, a, e.connectNulls); - mg(t, i, r + s - 1, s, o, -1, e.stackedOnSmooth, a, e.connectNulls), r += s + 1, t.closePath() - } - }, n - }(xx), kk = function (t) { - function n() { - return null !== t && t.apply(this, arguments) || this - } - - return e(n, t), n.prototype.init = function () { - var t = new Ox, e = new wk; - this.group.add(e.group), this._symbolDraw = e, this._lineGroup = t - }, n.prototype.render = function (t, e, n) { - var i = this, r = t.coordinateSystem, o = this.group, a = t.getData(), s = t.getModel("lineStyle"), - l = t.getModel("areaStyle"), u = a.getLayout("points") || [], h = "polar" === r.type, - p = this._coordSys, f = this._symbolDraw, d = this._polyline, g = this._polygon, y = this._lineGroup, - v = t.get("animation"), m = !l.isEmpty(), _ = l.get("origin"), x = cg(r, a, _), w = m && Sg(r, a, x), - b = t.get("showSymbol"), S = b && !h && Cg(t, a, r), T = this._data; - T && T.eachItemGraphicEl(function (t, e) { - t.__temp && (o.remove(t), T.setItemGraphicEl(e, null)) - }), b || f.remove(), o.add(y); - var M, C = h ? !1 : t.get("step"); - r && r.getArea && t.get("clip", !0) && (M = r.getArea(), null != M.width ? (M.x -= .1, M.y -= .1, M.width += .2, M.height += .2) : M.r0 && (M.r0 -= .5, M.r += .5)), this._clipShapeForSymbol = M, d && p.type === r.type && C === this._step ? (m && !g ? g = this._newPolygon(u, w) : g && !m && (y.remove(g), g = this._polygon = null), h || this._initOrUpdateEndLabel(t, r), y.setClipPath(Pg(this, r, !1, t)), b && f.updateData(a, { - isIgnore: S, - clipShape: M, - disableAnimation: !0, - getSymbolPoint: function (t) { - return [u[2 * t], u[2 * t + 1]] - } - }), _g(this._stackedOnPoints, w) && _g(this._points, u) || (v ? this._doUpdateAnimation(a, w, r, n, C, _) : (C && (u = Tg(u, r, C), w && (w = Tg(w, r, C))), d.setShape({points: u}), g && g.setShape({ - points: u, - stackedOnPoints: w - })))) : (b && f.updateData(a, { - isIgnore: S, - clipShape: M, - disableAnimation: !0, - getSymbolPoint: function (t) { - return [u[2 * t], u[2 * t + 1]] - } - }), v && this._initSymbolLabelAnimation(a, r, M), C && (u = Tg(u, r, C), w && (w = Tg(w, r, C))), d = this._newPolyline(u), m && (g = this._newPolygon(u, w)), h || this._initOrUpdateEndLabel(t, r), y.setClipPath(Pg(this, r, !0, t))); - var I = Mg(a, r) || a.getVisual("style")[a.getVisual("drawType")], A = t.get(["emphasis", "focus"]), - D = t.get(["emphasis", "blurScope"]); - if (d.useStyle(c(s.getLineStyle(), { - fill: "none", - stroke: I, - lineJoin: "bevel" - })), Ua(d, t, "lineStyle"), d.style.lineWidth > 0 && "bolder" === t.get(["emphasis", "lineStyle", "width"])) { - var k = d.getState("emphasis").style; - k.lineWidth = d.style.lineWidth + 1 - } - Gb(d).seriesIndex = t.seriesIndex, Xa(d, A, D); - var L = bg(t.get("smooth")), P = t.get("smoothMonotone"), O = t.get("connectNulls"); - if (d.setShape({smooth: L, smoothMonotone: P, connectNulls: O}), g) { - var R = a.getCalculationInfo("stackedOnSeries"), E = 0; - g.useStyle(c(l.getAreaStyle(), { - fill: I, - opacity: .7, - lineJoin: "bevel", - decal: a.getVisual("style").decal - })), R && (E = bg(R.get("smooth"))), g.setShape({ - smooth: L, - stackedOnSmooth: E, - smoothMonotone: P, - connectNulls: O - }), Ua(g, t, "areaStyle"), Gb(g).seriesIndex = t.seriesIndex, Xa(g, A, D) - } - var z = function (t) { - i._changePolyState(t) - }; - a.eachItemGraphicEl(function (t) { - t && (t.onHoverStateChange = z) - }), this._polyline.onHoverStateChange = z, this._data = a, this._coordSys = r, this._stackedOnPoints = w, this._points = u, this._step = C, this._valueOrigin = _ - }, n.prototype.dispose = function () { - }, n.prototype.highlight = function (t, e, n, i) { - var r = t.getData(), o = Uo(r, i); - if (this._changePolyState("emphasis"), !(o instanceof Array) && null != o && o >= 0) { - var a = r.getLayout("points"), s = r.getItemGraphicEl(o); - if (!s) { - var l = a[2 * o], u = a[2 * o + 1]; - if (isNaN(l) || isNaN(u)) return; - if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(l, u)) return; - s = new xk(r, o), s.x = l, s.y = u, s.setZ(t.get("zlevel"), t.get("z")), s.__temp = !0, r.setItemGraphicEl(o, s), s.stopSymbolAnimation(!0), this.group.add(s) - } - s.highlight() - } else wM.prototype.highlight.call(this, t, e, n, i) - }, n.prototype.downplay = function (t, e, n, i) { - var r = t.getData(), o = Uo(r, i); - if (this._changePolyState("normal"), null != o && o >= 0) { - var a = r.getItemGraphicEl(o); - a && (a.__temp ? (r.setItemGraphicEl(o, null), this.group.remove(a)) : a.downplay()) - } else wM.prototype.downplay.call(this, t, e, n, i) - }, n.prototype._changePolyState = function (t) { - var e = this._polygon; - ba(this._polyline, t), e && ba(e, t) - }, n.prototype._newPolyline = function (t) { - var e = this._polyline; - return e && this._lineGroup.remove(e), e = new Ik({ - shape: {points: t}, - segmentIgnoreThreshold: 2, - z2: 10 - }), this._lineGroup.add(e), this._polyline = e, e - }, n.prototype._newPolygon = function (t, e) { - var n = this._polygon; - return n && this._lineGroup.remove(n), n = new Dk({ - shape: {points: t, stackedOnPoints: e}, - segmentIgnoreThreshold: 2 - }), this._lineGroup.add(n), this._polygon = n, n - }, n.prototype._initSymbolLabelAnimation = function (t, e, n) { - var i, r, o = e.getBaseAxis(), a = o.inverse; - "cartesian2d" === e.type ? (i = o.isHorizontal(), r = !1) : "polar" === e.type && (i = "angle" === o.dim, r = !0); - var s = t.hostModel, l = s.get("animationDuration"); - "function" == typeof l && (l = l(null)); - var u = s.get("animationDelay") || 0, h = "function" == typeof u ? u(null) : u; - t.eachItemGraphicEl(function (t, o) { - var s = t; - if (s) { - var c = [t.x, t.y], p = void 0, f = void 0, d = void 0; - if (r) { - var g = n, y = e.pointToCoord(c); - i ? (p = g.startAngle, f = g.endAngle, d = -y[1] / 180 * Math.PI) : (p = g.r0, f = g.r, d = y[0]) - } else { - var v = n; - i ? (p = v.x, f = v.x + v.width, d = t.x) : (p = v.y + v.height, f = v.y, d = t.y) - } - var m = f === p ? 0 : (d - p) / (f - p); - a && (m = 1 - m); - var _ = "function" == typeof u ? u(o) : l * m + h, x = s.getSymbolPath(), w = x.getTextContent(); - s.attr({scaleX: 0, scaleY: 0}), s.animateTo({scaleX: 1, scaleY: 1}, { - duration: 200, - delay: _ - }), w && w.animateFrom({style: {opacity: 0}}, { - duration: 300, - delay: _ - }), x.disableLabelAnimation = !0 - } - }) - }, n.prototype._initOrUpdateEndLabel = function (t, e) { - var n = t.getModel("endLabel"); - if (n.get("show")) { - var i = t.getData(), r = this._polyline, o = this._endLabel; - o || (o = this._endLabel = new Ew({z2: 200}), o.ignoreClip = !0, r.setTextContent(this._endLabel), r.disableLabelAnimation = !0); - var a = Dg(i.getLayout("points")); - a >= 0 && Ls(o, Ps(t, "endLabel"), { - labelFetcher: t, - labelDataIndex: a, - defaultText: function (t, e, n) { - return n ? md(i, n) : vd(i, t) - }, - enableTextSetter: !0 - }, Og(n, e)) - } else this._endLabel && (this._polyline.removeTextContent(), this._endLabel = null) - }, n.prototype._endLabelOnDuring = function (t, e, n, i, r, o, a) { - var s = this._endLabel, l = this._polyline; - if (s) { - 1 > t && null == i.originalX && (i.originalX = s.x, i.originalY = s.y); - var u = n.getLayout("points"), h = n.hostModel, c = h.get("connectNulls"), p = o.get("precision"), - f = a.getBaseAxis(), d = f.isHorizontal(), g = f.inverse, y = e.shape, - v = g ? d ? y.x : y.y + y.height : d ? y.x + y.width : y.y, m = d ? "x" : "y", _ = Lg(u, v, m), - x = _.range, w = x[1] - x[0], b = void 0; - if (w >= 1) { - if (w > 1 && !c) { - var S = kg(u, x[0]); - s.attr({x: S[0], y: S[1]}), r && (b = h.getRawValue(x[0])) - } else { - var S = l.getPointOn(v, m); - S && s.attr({x: S[0], y: S[1]}); - var T = h.getRawValue(x[0]), M = h.getRawValue(x[1]); - r && (b = Qo(n, p, T, M, _.t)) - } - i.lastFrameIndex = x[0] - } else { - var C = 1 === t || i.lastFrameIndex > 0 ? x[0] : 0, S = kg(u, C); - r && (b = h.getRawValue(C)), s.attr({x: S[0], y: S[1]}) - } - r && mS(s).setLabelText(b) - } - }, n.prototype._doUpdateAnimation = function (t, e, n, i, r, o) { - var a = this._polyline, s = this._polygon, l = t.hostModel, - u = yg(this._data, t, this._stackedOnPoints, e, this._coordSys, n, this._valueOrigin, o), h = u.current, - c = u.stackedOnCurrent, p = u.next, f = u.stackedOnNext; - if (r && (h = Tg(u.current, n, r), c = Tg(u.stackedOnCurrent, n, r), p = Tg(u.next, n, r), f = Tg(u.stackedOnNext, n, r)), wg(h, p) > 3e3 || s && wg(c, f) > 3e3) return a.setShape({points: p}), void (s && s.setShape({ - points: p, - stackedOnPoints: f - })); - a.shape.__points = u.current, a.shape.points = h; - var d = {shape: {points: p}}; - u.current !== h && (d.shape.__points = u.next), a.stopAnimation(), hs(a, d, l), s && (s.setShape({ - points: h, - stackedOnPoints: c - }), s.stopAnimation(), hs(s, {shape: {stackedOnPoints: f}}, l), a.shape.points !== s.shape.points && (s.shape.points = a.shape.points)); - for (var g = [], y = u.status, v = 0; v < y.length; v++) { - var m = y[v].cmd; - if ("=" === m) { - var _ = t.getItemGraphicEl(y[v].idx1); - _ && g.push({el: _, ptIdx: v}) - } - } - a.animators && a.animators.length && a.animators[0].during(function () { - s && s.dirtyShape(); - for (var t = a.shape.__points, e = 0; e < g.length; e++) { - var n = g[e].el, i = 2 * g[e].ptIdx; - n.x = t[i], n.y = t[i + 1], n.markRedraw() - } - }) - }, n.prototype.remove = function () { - var t = this.group, e = this._data; - this._lineGroup.removeAll(), this._symbolDraw.remove(!0), e && e.eachItemGraphicEl(function (n, i) { - n.__temp && (t.remove(n), e.setItemGraphicEl(i, null)) - }), this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null - }, n.type = "line", n - }(wM); - wM.registerClass(kk), yp(Rg("line", !0)), hp(cI.PROCESSOR.STATISTIC, ag("line")); - var Lk = function () { - function t(t, e) { - this._getDataWithEncodedVisual = t, this._getRawData = e - } - - return t.prototype.getAllNames = function () { - var t = this._getRawData(); - return t.mapArray(t.getName) - }, t.prototype.containName = function (t) { - var e = this._getRawData(); - return e.indexOfName(t) >= 0 - }, t.prototype.indexOfName = function (t) { - var e = this._getDataWithEncodedVisual(); - return e.indexOfName(t) - }, t.prototype.getItemVisual = function (t, e) { - var n = this._getDataWithEncodedVisual(); - return n.getItemVisual(t, e) - }, t - }(), Pk = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.useColorPaletteOnData = !0, e - } - - return e(n, t), n.prototype.init = function (e) { - t.prototype.init.apply(this, arguments), this.legendVisualProvider = new Lk(Ev(this.getData, this), Ev(this.getRawData, this)), this._defaultLabelLine(e) - }, n.prototype.mergeOption = function () { - t.prototype.mergeOption.apply(this, arguments) - }, n.prototype.getInitialData = function () { - return Eg(this, {coordDimensions: ["value"], encodeDefaulter: S(Fl, this)}) - }, n.prototype.getDataParams = function (e) { - var n = this.getData(), i = t.prototype.getDataParams.call(this, e), r = []; - return n.each(n.mapDimension("value"), function (t) { - r.push(t) - }), i.percent = po(r, e, n.hostModel.get("percentPrecision")), i.$vars.push("percent"), i - }, n.prototype._defaultLabelLine = function (t) { - Do(t, "labelLine", ["show"]); - var e = t.labelLine, n = t.emphasis.labelLine; - e.show = e.show && t.label.show, n.show = n.show && t.emphasis.label.show - }, n.type = "series.pie", n.defaultOption = { - zlevel: 0, - z: 2, - legendHoverLink: !0, - center: ["50%", "50%"], - radius: [0, "75%"], - clockwise: !0, - startAngle: 90, - minAngle: 0, - minShowLabelAngle: 0, - selectedOffset: 10, - percentPrecision: 2, - stillShowZeroSum: !0, - left: 0, - top: 0, - right: 0, - bottom: 0, - width: null, - height: null, - label: { - rotate: 0, - show: !0, - overflow: "truncate", - position: "outer", - alignTo: "none", - edgeDistance: "25%", - bleedMargin: 10, - distanceToLabelLine: 5 - }, - labelLine: { - show: !0, - length: 15, - length2: 15, - smooth: !1, - minTurnAngle: 90, - maxSurfaceAngle: 90, - lineStyle: {width: 1, type: "solid"} - }, - itemStyle: {borderWidth: 1}, - labelLayout: {hideOverlap: !0}, - emphasis: {scale: !0, scaleSize: 5}, - avoidLabelOverlap: !0, - animationType: "expansion", - animationDuration: 1e3, - animationTypeUpdate: "transition", - animationEasingUpdate: "cubicInOut", - animationDurationUpdate: 500, - animationEasing: "cubicInOut" - }, n - }(vM); - vM.registerClass(Pk); - var Ok = Math.PI / 180, Rk = function (t) { - function n(e, n, i) { - var r = t.call(this) || this; - r.z2 = 2; - var o = new $x, a = new Ew; - return r.setTextGuideLine(o), r.setTextContent(a), r.updateData(e, n, i, !0), r - } - - return e(n, t), n.prototype.updateData = function (t, e, n, i) { - var r = this, o = t.hostModel, a = t.getItemModel(e), s = a.getModel("emphasis"), l = t.getItemLayout(e), - u = h(Hg(a.getModel("itemStyle"), l) || {}, l); - if (i) { - r.setShape(u); - var c = o.getShallow("animationType"); - "scale" === c ? (r.shape.r = l.r0, cs(r, {shape: {r: l.r}}, o, e)) : null != n ? (r.setShape({ - startAngle: n, - endAngle: n - }), cs(r, { - shape: { - startAngle: l.startAngle, - endAngle: l.endAngle - } - }, o, e)) : (r.shape.endAngle = l.startAngle, hs(r, {shape: {endAngle: l.endAngle}}, o, e)) - } else hs(r, {shape: u}, o, e); - r.useStyle(t.getItemVisual(e, "style")), Ua(r, a); - var p = (l.startAngle + l.endAngle) / 2, f = o.get("selectedOffset"), d = Math.cos(p) * f, - g = Math.sin(p) * f, y = a.getShallow("cursor"); - y && r.attr("cursor", y), this._updateLabel(o, t, e), r.ensureState("emphasis").shape = mv({r: l.r + (s.get("scale") ? s.get("scaleSize") || 0 : 0)}, Hg(s.getModel("itemStyle"), l)), h(r.ensureState("select"), { - x: d, - y: g, - shape: Hg(a.getModel(["select", "itemStyle"]), l) - }), h(r.ensureState("blur"), {shape: Hg(a.getModel(["blur", "itemStyle"]), l)}); - var v = r.getTextGuideLine(), m = r.getTextContent(); - h(v.ensureState("select"), {x: d, y: g}), h(m.ensureState("select"), { - x: d, - y: g - }), Xa(this, s.get("focus"), s.get("blurScope")) - }, n.prototype._updateLabel = function (t, e, n) { - var i = this, r = e.getItemModel(n), o = r.getModel("labelLine"), a = e.getItemVisual(n, "style"), - s = a && a.fill, l = a && a.opacity; - Ls(i, Ps(r), { - labelFetcher: e.hostModel, - labelDataIndex: n, - inheritColor: s, - defaultOpacity: l, - defaultText: t.getFormattedLabel(n, "normal") || e.getName(n) - }); - var u = i.getTextContent(); - i.setTextConfig({position: null, rotation: null}), u.attr({z2: 10}), tc(this, ec(r), { - stroke: s, - opacity: F(o.get(["lineStyle", "opacity"]), l, 1) - }) - }, n - }(bw), Ek = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.ignoreLabelLineUpdate = !0, e - } - - return e(n, t), n.prototype.init = function () { - var t = new Ox; - this._sectorGroup = t - }, n.prototype.render = function (t) { - var e, n = t.getData(), i = this._data, r = this.group; - if (!i && n.count() > 0) { - for (var o = n.getItemLayout(0), a = 1; isNaN(o && o.startAngle) && a < n.count(); ++a) o = n.getItemLayout(a); - o && (e = o.startAngle) - } - n.diff(i).add(function (t) { - var i = new Rk(n, t, e); - n.setItemGraphicEl(t, i), r.add(i) - }).update(function (t, o) { - var a = i.getItemGraphicEl(o); - a.updateData(n, t, e), a.off("click"), r.add(a), n.setItemGraphicEl(t, a) - }).remove(function (e) { - var n = i.getItemGraphicEl(e); - ds(n, t, e) - }).execute(), Fg(t), "expansion" !== t.get("animationTypeUpdate") && (this._data = n) - }, n.prototype.dispose = function () { - }, n.prototype.containPoint = function (t, e) { - var n = e.getData(), i = n.getItemLayout(0); - if (i) { - var r = t[0] - i.cx, o = t[1] - i.cy, a = Math.sqrt(r * r + o * o); - return a <= i.r && a >= i.r0 - } - }, n.type = "pie", n - }(wM); - wM.registerClass(Ek); - var zk = 2 * Math.PI, Bk = Math.PI / 180; - hc("pie", fp), yp(S(Gg, "pie")), hp(Wg("pie")); - for (var Nk = ge, Fk = function (t) { - function n(e) { - var n = t.call(this) || this; - return n.type = "view", n.dimensions = ["x", "y"], n._roamTransformable = new ym, n._rawTransformable = new ym, n.name = e, n - } - - return e(n, t), n.prototype.setBoundingRect = function (t, e, n, i) { - return this._rect = new Vm(t, e, n, i), this._rect - }, n.prototype.getBoundingRect = function () { - return this._rect - }, n.prototype.setViewRect = function (t, e, n, i) { - this.transformTo(t, e, n, i), this._viewRect = new Vm(t, e, n, i) - }, n.prototype.transformTo = function (t, e, n, i) { - var r = this.getBoundingRect(), o = this._rawTransformable; - o.transform = r.calculateTransform(new Vm(t, e, n, i)), o.decomposeTransform(), this._updateTransform() - }, n.prototype.setCenter = function (t) { - t && (this._center = t, this._updateCenterAndZoom()) - }, n.prototype.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() - }, n.prototype.getDefaultCenter = function () { - var t = this.getBoundingRect(), e = t.x + t.width / 2, n = t.y + t.height / 2; - return [e, n] - }, n.prototype.getCenter = function () { - return this._center || this.getDefaultCenter() - }, n.prototype.getZoom = function () { - return this._zoom || 1 - }, n.prototype.getRoamTransform = function () { - return this._roamTransformable.getLocalTransform() - }, n.prototype._updateCenterAndZoom = function () { - var t = this._rawTransformable.getLocalTransform(), e = this._roamTransformable, - n = this.getDefaultCenter(), i = this.getCenter(), r = this.getZoom(); - i = ge([], i, t), n = ge([], n, t), e.originX = i[0], e.originY = i[1], e.x = n[0] - i[0], e.y = n[1] - i[1], e.scaleX = e.scaleY = r, this._updateTransform() - }, n.prototype._updateTransform = function () { - var t = this._roamTransformable, e = this._rawTransformable; - e.parent = t, t.updateTransform(), e.updateTransform(), Ve(this.transform || (this.transform = []), e.transform || Fe()), this._rawTransform = e.getLocalTransform(), this.invTransform = this.invTransform || [], Ue(this.invTransform, this.transform), this.decomposeTransform() - }, n.prototype.getTransformInfo = function () { - var t = this._roamTransformable.transform, e = this._rawTransformable; - return {roamTransform: t ? H(t) : Fe(), rawScaleX: e.scaleX, rawScaleY: e.scaleY, rawX: e.x, rawY: e.y} - }, n.prototype.getViewRect = function () { - return this._viewRect - }, n.prototype.getViewRectAfterRoam = function () { - var t = this.getBoundingRect().clone(); - return t.applyTransform(this.transform), t - }, n.prototype.dataToPoint = function (t, e, n) { - var i = e ? this._rawTransform : this.transform; - return n = n || [], i ? Nk(n, t, i) : J(n, t) - }, n.prototype.pointToData = function (t) { - var e = this.invTransform; - return e ? Nk([], t, e) : [t[0], t[1]] - }, n.prototype.convertToPixel = function (t, e, n) { - var i = Xg(e); - return i === this ? i.dataToPoint(n) : null - }, n.prototype.convertFromPixel = function (t, e, n) { - var i = Xg(e); - return i === this ? i.pointToData(n) : null - }, n.prototype.containPoint = function (t) { - return this.getViewRectAfterRoam().contain(t[0], t[1]) - }, n.dimensions = ["x", "y"], n - }(ym), Hk = [126, 25], Vk = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, .7], [52, .7], [56, 7.7], [59, .7], [64, .7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]], Gk = 0; Gk < Vk.length; Gk++) for (var Wk = 0; Wk < Vk[Gk].length; Wk++) Vk[Gk][Wk][0] /= 10.5, Vk[Gk][Wk][1] /= -14, Vk[Gk][Wk][0] += Hk[0], Vk[Gk][Wk][1] += Hk[1]; - var Xk = {"南海诸岛": [32, 80], "广东": [0, -10], "香港": [10, 5], "澳门": [-10, 10], "天津": [5, 5]}, - Yk = {Russia: [100, 60], "United States": [-99, 38], "United States of America": [-99, 38]}, - Uk = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]], - qk = qo(), jk = { - load: function (t, e, n) { - var i = qk(e).parsed; - if (i) return i; - var r, o = e.specialAreas || {}, a = e.geoJSON; - try { - r = a ? Gf(a, n) : [] - } catch (s) { - throw new Error("Invalid geoJson format\n" + s.message) - } - return Yg(t, r), y(r, function (e) { - var n = e.name; - Ug(t, e), qg(t, e), jg(t, e); - var i = o[n]; - i && e.transformTo(i.left, i.top, i.width, i.height) - }), qk(e).parsed = {regions: r, boundingRect: Zg(r)} - } - }, Zk = qo(), Kk = { - load: function (t, e) { - var n = Zk(e).originRoot; - if (n) return {root: n, boundingRect: Zk(e).boundingRect}; - var i = Kg(e); - return Zk(e).originRoot = i.root, Zk(e).boundingRect = i.boundingRect, i - }, makeGraphic: function (t, e, n) { - var i = Zk(e), r = i.rootMap || (i.rootMap = U()), o = r.get(n); - if (o) return o; - var a = i.originRoot, s = i.boundingRect; - return i.originRootHostKey ? o = Kg(e, s).root : (i.originRootHostKey = n, o = a), r.set(n, o) - }, removeGraphic: function (t, e, n) { - var i = Zk(e), r = i.rootMap; - r && r.removeKey(n), n === i.originRootHostKey && (i.originRootHostKey = null) - } - }, $k = {geoJSON: jk, svg: Kk}, Jk = { - load: function (t, e, n) { - var i, r = [], o = U(), a = U(), s = $g(t); - return y(s, function (s) { - var l = $k[s.type].load(t, s, n); - y(l.regions, function (t) { - var n = t.name; - e && e.hasOwnProperty(n) && (t = t.cloneShallow(n = e[n])), r.push(t), o.set(n, t), a.set(n, t.center) - }); - var u = l.boundingRect; - u && (i ? i.union(u) : i = u.clone()) - }), {regions: r, regionsMap: o, nameCoordMap: a, boundingRect: i || new Vm(0, 0, 0, 0)} - }, makeGraphic: function (t, e) { - var n = $g(t), i = []; - return y(n, function (n) { - var r = $k[n.type].makeGraphic; - r && i.push(r(t, n, e)) - }), i - }, removeGraphic: function (t, e) { - var n = $g(t); - y(n, function (n) { - var i = $k[n.type].makeGraphic; - i && i(t, n, e) - }) - } - }, Qk = function (t) { - function n(e, n, i, r) { - var o = t.call(this, e) || this; - o.dimensions = ["lng", "lat"], o.type = "geo", o.map = n; - var a = Jk.load(n, i); - return o._nameCoordMap = a.nameCoordMap, o._regionsMap = a.regionsMap, o._invertLongitute = null == r ? !0 : r, o.regions = a.regions, o._rect = a.boundingRect, o - } - - return e(n, t), n.prototype.containCoord = function (t) { - for (var e = this.regions, n = 0; n < e.length; n++) if (e[n].contain(t)) return !0; - return !1 - }, n.prototype.transformTo = function (t, e, n, i) { - var r = this.getBoundingRect(), o = this._invertLongitute; - r = r.clone(), o && (r.y = -r.y - r.height); - var a = this._rawTransformable; - a.transform = r.calculateTransform(new Vm(t, e, n, i)), a.decomposeTransform(), o && (a.scaleY = -a.scaleY), a.updateTransform(), this._updateTransform() - }, n.prototype.getRegion = function (t) { - return this._regionsMap.get(t) - }, n.prototype.getRegionByCoord = function (t) { - for (var e = this.regions, n = 0; n < e.length; n++) if (e[n].contain(t)) return e[n] - }, n.prototype.addGeoCoord = function (t, e) { - this._nameCoordMap.set(t, e) - }, n.prototype.getGeoCoord = function (t) { - return this._nameCoordMap.get(t) - }, n.prototype.getBoundingRect = function () { - return this._rect - }, n.prototype.dataToPoint = function (t, e, n) { - return "string" == typeof t && (t = this.getGeoCoord(t)), t ? Fk.prototype.dataToPoint.call(this, t, e, n) : void 0 - }, n.prototype.convertToPixel = function (t, e, n) { - var i = Jg(e); - return i === this ? i.dataToPoint(n) : null - }, n.prototype.convertFromPixel = function (t, e, n) { - var i = Jg(e); - return i === this ? i.pointToData(n) : null - }, n - }(Fk); - d(Qk, Fk); - var tL = function () { - function t() { - this.dimensions = Qk.prototype.dimensions - } - - return t.prototype.create = function (t, e) { - var n = []; - t.eachComponent("geo", function (t, i) { - var r = t.get("map"), o = t.get("aspectScale"), a = !0, s = ZM.retrieveMap(r); - s && s[0] && "svg" === s[0].type ? (null == o && (o = 1), a = !1) : null == o && (o = .75); - var l = new Qk(r + i, r, t.get("nameMap"), a); - l.aspectScale = o, l.zoomLimit = t.get("scaleLimit"), n.push(l), t.coordinateSystem = l, l.model = t, l.resize = Qg, l.resize(t, e) - }), t.eachSeries(function (t) { - var e = t.get("coordinateSystem"); - if ("geo" === e) { - var i = t.get("geoIndex") || 0; - t.coordinateSystem = n[i] - } - }); - var i = {}; - return t.eachSeriesByType("map", function (t) { - if (!t.getHostGeoModel()) { - var e = t.getMapType(); - i[e] = i[e] || [], i[e].push(t) - } - }), y(i, function (t, i) { - var r = v(t, function (t) { - return t.get("nameMap") - }), o = new Qk(i, i, u(r)); - o.zoomLimit = B.apply(null, v(t, function (t) { - return t.get("scaleLimit") - })), n.push(o), o.resize = Qg, o.aspectScale = t[0].get("aspectScale"), o.resize(t[0], e), y(t, function (t) { - t.coordinateSystem = o, ty(o, t) - }) - }), n - }, t.prototype.getFilledRegions = function (t, e, n) { - for (var i = (t || []).slice(), r = U(), o = 0; o < i.length; o++) r.set(i[o].name, i[o]); - var a = Jk.load(e, n); - return y(a.regions, function (t) { - var e = t.name; - !r.get(e) && i.push({name: e}) - }), i - }, t - }(), eL = new tL; - dp("geo", eL); - var nL = "\x00_ec_interaction_mutex"; - fp({type: "takeGlobalCursor", event: "globalCursorTaken", update: "update"}, function () { - }); - var iL = function (t) { - function n(e) { - var n = t.call(this) || this; - n._zr = e; - var i = Ev(n._mousedownHandler, n), r = Ev(n._mousemoveHandler, n), o = Ev(n._mouseupHandler, n), - a = Ev(n._mousewheelHandler, n), l = Ev(n._pinchHandler, n); - return n.enable = function (t, n) { - this.disable(), this._opt = c(s(n) || {}, { - zoomOnMouseWheel: !0, - moveOnMouseMove: !0, - moveOnMouseWheel: !1, - preventDefaultMouseMove: !0 - }), null == t && (t = !0), (t === !0 || "move" === t || "pan" === t) && (e.on("mousedown", i), e.on("mousemove", r), e.on("mouseup", o)), (t === !0 || "scale" === t || "zoom" === t) && (e.on("mousewheel", a), e.on("pinch", l)) - }, n.disable = function () { - e.off("mousedown", i), e.off("mousemove", r), e.off("mouseup", o), e.off("mousewheel", a), e.off("pinch", l) - }, n - } - - return e(n, t), n.prototype.isDragging = function () { - return this._dragging - }, n.prototype.isPinching = function () { - return this._pinching - }, n.prototype.setPointerChecker = function (t) { - this.pointerChecker = t - }, n.prototype.dispose = function () { - this.disable() - }, n.prototype._mousedownHandler = function (t) { - if (!(Pe(t) || t.target && t.target.draggable)) { - var e = t.offsetX, n = t.offsetY; - this.pointerChecker && this.pointerChecker(t, e, n) && (this._x = e, this._y = n, this._dragging = !0) - } - }, n.prototype._mousemoveHandler = function (t) { - if (this._dragging && oy("moveOnMouseMove", t, this._opt) && "pinch" !== t.gestureEvent && !ey(this._zr, "globalPan")) { - var e = t.offsetX, n = t.offsetY, i = this._x, r = this._y, o = e - i, a = n - r; - this._x = e, this._y = n, this._opt.preventDefaultMouseMove && Qv(t.event), ry(this, "pan", "moveOnMouseMove", t, { - dx: o, - dy: a, - oldX: i, - oldY: r, - newX: e, - newY: n, - isAvailableBehavior: null - }) - } - }, n.prototype._mouseupHandler = function (t) { - Pe(t) || (this._dragging = !1) - }, n.prototype._mousewheelHandler = function (t) { - var e = oy("zoomOnMouseWheel", t, this._opt), n = oy("moveOnMouseWheel", t, this._opt), i = t.wheelDelta, - r = Math.abs(i), o = t.offsetX, a = t.offsetY; - if (0 !== i && (e || n)) { - if (e) { - var s = r > 3 ? 1.4 : r > 1 ? 1.2 : 1.1, l = i > 0 ? s : 1 / s; - iy(this, "zoom", "zoomOnMouseWheel", t, { - scale: l, - originX: o, - originY: a, - isAvailableBehavior: null - }) - } - if (n) { - var u = Math.abs(i), h = (i > 0 ? 1 : -1) * (u > 3 ? .4 : u > 1 ? .15 : .05); - iy(this, "scrollMove", "moveOnMouseWheel", t, { - scrollDelta: h, - originX: o, - originY: a, - isAvailableBehavior: null - }) - } - } - }, n.prototype._pinchHandler = function (t) { - if (!ey(this._zr, "globalPan")) { - var e = t.pinchScale > 1 ? 1.1 : 1 / 1.1; - iy(this, "zoom", null, t, {scale: e, originX: t.pinchX, originY: t.pinchY, isAvailableBehavior: null}) - } - }, n - }(Uv), rL = {axisPointer: 1, tooltip: 1, brush: 1}, oL = function () { - function t(t) { - var e = new Ox; - this.uid = Vs("ec_map_draw"), this._controller = new iL(t.getZr()), this._controllerHost = {target: e}, this.group = e, e.add(this._regionsGroup = new Ox), e.add(this._backgroundGroup = new Ox) - } - - return t.prototype.draw = function (t, e, n, i, r) { - var o = "geo" === t.mainType, a = t.getData && t.getData(); - o && e.eachComponent({mainType: "series", subType: "map"}, function (e) { - a || e.getHostGeoModel() !== t || (a = e.getData()) - }); - var s = t.coordinateSystem; - this._updateBackground(s); - var l, u, h = this._regionsGroup, c = this.group, p = s.getTransformInfo(), f = !h.childAt(0) || r; - if (f) c.transform = p.roamTransform, c.decomposeTransform(), c.dirty(); else { - var d = new ym; - d.transform = p.roamTransform, d.decomposeTransform(); - var g = {scaleX: d.scaleX, scaleY: d.scaleY, x: d.x, y: d.y}; - l = d.scaleX, u = d.scaleY, hs(c, g, t) - } - h.removeAll(); - var v = U(), m = a && a.getVisual("visualMeta") && a.getVisual("visualMeta").length > 0; - y(s.regions, function (e) { - var i = v.get(e.name) || v.set(e.name, new Ox), - r = new Sw({segmentIgnoreThreshold: 1, shape: {paths: []}}); - i.add(r); - var s, d = t.getRegionModel(e.name) || t, g = d.getModel("itemStyle"), _ = d.getModel("emphasis"), - x = _.getModel("itemStyle"), w = d.getModel(["blur", "itemStyle"]), - b = d.getModel(["select", "itemStyle"]), S = uy(g), T = uy(x), M = uy(w), C = uy(b); - if (a) { - s = a.indexOfName(e.name); - var I = a.getItemVisual(s, "style"), A = a.getItemVisual(s, "decal"); - m && I.fill && (S.fill = I.fill), A && (S.decal = Uc(A, n)) - } - var D = p.rawScaleX, k = p.rawScaleY, L = p.rawX, P = p.rawY, O = function (t) { - return [t[0] * D + L, t[1] * k + P] - }; - y(e.geometries, function (t) { - if ("polygon" === t.type) { - for (var e = [], n = 0; n < t.exterior.length; ++n) e.push(O(t.exterior[n])); - r.shape.paths.push(new Zx({segmentIgnoreThreshold: 1, shape: {points: e}})); - for (var n = 0; n < (t.interiors ? t.interiors.length : 0); ++n) { - for (var i = t.interiors[n], o = [], a = 0; a < i.length; ++a) o.push(O(i[a])); - r.shape.paths.push(new Zx({segmentIgnoreThreshold: 1, shape: {points: o}})) - } - } - }), r.setStyle(S), r.style.strokeNoScale = !0, r.culling = !0, r.ensureState("emphasis").style = T, r.ensureState("blur").style = M, r.ensureState("select").style = C; - for (var R = !1, E = 0; E < Kb.length; E++) { - var z = Kb[E]; - if (d.get("normal" === z ? ["label", "show"] : [z, "label", "show"])) { - R = !0; - break - } - } - var B = a && isNaN(a.get(a.mapDimension("value"), s)), N = a && a.getItemLayout(s); - if (o || B && R || N && N.showLabel) { - var F = o ? e.name : s, H = void 0; - (!a || s >= 0) && (H = t); - var V = O(e.center), - G = new Ew({x: V[0], y: V[1], scaleX: 1 / c.scaleX, scaleY: 1 / c.scaleY, z2: 10, silent: !0}); - Ls(G, Ps(d), {labelFetcher: H, labelDataIndex: F, defaultText: e.name}, { - normal: { - align: "center", - verticalAlign: "middle" - } - }), r.setTextContent(G), r.setTextConfig({local: !0}), r.disableLabelAnimation = !0, f || hs(G, { - scaleX: 1 / l, - scaleY: 1 / u - }, t) - } - if (a) a.setItemGraphicEl(s, i); else { - var W = t.getRegionModel(e.name); - Gb(r).eventData = { - componentType: "geo", - componentIndex: t.componentIndex, - geoIndex: t.componentIndex, - name: e.name, - region: W && W.option || {} - } - } - var X = i.__regions || (i.__regions = []); - X.push(e), i.highDownSilentOnTouch = !!t.get("selectedMode"), Xa(i, _.get("focus"), _.get("blurScope")), h.add(i) - }), this._updateController(t, e, n), this._updateMapSelectHandler(t, h, n, i) - }, t.prototype.remove = function () { - this._regionsGroup.removeAll(), this._backgroundGroup.removeAll(), this._controller.dispose(), this._mapName && Jk.removeGraphic(this._mapName, this.uid), this._mapName = null, this._controllerHost = null - }, t.prototype._updateBackground = function (t) { - var e = t.map; - this._mapName !== e && y(Jk.makeGraphic(e, this.uid), function (t) { - this._backgroundGroup.add(t) - }, this), this._mapName = e - }, t.prototype._updateController = function (t, e, n) { - function i() { - var e = {type: "geoRoam", componentType: s}; - return e[s + "Id"] = t.id, e - } - - var r = t.coordinateSystem, o = this._controller, a = this._controllerHost; - a.zoomLimit = t.get("scaleLimit"), a.zoom = r.getZoom(), o.enable(t.get("roam") || !1); - var s = t.mainType; - o.off("pan").on("pan", function (t) { - this._mouseDownFlag = !1, ay(a, t.dx, t.dy), n.dispatchAction(h(i(), {dx: t.dx, dy: t.dy})) - }, this), o.off("zoom").on("zoom", function (t) { - this._mouseDownFlag = !1, sy(a, t.scale, t.originX, t.originY), n.dispatchAction(h(i(), { - zoom: t.scale, - originX: t.originX, - originY: t.originY - })); - var e = this.group; - this._regionsGroup.traverse(function (t) { - var n = t.getTextContent(); - n && (n.scaleX = 1 / e.scaleX, n.scaleY = 1 / e.scaleY, n.markRedraw()) - }) - }, this), o.setPointerChecker(function (e, i, o) { - return r.getViewRectAfterRoam().contain(i, o) && !ly(e, n, t) - }) - }, t.prototype._updateMapSelectHandler = function (t, e) { - var n = this; - e.off("mousedown"), t.get("selectedMode") && (e.on("mousedown", function () { - n._mouseDownFlag = !0 - }), e.on("click", function () { - n._mouseDownFlag && (n._mouseDownFlag = !1) - })) - }, t - }(), aL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.prototype.init = function (t, e) { - var n = new oL(e); - this._mapDraw = n, this.group.add(n.group), this._api = e - }, n.prototype.render = function (t, e, n, i) { - var r = this._mapDraw; - t.get("show") ? r.draw(t, e, n, this, i) : this._mapDraw.group.removeAll(), r.group.on("click", this._handleRegionClick, this), r.group.silent = t.get("silent"), this._model = t, this.updateSelectStatus(t, e, n) - }, n.prototype._handleRegionClick = function (t) { - for (var e, n = t.target; n && null == (e = Gb(n).eventData);) n = n.__hostTarget || n.parent; - e && this._api.dispatchAction({type: "geoToggleSelect", geoId: this._model.id, name: e.name}) - }, n.prototype.updateSelectStatus = function (t, e, n) { - var i = this; - this._mapDraw.group.traverse(function (t) { - var e = Gb(t).eventData; - return e ? (i._model.isSelected(e.name) ? n.enterSelect(t) : n.leaveSelect(t), !0) : void 0 - }) - }, n.prototype.dispose = function () { - this._mapDraw && this._mapDraw.remove() - }, n.type = "geo", n - }(mM); - mM.registerClass(aL), fp({type: "geoRoam", event: "geoRoam", update: "updateTransform"}, function (t, e) { - var n = t.componentType || "series"; - e.eachComponent({mainType: n, query: t}, function (e) { - var i = e.coordinateSystem; - if ("geo" === i.type) { - var r = hy(i, t, e.get("scaleLimit")); - e.setCenter && e.setCenter(r.center), e.setZoom && e.setZoom(r.zoom), "series" === n && y(e.seriesGroup, function (t) { - t.setCenter(r.center), t.setZoom(r.zoom) - }) - } - }) - }); - var sL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.prototype.init = function (e, n, i) { - t.prototype.init.call(this, e, n, i), Do(e, "label", ["show"]) - }, n.prototype.optionUpdated = function () { - var t = this.option, e = this; - t.regions = eL.getFilledRegions(t.regions, t.map, t.nameMap); - var n = {}; - this._optionModelMap = m(t.regions || [], function (t, i) { - var r = i.name; - return r && (t.set(r, new AS(i, e)), i.selected && (n[r] = !0)), t - }, U()), t.selectedMap || (t.selectedMap = n) - }, n.prototype.getRegionModel = function (t) { - return this._optionModelMap.get(t) || new AS(null, this, this.ecModel) - }, n.prototype.getFormattedLabel = function (t, e) { - var n = this.getRegionModel(t), - i = n.get("normal" === e ? ["label", "formatter"] : ["emphasis", "label", "formatter"]), r = {name: t}; - return "function" == typeof i ? (r.status = e, i(r)) : "string" == typeof i ? i.replace("{a}", null != t ? t : "") : void 0 - }, n.prototype.setZoom = function (t) { - this.option.zoom = t - }, n.prototype.setCenter = function (t) { - this.option.center = t - }, n.prototype.select = function (t) { - var e = this.option, n = e.selectedMode; - if (n) { - "multiple" !== n && (e.selectedMap = null); - var i = e.selectedMap || (e.selectedMap = {}); - i[t] = !0 - } - }, n.prototype.unSelect = function (t) { - var e = this.option.selectedMap; - e && (e[t] = !1) - }, n.prototype.toggleSelected = function (t) { - this[this.isSelected(t) ? "unSelect" : "select"](t) - }, n.prototype.isSelected = function (t) { - var e = this.option.selectedMap; - return !(!e || !e[t]) - }, n.prototype._initSelectedMapFromData = function () { - }, n.type = "geo", n.layoutMode = "box", n.defaultOption = { - zlevel: 0, - z: 0, - show: !0, - left: "center", - top: "center", - aspectScale: null, - silent: !1, - map: "", - boundingCoords: null, - center: null, - zoom: 1, - scaleLimit: null, - label: {show: !1, color: "#000"}, - itemStyle: {borderWidth: .5, borderColor: "#444", color: "#eee"}, - emphasis: {label: {show: !0, color: "rgb(100,0,0)"}, itemStyle: {color: "rgba(255,215,0,0.8)"}}, - select: {label: {show: !0, color: "rgb(100,0,0)"}, itemStyle: {color: "rgba(255,215,0,0.8)"}}, - regions: [] - }, n - }(oT); - oT.registerClass(sL), cy("toggleSelected", { - type: "geoToggleSelect", - event: "geoselectchanged" - }), cy("select", {type: "geoSelect", event: "geoselected"}), cy("unSelect", { - type: "geoUnSelect", - event: "geounselected" - }); - var lL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e.layoutMode = {type: "box", ignoreSize: !0}, e - } - - return e(n, t), n.type = "title", n.defaultOption = { - zlevel: 0, - z: 6, - show: !0, - text: "", - target: "blank", - subtext: "", - subtarget: "blank", - left: 0, - top: 0, - backgroundColor: "rgba(0,0,0,0)", - borderColor: "#ccc", - borderWidth: 0, - padding: 5, - itemGap: 10, - textStyle: {fontSize: 18, fontWeight: "bold", color: "#464646"}, - subtextStyle: {fontSize: 12, color: "#6E7079"} - }, n - }(oT); - oT.registerClass(lL); - var uL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.prototype.render = function (t, e, n) { - if (this.group.removeAll(), t.get("show")) { - var i = this.group, r = t.getModel("textStyle"), o = t.getModel("subtextStyle"), a = t.get("textAlign"), - s = N(t.get("textBaseline"), t.get("textVerticalAlign")), - l = new Ew({style: Os(r, {text: t.get("text"), fill: r.getTextColor()}, {disableBox: !0}), z2: 10}), - u = l.getBoundingRect(), h = t.get("subtext"), c = new Ew({ - style: Os(o, { - text: h, - fill: o.getTextColor(), - y: u.height + t.get("itemGap"), - verticalAlign: "top" - }, {disableBox: !0}), z2: 10 - }), p = t.get("link"), f = t.get("sublink"), d = t.get("triggerEvent", !0); - l.silent = !p && !d, c.silent = !f && !d, p && l.on("click", function () { - Al(p, "_" + t.get("target")) - }), f && c.on("click", function () { - Al(f, "_" + t.get("subtarget")) - }), Gb(l).eventData = Gb(c).eventData = d ? { - componentType: "title", - componentIndex: t.componentIndex - } : null, i.add(l), h && i.add(c); - var g = i.getBoundingRect(), y = t.getBoxLayoutParams(); - y.width = g.width, y.height = g.height; - var v = kl(y, {width: n.getWidth(), height: n.getHeight()}, t.get("padding")); - a || (a = t.get("left") || t.get("right"), "middle" === a && (a = "center"), "right" === a ? v.x += v.width : "center" === a && (v.x += v.width / 2)), s || (s = t.get("top") || t.get("bottom"), "center" === s && (s = "middle"), "bottom" === s ? v.y += v.height : "middle" === s && (v.y += v.height / 2), s = s || "top"), i.x = v.x, i.y = v.y, i.markRedraw(); - var m = {align: a, verticalAlign: s}; - l.setStyle(m), c.setStyle(m), g = i.getBoundingRect(); - var _ = v.margin, x = t.getItemStyle(["color", "opacity"]); - x.fill = t.get("backgroundColor"); - var w = new Gx({ - shape: { - x: g.x - _[3], - y: g.y - _[0], - width: g.width + _[1] + _[3], - height: g.height + _[0] + _[2], - r: t.get("borderRadius") - }, style: x, subPixelOptimize: !0, silent: !0 - }); - i.add(w) - } - }, n.type = "title", n - }(mM); - mM.registerClass(uL); - var hL = function (t, e) { - return "all" === e ? { - type: "all", - title: t.getLocale(["legend", "selector", "all"]) - } : "inverse" === e ? {type: "inverse", title: t.getLocale(["legend", "selector", "inverse"])} : void 0 - }, cL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e.layoutMode = {type: "box", ignoreSize: !0}, e - } - - return e(n, t), n.prototype.init = function (t, e, n) { - this.mergeDefaultAndTheme(t, n), t.selected = t.selected || {}, this._updateSelector(t) - }, n.prototype.mergeOption = function (e, n) { - t.prototype.mergeOption.call(this, e, n), this._updateSelector(e) - }, n.prototype._updateSelector = function (t) { - var e = t.selector, n = this.ecModel; - e === !0 && (e = t.selector = ["all", "inverse"]), T(e) && y(e, function (t, i) { - C(t) && (t = {type: t}), e[i] = l(t, hL(n, t.type)) - }) - }, n.prototype.optionUpdated = function () { - this._updateData(this.ecModel); - var t = this._data; - if (t[0] && "single" === this.get("selectedMode")) { - for (var e = !1, n = 0; n < t.length; n++) { - var i = t[n].get("name"); - if (this.isSelected(i)) { - this.select(i), e = !0; - break - } - } - !e && this.select(t[0].get("name")) - } - }, n.prototype._updateData = function (t) { - var e = [], n = []; - t.eachRawSeries(function (i) { - var r = i.name; - n.push(r); - var o; - if (i.legendVisualProvider) { - var a = i.legendVisualProvider, s = a.getAllNames(); - t.isSeriesFiltered(i) || (n = n.concat(s)), s.length ? e = e.concat(s) : o = !0 - } else o = !0; - o && Go(i) && e.push(i.name) - }), this._availableNames = n; - var i = this.get("data") || e, r = v(i, function (t) { - return ("string" == typeof t || "number" == typeof t) && (t = {name: t}), new AS(t, this, this.ecModel) - }, this); - this._data = r - }, n.prototype.getData = function () { - return this._data - }, n.prototype.select = function (t) { - var e = this.option.selected, n = this.get("selectedMode"); - if ("single" === n) { - var i = this._data; - y(i, function (t) { - e[t.get("name")] = !1 - }) - } - e[t] = !0 - }, n.prototype.unSelect = function (t) { - "single" !== this.get("selectedMode") && (this.option.selected[t] = !1) - }, n.prototype.toggleSelected = function (t) { - var e = this.option.selected; - e.hasOwnProperty(t) || (e[t] = !0), this[e[t] ? "unSelect" : "select"](t) - }, n.prototype.allSelect = function () { - var t = this._data, e = this.option.selected; - y(t, function (t) { - e[t.get("name", !0)] = !0 - }) - }, n.prototype.inverseSelect = function () { - var t = this._data, e = this.option.selected; - y(t, function (t) { - var n = t.get("name", !0); - e.hasOwnProperty(n) || (e[n] = !0), e[n] = !e[n] - }) - }, n.prototype.isSelected = function (t) { - var e = this.option.selected; - return !(e.hasOwnProperty(t) && !e[t]) && p(this._availableNames, t) >= 0 - }, n.prototype.getOrient = function () { - return "vertical" === this.get("orient") ? {index: 1, name: "vertical"} : {index: 0, name: "horizontal"} - }, n.type = "legend.plain", n.dependencies = ["series"], n.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", - inactiveBorderColor: "#ccc", - itemStyle: {borderWidth: 0}, - textStyle: {color: "#333"}, - selectedMode: !0, - selector: !1, - selectorLabel: { - show: !0, - borderRadius: 10, - padding: [3, 5, 3, 5], - fontSize: 12, - fontFamily: " sans-serif", - color: "#666", - borderWidth: 1, - borderColor: "#666" - }, - emphasis: {selectorLabel: {show: !0, color: "#eee", backgroundColor: "#666"}}, - selectorPosition: "auto", - selectorItemGap: 7, - selectorButtonGap: 10, - tooltip: {show: !1} - }, n - }(oT); - oT.registerClass(cL), fp("legendToggleSelect", "legendselectchanged", S(py, "toggleSelected")), fp("legendAllSelect", "legendselectall", S(py, "allSelect")), fp("legendInverseSelect", "legendinverseselect", S(py, "inverseSelect")), fp("legendSelect", "legendselected", S(py, "select")), fp("legendUnSelect", "legendunselected", S(py, "unSelect")); - var pL = S, fL = y, dL = Ox, gL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e.newlineDisabled = !1, e - } - - return e(n, t), n.prototype.init = function () { - this.group.add(this._contentGroup = new dL), this.group.add(this._selectorGroup = new dL), this._isFirstRender = !0 - }, n.prototype.getContentGroup = function () { - return this._contentGroup - }, n.prototype.getSelectorGroup = function () { - return this._selectorGroup - }, n.prototype.render = function (t, e, n) { - var i = this._isFirstRender; - if (this._isFirstRender = !1, this.resetInner(), t.get("show", !0)) { - var r = t.get("align"), o = t.get("orient"); - r && "auto" !== r || (r = "right" === t.get("left") && "vertical" === o ? "right" : "left"); - var a = t.get("selector", !0), s = t.get("selectorPosition", !0); - !a || s && "auto" !== s || (s = "horizontal" === o ? "end" : "start"), this.renderInner(r, t, e, n, a, o, s); - var l = t.getBoxLayoutParams(), u = {width: n.getWidth(), height: n.getHeight()}, h = t.get("padding"), - p = kl(l, u, h), f = this.layoutInner(t, r, p, i, a, s), - d = kl(c({width: f.width, height: f.height}, l), u, h); - this.group.x = d.x - f.x, this.group.y = d.y - f.y, this.group.markRedraw(), this.group.add(this._backgroundEl = fy(f, t)) - } - }, n.prototype.resetInner = function () { - this.getContentGroup().removeAll(), this._backgroundEl && this.group.remove(this._backgroundEl), this.getSelectorGroup().removeAll() - }, n.prototype.renderInner = function (t, e, n, i, r, o, a) { - var s = this.getContentGroup(), l = U(), u = e.get("selectedMode"), h = []; - n.eachRawSeries(function (t) { - !t.get("legendHoverLink") && h.push(t.id) - }), fL(e.getData(), function (r, o) { - var a = r.get("name"); - if (!this.newlineDisabled && ("" === a || "\n" === a)) { - var c = new dL; - return c.newline = !0, void s.add(c) - } - var p = n.getSeriesByName(a)[0]; - if (!l.get(a)) if (p) { - var f = p.getData(), d = f.getVisual("style"), g = d[f.getVisual("drawType")] || d.fill, - y = d.stroke, v = d.decal, m = f.getVisual("legendSymbol") || "roundRect", - _ = f.getVisual("symbol"), x = this._createItem(a, o, r, e, m, _, t, g, y, v, u); - x.on("click", pL(gy, a, null, i, h)).on("mouseover", pL(vy, p.name, null, i, h)).on("mouseout", pL(my, p.name, null, i, h)), l.set(a, !0) - } else n.eachRawSeries(function (n) { - if (!l.get(a) && n.legendVisualProvider) { - var s = n.legendVisualProvider; - if (!s.containName(a)) return; - var c = s.indexOfName(a), p = s.getItemVisual(c, "style"), f = p.stroke, d = p.decal, - g = p.fill, y = an(p.fill); - y && 0 === y[3] && (y[3] = .2, g = gn(y, "rgba")); - var v = "roundRect", m = this._createItem(a, o, r, e, v, null, t, g, f, d, u); - m.on("click", pL(gy, null, a, i, h)).on("mouseover", pL(vy, null, a, i, h)).on("mouseout", pL(my, null, a, i, h)), l.set(a, !0) - } - }, this) - }, this), r && this._createSelector(r, e, i, o, a) - }, n.prototype._createSelector = function (t, e, n) { - var i = this.getSelectorGroup(); - fL(t, function (t) { - var r = t.type, o = new Ew({ - style: {x: 0, y: 0, align: "center", verticalAlign: "middle"}, onclick: function () { - n.dispatchAction({type: "all" === r ? "legendAllSelect" : "legendInverseSelect"}) - } - }); - i.add(o); - var a = e.getModel("selectorLabel"), s = e.getModel(["emphasis", "selectorLabel"]); - Ls(o, {normal: a, emphasis: s}, {defaultText: t.title}), Xa(o) - }) - }, n.prototype._createItem = function (t, e, n, i, r, o, a, s, l, u, c) { - var p = i.get("itemWidth"), f = i.get("itemHeight"), d = i.get("inactiveColor"), - g = i.get("inactiveBorderColor"), y = i.get("symbolKeepAspect"), v = i.getModel("itemStyle"), - m = i.isSelected(t), _ = new dL, x = n.getModel("textStyle"), w = n.get("icon"), - b = n.getModel("tooltip"), S = b.parentModel; - r = w || r; - var T = Yc(r, 0, 0, p, f, m ? s : d, null == y ? !0 : y); - if (_.add(dy(T, r, v, l, g, u, m)), !w && o && (o !== r || "none" === o)) { - var M = .8 * f; - "none" === o && (o = "circle"); - var C = Yc(o, (p - M) / 2, (f - M) / 2, M, M, m ? s : d, null == y ? !0 : y); - _.add(dy(C, o, v, l, g, u, m)) - } - var I = "left" === a ? p + 5 : -5, A = a, D = i.get("formatter"), k = t; - "string" == typeof D && D ? k = D.replace("{name}", null != t ? t : "") : "function" == typeof D && (k = D(t)), _.add(new Ew({ - style: Os(x, { - text: k, - x: I, - y: f / 2, - fill: m ? x.getTextColor() : d, - align: A, - verticalAlign: "middle" - }) - })); - var L = new Gx({shape: _.getBoundingRect(), invisible: !0}); - if (b.get("show")) { - var P = {componentType: "legend", legendIndex: i.componentIndex, name: t, $vars: ["name"]}; - L.tooltip = h({ - content: t, formatter: S.get("formatter", !0) || function (t) { - return t.name - }, formatterParams: P - }, b.option) - } - return _.add(L), _.eachChild(function (t) { - t.silent = !0 - }), L.silent = !c, this.getContentGroup().add(_), Xa(_), _.__legendDataIndex = e, _ - }, n.prototype.layoutInner = function (t, e, n, i, r, o) { - var a = this.getContentGroup(), s = this.getSelectorGroup(); - iT(t.get("orient"), a, t.get("itemGap"), n.width, n.height); - var l = a.getBoundingRect(), u = [-l.x, -l.y]; - if (s.markRedraw(), a.markRedraw(), r) { - iT("horizontal", s, t.get("selectorItemGap", !0)); - var h = s.getBoundingRect(), c = [-h.x, -h.y], p = t.get("selectorButtonGap", !0), - f = t.getOrient().index, d = 0 === f ? "width" : "height", g = 0 === f ? "height" : "width", - y = 0 === f ? "y" : "x"; - "end" === o ? c[f] += l[d] + p : u[f] += h[d] + p, c[1 - f] += l[g] / 2 - h[g] / 2, s.x = c[0], s.y = c[1], a.x = u[0], a.y = u[1]; - var v = {x: 0, y: 0}; - return v[d] = l[d] + p + h[d], v[g] = Math.max(l[g], h[g]), v[y] = Math.min(0, h[y] + c[1 - f]), v - } - return a.x = u[0], a.y = u[1], this.group.getBoundingRect() - }, n.prototype.remove = function () { - this.getContentGroup().removeAll(), this._isFirstRender = !0 - }, n.type = "legend.plain", n - }(mM); - mM.registerClass(gL), hp(cI.PROCESSOR.SERIES_FILTER, _y), oT.registerSubTypeDefaulter("legend", function () { - return "plain" - }); - var yL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.prototype.setScrollDataIndex = function (t) { - this.option.scrollDataIndex = t - }, n.prototype.init = function (e, n, i) { - var r = Ol(e); - t.prototype.init.call(this, e, n, i), xy(this, e, r) - }, n.prototype.mergeOption = function (e, n) { - t.prototype.mergeOption.call(this, e, n), xy(this, this.option, e) - }, n.type = "legend.scroll", n.defaultOption = Xs(cL.defaultOption, { - scrollDataIndex: 0, - pageButtonItemGap: 5, - pageButtonGap: null, - pageButtonPosition: "end", - pageFormatter: "{current}/{total}", - pageIcons: { - horizontal: ["M0,0L12,-10L12,10z", "M0,0L-12,-10L-12,10z"], - vertical: ["M0,0L20,0L10,-20z", "M0,0L20,0L10,20z"] - }, - pageIconColor: "#2f4554", - pageIconInactiveColor: "#aaa", - pageIconSize: 15, - pageTextStyle: {color: "#333"}, - animationDurationUpdate: 800 - }), n - }(cL); - oT.registerClass(yL); - var vL = Ox, mL = ["width", "height"], _L = ["x", "y"], xL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e.newlineDisabled = !0, e._currentIndex = 0, e - } - - return e(n, t), n.prototype.init = function () { - t.prototype.init.call(this), this.group.add(this._containerGroup = new vL), this._containerGroup.add(this.getContentGroup()), this.group.add(this._controllerGroup = new vL) - }, n.prototype.resetInner = function () { - t.prototype.resetInner.call(this), this._controllerGroup.removeAll(), this._containerGroup.removeClipPath(), this._containerGroup.__rectSize = null - }, n.prototype.renderInner = function (e, n, i, r, o, a, s) { - function l(t, e) { - var i = t + "DataIndex", - o = Ts(n.get("pageIcons", !0)[n.getOrient().name][e], {onclick: Ev(u._pageGo, u, i, n, r)}, { - x: -p[0] / 2, - y: -p[1] / 2, - width: p[0], - height: p[1] - }); - o.name = t, h.add(o) - } - - var u = this; - t.prototype.renderInner.call(this, e, n, i, r, o, a, s); - var h = this._controllerGroup, c = n.get("pageIconSize", !0), p = T(c) ? c : [c, c]; - l("pagePrev", 0); - var f = n.getModel("pageTextStyle"); - h.add(new Ew({ - name: "pageText", - style: { - text: "xx/xx", - fill: f.getTextColor(), - font: f.getFont(), - verticalAlign: "middle", - align: "center" - }, - silent: !0 - })), l("pageNext", 1) - }, n.prototype.layoutInner = function (t, e, n, i, r, o) { - var a = this.getSelectorGroup(), l = t.getOrient().index, u = mL[l], h = _L[l], c = mL[1 - l], - p = _L[1 - l]; - r && iT("horizontal", a, t.get("selectorItemGap", !0)); - var f = t.get("selectorButtonGap", !0), d = a.getBoundingRect(), g = [-d.x, -d.y], y = s(n); - r && (y[u] = n[u] - d[u] - f); - var v = this._layoutContentAndController(t, i, y, l, u, c, p, h); - if (r) { - if ("end" === o) g[l] += v[u] + f; else { - var m = d[u] + f; - g[l] -= m, v[h] -= m - } - v[u] += d[u] + f, g[1 - l] += v[p] + v[c] / 2 - d[c] / 2, v[c] = Math.max(v[c], d[c]), v[p] = Math.min(v[p], d[p] + g[1 - l]), a.x = g[0], a.y = g[1], a.markRedraw() - } - return v - }, n.prototype._layoutContentAndController = function (t, e, n, i, r, o, a, s) { - var l = this.getContentGroup(), u = this._containerGroup, h = this._controllerGroup; - iT(t.get("orient"), l, t.get("itemGap"), i ? n.width : null, i ? null : n.height), iT("horizontal", h, t.get("pageButtonItemGap", !0)); - var c = l.getBoundingRect(), p = h.getBoundingRect(), f = this._showController = c[r] > n[r], - d = [-c.x, -c.y]; - e || (d[i] = l[s]); - var g = [0, 0], y = [-p.x, -p.y], v = N(t.get("pageButtonGap", !0), t.get("itemGap", !0)); - if (f) { - var m = t.get("pageButtonPosition", !0); - "end" === m ? y[i] += n[r] - p[r] : g[i] += p[r] + v - } - y[1 - i] += c[o] / 2 - p[o] / 2, l.setPosition(d), u.setPosition(g), h.setPosition(y); - var _ = {x: 0, y: 0}; - if (_[r] = f ? n[r] : c[r], _[o] = Math.max(c[o], p[o]), _[a] = Math.min(0, p[a] + y[1 - i]), u.__rectSize = n[r], f) { - var x = {x: 0, y: 0}; - x[r] = Math.max(n[r] - p[r] - v, 0), x[o] = _[o], u.setClipPath(new Gx({shape: x})), u.__rectSize = x[r] - } else h.eachChild(function (t) { - t.attr({invisible: !0, silent: !0}) - }); - var w = this._getPageInfo(t); - return null != w.pageIndex && hs(l, { - x: w.contentPosition[0], - y: w.contentPosition[1] - }, f ? t : null), this._updatePageInfoView(t, w), _ - }, n.prototype._pageGo = function (t, e, n) { - var i = this._getPageInfo(e)[t]; - null != i && n.dispatchAction({type: "legendScroll", scrollDataIndex: i, legendId: e.id}) - }, n.prototype._updatePageInfoView = function (t, e) { - var n = this._controllerGroup; - y(["pagePrev", "pageNext"], function (i) { - var r = i + "DataIndex", o = null != e[r], a = n.childOfName(i); - a && (a.setStyle("fill", o ? t.get("pageIconColor", !0) : t.get("pageIconInactiveColor", !0)), a.cursor = o ? "pointer" : "default") - }); - var i = n.childOfName("pageText"), r = t.get("pageFormatter"), o = e.pageIndex, a = null != o ? o + 1 : 0, - s = e.pageCount; - i && r && i.setStyle("text", C(r) ? r.replace("{current}", null == a ? "" : a + "").replace("{total}", null == s ? "" : s + "") : r({ - current: a, - total: s - })) - }, n.prototype._getPageInfo = function (t) { - function e(t) { - if (t) { - var e = t.getBoundingRect(), n = e[l] + t[l]; - return {s: n, e: n + e[s], i: t.__legendDataIndex} - } - } - - function n(t, e) { - return t.e >= e && t.s <= e + o - } - - var i = t.get("scrollDataIndex", !0), r = this.getContentGroup(), o = this._containerGroup.__rectSize, - a = t.getOrient().index, s = mL[a], l = _L[a], u = this._findTargetItemIndex(i), h = r.children(), - c = h[u], p = h.length, f = p ? 1 : 0, d = { - contentPosition: [r.x, r.y], - pageCount: f, - pageIndex: f - 1, - pagePrevDataIndex: null, - pageNextDataIndex: null - }; - if (!c) return d; - var g = e(c); - d.contentPosition[a] = -g.s; - for (var y = u + 1, v = g, m = g, _ = null; p >= y; ++y) _ = e(h[y]), (!_ && m.e > v.s + o || _ && !n(_, v.s)) && (v = m.i > v.i ? m : _, v && (null == d.pageNextDataIndex && (d.pageNextDataIndex = v.i), ++d.pageCount)), m = _; - for (var y = u - 1, v = g, m = g, _ = null; y >= -1; --y) _ = e(h[y]), _ && n(m, _.s) || !(v.i < m.i) || (m = v, null == d.pagePrevDataIndex && (d.pagePrevDataIndex = v.i), ++d.pageCount, ++d.pageIndex), v = _; - return d - }, n.prototype._findTargetItemIndex = function (t) { - if (!this._showController) return 0; - var e, n, i = this.getContentGroup(); - return i.eachChild(function (i, r) { - var o = i.__legendDataIndex; - null == n && null != o && (n = r), o === t && (e = r) - }), null != e ? e : n - }, n.type = "legend.scroll", n - }(gL); - mM.registerClass(xL), fp("legendScroll", "legendscroll", function (t, e) { - var n = t.scrollDataIndex; - null != n && e.eachComponent({mainType: "legend", subType: "scroll", query: t}, function (t) { - t.setScrollDataIndex(n) - }) - }); - var wL = qo(), bL = qo(), SL = y, TL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.prototype.render = function (t, e, n) { - var i = e.getComponent("tooltip"), r = t.get("triggerOn") || i && i.get("triggerOn") || "mousemove|click"; - Oy("axisPointer", n, function (t, e, n) { - "none" !== r && ("leave" === t || r.indexOf(t) >= 0) && n({ - type: "updateAxisPointer", - currTrigger: t, - x: e && e.offsetX, - y: e && e.offsetY - }) - }) - }, n.prototype.remove = function (t, e) { - Fy("axisPointer", e) - }, n.prototype.dispose = function (t, e) { - Fy("axisPointer", e) - }, n.type = "axisPointer", n - }(mM); - mM.registerClass(TL); - var ML = qo(), CL = s, IL = Ev, AL = function () { - function t() { - this._dragging = !1, this.animationThreshold = 15 - } - - return t.prototype.render = function (t, e, n, i) { - var r = e.get("value"), o = e.get("status"); - if (this._axisModel = t, this._axisPointerModel = e, this._api = n, i || this._lastValue !== r || this._lastStatus !== o) { - this._lastValue = r, this._lastStatus = o; - var a = this._group, s = this._handle; - if (!o || "hide" === o) return a && a.hide(), void (s && s.hide()); - a && a.show(), s && s.show(); - var l = {}; - this.makeElOption(l, r, t, e, n); - var u = l.graphicKey; - u !== this._lastGraphicKey && this.clear(n), this._lastGraphicKey = u; - var h = this._moveAnimation = this.determineAnimation(t, e); - if (a) { - var c = S(Hy, e, h); - this.updatePointerEl(a, l, c), this.updateLabelEl(a, l, c, e) - } else a = this._group = new Ox, this.createPointerEl(a, l, t, e), this.createLabelEl(a, l, t, e), n.getZr().add(a); - Xy(a, e, !0), this._renderHandle(r) - } - }, t.prototype.remove = function (t) { - this.clear(t) - }, t.prototype.dispose = function (t) { - this.clear(t) - }, t.prototype.determineAnimation = function (t, e) { - var n = e.get("animation"), i = t.axis, r = "category" === i.type, o = e.get("snap"); - if (!o && !r) return !1; - if ("auto" === n || null == n) { - var a = this.animationThreshold; - if (r && i.getBandWidth() > a) return !0; - if (o) { - var s = jd(t).seriesDataCount, l = i.getExtent(); - return Math.abs(l[0] - l[1]) / s > a - } - return !1 - } - return n === !0 - }, t.prototype.makeElOption = function () { - }, t.prototype.createPointerEl = function (t, e) { - var n = e.pointer; - if (n) { - var i = ML(t).pointerEl = new fS[n.type](CL(e.pointer)); - t.add(i) - } - }, t.prototype.createLabelEl = function (t, e, n, i) { - if (e.label) { - var r = ML(t).labelEl = new Ew(CL(e.label)); - t.add(r), Gy(r, i) - } - }, t.prototype.updatePointerEl = function (t, e, n) { - var i = ML(t).pointerEl; - i && e.pointer && (i.setStyle(e.pointer.style), n(i, {shape: e.pointer.shape})) - }, t.prototype.updateLabelEl = function (t, e, n, i) { - var r = ML(t).labelEl; - r && (r.setStyle(e.label.style), n(r, {x: e.label.x, y: e.label.y}), Gy(r, i)) - }, t.prototype._renderHandle = function (t) { - if (!this._dragging && this.updateHandleTransform) { - var e = this._axisPointerModel, n = this._api.getZr(), i = this._handle, r = e.getModel("handle"), - o = e.get("status"); - if (!r.get("show") || !o || "hide" === o) return i && n.remove(i), void (this._handle = null); - var a; - this._handle || (a = !0, i = this._handle = Ts(r.get("icon"), { - cursor: "move", - draggable: !0, - onmousemove: function (t) { - Qv(t.event) - }, - onmousedown: IL(this._onHandleDragMove, this, 0, 0), - drift: IL(this._onHandleDragMove, this), - ondragend: IL(this._onHandleDragEnd, this) - }), n.add(i)), Xy(i, e, !1), i.setStyle(r.getItemStyle(null, ["color", "borderColor", "borderWidth", "opacity", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"])); - var s = r.get("size"); - T(s) || (s = [s, s]), i.scaleX = s[0] / 2, i.scaleY = s[1] / 2, Ih(this, "_doDispatchAxisPointer", r.get("throttle") || 0, "fixRate"), this._moveHandleToValue(t, a) - } - }, t.prototype._moveHandleToValue = function (t, e) { - Hy(this._axisPointerModel, !e && this._moveAnimation, this._handle, Wy(this.getHandleTransform(t, this._axisModel, this._axisPointerModel))) - }, t.prototype._onHandleDragMove = function (t, e) { - var n = this._handle; - if (n) { - this._dragging = !0; - var i = this.updateHandleTransform(Wy(n), [t, e], this._axisModel, this._axisPointerModel); - this._payloadInfo = i, n.stopAnimation(), n.attr(Wy(i)), ML(n).lastProp = null, this._doDispatchAxisPointer() - } - }, t.prototype._doDispatchAxisPointer = function () { - var t = this._handle; - if (t) { - var e = this._payloadInfo, n = this._axisModel; - this._api.dispatchAction({ - type: "updateAxisPointer", - x: e.cursorPoint[0], - y: e.cursorPoint[1], - tooltipOption: e.tooltipOption, - axesInfo: [{axisDim: n.axis.dim, axisIndex: n.componentIndex}] - }) - } - }, t.prototype._onHandleDragEnd = function () { - this._dragging = !1; - var t = this._handle; - if (t) { - var e = this._axisPointerModel.get("value"); - this._moveHandleToValue(e), this._api.dispatchAction({type: "hideTip"}) - } - }, t.prototype.clear = function (t) { - this._lastValue = null, this._lastStatus = null; - var e = t.getZr(), n = this._group, i = this._handle; - e && n && (this._lastGraphicKey = null, n && e.remove(n), i && e.remove(i), this._group = null, this._handle = null, this._payloadInfo = null) - }, t.prototype.doClear = function () { - }, t.prototype.buildLabel = function (t, e, n) { - return n = n || 0, {x: t[n], y: t[1 - n], width: e[n], height: e[1 - n]} - }, t - }(), DL = function (t) { - function n() { - return null !== t && t.apply(this, arguments) || this - } - - return e(n, t), n.prototype.makeElOption = function (t, e, n, i, r) { - var o = n.axis, a = o.grid, s = i.get("type"), l = Qy(a, o).getOtherAxis(o).getGlobalExtent(), - u = o.toGlobalCoord(o.dataToCoord(e, !0)); - if (s && "none" !== s) { - var h = Yy(i), c = kL[s](o, u, l); - c.style = h, t.graphicKey = c.type, t.pointer = c - } - var p = ad(a.model, n); - Ky(e, t, p, n, i, r) - }, n.prototype.getHandleTransform = function (t, e, n) { - var i = ad(e.axis.grid.model, e, {labelInside: !1}); - i.labelMargin = n.get(["handle", "margin"]); - var r = Zy(e.axis, t, i); - return {x: r[0], y: r[1], rotation: i.rotation + (i.labelDirection < 0 ? Math.PI : 0)} - }, n.prototype.updateHandleTransform = function (t, e, n) { - var i = n.axis, r = i.grid, o = i.getGlobalExtent(!0), a = Qy(r, i).getOtherAxis(i).getGlobalExtent(), - s = "x" === i.dim ? 0 : 1, l = [t.x, t.y]; - l[s] += e[s], l[s] = Math.min(o[1], l[s]), l[s] = Math.max(o[0], l[s]); - var u = (a[1] + a[0]) / 2, h = [u, u]; - h[s] = l[s]; - var c = [{verticalAlign: "middle"}, {align: "center"}]; - return {x: l[0], y: l[1], rotation: t.rotation, cursorPoint: h, tooltipOption: c[s]} - }, n - }(AL), kL = { - line: function (t, e, n) { - var i = $y([e, n[0]], [e, n[1]], tv(t)); - return {type: "Line", subPixelOptimize: !0, shape: i} - }, shadow: function (t, e, n) { - var i = Math.max(1, t.getBandWidth()), r = n[1] - n[0]; - return {type: "Rect", shape: Jy([e - i / 2, n[0]], [i, r], tv(t))} - } - }; - sk.registerAxisPointerClass("CartesianAxisPointer", DL); - var LL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.type = "axisPointer", n.defaultOption = { - show: "auto", - zlevel: 0, - z: 50, - type: "line", - snap: !1, - triggerTooltip: !0, - value: null, - status: null, - link: [], - animation: null, - animationDurationUpdate: 200, - lineStyle: {color: "#B9BEC9", width: 1, type: "dashed"}, - shadowStyle: {color: "rgba(210,219,238,0.2)"}, - label: { - show: !0, - formatter: null, - precision: "auto", - margin: 3, - color: "#fff", - padding: [5, 7, 5, 7], - backgroundColor: "auto", - borderColor: null, - borderWidth: 0, - borderRadius: 3 - }, - handle: { - show: !1, - icon: "M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z", - size: 45, - margin: 50, - color: "#333", - shadowBlur: 3, - shadowColor: "#aaa", - shadowOffsetX: 0, - shadowOffsetY: 2, - throttle: 40 - } - }, n - }(oT); - oT.registerClass(LL), up(function (t) { - if (t) { - (!t.axisPointer || 0 === t.axisPointer.length) && (t.axisPointer = {}); - var e = t.axisPointer.link; - e && !T(e) && (t.axisPointer.link = [e]) - } - }), hp(cI.PROCESSOR.STATISTIC, function (t, e) { - t.getComponent("axisPointer").coordSysAxesInfo = Vd(t, e) - }), fp({type: "updateAxisPointer", event: "updateAxisPointer", update: ":updateAxisPointer"}, by); - var PL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.type = "tooltip", n.dependencies = ["axisPointer"], n.defaultOption = { - zlevel: 0, - z: 60, - show: !0, - showContent: !0, - trigger: "item", - triggerOn: "mousemove|click", - alwaysShowContent: !1, - displayMode: "single", - renderMode: "auto", - confine: null, - showDelay: 0, - hideDelay: 100, - transitionDuration: .4, - enterable: !1, - backgroundColor: "#fff", - shadowBlur: 10, - shadowColor: "rgba(0, 0, 0, .2)", - shadowOffsetX: 1, - shadowOffsetY: 2, - borderColor: "#333", - borderRadius: 4, - borderWidth: 1, - padding: null, - extraCssText: "", - axisPointer: { - type: "line", - axis: "auto", - animation: "auto", - animationDurationUpdate: 200, - animationEasingUpdate: "exponentialOut", - crossStyle: {color: "#999", width: 1, type: "dashed", textStyle: {}} - }, - textStyle: {color: "#666", fontSize: 14} - }, n - }(oT); - oT.registerClass(PL); - var OL = ["-ms-", "-moz-", "-o-", "-webkit-", ""], - RL = "position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;", - EL = function () { - function t(t, e, n) { - if (this._show = !1, this._styleCoord = [0, 0, 0, 0], this._enterable = !0, this._firstShow = !0, this._longHide = !0, wv.wxa) return null; - var i = document.createElement("div"); - i.domBelongToZr = !0, this.el = i; - var r = this._zr = e.getZr(), o = this._appendToBody = n && n.appendToBody; - sv(this._styleCoord, r, o, e.getWidth() / 2, e.getHeight() / 2), o ? document.body.appendChild(i) : t.appendChild(i), this._container = t; - var a = this; - i.onmouseenter = function () { - a._enterable && (clearTimeout(a._hideTimeout), a._show = !0), a._inContent = !0 - }, i.onmousemove = function (t) { - if (t = t || window.event, !a._enterable) { - var e = r.handler, n = r.painter.getViewportRoot(); - Ae(n, t, !0), e.dispatch("mousemove", t) - } - }, i.onmouseleave = function () { - a._inContent = !1, a._enterable && a._show && a.hideLater(a._hideDelay) - } - } - - return t.prototype.update = function (t) { - var e = this._container, n = e.currentStyle || document.defaultView.getComputedStyle(e), i = e.style; - "absolute" !== i.position && "absolute" !== n.position && (i.position = "relative"); - var r = t.get("alwaysShowContent"); - r && this._moveIfResized(), this.el.className = t.get("className") || "" - }, t.prototype.show = function (t, e) { - clearTimeout(this._hideTimeout), clearTimeout(this._longHideTimeout); - var n = this.el, i = this._styleCoord, r = n.offsetHeight / 2; - e = Il(e), n.style.cssText = RL + av(t, !this._firstShow, this._longHide) + ";left:" + i[0] + "px;top:" + (i[1] - r) + "px;" + ("border-color: " + e + ";") + (t.get("extraCssText") || ""), n.style.display = n.innerHTML ? "block" : "none", n.style.pointerEvents = this._enterable ? "auto" : "none", this._show = !0, this._firstShow = !1, this._longHide = !1 - }, t.prototype.setContent = function (t, e, n, i, r) { - if (null != t) { - var o = this.el; - if (C(r) && "item" === n.get("trigger") && !ev(n) && (t += iv(n.get("backgroundColor"), i, r)), C(t)) o.innerHTML = t; else if (t) { - o.innerHTML = "", T(t) || (t = [t]); - for (var a = 0; a < t.length; a++) P(t[a]) && t[a].parentNode !== o && o.appendChild(t[a]) - } - } - }, t.prototype.setEnterable = function (t) { - this._enterable = t - }, t.prototype.getSize = function () { - var t = this.el; - return [t.clientWidth, t.clientHeight] - }, t.prototype.moveTo = function (t, e) { - var n = this._styleCoord; - if (sv(n, this._zr, this._appendToBody, t, e), null != n[0] && null != n[1]) { - var i = this.el.style; - i.left = n[0].toFixed(0) + "px", i.top = n[1].toFixed(0) + "px" - } - }, t.prototype._moveIfResized = function () { - var t = this._styleCoord[2], e = this._styleCoord[3]; - this.moveTo(t * this._zr.getWidth(), e * this._zr.getHeight()) - }, t.prototype.hide = function () { - var t = this; - this.el.style.visibility = "hidden", this.el.style.opacity = "0", this._show = !1, this._longHideTimeout = setTimeout(function () { - return t._longHide = !0 - }, 500) - }, t.prototype.hideLater = function (t) { - !this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout = setTimeout(Ev(this.hide, this), t)) : this.hide()) - }, t.prototype.isShow = function () { - return this._show - }, t.prototype.dispose = function () { - this.el.parentNode.removeChild(this.el) - }, t.prototype.getOuterSize = function () { - var t = this.el.clientWidth, e = this.el.clientHeight; - if (document.defaultView && document.defaultView.getComputedStyle) { - var n = document.defaultView.getComputedStyle(this.el); - n && (t += parseInt(n.borderLeftWidth, 10) + parseInt(n.borderRightWidth, 10), e += parseInt(n.borderTopWidth, 10) + parseInt(n.borderBottomWidth, 10)) - } - return {width: t, height: e} - }, t - }(), zL = function () { - function t(t) { - this._show = !1, this._styleCoord = [0, 0, 0, 0], this._enterable = !0, this._zr = t.getZr(), hv(this._styleCoord, this._zr, t.getWidth() / 2, t.getHeight() / 2) - } - - return t.prototype.update = function (t) { - var e = t.get("alwaysShowContent"); - e && this._moveIfResized() - }, t.prototype.show = function () { - this._hideTimeout && clearTimeout(this._hideTimeout), this.el.show(), this._show = !0 - }, t.prototype.setContent = function (t, e, n, i) { - D(t) && Io(""), this.el && this._zr.remove(this.el); - var r = n.getModel("textStyle"); - this.el = new Ew({ - style: { - rich: e.richTextStyles, - text: t, - lineHeight: 22, - backgroundColor: n.get("backgroundColor"), - borderRadius: n.get("borderRadius"), - borderWidth: 1, - borderColor: i, - shadowColor: n.get("shadowColor"), - shadowBlur: n.get("shadowBlur"), - shadowOffsetX: n.get("shadowOffsetX"), - shadowOffsetY: n.get("shadowOffsetY"), - textShadowColor: r.get("textShadowColor"), - textShadowBlur: r.get("textShadowBlur") || 0, - textShadowOffsetX: r.get("textShadowOffsetX") || 0, - textShadowOffsetY: r.get("textShadowOffsetY") || 0, - fill: n.get(["textStyle", "color"]), - padding: uh(n, "richText"), - verticalAlign: "top", - align: "left" - }, z: n.get("z") - }), this._zr.add(this.el); - var o = this; - this.el.on("mouseover", function () { - o._enterable && (clearTimeout(o._hideTimeout), o._show = !0), o._inContent = !0 - }), this.el.on("mouseout", function () { - o._enterable && o._show && o.hideLater(o._hideDelay), o._inContent = !1 - }) - }, t.prototype.setEnterable = function (t) { - this._enterable = t - }, t.prototype.getSize = function () { - var t = this.el, e = this.el.getBoundingRect(), n = uv(t.style); - return [e.width + n.left + n.right, e.height + n.top + n.bottom] - }, t.prototype.moveTo = function (t, e) { - var n = this.el; - if (n) { - var i = this._styleCoord; - hv(i, this._zr, t, e), t = i[0], e = i[1]; - var r = n.style, o = lv(r.borderWidth || 0), a = uv(r); - n.x = t + o + a.left, n.y = e + o + a.top, n.markRedraw() - } - }, t.prototype._moveIfResized = function () { - var t = this._styleCoord[2], e = this._styleCoord[3]; - this.moveTo(t * this._zr.getWidth(), e * this._zr.getHeight()) - }, t.prototype.hide = function () { - this.el && this.el.hide(), this._show = !1 - }, t.prototype.hideLater = function (t) { - !this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout = setTimeout(Ev(this.hide, this), t)) : this.hide()) - }, t.prototype.isShow = function () { - return this._show - }, t.prototype.getOuterSize = function () { - var t = this.getSize(); - return {width: t[0], height: t[1]} - }, t.prototype.dispose = function () { - this._zr.remove(this.el) - }, t - }(), BL = Ev, NL = y, FL = ao, HL = new Gx({shape: {x: -1, y: -1, width: 2, height: 2}}), VL = function (t) { - function n() { - var e = null !== t && t.apply(this, arguments) || this; - return e.type = n.type, e - } - - return e(n, t), n.prototype.init = function (t, e) { - if (!wv.node) { - var n = t.getComponent("tooltip"), i = n.get("renderMode"); - this._renderMode = Jo(i), this._tooltipContent = "richText" === this._renderMode ? new zL(e) : new EL(e.getDom(), e, {appendToBody: n.get("appendToBody", !0)}) - } - }, n.prototype.render = function (t, e, n) { - if (!wv.node) { - this.group.removeAll(), this._tooltipModel = t, this._ecModel = e, this._api = n, this._alwaysShowContent = t.get("alwaysShowContent"); - var i = this._tooltipContent; - i.update(t), i.setEnterable(t.get("enterable")), this._initGlobalListener(), this._keepShow() - } - }, n.prototype._initGlobalListener = function () { - var t = this._tooltipModel, e = t.get("triggerOn"); - Oy("itemTooltip", this._api, BL(function (t, n, i) { - "none" !== e && (e.indexOf(t) >= 0 ? this._tryShow(n, i) : "leave" === t && this._hide(i)) - }, this)) - }, n.prototype._keepShow = function () { - var t = this._tooltipModel, e = this._ecModel, n = this._api; - if (null != this._lastX && null != this._lastY && "none" !== t.get("triggerOn")) { - var i = this; - clearTimeout(this._refreshUpdateTimeout), this._refreshUpdateTimeout = setTimeout(function () { - !n.isDisposed() && i.manuallyShowTip(t, e, n, { - x: i._lastX, - y: i._lastY, - dataByCoordSys: i._lastDataByCoordSys - }) - }) - } - }, n.prototype.manuallyShowTip = function (t, e, n, i) { - if (i.from !== this.uid && !wv.node) { - var r = pv(i, n); - this._ticket = ""; - var o = i.dataByCoordSys; - if (i.tooltip && null != i.x && null != i.y) { - var a = HL; - a.x = i.x, a.y = i.y, a.update(), a.tooltip = i.tooltip, this._tryShow({ - offsetX: i.x, - offsetY: i.y, - target: a - }, r) - } else if (o) this._tryShow({ - offsetX: i.x, - offsetY: i.y, - position: i.position, - dataByCoordSys: o, - tooltipOption: i.tooltipOption - }, r); else if (null != i.seriesIndex) { - if (this._manuallyAxisShowTip(t, e, n, i)) return; - var s = wy(i, e), l = s.point[0], u = s.point[1]; - null != l && null != u && this._tryShow({ - offsetX: l, - offsetY: u, - position: i.position, - target: s.el - }, r) - } else null != i.x && null != i.y && (n.dispatchAction({ - type: "updateAxisPointer", - x: i.x, - y: i.y - }), this._tryShow({ - offsetX: i.x, - offsetY: i.y, - position: i.position, - target: n.getZr().findHover(i.x, i.y).target - }, r)) - } - }, n.prototype.manuallyHideTip = function (t, e, n, i) { - var r = this._tooltipContent; - !this._alwaysShowContent && this._tooltipModel && r.hideLater(this._tooltipModel.get("hideDelay")), this._lastX = this._lastY = this._lastDataByCoordSys = null, i.from !== this.uid && this._hide(pv(i, n)) - }, n.prototype._manuallyAxisShowTip = function (t, e, n, i) { - var r = i.seriesIndex, o = i.dataIndex, a = e.getComponent("axisPointer").coordSysAxesInfo; - if (null != r && null != o && null != a) { - var s = e.getSeriesByIndex(r); - if (s) { - var l = s.getData(), u = cv([l.getItemModel(o), s, (s.coordinateSystem || {}).model, t]); - if ("axis" === u.get("trigger")) return n.dispatchAction({ - type: "updateAxisPointer", - seriesIndex: r, - dataIndex: o, - position: i.position - }), !0 - } - } - }, n.prototype._tryShow = function (t, e) { - var n = t.target, i = this._tooltipModel; - if (i) { - this._lastX = t.offsetX, this._lastY = t.offsetY; - var r = t.dataByCoordSys; - r && r.length ? this._showAxisTooltip(r, t) : n && Wc(n, function (t) { - return null != Gb(t).dataIndex - }) ? (this._lastDataByCoordSys = null, this._showSeriesItemTooltip(t, n, e)) : n && n.tooltip ? (this._lastDataByCoordSys = null, this._showComponentItemTooltip(t, n, e)) : (this._lastDataByCoordSys = null, this._hide(e)) - } - }, n.prototype._showOrMove = function (t, e) { - var n = t.get("showDelay"); - e = Ev(e, this), clearTimeout(this._showTimout), n > 0 ? this._showTimout = setTimeout(e, n) : e() - }, n.prototype._showAxisTooltip = function (t, e) { - var n = this._ecModel, i = this._tooltipModel, r = [e.offsetX, e.offsetY], o = cv([e.tooltipOption, i]), - a = this._renderMode, s = [], l = Ju("section", {blocks: [], noHeader: !0}), u = [], h = new gM; - NL(t, function (t) { - NL(t.dataByAxis, function (t) { - var e = n.getComponent(t.axisDim + "Axis", t.axisIndex), i = t.value; - if (e && null != i) { - var r = jy(i, e.axis, n, t.seriesDataIndices, t.valueLabelOpt), - o = Ju("section", {header: r, noHeader: !W(r), sortBlocks: !0, blocks: []}); - l.blocks.push(o), y(t.seriesDataIndices, function (l) { - var c = n.getSeriesByIndex(l.seriesIndex), p = l.dataIndexInside, f = c.getDataParams(p); - f.axisDim = t.axisDim, f.axisIndex = t.axisIndex, f.axisType = t.axisType, f.axisId = t.axisId, f.axisValue = Af(e.axis, {value: i}), f.axisValueLabel = r, f.marker = h.makeTooltipMarker("item", Il(f.color), a); - var d = Nu(c.formatTooltip(p, !0, null)); - d.markupFragment && o.blocks.push(d.markupFragment), d.markupText && u.push(d.markupText), s.push(f) - }) - } - }) - }), l.blocks.reverse(), u.reverse(); - var c = e.position, p = o.get("order"), f = eh(l, h, a, p, n.get("useUTC")); - f && u.unshift(f); - var d = "richText" === a ? "\n\n" : "
", g = u.join(d); - this._showOrMove(o, function () { - this._updateContentNotChangedOnAxis(t) ? this._updatePosition(o, c, r[0], r[1], this._tooltipContent, s) : this._showTooltipContent(o, g, s, Math.random() + "", r[0], r[1], c, null, h) - }) - }, n.prototype._showSeriesItemTooltip = function (t, e, n) { - var i = Wc(e, function (t) { - return null != Gb(t).dataIndex - }), r = this._ecModel, o = Gb(i), a = o.seriesIndex, s = r.getSeriesByIndex(a), l = o.dataModel || s, - u = o.dataIndex, h = o.dataType, c = l.getData(h), p = this._renderMode, - f = cv([c.getItemModel(u), l, s && (s.coordinateSystem || {}).model, this._tooltipModel]), - d = f.get("trigger"); - if (null == d || "item" === d) { - var g = l.getDataParams(u, h), y = new gM; - g.marker = y.makeTooltipMarker("item", Il(g.color), p); - var v = Nu(l.formatTooltip(u, !1, h)), m = f.get("order"), - _ = v.markupFragment ? eh(v.markupFragment, y, p, m, r.get("useUTC")) : v.markupText, - x = "item_" + l.name + "_" + u; - this._showOrMove(f, function () { - this._showTooltipContent(f, _, g, x, t.offsetX, t.offsetY, t.position, t.target, y) - }), n({ - type: "showTip", - dataIndexInside: u, - dataIndex: c.getRawIndex(u), - seriesIndex: a, - from: this.uid - }) - } - }, n.prototype._showComponentItemTooltip = function (t, e, n) { - var i = e.tooltip; - if (C(i)) { - var r = i; - i = {content: r, formatter: r} - } - var o = new AS(i, this._tooltipModel, this._ecModel), a = o.get("content"), s = Math.random() + "", - l = new gM; - this._showOrMove(o, function () { - this._showTooltipContent(o, a, o.get("formatterParams") || {}, s, t.offsetX, t.offsetY, t.position, e, l) - }), n({type: "showTip", from: this.uid}) - }, n.prototype._showTooltipContent = function (t, e, n, i, r, o, a, s, l) { - if (this._ticket = "", t.get("showContent") && t.get("show")) { - var u = this._tooltipContent, h = t.get("formatter"); - a = a || t.get("position"); - var c = e, p = this._getNearestPoint([r, o], n, t.get("trigger")); - if (h && C(h)) { - var f = t.ecModel.get("useUTC"), d = T(n) ? n[0] : n, - g = d && d.axisType && d.axisType.indexOf("time") >= 0; - c = h, g && (c = Qs(d.axisValue, c, f)), c = bl(c, n, !0) - } else if (M(h)) { - var y = BL(function (e, i) { - e === this._ticket && (u.setContent(i, l, t, p.color, a), this._updatePosition(t, a, r, o, u, n, s)) - }, this); - this._ticket = i, c = h(n, i, y) - } - u.setContent(c, l, t, p.color, a), u.show(t, p.color), this._updatePosition(t, a, r, o, u, n, s) - } - }, n.prototype._getNearestPoint = function (t, e, n) { - return "axis" === n || T(e) ? {color: "html" === this._renderMode ? "#fff" : "none"} : T(e) ? void 0 : {color: e.color || e.borderColor} - }, n.prototype._updatePosition = function (t, e, n, i, r, o, a) { - var s = this._api.getWidth(), l = this._api.getHeight(); - e = e || t.get("position"); - var u = r.getSize(), h = t.get("align"), c = t.get("verticalAlign"), p = a && a.getBoundingRect().clone(); - if (a && p.applyTransform(a.transform), M(e) && (e = e([n, i], o, r.el, p, { - viewSize: [s, l], - contentSize: u.slice() - })), T(e)) n = FL(e[0], s), i = FL(e[1], l); else if (D(e)) { - var f = e; - f.width = u[0], f.height = u[1]; - var d = kl(f, {width: s, height: l}); - n = d.x, i = d.y, h = null, c = null - } else if (C(e) && a) { - var g = gv(e, p, u); - n = g[0], i = g[1] - } else { - var g = fv(n, i, r, s, l, h ? null : 20, c ? null : 20); - n = g[0], i = g[1] - } - if (h && (n -= yv(h) ? u[0] / 2 : "right" === h ? u[0] : 0), c && (i -= yv(c) ? u[1] / 2 : "bottom" === c ? u[1] : 0), ev(t)) { - var g = dv(n, i, r, s, l); - n = g[0], i = g[1] - } - r.moveTo(n, i) - }, n.prototype._updateContentNotChangedOnAxis = function (t) { - var e = this._lastDataByCoordSys, n = !!e && e.length === t.length; - return n && NL(e, function (e, i) { - var r = e.dataByAxis || [], o = t[i] || {}, a = o.dataByAxis || []; - n = n && r.length === a.length, n && NL(r, function (t, e) { - var i = a[e] || {}, r = t.seriesDataIndices || [], o = i.seriesDataIndices || []; - n = n && t.value === i.value && t.axisType === i.axisType && t.axisId === i.axisId && r.length === o.length, n && NL(r, function (t, e) { - var i = o[e]; - n = n && t.seriesIndex === i.seriesIndex && t.dataIndex === i.dataIndex - }) - }) - }), this._lastDataByCoordSys = t, !!n - }, n.prototype._hide = function (t) { - this._lastDataByCoordSys = null, t({type: "hideTip", from: this.uid}) - }, n.prototype.dispose = function (t, e) { - wv.node || (this._tooltipContent.dispose(), Fy("itemTooltip", e)) - }, n.type = "tooltip", n - }(mM); - mM.registerClass(VL), fp({type: "showTip", event: "showTip", update: "tooltip:manuallyShowTip"}, function () { - }), fp({type: "hideTip", event: "hideTip", update: "tooltip:manuallyHideTip"}, function () { - }), t.version = qC, t.dependencies = jC, t.PRIORITY = cI, t.init = np, t.connect = ip, t.disConnect = rp, t.disconnect = aA, t.dispose = op, t.getInstanceByDom = ap, t.getInstanceById = sp, t.registerTheme = lp, t.registerPreprocessor = up, t.registerProcessor = hp, t.registerPostInit = cp, t.registerPostUpdate = pp, t.registerAction = fp, t.registerCoordinateSystem = dp, t.getCoordinateSystemDimensions = gp, t.registerLayout = yp, t.registerVisual = vp, t.registerLoading = _p, t.extendComponentModel = xp, t.extendComponentView = wp, t.extendSeriesModel = bp, t.extendChartView = Sp, t.setCanvasCreator = Tp, t.registerMap = Mp, t.getMap = Cp, t.registerTransform = sA, t.dataTool = bA, t.registerLocale = Ys, t.zrender = Mb, t.throttle = Ch, t.helper = dD, t.matrix = um, t.vector = Wv, t.color = Im, t.parseGeoJSON = Gf, t.parseGeoJson = xD, t.number = wD, t.format = bD, t.time = SD, t.util = TD, t.graphic = CD, t.innerDrawElementOnCanvas = Ec, t.List = BA, t.Model = AS, t.Axis = _D, t.env = wv -}); \ No newline at end of file +!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){var e={},i={},n=t.match(/Firefox\/([\d.]+)/),o=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),a=t.match(/Edge\/([\d.]+)/),r=/micromessenger/i.test(t);return n&&(i.firefox=!0,i.version=n[1]),o&&(i.ie=!0,i.version=o[1]),a&&(i.edge=!0,i.version=a[1]),r&&(i.weChat=!0),{browser:i,os:e,node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!i.ie&&!i.edge,pointerEventsSupported:"onpointerdown"in window&&(i.edge||i.ie&&i.version>=11),domSupported:"undefined"!=typeof document}}function i(t,e){"createCanvas"===t&&(vS=null),gS[t]=e}function n(t){if(null==t||"object"!=typeof t)return t;var e=t,i=lS.call(t);if("[object Array]"===i){if(!z(t)){e=[];for(var o=0,a=t.length;a>o;o++)e[o]=n(t[o])}}else if(sS[i]){if(!z(t)){var r=t.constructor;if(t.constructor.from)e=r.from(t);else{e=new r(t.length);for(var o=0,a=t.length;a>o;o++)e[o]=n(t[o])}}}else if(!rS[i]&&!z(t)&&!T(t)){e={};for(var s in t)t.hasOwnProperty(s)&&(e[s]=n(t[s]))}return e}function o(t,e,i){if(!S(e)||!S(t))return i?n(e):t;for(var a in e)if(e.hasOwnProperty(a)){var r=t[a],s=e[a];!S(s)||!S(r)||_(s)||_(r)||T(s)||T(r)||M(s)||M(r)||z(s)||z(r)?!i&&a in t||(t[a]=n(e[a],!0)):o(r,s,i)}return t}function a(t,e){for(var i=t[0],n=1,a=t.length;a>n;n++)i=o(i,t[n],e);return i}function r(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function s(t,e,i){for(var n in e)e.hasOwnProperty(n)&&(i?null!=e[n]:null==t[n])&&(t[n]=e[n]);return t}function l(){return vS||(vS=mS().getContext("2d")),vS}function u(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var i=0,n=t.length;n>i;i++)if(t[i]===e)return i}return-1}function h(t,e){function i(){}var n=t.prototype;i.prototype=e.prototype,t.prototype=new i;for(var o in n)n.hasOwnProperty(o)&&(t.prototype[o]=n[o]);t.prototype.constructor=t,t.superClass=e}function c(t,e,i){t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,s(t,e,i)}function d(t){return t?"string"==typeof t?!1:"number"==typeof t.length:void 0}function f(t,e,i){if(t&&e)if(t.forEach&&t.forEach===hS)t.forEach(e,i);else if(t.length===+t.length)for(var n=0,o=t.length;o>n;n++)e.call(i,t[n],n,t);else for(var a in t)t.hasOwnProperty(a)&&e.call(i,t[a],a,t)}function p(t,e,i){if(t&&e){if(t.map&&t.map===fS)return t.map(e,i);for(var n=[],o=0,a=t.length;a>o;o++)n.push(e.call(i,t[o],o,t));return n}}function g(t,e,i,n){if(t&&e){if(t.reduce&&t.reduce===pS)return t.reduce(e,i,n);for(var o=0,a=t.length;a>o;o++)i=e.call(n,i,t[o],o,t);return i}}function m(t,e,i){if(t&&e){if(t.filter&&t.filter===cS)return t.filter(e,i);for(var n=[],o=0,a=t.length;a>o;o++)e.call(i,t[o],o,t)&&n.push(t[o]);return n}}function v(t,e,i){if(t&&e)for(var n=0,o=t.length;o>n;n++)if(e.call(i,t[n],n,t))return t[n]}function y(t,e){var i=dS.call(arguments,2);return function(){return t.apply(e,i.concat(dS.call(arguments)))}}function x(t){var e=dS.call(arguments,1);return function(){return t.apply(this,e.concat(dS.call(arguments)))}}function _(t){return"[object Array]"===lS.call(t)}function w(t){return"function"==typeof t}function b(t){return"[object String]"===lS.call(t)}function S(t){var e=typeof t;return"function"===e||!!t&&"object"===e}function M(t){return!!rS[lS.call(t)]}function I(t){return!!sS[lS.call(t)]}function T(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function A(t){return t!==t}function D(){for(var t=0,e=arguments.length;e>t;t++)if(null!=arguments[t])return arguments[t]}function C(t,e){return null!=t?t:e}function L(t,e,i){return null!=t?t:null!=e?e:i}function k(){return Function.call.apply(dS,arguments)}function P(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function O(t,e){if(!t)throw new Error(e)}function E(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}function N(t){t[yS]=!0}function z(t){return t[yS]}function R(t){function e(t,e){i?n.set(t,e):n.set(e,t)}var i=_(t);this.data={};var n=this;t instanceof R?t.each(e):t&&f(t,e)}function B(t){return new R(t)}function V(t,e){for(var i=new t.constructor(t.length+e.length),n=0;nd;d++){var p=1<r;r++)for(var s=0;8>s;s++)null==a[s]&&(a[s]=0),a[s]+=((r+s)%2?-1:1)*de(i,7,0===r?1:0,1<a;a++){var r=document.createElement("div"),s=r.style,l=a%2,u=(a>>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",o[u]+":0",n[1-l]+":auto",o[1-u]+":auto",""].join("!important;"),t.appendChild(r),i.push(r)}return i}function ve(t,e,i){for(var n=i?"invTrans":"trans",o=e[n],a=e.srcCoords,r=!0,s=[],l=[],u=0;4>u;u++){var h=t[u].getBoundingClientRect(),c=2*u,d=h.left,f=h.top;s.push(d,f),r=r&&a&&d===a[c]&&f===a[c+1],l.push(t[u].offsetLeft,t[u].offsetTop)}return r&&o?o:(e.srcCoords=s,e[n]=i?fe(l,s):fe(s,l))}function ye(t){return"CANVAS"===t.nodeName.toUpperCase()}function xe(t,e,i,n){return i=i||{},n||!aS.canvasSupported?_e(t,e,i):aS.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(i.zrX=e.layerX,i.zrY=e.layerY):null!=e.offsetX?(i.zrX=e.offsetX,i.zrY=e.offsetY):_e(t,e,i),i}function _e(t,e,i){if(aS.domSupported&&t.getBoundingClientRect){var n=e.clientX,o=e.clientY;if(ye(t)){var a=t.getBoundingClientRect();return i.zrX=n-a.left,void(i.zrY=o-a.top)}if(ge(OS,t,n,o))return i.zrX=OS[0],void(i.zrY=OS[1])}i.zrX=i.zrY=0}function we(t){return t||window.event}function be(t,e,i){if(e=we(e),null!=e.zrX)return e;var n=e.type,o=n&&n.indexOf("touch")>=0;if(o){var a="touchend"!==n?e.targetTouches[0]:e.changedTouches[0];a&&xe(t,a,e,i)}else xe(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var r=e.button;return null==e.which&&void 0!==r&&PS.test(e.type)&&(e.which=1&r?1:2&r?3:4&r?2:0),e}function Se(t,e,i,n){kS?t.addEventListener(e,i,n):t.attachEvent("on"+e,i)}function Me(t,e,i,n){kS?t.removeEventListener(e,i,n):t.detachEvent("on"+e,i)}function Ie(t){return 2===t.which||3===t.which}function Te(t){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1];return Math.sqrt(e*e+i*i)}function Ae(t){return[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]}function De(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:Ce}}function Ce(){ES(this.event)}function Le(){}function ke(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?RS:!0}return!1}function Pe(t,e,i){var n=t.painter;return 0>e||e>n.getWidth()||0>i||i>n.getHeight()}function Oe(){var t=new GS(6);return Ee(t),t}function Ee(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function Ne(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 ze(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 Re(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 Be(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 Ve(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 Ge(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 Fe(t){var e=Oe();return Ne(e,t),e}function We(t){return t>HS||-HS>t}function He(t){this._target=t.target,this._life=t.life||1e3,this._delay=t.delay||0,this._initialized=!1,this.loop=null==t.loop?!1: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 Ze(t){return t=Math.round(t),0>t?0:t>255?255:t}function Ue(t){return t=Math.round(t),0>t?0:t>360?360:t}function Xe(t){return 0>t?0:t>1?1:t}function Ye(t){return Ze(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function je(t){return Xe(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function qe(t,e,i){return 0>i?i+=1:i>1&&(i-=1),1>6*i?t+(e-t)*i*6:1>2*i?e:2>3*i?t+(e-t)*(2/3-i)*6:t}function Ke(t,e,i){return t+(e-t)*i}function $e(t,e,i,n,o){return t[0]=e,t[1]=i,t[2]=n,t[3]=o,t}function Je(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Qe(t,e){nM&&Je(nM,e),nM=iM.put(t,nM||e.slice())}function ti(t,e){if(t){e=e||[];var i=iM.get(t);if(i)return Je(e,i);t+="";var n=t.replace(/ /g,"").toLowerCase();if(n in eM)return Je(e,eM[n]),Qe(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 $e(e,0,0,0,1);l=je(s.pop());case"rgb":return 3!==s.length?void $e(e,0,0,0,1):($e(e,Ye(s[0]),Ye(s[1]),Ye(s[2]),l),Qe(t,e),e);case"hsla":return 4!==s.length?void $e(e,0,0,0,1):(s[3]=je(s[3]),ei(s,e),Qe(t,e),e);case"hsl":return 3!==s.length?void $e(e,0,0,0,1):(ei(s,e),Qe(t,e),e);default:return}}$e(e,0,0,0,1)}else{if(4===n.length){var u=parseInt(n.substr(1),16);return u>=0&&4095>=u?($e(e,(3840&u)>>4|(3840&u)>>8,240&u|(240&u)>>4,15&u|(15&u)<<4,1),Qe(t,e),e):void $e(e,0,0,0,1)}if(7===n.length){var u=parseInt(n.substr(1),16);return u>=0&&16777215>=u?($e(e,(16711680&u)>>16,(65280&u)>>8,255&u,1),Qe(t,e),e):void $e(e,0,0,0,1)}}}}function ei(t,e){var i=(parseFloat(t[0])%360+360)%360/360,n=je(t[1]),o=je(t[2]),a=.5>=o?o*(n+1):o+n-o*n,r=2*o-a;return e=e||[],$e(e,Ze(255*qe(r,a,i+1/3)),Ze(255*qe(r,a,i)),Ze(255*qe(r,a,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function ii(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=.5>u?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),0>e&&(e+=1),e>1&&(e-=1)}var f=[360*e,i,u];return null!=t[3]&&f.push(t[3]),f}}function ni(t,e){var i=ti(t);if(i){for(var n=0;3>n;n++)i[n]=0>e?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 ui(i,4===i.length?"rgba":"rgb")}}function oi(t){var e=ti(t);return e?((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1):void 0}function ai(t,e,i){if(e&&e.length&&t>=0&&1>=t){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]=Ze(Ke(r[0],s[0],l)),i[1]=Ze(Ke(r[1],s[1],l)),i[2]=Ze(Ke(r[2],s[2],l)),i[3]=Xe(Ke(r[3],s[3],l)),i}}function ri(t,e,i){if(e&&e.length&&t>=0&&1>=t){var n=t*(e.length-1),o=Math.floor(n),a=Math.ceil(n),r=ti(e[o]),s=ti(e[a]),l=n-o,u=ui([Ze(Ke(r[0],s[0],l)),Ze(Ke(r[1],s[1],l)),Ze(Ke(r[2],s[2],l)),Xe(Ke(r[3],s[3],l))],"rgba");return i?{color:u,leftIndex:o,rightIndex:a,value:n}:u}}function si(t,e,i,n){return t=ti(t),t?(t=ii(t),null!=e&&(t[0]=Ue(e)),null!=i&&(t[1]=je(i)),null!=n&&(t[2]=je(n)),ui(ei(t),"rgba")):void 0}function li(t,e){return t=ti(t),t&&null!=e?(t[3]=Xe(e),ui(t,"rgba")):void 0}function ui(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 hi(t,e){return t[e]}function ci(t,e,i){t[e]=i}function di(t,e,i){return(e-t)*i+t}function fi(t,e,i){return i>.5?e:t}function pi(t,e,i,n,o){var a=t.length;if(1===o)for(var r=0;a>r;r++)n[r]=di(t[r],e[r],i);else for(var s=a&&t[0].length,r=0;a>r;r++)for(var l=0;s>l;l++)n[r][l]=di(t[r][l],e[r][l],i)}function gi(t,e,i){var n=t.length,o=e.length;if(n!==o){var a=n>o;if(a)t.length=o;else for(var r=n;o>r;r++)t.push(1===i?e[r]:sM.call(e[r]))}for(var s=t[0]&&t[0].length,r=0;rl;l++)isNaN(t[r][l])&&(t[r][l]=e[r][l])}function mi(t,e,i){if(t===e)return!0;var n=t.length;if(n!==e.length)return!1;if(1===i){for(var o=0;n>o;o++)if(t[o]!==e[o])return!1}else for(var a=t[0].length,o=0;n>o;o++)for(var r=0;a>r;r++)if(t[o][r]!==e[o][r])return!1;return!0}function vi(t,e,i,n,o,a,r,s,l){var u=t.length;if(1===l)for(var h=0;u>h;h++)s[h]=yi(t[h],e[h],i[h],n[h],o,a,r);else for(var c=t[0].length,h=0;u>h;h++)for(var d=0;c>d;d++)s[h][d]=yi(t[h][d],e[h][d],i[h][d],n[h][d],o,a,r)}function yi(t,e,i,n,o,a,r){var s=.5*(i-t),l=.5*(n-e);return(2*(e-i)+s+l)*r+(-3*(e-i)-2*s-l)*a+s*o+e}function xi(t){if(d(t)){var e=t.length;if(d(t[0])){for(var i=[],n=0;e>n;n++)i.push(sM.call(t[n]));return i}return sM.call(t)}return t}function _i(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}function wi(t){var e=t[t.length-1].value;return d(e&&e[0])?2:1}function bi(t,e,i,n,o,a){var r=t._getter,s=t._setter,l="spline"===e,u=n.length;if(u){var h,c=n[0].value,f=d(c),p=!1,g=!1,m=f?wi(n):0;n.sort(function(t,e){return t.time-e.time}),h=n[u-1].time;for(var v=[],y=[],x=n[0].value,_=!0,w=0;u>w;w++){v.push(n[w].time/h);var b=n[w].value;if(f&&mi(b,x,m)||!f&&b===x||(_=!1),x=b,"string"==typeof b){var S=ti(b);S?(b=S,p=!0):g=!0}y.push(b)}if(a||!_){for(var M=y[u-1],w=0;u-1>w;w++)f?gi(y[w],M,m):!isNaN(y[w])||isNaN(M)||g||p||(y[w]=M);f&&gi(r(t._target,o),M,m);var I,T,A,D,C,L,k=0,P=0;if(p)var O=[0,0,0,0];var E=function(t,e){var i;if(0>e)i=0;else if(P>e){for(I=Math.min(k+1,u-1),i=I;i>=0&&!(v[i]<=e);i--);i=Math.min(i,u-2)}else{for(i=k;u>i&&!(v[i]>e);i++);i=Math.min(i-1,u-2)}k=i,P=e;var n=v[i+1]-v[i];if(0!==n)if(T=(e-v[i])/n,l)if(D=y[i],A=y[0===i?i:i-1],C=y[i>u-2?u-1:i+1],L=y[i>u-3?u-1:i+2],f)vi(A,D,C,L,T,T*T,T*T*T,r(t,o),m);else{var a;if(p)a=vi(A,D,C,L,T,T*T,T*T*T,O,1),a=_i(O);else{if(g)return fi(D,C,T);a=yi(A,D,C,L,T,T*T,T*T*T)}s(t,o,a)}else if(f)pi(y[i],y[i+1],T,r(t,o),m);else{var a;if(p)pi(y[i],y[i+1],T,O,1),a=_i(O);else{if(g)return fi(y[i],y[i+1],T);a=di(y[i],y[i+1],T)}s(t,o,a)}},N=new He({target:t._target,life:h,loop:t._loop,delay:t._delay,onframe:E,ondestroy:i});return e&&"spline"!==e&&(N.easing=e),N}}}function Si(t,e,i,n,o,a,r,s){function l(){h--,h||a&&a()}b(n)?(a=o,o=n,n=0):w(o)?(a=o,o="linear",n=0):w(n)?(a=n,n=0):w(i)?(a=i,i=500):i||(i=500),t.stopAnimation(),Mi(t,"",t,e,i,n,s);var u=t.animators.slice(),h=u.length;h||a&&a();for(var c=0;c0&&t.animate(e,!1).when(null==o?500:o,s).delay(a||0)}function Ii(t,e,i,n){if(e){var o={};o[e]={},o[e][i]=n,t.attr(o)}else t.attr(i,n)}function Ti(t,e,i,n){0>i&&(t+=i,i=-i),0>n&&(e+=n,n=-n),this.x=t,this.y=e,this.width=i,this.height=n}function Ai(t){for(var e=0;t>=_M;)e|=1&t,t>>=1;return t+e}function Di(t,e,i,n){var o=e+1;if(o===i)return 1;if(n(t[o++],t[e])<0){for(;i>o&&n(t[o],t[o-1])<0;)o++;Ci(t,e,o)}else for(;i>o&&n(t[o],t[o-1])>=0;)o++;return o-e}function Ci(t,e,i){for(i--;i>e;){var n=t[e];t[e++]=t[i],t[i--]=n}}function Li(t,e,i,n,o){for(n===e&&n++;i>n;n++){for(var a,r=t[n],s=e,l=n;l>s;)a=s+l>>>1,o(r,t[a])<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 ki(t,e,i,n,o,a){var r=0,s=0,l=1;if(a(t,e[i+o])>0){for(s=n-o;s>l&&a(t,e[i+o+l])>0;)r=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),r+=o,l+=o}else{for(s=o+1;s>l&&a(t,e[i+o-l])<=0;)r=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var u=r;r=o-l,l=o-u}for(r++;l>r;){var h=r+(l-r>>>1);a(t,e[i+h])>0?r=h+1:l=h}return l}function Pi(t,e,i,n,o,a){var r=0,s=0,l=1;if(a(t,e[i+o])<0){for(s=o+1;s>l&&a(t,e[i+o-l])<0;)r=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var u=r;r=o-l,l=o-u}else{for(s=n-o;s>l&&a(t,e[i+o+l])>=0;)r=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),r+=o,l+=o}for(r++;l>r;){var h=r+(l-r>>>1);a(t,e[i+h])<0?l=h:r=h+1}return l}function Oi(t,e){function i(t,e){l[c]=t,u[c]=e,c+=1}function n(){for(;c>1;){var t=c-2;if(t>=1&&u[t-1]<=u[t]+u[t+1]||t>=2&&u[t-2]<=u[t]+u[t-1])u[t-1]u[t+1])break;a(t)}}function o(){for(;c>1;){var t=c-2;t>0&&u[t-1]=o?r(n,o,a,h):s(n,o,a,h)))}function r(i,n,o,a){var r=0;for(r=0;n>r;r++)d[r]=t[i+r];var s=0,l=o,u=i;if(t[u++]=t[l++],0!==--a){if(1===n){for(r=0;a>r;r++)t[u+r]=t[l+r];return void(t[u+a]=d[s])}for(var c,f,p,g=h;;){c=0,f=0,p=!1;do if(e(t[l],d[s])<0){if(t[u++]=t[l++],f++,c=0,0===--a){p=!0;break}}else if(t[u++]=d[s++],c++,f=0,1===--n){p=!0;break}while(g>(c|f));if(p)break;do{if(c=Pi(t[l],d,s,n,0,e),0!==c){for(r=0;c>r;r++)t[u+r]=d[s+r];if(u+=c,s+=c,n-=c,1>=n){p=!0;break}}if(t[u++]=t[l++],0===--a){p=!0;break}if(f=ki(d[s],t,l,a,0,e),0!==f){for(r=0;f>r;r++)t[u+r]=t[l+r];if(u+=f,l+=f,a-=f,0===a){p=!0;break}}if(t[u++]=d[s++],1===--n){p=!0;break}g--}while(c>=wM||f>=wM);if(p)break;0>g&&(g=0),g+=2}if(h=g,1>h&&(h=1),1===n){for(r=0;a>r;r++)t[u+r]=t[l+r];t[u+a]=d[s]}else{if(0===n)throw new Error;for(r=0;n>r;r++)t[u+r]=d[s+r]}}else for(r=0;n>r;r++)t[u+r]=d[s+r]}function s(i,n,o,a){var r=0;for(r=0;a>r;r++)d[r]=t[o+r];var s=i+n-1,l=a-1,u=o+a-1,c=0,f=0;if(t[u--]=t[s--],0!==--n){if(1===a){for(u-=n,s-=n,f=u+1,c=s+1,r=n-1;r>=0;r--)t[f+r]=t[c+r];return void(t[u]=d[l])}for(var p=h;;){var g=0,m=0,v=!1;do if(e(d[l],t[s])<0){if(t[u--]=t[s--],g++,m=0,0===--n){v=!0;break}}else if(t[u--]=d[l--],m++,g=0,1===--a){v=!0;break}while(p>(g|m));if(v)break;do{if(g=n-Pi(d[l],t,i,n,n-1,e),0!==g){for(u-=g,s-=g,n-=g,f=u+1,c=s+1,r=g-1;r>=0;r--)t[f+r]=t[c+r];if(0===n){v=!0;break}}if(t[u--]=d[l--],1===--a){v=!0;break}if(m=a-ki(t[s],d,0,a,a-1,e),0!==m){for(u-=m,l-=m,a-=m,f=u+1,c=l+1,r=0;m>r;r++)t[f+r]=d[c+r];if(1>=a){v=!0;break}}if(t[u--]=t[s--],0===--n){v=!0;break}p--}while(g>=wM||m>=wM);if(v)break;0>p&&(p=0),p+=2}if(h=p,1>h&&(h=1),1===a){for(u-=n,s-=n,f=u+1,c=s+1,r=n-1;r>=0;r--)t[f+r]=t[c+r];t[u]=d[l]}else{if(0===a)throw new Error;for(c=u-(a-1),r=0;a>r;r++)t[c+r]=d[r]}}else for(c=u-(a-1),r=0;a>r;r++)t[c+r]=d[r]}var l,u,h=wM,c=0,d=[];l=[],u=[],this.mergeRuns=n,this.forceMergeRuns=o,this.pushRun=i}function Ei(t,e,i,n){i||(i=0),n||(n=t.length);var o=n-i;if(!(2>o)){var a=0;if(_M>o)return a=Di(t,i,n,e),void Li(t,i,n,i+a,e);var r=new Oi(t,e),s=Ai(o);do{if(a=Di(t,i,n,e),s>a){var l=o;l>s&&(l=s),Li(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 Ni(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}function zi(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;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;var s=t.createLinearGradient(n,a,o,r);return s}function Ri(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;e.global||(r=r*n+i.x,s=s*o+i.y,l*=a);var u=t.createRadialGradient(r,s,0,r,s,l);return u}function Bi(){return!1}function Vi(t,e,i){var n=mS(),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 Gi(t){if("string"==typeof t){var e=NM.get(t);return e&&e.image}return t}function Fi(t,e,i,n,o){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!i)return e;var a=NM.get(t),r={hostEl:i,cb:n,cbPayload:o};return a?(e=a.image,!Hi(e)&&a.pending.push(r)):(e=new Image,e.onload=e.onerror=Wi,NM.put(t,e.__cachedImgObj={image:e,pending:[r]}),e.src=e.__zrImageSrc=t),e}return t}return e}function Wi(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;ea;a++)o=Math.max(nn(n[a],e).width,o);return RM>BM&&(RM=0,zM={}),RM++,zM[i]=o,o}function Ui(t,e,i,n,o,a,r,s){return r?Yi(t,e,i,n,o,a,r,s):Xi(t,e,i,n,o,a,s)}function Xi(t,e,i,n,o,a,r){var s=on(t,e,o,a,r),l=Zi(t,e);o&&(l+=o[1]+o[3]);var u=s.outerHeight,h=ji(0,l,i),c=qi(0,u,n),d=new Ti(h,c,l,u);return d.lineHeight=s.lineHeight,d}function Yi(t,e,i,n,o,a,r,s){var l=an(t,{rich:r,truncate:s,font:e,textAlign:i,textPadding:o,textLineHeight:a}),u=l.outerWidth,h=l.outerHeight,c=ji(0,u,i),d=qi(0,h,n);return new Ti(c,d,u,h)}function ji(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function qi(t,e,i){return"middle"===i?t-=e/2:"bottom"===i&&(t-=e),t}function Ki(t,e,i){var n=e.textPosition,o=e.textDistance,a=i.x,r=i.y;o=o||0;var s=i.height,l=i.width,u=s/2,h="left",c="top";switch(n){case"left":a-=o,r+=u,h="right",c="middle";break;case"right":a+=o+l,r+=u,c="middle";break;case"top":a+=l/2,r-=o,h="center",c="bottom";break;case"bottom":a+=l/2,r+=s+o,h="center";break;case"inside":a+=l/2,r+=u,h="center",c="middle";break;case"insideLeft":a+=o,r+=u,c="middle";break;case"insideRight":a+=l-o,r+=u,h="right",c="middle";break;case"insideTop":a+=l/2,r+=o,h="center";break;case"insideBottom":a+=l/2,r+=s-o,h="center",c="bottom";break;case"insideTopLeft":a+=o,r+=o;break;case"insideTopRight":a+=l-o,r+=o,h="right";break;case"insideBottomLeft":a+=o,r+=s-o,c="bottom";break;case"insideBottomRight":a+=l-o,r+=s-o,h="right",c="bottom"}return t=t||{},t.x=a,t.y=r,t.textAlign=h,t.textVerticalAlign=c,t}function $i(t,e,i,n,o){if(!e)return"";var a=(t+"").split("\n");o=Ji(e,i,n,o);for(var r=0,s=a.length;s>r;r++)a[r]=Qi(a[r],o);return a.join("\n")}function Ji(t,e,i,n){n=r({},n),n.font=e;var i=C(i,"...");n.maxIterations=C(n.maxIterations,2);var o=n.minChar=C(n.minChar,0);n.cnCharWidth=Zi("国",e);var a=n.ascCharWidth=Zi("a",e);n.placeholder=C(n.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;o>l&&s>=a;l++)s-=a;var u=Zi(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 Qi(t,e){var i=e.containerWidth,n=e.font,o=e.contentWidth;if(!i)return"";var a=Zi(t,n);if(i>=a)return t;for(var r=0;;r++){if(o>=a||r>=e.maxIterations){t+=e.ellipsis;break}var s=0===r?tn(t,o,e.ascCharWidth,e.cnCharWidth):a>0?Math.floor(t.length*o/a):0;t=t.substr(0,s),a=Zi(t,n)}return""===t&&(t=e.placeholder),t}function tn(t,e,i,n){for(var o=0,a=0,r=t.length;r>a&&e>o;a++){var s=t.charCodeAt(a);o+=s>=0&&127>=s?i:n}return a}function en(t){return Zi("国",t)}function nn(t,e){return FM.measureText(t,e)}function on(t,e,i,n,o){null!=t&&(t+="");var a=C(n,en(e)),r=t?t.split("\n"):[],s=r.length*a,l=s,u=!0;if(i&&(l+=i[0]+i[2]),t&&o){u=!1;var h=o.outerHeight,c=o.outerWidth;if(null!=h&&l>h)t="",r=[];else if(null!=c)for(var d=Ji(c-(i?i[1]+i[3]:0),e,o.ellipsis,{minChar:o.minChar,placeholder:o.placeholder}),f=0,p=r.length;p>f;f++)r[f]=Qi(r[f],d)}return{lines:r,height:s,outerHeight:l,lineHeight:a,canCacheByTextString:u}}function an(t,e){var i={lines:[],width:0,height:0};if(null!=t&&(t+=""),!t)return i;for(var n,o=VM.lastIndex=0;null!=(n=VM.exec(t));){var a=n.index;a>o&&rn(i,t.substring(o,a)),rn(i,n[2],n[1]),o=VM.lastIndex}of)return{lines:[],width:0,height:0};x.textWidth=Zi(x.text,b);var M=_.textWidth,I=null==M||"auto"===M;if("string"==typeof M&&"%"===M.charAt(M.length-1))x.percentWidth=M,u.push(x),M=0;else{if(I){M=x.textWidth;var T=_.textBackgroundColor,A=T&&T.image;A&&(A=Gi(A),Hi(A)&&(M=Math.max(M,A.width*S/A.height)))}var D=w?w[1]+w[3]:0;M+=D;var k=null!=d?d-v:null;null!=k&&M>k&&(!I||D>k?(x.text="",x.textWidth=M=0):(x.text=$i(x.text,k-D,b,c.ellipsis,{minChar:c.minChar}),x.textWidth=Zi(x.text,b),M=x.textWidth+D))}v+=x.width=M,_&&(m=Math.max(m,x.lineHeight))}g.width=v,g.lineHeight=m,s+=m,l=Math.max(l,v)}i.outerWidth=i.width=C(e.textWidth,l),i.outerHeight=i.height=C(e.textHeight,s),h&&(i.outerWidth+=h[1]+h[3],i.outerHeight+=h[0]+h[2]);for(var p=0;pl&&(r+=l,l=-l),0>u&&(s+=u,u=-u),"number"==typeof h?i=n=o=a=h:h instanceof Array?1===h.length?i=n=o=a=h[0]:2===h.length?(i=o=h[0],n=a=h[1]):3===h.length?(i=h[0],n=a=h[1],o=h[2]):(i=h[0],n=h[1],o=h[2],a=h[3]):i=n=o=a=0;var c;i+n>l&&(c=i+n,i*=l/c,n*=l/c),o+a>l&&(c=o+a,o*=l/c,a*=l/c),n+o>u&&(c=n+o,n*=u/c,o*=u/c),i+a>u&&(c=i+a,i*=u/c,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 un(t){return hn(t),f(t.rich,hn),t}function hn(t){if(t){t.font=sn(t);var e=t.textAlign;"middle"===e&&(e="center"),t.textAlign=null==e||HM[e]?e:"left";var i=t.textVerticalAlign||t.textBaseline;"center"===i&&(i="middle"),t.textVerticalAlign=null==i||ZM[i]?i:"top";var n=t.textPadding;n&&(t.textPadding=P(t.textPadding))}}function cn(t,e,i,n,o,a){n.rich?fn(t,e,i,n,o,a):dn(t,e,i,n,o,a)}function dn(t,e,i,n,o,a){var r,s=vn(n),l=!1,u=e.__attrCachedBy===IM.PLAIN_TEXT;a!==TM?(a&&(r=a.style,l=!s&&u&&r),e.__attrCachedBy=s?IM.NONE:IM.PLAIN_TEXT):u&&(e.__attrCachedBy=IM.NONE);var h=n.font||WM;l&&h===(r.font||WM)||(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=on(i,c,d,f,n.truncate));var g=p.outerHeight,m=p.lines,v=p.lineHeight,y=_n(YM,t,n,o),x=y.baseX,_=y.baseY,w=y.textAlign||"left",b=y.textVerticalAlign;gn(e,n,o,x,_);var S=qi(_,g,b),M=x,I=S;if(s||d){var T=Zi(i,c),A=T;d&&(A+=d[1]+d[3]);var D=ji(x,A,w);s&&yn(t,e,n,D,S,A,g),d&&(M=In(x,w,d),I+=d[0])}e.textAlign=w,e.textBaseline="middle",e.globalAlpha=n.opacity||1;for(var C=0;CT&&(_=b[T],!_.textAlign||"left"===_.textAlign);)mn(t,e,_,n,M,v,A,"left"),I-=_.width,A+=_.width,T++;for(;C>=0&&(_=b[C],"right"===_.textAlign);)mn(t,e,_,n,M,v,D,"right"),I-=_.width,D-=_.width,C--;for(A+=(a-(A-m)-(y-D)-I)/2;C>=T;)_=b[T],mn(t,e,_,n,M,v,A+_.width/2,"center"),A+=_.width,T++;v+=M}}function gn(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 mn(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&&vn(l)&&yn(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=In(r,s,c),h-=i.height/2-c[2]-i.textHeight/2),wn(e,"shadowBlur",L(l.textShadowBlur,n.textShadowBlur,0)),wn(e,"shadowColor",l.textShadowColor||n.textShadowColor||"transparent"),wn(e,"shadowOffsetX",L(l.textShadowOffsetX,n.textShadowOffsetX,0)),wn(e,"shadowOffsetY",L(l.textShadowOffsetY,n.textShadowOffsetY,0)),wn(e,"textAlign",s),wn(e,"textBaseline","middle"),wn(e,"font",i.font||WM);var d=bn(l.textStroke||n.textStroke,p),f=Sn(l.textFill||n.textFill),p=C(l.textStrokeWidth,n.textStrokeWidth);d&&(wn(e,"lineWidth",p),wn(e,"strokeStyle",d),e.strokeText(i.text,r,h)),f&&(wn(e,"fillStyle",f),e.fillText(i.text,r,h))}function vn(t){return!!(t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor)}function yn(t,e,i,n,o,a,r){var s=i.textBackgroundColor,l=i.textBorderWidth,u=i.textBorderColor,h=b(s);if(wn(e,"shadowBlur",i.textBoxShadowBlur||0),wn(e,"shadowColor",i.textBoxShadowColor||"transparent"),wn(e,"shadowOffsetX",i.textBoxShadowOffsetX||0),wn(e,"shadowOffsetY",i.textBoxShadowOffsetY||0),h||l&&u){e.beginPath();var c=i.textBorderRadius;c?ln(e,{x:n,y:o,width:a,height:r,r:c}):e.rect(n,o,a,r),e.closePath()}if(h)if(wn(e,"fillStyle",s),null!=i.fillOpacity){var d=e.globalAlpha;e.globalAlpha=i.fillOpacity*i.opacity,e.fill(),e.globalAlpha=d}else e.fill();else if(S(s)){var f=s.image;f=Fi(f,null,t,xn,s),f&&Hi(f)&&e.drawImage(f,n,o,a,r)}if(l&&u)if(wn(e,"lineWidth",l),wn(e,"strokeStyle",u),null!=i.strokeOpacity){var d=e.globalAlpha;e.globalAlpha=i.strokeOpacity*i.opacity,e.stroke(),e.globalAlpha=d}else e.stroke()}function xn(t,e){e.image=t}function _n(t,e,i,n){var o=i.x||0,a=i.y||0,r=i.textAlign,s=i.textVerticalAlign;if(n){var l=i.textPosition;if(l instanceof Array)o=n.x+Mn(l[0],n.width),a=n.y+Mn(l[1],n.height);else{var u=e&&e.calculateTextPosition?e.calculateTextPosition(XM,i,n):Ki(XM,i,n);o=u.x,a=u.y,r=r||u.textAlign,s=s||u.textVerticalAlign}var h=i.textOffset;h&&(o+=h[0],a+=h[1])}return t=t||{},t.baseX=o,t.baseY=a,t.textAlign=r,t.textVerticalAlign=s,t}function wn(t,e,i){return t[e]=MM(t,e,i),t[e]}function bn(t,e){return null==t||0>=e||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function Sn(t){return null==t||"none"===t?null:t.image||t.colorStops?"#000":t}function Mn(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function In(t,e,i){return"right"===e?t-i[1]:"center"===e?t+i[3]/2-i[1]/2:t+i[3]}function Tn(t,e){return null!=t&&(t||e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor||e.textPadding)}function An(t){t=t||{},gM.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new DM(t.style,this),this._rect=null,this.__clipPaths=null}function Dn(t){An.call(this,t)}function Cn(t){return parseInt(t,10)}function Ln(t){return t?t.__builtin__?!0:"function"!=typeof t.resize||"function"!=typeof t.refresh?!1:!0:!1}function kn(t,e,i){return tI.copy(t.getBoundingRect()),t.transform&&tI.applyTransform(t.transform),eI.width=e,eI.height=i,!tI.intersect(eI)}function Pn(t,e){if(t===e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var i=0;in;n++){var a=i[n];!t.emphasis[e].hasOwnProperty(a)&&t[e].hasOwnProperty(a)&&(t.emphasis[e][a]=t[e][a])}}}function io(t){return!xI(t)||_I(t)||t instanceof Date?t:t.value}function no(t){return xI(t)&&!(t instanceof Array)}function oo(t,e){e=(e||[]).slice();var i=p(t||[],function(t){return{exist:t}});return yI(e,function(t,n){if(xI(t)){for(var o=0;o=i.length&&i.push({option:t})}}),i}function ao(t){var e=B();yI(t,function(t){var i=t.exist;i&&e.set(i.id,t)}),yI(t,function(t){var i=t.option;O(!i||null==i.id||!e.get(i.id)||e.get(i.id)===t,"id duplicates: "+(i&&i.id)),i&&null!=i.id&&e.set(i.id,t),!t.keyInfo&&(t.keyInfo={})}),yI(t,function(t,i){var n=t.exist,o=t.option,a=t.keyInfo;if(xI(o)){if(a.name=null!=o.name?o.name+"":n?n.name:wI+i,n)a.id=n.id;else if(null!=o.id)a.id=o.id+"";else{var r=0;do a.id="\x00"+a.name+"\x00"+r++;while(e.get(a.id))}e.set(a.id,t)}})}function ro(t){var e=t.name;return!(!e||!e.indexOf(wI))}function so(t){return xI(t)&&t.id&&0===(t.id+"").indexOf("\x00_ec_\x00")}function lo(t,e){function i(t,e,i){for(var n=0,o=t.length;o>n;n++)for(var a=t[n].seriesId,r=to(t[n].dataIndex),s=i&&i[a],l=0,u=r.length;u>l;l++){var h=r[l];s&&s[h]?s[h]=null:(e[a]||(e[a]={}))[h]=1}}function n(t,e){var i=[];for(var o in t)if(t.hasOwnProperty(o)&&null!=t[o])if(e)i.push(+o);else{var a=n(t[o],!0);a.length&&i.push({seriesId:o,dataIndex:a})}return i}var o={},a={};return i(t||[],o),i(e||[],a,o),[n(o),n(a)]}function uo(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?_(e.dataIndex)?p(e.dataIndex,function(e){return t.indexOfRawIndex(e)}):t.indexOfRawIndex(e.dataIndex):null!=e.name?_(e.name)?p(e.name,function(e){return t.indexOfName(e)}):t.indexOfName(e.name):void 0}function ho(){var t="__\x00ec_inner_"+SI++ +"_"+Math.random().toFixed(5);return function(e){return e[t]||(e[t]={})}}function co(t,e,i){if(b(e)){var n={};n[e+"Index"]=0,e=n}var o=i&&i.defaultMainType;!o||fo(e,o+"Index")||fo(e,o+"Id")||fo(e,o+"Name")||(e[o+"Index"]=0);var a={};return yI(e,function(n,o){var n=e[o];if("dataIndex"===o||"dataIndexInside"===o)return void(a[o]=n);var r=o.match(/^(\w+)(Index|Id|Name)$/)||[],s=r[1],l=(r[2]||"").toLowerCase();if(!(!s||!l||null==n||"index"===l&&"none"===n||i&&i.includeMainTypes&&u(i.includeMainTypes,s)<0)){var h={mainType:s};("index"!==l||"all"!==n)&&(h[l]=n);var c=t.queryComponents(h);a[s+"Models"]=c,a[s+"Model"]=c[0]}}),a}function fo(t,e){return t&&t.hasOwnProperty(e)}function po(t,e,i){t.setAttribute?t.setAttribute(e,i):t[e]=i}function go(t,e){return t.getAttribute?t.getAttribute(e):t[e]}function mo(t){return"auto"===t?aS.domSupported?"html":"richText":t||"html"}function vo(t,e){var i=B(),n=[];return f(t,function(t){var o=e(t);(i.get(o)||(n.push(o),i.set(o,[]))).push(t)}),{keys:n,buckets:i}}function yo(t){var e={main:"",sub:""};return t&&(t=t.split(MI),e.main=t[0]||"",e.sub=t[1]||""),e}function xo(t){O(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}function _o(t,e){t.$constructor=t,t.extend=function(t){eS&&f(e,function(e){t[e]||console.warn("Method `"+e+"` should be implemented"+(t.type?" in "+t.type:"")+".")});var i=this,n=function(){t.$constructor?t.$constructor.apply(this,arguments):i.apply(this,arguments)};return r(n.prototype,t),n.extend=this.extend,n.superCall=bo,n.superApply=So,h(n,this),n.superClass=i,n}}function wo(t){var e=["__\x00is_clz",TI++,Math.random().toFixed(3)].join("_");t.prototype[e]=!0,eS&&O(!t.isInstance,'The method "is" can not be defined.'),t.isInstance=function(t){return!(!t||!t[e])}}function bo(t,e){var i=k(arguments,2);return this.superClass.prototype[e].apply(t,i)}function So(t,e,i){return this.superClass.prototype[e].apply(t,i)}function Mo(t,e){function i(t){var e=n[t.main];return e&&e[II]||(e=n[t.main]={},e[II]=!0),e}e=e||{};var n={};if(t.registerClass=function(t,e){if(e)if(xo(e),e=yo(e),e.sub){if(e.sub!==II){var o=i(e);o[e.sub]=t}}else eS&&n[e.main]&&console.warn(e.main+" exists."),n[e.main]=t;return t},t.getClass=function(t,e,i){var o=n[t];if(o&&o[II]&&(o=e?o[e]:null),i&&!o)throw new Error(e?"Component "+t+"."+(e||"")+" not exists. Load it first.":t+".type should be specified.");return o},t.getClassesByMainType=function(t){t=yo(t);var e=[],i=n[t.main];return i&&i[II]?f(i,function(t,i){i!==II&&e.push(t)}):e.push(i),e},t.hasClass=function(t){return t=yo(t),!!n[t.main]},t.getAllClassMainTypes=function(){var t=[];return f(n,function(e,i){t.push(i)}),t},t.hasSubTypes=function(t){t=yo(t);var e=n[t.main];return e&&e[II]},t.parseClassType=yo,e.registerWhenExtend){var o=t.extend;o&&(t.extend=function(e){var i=o.call(this,e);return t.registerClass(i,e.type)})}return t}function Io(t){return t>-EI&&EI>t}function To(t){return t>EI||-EI>t}function Ao(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 Do(t,e,i,n,o){var a=1-o;return 3*(((e-t)*a+2*(i-e)*o)*a+(n-i)*o*o)}function Co(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(Io(h)&&Io(c))if(Io(s))a[0]=0;else{var p=-l/s;p>=0&&1>=p&&(a[f++]=p)}else{var g=c*c-4*h*d;if(Io(g)){var m=c/h,p=-s/r+m,v=-m/2;p>=0&&1>=p&&(a[f++]=p),v>=0&&1>=v&&(a[f++]=v)}else if(g>0){var y=OI(g),x=h*s+1.5*r*(-c+y),_=h*s+1.5*r*(-c-y);x=0>x?-PI(-x,RI):PI(x,RI),_=0>_?-PI(-_,RI):PI(_,RI);var p=(-s-(x+_))/(3*r);p>=0&&1>=p&&(a[f++]=p)}else{var w=(2*h*s-3*r*c)/(2*OI(h*h*h)),b=Math.acos(w)/3,S=OI(h),M=Math.cos(b),p=(-s-2*S*M)/(3*r),v=(-s+S*(M+zI*Math.sin(b)))/(3*r),I=(-s+S*(M-zI*Math.sin(b)))/(3*r);p>=0&&1>=p&&(a[f++]=p),v>=0&&1>=v&&(a[f++]=v),I>=0&&1>=I&&(a[f++]=I)}}return f}function Lo(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(Io(r)){if(To(a)){var u=-s/a;u>=0&&1>=u&&(o[l++]=u)}}else{var h=a*a-4*r*s;if(Io(h))o[0]=-a/(2*r);else if(h>0){var c=OI(h),u=(-a+c)/(2*r),d=(-a-c)/(2*r);u>=0&&1>=u&&(o[l++]=u),d>=0&&1>=d&&(o[l++]=d)}}return l}function ko(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 Po(t,e,i,n,o,a,r,s,l,u,h){var c,d,f,p,g,m=.005,v=1/0;BI[0]=l,BI[1]=u;for(var y=0;1>y;y+=.05)VI[0]=Ao(t,i,o,r,y),VI[1]=Ao(e,n,a,s,y),p=MS(BI,VI),v>p&&(c=y,v=p);v=1/0;for(var x=0;32>x&&!(NI>m);x++)d=c-m,f=c+m,VI[0]=Ao(t,i,o,r,d),VI[1]=Ao(e,n,a,s,d),p=MS(VI,BI),d>=0&&v>p?(c=d,v=p):(GI[0]=Ao(t,i,o,r,f),GI[1]=Ao(e,n,a,s,f),g=MS(GI,BI),1>=f&&v>g?(c=f,v=g):m*=.5);return h&&(h[0]=Ao(t,i,o,r,c),h[1]=Ao(e,n,a,s,c)),OI(v)}function Oo(t,e,i,n){var o=1-n;return o*(o*t+2*n*e)+n*n*i}function Eo(t,e,i,n){return 2*((1-n)*(e-t)+n*(i-e))}function No(t,e,i,n,o){var a=t-2*e+i,r=2*(e-t),s=t-n,l=0;if(Io(a)){if(To(r)){var u=-s/r;u>=0&&1>=u&&(o[l++]=u)}}else{var h=r*r-4*a*s;if(Io(h)){var u=-r/(2*a);u>=0&&1>=u&&(o[l++]=u)}else if(h>0){var c=OI(h),u=(-r+c)/(2*a),d=(-r-c)/(2*a);u>=0&&1>=u&&(o[l++]=u),d>=0&&1>=d&&(o[l++]=d)}}return l}function zo(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function Ro(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 Bo(t,e,i,n,o,a,r,s,l){var u,h=.005,c=1/0;BI[0]=r,BI[1]=s;for(var d=0;1>d;d+=.05){VI[0]=Oo(t,i,o,d),VI[1]=Oo(e,n,a,d);var f=MS(BI,VI);c>f&&(u=d,c=f)}c=1/0;for(var p=0;32>p&&!(NI>h);p++){var g=u-h,m=u+h;VI[0]=Oo(t,i,o,g),VI[1]=Oo(e,n,a,g);var f=MS(VI,BI);if(g>=0&&c>f)u=g,c=f;else{GI[0]=Oo(t,i,o,m),GI[1]=Oo(e,n,a,m);var v=MS(GI,BI);1>=m&&c>v?(u=m,c=v):h*=.5}}return l&&(l[0]=Oo(t,i,o,u),l[1]=Oo(e,n,a,u)),OI(c)}function Vo(t,e,i){if(0!==t.length){var n,o=t[0],a=o[0],r=o[0],s=o[1],l=o[1];for(n=1;nh;h++){var p=d(t,i,o,r,qI[h]);l[0]=FI(p,l[0]),u[0]=WI(p,u[0])}for(f=c(e,n,a,s,KI),h=0;f>h;h++){var g=d(e,n,a,s,KI[h]);l[1]=FI(g,l[1]),u[1]=WI(g,u[1])}l[0]=FI(t,l[0]),u[0]=WI(t,u[0]),l[0]=FI(r,l[0]),u[0]=WI(r,u[0]),l[1]=FI(e,l[1]),u[1]=WI(e,u[1]),l[1]=FI(s,l[1]),u[1]=WI(s,u[1])}function Wo(t,e,i,n,o,a,r,s){var l=zo,u=Oo,h=WI(FI(l(t,i,o),1),0),c=WI(FI(l(e,n,a),1),0),d=u(t,i,o,h),f=u(e,n,a,c);r[0]=FI(t,o,d),r[1]=FI(e,a,f),s[0]=WI(t,o,d),s[1]=WI(e,a,f)}function Ho(t,e,i,n,o,a,r,s,l){var u=re,h=se,c=Math.abs(o-a);if(1e-4>c%UI&&c>1e-4)return s[0]=t-i,s[1]=e-n,l[0]=t+i,void(l[1]=e+n);if(XI[0]=ZI(o)*i+t,XI[1]=HI(o)*n+e,YI[0]=ZI(a)*i+t,YI[1]=HI(a)*n+e,u(s,XI,YI),h(l,XI,YI),o%=UI,0>o&&(o+=UI),a%=UI,0>a&&(a+=UI),o>a&&!r?a+=UI:a>o&&r&&(o+=UI),r){var d=a;a=o,o=d}for(var f=0;a>f;f+=Math.PI/2)f>o&&(jI[0]=ZI(f)*i+t,jI[1]=HI(f)*n+e,u(s,jI,s),h(l,jI,l))}function Zo(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||e-s>r&&n-s>r||a>t+s&&a>i+s||t-s>a&&i-s>a)return!1;if(t===i)return Math.abs(a-t)<=s/2;l=(e-n)/(t-i),u=(t*n-i*e)/(t-i);var h=l*a-r+u,c=h*h/(l*l+1);return s/2*s/2>=c}function Uo(t,e,i,n,o,a,r,s,l,u,h){if(0===l)return!1;var c=l;if(h>e+c&&h>n+c&&h>a+c&&h>s+c||e-c>h&&n-c>h&&a-c>h&&s-c>h||u>t+c&&u>i+c&&u>o+c&&u>r+c||t-c>u&&i-c>u&&o-c>u&&r-c>u)return!1;var d=Po(t,e,i,n,o,a,r,s,u,h,null);return c/2>=d}function Xo(t,e,i,n,o,a,r,s,l){if(0===r)return!1;var u=r;if(l>e+u&&l>n+u&&l>a+u||e-u>l&&n-u>l&&a-u>l||s>t+u&&s>i+u&&s>o+u||t-u>s&&i-u>s&&o-u>s)return!1;var h=Bo(t,e,i,n,o,a,s,l,null);return u/2>=h}function Yo(t){return t%=hT,0>t&&(t+=hT),t}function jo(t,e,i,n,o,a,r,s,l){if(0===r)return!1;var u=r;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>i||i>h+u)return!1;if(Math.abs(n-o)%cT<1e-4)return!0;if(a){var c=n;n=Yo(o),o=Yo(c)}else n=Yo(n),o=Yo(o);n>o&&(o+=cT);var d=Math.atan2(l,s);return 0>d&&(d+=cT),d>=n&&o>=d||d+cT>=n&&o>=d+cT}function qo(t,e,i,n,o,a){if(a>e&&a>n||e>a&&n>a)return 0;if(n===e)return 0;var r=e>n?1:-1,s=(a-e)/(n-e);(1===s||0===s)&&(r=e>n?.5:-.5);var l=s*(i-t)+t;return l===o?1/0:l>o?r:0}function Ko(t,e){return Math.abs(t-e)e&&u>n&&u>a&&u>s||e>u&&n>u&&a>u&&s>u)return 0;var h=Co(e,n,a,s,u,gT);if(0===h)return 0;for(var c,d,f=0,p=-1,g=0;h>g;g++){var m=gT[g],v=0===m||1===m?.5:1,y=Ao(t,i,o,r,m);l>y||(0>p&&(p=Lo(e,n,a,s,mT),mT[1]1&&$o(),c=Ao(e,n,a,s,mT[0]),p>1&&(d=Ao(e,n,a,s,mT[1]))),f+=2===p?mc?v:-v:md?v:-v:d>s?v:-v:mc?v:-v:c>s?v:-v)}return f}function Qo(t,e,i,n,o,a,r,s){if(s>e&&s>n&&s>a||e>s&&n>s&&a>s)return 0;var l=No(e,n,a,s,gT);if(0===l)return 0;var u=zo(e,n,a);if(u>=0&&1>=u){for(var h=0,c=Oo(e,n,a,u),d=0;l>d;d++){var f=0===gT[d]||1===gT[d]?.5:1,p=Oo(t,i,o,gT[d]);r>p||(h+=gT[d]c?f:-f:c>a?f:-f)}return h}var f=0===gT[0]||1===gT[0]?.5:1,p=Oo(t,i,o,gT[0]);return r>p?0:e>a?f:-f}function ta(t,e,i,n,o,a,r,s){if(s-=e,s>i||-i>s)return 0;var l=Math.sqrt(i*i-s*s);gT[0]=-l,gT[1]=l;var u=Math.abs(n-o);if(1e-4>u)return 0;if(1e-4>u%fT){n=0,o=fT;var h=a?1:-1;return r>=gT[0]+t&&r<=gT[1]+t?h:0}if(a){var l=n;n=Yo(o),o=Yo(l)}else n=Yo(n),o=Yo(o);n>o&&(o+=fT);for(var c=0,d=0;2>d;d++){var f=gT[d];if(f+t>r){var p=Math.atan2(s,f),h=a?1:-1;0>p&&(p=fT+p),(p>=n&&o>=p||p+fT>=n&&o>=p+fT)&&(p>Math.PI/2&&p<1.5*Math.PI&&(h=-h),c+=h)}}return c}function ea(t,e,i,n,o){for(var a=0,r=0,s=0,l=0,u=0,h=0;h1&&(i||(a+=qo(r,s,l,u,n,o))),1===h&&(r=t[h],s=t[h+1],l=r,u=s),c){case dT.M:l=t[h++],u=t[h++],r=l,s=u;break;case dT.L:if(i){if(Zo(r,s,t[h],t[h+1],e,n,o))return!0}else a+=qo(r,s,t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case dT.C:if(i){if(Uo(r,s,t[h++],t[h++],t[h++],t[h++],t[h],t[h+1],e,n,o))return!0}else a+=Jo(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 dT.Q:if(i){if(Xo(r,s,t[h++],t[h++],t[h],t[h+1],e,n,o))return!0}else a+=Qo(r,s,t[h++],t[h++],t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case dT.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+=qo(r,s,x,_,n,o):(l=x,u=_);var w=(n-d)*g/p+d;if(i){if(jo(d,f,g,m,m+v,y,e,w,o))return!0}else a+=ta(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 dT.R:l=r=t[h++],u=s=t[h++];var b=t[h++],S=t[h++],x=l+b,_=u+S;if(i){if(Zo(l,u,x,u,e,n,o)||Zo(x,u,x,_,e,n,o)||Zo(x,_,l,_,e,n,o)||Zo(l,_,l,u,e,n,o))return!0}else a+=qo(x,u,x,_,n,o),a+=qo(l,_,l,u,n,o);break;case dT.Z:if(i){if(Zo(r,s,l,u,e,n,o))return!0}else a+=qo(r,s,l,u,n,o);r=l,s=u}}return i||Ko(s,u)||(a+=qo(r,s,l,u,n,o)||0),0!==a}function ia(t,e,i){return ea(t,0,!1,e,i)}function na(t,e,i,n){return ea(t,e,!0,i,n)}function oa(t){An.call(this,t),this.path=null}function aa(t,e,i,n,o,a,r,s,l,u,h){var c=l*(DT/180),d=AT(c)*(t-i)/2+TT(c)*(e-n)/2,f=-1*TT(c)*(t-i)/2+AT(c)*(e-n)/2,p=d*d/(r*r)+f*f/(s*s);p>1&&(r*=IT(p),s*=IT(p));var g=(o===a?-1:1)*IT((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+AT(c)*m-TT(c)*v,x=(e+n)/2+TT(c)*m+AT(c)*v,_=kT([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=kT(w,b);LT(w,b)<=-1&&(S=DT),LT(w,b)>=1&&(S=0),0===a&&S>0&&(S-=2*DT),1===a&&0>S&&(S+=2*DT),h.addData(u,y,x,r,s,_,S,c,a)}function ra(t){if(!t)return new uT;for(var e,i=0,n=0,o=i,a=n,r=new uT,s=uT.CMD,l=t.match(PT),u=0;ug;g++)f[g]=parseFloat(f[g]);for(var m=0;p>m;){var v,y,x,_,w,b,S,M=i,I=n;switch(d){case"l":i+=f[m++],n+=f[m++],h=s.L,r.addData(h,i,n);break;case"L":i=f[m++],n=f[m++],h=s.L,r.addData(h,i,n);break;case"m":i+=f[m++],n+=f[m++],h=s.M,r.addData(h,i,n),o=i,a=n,d="l";break;case"M":i=f[m++],n=f[m++],h=s.M,r.addData(h,i,n),o=i,a=n,d="L";break;case"h":i+=f[m++],h=s.L,r.addData(h,i,n);break;case"H":i=f[m++],h=s.L,r.addData(h,i,n);break;case"v":n+=f[m++],h=s.L,r.addData(h,i,n);break;case"V":n=f[m++],h=s.L,r.addData(h,i,n);break;case"C":h=s.C,r.addData(h,f[m++],f[m++],f[m++],f[m++],f[m++],f[m++]),i=f[m-2],n=f[m-1];break;case"c":h=s.C,r.addData(h,f[m++]+i,f[m++]+n,f[m++]+i,f[m++]+n,f[m++]+i,f[m++]+n),i+=f[m-2],n+=f[m-1];break;case"S":v=i,y=n;var T=r.len(),A=r.data;e===s.C&&(v+=i-A[T-4],y+=n-A[T-3]),h=s.C,M=f[m++],I=f[m++],i=f[m++],n=f[m++],r.addData(h,v,y,M,I,i,n);break;case"s":v=i,y=n;var T=r.len(),A=r.data;e===s.C&&(v+=i-A[T-4],y+=n-A[T-3]),h=s.C,M=i+f[m++],I=n+f[m++],i+=f[m++],n+=f[m++],r.addData(h,v,y,M,I,i,n);break;case"Q":M=f[m++],I=f[m++],i=f[m++],n=f[m++],h=s.Q,r.addData(h,M,I,i,n);break;case"q":M=f[m++]+i,I=f[m++]+n,i+=f[m++],n+=f[m++],h=s.Q,r.addData(h,M,I,i,n);break;case"T":v=i,y=n;var T=r.len(),A=r.data;e===s.Q&&(v+=i-A[T-4],y+=n-A[T-3]),i=f[m++],n=f[m++],h=s.Q,r.addData(h,v,y,i,n);break;case"t":v=i,y=n;var T=r.len(),A=r.data;e===s.Q&&(v+=i-A[T-4],y+=n-A[T-3]),i+=f[m++],n+=f[m++],h=s.Q,r.addData(h,v,y,i,n);break;case"A":x=f[m++],_=f[m++],w=f[m++],b=f[m++],S=f[m++],M=i,I=n,i=f[m++],n=f[m++],h=s.A,aa(M,I,i,n,b,S,x,_,w,h,r);break;case"a":x=f[m++],_=f[m++],w=f[m++],b=f[m++],S=f[m++],M=i,I=n,i+=f[m++],n+=f[m++],h=s.A,aa(M,I,i,n,b,S,x,_,w,h,r)}}("z"===d||"Z"===d)&&(h=s.Z,r.addData(h),i=o,n=a),e=h}return r.toStatic(),r}function sa(t,e){var i=ra(t);return e=e||{},e.buildPath=function(t){if(t.setData){t.setData(i.data);var e=t.getContext();e&&t.rebuildPath(e)}else{var e=t;i.rebuildPath(e)}},e.applyTransform=function(t){MT(i,t),this.dirty(!0)},e}function la(t,e){return new oa(sa(t,e))}function ua(t,e){return oa.extend(sa(t,e))}function ha(t,e){for(var i=[],n=t.length,o=0;n>o;o++){var a=t[o];a.path||a.createPathProxy(),a.__dirtyPath&&a.buildPath(a.path,a.shape,!0),i.push(a.path)}var r=new oa(e);return r.createPathProxy(),r.buildPath=function(t){t.appendPath(i);var e=t.getContext();e&&t.rebuildPath(e)},r}function ca(t,e,i,n,o,a,r){var s=.5*(i-t),l=.5*(n-e);return(2*(e-i)+s+l)*r+(-3*(e-i)-2*s-l)*a+s*o+e}function da(t,e,i){var n=e.points,o=e.smooth;if(n&&n.length>=2){if(o&&"spline"!==o){var a=FT(n,o,i,e.smoothConstraint);t.moveTo(n[0][0],n[0][1]);for(var r=n.length,s=0;(i?r:r-1)>s;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=GT(n,i)),t.moveTo(n[0][0],n[0][1]);for(var s=1,c=n.length;c>s;s++)t.lineTo(n[s][0],n[s][1])}i&&t.closePath()}}function fa(t,e,i){if(e){var n=e.x1,o=e.x2,a=e.y1,r=e.y2;t.x1=n,t.x2=o,t.y1=a,t.y2=r;var s=i&&i.lineWidth;s&&(ZT(2*n)===ZT(2*o)&&(t.x1=t.x2=ga(n,s,!0)),ZT(2*a)===ZT(2*r)&&(t.y1=t.y2=ga(a,s,!0)))}}function pa(t,e,i){if(e){var n=e.x,o=e.y,a=e.width,r=e.height;t.x=n,t.y=o,t.width=a,t.height=r;var s=i&&i.lineWidth;s&&(t.x=ga(n,s,!0),t.y=ga(o,s,!0),t.width=Math.max(ga(n+a,s,!1)-t.x,0===a?0:1),t.height=Math.max(ga(o+r,s,!1)-t.y,0===r?0:1))}}function ga(t,e,i){if(!e)return t;var n=ZT(2*t);return(n+ZT(e))%2===0?n/2:(n+(i?1:-1))/2}function ma(t,e,i){var n=t.cpx2,o=t.cpy2;return null===n||null===o?[(i?Do:Ao)(t.x1,t.cpx1,t.cpx2,t.x2,e),(i?Do:Ao)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(i?Eo:Oo)(t.x1,t.cpx1,t.x2,e),(i?Eo:Oo)(t.y1,t.cpy1,t.y2,e)]}function va(t){An.call(this,t),this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.notClear=!0}function ya(t){return oa.extend(t)}function xa(t,e){return ua(t,e)}function _a(t,e){dA[t]=e}function wa(t){return dA.hasOwnProperty(t)?dA[t]:void 0}function ba(t,e,i,n){var o=la(t,e);return i&&("center"===n&&(i=Ma(i,o.getBoundingRect())),Ia(o,i)),o}function Sa(t,e,i){var n=new Dn({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===i){var o={width:t.width,height:t.height};n.setStyle(Ma(e,o))}}});return n}function Ma(t,e){var i,n=e.width/e.height,o=t.height*n;o<=t.width?i=t.height:(o=t.width,i=o/n);var a=t.x+t.width/2,r=t.y+t.height/2;return{x:a-o/2,y:r-i/2,width:o,height:i}}function Ia(t,e){if(t.applyTransform){var i=t.getBoundingRect(),n=i.calculateTransform(e);t.applyTransform(n)}}function Ta(t){return fa(t.shape,t.shape,t.style),t}function Aa(t){return pa(t.shape,t.shape,t.style),t}function Da(t){return null!=t&&"none"!==t}function Ca(t){if("string"!=typeof t)return t;var e=gA.get(t);return e||(e=ni(t,-.1),1e4>mA&&(gA.set(t,e),mA++)),e}function La(t){if(t.__hoverStlDirty){t.__hoverStlDirty=!1;var e=t.__hoverStl;if(!e)return void(t.__cachedNormalStl=t.__cachedNormalZ2=null);var i=t.__cachedNormalStl={};t.__cachedNormalZ2=t.z2;var n=t.style;for(var o in e)null!=e[o]&&(i[o]=n[o]);i.fill=n.fill,i.stroke=n.stroke}}function ka(t){var e=t.__hoverStl;if(e&&!t.__highlighted){var i=t.__zr,n=t.useHoverLayer&&i&&"canvas"===i.painter.type;if(t.__highlighted=n?"layer":"plain",!(t.isGroup||!i&&t.useHoverLayer)){var o=t,a=t.style;n&&(o=i.addHover(t),a=o.style),tr(a),n||La(o),a.extendFrom(e),Pa(a,e,"fill"),Pa(a,e,"stroke"),Qa(a),n||(t.dirty(!1),t.z2+=rA)}}}function Pa(t,e,i){!Da(e[i])&&Da(t[i])&&(t[i]=Ca(t[i]))}function Oa(t){var e=t.__highlighted;if(e&&(t.__highlighted=!1,!t.isGroup))if("layer"===e)t.__zr&&t.__zr.removeHover(t);else{var i=t.style,n=t.__cachedNormalStl;n&&(tr(i),t.setStyle(n),Qa(i));var o=t.__cachedNormalZ2;null!=o&&t.z2-o===rA&&(t.z2=o)}}function Ea(t,e,i){var n,o=uA,a=uA;t.__highlighted&&(o=lA,n=!0),e(t,i),t.__highlighted&&(a=lA,n=!0),t.isGroup&&t.traverse(function(t){!t.isGroup&&e(t,i)}),n&&t.__highDownOnUpdate&&t.__highDownOnUpdate(o,a)}function Na(t,e){e=t.__hoverStl=e!==!1&&(t.hoverStyle||e||{}),t.__hoverStlDirty=!0,t.__highlighted&&(t.__cachedNormalStl=null,Oa(t),ka(t))}function za(t){!Ga(this,t)&&!this.__highByOuter&&Ea(this,ka)}function Ra(t){!Ga(this,t)&&!this.__highByOuter&&Ea(this,Oa)}function Ba(t){this.__highByOuter|=1<<(t||0),Ea(this,ka)}function Va(t){!(this.__highByOuter&=~(1<<(t||0)))&&Ea(this,Oa)}function Ga(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function Fa(t,e){Wa(t,!0),Ea(t,Na,e)}function Wa(t,e){var i=e===!1;if(t.__highDownSilentOnTouch=t.highDownSilentOnTouch,t.__highDownOnUpdate=t.highDownOnUpdate,!i||t.__highDownDispatcher){var n=i?"off":"on";t[n]("mouseover",za)[n]("mouseout",Ra),t[n]("emphasis",Ba)[n]("normal",Va),t.__highByOuter=t.__highByOuter||0,t.__highDownDispatcher=!i}}function Ha(t){return!(!t||!t.__highDownDispatcher)}function Za(t){var e=cA[t];return null==e&&32>=hA&&(e=cA[t]=hA++),e}function Ua(t,e,i,n,o,a,r){o=o||aA;var s,l=o.labelFetcher,u=o.labelDataIndex,h=o.labelDimIndex,c=o.labelProp,d=i.getShallow("show"),f=n.getShallow("show");(d||f)&&(l&&(s=l.getFormattedLabel(u,"normal",null,h,c)),null==s&&(s=w(o.defaultText)?o.defaultText(u,o):o.defaultText));var p=d?s:null,g=f?C(l?l.getFormattedLabel(u,"emphasis",null,h,c):null,s):null;(null!=p||null!=g)&&(Ya(t,i,a,o),Ya(e,n,r,o,!0)),t.text=p,e.text=g}function Xa(t,e,i){var n=t.style;e&&(tr(n),t.setStyle(e),Qa(n)),n=t.__hoverStl,i&&n&&(tr(n),r(n,i),Qa(n))}function Ya(t,e,i,n,o){return qa(t,e,n,o),i&&r(t,i),t}function ja(t,e,i){var n,o={isRectText:!0};i===!1?n=!0:o.autoColor=i,qa(t,e,o,n)}function qa(t,e,i,n){if(i=i||aA,i.isRectText){var o;i.getTextPosition?o=i.getTextPosition(e,n):(o=e.getShallow("position")||(n?null:"inside"),"outside"===o&&(o="top")),t.textPosition=o,t.textOffset=e.getShallow("offset");var a=e.getShallow("rotate");null!=a&&(a*=Math.PI/180),t.textRotation=a,t.textDistance=C(e.getShallow("distance"),n?null:5)}var r,s=e.ecModel,l=s&&s.option.textStyle,u=Ka(e);if(u){r={};for(var h in u)if(u.hasOwnProperty(h)){var c=e.getModel(["rich",h]);$a(r[h]={},c,l,i,n)}}return t.rich=r,$a(t,e,l,i,n,!0),i.forceRich&&!i.textStyle&&(i.textStyle={}),t}function Ka(t){for(var e;t&&t!==t.ecModel;){var i=(t.option||aA).rich;if(i){e=e||{};for(var n in i)i.hasOwnProperty(n)&&(e[n]=1)}t=t.parentModel}return e}function $a(t,e,i,n,o,a){i=!o&&i||aA,t.textFill=Ja(e.getShallow("color"),n)||i.color,t.textStroke=Ja(e.getShallow("textBorderColor"),n)||i.textBorderColor,t.textStrokeWidth=C(e.getShallow("textBorderWidth"),i.textBorderWidth),o||(a&&(t.insideRollbackOpt=n,Qa(t)),null==t.textFill&&(t.textFill=n.autoColor)),t.fontStyle=e.getShallow("fontStyle")||i.fontStyle,t.fontWeight=e.getShallow("fontWeight")||i.fontWeight,t.fontSize=e.getShallow("fontSize")||i.fontSize,t.fontFamily=e.getShallow("fontFamily")||i.fontFamily,t.textAlign=e.getShallow("align"),t.textVerticalAlign=e.getShallow("verticalAlign")||e.getShallow("baseline"),t.textLineHeight=e.getShallow("lineHeight"),t.textWidth=e.getShallow("width"),t.textHeight=e.getShallow("height"),t.textTag=e.getShallow("tag"),a&&n.disableBox||(t.textBackgroundColor=Ja(e.getShallow("backgroundColor"),n),t.textPadding=e.getShallow("padding"),t.textBorderColor=Ja(e.getShallow("borderColor"),n),t.textBorderWidth=e.getShallow("borderWidth"),t.textBorderRadius=e.getShallow("borderRadius"),t.textBoxShadowColor=e.getShallow("shadowColor"),t.textBoxShadowBlur=e.getShallow("shadowBlur"),t.textBoxShadowOffsetX=e.getShallow("shadowOffsetX"),t.textBoxShadowOffsetY=e.getShallow("shadowOffsetY")),t.textShadowColor=e.getShallow("textShadowColor")||i.textShadowColor,t.textShadowBlur=e.getShallow("textShadowBlur")||i.textShadowBlur,t.textShadowOffsetX=e.getShallow("textShadowOffsetX")||i.textShadowOffsetX,t.textShadowOffsetY=e.getShallow("textShadowOffsetY")||i.textShadowOffsetY}function Ja(t,e){return"auto"!==t?t:e&&e.autoColor?e.autoColor:null}function Qa(t){var e,i=t.textPosition,n=t.insideRollbackOpt;if(n&&null==t.textFill){var o=n.autoColor,a=n.isRectText,r=n.useInsideStyle,s=r!==!1&&(r===!0||a&&i&&"string"==typeof i&&i.indexOf("inside")>=0),l=!s&&null!=o;(s||l)&&(e={textFill:t.textFill,textStroke:t.textStroke,textStrokeWidth:t.textStrokeWidth}),s&&(t.textFill="#fff",null==t.textStroke&&(t.textStroke=o,null==t.textStrokeWidth&&(t.textStrokeWidth=2))),l&&(t.textFill=o)}t.insideRollback=e}function tr(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth,t.insideRollback=null)}function er(t,e){var i=e&&e.getModel("textStyle");return E([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 ir(t,e,i,n,o,a){"function"==typeof o&&(a=o,o=null);var r=n&&n.isAnimationEnabled();if(r){var s=t?"Update":"",l=n.getShallow("animationDuration"+s),u=n.getShallow("animationEasing"+s),h=n.getShallow("animationDelay"+s);"function"==typeof h&&(h=h(o,n.getAnimationDelayParams?n.getAnimationDelayParams(e,o):null)),"function"==typeof l&&(l=l(o)),l>0?e.animateTo(i,l,h||0,u,a,!!a):(e.stopAnimation(),e.attr(i),a&&a())}else e.stopAnimation(),e.attr(i),a&&a()}function nr(t,e,i,n,o){ir(!0,t,e,i,n,o)}function or(t,e,i,n,o){ir(!1,t,e,i,n,o)}function ar(t,e){for(var i=Ee([]);t&&t!==e;)ze(i,t.getLocalTransform(),i),t=t.parent;return i}function rr(t,e,i){return e&&!d(e)&&(e=ZS.getLocalTransform(e)),i&&(e=Ge([],e)),ae([],t,e)}function sr(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=rr(a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function lr(t,e,i){function n(t){var e={};return t.traverse(function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}function o(t){var e={position:H(t.position),rotation:t.rotation};return t.shape&&(e.shape=r({},t.shape)),e}if(t&&e){var a=n(t);e.traverse(function(t){if(!t.isGroup&&t.anid){var e=a[t.anid];if(e){var n=o(t);t.attr(o(e)),nr(t,n,i,t.dataIndex)}}})}}function ur(t,e){return p(t,function(t){var i=t[0];i=nA(i,e.x),i=oA(i,e.x+e.width);var n=t[1];return n=nA(n,e.y),n=oA(n,e.y+e.height),[i,n]})}function hr(t,e){var i=nA(t.x,e.x),n=oA(t.x+t.width,e.x+e.width),o=nA(t.y,e.y),a=oA(t.y+t.height,e.y+e.height);return n>=i&&a>=o?{x:i,y:o,width:n-i,height:a-o}:void 0}function cr(t,e,i){e=r({rectHover:!0},e);var n=e.style={strokeNoScale:!0};return i=i||{x:-1,y:-1,width:2,height:2},t?0===t.indexOf("image://")?(n.image=t.slice(8),s(n,i),new Dn(e)):ba(t.replace("path://",""),e,i,"center"):void 0 +}function dr(t,e,i,n,o){for(var a=0,r=o[o.length-1];ag||g>1)return!1;var m=pr(f,p,h,c)/d;return 0>m||m>1?!1:!0}function pr(t,e,i,n){return t*n-i*e}function gr(t){return 1e-6>=t&&t>=-1e-6}function mr(t,e,i){this.parentModel=e,this.ecModel=i,this.option=t}function vr(t,e,i){for(var n=0;n=0&&i.push(t)}),i}t.topologicalTravel=function(t,e,n,o){function a(t){l[t].entryCount--,0===l[t].entryCount&&u.push(t)}function r(t){h[t]=!0,a(t)}if(t.length){var s=i(e),l=s.graph,u=s.noEntryList,h={};for(f(t,function(t){h[t]=!0});u.length;){var c=u.pop(),d=l[c],p=!!h[c];p&&(n.call(o,c,d.originalDeps.slice()),delete h[c]),f(d.successor,p?r:a)}f(h,function(){throw new Error("Circle dependency may exists")})}}}function br(t){return t.replace(/^\s+|\s+$/g,"")}function Sr(t,e,i,n){var o=e[1]-e[0],a=i[1]-i[0];if(0===o)return 0===a?i[0]:(i[0]+i[1])/2;if(n)if(o>0){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 Mr(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?br(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?0/0:+t}function Ir(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Tr(t){return t.sort(function(t,e){return t-e}),t}function Ar(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 Dr(t){var e=t.toString(),i=e.indexOf("e");if(i>0){var n=+e.slice(i+1);return 0>n?-n:0}var o=e.indexOf(".");return 0>o?0:e.length-1-o}function Cr(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 Lr(t,e,i){if(!t[e])return 0;var n=g(t,function(t,e){return t+(isNaN(e)?0:e)},0);if(0===n)return 0;for(var o=Math.pow(10,i),a=p(t,function(t){return(isNaN(t)?0:t)/n*o*100}),r=100*o,s=p(a,function(t){return Math.floor(t)}),l=g(s,function(t,e){return t+e},0),u=p(a,function(t,e){return t-s[e]});r>l;){for(var h=Number.NEGATIVE_INFINITY,c=null,d=0,f=u.length;f>d;++d)u[d]>h&&(h=u[d],c=d);++s[c],u[c]=0,++l}return s[e]/o}function kr(t){var e=2*Math.PI;return(t%e+e)%e}function Pr(t){return t>-IA&&IA>t}function Or(t){if(t instanceof Date)return t;if("string"==typeof t){var e=AA.exec(t);if(!e)return new Date(0/0);if(e[8]){var i=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(i-=e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,i,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return new Date(null==t?0/0:Math.round(t))}function Er(t){return Math.pow(10,Nr(t))}function Nr(t){if(0===t)return 0;var e=Math.floor(Math.log(t)/Math.LN10);return t/Math.pow(10,e)>=10&&e++,e}function zr(t,e){var i,n=Nr(t),o=Math.pow(10,n),a=t/o;return i=e?1.5>a?1:2.5>a?2:4>a?3:7>a?5:10:1>a?1:2>a?2:3>a?3:5>a?5:10,t=i*o,n>=-20?+t.toFixed(0>n?-n:0):t}function Rr(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}function Br(t){function e(t,i,n){return t.interval[n]s;s++)a[s]<=i&&(a[s]=i,r[s]=s?1:1-n),i=a[s],n=r[s];a[0]===a[1]&&r[0]*r[1]!==1?t.splice(o,1):o++}return t}function Vr(t){return t-parseFloat(t)>=0}function Gr(t){return isNaN(t)?"-":(t=(t+"").split("."),t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:""))}function Fr(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 Wr(t){return null==t?"":(t+"").replace(LA,function(t,e){return kA[e]})}function Hr(t,e,i){_(e)||(e=[e]);var n=e.length;if(!n)return"";for(var o=e[0].$vars||[],a=0;as;s++)for(var l=0;l':'':{renderMode:o,content:"{marker"+a+"|} ",style:{color:i}}:""}function Xr(t,e){return t+="","0000".substr(0,e-t.length)+t}function Yr(t,e,i){("week"===t||"month"===t||"quarter"===t||"half-year"===t||"year"===t)&&(t="MM-dd\nyyyy");var n=Or(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",Xr(r,2)).replace("M",r).replace("yyyy",a).replace("yy",a%100).replace("dd",Xr(s,2)).replace("d",s).replace("hh",Xr(l,2)).replace("h",l).replace("mm",Xr(u,2)).replace("m",u).replace("ss",Xr(h,2)).replace("s",h).replace("SSS",Xr(c,3))}function jr(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function qr(t){return Ui(t.text,t.font,t.textAlign,t.textVerticalAlign,t.textPadding,t.textLineHeight,t.rich,t.truncate)}function Kr(t,e,i,n,o,a,r,s){return Ui(t,e,i,n,o,s,a,r)}function $r(t,e){if("_blank"===e||"blank"===e){var i=window.open();i.opener=null,i.location=t}else window.open(t,e)}function Jr(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,h>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,c>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 Qr(t,e,i){var n=e.width,o=e.height,a=Mr(t.x,n),r=Mr(t.y,o),s=Mr(t.x2,n),l=Mr(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=CA(i||0),{width:Math.max(s-a-i[1]-i[3],0),height:Math.max(l-r-i[0]-i[2],0)}}function ts(t,e,i){i=CA(i||0);var n=e.width,o=e.height,a=Mr(t.left,n),r=Mr(t.top,o),s=Mr(t.right,n),l=Mr(t.bottom,o),u=Mr(t.width,n),h=Mr(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 Ti(a+i[3],r+i[0],u,h);return p.margin=i,p}function es(t,e,i,n,o){var a=!o||!o.hv||o.hv[0],r=!o||!o.hv||o.hv[1],l=o&&o.boundingMode||"all";if(a||r){var u;if("raw"===l)u="group"===t.type?new Ti(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(u=t.getBoundingRect(),t.needLocalTransform()){var h=t.getLocalTransform();u=u.clone(),u.applyTransform(h)}e=ts(s({width:u.width,height:u.height},e),i,n);var c=t.position,d=a?e.x-u.x:0,f=r?e.y-u.y:0;t.attr("position","raw"===l?[d,f]:[c[0]+d,c[1]+f])}}function is(t,e){return null!=t[BA[e][0]]||null!=t[BA[e][1]]&&null!=t[BA[e][2]]}function ns(t,e,i){function n(i,n){var r={},l=0,u={},h=0,c=2;if(zA(i,function(e){u[e]=t[e]}),zA(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(h!==c&&l){if(l>=c)return r;for(var d=0;dn;n++)if(t[n].length>e)return t[n];return t[i-1]}function ls(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===KA?{}:[]),this.sourceFormat=t.sourceFormat||$A,this.seriesLayoutBy=t.seriesLayoutBy||QA,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&B(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}function us(t){var e=t.option.source,i=$A;if(I(e))i=JA;else if(_(e)){0===e.length&&(i=jA);for(var n=0,o=e.length;o>n;n++){var a=e[n];if(null!=a){if(_(a)){i=jA;break}if(S(a)){i=qA;break}}}}else if(S(e)){for(var r in e)if(e.hasOwnProperty(r)&&d(e[r])){i=KA;break}}else if(null!=e)throw new Error("Invalid data");iD(t).sourceFormat=i}function hs(t){return iD(t).source}function cs(t){iD(t).datasetMap=B()}function ds(t){var e=t.option,i=e.data,n=I(i)?JA:YA,o=!1,a=e.seriesLayoutBy,r=e.sourceHeader,s=e.dimensions,l=xs(t);if(l){var u=l.option;i=u.source,n=iD(l).sourceFormat,o=!0,a=a||u.seriesLayoutBy,null==r&&(r=u.sourceHeader),s=s||u.dimensions}var h=fs(i,n,a,r,s);iD(t).source=new ls({data:i,fromDataset:o,seriesLayoutBy:a,sourceFormat:n,dimensionsDefine:h.dimensionsDefine,startIndex:h.startIndex,dimensionsDetectCount:h.dimensionsDetectCount,encodeDefine:e.encode})}function fs(t,e,i,n,o){if(!t)return{dimensionsDefine:ps(o)};var a,r;if(e===jA)"auto"===n||null==n?gs(function(t){null!=t&&"-"!==t&&(b(t)?null==r&&(r=1):r=0)},i,t,10):r=n?1:0,o||1!==r||(o=[],gs(function(t,e){o[e]=null!=t?t:""},i,t)),a=o?o.length:i===tD?t.length:t[0]?t[0].length:null;else if(e===qA)o||(o=ms(t));else if(e===KA)o||(o=[],f(t,function(t,e){o.push(e)}));else if(e===YA){var s=io(t[0]);a=_(s)&&s.length||1}else e===JA&&eS&&O(!!o,"dimensions must be given if data is TypedArray.");return{startIndex:r,dimensionsDefine:ps(o),dimensionsDetectCount:a}}function ps(t){if(t){var e=B();return p(t,function(t){if(t=r({},S(t)?t:{name:t}),null==t.name)return t;t.name+="",null==t.displayName&&(t.displayName=t.name);var i=e.get(t.name);return i?t.name+="-"+i.count++:e.set(t.name,{count:1}),t})}}function gs(t,e,i,n){if(null==n&&(n=1/0),e===tD)for(var o=0;oo;o++)t(i[o]?i[o][0]:null,o);else for(var a=i[0]||[],o=0;oo;o++)t(a[o],o)}function ms(t){for(var e,i=0;in;n++)t.push(e+n)}function o(t){var e=t.dimsDef;return e?e.length:1}var a={},r=xs(e);if(!r||!t)return a;var s,l,u=[],h=[],c=e.ecModel,d=iD(c).datasetMap,p=r.uid+"_"+i.seriesLayoutBy;t=t.slice(),f(t,function(e,i){!S(e)&&(t[i]={name:e}),"ordinal"===e.type&&null==s&&(s=i,l=o(t[i])),a[e.name]=[]});var g=d.get(p)||d.set(p,{categoryWayDim:l,valueWayDim:0});return f(t,function(t,e){var i=t.name,r=o(t);if(null==s){var l=g.valueWayDim;n(a[i],l,r),n(h,l,r),g.valueWayDim+=r}else if(s===e)n(a[i],0,r),n(u,0,r);else{var l=g.categoryWayDim;n(a[i],l,r),n(h,l,r),g.categoryWayDim+=r}}),u.length&&(a.itemName=u),h.length&&(a.seriesName=h),a}function ys(t,e,i){var n={},o=xs(t);if(!o)return n;var a,r=e.sourceFormat,s=e.dimensionsDefine;(r===qA||r===KA)&&f(s,function(t,e){"name"===(S(t)?t.name:t)&&(a=e)});var l=function(){function t(t){return null!=t.v&&null!=t.n}for(var n={},o={},l=[],u=0,h=Math.min(5,i);h>u;u++){var c=ws(e.data,r,e.seriesLayoutBy,s,e.startIndex,u);l.push(c);var d=c===eD.Not;if(d&&null==n.v&&u!==a&&(n.v=u),(null==n.n||n.n===n.v||!d&&l[n.n]===eD.Not)&&(n.n=u),t(n)&&l[n.n]!==eD.Not)return n;d||(c===eD.Might&&null==o.v&&u!==a&&(o.v=u),(null==o.n||o.n===o.v)&&(o.n=u))}return t(n)?n:t(o)?o:null}();if(l){n.value=l.v;var u=null!=a?a:l.n;n.itemName=[u],n.seriesName=[u]}return n}function xs(t){var e=t.option,i=e.data;return i?void 0:t.ecModel.getComponent("dataset",e.datasetIndex||0)}function _s(t,e){return ws(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function ws(t,e,i,n,o,a){function r(t){var e=b(t);return null!=t&&isFinite(t)&&""!==t?e?eD.Might:eD.Not:e&&"-"!==t?eD.Must:void 0}var s,l=5;if(I(t))return eD.Not;var u,h;if(n){var c=n[a];S(c)?(u=c.name,h=c.type):b(c)&&(u=c)}if(null!=h)return"ordinal"===h?eD.Must:eD.Not;if(e===jA)if(i===tD){for(var d=t[a],f=0;f<(d||[]).length&&l>f;f++)if(null!=(s=r(d[o+f])))return s}else for(var f=0;ff;f++){var p=t[o+f];if(p&&null!=(s=r(p[a])))return s}else if(e===qA){if(!u)return eD.Not;for(var f=0;ff;f++){var g=t[f];if(g&&null!=(s=r(g[u])))return s}}else if(e===KA){if(!u)return eD.Not;var d=t[u];if(!d||I(d))return eD.Not;for(var f=0;ff;f++)if(null!=(s=r(d[f])))return s}else if(e===YA)for(var f=0;ff;f++){var g=t[f],m=io(g);if(!_(m))return eD.Not;if(null!=(s=r(m[a])))return s}return eD.Not}function bs(t,e){if(e){var i=e.seiresIndex,n=e.seriesId,o=e.seriesName;return null!=i&&t.componentIndex!==i||null!=n&&t.id!==n||null!=o&&t.name!==o}}function Ss(t,e){var i=t.color&&!t.colorLayer;f(e,function(e,a){"colorLayer"===a&&i||WA.hasClass(a)||("object"==typeof e?t[a]=t[a]?o(t[a],e,!1):n(e):null==t[a]&&(t[a]=e))})}function Ms(t){t=t,this.option={},this.option[nD]=1,this._componentsMap=B({series:[]}),this._seriesIndices,this._seriesIndicesMap,Ss(t,this._theme.option),o(t,ZA,!1),this.mergeOption(t)}function Is(t,e){_(e)||(e=e?[e]:[]);var i={};return f(e,function(e){i[e]=(t.get(e)||[]).slice()}),i}function Ts(t,e,i){var n=e.type?e.type:i?i.subType:WA.determineSubType(t,e);return n}function As(t,e){t._seriesIndicesMap=B(t._seriesIndices=p(e,function(t){return t.componentIndex})||[])}function Ds(t,e){return e.hasOwnProperty("subType")?m(t,function(t){return t.subType===e.subType}):t}function Cs(t){if(eS&&!t._seriesIndices)throw new Error("Option should contains series.")}function Ls(t){f(aD,function(e){this[e]=y(t[e],t)},this)}function ks(){this._coordinateSystems=[]}function Ps(t){this._api=t,this._timelineOptions=[],this._mediaList=[],this._mediaDefault,this._currentMediaIndices=[],this._optionBackup,this._newBaseOption}function Os(t,e,i){var n,o,a=[],r=[],s=t.timeline;if(t.baseOption&&(o=t.baseOption),(s||t.options)&&(o=o||{},a=(t.options||[]).slice()),t.media){o=o||{};var l=t.media;sD(l,function(t){t&&t.option&&(t.query?r.push(t):n||(n=t))})}return o||(o=t),o.timeline||(o.timeline=s),sD([o].concat(a).concat(p(r,function(t){return t.option})),function(t){sD(e,function(e){e(t,i)})}),{baseOption:o,timelineOptions:a,mediaDefault:n,mediaList:r}}function Es(t,e,i){var n={width:e,height:i,aspectratio:e/i},o=!0;return f(t,function(t,e){var i=e.match(cD);if(i&&i[1]&&i[2]){var a=i[1],r=i[2].toLowerCase();Ns(n[r],t,a)||(o=!1)}}),o}function Ns(t,e,i){return"min"===i?t>=e:"max"===i?e>=t:t===e}function zs(t,e){return t.join(",")===e.join(",")}function Rs(t,e){e=e||{},sD(e,function(e,i){if(null!=e){var n=t[i];if(WA.hasClass(i)){e=to(e),n=to(n);var o=oo(n,e);t[i]=uD(o,function(t){return t.option&&t.exist?hD(t.exist,t.option,!0):t.exist||t.option})}else t[i]=hD(n,e,!0)}})}function Bs(t){var e=t&&t.itemStyle;if(e)for(var i=0,n=pD.length;n>i;i++){var a=pD[i],r=e.normal,s=e.emphasis;r&&r[a]&&(t[a]=t[a]||{},t[a].normal?o(t[a].normal,r[a]):t[a].normal=r[a],r[a]=null),s&&s[a]&&(t[a]=t[a]||{},t[a].emphasis?o(t[a].emphasis,s[a]):t[a].emphasis=s[a],s[a]=null)}}function Vs(t,e,i){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var n=t[e].normal,o=t[e].emphasis;n&&(i?(t[e].normal=t[e].emphasis=null,s(t[e],n)):t[e]=n),o&&(t.emphasis=t.emphasis||{},t.emphasis[e]=o)}}function Gs(t){Vs(t,"itemStyle"),Vs(t,"lineStyle"),Vs(t,"areaStyle"),Vs(t,"label"),Vs(t,"labelLine"),Vs(t,"upperLabel"),Vs(t,"edgeLabel")}function Fs(t,e){var i=fD(t)&&t[e],n=fD(i)&&i.textStyle;if(n)for(var o=0,a=bI.length;a>o;o++){var e=bI[o];n.hasOwnProperty(e)&&(i[e]=n[e])}}function Ws(t){t&&(Gs(t),Fs(t,"label"),t.emphasis&&Fs(t.emphasis,"label"))}function Hs(t){if(fD(t)){Bs(t),Gs(t),Fs(t,"label"),Fs(t,"upperLabel"),Fs(t,"edgeLabel"),t.emphasis&&(Fs(t.emphasis,"label"),Fs(t.emphasis,"upperLabel"),Fs(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(Bs(e),Ws(e));var i=t.markLine;i&&(Bs(i),Ws(i));var n=t.markArea;n&&Ws(n);var o=t.data;if("graph"===t.type){o=o||t.nodes;var a=t.links||t.edges;if(a&&!I(a))for(var r=0;r=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||0>=h&&0>m){h+=m,f=m;break}}}return n[0]=h,n[1]=f,n});r.hostModel.setData(l),e.data=l})}function Ks(t,e){ls.isInstance(t)||(t=ls.seriesDataToSource(t)),this._source=t;var i=this._data=t.data,n=t.sourceFormat;if(n===JA){if(eS&&null==e)throw new Error("Typed array data must specify dimension size");this._offset=0,this._dimSize=e,this._data=i}var o=wD[n===jA?n+"_"+t.seriesLayoutBy:n];eS&&O(o,"Invalide sourceFormat: "+n),r(this,o)}function $s(){return this._data.length}function Js(t){return this._data[t]}function Qs(t){for(var e=0;ee.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function pl(t,e){f(t.CHANGABLE_METHODS,function(i){t.wrapMethod(i,x(gl,e))})}function gl(t){var e=ml(t);e&&e.setOutputEnd(this.count())}function ml(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 vl(){this.group=new xM,this.uid=xr("viewChart"),this.renderTask=al({plan:_l,reset:wl}),this.renderTask.context={view:this}}function yl(t,e,i){if(t&&(t.trigger(e,i),t.isGroup&&!Ha(t)))for(var n=0,o=t.childCount();o>n;n++)yl(t.childAt(n),e,i)}function xl(t,e,i){var n=uo(t,e),o=e&&null!=e.highlightKey?Za(e.highlightKey):null;null!=n?f(to(n),function(e){yl(t.getItemGraphicEl(e),i,o)}):t.eachItemGraphicEl(function(t){yl(t,i,o)})}function _l(t){return ED(t.model)}function wl(t){var e=t.model,i=t.ecModel,n=t.api,o=t.payload,a=e.pipelineContext.progressiveRender,r=t.view,s=o&&OD(o).updateMethod,l=a?"incrementalPrepareRender":s&&r[s]?s:"render";return"render"!==l&&r[l](e,i,n,o),zD[l]}function bl(t,e,i){function n(){h=(new Date).getTime(),c=null,t.apply(r,s||[])}var o,a,r,s,l,u=0,h=0,c=null;e=e||0;var d=function(){o=(new Date).getTime(),r=this,s=arguments;var t=l||e,d=l||i;l=null,a=o-(d?u:h)-t,clearTimeout(c),d?c=setTimeout(n,t):a>=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 Sl(t,e,i,n){var o=t[e];if(o){var a=o[RD]||o,r=o[VD],s=o[BD];if(s!==i||r!==n){if(null==i||!n)return t[e]=a;o=t[e]=bl(a,i,"debounce"===n),o[RD]=a,o[VD]=n,o[BD]=i}return o}}function Ml(t,e){var i=t[e];i&&i[RD]&&(t[e]=i[RD])}function Il(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=B()}function Tl(t,e,i,n,o){function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}o=o||{};var r;f(e,function(e){if(!o.visualType||o.visualType===e.visualType){var s=t._stageTaskMap.get(e.uid),l=s.seriesTaskMap,u=s.overallTask;if(u){var h,c=u.agentStubMap;c.each(function(t){a(o,t)&&(t.dirty(),h=!0)}),h&&u.dirty(),XD(u,n);var d=t.getPerformArgs(u,o.block);c.each(function(t){t.perform(d)}),r|=u.perform(d)}else l&&l.each(function(s){a(o,s)&&s.dirty();var l=t.getPerformArgs(s,o.block);l.skip=!e.performRawSeries&&i.isSeriesFiltered(s.context.model),XD(s,n),r|=s.perform(l)})}}),t.unfinished|=r}function Al(t,e,i,n,o){function a(i){var a=i.uid,s=r.get(a)||r.set(a,al({plan:Ol,reset:El,count:zl}));s.context={model:i,ecModel:n,api:o,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},Rl(t,i,s)}var r=i.seriesTaskMap||(i.seriesTaskMap=B()),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 Dl(t,e,i,n,o){function a(e){var i=e.uid,n=s.get(i);n||(n=s.set(i,al({reset:Ll,onDirty:Pl})),r.dirty()),n.context={model:e,overallProgress:h,modifyOutputEnd:c},n.agent=r,n.__block=h,Rl(t,e,n)}var r=i.overallTask=i.overallTask||al({reset:Cl});r.context={ecModel:n,api:o,overallReset:e.overallReset,scheduler:t};var s=r.agentStubMap=r.agentStubMap||B(),l=e.seriesType,u=e.getTargetSeries,h=!0,c=e.modifyOutputEnd;l?n.eachRawSeriesByType(l,a):u?u(n,o).each(a):(h=!1,f(n.getSeries(),a));var d=t._pipelineMap;s.each(function(t,e){d.get(e)||(t.dispose(),r.dirty(),s.removeKey(e))})}function Cl(t){t.overallReset(t.ecModel,t.api,t.payload)}function Ll(t){return t.overallProgress&&kl}function kl(){this.agent.dirty(),this.getDownstream().dirty()}function Pl(){this.agent&&this.agent.dirty()}function Ol(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function El(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=to(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?p(e,function(t,e){return Nl(e)}):YD}function Nl(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 Hl(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),s(e.__inheritedStyle,t.__inheritedStyle))}function Zl(t){for(var e=E(t).split(oC),i=[],n=0;n0;a-=2){var r=o[a],s=o[a-1];switch(n=n||Oe(),s){case"translate":r=E(r).split(oC),Re(n,n,[parseFloat(r[0]),parseFloat(r[1]||0)]);break;case"scale":r=E(r).split(oC),Ve(n,n,[parseFloat(r[0]),parseFloat(r[1]||r[0])]);break;case"rotate":r=E(r).split(oC),Be(n,n,parseFloat(r[0]));break;case"skew":r=E(r).split(oC),console.warn("Skew transform is not supported yet");break;case"matrix":var r=E(r).split(oC);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 jl(t){var e=t.getAttribute("style"),i={};if(!e)return i;var n={};hC.lastIndex=0;for(var o;null!=(o=hC.exec(e));)n[o[1]]=o[2];for(var a in sC)sC.hasOwnProperty(a)&&null!=n[a]&&(i[sC[a]]=n[a]);return i}function ql(t,e,i){var n=e/t.width,o=i/t.height,a=Math.min(n,o),r=[a,a],s=[-(t.x+t.width/2)*a+e/2,-(t.y+t.height/2)*a+i/2];return{scale:r,position:s}}function Kl(t,e){var i=new Fl;return i.parse(t,e)}function $l(t,e){return function(i,n,o){return!e&&this._disposed?void pu(this.id):(i=i&&i.toLowerCase(),void AS.prototype[t].call(this,i,n,o))}}function Jl(){AS.call(this)}function Ql(t,e,i){function o(t,e){return t.__prio-e.__prio}i=i||{},"string"==typeof e&&(e=XC[e]),this.id,this.group,this._dom=t;var a="canvas";eS&&(a=("undefined"==typeof window?global:window).__ECHARTS__DEFAULT__RENDERER__||a);var r=this._zr=qn(t,{renderer:i.renderer||a,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height});this._throttledZrFlush=bl(y(r.flush,r),17);var e=n(e);e&&yD(e,!0),this._theme=e,this._chartsViews=[],this._chartsMap={},this._componentsViews=[],this._componentsMap={},this._coordSysMgr=new ks;var s=this._api=yu(this);Ei(UC,o),Ei(WC,o),this._scheduler=new Il(this,s,WC,UC),AS.call(this,this._ecEventProcessor=new xu),this._messageCenter=new Jl,this._initEvents(),this.resize=y(this.resize,this),this._pendingActions=[],r.animation.on("frame",this._onframe,this),su(r,this),N(this)}function tu(t,e,i){if(this._disposed)return void pu(this.id);var n,o=this._model,a=this._coordSysMgr.getCoordinateSystems();e=co(o,e);for(var r=0;re.get("hoverLayerThreshold")&&!aS.node&&e.eachSeries(function(e){if(!e.preventUsingHoverLayer){var i=t._chartsMap[e.__viewId];i.__alive&&i.group.traverse(function(t){t.useHoverLayer=!0})}})}function mu(t,e){var i=t.get("blendMode")||null;eS&&!aS.canvasSupported&&i&&"source-over"!==i&&console.warn("Only canvas support blendMode"),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 vu(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 yu(t){var e=t._coordSysMgr;return r(new Ls(t),{getCoordinateSystems:y(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 xu(){this.eventInfo}function _u(t){function e(t,e){for(var i=0;i65535?sL:uL}function th(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function eh(t,e){f(hL.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods,f(cL,function(i){t[i]=n(e[i])}),t._calculationInfo=r(e._calculationInfo)}function ih(t,e,i,n,o){var a=rL[e.type],r=n-1,s=e.name,l=t[s][r];if(l&&l.lengthc;c+=i)t[s].push(new a(Math.min(o-c,i)))}function nh(t){var e=t._invertedIndicesMap;f(e,function(i,n){var o=t._dimensionInfos[n],a=o.ordinalMeta;if(a){i=e[n]=new lL(a.categories.length);for(var r=0;r=0?this._indices[t]:-1}function sh(t,e){var i=t._idList[e];return null==i&&(i=oh(t,t._idDimIdx,e)),null==i&&(i=aL+e),i}function lh(t){return _(t)||(t=[t]),t}function uh(t,e){for(var i=0;i=0?(o[s]=ch(a[s]),n._rawExtent[s]=dh(),n._extent[s]=null):o[s]=a[s])}return n}function ch(t){for(var e=new Array(t.length),i=0;id;d++){var p=a[d]=r({},S(a[d])?a[d]:{name:a[d]}),g=p.name,m=h[d]=new Ju;null!=g&&null==l.get(g)&&(m.name=m.displayName=g,l.set(g,d)),null!=p.type&&(m.type=p.type),null!=p.displayName&&(m.displayName=p.displayName)}var v=i.encodeDef;!v&&i.encodeDefaulter&&(v=i.encodeDefaulter(e,c)),v=B(v),v.each(function(t,e){if(t=to(t).slice(),1===t.length&&!b(t[0])&&t[0]<0)return void v.set(e,!1);var i=v.set(e,[]);f(t,function(t,n){b(t)&&(t=l.get(t)),null!=t&&c>t&&(i[n]=t,o(h[t],e,n))})});var y=0;f(t,function(t){var e,t,i,a;if(b(t))e=t,t={};else{e=t.name;var r=t.ordinalMeta;t.ordinalMeta=null,t=n(t),t.ordinalMeta=r,i=t.dimsDef,a=t.otherDims,t.name=t.coordDim=t.coordDimIndex=t.dimsDef=t.otherDims=null}var l=v.get(e);if(l!==!1){var l=to(l);if(!l.length)for(var u=0;u<(i&&i.length||1);u++){for(;yI;I++){var m=h[I]=h[I]||new Ju,T=m.coordDim;null==T&&(m.coordDim=gh(M,u,w),m.coordDimIndex=0,(!x||0>=_)&&(m.isExtraCoord=!0),_--),null==m.name&&(m.name=gh(m.coordDim,l)),null!=m.type||_s(e,I,m.name)!==eD.Must&&(!m.isExtraCoord||null==m.otherDims.itemName&&null==m.otherDims.seriesName)||(m.type="ordinal")}return h}function ph(t,e,i,n){var o=Math.max(t.dimensionsDetectCount||1,e.length,i.length,n||0);return f(e,function(t){var e=t.dimsDef;e&&(o=Math.max(o,e.length))}),o}function gh(t,e,i){if(i||null!=e.get(t)){for(var n=0;null!=e.get(t+n);)n++;t+=n}return e.set(t,!0),t}function mh(t){this.coordSysName=t,this.coordSysDims=[],this.axisMap=B(),this.categoryAxisMap=B(),this.firstCategoryDimIndex=null}function vh(t){var e=t.get("coordinateSystem"),i=new mh(e),n=mL[e];return n?(n(t,i,i.axisMap,i.categoryAxisMap),i):void 0}function yh(t){return"category"===t.get("type")}function xh(t,e,i){i=i||{};var n,o,a,r,s=i.byIndex,l=i.stackedCoordDimension,u=!(!t||!t.get("stack"));if(f(e,function(t,i){b(t)&&(e[i]=t={name:t}),u&&!t.isExtraCoord&&(s||n||!t.ordinalMeta||(n=t),o||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(o=t))}),!o||s||n||(s=!0),o){a="__\x00ecstackresult",r="__\x00ecstackedover",n&&(n.createInvertedIndices=!0);var h=o.coordDim,c=o.type,d=0;f(e,function(t){t.coordDim===h&&d++}),e.push({name:a,coordDim:h,coordDimIndex:d,type:c,isExtraCoord:!0,isCalculationCoord:!0}),d++,e.push({name:r,coordDim:r,coordDimIndex:d,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:o&&o.name,stackedByDimension:n&&n.name,isStackedByIndex:s,stackedOverDimension:r,stackResultDimension:a}}function _h(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function wh(t,e){return _h(t,e)?t.getCalculationInfo("stackResultDimension"):e}function bh(t,e,i){i=i||{},ls.isInstance(t)||(t=ls.seriesDataToSource(t));var n,o=e.get("coordinateSystem"),a=ks.get(o),r=vh(e);r&&(n=p(r.coordSysDims,function(t){var e={name:t},i=r.axisMap.get(t);if(i){var n=i.get("type");e.type=Ku(n)}return e})),n||(n=a&&(a.getDimensionsInfo?a.getDimensionsInfo():a.dimensions.slice())||["x","y"]);var s,l,u=gL(t,{coordDimensions:n,generateCoord:i.generateCoord,encodeDefaulter:i.useEncodeDefaulter?x(vs,n,e):null});r&&f(u,function(t,e){var i=t.coordDim,n=r.categoryAxisMap.get(i);n&&(null==s&&(s=e),t.ordinalMeta=n.getOrdinalMeta()),null!=t.otherDims.itemName&&(l=!0)}),l||null==s||(u[s].otherDims.itemName=0);var h=xh(e,u),c=new dL(u,e);c.setCalculationInfo(h);var d=null!=s&&Sh(t)?function(t,e,i,n){return n===s?i:this.defaultDimValueGetter(t,e,i,n)}:null;return c.hasItemOption=!1,c.initData(t,null,d),c}function Sh(t){if(t.sourceFormat===YA){var e=Mh(t.data||[]);return null!=e&&!_(io(e))}}function Mh(t){for(var e=0;er&&(r=o.interval=i),null!=n&&r>n&&(r=o.interval=n);var s=o.intervalPrecision=Lh(r),l=o.niceTickExtent=[_L(Math.ceil(t[0]/r)*r,s),_L(Math.floor(t[1]/r)*r,s)];return Ph(l,t),o}function Lh(t){return Dr(t)+2}function kh(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function Ph(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),kh(t,0,e),kh(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Oh(t){return t.get("stack")||SL+t.seriesIndex}function Eh(t){return t.dim+t.index}function Nh(t){var e=[],i=t.axis,n="axis0";if("category"===i.type){for(var o=i.getBandWidth(),a=0;as;++s){var u=o.get(r,s);e[a]?e[a].push(u):e[a]=[u]}});var i=[];for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];if(o){o.sort(function(t,e){return t-e});for(var a=null,r=1;r0&&(a=null===a?s:Math.min(a,s))}i[n]=a}}return i}function Bh(t){var e=Rh(t),i=[];return f(t,function(t){var n,o=t.coordinateSystem,a=o.getBaseAxis(),r=a.getExtent();if("category"===a.type)n=a.getBandWidth();else if("value"===a.type||"time"===a.type){var s=a.dim+"_"+a.index,l=e[s],u=Math.abs(r[1]-r[0]),h=a.scale.getExtent(),c=Math.abs(h[1]-h[0]);n=l?u/c*l:u}else{var d=t.getData();n=Math.abs(r[1]-r[0])/d.count()}var f=Mr(t.get("barWidth"),n),p=Mr(t.get("barMaxWidth"),n),g=Mr(t.get("barMinWidth")||1,n),m=t.get("barGap"),v=t.get("barCategoryGap");i.push({bandWidth:n,barWidth:f,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:v,axisKey:Eh(a),stackId:Oh(t)})}),Vh(i)}function Vh(t){var e={};f(t,function(t){var i=t.axisKey,n=t.bandWidth,o=e[i]||{bandWidth:n,remainedWidth:n,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},a=o.stacks;e[i]=o;var r=t.stackId;a[r]||o.autoWidthCount++,a[r]=a[r]||{width:0,maxWidth:0};var s=t.barWidth;s&&!a[r].width&&(a[r].width=s,s=Math.min(o.remainedWidth,s),o.remainedWidth-=s);var l=t.barMaxWidth;l&&(a[r].maxWidth=l);var u=t.barMinWidth;u&&(a[r].minWidth=u);var h=t.barGap;null!=h&&(o.gap=h);var c=t.barCategoryGap;null!=c&&(o.categoryGap=c)});var i={};return f(e,function(t,e){i[e]={};var n=t.stacks,o=t.bandWidth,a=Mr(t.categoryGap,o),r=Mr(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-a)/(l+(l-1)*r);u=Math.max(u,0),f(n,function(t){var e=t.maxWidth,i=t.minWidth;if(t.width){var n=t.width;e&&(n=Math.min(n,e)),i&&(n=Math.max(n,i)),t.width=n,s-=n+r*n,l--}else{var n=u;e&&n>e&&(n=Math.min(e,s)),i&&i>n&&(n=i),n!==u&&(t.width=n,s-=n+r*n,l--)}}),u=(s-a)/(l+(l-1)*r),u=Math.max(u,0);var h,c=0;f(n,function(t){t.width||(t.width=u),h=t,c+=t.width*(1+r)}),h&&(c-=h.width*r);var d=-c/2;f(n,function(t,n){i[e][n]=i[e][n]||{bandWidth:o,offset:d,width:t.width},d+=t.width*(1+r)})}),i}function Gh(t,e,i){if(t&&e){var n=t[Eh(e)];return null!=n&&null!=i&&(n=n[Oh(i)]),n}}function Fh(t,e){var i=zh(t,e),n=Bh(i),o={};f(i,function(t){var e=t.getData(),i=t.coordinateSystem,a=i.getBaseAxis(),r=Oh(t),s=n[Eh(a)][r],l=s.offset,u=s.width,h=i.getOtherAxis(a),c=t.get("barMinHeight")||0;o[r]=o[r]||[],e.setLayout({bandWidth:s.bandWidth,offset:l,size:u});for(var d=e.mapDimension(h.dim),f=e.mapDimension(a.dim),p=_h(e,d),g=h.isHorizontal(),m=Zh(a,h,p),v=0,y=e.count();y>v;v++){var x=e.get(d,v),_=e.get(f,v),w=x>=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){var A=i.dataToPoint([x,_]);S=b,M=A[1]+l,I=A[0]-m,T=u,Math.abs(I)I?-1:1)*c),isNaN(I)||p&&(o[r][_][w]+=I)}else{var A=i.dataToPoint([_,x]);S=A[0]+l,M=b,I=u,T=A[1]-m,Math.abs(T)=T?-1:1)*c),isNaN(T)||p&&(o[r][_][w]+=T)}e.setItemLayout(v,{x:S,y:M,width:I,height:T})}},this)}function Wh(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function Hh(t){return t.pipelineContext&&t.pipelineContext.large}function Zh(t,e){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}function Uh(t,e){return GL(t,VL(e))}function Xh(t,e){var i,n,o,a=t.type,r=e.getMin(),s=e.getMax(),l=t.getExtent();"ordinal"===a?i=e.getCategories().length:(n=e.get("boundaryGap"),_(n)||(n=[n||0,n||0]),"boolean"==typeof n[0]&&(eS&&console.warn('Boolean type for boundaryGap is only allowed for ordinal axis. Please use string in percentage instead, e.g., "20%". Currently, boundaryGap is set to be 0.'),n=[0,0]),n[0]=Mr(n[0],1),n[1]=Mr(n[1],1),o=l[1]-l[0]||Math.abs(l[0])),"dataMin"===r?r=l[0]:"function"==typeof r&&(r=r({min:l[0],max:l[1]})),"dataMax"===s?s=l[1]:"function"==typeof s&&(s=s({min:l[0],max:l[1]}));var u=null!=r,h=null!=s;null==r&&(r="ordinal"===a?i?0:0/0:l[0]-n[0]*o),null==s&&(s="ordinal"===a?i?i-1:0/0:l[1]+n[1]*o),(null==r||!isFinite(r))&&(r=0/0),(null==s||!isFinite(s))&&(s=0/0),t.setBlank(A(r)||A(s)||"ordinal"===a&&!t.getOrdinalMeta().categories.length),e.getNeedCrossZero()&&(r>0&&s>0&&!u&&(r=0),0>r&&0>s&&!h&&(s=0));var c=e.ecModel;if(c&&"time"===a){var d,p=zh("bar",c);if(f(p,function(t){d|=t.getBaseAxis()===e.axis}),d){var g=Bh(p),m=Yh(r,s,e,g);r=m.min,s=m.max}}return{extent:[r,s],fixMin:u,fixMax:h}}function Yh(t,e,i,n){var o=i.axis.getExtent(),a=o[1]-o[0],r=Gh(n,i.axis);if(void 0===r)return{min:t,max:e};var s=1/0;f(r,function(t){s=Math.min(t.offset,s)});var l=-1/0;f(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=1-(s+l)/a,d=h/c-h;return e+=d*(l/u),t-=d*(s/u),{min:t,max:e}}function jh(t,e){var i=Xh(t,e),n=i.extent,o=e.get("splitNumber");"log"===t.type&&(t.base=e.get("logBase"));var a=t.type;t.setExtent(n[0],n[1]),t.niceExtent({splitNumber:o,fixMin:i.fixMin,fixMax:i.fixMax,minInterval:"interval"===a||"time"===a?e.get("minInterval"):null,maxInterval:"interval"===a||"time"===a?e.get("maxInterval"):null});var r=e.get("interval");null!=r&&t.setInterval&&t.setInterval(r)}function qh(t,e){if(e=e||t.get("type"))switch(e){case"category":return new xL(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new bL;default:return(Ih.getClass(e)||bL).create(t)}}function Kh(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||0>i&&0>n)}function $h(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(Jh(t,n),o)}:function(e){return t.scale.getLabel(e)}}function Jh(t,e){return"category"===t.type?t.scale.getLabel(e):e}function Qh(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();a?o=i.count():(n=i.getTicks(),o=n.length);var s,l=t.getLabelModel(),u=$h(t),h=1;o>40&&(h=Math.ceil(o/40));for(var c=0;o>c;c+=h){var d=n?n[c]:r[0]+c,f=u(d),p=l.getTextRect(f),g=tc(p,l.get("rotate")||0);s?s.union(g):s=g}return s}}function tc(t,e){var i=e*Math.PI/180,n=t.plain(),o=n.width,a=n.height,r=o*Math.abs(Math.cos(i))+Math.abs(a*Math.sin(i)),s=o*Math.abs(Math.sin(i))+Math.abs(a*Math.cos(i)),l=new Ti(n.x,n.y,r,s);return l}function ec(t){var e=t.get("interval");return null==e?"auto":e}function ic(t){return"category"===t.type&&0===ec(t.getLabelModel())}function nc(t,e){if("image"!==this.type){var i=this.style,n=this.shape;n&&"line"===n.symbolType?i.stroke=t:this.__isEmptyBrush?(i.stroke=t,i.fill=e||"#fff"):(i.fill&&(i.fill=t),i.stroke&&(i.stroke=t)),this.dirty(!1)}}function oc(t,e,i,n,o,a,r){var s=0===t.indexOf("empty");s&&(t=t.substr(5,1).toLowerCase()+t.substr(6));var l;return l=0===t.indexOf("image://")?Sa(t.slice(8),new Ti(e,i,n,o),r?"center":"cover"):0===t.indexOf("path://")?ba(t.slice(7),{},new Ti(e,i,n,o),r?"center":"cover"):new tk({shape:{symbolType:t,x:e,y:i,width:n,height:o}}),l.__isEmptyBrush=s,l.setColor=nc,l.setColor(a),l}function ac(t){return bh(t.getSource(),t)}function rc(t,e){var i=e;mr.isInstance(e)||(i=new mr(e),c(i,XL));var n=qh(i);return n.setExtent(t[0],t[1]),jh(n,i),n}function sc(t){c(t,XL)}function lc(t,e){return Math.abs(t-e)>1^-(1&s),l=l>>1^-(1&l),s+=o,l+=a,o=s,a=l,n.push([s/i,l/i])}return n}function fc(t){return"category"===t.type?gc(t):yc(t)}function pc(t,e){return"category"===t.type?vc(t,e):{ticks:t.scale.getTicks()}}function gc(t){var e=t.getLabelModel(),i=mc(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:i.labelCategoryInterval}:i}function mc(t,e){var i=xc(t,"labels"),n=ec(e),o=_c(i,n);if(o)return o;var a,r;return w(n)?a=Tc(t,n):(r="auto"===n?bc(t):n,a=Ic(t,r)),wc(i,n,{labels:a,labelCategoryInterval:r})}function vc(t,e){var i=xc(t,"ticks"),n=ec(e),o=_c(i,n);if(o)return o;var a,r;if((!e.get("show")||t.scale.isBlank())&&(a=[]),w(n))a=Tc(t,n,!0);else if("auto"===n){var s=mc(t,t.getLabelModel());r=s.labelCategoryInterval,a=p(s.labels,function(t){return t.tickValue})}else r=n,a=Ic(t,r,!0);return wc(i,n,{ticks:a,tickCategoryInterval:r})}function yc(t){var e=t.scale.getTicks(),i=$h(t);return{labels:p(e,function(e,n){return{formattedLabel:i(e,n),rawLabel:t.scale.getLabel(e),tickValue:e}})}}function xc(t,e){return ak(t)[e]||(ak(t)[e]=[])}function _c(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=Ui(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))),_=ak(t.model),w=t.getExtent(),b=_.lastAutoInterval,S=_.lastTickCount;return null!=b&&null!=S&&Math.abs(b-x)<=1&&Math.abs(S-r)<=1&&b>x&&_.axisExtend0===w[0]&&_.axisExtend1===w[1]?x=b:(_.lastTickCount=r,_.lastAutoInterval=x,_.axisExtend0=w[0],_.axisExtend1=w[1]),x}function Mc(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 Ic(t,e,i){function n(t){l.push(i?t:{formattedLabel:o(t),rawLabel:a.getLabel(t),tickValue:t})}var o=$h(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=ic(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-u!==r[1]&&n(r[1]),l}function Tc(t,e,i){var n=t.scale,o=$h(t),a=[];return f(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 Ac(t,e){var i=t[1]-t[0],n=e,o=i/n/2;t[0]+=o,t[1]-=o}function Dc(t,e,i,n){function o(t,e){return t=Ir(t),e=Ir(e),d?t>e:e>t}var a=e.length;if(t.onBand&&!i&&a){var r,s,l=t.getExtent();if(1===a)e[0].coord=l[0],r=e[1]={coord:l[0]};else{var u=e[a-1].tickValue-e[0].tickValue,h=(e[a-1].coord-e[0].coord)/u;f(e,function(t){t.coord-=h/2});var c=t.scale.getExtent();s=1+c[1]-e[a-1].tickValue,r={coord:e[a-1].coord+h*s},e.push(r)}var d=l[0]>l[1];o(e[0].coord,l[0])&&(n?e[0].coord=l[0]:e.shift()),n&&o(l[0],e[0].coord)&&e.unshift({coord:l[0]}),o(l[1],r.coord)&&(n?r.coord=l[1]:e.pop()),n&&o(r.coord,l[1])&&e.push({coord:l[1]})}}function Cc(t){return this._axes[t]}function Lc(t){ck.call(this,t)}function kc(t,e){return e.type||(e.data?"category":"value")}function Pc(t,e){return t.getCoordSysModel()===e}function Oc(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}function Ec(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)Nc(r[u])&&(a=r[u]);else for(var h in r)if(r.hasOwnProperty(h)&&Nc(r[h])&&!n[o(r[h])]){a=r[h];break}a&&(n[o(a)]=!0)}}function Nc(t){return t&&"category"!==t.type&&"time"!==t.type&&Kh(t)}function zc(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 Rc(t){return p(_k,function(e){var i=t.getReferringComponents(e)[0];if(eS&&!i)throw new Error(e+' "'+D(t.get(e+"Index"),t.get(e+"Id"),0)+'" not found');return i})}function Bc(t){return"cartesian2d"===t.get("coordinateSystem")}function Vc(t,e){var i=t.mapDimension("defaultedLabel",!0),n=i.length;if(1===n)return nl(t,e,i[0]);if(n){for(var o=[],a=0;a0?"bottom":"top":o.width>0?"left":"right";l||Gc(t.style,f,n,u,a,i,g),jc(o)&&(f.fill=f.stroke="none"),Fa(t,f)}function Kc(t,e){var i=t.get(Ik)||0,n=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),o=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(i,n,o)}function $c(t,e,i){var n=t.getData(),o=[],a=n.getLayout("valueAxisHorizontal")?1:0;o[1-a]=n.getLayout("valueAxisStart");var r=n.getLayout("largeDataIndices"),s=n.getLayout("barWidth"),l=t.getModel("backgroundStyle"),u=t.get("showBackground",!0);if(u){var h=n.getLayout("largeBackgroundPoints"),c=[];c[1-a]=n.getLayout("backgroundStart");var d=new Pk({shape:{points:h},incremental:!!i,__startPoint:c,__baseDimIdx:a,__largeDataIndices:r,__barWidth:s,silent:!0,z2:0});td(d,l,n),e.add(d)}var f=new Pk({shape:{points:n.getLayout("largePoints")},incremental:!!i,__startPoint:o,__baseDimIdx:a,__largeDataIndices:r,__barWidth:s});e.add(f),Qc(f,t,n),f.seriesIndex=t.seriesIndex,t.get("silent")||(f.on("mousedown",Ok),f.on("mousemove",Ok))}function Jc(t,e,i){var n=t.__baseDimIdx,o=1-n,a=t.shape.points,r=t.__largeDataIndices,s=Math.abs(t.__barWidth/2),l=t.__startPoint[o];Tk[0]=e,Tk[1]=i;for(var u=Tk[n],h=Tk[1-n],c=u-s,d=u+s,f=0,p=a.length/2;p>f;f++){var g=2*f,m=a[g+n],v=a[g+o];if(m>=c&&d>=m&&(v>=l?h>=l&&v>=h:h>=v&&l>=h))return r[f]}return-1}function Qc(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 td(t,e,i){var n=e.get("borderColor")||e.get("color"),o=e.getItemStyle(["color","borderColor"]);t.useStyle(o),t.style.fill=null,t.style.stroke=n,t.style.lineWidth=i.getLayout("barWidth")}function ed(t,e,i){var n,o="polar"===i.type;return n=o?i.getArea():i.grid.getRect(),o?{cx:n.cx,cy:n.cy,r0:t?n.r0:e.r0,r:t?n.r:e.r,startAngle:t?e.startAngle:0,endAngle:t?e.endAngle:2*Math.PI}:{x:t?e.x:n.x,y:t?n.y:e.y,width:t?e.width:n.width,height:t?n.height:e.height}}function id(t,e,i){var n="polar"===t.type?BT:XT;return new n({shape:ed(e,i,t),silent:!0,z2:0})}function nd(t,e,i,n){var o,a,r=kr(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;return Pr(r-Ek/2)?(a=l?"bottom":"top",o="center"):Pr(r-1.5*Ek)?(a=l?"top":"bottom",o="center"):(a="middle",o=1.5*Ek>r&&r>Ek/2?l?"left":"right":l?"right":"left"),{rotation:r,textAlign:o,textVerticalAlign:a}}function od(t,e,i){if(!ic(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];n===!1?(ad(a),ad(u)):rd(a,r)&&(n?(ad(r),ad(h)):(ad(a),ad(u))),o===!1?(ad(s),ad(c)):rd(l,s)&&(o?(ad(l),ad(d)):(ad(s),ad(c)))}}function ad(t){t&&(t.ignore=!0)}function rd(t,e){var i=t&&t.getBoundingRect().clone(),n=e&&e.getBoundingRect().clone();if(i&&n){var o=Ee([]);return Be(o,o,-t.rotation),i.applyTransform(ze([],o,t.getLocalTransform())),n.applyTransform(ze([],o,e.getLocalTransform())),i.intersect(n)}}function sd(t){return"middle"===t||"center"===t}function ld(t,e,i,n,o){for(var a=[],r=[],s=[],l=0;l=0||t===e}function yd(t){var e=xd(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=wd(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?i=n[0]:n[1]<0&&(i=n[1]),i}function Bd(t,e,i,n){var o=0/0;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 Vd(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 Gd(t){return isNaN(t[0])||isNaN(t[1])}function Fd(t,e,i,n,o,a,r,s,l,u){return"none"!==u&&u?Wd.apply(this,arguments):Hd.apply(this,arguments)}function Wd(t,e,i,n,o,a,r,s,l,u,h){for(var c=0,d=i,f=0;n>f;f++){var p=e[d];if(d>=o||0>d)break;if(Gd(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;oP(rP,g),rP[m]=g[m]+v,oP(sP,p),sP[m]=p[m]-v,t.bezierCurveTo(rP[0],rP[1],sP[0],sP[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Hd(t,e,i,n,o,a,r,s,l,u,h){for(var c=0,d=i,f=0;n>f;f++){var p=e[d];if(d>=o||0>d)break;if(Gd(p)){if(h){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]),oP(rP,p);else if(l>0){var g=d+a,m=e[g];if(h)for(;m&&Gd(e[g]);)g+=a,m=e[g];var v=.5,y=e[c],m=e[g];if(!m||Gd(m))oP(sP,p);else{Gd(m)&&!h&&(m=p),Y(aP,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=SS(p,y),_=SS(p,m);v=_/(_+x),nP(sP,p,aP,-l*(1-v))}eP(rP,rP,s),iP(rP,rP,r),eP(sP,sP,s),iP(sP,sP,r),t.bezierCurveTo(rP[0],rP[1],sP[0],sP[1],p[0],p[1]),nP(rP,p,aP,l*v)}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Zd(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 Ud(t,e){if(t.length===e.length){for(var i=0;io;o++)n.push(Bd(i,t,e,o));return n}function qd(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(n=l&&l.coordDim,"x"===n||"y"===n){o=i[a];break}}if(!o)return void(eS&&console.warn("Visual map on line style only support x or y dimension."));var u=e.getAxis(n),h=p(o.stops,function(t){return{coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}}),c=h.length,d=o.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),d.reverse());var g=10,m=h[0].coord-g,v=h[c-1].coord+g,y=v-m;if(.001>y)return"transparent";f(h,function(t){t.offset=(t.coord-m)/y}),h.push({offset:c?h[c-1].offset:.5,color:d[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:d[0]||"transparent"});var x=new tA(0,0,0,0,h,!0);return x[n]=m,x[n+"2"]=v,x}}function $d(t,e,i){var n=t.get("showAllSymbol"),o="auto"===n;if(!n||o){var a=i.getAxesByScale("ordinal")[0];if(a&&(!o||!Jd(a,e))){var r=e.mapDimension(a.dim),s={};return f(a.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(r,t))}}}}function Jd(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;o>r;r+=a)if(1.5*Dd.getSymbolSize(e,r)[t.isHorizontal()?1:0]>n)return!1;return!0}function Qd(t,e,i){if("cartesian2d"===t.type){var n=t.getBaseAxis().isHorizontal(),o=Wc(t,e,i);if(!i.get("clip",!0)){var a=o.shape,r=Math.max(a.width,a.height);n?(a.y-=r,a.height+=2*r):(a.x-=r,a.width+=2*r)}return o}return Hc(t,e,i)}function tf(t,e){this.getAllNames=function(){var t=e();return t.mapArray(t.getName)},this.containName=function(t){var i=e();return i.indexOfName(t)>=0},this.indexOfName=function(e){var i=t();return i.indexOfName(e)},this.getItemVisual=function(e,i){var n=t();return n.getItemVisual(e,i)}}function ef(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){nf(o.getItemGraphicEl(t),o.getItemLayout(t),e.isSelected(o.getName(t)),s,i)})}function nf(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 of(t,e){xM.call(this);var i=new BT({z2:2}),n=new HT,o=new ET;this.add(i),this.add(n),this.add(o),this.updateData(t,e,!0)}function af(t,e,i,n,o,a,r,s,l,u){function h(e,i,n){for(var o=e;i>o&&!(t[o].y+n>l+r);o++)if(t[o].y+=n,o>e&&i>o+1&&t[o+1].y>t[o].y+t[o].height)return void c(o,n/2);c(i-1,n/2)}function c(e,i){for(var n=e;n>=0&&!(t[n].y-i0&&t[n].y>t[n-1].y+t[n-1].height));n--);}function d(t,e,i,n,o,a){for(var r=a>0?e?Number.MAX_VALUE:0:e?Number.MAX_VALUE:0,s=0,l=t.length;l>s;s++)if("none"===t[s].labelAlignTo){var u=Math.abs(t[s].y-n),h=t[s].len,c=t[s].len2,d=o+h>u?Math.sqrt((o+h+c)*(o+h+c)-u*u):Math.abs(t[s].x-i);e&&d>=r&&(d=r-10),!e&&r>=d&&(d=r+10),t[s].x=i+d*a,r=d}}t.sort(function(t,e){return t.y-e.y});for(var f,p=0,g=t.length,m=[],v=[],y=0;g>y;y++){if("outer"===t[y].position&&"labelLine"===t[y].labelAlignTo){var x=t[y].x-u;t[y].linePoints[1][0]+=x,t[y].x=u}f=t[y].y-p,0>f&&h(y,g,-f,o),p=t[y].y+t[y].height}0>r-p&&c(g-1,p-r);for(var y=0;g>y;y++)t[y].y>=i?v.push(t[y]):m.push(t[y]);d(m,!1,e,i,n,o),d(v,!0,e,i,n,o)}function rf(t,e,i,n,o,a,r,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,d=0;d0?"P":"N",a=n.getVisual("borderColor"+o)||n.getVisual("color"+o),r=i.getModel(EP).getItemStyle(zP);e.useStyle(r),e.style.fill=null,e.style.stroke=a}function xf(t,e,i,n,o){var a;return a=i>n?-1:n>i?1:e>0?t.get(o,e-1)<=n?1:-1:1}function _f(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=Mr(C(t.get("barMaxWidth"),o),o),r=Mr(C(t.get("barMinWidth"),1),o),s=t.get("barWidth");return null!=s?Mr(s,o):Math.max(Math.min(o/2,a),r)}function wf(t,e,i){sk.call(this,t,e,i),this.type="value",this.angle=0,this.name="",this.model}function bf(t,e,i){this._model=t,this.dimensions=[],this._indicatorAxes=p(t.getIndicatorModels(),function(t,e){var i="indicator_"+e,n=new wf(i,"log"===t.get("axisType")?new UL:new bL);return n.name=t.get("name"),n.model=t,t.axis=n,this.dimensions.push(i),n},this),this.resize(t,i),this.cx,this.cy,this.r,this.r0,this.startAngle}function Sf(t,e){return s({show:e},t)}function Mf(t){return _(t)||(t=[+t,+t]),t}function If(t){return!isNaN(t[0])&&!isNaN(t[1])}function Tf(t){return[t.cx,t.cy]}function Af(){var t=mS();this.canvas=t,this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={}}function Df(t,e,i){var n=t[1]-t[0];e=p(e,function(e){return{interval:[(e.interval[0]-t[0])/n,(e.interval[1]-t[0])/n]}});var o=e.length,a=0;return function(t){for(var n=a;o>n;n++){var r=e[n].interval;if(r[0]<=t&&t<=r[1]){a=n;break}}if(n===o)for(var n=a-1;n>=0;n--){var r=e[n].interval;if(r[0]<=t&&t<=r[1]){a=n;break}}return n>=0&&o>n&&i[n]}}function Cf(t,e){var i=t[1]-t[0];return e=[(e[0]-t[0])/i,(e[1]-t[0])/i],function(t){return t>=e[0]&&t<=e[1]}}function Lf(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}function kf(t){var e=t.mainData,i=t.datas;i||(i={main:e},t.datasAttr={main:"data"}),t.datas=t.mainData=null,Rf(e,i,t),QP(i,function(i){QP(e.TRANSFERABLE_METHODS,function(e){i.wrapMethod(e,x(Pf,t))})}),e.wrapMethod("cloneShallow",x(Ef,t)),QP(e.CHANGABLE_METHODS,function(i){e.wrapMethod(i,x(Of,t))}),O(i[e.dataType]===e)}function Pf(t,e){if(zf(this)){var i=r({},this[tO]);i[this.dataType]=e,Rf(e,i,t)}else Bf(e,this.dataType,this[eO],t);return e}function Of(t,e){return t.struct&&t.struct.update(this),e}function Ef(t,e){return QP(e[tO],function(i,n){i!==e&&Bf(i.cloneShallow(),n,e,t)}),e}function Nf(t){var e=this[eO];return null==t||null==e?e:e[tO][t]}function zf(t){return t[eO]===t}function Rf(t,e,i){t[tO]={},QP(e,function(e,n){Bf(e,n,t,i)})}function Bf(t,e,i,n){i[tO][e]=t,t[eO]=i,t.dataType=e,n.struct&&(t[n.structAttr]=n.struct,n.struct[n.datasAttr[e]]=t),t.getLinkedData=Nf}function Vf(t){this.root,this.data,this._nodes=[],this.hostModel=t}function Gf(t,e){var i=e.children;t.parentNode!==e&&(i.push(t),t.parentNode=e)}function Ff(t){t.hierNode={defaultAncestor:null,ancestor:t,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var e,i,n=[t];e=n.pop();)if(i=e.children,e.isExpand&&i.length)for(var o=i.length,a=o-1;a>=0;a--){var r=i[a];r.hierNode={defaultAncestor:null,ancestor:r,prelim:0,modifier:0,change:0,shift:0,i:a,thread:null},n.push(r)}}function Wf(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){Yf(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=jf(t,o,t.parentNode.hierNode.defaultAncestor||n[0],e)}function Hf(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function Zf(t){return arguments.length?t:Qf}function Uf(t,e){var i={};return t-=Math.PI/2,i.x=e*Math.cos(t),i.y=e*Math.sin(t),i}function Xf(t,e){return ts(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function Yf(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 jf(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=qf(s),a=Kf(a),s&&a;){o=qf(o),r=Kf(r),o.hierNode.ancestor=t;var d=s.hierNode.prelim+c-a.hierNode.prelim-u+n(s,a);d>0&&(Jf($f(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&&!qf(o)&&(o.hierNode.thread=s,o.hierNode.modifier+=c-l),a&&!Kf(r)&&(r.hierNode.thread=a,r.hierNode.modifier+=u-h,i=t)}return i}function qf(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function Kf(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function $f(t,e,i){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:i}function Jf(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 Qf(t,e){return t.parentNode===e.parentNode?1:2}function tp(){ZS.call(this)}function ep(t){this.name=t,this.zoomLimit,ZS.call(this),this._roamTransformable=new tp,this._rawTransformable=new tp,this._center,this._zoom}function ip(t,e,i,n){var o=i.seriesModel,a=o?o.coordinateSystem:null;return a===this?a[t](n):null}function np(t,e,i){var n=t.target,o=n.position;o[0]+=e,o[1]+=i,n.dirty()}function op(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 ap(t,e,i){var n=lp(t);n[e]=i}function rp(t,e,i){var n=lp(t),o=n[e];o===i&&(n[e]=null)}function sp(t,e){return!!lp(t)[e]}function lp(t){return t[oO]||(t[oO]={})}function up(t){this.pointerChecker,this._zr=t,this._opt={};var e=y,i=e(hp,this),o=e(cp,this),a=e(dp,this),r=e(fp,this),l=e(pp,this);AS.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(e,u){this.disable(),this._opt=s(n(u)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==e&&(e=!0),(e===!0||"move"===e||"pan"===e)&&(t.on("mousedown",i),t.on("mousemove",o),t.on("mouseup",a)),(e===!0||"scale"===e||"zoom"===e)&&(t.on("mousewheel",r),t.on("pinch",l))},this.disable=function(){t.off("mousedown",i),t.off("mousemove",o),t.off("mouseup",a),t.off("mousewheel",r),t.off("pinch",l)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function hp(t){if(!(Ie(t)||t.target&&t.target.draggable)){var e=t.offsetX,i=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,i)&&(this._x=e,this._y=i,this._dragging=!0)}}function cp(t){if(this._dragging&&vp("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!sp(this._zr,"globalPan")){var e=t.offsetX,i=t.offsetY,n=this._x,o=this._y,a=e-n,r=i-o;this._x=e,this._y=i,this._opt.preventDefaultMouseMove&&ES(t.event),mp(this,"pan","moveOnMouseMove",t,{dx:a,dy:r,oldX:n,oldY:o,newX:e,newY:i})}}function dp(t){Ie(t)||(this._dragging=!1)}function fp(t){var e=vp("zoomOnMouseWheel",t,this._opt),i=vp("moveOnMouseWheel",t,this._opt),n=t.wheelDelta,o=Math.abs(n),a=t.offsetX,r=t.offsetY;if(0!==n&&(e||i)){if(e){var s=o>3?1.4:o>1?1.2:1.1,l=n>0?s:1/s;gp(this,"zoom","zoomOnMouseWheel",t,{scale:l,originX:a,originY:r})}if(i){var u=Math.abs(n),h=(n>0?1:-1)*(u>3?.4:u>1?.15:.05);gp(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:h,originX:a,originY:r})}}}function pp(t){if(!sp(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;gp(this,"zoom",null,t,{scale:e,originX:t.pinchX,originY:t.pinchY})}}function gp(t,e,i,n,o){t.pointerChecker&&t.pointerChecker(n,o.originX,o.originY)&&(ES(n.event),mp(t,e,i,n,o))}function mp(t,e,i,n,o){o.isAvailableBehavior=y(vp,null,i,n),t.trigger(e,o)}function vp(t,e,i){var n=i[t];return!t||n&&(!b(n)||e.event[n+"Key"])}function yp(t,e,i){var n=e.getComponentByElement(t.topTarget),o=n&&n.coordinateSystem;return n&&n!==i&&!aO[n.mainType]&&o&&o.model!==i}function xp(t,e){var i=t.getItemLayout(e);return i&&!isNaN(i.x)&&!isNaN(i.y)&&"none"!==t.getItemVisual(e,"symbol")}function _p(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"),i.symbolInnerColor=t.isExpand===!1&&0!==t.children.length?i.itemStyle.fill:"#fff",i}function wp(t,e,i,n,o,a){var r=!i,s=t.tree.getNodeByDataIndex(e),l=s.getModel(),a=_p(s,l,a),u=t.tree.root,h=s.parentNode===u?s:s.parentNode||s,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=s.getLayout();r?(i=new Dd(t,e,a),i.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),nr(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&&s.isExpand===!0){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&&(m=2*Math.PI+m),v=w.xm&&(m=2*Math.PI+m),0===s.children.length||0!==s.children.length&&s.isExpand===!1?(v=p.xx.x,v||(m-=Math.PI));var b=v?"left":"right",S=a.labelModel.get("rotate"),M=S*(Math.PI/180);g.setStyle({textPosition:a.labelModel.get("position")||b,textRotation:null==S?-m:M,textOrigin:"center",verticalAlign:"middle"})}bp(o,s,u,i,f,d,p,n,a)}function bp(t,e,i,n,o,a,r,l,u){var h=u.edgeShape,c=n.__edge;if("curve"===h)e.parentNode&&e.parentNode!==i&&(c||(c=n.__edge=new KT({shape:Mp(u,o,o),style:s({opacity:0,strokeNoScale:!0},u.lineStyle)})),nr(c,{shape:Mp(u,a,r),style:s({opacity:1},u.lineStyle)},t));else if("polyline"===h)if("orthogonal"===u.layout){if(e!==i&&e.children&&0!==e.children.length&&e.isExpand===!0){for(var d=e.children,f=[],p=0;p=0;a--)n.push(o[a])}}function Dp(t,e){var i=Xf(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=Zf(function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth})):(o=i.width,a=i.height,r=Zf());var s=t.getData().tree.root,l=s.children[0];if(l){Ff(s),Tp(l,Wf,r),s.hierNode.modifier=-l.hierNode.prelim,Ap(l,Hf);var u=l,h=l,c=l;Ap(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),Ap(l,function(t){m=(t.getLayout().x+f)*p,v=(t.depth-1)*g;var e=Uf(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),Ap(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),Ap(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 Cp(t,e,i){if(t&&u(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 Lp(t){for(var e=[];t;)t=t.parentNode,t&&e.push(t);return e.reverse()}function kp(t,e){var i=Lp(t);return u(i,e)>=0}function Pp(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 Op(t){var e=0;f(t.children,function(t){Op(t);var i=t.value;_(i)&&(i=i[0]),e+=i});var i=t.value;_(i)&&(i=i[0]),(null==i||isNaN(i))&&(i=e),0>i&&(i=0),_(t.value)?t.value[0]=i:t.value=i}function Ep(t,e){var i=e.get("color");if(i){t=t||[];var n;if(f(t,function(t){var e=new mr(t),i=e.get("color");(e.get("itemStyle.color")||i&&"none"!==i)&&(n=!0)}),!n){var o=t[0]||(t[0]={});o.color=i.slice()}return t}}function Np(t){this.group=new xM,t.add(this.group)}function zp(t,e,i,n,o,a){var r=[[o?t:t-hO,e],[t+i,e],[t+i,e+n],[o?t:t-hO,e+n]];return!a&&r.splice(2,0,[t+i+hO,e+n/2]),!o&&r.push([t,e+n/2]),r}function Rp(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&&Pp(i,e)}}function Bp(){var t,e=[],i={};return{add:function(t,n,o,a,r){return b(a)&&(r=a,a=0),i[t.id]?!1:(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(){function n(){o--,o||(e.length=0,i={},t&&t())}for(var o=e.length,a=0,r=e.length;r>a;a++){var s=e[a];s.el.animateTo(s.target,s.time,s.delay,s.easing,n)}return this}}}function Vp(){return{nodeGroup:[],background:[],content:[]}}function Gp(t,e,i,o,a,s,l,u,h,c){function d(e,i,n){if(i.dataIndex=l.dataIndex,i.seriesIndex=t.seriesIndex,i.setShape({x:0,y:0,width:b,height:S}),I)p(i);else{i.invisible=!1;var o=l.getVisual("borderColor",!0),a=P.get("borderColor"),r=MO(k);r.fill=o;var s=SO(P);if(s.fill=a,n){var u=b-2*M;g(r,s,o,u,C,{x:M,y:0,width:u,height:C})}else r.text=s.text=null;i.setStyle(r),Na(i,s)}e.add(i)}function f(e,i){i.dataIndex=l.dataIndex,i.seriesIndex=t.seriesIndex;var n=Math.max(b-2*M,0),o=Math.max(S-2*M,0);if(i.culling=!0,i.setShape({x:M,y:M,width:n,height:o}),I)p(i); +else{i.invisible=!1;var a=l.getVisual("color",!0),r=MO(k);r.fill=a;var s=SO(P);g(r,s,a,n,o),i.setStyle(r),Na(i,s)}e.add(i)}function p(t){!t.invisible&&s.push(t)}function g(e,i,o,a,r,s){var u=E.get("name"),h=E.getModel(s?yO:mO),c=E.getModel(s?xO:vO),d=h.getShallow("show");Ua(e,i,h,c,{defaultText:d?u:null,autoColor:o,isRectText:!0,labelFetcher:t,labelDataIndex:l.dataIndex,labelProp:s?"upperLabel":"label"}),m(e,s,_),m(i,s,_),s&&(e.textRect=n(s)),e.truncate=d&&h.get("ellipsis")?{outerWidth:a,outerHeight:r,minChar:2}:null}function m(e,i,n){var o=e.text;if(!i&&n.isLeafRoot&&null!=o){var a=t.get("drillDownIcon",!0);e.text=a?a+" "+o:o}}function v(t,n,o,r){var s=null!=A&&i[t][A],l=a[t];return s?(i[t][A]=null,y(l,s,t)):I||(s=new n({z:Fp(o,r)}),s.__tmDepth=o,s.__tmStorageName=t,x(l,s,t)),e[t][T]=s}function y(t,e,i){var n=t[T]={};n.old="nodeGroup"===i?e.position.slice():r({},e.shape)}function x(t,e,i){var n=t[T]={},r=l.parentNode;if(r&&(!o||"drillDown"===o.direction)){var s=0,u=0,h=a.background[r.getRawIndex()];!o&&h&&h.old&&(s=h.old.width,u=h.old.height),n.old="nodeGroup"===i?[0,u]:{x:s,y:u,width:0,height:0}}n.fadein="nodeGroup"!==i}if(l){var _=l.getLayout(),w=t.getData();if(w.setItemGraphicEl(l.dataIndex,null),_&&_.isInView){var b=_.width,S=_.height,M=_.borderWidth,I=_.invisible,T=l.getRawIndex(),A=u&&u.getRawIndex(),D=l.viewChildren,C=_.upperHeight,L=D&&D.length,k=l.getModel("itemStyle"),P=l.getModel("emphasis.itemStyle"),O=v("nodeGroup",dO);if(O){if(h.add(O),O.attr("position",[_.x||0,_.y||0]),O.__tmNodeWidth=b,O.__tmNodeHeight=S,_.isAboveViewRoot)return O;var E=l.getModel(),N=v("background",fO,c,wO);if(N&&d(O,N,L&&_.upperLabelHeight),L)Ha(O)&&Wa(O,!1),N&&(Wa(N,!0),w.setItemGraphicEl(l.dataIndex,N));else{var z=v("content",fO,c,bO);z&&f(O,z),N&&Ha(N)&&Wa(N,!1),Wa(O,!0),w.setItemGraphicEl(l.dataIndex,O)}return O}}}}function Fp(t,e){var i=t*_O+e;return(i-1)/i}function Wp(t){var e=t.pieceList;t.hasSpecialVisual=!1,f(e,function(e,i){e.originIndex=i,null!=e.visual&&(t.hasSpecialVisual=!0)})}function Hp(t){var e=t.categories,i=t.visual,n=t.categoryMap={};if(DO(e,function(t,e){n[t]=e}),!_(i)){var o=[];S(i)?DO(i,function(t,e){var i=n[e];o[null!=i?i:LO]=t}):o[LO]=i,i=Jp(t,o)}for(var a=e.length-1;a>=0;a--)null==i[a]&&(delete n[e[a]],e.pop())}function Zp(t,e){var i=t.visual,n=[];S(i)?DO(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]),Jp(t,n)}function Up(t){return{applyVisual:function(e,i,n){e=this.mapValueToVisual(e),n("color",t(i("color"),e))},_doMap:Kp([0,1])}}function Xp(t){var e=this.option.visual;return e[Math.round(Sr(t,[0,1],[0,e.length-1],!0))]||{}}function Yp(t){return function(e,i,n){n(t,this.mapValueToVisual(e))}}function jp(t){var e=this.option.visual;return e[this.option.loop&&t!==LO?t%e.length:t]}function qp(){return this.option.visual[0]}function Kp(t){return{linear:function(e){return Sr(e,t,this.option.visual,!0)},category:jp,piecewise:function(e,i){var n=$p.call(this,i);return null==n&&(n=Sr(e,t,this.option.visual,!0)),n},fixed:qp}}function $p(t){var e=this.option,i=e.pieceList;if(e.hasSpecialVisual){var n=kO.findPieceIndex(t,i),o=i[n];if(o&&o.visual)return o.visual[this.type]}}function Jp(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=p(e,function(t){return ti(t)})),e}function Qp(t,e,i){return t?i>=e:i>e}function tg(t,e,i,n){var o=t.getModel(),a=t.getLayout();if(a&&!a.invisible&&a.isInView){var r,s=t.getModel(NO),l=eg(s,e,n),u=s.get("borderColor"),h=s.get("borderColorSaturation");null!=h&&(r=ig(l,t),u=ng(h,r)),t.setVisual("borderColor",u);var c=t.viewChildren;if(c&&c.length){var d=ag(t,o,a,s,l,c);f(c,function(t,e){if(t.depth>=i.length||t===i[t.depth]){var a=sg(o,l,t,e,d,n);tg(t,a,i,n)}})}else r=ig(l,t),t.setVisual("color",r)}}function eg(t,e,i){var n=r({},e),o=i.designatedVisualItemStyle;return f(["color","colorAlpha","colorSaturation"],function(i){o[i]=e[i];var a=t.get(i);o[i]=null,null!=a&&(n[i]=a)}),n}function ig(t){var e=og(t,"color");if(e){var i=og(t,"colorAlpha"),n=og(t,"colorSaturation");return n&&(e=si(e,null,null,n)),i&&(e=li(e,i)),e}}function ng(t,e){return null!=e?si(e,null,null,t):null}function og(t,e){var i=t[e];return null!=i&&"none"!==i?i:void 0}function ag(t,e,i,n,o,a){if(a&&a.length){var r=rg(e,"color")||null!=o.color&&"none"!==o.color&&(rg(e,"colorAlpha")||rg(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 kO(c);return d.__drColorMappingBy=h,d}}}function rg(t,e){var i=t.get(e);return EO(i)&&i.length?{name:e,range:i}:null}function sg(t,e,i,n,o,a){var s=r({},e);if(o){var l=o.type,u="color"===l&&o.__drColorMappingBy,h="index"===u?n:"id"===u?a.mapIdToIndex(i.getId()):i.getValue(t.get("visualDimension"));s[l]=o.mapValueToVisual(h)}return s}function lg(t,e,i,n){var o,a;if(!t.isRemoved()){var r=t.getLayout();o=r.width,a=r.height;var s=t.getModel(),l=s.get(FO),u=s.get(WO)/2,h=yg(s),c=Math.max(l,h),d=l-u,f=c-u,s=t.getModel();t.setLayout({borderWidth:l,upperHeight:c,upperLabelHeight:h},!0),o=RO(o-2*d,0),a=RO(a-d-f,0);var p=o*a,g=ug(t,s,p,e,i,n);if(g.length){var m={x:d,y:f,width:o,height:a},v=BO(o,a),y=1/0,x=[];x.area=0;for(var _=0,w=g.length;w>_;){var b=g[_];x.push(b),x.area+=b.getLayout().area;var S=fg(x,v,e.squareRatio);y>=S?(_++,y=S):(x.area-=x.pop().getLayout().area,pg(x,v,m,u,!1),v=BO(m.width,m.height),x.length=x.area=0,y=1/0)}if(x.length&&pg(x,v,m,u,!0),!i){var M=s.get("childrenVisibleMin");null!=M&&M>p&&(i=!0)}for(var _=0,w=g.length;w>_;_++)lg(g[_],e,i,n+1)}}}function ug(t,e,i,n,o,a){var r=t.children||[],s=n.sort;"asc"!==s&&"desc"!==s&&(s=null);var l=null!=n.leafDepth&&n.leafDepth<=a;if(o&&!l)return t.viewChildren=[];r=m(r,function(t){return!t.isRemoved()}),cg(r,s);var u=dg(e,r,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=hg(e,i,u.sum,s,r),0===u.sum)return t.viewChildren=[];for(var h=0,c=r.length;c>h;h++){var d=r[h].getValue()/u.sum*i;r[h].setLayout({area:d})}return l&&(r.length&&t.setLayout({isLeafRoot:!0},!0),r.length=0),t.viewChildren=r,t.setLayout({dataExtent:u.dataExtent},!0),r}function hg(t,e,i,n,o){if(!n)return i;for(var a=t.get("visibleMin"),r=o.length,s=r,l=r-1;l>=0;l--){var u=o["asc"===n?r-l-1:l].getValue();a>u/i*e&&(s=l,i-=u)}return"asc"===n?o.splice(0,r-s):o.splice(s,r-s),i}function cg(t,e){return e&&t.sort(function(t,i){var n="asc"===e?t.getValue()-i.getValue():i.getValue()-t.getValue();return 0===n?"asc"===e?t.dataIndex-i.dataIndex:i.dataIndex-t.dataIndex:n}),t}function dg(t,e,i){for(var n=0,o=0,a=e.length;a>o;o++)n+=e[o].getValue();var r,s=t.get("visualDimension");if(e&&e.length)if("value"===s&&i)r=[e[e.length-1].getValue(),e[0].getValue()],"asc"===i&&r.reverse();else{var r=[1/0,-1/0];GO(e,function(t){var e=t.getValue(s);er[1]&&(r[1]=e)})}else r=[0/0,0/0];return{sum:n,dataExtent:r}}function fg(t,e,i){for(var n,o=0,a=1/0,r=0,s=t.length;s>r;r++)n=t[r].getLayout().area,n&&(a>n&&(a=n),n>o&&(o=n));var l=t.area*t.area,u=e*e*i;return l?RO(u*o/l,l/(u*a)):1/0}function pg(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;d>c;c++){var f=t[c],p={},g=h?f.getLayout().area/h:0,m=p[l[r]]=RO(h-2*n,0),v=i[s[a]]+i[l[a]]-u,y=c===d-1||g>v?v:g,x=p[l[a]]=RO(y-2*n,0);p[s[r]]=i[s[r]]+BO(n,m/2),p[s[a]]=u+BO(n,x/2),u+=y,f.setLayout(p,!0)}i[s[r]]+=h,i[l[r]]-=h}function gg(t,e,i,n,o){var a=(e||{}).node,r=[n,o];if(!a||a===i)return r;for(var s,l=n*o,u=l*t.option.zoomToNodeRatio;s=a.parentNode;){for(var h=0,c=s.children,d=0,f=c.length;f>d;d++)h+=c[d].getValue();var p=a.getValue();if(0===p)return r;u*=h/p;var g=s.getModel(),m=g.get(FO),v=Math.max(m,yg(g,m));u+=4*m*m+(3*m+v)*Math.pow(u,.5),u>TA&&(u=TA),a=s}l>u&&(u=l);var y=Math.pow(u/l,.5);return[n*y,o*y]}function mg(t,e,i){if(e)return{x:e.x,y:e.y};var n={x:0,y:0};if(!i)return n;var o=i.node,a=o.getLayout();if(!a)return n;for(var r=[a.width/2,a.height/2],s=o;s;){var l=s.getLayout();r[0]+=l.x,r[1]+=l.y,s=s.parentNode}return{x:t.width/2-r[0],y:t.height/2-r[1]}}function vg(t,e,i,n,o){var a=t.getLayout(),r=i[o],s=r&&r===t;if(!(r&&!s||o===i.length&&t!==n)){t.setLayout({isInView:!0,invisible:!s&&!e.intersect(a),isAboveViewRoot:s},!0);var l=new Ti(e.x-a.x,e.y-a.y,e.width,e.height);GO(t.viewChildren||[],function(t){vg(t,l,i,n,o+1)})}}function yg(t){return t.get(HO)?t.get(ZO):0}function xg(t){var e=0;f(t.children,function(t){xg(t);var i=t.value;_(i)&&(i=i[0]),e+=i});var i=t.value;_(i)&&(i=i[0]),(null==i||isNaN(i))&&(i=e),0>i&&(i=0),_(t.value)?t.value[0]=i:t.value=i}function _g(t,e,i){function n(){r.ignore=r.hoverIgnore}function o(){r.ignore=r.normalIgnore}xM.call(this);var a=new BT({z2:YO});a.seriesIndex=e.seriesIndex;var r=new ET({z2:jO,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 wg(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[bg(t)%r]}function bg(t){for(var e=t;e.depth>1;)e=e.parentNode;var i=t.getAncestors()[0];return u(i.children,e)}function Sg(t,e,i){return i===XO.NONE?!1:i===XO.SELF?t===e:i===XO.ANCESTOR?t===e||t.isAncestorOf(e):t===e||t.isDescendantOf(e)}function Mg(t,e,i){var n=e.getData();n.setItemVisual(t.dataIndex,"color",i)}function Ig(t,e){var i=t.children||[];t.children=Tg(i,e),i.length&&f(t.children,function(t){Ig(t,e)})}function Tg(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 Ag(t){for(var e,i=0;i1?(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(),a.aspect=c,f=ts(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 Fg(t,e){f(e.get("geoCoord"),function(e,i){t.addGeoCoord(i,e)})}function Wg(t,e){var i={};return f(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;u>h;h++)s=Math.min(s,i[a][h]),l=Math.max(l,i[a][h]),r+=i[a][h];var c;return c="min"===e?s:"max"===e?l:"average"===e?r/u:r,0===u?0/0:c})}function Hg(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(eS&&console.warn("Lines data configuration has been changed to { coords:[[1,2],[2,3]] }"),t.data=p(e,function(t){var e=[t[0].coord,t[1].coord],i={coords:e};return t[0].name&&(i.fromName=t[0].name),t[1].name&&(i.toName=t[1].name),a([i,t[0],t[1]])}))}function Zg(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}function Ug(t){return"_"+t+"Type"}function Xg(t,e,i){var n=e.getItemVisual(i,t);if(n&&"none"!==n){var o=e.getItemVisual(i,"color"),a=e.getItemVisual(i,t+"Size"),r=e.getItemVisual(i,t+"Rotate");_(a)||(a=[a,a]);var s=oc(n,-a[0]/2,-a[1]/2,a[0],a[1],o);return s.__specifiedRotation=null==r||isNaN(r)?void 0:+r*Math.PI/180||0,s.name=t,s}}function Yg(t){var e=new PE({name:"line",subPixelOptimize:!0});return jg(e.shape,t),e}function jg(t,e){t.x1=e[0][0],t.y1=e[0][1],t.x2=e[1][0],t.y2=e[1][1],t.percent=1;var i=e[2];i?(t.cpx1=i[0],t.cpy1=i[1]):(t.cpx1=0/0,t.cpy1=0/0)}function qg(){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=Y([],u,l);if(te(h,h),e){e.attr("position",l);var c=e.__specifiedRotation;if(null==c){var d=r.tangentAt(0);e.attr("rotation",Math.PI/2-Math.atan2(d[1],d[0]))}else e.attr("rotation",c);e.attr("scale",[o*s,o*s])}if(i){i.attr("position",u);var c=i.__specifiedRotation;if(null==c){var d=r.tangentAt(1);i.attr("rotation",-Math.PI/2-Math.atan2(d[1],d[0]))}else i.attr("rotation",c);i.attr("scale",[o*s,o*s])}if(!n.ignore){n.attr("position",u);var f,p,g,m,v=n.__labelDistance,y=v[0]*o,x=v[1]*o,_=s/2,d=r.tangentAt(_),w=[d[1],-d[0]],b=r.pointAt(_);w[1]>0&&(w[0]=-w[0],w[1]=-w[1]);var S=d[0]<0?-1:1;if("start"!==n.__position&&"end"!==n.__position){var M=-Math.atan2(d[1],d[0]);u[0].8?"left":h[0]<-.8?"right":"center",g=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":f=[-h[0]*y+l[0],-h[1]*x+l[1]],p=h[0]>.8?"right":h[0]<-.8?"left":"center",g=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":f=[y*S+l[0],l[1]+I],p=d[0]<0?"right":"left",m=[-y*S,-I];break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":f=[b[0],b[1]+I],p="center",m=[0,-I];break;case"insideEndTop":case"insideEnd":case"insideEndBottom":f=[-y*S+u[0],u[1]+I],p=d[0]>=0?"right":"left",m=[y*S,-I]}n.attr({style:{textVerticalAlign:n.__verticalAlign||g,textAlign:n.__textAlign||p},position:f,scale:[o,o],origin:m})}}}}function Kg(t,e,i){xM.call(this),this._createLine(t,e,i)}function $g(t){this._ctor=t||Kg,this.group=new xM}function Jg(t,e,i,n){var o=e.getItemLayout(i);if(nm(o)){var a=new t._ctor(e,i,n);e.setItemGraphicEl(i,a),t.group.add(a)}}function Qg(t,e,i,n,o,a){var r=e.getItemGraphicEl(n);return nm(i.getItemLayout(o))?(r?r.updateData(i,o,a):r=new t._ctor(i,o,a),i.setItemGraphicEl(o,r),void t.group.add(r)):void t.group.remove(r)}function tm(t){return t.animators&&t.animators.length>0}function em(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),hoverLineStyle:e.getModel("emphasis.lineStyle").getLineStyle(),labelModel:e.getModel("label"),hoverLabelModel:e.getModel("emphasis.label")}}function im(t){return isNaN(t[0])||isNaN(t[1])}function nm(t){return!im(t[0])&&!im(t[1])}function om(t,e,i){xM.call(this),this.add(this.createLine(t,e,i)),this._updateEffectSymbol(t,e)}function am(t,e,i){xM.call(this),this._createPolyline(t,e,i)}function rm(t,e,i){om.call(this,t,e,i),this._lastFrame=0,this._lastFramePercent=0}function sm(){this.group=new xM}function lm(t){return t instanceof Array||(t=[t,t]),t}function um(t){return"_EC_"+t}function hm(t,e){this.id=null==t?"":t,this.inEdges=[],this.outEdges=[],this.edges=[],this.hostGraph,this.dataIndex=null==e?-1:e}function cm(t,e,i){this.node1=t,this.node2=e,this.dataIndex=null==i?-1:i}function dm(t){qE(t)&&(t.__curvenessList=[],t.__edgeMap={},KE(t))}function fm(t,e,i,n){if(qE(i)){var o=$E(t,e,i),a=i.__edgeMap,r=a[JE(o)];a[o]&&!r?a[o].isForward=!0:r&&a[o]&&(r.isForward=!0,a[o].isForward=!1),a[o]=a[o]||[],a[o].push(n)}}function pm(t,e,i,n){var o=qE(e),a=_(o);if(!o)return null;var r=QE(t,e);if(!r)return null;for(var s=-1,l=0;l=h;h+=.1){nN[0]=rN(o[0],a[0],r[0],h),nN[1]=rN(o[1],a[1],r[1],h);var c=lN(sN(nN,e)-l);s>c&&(s=c,n=h)}for(var d=0;32>d;d++){var f=n+u;oN[0]=rN(o[0],a[0],r[0],n),oN[1]=rN(o[1],a[1],r[1],n),aN[0]=rN(o[0],a[0],r[0],f),aN[1]=rN(o[1],a[1],r[1],f);var c=sN(oN,e)-l;if(lN(c)<.01)break;var p=sN(aN,e)-l;u/=2,0>c?p>=0?n+=u:n-=u:p>=0?n-=u:n+=u}return n}function ym(t,e){var i=t.getVisual("opacity");return null!=i?i:t.getModel().get(e)}function xm(t,e,i){var n=t.getGraphicEl(),o=ym(t,e);null!=i&&(null==o&&(o=1),o*=i),n.downplay&&n.downplay(),n.traverse(function(t){if(!t.isGroup){var e=t.lineLabelOriginalOpacity;(null==e||null!=i)&&(e=o),t.setStyle("opacity",e)}})}function _m(t,e){var i=ym(t,e),n=t.getGraphicEl();n.traverse(function(t){!t.isGroup&&t.setStyle("opacity",i)}),n.highlight&&n.highlight()}function wm(t){return t instanceof Array||(t=[t,t]),t}function bm(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")])}),Sm(i,t)}}function Sm(t,e){t.eachEdge(function(t,i){var n=L(t.getModel().get("lineStyle.curveness"),-pm(t,e,i,!0),0),o=H(t.node1.getLayout()),a=H(t.node2.getLayout()),r=[o,a];+n&&r.push([(o[0]+a[0])/2-(o[1]-a[1])*n,(o[1]+a[1])/2-(a[0]-o[0])*n]),t.setLayout(r)})}function Mm(t,e){var i=t.coordinateSystem;if(!i||"view"===i.type){var n=i.getBoundingRect(),o=t.getData(),a=o.graph,r=n.width/2+n.x,s=n.height/2+n.y,l=Math.min(n.width,n.height)/2,u=o.count();o.setLayout({cx:r,cy:s}),u&&(wN[e](t,i,a,o,l,r,s,u),a.eachEdge(function(e,i){var n,o=L(e.getModel().get("lineStyle.curveness"),pm(e,t,i),0),a=H(e.node1.getLayout()),l=H(e.node2.getLayout()),u=(a[0]+l[0])/2,h=(a[1]+l[1])/2;+o&&(o*=3,n=[r*o+u*(1-o),s*o+h*(1-o)]),e.setLayout([a,l,n])}))}}function Im(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;la;a++){var p=t[a];p.fixed||(Y(n,r,p.p),SN(p.p,p.p,n,s*c))}for(var a=0;o>a;a++)for(var u=t[a],g=a+1;o>g;g++){var h=t[g];Y(n,h.p,u.p);var d=j(n);0===d&&(Z(n,Math.random()-.5,Math.random()-.5),d=1);var m=(u.rep+h.rep)/d/d;!u.fixed&&SN(u.pp,u.pp,n,m),!h.fixed&&SN(h.pp,h.pp,n,-m)}for(var v=[],a=0;o>a;a++){var p=t[a];p.fixed||(Y(v,p.p,p.pp),SN(p.p,p.p,v,c),W(p.pp,p.p))}c=.992*c,i&&i(t,e,.01>c)}}}function Tm(t,e,i){var n=t.getBoxLayoutParams();return n.aspect=i,ts(n,{width:e.getWidth(),height:e.getHeight()})}function Am(t,e,i,n,o){var a=t.ends,r=new CN({shape:{points:o?Cm(a,n,t):a}});return Dm(t,r,e,i,o),r}function Dm(t,e,i,n,o){var a=i.hostModel,r=vA[o?"initProps":"updateProps"];r(e,{shape:{points:t.ends}},a,n);var s=i.getItemModel(n),l=s.getModel(AN),u=i.getItemVisual(n,"color"),h=l.getItemStyle(["borderColor"]);h.stroke=u,h.strokeNoScale=!0,e.useStyle(h),e.z2=100;var c=s.getModel(DN).getItemStyle();Fa(e,c)}function Cm(t,e,i){return p(t,function(t){return t=t.slice(),t[e]=i.initBaseline,t})}function Lm(t){var e=[],i=[];return t.eachSeriesByType("boxplot",function(t){var n=t.getBaseAxis(),o=u(i,n);0>o&&(o=i.length,i[o]=n,e[o]={axis:n,seriesModels:[]}),e[o].seriesModels.push(t)}),e}function km(t){var e,i,n=t.axis,o=t.seriesModels,a=o.length,r=t.boxWidthList=[],s=t.boxOffsetList=[],l=[];if("category"===n.type)i=n.getBandWidth();else{var u=0;PN(o,function(t){u=Math.max(u,t.getData().count())}),e=n.getExtent(),Math.abs(e[1]-e[0])/u}PN(o,function(t){var e=t.get("boxWidth");_(e)||(e=[e,e]),l.push([Mr(e[0],i)||0,Mr(e[1],i)||0])});var h=.8*i-2,c=h/a*.3,d=(h-c*(a-1))/a,f=d/2-h/2;PN(o,function(t,e){s.push(f),f+=c+d,r.push(Math.min(Math.max(d,l[e][0]),l[e][1]))})}function Pm(t,e,i){function n(t,i,n){var o=s.get(i,n),a=[];a[u]=t,a[h]=o;var l;return isNaN(t)||isNaN(o)?l=[0/0,0/0]:(l=r.dataToPoint(a),l[u]+=e),l}function o(t,e,i){var n=e.slice(),o=e.slice();n[u]+=l,o[u]-=l,i?t.push(n,o):t.push(o,n)}function a(t,e){var i=e.slice(),n=e.slice();i[u]-=l,n[u]+=l,t.push(i,n)}var r=t.coordinateSystem,s=t.getData(),l=i/2,u="horizontal"===t.get("layout")?0:1,h=1-u,c=["x","y"],d=s.mapDimension(c[u]),f=s.mapDimension(c[h],!0);if(!(null==d||f.length<5))for(var p=0;p0?-1:0>i?1:e?-1:1}}function zm(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}function Rm(t,e,i){this._axesMap=B(),this._axesLayout={},this.dimensions=t.dimensions,this._rect,this._model=t,this._init(t,e,i)}function Bm(t,e){return BN(VN(t,e[0]),e[1])}function Vm(t,e){var i=e.layoutLength/(e.axisCount-1);return{position:i*t,axisNameAvailableWidth:i,axisLabelShow:!0}}function Gm(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 ttz}function av(t){var e=t.length-1;return 0>e&&(e=0),[t[0],t[e]]}function rv(t,e,i,n){var o=new xM;return o.add(new XT({name:"main",style:hv(i),silent:!0,draggable:!0,cursor:"move",drift:YN(t,e,o,"nswe"),ondragend:YN(nv,e,{isEnd:!0})})),jN(n,function(i){o.add(new XT({name:i,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:YN(t,e,o,i),ondragend:YN(nv,e,{isEnd:!0})}))}),o}function sv(t,e,i,n){var o=n.brushStyle.lineWidth||0,a=$N(o,ez),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;uv(t,e,"main",r,s,p,g),n.transformable&&(uv(t,e,"w",l,u,a,v),uv(t,e,"e",d,u,a,v),uv(t,e,"n",l,u,m,a),uv(t,e,"s",l,f,m,a),uv(t,e,"nw",l,u,a,a),uv(t,e,"ne",d,u,a,a),uv(t,e,"sw",l,f,a,a),uv(t,e,"se",d,f,a,a))}function lv(t,e){var i=e.__brushOption,n=i.transformable,o=e.childAt(0);o.useStyle(hv(i)),o.attr({silent:!n,cursor:n?"move":"default"}),jN(["w","e","n","s","se","sw","ne","nw"],function(i){var o=e.childOfName(i),a=fv(t,i);o&&o.attr({silent:!n,invisible:!n,cursor:n?oz[a]+"-resize":null})})}function uv(t,e,i,n,o,a,r){var s=e.childOfName(i);s&&s.setShape(yv(vv(t,e,[[n,o],[n+a,o+r]])))}function hv(t){return s({strokeNoScale:!0},t.brushStyle)}function cv(t,e,i,n){var o=[KN(t,i),KN(e,n)],a=[$N(t,i),$N(e,n)];return[[o[0],a[0]],[o[1],a[1]]]}function dv(t){return ar(t.group)}function fv(t,e){if(e.length>1){e=e.split("");var i=[fv(t,e[0]),fv(t,e[1])];return("e"===i[0]||"w"===i[0])&&i.reverse(),i.join("")}var n={w:"left",e:"right",n:"top",s:"bottom"},o={left:"w",right:"e",top:"n",bottom:"s"},i=sr(n[e],dv(t));return o[i]}function pv(t,e,i,n,o,a,r){var s=n.__brushOption,l=t(s.range),u=mv(i,a,r);jN(o.split(""),function(t){var e=nz[t];l[e[0]][e[1]]+=u[e[0]]}),s.range=e(cv(l[0][0],l[1][0],l[0][1],l[1][1])),Jm(i,n),nv(i,{isEnd:!1})}function gv(t,e,i,n){var o=e.__brushOption.range,a=mv(t,i,n);jN(o,function(t){t[0]+=a[0],t[1]+=a[1]}),Jm(t,e),nv(t,{isEnd:!1})}function mv(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 vv(t,e,i){var o=ev(t,e);return o&&o!==!0?o.clipPath(i,t._transform):n(i)}function yv(t){var e=KN(t[0][0],t[1][0]),i=KN(t[0][1],t[1][1]),n=$N(t[0][0],t[1][0]),o=$N(t[0][1],t[1][1]);return{x:e,y:i,width:n-e,height:o-i}}function xv(t,e,i){if(t._brushType&&!Iv(t,e)){var n=t._zr,o=t._covers,a=tv(t,e,i);if(!t._dragging)for(var r=0;re||e>n.getWidth()||0>i||i>n.getHeight()}function Tv(t){return{createCover:function(e,i){return rv(YN(pv,function(e){var i=[e,[0,100]];return t&&i.reverse(),i},function(e){return e[t]}),e,i,[["w","e"],["n","s"]][t])},getCreatingRange:function(e){var i=av(e),n=KN(i[0][t],i[1][t]),o=$N(i[0][t],i[1][t]);return[n,o]},updateCoverShape:function(e,i,n,o){var a,r=ev(e,i);if(r!==!0&&r.getLinearBrushOtherExtent)a=r.getLinearBrushOtherExtent(t,e._transform);else{var s=e._zr;a=[0,[s.getWidth(),s.getHeight()][1-t]]}var l=[n,a];t&&l.reverse(),sv(e,i,l,o)},updateCommon:lv,contain:wv}}function Av(t){return t=Lv(t),function(e){return ur(e,t)}}function Dv(t,e){return t=Lv(t),function(i){var n=null!=e?e:i,o=n?t.width:t.height,a=n?t.x:t.y;return[a,a+(o||0)]}}function Cv(t,e,i){return t=Lv(t),function(n,o){return t.contain(o[0],o[1])&&!yp(n,e,i)}}function Lv(t){return Ti.create(t)}function kv(t,e,i){return i&&"axisAreaSelect"===i.type&&e.findComponents({mainType:"parallelAxis",query:i})[0]===t}function Pv(t){var e=t.axis;return p(t.activeIntervals,function(t){return{brushType:"lineX",panelId:"pl",range:[e.dataToCoord(t[0],!0),e.dataToCoord(t[1],!0)]} +})}function Ov(t,e){return e.getComponent("parallel",t.get("parallelIndex"))}function Ev(t,e){var i=t._model;return i.get("axisExpandable")&&i.get("axisExpandTriggerOn")===e}function Nv(t,e){if(!t.encodeDefine){var i=e.ecModel.getComponent("parallel",e.get("parallelIndex"));if(i){var n=t.encodeDefine=B();f(i.dimensions,function(t){var e=zv(t);n.set(t,e)})}}}function zv(t){return+t.replace("dim","")}function Rv(t,e,i){var n=t.model,o=t.getRect(),a=new XT({shape:{x:o.x,y:o.y,width:o.width,height:o.height}}),r="horizontal"===n.get("layout")?"width":"height";return a.setShape(r,0),or(a,{shape:{width:o.width,height:o.height}},e,i),a}function Bv(t,e,i,n){for(var o=[],a=0;ar;r++)o[r]=r;return"function"==typeof e?o.sort(e):"none"!==e&&o.sort(function(t,e){return a?n[t]-n[e]:n[e]-n[t]}),o}function jv(t){t.each(function(e){var i,n,o,a,r=t.getItemModel(e),s=r.getModel("label"),l=s.get("position"),u=r.get("orient"),h=r.getModel("labelLine"),c=t.getItemLayout(e),d=c.points,f="inner"===l||"inside"===l||"center"===l||"insideLeft"===l||"insideRight"===l;if(f)"insideLeft"===l?(n=(d[0][0]+d[3][0])/2+5,o=(d[0][1]+d[3][1])/2,i="left"):"insideRight"===l?(n=(d[1][0]+d[2][0])/2-5,o=(d[1][1]+d[2][1])/2,i="right"):(n=(d[0][0]+d[1][0]+d[2][0]+d[3][0])/4,o=(d[0][1]+d[1][1]+d[2][1]+d[3][1])/4,i="center"),a=[[n,o],[n,o]];else{var p,g,m,v,y=h.get("length");eS&&("vertical"===u&&["top","bottom"].indexOf(l)>-1&&(l="left",console.warn("Position error: Funnel chart on vertical orient dose not support top and bottom.")),"horizontal"===u&&["left","right"].indexOf(l)>-1&&(l="bottom",console.warn("Position error: Funnel chart on horizontal orient dose not support left and right."))),"left"===l?(p=(d[3][0]+d[0][0])/2,g=(d[3][1]+d[0][1])/2,m=p-y,n=m-5,i="right"):"right"===l?(p=(d[1][0]+d[2][0])/2,g=(d[1][1]+d[2][1])/2,m=p+y,n=m+5,i="left"):"top"===l?(p=(d[3][0]+d[0][0])/2,g=(d[3][1]+d[0][1])/2,v=g-y,o=v-5,i="center"):"bottom"===l?(p=(d[1][0]+d[2][0])/2,g=(d[1][1]+d[2][1])/2,v=g+y,o=v+5,i="center"):"rightTop"===l?(p="horizontal"===u?d[3][0]:d[1][0],g="horizontal"===u?d[3][1]:d[1][1],"horizontal"===u?(v=g-y,o=v-5,i="center"):(m=p+y,n=m+5,i="top")):"rightBottom"===l?(p=d[2][0],g=d[2][1],"horizontal"===u?(v=g+y,o=v+5,i="center"):(m=p+y,n=m+5,i="bottom")):"leftTop"===l?(p=d[0][0],g="horizontal"===u?d[0][1]:d[1][1],"horizontal"===u?(v=g-y,o=v-5,i="center"):(m=p-y,n=m-5,i="right")):"leftBottom"===l?(p="horizontal"===u?d[1][0]:d[3][0],g="horizontal"===u?d[1][1]:d[2][1],"horizontal"===u?(v=g+y,o=v+5,i="center"):(m=p-y,n=m-5,i="right")):(p=(d[1][0]+d[2][0])/2,g=(d[1][1]+d[2][1])/2,"horizontal"===u?(v=g+y,o=v+5,i="center"):(m=p+y,n=m+5,i="left")),"horizontal"===u?(m=p,n=m):(v=g,o=v),a=[[p,g],[m,v]]}c.label={linePoints:a,x:n,y:o,verticalAlign:"middle",textAlign:i,inside:f}})}function qv(t,e){return t.getVisual("opacity")||t.getModel().get(e)}function Kv(t,e,i){var n=t.getGraphicEl(),o=qv(t,e);null!=i&&(null==o&&(o=1),o*=i),n.downplay&&n.downplay(),n.traverse(function(t){"group"!==t.type&&t.setStyle("opacity",o)})}function $v(t,e){var i=qv(t,e),n=t.getGraphicEl();n.traverse(function(t){"group"!==t.type&&t.setStyle("opacity",i)}),n.highlight&&n.highlight()}function Jv(t,e,i){var n=new XT({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return or(n,{shape:{width:t.width+20}},e,i),n}function Qv(t,e){return ts(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function ty(t,e,i,n,o,a,r,s,l){iy(t,e,i,o,a,s,l),sy(t,e,a,o,n,r,s),_y(t,s)}function ey(t){f(t,function(t){var e=yy(t.outEdges,vy),i=yy(t.inEdges,vy),n=t.getValue()||0,o=Math.max(e,i,n);t.setLayout({value:o},!0)})}function iy(t,e,i,n,o,a,r){for(var s=[],l=[],u=[],h=[],c=0,d=0,f=0;f=0;y&&v.depth>p&&(p=v.depth),m.setLayout({depth:y?v.depth:c},!0),"vertical"===a?m.setLayout({dy:i},!0):m.setLayout({dx:i},!0);for(var x=0;xc-1?p:c-1;r&&"left"!==r&&oy(t,r,a,M);var d="vertical"===a?(o-i)/M:(n-i)/M;ry(t,d,a)}function ny(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&e.depth>=0}function oy(t,e,i,n){if("right"===e){for(var o=[],a=t,r=0;a.length;){for(var s=0;s0;a--)l*=.99,cy(s,l,r),hy(s,o,i,n,r),xy(s,l,r),hy(s,o,i,n,r)}function ly(t,e){var i=[],n="vertical"===e?"y":"x",o=vo(t,function(t){return t.getLayout()[n]});return o.keys.sort(function(t,e){return t-e}),f(o.keys,function(t){i.push(o.buckets.get(t))}),i}function uy(t,e,i,n,o,a){var r=1/0;f(t,function(t){var e=t.length,s=0;f(t,function(t){s+=t.getLayout().value});var l="vertical"===a?(n-(e-1)*o)/s:(i-(e-1)*o)/s;r>l&&(r=l)}),f(t,function(t){f(t,function(t,e){var i=t.getLayout().value*r;"vertical"===a?(t.setLayout({x:e},!0),t.setLayout({dx:i},!0)):(t.setLayout({y:e},!0),t.setLayout({dy:i},!0))})}),f(e,function(t){var e=+t.getValue()*r;t.setLayout({dy:e},!0)})}function hy(t,e,i,n,o){var a="vertical"===o?"x":"y";f(t,function(t){t.sort(function(t,e){return t.getLayout()[a]-e.getLayout()[a]});for(var r,s,l,u=0,h=t.length,c="vertical"===o?"dx":"dy",d=0;h>d;d++)s=t[d],l=u-s.getLayout()[a],l>0&&(r=s.getLayout()[a]+l,"vertical"===o?s.setLayout({x:r},!0):s.setLayout({y:r},!0)),u=s.getLayout()[a]+s.getLayout()[c]+e;var f="vertical"===o?n:i;if(l=u-e-f,l>0)for(r=s.getLayout()[a]-l,"vertical"===o?s.setLayout({x:r},!0):s.setLayout({y:r},!0),u=r,d=h-2;d>=0;--d)s=t[d],l=s.getLayout()[a]+s.getLayout()[c]+e-u,l>0&&(r=s.getLayout()[a]-l,"vertical"===o?s.setLayout({x:r},!0):s.setLayout({y:r},!0)),u=s.getLayout()[a]})}function cy(t,e,i){f(t.slice().reverse(),function(t){f(t,function(t){if(t.outEdges.length){var n=yy(t.outEdges,dy,i)/yy(t.outEdges,vy,i);if(isNaN(n)){var o=t.outEdges.length;n=o?yy(t.outEdges,fy,i)/o:0}if("vertical"===i){var a=t.getLayout().x+(n-my(t,i))*e;t.setLayout({x:a},!0)}else{var r=t.getLayout().y+(n-my(t,i))*e;t.setLayout({y:r},!0)}}})})}function dy(t,e){return my(t.node2,e)*t.getValue()}function fy(t,e){return my(t.node2,e)}function py(t,e){return my(t.node1,e)*t.getValue()}function gy(t,e){return my(t.node1,e)}function my(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function vy(t){return t.getValue()}function yy(t,e,i){for(var n=0,o=t.length,a=-1;++a=f&&((r>f||d>=0&&0>s)&&(r=f,s=d,o=l,a.length=0),Rz(u,function(t){a.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:a,snapToValue:o}}function Ay(t,e,i,n){t[e.key]={value:i,payloadBatch:n}}function Dy(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=bd(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 Cy(t,e,i){var n=i.axesInfo=[];Rz(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 Ly(t,e,i,n){if(Ey(e)||!t.list.length)return void n({type:"hideTip"});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})}function ky(t,e,i){var n=i.getZr(),o="axisPointerLastHighlights",a=Vz(n)[o]||{},r=Vz(n)[o]={};Rz(t,function(t){var e=t.axisPointerModel.option;"show"===e.status&&Rz(e.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;r[e]=t})});var s=[],l=[];f(a,function(t,e){!r[e]&&l.push(t)}),f(r,function(t,e){!a[e]&&s.push(t)}),l.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:l}),s.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:s})}function Py(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 Oy(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 Ey(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function Ny(t,e,i){if(!aS.node){var n=e.getZr();Fz(n).records||(Fz(n).records={}),zy(n,e);var o=Fz(n).records[t]||(Fz(n).records[t]={});o.handler=i}}function zy(t,e){function i(i,n){t.on(i,function(i){var o=Gy(e);Wz(Fz(t).records,function(t){t&&n(t,i,o.dispatchAction)}),Ry(o.pendings,e)})}Fz(t).initialized||(Fz(t).initialized=!0,i("click",x(Vy,"click")),i("mousemove",x(Vy,"mousemove")),i("globalout",By))}function Ry(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 By(t,e,i){t.handler("leave",null,i)}function Vy(t,e,i,n){e.handler(t,i,n)}function Gy(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 Fy(t,e){if(!aS.node){var i=e.getZr(),n=(Fz(i).records||{})[t];n&&(Fz(i).records[t]=null)}}function Wy(){}function Hy(t,e,i,n){Zy(Zz(i).lastProp,n)||(Zz(i).lastProp=n,e?nr(i,n,t):(i.stopAnimation(),i.attr(n)))}function Zy(t,e){if(S(t)&&S(e)){var i=!0;return f(e,function(e,n){i=i&&Zy(t[n],e)}),!!i}return t===e}function Uy(t,e){t[e.get("label.show")?"show":"hide"]()}function Xy(t){return{position:t.position.slice(),rotation:t.rotation||0}}function Yy(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 jy(t){var e,i=t.get("type"),n=t.getModel(i+"Style");return"line"===i?(e=n.getLineStyle(),e.fill=null):"shadow"===i&&(e=n.getAreaStyle(),e.stroke=null),e}function qy(t,e,i,n,o){var a=i.get("value"),r=$y(a,e.axis,e.ecModel,i.get("seriesDataIndices"),{precision:i.get("label.precision"),formatter:i.get("label.formatter")}),s=i.getModel("label"),l=CA(s.get("padding")||0),u=s.getFont(),h=Ui(r,u),c=o.position,d=h.width+l[1]+l[3],f=h.height+l[0]+l[2],p=o.align;"right"===p&&(c[0]-=d),"center"===p&&(c[0]-=d/2);var g=o.verticalAlign;"bottom"===g&&(c[1]-=f),"middle"===g&&(c[1]-=f/2),Ky(c,d,f,n);var m=s.get("backgroundColor");m&&"auto"!==m||(m=e.get("axisLine.lineStyle.color")),t.label={shape:{x:0,y:0,width:d,height:f,r:s.get("borderRadius")},position:c.slice(),style:{text:r,textFont:u,textFill:s.getTextColor(),textPosition:"inside",textPadding:l,fill:m,stroke:s.get("borderColor")||"transparent",lineWidth:s.get("borderWidth")||0,shadowBlur:s.get("shadowBlur"),shadowColor:s.get("shadowColor"),shadowOffsetX:s.get("shadowOffsetX"),shadowOffsetY:s.get("shadowOffsetY")},z2:10}}function Ky(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 $y(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:Jh(e,t),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};f(n,function(t){var e=i.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,o=e&&e.getDataParams(n);o&&s.seriesData.push(o)}),b(r)?a=r.replace("{value}",a):w(r)&&(a=r(s))}return a}function Jy(t,e,i){var n=Oe();return Be(n,n,i.rotation),Re(n,n,i.position),rr([t.dataToCoord(e),(i.labelOffset||0)+(i.labelDirection||1)*(i.labelMargin||0)],n)}function Qy(t,e,i,n,o,a){var r=Nk.innerTextLayout(i.rotation,0,i.labelDirection);i.labelMargin=o.get("label.margin"),qy(e,n,o,a,{position:Jy(n.axis,t,i),align:r.textAlign,verticalAlign:r.textVerticalAlign})}function tx(t,e,i){return i=i||0,{x1:t[i],y1:t[1-i],x2:e[i],y2:e[1-i]}}function ex(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}function ix(t,e,i,n,o,a){return{cx:t,cy:e,r0:i,r:n,startAngle:o,endAngle:a,clockwise:!0}}function nx(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}function ox(t){return"x"===t.dim?0:1}function ax(t){return t.isHorizontal()?0:1}function rx(t,e){var i=t.getRect();return[i[qz[e]],i[qz[e]]+i[Kz[e]]]}function sx(t,e,i){var n=new XT({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return or(n,{shape:{width:t.width+20,height:t.height+20}},e,i),n}function lx(t,e,i){if(t.count())for(var n,o=e.coordinateSystem,a=e.getLayerSeries(),r=t.mapDimension("single"),s=t.mapDimension("value"),l=p(a,function(e){return p(e.indices,function(e){var i=o.dataToPoint(t.get(r,e));return i[1]=t.get(s,e),i})}),u=ux(l),h=u.y0,c=i/u.max,d=a.length,f=a[0].indices.length,g=0;f>g;++g){n=h[g]*c,t.setItemLayout(a[0].indices[g],{layerIndex:0,x:l[0][g][0],y0:n,y:l[0][g][1]*c});for(var m=1;d>m;++m)n+=l[m-1][g][1]*c,t.setItemLayout(a[m].indices[g],{layerIndex:m,x:l[m][g][0],y0:n,y:l[m][g][1]*c})}}function ux(t){for(var e,i=t.length,n=t[0].length,o=[],a=[],r=0,s={},l=0;n>l;++l){for(var u=0,e=0;i>u;++u)e+=t[u][l][1];e>r&&(r=e),o.push(e)}for(var h=0;n>h;++h)a[h]=(r-o[h])/2;r=0;for(var c=0;n>c;++c){var d=o[c]+a[c];d>r&&(r=d)}return s.y0=a,s.max=r,s}function hx(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"),u=(l||0)*Math.PI/180||0,h=i.get("symbolPatternSize")||2,c=i.isAnimationEnabled(),d={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:h,rotation:u,animationModel:c?i:null,hoverAnimation:c&&i.get("hoverAnimation"),z2:i.getShallow("z",!0)||0};cx(i,a,o,n,d),fx(t,e,o,a,r,d.boundingLength,d.pxSign,h,n,d),px(i,d.symbolScale,u,n,d);var f=d.symbolSize,p=i.get("symbolOffset");return _(p)&&(p=[Mr(p[0],f[0]),Mr(p[1],f[1])]),gx(i,f,o,a,r,p,s,d.valueLineWidth,d.boundingLength,d.repeatCutLength,n,d),d}function cx(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(_(s)){var c=[dx(l,s[0])-u,dx(l,s[1])-u];c[1]0?1:0>a?-1:0}function dx(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function fx(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");_(f)?f=f.slice():(null==f&&(f="100%"),f=[f,f]),f[c.index]=Mr(f[c.index],d),f[h.index]=Mr(f[h.index],n?d:Math.abs(a)),u.symbolSize=f;var p=u.symbolScale=[f[0]/s,f[1]/s];p[h.index]*=(l.isHorizontal?-1:1)*r}function px(t,e,i,n,o){var a=t.get(oR)||0;a&&(rR.attr({scale:e.slice(),rotation:i}),rR.updateTransform(),a/=rR.getLineScale(),a*=e[n.valueDim.index]),o.valueLineWidth=a}function gx(t,e,i,n,o,a,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=D(t.get("symbolMargin"),"15%")+"",_=!1;x.lastIndexOf("!")===x.length-1&&(_=!0,x=x.slice(0,x.length-1)),x=Mr(x,e[p.index]);var w=Math.max(m+2*x,0),b=_?0:2*x,S=Vr(n),M=S?n:Ox((y+b)/w),I=y-M*m;x=I/2/(_?M:M-1),w=m+2*x,b=_?0:2*x,S||"fixed"===n||(M=h?Ox((Math.abs(h)+b)/w):0),v=M*w-b,d.repeatTimes=M,d.symbolMargin=x}var T=g*(v/2),A=d.pathPosition=[];A[f.index]=i[f.wh]/2,A[p.index]="start"===s?T:"end"===s?u-T:u/2,a&&(A[0]+=a[0],A[1]+=a[1]);var C=d.bundlePosition=[];C[f.index]=i[f.xy],C[p.index]=i[p.xy];var L=d.barRectShape=r({},i);L[p.wh]=g*Math.max(Math.abs(i[p.wh]),Math.abs(A[p.index]+T)),L[f.wh]=i[f.wh];var k=d.clipShape={};k[f.xy]=-i[f.xy],k[f.wh]=c.ecSize[f.wh],k[p.xy]=0,k[p.wh]=i[p.wh]}function mx(t){var e=t.symbolPatternSize,i=oc(t.symbolType,-e/2,-e/2,e,e,t.color);return i.attr({culling:!0}),"image"!==i.type&&i.setStyle({strokeNoScale:!0}),i}function vx(t,e,i,n){function o(t){var e=h.slice(),n=i.pxSign,o=t;return("start"===i.symbolRepeatDirection?n>0:0>n)&&(o=d-1-t),e[c.index]=p*(o-d/2+.5)+h[c.index],{position:e,scale:i.symbolScale.slice(),rotation:i.rotation}}function a(){Lx(t,function(t){t.trigger("emphasis")})}function r(){Lx(t,function(t){t.trigger("normal")})}var s=t.__pictorialBundle,l=i.symbolSize,u=i.valueLineWidth,h=i.pathPosition,c=e.valueDim,d=i.repeatTimes||0,f=0,p=l[e.valueDim.index]+u+2*i.symbolMargin;for(Lx(t,function(t){t.__pictorialAnimationIndex=f,t.__pictorialRepeatTimes=d,d>f?kx(t,null,o(f),i,n):kx(t,null,{scale:[0,0]},i,n,function(){s.remove(t)}),Ix(t,i),f++});d>f;f++){var g=mx(i);g.__pictorialAnimationIndex=f,g.__pictorialRepeatTimes=d,s.add(g);var m=o(f);kx(g,{position:m.position,scale:[0,0]},{scale:m.scale,rotation:m.rotation},i,n),g.on("mouseover",a).on("mouseout",r),Ix(g,i)}}function yx(t,e,i,n){function o(){this.trigger("emphasis")}function a(){this.trigger("normal")}var r=t.__pictorialBundle,s=t.__pictorialMainPath;s?kx(s,null,{position:i.pathPosition.slice(),scale:i.symbolScale.slice(),rotation:i.rotation},i,n):(s=t.__pictorialMainPath=mx(i),r.add(s),kx(s,{position:i.pathPosition.slice(),scale:[0,0],rotation:i.rotation},{scale:i.symbolScale.slice()},i,n),s.on("mouseover",o).on("mouseout",a)),Ix(s,i)}function xx(t,e,i){var n=r({},e.barRectShape),o=t.__pictorialBarRect;o?kx(o,null,{shape:n},e,i):(o=t.__pictorialBarRect=new XT({z2:2,shape:n,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),t.add(o))}function _x(t,e,i,n){if(i.symbolClip){var o=t.__pictorialClipPath,a=r({},i.clipShape),s=e.valueDim,l=i.animationModel,u=i.dataIndex;if(o)nr(o,{shape:a},l,u);else{a[s.wh]=0,o=new XT({shape:a}),t.__pictorialBundle.setClipPath(o),t.__pictorialClipPath=o;var h={};h[s.wh]=i.clipShape[s.wh],vA[n?"updateProps":"initProps"](o,{shape:h},l,u)}}}function bx(t,e){var i=t.getItemModel(e);return i.getAnimationDelayParams=Sx,i.isAnimationEnabled=Mx,i}function Sx(t){return{index:t.__pictorialAnimationIndex,count:t.__pictorialRepeatTimes}}function Mx(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function Ix(t,e){t.off("emphasis").off("normal");var i=e.symbolScale.slice();e.hoverAnimation&&t.on("emphasis",function(){this.animateTo({scale:[1.1*i[0],1.1*i[1]]},400,"elasticOut")}).on("normal",function(){this.animateTo({scale:i.slice()},400,"elasticOut")})}function Tx(t,e,i,n){var o=new xM,a=new xM;return o.add(a),o.__pictorialBundle=a,a.attr("position",i.bundlePosition.slice()),i.symbolRepeat?vx(o,e,i):yx(o,e,i),xx(o,i,n),_x(o,e,i,n),o.__pictorialShapeStr=Cx(t,i),o.__pictorialSymbolMeta=i,o}function Ax(t,e,i){var n=i.animationModel,o=i.dataIndex,a=t.__pictorialBundle;nr(a,{position:i.bundlePosition.slice()},n,o),i.symbolRepeat?vx(t,e,i,!0):yx(t,e,i,!0),xx(t,i,!0),_x(t,e,i,!0)}function Dx(t,e,i,n){var o=n.__pictorialBarRect;o&&(o.style.text=null);var a=[];Lx(n,function(t){a.push(t)}),n.__pictorialMainPath&&a.push(n.__pictorialMainPath),n.__pictorialClipPath&&(i=null),f(a,function(t){nr(t,{scale:[0,0]},i,e,function(){n.parent&&n.parent.remove(n)})}),t.setItemGraphicEl(e,null)}function Cx(t,e){return[t.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function Lx(t,e,i){f(t.__pictorialBundle.children(),function(n){n!==t.__pictorialBarRect&&e.call(i,n)})}function kx(t,e,i,n,o,a){e&&t.attr(e),n.symbolClip&&!o?i&&t.attr(i):i&&vA[o?"updateProps":"initProps"](t,i,n.animationModel,n.dataIndex,a)}function Px(t,e,i){var n=i.color,o=i.dataIndex,a=i.itemModel,r=a.getModel("itemStyle").getItemStyle(["color"]),l=a.getModel("emphasis.itemStyle").getItemStyle(),u=a.getShallow("cursor");Lx(t,function(t){t.setColor(n),t.setStyle(s({fill:n,opacity:i.opacity},r)),Fa(t,l),u&&(t.cursor=u),t.z2=i.z2});var h={},c=e.valueDim.posDesc[+(i.boundingLength>0)],d=t.__pictorialBarRect;Gc(d.style,h,a,n,e.seriesModel,o,c),Fa(d,h)}function Ox(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}function Ex(t,e){return e=e||[0,0],p(["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 Nx(t,e){return e=e||[0,0],p([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 zx(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 Rx(t,e){return p(["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 Bx(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=Jx(n);e=ba(a,null,o,n.layout||"center"),e.__customPathData=a}else if("image"===i)e=new Dn({}),e.__customImagePath=t.style.image;else if("text"===i)e=new ET({}),e.__customText=t.style.text;else if("group"===i)e=new xM;else{if("compoundPath"===i)throw new Error('"compoundPath" is not supported yet.');var r=wa(i);eS&&O(r,'graphic type "'+i+'" can not be found.'),e=new r}return e.__customGraphicType=i,e.name=t.name,e}function Vx(t,e,i,o,a,r,s){var l={},u=i.style||{};if(i.shape&&(l.shape=n(i.shape)),i.position&&(l.position=i.position.slice()),i.scale&&(l.scale=i.scale.slice()),i.origin&&(l.origin=i.origin.slice()),i.rotation&&(l.rotation=i.rotation),"image"===t.type&&i.style){var h=l.style={};f(["x","y","width","height"],function(e){Gx(e,h,u,t.style,r)})}if("text"===t.type&&i.style){var h=l.style={};f(["x","y"],function(e){Gx(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),or(t,{style:{opacity:c}},o,e)}r?t.attr(l):nr(t,l,o,e),i.hasOwnProperty("z2")&&t.attr("z2",i.z2||0),i.hasOwnProperty("silent")&&t.attr("silent",i.silent),i.hasOwnProperty("invisible")&&t.attr("invisible",i.invisible),i.hasOwnProperty("ignore")&&t.attr("ignore",i.ignore),i.hasOwnProperty("info")&&t.attr("info",i.info);var d=i.styleEmphasis;Na(t,d),s&&Wa(t,d!==!1)}function Gx(t,e,i,n,o){null==i[t]||o||(e[t]=i[t],i[t]=n[t])}function Fx(t,e,i,n){function o(t){null==t&&(t=m),S&&(v=e.getItemModel(t),y=v.getModel(gR),x=v.getModel(mR),_=e.getItemVisual(t,"color"),S=!1)}function a(t,i){return null==i&&(i=m),e.get(e.getDimension(t||0),i)}function r(i,n){null==n&&(n=m),o(n);var a=v.getModel(fR).getItemStyle();null!=_&&(a.fill=_);var r=e.getItemVisual(n,"opacity");null!=r&&(a.opacity=r);var s=i?qx(i,y):y;return Ya(a,s,null,{autoColor:_,isRectText:!0}),a.text=s.getShallow("show")?C(t.getFormattedLabel(n,"normal"),Vc(e,n)):null,i&&Kx(a,i),a}function l(i,n){null==n&&(n=m),o(n);var a=v.getModel(pR).getItemStyle(),r=i?qx(i,x):x;return Ya(a,r,null,{isRectText:!0},!0),a.text=r.getShallow("show")?L(t.getFormattedLabel(n,"emphasis"),t.getFormattedLabel(n,"normal"),Vc(e,n)):null,i&&Kx(a,i),a}function u(t,i){return null==i&&(i=m),e.getItemVisual(i,t)}function h(t){if(p.getBaseAxis){var e=p.getBaseAxis();return Nh(s({axis:e},t),n)}}function c(){return i.getCurrentSeriesIndices()}function d(t){return er(t,i)}var f=t.get("renderItem"),p=t.coordinateSystem,g={};p&&(eS&&(O(f,"series.render is required."),O(p.prepareCustoms||yR[p.type],"This coordSys does not support custom series.")),g=p.prepareCustoms?p.prepareCustoms():yR[p.type](p));var m,v,y,x,_,w=s({getWidth:n.getWidth,getHeight:n.getHeight,getZr:n.getZr,getDevicePixelRatio:n.getDevicePixelRatio,value:a,style:r,styleEmphasis:l,visual:u,barLayout:h,currentSeriesIndices:c,font:d},g.api||{}),b={context:{},seriesId:t.id,seriesName:t.name,seriesIndex:t.seriesIndex,coordSys:g.coordSys,dataInsideLength:e.count(),encode:Wx(t.getData())},S=!0;return function(t,i){return m=t,S=!0,f&&f(s({dataIndexInside:t,dataIndex:e.getRawIndex(t),actionType:i?i.type:null},b),w)}}function Wx(t){var e={};return f(t.dimensions,function(i,n){var o=t.getDimensionInfo(i);if(!o.isExtraCoord){var a=o.coordDim,r=e[a]=e[a]||[];r[o.coordDimIndex]=n}}),e}function Hx(t,e,i,n,o,a){return t=Zx(t,e,i,n,o,a,!0),t&&a.setItemGraphicEl(e,t),t}function Zx(t,e,i,n,o,a,r){var s=!i;i=i||{};var l=i.type,u=i.shape,h=i.style;if(t&&(s||null!=l&&l!==t.__customGraphicType||"path"===l&&Qx(u)&&Jx(u)!==t.__customPathData||"image"===l&&t_(h,"image")&&h.image!==t.__customImagePath||"text"===l&&t_(u,"text")&&h.text!==t.__customText)&&(o.remove(t),t=null),!s){var c=!t;return!t&&(t=Bx(i)),Vx(t,e,i,n,a,c,r),"group"===l&&Ux(t,e,i,n,a),o.add(t),t}}function Ux(t,e,i,n,o){var a=i.children,r=a?a.length:0,s=i.$mergeChildren,l="byName"===s||i.diffChildrenByName,u=s===!1;if(r||l||u){if(l)return void Xx({oldChildren:t.children()||[],newChildren:a||[],dataIndex:e,animatableModel:n,group:t,data:o});u&&t.removeAll();for(var h=0;r>h;h++)a[h]&&Zx(t.childAt(h),e,a[h],n,t,o);eS&&O(!u||t.childCount()===h,"MUST NOT contain empty item in children array when `group.$mergeChildren` is `false`.")}}function Xx(t){new Xu(t.oldChildren,t.newChildren,Yx,Yx,t).add(jx).update(jx).remove($x).execute()}function Yx(t,e){var i=t&&t.name;return null!=i?i:vR+e}function jx(t,e){var i=this.context,n=null!=t?i.newChildren[t]:null,o=null!=e?i.oldChildren[e]:null;Zx(o,i.dataIndex,n,i.animatableModel,i.group,i.data)}function qx(t,e){var i=new mr({},e);return f(dR,function(e,n){t.hasOwnProperty(e)&&(i.option[n]=t[e])}),i}function Kx(t,e){for(var i in e)(e.hasOwnProperty(i)||!dR.hasOwnProperty(i))&&(t[i]=e[i])}function $x(t){var e=this.context,i=e.oldChildren[t];i&&e.group.remove(i)}function Jx(t){return t&&(t.pathData||t.d)}function Qx(t){return t&&(t.hasOwnProperty("pathData")||t.hasOwnProperty("d"))}function t_(t,e){return t&&t.hasOwnProperty(e)}function e_(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function i_(t,e){return e.dim+t.model.componentIndex}function n_(t,e){var i={},n=o_(m(e.getSeriesByType(t),function(t){return!e.isSeriesFiltered(t)&&t.coordinateSystem&&"polar"===t.coordinateSystem.type}));e.eachSeriesByType(t,function(t){if("polar"===t.coordinateSystem.type){var e=t.getData(),o=t.coordinateSystem,a=o.getBaseAxis(),r=i_(o,a),s=e_(t),l=n[r][s],u=l.offset,h=l.width,c=o.getOtherAxis(a),d=t.coordinateSystem.cx,f=t.coordinateSystem.cy,p=t.get("barMinHeight")||0,g=t.get("barMinAngle")||0;i[s]=i[s]||[];for(var m=e.mapDimension(c.dim),v=e.mapDimension(a.dim),y=_h(e,m),x="radius"!==a.dim||!t.get("roundCap",!0),_="radius"===c.dim?c.dataToRadius(0):c.dataToAngle(0),w=0,b=e.count();b>w;w++){var S=e.get(m,w),M=e.get(v,w),I=S>=0?"p":"n",T=_; +y&&(i[s][M]||(i[s][M]={p:_,n:_}),T=i[s][M][I]);var A,D,C,L;if("radius"===c.dim){var k=c.dataToRadius(S)-_,P=a.dataToAngle(M);Math.abs(k)k?-1:1)*p),A=T,D=T+k,C=P-u,L=C-h,y&&(i[s][M][I]=D)}else{var O=c.dataToAngle(S,x)-_,E=a.dataToRadius(M);Math.abs(O)O?-1:1)*g),A=E+u,D=A+h,C=T,L=T+O,y&&(i[s][M][I]=L)}e.setItemLayout(w,{cx:d,cy:f,r0:A,r:D,startAngle:-C*Math.PI/180,endAngle:-L*Math.PI/180})}}},this)}function o_(t){var e={};f(t,function(t){var i=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=i_(n,o),r=o.getExtent(),s="category"===o.type?o.getBandWidth():Math.abs(r[1]-r[0])/i.count(),l=e[a]||{bandWidth:s,remainedWidth:s,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},u=l.stacks;e[a]=l;var h=e_(t);u[h]||l.autoWidthCount++,u[h]=u[h]||{width:0,maxWidth:0};var c=Mr(t.get("barWidth"),s),d=Mr(t.get("barMaxWidth"),s),f=t.get("barGap"),p=t.get("barCategoryGap");c&&!u[h].width&&(c=Math.min(l.remainedWidth,c),u[h].width=c,l.remainedWidth-=c),d&&(u[h].maxWidth=d),null!=f&&(l.gap=f),null!=p&&(l.categoryGap=p)});var i={};return f(e,function(t,e){i[e]={};var n=t.stacks,o=t.bandWidth,a=Mr(t.categoryGap,o),r=Mr(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-a)/(l+(l-1)*r);u=Math.max(u,0),f(n,function(t){var e=t.maxWidth;e&&u>e&&(e=Math.min(e,s),t.width&&(e=Math.min(e,t.width)),s-=e,t.width=e,l--)}),u=(s-a)/(l+(l-1)*r),u=Math.max(u,0);var h,c=0;f(n,function(t){t.width||(t.width=u),h=t,c+=t.width*(1+r)}),h&&(c-=h.width*r);var d=-c/2;f(n,function(t,n){i[e][n]=i[e][n]||{offset:d,width:t.width},d+=t.width*(1+r)})}),i}function a_(t,e){sk.call(this,"radius",t,e),this.type="category"}function r_(t,e){e=e||[0,360],sk.call(this,"angle",t,e),this.type="category"}function s_(t,e){return e.type||(e.data?"category":"value")}function l_(t,e,i){var n=e.get("center"),o=i.getWidth(),a=i.getHeight();t.cx=Mr(n[0],o),t.cy=Mr(n[1],a);var r=t.getRadiusAxis(),s=Math.min(o,a)/2,l=e.get("radius");null==l?l=[0,"100%"]:_(l)||(l=[0,l]),l=[Mr(l[0],s),Mr(l[1],s)],r.inverse?r.setExtent(l[1],l[0]):r.setExtent(l[0],l[1])}function u_(t){var e=this,i=e.getAngleAxis(),n=e.getRadiusAxis();if(i.scale.setExtent(1/0,-1/0),n.scale.setExtent(1/0,-1/0),t.eachSeries(function(t){if(t.coordinateSystem===e){var o=t.getData();f(o.mapDimension("radius",!0),function(t){n.scale.unionExtentFromData(o,wh(o,t))}),f(o.mapDimension("angle",!0),function(t){i.scale.unionExtentFromData(o,wh(o,t))})}}),jh(i.scale,i.model),jh(n.scale,n.model),"category"===i.type&&!i.onBand){var o=i.getExtent(),a=360/i.scale.count();i.inverse?o[1]+=a:o[1]-=a,i.setExtent(o[0],o[1])}}function h_(t,e){if(t.type=e.get("type"),t.scale=qh(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),"angleAxis"===e.mainType){t.inverse^=e.get("clockwise");var i=e.get("startAngle");t.setExtent(i,i+(t.inverse?-360:360))}e.axis=t,t.model=e}function c_(t,e,i){e[1]>e[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 d_(t){var e=t.getRadiusAxis();return e.inverse?0:1}function f_(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 p_(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 g_(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=Oe();Be(d,d,s),Re(d,d,[n.cx,n.cy]),l=rr([r,-o],d);var f=e.getModel("axisLabel").get("rotate")||0,p=Nk.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 m_(t,e){e.update="updateView",ku(e,function(e,i){var n={};return i.eachComponent({mainType:"geo",query:e},function(i){i[t](e.name);var o=i.coordinateSystem;f(o.regions,function(t){n[t.name]=i.isSelected(t.name)||!1})}),{selected:n,name:e.name}})}function v_(t){this._model=t}function y_(t,e,i,n){var o=i.calendarModel,a=i.seriesModel,r=o?o.coordinateSystem:a?a.coordinateSystem:null;return r===this?r[t](n):null}function x_(t,e){var i=t.cellSize;_(i)?1===i.length&&(i[1]=i[0]):i=t.cellSize=[i,i];var n=p([0,1],function(t){return is(e,t)&&(i[t]="auto"),null!=i[t]&&"auto"!==i[t]});ns(t,e,{type:"box",ignoreSize:n})}function __(t,e,i){var n,o={},a="toggleSelected"===t;return i.eachComponent("legend",function(i){a&&null!=n?i[n?"select":"unSelect"](e.name):"allSelect"===t||"inverseSelect"===t?i[t]():(i[t](e.name),n=i.isSelected(e.name));var r=i.getData();f(r,function(t){var e=t.get("name");if("\n"!==e&&""!==e){var n=i.isSelected(e);o[e]=o.hasOwnProperty(e)?o[e]&&n:n}})}),"allSelect"===t||"inverseSelect"===t?{selected:o}:{name:e.name,selected:o}}function w_(t,e,i){var n=e.getBoxLayoutParams(),o=e.get("padding"),a={width:i.getWidth(),height:i.getHeight()},r=ts(n,a,o);VA(e.get("orient"),t,e.get("itemGap"),r.width,r.height),es(t,n,a,o)}function b_(t,e){var i=CA(e.get("padding")),n=e.getItemStyle(["color","opacity"]);n.fill=e.get("backgroundColor");var t=new XT({shape:{x:t.x-i[3],y:t.y-i[0],width:t.width+i[1]+i[3],height:t.height+i[0]+i[2],r:e.get("borderRadius")},style:n,silent:!0,z2:-1});return t}function S_(t,e,i,n,o,a){var r;return"line"!==e&&e.indexOf("empty")<0?(r=i.getItemStyle(),t.style.stroke=n,a||(r.stroke=o)):r=i.getItemStyle(["borderWidth","borderColor"]),t.setStyle(r)}function M_(t,e,i,n){T_(t,e,i,n),i.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),I_(t,e,i,n)}function I_(t,e,i,n){var o=i.getZr().storage.getDisplayList()[0];o&&o.useHoverLayer||i.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:n})}function T_(t,e,i,n){var o=i.getZr().storage.getDisplayList()[0];o&&o.useHoverLayer||i.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:n})}function A_(t,e,i){var n=t.getOrient(),o=[1,1];o[n.index]=0,ns(e,i,{type:"box",ignoreSize:o})}function D_(t){var e="cubic-bezier(0.23, 1, 0.32, 1)",i="left "+t+"s "+e+",top "+t+"s "+e;return p(qR,function(t){return t+"transition:"+i}).join(";")}function C_(t){var e=[],i=t.get("fontSize"),n=t.getTextColor();n&&e.push("color:"+n),e.push("font:"+t.getFont());var o=t.get("lineHeight");null==o&&(o=Math.round(3*i/2)),i&&e.push("line-height:"+o+"px");var a=t.get("textShadowColor"),r=t.get("textShadowBlur")||0,s=t.get("textShadowOffsetX")||0,l=t.get("textShadowOffsetY")||0;return r&&e.push("text-shadow:"+s+"px "+l+"px "+r+"px "+a),YR(["decoration","align"],function(i){var n=t.get(i);n&&e.push("text-"+i+":"+n)}),e.join(";")}function L_(t){var e=[],i=t.get("transitionDuration"),n=t.get("backgroundColor"),o=t.getModel("textStyle"),a=t.get("padding");return i&&e.push(D_(i)),n&&(aS.canvasSupported?e.push("background-Color:"+n):(e.push("background-Color:#"+oi(n)),e.push("filter:alpha(opacity=70)"))),YR(["width","color","radius"],function(i){var n="border-"+i,o=jR(n),a=t.get(o);null!=a&&e.push(n+":"+a+("color"===i?"":"px"))}),e.push(C_(o)),null!=a&&e.push("padding:"+CA(a).join("px ")+"px"),e.join(";")+";"}function k_(t,e,i,n,o){var a=e&&e.painter;if(i){var r=a&&a.getViewportRoot();r&&pe(t,r,document.body,n,o)}else{t[0]=n,t[1]=o;var s=a&&a.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}function P_(t,e,i){if(aS.wxa)return null;var n=document.createElement("div");n.domBelongToZr=!0,this.el=n;var o=this._zr=e.getZr(),a=this._appendToBody=i&&i.appendToBody;this._styleCoord=[0,0,0,0],k_(this._styleCoord,o,a,e.getWidth()/2,e.getHeight()/2),a?document.body.appendChild(n):t.appendChild(n),this._container=t,this._show=!1,this._hideTimeout;var r=this;n.onmouseenter=function(){r._enterable&&(clearTimeout(r._hideTimeout),r._show=!0),r._inContent=!0},n.onmousemove=function(t){if(t=t||window.event,!r._enterable){var e=o.handler,i=o.painter.getViewportRoot();be(i,t,!0),e.dispatch("mousemove",t)}},n.onmouseleave=function(){r._enterable&&r._show&&r.hideLater(r._hideDelay),r._inContent=!1}}function O_(t,e,i,n){t[0]=i,t[1]=n,t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}function E_(t){var e=this._zr=t.getZr();this._styleCoord=[0,0,0,0],O_(this._styleCoord,e,t.getWidth()/2,t.getHeight()/2),this._show=!1,this._hideTimeout}function N_(t){for(var e=t.pop();t.length;){var i=t.pop();i&&(mr.isInstance(i)&&(i=i.get("tooltip",!0)),"string"==typeof i&&(i={formatter:i}),e=new mr(i,e,e.ecModel))}return e}function z_(t,e){return t.dispatchAction||y(e.dispatchAction,e)}function R_(t,e,i,n,o,a,r){var s=i.getOuterSize(),l=s.width,u=s.height;return null!=a&&(t+l+a>n?t-=l+a:t+=a),null!=r&&(e+u+r>o?e-=u+r:e+=r),[t,e]}function B_(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 V_(t,e,i){var n=i[0],o=i[1],a=5,r=0,s=0,l=e.width,u=e.height;switch(t){case"inside":r=e.x+l/2-n/2,s=e.y+u/2-o/2;break;case"top":r=e.x+l/2-n/2,s=e.y-o-a;break;case"bottom":r=e.x+l/2-n/2,s=e.y+u+a;break;case"left":r=e.x-n-a,s=e.y+u/2-o/2;break;case"right":r=e.x+l+a,s=e.y+u/2-o/2}return[r,s]}function G_(t){return"center"===t||"middle"===t}function F_(t){eo(t,"label",["show"])}function W_(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}function H_(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}function Z_(t,e,i,n,o,a){var r=[],s=_h(e,n),l=s?e.getCalculationInfo("stackResultDimension"):n,u=K_(e,l,t),h=e.indicesOfNearest(l,u)[0];r[o]=e.get(i,h),r[a]=e.get(l,h);var c=e.get(n,h),d=Ar(e.get(n,h));return d=Math.min(d,20),d>=0&&(r[a]=+r[a].toFixed(d)),[r,c]}function U_(t,e){var i=t.getData(),o=t.coordinateSystem;if(e&&!H_(e)&&!_(e.coord)&&o){var a=o.dimensions,r=X_(e,i,o,t);if(e=n(e),e.type&&rB[e.type]&&r.baseAxis&&r.valueAxis){var s=oB(a,r.baseAxis.dim),l=oB(a,r.valueAxis.dim),u=rB[e.type](i,r.baseDataDim,r.valueDataDim,s,l);e.coord=u[0],e.value=u[1]}else{for(var h=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],c=0;2>c;c++)rB[h[c]]&&(h[c]=K_(i,i.mapDimension(a[c]),h[c]));e.coord=h}}return e}function X_(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(Y_(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 Y_(t,e){var i=t.getData(),n=i.dimensions;e=i.getDimension(e);for(var o=0;on?t.coord&&t.coord[n]:t.value}function K_(t,e,i){if("average"===i){var n=0,o=0;return t.each(e,function(t){isNaN(t)||(n+=t,o++)}),n/o}return"median"===i?t.getMedian(e):t.getDataExtent(e,!0)["max"===i?1:0]}function $_(t,e,i){var n=e.coordinateSystem;t.each(function(o){var a,r=t.getItemModel(o),s=Mr(r.get("x"),i.getWidth()),l=Mr(r.get("y"),i.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)a=e.getMarkerPosition(t.getValues(t.dimensions,o));else if(n){var u=t.get(n.dimensions[0],o),h=t.get(n.dimensions[1],o);a=n.dataToPoint([u,h])}}else a=[s,l];isNaN(s)||(a[0]=s),isNaN(l)||(a[1]=l),t.setItemLayout(o,a)})}function J_(t,e,i){var n;n=t?p(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return s({name:t},i)}):[{name:"value",type:"float"}];var o=new dL(n,i),a=p(i.get("data"),x(U_,e));return t&&(a=m(a,x(j_,t))),o.initData(a,null,t?q_:function(t){return t.value}),o}function Q_(t){return!isNaN(t)&&!isFinite(t)}function tw(t,e,i,n){var o=1-t,a=n.dimensions[t];return Q_(e[o])&&Q_(i[o])&&e[t]===i[t]&&n.getAxis(a).containData(e[t])}function ew(t,e){if("cartesian2d"===t.type){var i=e[0].coord,n=e[1].coord;if(i&&n&&(tw(1,i,n,t)||tw(0,i,n,t)))return!0}return j_(t,e[0])&&j_(t,e[1])}function iw(t,e,i,n,o){var a,r=n.coordinateSystem,s=t.getItemModel(e),l=Mr(s.get("x"),o.getWidth()),u=Mr(s.get("y"),o.getHeight());if(isNaN(l)||isNaN(u)){if(n.getMarkerPosition)a=n.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=r.dimensions,c=t.get(h[0],e),d=t.get(h[1],e);a=r.dataToPoint([c,d])}if("cartesian2d"===r.type){var f=r.getAxis("x"),p=r.getAxis("y"),h=r.dimensions;Q_(t.get(h[0],e))?a[0]=f.toGlobalCoord(f.getExtent()[i?0:1]):Q_(t.get(h[1],e))&&(a[1]=p.toGlobalCoord(p.getExtent()[i?0:1]))}isNaN(l)||(a[0]=l),isNaN(u)||(a[1]=u)}else a=[l,u];t.setItemLayout(e,a)}function nw(t,e,i){var n;n=t?p(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return s({name:t},i)}):[{name:"value",type:"float"}];var o=new dL(n,i),a=new dL(n,i),r=new dL([],i),l=p(i.get("data"),x(lB,e,t,i));t&&(l=m(l,x(ew,t)));var u=t?q_:function(t){return t.value};return o.initData(p(l,function(t){return t[0]}),null,u),a.initData(p(l,function(t){return t[1]}),null,u),r.initData(p(l,function(t){return t[2]})),r.hasItemOption=!0,{from:o,to:a,line:r}}function ow(t){return!isNaN(t)&&!isFinite(t)}function aw(t,e,i){var n=1-t;return ow(e[n])&&ow(i[n])}function rw(t,e){var i=e.coord[0],n=e.coord[1];return"cartesian2d"===t.type&&i&&n&&(aw(1,i,n,t)||aw(0,i,n,t))?!0:j_(t,{coord:i,x:e.x0,y:e.y0})||j_(t,{coord:n,x:e.x1,y:e.y1})}function sw(t,e,i,n,o){var a,r=n.coordinateSystem,s=t.getItemModel(e),l=Mr(s.get(i[0]),o.getWidth()),u=Mr(s.get(i[1]),o.getHeight());if(isNaN(l)||isNaN(u)){if(n.getMarkerPosition)a=n.getMarkerPosition(t.getValues(i,e));else{var h=t.get(i[0],e),c=t.get(i[1],e),d=[h,c];r.clampData&&r.clampData(d,d),a=r.dataToPoint(d,!0)}if("cartesian2d"===r.type){var f=r.getAxis("x"),p=r.getAxis("y"),h=t.get(i[0],e),c=t.get(i[1],e);ow(h)?a[0]=f.toGlobalCoord(f.getExtent()["x0"===i[0]?0:1]):ow(c)&&(a[1]=p.toGlobalCoord(p.getExtent()["y0"===i[1]?0:1]))}isNaN(l)||(a[0]=l),isNaN(u)||(a[1]=u)}else a=[l,u];return a}function lw(t,e,i){var n,o,a=["x0","y0","x1","y1"];t?(n=p(t&&t.dimensions,function(t){var i=e.getData(),n=i.getDimensionInfo(i.mapDimension(t))||{};return s({name:t},n)}),o=new dL(p(a,function(t,e){return{name:t,type:n[e%2].type}}),i)):(n=[{name:"value",type:"float"}],o=new dL(n,i));var r=p(i.get("data"),x(uB,e,t,i));t&&(r=m(r,x(rw,t)));var l=t?function(t,e,i,n){return t.coord[Math.floor(n/2)][n%2]}:function(t){return t.value};return o.initData(r,null,l),o.hasItemOption=!0,o}function uw(t){var e=t.type,i={number:"value",time:"time"};if(i[e]&&(t.axisType=i[e],delete t.type),hw(t),cw(t,"controlPosition")){var n=t.controlStyle||(t.controlStyle={});cw(n,"position")||(n.position=t.controlPosition),"none"!==n.position||cw(n,"show")||(n.show=!1,delete n.position),delete t.controlPosition}f(t.data||[],function(t){S(t)&&!_(t)&&(!cw(t,"value")&&cw(t,"name")&&(t.value=t.name),hw(t))})}function hw(t){var e=t.itemStyle||(t.itemStyle={}),i=e.emphasis||(e.emphasis={}),n=t.label||t.label||{},o=n.normal||(n.normal={}),a={normal:1,emphasis:1};f(n,function(t,e){a[e]||cw(o,e)||(o[e]=t)}),i.label&&!cw(n,"emphasis")&&(n.emphasis=i.label,delete i.label)}function cw(t,e){return t.hasOwnProperty(e)}function dw(t,e){return ts(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}function fw(t,e,i,n){var o=n.style,a=cr(t.get(e),n||{},new Ti(i[0],i[1],i[2],i[3]));return o&&a.setStyle(o),a}function pw(t,e,i,n,a,r){var s=e.get("color");if(a)a.setColor(s),i.add(a),r&&r.onUpdate(a);else{var l=t.get("symbol");a=oc(l,-1,-1,2,2,s),a.setStyle("strokeNoScale",!0),i.add(a),r&&r.onCreate(a)}var u=e.getItemStyle(["color","symbol","symbolSize"]);a.setStyle(u),n=o({rectHover:!0,z2:100},n,!0);var h=t.get("symbolSize");h=h instanceof Array?h.slice():[+h,+h],h[0]/=2,h[1]/=2,n.scale=h;var c=t.get("symbolOffset");if(c){var d=n.position=n.position||[0,0];d[0]+=Mr(c[0],h[0]),d[1]+=Mr(c[1],h[1])}var f=t.get("symbolRotate");return n.rotation=(f||0)*Math.PI/180||0,a.attr(n),a.updateTransform(),a}function gw(t,e,i,n,o){if(!t.dragging){var a=n.getModel("checkpointStyle"),r=i.dataToCoord(n.getData().get(["value"],e));o||!a.get("animation",!0)?t.attr({position:[r,0]}):(t.stopAnimation(!0),t.animateTo({position:[r,0]},a.get("animationDuration",!0),a.get("animationEasing",!0)))}}function mw(t){return u(_B,t)>=0}function vw(t,e){t=t.slice();var i=p(t,jr);e=(e||[]).slice();var n=p(e,jr);return function(o,a){f(t,function(t,r){for(var s={name:t,capital:i[r]},l=0;l=0}function o(t,n){var o=!1;return e(function(e){f(i(t,e)||[],function(t){n.records[e.name][t]&&(o=!0)})}),o}function a(t,n){n.nodes.push(t),e(function(e){f(i(t,e)||[],function(t){n.records[e.name][t]=!0})})}return function(i){function r(t){!n(t,s)&&o(t,s)&&(a(t,s),l=!0)}var s={nodes:[],records:{}};if(e(function(t){s.records[t.name]={}}),!i)return s;a(i,s);var l;do l=!1,t(r);while(l);return s}}function xw(t,e,i){var n=[1/0,-1/0];return bB(i,function(t){var i=t.getData();i&&bB(i.mapDimension(e,!0),function(t){var e=i.getApproximateExtent(t);e[0]n[1]&&(n[1]=e[1])})}),n[1]0?0:0/0);var r=i.getMax(!0);return null!=r&&"dataMax"!==r&&"function"!=typeof r?e[1]=r:o&&(e[1]=a>0?a-1:0/0),i.get("scale",!0)||(e[0]>0&&(e[0]=0),e[1]<0&&(e[1]=0)),e}function ww(t,e){var i=t.getAxisModel(),n=t._percentWindow,o=t._valueWindow;if(n){var a=Cr(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 bw(t){var e=t._minMaxSpan={},i=t._dataZoomModel,n=t._dataExtent;bB(["min","max"],function(o){var a=i.get(o+"Span"),r=i.get(o+"ValueSpan");null!=r&&(r=t.getAxisModel().axis.scale.parse(r)),null!=r?a=Sr(n[0]+r,n,[0,100],!0):null!=a&&(r=Sr(a,[0,100],n,!0)-n[0]),e[o+"Span"]=a,e[o+"ValueSpan"]=r})}function Sw(t){var e={};return IB(["start","end","startValue","endValue","throttle"],function(i){t.hasOwnProperty(i)&&(e[i]=t[i])}),e}function Mw(t,e){var i=t._rangePropMode,n=t.get("rangeMode");IB([["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 Iw(t){var e={x:"y",y:"x",radius:"angle",angle:"radius"};return e[t]}function Tw(t){return"vertical"===t?"ns-resize":"ew-resize"}function Aw(t,e){var i=Lw(t),n=e.dataZoomId,o=e.coordId;f(i,function(t){var i=t.dataZoomInfos;i[n]&&u(e.allCoordIds,o)<0&&(delete i[n],t.count--)}),Pw(i);var a=i[o];a||(a=i[o]={coordId:o,dataZoomInfos:{},count:0},a.controller=kw(t,a),a.dispatchAction=x(Ow,t)),!a.dataZoomInfos[n]&&a.count++,a.dataZoomInfos[n]=e;var r=Ew(a.dataZoomInfos);a.controller.enable(r.controlType,r.opt),a.controller.setPointerChecker(e.containsPoint),Sl(a,"dispatchAction",e.dataZoomModel.get("throttle",!0),"fixRate")}function Dw(t,e){var i=Lw(t);f(i,function(t){t.controller.dispose();var i=t.dataZoomInfos;i[e]&&(delete i[e],t.count--)}),Pw(i)}function Cw(t){return t.type+"\x00_"+t.id}function Lw(t){var e=t.getZr();return e[WB]||(e[WB]={})}function kw(t,e){var i=new up(t.getZr());return f(["pan","zoom","scrollMove"],function(t){i.on(t,function(i){var n=[];f(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 Pw(t){f(t,function(e,i){e.count||(e.controller.dispose(),delete t[i])})}function Ow(t,e){t.dispatchAction({type:"dataZoom",batch:e})}function Ew(t){var e,i="type_",n={type_true:2,type_move:1,type_false:0,type_undefined:-1},o=!0;return f(t,function(t){var a=t.dataZoomModel,r=a.get("disabled",!0)?!1:a.get("zoomLock",!0)?"move":!0;n[i+r]>n[i+e]&&(e=r),o&=a.get("preventDefaultMouseMove",!0)}),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!o}}}function Nw(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 zN(l,r,[0,100],"all"),this._range=r,a[0]!==r[0]||a[1]!==r[1]?r:void 0}}}function zw(t){var e={};f(t,function(t){e[t]=1}),t.length=0,f(e,function(e,i){t.push(i)})}function Rw(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function Bw(t,e,i){function o(){var t=function(){};t.prototype.__hidden=t.prototype;var e=new t;return e}var a={};return qB(e,function(e){var r=a[e]=o();qB(t[e],function(t,o){if(kO.isValidType(o)){var a={type:o,visual:t};i&&i(a,e),r[o]=new kO(a),"opacity"===o&&(a=n(a),a.type="colorAlpha",r.__hidden.__alphaForOpacity=new kO(a))}})}),a}function Vw(t,e,i){var o;f(i,function(t){e.hasOwnProperty(t)&&Rw(e[t])&&(o=!0)}),o&&f(i,function(i){e.hasOwnProperty(i)&&Rw(e[i])?t[i]=n(e[i]):delete t[i]})}function Gw(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||c.visualMap!==!1)for(var d=n.call(o,t),f=e[d],p=u[d],g=0,m=p.length;m>g;g++){var v=p[g];f[v]&&f[v].applyVisual(t,r,s)}}var u={};f(t,function(t){var i=kO.prepareVisualTypes(e[t]);u[t]=i});var h;null==a?i.each(l):i.each([a],l)}function Fw(t,e,i,n){function o(t,o){function r(t){return o.getItemVisual(l,t)}function s(t,e){o.setItemVisual(l,t,e)}null!=n&&(n=o.getDimension(n));for(var l;null!=(l=t.next());){var u=o.getRawDataItem(l);if(!u||u.visualMap!==!1)for(var h=null!=n?o.get(n,l,!0):l,c=i(h),d=e[c],f=a[c],p=0,g=f.length;g>p;p++){var m=f[p];d[m]&&d[m].applyVisual(h,r,s)}}}var a={};return f(t,function(t){var i=kO.prepareVisualTypes(e[t]);a[t]=i}),{progress:o}}function Ww(t){var e=["x","y"],i=["width","height"];return{point:function(e,i,n){if(e){var o=n.range,a=e[t];return Hw(a,o)}},rect:function(n,o,a){if(n){var r=a.range,s=[n[e[t]],n[e[t]]+n[i[t]]];return s[1]=0)&&t(a,n,o)})}function Uw(t){return t[0]>t[1]&&t.reverse(),t}function Xw(t,e){return co(t,e,{includeMainTypes:eV})}function Yw(t,e,i,n){eS&&O("cartesian2d"===i.type,"lineX/lineY brush is available only in cartesian2d.");var o=i.getAxis(["x","y"][t]),a=Uw(p([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]=[0/0,0/0],{values:a,xyMinMax:r}}function jw(t,e,i,n){return[e[0]-n[t]*i[0],e[1]-n[t]*i[1]]}function qw(t,e){var i=Kw(t),n=Kw(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 Kw(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[0/0,0/0]}function $w(t){t.eachComponent({mainType:"brush"},function(e){var i=e.brushTargetManager=new Zw(e.option,t);i.setInputRanges(e.areas,t)})}function Jw(t,e,i,n,o){if(o){var a=t.getZr();if(!a[hV]){a[uV]||(a[uV]=Qw);var r=Sl(a,uV,i,e);r(t,n)}}}function Qw(t,e){if(!t.isDisposed()){var i=t.getZr();i[hV]=!0,t.dispatchAction({type:"brushSelect",batch:e}),i[hV]=!1}}function tb(t,e,i,n){for(var o=0,a=e.length;a>o;o++){var r=e[o];if(t[r.brushType](n,i,r.selectors,r))return!0}}function eb(t){var e=t.brushSelector;if(b(e)){var i=[];return f(KB,function(t,n){i[n]=function(i,n,o,a){var r=n.getItemLayout(i);return t[e](r,o,a)}}),i}if(w(e)){var n={};return f(KB,function(t,i){n[i]=e}),n}return e}function ib(t,e){var i=t.option.seriesIndex;return null!=i&&"all"!==i&&(_(i)?u(i,e)<0:e!==i)}function nb(t){var e=t.selectors={};return f(KB[t.brushType],function(i,n){e[n]=function(n){return i(n,e,t)}}),t}function ob(t){return new Ti(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}function ab(t,e){return o({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new mr(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}function rb(t,e,i,n){(!n||n.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(i)).enableBrush(t.brushOption).updateCovers(t.areas.slice())}function sb(t,e){pV[t]=e}function lb(t){return pV[t]}function ub(t,e,i){this.model=t,this.ecModel=e,this.api=i,this._brushType,this._brushMode}function hb(t,e){return t&&t.hasOwnProperty&&t.hasOwnProperty(e)}function cb(t,e,i,n){function o(t){return l[t]}function a(t,e){l[t]=e}for(var r=e.targetVisuals[n],s=kO.prepareVisualTypes(r),l={color:t.getData().getVisual("color")},u=0,h=s.length;h>u;u++){var c=s[u],d=r["opacity"===c?"__alphaForOpacity":c];d&&d.applyVisual(i,o,a)}return l.color}function db(t,e,i){if(i[0]===i[1])return i.slice();for(var n=200,o=(i[1]-i[0])/n,a=i[0],r=[],s=0;n>=s&&ac;c++)h[s[1-r][c]]=u[c],h[l[c]]=2===c?i[0]:n[l[c]];var d=[["x","width",3],["y","height",0]][r],f=ts(h,a,n.padding);return l[(f.margin[d[2]]||0)+f[d[0]]+.5*f[d[1]]<.5*a[d[1]]?0:1]}function pb(t,e){return f(t||[],function(t){null!=t.dataIndex&&(t.dataIndexInside=t.dataIndex,t.dataIndex=null),t.highlightKey="visualMap"+(e?e.componentIndex:"")}),t}function gb(t,e,i,n){return new WT({shape:{points:t},draggable:!!i,cursor:e,drift:i,onmousemove:function(t){ES(t.event)},ondragend:n})}function mb(t,e){return 0===t?[[0,0],[e,0],[e,-e]]:[[0,0],[e,0],[e,e]]}function vb(t,e,i,n){return t?[[0,-NV(e,zV(i,0))],[BV,0],[0,NV(e,zV(n-i,0))]]:[[0,0],[5,-5],[5,5]]}function yb(t,e,i){var n=RV/2,o=t.get("hoverLinkDataSize");return o&&(n=OV(o,e,i,!0)/2),n}function xb(t){var e=t.get("hoverLinkOnHandle");return!!(null==e?t.get("realtime"):e)}function _b(t){return"vertical"===t?"ns-resize":"ew-resize"}function wb(t,e){var i=t.inverse;("vertical"===t.orient?!i:i)&&e.reverse()}function bb(t){return 0===t.indexOf("my")}function Sb(t){this.model=t}function Mb(t){this.model=t}function Ib(t){var e={},i=[],n=[];return t.eachRawSeries(function(t){var o=t.coordinateSystem;if(!o||"cartesian2d"!==o.type&&"polar"!==o.type)i.push(t);else{var a=o.getBaseAxis();if("category"===a.type){var r=a.dim+"_"+a.index;e[r]||(e[r]={categoryAxis:a,valueAxis:o.getOtherAxis(a),series:[]},n.push({axisDim:a.dim,axisIndex:a.index})),e[r].series.push(t)}else i.push(t)}}),{seriesGroupByCategoryAxis:e,other:i,meta:n}}function Tb(t){var e=[];return f(t,function(t){var i=t.categoryAxis,n=t.valueAxis,o=n.dim,a=[" "].concat(p(t.series,function(t){return t.name})),r=[i.model.getCategories()];f(t.series,function(t){var e=t.getRawData();r.push(t.getRawData().mapArray(e.mapDimension(o),function(t){return t}))});for(var s=[a.join(QV)],l=0;lr;r++)n[r]=arguments[r];i.push((a?a+QV:"")+n.join(QV))}),i.join("\n")}).join("\n\n"+JV+"\n\n")}function Db(t){var e=Ib(t);return{value:m([Tb(e.seriesGroupByCategoryAxis),Ab(e.other)],function(t){return t.replace(/[\n\t\s]/g,"")}).join("\n\n"+JV+"\n\n"),meta:e.meta}}function Cb(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function Lb(t){var e=t.slice(0,t.indexOf("\n"));return e.indexOf(QV)>=0?!0:void 0}function kb(t){for(var e=t.split(/\n+/g),i=Cb(e.shift()).split(tG),n=[],o=p(i,function(t){return{name:t,data:[]}}),a=0;a=0;o--){var a=i[o];if(a[n])break}if(0>o){var r=t.queryComponents({mainType:"dataZoom",subType:"select",id:n})[0];if(r){var s=r.getPercentRange();i[0][n]={dataZoomId:n,start:s[0],end:s[1]}}}}),i.push(e)}function Rb(t){var e=Gb(t),i=e[e.length-1];e.length>1&&e.pop();var n={};return eG(i,function(t,i){for(var o=e.length-1;o>=0;o--){var t=e[o][i];if(t){n[i]=t;break}}}),n}function Bb(t){t[iG]=null}function Vb(t){return Gb(t).length}function Gb(t){var e=t[iG];return e||(e=t[iG]=[{}]),e}function Fb(t,e,i){(this._brushController=new Hm(i.getZr())).on("brush",y(this._onBrush,this)).mount(),this._isZoomActive}function Wb(t){var e={};return f(["xAxisIndex","yAxisIndex"],function(i){e[i]=t[i],null==e[i]&&(e[i]="all"),(e[i]===!1||"none"===e[i])&&(e[i]=[])}),e}function Hb(t,e){t.setIconStatus("back",Vb(e)>1?"emphasis":"normal")}function Zb(t,e,i,n,o){var a=i._isZoomActive;n&&"takeGlobalCursor"===n.type&&(a="dataZoomSelect"===n.key?n.dataZoomSelectActive:!1),i._isZoomActive=a,t.setIconStatus("zoom",a?"emphasis":"normal");var r=new Zw(Wb(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:t.getModel("brushStyle").getItemStyle()}:!1)}function Ub(t){this.model=t}function Xb(t,e,i,n){var o=i.type;eS&&O(o,"graphic type MUST be set");var a=hG.hasOwnProperty(o)?hG[o]:wa(o);eS&&O(a,"graphic type can not be found");var r=new a(i);e.add(r),n.set(t,r),r.__ecGraphicId=t}function Yb(t,e){var i=t&&t.parent;i&&("group"===t.type&&t.traverse(function(t){Yb(t,e)}),e.removeKey(t.__ecGraphicId),i.remove(t))}function jb(t){return t=r({},t),f(["id","parentId","$action","hv","bounding"].concat(RA),function(e){delete t[e]}),t}function qb(t,e){var i;return f(e,function(e){null!=t[e]&&"auto"!==t[e]&&(i=!0)}),i}function Kb(t,e){var i=t.exist;if(e.id=t.keyInfo.id,!e.type&&i&&(e.type=i.type),null==e.parentId){var n=e.parentOption;n?e.parentId=n.id:i&&(e.parentId=i.parentId)}e.parentOption=null}function $b(t,e,i){var n=r({},i),a=t[e],s=i.$action||"merge";if("merge"===s)if(a){if(eS){var l=i.type;O(!l||a.type===l,'Please set $action: "replace" to change `type`')}o(a,n,!0),ns(a,n,{ignoreSize:!0}),as(i,a)}else t[e]=n;else"replace"===s?t[e]=n:"remove"===s&&a&&(t[e]=null)}function Jb(t,e){t&&(t.hv=e.hv=[qb(e,["left","right"]),qb(e,["top","bottom"])],"group"===t.type&&(null==t.width&&(t.width=e.width=0),null==t.height&&(t.height=e.height=0)))}function Qb(t,e){var i=t.eventData;t.silent||t.ignore||i||(i=t.eventData={componentType:"graphic",componentIndex:e.componentIndex,name:t.name}),i&&(i.info=t.info)}var tS;"undefined"!=typeof window?tS=window.__DEV__:"undefined"!=typeof global&&(tS=global.__DEV__),"undefined"==typeof tS&&(tS=!0);var eS=tS,iS=2311,nS=function(){return iS++},oS={};oS="object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?{browser:{},os:{},node:!1,wxa:!0,canvasSupported:!0,svgSupported:!1,touchEventsSupported:!0,domSupported:!1}:"undefined"==typeof document&&"undefined"!=typeof self?{browser:{},os:{},node:!1,worker:!0,canvasSupported:!0,domSupported:!1}:"undefined"==typeof navigator?{browser:{},os:{},node:!0,worker:!1,canvasSupported:!0,svgSupported:!0,domSupported:!1}:e(navigator.userAgent); +var aS=oS,rS={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},sS={"[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},lS=Object.prototype.toString,uS=Array.prototype,hS=uS.forEach,cS=uS.filter,dS=uS.slice,fS=uS.map,pS=uS.reduce,gS={},mS=function(){return gS.createCanvas()};gS.createCanvas=function(){return document.createElement("canvas")};var vS,yS="__ec_primitive__";R.prototype={constructor:R,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=y(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 xS=(Object.freeze||Object)({$override:i,clone:n,merge:o,mergeAll:a,extend:r,defaults:s,createCanvas:mS,getContext:l,indexOf:u,inherits:h,mixin:c,isArrayLike:d,each:f,map:p,reduce:g,filter:m,find:v,bind:y,curry:x,isArray:_,isFunction:w,isString:b,isObject:S,isBuiltInObject:M,isTypedArray:I,isDom:T,eqNaN:A,retrieve:D,retrieve2:C,retrieve3:L,slice:k,normalizeCssArray:P,assert:O,trim:E,setAsPrimitive:N,isPrimitive:z,createHashMap:B,concatArray:V,noop:G}),_S="undefined"==typeof Float32Array?Array:Float32Array,wS=j,bS=q,SS=ee,MS=ie,IS=(Object.freeze||Object)({create:F,copy:W,clone:H,set:Z,add:U,scaleAndAdd:X,sub:Y,len:j,length:wS,lenSquare:q,lengthSquare:bS,mul:K,div:$,dot:J,scale:Q,normalize:te,distance:ee,dist:SS,distanceSquare:ie,distSquare:MS,negate:ne,lerp:oe,applyTransform:ae,min:re,max:se});le.prototype={constructor:le,_dragStart:function(t){for(var e=t.target;e&&!e.draggable;)e=e.parent;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.dispatchToElement(ue(e,t),"dragstart",t.event))},_drag:function(t){var e=this._draggingTarget;if(e){var i=t.offsetX,n=t.offsetY,o=i-this._x,a=n-this._y;this._x=i,this._y=n,e.drift(o,a,t),this.dispatchToElement(ue(e,t),"drag",t.event);var r=this.findHover(i,n,e).target,s=this._dropTarget;this._dropTarget=r,e!==r&&(s&&r!==s&&this.dispatchToElement(ue(s,t),"dragleave",t.event),r&&r!==s&&this.dispatchToElement(ue(r,t),"dragenter",t.event))}},_dragEnd:function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.dispatchToElement(ue(e,t),"dragend",t.event),this._dropTarget&&this.dispatchToElement(ue(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null}};var TS=Array.prototype.slice,AS=function(t){this._$handlers={},this._$eventProcessor=t};AS.prototype={constructor:AS,one:function(t,e,i,n){return ce(this,t,e,i,n,!0)},on:function(t,e,i,n){return ce(this,t,e,i,n,!1)},isSilent:function(t){var e=this._$handlers;return!e[t]||!e[t].length},off:function(t,e){var i=this._$handlers;if(!t)return this._$handlers={},this;if(e){if(i[t]){for(var n=[],o=0,a=i[t].length;a>o;o++)i[t][o].h!==e&&n.push(i[t][o]);i[t]=n}i[t]&&0===i[t].length&&delete i[t]}else delete i[t];return this},trigger:function(t){var e=this._$handlers[t],i=this._$eventProcessor;if(e){var n=arguments,o=n.length;o>3&&(n=TS.call(n,1));for(var a=e.length,r=0;a>r;){var s=e[r];if(i&&i.filter&&null!=s.query&&!i.filter(t,s.query))r++;else{switch(o){case 1:s.h.call(s.ctx);break;case 2:s.h.call(s.ctx,n[1]);break;case 3:s.h.call(s.ctx,n[1],n[2]);break;default:s.h.apply(s.ctx,n)}s.one?(e.splice(r,1),a--):r++}}}return i&&i.afterTrigger&&i.afterTrigger(t),this},triggerWithContext:function(t){var e=this._$handlers[t],i=this._$eventProcessor;if(e){var n=arguments,o=n.length;o>4&&(n=TS.call(n,1,n.length-1));for(var a=n[n.length-1],r=e.length,s=0;r>s;){var l=e[s];if(i&&i.filter&&null!=l.query&&!i.filter(t,l.query))s++;else{switch(o){case 1:l.h.call(a);break;case 2:l.h.call(a,n[1]);break;case 3:l.h.call(a,n[1],n[2]);break;default:l.h.apply(a,n)}l.one?(e.splice(s,1),r--):s++}}}return i&&i.afterTrigger&&i.afterTrigger(t),this}};var DS=Math.log(2),CS="___zrEVENTSAVED",LS=[],kS="undefined"!=typeof window&&!!window.addEventListener,PS=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,OS=[],ES=kS?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0},NS=function(){this._track=[]};NS.prototype={constructor:NS,recognize:function(t,e,i){return this._doTrack(t,e,i),this._recognize(t)},clear:function(){return this._track.length=0,this},_doTrack:function(t,e,i){var n=t.touches;if(n){for(var o={points:[],touches:[],target:e,event:t},a=0,r=n.length;r>a;a++){var s=n[a],l=xe(i,s,{});o.points.push([l.zrX,l.zrY]),o.touches.push(s)}this._track.push(o)}},_recognize:function(t){for(var e in zS)if(zS.hasOwnProperty(e)){var i=zS[e](this._track,t);if(i)return i}}};var zS={pinch:function(t,e){var i=t.length;if(i){var n=(t[i-1]||{}).points,o=(t[i-2]||{}).points||n;if(o&&o.length>1&&n&&n.length>1){var a=Te(n)/Te(o);!isFinite(a)&&(a=1),e.pinchScale=a;var r=Ae(n);return e.pinchX=r[0],e.pinchY=r[1],{type:"pinch",target:t[0].target,event:e}}}}},RS="silent";Le.prototype.dispose=function(){};var BS=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],VS=function(t,e,i,n){AS.call(this),this.storage=t,this.painter=e,this.painterRoot=n,i=i||new Le,this.proxy=null,this._hovered={},this._lastTouchMoment,this._lastX,this._lastY,this._gestureMgr,le.call(this),this.setHandlerProxy(i)};VS.prototype={constructor:VS,setHandlerProxy:function(t){this.proxy&&this.proxy.dispose(),t&&(f(BS,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=Pe(this,e,i),o=this._hovered,a=o.target;a&&!a.__zr&&(o=this.findHover(o.x,o.y),a=o.target);var r=this._hovered=n?{x:e,y:i}:this.findHover(e,i),s=r.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),a&&s!==a&&this.dispatchToElement(o,"mouseout",t),this.dispatchToElement(r,"mousemove",t),s&&s!==a&&this.dispatchToElement(r,"mouseover",t)},mouseout:function(t){var e=t.zrEventControl,i=t.zrIsToLocalDOM;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&!i&&this.trigger("globalout",{type:"globalout",event:t})},resize:function(){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){t=t||{};var n=t.target;if(!n||!n.silent){for(var o="on"+e,a=De(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=ke(n[a],t,e))&&(!o.topTarget&&(o.topTarget=n[a]),r!==RS)){o.target=n[a];break}}return o},processGesture:function(t,e){this._gestureMgr||(this._gestureMgr=new NS);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)}}},f(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){VS.prototype[t]=function(e){var i,n,o=e.zrX,a=e.zrY,r=Pe(this,o,a);if("mouseup"===t&&r||(i=this.findHover(o,a),n=i.target),"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||SS(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(i,t,e)}}),c(VS,AS),c(VS,le);var GS="undefined"==typeof Float32Array?Array:Float32Array,FS=(Object.freeze||Object)({create:Oe,identity:Ee,copy:Ne,mul:ze,translate:Re,rotate:Be,scale:Ve,invert:Ge,clone:Fe}),WS=Ee,HS=5e-5,ZS=function(t){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},US=ZS.prototype;US.transform=null,US.needLocalTransform=function(){return We(this.rotation)||We(this.position[0])||We(this.position[1])||We(this.scale[0]-1)||We(this.scale[1]-1)};var XS=[];US.updateTransform=function(){var t=this.parent,e=t&&t.transform,i=this.needLocalTransform(),n=this.transform;if(!i&&!e)return void(n&&WS(n));n=n||Oe(),i?this.getLocalTransform(n):WS(n),e&&(i?ze(n,t.transform,n):Ne(n,t.transform)),this.transform=n;var o=this.globalScaleRatio;if(null!=o&&1!==o){this.getGlobalScale(XS);var a=XS[0]<0?-1:1,r=XS[1]<0?-1:1,s=((XS[0]-a)*o+a)/XS[0]||0,l=((XS[1]-r)*o+r)/XS[1]||0;n[0]*=s,n[1]*=s,n[2]*=l,n[3]*=l}this.invTransform=this.invTransform||Oe(),Ge(this.invTransform,n)},US.getLocalTransform=function(t){return ZS.getLocalTransform(this,t)},US.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)},US.restoreTransform=function(t){var e=t.dpr||1;t.setTransform(e,0,0,e,0,0)};var YS=[],jS=Oe();US.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;We(e-1)&&(e=Math.sqrt(e)),We(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)}},US.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(ze(YS,t.invTransform,e),e=YS);var i=this.origin;i&&(i[0]||i[1])&&(jS[4]=i[0],jS[5]=i[1],ze(YS,e,jS),YS[4]-=i[0],YS[5]-=i[1],e=YS),this.setLocalTransform(e)}},US.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)},US.transformCoordToLocal=function(t,e){var i=[t,e],n=this.invTransform;return n&&ae(i,i,n),i},US.transformCoordToGlobal=function(t,e){var i=[t,e],n=this.transform;return n&&ae(i,i,n),i},ZS.getLocalTransform=function(t,e){e=e||[],WS(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]),Ve(e,e,n),o&&Be(e,e,o),i&&(e[4]+=i[0],e[5]+=i[1]),e[4]+=a[0],e[5]+=a[1],e};var qS={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*(-Math.pow(2,-10*(t-1))+2)},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,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n)))},elasticOut:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin(2*(t-e)*Math.PI/n)+1)},elasticInOut:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?-.5*i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n):i*Math.pow(2,-10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n)*.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?.5*t*t*((e+1)*t-e):.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-qS.bounceOut(1-t)},bounceOut:function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return.5>t?.5*qS.bounceIn(2*t):.5*qS.bounceOut(2*t-1)+.5}};He.prototype={constructor:He,step:function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),this._paused)return void(this._pausedTime+=e);var i=(t-this._startTime-this._pausedTime)/this._life;if(!(0>i)){i=Math.min(i,1);var n=this.easing,o="string"==typeof n?qS[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){t="on"+t,this[t]&&this[t](this._target,e)},pause:function(){this._paused=!0},resume:function(){this._paused=!1}};var KS=function(){this.head=null,this.tail=null,this._len=0},$S=KS.prototype;$S.insert=function(t){var e=new JS(t);return this.insertEntry(e),e},$S.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++},$S.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--},$S.len=function(){return this._len},$S.clear=function(){this.head=this.tail=null,this._len=0};var JS=function(t){this.value=t,this.next,this.prev},QS=function(t){this._list=new KS,this._map={},this._maxSize=t||10,this._lastRemovedEntry=null},tM=QS.prototype;tM.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 JS(e),r.key=t,i.insertEntry(r),n[t]=r}return o},tM.get=function(t){var e=this._map[t],i=this._list;return null!=e?(e!==i.tail&&(i.remove(e),i.insertEntry(e)),e.value):void 0},tM.clear=function(){this._list.clear(),this._map={}};var eM={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]},iM=new QS(20),nM=null,oM=ai,aM=ri,rM=(Object.freeze||Object)({parse:ti,lift:ni,toHex:oi,fastLerp:ai,fastMapToColor:oM,lerp:ri,mapToColor:aM,modifyHSL:si,modifyAlpha:li,stringify:ui}),sM=Array.prototype.slice,lM=function(t,e,i,n){this._tracks={},this._target=t,this._loop=e||!1,this._getter=i||hi,this._setter=n||ci,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};lM.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:xi(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;ti;i++)t[i].call(this)},start:function(t,e){var i,n=this,o=0,a=function(){o--,o||n._doneCallback()};for(var r in this._tracks)if(this._tracks.hasOwnProperty(r)){var s=bi(this,t,a,this._tracks[r],r,e);s&&(this._clipList.push(s),o++,this.animation&&this.animation.addClip(s),i=s)}if(i){var l=i.onframe;i.onframe=function(t,e){l(t,e);for(var i=0;il;l++)s&&(s=s[r[l]]);s&&(i=s)}else i=o;if(!i)return void fM('Property "'+t+'" is not existed in element '+o.id);var c=o.animators,d=new lM(i,e);return d.during(function(){o.dirty(n)}).done(function(){c.splice(u(c,d),1)}),c.push(d),a&&a.animation.addAnimator(d),d},stopAnimation:function(t){for(var e=this.animators,i=e.length,n=0;i>n;n++)e[n].stop(t);return e.length=0,this},animateTo:function(t,e,i,n,o,a){Si(this,t,e,i,n,o,a)},animateFrom:function(t,e,i,n,o,a){Si(this,t,e,i,n,o,a,!0)}};var gM=function(t){ZS.call(this,t),AS.call(this,t),pM.call(this,t),this.id=t.id||nS()};gM.prototype={type:"element",name:"",__zr:null,ignore:!1,clipPath:null,isGroup:!1,drift:function(t,e){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.dirty(!1)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(){},attrKV:function(t,e){if("position"===t||"scale"===t||"origin"===t){if(e){var i=this[t];i||(i=this[t]=[]),i[0]=e[0],i[1]=e[1]}}else this[t]=e},hide:function(){this.ignore=!0,this.__zr&&this.__zr.refresh()},show:function(){this.ignore=!1,this.__zr&&this.__zr.refresh()},attr:function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(S(t))for(var i in t)t.hasOwnProperty(i)&&this.attrKV(i,t[i]);return this.dirty(!1),this},setClipPath:function(t){var e=this.__zr;e&&t.addSelfToZr(e),this.clipPath&&this.clipPath!==t&&this.removeClipPath(),this.clipPath=t,t.__zr=e,t.__clipTarget=this,this.dirty(!1)},removeClipPath:function(){var t=this.clipPath;t&&(t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__clipTarget=null,this.clipPath=null,this.dirty(!1))},addSelfToZr:function(t){this.__zr=t;var e=this.animators;if(e)for(var i=0;in||i>s||l>a||o>u)},contain:function(t,e){var i=this;return t>=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new Ti(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}}},Ti.create=function(t){return new Ti(t.x,t.y,t.width,t.height)};var xM=function(t){t=t||{},gM.call(this,t);for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};xM.prototype={constructor:xM,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 xM&&t.addChildrenToStorage(e)),i&&i.refresh()},remove:function(t){var e=this.__zr,i=this.__storage,n=this._children,o=u(n,t);return 0>o?this:(n.splice(o,1),t.parent=null,i&&(i.delFromStorage(t),t instanceof xM&&t.delChildrenFromStorage(i)),e&&e.refresh(),this)},removeAll:function(){var t,e,i=this._children,n=this.__storage;for(e=0;en;n++)this._updateAndAddDisplayable(e[n],null,t);i.length=this._displayListLen,aS.canvasSupported&&Ei(i,Ni)},_updateAndAddDisplayable:function(t,e,i){if(!t.ignore||i){t.beforeUpdate(),t.__dirty&&t.update(),t.afterUpdate();var n=t.clipPath;if(n){e=e?e.slice():[];for(var o=n,a=t;o;)o.parent=a,o.updateTransform(),e.push(o),a=o,o=o.clipPath}if(t.isGroup){for(var r=t._children,s=0;se;e++)this.delRoot(t[e]);else{var o=u(this._roots,t);o>=0&&(this.delFromStorage(t),this._roots.splice(o,1),t instanceof xM&&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:Ni};var SM={shadowBlur:1,shadowOffsetX:1,shadowOffsetY:1,textShadowBlur:1,textShadowOffsetX:1,textShadowOffsetY:1,textBoxShadowBlur:1,textBoxShadowOffsetX:1,textBoxShadowOffsetY:1},MM=function(t,e,i){return SM.hasOwnProperty(e)?i*=t.dpr:i},IM={NONE:0,STYLE_BIND:1,PLAIN_TEXT:2},TM=9,AM=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],DM=function(t){this.extendFrom(t,!1)};DM.prototype={constructor:DM,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!==IM.STYLE_BIND;t.__attrCachedBy=IM.STYLE_BIND;for(var r=0;r0},extendFrom:function(t,e){if(t)for(var i in t)!t.hasOwnProperty(i)||e!==!0&&(e===!1?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?Ri:zi,o=n(t,e,i),a=e.colorStops,r=0;r=0&&i.splice(n,1),t.__hoverMir=null},clearHover:function(){for(var t=this._hoverElements,e=0;eo;){var a=t[o],r=a.__from;r&&r.__zr?(o++,r.invisible||(a.transform=r.transform,a.invTransform=r.invTransform,a.__clipPaths=r.__clipPaths,this._doPaintEl(a,i,!0,n))):(t.splice(o,1),r.__hoverMir=null,e--)}i.ctx.restore()}},getHoverLayer:function(){return this.getLayer(KM)},_paintList:function(t,e,i){if(this._redrawId===i){e=e||!1,this._updateLayerStatus(t);var n=this._doPaintList(t,e);if(this._needsManuallyCompositing&&this._compositeManually(),!n){var o=this;EM(function(){o._paintList(t,e,i)})}}},_compositeManually:function(){var t=this.getLayer($M).ctx,e=this._domRoot.width,i=this._domRoot.height;t.clearRect(0,0,e,i),this.eachBuiltinLayer(function(n){n.virtual&&t.drawImage(n.dom,0,0,e,i)})},_doPaintList:function(t,e){for(var i=[],n=0;n15)break}}a.__drawIndex=m,a.__drawIndex0&&t>n[0]){for(r=0;o-1>r&&!(n[r]t);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)},eachLayer:function(t,e){var i,n,o=this._zlevelList;for(n=0;n0?JM:0),this._needsManuallyCompositing),s.__builtin__||fM("ZLevel "+l+" has been used by unkown layer "+s.id),s!==a&&(s.__used=!0,s.__startIndex!==i&&(s.__dirty=!0),s.__startIndex=i,s.__drawIndex=s.incremental?-1:i,e(i),a=s),n.__dirty&&(s.__dirty=!0,s.incremental&&s.__drawIndex<0&&(s.__drawIndex=i))}e(i),this.eachBuiltinLayer(function(t){!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]?o(i[t],e,!0):i[t]=e;for(var n=0;n=0&&this._clips.splice(e,1)},removeAnimator:function(t){for(var e=t.getClips(),i=0;ir;r++){var s=i[r],l=s.step(t,e);l&&(o.push(l),a.push(s))}for(var r=0;n>r;)i[r]._needsRemove?(i[r]=i[n-1],i.pop(),n--):r++;n=o.length;for(var r=0;n>r;r++)a[r].fire(o[r]);this._time=t,this.onframe(e),this.trigger("frame",e),this.stage.update&&this.stage.update()},_startLoop:function(){function t(){e._running&&(EM(t),!e._paused&&e._update())}var e=this;this._running=!0,EM(t)},start:function(){this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop()},stop:function(){this._running=!1},pause:function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},resume:function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},clear:function(){this._clips=[]},isFinished:function(){return!this._clips.length},animate:function(t,e){e=e||{};var i=new lM(t,e.loop,e.getter,e.setter);return this.addAnimator(i),i}},c(nI,AS);var oI=300,aI=aS.domSupported,rI=function(){var t=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],e=["touchstart","touchend","touchmove"],i={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=p(t,function(t){var e=t.replace("mouse","pointer");return i.hasOwnProperty(e)?e:t});return{mouse:t,touch:e,pointer:n}}(),sI={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},lI=Fn.prototype;lI.stopPropagation=lI.stopImmediatePropagation=lI.preventDefault=G;var uI={mousedown:function(t){t=be(this.dom,t),this._mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=be(this.dom,t);var e=this._mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||Xn(this,!0),this.trigger("mousemove",t)},mouseup:function(t){t=be(this.dom,t),Xn(this,!1),this.trigger("mouseup",t)},mouseout:function(t){t=be(this.dom,t),this._pointerCapturing&&(t.zrEventControl="no_globalout");var e=t.toElement||t.relatedTarget;t.zrIsToLocalDOM=Gn(this,e),this.trigger("mouseout",t)},touchstart:function(t){t=be(this.dom,t),Bn(t),this._lastTouchMoment=new Date,this.handler.processGesture(t,"start"),uI.mousemove.call(this,t),uI.mousedown.call(this,t)},touchmove:function(t){t=be(this.dom,t),Bn(t),this.handler.processGesture(t,"change"),uI.mousemove.call(this,t)},touchend:function(t){t=be(this.dom,t),Bn(t),this.handler.processGesture(t,"end"),uI.mouseup.call(this,t),+new Date-this._lastTouchMoment=0||n&&u(n,r)<0)){var s=e.getShallow(r);null!=s&&(o[t[a][0]]=s)}}return o}},DI=AI([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),CI={getLineStyle:function(t){var e=DI(this,t);return e.lineDash=this.getLineDash(e.lineWidth),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?!1:"dashed"===e?[n,n]:[i,i]}},LI=AI([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),kI={getAreaStyle:function(t,e){return LI(this,t,e)}},PI=Math.pow,OI=Math.sqrt,EI=1e-8,NI=1e-4,zI=OI(3),RI=1/3,BI=F(),VI=F(),GI=F(),FI=Math.min,WI=Math.max,HI=Math.sin,ZI=Math.cos,UI=2*Math.PI,XI=F(),YI=F(),jI=F(),qI=[],KI=[],$I={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},JI=[],QI=[],tT=[],eT=[],iT=Math.min,nT=Math.max,oT=Math.cos,aT=Math.sin,rT=Math.sqrt,sT=Math.abs,lT="undefined"!=typeof Float32Array,uT=function(t){this._saveData=!t,this._saveData&&(this.data=[]),this._ctx=null};uT.prototype={constructor:uT,_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,i){i=i||0,this._ux=sT(i/cM/t)||0,this._uy=sT(i/cM/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($I.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=sT(t-this._xi)>this._ux||sT(e-this._yi)>this._uy||this._len<5;return this.addData($I.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($I.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($I.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($I.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=oT(o)*i+t,this._yi=aT(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($I.R,t,e,i,n),this},closePath:function(){this.addData($I.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;ii;i++)this.data[i]=t[i];this._len=e},appendPath:function(t){t instanceof Array||(t=[t]);for(var e=t.length,i=0,n=this._len,o=0;e>o;o++)i+=t[o].len();lT&&this.data instanceof Float32Array&&(this.data=new Float32Array(n+i));for(var o=0;e>o;o++)for(var a=t[o].data,r=0;re.length&&(this._expandData(),e=this.data);for(var i=0;ia&&(a=o+a),a%=o,f-=a*h,p-=a*c;h>0&&t>=f||0>h&&f>=t||0===h&&(c>0&&e>=p||0>c&&p>=e);)n=this._dashIdx,i=r[n],f+=h*i,p+=c*i,this._dashIdx=(n+1)%g,h>0&&l>f||0>h&&f>l||c>0&&u>p||0>c&&p>u||s[n%2?"moveTo":"lineTo"](h>=0?iT(f,t):nT(f,t),c>=0?iT(p,e):nT(p,e));h=f-t,c=p-e,this._dashOffset=-rT(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=Ao,y=0,x=this._dashIdx,_=f.length,w=0;for(0>d&&(d=c+d),d%=c,r=0;1>r;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+=rT(s*s+l*l);for(;_>x&&(w+=f[x],!(w>d));x++);for(r=(w-d)/y;1>=r;)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=-rT(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,lT&&(this.data=new Float32Array(t)))},getBoundingRect:function(){JI[0]=JI[1]=tT[0]=tT[1]=Number.MAX_VALUE,QI[0]=QI[1]=eT[0]=eT[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,i=0,n=0,o=0,a=0;ac;){var d=s[c++];switch(1===c&&(n=s[c],o=s[c+1],e=n,i=o),d){case $I.M:e=n=s[c++],i=o=s[c++],t.moveTo(n,o);break;case $I.L:a=s[c++],r=s[c++],(sT(a-n)>l||sT(r-o)>u||c===h-1)&&(t.lineTo(a,r),n=a,o=r);break;case $I.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 $I.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case $I.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=Math.abs(g-m)>.001,I=v+y;M?(t.translate(f,p),t.rotate(x),t.scale(b,S),t.arc(0,0,w,v,I,1-_),t.scale(1/b,1/S),t.rotate(-x),t.translate(-f,-p)):t.arc(f,p,w,v,I,1-_),1===c&&(e=oT(v)*g+f,i=aT(v)*m+p),n=oT(I)*g+f,o=aT(I)*m+p;break;case $I.R:e=n=s[c],i=o=s[c+1],t.rect(s[c++],s[c++],s[c++],s[c++]);break;case $I.Z:t.closePath(),n=e,o=i}}}},uT.CMD=$I;var hT=2*Math.PI,cT=2*Math.PI,dT=uT.CMD,fT=2*Math.PI,pT=1e-4,gT=[-1,-1,-1],mT=[-1,-1],vT=PM.prototype.getCanvasPattern,yT=Math.abs,xT=new uT(!0);oa.prototype={constructor:oa,type:"path",__dirtyPath:!0,strokeContainThreshold:5,segmentIgnoreThreshold:0,subPixelOptimize:!1,brush:function(t,e){var i=this.style,n=this.path||xT,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=vT.call(r,t)),u?t.strokeStyle=this._strokeGradient:c&&(t.strokeStyle=vT.call(s,t));var f=i.lineDash,p=i.lineDashOffset,g=!!t.setLineDash,m=this.getGlobalScale();if(n.setScale(m[0],m[1],this.segmentIgnoreThreshold),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){var 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(){},createPathProxy:function(){this.path=new uT},getBoundingRect:function(){var t=this._rect,e=this.style,i=!t;if(i){var n=this.path;n||(n=this.path=new uT),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)),na(a,r/s,t,e)))return!0}if(o.hasFill())return ia(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):An.prototype.attrKV.call(this,t,e)},setShape:function(t,e){var i=this.shape;if(i){if(S(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&&yT(t[0]-1)>1e-10&&yT(t[3]-1)>1e-10?Math.sqrt(yT(t[0]*t[3]-t[2]*t[1])):1}},oa.extend=function(t){var e=function(e){oa.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)};h(e,oa);for(var i in t)"style"!==i&&"shape"!==i&&(e.prototype[i]=t[i]);return e},h(oa,An);var _T=uT.CMD,wT=[[],[],[]],bT=Math.sqrt,ST=Math.atan2,MT=function(t,e){var i,n,o,a,r,s,l=t.data,u=_T.M,h=_T.C,c=_T.L,d=_T.R,f=_T.A,p=_T.Q;for(o=0,a=0;or;r++){var s=wT[r];s[0]=l[o++],s[1]=l[o++],ae(s,s,e),l[a++]=s[0],l[a++]=s[1]}}},IT=Math.sqrt,TT=Math.sin,AT=Math.cos,DT=Math.PI,CT=function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])},LT=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(CT(t)*CT(e))},kT=function(t,e){return(t[0]*e[1]=11?function(){var e,i=this.__clipPaths,n=this.style;if(i)for(var o=0;oa;a++)o+=ee(t[a-1],t[a]);var r=o/2;r=i>r?i:r;for(var a=0;r>a;a++){var s,l,u,h=a/(r-1)*(e?i:i-1),c=Math.floor(h),d=h-c,f=t[c%i];e?(s=t[(c-1+i)%i],l=t[(c+1)%i],u=t[(c+2)%i]):(s=t[0===c?c:c-1],l=t[c>i-2?i-1:c+1],u=t[c>i-3?i-1:c+2]);var p=d*d,g=d*p;n.push([ca(s[0],f[0],l[0],u[0],d,p,g),ca(s[1],f[1],l[1],u[1],d,p,g)])}return n},FT=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;f>d;d++)re(r,r,t[d]),se(s,s,t[d]);re(r,r,n[0]),se(s,s,n[1])}for(var d=0,f=t.length;f>d;d++){var p=t[d];if(i)o=t[d?d-1:f-1],a=t[(d+1)%f];else{if(0===d||d===f-1){l.push(H(t[d]));continue}o=t[d-1],a=t[d+1]}Y(u,a,o),Q(u,u,e);var g=ee(p,o),m=ee(p,a),v=g+m;0!==v&&(g/=v,m/=v),Q(h,u,-g),Q(c,u,m);var y=U([],p,h),x=U([],p,c);n&&(se(y,y,r),re(y,y,s),se(x,x,r),re(x,x,s)),l.push(y),l.push(x)}return i&&l.push(l.shift()),l},WT=oa.extend({type:"polygon",shape:{points:null,smooth:!1,smoothConstraint:null},buildPath:function(t,e){da(t,e,!0)}}),HT=oa.extend({type:"polyline",shape:{points:null,smooth:!1,smoothConstraint:null},style:{stroke:"#000",fill:null},buildPath:function(t,e){da(t,e,!1)}}),ZT=Math.round,UT={},XT=oa.extend({type:"rect",shape:{r:0,x:0,y:0,width:0,height:0},buildPath:function(t,e){var i,n,o,a;this.subPixelOptimize?(pa(UT,e,this.style),i=UT.x,n=UT.y,o=UT.width,a=UT.height,UT.r=e.r,e=UT):(i=e.x,n=e.y,o=e.width,a=e.height),e.r?ln(t,e):t.rect(i,n,o,a),t.closePath()}}),YT={},jT=oa.extend({type:"line",shape:{x1:0,y1:0,x2:0,y2:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i,n,o,a;this.subPixelOptimize?(fa(YT,e,this.style),i=YT.x1,n=YT.y1,o=YT.x2,a=YT.y2):(i=e.x1,n=e.y1,o=e.x2,a=e.y2);var r=e.percent;0!==r&&(t.moveTo(i,n),1>r&&(o=i*(1-r)+o*r,a=n*(1-r)+a*r),t.lineTo(o,a))},pointAt:function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]}}),qT=[],KT=oa.extend({type:"bezier-curve",shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,o=e.x2,a=e.y2,r=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(i,n),null==l||null==u?(1>h&&(Ro(i,r,o,h,qT),r=qT[1],o=qT[2],Ro(n,s,a,h,qT),s=qT[1],a=qT[2]),t.quadraticCurveTo(r,s,o,a)):(1>h&&(ko(i,r,l,o,h,qT),r=qT[1],l=qT[2],o=qT[3],ko(n,s,u,a,h,qT),s=qT[1],u=qT[2],a=qT[3]),t.bezierCurveTo(r,s,l,u,o,a)))},pointAt:function(t){return ma(this.shape,t,!1)},tangentAt:function(t){var e=ma(this.shape,t,!0);return te(e,e)}}),$T=oa.extend({type:"arc",shape:{cx:0,cy:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.cx,n=e.cy,o=Math.max(e.r,0),a=e.startAngle,r=e.endAngle,s=e.clockwise,l=Math.cos(a),u=Math.sin(a);t.moveTo(l*o+i,u*o+n),t.arc(i,n,o,a,r,!s)}}),JT=oa.extend({type:"compound",shape:{paths:null},_updatePathDirty:function(){for(var t=this.__dirtyPath,e=this.shape.paths,i=0;i"'])/g,kA={"&":"&","<":"<",">":">",'"':""","'":"'"},PA=["a","b","c","d","e","f","g"],OA=function(t,e){return"{"+t+(null==e?"":e)+"}"},EA=$i,NA=(Object.freeze||Object)({addCommas:Gr,toCamelCase:Fr,normalizeCssArray:CA,encodeHTML:Wr,formatTpl:Hr,formatTplSimple:Zr,getTooltipMarker:Ur,formatTime:Yr,capitalFirst:jr,truncateText:EA,getTextBoundingRect:qr,getTextRect:Kr,windowOpen:$r}),zA=f,RA=["left","right","top","bottom","width","height"],BA=[["width","left","right"],["height","top","bottom"]],VA=Jr,GA=(x(Jr,"vertical"),x(Jr,"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")}}}),FA=ho(),WA=mr.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,i,n){mr.call(this,t,e,i,n),this.uid=xr("ec_cpt_model")},init:function(t,e,i){this.mergeDefaultAndTheme(t,i)},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,n=i?os(t):{},a=e.getTheme();o(t,a.get(this.mainType)),o(t,this.getDefaultOption()),i&&ns(t,n,i)},mergeOption:function(t){o(this.option,t,!0);var e=this.layoutMode;e&&ns(this.option,t,e)},optionUpdated:function(){},getDefaultOption:function(){var t=FA(this);if(!t.defaultOption){for(var e=[],i=this.constructor;i;){var n=i.prototype.defaultOption;n&&e.push(n),i=i.superClass}for(var a={},r=e.length-1;r>=0;r--)a=o(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)})}});Mo(WA,{registerWhenExtend:!0}),_r(WA),wr(WA,rs),c(WA,GA);var HA="";"undefined"!=typeof navigator&&(HA=navigator.platform||"");var ZA={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],gradientColor:["#f6efa6","#d88273","#bf444c"],textStyle:{fontFamily:HA.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},UA=ho(),XA={clearColorPalette:function(){UA(this).colorIdx=0,UA(this).colorNameMap={}},getColorFromPalette:function(t,e,i){e=e||this;var n=UA(e),o=n.colorIdx||0,a=n.colorNameMap=n.colorNameMap||{};if(a.hasOwnProperty(t))return a[t];var r=to(this.get("color",!0)),s=this.get("colorLayer",!0),l=null!=i&&s?ss(s,i):r;if(l=l||r,l&&l.length){var u=l[o];return t&&(a[t]=u),n.colorIdx=(o+1)%l.length,u}}},YA="original",jA="arrayRows",qA="objectRows",KA="keyedColumns",$A="unknown",JA="typedArray",QA="column",tD="row";ls.seriesDataToSource=function(t){return new ls({data:t,sourceFormat:I(t)?JA:YA,fromDataset:!1})},wo(ls);var eD={Must:1,Might:2,Not:3},iD=ho(),nD="\x00_ec_inner",oD=mr.extend({init:function(t,e,i,n){i=i||{},this.option=null,this._theme=new mr(i),this._optionManager=n},setOption:function(t,e){O(!(nD 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)):Ms.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&&f(a,function(t){this.mergeOption(t,e=!0)},this)}return e},mergeOption:function(t){function e(e,n){var o=to(t[e]),s=oo(a.get(e),o);ao(s),f(s,function(t){var i=t.option;S(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=Ts(e,i,t.exist))});var l=Is(a,n);i[e]=[],a.set(e,[]),f(s,function(t,n){var o=t.exist,s=t.option;if(O(S(s)||o,"Empty component definition"),s){var u=WA.getClass(e,t.keyInfo.subType,!0);if(o&&o.constructor===u)o.name=t.keyInfo.name,o.mergeOption(s,this),o.optionUpdated(s,!1);else{var h=r({dependentModels:l,componentIndex:n},t.keyInfo);o=new u(s,this,this,h),r(o,h),o.init(s,this,this,h),o.optionUpdated(null,!0)}}else o.mergeOption({},this),o.optionUpdated({},!1);a.get(e)[n]=o,i[e][n]=o.option},this),"series"===e&&As(this,a.get("series"))}var i=this.option,a=this._componentsMap,s=[];cs(this),f(t,function(t,e){null!=t&&(WA.hasClass(e)?e&&s.push(e):i[e]=null==i[e]?n(t):o(i[e],t,!0))}),WA.topologicalTravel(s,WA.getAllClassMainTypes(),e,this),this._seriesIndicesMap=B(this._seriesIndices=this._seriesIndices||[])},getOption:function(){var t=n(this.option);return f(t,function(e,i){if(WA.hasClass(i)){for(var e=to(e),n=e.length-1;n>=0;n--)so(e[n])&&e.splice(n,1);t[i]=e}}),delete t[nD],t},getTheme:function(){return this._theme},getComponent:function(t,e){var i=this._componentsMap.get(t);return i?i[e||0]:void 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)_(i)||(i=[i]),r=m(p(i,function(t){return a[t]}),function(t){return!!t});else if(null!=n){var s=_(n);r=m(a,function(t){return s&&u(n,t.id)>=0||!s&&t.id===n})}else if(null!=o){var l=_(o);r=m(a,function(t){return l&&u(o,t.name)>=0||!l&&t.name===o})}else r=a.slice();return Ds(r,t)},findComponents:function(t){function e(t){var e=o+"Index",i=o+"Id",n=o+"Name";return!t||null==t[e]&&null==t[i]&&null==t[n]?null:{mainType:o,index:t[e],id:t[i],name:t[n]}}function i(e){return t.filter?m(e,t.filter):e}var n=t.query,o=t.mainType,a=e(n),r=a?this.queryComponents(a):this._componentsMap.get(o);return i(Ds(r,t))},eachComponent:function(t,e,i){var n=this._componentsMap;if("function"==typeof t)i=e,e=t,n.each(function(t,n){f(t,function(t,o){e.call(i,n,t,o)})});else if(b(t))f(n.get(t),e,i);else if(S(t)){var o=this.findComponents(t);f(o,e,i)}},getSeriesByName:function(t){var e=this._componentsMap.get("series");return m(e,function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap.get("series")[t]},getSeriesByType:function(t){var e=this._componentsMap.get("series");return m(e,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){Cs(this),f(this._seriesIndices,function(i){var n=this._componentsMap.get("series")[i];t.call(e,n,i)},this)},eachRawSeries:function(t,e){f(this._componentsMap.get("series"),t,e)},eachSeriesByType:function(t,e,i){Cs(this),f(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 f(this.getSeriesByType(t),e,i)},isSeriesFiltered:function(t){return Cs(this),null==this._seriesIndicesMap.get(t.componentIndex)},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(t,e){Cs(this);var i=m(this._componentsMap.get("series"),t,e);As(this,i)},restoreData:function(t){var e=this._componentsMap;As(this,e.get("series"));var i=[];e.each(function(t,e){i.push(e)}),WA.topologicalTravel(i,WA.getAllClassMainTypes(),function(i){f(e.get(i),function(e){("series"!==i||!bs(e,t))&&e.restoreData()})})}});c(oD,XA);var aD=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"],rD={};ks.prototype={constructor:ks,create:function(t,e){var i=[];f(rD,function(n){var o=n.create(t,e);i=i.concat(o||[])}),this._coordinateSystems=i},update:function(t,e){f(this._coordinateSystems,function(i){i.update&&i.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},ks.register=function(t,e){rD[t]=e},ks.get=function(t){return rD[t]};var sD=f,lD=n,uD=p,hD=o,cD=/^(min|max)?(.+)$/;Ps.prototype={constructor:Ps,setOption:function(t,e){t&&f(to(t.series),function(t){t&&t.data&&I(t.data)&&N(t.data)}),t=lD(t);var i=this._optionBackup,n=Os.call(this,t,e,!i);this._newBaseOption=n.baseOption,i?(Rs(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=uD(e.timelineOptions,lD),this._mediaList=uD(e.mediaList,lD),this._mediaDefault=lD(e.mediaDefault),this._currentMediaIndices=[],lD(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,i=this._timelineOptions;if(i.length){var n=t.getComponent("timeline");n&&(e=lD(i[n.getCurrentIndex()],!0))}return e},getMediaOption:function(){var t=this._api.getWidth(),e=this._api.getHeight(),i=this._mediaList,n=this._mediaDefault,o=[],a=[];if(!i.length&&!n)return a;for(var r=0,s=i.length;s>r;r++)Es(i[r].query,t,e)&&o.push(r);return!o.length&&n&&(o=[-1]),o.length&&!zs(o,this._currentMediaIndices)&&(a=uD(o,function(t){return lD(-1===t?n.option:i[t].option)})),this._currentMediaIndices=o,a}};var dD=f,fD=S,pD=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"],gD=function(t,e){dD(Zs(t.series),function(t){fD(t)&&Hs(t)});var i=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&i.push("valueAxis","categoryAxis","logAxis","timeAxis"),dD(i,function(e){dD(Zs(t[e]),function(t){t&&(Fs(t,"axisLabel"),Fs(t.axisPointer,"label"))})}),dD(Zs(t.parallel),function(t){var e=t&&t.parallelAxisDefault;Fs(e,"axisLabel"),Fs(e&&e.axisPointer,"label")}),dD(Zs(t.calendar),function(t){Vs(t,"itemStyle"),Fs(t,"dayLabel"),Fs(t,"monthLabel"),Fs(t,"yearLabel")}),dD(Zs(t.radar),function(t){Fs(t,"name")}),dD(Zs(t.geo),function(t){fD(t)&&(Ws(t),dD(Zs(t.regions),function(t){Ws(t)}))}),dD(Zs(t.timeline),function(t){Ws(t),Vs(t,"label"),Vs(t,"itemStyle"),Vs(t,"controlStyle",!0);var e=t.data;_(e)&&f(e,function(t){S(t)&&(Vs(t,"label"),Vs(t,"itemStyle"))})}),dD(Zs(t.toolbox),function(t){Vs(t,"iconStyle"),dD(t.feature,function(t){Vs(t,"iconStyle")})}),Fs(Us(t.axisPointer),"label"),Fs(Us(t.tooltip).axisPointer,"label")},mD=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],vD=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],yD=function(t,e){gD(t,e),t.series=to(t.series),f(t.series,function(t){if(S(t)){var e=t.type;if("line"===e)null!=t.clipOverflow&&(t.clip=t.clipOverflow);else if("pie"===e||"gauge"===e)null!=t.clockWise&&(t.clockwise=t.clockWise);else if("gauge"===e){var i=Xs(t,"pointer.color");null!=i&&Ys(t,"itemStyle.color",i)}js(t)}}),t.dataRange&&(t.visualMap=t.dataRange),f(vD,function(e){var i=t[e];i&&(_(i)||(i=[i]),f(i,function(t){js(t)}))})},xD=function(t){var e=B();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(qs)},_D=Ks.prototype;_D.pure=!1,_D.persistent=!0,_D.getSource=function(){return this._source};var wD={arrayRows_column:{pure:!0,count:function(){return Math.max(0,this._data.length-this._source.startIndex)},getItem:function(t){return this._data[t+this._source.startIndex]},appendData:Qs},arrayRows_row:{pure:!0,count:function(){var t=this._data[0];return t?Math.max(0,t.length-this._source.startIndex):0},getItem:function(t){t+=this._source.startIndex;for(var e=[],i=this._data,n=0;n=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=ll(this,n)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(i?(eS&&O(null!=i._outputDueEnd),this._dueEnd=i._outputDueEnd):(eS&&O(!this._progress||this._count),this._dueEnd=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||f>d)){var p=this._progress;if(_(p))for(var g=0;g=this._outputDueEnd),this._outputDueEnd=m}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()};var AD=function(){function t(){return i>n?n++:null}function e(){var t=n%r*o+Math.ceil(n/r),e=n>=i?null:a>t?t:n;return n++,e}var i,n,o,a,r,s={reset:function(l,u,h,c){n=l,i=u,o=h,a=c,r=Math.ceil(a/o),s.next=o>1&&a>0?e:t}};return s}();TD.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},TD.unfinished=function(){return this._progress&&this._dueIndex":"",m=p+s.join(p||", ");return{renderMode:n,content:m,style:u}}function a(t){return{renderMode:n,content:Wr(Gr(t)),style:u}}var r=this;n=n||"html";var s="html"===n?"
":"\n",l="richText"===n,u={},h=0,c=this.getData(),d=c.mapDimension("defaultedTooltip",!0),p=d.length,m=this.getRawValue(t),v=_(m),y=c.getItemVisual(t,"color");S(y)&&y.colorStops&&(y=(y.colorStops[0]||{}).color),y=y||"transparent";var x=p>1||v&&!p?o(m):a(p?nl(c,t,d[0]):v?m[0]:m),w=x.content,b=r.seriesIndex+"at"+h,M=Ur({color:y,type:"item",renderMode:n,markerId:b});u[b]=y,++h;var I=c.getName(t),T=this.name;ro(this)||(T=""),T=T?Wr(T)+(e?": ":s):"";var A="string"==typeof M?M:M.content,D=e?A+T+w:T+A+(I?Wr(I)+": "+w:w);return{html:D,markers:u}},isAnimationEnabled:function(){if(aS.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=XA.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});c(CD,ID),c(CD,XA);var LD=function(){this.group=new xM,this.uid=xr("viewComponent")};LD.prototype={constructor:LD,init:function(){},render:function(){},dispose:function(){},filterForExposedEvent:null};var kD=LD.prototype;kD.updateView=kD.updateLayout=kD.updateVisual=function(){},_o(LD),Mo(LD,{registerWhenExtend:!0}); +var PD=function(){var t=ho();return function(e){var i=t(e),n=e.pipelineContext,o=i.large,a=i.progressiveRender,r=i.large=n&&n.large,s=i.progressiveRender=n&&n.progressiveRender;return!!(o^r||a^s)&&"reset"}},OD=ho(),ED=PD();vl.prototype={type:"chart",init:function(){},render:function(){},highlight:function(t,e,i,n){xl(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){xl(t.getData(),n,"normal")},remove:function(){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};var ND=vl.prototype;ND.updateView=ND.updateLayout=ND.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},_o(vl,["dispose"]),Mo(vl,{registerWhenExtend:!0}),vl.markUpdateMethod=function(t,e){OD(t).updateMethod=e};var zD={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)}}},RD="\x00__throttleOriginMethod",BD="\x00__throttleRate",VD="\x00__throttleType",GD={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var i=t.getData(),n=(t.visualColorAccessPath||"itemStyle.color").split("."),o=t.get(n),a=!w(o)||o instanceof QT?null:o;(!o||a)&&(o=t.getColorFromPalette(t.name,null,e.getSeriesCount())),i.setVisual("color",o);var r=(t.visualBorderColorAccessPath||"itemStyle.borderColor").split("."),s=t.get(r);if(i.setVisual("borderColor",s),!e.isSeriesFiltered(t)){a&&i.each(function(e){i.setItemVisual(e,"color",a(t.getDataParams(e)))});var l=function(t,e){var i=t.getItemModel(e),o=i.get(n,!0),a=i.get(r,!0);null!=o&&t.setItemVisual(e,"color",o),null!=a&&t.setItemVisual(e,"borderColor",a)};return{dataEach:i.hasItemOption?l:null}}}},FD={legend:{selector:{all:"全选",inverse:"反选"}},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:""}}}},WD=function(t,e){function i(t,e){if("string"!=typeof t)return t;var i=t;return f(e,function(t,e){i=i.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)}),i}function n(t){var e=r.get(t);if(null==e){for(var i=t.split("."),n=FD.aria,o=0;os)){var d=o();l=d?i(n("general.withTitle"),{title:d}):n("general.withoutTitle");var p=[],g=s>1?"series.multiple.prefix":"series.single.prefix";l+=i(n(g),{seriesCount:s}),e.eachSeries(function(t,e){if(c>e){var o,r=t.get("name"),l="series."+(s>1?"multiple":"single")+".";o=n(r?l+"withName":l+"withoutName"),o=i(o,{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:a(t.subType)});var h=t.getData();window.data=h,o+=h.count()>u?i(n("data.partialData"),{displayCnt:u}):n("data.allData");for(var d=[],f=0;ff){var g=h.getName(f),m=nl(h,f);d.push(i(n(g?"data.withName":"data.withoutName"),{name:g,value:m}))}o+=d.join(n("data.separator.middle"))+n("data.separator.end"),p.push(o)}}),l+=p.join(n("series.multiple.separator.middle"))+n("series.multiple.separator.end"),t.setAttribute("aria-label",l)}}},HD=Math.PI,ZD=function(t,e){e=e||{},s(e,{text:"loading",textColor:"#000",fontSize:"12px",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#c23531",spinnerRadius:10,lineWidth:5,zlevel:0});var i=new xM,n=new XT({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});i.add(n);var o=e.fontSize+" sans-serif",a=new XT({style:{fill:"none",text:e.text,font:o,textPosition:"right",textDistance:10,textFill:e.textColor},zlevel:e.zlevel,z:10001});if(i.add(a),e.showSpinner){var r=new $T({shape:{startAngle:-HD/2,endAngle:-HD/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001});r.animateShape(!0).when(1e3,{endAngle:3*HD/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*HD/2}).delay(300).start("circularInOut"),i.add(r)}return i.resize=function(){var i=Zi(e.text,o),s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&i?10:0)-i)/2-(e.showSpinner?0:i/2),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),n.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},i.resize(),i},UD=Il.prototype;UD.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each(function(t){var e=t.overallTask;e&&e.dirty()})},UD.getPerformArgs=function(t,e){if(t.__pipeline){var i=this._pipelineMap.get(t.__pipeline.id),n=i.context,o=!e&&i.progressiveEnabled&&(!n||n.progressiveRender)&&t.__idxInPipeline>i.blockIndex,a=o?i.step:null,r=n&&n.modDataCount,s=null!=r?Math.ceil(r/a):null;return{step:a,modBy:s,modDataCount:r}}},UD.getPipeline=function(t){return this._pipelineMap.get(t)},UD.updateStreamModes=function(t,e){var i=this._pipelineMap.get(t.uid),n=t.getData(),o=n.count(),a=i.progressiveEnabled&&e.incrementalPrepareRender&&o>=i.threshold,r=t.get("large")&&o>=t.get("largeThreshold"),s="mod"===t.get("progressiveChunkMode")?o:null;t.pipelineContext=i.context={progressiveRender:a,modDataCount:s,large:r}},UD.restorePipelines=function(t){var e=this,i=e._pipelineMap=B();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}),Rl(e,t,t.dataTask)})},UD.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.ecInstance.getModel(),i=this.api;f(this._allHandlers,function(n){var o=t.get(n.uid)||t.set(n.uid,[]);n.reset&&Al(this,n,o,e,i),n.overallReset&&Dl(this,n,o,e,i)},this)},UD.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,Rl(this,e,o)},UD.performDataProcessorTasks=function(t,e){Tl(this,this._dataProcessorHandlers,t,e,{block:!0})},UD.performVisualTasks=function(t,e,i){Tl(this,this._visualHandlers,t,e,i)},UD.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},UD.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 XD=UD.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},YD=Nl(0);Il.wrapStageHandler=function(t,e){return w(t)&&(t={overallReset:t,seriesType:Bl(t)}),t.uid=xr("stageHandler"),e&&(t.visualType=e),t};var jD,qD={},KD={};Vl(qD,oD),Vl(KD,Ls),qD.eachSeriesByType=qD.eachRawSeriesByType=function(t){jD=t},qD.eachComponent=function(t){"series"===t.mainType&&t.subType&&(jD=t.subType)};var $D=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],JD={color:$D,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],$D]},QD="#eee",tC=function(){return{axisLine:{lineStyle:{color:QD}},axisTick:{lineStyle:{color:QD}},axisLabel:{textStyle:{color:QD}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:QD}}}},eC=["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],iC={color:eC,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:QD},crossStyle:{color:QD},label:{color:"#000"}}},legend:{textStyle:{color:QD}},textStyle:{color:QD},title:{textStyle:{color:QD}},toolbox:{iconStyle:{normal:{borderColor:QD}}},dataZoom:{textStyle:{color:QD}},visualMap:{textStyle:{color:QD}},timeline:{lineStyle:{color:QD},itemStyle:{normal:{color:eC[1]}},label:{normal:{textStyle:{color:QD}}},controlStyle:{normal:{color:QD,borderColor:QD}}},timeAxis:tC(),logAxis:tC(),valueAxis:tC(),categoryAxis:tC(),line:{symbol:"circle"},graph:{color:eC},gauge:{title:{textStyle:{color:QD}}},candlestick:{itemStyle:{normal:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}}};iC.categoryAxis.splitLine.show=!1,WA.extend({type:"dataset",defaultOption:{seriesLayoutBy:QA,sourceHeader:null,dimensions:null,source:null},optionUpdated:function(){us(this)}}),LD.extend({type:"dataset"});var nC=oa.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()}}),oC=/[\s,]+/;Fl.prototype.parse=function(t,e){e=e||{};var i=Gl(t);if(!i)throw new Error("Illegal svg");var n=new xM;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),Ul(i,n,null,!0);for(var s=i.firstChild;s;)this._parseNode(s,n),s=s.nextSibling;var l,u;if(o){var h=E(o).split(oC);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=ql(l,a,r),!e.ignoreViewBox)){var c=n;n=new xM,n.add(c),c.scale=u.scale.slice(),c.position=u.position.slice()}return e.ignoreRootClip||null==a||null==r||n.setClipPath(new XT({shape:{x:0,y:0,width:a,height:r}})),{root:n,width:a,height:r,viewBoxRect:l,viewBoxTransform:u}},Fl.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){var o=rC[i];if(o){var a=o.call(this,t),r=t.getAttribute("id");r&&(this._defs[r]=a)}}else{var o=aC[i];o&&(n=o.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)},Fl.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 ET({style:{text:t.textContent,transformText:!0},position:[this._textX||0,this._textY||0]});Hl(e,o),Ul(t,o,this._defs);var a=o.style.fontSize;a&&9>a&&(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 aC={g:function(t,e){var i=new xM;return Hl(e,i),Ul(t,i,this._defs),i},rect:function(t,e){var i=new XT;return Hl(e,i),Ul(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 NT;return Hl(e,i),Ul(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 jT;return Hl(e,i),Ul(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 nC;return Hl(e,i),Ul(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=Zl(i));var n=new WT({shape:{points:i||[]}});return Hl(e,n),Ul(t,n,this._defs),n},polyline:function(t,e){var i=new oa;Hl(e,i),Ul(t,i,this._defs);var n=t.getAttribute("points");n&&(n=Zl(n));var o=new HT({shape:{points:n||[]}});return o},image:function(t,e){var i=new Dn;return Hl(e,i),Ul(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 xM;return Hl(e,r),Ul(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 xM;return Hl(e,r),Ul(t,r,this._defs),this._textX+=o,this._textY+=a,r},path:function(t,e){var i=t.getAttribute("d")||"",n=la(i);return Hl(e,n),Ul(t,n,this._defs),n}},rC={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 tA(e,i,n,o);return Wl(t,a),a},radialgradient:function(){}},sC={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"},lC=/url\(\s*#(.*?)\)/,uC=/(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g,hC=/([^\s:;]+)\s*:\s*([^:;]+)/g,cC=B(),dC={registerMap:function(t,e,i){var n;return _(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}]),f(n,function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var i=fC[e];eS&&O(i,"Illegal map type: "+e),i(t)}),cC.set(t,n)},retrieveMap:function(t){return cC.get(t)}},fC={geoJSON:function(t){var e=t.source;t.geoJSON=b(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=Gl(t.source)}},pC=O,gC=f,mC=w,vC=S,yC=WA.parseClassType,xC="4.9.0",_C={zrender:"4.3.2"},wC=1,bC=1e3,SC=800,MC=900,IC=5e3,TC=1e3,AC=1100,DC=2e3,CC=3e3,LC=3500,kC=4e3,PC=5e3,OC={PROCESSOR:{FILTER:bC,SERIES_FILTER:SC,STATISTIC:IC},VISUAL:{LAYOUT:TC,PROGRESSIVE_LAYOUT:AC,GLOBAL:DC,CHART:CC,POST_CHART_LAYOUT:LC,COMPONENT:kC,BRUSH:PC}},EC="__flagInMainProcess",NC="__optionUpdated",zC=/^[a-zA-Z0-9_]+$/;Jl.prototype.on=$l("on",!0),Jl.prototype.off=$l("off",!0),Jl.prototype.one=$l("one",!0),c(Jl,AS);var RC=Ql.prototype;RC._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[NC]){var e=this[NC].silent;this[EC]=!0,eu(this),BC.update.call(this),this[EC]=!1,this[NC]=!1,au.call(this,e),ru.call(this,e)}else if(t.unfinished){var i=wC,n=this._model,o=this._api;t.unfinished=!1;do{var a=+new Date;t.performSeriesTasks(n),t.performDataProcessorTasks(n),nu(this,n),t.performVisualTasks(n),du(this,this._model,o,"remain"),i-=+new Date-a}while(i>0&&t.unfinished);t.unfinished||this._zr.flush()}}},RC.getDom=function(){return this._dom},RC.getZr=function(){return this._zr},RC.setOption=function(t,e,i){if(eS&&pC(!this[EC],"`setOption` should not be called during main process."),this._disposed)return void pu(this.id);var n;if(vC(e)&&(i=e.lazyUpdate,n=e.silent,e=e.notMerge),this[EC]=!0,!this._model||e){var o=new Ps(this._api),a=this._theme,r=this._model=new oD;r.scheduler=this._scheduler,r.init(null,null,a,o)}this._model.setOption(t,HC),i?(this[NC]={silent:n},this[EC]=!1):(eu(this),BC.update.call(this),this._zr.flush(),this[NC]=!1,this[EC]=!1,au.call(this,n),ru.call(this,n))},RC.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},RC.getModel=function(){return this._model},RC.getOption=function(){return this._model&&this._model.getOption()},RC.getWidth=function(){return this._zr.getWidth()},RC.getHeight=function(){return this._zr.getHeight()},RC.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},RC.getRenderedCanvas=function(t){if(aS.canvasSupported){t=t||{},t.pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor");var e=this._zr;return e.painter.getRenderedCanvas(t)}},RC.getSvgDataURL=function(){if(aS.svgSupported){var t=this._zr,e=t.storage.getDisplayList();return f(e,function(t){t.stopAnimation(!0)}),t.painter.toDataURL()}},RC.getDataURL=function(t){if(this._disposed)return void pu(this.id);t=t||{};var e=t.excludeComponents,i=this._model,n=[],o=this;gC(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 gC(n,function(t){t.group.ignore=!1}),a},RC.getConnectedDataURL=function(t){if(this._disposed)return void pu(this.id);if(aS.canvasSupported){var e="svg"===t.type,i=this.group,o=Math.min,a=Math.max,r=1/0;if(qC[i]){var s=r,l=r,u=-r,h=-r,c=[],d=t&&t.pixelRatio||1;f(jC,function(r){if(r.group===i){var d=e?r.getZr().painter.getSvgDom().innerHTML:r.getRenderedCanvas(n(t)),f=r.getDom().getBoundingClientRect();s=o(f.left,s),l=o(f.top,l),u=a(f.right,u),h=a(f.bottom,h),c.push({dom:d,left:f.left,top:f.top})}}),s*=d,l*=d,u*=d,h*=d;var p=u-s,g=h-l,m=mS(),v=qn(m,{renderer:e?"svg":"canvas"});if(v.resize({width:p,height:g}),e){var y="";return gC(c,function(t){var e=t.left-s,i=t.top-l;y+=''+t.dom+""}),v.painter.getSvgRoot().innerHTML=y,t.connectedBackgroundColor&&v.painter.setBackgroundColor(t.connectedBackgroundColor),v.refreshImmediately(),v.painter.toDataURL()}return t.connectedBackgroundColor&&v.add(new XT({shape:{x:0,y:0,width:p,height:g},style:{fill:t.connectedBackgroundColor}})),gC(c,function(t){var e=new Dn({style:{x:t.left*d-s,y:t.top*d-l,image:t.dom}});v.add(e)}),v.refreshImmediately(),m.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},RC.convertToPixel=x(tu,"convertToPixel"),RC.convertFromPixel=x(tu,"convertFromPixel"),RC.containPixel=function(t,e){if(this._disposed)return void pu(this.id);var i,n=this._model;return t=co(n,t),f(t,function(t,n){n.indexOf("Models")>=0&&f(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):eS&&console.warn(n+": "+(a?"The found component do not support containPoint.":"No view mapping to the found component."))}else eS&&console.warn(n+": containPoint is not supported")},this)},this),!!i},RC.getVisual=function(t,e){var i=this._model;t=co(i,t,{defaultMainType:"series"});var n=t.seriesModel;eS&&(n||console.warn("There is no specified seires model"));var o=n.getData(),a=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?o.indexOfRawIndex(t.dataIndex):null;return null!=a?o.getItemVisual(a,e):o.getVisual(e)},RC.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},RC.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var BC={prepareAndUpdate:function(t){eu(this),BC.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),nu(this,e),o.update(e,i),uu(e),a.performVisualTasks(e,t),hu(this,e,i,t);var r=e.get("backgroundColor")||"transparent";if(aS.canvasSupported)n.setBackgroundColor(r);else{var s=ti(r);r=ui(s,"rgb"),0===s[3]&&(r="transparent")}fu(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=B();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)}),uu(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:a}),du(i,e,n,t,a),fu(e,this._api)}},updateView:function(t){var e=this._model;e&&(vl.markUpdateMethod(t,"updateView"),uu(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),hu(this,this._model,this._api,t),fu(e,this._api))},updateVisual:function(t){BC.update.call(this,t)},updateLayout:function(t){BC.update.call(this,t)}};RC.resize=function(t){if(eS&&pC(!this[EC],"`resize` should not be called during main process."),this._disposed)return void pu(this.id);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[EC]=!0,i&&eu(this),BC.update.call(this),this[EC]=!1,au.call(this,n),ru.call(this,n)}},RC.showLoading=function(t,e){if(this._disposed)return void pu(this.id);if(vC(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),!YC[t])return void(eS&&console.warn("Loading effects "+t+" not exists."));var i=YC[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)},RC.hideLoading=function(){return this._disposed?void pu(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),void(this._loadingFX=null))},RC.makeActionFromEvent=function(t){var e=r({},t);return e.type=FC[t.type],e},RC.dispatchAction=function(t,e){if(this._disposed)return void pu(this.id);if(vC(e)||(e={silent:!!e}),GC[t.type]&&this._model){if(this[EC])return void this._pendingActions.push(t);ou.call(this,t,e.silent),e.flush?this._zr.flush(!0):e.flush!==!1&&aS.browser.weChat&&this._throttledZrFlush(),au.call(this,e.silent),ru.call(this,e.silent)}},RC.appendData=function(t){if(this._disposed)return void pu(this.id);var e=t.seriesIndex,i=this.getModel(),n=i.getSeriesByIndex(e);eS&&pC(t.data&&n),n.appendData(t),this._scheduler.unfinished=!0},RC.on=$l("on",!1),RC.off=$l("off",!1),RC.one=$l("one",!1);var VC=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];RC._initEvents=function(){gC(VC,function(t){var e=function(e){var i,n=this.getModel(),o=e.target,a="globalout"===t;if(a)i={};else if(o&&null!=o.dataIndex){var s=o.dataModel||n.getSeriesByIndex(o.seriesIndex);i=s&&s.getDataParams(o.dataIndex,o.dataType,o)||{}}else o&&o.eventData&&(i=r({},o.eventData));if(i){var l=i.componentType,u=i.componentIndex;("markLine"===l||"markPoint"===l||"markArea"===l)&&(l="series",u=i.seriesIndex);var h=l&&null!=u&&n.getComponent(l,u),c=h&&this["series"===h.mainType?"_chartsMap":"_componentsMap"][h.__viewId];eS&&(a||h&&c||console.warn("model or view can not be found by params")),i.event=e,i.type=t,this._ecEventProcessor.eventInfo={targetEl:o,packedEvent:i,model:h,view:c},this.trigger(t,i)}};e.zrEventfulCallAtLast=!0,this._zr.on(t,e,this)},this),gC(FC,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},RC.isDisposed=function(){return this._disposed},RC.clear=function(){return this._disposed?void pu(this.id):void this.setOption({series:[]},!0)},RC.dispose=function(){if(this._disposed)return void pu(this.id);this._disposed=!0,po(this.getDom(),JC,"");var t=this._api,e=this._model;gC(this._componentsViews,function(i){i.dispose(e,t)}),gC(this._chartsViews,function(i){i.dispose(e,t)}),this._zr.dispose(),delete jC[this.id]},c(Ql,AS),xu.prototype={constructor:xu,normalizeQuery:function(t){var e={},i={},n={};if(b(t)){var o=yC(t);e.mainType=o.main||null,e.subType=o.sub||null}else{var a=["Index","Name","Id"],r={name:1,dataIndex:1,dataType:1};f(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){function i(t,e,i,n){return null==t[i]||e[n||i]===t[i]}var n=this.eventInfo;if(!n)return!0;var o=n.targetEl,a=n.packedEvent,r=n.model,s=n.view;if(!r||!s)return!0;var l=e.cptQuery,u=e.dataQuery;return i(l,r,"mainType")&&i(l,r,"subType")&&i(l,r,"index","componentIndex")&&i(l,r,"name")&&i(l,r,"id")&&i(u,a,"name")&&i(u,a,"dataIndex")&&i(u,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,e.otherQuery,o,a))},afterTrigger:function(){this.eventInfo=null}};var GC={},FC={},WC=[],HC=[],ZC=[],UC=[],XC={},YC={},jC={},qC={},KC=new Date-0,$C=new Date-0,JC="_echarts_instance_",QC=Su;Nu(DC,GD),Du(yD),Cu(MC,xD),Ru("default",ZD),ku({type:"highlight",event:"highlight",update:"highlight"},G),ku({type:"downplay",event:"downplay",update:"downplay"},G),Au("light",JD),Au("dark",iC);var tL={};Xu.prototype={constructor:Xu,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,e=this._old,i=this._new,n={},o={},a=[],r=[];for(Yu(e,n,a,"_oldKeyGetter",this),Yu(i,o,r,"_newKeyGetter",this),t=0;th;h++)this._add&&this._add(l[h]);else this._add&&this._add(l)}}}};var eL=B(["tooltip","label","itemName","itemId","seriesName"]),iL=S,nL="undefined",oL=-1,aL="e\x00\x00",rL={"float":typeof Float64Array===nL?Array:Float64Array,"int":typeof Int32Array===nL?Array:Int32Array,ordinal:Array,number:Array,time:Array},sL=typeof Uint32Array===nL?Array:Uint32Array,lL=typeof Int32Array===nL?Array:Int32Array,uL=typeof Uint16Array===nL?Array:Uint16Array,hL=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_chunkSize","_chunkCount","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx"],cL=["_extent","_approximateExtent","_rawExtent"],dL=function(t,e){t=t||["x","y"];for(var i={},n=[],o={},a=0;ah;h++){var c=o[h];r[c]||(r[c]=dh()),n[c]||(n[c]=[]),ih(n,this._dimensionInfos[c],i,u,l),this._chunkCount=n[c].length}for(var d=new Array(a),f=s;l>f;f++){for(var p=f-s,g=Math.floor(f/i),m=f%i,v=0;a>v;v++){var c=o[v],y=this._dimValueGetterArrayRows(t[p]||d,c,p,v);n[c][g][m]=y;var x=r[c];yx[1]&&(x[1]=y)}e&&(this._nameList[f]=e[p])}this._rawCount=this._count=l,this._extent={},nh(this)},fL._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;s>p;p++){var g=r[p];c[g]||(c[g]=dh());var m=l[g];0===m.otherDims.itemName&&(i=this._nameDimIdx=p),0===m.otherDims.itemId&&(this._idDimIdx=p),a[g]||(a[g]=[]),ih(a,m,n,f,e),this._chunkCount=a[g].length}for(var v=new Array(s),y=t;e>y;y++){v=o.getItem(y,v);for(var x=Math.floor(y/n),_=y%n,w=0;s>w;w++){var g=r[w],b=a[g][x],S=this._dimValueGetter(v,g,y,w);b[_]=S;var M=c[g];SM[1]&&(M[1]=S)}if(!o.pure){var I=u[y];if(v&&null==I)if(null!=v.name)u[y]=I=v.name;else if(null!=i){var T=r[i],A=a[T][x];if(A){I=A[_];var D=l[T].ordinalMeta;D&&D.categories.length&&(I=D.categories[I])}}var C=null==v?null:v.id;null==C&&null!=I&&(d[I]=d[I]||0,C=I,d[I]>0&&(C+="__ec__"+d[I]),d[I]++),null!=C&&(h[y]=C)}}!o.persistent&&o.clean&&o.clean(),this._rawCount=this._count=e,this._extent={},nh(this)}},fL.count=function(){return this._count},fL.getIndices=function(){var t,e=this._indices;if(e){var i=e.constructor,n=this._count;if(i===Array){t=new i(n);for(var o=0;n>o;o++)t[o]=e[o]}else t=new i(e.buffer,0,n)}else for(var i=Qu(this),t=new i(this.count()),o=0;o=0&&e=0&&en;n++)i.push(this.get(t[n],e));return i},fL.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,i=0,n=e.length;n>i;i++)if(isNaN(this.get(e[i],t)))return!1; +return!0},fL.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],i=dh();if(!e)return i;var n,o=this.count(),a=!this._indices;if(a)return this._rawExtent[t].slice();if(n=this._extent[t])return n.slice();n=i;for(var r=n[0],s=n[1],l=0;o>l;l++){var u=this._getFast(t,this.getRawIndex(l));r>u&&(r=u),u>s&&(s=u)}return n=[r,s],this._extent[t]=n,n},fL.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},fL.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},fL.getCalculationInfo=function(t){return this._calculationInfo[t]},fL.setCalculationInfo=function(t,e){iL(t)?r(this._calculationInfo,t):this._calculationInfo[t]=e},fL.getSum=function(t){var e=this._storage[t],i=0;if(e)for(var n=0,o=this.count();o>n;n++){var a=this.get(t,n);isNaN(a)||(i+=a)}return i},fL.getMedian=function(t){var e=[];this.each(t,function(t){isNaN(t)||e.push(t)});var i=[].concat(e).sort(function(t,e){return t-e}),n=this.count();return 0===n?0:n%2===1?i[(n-1)/2]:(i[n/2]+i[n/2-1])/2},fL.rawIndexOf=function(t,e){var i=t&&this._invertedIndicesMap[t];if(eS&&!i)throw new Error("Do not supported yet");var n=i[e];return null==n||isNaN(n)?oL:n},fL.indexOfName=function(t){for(var e=0,i=this.count();i>e;e++)if(this.getName(e)===t)return e;return-1},fL.indexOfRawIndex=function(t){if(t>=this._rawCount||0>t)return-1;if(!this._indices)return t;var e=this._indices,i=e[t];if(null!=i&&i=n;){var a=(n+o)/2|0;if(e[a]t))return a;o=a-1}}return-1},fL.indicesOfNearest=function(t,e,i){var n=this._storage,o=n[t],a=[];if(!o)return a;null==i&&(i=1/0);for(var r=1/0,s=-1,l=0,u=0,h=this.count();h>u;u++){var c=e-this.get(t,u),d=Math.abs(c);i>=d&&((r>d||d===r&&c>=0&&0>s)&&(r=d,s=c,l=0),c===s&&(a[l++]=u))}return a.length=l,a},fL.getRawIndex=ah,fL.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],i=0;ir;r++)s[r]=this.get(t[r],a);s[r]=a,e.apply(i,s)}}},fL.filterSelf=function(t,e,i,n){if(this._count){"function"==typeof t&&(n=i,i=e,e=t,t=[]),i=i||n||this,t=p(lh(t),this.getDimension,this),eS&&uh(this,t);for(var o=this.count(),a=Qu(this),r=new a(o),s=[],l=t.length,u=0,h=t[0],c=0;o>c;c++){var d,f=this.getRawIndex(c);if(0===l)d=e.call(i,c);else if(1===l){var g=this._getFast(h,f);d=e.call(i,g,c)}else{for(var m=0;l>m;m++)s[m]=this._getFast(h,f);s[m]=c,d=e.apply(i,s)}d&&(r[u++]=f)}return o>u&&(this._indices=r),this._count=u,this._extent={},this.getRawIndex=this._indices?rh:ah,this}},fL.selectRange=function(t){if(this._count){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(i);eS&&uh(this,e);var n=e.length;if(n){var o=this.count(),a=Qu(this),r=new a(o),s=0,l=e[0],u=t[l][0],h=t[l][1],c=!1;if(!this._indices){var d=0;if(1===n){for(var f=this._storage[e[0]],p=0;pv;v++){var y=g[v];(y>=u&&h>=y||isNaN(y))&&(r[s++]=d),d++}c=!0}else if(2===n){for(var f=this._storage[l],x=this._storage[e[1]],_=t[e[1]][0],w=t[e[1]][1],p=0;pv;v++){var y=g[v],S=b[v];(y>=u&&h>=y||isNaN(y))&&(S>=_&&w>=S||isNaN(S))&&(r[s++]=d),d++}c=!0}}if(!c)if(1===n)for(var v=0;o>v;v++){var M=this.getRawIndex(v),y=this._getFast(l,M);(y>=u&&h>=y||isNaN(y))&&(r[s++]=M)}else for(var v=0;o>v;v++){for(var I=!0,M=this.getRawIndex(v),p=0;n>p;p++){var T=e[p],y=this._getFast(i,M);(yt[T][1])&&(I=!1)}I&&(r[s++]=this.getRawIndex(v))}return o>s&&(this._indices=r),this._count=s,this._extent={},this.getRawIndex=this._indices?rh:ah,this}}},fL.mapArray=function(t,e,i,n){"function"==typeof t&&(n=i,i=e,e=t,t=[]),i=i||n||this;var o=[];return this.each(t,function(){o.push(e&&e.apply(this,arguments))},i),o},fL.map=function(t,e,i,n){i=i||n||this,t=p(lh(t),this.getDimension,this),eS&&uh(this,t);var o=hh(this,t);o._indices=this._indices,o.getRawIndex=o._indices?rh:ah;for(var a=o._storage,r=[],s=this._chunkSize,l=t.length,u=this.count(),h=[],c=o._rawExtent,d=0;u>d;d++){for(var f=0;l>f;f++)h[f]=this.get(t[f],d);h[l]=d;var g=e&&e.apply(i,h);if(null!=g){"object"!=typeof g&&(r[0]=g,g=r);for(var m=this.getRawIndex(d),v=Math.floor(m/s),y=m%s,x=0;xb[1]&&(b[1]=w)}}}return o},fL.downSample=function(t,e,i,n){for(var o=hh(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(Qu(this))(u),f=0,p=0;u>p;p+=s){s>u-p&&(s=u-p,r.length=s);for(var g=0;s>g;g++){var m=this.getRawIndex(p+g),v=Math.floor(m/h),y=m%h;r[g]=l[v][y]}var x=i(r),_=this.getRawIndex(Math.min(p+n(r,x)||0,u-1)),w=Math.floor(_/h),b=_%h;l[w][b]=x,xc[1]&&(c[1]=x),d[f++]=_}return o._count=f,o._indices=d,o.getRawIndex=rh,o},fL.getItemModel=function(t){var e=this.hostModel;return new mr(this.getRawDataItem(t),e,e&&e.ecModel)},fL.diff=function(t){var e=this;return new Xu(t?t.getIndices():[],this.getIndices(),function(e){return sh(t,e)},function(t){return sh(e,t)})},fL.getVisual=function(t){var e=this._visual;return e&&e[t]},fL.setVisual=function(t,e){if(iL(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},fL.setLayout=function(t,e){if(iL(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},fL.getLayout=function(t){return this._layout[t]},fL.getItemLayout=function(t){return this._itemLayouts[t]},fL.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?r(this._itemLayouts[t]||{},e):e},fL.clearItemLayouts=function(){this._itemLayouts.length=0},fL.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],o=n&&n[e];return null!=o||i?o:this.getVisual(e)},fL.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},o=this.hasItemVisual;if(this._itemVisuals[t]=n,iL(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],o[a]=!0);else n[e]=i,o[e]=!0},fL.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var pL=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};fL.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(pL,e)),this._graphicEls[t]=e},fL.getItemGraphicEl=function(t){return this._graphicEls[t]},fL.eachItemGraphicEl=function(t,e){f(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},fL.cloneShallow=function(t){if(!t){var e=p(this.dimensions,this.getDimensionInfo,this);t=new dL(e,this.hostModel)}if(t._storage=this._storage,eh(t,this),this._indices){var i=this._indices.constructor;t._indices=new i(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?rh:ah,t},fL.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(k(arguments)))})},fL.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],fL.CHANGABLE_METHODS=["filterSelf","selectRange"];var gL=function(t,e){return e=e||{},fh(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,encodeDefaulter:e.encodeDefaulter,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})},mL={cartesian2d:function(t,e,i,n){var o=t.getReferringComponents("xAxis")[0],a=t.getReferringComponents("yAxis")[0];if(eS){if(!o)throw new Error('xAxis "'+D(t.get("xAxisIndex"),t.get("xAxisId"),0)+'" not found');if(!a)throw new Error('yAxis "'+D(t.get("xAxisIndex"),t.get("yAxisId"),0)+'" not found')}e.coordSysDims=["x","y"],i.set("x",o),i.set("y",a),yh(o)&&(n.set("x",o),e.firstCategoryDimIndex=0),yh(a)&&(n.set("y",a),null==e.firstCategoryDimIndex&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,i,n){var o=t.getReferringComponents("singleAxis")[0];if(eS&&!o)throw new Error("singleAxis should be specified.");e.coordSysDims=["single"],i.set("single",o),yh(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");if(eS){if(!r)throw new Error("angleAxis option not found");if(!a)throw new Error("radiusAxis option not found")}e.coordSysDims=["radius","angle"],i.set("radius",a),i.set("angle",r),yh(a)&&(n.set("radius",a),e.firstCategoryDimIndex=0),yh(r)&&(n.set("angle",r),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e){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();f(a.parallelAxisIndex,function(t,a){var s=o.getComponent("parallelAxis",t),l=r[a];i.set(l,s),yh(s)&&null==e.firstCategoryDimIndex&&(n.set(l,s),e.firstCategoryDimIndex=a)})}};Ih.prototype.parse=function(t){return t},Ih.prototype.getSetting=function(t){return this._setting[t]},Ih.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},Ih.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},Ih.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},Ih.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},Ih.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},Ih.prototype.getExtent=function(){return this._extent.slice()},Ih.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},Ih.prototype.isBlank=function(){return this._isBlank},Ih.prototype.setBlank=function(t){this._isBlank=t},Ih.prototype.getLabel=null,_o(Ih),Mo(Ih,{registerWhenExtend:!0}),Th.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&p(i,Dh);return new Th({categories:n,needCollect:!n,deduplication:e.dedplication!==!1})};var vL=Th.prototype;vL.getOrdinal=function(t){return Ah(this).get(t)},vL.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=Ah(this);return e=n.get(t),null==e&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=0/0),e};var yL=Ih.prototype,xL=Ih.extend({type:"ordinal",init:function(t,e){(!t||_(t))&&(t=new Th({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),yL.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return yL.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(yL.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){return this.isBlank()?void 0: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:G,niceExtent:G});xL.create=function(){return new xL};var _L=Ir,wL=Ir,bL=Ih.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]),bL.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=Lh(t)},getTicks:function(t){var e=this._interval,i=this._extent,n=this._niceExtent,o=this._intervalPrecision,a=[];if(!e)return a;var r=1e4;i[0]r)return[];var l=a.length?a[a.length-1]:n[1];return i[1]>l&&a.push(t?wL(l+e,o):i[1]),a},getMinorTicks:function(t){for(var e=this.getTicks(!0),i=[],n=this.getExtent(),o=1;os;){var c=Ir(r+(s+1)*h);c>n[0]&&co&&(o=-o,n.reverse());var a=Ch(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]=wL(Math.floor(e[0]/o)*o)),t.fixMax||(e[1]=wL(Math.ceil(e[1]/o)*o))}});bL.create=function(){return new bL};var SL="__ec_stack_",ML=.5,IL="undefined"!=typeof Float32Array?Float32Array:Array,TL={seriesType:"bar",plan:PD(),reset:function(t){function e(t,e){for(var i,d=t.count,f=new IL(2*d),p=new IL(2*d),g=new IL(d),m=[],v=[],y=0,x=0;null!=(i=t.next());)v[h]=e.get(s,i),v[1-h]=e.get(l,i),m=n.dataToPoint(v,null,m),p[y]=u?o.x+o.width:m[0],f[y++]=m[0],p[y]=u?m[1]:o.y+o.height,f[y++]=m[1],g[x++]=i;e.setLayout({largePoints:f,largeDataIndices:g,largeBackgroundPoints:p,barWidth:c,valueAxisStart:Zh(a,r,!1),backgroundStart:u?o.x:o.y,valueAxisHorizontal:u})}if(Wh(t)&&Hh(t)){var i=t.getData(),n=t.coordinateSystem,o=n.grid.getRect(),a=n.getBaseAxis(),r=n.getOtherAxis(a),s=i.mapDimension(r.dim),l=i.mapDimension(a.dim),u=r.isHorizontal(),h=u?0:1,c=Gh(Bh([t]),a,t).width;return c>ML||(c=ML),{progress:e}}}},AL=bL.prototype,DL=Math.ceil,CL=Math.floor,LL=1e3,kL=60*LL,PL=60*kL,OL=24*PL,EL=function(t,e,i,n){for(;n>i;){var o=i+n>>>1;t[o][1]a&&(a=e),null!=i&&a>i&&(a=i);var r=zL.length,s=EL(zL,a,0,r),l=zL[Math.min(s,r-1)],u=l[1];if("year"===l[0]){var h=o/u,c=zr(h/t,!0);u*=c}var d=this.getSetting("useUTC")?0:60*new Date(+n[0]||+n[1]).getTimezoneOffset()*1e3,f=[Math.round(DL((n[0]-d)/u)*u+d),Math.round(CL((n[1]-d)/u)*u+d)];Ph(f,n),this._stepLvl=l,this._interval=u,this._niceExtent=f},parse:function(t){return+Or(t)}});f(["contain","normalize"],function(t){NL.prototype[t]=function(e){return AL[t].call(this,this.parse(e))}});var zL=[["hh:mm:ss",LL],["hh:mm:ss",5*LL],["hh:mm:ss",10*LL],["hh:mm:ss",15*LL],["hh:mm:ss",30*LL],["hh:mm\nMM-dd",kL],["hh:mm\nMM-dd",5*kL],["hh:mm\nMM-dd",10*kL],["hh:mm\nMM-dd",15*kL],["hh:mm\nMM-dd",30*kL],["hh:mm\nMM-dd",PL],["hh:mm\nMM-dd",2*PL],["hh:mm\nMM-dd",6*PL],["hh:mm\nMM-dd",12*PL],["MM-dd\nyyyy",OL],["MM-dd\nyyyy",2*OL],["MM-dd\nyyyy",3*OL],["MM-dd\nyyyy",4*OL],["MM-dd\nyyyy",5*OL],["MM-dd\nyyyy",6*OL],["week",7*OL],["MM-dd\nyyyy",10*OL],["week",14*OL],["week",21*OL],["month",31*OL],["week",42*OL],["month",62*OL],["week",70*OL],["quarter",95*OL],["month",31*OL*4],["month",31*OL*5],["half-year",380*OL/2],["month",31*OL*8],["month",31*OL*10],["year",380*OL]];NL.create=function(t){return new NL({useUTC:t.ecModel.get("useUTC")})};var RL=Ih.prototype,BL=bL.prototype,VL=Dr,GL=Ir,FL=Math.floor,WL=Math.ceil,HL=Math.pow,ZL=Math.log,UL=Ih.extend({type:"log",base:10,$constructor:function(){Ih.apply(this,arguments),this._originalScale=new bL},getTicks:function(t){var e=this._originalScale,i=this._extent,n=e.getExtent();return p(BL.getTicks.call(this,t),function(t){var o=Ir(HL(this.base,t));return o=t===i[0]&&e.__fixMin?Uh(o,n[0]):o,o=t===i[1]&&e.__fixMax?Uh(o,n[1]):o},this)},getMinorTicks:BL.getMinorTicks,getLabel:BL.getLabel,scale:function(t){return t=RL.scale.call(this,t),HL(this.base,t)},setExtent:function(t,e){var i=this.base;t=ZL(t)/ZL(i),e=ZL(e)/ZL(i),BL.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=RL.getExtent.call(this);e[0]=HL(t,e[0]),e[1]=HL(t,e[1]);var i=this._originalScale,n=i.getExtent();return i.__fixMin&&(e[0]=Uh(e[0],n[0])),i.__fixMax&&(e[1]=Uh(e[1],n[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=ZL(t[0])/ZL(e),t[1]=ZL(t[1])/ZL(e),RL.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(!(1/0===i||0>=i)){var n=Er(i),o=t/i*n;for(.5>=o&&(n*=10);!isNaN(n)&&Math.abs(n)<1&&Math.abs(n)>0;)n*=10;var a=[Ir(WL(e[0]/n)*n),Ir(FL(e[1]/n)*n)];this._interval=n,this._niceExtent=a}},niceExtent:function(t){BL.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});f(["contain","normalize"],function(t){UL.prototype[t]=function(e){return e=ZL(e)/ZL(this.base),RL[t].call(this,e)}}),UL.create=function(){return new UL};var XL={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&&!A(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&&!A(i)&&(i=this.axis.scale.parse(i)),i},getNeedCrossZero:function(){var t=this.option;return null!=t.rangeStart||null!=t.rangeEnd?!1:!t.scale},getCoordSysModel:G,setRange:function(t,e){this.option.rangeStart=t,this.option.rangeEnd=e},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}},YL=ya({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()}}),jL=ya({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()}}),qL=ya({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()}}),KL=ya({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()}}),$L={line:jT,rect:XT,roundRect:XT,square:XT,circle:NT,diamond:jL,pin:qL,arrow:KL,triangle:YL},JL={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}},QL={};f($L,function(t,e){QL[e]=new t});var tk=ya({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,i){var n=Ki(t,e,i),o=this.shape;return o&&"pin"===o.symbolType&&"inside"===e.textPosition&&(n.y=i.y+.4*i.height),n},buildPath:function(t,e,i){var n=e.symbolType;if("none"!==n){var o=QL[n];o||(n="rect",o=QL[n]),JL[n](e.x,e.y,e.width,e.height,o.shape),o.buildPath(t,o.shape,i)}}}),ek={isDimensionStacked:_h,enableDataStack:xh,getStackedDimension:wh},ik=(Object.freeze||Object)({createList:ac,getLayoutRect:ts,dataStack:ek,createScale:rc,mixinAxisModelCommonMethods:sc,completeDimensions:fh,createDimensions:gL,createSymbol:oc}),nk=1e-8;hc.prototype={constructor:hc,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;sn;n++)if("polygon"===i[n].type){var a=i[n].exterior,r=i[n].interiors;if(uc(a,t[0],t[1])){for(var s=0;s<(r?r.length:0);s++)if(uc(r[s]))continue t;return!0}}return!1},transformTo:function(t,e,i,n){var o=this.getBoundingRect(),a=o.width/o.height;i?n||(n=i/a):i=a*n;for(var r=new Ti(t,e,i,n),s=o.calculateTransform(r),l=this.geometries,u=0;u0}),function(t){var i=t.properties,n=t.geometry,o=n.coordinates,a=[];"Polygon"===n.type&&a.push({type:"polygon",exterior:o[0],interiors:o.slice(1)}),"MultiPolygon"===n.type&&f(o,function(t){t[0]&&a.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})});var r=new hc(i[e||"name"],a,i.cp);return r.properties=i,r})},ak=ho(),rk=[0,1],sk=function(t,e,i){this.dim=t,this.scale=e,this._extent=i||[0,0],this.inverse=!1,this.onBand=!1};sk.prototype={constructor:sk,contain:function(t){var e=this._extent,i=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return t>=i&&n>=t},containData:function(t){return this.scale.contain(t)},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(t){return Cr(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&&(i=i.slice(),Ac(i,n.count())),Sr(t,rk,i,e)},coordToData:function(t,e){var i=this._extent,n=this.scale;this.onBand&&"ordinal"===n.type&&(i=i.slice(),Ac(i,n.count()));var o=Sr(t,i,rk,e);return this.scale.scale(o)},pointToData:function(){},getTicksCoords:function(t){t=t||{};var e=t.tickModel||this.getTickModel(),i=pc(this,e),n=i.ticks,o=p(n,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this),a=e.get("alignWithLabel");return Dc(this,o,a,t.clamp),o},getMinorTicksCoords:function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick"),e=t.get("splitNumber");e>0&&100>e||(e=5);var i=this.scale.getMinorTicks(e),n=p(i,function(t){return p(t,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this)},this);return n},getViewLabels:function(){return fc(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 Sc(this)}};var lk=ok,uk={};f(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(t){uk[t]=xS[t]});var hk={};f(["extendShape","extendPath","makePath","makeImage","mergePath","resizePath","createIcon","setHoverStyle","setLabelStyle","setTextStyle","setText","getFont","updateProps","initProps","getTransform","clipPointsByRect","clipRectByRect","registerShape","getShapeClass","Group","Image","Text","Circle","Sector","Ring","Polygon","Polyline","Rect","Line","BezierCurve","Arc","IncrementalDisplayable","CompoundPath","LinearGradient","RadialGradient","BoundingRect"],function(t){hk[t]=vA[t]});var ck=function(t){this._axes={},this._dimList=[],this.name=t||""};ck.prototype={constructor:ck,type:"cartesian",getAxis:function(t){return this._axes[t]},getAxes:function(){return p(this._dimList,Cc,this)},getAxesByScale:function(t){return t=t.toLowerCase(),m(this.getAxes(),function(e){return e.scale.type===t})},addAxis:function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},dataToCoord:function(t){return this._dataCoordConvert(t,"dataToCoord")},coordToData:function(t){return this._dataCoordConvert(t,"coordToData")},_dataCoordConvert:function(t,e){for(var i=this._dimList,n=t instanceof Array?[]:{},o=0;oe[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},h(dk,sk);var fk={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)"]}}},pk={};pk.categoryAxis=o({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},fk),pk.valueAxis=o({boundaryGap:[0,0],splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#eee",width:1}}},fk),pk.timeAxis=s({scale:!0,min:"dataMin",max:"dataMax"},pk.valueAxis),pk.logAxis=s({scale:!0,logBase:10},pk.valueAxis);var gk=["value","category","time","log"],mk=function(t,e,i,n){f(gk,function(r){e.extend({type:t+"Axis."+r,mergeDefaultAndTheme:function(e,n){var a=this.layoutMode,s=a?os(e):{},l=n.getTheme();o(e,l.get(r+"Axis")),o(e,this.getDefaultOption()),e.type=i(t,e),a&&ns(e,s,a)},optionUpdated:function(){var t=this.option;"category"===t.type&&(this.__ordinalMeta=Th.createByAxisModel(this))},getCategories:function(t){var e=this.option;return"category"===e.type?t?e.data:this.__ordinalMeta.categories:void 0},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:a([{},pk[r+"Axis"],n],!0)})}),WA.registerSubTypeDefaulter(t+"Axis",x(i,t))},vk=WA.extend({type:"cartesian2dAxis",axis:null,init:function(){vk.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){vk.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){vk.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});o(vk.prototype,XL);var yk={offset:0};mk("x",vk,kc,yk),mk("y",vk,kc,yk),WA.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 xk=Oc.prototype;xk.type="grid",xk.axisPointerEnabled=!0,xk.getRect=function(){return this._rect},xk.update=function(t,e){var i=this._axesMap;this._updateScale(t,this.model),f(i.x,function(t){jh(t.scale,t.model)}),f(i.y,function(t){jh(t.scale,t.model)});var n={};f(i.x,function(t){Ec(i,"y",t,n)}),f(i.y,function(t){Ec(i,"x",t,n)}),this.resize(this.model,e)},xk.resize=function(t,e,i){function n(){f(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]),zc(t,e?o.x:o.y)})}var o=ts(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;n(),!i&&t.get("containLabel")&&(f(a,function(t){if(!t.model.get("axisLabel.inside")){var e=Qh(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())},xk.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]}},xk.getAxes=function(){return this._axesList.slice()},xk.getCartesian=function(t,e){if(null!=t&&null!=e){var i="x"+t+"y"+e;return this._coordsMap[i]}S(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var n=0,o=this._coordsList;nt&&(t=e),t},defaultOption:{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1}}});var bk=AI([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),Sk={getBarItemStyle:function(t){var e=bk(this,t);if(this.getBorderLineDash){var i=this.getBorderLineDash();i&&(e.lineDash=i)}return e}},Mk=ya({type:"sausage",shape:{cx:0,cy:0,r0:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},buildPath:function(t,e){var i=e.cx,n=e.cy,o=Math.max(e.r0||0,0),a=Math.max(e.r,0),r=.5*(a-o),s=o+r,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=Math.cos(l),d=Math.sin(l),f=Math.cos(u),p=Math.sin(u),g=h?u-l<2*Math.PI:l-u<2*Math.PI;g&&(t.moveTo(c*o+i,d*o+n),t.arc(c*s+i,d*s+n,r,-Math.PI+l,l,!h)),t.arc(i,n,a,l,u,!h),t.moveTo(f*a+i,p*a+n),t.arc(f*s+i,p*s+n,r,u-2*Math.PI,u-Math.PI,!h),0!==o&&(t.arc(i,n,o,u,l,h),t.moveTo(c*o+i,p*o+n)),t.closePath()}}),Ik=["itemStyle","barBorderWidth"],Tk=[0,0];r(mr.prototype,Sk),Fu({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):eS&&console.warn("Only cartesian2d and polar supported for bar."),this.group},incrementalPrepareRender:function(t){this._clear(),this._updateDrawMode(t)},incrementalRender:function(t,e){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){var e,i=this.group,n=t.getData(),o=this._data,a=t.coordinateSystem,r=a.getBaseAxis();"cartesian2d"===a.type?e=r.isHorizontal():"polar"===a.type&&(e="angle"===r.dim);var s=t.isAnimationEnabled()?t:null,l=t.get("clip",!0),u=Uc(a,n);i.removeClipPath();var h=t.get("roundCap",!0),c=t.get("showBackground",!0),d=t.getModel("backgroundStyle"),f=d.get("barBorderRadius")||0,p=[],g=this._backgroundEls||[],m=function(t){var i=kk[a.type](n,t),o=id(a,e,i);return o.useStyle(d.getBarItemStyle()),"cartesian2d"===a.type&&o.setShape("r",f),p[t]=o,o};n.diff(o).add(function(o){var r=n.getItemModel(o),d=kk[a.type](n,o,r);if(c&&m(o),n.hasValue(o)){if(l){var f=Ck[a.type](u,d);if(f)return void i.remove(p)}var p=Lk[a.type](o,d,e,s,!1,h);n.setItemGraphicEl(o,p),i.add(p),qc(p,n,o,r,d,t,e,"polar"===a.type)}}).update(function(r,v){var y=n.getItemModel(r),x=kk[a.type](n,r,y);if(c){var _;0===g.length?_=m(v):(_=g[v],_.useStyle(d.getBarItemStyle()),"cartesian2d"===a.type&&_.setShape("r",f),p[r]=_);var w=kk[a.type](n,r),b=ed(e,w,a);nr(_,{shape:b},s,r)}var S=o.getItemGraphicEl(v);if(!n.hasValue(r))return void i.remove(S);if(l){var M=Ck[a.type](u,x);if(M)return void i.remove(S)}S?nr(S,{shape:x},s,r):S=Lk[a.type](r,x,e,s,!0,h),n.setItemGraphicEl(r,S),i.add(S),qc(S,n,r,y,x,t,e,"polar"===a.type)}).remove(function(t){var e=o.getItemGraphicEl(t);"cartesian2d"===a.type?e&&Xc(t,s,e):e&&Yc(t,s,e)}).execute();var v=this._backgroundGroup||(this._backgroundGroup=new xM);v.removeAll();for(var y=0;yi&&(e.x+=e.width,e.width=-e.width),0>n&&(e.y+=e.height,e.height=-e.height);var o=Ak(e.x,t.x),a=Dk(e.x+e.width,t.x+t.width),r=Ak(e.y,t.y),s=Dk(e.y+e.height,t.y+t.height);e.x=o,e.y=r,e.width=a-o,e.height=s-r;var l=e.width<0||e.height<0;return 0>i&&(e.x+=e.width,e.width=-e.width),0>n&&(e.y+=e.height,e.height=-e.height),l},polar:function(t,e){var i=e.r0<=e.r?1:-1;if(0>i){var n=e.r;e.r=e.r0,e.r0=n}var n=Dk(e.r,t.r),o=Ak(e.r0,t.r0);e.r=n,e.r0=o;var a=0>n-o;if(0>i){var n=e.r;e.r=e.r0,e.r0=n}return a}},Lk={cartesian2d:function(t,e,i,n,o){var a=new XT({shape:r({},e),z2:1});if(a.name="item",n){var s=a.shape,l=i?"height":"width",u={};s[l]=0,u[l]=e[l],vA[o?"updateProps":"initProps"](a,{shape:u},n,t)}return a},polar:function(t,e,i,n,o,a){var r=e.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){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}},Pk=oa.extend({type:"largeBar",shape:{points:[]},buildPath:function(t,e){for(var i=e.points,n=this.__startPoint,o=this.__baseDimIdx,a=0;a=0?i:null},30,!1),Ek=Math.PI,Nk=function(t,e){this.opt=e,this.axisModel=t,s(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0}),this.group=new xM;var i=new xM({position:e.position.slice(),rotation:e.rotation});i.updateTransform(),this._transform=i.transform,this._dumbGroup=i};Nk.prototype={constructor:Nk,hasBuilder:function(t){return!!zk[t]},add:function(t){zk[t].call(this)},getGroup:function(){return this.group}};var zk={axisLine:function(){var t=this.opt,e=this.axisModel;if(e.get("axisLine.show")){var i=this.axisModel.axis.getExtent(),n=this._transform,o=[i[0],0],a=[i[1],0];n&&(ae(o,o,n),ae(a,a,n));var s=r({lineCap:"round"},e.getModel("axisLine.lineStyle").getLineStyle());this.group.add(new jT({anid:"line",subPixelOptimize:!0,shape:{x1:o[0],y1:o[1],x2:a[0],y2:a[1]},style:s,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1}));var l=e.get("axisLine.symbol"),u=e.get("axisLine.symbolSize"),h=e.get("axisLine.symbolOffset")||0;if("number"==typeof h&&(h=[h,h]),null!=l){"string"==typeof l&&(l=[l,l]),("string"==typeof u||"number"==typeof u)&&(u=[u,u]);var c=u[0],d=u[1];f([{rotate:t.rotation+Math.PI/2,offset:h[0],r:0},{rotate:t.rotation-Math.PI/2,offset:h[1],r:Math.sqrt((o[0]-a[0])*(o[0]-a[0])+(o[1]-a[1])*(o[1]-a[1]))}],function(e,i){if("none"!==l[i]&&null!=l[i]){var n=oc(l[i],-c/2,-d/2,c,d,s.stroke,!0),a=e.r+e.offset,r=[o[0]+a*Math.cos(t.rotation),o[1]-a*Math.sin(t.rotation)];n.attr({rotation:e.rotate,position:r,silent:!0,z2:11}),this.group.add(n)}},this)}}},axisTickLabel:function(){var t=this.axisModel,e=this.opt,i=ud(this,t,e),n=cd(this,t,e);od(t,n,i),hd(this,t,e)},axisName:function(){var t=this.opt,e=this.axisModel,i=D(t.axisName,e.get("name"));if(i){var n,o=e.get("nameLocation"),a=t.nameDirection,s=e.getModel("nameTextStyle"),l=e.get("nameGap")||0,u=this.axisModel.axis.getExtent(),h=u[0]>u[1]?-1:1,c=["start"===o?u[0]-h*l:"end"===o?u[1]+h*l:(u[0]+u[1])/2,sd(o)?t.labelOffset+a*l:0],d=e.get("nameRotate");null!=d&&(d=d*Ek/180);var f;sd(o)?n=Bk(t.rotation,null!=d?d:t.rotation,a):(n=nd(t,o,d||0,u),f=t.axisNameAvailableWidth,null!=f&&(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=D(t.nameTruncateMaxWidth,g.maxWidth,f),y=null!=m&&null!=v?EA(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 ET({anid:"name",__fullText:i,__truncatedText:y,position:c,rotation:n.rotation,silent:Vk(e),z2:1,tooltip:x&&x.show?r({content:i,formatter:function(){return i},formatterParams:w},x):null});Ya(b.style,s,{text:y,textFont:p,textFill:s.getTextColor()||e.get("axisLine.lineStyle.color"),textAlign:s.get("align")||n.textAlign,textVerticalAlign:s.get("verticalAlign")||n.textVerticalAlign}),e.get("triggerEvent")&&(b.eventData=Rk(e),b.eventData.targetType="axisName",b.eventData.name=i),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},Rk=Nk.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},Bk=Nk.innerTextLayout=function(t,e,i){var n,o,a=kr(e-t);return Pr(a)?(o=i>0?"top":"bottom",n="center"):Pr(a-Ek)?(o=i>0?"bottom":"top",n="center"):(o="middle",n=a>0&&Ek>a?i>0?"right":"left":i>0?"left":"right"),{rotation:a,textAlign:n,textVerticalAlign:o}},Vk=Nk.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},Gk=f,Fk=x,Wk=Vu({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,i,n){this.axisPointerClass&&yd(t),Wk.superApply(this,"render",arguments),Sd(this,t,e,i,n,!0)},updateAxisPointer:function(t,e,i,n){Sd(this,t,e,i,n,!1)},remove:function(t,e){var i=this._axisPointer;i&&i.remove(e),Wk.superApply(this,"remove",arguments)},dispose:function(t,e){Md(this,e),Wk.superApply(this,"dispose",arguments)}}),Hk=[];Wk.registerAxisPointerClass=function(t,e){if(eS&&Hk[t])throw new Error("axisPointer "+t+" exists");Hk[t]=e},Wk.getAxisPointerClass=function(t){return t&&Hk[t]};var Zk=["axisLine","axisTickLabel","axisName"],Uk=["splitArea","splitLine","minorSplitLine"],Xk=Wk.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(t,e,i,n){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new xM,this.group.add(this._axisGroup),t.get("show")){var a=t.getCoordSysModel(),r=Id(a,t),s=new Nk(t,r);f(Zk,s.add,s),this._axisGroup.add(s.getGroup()),f(Uk,function(e){t.get(e+".show")&&this["_"+e](t,a)},this),lr(o,this._axisGroup,t),Xk.superCall(this,"render",t,e,i,n)}},remove:function(){Ad(this)},_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=_(a)?a:[a];for(var r=e.coordinateSystem.getRect(),l=i.isHorizontal(),u=0,h=i.getTicksCoords({tickModel:n}),c=[],d=[],f=o.getLineStyle(),p=0;p0&&Gd(i[o-1]);o--);for(;o>n&&Gd(i[n]);n++);}for(;o>n;)n+=Fd(t,i,n,o,o,1,a.min,a.max,e.smooth,e.smoothMonotone,e.connectNulls)+1}}),uP=oa.extend({type:"ec-polygon",shape:{points:[],stackedOnPoints:[],smooth:0,stackedOnSmooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},brush:RT(oa.prototype.brush),buildPath:function(t,e){var i=e.points,n=e.stackedOnPoints,o=0,a=i.length,r=e.smoothMonotone,s=Zd(i,e.smoothConstraint),l=Zd(n,e.smoothConstraint);if(e.connectNulls){for(;a>0&&Gd(i[a-1]);a--);for(;a>o&&Gd(i[o]);o++);}for(;a>o;){var u=Fd(t,i,o,a,a,1,s.min,s.max,e.smooth,r,e.connectNulls);Fd(t,n,o+u-1,u,a,-1,l.min,l.max,e.stackedOnSmooth,r,e.connectNulls),o+=u+1,t.closePath()}}});vl.extend({type:"line",init:function(){var t=new xM,e=new Pd;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,e,i){var n=t.coordinateSystem,o=this.group,a=t.getData(),r=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.mapArray(a.getItemLayout),h="polar"===n.type,c=this._coordSys,d=this._symbolDraw,f=this._polyline,p=this._polygon,g=this._lineGroup,m=t.get("animation"),v=!l.isEmpty(),y=l.get("origin"),x=zd(n,a,y),_=jd(n,a,x),w=t.get("showSymbol"),b=w&&!h&&$d(t,a,n),S=this._data;S&&S.eachItemGraphicEl(function(t,e){t.__temp&&(o.remove(t),S.setItemGraphicEl(e,null))}),w||d.remove(),o.add(g);var M,I=!h&&t.get("step");n&&n.getArea&&t.get("clip",!0)&&(M=n.getArea(),null!=M.width?(M.x-=.1,M.y-=.1,M.width+=.2,M.height+=.2):M.r0&&(M.r0-=.5,M.r1+=.5)),this._clipShapeForSymbol=M,f&&c.type===n.type&&I===this._step?(v&&!p?p=this._newPolygon(u,_,n,m):p&&!v&&(g.remove(p),p=this._polygon=null),g.setClipPath(Qd(n,!1,t)),w&&d.updateData(a,{isIgnore:b,clipShape:M}),a.eachItemGraphicEl(function(t){t.stopAnimation(!0)}),Ud(this._stackedOnPoints,_)&&Ud(this._points,u)||(m?this._updateAnimation(a,_,n,i,I,y):(I&&(u=qd(u,n,I),_=qd(_,n,I)),f.setShape({points:u}),p&&p.setShape({points:u,stackedOnPoints:_})))):(w&&d.updateData(a,{isIgnore:b,clipShape:M}),I&&(u=qd(u,n,I),_=qd(_,n,I)),f=this._newPolyline(u,n,m),v&&(p=this._newPolygon(u,_,n,m)),g.setClipPath(Qd(n,!0,t)));var T=Kd(a,n)||a.getVisual("color");f.useStyle(s(r.getLineStyle(),{fill:"none",stroke:T,lineJoin:"bevel"}));var A=t.get("smooth");if(A=Yd(t.get("smooth")),f.setShape({smooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),p){var D=a.getCalculationInfo("stackedOnSeries"),C=0;p.useStyle(s(l.getAreaStyle(),{fill:T,opacity:.7,lineJoin:"bevel"})),D&&(C=Yd(D.get("smooth"))),p.setShape({smooth:A,stackedOnSmooth:C,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})}this._data=a,this._coordSys=n,this._stackedOnPoints=_,this._points=u,this._step=I,this._valueOrigin=y},dispose:function(){},highlight:function(t,e,i,n){var o=t.getData(),a=uo(o,n);if(!(a instanceof Array)&&null!=a&&a>=0){var r=o.getItemGraphicEl(a);if(!r){var s=o.getItemLayout(a);if(!s)return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(s[0],s[1]))return;r=new Dd(o,a),r.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 vl.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var o=t.getData(),a=uo(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 vl.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new lP({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 uP({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=tP(this._data,t,this._stackedOnPoints,e,this._coordSys,i,this._valueOrigin,a),h=u.current,c=u.stackedOnCurrent,d=u.next,f=u.stackedOnNext;if(o&&(h=qd(u.current,i,o),c=qd(u.stackedOnCurrent,i,o),d=qd(u.next,i,o),f=qd(u.stackedOnNext,i,o)),Xd(h,d)>3e3||s&&Xd(c,f)>3e3)return r.setShape({points:d}),void(s&&s.setShape({points:d,stackedOnPoints:f}));r.shape.__points=u.current,r.shape.points=h,nr(r,{shape:{points:d}},l),s&&(s.setShape({points:h,stackedOnPoints:c}),nr(s,{shape:{points:d,stackedOnPoints:f}},l));for(var p=[],g=u.status,m=0;me&&(e=t[i]);return isFinite(e)?e:0/0},min:function(t){for(var e=1/0,i=0;i1){var u;"string"==typeof i?u=dP[i]:"function"==typeof i&&(u=i),u&&t.setData(e.downSample(e.mapDimension(a.dim),1/l,u,fP))}}}}};Nu(hP("line","circle","line")),Eu(cP("line")),Cu(OC.PROCESSOR.STATISTIC,pP("line"));var gP=function(t,e,i){e=_(e)&&{coordDimensions:e}||r({},e);var n=t.getSource(),o=gL(n,e),a=new dL(o,t);return a.initData(n,i),a},mP={updateSelectedMap:function(t){this._targetList=_(t)?t.slice():[],this._selectTargetMap=g(t||[],function(t,e){return t.set(e.name,e),t},B())},select:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t),n=this.get("selectedMode");"single"===n&&this._selectTargetMap.each(function(t){t.selected=!1}),i&&(i.selected=!0)},unSelect:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);i&&(i.selected=!1)},toggleSelected:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);return null!=i?(this[i.selected?"unSelect":"select"](t,e),i.selected):void 0},isSelected:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);return i&&i.selected}},vP=Gu({type:"series.pie",init:function(t){vP.superApply(this,"init",arguments),this.legendVisualProvider=new tf(y(this.getData,this),y(this.getRawData,this)),this.updateSelectedMap(this._createSelectableList()),this._defaultLabelLine(t)},mergeOption:function(t){vP.superCall(this,"mergeOption",t),this.updateSelectedMap(this._createSelectableList())},getInitialData:function(){return gP(this,{coordDimensions:["value"],encodeDefaulter:x(ys,this)})},_createSelectableList:function(){for(var t=this.getRawData(),e=t.mapDimension("value"),i=[],n=0,o=t.count();o>n;n++)i.push({name:t.getName(n),value:t.get(e,n),selected:ol(t,n,"selected")});return i},getDataParams:function(t){var e=this.getData(),i=vP.superCall(this,"getDataParams",t),n=[];return e.each(e.mapDimension("value"),function(t){n.push(t)}),i.percent=Lr(n,t,e.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},_defaultLabelLine:function(t){eo(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},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,hoverOffset:10,avoidLabelOverlap:!0,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:!1,show:!0,position:"outer",alignTo:"none",margin:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},animationType:"expansion",animationTypeUpdate:"transition",animationEasing:"cubicOut"}}); +c(vP,mP);var yP=of.prototype;yP.updateData=function(t,e,i){var n=this.childAt(0),o=this.childAt(1),a=this.childAt(2),l=t.hostModel,u=t.getItemModel(e),h=t.getItemLayout(e),c=r({},h);c.label=null;var d=l.getShallow("animationTypeUpdate");if(i){n.setShape(c);var f=l.getShallow("animationType");"scale"===f?(n.shape.r=h.r0,or(n,{shape:{r:h.r}},l,e)):(n.shape.endAngle=h.startAngle,nr(n,{shape:{endAngle:h.endAngle}},l,e))}else"expansion"===d?n.setShape(c):nr(n,{shape:c},l,e);var p=t.getItemVisual(e,"color");n.useStyle(s({lineJoin:"bevel",fill:p},u.getModel("itemStyle").getItemStyle())),n.hoverStyle=u.getModel("emphasis.itemStyle").getItemStyle();var g=u.getShallow("cursor");g&&n.attr("cursor",g),nf(this,t.getItemLayout(e),l.isSelected(t.getName(e)),l.get("selectedOffset"),l.get("animation"));var m=!i&&"transition"===d;this._updateLabel(t,e,m),this.highDownOnUpdate=l.get("silent")?null:function(t,e){var i=l.isAnimationEnabled()&&u.get("hoverAnimation");"emphasis"===e?(o.ignore=o.hoverIgnore,a.ignore=a.hoverIgnore,i&&(n.stopAnimation(!0),n.animateTo({shape:{r:h.r+l.get("hoverOffset")}},300,"elasticOut"))):(o.ignore=o.normalIgnore,a.ignore=a.normalIgnore,i&&(n.stopAnimation(!0),n.animateTo({shape:{r:h.r}},300,"elasticOut")))},Fa(this)},yP._updateLabel=function(t,e,i){var n=this.childAt(1),o=this.childAt(2),a=t.hostModel,r=t.getItemModel(e),s=t.getItemLayout(e),l=s.label,u=t.getItemVisual(e,"color");if(!l||isNaN(l.x)||isNaN(l.y))return void(o.ignore=o.normalIgnore=o.hoverIgnore=n.ignore=n.normalIgnore=n.hoverIgnore=!0);var h={points:l.linePoints||[[l.x,l.y],[l.x,l.y],[l.x,l.y]]},c={x:l.x,y:l.y};i?(nr(n,{shape:h},a,e),nr(o,{style:c},a,e)):(n.attr({shape:h}),o.attr({style:c})),o.attr({rotation:l.rotation,origin:[l.x,l.y],z2:10});var d=r.getModel("label"),f=r.getModel("emphasis.label"),p=r.getModel("labelLine"),g=r.getModel("emphasis.labelLine"),u=t.getItemVisual(e,"color");Ua(o.style,o.hoverStyle={},d,f,{labelFetcher:t.hostModel,labelDataIndex:e,defaultText:l.text,autoColor:u,useInsideStyle:!!l.inside},{textAlign:l.textAlign,textVerticalAlign:l.verticalAlign,opacity:t.getItemVisual(e,"opacity")}),o.ignore=o.normalIgnore=!d.get("show"),o.hoverIgnore=!f.get("show"),n.ignore=n.normalIgnore=!p.get("show"),n.hoverIgnore=!g.get("show"),n.setStyle({stroke:u,opacity:t.getItemVisual(e,"opacity")}),n.setStyle(p.getModel("lineStyle").getLineStyle()),n.hoverStyle=g.getModel("lineStyle").getLineStyle();var m=p.get("smooth");m&&m===!0&&(m=.4),n.setShape({smooth:m})},h(of,xM);var xP=(vl.extend({type:"pie",init:function(){var t=new xM;this._sectorGroup=t},render:function(t,e,i,n){if(!n||n.from!==this.uid){var o=t.getData(),a=this._data,r=this.group,s=e.get("animation"),l=!a,u=t.get("animationType"),h=t.get("animationTypeUpdate"),c=x(ef,this.uid,t,s,i),d=t.get("selectedMode");if(o.diff(a).add(function(t){var e=new of(o,t);l&&"scale"!==u&&e.eachChild(function(t){t.stopAnimation(!0)}),d&&e.on("click",c),o.setItemGraphicEl(t,e),r.add(e)}).update(function(t,e){var i=a.getItemGraphicEl(e);l||"transition"===h||i.eachChild(function(t){t.stopAnimation(!0)}),i.updateData(o,t),i.off("click"),d&&i.on("click",c),r.add(i),o.setItemGraphicEl(t,i)}).remove(function(t){var e=a.getItemGraphicEl(t);r.remove(e)}).execute(),s&&o.count()>0&&(l?"scale"!==u:"transition"!==h)){for(var f=o.getItemLayout(0),p=1;isNaN(f.startAngle)&&p=n.r0}}}),function(t,e){f(e,function(e){e.update="updateView",ku(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,seriesId:i.seriesId}})})}),_P=function(t){return{getTargetSeries:function(e){var i={},n=B();return e.eachSeriesByType(t,function(t){t.__paletteScope=i,n.set(t.uid,t)}),n},reset:function(t){var e=t.getRawData(),i={},n=t.getData();n.each(function(t){var e=n.getRawIndex(t);i[e]=t}),e.each(function(o){var a,r=i[o],s=null!=r&&n.getItemVisual(r,"color",!0),l=null!=r&&n.getItemVisual(r,"borderColor",!0);if(s&&l||(a=e.getItemModel(o)),!s){var u=a.get("itemStyle.color")||t.getColorFromPalette(e.getName(o)||o+"",t.__paletteScope,e.count());null!=r&&n.setItemVisual(r,"color",u)}if(!l){var h=a.get("itemStyle.borderColor");null!=r&&n.setItemVisual(r,"borderColor",h)}})}}},wP=Math.PI/180,bP=function(t,e,i,n,o,a){var r,s,l=t.getData(),u=[],h=!1,c=(t.get("minShowLabelAngle")||0)*wP;l.each(function(n){var a=l.getItemLayout(n),d=l.getItemModel(n),f=d.getModel("label"),p=f.get("position")||d.get("emphasis.label.position"),g=f.get("distanceToLabelLine"),m=f.get("alignTo"),v=Mr(f.get("margin"),i),y=f.get("bleedMargin"),x=f.getFont(),_=d.getModel("labelLine"),w=_.get("length");w=Mr(w,i);var b=_.get("length2");if(b=Mr(b,i),!(a.angleD?-1:1)*b,B=z;S="edge"===m?0>D?o+v:o+i-v:R+(0>D?-g:g),M=B,I=[[O,E],[N,z],[R,B]]}T=P?"center":"edge"===m?D>0?"right":"left":D>0?"left":"right"}var V,G=f.get("rotate");V="number"==typeof G?G*(Math.PI/180):G?0>D?-A+Math.PI:-A:0,h=!!V,a.label={x:S,y:M,position:p,height:k.height,len:w,len2:b,linePoints:I,textAlign:T,verticalAlign:"middle",rotation:V,inside:P,labelDistance:g,labelAlignTo:m,labelMargin:v,bleedMargin:y,textRect:k,text:L,font:x},P||u.push(a.label)}}),!h&&t.get("avoidLabelOverlap")&&rf(u,r,s,e,i,n,o,a)},SP=2*Math.PI,MP=Math.PI/180,IP=function(t,e,i){e.eachSeriesByType(t,function(t){var e=t.getData(),n=e.mapDimension("value"),o=lf(t,i),a=t.get("center"),r=t.get("radius");_(r)||(r=[0,r]),_(a)||(a=[a,a]);var s=Mr(o.width,i.getWidth()),l=Mr(o.height,i.getHeight()),u=Math.min(s,l),h=Mr(a[0],s)+o.x,c=Mr(a[1],l)+o.y,d=Mr(r[0],u/2),f=Mr(r[1],u/2),p=-t.get("startAngle")*MP,g=t.get("minAngle")*MP,m=0;e.each(n,function(t){!isNaN(t)&&m++});var v=e.getSum(n),y=Math.PI/(v||m)*2,x=t.get("clockwise"),w=t.get("roseType"),b=t.get("stillShowZeroSum"),S=e.getDataExtent(n);S[0]=0;var M=SP,I=0,T=p,A=x?1:-1;if(e.each(n,function(t,i){var n;if(isNaN(t))return void e.setItemLayout(i,{angle:0/0,startAngle:0/0,endAngle:0/0,clockwise:x,cx:h,cy:c,r0:d,r:w?0/0:f,viewRect:o});n="area"!==w?0===v&&b?y:t*y:SP/m,g>n?(n=g,M-=g):I+=t;var a=T+A*n;e.setItemLayout(i,{angle:n,startAngle:T,endAngle:a,clockwise:x,cx:h,cy:c,r0:d,r:w?Sr(t,S,[d,f]):f,viewRect:o}),T=a}),SP>M&&m)if(.001>=M){var D=SP/m;e.each(n,function(t,i){if(!isNaN(t)){var n=e.getItemLayout(i);n.angle=D,n.startAngle=p+A*i*D,n.endAngle=p+A*(i+1)*D}})}else y=M/I,T=p,e.each(n,function(t,i){if(!isNaN(t)){var n=e.getItemLayout(i),o=n.angle===g?g:t*y;n.startAngle=T,n.endAngle=T+A*o,T+=A*o}});bP(t,f,o.width,o.height,o.x,o.y)})},TP=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&&u+a>=t&&h+r>=e)return s}return-1}}),CP=uf.prototype;CP.isPersistent=function(){return!this._incremental},CP.updateData=function(t,e){this.group.removeAll();var i=new DP({rectHover:!0,cursor:"default"});i.setShape({points:t.getLayout("symbolPoints")}),this._setCommon(i,t,!1,e),this.group.add(i),this._incremental=null},CP.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)})}},CP.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new va({silent:!0})),this.group.add(this._incremental)):this._incremental=null},CP.incrementalUpdate=function(t,e,i){var n;this._incremental?(n=new DP,this._incremental.addDisplayable(n,!0)):(n=new DP({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end}),n.incremental=!0,this.group.add(n)),n.setShape({points:e.getLayout("symbolPoints")}),this._setCommon(n,e,!!this._incremental,i)},CP._setCommon=function(t,e,i,n){var o=e.hostModel;n=n||{};var a=e.getVisual("symbolSize");t.setShape("size",a instanceof Array?a:[a,a]),t.softClipShape=n.clipShape||null,t.symbolProxy=oc(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var r=t.shape.size[0]=0&&(t.dataIndex=i+(t.startIndex||0))}))},CP.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},CP._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},Fu({type:"scatter",render:function(t){var e=t.getData(),i=this._updateSymbolDraw(e,t);i.updateData(e,{clipShape:this._getClipShape(t)}),this._finished=!0},incrementalPrepareRender:function(t){var e=t.getData(),i=this._updateSymbolDraw(e,t);i.incrementalPrepareUpdate(e),this._finished=!1},incrementalRender:function(t,e){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},updateTransform:function(t){var e=t.getData();if(this.group.dirty(),!this._finished||e.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var i=cP().reset(t);i.progress&&i.progress({start:0,end:e.count()},e),this._symbolDraw.updateLayout(e)},_getClipShape:function(t){var e=t.coordinateSystem,i=e&&e.getArea&&e.getArea();return t.get("clip",!0)?i:null},_updateSymbolDraw:function(t,e){var i=this._symbolDraw,n=e.pipelineContext,o=n.large;return i&&o===this._isLargeDraw||(i&&i.remove(),i=this._symbolDraw=o?new uf:new Pd,this._isLargeDraw=o,this.group.removeAll()),this.group.add(i.group),i},remove:function(){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},dispose:function(){}}),Nu(hP("scatter","circle")),Eu(cP("scatter")),CD.extend({type:"series.effectScatter",dependencies:["grid","polar"],getInitialData:function(){return bh(this.getSource(),this,{useEncodeDefaulter:!0})},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 LP=3,kP=df.prototype;kP.stopEffectAnimation=function(){this.childAt(1).removeAll()},kP.startEffectAnimation=function(t){for(var e=t.symbolType,i=t.color,n=this.childAt(1),o=0;LP>o;o++){var a=oc(e,-1,-1,2,2,i);a.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scale:[.5,.5]});var r=-o/LP*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)}cf(n,t)},kP.updateEffectAnimation=function(t){for(var e=this._effectCfg,i=this.childAt(1),n=["symbolType","period","rippleScale"],o=0;o0?WP:HP)}function o(t,e){return e.get(t>0?GP:FP)}var a=t.getData();if(a.setVisual({legendSymbol:"roundRect",colorP:n(1,t),colorN:n(-1,t),borderColorP:o(1,t),borderColorN:o(-1,t)}),!e.isSeriesFiltered(t)){var r=t.pipelineContext.large;return!r&&{progress:i}}}},UP="undefined"!=typeof Float32Array?Float32Array:Array,XP={seriesType:"candlestick",plan:PD(),reset:function(t){function e(t,e){function i(t,e){var i=[];return i[r]=e,i[s]=t,isNaN(e)||isNaN(t)?[0/0,0/0]:n.dataToPoint(i)}function o(t,e,i){var n=e.slice(),o=e.slice();n[r]=pA(n[r]+a/2,1,!1),o[r]=pA(o[r]-a/2,1,!0),i?t.push(n,o):t.push(o,n)}function l(t,e,n){var o=i(t,n),l=i(e,n);return o[r]-=a/2,l[r]-=a/2,{x:o[0],y:o[1],width:s?a:l[0]-o[0],height:s?l[1]-o[1]:a}}function h(t){return t[r]=pA(t[r],1),t}for(var g;null!=(g=t.next());){var m=e.get(u,g),v=e.get(c,g),y=e.get(d,g),x=e.get(f,g),_=e.get(p,g),w=Math.min(v,y),b=Math.max(v,y),S=i(w,m),M=i(b,m),I=i(x,m),T=i(_,m),A=[];o(A,M,0),o(A,S,1),A.push(h(T),h(M),h(I),h(S)),e.setItemLayout(g,{sign:xf(e,g,v,y,d),initBaseline:v>y?M[s]:S[s],ends:A,brushRect:l(x,_,m)})}}function i(t,e){for(var i,o,a=new UP(4*t.count),l=0,h=[],g=[];null!=(o=t.next());){var m=e.get(u,o),v=e.get(c,o),y=e.get(d,o),x=e.get(f,o),_=e.get(p,o);isNaN(m)||isNaN(x)||isNaN(_)?(a[l++]=0/0,l+=3):(a[l++]=xf(e,o,v,y,d),h[r]=m,h[s]=x,i=n.dataToPoint(h,null,g),a[l++]=i?i[0]:0/0,a[l++]=i?i[1]:0/0,h[s]=_,i=n.dataToPoint(h,null,g),a[l++]=i?i[1]:0/0)}e.setLayout("largePoints",a)}var n=t.coordinateSystem,o=t.getData(),a=_f(t,o),r=0,s=1,l=["x","y"],u=o.mapDimension(l[r]),h=o.mapDimension(l[s],!0),c=h[0],d=h[1],f=h[2],p=h[3];return o.setLayout({candleWidth:a,isSimpleBox:1.3>=a}),null==u||h.length<4?void 0:{progress:t.pipelineContext.large?i:e}}};Du(VP),Nu(ZP),Eu(XP),h(wf,sk),bf.prototype.getIndicatorAxes=function(){return this._indicatorAxes},bf.prototype.dataToPoint=function(t,e){var i=this._indicatorAxes[e];return this.coordToPoint(i.dataToCoord(t),e)},bf.prototype.coordToPoint=function(t,e){var i=this._indicatorAxes[e],n=i.angle,o=this.cx+t*Math.cos(n),a=this.cy-t*Math.sin(n);return[o,a]},bf.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;lh&&(o=u,s=l,r=h)}return[s,+(o&&o.coordToData(n))]},bf.prototype.resize=function(t,e){var i=t.get("center"),n=e.getWidth(),o=e.getHeight(),a=Math.min(n,o)/2;this.cx=Mr(i[0],n),this.cy=Mr(i[1],o),this.startAngle=t.get("startAngle")*Math.PI/180;var r=t.get("radius");("string"==typeof r||"number"==typeof r)&&(r=[0,r]),this.r0=Mr(r[0],a),this.r=Mr(r[1],a),f(this._indicatorAxes,function(t,e){t.setExtent(this.r0,this.r);var i=this.startAngle+e*Math.PI*2/this._indicatorAxes.length;i=Math.atan2(Math.sin(i),Math.cos(i)),t.angle=i},this)},bf.prototype.update=function(t){function e(t){var e=Math.pow(10,Math.floor(Math.log(t)/Math.LN10)),i=t/e;return 2===i?i=5:i*=2,i*e}var i=this._indicatorAxes,n=this._model;f(i,function(t){t.scale.setExtent(1/0,-1/0)}),t.eachSeriesByType("radar",function(e){if("radar"===e.get("coordinateSystem")&&t.getComponent("radar",e.get("radarIndex"))===n){var o=e.getData();f(i,function(t){t.scale.unionExtentFromData(o,o.mapDimension(t.dim))})}},this);var o=n.get("splitNumber");f(i,function(t){var i=Xh(t.scale,t.model).extent;jh(t.scale,t.model);var n=t.model,a=t.scale,r=n.getMin(),s=n.getMax(),l=a.getInterval();if(null!=r&&null!=s)a.setExtent(+r,+s),a.setInterval((s-r)/o);else if(null!=r){var u;do u=r+l*o,a.setExtent(+r,u),a.setInterval(l),l=e(l);while(ui[0]&&isFinite(h)&&isFinite(i[0]))}else{var c=a.getTicks().length-1;c>o&&(l=e(l));var u=Math.ceil(i[1]/l)*l,h=Ir(u-l*o);a.setExtent(h,u),a.setInterval(l)}})},bf.dimensions=[],bf.create=function(t,e){var i=[];return t.eachComponent("radar",function(n){var o=new bf(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},ks.register("radar",bf);var YP=pk.valueAxis,jP=(Bu({type:"radar",optionUpdated:function(){var t=this.get("boundaryGap"),e=this.get("splitNumber"),i=this.get("scale"),a=this.get("axisLine"),l=this.get("axisTick"),u=this.get("axisType"),h=this.get("axisLabel"),c=this.get("name"),d=this.get("name.show"),f=this.get("name.formatter"),g=this.get("nameGap"),m=this.get("triggerEvent"),v=p(this.get("indicator")||[],function(p){null!=p.max&&p.max>0&&!p.min?p.min=0:null!=p.min&&p.min<0&&!p.max&&(p.max=0);var v=c;if(null!=p.color&&(v=s({color:p.color},c)),p=o(n(p),{boundaryGap:t,splitNumber:e,scale:i,axisLine:a,axisTick:l,axisType:u,axisLabel:h,name:p.text,nameLocation:"end",nameGap:g,nameTextStyle:v,triggerEvent:m},!1),d||(p.name=""),"string"==typeof f){var y=p.name;p.name=f.replace("{value}",null!=y?y:"")}else"function"==typeof f&&(p.name=f(p.name,p));var x=r(new mr(p,null,this.ecModel),XL);return x.mainType="radar",x.componentIndex=this.componentIndex,x},this);this.getIndicatorModels=function(){return v}},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:o({lineStyle:{color:"#bbb"}},YP.axisLine),axisLabel:Sf(YP.axisLabel,!1),axisTick:Sf(YP.axisTick,!1),axisType:"interval",splitLine:Sf(YP.splitLine,!0),splitArea:Sf(YP.splitArea,!0),indicator:[]}}),["axisLine","axisTickLabel","axisName"]);Vu({type:"radar",render:function(t){var e=this.group;e.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},_buildAxes:function(t){var e=t.coordinateSystem,i=e.getIndicatorAxes(),n=p(i,function(t){var i=new Nk(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1});return i});f(n,function(t){f(jP,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"),r=t.getModel("splitArea"),l=a.getModel("lineStyle"),u=r.getModel("areaStyle"),h=a.get("show"),c=r.get("show"),d=l.get("color"),g=u.get("color");d=_(d)?d:[d],g=_(g)?g:[g];var m=[],v=[];if("circle"===o)for(var y=n[0].getTicksCoords(),x=i.cx,w=i.cy,b=0;b=b;b++){for(var A=[],D=0;D":"\n";return Wr(""===s?this.name:s)+l+p(r,function(e){var i=o.get(o.mapDimension(e.dim),t);return Wr(e.name+" : "+i)}).join(l)},getTooltipPosition:function(t){if(null!=t)for(var e=this.getData(),i=this.coordinateSystem,n=e.getValues(p(i.dimensions,function(t){return e.mapDimension(t)}),t,!0),o=0,a=n.length;a>o;o++)if(!isNaN(n[o])){var r=i.getIndicatorAxes();return i.coordToPoint(r[o].dataToCoord(n[o]),o)}},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4}});Fu({type:"radar",render:function(t){function e(t,e){var i=t.getItemVisual(e,"symbol")||"circle",n=t.getItemVisual(e,"color");if("none"!==i){var o=Mf(t.getItemVisual(e,"symbolSize")),a=oc(i,-1,-1,2,2,n),r=t.getItemVisual(e,"symbolRotate")||0;return a.attr({style:{strokeNoScale:!0},z2:100,scale:[o[0]/2,o[1]/2],rotation:r*Math.PI/180||0}),a}}function i(i,n,o,a,r,s){o.removeAll();for(var l=0;lf;++f){var p=t[f],g=p[0],m=p[1],v=p[2],y=n(v);c.globalAlpha=y,c.drawImage(r,g-u,m-u)}if(!h.width||!h.height)return h;for(var x=c.getImageData(0,0,h.width,h.height),_=x.data,w=0,b=_.length,S=this.minOpacity,M=this.maxOpacity,I=M-S;b>w;){var y=_[w+3]/256,T=4*Math.floor(y*(JP-1));if(y>0){var A=a(y)?s:l;y>0&&(y=y*I+S),_[w++]=A[T],_[w++]=A[T+1],_[w++]=A[T+2],_[w++]=A[T+3]*y*256}else w+=4}return c.putImageData(x,0,0),h},_getBrush:function(){var t=this._brushCanvas||(this._brushCanvas=mS()),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;256>s;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}},Fu({type:"heatmap",render:function(t,e,i){var n;if(e.eachComponent("visualMap",function(e){e.eachTargetSeries(function(i){i===t&&(n=e)})}),eS&&!n)throw new Error("Heatmap must use with visualMap");this.group.removeAll(),this._incrementalDisplayable=null;var o=t.coordinateSystem;"cartesian2d"===o.type||"calendar"===o.type?this._renderOnCartesianAndCalendar(t,i,0,t.getData().count()):Lf(o)&&this._renderOnGeo(o,t,n,i)},incrementalPrepareRender:function(){this.group.removeAll()},incrementalRender:function(t,e,i,n){var o=e.coordinateSystem;o&&this._renderOnCartesianAndCalendar(e,n,t.start,t.end,!0)},_renderOnCartesianAndCalendar:function(t,e,i,n,o){var a,s,l=t.coordinateSystem;if("cartesian2d"===l.type){var u=l.getAxis("x"),h=l.getAxis("y");if(eS){if("category"!==u.type||"category"!==h.type)throw new Error("Heatmap on cartesian must have two category axes");if(!u.onBand||!h.onBand)throw new Error("Heatmap on cartesian must have two axes with boundaryGap true")}a=u.getBandWidth(),s=h.getBandWidth()}for(var c=this.group,d=t.getData(),f="itemStyle",p="emphasis.itemStyle",g="label",m="emphasis.label",v=t.getModel(f).getItemStyle(["color"]),y=t.getModel(p).getItemStyle(),x=t.getModel(g),_=t.getModel(m),w=l.type,b="cartesian2d"===w?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],S=i;n>S;S++){var M;if("cartesian2d"===w){if(isNaN(d.get(b[2],S)))continue;var I=l.dataToPoint([d.get(b[0],S),d.get(b[1],S)]);M=new XT({shape:{x:Math.floor(Math.round(I[0])-a/2),y:Math.floor(Math.round(I[1])-s/2),width:Math.ceil(a),height:Math.ceil(s)},style:{fill:d.getItemVisual(S,"color"),opacity:d.getItemVisual(S,"opacity")}})}else{if(isNaN(d.get(b[1],S)))continue;M=new XT({z2:1,shape:l.dataToRect([d.get(b[0],S)]).contentShape,style:{fill:d.getItemVisual(S,"color"),opacity:d.getItemVisual(S,"opacity")}})}var T=d.getItemModel(S);d.hasItemOption&&(v=T.getModel(f).getItemStyle(["color"]),y=T.getModel(p).getItemStyle(),x=T.getModel(g),_=T.getModel(m));var A=t.getRawValue(S),D="-";A&&null!=A[2]&&(D=A[2]),Ua(v,y,x,_,{labelFetcher:t,labelDataIndex:S,defaultText:D,isRectText:!0}),M.setStyle(v),Fa(M,d.hasItemOption?y:r({},y)),M.incremental=o,o&&(M.useHoverLayer=!0),c.add(M),d.setItemGraphicEl(S,M)}},_renderOnGeo:function(t,e,i,n){var o=i.targetVisuals.inRange,a=i.targetVisuals.outOfRange,r=e.getData(),s=this._hmLayer||this._hmLayer||new Af;s.blurSize=e.get("blurSize"),s.pointSize=e.get("pointSize"),s.minOpacity=e.get("minOpacity"),s.maxOpacity=e.get("maxOpacity");var l=t.getViewRect().clone(),u=t.getRoamTransform();l.applyTransform(u);var h=Math.max(l.x,0),c=Math.max(l.y,0),d=Math.min(l.width+l.x,n.getWidth()),f=Math.min(l.height+l.y,n.getHeight()),p=d-h,g=f-c,m=[r.mapDimension("lng"),r.mapDimension("lat"),r.mapDimension("value")],v=r.mapArray(m,function(e,i,n){var o=t.dataToPoint([e,i]);return o[0]-=h,o[1]-=c,o.push(n),o}),y=i.getExtent(),x="visualMap.continuous"===i.type?Cf(y,i.option.range):Df(y,i.getPieceList(),i.option.selected);s.update(v,p,g,o.color.getNormalizer(),{inRange:o.color.getColorMapper(),outOfRange:a.color.getColorMapper()},x);var _=new Dn({style:{width:p,height:g,x:h,y:c,image:s.canvas},silent:!0});this.group.add(_)},dispose:function(){}});var QP=f,tO="\x00__link_datas",eO="\x00__link_mainData",iO=function(t,e){this.name=t||"",this.depth=0,this.height=0,this.parentNode=null,this.dataIndex=-1,this.children=[],this.viewChildren=[],this.hostTree=e};iO.prototype={constructor:iO,isRemoved:function(){return this.dataIndex<0},eachNode:function(t,e,i){"function"==typeof t&&(i=e,e=t,t=null),t=t||{},b(t)&&(t={order:t});var n,o=t.order||"preorder",a=this[t.attr||"children"];"preorder"===o&&(n=e.call(i,this));for(var r=0;!n&&re&&(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;n>e;e++){var o=i[e].getNodeById(t);if(o)return o}},contains:function(t){if(t===this)return!0;for(var e=0,i=this.children,n=i.length;n>e;e++){var o=i[e].contains(t);if(o)return o}},getAncestors:function(t){for(var e=[],i=t?this:this.parentNode;i;)e.push(i),i=i.parentNode;return e.reverse(),e},getValue:function(t){var e=this.hostTree.data;return e.get(e.getDimension(t||"value"),this.dataIndex)},setLayout:function(t,e){this.dataIndex>=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=this.hostTree,i=e.data.getItemModel(this.dataIndex);return i.getModel(t)}},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)}},Vf.prototype={constructor:Vf,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;n>i;i++)e[i].dataIndex=-1;for(var i=0,n=t.count();n>i;i++)e[t.getRawIndex(i)].dataIndex=i},clearLayouts:function(){this.data.clearItemLayouts()}},Vf.createTree=function(t,e,i){function n(t,e){var i=t.value;r=Math.max(r,_(i)?i.length:1),a.push(t);var s=new iO(t.name,o);e?Gf(s,e):o.root=s,o._nodes.push(s);var l=t.children;if(l)for(var u=0;ur&&(r=t.depth)});var s=t.expandAndCollapse,l=s&&t.initialTreeDepth>=0?t.initialTreeDepth:r;return a.root.eachNode("preorder",function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=l}),a.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 Wr(a+(isNaN(o)||null==o?"":" : "+o))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",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}});var nO=ae;c(tp,ZS),ep.prototype={constructor:ep,type:"view",dimensions:["x","y"],setBoundingRect:function(t,e,i,n){return this._rect=new Ti(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 Ti(t,e,i,n)},transformTo:function(t,e,i,n){var o=this.getBoundingRect(),a=this._rawTransformable;a.transform=o.calculateTransform(new Ti(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(),e=t.x+t.width/2,i=t.y+t.height/2;return[e,i]},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=ae([],n,t),i=ae([],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(),Ne(this.transform||(this.transform=[]),e.transform||Oe()),this._rawTransform=e.getLocalTransform(),this.invTransform=this.invTransform||[],Ge(this.invTransform,this.transform),this.decomposeTransform()},getTransformInfo:function(){var t=this._roamTransformable.transform,e=this._rawTransformable;return{roamTransform:t?k(t):Oe(),rawScale:k(e.scale),rawPosition:k(e.position)}},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?nO(i,t,n):W(i,t)},pointToData:function(t){var e=this.invTransform;return e?nO([],t,e):[t[0],t[1]]},convertToPixel:x(ip,"dataToPoint"),convertFromPixel:x(ip,"pointToData"),containPoint:function(t){return this.getViewRectAfterRoam().contain(t[0],t[1])}},c(ep,ZS);var oO="\x00_ec_interaction_mutex";ku({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),c(up,AS);var aO={axisPointer:1,tooltip:1,brush:1},rO=ya({shape:{parentPoint:[],childPoints:[],orient:"",forkPosition:""},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.childPoints,n=i.length,o=e.parentPoint,a=i[0],r=i[n-1];if(1===n)return t.moveTo(o[0],o[1]),void t.lineTo(a[0],a[1]);var s=e.orient,l="TB"===s||"BT"===s?0:1,u=1-l,h=Mr(e.forkPosition,1),c=[];c[l]=o[l],c[u]=o[u]+(r[u]-o[u])*h,t.moveTo(o[0],o[1]),t.lineTo(c[0],c[1]),t.moveTo(a[0],a[1]),c[l]=a[l],t.lineTo(c[0],c[1]),c[l]=r[l],t.lineTo(c[0],c[1]),t.lineTo(r[0],r[1]);for(var d=1;n-1>d;d++){var f=i[d];t.moveTo(f[0],f[1]),c[l]=f[l],t.lineTo(c[0],c[1])}}});Fu({type:"tree",init:function(t,e){this._oldTree,this._mainGroup=new xM,this._controller=new up(e.getZr()),this._controllerHost={target:this.group},this.group.add(this._mainGroup)},render:function(t,e,i){var n=t.getData(),o=t.layoutInfo,a=this._mainGroup,r=t.get("layout");"radial"===r?a.attr("position",[o.x+o.width/2,o.y+o.height/2]):a.attr("position",[o.x,o.y]),this._updateViewCoordSys(t,o,r),this._updateController(t,e,i);var s=this._data,l={expandAndCollapse:t.get("expandAndCollapse"),layout:r,edgeShape:t.get("edgeShape"),edgeForkPosition:t.get("edgeForkPosition"),orient:t.getOrient(),curvature:t.get("lineStyle.curveness"),symbolRotate:t.get("symbolRotate"),symbolOffset:t.get("symbolOffset"),hoverAnimation:t.get("hoverAnimation"),useNameLabel:!0,fadeIn:!0};n.diff(s).add(function(e){xp(n,e)&&wp(n,e,null,a,t,l)}).update(function(e,i){var o=s.getItemGraphicEl(i);return xp(n,e)?void wp(n,e,o,a,t,l):void(o&&Sp(s,i,o,a,t,l))}).remove(function(e){var i=s.getItemGraphicEl(e);i&&Sp(s,e,i,a,t,l)}).execute(),this._nodeScaleRatio=t.get("nodeScaleRatio"),this._updateNodeAndLinkScale(t),l.expandAndCollapse===!0&&n.eachItemGraphicEl(function(e,n){e.off("click").on("click",function(){i.dispatchAction({type:"treeExpandAndCollapse",seriesId:t.id,dataIndex:n})})}),this._data=n},_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=[];Vo(i,n,o);var a=this._min,r=this._max;o[0]-n[0]===0&&(n[0]=a?a[0]:n[0]-1,o[0]=r?r[0]:o[0]+1),o[1]-n[1]===0&&(n[1]=a?a[1]:n[1]-1,o[1]=r?r[1]:o[1]+1);var s=t.coordinateSystem=new ep;s.zoomLimit=t.get("scaleLimit"),s.setBoundingRect(n[0],n[1],o[0]-n[0],o[1]-n[1]),s.setCenter(t.get("center")),s.setZoom(t.get("zoom")),this.group.attr({position:s.position,scale:s.scale}),this._viewCoordSys=s,this._min=n,this._max=o},_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)&&!yp(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){np(o,e.dx,e.dy),i.dispatchAction({seriesId:t.id,type:"treeRoam",dx:e.dx,dy:e.dy})},this).on("zoom",function(e){op(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){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,a=e.getZoom(),r=(a-1)*i+1;return r/o},dispose:function(){this._controller&&this._controller.dispose(),this._controllerHost={}},remove:function(){this._mainGroup.removeAll(),this._data=null}}),ku({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,o=n.getNodeByDataIndex(i);o.isExpand=!o.isExpand})}),ku({type:"treeRoam",event:"treeRoam",update:"none"},function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},function(e){var i=e.coordinateSystem,n=Ip(i,t);e.setCenter&&e.setCenter(n.center),e.setZoom&&e.setZoom(n.zoom)})});var sO=function(t,e){t.eachSeriesByType("tree",function(t){Dp(t,e)})};Nu(hP("tree","circle")),Eu(sO),CD.extend({type:"series.treemap",layoutMode:"box",dependencies:["grid","polar"],preventUsingHoverLayer:!0,_viewRoot:null,defaultOption:{progressive: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){function i(t){t.wrapMethod("getItemModel",function(t,e){var i=l.getNodeByDataIndex(e),n=s[i.depth];return t.parentModel=n||r,t})}var n={name:t.name,children:t.data};Op(n);var o=t.levels||[],a=this.designatedVisualItemStyle={},r=new mr({itemStyle:a},this,e);o=t.levels=Ep(o,e);var s=p(o||[],function(t){return new mr(t,r,e)},this),l=Vf.createTree(n,this,i);return l.data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=Gr(_(i)?i[0]:i),o=e.getName(t);return Wr(o+": "+n)},getDataParams:function(t){var e=CD.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=Pp(i,this),e},setLayoutInfo:function(t){this.layoutInfo=this.layoutInfo||{},r(this.layoutInfo,t)},mapIdToIndex:function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=B(),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 lO=8,uO=8,hO=5;Np.prototype={constructor:Np,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),es(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+2*lO,e.emptyItemWidth);e.totalWidth+=r+uO,e.renderList.push({node:n,text:o,width:r})}},_renderContent:function(t,e,i,n,o){for(var a=0,r=e.emptyItemWidth,l=t.get("breadcrumb.height"),u=Qr(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-r,g=r,m=null);var v=new WT({shape:{points:zp(a,0,g,l,d===c.length-1,0===d)},style:s(i.getItemStyle(),{lineJoin:"bevel",text:m,textFill:n.getTextColor(),textFont:n.getFont()}),z:10,onclick:x(o,p)});this.group.add(v),Rp(v,t,p),a+=g+uO}},remove:function(){this.group.removeAll()}};var cO=y,dO=xM,fO=XT,pO=f,gO=3,mO=["label"],vO=["emphasis","label"],yO=["upperLabel"],xO=["emphasis","upperLabel"],_O=10,wO=1,bO=2,SO=AI([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),MO=function(t){var e=SO(t);return e.stroke=e.fill=e.lineWidth=null,e};Fu({type:"treemap",init:function(){this._containerGroup,this._storage=Vp(),this._oldTree,this._breadcrumb,this._controller,this._state="ready"},render:function(t,e,i,n){var o=e.findComponents({mainType:"series",subType:"treemap",query:n});if(!(u(o,t)<0)){this.seriesModel=t,this.api=i,this.ecModel=e;var a=["treemapZoomToNode","treemapRootToNode"],r=Cp(n,a,t),s=n&&n.type,l=t.layoutInfo,h=!this._oldTree,c=this._storage,d="treemapRootToNode"===s&&r&&c?{rootNodeGroup:c.nodeGroup[r.node.getRawIndex()],direction:n.direction}:null,f=this._giveContainerGroup(l),p=this._doRender(f,t,d);h||s&&"treemapZoomToNode"!==s&&"treemapRootToNode"!==s?p.renderFinally():this._doAnimation(f,p,t,d),this._resetController(i),this._renderBreadcrumb(t,i,r)}},_giveContainerGroup:function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new dO,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,h=d(l,u,i,a);h&&n(l&&l.viewChildren||[],u&&u.viewChildren||[],h,o,a+1)}o?(e=t,pO(t,function(t,e){!t.isRemoved()&&s(e,e)})):new Xu(e,t,r,r).add(s).update(s).remove(x(s,null)).execute()}function o(t){var e=Vp();return t&&pO(t,function(t,i){var n=e[i];pO(t,function(t){t&&(n.push(t),t.__tmWillDelete=1)})}),e}function a(){pO(f,function(t){pO(t,function(t){t.parent&&t.parent.remove(t)})}),pO(c,function(t){t.invisible=!0,t.dirty()})}var r=e.getData().tree,s=this._oldTree,l=Vp(),u=Vp(),h=this._storage,c=[],d=x(Gp,e,u,h,i,l,c);n(r.root?[r.root]:[],s&&s.root?[s.root]:[],t,r===s||!s,0);var f=o(h);return this._oldTree=r,this._storage=u,{lastsForAnimation:l,willDeleteEls:f,renderFinally:a}},_doAnimation:function(t,e,i,n){if(i.get("animation")){var o=i.get("animationDurationUpdate"),a=i.get("animationEasing"),s=Bp();pO(e.willDeleteEls,function(t,e){pO(t,function(t){if(!t.invisible){var i,r=t.parent;if(n&&"drillDown"===n.direction)i=r===n.rootNodeGroup?{shape:{x:0,y:0,width:r.__tmNodeWidth,height:r.__tmNodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var l=0,u=0;r.__tmWillDelete||(l=r.__tmNodeWidth/2,u=r.__tmNodeHeight/2),i="nodeGroup"===e?{position:[l,u],style:{opacity:0}}:{shape:{x:l,y:u,width:0,height:0},style:{opacity:0}}}i&&s.add(t,i,o,a)}})}),pO(this._storage,function(t,i){pO(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=r({},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,a))})},this),this._state="animating",s.done(cO(function(){this._state="ready",e.renderFinally()},this)).start()}},_resetController:function(t){var e=this._controller;e||(e=this._controller=new up(t.getZr()),e.enable(this.seriesModel.get("roam")),e.on("pan",cO(this._onPan,this)),e.on("zoom",cO(this._onZoom,this)));var i=new Ti(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)>gO||Math.abs(t.dy)>gO)){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 Ti(o.x,o.y,o.width,o.height),r=this.seriesModel.layoutInfo;e-=r.x,i-=r.y;var s=Oe();Re(s,s,[-e,-i]),Ve(s,s,[t.scale,t.scale]),Re(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&&$r(a,r)}}}}},this)},_renderBreadcrumb:function(t,e,i){function n(e){"animating"!==this._state&&(kp(t.getViewRoot(),e)?this._rootToNode({node:e}):this._zoomToNode({node:e}))}i||(i=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2),i||(i={node:t.getData().tree.root})),(this._breadcrumb||(this._breadcrumb=new Np(this.group))).render(t,e,i.node,cO(n,this))},remove:function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=Vp(),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,n=this.seriesModel.getViewRoot();return n.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 IO=function(){},TO=["treemapZoomToNode","treemapRender","treemapMove"],AO=0;AOn&&(a=n,o=i)}for(var o,a=1/0,r=0,s=e.length;s>r;r++){var l=e[r].value;if(null!=l){if(l===t||"string"==typeof l&&l===t+"")return r;i&&n(l,r)}}for(var r=0,s=e.length;s>r;r++){var u=e[r],h=u.interval,c=u.close;if(h){if(h[0]===-1/0){if(Qp(c[1],t,h[1]))return r}else if(1/0===h[1]){if(Qp(c[0],h[0],t))return r}else if(Qp(c[0],h[0],t)&&Qp(c[1],t,h[1]))return r;i&&n(h[0],r),i&&n(h[1],r)}}return i?1/0===t?e.length-1:t===-1/0?0:o:void 0};var EO=_,NO="itemStyle",zO={seriesType:"treemap",reset:function(t){var e=t.getData().tree,i=e.root;i.isRemoved()||tg(i,{},t.getViewRoot().getAncestors(),t)}},RO=Math.max,BO=Math.min,VO=D,GO=f,FO=["itemStyle","borderWidth"],WO=["itemStyle","gapWidth"],HO=["upperLabel","show"],ZO=["upperLabel","height"],UO={seriesType:"treemap",reset:function(t,e,i,n){var o=i.getWidth(),a=i.getHeight(),s=t.option,l=ts(t.getBoxLayoutParams(),{width:i.getWidth(),height:i.getHeight()}),u=s.size||[],h=Mr(VO(l.width,u[0]),o),c=Mr(VO(l.height,u[1]),a),d=n&&n.type,f=["treemapZoomToNode","treemapRootToNode"],p=Cp(n,f,t),g="treemapRender"===d||"treemapMove"===d?n.rootRect:null,m=t.getViewRoot(),v=Lp(m);if("treemapMove"!==d){var y="treemapZoomToNode"===d?gg(t,p,m,h,c):g?[g.width,g.height]:[h,c],x=s.sort;x&&"asc"!==x&&"desc"!==x&&(x="desc");var _={squareRatio:s.squareRatio,sort:x,leafDepth:s.leafDepth};m.hostTree.clearLayouts();var w={x:0,y:0,width:y[0],height:y[1],area:y[0]*y[1]};m.setLayout(w),lg(m,_,!1,0);var w=m.getLayout();GO(v,function(t,e){var i=(v[e+1]||m).getValue();t.setLayout(r({dataExtent:[i,i],borderWidth:0,upperHeight:0},w))})}var b=t.getData().tree.root;b.setLayout(mg(l,g,p),!0),t.setLayoutInfo(l),vg(b,new Ti(-l.x,-l.y,o,a),v,m,0)}};Nu(zO),Eu(UO),CD.extend({type:"series.sunburst",_viewRoot:null,getInitialData:function(t,e){function i(t){t.wrapMethod("getItemModel",function(t,e){var i=a.getNodeByDataIndex(e),n=o[i.depth];return n&&(t.parentModel=n),t})}var n={name:t.name,children:t.data};xg(n);var o=p(t.levels||[],function(t){return new mr(t,this,e)},this),a=Vf.createTree(n,this,i);return a.data},optionUpdated:function(){this.resetViewRoot()},getDataParams:function(t){var e=CD.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=Pp(i,this),e},defaultOption:{zlevel:0,z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,percentPrecision:2,stillShowZeroSum:!0,highlightPolicy:"descendant",nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},highlight:{itemStyle:{opacity:1}},downplay:{itemStyle:{opacity:.5},label:{opacity:.6}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicOut",data:[],levels:[],sort:"desc"},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 XO={NONE:"none",DESCENDANT:"descendant",ANCESTOR:"ancestor",SELF:"self"},YO=2,jO=4,qO=_g.prototype;qO.updateData=function(t,e,i,n,a){this.node=e,e.piece=this,n=n||this._seriesModel,a=a||this._ecModel;var l=this.childAt(0);l.dataIndex=e.dataIndex;var u=e.getModel(),h=e.getLayout(),c=r({},h);c.label=null;var d=wg(e,n,a);Mg(e,n,d);var f,p=u.getModel("itemStyle").getItemStyle();if("normal"===i)f=p;else{var g=u.getModel(i+".itemStyle").getItemStyle();f=o(g,p)}f=s({lineJoin:"bevel",fill:f.fill||d},f),t?(l.setShape(c),l.shape.r=h.r0,nr(l,{shape:{r:h.r}},n,e.dataIndex),l.useStyle(f)):"object"==typeof f.fill&&f.fill.type||"object"==typeof l.style.fill&&l.style.fill.type?(nr(l,{shape:c},n),l.useStyle(f)):nr(l,{shape:c,style:f},n),this._updateLabel(n,d,i);var m=u.getShallow("cursor");if(m&&l.attr("cursor",m),t){var v=n.getShallow("highlightPolicy");this._initEvents(l,e,n,v)}this._seriesModel=n||this._seriesModel,this._ecModel=a||this._ecModel,Fa(this)},qO.onEmphasis=function(t){var e=this;this.node.hostTree.root.eachNode(function(i){i.piece&&(e.node===i?i.piece.updateData(!1,i,"emphasis"):Sg(i,e.node,t)?i.piece.childAt(0).trigger("highlight"):t!==XO.NONE&&i.piece.childAt(0).trigger("downplay"))})},qO.onNormal=function(){this.node.hostTree.root.eachNode(function(t){t.piece&&t.piece.updateData(!1,t,"normal")})},qO.onHighlight=function(){this.updateData(!1,this.node,"highlight")},qO.onDownplay=function(){this.updateData(!1,this.node,"downplay")},qO._updateLabel=function(t,e,i){function n(t){var e=r.get(t);return null==e?a.get(t):e}var o=this.node.getModel(),a=o.getModel("label"),r="normal"===i||"emphasis"===i?a:o.getModel(i+".label"),s=o.getModel("emphasis.label"),l=r.get("formatter"),u=l?i:"normal",h=D(t.getFormattedLabel(this.node.dataIndex,u,null,null,"label"),this.node.name);n("show")===!1&&(h="");var c=this.node.getLayout(),d=r.get("minAngle");null==d&&(d=a.get("minAngle")),d=d/180*Math.PI;var f=c.endAngle-c.startAngle;null!=d&&Math.abs(f)Math.PI/2?"right":"left"):w&&"center"!==w?"left"===w?(g=c.r0+_,m>Math.PI/2&&(w="right")):"right"===w&&(g=c.r-_,m>Math.PI/2&&(w="left")):(g=(c.r+c.r0)/2,w="center"),p.attr("style",{text:h,textAlign:w,textVerticalAlign:n("verticalAlign")||"middle",opacity:n("opacity")});var b=g*v+c.cx,S=g*y+c.cy;p.attr("position",[b,S]);var M=n("rotate"),I=0;"radial"===M?(I=-m,I<-Math.PI/2&&(I+=Math.PI)):"tangential"===M?(I=Math.PI/2-m,I>Math.PI/2?I-=Math.PI:I<-Math.PI/2&&(I+=Math.PI)):"number"==typeof M&&(I=M*Math.PI/180),p.attr("rotation",I)},qO._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()},s=function(){o.onDownplay()},l=function(){o.onHighlight()};i.isAnimationEnabled()&&t.on("mouseover",a).on("mouseout",r).on("emphasis",a).on("normal",r).on("downplay",s).on("highlight",l)},h(_g,xM);var KO="sunburstRootToNode",$O=(vl.extend({type:"sunburst",init:function(){},render:function(t,e,i,n){function o(t,e){function i(t){return t.getId()}function n(i,n){var o=null==i?null:t[i],r=null==n?null:e[n];a(o,r)}(0!==t.length||0!==e.length)&&new Xu(e,t,i,i).add(n).update(n).remove(x(n,null)).execute()}function a(i,n){if(f||!i||i.getValue()||(i=null),i!==h&&n!==h)if(n&&n.piece)i?(n.piece.updateData(!1,i,"normal",t,e),u.setItemGraphicEl(i.dataIndex,n.piece)):r(n);else if(i){var o=new _g(i,t,e);d.add(o),u.setItemGraphicEl(i.dataIndex,o)}}function r(t){t&&t.piece&&(d.remove(t.piece),t.piece=null)}function s(i,n){if(n.depth>0){l.virtualPiece?l.virtualPiece.updateData(!1,i,"normal",t,e):(l.virtualPiece=new _g(i,t,e),d.add(l.virtualPiece)),n.piece._onclickEvent&&n.piece.off("click",n.piece._onclickEvent);var o=function(){l._rootToNode(n.parentNode)};n.piece._onclickEvent=o,l.virtualPiece.on("click",o)}else l.virtualPiece&&(d.remove(l.virtualPiece),l.virtualPiece=null)}var l=this;this.seriesModel=t,this.api=i,this.ecModel=e;var u=t.getData(),h=u.tree.root,c=t.getViewRoot(),d=this.group,f=t.get("renderLabelForZeroData"),p=[];c.eachNode(function(t){p.push(t)});var g=this._oldChildren||[];if(o(p,g),s(h,c),n&&n.highlight&&n.highlight.piece){var m=t.getShallow("highlightPolicy");n.highlight.piece.onEmphasis(m)}else if(n&&n.unhighlight){var v=this.virtualPiece;!v&&h.children.length&&(v=h.children[0].piece),v&&v.onNormal()}this._initEvents(),this._oldChildren=p},dispose:function(){},_initEvents:function(){var t=this,e=function(e){var i=!1,n=t.seriesModel.getViewRoot();n.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";$r(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:KO,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},containPoint:function(t,e){var i=e.getData(),n=i.getItemLayout(0);if(n){var o=t[0]-n.cx,a=t[1]-n.cy,r=Math.sqrt(o*o+a*a);return r<=n.r&&r>=n.r0}}}),"sunburstRootToNode");ku({type:$O,update:"updateView"},function(t,e){function i(e){var i=Cp(t,[$O],e);if(i){var n=e.getViewRoot();n&&(t.direction=kp(n,i.node)?"rollUp":"drillDown"),e.resetViewRoot(i.node)}}e.eachComponent({mainType:"series",subType:"sunburst",query:t},i)});var JO="sunburstHighlight";ku({type:JO,update:"updateView"},function(t,e){function i(e){var i=Cp(t,[JO],e);i&&(t.highlight=i.node)}e.eachComponent({mainType:"series",subType:"sunburst",query:t},i)});var QO="sunburstUnhighlight";ku({type:QO,update:"updateView"},function(t,e){function i(){t.unhighlight=!0}e.eachComponent({mainType:"series",subType:"sunburst",query:t},i)});var tE=Math.PI/180,eE=function(t,e,i){e.eachSeriesByType(t,function(t){var e=t.get("center"),n=t.get("radius");_(n)||(n=[0,n]),_(e)||(e=[e,e]);var o=i.getWidth(),a=i.getHeight(),r=Math.min(o,a),s=Mr(e[0],o),l=Mr(e[1],a),u=Mr(n[0],r/2),h=Mr(n[1],r/2),c=-t.get("startAngle")*tE,d=t.get("minAngle")*tE,p=t.getData().tree.root,g=t.getViewRoot(),m=g.depth,v=t.get("sort");null!=v&&Ig(g,v);var y=0;f(g.children,function(t){!isNaN(t.getValue())&&y++});var x=g.getValue(),w=Math.PI/(x||y)*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===x&&T?w:n*w;d>o&&(o=d),i=e+A*o;var a=t.depth-m-(b?-1:1),h=u+M*a,c=u+M*(a+1),g=t.getModel();null!=g.get("r0")&&(h=Mr(g.get("r0"),r/2)),null!=g.get("r")&&(c=Mr(g.get("r"),r/2)),t.setLayout({angle:o,startAngle:e,endAngle:i,clockwise:I,cx:s,cy:l,r0:h,r:c})}if(t.children&&t.children.length){var v=0;f(t.children,function(t){v+=D(t,e+v)})}return i-e}};if(b){var C=u,L=u+M,k=2*Math.PI;p.setLayout({angle:k,startAngle:c,endAngle:c+k,clockwise:I,cx:s,cy:l,r0:C,r:L})}D(g,c)})};Nu(x(_P,"sunburst")),Eu(x(eE,"sunburst")),Cu(x(TP,"sunburst"));for(var iE=[126,25],nE=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],oE=0;oEa;a++){var s=t.getName(a);i.set(s,!0),n.push({name:s,value:t.get(e,a),selected:ol(t,a,"selected")})}var l=yE.load(this.getMapType(),this.option.nameMap,this.option.nameProperty);return f(l.regions,function(t){var e=t.name;i.get(e)||(n.push({name:e}),o.push(e))}),this.updateSelectedMap(n),t.appendValues([],o),t},getHostGeoModel:function(){var t=this.option.geoIndex;return null!=t?this.dependentModels.geo[t]:null},getMapType:function(){return(this.getHostGeoModel()||this).option.map},getRawValue:function(t){var e=this.getData();return e.get(e.mapDimension("value"),t)},getRegionModel:function(t){var e=this.getData();return e.getItemModel(e.indexOfName(t))},formatTooltip:function(t,e,i,n){for(var o=this.getData(),a=Gr(this.getRawValue(t)),r=o.getName(t),s=this.seriesGroup,l=[],u=0;u":"\n";return l.join(", ")+d+Wr(r+" : "+a)},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)"}},nameProperty:"name"}});c(xE,mP),Ng.prototype={constructor:Ng,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,u=this._regionsGroup,h=this.group,c=s.getTransformInfo(),d=!u.childAt(0)||o;if(d)h.transform=c.roamTransform,h.decomposeTransform(),h.dirty();else{var p=new ZS;p.transform=c.roamTransform,p.decomposeTransform();var g={scale:p.scale,position:p.position};l=p.scale,nr(h,g,t)}var m=c.rawScale,v=c.rawPosition;u.removeAll();var y=["itemStyle"],x=["emphasis","itemStyle"],_=["label"],w=["emphasis","label"],b=B();f(s.regions,function(e){var i=b.get(e.name)||b.set(e.name,new xM),n=new JT({segmentIgnoreThreshold:1,shape:{paths:[]}});i.add(n);var o,s=t.getRegionModel(e.name)||t,c=s.getModel(y),p=s.getModel(x),g=Pg(c),S=Pg(p),M=s.getModel(_),I=s.getModel(w);if(r){o=r.indexOfName(e.name);var T=r.getItemVisual(o,"color",!0);T&&(g.fill=T)}var A=function(t){return[t[0]*m[0]+v[0],t[1]*m[1]+v[1]]};f(e.geometries,function(t){if("polygon"===t.type){for(var e=[],i=0;i=0)&&(P=t);var E=new ET({position:A(e.center.slice()),scale:[1/h.scale[0],1/h.scale[1]],z2:10,silent:!0});if(Ua(E.style,E.hoverStyle={},M,I,{labelFetcher:P,labelDataIndex:O,defaultText:e.name,useInsideStyle:!1},{textAlign:"center",textVerticalAlign:"middle"}),!d){var N=[1/l[0],1/l[1]];nr(E,{scale:N},t)}i.add(E)}if(r)r.setItemGraphicEl(o,i);else{var s=t.getRegionModel(e.name);n.eventData={componentType:"geo",componentIndex:t.componentIndex,geoIndex:t.componentIndex,name:e.name,region:s&&s.option||{}}}var z=i.__regions||(i.__regions=[]);z.push(e),i.highDownSilentOnTouch=!!t.get("selectedMode"),Fa(i,S),u.add(i)}),this._updateController(t,e,i),Og(this,t,u,i,n),Eg(t,u)},remove:function(){this._regionsGroup.removeAll(),this._backgroundGroup.removeAll(),this._controller.dispose(),this._mapName&&yE.removeGraphic(this._mapName,this.uid),this._mapName=null,this._controllerHost={}},_updateBackground:function(t){var e=t.map;this._mapName!==e&&f(yE.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,a=this._controller,s=this._controllerHost;s.zoomLimit=t.get("scaleLimit"),s.zoom=o.getZoom(),a.enable(t.get("roam")||!1);var l=t.mainType;a.off("pan").on("pan",function(t){this._mouseDownFlag=!1,np(s,t.dx,t.dy),i.dispatchAction(r(n(),{dx:t.dx,dy:t.dy}))},this),a.off("zoom").on("zoom",function(t){if(this._mouseDownFlag=!1,op(s,t.scale,t.originX,t.originY),i.dispatchAction(r(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),a.setPointerChecker(function(e,n,a){return o.getViewRectAfterRoam().contain(n,a)&&!yp(e,i,t)})}};var _E="__seriesMapHighDown",wE="__seriesMapCallKey";Fu({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){var a=this._mapDraw;a&&o.add(a.group)}else if(t.needsDrawMap){var a=this._mapDraw||new Ng(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){var e=t.originalData,i=this.group;e.each(e.mapDimension("value"),function(n,o){if(!isNaN(n)){var a=e.getItemLayout(o);if(a&&a.point){var s=a.point,l=a.offset,u=new NT({style:{fill:t.getData().getVisual("color")},shape:{cx:s[0]+9*l,cy:s[1],r:3},silent:!0,z2:8+(l?0:rA+1)});if(!l){var h=t.mainSeries.getData(),c=e.getName(o),d=h.indexOfName(c),f=e.getItemModel(o),p=f.getModel("label"),g=f.getModel("emphasis.label"),m=h.getItemGraphicEl(d),v=C(t.getFormattedLabel(d,"normal"),c),y=C(t.getFormattedLabel(d,"emphasis"),v),_=m[_E],w=Math.random();if(!_){_=m[_E]={};var b=x(zg,!0),S=x(zg,!1);m.on("mouseover",b).on("mouseout",S).on("emphasis",b).on("normal",S)}m[wE]=w,r(_,{recordVersion:w,circle:u,labelModel:p,hoverLabelModel:g,emphasisText:y,normalText:v}),Rg(_,!1)}i.add(u)}}})}}),ku({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=Ip(n,t,e.get("scaleLimit"));e.setCenter&&e.setCenter(o.center),e.setZoom&&e.setZoom(o.zoom),"series"===i&&f(e.seriesGroup,function(t){t.setCenter(o.center),t.setZoom(o.zoom)})}})}),Bg.prototype={constructor:Bg,type:"geo",dimensions:["lng","lat"],containCoord:function(t){for(var e=this.regions,i=0;i0&&i[0]instanceof Array))throw new Error("Invalid coords "+JSON.stringify(i)+". Lines must have 2d coords array in data item.");return i},getLineCoordsCount:function(t){return this._flatCoordsOffset?this._flatCoordsOffset[2*t+1]:this._getCoordsFromItemModel(t).length},getLineCoords:function(t,e){if(this._flatCoordsOffset){for(var i=this._flatCoordsOffset[2*t],n=this._flatCoordsOffset[2*t+1],o=0;n>o;o++)e[o]=e[o]||[],e[o][0]=this._flatCoords[i+2*o],e[o][1]=this._flatCoords[i+2*o+1];return n}for(var a=this._getCoordsFromItemModel(t),o=0;ol;){s++;var u=t[l++];n[r++]=a+e,n[r++]=u;for(var h=0;u>h;h++){var c=t[l++],d=t[l++];if(o[a++]=c,o[a++]=d,l>i&&eS)throw new Error("Invalid data format.")}}return{flatCoordsOffset:new Uint32Array(n.buffer,0,r),flatCoords:o,count:s}}return{flatCoordsOffset:null,flatCoords:null,count:t.length}},getInitialData:function(t){if(eS){var e=ks.get(t.coordinateSystem);if(!e)throw new Error("Unkown coordinate system "+t.coordinateSystem)}var i=new dL(["value"],this);return i.hasItemOption=!1,i.initData(t.data,[],function(t,e,n,o){if(t instanceof Array)return 0/0;i.hasItemOption=!0;var a=t.value;return null!=a?a instanceof Array?a[o]:a:void 0}),i},formatTooltip:function(t){var e=this.getData(),i=e.getItemModel(t),n=i.get("name");if(n)return n;var o=i.get("fromName"),a=i.get("toName"),r=[];return null!=o&&r.push(o),null!=a&&r.push(a),Wr(r.join(" > "))},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,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}}}),LE=jT.prototype,kE=KT.prototype,PE=ya({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){this[Zg(e)?"_buildPathLine":"_buildPathCurve"](t,e)},_buildPathLine:LE.buildPath,_buildPathCurve:kE.buildPath,pointAt:function(t){return this[Zg(this.shape)?"_pointAtLine":"_pointAtCurve"](t)},_pointAtLine:LE.pointAt,_pointAtCurve:kE.pointAt,tangentAt:function(t){var e=this.shape,i=Zg(e)?[e.x2-e.x1,e.y2-e.y1]:this._tangentAtCurve(t);return te(i,i)},_tangentAtCurve:kE.tangentAt}),OE=["fromSymbol","toSymbol"],EE=Kg.prototype;EE.beforeUpdate=qg,EE._createLine=function(t,e,i){var n=t.hostModel,o=t.getItemLayout(e),a=Yg(o);a.shape.percent=0,or(a,{shape:{percent:1}},n,e),this.add(a);var r=new ET({name:"label",lineLabelOriginalOpacity:1});this.add(r),f(OE,function(i){var n=Xg(i,t,e);this.add(n),this[Ug(i)]=t.getItemVisual(e,i)},this),this._updateCommonStl(t,e,i)},EE.updateData=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=t.getItemLayout(e),r={shape:{}};jg(r.shape,a),nr(o,r,n,e),f(OE,function(i){var n=t.getItemVisual(e,i),o=Ug(i);if(this[o]!==n){this.remove(this.childOfName(i));var a=Xg(i,t,e);this.add(a)}this[o]=n},this),this._updateCommonStl(t,e,i)},EE._updateCommonStl=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=i&&i.lineStyle,r=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(),r=h.getModel("emphasis.lineStyle").getLineStyle(),l=h.getModel("label"),u=h.getModel("emphasis.label")}var c=t.getItemVisual(e,"color"),d=L(t.getItemVisual(e,"opacity"),a.opacity,1);o.useStyle(s({strokeNoScale:!0,fill:"none",stroke:c,opacity:d},a)),o.hoverStyle=r,f(OE,function(t){var e=this.childOfName(t);e&&(e.setColor(c),e.setStyle({opacity:d}))},this);var p,g,m=l.getShallow("show"),v=u.getShallow("show"),y=this.childOfName("label");if((m||v)&&(p=c||"#000",g=n.getFormattedLabel(e,"normal",t.dataType),null==g)){var x=n.getRawValue(e);g=null==x?t.getName(e):isFinite(x)?Ir(x):x}var w=m?g:null,b=v?C(n.getFormattedLabel(e,"emphasis",t.dataType),g):null,S=y.style;if(null!=w||null!=b){Ya(y.style,l,{text:w},{autoColor:p}),y.__textAlign=S.textAlign,y.__verticalAlign=S.textVerticalAlign,y.__position=l.get("position")||"middle";var M=l.get("distance");_(M)||(M=[M,M]),y.__labelDistance=M}y.hoverStyle=null!=b?{text:b,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,Fa(this)},EE.highlight=function(){this.trigger("emphasis")},EE.downplay=function(){this.trigger("normal")},EE.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},EE.setLinePoints=function(t){var e=this.childOfName("line");jg(e.shape,t),e.dirty()},h(Kg,xM);var NE=$g.prototype;NE.isPersistent=function(){return!0},NE.updateData=function(t){var e=this,i=e.group,n=e._lineData;e._lineData=t,n||i.removeAll();var o=em(t);t.diff(n).add(function(i){Jg(e,t,i,o)}).update(function(i,a){Qg(e,n,t,a,i,o)}).remove(function(t){i.remove(n.getItemGraphicEl(t))}).execute()},NE.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(e,i){e.updateLayout(t,i)},this)},NE.incrementalPrepareUpdate=function(t){this._seriesScope=em(t),this._lineData=null,this.group.removeAll()},NE.incrementalUpdate=function(t,e){function i(t){t.isGroup||tm(t)||(t.incremental=t.useHoverLayer=!0)}for(var n=t.start;n0&&(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}},zE.getLineLength=function(t){return SS(t.__p1,t.__cp1)+SS(t.__cp1,t.__p2)},zE.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]},zE.updateData=function(t,e,i){this.childAt(0).updateData(t,e,i),this._updateEffectSymbol(t,e)},zE.updateSymbolPosition=function(t){var e=t.__p1,i=t.__p2,n=t.__cp1,o=t.__t,a=t.position,r=[a[0],a[1]],s=Oo,l=Eo;a[0]=s(e[0],n[0],i[0],o),a[1]=s(e[1],n[1],i[1],o);var u=l(e[0],n[0],i[0],o),h=l(e[1],n[1],i[1],o);if(t.rotation=-Math.atan2(h,u)-Math.PI/2,"line"===this._symbolType||"rect"===this._symbolType||"roundRect"===this._symbolType)if(void 0!==t.__lastT&&t.__lastT=0&&!(n[a]<=e);a--);a=Math.min(a,o-2)}else{for(var a=r;o>a&&!(n[a]>e);a++);a=Math.min(a-1,o-2)}oe(t.position,i[a],i[a+1],(e-n[a])/(n[a+1]-n[a]));var l=i[a+1][0]-i[a][0],u=i[a+1][1]-i[a][1];t.rotation=-Math.atan2(u,l)-Math.PI/2,this._lastFrame=a,this._lastFramePercent=e,t.ignore=!1}},h(rm,om);var VE=ya({shape:{polyline:!1,curveness:0,segs:[]},buildPath:function(t,e){var i=e.segs,n=e.curveness;if(e.polyline)for(var o=0;o0){t.moveTo(i[o++],i[o++]);for(var r=1;a>r;r++)t.lineTo(i[o++],i[o++])}}else for(var o=0;o0){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(){var t=this.shape,e=t.segs,i=t.curveness;if(t.polyline)for(var n=0,o=0;o0)for(var r=e[o++],s=e[o++],l=1;a>l;l++){var u=e[o++],h=e[o++];if(Zo(r,s,u,h))return n}n++}else for(var n=0,o=0;o0){var c=(r+u)/2-(s-h)*i,d=(s+h)/2-(u-r)*i;if(Xo(r,s,c,d,u,h))return n}else if(Zo(r,s,u,h))return n;n++}return-1}}),GE=sm.prototype;GE.isPersistent=function(){return!this._incremental},GE.updateData=function(t){this.group.removeAll();var e=new VE({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},GE.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new va({silent:!0})),this.group.add(this._incremental)):this._incremental=null},GE.incrementalUpdate=function(t,e){var i=new VE;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))},GE.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},GE._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)}))},GE._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()};var FE={seriesType:"lines",plan:PD(),reset:function(t){function e(e,a){var r=[];if(o){var s,l=e.end-e.start;if(n){for(var u=0,h=e.start;hp;p++)d=i.dataToPoint(r[p],!1,d),s[c++]=d[0],s[c++]=d[1]}a.setLayout("linesPoints",s)}else for(var h=e.start;hv;v++)m.push(i.dataToPoint(r[v]));else{m[0]=i.dataToPoint(r[0]),m[1]=i.dataToPoint(r[1]);var y=g.get("lineStyle.curveness");+y&&(m[2]=[(m[0][0]+m[1][0])/2-(m[0][1]-m[1][1])*y,(m[0][1]+m[1][1])/2-(m[1][0]-m[0][0])*y])}a.setItemLayout(h,m)}}var i=t.coordinateSystem,n=t.get("polyline"),o=t.pipelineContext.large;return{progress:e}}};Fu({type:"lines",init:function(){},render:function(t,e,i){var n=t.getData(),o=this._updateLineDraw(n,t),a=t.get("zlevel"),r=t.get("effect.trailLength"),s=i.getZr(),l="svg"===s.painter.getType();if(l||s.painter.getLayer(a).clear(!0),null==this._lastZlevel||l||s.configLayer(this._lastZlevel,{motionBlur:!1}),this._showEffect(t)&&r){if(eS){var u=!1;e.eachSeries(function(e){e!==t&&e.get("zlevel")===a&&(u=!0)}),u&&console.warn("Lines with trail effect should have an individual zlevel")}l||s.configLayer(a,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(r/10+.9,1),0)})}o.updateData(n);var h=t.get("clip",!0)&&Zc(t.coordinateSystem,!1,t);h?this.group.setClipPath(h):this.group.removeClipPath(),this._lastZlevel=a,this._finished=!0},incrementalPrepareRender:function(t,e,i){var n=t.getData(),o=this._updateLineDraw(n,t);o.incrementalPrepareUpdate(n),this._clearLayer(i),this._finished=!1},incrementalRender:function(t,e){this._lineDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},updateTransform:function(t,e,i){var n=t.getData(),o=t.pipelineContext;if(!this._finished||o.large||o.progressiveRender)return{update:!0};var a=FE.reset(t);a.progress&&a.progress({start:0,end:n.count()},n),this._lineDraw.updateLayout(),this._clearLayer(i)},_updateLineDraw:function(t,e){var i=this._lineDraw,n=this._showEffect(e),o=!!e.get("polyline"),a=e.pipelineContext,r=a.large;return eS&&n&&r&&console.warn("Large lines not support effect"),i&&n===this._hasEffet&&o===this._isPolyline&&r===this._isLargeDraw||(i&&i.remove(),i=this._lineDraw=r?new sm:new $g(o?n?rm:am:n?om:Kg),this._hasEffet=n,this._isPolyline=o,this._isLargeDraw=r,this.group.removeAll()),this.group.add(i.group),i},_showEffect:function(t){return!!t.get("effect.show")},_clearLayer:function(t){var e=t.getZr(),i="svg"===e.painter.getType();i||null==this._lastZlevel||e.painter.getLayer(this._lastZlevel).clear(!0)},remove:function(t,e){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(e)},dispose:function(){}});var WE="lineStyle.opacity".split("."),HE={seriesType:"lines",reset:function(t){function e(t,e){var i=t.getItemModel(e),n=lm(i.getShallow("symbol",!0)),o=lm(i.getShallow("symbolSize",!0)),a=i.get(WE);n[0]&&t.setItemVisual(e,"fromSymbol",n[0]),n[1]&&t.setItemVisual(e,"toSymbol",n[1]),o[0]&&t.setItemVisual(e,"fromSymbolSize",o[0]),o[1]&&t.setItemVisual(e,"toSymbolSize",o[1]),t.setItemVisual(e,"opacity",a)}var i=lm(t.get("symbol")),n=lm(t.get("symbolSize")),o=t.getData();return o.setVisual("fromSymbol",i&&i[0]),o.setVisual("toSymbol",i&&i[1]),o.setVisual("fromSymbolSize",n&&n[0]),o.setVisual("toSymbolSize",n&&n[1]),o.setVisual("opacity",t.get(WE)),{dataEach:o.hasItemOption?e:null}}};Eu(FE),Nu(HE);var ZE=function(t){this._directed=t||!1,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this.data,this.edgeData},UE=ZE.prototype;UE.type="graph",UE.isDirected=function(){return this._directed},UE.addNode=function(t,e){t=null==t?""+e:""+t;var i=this._nodesMap;if(i[um(t)])return void(eS&&console.error("Graph nodes have duplicate name or id"));var n=new hm(t,e);return n.hostGraph=this,this.nodes.push(n),i[um(t)]=n,n},UE.getNodeByIndex=function(t){var e=this.data.getRawIndex(t);return this.nodes[e]},UE.getNodeById=function(t){return this._nodesMap[um(t)]},UE.addEdge=function(t,e,i){var n=this._nodesMap,o=this._edgesMap;if("number"==typeof t&&(t=this.nodes[t]),"number"==typeof e&&(e=this.nodes[e]),hm.isInstance(t)||(t=n[um(t)]),hm.isInstance(e)||(e=n[um(e)]),t&&e){var a=t.id+"-"+e.id,r=new cm(t,e,i);return r.hostGraph=this,this._directed&&(t.outEdges.push(r),e.inEdges.push(r)),t.edges.push(r),t!==e&&e.edges.push(r),this.edges.push(r),o[a]=r,r}},UE.getEdgeByIndex=function(t){var e=this.edgeData.getRawIndex(t);return this.edges[e]},UE.getEdge=function(t,e){hm.isInstance(t)&&(t=t.id),hm.isInstance(e)&&(e=e.id);var i=this._edgesMap;return this._directed?i[t+"-"+e]:i[t+"-"+e]||i[e+"-"+t]},UE.eachNode=function(t,e){for(var i=this.nodes,n=i.length,o=0;n>o;o++)i[o].dataIndex>=0&&t.call(e,i[o],o)},UE.eachEdge=function(t,e){for(var i=this.edges,n=i.length,o=0;n>o;o++)i[o].dataIndex>=0&&i[o].node1.dataIndex>=0&&i[o].node2.dataIndex>=0&&t.call(e,i[o],o)},UE.breadthFirstTraverse=function(t,e,i,n){if(hm.isInstance(e)||(e=this._nodesMap[um(e)]),e){for(var o="out"===i?"outEdges":"in"===i?"inEdges":"edges",a=0;ao;o++)i[o].dataIndex=-1;for(var o=0,a=t.count();a>o;o++)i[t.getRawIndex(o)].dataIndex=o;e.filterSelf(function(t){var i=n[e.getRawIndex(t)];return i.node1.dataIndex>=0&&i.node2.dataIndex>=0});for(var o=0,a=n.length;a>o;o++)n[o].dataIndex=-1;for(var o=0,a=e.count();a>o;o++)n[e.getRawIndex(o)].dataIndex=o},UE.clone=function(){for(var t=new ZE(this._directed),e=this.nodes,i=this.edges,n=0;n=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)}}};c(hm,XE("hostGraph","data")),c(cm,XE("hostGraph","edgeData")),ZE.Node=hm,ZE.Edge=cm,wo(hm),wo(cm);var YE=function(t,e,i,n,o){for(var a=new ZE(n),r=0;r "+f)),h++)}var p,g=i.get("coordinateSystem");if("cartesian2d"===g||"polar"===g)p=bh(t,i);else{var m=ks.get(g),v=m&&"view"!==m.type?m.dimensions||[]:[];u(v,"value")<0&&v.concat(["value"]);var y=gL(t,{coordDimensions:v});p=new dL(y,i),p.initData(t)}var x=new dL(["value"],i);return x.initData(l,s),o&&o(p,x),kf({mainData:p,struct:a,structAttr:"graph",datas:{node:p,edge:x},datasAttr:{node:"data",edge:"edgeData"}}),a.update(),a},jE="-->",qE=function(t){return t.get("autoCurveness")||null},KE=function(t,e){var i=qE(t),n=20,o=[];if("number"==typeof i)n=i;else if(_(i))return void(t.__curvenessList=i);e>n&&(n=e);var a=n%2?n+2:n+3;o=[];for(var r=0;a>r;r++)o.push((r%2?r+1:r)/10*(r%2?-1:1));t.__curvenessList=o},$E=function(t,e,i){var n=[t.id,t.dataIndex].join("."),o=[e.id,e.dataIndex].join(".");return[i.uid,n,o].join(jE)},JE=function(t){var e=t.split(jE);return[e[0],e[2],e[1]].join(jE)},QE=function(t,e){var i=$E(t.node1,t.node2,e);return e.__edgeMap[i]},tN=function(t,e){var i=eN($E(t.node1,t.node2,e),e),n=eN($E(t.node2,t.node1,e),e);return i+n},eN=function(t,e){var i=e.__edgeMap;return i[t]?i[t].length:0},iN=Gu({type:"series.graph",init:function(t){function e(){return i._categoriesData}iN.superApply(this,"init",arguments);var i=this;this.legendVisualProvider=new tf(e,e),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeOption:function(t){iN.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(t){iN.superApply(this,"mergeDefaultAndTheme",arguments),eo(t,["edgeLabel"],["show"])},getInitialData:function(t,e){function i(t,i){function n(t){return t=this.parsePath(t),t&&"label"===t[0]?r:t&&"emphasis"===t[0]&&"label"===t[1]?l:this.parentModel}t.wrapMethod("getItemModel",function(t){var e=a._categoriesModels,i=t.getShallow("category"),n=e[i];return n&&(n.parentModel=t.parentModel,t.parentModel=n),t});var o=a.getModel("edgeLabel"),r=new mr({label:o.option},o.parentModel,e),s=a.getModel("emphasis.edgeLabel"),l=new mr({emphasis:{label:s.option}},s.parentModel,e);i.wrapMethod("getItemModel",function(t){return t.customizeGetParent(n),t})}var n=t.edges||t.links||[],o=t.data||t.nodes||[],a=this;if(o&&n){dm(this);var r=YE(o,n,this,!0,i);return f(r.edges,function(t){fm(t.node1,t.node2,this,t.dataIndex)},this),r.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=Wr(l.join(" > ")),o.value&&(l+=" : "+Wr(o.value)),l}return iN.superApply(this,"formatTooltip",arguments)},_updateCategoriesData:function(){var t=p(this.option.categories||[],function(t){return null!=t.value?t:r({value:0},t)}),e=new dL(["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 iN.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,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,opacity:.5},emphasis:{label:{show:!0}}}}),nN=[],oN=[],aN=[],rN=Oo,sN=MS,lN=Math.abs,uN=function(t,e){var i=[],n=Ro,o=[[],[],[]],a=[[],[]],r=[];e/=2,t.eachEdge(function(t){var s=t.getLayout(),l=t.getVisual("fromSymbol"),u=t.getVisual("toSymbol");s.__original||(s.__original=[H(s[0]),H(s[1])],s[2]&&s.__original.push(H(s[2])));var h=s.__original;if(null!=s[2]){if(W(o[0],h[0]),W(o[1],h[2]),W(o[2],h[1]),l&&"none"!==l){var c=mm(t.node1),d=vm(o,h[0],c*e);n(o[0][0],o[1][0],o[2][0],d,i),o[0][0]=i[3],o[1][0]=i[4],n(o[0][1],o[1][1],o[2][1],d,i),o[0][1]=i[3],o[1][1]=i[4]}if(u&&"none"!==u){var c=mm(t.node2),d=vm(o,h[1],c*e);n(o[0][0],o[1][0],o[2][0],d,i),o[1][0]=i[1],o[2][0]=i[2],n(o[0][1],o[1][1],o[2][1],d,i),o[1][1]=i[1],o[2][1]=i[2]}W(s[0],o[0]),W(s[1],o[2]),W(s[2],o[1])}else{if(W(a[0],h[0]),W(a[1],h[1]),Y(r,a[1],a[0]),te(r,r),l&&"none"!==l){var c=mm(t.node1);X(a[0],a[0],r,c*e)}if(u&&"none"!==u){var c=mm(t.node2);X(a[1],a[1],r,-c*e)}W(s[0],a[0]),W(s[1],a[1])}})},hN="__focusNodeAdjacency",cN="__unfocusNodeAdjacency",dN=["itemStyle","opacity"],fN=["lineStyle","opacity"];Fu({type:"graph",init:function(t,e){var i=new Pd,n=new $g,o=this.group;this._controller=new up(e.getZr()),this._controllerHost={target:o},o.add(i.group),o.add(n.group),this._symbolDraw=i,this._lineDraw=n,this._firstRender=!0},render:function(t,e,i){var n=this,o=t.coordinateSystem;this._model=t;var a=this._symbolDraw,r=this._lineDraw,s=this.group;if("view"===o.type){var l={position:o.position,scale:o.scale};this._firstRender?s.attr(l):nr(s,l,t)}uN(t.getGraph(),gm(t));var u=t.getData();a.updateData(u);var h=t.getEdgeData();r.updateData(h),this._updateNodeAndLinkScale(),this._updateController(t,e,i),clearTimeout(this._layoutTimeout);var c=t.forceLayout,d=t.get("force.layoutAnimation");c&&this._startForceLayoutIteration(c,d),u.eachItemGraphicEl(function(e,o){var a=u.getItemModel(o);e.off("drag").off("dragend");var r=a.get("draggable");r&&e.on("drag",function(){c&&(c.warmUp(),!this._layouting&&this._startForceLayoutIteration(c,d),c.setFixed(o),u.setItemLayout(o,e.position))},this).on("dragend",function(){c&&c.setUnfixed(o)},this),e.setDraggable(r&&c),e[hN]&&e.off("mouseover",e[hN]),e[cN]&&e.off("mouseout",e[cN]),a.get("focusNodeAdjacency")&&(e.on("mouseover",e[hN]=function(){n._clearTimer(),i.dispatchAction({type:"focusNodeAdjacency",seriesId:t.id,dataIndex:e.dataIndex})}),e.on("mouseout",e[cN]=function(){n._dispatchUnfocus(i)}))},this),u.graph.eachEdge(function(e){var o=e.getGraphicEl();o[hN]&&o.off("mouseover",o[hN]),o[cN]&&o.off("mouseout",o[cN]),e.getModel().get("focusNodeAdjacency")&&(o.on("mouseover",o[hN]=function(){n._clearTimer(),i.dispatchAction({type:"focusNodeAdjacency",seriesId:t.id,edgeDataIndex:e.dataIndex})}),o.on("mouseout",o[cN]=function(){n._dispatchUnfocus(i)}))});var f="circular"===t.get("layout")&&t.get("circular.rotateLabel"),p=u.getLayout("cx"),g=u.getLayout("cy");u.eachItemGraphicEl(function(t,e){var i=u.getItemModel(e),n=i.get("label.rotate")||0,o=t.getSymbolPath();if(f){var a=u.getItemLayout(e),r=Math.atan2(a[1]-g,a[0]-p);0>r&&(r=2*Math.PI+r);var s=a[0]e&&(e=0),e*=u;var i=Math.asin(e/2/o);isNaN(i)&&(i=xN/2),_N[t.dataIndex]=i,l+=2*i});var h=(2*xN-l)/s/2,c=0;i.eachNode(function(t){var e=h+_N[t.dataIndex];c+=e,t.setLayout([o*Math.cos(c)+a,o*Math.sin(c)+r]),c+=e})}},bN=function(t){t.eachSeriesByType("graph",function(t){"circular"===t.get("layout")&&Mm(t,"symbolSize")})},SN=X,MN=function(t){t.eachSeriesByType("graph",function(t){var e=t.coordinateSystem;if(!e||"view"===e.type)if("force"===t.get("layout")){var i=t.preservedPoints||{},n=t.getGraph(),o=n.data,a=n.edgeData,r=t.getModel("force"),s=r.get("initLayout");t.preservedPoints?o.each(function(t){var e=o.getId(t);o.setItemLayout(t,i[e]||[0/0,0/0])}):s&&"none"!==s?"circular"===s&&Mm(t,"value"):bm(t);var l=o.getDataExtent("value"),u=a.getDataExtent("value"),h=r.get("repulsion"),c=r.get("edgeLength");_(h)||(h=[h,h]),_(c)||(c=[c,c]),c=[c[1],c[0]];var d=o.mapArray("value",function(t,e){var i=o.getItemLayout(e),n=Sr(t,l,h);return isNaN(n)&&(n=(h[0]+h[1])/2),{w:n,rep:n,fixed:o.getItemModel(e).get("fixed"),p:!i||isNaN(i[0])||isNaN(i[1])?null:i}}),f=a.mapArray("value",function(e,i){var o=n.getEdgeByIndex(i),a=Sr(e,u,c);isNaN(a)&&(a=(c[0]+c[1])/2);var r=o.getModel(),s=L(r.get("lineStyle.curveness"),-pm(o,t,i,!0),0);return{n1:d[o.node1.dataIndex],n2:d[o.node2.dataIndex],d:a,curveness:s,ignoreForceLayout:r.get("ignoreForceLayout")}}),e=t.coordinateSystem,p=e.getBoundingRect(),g=Im(d,f,{rect:p,gravity:r.get("gravity"),friction:r.get("friction")}),m=g.step;g.step=function(t){for(var e=0,a=d.length;a>e;e++)d[e].fixed&&W(d[e].p,n.getNodeByIndex(e).getLayout());m(function(e,a,r){for(var s=0,l=e.length;l>s;s++)e[s].fixed||n.getNodeByIndex(s).setLayout(e[s].p),i[o.getId(s)]=e[s].p;for(var s=0,l=a.length;l>s;s++){var u=a[s],h=n.getEdgeByIndex(s),c=u.n1.p,d=u.n2.p,f=h.getLayout();f=f?f.slice():[],f[0]=f[0]||[],f[1]=f[1]||[],W(f[0],c),W(f[1],d),+u.curveness&&(f[2]=[(c[0]+d[0])/2-(c[1]-d[1])*u.curveness,(c[1]+d[1])/2-(d[0]-c[0])*u.curveness]),h.setLayout(f)}t&&t(r)})},t.forceLayout=g,t.preservedPoints=i,g.step()}else t.forceLayout=null})},IN=function(t,e){var i=[];return t.eachSeriesByType("graph",function(t){var n=t.get("coordinateSystem");if(!n||"view"===n){var o=t.getData(),a=o.mapArray(function(t){var e=o.getItemModel(t);return[+e.get("x"),+e.get("y")]}),r=[],s=[];Vo(a,r,s),s[0]-r[0]===0&&(s[0]+=1,r[0]-=1),s[1]-r[1]===0&&(s[1]+=1,r[1]-=1);var l=(s[0]-r[0])/(s[1]-r[1]),u=Tm(t,e,l);isNaN(l)&&(r=[u.x,u.y],s=[u.x+u.width,u.y+u.height]);var h=s[0]-r[0],c=s[1]-r[1],d=u.width,f=u.height,p=t.coordinateSystem=new ep;p.zoomLimit=t.get("scaleLimit"),p.setBoundingRect(r[0],r[1],h,c),p.setViewRect(u.x,u.y,d,f),p.setCenter(t.get("center")),p.setZoom(t.get("zoom")),i.push(p)}}),i};Cu(gN),Nu(hP("graph","circle",null)),Nu(mN),Nu(vN),Eu(yN),Eu(OC.VISUAL.POST_CHART_LAYOUT,bN),Eu(MN),Pu("graphView",{create:IN});var TN=CD.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}});c(TN,PP,!0);var AN=["itemStyle"],DN=["emphasis","itemStyle"],CN=(vl.extend({type:"boxplot",render:function(t){var e=t.getData(),i=this.group,n=this._data;this._data||i.removeAll();var o="horizontal"===t.get("layout")?1:0;e.diff(n).add(function(t){if(e.hasValue(t)){var n=e.getItemLayout(t),a=Am(n,e,t,o,!0);e.setItemGraphicEl(t,a),i.add(a)}}).update(function(t,a){var r=n.getItemGraphicEl(a);if(!e.hasValue(t))return void i.remove(r);var s=e.getItemLayout(t);r?Dm(s,r,e,t):r=Am(s,e,t,o),i.add(r),e.setItemGraphicEl(t,r)}).remove(function(t){var e=n.getItemGraphicEl(t);e&&i.remove(e)}).execute(),this._data=e},remove:function(){var t=this.group,e=this._data;this._data=null,e&&e.eachItemGraphicEl(function(e){e&&t.remove(e)})},dispose:G}),oa.extend({type:"boxplotBoxPath",shape:{},buildPath:function(t,e){var i=e.points,n=0;for(t.moveTo(i[n][0],i[n][1]),n++;4>n;n++)t.lineTo(i[n][0],i[n][1]);for(t.closePath();na&&(e[1-n]=e[n]+c.sign*a),e},RN=f,BN=Math.min,VN=Math.max,GN=Math.floor,FN=Math.ceil,WN=Ir,HN=Math.PI;Rm.prototype={type:"parallel",constructor:Rm,_init:function(t,e){var i=t.dimensions,n=t.parallelAxisIndex;RN(i,function(t,i){var o=n[i],a=e.getComponent("parallelAxis",o),r=this._axesMap.set(t,new NN(t,qh(a),[0,0],a.get("type"),o)),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){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();RN(this.dimensions,function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(n,n.mapDimension(t)),jh(e.scale,e.model)},this)}},this)},resize:function(t,e){this._rect=ts(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=Bm(e.get("axisExpandWidth"),l),c=Bm(e.get("axisExpandCount")||0,[0,u]),d=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,f=e.get("axisExpandWindow");if(f)t=Bm(f[1]-f[0],l),f[1]=f[0]+t;else{t=Bm(h*(c-1),l);var p=e.get("axisExpandCenter")||GN(u/2);f=[h*p-t/2],f[1]=f[0]+t}var g=(s-t)/(u-c);3>g&&(g=0);var m=[GN(WN(f[0]/h,1))+1,FN(WN(f[1]/h,1))-1],v=g/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:g,axisExpandWindow:f,axisCount:u,winInnerIndices:m,axisExpandWindow0Pos:v}},_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])}),RN(i,function(e,i){var a=(n.axisExpandable?Gm:Vm)(i,n),r={horizontal:{x:a.position,y:n.axisLength},vertical:{x:0,y:a.position}},s={horizontal:HN/2,vertical:0},l=[r[o].x+t.x,r[o].y+t.y],u=s[o],h=Oe();Be(h,h,u),Re(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=[];f(a,function(e){r.push(t.mapDimension(e)),s.push(o.get(e).model)});for(var l=this.hasAxisBrushed(),u=i;n>u;u++){var h;if(l){h="active";for(var c=t.getValues(r,u),d=0,p=a.length;p>d;d++){var g=s[d].getActiveState(c[d]);if("inactive"===g){h="inactive";break}}}else h="normal";e(h,u)}},hasAxisBrushed:function(){for(var t=this.dimensions,e=this._axesMap,i=!1,n=0,o=t.length;o>n;n++)"normal"!==e.get(t[n]).model.getActiveState()&&(i=!0);return i},axisCoordToPoint:function(t,e){var i=this._axesLayout[e];return rr([t,0],i.transform)},getAxisLayout:function(t){return n(this._axesLayout[t])},getSlidedAxisExpandWindow:function(t){var e=this._makeLayoutInfo(),i=e.pixelDimIndex,n=e.axisExpandWindow.slice(),o=n[1]-n[0],a=[0,e.axisExpandWidth*(e.axisCount-1)];if(!this.containPoint(t))return{behavior:"none",axisExpandWindow:n}; +var r,s=t[i]-e.layoutBase-e.axisExpandWindow0Pos,l="slide",u=e.axisCollapseWidth,h=this._model.get("axisExpandSlideTriggerArea"),c=null!=h[0];if(u)c&&u&&so*(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,r?zN(r,n,a,"all"):l="none";else{var o=n[1]-n[0],d=a[1]*s/o;n=[VN(0,d-o/2)],n[1]=BN(a[1],n[0]+o),n[0]=n[1]-o}return{axisExpandWindow:n,behavior:l}}},ks.register("parallel",{create:Fm});var ZN=WA.extend({type:"baseParallelAxis",axis:null,activeIntervals:[],getAreaSelectStyle:function(){return AI([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},setActiveIntervals:function(t){var e=this.activeIntervals=n(t);if(e)for(var i=e.length-1;i>=0;i--)Tr(e[i])},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;o>n;n++)if(e[n][0]<=t&&t<=e[n][1])return"active";return"inactive"}}),UN={type:"value",dim:null,areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};o(ZN.prototype,XL),mk("parallel",ZN,Wm,UN),WA.extend({type:"parallel",dependencies:["parallelAxis"],coordinateSystem:null,dimensions:null,parallelAxisIndex:null,layoutMode:"box",defaultOption:{zlevel:0,z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},init:function(){WA.prototype.init.apply(this,arguments),this.mergeOption({})},mergeOption:function(t){var e=this.option;t&&o(e,t,!0),this._initDimensions()},contains:function(t,e){var i=t.get("parallelIndex");return null!=i&&e.getComponent("parallel",i)===this},setAxisExpand:function(t){f(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],function(e){t.hasOwnProperty(e)&&(this.option[e]=t[e])},this)},_initDimensions:function(){var t=this.dimensions=[],e=this.parallelAxisIndex=[],i=m(this.dependentModels.parallelAxis,function(t){return(t.get("parallelIndex")||0)===this.componentIndex},this);f(i,function(i){t.push("dim"+i.get("dim")),e.push(i.componentIndex)})}});var XN={type:"axisAreaSelect",event:"axisAreaSelected"};ku(XN,function(t,e){e.eachComponent({mainType:"parallelAxis",query:t},function(e){e.axis.model.setActiveIntervals(t.intervals)})}),ku("parallelAxisExpand",function(t,e){e.eachComponent({mainType:"parallel",query:t},function(e){e.setAxisExpand(t)})});var YN=x,jN=f,qN=p,KN=Math.min,$N=Math.max,JN=Math.pow,QN=1e4,tz=6,ez=6,iz="globalPan",nz={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},oz={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},az={brushStyle:{lineWidth:2,stroke:"rgba(0,0,0,0.3)",fill:"rgba(0,0,0,0.1)"},transformable:!0,brushMode:"single",removeOnClick:!1},rz=0;Hm.prototype={constructor:Hm,enableBrush:function(t){return eS&&O(this._mounted),this._brushType&&Um(this),t.brushType&&Zm(this,t),this},setPanels:function(t){if(t&&t.length){var e=this._panels={};f(t,function(t){e[t.panelId]=n(t)})}else this._panels=null;return this},mount:function(t){t=t||{},eS&&(this._mounted=!0),this._enableGlobalPan=t.enableGlobalPan;var e=this.group;return this._zr.add(e),e.attr({position:t.position||[0,0],rotation:t.rotation||0,scale:t.scale||[1,1]}),this._transform=e.getLocalTransform(),this},eachCover:function(t,e){jN(this._covers,t,e)},updateCovers:function(t){function e(t,e){return(null!=t.id?t.id:s+e)+"-"+t.brushType}function i(t,i){return e(t.__brushOption,i)}function a(e,i){var n=t[e];if(null!=i&&l[i]===c)u[e]=l[i];else{var o=u[e]=null!=i?(l[i].__brushOption=n,l[i]):qm(h,jm(h,n));Jm(h,o)}}function r(t){l[t]!==c&&h.group.remove(l[t])}eS&&O(this._mounted),t=p(t,function(t){return o(n(az),t,!0)});var s="\x00-brush-index-",l=this._covers,u=this._covers=[],h=this,c=this._creatingCover;return new Xu(l,t,i,e).add(a).update(a).remove(r).execute(),this},unmount:function(){return!eS||this._mounted?(this.enableBrush(!1),iv(this),this._zr.remove(this.group),eS&&(this._mounted=!1),this):void 0},dispose:function(){this.unmount(),this.off()}},c(Hm,AS);var sz={mousedown:function(t){if(this._dragging)Mv(this,t);else if(!t.target||!t.target.draggable){_v(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null;var i=this._creatingPanel=tv(this,t,e);i&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=t.offsetX,i=t.offsetY,n=this.group.transformCoordToLocal(e,i);if(xv(this,t,n),this._dragging){_v(t);var o=bv(this,t,n,!1);o&&nv(this,o)}},mouseup:function(t){Mv(this,t)}},lz={lineX:Tv(0),lineY:Tv(1),rect:{createCover:function(t,e){return rv(YN(pv,function(t){return t},function(t){return t}),t,e,["w","e","n","s","se","sw","ne","nw"])},getCreatingRange:function(t){var e=av(t);return cv(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,i,n){sv(t,e,i,n)},updateCommon:lv,contain:wv},polygon:{createCover:function(t,e){var i=new xM;return i.add(new HT({name:"main",style:hv(e),silent:!0})),i},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new WT({name:"main",draggable:!0,drift:YN(gv,t,e),ondragend:YN(nv,t,{isEnd:!0})}))},updateCoverShape:function(t,e,i){e.childAt(0).setShape({points:vv(t,e,i)})},updateCommon:lv,contain:wv}},uz=["axisLine","axisTickLabel","axisName"],hz=Vu({type:"parallelAxis",init:function(t,e){hz.superApply(this,"init",arguments),(this._brushController=new Hm(e.getZr())).on("brush",y(this._onBrush,this))},render:function(t,e,i,n){if(!kv(t,e,n)){this.axisModel=t,this.api=i,this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new xM,this.group.add(this._axisGroup),t.get("show")){var a=Ov(t,e),s=a.coordinateSystem,l=t.getAreaSelectStyle(),u=l.width,h=t.axis.dim,c=s.getAxisLayout(h),d=r({strokeContainThreshold:u},c),p=new Nk(t,d);f(uz,p.add,p),this._axisGroup.add(p.getGroup()),this._refreshBrushController(d,l,t,a,u,i);var g=n&&n.animation===!1?null:t;lr(o,this._axisGroup,g)}}},_refreshBrushController:function(t,e,i,n,o,a){var r=i.axis.getExtent(),s=r[1]-r[0],l=Math.min(30,.1*Math.abs(s)),u=Ti.create({x:r[0],y:-o/2,width:s,height:o});u.x-=l,u.width+=2*l,this._brushController.mount({enableGlobalPan:!0,rotation:t.rotation,position:t.position}).setPanels([{panelId:"pl",clipPath:Av(u),isTargetByCursor:Cv(u,a,n),getLinearBrushOtherExtent:Dv(u,0)}]).enableBrush({brushType:"lineX",brushStyle:e,removeOnClick:!0}).updateCovers(Pv(i))},_onBrush:function(t,e){var i=this.axisModel,n=i.axis,o=p(t,function(t){return[n.coordToData(t.range[0],!0),n.coordToData(t.range[1],!0)]});(!i.option.realtime===e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:i.id,intervals:o})},dispose:function(){this._brushController.dispose()}}),cz=5;Vu({type:"parallel",render:function(t,e,i){this._model=t,this._api=i,this._handlers||(this._handlers={},f(dz,function(t,e){i.getZr().on(e,this._handlers[e]=y(t,this))},this)),Sl(this,"_throttledDispatchExpand",t.get("axisExpandRate"),"fixRate")},dispose:function(t,e){f(this._handlers,function(t,i){e.getZr().off(i,t)}),this._handlers=null},_throttledDispatchExpand:function(t){this._dispatchExpand(t)},_dispatchExpand:function(t){t&&this._api.dispatchAction(r({type:"parallelAxisExpand"},t))}});var dz={mousedown:function(t){Ev(this,"click")&&(this._mouseDownPoint=[t.offsetX,t.offsetY])},mouseup:function(t){var e=this._mouseDownPoint;if(Ev(this,"click")&&e){var i=[t.offsetX,t.offsetY],n=Math.pow(e[0]-i[0],2)+Math.pow(e[1]-i[1],2);if(n>cz)return;var o=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==o.behavior&&this._dispatchExpand({axisExpandWindow:o.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&Ev(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:!1})}}};Du(EN),CD.extend({type:"series.parallel",dependencies:["parallel"],visualColorAccessPath:"lineStyle.color",getInitialData:function(){var t=this.getSource();return Nv(t,this),bh(t,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 fz=.3,pz=(vl.extend({type:"parallel",init:function(){this._dataGroup=new xM,this.group.add(this._dataGroup),this._data,this._initialized},render:function(t,e,i,n){function o(t){var e=Vv(l,s,t,c,h);Fv(e,l,t,d)}function a(e,i){var o=u.getItemGraphicEl(i),a=Bv(l,e,c,h);l.setItemGraphicEl(e,o);var r=n&&n.animation===!1?null:t;nr(o,{shape:{points:a}},r,e),Fv(o,l,e,d)}function r(t){var e=u.getItemGraphicEl(t);s.remove(e)}var s=this._dataGroup,l=t.getData(),u=this._data,h=t.coordinateSystem,c=h.dimensions,d=Gv(t);if(l.diff(u).add(o).update(a).remove(r).execute(),!this._initialized){this._initialized=!0;var f=Rv(h,t,function(){setTimeout(function(){s.removeClipPath()})});s.setClipPath(f)}this._data=l},incrementalPrepareRender:function(){this._initialized=!0,this._data=null,this._dataGroup.removeAll()},incrementalRender:function(t,e){for(var i=e.getData(),n=e.coordinateSystem,o=n.dimensions,a=Gv(e),r=t.start;r=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)}})),vz=2*Math.PI,yz=(vl.extend({type:"gauge",render:function(t,e,i){this.group.removeAll();var n=t.get("axisLine.lineStyle.color"),o=Hv(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"),s=r.getModel("lineStyle"),l=t.get("clockwise"),u=-t.get("startAngle")/180*Math.PI,h=-t.get("endAngle")/180*Math.PI,c=(h-u)%vz,d=u,f=s.get("width"),p=r.get("show"),g=0;p&&g=t)return n[0][1];for(var e=0;e=t&&(0===e?0:n[e-1][0])=I;I++){var T=Math.cos(_),A=Math.sin(_);if(f.get("show")){var D=new jT({shape:{x1:T*h+l,y1:A*h+u,x2:T*(h-y)+l,y2:A*(h-y)+u},style:S,silent:!0});"auto"===S.stroke&&D.setStyle({stroke:n(I/m)}),s.add(D)}if(g.get("show")){var C=Zv(Ir(I/m*(d-c)+c),g.get("formatter")),L=g.get("distance"),k=n(I/m);s.add(new ET({style:Ya({},g,{text:C,x:T*(h-y-L)+l,y:A*(h-y-L)+u,textVerticalAlign:-.4>A?"top":A>.4?"bottom":"middle",textAlign:-.4>T?"left":T>.4?"right":"center"},{autoColor:k}),silent:!0}))}if(p.get("show")&&I!==m){for(var P=0;v>=P;P++){var T=Math.cos(_),A=Math.sin(_),O=new jT({shape:{x1:T*h+l,y1:A*h+u,x2:T*(h-x)+l,y2:A*(h-x)+u},silent:!0,style:M});"auto"===M.stroke&&O.setStyle({stroke:n((I+P/v)/m)}),s.add(O),_+=b}_-=b}else _+=w}},_renderPointer:function(t,e,i,n,o,a,r){var s=this.group,l=this._data;if(!t.get("pointer.show"))return void(l&&l.eachItemGraphicEl(function(t){s.remove(t)}));var u=[+t.get("min"),+t.get("max")],h=[a,r],c=t.getData(),d=c.mapDimension("value");c.diff(l).add(function(e){var i=new mz({shape:{angle:a}});or(i,{shape:{angle:Sr(c.get(d,e),u,h,!0)}},t),s.add(i),c.setItemGraphicEl(e,i)}).update(function(e,i){var n=l.getItemGraphicEl(i);nr(n,{shape:{angle:Sr(c.get(d,e),u,h,!0)}},t),s.add(n),c.setItemGraphicEl(e,n)}).remove(function(t){var e=l.getItemGraphicEl(t);s.remove(e)}).execute(),c.eachItemGraphicEl(function(t,e){var i=c.getItemModel(e),a=i.getModel("pointer");t.setShape({x:o.cx,y:o.cy,width:Mr(a.get("width"),o.r),r:Mr(a.get("length"),o.r)}),t.useStyle(i.getModel("itemStyle").getItemStyle()),"auto"===t.style.fill&&t.setStyle("fill",n(Sr(c.get(d,e),u,[0,1],!0))),Fa(t,i.getModel("emphasis.itemStyle").getItemStyle())}),this._data=c},_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+Mr(l[0],o.r),h=o.cy+Mr(l[1],o.r),c=+t.get("min"),d=+t.get("max"),f=t.getData().get(r,0),p=n(Sr(f,[c,d],[0,1],!0));this.group.add(new ET({silent:!0,style:Ya({},s,{x:u,y:h,text:a.getName(0),textAlign:"center",textVerticalAlign:"middle"},{autoColor:p,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+Mr(l[0],o.r),h=o.cy+Mr(l[1],o.r),c=Mr(a.get("width"),o.r),d=Mr(a.get("height"),o.r),f=t.getData(),p=f.get(f.mapDimension("value"),0),g=n(Sr(p,[r,s],[0,1],!0));this.group.add(new ET({silent:!0,style:Ya({},a,{x:u,y:h,text:Zv(p,a.get("formatter")),textWidth:isNaN(c)?null:c,textHeight:isNaN(d)?null:d,textAlign:"center",textVerticalAlign:"middle"},{autoColor:g,forceRich:!0})}))}}}),Gu({type:"series.funnel",init:function(t){yz.superApply(this,"init",arguments),this.legendVisualProvider=new tf(y(this.getData,this),y(this.getRawData,this)),this._defaultLabelLine(t)},getInitialData:function(){return gP(this,{coordDimensions:["value"],encodeDefaulter:x(ys,this)})},_defaultLabelLine:function(t){eo(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=yz.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",orient:"vertical",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}}}})),xz=Uv.prototype,_z=["itemStyle","opacity"];xz.updateData=function(t,e,i){var n=this.childAt(0),o=t.hostModel,a=t.getItemModel(e),r=t.getItemLayout(e),l=t.getItemModel(e).get(_z);l=null==l?1:l,n.useStyle({}),i?(n.setShape({points:r.points}),n.setStyle({opacity:0}),or(n,{style:{opacity:l}},o,e)):nr(n,{style:{opacity:l},shape:{points:r.points}},o,e);var u=a.getModel("itemStyle"),h=t.getItemVisual(e,"color");n.setStyle(s({lineJoin:"round",fill:h},u.getItemStyle(["opacity"]))),n.hoverStyle=u.getModel("emphasis").getItemStyle(),this._updateLabel(t,e),Fa(this)},xz._updateLabel=function(t,e){var i=this.childAt(1),n=this.childAt(2),o=t.hostModel,a=t.getItemModel(e),r=t.getItemLayout(e),s=r.label,l=t.getItemVisual(e,"color");nr(i,{shape:{points:s.linePoints||s.linePoints}},o,e),nr(n,{style:{x:s.x,y:s.y}},o,e),n.attr({rotation:s.rotation,origin:[s.x,s.y],z2:10});var u=a.getModel("label"),h=a.getModel("emphasis.label"),c=a.getModel("labelLine"),d=a.getModel("emphasis.labelLine"),l=t.getItemVisual(e,"color");Ua(n.style,n.hoverStyle={},u,h,{labelFetcher:t.hostModel,labelDataIndex:e,defaultText:t.getName(e),autoColor:l,useInsideStyle:!!s.inside},{textAlign:s.textAlign,textVerticalAlign:s.verticalAlign}),n.ignore=n.normalIgnore=!u.get("show"),n.hoverIgnore=!h.get("show"),i.ignore=i.normalIgnore=!c.get("show"),i.hoverIgnore=!d.get("show"),i.setStyle({stroke:l}),i.setStyle(c.getModel("lineStyle").getLineStyle()),i.hoverStyle=d.getModel("lineStyle").getLineStyle()},h(Uv,xM);var wz=(vl.extend({type:"funnel",render:function(t){var e=t.getData(),i=this._data,n=this.group;e.diff(i).add(function(t){var i=new Uv(e,t);e.setItemGraphicEl(t,i),n.add(i)}).update(function(t,o){var a=i.getItemGraphicEl(o);a.updateData(e,t),n.add(a),e.setItemGraphicEl(t,a)}).remove(function(t){var e=i.getItemGraphicEl(t);n.remove(e)}).execute(),this._data=e},remove:function(){this.group.removeAll(),this._data=null},dispose:function(){}}),function(t,e){t.eachSeriesByType("funnel",function(t){var i=t.getData(),n=i.mapDimension("value"),o=t.get("sort"),a=Xv(t,e),r=Yv(i,o),s=t.get("orient"),l=a.width,u=a.height,h=a.x,c=a.y,d="horizontal"===s?[Mr(t.get("minSize"),u),Mr(t.get("maxSize"),u)]:[Mr(t.get("minSize"),l),Mr(t.get("maxSize"),l)],f=i.getDataExtent(n),p=t.get("min"),g=t.get("max");null==p&&(p=Math.min(f[0],0)),null==g&&(g=f[1]);var m=t.get("funnelAlign"),v=t.get("gap"),y="horizontal"===s?l:u,x=(y-v*(i.count()-1))/i.count(),_=function(t,e){if("horizontal"===s){var o,a=i.get(n,t)||0,r=Sr(a,[p,g],d,!0);switch(m){case"top":o=c;break;case"center":o=c+(u-r)/2;break;case"bottom":o=c+(u-r)}return[[e,o],[e,o+r]]}var f,a=i.get(n,t)||0,v=Sr(a,[p,g],d,!0);switch(m){case"left":f=h;break;case"center":f=h+(l-v)/2;break;case"right":f=h+l-v}return[[f,e],[f+v,e]]};"ascending"===o&&(x=-x,v=-v,"horizontal"===s?h+=l:c+=u,r=r.reverse());for(var w=0;w=0)r[a[s].depth]=new mr(a[s],this,e);else if(eS)throw new Error("levels[i].depth is mandatory and should be natural number");if(o&&n){var l=YE(o,n,this,!0,i);return l.data}},setNodePosition:function(t,e){var i=this.option.data[t];i.localX=e[0],i.localY=e[1]},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},formatTooltip:function(t,e,i){if("edge"===i){var n=this.getDataParams(t,i),o=n.data,a=o.source+" -- "+o.target;return n.value&&(a+=" : "+n.value),Wr(a)}if("node"===i){var r=this.getGraph().getNodeByIndex(t),s=r.getLayout().value,l=this.getDataParams(t,i).data.name;if(s)var a=l+" : "+s;return Wr(a)}return bz.superCall(this,"formatTooltip",t,e)},optionUpdated:function(){var t=this.option;t.focusNodeAdjacency===!0&&(t.focusNodeAdjacency="allEdges")},getDataParams:function(t,e){var i=bz.superCall(this,"getDataParams",t,e);if(null==i.value&&"node"===e){var n=this.getGraph().getNodeByIndex(t),o=n.getLayout().value;i.value=o}return i},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",layout:null,left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,focusNodeAdjacency:!1,layoutIterations:32,label:{show:!0,position:"right",color:"#000",fontSize:12},levels:[],nodeAlign:"justify",itemStyle:{borderWidth:1,borderColor:"#333"},lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},animationEasing:"linear",animationDuration:1e3}}),Sz=["itemStyle","opacity"],Mz=["emphasis","itemStyle","opacity"],Iz=["lineStyle","opacity"],Tz=["emphasis","lineStyle","opacity"],Az=ya({shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,cpx2:0,cpy2:0,extent:0,orient:""},buildPath:function(t,e){var i=e.extent;t.moveTo(e.x1,e.y1),t.bezierCurveTo(e.cpx1,e.cpy1,e.cpx2,e.cpy2,e.x2,e.y2),"vertical"===e.orient?(t.lineTo(e.x2+i,e.y2),t.bezierCurveTo(e.cpx2+i,e.cpy2,e.cpx1+i,e.cpy1,e.x1+i,e.y1)):(t.lineTo(e.x2,e.y2+i),t.bezierCurveTo(e.cpx2,e.cpy2+i,e.cpx1,e.cpy1+i,e.x1,e.y1+i)),t.closePath()},highlight:function(){this.trigger("emphasis")},downplay:function(){this.trigger("normal")}});Fu({type:"sankey",_model:null,_focusAdjacencyDisabled:!1,render:function(t,e,i){var n=this,o=t.getGraph(),a=this.group,r=t.layoutInfo,s=r.width,l=r.height,u=t.getData(),h=t.getData("edge"),c=t.get("orient");this._model=t,a.removeAll(),a.attr("position",[r.x,r.y]),o.eachEdge(function(e){var i=new Az;i.dataIndex=e.dataIndex,i.seriesIndex=t.seriesIndex,i.dataType="edge";var n,o,r,u,d,f,p,g,m=e.getModel("lineStyle"),v=m.get("curveness"),y=e.node1.getLayout(),x=e.node1.getModel(),_=x.get("localX"),w=x.get("localY"),b=e.node2.getLayout(),S=e.node2.getModel(),M=S.get("localX"),I=S.get("localY"),T=e.getLayout();switch(i.shape.extent=Math.max(1,T.dy),i.shape.orient=c,"vertical"===c?(n=(null!=_?_*s:y.x)+T.sy,o=(null!=w?w*l:y.y)+y.dy,r=(null!=M?M*s:b.x)+T.ty,u=null!=I?I*l:b.y,d=n,f=o*(1-v)+u*v,p=r,g=o*v+u*(1-v)):(n=(null!=_?_*s:y.x)+y.dx,o=(null!=w?w*l:y.y)+T.sy,r=null!=M?M*s:b.x,u=(null!=I?I*l:b.y)+T.ty,d=n*(1-v)+r*v,f=o,p=n*v+r*(1-v),g=u),i.setShape({x1:n,y1:o,x2:r,y2:u,cpx1:d,cpy1:f,cpx2:p,cpy2:g}),i.setStyle(m.getItemStyle()),i.style.fill){case"source":i.style.fill=e.node1.getVisual("color");break;case"target":i.style.fill=e.node2.getVisual("color")}Fa(i,e.getModel("emphasis.lineStyle").getItemStyle()),a.add(i),h.setItemGraphicEl(e.dataIndex,i)}),o.eachNode(function(e){var i=e.getLayout(),n=e.getModel(),o=n.get("localX"),r=n.get("localY"),h=n.getModel("label"),c=n.getModel("emphasis.label"),d=new XT({shape:{x:null!=o?o*s:i.x,y:null!=r?r*l:i.y,width:i.dx,height:i.dy},style:n.getModel("itemStyle").getItemStyle()}),f=e.getModel("emphasis.itemStyle").getItemStyle();Ua(d.style,f,h,c,{labelFetcher:t,labelDataIndex:e.dataIndex,defaultText:e.id,isRectText:!0}),d.setStyle("fill",e.getVisual("color")),Fa(d,f),a.add(d),u.setItemGraphicEl(e.dataIndex,d),d.dataType="node"}),u.eachItemGraphicEl(function(e,o){var a=u.getItemModel(o);a.get("draggable")&&(e.drift=function(e,a){n._focusAdjacencyDisabled=!0,this.shape.x+=e,this.shape.y+=a,this.dirty(),i.dispatchAction({type:"dragNode",seriesId:t.id,dataIndex:u.getRawIndex(o),localX:this.shape.x/s,localY:this.shape.y/l})},e.ondragend=function(){n._focusAdjacencyDisabled=!1},e.draggable=!0,e.cursor="move"),e.highlight=function(){this.trigger("emphasis")},e.downplay=function(){this.trigger("normal")},e.focusNodeAdjHandler&&e.off("mouseover",e.focusNodeAdjHandler),e.unfocusNodeAdjHandler&&e.off("mouseout",e.unfocusNodeAdjHandler),a.get("focusNodeAdjacency")&&(e.on("mouseover",e.focusNodeAdjHandler=function(){n._focusAdjacencyDisabled||(n._clearTimer(),i.dispatchAction({type:"focusNodeAdjacency",seriesId:t.id,dataIndex:e.dataIndex}))}),e.on("mouseout",e.unfocusNodeAdjHandler=function(){n._focusAdjacencyDisabled||n._dispatchUnfocus(i)}))}),h.eachItemGraphicEl(function(e,o){var a=h.getItemModel(o);e.focusNodeAdjHandler&&e.off("mouseover",e.focusNodeAdjHandler),e.unfocusNodeAdjHandler&&e.off("mouseout",e.unfocusNodeAdjHandler),a.get("focusNodeAdjacency")&&(e.on("mouseover",e.focusNodeAdjHandler=function(){n._focusAdjacencyDisabled||(n._clearTimer(),i.dispatchAction({type:"focusNodeAdjacency",seriesId:t.id,edgeDataIndex:e.dataIndex}))}),e.on("mouseout",e.unfocusNodeAdjHandler=function(){n._focusAdjacencyDisabled||n._dispatchUnfocus(i)}))}),!this._data&&t.get("animation")&&a.setClipPath(Jv(a.getBoundingRect(),t,function(){a.removeClipPath()})),this._data=t.getData()},dispose:function(){this._clearTimer()},_dispatchUnfocus:function(t){var e=this;this._clearTimer(),this._unfocusDelayTimer=setTimeout(function(){e._unfocusDelayTimer=null,t.dispatchAction({type:"unfocusNodeAdjacency",seriesId:e._model.id})},500)},_clearTimer:function(){this._unfocusDelayTimer&&(clearTimeout(this._unfocusDelayTimer),this._unfocusDelayTimer=null)},focusNodeAdjacency:function(t,e,i,n){var o=t.getData(),a=o.graph,r=n.dataIndex,s=o.getItemModel(r),l=n.edgeDataIndex;if(null!=r||null!=l){var u=a.getNodeByIndex(r),h=a.getEdgeByIndex(l);if(a.eachNode(function(t){Kv(t,Sz,.1)}),a.eachEdge(function(t){Kv(t,Iz,.1)}),u){$v(u,Mz);var c=s.get("focusNodeAdjacency");"outEdges"===c?f(u.outEdges,function(t){t.dataIndex<0||($v(t,Tz),$v(t.node2,Mz))}):"inEdges"===c?f(u.inEdges,function(t){t.dataIndex<0||($v(t,Tz),$v(t.node1,Mz))}):"allEdges"===c&&f(u.edges,function(t){t.dataIndex<0||($v(t,Tz),t.node1!==u&&$v(t.node1,Mz),t.node2!==u&&$v(t.node2,Mz))})}h&&($v(h,Tz),$v(h.node1,Mz),$v(h.node2,Mz))}},unfocusNodeAdjacency:function(t){var e=t.getGraph();e.eachNode(function(t){Kv(t,Sz)}),e.eachEdge(function(t){Kv(t,Iz)})}}),ku({type:"dragNode",event:"dragnode",update:"update"},function(t,e){e.eachComponent({mainType:"series",subType:"sankey",query:t},function(e){e.setNodePosition(t.dataIndex,[t.localX,t.localY])})});var Dz=function(t,e){t.eachSeriesByType("sankey",function(t){var i=t.get("nodeWidth"),n=t.get("nodeGap"),o=Qv(t,e);t.layoutInfo=o;var a=o.width,r=o.height,s=t.getGraph(),l=s.nodes,u=s.edges;ey(l);var h=m(l,function(t){return 0===t.getLayout().value}),c=0!==h.length?0:t.get("layoutIterations"),d=t.get("orient"),f=t.get("nodeAlign");ty(l,u,i,n,a,r,c,d,f)})},Cz=function(t){t.eachSeriesByType("sankey",function(t){var e=t.getGraph(),i=e.nodes;if(i.length){var n=1/0,o=-1/0;f(i,function(t){var e=t.getLayout().value;n>e&&(n=e),e>o&&(o=e)}),f(i,function(e){var i=new kO({type:"color",mappingMethod:"linear",dataExtent:[n,o],visual:t.get("color")}),a=i.mapValueToVisual(e.getLayout().value),r=e.getModel().get("itemStyle.color");null!=r?e.setVisual("color",r):e.setVisual("color",a)})}})};Eu(Dz),Nu(Cz);var Lz=function(t,e,i,n,o){sk.call(this,t,e,i),this.type=n||"value",this.position=o||"bottom",this.orient=null};Lz.prototype={constructor:Lz,model:null,isHorizontal:function(){var t=this.position;return"top"===t||"bottom"===t},pointToData:function(t,e){return this.coordinateSystem.pointToData(t,e)[0]},toGlobalCoord:null,toLocalCoord:null},h(Lz,sk),wy.prototype={type:"singleAxis",axisPointerEnabled:!0,constructor:wy,_init:function(t){var e=this.dimension,i=new Lz(e,qh(t),[0,0],t.get("type"),t.get("position")),n="category"===i.type;i.onBand=n&&t.get("boundaryGap"),i.inverse=t.get("inverse"),i.orient=t.get("orient"),t.axis=i,i.model=t,i.coordinateSystem=this,this._axis=i},update:function(t){t.eachSeries(function(t){if(t.coordinateSystem===this){var e=t.getData();f(e.mapDimension(this.dimension,!0),function(t){this._axis.scale.unionExtentFromData(e,t)},this),jh(this._axis.scale,this._axis.model)}},this)},resize:function(t,e){this._rect=ts({left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")},{width:e.getWidth(),height:e.getHeight()}),this._adjustAxis()},getRect:function(){return this._rect},_adjustAxis:function(){var t=this._rect,e=this._axis,i=e.isHorizontal(),n=i?[0,t.width]:[0,t.height],o=e.reverse?1:0;e.setExtent(n[o],n[1-o]),this._updateAxisTransform(e,i?t.x:t.y)},_updateAxisTransform:function(t,e){var i=t.getExtent(),n=i[0]+i[1],o=t.isHorizontal();t.toGlobalCoord=o?function(t){return t+e}:function(t){return n-t+e},t.toLocalCoord=o?function(t){return t-e}:function(t){return n-t+e}},getAxis:function(){return this._axis},getBaseAxis:function(){return this._axis},getAxes:function(){return[this._axis]},getTooltipAxes:function(){return{baseAxes:[this.getAxis()]}},containPoint:function(t){var e=this.getRect(),i=this.getAxis(),n=i.orient;return"horizontal"===n?i.contain(i.toLocalCoord(t[0]))&&t[1]>=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}},ks.register("single",{create:by,dimensions:wy.prototype.dimensions});var kz=["axisLine","axisTickLabel","axisName"],Pz=["splitArea","splitLine"],Oz=Wk.extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(t,e,i,n){var o=this.group;o.removeAll();var a=this._axisGroup;this._axisGroup=new xM;var r=Sy(t),s=new Nk(t,r);f(kz,s.add,s),o.add(this._axisGroup),o.add(s.getGroup()),f(Pz,function(e){t.get(e+".show")&&this["_"+e](t)},this),lr(a,this._axisGroup,t),Oz.superCall(this,"render",t,e,i,n)},remove:function(){Ad(this)},_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;fr||_(r))return{point:[]};var s=a.getItemGraphicEl(r),l=i.coordinateSystem;if(i.getTooltipPosition)n=i.getTooltipPosition(r)||[];else if(l&&l.dataToPoint)n=l.dataToPoint(a.getValues(p(l.dimensions,function(t){return a.mapDimension(t)}),r,!0))||[];else if(s){var u=s.getBoundingRect().clone();u.applyTransform(s.transform),n=[u.x+u.width/2,u.y+u.height/2]}return{point:n,el:s}},Rz=f,Bz=x,Vz=ho(),Gz=function(t,e,i){var n=t.currTrigger,o=[t.x,t.y],a=t,r=t.dispatchAction||y(i.dispatchAction,i),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){Ey(o)&&(o=zz({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},e).point);var l=Ey(o),u=a.axesInfo,h=s.axesInfo,c="leave"===n||Ey(o),d={},f={},p={list:[],map:{}},g={showPointer:Bz(Ay,f),showTooltip:Bz(Dy,p)};Rz(s.coordSysMap,function(t,e){var i=l||t.containPoint(o);Rz(s.coordSysAxesInfo[e],function(t){var e=t.axis,n=Py(u,t);if(!c&&i&&(!u||n)){var a=n&&n.value;null!=a||l||(a=e.pointToData(o)),null!=a&&Iy(t,a,g,!1,d)}})});var m={};return Rz(h,function(t,e){var i=t.linkGroup;i&&!f[e]&&Rz(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,Oy(e),Oy(t)))),m[t.key]=a}})}),Rz(m,function(t,e){Iy(h[e],t,g,!0,d)}),Cy(f,h,d),Ly(p,o,t,r),ky(h,r,i),d}},Fz=(Bu({type:"axisPointer",coordSysAxesInfo:null,defaultOption:{show:"auto",triggerOn:null,zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#aaa",width:1,type:"solid"},shadowStyle:{color:"rgba(150,150,150,0.3)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,shadowBlur:3,shadowColor:"#aaa"},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}}}),ho()),Wz=f,Hz=Vu({type:"axisPointer",render:function(t,e,i){var n=e.getComponent("tooltip"),o=t.get("triggerOn")||n&&n.get("triggerOn")||"mousemove|click";Ny("axisPointer",i,function(t,e,i){"none"!==o&&("leave"===t||o.indexOf(t)>=0)&&i({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},remove:function(t,e){Fy(e.getZr(),"axisPointer"),Hz.superApply(this._model,"remove",arguments)},dispose:function(t,e){Fy("axisPointer",e),Hz.superApply(this._model,"dispose",arguments)}}),Zz=ho(),Uz=n,Xz=y;Wy.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=x(Hy,e,h);this.updatePointerEl(r,l,c,e),this.updateLabelEl(r,l,c,e)}else r=this._group=new xM,this.createPointerEl(r,l,t,e),this.createLabelEl(r,l,t,e),i.getZr().add(r);Yy(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=xd(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>r}return!1}return i===!0},makeElOption:function(){},createPointerEl:function(t,e){var i=e.pointer;if(i){var n=Zz(t).pointerEl=new vA[i.type](Uz(e.pointer));t.add(n)}},createLabelEl:function(t,e,i,n){if(e.label){var o=Zz(t).labelEl=new XT(Uz(e.label));t.add(o),Uy(o,n)}},updatePointerEl:function(t,e,i){var n=Zz(t).pointerEl;n&&e.pointer&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var o=Zz(t).labelEl;o&&(o.setStyle(e.label.style),i(o,{shape:e.label.shape,position:e.label.position}),Uy(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=cr(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){ES(t.event)},onmousedown:Xz(this._onHandleDragMove,this,0,0),drift:Xz(this._onHandleDragMove,this),ondragend:Xz(this._onHandleDragEnd,this)}),i.add(n)),Yy(n,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];n.setStyle(o.getItemStyle(null,s));var l=o.get("size");_(l)||(l=[l,l]),n.attr("scale",[l[0]/2,l[1]/2]),Sl(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,r)}},_moveHandleToValue:function(t,e){Hy(this._axisPointerModel,!e&&this._moveAnimation,this._handle,Xy(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(Xy(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(Xy(n)),Zz(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){var t=this._handle;if(t){var e=this._payloadInfo,i=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:e.cursorPoint[0],y:e.cursorPoint[1],tooltipOption:e.tooltipOption,axesInfo:[{axisDim:i.axis.dim,axisIndex:i.componentIndex}]})}},_onHandleDragEnd:function(){this._dragging=!1;var t=this._handle;if(t){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]}}},Wy.prototype.constructor=Wy,_o(Wy);var Yz=Wy.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.grid,s=n.get("type"),l=nx(r,a).getOtherAxis(a).getGlobalExtent(),u=a.toGlobalCoord(a.dataToCoord(e,!0));if(s&&"none"!==s){var h=jy(n),c=jz[s](a,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}var d=Id(r.model,i);Qy(e,t,d,i,n,o)},getHandleTransform:function(t,e,i){var n=Id(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:Jy(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i){var n=i.axis,o=n.grid,a=n.getGlobalExtent(!0),r=nx(o,n).getOtherAxis(n).getGlobalExtent(),s="x"===n.dim?0:1,l=t.position;l[s]+=e[s],l[s]=Math.min(a[1],l[s]),l[s]=Math.max(a[0],l[s]);var u=(r[1]+r[0])/2,h=[u,u];h[s]=l[s];var c=[{verticalAlign:"middle"},{align:"center"}];return{position:l,rotation:t.rotation,cursorPoint:h,tooltipOption:c[s]}}}),jz={line:function(t,e,i){var n=tx([e,i[0]],[e,i[1]],ox(t));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(t,e,i){var n=Math.max(1,t.getBandWidth()),o=i[1]-i[0];return{type:"Rect",shape:ex([e-n/2,i[0]],[n,o],ox(t))}}};Wk.registerAxisPointerClass("CartesianAxisPointer",Yz),Du(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!_(e)&&(t.axisPointer.link=[e])}}),Cu(OC.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=dd(t,e)}),ku({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},Gz);var qz=["x","y"],Kz=["width","height"],$z=Wy.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.coordinateSystem,s=rx(r,1-ax(a)),l=r.dataToPoint(e)[0],u=n.get("type");if(u&&"none"!==u){var h=jy(n),c=Jz[u](a,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}var d=Sy(i);Qy(e,t,d,i,n,o)},getHandleTransform:function(t,e,i){var n=Sy(e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:Jy(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i){var n=i.axis,o=n.coordinateSystem,a=ax(n),r=rx(o,a),s=t.position;s[a]+=e[a],s[a]=Math.min(r[1],s[a]),s[a]=Math.max(r[0],s[a]);var l=rx(o,1-a),u=(l[1]+l[0])/2,h=[u,u];return h[a]=s[a],{position:s,rotation:t.rotation,cursorPoint:h,tooltipOption:{verticalAlign:"middle"}}}}),Jz={line:function(t,e,i){var n=tx([e,i[0]],[e,i[1]],ax(t));return{type:"Line",subPixelOptimize:!0,shape:n}},shadow:function(t,e,i){var n=t.getBandWidth(),o=i[1]-i[0];return{type:"Rect",shape:ex([e-n/2,i[0]],[n,o],ax(t))}}};Wk.registerAxisPointerClass("SingleAxisPointer",$z),Vu({type:"single"});var Qz=2,tR=CD.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(){tR.superApply(this,"init",arguments),this.legendVisualProvider=new tf(y(this.getData,this),y(this.getRawData,this))},fixData:function(t){var e=t.length,i={},n=vo(t,function(t){return i.hasOwnProperty(t[0])||(i[t[0]]=-1),t[2]}),o=[];n.buckets.each(function(t,e){o.push({name:e,dataList:t})});for(var a=o.length,r=0;a>r;++r){for(var s=o[r].name,l=0;ln;++n)i[n]=n;var o=t.mapDimension("single"),a=vo(i,function(e){return t.get("name",e)}),r=[];return a.buckets.each(function(e,i){e.sort(function(e,i){return t.get(o,e)-t.get(o,i)}),r.push({name:i,indices:e})}),r},getAxisTooltipData:function(t,e){_(t)||(t=t?[t]:[]);for(var i,n=this.getData(),o=this.getLayerSeries(),a=[],r=o.length,s=0;r>s;++s){for(var l=Number.MAX_VALUE,u=-1,h=o[s].indices.length,c=0;h>c;++c){var d=n.get(t[0],o[s].indices[c]),f=Math.abs(d-e);l>=f&&(i=d,l=f,u=o[s].indices[c])}a.push(u)}return{dataIndices:a,nestestValue:i}},formatTooltip:function(t){var e=this.getData(),i=e.getName(t),n=e.get(e.mapDimension("value"),t);return(isNaN(n)||null==n)&&(n="-"),Wr(i+" : "+n)},defaultOption:{zlevel:0,z:2,coordinateSystem:"singleAxis",boundaryGap:["10%","10%"],singleAxisIndex:0,animationEasing:"linear",label:{margin:4,show:!0,position:"left",color:"#000",fontSize:11},emphasis:{label:{show:!0}}}});Fu({type:"themeRiver",init:function(){this._layers=[]},render:function(t){function e(t){return t.name}function i(e,i,s){var l=this._layers;if("remove"===e)return void o.remove(l[i]);for(var u,h=[],d=[],f=a[i].indices,p=0;pn[1]&&n.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:n[1],r0:n[0]},api:{coord:y(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:y(Rx,t)}}},cR=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)}}}},dR=sA,fR=["itemStyle"],pR=["emphasis","itemStyle"],gR=["label"],mR=["emphasis","label"],vR="e\x00\x00",yR={cartesian2d:sR,geo:lR,singleAxis:uR,polar:hR,calendar:cR};CD.extend({type:"series.custom",dependencies:["grid","polar","geo","singleAxis","calendar"],defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,useTransform:!0,clip:!1},getInitialData:function(){return bh(this.getSource(),this)},getDataParams:function(t,e,i){var n=CD.prototype.getDataParams.apply(this,arguments);return i&&(n.info=i.info),n}}),vl.extend({type:"custom",_data:null,render:function(t,e,i,n){var o=this._data,a=t.getData(),r=this.group,s=Fx(t,a,e,i);a.diff(o).add(function(e){Hx(null,e,s(e,n),t,r,a)}).update(function(e,i){var l=o.getItemGraphicEl(i);Hx(l,e,s(e,n),t,r,a)}).remove(function(t){var e=o.getItemGraphicEl(t);e&&r.remove(e)}).execute();var l=t.get("clip",!0)?Zc(t.coordinateSystem,!1,t):null;l?r.setClipPath(l):r.removeClipPath(),this._data=a},incrementalPrepareRender:function(){this.group.removeAll(),this._data=null},incrementalRender:function(t,e,i,n,o){function a(t){t.isGroup||(t.incremental=!0,t.useHoverLayer=!0)}for(var r=e.getData(),s=Fx(e,r,i,n),l=t.start;lc?c=f:(d.lastTickCount=o,d.lastAutoInterval=c),c}},h(r_,sk);var _R=function(t){this.name=t||"",this.cx=0,this.cy=0,this._radiusAxis=new a_,this._angleAxis=new r_,this._radiusAxis.polar=this._angleAxis.polar=this};_R.prototype={type:"polar",axisPointerEnabled:!0,constructor:_R,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=a>l?1:-1;a>l||l>r;)l+=360*u;return[s,l]},coordToPoint:function(t){var e=t[0],i=t[1]/180*Math.PI,n=Math.cos(i)*e+this.cx,o=-Math.sin(i)*e+this.cy;return[n,o]},getArea:function(){var t=this.getAngleAxis(),e=this.getRadiusAxis(),i=e.getExtent().slice();i[0]>i[1]&&i.reverse();var n=t.getExtent(),o=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:i[0],r:i[1],startAngle:-n[0]*o,endAngle:-n[1]*o,clockwise:t.inverse,contain:function(t,e){var i=t-this.cx,n=e-this.cy,o=i*i+n*n,a=this.r,r=this.r0;return a*a>=o&&o>=r*r}}}};var wR=WA.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});o(wR.prototype,XL);var bR={angle:{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}},radius:{splitNumber:5}};mk("angle",wR,s_,bR.angle),mk("radius",wR,s_,bR.radius),Bu({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(t){var e,i=this.ecModel;return i.eachComponent(t,function(t){t.getCoordSysModel()===this&&(e=t)},this),e},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}});var SR={dimensions:_R.prototype.dimensions,create:function(t,e){var i=[];return t.eachComponent("polar",function(t,n){var o=new _R(n);o.update=u_;var a=o.getRadiusAxis(),r=o.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");h_(a,s),h_(r,l),l_(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];if(eS&&!i)throw new Error('Polar "'+D(e.get("polarIndex"),e.get("polarId"),0)+'" not found');e.coordinateSystem=i.coordinateSystem}}),i}};ks.register("polar",SR);var MR=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];Wk.extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(t){if(this.group.removeAll(),t.get("show")){var e=t.axis,i=e.polar,o=i.getRadiusAxis().getExtent(),a=e.getTicksCoords(),r=e.getMinorTicksCoords(),s=p(e.getViewLabels(),function(t){var t=n(t);return t.coord=e.dataToCoord(t.tickValue),t});f_(s),f_(a),f(MR,function(n){!t.get(n+".show")||e.scale.isBlank()&&"axisLine"!==n||this["_"+n](t,i,a,r,o,s)},this)}},_axisLine:function(t,e,i,n,o){var a,r=t.getModel("axisLine.lineStyle"),s=d_(e),l=s?0:1;a=0===o[l]?new NT({shape:{cx:e.cx,cy:e.cy,r:o[s]},style:r.getLineStyle(),z2:1,silent:!0}):new VT({shape:{cx:e.cx,cy:e.cy,r:o[s],r0:o[l]},style:r.getLineStyle(),z2:1,silent:!0}),a.style.fill=null,this.group.add(a)},_axisTick:function(t,e,i,n,o){var a=t.getModel("axisTick"),r=(a.get("inside")?-1:1)*a.get("length"),l=o[d_(e)],u=p(i,function(t){return new jT({shape:c_(e,[l,l+r],t.coord)})});this.group.add(fA(u,{style:s(a.getModel("lineStyle").getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")})}))},_minorTick:function(t,e,i,n,o){if(n.length){for(var a=t.getModel("axisTick"),r=t.getModel("minorTick"),l=(a.get("inside")?-1:1)*r.get("length"),u=o[d_(e)],h=[],c=0;cd?"left":"right",g=Math.abs(c[1]-f)/h<.3?"middle":c[1]>f?"top":"bottom";r&&r[a]&&r[a].textStyle&&(n=new mr(r[a].textStyle,s,s.ecModel));var m=new ET({silent:Nk.isLabelSilent(t)});this.group.add(m),Ya(m.style,n,{x:c[0],y:c[1],textFill:n.getTextColor()||t.get("axisLine.lineStyle.color"),text:i.formattedLabel,textAlign:p,textVerticalAlign:g}),u&&(m.eventData=Nk.makeAxisEventDataBase(t),m.eventData.targetType="axisLabel",m.eventData.value=i.rawLabel)},this)},_splitLine:function(t,e,i,n,o){var a=t.getModel("splitLine"),r=a.getModel("lineStyle"),l=r.get("color"),u=0;l=l instanceof Array?l:[l];for(var h=[],c=0;ci?"0"+i:i;var n=t.getDate();n=10>n?"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 e=e||0,0===e?this.getDateInfo(t):(t=new Date(this.getDateInfo(t).time),t.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];f([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=ts(r,l);f([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){_(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){t=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];var e;t[0].time>t[1].time&&(e=!0,t.reverse());var i=Math.floor(t[1].time/LR)-Math.floor(t[0].time/LR)+1,n=new Date(t[0].time),o=n.getDate(),a=t[1].date.getDate();n.setDate(o+i-1);var r=n.getDate();if(r!==a)for(var s=n.getTime()-t[1].time>0?1:-1;(r=n.getDate())!==a&&(n.getTime()-t[1].time)*s>0;)i-=s,n.setDate(r-s);var l=Math.floor((i+t[0].day+6)/7),u=e?-l+1:l-1;return e&&t.reverse(),{range:[t[0].formatedDate,t[1].formatedDate],start:t[0],end:t[1],allDay:i,weeks:l,nthWeek:u,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)}},v_.dimensions=v_.prototype.dimensions,v_.getDimensionsInfo=v_.prototype.getDimensionsInfo,v_.create=function(t,e){var i=[];return t.eachComponent("calendar",function(n){var o=new v_(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},ks.register("calendar",v_);var kR=WA.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){var e=os(t);kR.superApply(this,"init",arguments),x_(t,e)},mergeOption:function(t){kR.superApply(this,"mergeOption",arguments),x_(this.option,t)}}),PR={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},OR={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]};Vu({type:"calendar",_tlpoints:null,_blpoints:null,_firstDayOfMonth:null,_firstDayPoints:null,render:function(t){var e=this.group;e.removeAll();var i=t.coordinateSystem,n=i.getRangeInfo(),o=i.getOrient();this._renderDayRect(t,n,e),this._renderLines(t,n,o,e),this._renderYearText(t,n,o,e),this._renderMonthText(t,o,e),this._renderWeekText(t,n,o,e)},_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 XT({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 HT({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;7>a;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?Zr(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 ET({z2:30});Ya(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"),a=n.get("margin"),s=n.get("position"),l=n.get("align"),u=[this._tlpoints,this._blpoints];b(o)&&(o=PR[o.toUpperCase()]||[]);var h="start"===s?0:1,c="horizontal"===e?0:1;a="start"===s?-a:a;for(var d="center"===l,f=0;ff;f++){var p=a.getNextNDay(c,f),g=a.dataToRect([p.time],!1).center,m=f;m=Math.abs((f+h)%7);var v=new ET({z2:30});r(Ya(v.style,o,{text:l[m]}),this._weekTextPositionControl(g,i,s,u,d)),n.add(v)}}}}),Bu({type:"title",layoutMode:{type:"box",ignoreSize:!0},defaultOption:{zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}}}),Vu({type:"title",render:function(t,e,i){if(this.group.removeAll(),t.get("show")){var n=this.group,o=t.getModel("textStyle"),a=t.getModel("subtextStyle"),r=t.get("textAlign"),s=C(t.get("textBaseline"),t.get("textVerticalAlign")),l=new ET({style:Ya({},o,{text:t.get("text"),textFill:o.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new ET({style:Ya({},a,{text:h,textFill:a.getTextColor(),y:u.height+t.get("itemGap"),textVerticalAlign:"top"},{disableBox:!0}),z2:10}),d=t.get("link"),f=t.get("sublink"),p=t.get("triggerEvent",!0);l.silent=!d&&!p,c.silent=!f&&!p,d&&l.on("click",function(){$r(d,"_"+t.get("target"))}),f&&c.on("click",function(){$r(f,"_"+t.get("subtarget"))}),l.eventData=c.eventData=p?{componentType:"title",componentIndex:t.componentIndex}:null,n.add(l),h&&n.add(c);var g=n.getBoundingRect(),m=t.getBoxLayoutParams();m.width=g.width,m.height=g.height;var v=ts(m,{width:i.getWidth(),height:i.getHeight()},t.get("padding"));r||(r=t.get("left")||t.get("right"),"middle"===r&&(r="center"),"right"===r?v.x+=v.width:"center"===r&&(v.x+=v.width/2)),s||(s=t.get("top")||t.get("bottom"),"center"===s&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),n.attr("position",[v.x,v.y]);var y={textAlign:r,textVerticalAlign:s};l.setStyle(y),c.setStyle(y),g=n.getBoundingRect();var x=v.margin,_=t.getItemStyle(["color","opacity"]);_.fill=t.get("backgroundColor");var w=new XT({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:t.get("borderRadius")},style:_,subPixelOptimize:!0,silent:!0});n.add(w)}}});var ER=FD.legend.selector,NR={all:{type:"all",title:n(ER.all)},inverse:{type:"inverse",title:n(ER.inverse)}},zR=Bu({type:"legend.plain",dependencies:["series"],layoutMode:{type:"box",ignoreSize:!0},init:function(t,e,i){this.mergeDefaultAndTheme(t,i),t.selected=t.selected||{},this._updateSelector(t)},mergeOption:function(t){zR.superCall(this,"mergeOption",t),this._updateSelector(t)},_updateSelector:function(t){var e=t.selector;e===!0&&(e=t.selector=["all","inverse"]),_(e)&&f(e,function(t,i){b(t)&&(t={type:t}),e[i]=o(t,NR[t.type])})},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},getOrient:function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},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",inactiveBorderColor:"#ccc",itemStyle:{borderWidth:0},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:" sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}}});ku("legendToggleSelect","legendselectchanged",x(__,"toggleSelected")),ku("legendAllSelect","legendselectall",x(__,"allSelect")),ku("legendInverseSelect","legendinverseselect",x(__,"inverseSelect")),ku("legendSelect","legendselected",x(__,"select")),ku("legendUnSelect","legendunselected",x(__,"unSelect"));var RR=x,BR=f,VR=xM,GR=Vu({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new VR),this._backgroundEl,this.group.add(this._selectorGroup=new VR),this._isFirstRender=!0},getContentGroup:function(){return this._contentGroup},getSelectorGroup:function(){return this._selectorGroup},render:function(t,e,i){var n=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var o=t.get("align"),a=t.get("orient");o&&"auto"!==o||(o="right"===t.get("left")&&"vertical"===a?"right":"left");var r=t.get("selector",!0),l=t.get("selectorPosition",!0);!r||l&&"auto"!==l||(l="horizontal"===a?"end":"start"),this.renderInner(o,t,e,i,r,a,l);var u=t.getBoxLayoutParams(),h={width:i.getWidth(),height:i.getHeight()},c=t.get("padding"),d=ts(u,h,c),f=this.layoutInner(t,o,d,n,r,l),p=ts(s({width:f.width,height:f.height},u),h,c);this.group.attr("position",[p.x-f.x,p.y-f.y]),this.group.add(this._backgroundEl=b_(f,t))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},renderInner:function(t,e,i,n,o,a,r){var s=this.getContentGroup(),l=B(),u=e.get("selectedMode"),h=[];i.eachRawSeries(function(t){!t.get("legendHoverLink")&&h.push(t.id)}),BR(e.getData(),function(o,a){var r=o.get("name");if(!this.newlineDisabled&&(""===r||"\n"===r))return void s.add(new VR({newline:!0}));var c=i.getSeriesByName(r)[0];if(!l.get(r)){if(c){var d=c.getData(),f=d.getVisual("color"),p=d.getVisual("borderColor");"function"==typeof f&&(f=f(c.getDataParams(0))),"function"==typeof p&&(p=p(c.getDataParams(0)));var g=d.getVisual("legendSymbol")||"roundRect",m=d.getVisual("symbol"),v=this._createItem(r,a,o,e,g,m,t,f,p,u);v.on("click",RR(M_,r,null,n,h)).on("mouseover",RR(I_,c.name,null,n,h)).on("mouseout",RR(T_,c.name,null,n,h)),l.set(r,!0)}else i.eachRawSeries(function(i){if(!l.get(r)&&i.legendVisualProvider){var s=i.legendVisualProvider;if(!s.containName(r))return;var c=s.indexOfName(r),d=s.getItemVisual(c,"color"),f=s.getItemVisual(c,"borderColor"),p="roundRect",g=this._createItem(r,a,o,e,p,null,t,d,f,u);g.on("click",RR(M_,null,r,n,h)).on("mouseover",RR(I_,null,r,n,h)).on("mouseout",RR(T_,null,r,n,h)),l.set(r,!0)}},this);eS&&(l.get(r)||console.warn(r+" series not exists. Legend data should be same with series name or data name."))}},this),o&&this._createSelector(o,e,n,a,r)},_createSelector:function(t,e,i){function n(t){var n=t.type,a=new ET({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:"all"===n?"legendAllSelect":"legendInverseSelect"})}});o.add(a);var r=e.getModel("selectorLabel"),s=e.getModel("emphasis.selectorLabel");Ua(a.style,a.hoverStyle={},r,s,{defaultText:t.title,isRectText:!1}),Fa(a)}var o=this.getSelectorGroup();BR(t,function(t){n(t)})},_createItem:function(t,e,i,n,o,a,s,l,u,h){var c=n.get("itemWidth"),d=n.get("itemHeight"),f=n.get("inactiveColor"),p=n.get("inactiveBorderColor"),g=n.get("symbolKeepAspect"),m=n.getModel("itemStyle"),v=n.isSelected(t),y=new VR,x=i.getModel("textStyle"),_=i.get("icon"),w=i.getModel("tooltip"),b=w.parentModel;o=_||o;var S=oc(o,0,0,c,d,v?l:f,null==g?!0:g);if(y.add(S_(S,o,m,u,p,v)),!_&&a&&(a!==o||"none"===a)){var M=.8*d;"none"===a&&(a="circle");var I=oc(a,(c-M)/2,(d-M)/2,M,M,v?l:f,null==g?!0:g);y.add(S_(I,a,m,u,p,v))}var T="left"===s?c+5:-5,A=s,D=n.get("formatter"),C=t;"string"==typeof D&&D?C=D.replace("{name}",null!=t?t:""):"function"==typeof D&&(C=D(t)),y.add(new ET({style:Ya({},x,{text:C,x:T,y:d/2,textFill:v?x.getTextColor():f,textAlign:A,textVerticalAlign:"middle"})}));var L=new XT({shape:y.getBoundingRect(),invisible:!0,tooltip:w.get("show")?r({content:t,formatter:b.get("formatter",!0)||function(){return t},formatterParams:{componentType:"legend",legendIndex:n.componentIndex,name:t,$vars:["name"]}},w.option):null});return y.add(L),y.eachChild(function(t){t.silent=!0}),L.silent=!h,this.getContentGroup().add(y),Fa(y),y.__legendDataIndex=e,y},layoutInner:function(t,e,i,n,o,a){var r=this.getContentGroup(),s=this.getSelectorGroup();VA(t.get("orient"),r,t.get("itemGap"),i.width,i.height);var l=r.getBoundingRect(),u=[-l.x,-l.y];if(o){VA("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],d=t.get("selectorButtonGap",!0),f=t.getOrient().index,p=0===f?"width":"height",g=0===f?"height":"width",m=0===f?"y":"x";"end"===a?c[f]+=l[p]+d:u[f]+=h[p]+d,c[1-f]+=l[g]/2-h[g]/2,s.attr("position",c),r.attr("position",u);var v={x:0,y:0};return v[p]=l[p]+d+h[p],v[g]=Math.max(l[g],h[g]),v[m]=Math.min(0,h[m]+c[1-f]),v}return r.attr("position",u),this.group.getBoundingRect()},remove:function(){this.getContentGroup().removeAll(),this._isFirstRender=!0}}),FR=function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var i=0;ii[o],f=[-h.x,-h.y];e||(f[n]=s.position[n]);var p=[0,0],g=[-c.x,-c.y],m=C(t.get("pageButtonGap",!0),t.get("itemGap",!0));if(d){var v=t.get("pageButtonPosition",!0);"end"===v?g[n]+=i[o]-c[o]:p[n]+=c[o]+m}g[1-n]+=h[a]/2-c[a]/2,s.attr("position",f),l.attr("position",p),u.attr("position",g);var y={x:0,y:0};if(y[o]=d?i[o]:h[o],y[a]=Math.max(h[a],c[a]),y[r]=Math.min(0,c[r]+g[1-n]),l.__rectSize=i[o],d){var x={x:0,y:0};x[o]=Math.max(i[o]-c[o]-m,0),x[a]=y[a],l.setClipPath(new XT({shape:x})),l.__rectSize=x[o]}else u.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var _=this._getPageInfo(t);return null!=_.pageIndex&&nr(s,{position:_.contentPosition},d?t:!1),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;f(["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",b(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=ZR[r],l=UR[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;d>=m;++m)x=e(h[m]),(!x&&y.e>v.s+a||x&&!i(x,v.s))&&(v=y.i>v.i?y:x,v&&(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]),x&&i(y,x.s)||!(v.i=0;){var l=o.indexOf(r),u=o.substr(s+a.length,l-s-a.length);n["marker"+u]=u.indexOf("sub")>-1?{textWidth:4,textHeight:4,textBorderRadius:2,textBackgroundColor:e[u],textOffset:[3,0]}:{textWidth:10,textHeight:10,textBorderRadius:5,textBackgroundColor:e[u]},o=o.substr(l+1),s=o.indexOf("{marker")}var h=i.getModel("textStyle"),c=h.get("fontSize"),d=i.get("textLineHeight");null==d&&(d=Math.round(3*c/2)),this.el=new ET({style:Ya({},h,{rich:n,text:t,textBackgroundColor:i.get("backgroundColor"),textBorderRadius:i.get("borderRadius"),textFill:i.get("textStyle.color"),textPadding:i.get("padding"),textLineHeight:d}),z:i.get("z")}),this._zr.add(this.el);var f=this;this.el.on("mouseover",function(){f._enterable&&(clearTimeout(f._hideTimeout),f._show=!0),f._inContent=!0}),this.el.on("mouseout",function(){f._enterable&&f._show&&f.hideLater(f._hideDelay),f._inContent=!1})},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el.getBoundingRect();return[t.width,t.height]},moveTo:function(t,e){if(this.el){var i=this._styleCoord;O_(i,this._zr,t,e),this.el.attr("position",[i[0],i[1]])}},hide:function(){this.el&&this.el.hide(),this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(y(this.hide,this),t)):this.hide())},isShow:function(){return this._show},dispose:function(){clearTimeout(this._hideTimeout),this.el&&this._zr.remove(this.el)},getOuterSize:function(){var t=this.getSize();return{width:t[0],height:t[1]}}};var $R=y,JR=f,QR=Mr,tB=new XT({shape:{x:-1,y:-1,width:2,height:2}});Vu({type:"tooltip",init:function(t,e){if(!aS.node){var i=t.getComponent("tooltip"),n=i.get("renderMode");this._renderMode=mo(n);var o;"html"===this._renderMode?(o=new P_(e.getDom(),e,{appendToBody:i.get("appendToBody",!0)}),this._newLine="
"):(o=new E_(e),this._newLine="\n"),this._tooltipContent=o}},render:function(t,e,i){if(!aS.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(t),n.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel,e=t.get("triggerOn");Ny("itemTooltip",this._api,$R(function(t,i,n){"none"!==e&&(e.indexOf(t)>=0?this._tryShow(i,n):"leave"===t&&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(){!i.isDisposed()&&n.manuallyShowTip(t,e,i,{x:n._lastX,y:n._lastY})})}},manuallyShowTip:function(t,e,i,n){if(n.from!==this.uid&&!aS.node){var o=z_(n,i);this._ticket="";var a=n.dataByCoordSys;if(n.tooltip&&null!=n.x&&null!=n.y){var r=tB;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,dataByCoordSys:n.dataByCoordSys,tooltipOption:n.tooltipOption},o);else if(null!=n.seriesIndex){if(this._manuallyAxisShowTip(t,e,i,n))return;var s=zz(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},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},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(z_(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){var l=s.getData(),t=N_([l.getItemModel(a),s,(s.coordinateSystem||{}).model,t]);if("axis"===t.get("trigger"))return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:a,position:n.position}),!0}}},_tryShow:function(t,e){var i=t.target,n=this._tooltipModel;if(n){this._lastX=t.offsetX,this._lastY=t.offsetY;var o=t.dataByCoordSys;o&&o.length?this._showAxisTooltip(o,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=y(e,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(e,i):e()},_showAxisTooltip:function(t,e){var i=this._ecModel,n=this._tooltipModel,a=[e.offsetX,e.offsetY],r=[],s=[],l=N_([e.tooltipOption,n]),u=this._renderMode,h=this._newLine,c={};JR(t,function(t){JR(t.dataByAxis,function(t){var e=i.getComponent(t.axisDim+"Axis",t.axisIndex),n=t.value,a=[];if(e&&null!=n){var l=$y(n,e.axis,i,t.seriesDataIndices,t.valueLabelOpt);f(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=Jh(e.axis,n),f.axisValueLabel=l,f){s.push(f);var p,g=h.formatTooltip(d,!0,null,u);if(S(g)){p=g.html;var m=g.markers; +o(c,m)}else p=g;a.push(p)}});var d=l;r.push("html"!==u?a.join(h):(d?Wr(d)+h:"")+a.join(h))}})},this),r.reverse(),r=r.join(this._newLine+this._newLine);var d=e.position;this._showOrMove(l,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(l,d,a[0],a[1],this._tooltipContent,s):this._showTooltipContent(l,r,s,Math.random(),a[0],a[1],d,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(l),h=N_([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);S(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 mr(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=Hr(h,i,!0);else if("function"==typeof h){var d=$R(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()})),_(e))i=QR(e[0],s),n=QR(e[1],l);else if(S(e)){e.width=u[0],e.height=u[1];var f=ts(e,{width:s,height:l});i=f.x,n=f.y,h=null,c=null}else if("string"==typeof e&&r){var p=V_(e,d,u);i=p[0],n=p[1]}else{var p=R_(i,n,o,s,l,h?null:20,c?null:20);i=p[0],n=p[1]}if(h&&(i-=G_(h)?u[0]/2:"right"===h?u[0]:0),c&&(n-=G_(c)?u[1]/2:"bottom"===c?u[1]:0),t.get("confine")){var p=B_(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&&JR(e,function(e,n){var o=e.dataByAxis||{},a=t[n]||{},r=a.dataByAxis||[];i&=o.length===r.length,i&&JR(o,function(t,e){var n=r[e]||{},o=t.seriesDataIndices||[],a=n.seriesDataIndices||[];i&=t.value===n.value&&t.axisType===n.axisType&&t.axisId===n.axisId&&o.length===a.length,i&&JR(o,function(t,e){var n=a[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){aS.node||(this._tooltipContent.dispose(),Fy("itemTooltip",e))}}),ku({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),ku({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){});var eB=Gr,iB=Wr,nB=Bu({type:"marker",dependencies:["series","grid","polar","geo"],init:function(t,e,i){if(eS&&"marker"===this.type)throw new Error("Marker component is abstract component. Use markLine, markPoint, markArea instead.");this.mergeDefaultAndTheme(t,i),this._mergeOption(t,i,!1,!0)},isAnimationEnabled:function(){if(aS.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e){this._mergeOption(t,e,!1,!1)},_mergeOption:function(t,e,i,n){var o=this.constructor,a=this.mainType+"Model";i||e.eachSeries(function(t){var i=t.get(this.mainType,!0),s=t[a];return i&&i.data?(s?s._mergeOption(i,e,!0):(n&&F_(i),f(i.data,function(t){t instanceof Array?(F_(t[0]),F_(t[1])):F_(t)}),s=new o(i,this,e),r(s,{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),s.__hostSeries=t),void(t[a]=s)):void(t[a]=null)},this)},formatTooltip:function(t,e,i,n){var o=this.getData(),a=this.getRawValue(t),r=_(a)?p(a,eB).join(", "):eB(a),s=o.getName(t),l=iB(this.name),u="html"===n?"
":"\n";return(null!=a||s)&&(l+=u),s&&(l+=iB(s),null!=a&&(l+=" : ")),null!=a&&(l+=iB(r)),l},getData:function(){return this._data},setData:function(t){this._data=t}});c(nB,ID),nB.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 oB=u,aB=x,rB={min:aB(Z_,"min"),max:aB(Z_,"max"),average:aB(Z_,"average")},sB=Vu({type:"marker",init:function(){this.markerGroupMap=B()},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(){}});sB.extend({type:"markPoint",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markPointModel;e&&($_(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 Pd),u=J_(o,t,e);e.setData(u),$_(e.getData(),t,n),u.each(function(t){var i=u.getItemModel(t),n=i.getShallow("symbol"),o=i.getShallow("symbolSize"),a=i.getShallow("symbolRotate"),s=w(n),l=w(o),h=w(a);if(s||l||h){var c=e.getRawValue(t),d=e.getDataParams(t);s&&(n=n(c,d)),l&&(o=o(c,d)),h&&(a=a(c,d))}u.setItemVisual(t,{symbol:n,symbolSize:o,symbolRotate:a,color:i.get("itemStyle.color")||r.getVisual("color")})}),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")}}),Du(function(t){t.markPoint=t.markPoint||{}}),nB.extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"}});var lB=function(t,e,i,a){var s=t.getData(),l=a.type;if(!_(a)&&("min"===l||"max"===l||"average"===l||"median"===l||null!=a.xAxis||null!=a.yAxis)){var u,h;if(null!=a.yAxis||null!=a.xAxis)u=e.getAxis(null!=a.yAxis?"y":"x"),h=D(a.yAxis,a.xAxis);else{var c=X_(a,s,e,t);u=c.valueAxis;var d=wh(s,c.valueDataDim);h=K_(s,d,l)}var f="x"===u.dim?0:1,p=1-f,g=n(a),m={};g.type=null,g.coord=[],m.coord=[],g.coord[p]=-1/0,m.coord[p]=1/0;var v=i.get("precision");v>=0&&"number"==typeof h&&(h=+h.toFixed(Math.min(v,20))),g.coord[f]=m.coord[f]=h,a=[g,m,{type:l,valueIndex:a.valueIndex,value:h}]}return a=[U_(t,a[0]),U_(t,a[1]),r({},a[2])],a[2].type=a[2].type||"",o(a[2],a[0]),o(a[2],a[1]),a};sB.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){iw(o,e,!0,t,i),iw(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);iw(e,i,o,t,n),e.setItemVisual(i,{symbolRotate:a.get("symbolRotate"),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 $g);this.group.add(u.group);var h=nw(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");_(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,{fromSymbolRotate:c.getItemVisual(t,"symbolRotate"),fromSymbolSize:c.getItemVisual(t,"symbolSize"),fromSymbol:c.getItemVisual(t,"symbol"),toSymbolRotate:d.getItemVisual(t,"symbolRotate"),toSymbolSize:d.getItemVisual(t,"symbolSize"),toSymbol:d.getItemVisual(t,"symbol")})}),u.updateData(f),h.line.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e})}),u.__keep=!0,u.group.silent=e.get("silent")||t.get("silent")}}),Du(function(t){t.markLine=t.markLine||{}}),nB.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 uB=function(t,e,i,n){var o=U_(t,n[0]),r=U_(t,n[1]),s=D,l=o.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=a([{},o,r]);return h.coord=[o.coord,r.coord],h.x0=o.x,h.y0=o.y,h.x1=r.x,h.y1=r.y,h},hB=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];sB.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=p(hB,function(o){return sw(n,e,o,t,i)});n.setItemLayout(e,o);var a=n.getItemGraphicEl(e);a.setShape("points",o)})}},this)},renderSeries:function(t,e,i,n){var o=t.coordinateSystem,a=t.id,r=t.getData(),l=this.markerGroupMap,u=l.get(a)||l.set(a,{group:new xM});this.group.add(u.group),u.__keep=!0;var h=lw(o,t,e);e.setData(h),h.each(function(e){var i=p(hB,function(i){return sw(h,e,i,t,n)}),a=!0;f(hB,function(t){if(a){var i=h.get(t[0],e),n=h.get(t[1],e);(ow(i)||o.getAxis("x").containData(i))&&(ow(n)||o.getAxis("y").containData(n))&&(a=!1)}}),h.setItemLayout(e,{points:i,allClipped:a}),h.setItemVisual(e,{color:r.getVisual("color")})}),h.diff(u.__data).add(function(t){var e=h.getItemLayout(t);if(!e.allClipped){var i=new WT({shape:{points:e.points}});h.setItemGraphicEl(t,i),u.group.add(i)}}).update(function(t,i){var n=u.__data.getItemGraphicEl(i),o=h.getItemLayout(t);o.allClipped?n&&u.group.remove(n):(n?nr(n,{shape:{points:o.points}},e,t):n=new WT({shape:{points:o.points}}),h.setItemGraphicEl(t,n),u.group.add(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"),r=h.getItemVisual(i,"color");t.useStyle(s(n.getModel("itemStyle").getItemStyle(),{fill:li(r,.4),stroke:r})),t.hoverStyle=n.getModel("emphasis.itemStyle").getItemStyle(),Ua(t.style,t.hoverStyle,o,a,{labelFetcher:e,labelDataIndex:i,defaultText:h.getName(i)||"",isRectText:!0,autoColor:r}),Fa(t,{}),t.dataModel=e}),u.__data=h,u.group.silent=e.get("silent")||t.get("silent")}}),Du(function(t){t.markArea=t.markArea||{}});var cB=function(t){var e=t&&t.timeline;_(e)||(e=e?[e]:[]),f(e,function(t){t&&uw(t)})};WA.registerSubTypeDefaulter("timeline",function(){return"slider"}),ku({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"),s({currentIndex:i.option.currentIndex},t)}),ku({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var dB=WA.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(){dB.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),0>t&&(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||[],i=t.axisType,o=this._names=[];if("category"===i){var a=[];f(e,function(t,e){var i,r=io(t);S(t)?(i=n(t),i.value=e):i=e,a.push(i),b(r)||null!=r&&!isNaN(r)||(r=""),o.push(r+"")}),e=a}var r={category:"ordinal",time:"time"}[i]||"number",s=this._data=new dL([{name:"value",type:r}],this);s.initData(e,o)},getData:function(){return this._data},getCategories:function(){return"category"===this.get("axisType")?this._names.slice():void 0}}),fB=dB.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:[]}});c(fB,ID);var pB=LD.extend({type:"timeline"}),gB=function(t,e,i,n){sk.call(this,t,e,i),this.type=n||"value",this.model=null};gB.prototype={constructor:gB,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},h(gB,sk);var mB=y,vB=f,yB=Math.PI;pB.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){if(this.model=t,this.api=i,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var n=this._layout(t,i),o=this._createGroup("mainGroup"),a=this._createGroup("labelGroup"),r=this._axis=this._createAxis(n,t);t.formatTooltip=function(t){return Wr(r.scale.getLabel(t))},vB(["AxisLine","AxisTick","Control","CurrentPointer"],function(e){this["_render"+e](n,o,r,t)},this),this._renderAxisLabel(n,a,r,t),this._position(n,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=dw(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:yB/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*yB/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){function e(t){var e=t.position;t.origin=[h[0][0]-e[0],h[1][0]-e[1]]}function i(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function n(t,e,i,n,o){t[n]+=i[n][o]-e[n][o]}var o=this._mainGroup,a=this._labelGroup,r=t.viewRect;if("vertical"===t.orient){var s=Oe(),l=r.x,u=r.y+r.height;Re(s,s,[-l,-u]),Be(s,s,-yB/2),Re(s,s,[l,u]),r=r.clone(),r.applyTransform(s)}var h=i(r),c=i(o.getBoundingRect()),d=i(a.getBoundingRect()),f=o.position,p=a.position;p[0]=f[0]=h[0][0];var g=t.labelPosOpt;if(isNaN(g)){var m="+"===g?0:1;n(f,c,h,1,m),n(p,d,h,1,1-m)}else{var m=g>=0?0:1;n(f,c,h,1,m),p[1]=f[1]+g}o.attr("position",f),a.attr("position",p),o.rotation=a.rotation=t.rotation,e(o),e(a)},_createAxis:function(t,e){var i=e.getData(),n=e.get("axisType"),o=qh(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 gB("value",o,t.axisExtent,n);return r.model=e,r},_createGroup:function(t){var e=this["_"+t]=new xM;return this.group.add(e),e},_renderAxisLine:function(t,e,i,n){var o=i.getExtent();n.get("lineStyle.show")&&e.add(new jT({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:r({lineCap:"round"},n.getModel("lineStyle").getLineStyle()),silent:!0,z2:1}))},_renderAxisTick:function(t,e,i,n){var o=n.getData(),a=i.scale.getTicks();vB(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:mB(this._changeTimeline,this,t)},h=pw(r,s,e,u);Fa(h,l.getItemStyle()),r.get("tooltip")?(h.dataIndex=t,h.dataModel=n):h.dataIndex=h.dataModel=null},this)},_renderAxisLabel:function(t,e,i,n){var o=i.getLabelModel();if(o.get("show")){var a=n.getData(),r=i.getViewLabels();vB(r,function(n){var o=n.tickValue,r=a.getItemModel(o),s=r.getModel("label"),l=r.getModel("emphasis.label"),u=i.dataToCoord(n.tickValue),h=new ET({position:[u,0],rotation:t.labelRotation-t.rotation,onclick:mB(this._changeTimeline,this,o),silent:!1});Ya(h.style,s,{text:n.formattedLabel,textAlign:t.labelAlign,textVerticalAlign:t.labelBaseline}),e.add(h),Fa(h,Ya({},l))},this)}},_renderControl:function(t,e,i,n){function o(t,i,o,h){if(t){var c={position:t,origin:[a/2,0],rotation:h?-r:0,rectHover:!0,style:s,onclick:o},d=fw(n,i,u,c);e.add(d),Fa(d,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",mB(this._changeTimeline,this,c?"-":"+")),o(t.prevBtnPosition,"controlStyle.prevIcon",mB(this._changeTimeline,this,c?"+":"-")),o(t.playPosition,"controlStyle."+(h?"stopIcon":"playIcon"),mB(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=mB(s._handlePointerDrag,s),t.ondragend=mB(s._handlePointerDragend,s),gw(t,a,i,n,!0)},onUpdate:function(t){gw(t,a,i,n)}};this._currentPointer=pw(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=this._axis,o=Tr(n.getExtent().slice());i>o[1]&&(i=o[1]),is&&(n=s,e=a)}),e},_clearTimer:function(){this._timer&&(clearTimeout(this._timer),this._timer=null)},_changeTimeline:function(t){var e=this.model.getCurrentIndex();"+"===t?t=e+1:"-"===t&&(t=e-1),this.api.dispatchAction({type:"timelineChange",currentIndex:t,from:this.uid})}}),Du(cB),WA.registerSubTypeDefaulter("dataZoom",function(){return"slider"});var xB=["x","y","z","radius","angle","single"],_B=["cartesian2d","polar","singleAxis"],wB=vw(xB,["axisIndex","axis","index","id"]),bB=f,SB=Tr,MB=function(t,e,i,n){this._dimName=t,this._axisIndex=e,this._valueWindow,this._percentWindow,this._dataExtent,this._minMaxSpan,this.ecModel=n,this._dataZoomModel=i};MB.prototype={constructor:MB,hostedBy:function(t){return this._dataZoomModel===t},getDataValueWindow:function(){return this._valueWindow.slice()},getDataPercentWindow:function(){return this._percentWindow.slice()},getTargetSeriesModels:function(){var t=[],e=this.ecModel;return e.eachSeries(function(i){if(mw(i.get("coordinateSystem"))){var n=this._dimName,o=e.queryComponents({mainType:n+"Axis",index:i.get(n+"AxisIndex"),id:i.get(n+"AxisId")})[0];this._axisIndex===(o&&o.componentIndex)&&t.push(i)}},this),t},getAxisModel:function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},getOtherAxisModel:function(){var t,e,i=this._dimName,n=this.ecModel,o=this.getAxisModel(),a="x"===i||"y"===i;a?(e="gridIndex",t="x"===i?"y":"x"):(e="polarIndex",t="angle"===i?"radius":"angle");var r;return n.eachComponent(t+"Axis",function(t){(t.get(e)||0)===(o.get(e)||0)&&(r=t)}),r},getMinMaxSpan:function(){return n(this._minMaxSpan)},calculateDataWindow:function(t){function e(t,e,i,n,o){var r=o?"Span":"ValueSpan";zN(0,t,i,"all",h["min"+r],h["max"+r]);for(var s=0;2>s;s++)e[s]=Sr(t[s],i,n,!0),o&&(e[s]=a.parse(e[s]))}var i,n=this._dataExtent,o=this.getAxisModel(),a=o.axis.scale,r=this._dataZoomModel.getRangePropMode(),s=[0,100],l=[],u=[];bB(["start","end"],function(e,o){var h=t[e],c=t[e+"Value"];"percent"===r[o]?(null==h&&(h=s[o]),c=a.parse(Sr(h,s,n))):(i=!0,c=null==c?n[o]:a.parse(c),h=Sr(c,n,s)),u[o]=c,l[o]=h}),SB(u),SB(l);var h=this._minMaxSpan;return i?e(u,l,n,s,!1):e(l,u,s,n,!0),{valueWindow:u,percentWindow:l}},reset:function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=xw(this,this._dimName,e),bw(this);var i=this.calculateDataWindow(t.settledOption);this._valueWindow=i.valueWindow,this._percentWindow=i.percentWindow,ww(this)}},restore:function(t){t===this._dataZoomModel&&(this._valueWindow=this._percentWindow=null,ww(this,!0))},filterData:function(t){function e(t){return t>=a[0]&&t<=a[1]}if(t===this._dataZoomModel){var i=this._dimName,n=this.getTargetSeriesModels(),o=t.get("filterMode"),a=this._valueWindow;"none"!==o&&bB(n,function(t){var n=t.getData(),r=n.mapDimension(i,!0);r.length&&("weakFilter"===o?n.filterSelf(function(t){for(var e,i,o,s=0;sa[1];if(u&&!h&&!c)return!0;u&&(o=!0),h&&(e=!0),c&&(i=!0)}return o&&e&&i}):bB(r,function(i){if("empty"===o)t.setData(n=n.map(i,function(t){return e(t)?t:0/0}));else{var r={};r[i]=a,n.selectRange(r)}}),bB(r,function(t){n.setApproximateExtent(a,t)}))})}}};var IB=f,TB=wB,AB=Bu({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=Sw(t);this.settledOption=n,this.mergeDefaultAndTheme(t,i),this.doInit(n)},mergeOption:function(t){var e=Sw(t);o(this.option,t,!0),o(this.settledOption,e,!0),this.doInit(e)},doInit:function(t){var e=this.option;aS.canvasSupported||(e.realtime=!1),this._setDefaultThrottle(t),Mw(this,t);var i=this.settledOption;IB([["start","startValue"],["end","endValue"]],function(t,n){"value"===this._rangePropMode[n]&&(e[t[0]]=i[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 MB(e.name,i,this,o));t[e.name+"_"+i]=r},this)},_resetTarget:function(){var t=this.option,e=this._judgeAutoMode();TB(function(e){var i=e.axisIndex;t[i]=to(t[i])},this),"axisIndex"===e?this._autoSetAxisIndex():"orient"===e&&this._autoSetOrient()},_judgeAutoMode:function(){var t=this.option,e=!1;TB(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):IB(n.singleAxis,function(n){t&&n.get("orient",!0)===e&&(i.singleAxisIndex=[n.componentIndex],t=!1)})}t&&TB(function(e){if(t){var n=[],o=this.dependentModels[e.axis];if(o.length&&!n.length)for(var a=0,r=o.length;r>a;a++)"category"===o[a].get("type")&&n.push(a);i[e.axisIndex]=n,n.length&&(t=!1)}},this),t&&this.ecModel.eachSeries(function(t){this._isSeriesHasAllAxesTypeOf(t,"value")&&TB(function(e){var n=i[e.axisIndex],o=t.get(e.axisIndex),a=t.get(e.axisId),r=t.ecModel.queryComponents({mainType:e.axis,index:o,id:a})[0];if(eS&&!r)throw new Error(e.axis+' "'+D(o,a,0)+'" not found');o=r.componentIndex,u(n,o)<0&&n.push(o)})},this)},_autoSetOrient:function(){var t;this.eachTargetAxis(function(e){!t&&(t=e.name)},this),this.option.orient="y"===t?"vertical":"horizontal"},_isSeriesHasAllAxesTypeOf:function(t,e){var i=!0;return TB(function(n){var o=t.get(n.axisIndex),a=this.dependentModels[n.axis][o];a&&a.get("type")===e||(i=!1)},this),i},_setDefaultThrottle:function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},getFirstTargetAxisModel:function(){var t;return TB(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;TB(function(n){IB(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){var e=this.option,i=this.settledOption;IB([["start","startValue"],["end","endValue"]],function(n){(null!=t[n[0]]||null!=t[n[1]])&&(e[n[0]]=i[n[0]]=t[n[0]],e[n[1]]=i[n[1]]=t[n[1]])},this),Mw(this,t)},setCalculatedRange:function(t){var e=this.option;IB(["start","startValue","end","endValue"],function(i){e[i]=t[i]})},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();return t?t.getDataPercentWindow():void 0},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()}}),DB=LD.extend({type:"dataZoom",render:function(t,e,i){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)return void(p+=f);var i=null==t||isNaN(t)||""===t,n=i?0:LB(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 WT({shape:{points:c},style:s({fill:m.get("dataBackgroundColor")},m.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new HT({shape:{points:d},style:m.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(e!==!1){var i,n=this.ecModel;return t.eachTargetAxis(function(o,a){var r=t.getAxisProxy(o.name,a).getTargetSeriesModels();f(r,function(t){if(!(i||e!==!0&&u(GB,t.get("type"))<0)){var r,s=n.getComponent(o.axis,a).axis,l=Iw(o.name),h=t.coordinateSystem;null!=l&&h.getOtherAxis&&(r=h.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),i={thisAxis:s,series:t,thisDim:o.name,otherDim:l,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 CB({draggable:!0,cursor:Tw(this._orient),drift:PB(this._onDragMove,this,"all"),ondragstart:PB(this._showDataInfo,this,!0),ondragend:PB(this._onDragEnd,this),onmouseover:PB(this._showDataInfo,this,!0),onmouseout:PB(this._showDataInfo,this,!1),style:{fill:a.get("fillerColor"),textPosition:"inside"}})),n.add(new CB({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1]},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:NB,fill:"rgba(0,0,0,0)"}})),OB([0,1],function(t){var o=cr(a.get("handleIcon"),{cursor:Tw(this._orient),draggable:!0,drift:PB(this._onDragMove,this,t),ondragend:PB(this._onDragEnd,this),onmouseover:PB(this._showDataInfo,this,!0),onmouseout:PB(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),r=o.getBoundingRect();this._handleHeight=Mr(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 ET({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=[LB(t[0],[0,100],e,!0),LB(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];zN(e,n,o,i.get("zoomLock")?"all":t,null!=a.minSpan?LB(a.minSpan,r,o,!0):null,null!=a.maxSpan?LB(a.maxSpan,r,o,!0):null);var s=this._range,l=this._range=kB([LB(n[0],o,r,!0),LB(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=kB(i.slice()),o=this._size;OB([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=ar(n.handles[t].parent,this.group),i=sr(0===t?"right":"left",e),s=this._handleWidth/2+VB,l=rr([c[t]+(0===t?-s:s),this._size[1]/2],e);o[t].setStyle({x:l[0],y:l[1],textVerticalAlign:a===RB?"middle":i,textAlign:a===RB?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=kB(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 w(n)?n(t,a):b(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,n){this._dragging=!0,ES(n.event);var o=this._displayables.barGroup.getLocalTransform(),a=rr([e,i],o,!0),r=this._updateInterval(t,a[0]),s=this.dataZoomModel.get("realtime");this._updateView(!s),r&&s&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1);var t=this.dataZoomModel.get("realtime");!t&&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(OB(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}});Cu({getTargetSeries:function(t){var e=B();return t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){var o=n.getAxisProxy(t.name,i);f(o.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.setCalculatedRange({start:i[0],end:i[1],startValue:n[0],endValue:n[1]})})}}),ku("dataZoom",function(t,e){var i=yw(y(e.eachComponent,e,"dataZoom"),wB,function(t,e){return t.get(e.axisIndex)}),n=[];e.eachComponent({mainType:"dataZoom",query:t},function(t){n.push.apply(n,i(t).nodes)}),f(n,function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})}),AB.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var WB="\x00_ec_dataZoom_roams",HB=y,ZB=DB.extend({type:"dataZoom.inside",init:function(){this._range},render:function(t,e,i){ZB.superApply(this,"render",arguments),this._range=t.getPercentRange(),f(this.getTargetCoordInfo(),function(e,n){var o=p(e,function(t){return Cw(t.model)});f(e,function(e){var a=e.model,r={};f(["pan","zoom","scrollMove"],function(t){r[t]=HB(UB[t],this,e,n)},this),Aw(i,{coordId:Cw(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(){Dw(this.api,this.dataZoomModel.id),ZB.superApply(this,"dispose",arguments),this._range=null}}),UB={zoom:function(t,e,i,n){var o=this._range,a=o.slice(),r=t.axisModels[0];if(r){var s=XB[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 zN(0,a,[0,100],0,h.minSpan,h.maxSpan),this._range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}},pan:Nw(function(t,e,i,n,o,a){var r=XB[n]([a.oldX,a.oldY],[a.newX,a.newY],e,o,i);return r.signal*(t[1]-t[0])*r.pixel/r.pixelLength}),scrollMove:Nw(function(t,e,i,n,o,a){var r=XB[n]([0,0],[a.scrollDelta,a.scrollDelta],e,o,i);return r.signal*(t[1]-t[0])*a.scrollDelta})},XB={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}},YB=["rect","polygon","keep","clear"],jB=function(t,e){var i=t&&t.brush;if(_(i)||(i=i?[i]:[]),i.length){var n=[];f(i,function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(n=n.concat(e))});var o=t&&t.toolbox;_(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),zw(s),e&&!s.length&&s.push.apply(s,YB)}},qB=f,KB={lineX:Ww(0),lineY:Ww(1),rect:{point:function(t,e,i){return t&&i.boundingRect.contain(t[0],t[1])},rect:function(t,e,i){return t&&i.boundingRect.intersect(t)}},polygon:{point:function(t,e,i){return t&&i.boundingRect.contain(t[0],t[1])&&uc(i.range,t[0],t[1])},rect:function(t,e,i){var n=i.range;if(!t||n.length<=1)return!1;var o=t.x,a=t.y,r=t.width,s=t.height,l=n[0];return uc(n,o,a)||uc(n,o+r,a)||uc(n,o,a+s)||uc(n,o+r,a+s)||Ti.create(t).contain(l[0],l[1])||dr(o,a,o+r,a,n)||dr(o,a,o,a+s,n)||dr(o+r,a,o+r,a+s,n)||dr(o,a+s,o+r,a+s,n)?!0:void 0}}},$B=f,JB=u,QB=x,tV=["dataToPoint","pointToData"],eV=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],iV=Zw.prototype;iV.setOutputRanges=function(t,e){this.matchOutputRanges(t,e,function(t,e,i){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var n=rV[t.brushType](0,i,e);t.__rangeOffset={offset:sV[t.brushType](n.values,t.range,[1,1]),xyMinMax:n.xyMinMax}}})},iV.matchOutputRanges=function(t,e,i){$B(t,function(t){var n=this.findTargetInfo(t,e);n&&n!==!0&&f(n.coordSyses,function(n){var o=rV[t.brushType](1,n,t.range);i(t,o.values,n,e)})},this)},iV.setInputRanges=function(t,e){$B(t,function(t){var i=this.findTargetInfo(t,e);if(eS&&(O(!i||i===!0||t.coordRange,"coordRange must be specified when coord index specified."),O(!i||i!==!0||t.range,"range must be specified in global brush.")),t.range=t.range||[],i&&i!==!0){t.panelId=i.panelId;var n=rV[t.brushType](0,i.coordSys,t.coordRange),o=t.__rangeOffset;t.range=o?sV[t.brushType](n.values,o.offset,qw(n.xyMinMax,o.xyMinMax)):n.values}},this)},iV.makePanelOpts=function(t,e){return p(this._targetInfoList,function(i){var n=i.getPanelRect();return{panelId:i.panelId,defaultBrushType:e&&e(i),clipPath:Av(n),isTargetByCursor:Cv(n,t,i.coordSysModel),getLinearBrushOtherExtent:Dv(n)}})},iV.controlSeries=function(t,e,i){var n=this.findTargetInfo(t,i);return n===!0||n&&JB(n.coordSyses,e.coordinateSystem)>=0},iV.findTargetInfo=function(t,e){for(var i=this._targetInfoList,n=Xw(e,t),o=0;o=0||JB(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:aV.grid,xAxisDeclared:r[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,e){$B(t.geoModels,function(t){var i=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:i,coordSyses:[i],getPanelRect:aV.geo})})}},oV=[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}],aV={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(ar(t)),e}},rV={lineX:QB(Yw,0),lineY:QB(Yw,1),rect:function(t,e,i){var n=e[tV[t]]([i[0][0],i[1][0]]),o=e[tV[t]]([i[0][1],i[1][1]]),a=[Uw([n[0],o[0]]),Uw([n[1],o[1]])];return{values:a,xyMinMax:a}},polygon:function(t,e,i){var n=[[1/0,-1/0],[1/0,-1/0]],o=p(i,function(i){var o=e[tV[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});return{values:o,xyMinMax:n}}},sV={lineX:QB(jw,0),lineY:QB(jw,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 p(t,function(t,n){return[t[0]-i[0]*e[n][0],t[1]-i[1]*e[n][1]]})}},lV=["inBrush","outOfBrush"],uV="__ecBrushSelect",hV="__ecInBrushSelectEvent",cV=OC.VISUAL.BRUSH;Eu(cV,function(t,e,i){t.eachComponent({mainType:"brush"},function(t){i&&"takeGlobalCursor"===i.type&&t.setBrushOption("brush"===i.key?i.brushOption:{brushType:!1})}),$w(t)}),Nu(cV,function(t,e,i){var o,a,r=[];t.eachComponent({mainType:"brush"},function(e,i){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&&(y[e]=1)})}function c(i,n,o){var a=eb(i);if(a&&!ib(e,n)&&(f(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){tb(a,o,r,t)&&(y[t]=1)})}}var d={brushId:e.id,brushIndex:i,brushName:e.name,areas:n(e.areas),selected:[]};r.push(d);var g=e.option,m=g.brushLink,v=[],y=[],x=[],w=0;i||(o=g.throttleType,a=g.throttleDelay);var b=p(e.areas,function(t){return nb(s({boundingRect:dV[t.brushType](t)},t))}),S=Bw(e.option,lV,function(t){t.mappingMethod="fixed"});_(m)&&f(m,function(t){v[t]=1}),t.eachSeries(function(t,e){var i=x[e]=[];"parallel"===t.subType?h(t,e,i):c(t,e,i)}),t.eachSeries(function(t,e){var i={seriesId:t.id,seriesIndex:e,seriesName:t.name,dataIndex:[]};d.selected.push(i);var n=eb(t),o=x[e],a=t.getData(),r=l(e)?function(t){return y[t]?(i.dataIndex.push(a.getRawIndex(t)),"inBrush"):"outOfBrush"}:function(t){return tb(n,o,a,t)?(i.dataIndex.push(a.getRawIndex(t)),"inBrush"):"outOfBrush"};(l(e)?w:u(o))&&Gw(lV,S,a,r)})}),Jw(e,o,a,r,i)});{var dV={lineX:G,lineY:G,rect:function(t){return ob(t.range)},polygon:function(t){for(var e,i=t.range,n=0,o=i.length;o>n;n++){e=e||[[1/0,-1/0],[1/0,-1/0]];var a=i[n];a[0]e[0][1]&&(e[0][1]=a[0]),a[1]e[1][1]&&(e[1][1]=a[1])}return e&&ob(e)}},fV=["#ddd"];Bu({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&&Vw(i,t,["inBrush","outOfBrush"]);var n=i.inBrush=i.inBrush||{};i.outOfBrush=i.outOfBrush||{color:fV},n.hasOwnProperty("liftZ")||(n.liftZ=5)},setAreas:function(t){eS&&(O(_(t)),f(t,function(t){O(t.brushType,"Illegal areas")})),t&&(this.areas=p(t,function(t){return ab(this.option,t)},this))},setBrushOption:function(t){this.brushOption=ab(this.option,t),this.brushType=this.brushOption.brushType}})}Vu({type:"brush",init:function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new Hm(e.getZr())).on("brush",y(this._onBrush,this)).mount()},render:function(t){return this.model=t,rb.apply(this,arguments)},updateTransform:function(t,e){return $w(e),rb.apply(this,arguments)},updateView:rb,dispose:function(){this._brushController.dispose()},_onBrush:function(t,e){var i=this.model.id;this.model.brushTargetManager.setOutputRanges(t,this.ecModel),(!e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:i,areas:n(t),$from:i}),e.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:i,areas:n(t),$from:i})}}),ku({type:"brush",event:"brush"},function(t,e){e.eachComponent({mainType:"brush",query:t},function(e){e.setAreas(t.areas)})}),ku({type:"brushSelect",event:"brushSelected",update:"none"},function(){}),ku({type:"brushEnd",event:"brushEnd",update:"none"},function(){});var pV={},gV=FD.toolbox.brush;ub.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:n(gV.title)};var mV=ub.prototype;mV.render=mV.updateView=function(t,e){var i,n,o;e.eachComponent({mainType:"brush"},function(t){i=t.brushType,n=t.brushOption.brushMode||"single",o|=t.areas.length}),this._brushType=i,this._brushMode=n,f(t.get("type",!0),function(e){t.setIconStatus(e,("keep"===e?"multiple"===n:"clear"===e?o:e===i)?"emphasis":"normal")})},mV.getIcons=function(){var t=this.model,e=t.get("icon",!0),i={};return f(t.get("type",!0),function(t){e[t]&&(i[t]=e[t])}),i},mV.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?!1:i,brushMode:"keep"===i?"multiple"===o?"single":"multiple":o}})},sb("brush",ub),Du(jB);var vV=f,yV=function(t){var e=t&&t.visualMap;_(e)||(e=e?[e]:[]),vV(e,function(t){if(t){hb(t,"splitList")&&!hb(t,"pieces")&&(t.pieces=t.splitList,delete t.splitList);var e=t.pieces;e&&_(e)&&vV(e,function(t){S(t)&&(hb(t,"start")&&!hb(t,"min")&&(t.min=t.start),hb(t,"end")&&!hb(t,"max")&&(t.max=t.end))})}})};WA.registerSubTypeDefaulter("visualMap",function(t){return t.categories||(t.pieces?t.pieces.length>0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"});var xV=OC.VISUAL.COMPONENT;Nu(xV,{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(Fw(e.stateList,e.targetVisuals,y(e.getValueState,e),e.getDataDimension(t.getData())))}),i}}),Nu(xV,{createOnAllSeries:!0,reset:function(t,e){var i=t.getData(),n=[];e.eachComponent("visualMap",function(e){if(e.isTargetSeries(t)){var o=e.getVisualMeta(y(cb,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 _V={get:function(t,e,i){var o=n((wV[t]||{})[e]);return i&&_(o)?o[o.length-1]:o}},wV={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]}},bV=kO.mapVisual,SV=kO.eachVisual,MV=_,IV=f,TV=Tr,AV=Sr,DV=G,CV=Bu({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;aS.canvasSupported||(i.realtime=!1),!e&&Vw(i,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},resetVisual:function(t){var e=this.stateList;t=y(t,this),this.controllerVisuals=Bw(this.option.controller,e,t),this.targetVisuals=Bw(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=to(t),e},eachTargetSeries:function(t,e){f(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||["<",">"],_(t)&&(t=t.slice(),o=!0),a=e?t:o?[n(t[0]),n(t[1])]:n(t),b(u)?u.replace("{value}",o?a[0]:a).replace("{value2}",o?a[1]:a):w(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=TV([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],r=t.getDimensionInfo(a);if(!r.isCalculationCoord)return a}}},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){function t(t){MV(r.color)&&!t.inRange&&(t.inRange={color:r.color.slice().reverse()}),t.inRange=t.inRange||{color:a.get("gradientColor")},IV(this.stateList,function(e){var i=t[e];if(b(i)){var n=_V.get(i,"active",h);n?(t[e]={},t[e][i]=n):delete t[e]}},this)}function e(t,e,i){var n=t[e],o=t[i];n&&!o&&(o=t[i]={},IV(n,function(t,e){if(kO.isValidType(e)){var i=_V.get(e,"inactive",h);null!=i&&(o[e]=i,"color"!==e||o.hasOwnProperty("opacity")||o.hasOwnProperty("colorAlpha")||(o.opacity=[0,0]))}}))}function i(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,i=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,o=this.get("inactiveColor");IV(this.stateList,function(a){var r=this.itemSize,s=t[a];s||(s=t[a]={color:h?o:[o]}),null==s.symbol&&(s.symbol=e&&n(e)||(h?"roundRect":["roundRect"])),null==s.symbolSize&&(s.symbolSize=i&&n(i)||(h?r[0]:[r[0],r[0]])),s.symbol=bV(s.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var l=s.symbolSize;if(null!=l){var u=-1/0;SV(l,function(t){t>u&&(u=t)}),s.symbolSize=bV(l,function(t){return AV(t,[0,u],[0,r[0]],!0)})}},this)}var a=this.ecModel,r=this.option,s={inRange:r.inRange,outOfRange:r.outOfRange},l=r.target||(r.target={}),u=r.controller||(r.controller={});o(l,s),o(u,s);var h=this.isCategory();t.call(this,l),t.call(this,u),e.call(this,l,"inRange","outOfRange"),i.call(this,u)},resetItemSize:function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},isCategory:function(){return!!this.option.categories},setSelected:DV,getValueState:DV,getVisualMeta:DV}),LV=[20,140],kV=CV.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(){kV.superApply(this,"optionUpdated",arguments),this.resetExtent(),this.resetVisual(function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()}),this._resetRange()},resetItemSize:function(){kV.superApply(this,"resetItemSize",arguments);var t=this.itemSize;"horizontal"===this._orient&&t.reverse(),(null==t[0]||isNaN(t[0]))&&(t[0]=LV[0]),(null==t[1]||isNaN(t[1]))&&(t[1]=LV[1])},_resetRange:function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):_(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(){CV.prototype.completeVisualOption.apply(this,arguments),f(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=Tr((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=db(this,"outOfRange",this.getExtent()),n=db(this,"inRange",this.option.range.slice()),o=[],a=0,r=0,s=n.length,l=i.length;l>r&&(!n.length||i[r]<=n[0]);r++)i[r]a;a++,u=0)u&&o.length&&e(n[a],"outOfRange"),e(n[a],"inRange");for(var u=1;l>r;r++)(!n.length||n[n.length-1]a;a++){var r=t[0]+o*a;if(r>t[1])break;n.push({color:this.getControllerVisual(r,"color",e),offset:a/i})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},_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 xM("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;EV([0,1],function(r){var s=o[r];s.setStyle("fill",e.handlesColor[r]),s.position[1]=t[r];var l=rr(i.handleLabelPoints[r],ar(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=OV(t,a,s,!0),u=this._shapes,h=u.indicator;if(h){h.position[1]=l,h.attr("invisible",!1),h.setShape("points",vb(!!i,n,l,r[1]));var c={convertOpacityToAlpha:!0},d=this.getControllerVisual(t,"color",c);h.setStyle("fill",d);var f=rr(u.indicatorLabelPoint,ar(h,this.group)),p=u.indicatorLabel;p.attr("invisible",!1);var g=this._applyTransform("left",u.barGroup),m=this._orient;p.setStyle({text:(i?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]=NV(zV(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=NV(zV(o[0],t),o[1]);var r=yb(i,a,o),s=[t-r,t+r],l=OV(t,o,a,!0),u=[OV(s[0],o,a,!0),OV(s[1],o,a,!0)];s[0]o[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",r):1/0===u[1]?this._showIndicator(l,u[0],"> ",r):this._showIndicator(l,l,"≈ ",r));var h=this._hoverLinkDataIndices,c=[];(e||xb(i))&&(c=this._hoverLinkDataIndices=i.findTargetDataIndices(u));var d=lo(h,c);this._dispatchHighDown("downplay",pb(d[0],i)),this._dispatchHighDown("highlight",pb(d[1],i))}},_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",pb(t,this.visualMapModel)),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=ar(e,n?null:this.group);return vA[_(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()}}),GV={type:"selectDataRange",event:"dataRangeSelected",update:"update"};ku(GV,function(t,e){e.eachComponent({mainType:"visualMap",query:t},function(e){e.setSelected(t.selected)})}),Du(yV);{var FV=CV.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){FV.superApply(this,"optionUpdated",arguments),this._pieceList=[],this.resetExtent();var i=this._mode=this._determineMode();WV[this._mode].call(this),this._resetSelected(t,e);var o=this.option.categories;this.resetVisual(function(t,e){"categories"===i?(t.mappingMethod="category",t.categories=n(o)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=p(this._pieceList,function(t){var t=n(t);return"inRange"!==e&&(t.visual=null),t}))})},completeVisualOption:function(){function t(t,e,i){return t&&t[e]&&(S(t[e])?t[e].hasOwnProperty(i):t[e]===i)}var e=this.option,i={},n=kO.listVisualTypes(),o=this.isCategory();f(e.pieces,function(t){f(n,function(e){t.hasOwnProperty(e)&&(i[e]=1)})}),f(i,function(i,n){var a=0;f(this.stateList,function(i){a|=t(e,i,n)||t(e.target,i,n)},this),!a&&f(this.stateList,function(t){(e[t]||(e[t]={}))[n]=_V.get(n,"inRange"===t?"active":"inactive",o)})},this),CV.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,f(n,function(t){var e=this.getSelectedMapKey(t);o.hasOwnProperty(e)||(o[e]=!0)},this),"single"===i.selectedMode){var a=!1;f(n,function(t){var e=this.getSelectedMapKey(t);o[e]&&(a?o[e]=!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=n(t)},getValueState:function(t){var e=kO.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){var o=kO.findPieceIndex(e,this._pieceList);o===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&&1/0===i[1]?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:1/0===e[1]?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!==r&&a.push({interval:[r,1/0]})}else a.push({interval:[-1/0,1/0]});var s=-1/0;return f(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}}}}),WV={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&&5>i;)i++;t.precision=i,a=+a.toFixed(i),t.minOpen&&e.push({interval:[-1/0,n[0]],close:[0,0]});for(var r=0,s=n[0];o>r;s+=a,r++){var l=r===o-1?n[1]:s+a;e.push({interval:[s,l],close:[1,1]})}t.maxOpen&&e.push({interval:[n[1],1/0],close:[0,0]}),Br(e),f(e,function(t,e){t.index=e,t.text=this.formatValueText(t.interval)},this)},categories:function(){var t=this.option;f(t.categories,function(t){this._pieceList.push({text:this.formatValueText(t,!0),value:t})},this),wb(t,this._pieceList)},pieces:function(){var t=this.option,e=this._pieceList;f(t.pieces,function(t,i){S(t)||(t={value:t});var n={text:"",index:i};if(null!=t.label&&(n.text=t.label),t.hasOwnProperty("value")){var o=n.value=t.value;n.interval=[o,o],n.close=[1,1]}else{for(var a=n.interval=[],r=n.close=[0,0],s=[1,0,1],l=[-1/0,1/0],u=[],h=0;2>h;h++){for(var c=[["gte","gt","min"],["lte","lt","max"]][h],d=0;3>d&&null==a[h];d++)a[h]=t[c[d]],r[h]=s[d],u[h]=2===d;null==a[h]&&(a[h]=l[h])}u[0]&&1/0===a[1]&&(r[0]=0),u[1]&&a[0]===-1/0&&(r[1]=0),eS&&a[0]>a[1]&&console.warn("Piece "+i+"is illegal: "+a+" lower bound should not greater then uppper bound."),a[0]===a[1]&&r[0]&&r[1]&&(n.value=a[0])}n.visual=kO.retrieveVisuals(t),e.push(n)},this),wb(t,e),Br(e),f(e,function(t){var e=t.close,i=[["<","≤"][e[1]],[">","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,i)},this)}};PV.extend({type:"visualMap.piecewise",doRender:function(){function t(t){var o=t.piece,u=new xM;u.onclick=y(this._onItemClick,this,o),this._enableHoverLink(u,t.indexInModelPieceList);var h=i.getRepresentValue(o);if(this._createItemSymbol(u,h,[0,0,l[0],l[1]]),c){var d=this.visualMapModel.getValueState(h);u.add(new ET({style:{x:"right"===s?-n:l[0]+n,y:l[1]/2,text:o.text,textVerticalAlign:"middle",textAlign:s,textFont:a,textFill:r,opacity:"outOfRange"===d?.5:1}}))}e.add(u)}var e=this.group;e.removeAll();var i=this.visualMapModel,n=i.get("textGap"),o=i.textStyleModel,a=o.getFont(),r=o.getTextColor(),s=this._getItemAlign(),l=i.itemSize,u=this._getViewData(),h=u.endsText,c=D(i.get("showLabel",!0),!h);h&&this._renderEndsText(e,h[0],l,c,s),f(u.viewPieceList,t,this),h&&this._renderEndsText(e,h[1],l,c,s),VA(i.get("orient"),e,i.get("itemGap")),this.renderBackground(e),this.positionGroup(e)},_enableHoverLink:function(t,e){function i(t){var i=this.visualMapModel;i.option.hoverLink&&this.api.dispatchAction({type:t,batch:pb(i.findTargetDataIndices(e),i)})}t.on("mouseover",y(i,this,"highlight")).on("mouseout",y(i,this,"downplay"))},_getItemAlign:function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return fb(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 xM,r=this.visualMapModel.textStyleModel;a.add(new ET({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=p(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(oc(this.getControllerVisual(e,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(e,"color")))},_onItemClick:function(t){var e=this.visualMapModel,i=e.option,o=n(i.selected),a=e.getSelectedMapKey(t);"single"===i.selectedMode?(o[a]=!0,f(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})}})}Du(yV);var HV=Bu({type:"toolbox",layoutMode:{type:"box",ignoreSize:!0},optionUpdated:function(){HV.superApply(this,"optionUpdated",arguments),f(this.option.feature,function(t,e){var i=lb(e);i&&o(t,i.defaultOption)})},defaultOption:{show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1}}});Vu({type:"toolbox",render:function(t,e,i,n){function o(o,r){var s,l=c[o],d=c[r],f=u[l],p=new mr(f,t,t.ecModel);if(n&&null!=n.newTitle&&n.featureName===l&&(f.title=n.newTitle),l&&!d){if(bb(l))s={model:p,onclick:p.option.onclick,featureName:l};else{var g=lb(l);if(!g)return;s=new g(p,e,i)}h[l]=s}else{if(s=h[d],!s)return;s.model=p,s.ecModel=e,s.api=i}return!l&&d?void(s.dispose&&s.dispose(e,i)):!p.get("show")||s.unusable?void(s.remove&&s.remove(e,i)):(a(p,s,l),p.setIconStatus=function(t,e){var i=this.option,n=this.iconPaths;i.iconStatus=i.iconStatus||{},i.iconStatus[t]=e,n[t]&&n[t].trigger(e)},void(s.render&&s.render(p,e,i,n)))}function a(n,o,a){var u=n.getModel("iconStyle"),h=n.getModel("emphasis.iconStyle"),c=o.getIcons?o.getIcons():n.get("icon"),d=n.get("title")||{};if("string"==typeof c){var p=c,g=d;c={},d={},c[a]=p,d[a]=g}var m=n.iconPaths={};f(c,function(a,c){var f=cr(a,{},{x:-l/2,y:-l/2,width:l,height:l});f.setStyle(u.getItemStyle()),f.hoverStyle=h.getItemStyle(),f.setStyle({text:d[c],textAlign:h.get("textAlign"),textBorderRadius:h.get("textBorderRadius"),textPadding:h.get("textPadding"),textFill:null});var p=t.getModel("tooltip");p&&p.get("show")&&f.attr("tooltip",r({content:d[c],formatter:p.get("formatter",!0)||function(){return d[c]},formatterParams:{componentType:"toolbox",name:c,title:d[c],$vars:["name","title"]},position:p.get("position",!0)||"bottom"},p.option)),Fa(f),t.get("showTitle")&&(f.__title=d[c],f.on("mouseover",function(){var e=h.getItemStyle(),i="vertical"===t.get("orient")?null==t.get("right")?"right":"left":null==t.get("bottom")?"bottom":"top";f.setStyle({textFill:h.get("textFill")||e.fill||e.stroke||"#000",textBackgroundColor:h.get("textBackgroundColor"),textPosition:h.get("textPosition")||i})}).on("mouseout",function(){f.setStyle({textFill:null,textBackgroundColor:null})})),f.trigger(n.get("iconStatus."+c)||"normal"),s.add(f),f.on("click",y(o.onclick,o,e,i,c)),m[c]=f})}var s=this.group;if(s.removeAll(),t.get("show")){var l=+t.get("itemSize"),u=t.get("feature")||{},h=this._features||(this._features={}),c=[];f(u,function(t,e){c.push(e)}),new Xu(this._featureNames||[],c).add(o).update(o).remove(x(o,null)).execute(),this._featureNames=c,w_(s,t,i),s.add(b_(s.getBoundingRect(),t)),s.eachChild(function(t){var e=t.__title,n=t.hoverStyle;if(n&&e){var o=Ui(e,sn(n)),a=t.position[0]+s.position[0],r=t.position[1]+s.position[1]+l,u=!1;r+o.height>i.getHeight()&&(n.textPosition="top",u=!0);var h=u?-5-o.height:l+8;a+o.width/2>i.getWidth()?(n.textPosition=["100%",h],n.textAlign="right"):a-o.width/2<0&&(n.textPosition=[0,h],n.textAlign="left")}})}},updateView:function(t,e,i,n){f(this._features,function(t){t.updateView&&t.updateView(t.model,e,i,n)})},remove:function(t,e){f(this._features,function(i){i.remove&&i.remove(t,e)}),this.group.removeAll()},dispose:function(t,e){f(this._features,function(i){i.dispose&&i.dispose(t,e)})}});var ZV=FD.toolbox.saveAsImage;Sb.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:ZV.title,type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:ZV.lang.slice()},Sb.prototype.unusable=!aS.canvasSupported;var UV=Sb.prototype;UV.onclick=function(t,e){var i=this.model,n=i.get("name")||t.get("title.0.text")||"echarts",o="svg"===e.getZr().painter.getType(),a=o?"svg":i.get("type",!0)||"png",r=e.getConnectedDataURL({type:a,backgroundColor:i.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:i.get("connectedBackgroundColor"),excludeComponents:i.get("excludeComponents"),pixelRatio:i.get("pixelRatio")});if("function"!=typeof MouseEvent||aS.browser.ie||aS.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='',f=window.open();f.document.write(d)}else{var p=document.createElement("a");p.download=n+"."+a,p.target="_blank",p.href=r;var g=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});p.dispatchEvent(g)}},sb("saveAsImage",Sb);var XV=FD.toolbox.magicType,YV="__ec_magicType_stack__";Mb.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"},title:n(XV.title),option:{},seriesIndex:{}};var jV=Mb.prototype;jV.getIcons=function(){var t=this.model,e=t.get("icon"),i={};return f(t.get("type"),function(t){e[t]&&(i[t]=e[t])}),i};var qV={line:function(t,e,i,n){return"bar"===t?o({id:e,type:"line",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.line")||{},!0):void 0},bar:function(t,e,i,n){return"line"===t?o({id:e,type:"bar",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.bar")||{},!0):void 0},stack:function(t,e,i,n){var a=i.get("stack")===YV;return"line"===t||"bar"===t?(n.setIconStatus("stack",a?"normal":"emphasis"),o({id:e,stack:a?"":YV},n.get("option.stack")||{},!0)):void 0}},KV=[["line","bar"],["stack"]];jV.onclick=function(t,e,i){var a=this.model,r=a.get("seriesIndex."+i);if(qV[i]){var l={series:[]},h=function(e){var n=e.subType,o=e.id,r=qV[i](n,o,e,a);r&&(s(r,e.option),l.series.push(r));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,d=c+"Axis",f=t.queryComponents({mainType:d,index:e.get(name+"Index"),id:e.get(name+"Id")})[0],p=f.componentIndex;l[d]=l[d]||[];for(var g=0;p>=g;g++)l[d][p]=l[d][p]||{};l[d][p].boundaryGap="bar"===i}}};f(KV,function(t){u(t,i)>=0&&f(t,function(t){a.setIconStatus(t,"normal")})}),a.setIconStatus(i,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},h);var c;if("stack"===i){var d=l.series&&l.series[0]&&l.series[0].stack===YV;c=d?o({stack:XV.title.tiled},XV.title):n(XV.title)}e.dispatchAction({type:"changeMagicType",currentType:i,newOption:l,newTitle:c,featureName:"magicType"})}},ku({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),sb("magicType",Mb);var $V=FD.toolbox.dataView,JV=new Array(60).join("-"),QV=" ",tG=new RegExp("["+QV+"]+","g");Eb.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:n($V.title),lang:n($V.lang),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"},Eb.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=Db(t);if("function"==typeof h){var f=h(e.getOption());"string"==typeof f?l.innerHTML=f:T(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;Se(v,"click",i),Se(y,"click",function(){var t;try{t="function"==typeof c?c(l,e.getOption()):Ob(u.value,p)}catch(n){throw i(),new Error("Data view format error "+n)}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),a.appendChild(r),a.appendChild(l),a.appendChild(g),l.style.height=n.clientHeight-80+"px",n.appendChild(a),this._dom=a},Eb.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},Eb.prototype.dispose=function(t,e){this.remove(t,e)},sb("dataView",Eb),ku({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},function(t,e){var i=[];f(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:Nb(t.data,o)})}else i.push(r({type:"scatter"},t))}),e.mergeOption(s({series:i},t.newOption))});var eG=f,iG="\x00_ec_hist_store";AB.extend({type:"dataZoom.select"}),DB.extend({type:"dataZoom.select"});var nG=FD.toolbox.dataZoom,oG=f,aG="\x00_ec_\x00toolbox-dataZoom_";Fb.defaultOption={show:!0,filterMode:"filter",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:n(nG.title),brushStyle:{borderWidth:0,color:"rgba(0,0,0,0.2)"}};var rG=Fb.prototype;rG.render=function(t,e,i,n){this.model=t,this.ecModel=e,this.api=i,Zb(t,e,this,n,i),Hb(t,e)},rG.onclick=function(t,e,i){sG[i].call(this)},rG.remove=function(){this._brushController.unmount()},rG.dispose=function(){this._brushController.dispose()};var sG={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(Rb(this.ecModel))}};rG._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=zN(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){var o=i.getAxisModel(t,e.componentIndex);o&&(n=i)}),n}if(e.isEnd&&t.length){var o={},a=this.ecModel;this._brushController.updateCovers([]);var r=new Zw(Wb(this.model.option),a,{include:["grid"]});r.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)}}),zb(a,o),this._dispatchZoomAction(o)}},rG._dispatchZoomAction=function(t){var e=[];oG(t,function(t){e.push(n(t))}),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},sb("dataZoom",Fb),Du(function(t){function e(t,e){if(e){var o=t+"Index",a=e[o];null==a||"all"===a||_(a)||(a=a===!1||"none"===a?[]:[a]),i(t,function(i,r){if(null==a||"all"===a||-1!==u(a,r)){var s={type:"select",$fromToolbox:!0,filterMode:e.filterMode||"filter",id:aG+t+r};s[o]=r,n.push(s)}})}}function i(e,i){var n=t[e];_(n)||(n=n?[n]:[]),oG(n,i)}if(t){var n=t.dataZoom||(t.dataZoom=[]);_(n)||(t.dataZoom=n=[n]);var o=t.toolbox;if(o&&(_(o)&&(o=o[0]),o&&o.feature)){var a=o.feature.dataZoom;e("xAxis",a),e("yAxis",a)}}});var lG=FD.toolbox.restore;Ub.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:lG.title};var uG=Ub.prototype;uG.onclick=function(t,e){Bb(t),e.dispatchAction({type:"restore",from:this.uid})},sb("restore",Ub),ku({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")});var hG={path:null,compoundPath:null,group:xM,image:Dn,text:ET};Du(function(t){var e=t.graphic;_(e)?t.graphic=e[0]&&e[0].elements?[t.graphic[0]]:[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])});var cG=Bu({type:"graphic",defaultOption:{elements:[],parentId:null},_elOptionsToUpdate:null,mergeOption:function(){var t=this.option.elements;this.option.elements=null,cG.superApply(this,"mergeOption",arguments),this.option.elements=t},optionUpdated:function(t,e){var i=this.option,n=(e?i:t).elements,o=i.elements=e?[]:i.elements,a=[];this._flatten(n,a);var r=oo(o,a);ao(r);var s=this._elOptionsToUpdate=[];f(r,function(t,e){var i=t.option;eS&&O(S(i)||t.exist,"Empty graphic option definition"),i&&(s.push(i),Kb(t,i),$b(o,e,i),Jb(o[e],i))},this);for(var l=o.length-1;l>=0;l--)null==o[l]?o.splice(l,1):delete o[l].$action},_flatten:function(t,e,i){f(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}});Vu({type:"graphic",init:function(){this._elMap=B(),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;f(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=jb(e);eS&&r&&O(l===r.parent,"Changing parent is not supported."),o&&"merge"!==o?"replace"===o?(Yb(r,i),Xb(a,l,h,i)):"remove"===o&&Yb(r,i):r?r.attr(h):Xb(a,l,h,i);var c=i.get(a);c&&(c.__ecGraphicWidthOption=e.width,c.__ecGraphicHeightOption=e.height,Qb(c,t,e))})}},_relocate:function(t,e){for(var i=t.option.elements,n=this.group,o=this._elMap,a=e.getWidth(),r=e.getHeight(),s=0;s=0;s--){var l=i[s],u=o.get(l.id);if(u){var h=u.parent,d=h===n?{width:a,height:r}:{width:h.__ecGraphicWidth,height:h.__ecGraphicHeight};es(u,l,d,null,{hv:l.hv,boundingMode:l.bounding})}}},_clear:function(){var t=this._elMap;t.each(function(e){Yb(e,t)}),this._elMap=B()},dispose:function(){this._clear()}}),t.version=xC,t.dependencies=_C,t.PRIORITY=OC,t.init=wu,t.connect=bu,t.disConnect=Su,t.disconnect=QC,t.dispose=Mu,t.getInstanceByDom=Iu,t.getInstanceById=Tu,t.registerTheme=Au,t.registerPreprocessor=Du,t.registerProcessor=Cu,t.registerPostUpdate=Lu,t.registerAction=ku,t.registerCoordinateSystem=Pu,t.getCoordinateSystemDimensions=Ou,t.registerLayout=Eu,t.registerVisual=Nu,t.registerLoading=Ru,t.extendComponentModel=Bu,t.extendComponentView=Vu,t.extendSeriesModel=Gu,t.extendChartView=Fu,t.setCanvasCreator=Wu,t.registerMap=Hu,t.getMap=Zu,t.dataTool=tL,t.zrender=vI,t.number=DA,t.format=NA,t.throttle=bl,t.helper=ik,t.matrix=FS,t.vector=IS,t.color=rM,t.parseGeoJSON=ok,t.parseGeoJson=lk,t.util=uk,t.graphic=hk,t.List=dL,t.Model=mr,t.Axis=sk,t.env=aS}); \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/map.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/map.html" new file mode 100644 index 0000000..b64ec4a --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/map.html" @@ -0,0 +1,110 @@ + + + + + epidemic + + + + + + + +
+ + + + + + \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/README.md" "b/\343\200\22000\343\200\221demos_04/README.md" index b9f47bf..e8555d5 100644 --- "a/\343\200\22000\343\200\221demos_04/README.md" +++ "b/\343\200\22000\343\200\221demos_04/README.md" @@ -193,13 +193,21 @@ COLLATE = utf8_bin; # 02:springboot-epidemic - 模拟 -## 一、数据库 +在数据可视化方面,涉及到 表格、折线图、柱状图、中国地图 -id、地区名 name、现有确诊人数 now_confirm、累计确诊人数 confirm、死亡人数 dead、治愈人数 heal +前三者都需要分别设计一个bean,但只设计了前两者的数据库,第三个我偷懒了... + +## 一、数据库 ```mysql CREATE SCHEMA `epidemic` DEFAULT CHARACTER SET utf8 ; +``` +**表格** + +id、地区名 name、现有确诊人数 now_confirm、累计确诊人数 confirm、死亡人数 dead、治愈人数 heal + +```mysql CREATE TABLE `epidemic`.`illness` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NULL, @@ -212,6 +220,19 @@ ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; ``` +**折线图** + +```mysql +CREATE TABLE `epidemic`.`graph` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `date` varchar(45) COLLATE utf8_estonian_ci DEFAULT NULL, + `confirm` int DEFAULT NULL, + `heal` int DEFAULT NULL, + `dead` int DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1344578936000938121 DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci +``` + ## 二、爬虫 > 搜索引擎做的事儿,链接人和内容 @@ -289,4 +310,16 @@ cron 表达式(有七个字段:秒 分 时 日 月 周 年) `@Scheduled(fixedDelay = 10000)` 每10s执行一次 -以上一次方法执行完开始算起,如果上一次方法执行阻塞住了,那么直到上一次执行完,并间隔给定的时间后,执行下一次 \ No newline at end of file +以上一次方法执行完开始算起,如果上一次方法执行阻塞住了,那么直到上一次执行完,并间隔给定的时间后,执行下一次 + +## 四、数据可视化 + +**表格** 展示国内各省疫情情况 现有确诊人数 now_confirm、累计确诊人数 confirm、死亡人数 dead、治愈人数 heal + +使用 **echarts** 实现数据可视化 + +- **折线图** 自疫情爆发以来国内每日 累计确诊人数 confirm、死亡人数 dead、治愈人数 heal + +- **柱状图** 省市境外输入TOP10 + +- **中国地图** 现有确诊 + 累计确诊 \ No newline at end of file From dfd396877186ca7ea63230b54785745acc8fa1d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Thu, 31 Dec 2020 18:37:47 +0800 Subject: [PATCH 08/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml" | 4 ++++ .../src/main/resources/i18n/list.properties" | 7 +++++++ .../main/resources/i18n/list_en_US.properties" | 7 +++++++ .../main/resources/i18n/list_zh_CN.properties" | 7 +++++++ .../src/main/resources/templates/list.html" | 16 ++++++++-------- 5 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list.properties" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_en_US.properties" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_zh_CN.properties" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" index 1bf46bd..84ef166 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" @@ -5,3 +5,7 @@ spring: username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver + +# 设置国际化 + messages: + basename: i18n.list diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list.properties" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list.properties" new file mode 100644 index 0000000..046524c --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list.properties" @@ -0,0 +1,7 @@ +list.title = 疫情 +list.h2 = 疫情 +list.table.name1 = 地区 +list.table.name2 = 现有确诊 +list.table.name3 = 累计确诊 +list.table.name4 = 治愈 +list.table.name5 = 死亡 diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_en_US.properties" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_en_US.properties" new file mode 100644 index 0000000..ac0ccb0 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_en_US.properties" @@ -0,0 +1,7 @@ +list.title = epidemic +list.h2 = epidemic +list.table.name1 = area +list.table.name2 = now_confirm +list.table.name3 = confirm +list.table.name4 = heal +list.table.name5 = dead \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_zh_CN.properties" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_zh_CN.properties" new file mode 100644 index 0000000..0fdde48 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_zh_CN.properties" @@ -0,0 +1,7 @@ +list.title = 疫情 +list.h2 = 疫情 +list.table.name1 = 地区 +list.table.name2 = 现有确诊 +list.table.name3 = 累计确诊 +list.table.name4 = 治愈 +list.table.name5 = 死亡 \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" index d107689..0358cc0 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" @@ -1,24 +1,24 @@ - + - epidemic + epidemic -

epidemic

+

epidemic

- - - - - + + + + + From 62a5cd92833cee55efcdf926dec08b07354670da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Thu, 31 Dec 2020 19:36:06 +0800 Subject: [PATCH 09/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20=E5=9B=BD=E9=99=85=E5=8C=96=20+=20?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/zgh/config/MyConfig.java" | 15 ++++++++++ .../java/com/zgh/config/MyLocalResolver.java" | 30 +++++++++++++++++++ .../src/main/resources/i18n/list.properties" | 3 ++ .../resources/i18n/list_en_US.properties" | 4 ++- .../resources/i18n/list_zh_CN.properties" | 4 ++- .../src/main/resources/templates/list.html" | 5 ++++ 6 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/config/MyConfig.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/config/MyLocalResolver.java" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/config/MyConfig.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/config/MyConfig.java" new file mode 100644 index 0000000..104b4de --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/config/MyConfig.java" @@ -0,0 +1,15 @@ +package com.zgh.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.LocaleResolver; + +@Configuration +public class MyConfig { + + @Bean + public LocaleResolver localeResolver() { + return new MyLocalResolver(); + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/config/MyLocalResolver.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/config/MyLocalResolver.java" new file mode 100644 index 0000000..8e32a05 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/config/MyLocalResolver.java" @@ -0,0 +1,30 @@ +package com.zgh.config; + +import org.springframework.util.StringUtils; +import org.springframework.web.servlet.LocaleResolver; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Locale; + +public class MyLocalResolver implements LocaleResolver { + + @Override + public Locale resolveLocale(HttpServletRequest httpServletRequest) { + + String lan = httpServletRequest.getParameter("lan"); + Locale locale = Locale.getDefault(); + if (!StringUtils.isEmpty(lan)) { + String[] split = lan.split("_"); + locale = new Locale(split[0], split[1]); + } + + return locale; + } + + @Override + public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) { + + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list.properties" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list.properties" index 046524c..94e702f 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list.properties" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list.properties" @@ -5,3 +5,6 @@ list.table.name2 = 现有确诊 list.table.name3 = 累计确诊 list.table.name4 = 治愈 list.table.name5 = 死亡 + +list.changelan.zh = 中文 +list.changeLan.en = English diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_en_US.properties" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_en_US.properties" index ac0ccb0..e6cbca9 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_en_US.properties" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_en_US.properties" @@ -4,4 +4,6 @@ list.table.name1 = area list.table.name2 = now_confirm list.table.name3 = confirm list.table.name4 = heal -list.table.name5 = dead \ No newline at end of file +list.table.name5 = dead +list.changelan.zh=Chinese +list.changeLan.en=英语 \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_zh_CN.properties" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_zh_CN.properties" index 0fdde48..504e276 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_zh_CN.properties" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/i18n/list_zh_CN.properties" @@ -4,4 +4,6 @@ list.table.name1 = 地区 list.table.name2 = 现有确诊 list.table.name3 = 累计确诊 list.table.name4 = 治愈 -list.table.name5 = 死亡 \ No newline at end of file +list.table.name5 = 死亡 +list.changelan.zh=中文 +list.changeLan.en=English \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" index 0358cc0..fed20dc 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" @@ -11,6 +11,11 @@

epidemic

+ +
地区现有确诊累计确诊治愈死亡

地区

现有确诊

累计确诊

治愈

死亡

From 93511ef4a3b91f8bfe841fad79ffd9cd088b802b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Fri, 1 Jan 2021 13:12:11 +0800 Subject: [PATCH 10/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20=E5=8E=9F=E7=94=9FJava=E5=8F=91?= =?UTF-8?q?=E9=80=81=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pom.xml" | 7 +++ .../src/main/java/com/zgh/util/MailUtil.java" | 58 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/MailUtil.java" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" index 001422b..3249d0c 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" @@ -83,6 +83,13 @@ 4.5.13 + + + javax.mail + mail + 1.4.7 + + diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/MailUtil.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/MailUtil.java" new file mode 100644 index 0000000..a812d8a --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/MailUtil.java" @@ -0,0 +1,58 @@ +package com.zgh.util; + +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; +import java.util.Date; +import java.util.Properties; + +/** + * 1.原生 javax.mail 发送邮件 + */ +public class MailUtil { + + public static String myEmailAccount = "847818218@qq.com"; + public static String myEmailPassword = "tbolyqdizctwbaij"; //QQ邮箱授权码 + + public static String myEmailSMTPHost = "smtp.qq.com"; + + public static void main(String[] args) throws Exception { + + // 1.创建参数 + Properties prop = new Properties(); + prop.setProperty("mail.transport.protocol", "smtp"); + prop.setProperty("mail.smtp.host", myEmailSMTPHost); + prop.setProperty("mail.smtp.auth", "true"); + prop.setProperty("mail.smtp.port", "465"); + prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + prop.setProperty("mail.smtp.socketFactory.fallback", "false"); + prop.setProperty("mail.smtp.socketFactory.port", "465"); + + // 2.创建会话 + Session session = Session.getInstance(prop); + session.setDebug(true); //设置debug模式 可以看到日志 + + // 3.创建邮件 + MimeMessage message = new MimeMessage(session); + + message.setFrom(new InternetAddress(myEmailAccount, "Studying", "UTF-8")); //发件人 + message.setRecipient(MimeMessage.RecipientType.TO, + new InternetAddress(myEmailAccount, "zgh", "UTF-8")); //收件人 抄送CC, 密送BCC + + message.setSubject("a email comes from zgh", "UTF-8"); + message.setContent("hello", "text/html;charset=UTF-8"); + + message.setSentDate(new Date()); + message.saveChanges(); //以 eml 的格式保存 + + // 4.传输 + Transport transport = session.getTransport(); + transport.connect(myEmailAccount, myEmailPassword); + transport.sendMessage(message, message.getAllRecipients()); + + transport.close(); + + } + +} From 32a67c18d9f370a904ca9d1cd229b64535bfa75f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Fri, 1 Jan 2021 13:24:30 +0800 Subject: [PATCH 11/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20spring-boot=E5=8F=91=E9=80=81=E9=82=AE?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pom.xml" | 6 ++++ .../java/com/zgh/mail/MailComponent.java" | 30 ++++++++++++++++++ .../src/main/resources/application.yml" | 9 ++++++ .../com/zgh/EpidemicApplicationTests.java" | 21 ++++++++++++ .../SpringbootEpidemicApplicationTests.java" | 13 -------- .../README.md" | 24 +++++++++++++- .../images/image-20201119211503524.png" | Bin 0 -> 35028 bytes .../images/image-20210101122150218.png" | Bin 0 -> 5116 bytes 8 files changed, 89 insertions(+), 14 deletions(-) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mail/MailComponent.java" create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/EpidemicApplicationTests.java" delete mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/SpringbootEpidemicApplicationTests.java" create mode 100644 "\343\200\22000\343\200\221demos_04/images/image-20201119211503524.png" create mode 100644 "\343\200\22000\343\200\221demos_04/images/image-20210101122150218.png" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" index 3249d0c..56c82f2 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/pom.xml" @@ -90,6 +90,12 @@ 1.4.7 + + + org.springframework.boot + spring-boot-starter-mail + + diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mail/MailComponent.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mail/MailComponent.java" new file mode 100644 index 0000000..f6cd04f --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/mail/MailComponent.java" @@ -0,0 +1,30 @@ +package com.zgh.mail; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mail.SimpleMailMessage; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.stereotype.Component; + +@Component +public class MailComponent { + + @Autowired + private JavaMailSender sender; + + public void send() { + + System.out.println("spring-boot 发送邮件"); + + SimpleMailMessage message = new SimpleMailMessage(); + + message.setSubject("a email come from spring-boot"); + message.setText("talk nonsense"); + + message.setTo("847818218@qq.com"); + message.setFrom("847818218@qq.com"); + + sender.send(message); + + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" index 84ef166..cc88de3 100644 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/application.yml" @@ -9,3 +9,12 @@ spring: # 设置国际化 messages: basename: i18n.list + +# 发送邮件 + mail: + host: smtp.qq.com + username: 847818218@qq.com + password: tbolyqdizctwbaij + propertie.mail.smtp.ssl.enable: true + + diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/EpidemicApplicationTests.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/EpidemicApplicationTests.java" new file mode 100644 index 0000000..fd8565f --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/EpidemicApplicationTests.java" @@ -0,0 +1,21 @@ +package com.zgh; + +import com.zgh.mail.MailComponent; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class EpidemicApplicationTests { + + @Autowired + MailComponent mail; + + @Test + void contextLoads() { + + mail.send(); + + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/SpringbootEpidemicApplicationTests.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/SpringbootEpidemicApplicationTests.java" deleted file mode 100644 index bb6c284..0000000 --- "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/SpringbootEpidemicApplicationTests.java" +++ /dev/null @@ -1,13 +0,0 @@ -package com.zgh; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class SpringbootEpidemicApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git "a/\343\200\22000\343\200\221demos_04/README.md" "b/\343\200\22000\343\200\221demos_04/README.md" index e8555d5..08580bb 100644 --- "a/\343\200\22000\343\200\221demos_04/README.md" +++ "b/\343\200\22000\343\200\221demos_04/README.md" @@ -322,4 +322,26 @@ cron 表达式(有七个字段:秒 分 时 日 月 周 年) - **柱状图** 省市境外输入TOP10 -- **中国地图** 现有确诊 + 累计确诊 \ No newline at end of file +- **中国地图** 现有确诊 + 累计确诊 + +## 五、国际化 + +**切换多语种** + +- list.properties 声明 key 和 value,默认显示的数据(注意编码格式) + +- list_zh_CN.properties 和 list_en_US.properties,分别对应中文与英文(美国) + + ![image-20210101122150218](images/image-20210101122150218.png) + +- application.yml,增加 `spring.messages.basename=i18n.list`(list代表默认使用的文件名) + +- 浏览器鉴别语言的原理是,根据 http 请求中 Accept-Language 参数的不同,然后进行语言切换处理 + +## 六、邮件发送 + +![image-20201119211503524](images/image-20201119211503524.png) + +使用电子邮件协议 SMTP = Simple Mail Transfer Protocol 简单邮件传输协议 + +## 七、多页面合并 \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/images/image-20201119211503524.png" "b/\343\200\22000\343\200\221demos_04/images/image-20201119211503524.png" new file mode 100644 index 0000000000000000000000000000000000000000..7992651acdde8f1bdad5744a4006fce31ebd1c46 GIT binary patch literal 35028 zcmcG$1yq&&w=TLA#UKPMBt(#qkdS6k3WBsC-3Wp-(hZ6dDj}dqcc*l>Al+Re-69~( zy7Tq>|G#gad(J-ljC=QCIEKW#-uT6w&wQR|zJ8Bo#qlnZTtuNzcoL696;LRw2o&nn z&-2*uo943wF(}k6l!WMgMaQVs2{%W@xoFI07p|`?!KuqqW@oTWWkjV^-;zYd5qxYs zIDbbsq_EJIl);?MWOO3gkBxBUNo4u8h%CEI+H`_9Z`C7)X};28snXMavZhg{OxSz3 z*68^Z`wDN3(6CKZDt{fd5z%DsN~>MVY&-9ipG~Zd$Ht+{`V1>>!``8W<%$%>ItT6w zh2oKyt-$*89qwIfxLp*=)0e8}4DyZW6+c?!|62)87>x`Es+Qmf8TvPFg+B5F3YW5z zFg5C_11|D|C*|v}p2#=XZm zGRh}Xl9M0axN*b8*m$Xg2Yyp%yQHx1TJ1R`a8qu0$ZOwK@UB)l$EwlNy2G^Sk1c2Z zo6iglGpectR!=Oeb_VlmU`&0_EG(rq50hh|$ijaAwub{+r>(Y^Q!^Xe7Piu>tF_sU zIz!v$_;OV3SBK*V2bJLn?<0$i$tpgp@4~}VI}cT2xiwE~sHo7DjAaiGt4cHz9Rvpl zU*;2pvA6s}OyGG+MM2>yjl`QbZ(2J$i%;D6TONyuc;PlI{!WdLk8j)En5a;3`Muh+ zz0`N;YR0}VB_;L5+&ufoj~`iGKQwR06Z~1$p!{2L?Qc``t*Tx#Eb1N$~+1S{$X#GxF zV#85}1_qD#lv56R#3|AX3fQSP{R0D4G&Q4=^ph*51ud<5mviBc62$`tUthR?Lf zz$7RsD#CMUsi~=*+DOmJ>aTx;!)eq>Hn*^Fj{2RyzrUoUELL_S+`0&FDnq&XYF<`px)md(%D7GT&2_^-$D_VO!P})$!ptmd+@gemfx%fI(}`a>S38^jNy;5=Ztm}PnEd|FpY<7S zbgb&mj+R*J#8O=Nv9-@(+)I5|r<(t1;N{JISNMJG^2!ROGo zMy11O2Cbp__)cG2_j~uQpjAbSIn1JRQ><*lB3tzf)h#w@Y3V{DHHpClk&}0)_BYyQ zt;-bE)fpt5VPLYm`uh8mDl7T@$#{E5bF#9eElMhyYbar}QA403wyJWfY$-JE3yp|i z$Q>G+ISGLKn6plgi@Rl@M_F*hF}`t+oqgxWI~MQII{T94tfk^HizlY0nS;4HED|Q> z=6L&LZfdyS=B(*iSmag)vqPF^KD5pCdR-DEwu*hG(lvowLfpM6s15=078#5+R!(Yj zJ}yF)ff8u`pEo{tK2YyC%$;`;)7N#IZ*|L;Q6lD-172r=0I3mmxFD6 zG;qIREH9x@R!Ho|<+~Y37bjX&l3Xx
?YR2;$_|INVa{SHf$rQT${*u?P9pNWfc zi@C=w9AaC2T=aXBBnZc@!;>ck!IRsLTkKw#U?f?Wzv*!}HdSak#H^&Gv=n92DX*p$ zu4HZcsgT5*5`t94dbw2Z!mjvD7L1YB%}X|4D1sqV5ST|%xZ8F^8i<-b+UT+6A^YXX zf2wBJxoQyCPzAQ!14D+6@UF>m7su&0*O!-4WAV#a*vSgAc10y+95yD&f2mtu$8z4E z3!Agz$$Im8z9Z6M`~@tM?Q;vMu{Xa!P^bIw>C-itXubhShQ7W&5ks;GixLRir(3lf z?sn?a2IKpP1Q){g@iefle|_N|u1E;2Onxzrd#EI}ZOO73&)V7=+!H1HhZFYHiMvd; zU$3f=4M|qRHL$)q%@6n3H>18&2Zx3xH8nMPCf$q5%E}6w?VH`&M-s!w&`?#J(JNQ3 zz|@|lPMm2Dyfmz0WRwa^yFsvPOLV(%+04qC{QC9O#>Pg^@Ne+pJc-1zxJ!X|Ae?&n zHL&8&Y*)a)i<^Xc%g=hyD=~eu5gsf)6tp23jve&g8<2wa*H7goUu|C41aBEsRXcih< z3&5(q^?lQ^@LAins?8?S(Hf5$T$7D+0zM7#Z2C=$M_XNCV{3!Y!n6z>9uZRyW^1JC zU=D^3CN|uS9PTWNKS`06x3@3;bXOwLEC3R_MC{HK6Ar6J|F-ea?eUZmtf!iLTv7{wogmvg!W!e#8XOg za&awpqBj(^w4#}-_nvmd3h9LDxR+ILC$kvOe*0kW<8z+Jde(Q+X@UHBzsq9~hov%Z zXJu#wM`!QVO~>!2?rK*Kum42h5eD&-b$!CR?e4+BP)&|$PMKKf z_$7f@x8LDh7UOBDG0u`*f`?ftav>;_44>;>o?-jv_=Q-H$@Ojmni!XL-n*)K!rbFl zUL>TX68Ge&Lg?fMVURMBs|y{DbcKe6896*cVV^SOIQ2R$H+N_*OeZJTeJ4}B#=S~b zU`Me+q#m`k?;62v8DnB%(%;>Et7OdF;ZdGE1Xu+Hg<1QGq8Bq_6%8-_k+C{Htie>= zbXjF{gLqYpCPT@;hkSx+V72XecpVw-(fnucyf0B$z!_RnW8E{5=lVI_aIm6-F>&C@ zlUG*$WMXPsWV0aqwYhnW9N)}-CA%aeB}J^lVPkOki~bt^IpNR*+iSv}E*n)U74~br zfNdp%or2MGp-;9K69Y{aI-}Lgtdl3EYiZH;tKF9FTclU7TnRFG(EDYj@#Oe$2M!t~ zzvy|V={>C{>cxu}5om`TtUk*{B$K{kxJxw*a1>06S>rwU6-Rsq9bEpeM6#_uxj+Qu!qh=e_ijg5N%#|{8^sjsgOvhi$~4r-qHf|f?n(L+ig zocoiddT*k6=Iy1zm_K$ckk+1G)9d8N#uykH+M_jkK4xSv02*vzeIFF-?TwwBl=OUU zv{7vHvl`UGZp@w&}?yF4uI;TxQ>U8w-AK8A&j5rhi>%oy(c4%_IkkfNX+kbG@w60@!O z^5siLdisUEtmx?I){c&~KKJ%n{=0W&07<^}^Si)%j+%}xGd*1b28fP7?JTPK9mIf| z&wzg+U=+F?{tlX2g90hI@Oe+dOZ+x200HXdw#LHZT~PUKFZLjbhr@2UKd3XoCyB4UNb@4?1mlwc+CkcFEyn6zQwB zVXrZh(%zBpyJuqM+J9Rze;*iN`tj;4PNCVzJ;s#zc|$u}+vi7nn{Ztmjh(#bJycFr z+OSL)d!<;EpbUjss6P>anuGJj4^f%Vtnu6)?x;l-NN)!nYDUq?0xrK**+2Jw>HM)i zQDIki_WEnHDX4-Nb1Uz~wR1p3gcMfD_X?hWe}DfJyM5cIy9LE;MtJSvRWRrhy$zRy z$gHy7;9NHu$WS_U*a9Uo-%G>hK@S~x+VZ88$OEzx>W)ZmIX^!?^)FA~OuFrAIq~02 zPED2K8!TIEb5pN-Rsdxx0}IO~4OvrW;xnQlOMR(Q!NDORE}EPpOa&heI(~%H6dP77 zb(Ga<3TMX0Q^sX8>r_{^jr75O@!b8q5K?Bd;9W_FMr%L;a}T#cGEOB+RgWfFLPDao ztE=QGWYPj`AK1%Khm5Y&=#=J1Rn#mf1Iyz;1ToVF-L@>fc{Q6}LiAwblW}ktXdEI8*kc?3!M-lQY z+ycvzD&3f(f&RqDFo#pl!?Z6gD`_vDJXJhXJ_-?z4<(L{n|DAL&v~Z zuTFpb__1ZqTJ713`K&m4%~Zu;TA7Icg;E)aHOloXm>AgqnH5bGoJ_4Ve}A8944Jop$xC5&46i);CH(BYzKu6m4c@`r`v&TrfYFkl@<^%I1=MW zZy1l;VJEm-=8UUqYLew;doH0fkX0FI{n;&UB3wzqAxuoW9FFK zY5TU;){ClsMR|Fww~Q~U5H0Imn~by(fpWFjVj^RFeB4v5KPOl=cPKL@CFSygrq+ZH z1G!X2hs{Uo%=)Lt2Rjq%eHeEo3D`9xci7vkk4q%v`O#uMH4mKe6rfz{84Qw5fWLjF}ftCXLj9Ma+ z%lwC0gfHL8yM;6CQcs>JD4ZTuFa7ului^Y1|Buds+@F)T=aH#}l#Nd+rKzbIhO-fM zzQCFi=#e;sNnio!=u+G6GuwE!lL+IVd{-7qbkWrlT%%!At)?UrWGn1Y(e-Me?47vp^tA3u%* zBw_lJm0hr8Y+`OTk=Jt&A{PWVUNU^3i!@=d^G6R@+&6JL!r8^~@bDmXs@U1t#p<8& zd}Osgg^7o%miPx!=9rHaFYOHJY!sW>*S$K6Fh;e@c{c;a5snmCyVBU+nxxLv?T#qk zC&5s>_XeHG&B^I3r(mF^6@wc;MXqA=sjo)5Q|9)f z>M!qU29wBI@n-1}54x$-(9l509e_;3RVfgF@OFobtGL<5%SlMz>V}(*O#ze~4fwCZaSryvHX|0^ z?(I1;=1kt3GIi&&`OW2Mx4u5Pp@YAo!zr(%lnjwbV7prcq4U%=G(Luhr)yQ%@2Cb` zLLJvRZDS;JQE@e&3r-6N%&^hZBg^%oqv1sUv$oTcHNe^JsA6G~54X0qVAIfqwLKG{ zs>Qf71Hb_&2s8P(z$Y@=*#onNUs}5;7XbCTn`Cgmf9jS4H$%GS~WpaFG0ae+F za__<#AFOexr}JAU|AfO)4R`lyyNzO}SR)Y;k+6?v5Tf?b-_H+0C1H#M_RVDP%U5zL zvW9@}RMgNQEpD7x*}>-j)L64R^nQqcwE4=GfvcZ zMxFh)AEKkp9f;*~^YeSZb#!pTLUuWhfpn8tT3R}0PC`P0D={bssBU`4S)_Q&xe6k# zH)RV%a$LW=dv0*^ZUNlGL)E`IXMp7sT;J8Vat6eXE79bQN4kpttlRYY^Tm9b$fL31 z{l4yQf_yDtfj&e=nm)S7o6Et$K}=6iF9y@Rqh7l8fI7;4)VK*D|9ad`6Z3hGeVRTk z9J=LETEXk0`)LIz>D{FllvQe*J(cGQQXTKzyO%YhRuENOTs%0M13<%IItk{gBN{#A zOyT)*AkrnJLv1n#;@9)(`ZvKzMW#c*%(pY7?s#xKdG_pCEv_+yG@{Fw?ErL|0K8`+ zz}6LpfFgVyp>P=)v2MoSN*}vdaS}ksL%5c%ZvqM62O(YUEhA>^*)FEkyNrx0zpH?T zoUKB2$Ew<0LzU|Zj&)&t#Lq(MV;lINNkISSd{yhx7WqH&5dY6<@qfxVqX2UAzx5j4 zr;YS~|LK2Al)Y=1?gp&9hL0t`xY(0u%|mAI^YRpz_3R^w-j`VC%mU8z%tP7FXS*0A z=1=m>;SMSRxnBs^QI*=cNI46T73O^eDNIXW%y2kwKL>ti4C?FlsgvK_5aGVC85Olf1O8DD>_>lJBHE}>Cu)?=DmWr&pKrh{2Mc0*dJ zpws-J51>M*wVv_kUWQV-cP3EC0y!v9=%lpCpEPwPw`LMK$=7$+O~*@LIRC6Ww}yXK z{s$!SUN~Wj$6?7|BmhE>c+Rzjt$3U)czhmsoupq7F2}$5`V)%|oG`Bi2FY%B!ojp7 zg46kjA03c!TrTkQP9nweBZStmD4oUz#*E-AnYSLXhsTP!+mcRa5&9ZR{%LC{Js*%F z2rC!uyqs?DgB7{wDyU^Y@(i*bXfDVv?y46)G9Ahpc*jzm2KP0%Zl&vmbq;@V)HGKK zWE5?uxvSSspYFa(7kCdv0Q{*mLaE?!kH^7-4kHH#3LZQ{m<|GBjorA!jP(R zst-)G94744tDK7_rgc3bJIEm8jo@5JFTv6%0c-c}x`HpLGv%xKZQJ!YENMA8vSHfJ z=_fyZgoeq9updLE!d$hjP<8aH%^CRVKNQI$-_xm4)^8Dt$Z_-OU5#RCsC0Wa+;`Cx z4G)CIfc~h)9B-I5y}tp^$Wn8ZZ`c)M?w|_%RTcB(eq&2 zy|pM`qIEl7(HY_#(oF1=MRx#mrssoC-V5`%)Bi-yxWO9_!GwUbIm|~nDnvxCAh65* zS4iw4B)p;PHG2;`KC>arwt}?udte+-2axe5>`uDK!C*ap@+3r)Ic&Xrg?R#aygwV^ zoNmzfn=&W?^&*pxh;{?{LjvMzFo$6~F&~+TrylY0;$k=oTs9rF(Ydz>-V7kG_ZhKL_Oq01nWJv{XxNpQLHXDcmExQ4w z^0`kMwg*e8W8~L7?|UQi&L5f+=+^BfQp@LaxrkNncT-LbGiromijnn0~nZUtf zVg#q@r-^BZP`C{I;+IkNdz*nCOcD%t?&R?j0jXW*199t>*<_^}V1!_x72}|i8Y3eF zh5Gvgkh|}@AI(s-E%Dns+ww)Xn*ce#O$Y&EkIjfZ@TLHR1fTQvodQHRcN2x9-H(je zW&Sz}4~{yD{XQan`L92Vz@IU6<7O#-Y8uoVR{!<_fIQ+kc^d?GJAp{!r^+Cs$L)e- zBOEKl{UjI&xx%MkFG@7WB!&kC=^h8DA&1BC3LPx!Bg(l(ctQAu3l|P{ay_ygrrcD9 zv|X~PmtfBfRBTjd>HxPb`RI}EpOapX@)6qa2WF~P8QIn!b(ys*c~-gJU1upK>ZFTt zeCl}{M1NvU?^xd7xOS^Tx(;M0-NG5uwe4_2)TFKZA z29zibC=@7E{T&8|UN|jHizJg5<}d)guFD0{1(+HX>U=}gfGuBxL)hnzGoCp>N&q~n z^H63dE(k|;b1uBRB$ST~k!M=}Ko%|XI|1;fyrD=24q13lO~#P@RGdpEdvm}aEaaJX zl|Qq^j25;1-UYd^^LL?t{fGdrxO4M=odVsk#_uRD?!#q13L2#t&^>aouD|@Er*AzF zdrus1)5$9ijNgEgidJ$@B7N6QhGNU99LQUX{@jz@phi3+_MV{JAMbk!NAX2ir^bKCkc3BJ!3LOH~qFW(9`x6Hrd*B=?=oW(r0& zHhF}HLx;L^y6#yaVjU<{VMsKNhMTbWvF$|z*g}%)B8$iVJ4Edw=d=B`9z<{o$*4bO zWuhH8%OJ7NUJ=D*1bBK8{)SDqY${L%~gkrNPPw99%K-&$ec zDn1_JPmsHpVU_hAZq%?y{K=89(pK`@mq^>&J~l()OmFd8c!fAg`!s zusU95Qybv_a_3+rmlR6dCcvgphO~ZUT*JTMwjEY;^z}0+G?Xo+)83@-jbhyf_x5H2 z*YI(Uzr+1Ev3K$7YkC~-z!~8}?0|;!98`TD1Pc8AOnCXS{(EA!dev&zvM+Wk$`v9H zgkUxTHw$8q+e-lk;7K%@mrQ_yO7{_Skc+to+9#Vy|DD@HLQ{@A11fO+<5^f#tcVOZ zQ@Pd2PJIJmrzR*LHhR)VjEsy7Qfz>Nh-EE3ya8dW>DOEvoD%jgNNQEv6;sEZ#B5Jr zzW}L7T^iyQC`GPRVSr z#P!FDLDKTNV>RWrdn5RLef@(9k(V;=n8PVj=CC&8V{7=&9vyaJj^yC1wOE%xoHNU} znBaqZ1$CoB1a2YtIqZ=d4(b~6lr4Kbf$jzlcSL$&r5HWB2OQWc{#h;;09-JQ9$^YAy|UXDjIGmq)3M+ z07rEUu&WS#Mf4@b(f4!C+dbk%MqM{SNf{-Vjomr4;b?1X+W~DeEiW&x=F*${32|}4 zu%&=`FF{{O(VRM(=a#rfDFNheO7*6{<>G=6rVJjRmXzC~9|4gRm`w_MpI3KY zbP4Pt0t;;QVst3wGsr23tebI_Q5n%iMdjr`AcFESjCdhBbf$O1ZyxkYyW^c9Mqb`B zH38y}~|wBL3F5tuCQl4}gK{Aj-neZ<*Bc|Lph8uh*fN;&Pl1H?oB|W;|Kx zgj^q46bO({Rk&Lp<1~LmCX!1=Ma%9Zd{i>ZX+9iis2)%?&0#*iIxTijyN{I(tqf%5 zR%f)gx4WaUu~Xl_#|0h24MqvHQX!;#K(tsxc0ygyhDf+AqO{%jpTR1_TV7tag*^wd zX+k?vHo*FPtWjc71dpu`I(!7XQ2^AitswI)BWW;4t6~*Dxhv}M(zcE`1~zFB_3=v0 ziD?ZvmRHDr^mAk5FT6y1NcF;8zDQNkAbh2KG2tEd+(Uf2`P!FQ;7-d$79$jx_jLAK zRj6N(2ZkanApEV6^Yv#g^9btnva*r+M+Xq;+ix5fZ-M1bq8DP*!5T4fRQpEbISN-@ z8|t46JI;24YDQ31Cv=0-Lz6pX>Of4aJI{N7m>oJk+!}pPj#j=c_CD{xnTM^A)0Re1 zP`mg0Dmz+Epa`RU%z-;Id_U^go$(I#jV-jEyEp+kZbMuZ6;o=Tgp0t17v$m&QL?E4 zHw8=_h(%7D<7u(gT=x2sy=ndjnf!McTmME#QR0Cl|G*#eL)hMs$Ny--0X%b8{zi$N z@`+;LG5zaLdTh6lZ~mi!*2b5So*sBTrNA-iXg(#NMzOA3^_(=Zv>bvUH)?*kz3&R@ zWI9;P1|}y3J$p{^+=PS5cLp^o%yZ$p2#|z9k-%oXhaxiPP7cPs~~jv0X+EpLy^PcQ=OqVkM5-7q$?w2AKPd>}(~Vsvn`}sm|jv!&%i!t>QtI zRa8|a?oA=b_W|43gkAzEV6;I%4M1rezvdc6dkOYzJMznaBm)hfk)6GuS*>vfp5^NA zcdq=gLs6%Iw-3`JrWAsF4MMGwv2nU4vr3~7&cPI9DMdxaB*-wA9@QHMtiCx6h-s(O z4s6z^aW<^L*>&KJu@QrGUcHlT3HQj7gy&#y&j18BoC=CK-|gnp*orFVbmRL;Nl6C6 zUF`FALJAA$f3)c&E#TW3VM7CJ42stAPh$cJ;CagzVqCB}ra2DZ3gEFSD=9^D444(l zAL1^H7Gz{d0)lx0wol;&$zbrY=t<4^`THw@uM(VyRMi`Z`HRIC2+G*qnN7zlmoF!R zWCj8IjkzPFVu)EP($ei0>|X2T0t_{W(z3v)Ykl`MI}oBkcj(C#pG=K}EH$od?JLU5 z>m85%5#^XxYh`u*rRD&|b3wyjw|MjWhry7$JTz}5jeBEsL#9)y9_tvlWVRR40j z6>JW{t#S&BxKx&Q13s9q*#py)zhrOv@1rs;uC_@13!63rZpEKM$X)od?AGX*QcX5I zCFEi(A}NkI|52lE+6Yj;LB@Iv1T0VhSwkR|Dd%XW0|jk9RXx#k{&p@{qJ@s8FJT$7 zXaL_F6ch*cQrmD=Ln9*%zo+0R1pO)W!w14()MxTZkVt%OU+dMV6&SXx*|&j$5+AQ8 zOeAZY3!LTm9~)pvu$&S^lys0Mlkg7dLJ&O~7Ah=IaM{oT%}=Kr*Ma!~1h7;6b){P* z{r&xqf&rBkdk%rO5BN$@^vpII&vqr)+uI`%h=kYLU^skucGe(Utw0P+2d(Yx{h$>m zAOxCG)C+Gg@*+Oods0L>Rj?*ZSBJlFxm(+&LRkjwu1L2tRit^l`z zkgzVeJ+HY;0`EsYkFfvaMN}zxTlcJZT2j^v?OZqZnsI8ALS`+)maBA?vot9l#ub!z z#NasRb8;vF!YC9E;BKOe?Sg-)2M5kF5gZcWENvrFEocY_KLeeqrWGsT#)<=dkAr_ zCgHhMX(J3AXn^3PRg{!`3*2v^K}&F+#~4iVb3ix|f^G+!m`kSW&*77G!`)+PPeC$* zthkytRTPtBr?59>@T%m(x}^_e4_-;E6?@)^c~_-jq?>1TqYPuTqE0k1K zhcoGyU=_lKRV#2b^vez}l!y(qcdVN9G{5P-rza81Qcl@I((==}3TAQQ(?<~2K%}~v zFUH%xdxq`{Fki?ZnpA@T`!PD2yjvBi6+m5Ep7x)r_>*u-LbUT_%$6=U&sMf)e8s5yHl6wBW0wda4Jf})Fg3mx#l^U0q%^MW{<7m-x*P)@52Y4r(HM}hyPA6Oibj6(U)P?wZ}+FVuZCHRi?Kn3dA9SkOSvuF{ouk&gc!%+bmOPD?{ZM#k-} zMuPw7v(kxEQND=Z7@qWrlT#Ve(=Y^6f@R3wac>MXos|>Tzgz`(HA^3_4CM}0I&C3A zXGO}$;)$}d;aX}z!4ptC0gipS_KnR*uHtDYQI2|1E5jxyIs!aH$RD0cN=V29%r4q! zZF>HLIktTd_SHXX&B}3_E)3yw06tN&#*ZoRPH$B_pyn*49~EcgRWKXoCF`6kn|M z4JM!|i$S`JfY_CN(Wkm_05+!QZzT{+!C7hy0w-*o{K*3AIZ0C;ixLgk&`1o2c7vx+ zpHfSdm6b(snX3oJPB0;@9|cdX$}|x`0XVSG{rEt8VnM)SoCov_jfHCk(cT(I%|iRw z*dZ{@+3H1-$Pj>0VEt~}w{MRjGu7@>MFD3H{Q%40`^?t{3=jkN1tt!{ZbPrJJSV)} z8kuGcNlZ+PMYIs4%0ic23s^%^3biB`z^=5QjRHVx)j0GU?i+#qV5sJ_oaBeH8*#KuR%t*$Lwxna z)nLp-D)8A4;tz7{=4*4*l)me*&Dd8A3=cm)uK3G#qKpm-D8j>Z85K)liVd}!JI=6b zj_NpuP8!Y`^5}`HtLr!W>CbpF!C*I`4{HO36^Y-H ze9C-7VYZ21*9_oh;u8!Ew2>hpA_M?~B2# z$^P6GD4m^P(&siBJqCZC?U?dGukz)~m$6RF*N4c?LP#tD3M<>77rIGqDs+Yg1$D0| zMRWvMKrkOD?&Mt{gRQs(%Jk~y5#nPX9YwTjHJV4k(2|jqhb4k&1g55@wO=WSnU0KZ z!%m`UagLI6z>1$2=&m#GtDG+>E><6qQg}|v)rD0zRAV({wWK;AkGOBd$D~6MQ%aWd zx7OBtLxqmBHS3jIve0bvTI*Y8dAT~ceb?DW*8fmaYeS{aF*n$rik5gZoRpu)#tLcy zNAjiBsN+QM=kC|atBg?gCvEp()Wg6m2lxY)ki*D2qV50Xm9bNM`52my+`3?&f6s`t zlE}W|*s*Rtej?k%Ws*8gL4Gv6PE1wrQCuHY%x$zQJ->RN)h0d?^l}-v7UCJJb_F38 zsqQ!<6kscDZ`&ftfV_8IOv#JoLG$f#w=`PJ2L_n5sHmtQ!YHfunh!TzKvdabssMgnePb>MJ!Z45yLVQmAM#e5dyr9rPb|FTE~3vML+M(_tfF9F>~`(LvyAYj=A z2GX!$v|&>t)?Zj9pmQa|JR*1klJOv7HknY?L3zF5ML+HA1y2)pJJZ3+>T2P&4z#u* zy)zHEhV^uEv$OHi>XBj%>D$Rt{^`M-Q&#<|c}51_%%#0Ui71OiWe6A`}#(S;Mnbqmn@AoiEIbAx0i6Mm0oHQ_?%zJuTJuv0+_g2p#hi4>>Y6lffv!0d_tf%AqP`Rt++&CL9l z1h#|hesFCV^Aidb4eU;N2qk4ZR%t`5kl^E5c|k?qzyA5%@7aZg6#x(yd77EP1W)0% zEkFE03G?t$lK$;!Sa>iT1=p_pa;}2VjW}$e1p(kK_4yP9(B}3fo~7#K3O2KxmB9^Qon#f4)Eqp@Kj+L@_13qL6w-bx@rb#p#_>5p;->hhs&$0xMKlHIfq@^x!g&u z=_N0u3VUA8^V^t#dUqJf%Q-c1zDjM~P@V+SX>gKDq zpVEfB8=IOam0WFefisSXZI{;T8Vw1eqitpm5cG-hn#plHi{1@Tr>^97oU_l&nKTLT)$k{Eq4!$W$=}LL8hi z%1|HXO1^mc+~8B4ilX9n`k6@s{A*{0PJd-8!%?}m(Y0#&dEhE-LEn-NgAx8Gh#6@x zN>F(sPE$@@VAU$fezKh_BPAtO($cyMEh?bCn*wR0EVKYp?i<7f3|?%&TM$6Y+e!(^ z!R509Y@50%6|Ul|r7ot}2@qgGBCJ=g2)|%lDt^|E`^#-NcT!(9`6~fxIpr?9>z)i) z7}IeC?L)iB%9Pel>~Zdhn|~x1-_Izh6*|W_jxEpQ@80Q zl;SI14B(X_s3bB2q^HzuPMdO)$TczG6ZxVONn1_zs|LUArwKfux$JvEctHv5sVesx zSin%;7nNu8HiUrHN#fvSwGumOVT)9gY~U_V)E8!`epfsEK{ulP*9h1fE!qq_1miq@Jk$2-FpVDZ+1`+f zypT|4_y|7!O`YzHcdU8@@j^kKuwj`|oxqT9D`C$=4b zuE_-p6OTP&19GW9uFllIdj0x2*FnG>+Q;VYU6)<6tj6{zD&pho4je3hzu<=?g(o2f zU|V$eoiI{@y?}-|VuS;ADLPiE{&n>>;3BH#_4PxN^}}_{P0a71-d>_^e4vZp1ENg? z63{tzUjT3DT7^mG{1=FDSOGWID{i`4EH3XEzCStYLIWM6<^Fs9Bmj&P7kIQ;w+aqC zs=*ArGBv;9;0+FrOZXQ0b#6;J2Za+w133YGN>L|6 zlfWJ^&qfSKmY%aA6#zYpvgHm7i%|UWuwFM^1l_wyTGu-NiqxbEZu0q@;DyWg6Gkw6 ze0TR zqLL+F$TW6!ebGbAZ;GgPZ&HJmm0G2w56|t_iiWgTlwKLXRZQURCzt!hH9U65&+z&q zj>JIT-jykySK_JloW3z)E{AVL+4(*^7Zbv~i}IiviM*e3`34774?pjR=lHl=uCr4T zYin^&N;}ttDSO_N5p@U~M*hTfo>Ms(Aq*rpw`HY^c-f|__l@z+o%3ZqBbwm_==sys zsMTl1U%&q*J`!HFI-PtM?4-m?kV)@lZ>6>uoRSv7RRva8~SHm?9KC=hJZC<)Ny#UbnW~ zgL#b2RutYIJFbW=O$tCbPaIr2drJg&j)Vr-!^7aVbBtRTG|PhaxLgNCkf=#bn6N-hZ~f{A$C z8_@g!5!!YLPCgQSzoB=!z^^ z98l3204tpth!#W??tAe7t%{%%1!Ono&VT@{V`opmPzWaj;Plv;4EH7&rjVK0iQaH+ zh7&e|1P*D#dG$;4Upg0lLM_57BDc{NhR9RHvmn9_L1~p0do)Xjj0`BWNsw3mn5969 zp@CEZ%?p3J0YL*oq}&5gV~e157`crG_w5ageE$+UX_&ovyX}-LdW|F6{a~pab8=`0 zmD}^tLgQm=GF*H_yT-c2k9eiQ=+&@pMbOk9&JO4y8zd&yPZBP0&Bb;c?>X ze}i2Nh~()CDc@vJq}9epif zC`3*$eZzGDeK1&3oeWe=MZ^8;$O|Sw3jD~Zg7owvIyVP2^Hwy}qmY_+zB4)#e0ge6 z9rQs}WeRPXJa#&`~o+U?yma%x)4cg+G8U`t~ZOrphJoZN@m} z+=+MpY0k%w8T-0>Z&<$crZcbAU@$EHY2ApU+gzxa7uw!<^a{I~ojSs)Zkxji>jB%9 zE_tjcqI&Of2{~V+T-kgTM#ijs&t&lE=I>fi zd-`!j{`d4DE*V9fCowlO@f6I0nCC2AX=fBk`bYO>!6VXRhtJaZTie(fqd8{ z@CkU22OdlZatz}AJLReOz4oQIj{E+@Wgh>@C|(;}6z-{0r@XNbh=|IL zI)k=I-Q3E?h8@K!9l_CJ^}Y5~`fYh~q_w)Pxw#ot+nuW;)Bu^34vzJKmTIHCFJIVr zczB3kd3oW1!k{3Yz-PTOc((y;jCjbRJLNeIg4Vt98V{XiRT-E8M!0G4BeTEu_9g*q z26Cd?KvA)0X;ln%r^->l*y!rU^?zWhZ_;HYcCU84F%eTTS(pYe#}(A=;Ud%Pp5mrL ze0Iyon*lWLVhu!t&FA~_KxV1^8VO1ls%J;c@orCzhlgK?yo?)s#`o>p2No90@EVO% zWtx-JTuap+7(rZYtQf~17t#~^(?KkG&OyTO_!9*Ymme1AyZx;NDe`yAUm#eBii!Pz z=*A5V&n!SF-h{q}yn=!dJ`%OsSdSAwkfXnYn*rrXcw0>O&tf@^??t^il!qD&p~x5aKs z10y4_SWsNL$)D$ponHwQ`gibFK7>_+=*|3KjZhG$!r`@FB@Unv3W#+-xB#=rN{p)@ zp25DmG1VL|;?o^3a;~(ZLW(@K6W$b3+tWihQQ_e8ApZL(I^)xn2ZkJi)VKEbMkqw$ zhgOmU6jQ+@c>dhEb3ACY6nU~NG%n&o2&n~=t}msCcN`QL3gRZepp>)%UqTeW6A_ec zUqKK~3J|^4UFl@Q4?Y=3fN*TE)1lSk;qs$vG{*4~qKdH);0Xcv-FJ262LOG?j*Kd} zTj*r-lG#`>o_GLRT@a;6QhL(1xu45%J5W3Z-k==$;g=Ou2ALYLy?M0!f_s`j~@%ae*L1B78UKc`g5dk zjr%by@>f7J-_KT-BKPsl61{V;D^@5_2y^u0h#yCWDj`D;xm`c#VA@`vAcZ*jiSHtz zS{|owAa;K$T#k zi=6E&q~*HzH`w#QIsBrAk;;T0z$P2CX=SMuq>ML@S2zSdG4k`x_*R_s`tTdH z6~(IurvAmrkrT2Bz!d|-oxo=`U4PbgWf1SfhYx#@i@&;Yz%F~=->>M`M@Tr}Q4C~B z2p<-qyjOxE!-uf2X8J-=|Id=i4}j}t1$M=3qWtRQzb=6K{KpYs4Ufub!>^!xrw%%fC*S^~iPe zUTP;1p;Aa>B&m9_*@YtYyU29Mu~hG!-l*Kd2bp{mV2odES6iDG90Nm4BP|ZE2C@=` zG4l?Uq(Qa`Bn(ONH@-}dk`?rT3ZZ>Si-JxND>qs~`Ky2CG#)Iqc$PKCToBD(zyPGr z5PUcbO7r(dzsrchY9zM;xM5yGLivWq^a4@QqQ|PL=gTw$V0`r<-M9=b$mPRyu0oX z%NK&_CoOtEk~r}EeTU^s)WjZ*S>xG76czu@_G#KdHX5?8-}q7@aj^Xl;Q^0Z39X)bS=HBv|eJ)Pq$d zPY){`l#<7HuE0Q2nb>A&KW}PoPJ{;i#qqL&hn=a)nbXtLF9F$s=pSF7kXmeT?}qd5 zRX=#WgK+N9&>lauq(ZKxw^2-fJejA5h0=u=NO4wICl8N|P(q!ir>FOnlKx8U+|_!M zB9cTg{|x0Xvi(7btH{d1p&3$CGDJ-=WEJ6(FmYMsm%g@j%Jxc<`$^6IDnxc<-ou5I5?Tx zyl{u-@$ep6Ti=U{j&3`iR4WJyX)!>4tzl=x4*Fy`h>D8oMhA*ev|~ zmE)uZ1K~S~3hCV`GNfce?wXZOO#C%`+}U^8Y|;~ku8@*yEU*{DRKHTf>40}i2**G6 z{i@{TBbIm{7-I&06_BJ=4K6;>zH;#_NOZmuA+!U_LaurYIb{u?|3j_ssmaWJXg3}9 z#Lg`4ZmXaRGQT7CW*8u{LNt zJUKam1)cNLdj$-IdC&`kd*fc?>=tOiC{&rI_6pO39`ysa2TN3{r5A)CUxq9U%;Dap zqB6}>k53;k`4AG~<>~3E9xeVk;s!Z6UbL(aY}@dx%iB9U4;2-!%vwA753wmL;x;!n zhTib!5PY4$O-+3UA}QRWm7U#HoW_VOEW)?#(5c+m+#DHQoH<~^25;kH(k$&}FqMJD zm0wWMR(XP;768t3?wHpPLetXa89pNZHpo5SUbSDfad&rrW_WVGAnElk0jx`uuEO)> z9cOqqL*3NW)KhNLu|nh9CnrNowx6K~d3<6*=4N8gbJS68>D^-^ss!&=hBqm&M<7~3 z6bP_RbyZHj^WNY84ZJvyUqIkPXejjw)p>ZUm7`;+su{zTi;K2=qT=FG)i+sbXp)t? zuD@-MMmzj~0zpJp79Z>>#=nS*)bSwR!c*-X91JcyD=8fWm_F=te@}nqVn_`-Aq9D9 z+GB=~!xauJ&~?lJ(}6Ainf?k12}5VX2y7cLy9C9=1i%Y_3b=jrpFRzWj>Zd@rj0>3 z#GgAmocmg#A3wfBJWGnp^5f;B0+@q$U34cEe;DnN% z{sL5MbzlQzkO))Ox!~uU72k;?qu08Ml#Vkt5V7=N%|V0RZ5W*P9H%?ElmVTeY4isa5!Pt2Sb!@yF7ZGC6*#o5R6ve}&Q;dod~(9d~QXyL~Xs%k<4e7%gvOGU{F z2DBNMAkA7#R<-~dxdz?-uY-aJUR;xh*j(SxKzQ})8(8k2`IQrU;@~}Fw0(w`iHP!y z`)Ft9=HemCx9`7ske34C?G<$Mg@)s6I1h&8i7BS`g}-mT_@>CpY`nB5NtcEyBXGI0 zJG8~X_uae9!7BvOvUFU*^fJWhS!Q^;<|IGP-%gvqs465>V_h*%GNlI*wzk^skbr=| z6Q7*#JEYocIO3>9Ky3c*5@`b_d;9x-4*ySIUmi~7*S5V&sU%Uzkh!)(nM;Z!Llk8U zsZ1ec7D*`7mMLj6RY>M3NrW;)L=vKsu~bN=B9Zr8yXSr1@B9Av9KYi^j;FNueXq5y z={(QtTKXYRO7y?JFA|@aoYXsXC=d^DYyJ;bM@-g;mcAKo6o+~S6Rn8nLOhYTuPw9> z=WX4wb0?(I-2D9f)YfCNva;kPpxJ@;g*a-G`PI~@0ph`S>CTzK`IJ2E$rMpm=0{E{ zedf4uxH;31Rm3K?=xa_t=4RuKB<-EQ2aN|jEE0N1fmIj9X^4g2H7@49GR{{E*LxRn zjp{AAS5?(P?txipwRj*?F|FWjsiEc22&xD@6B84vqk71WC*Sl8IM=TaM~NSs5~n6V z^}*$7ADX6vqoNMRrYfXrE(BM1bgYAPH3V(;T1nq}djpYAR)6@wiyiTIU6u0CZIRh6WeBWL=_W(Ij<*&Z#-8sH{JRIfr=bcTr7b+WH z?B|gZk-D==!(bja{`e(XaE`X2^PdMv!cR%0NHdTk8EHd-M6v5BA z=N{BNVyJR7Df5vA7deIzOs$`0@$1nK&vWaYqmGE4!+iifWZR<+>qVe&?@_zqUHo9`y^6=miJZz;uX4LGo>V0^WoA#azTFA3 zneErFUtVlQ#=#f22TMS>*o78W)<={oazY49A&ZhB)xC=4r>D`cwGjzqL3N?c2AHb-Gw0N3kgo zug%KNjv%}Qh5`SVZBkJ6Y1;P8S)X`E#+ukYYHh5YOsh`ZGxY7zPFfV1ubceHQDi7) zf@d*TmQzh(X`6#rqG$Trw=Yo{71cWGhBjD_>KwzUo%*jAVq(^!HD(baDMpXjoH!Ai zP>nbZC%nhT=3afgOo-}v%#IO;aXd>AZpHCL2uEwXunHi1xA4E z8n0Qa;5B3zft<#0`F^u-yWQN=PEy6$sh+Z>C?7cC-S%S9P{OV_c<>B$OTZQ)4W#PM@968h7(|55_HO_dM>54B$b-FKXcLt*O^TqoOVa1?^4Y z*&G%XrHOLxWg?GAxR2S@L+Q(wE^XJ^IR$uP+<6$}#uk5nhd4CT=yZSLc1baa8@t%r z#VZ+m;3DztPVe5>)I9UKrgCf4w(O$$rUMao42}gwziD`qgpzj2x^?Tu<;f`{@Bnf_ zY_;ROl8D3QVCtFFViq>vjo1l4@NAD=`xbZm46Nc}X0(@!b3aR+8tzyPI0ThMdV7SZ zhs2q+u_)dP&5~B^GAlIcZe#V(R8_t3ZsAjtj?m_Fw~mPFaa8eSUw(VuxQ&*UJTHV; zhsf5LE5NVw z9(~A=XQ2^uUJjSW`kpZ`*2Knw3o8_1G~(VeHZgHQH*Ia&b4>O*{J6W*{8BwMmq;w) z!~dqCmIH`N3B&+6m8~}sNcgD3jU`_s^qwnvk4lUNZJvuCpO{#4vyT#}oqFNPlbsNv zL?V*77k9jIDB@CZ6-3A#8;p0cLMu4upJ`Fg>n94d)O13SoHjh7Za#OdxWnpbZcDav zZKmzpZ=U_Pj}2Bh&oMrp>W;neUXB4-S2bE-nsgcjz<|YEe6@?Kf5V_NI6IGF-qwqBCJA)G` zbn|5a&NNaJQbr)~)S$<`@w7*tgX~>U0hhPGq*$Qq?#4VLD_grk(><0$M~y!6t8L;+ zrN-3P99Jx=PdT(H^C5q=Pu{CH+2cxVrGv2|>}hK48^f1e>zHpLH5794K7g6n8CBvz zzZlzLlnuTywDsqbs=@JEl<&_oDv?N#D2D=Jhj?H*BT)H1%$q<~j+6&S5H7*T$LB7T z!>*p562-5}5aNj6LRxnB-n|+d&g%!Ld*O829OO}duyJxyyI(*K&52&;QxiUx<;4Xk z((`ER(;jQwD54?saBJPjJ@3RazHejn#6{qLXfhv;J8&keY_>b%^Fhp4Snr935 z8E^W_mI6HnS|%bR^G3C2M{;fTOi!NF%et;(UA2Z{9Q?|DGz8SFgL}N)-BqFf59!$Q zV_~s%MMcHct;+<3GdGim$y?#b4P0quKtO=o{x#NB*IYex9*PNvOMpZ+ek^*_D}K?^ zB})V`Dhm@5FG3eUprNy z((a6Sn=m#uCg!p{2bBq^1evBafeWV|Hf?`txVH8~0`V}weYk~UWfJ1q4v+CXE2{G1h{nJhf-D}wazvBItTZCy*Da@&d$z8-8)+`hSrJKEoph?(2ndKzQ*sm<3G!DerwNKhYY@{ zq8sk5F@F2%M6`qycEO5BO@*o!hJb+jy1-hqU}YL?0}-UavYK&x2b2%gKa|B$8X@Q( zwK;vK8E6MVxp1Vfy!?EkLehv&I`zKh*EVw2V@{^&>gt+2^;be*5bf^V^znDWgULu9 zc_!=%(4PMH7#Sl99Ap_q3Wt6ZUMCPjpswQn}{j|5!wioZnwZnY_octj$r>T=n z%|EB7w?EmP>SoO{5D;T@iqUhlYsYwP+_>$ye3GHqI3Rp0yq~=CGChM-fEcA-j<6rK zH4nCkm5O*>WZY|?<6O3*Fd||VgwV%wCb^1j)^$JTamf=DH9KG;?-lkXCYjC6&50#$>JqhxaUf_3BmsX|`07k=)#R^a2ue%H*FA6!>mOXn1xg zx56C1GZ9}vCP?6#!gKxOocea@H)f^0wn<7hk9^s` z?sOGmkX_4gU2ScglN?SWBg(zg1#;aNDrcH&o3z3;jUqZ|VB@)umU`~Nq|Df1{7>?K zaJ`w5%Wup9OoM!0S z59DSUin;w7F(rtAwka)65eP8Axv7zN21A?F)O5^(z9}9_YzcbP+AX2g>AjkQE*b|J zqr6f_IY(`u>h%y$!Ga1Mo4_QCMDB_c3C~2~jxtbVt_+?U(927wmx5)^NKIn~sh>}^ z3YLumwIC(%dy$7~Q#7nicfi8A;E<3$j3@(mkl6uI-6ixjSplM@1DF#-=aNqDnlNsy zzA9pOIM;j+4sD?3Z~>HhOCmI^3nn`>fVQD^KLRv%GTJ;FJ37D?KB_)-5(x}4Miq=F zn%Q9)w#M7rJM0TJ`7+qcyO;@+pt|31#dYlvsMs*&rkg<2dNGH8tZaHS%-!U*HD@IM z(+gAZNRUZgL_Pfsu31k{k6>*Rlj33tKsAWOc$B^C@?~3O9w;Sd{`{%NP&P;*x5y^% zIMKjPNq;DHqu%D0l;vXhPjFxOkByHnV#QkOt?&fnM_xK74D7N>oq>lrc9-qI!AC#c zOV84c$(n%pqQH2$p8{B~r1xW`jy0S#@SLlsDkRLGf)DHeg6NMaIxKe`9OYg*F0mMn;u(d+HR#w~U0qqHxt8$jq+Wmd8S%W|n96}^X>6MEAuR_41O#I0 zknt2$+ZwTWY+o_-Aeu?f8tHvdeT=9G$kt-#k5?60^vZ#nTG-hU!&f;8P!<2XBeAhfDSAYe&QN8sDt4!8tob0n{ZOszyr~a#3A3%2YaIy%xG+HT;ym2 z_ljKNfX0-={!Md3R&qxFf+RwGARv14qelzeKR1Z&KF(!oh_~h3kg6%LlqsajX;QGa z<>9e`j1n9R0GGhw50~&ZujF&hatG)d=XB6u-F5~VPa*UxEFcX~GFJvH{5cMX)6R?3 z;_2U6aZTA!+E6s3k-f1IDfMXlWA<$>7(*n#)rl08Yu4yzt?F!Q8UBg5xR~OHp-7a# z@qs$RuL5&#SH5{D-`IP~4V@);TGnD`1Pr)EaAM0~KtYF(pKBl4l=0tBzREcqYZ+yB zGz~RBz5qpERZ2Jmfhr*4si0Eh*y>o#pn zj>GP$073oxW8v>Xc#y06b#-eY7gmS^J=tuM^Ex}dGGaXX_U&V-lMt>FV&Mdnk)53# zEa&FQxB)~WG*bh2Z!;}0y>6@WEG60X*T_4p5s39Fz>GQ?$Cm;g9-Ep9E-ycqni7wk zka6tkh4#lH+3+QE^YcxS{DYrAS3(JXX|(_&1$mB;oE$rf7wXyQi^0Kyn8ued>yY~= zXG|#)WIYg)*p7rdcaHZt3MOZAqv|5aJ|Lz6%-DiIx(eCC1@oY-sw76$biAs16*I&z!?dA&c>z)Zy*uohZZ}KLNdm^Mf zQiN$k*T#Va1wG;pY&3$tEACfQTSze!OM=0G^aiWgz5^Z|`jgx0#BbITf5qkl85wB% za2joSf`XeW{;?Mo1IMQHl}{2gJQuU@?X z#9xaqBwZJ837Cxm=>y&NnCL5~Mo{pRt@nur2KtaVtek`cHu$mEFemXFJe1Rk8-*Qg za*sb{DKTe3m?aDZ-=!B;@Z&@uvR>KGghXA#6_NI9*yLrJcTF-QB0yY!<;oR75VT~`fBxD*=q)aGl{pep*P(`>A7}|xNonaV`7*PhB)=X&!o^C9XCQRwC#2ot z514pOEaAvcDU zoKK>(%qJYagX-+B?_t3GiTcK&$PA12SwF)N6+kt{*ocFN7S3G6i!^uUcmE0c-m7BF z4TGkpCTJ~kj>0kQ8!h=95NC1i^2x`6p`|k_B;&c3AVm>G2!+}v1H0IO{FeYiVPxOK z$)2p8f;14&IyV7>w;nCsfaB4E7S}6RuT~Y2eO*uXm8zX#m<$!lzn~EfF+viw89q=k z(pR+T88MGg2kfP=urRBDKom9r*1a6gU+ns2ay}v`^v@Z=ES_47&$~!i9<=A{*CkO$ zA$|<5v>?ipw&k7ftpiA(IkgrgAi~Qi6f7g zahC))wuI`n-XR$%Dj?CVu7oU(&M!GzTyrI0VBKg6KD!3sND`V70g&ixCQ+egSczFH z3U2+u;w;a@0E(0+E1d;L9|8q*Um^ev^EAMGtQ7Z`AjxTXhMV+Q_6n5cl5y+ z9O4e}eR$b8RyYiVxd&uN)ts0agZjRN-Q3}IgGT#*B^L#yD9xdSUxz1p?D_5Lj2on0 z;DACQ5nPXXfeMg)3Hh7Pf(6$^_ekH+5EBT$pZhbXN4rXb@QMWXBEyr&PQOr%(}Dtt zHWY;~SB16)eHk;DcOnI}H$$X71C)gj3MYh>eY(0DmX=8~ML@-QutPOCT`RGM=(_5| zUOa}v3{Zurzmp%J7;8*7e(e2&p8|4u1xa)~JgSMT3SHKB58hGMFYofzO4aYf)Aph; z))T3QY(!Yh8tzQNV~|;nXVu8}@2Qd2dZGt!g7KVJy;*g{uzLw`Oq{b zD4#2>UzdpHzRH>LfpLg7Ng{z@4XFq*Yc<=DOP53t_5VlkWnc{jT4&iAS!A{?S%)Q; z08kPXR2ec+@E%={LNf}RU7H1-iYLCCavTmXxbOR8vND&WUnEQW9S+t9QU$2Ir zoq-Ydff?ky1>bi~(Tp2VP!+bM00YNtY-|WOv7DK?2C}NuNMk!(8^(ZbQ&U%O539OE zqe+CplG(14xlaVHgpVQZ>s|?B;t~?U!0=htD+J=)3keERz%j%q8ebpjF6V{wehwHO zQ*Y)NJifeoPUNa79^ZcYqFNomxEUx0gHU>58=pso>}4X$j01M@L$ON=q&Qb?AdM=m zhTYS|106 z2bKC9uUK&UyBX*N3s@CFP{>yC;|wk($zBrH#MRw>4Y8`r0>eLN-J|d)-)t_?GfHMZhU6KqoT> zt~nyIka$l11l455fJq}##RAM+f((i?U~YUF`Z~uT59`BKbr+D3q5{S+4aYF^{hJig zhD|g&aQ=&Y3_S^~g{fkBUY9yyo4tt5npRfH8->>*ZLu*h^s93{a=3=RPoJQ&gDX`9 zmkeL7U$=Px%x*0PF6ZOoHE3tGh7`PnaT5X&W0KLayMA?A8<*IkOh$xu!_>@s_wNhu z+=+3Uo{^?oRHp6BI7jQ?%vV|`wmqdIvBMGcmx$jR^3kyNq zG3N418aN)9yaIO_L3w!&G!Tc}xg&sJp5s4%e}l9%8^EAv81Zx@<$?!f(vN+{lNCPS zglIA#s+*`?S^6^!s_>zcO#Y=>b5!FqQ`aOq6 zFU(_(fPygW=fzz%4ioK7gx{>I-OWaTm4&26xe8xC0WvJY}-bt3mme~)oy z+hKrHKY9fAUS!^L=+Kp!B1n}L6cvqU<}fZ7`V5{0Tpb0Z@&cB60CTwNP$YOyp@_^K zFyJdJD5!*Rkxf8A(m&UwrvjP-5tJCBmNM|5oJTSkPy|%B!VorH*B<%!WF7Rb+kTq? zKQ3uT7S07ICm5|Hd=M4`EUiXxq5)X9zzuQ|GQ6RH9Es%7q{xATA_z4L{E5?Ih;4)A zViYMr*tG|C2C^|sJkHTW&&*a{d#9d{Qm6pk0_icWLrhL9xeV;I8+BEj<3+xPxoI~@wP_lCD)jGddfj;5 z-P5xM69g}UXA5mTS@T&767ebDa}l@mI)=#*Ks2+) z&HDljDLJ0Cvgn+WK9YXuCHKH$Ns)*v&kTl8G1#0KA>}Ejh-cC~#;9!6o!AX?-L`ET z^%7*m;HByZh)2S+RHFK#{D&tRbQ^@zBl!%qWBKaU+yDG-a9`dL86F;-mL>{}$zk3% zWY@El3-7u*+8uCDngJWqS6snkg>UDQvu7nVWmsZ7mWz>uRvT%A_GJ|02Ky6g+OSu! z;KcyjL25x8K!NCO+nEEv@=86w3Hw(}-4TaH@S>JPF%E*{mfsc>A&fzlpNQ5LX-w=S zc{q%tQ#dy(hox`WqAxDST3%LmxAj|%Bb;iipArC;xj5iRfY+`cvo^v6WbUVP6Dx1~ z4s9lZNJ{Fp)fXxxd-NDOGKoUx|*klu70S17RDicPrA2BXy-UFt~s6&K1v6 zth|9^Pyzw&U|G@O5trS{{^~zWIFWfd2_a=*hTD!AsSQ644x#Y5Gcy*dA5&?nk)jZd zRse?naqf_0W0T)SoWP4@P6?AhRDBjm+x0a!i^$5Zg_?;yY$v7vYia>75~BM^a27wX zdy7&P7us!XD{xIFddANd>Oe1m3{S)50l_fVf_y2mV+y1jB;l3!?!>=8A z0_fkk7rCUjh1LgETEl_QUFB!D6B=+r0it@{l$^}VZ|#jk^78Vu`o!dZZdT&id|>s~ zyfaa%Nh)Y1)RN{~vt}^>>I1PdOF^`8?e^bwL&9|N*|TQ}pRewG%Dmi{1GF7!K_b0< z=*CDl{vv{-6+xo4sX4NjirFD?^T)1>usk&g-gq3m3j#Bi%wR4df150l7bV{*3I&@3 zfxe07_moSQG((#F8oknVw6vt3C>z-K8kC-em{;PTOtEY%{d2OsP-j&lTW={p>y6o`i*bdsaqQ;I8-ncGwM~J$cI|4| zr3-Bid=V`?oL!Sao@W(1Q%L zndEgJp_*P)`Tce$^$PIivGMUrcrfb%N5eGkD+j36xB%|C(pC;8_1JzfTvIYayIW$b zQv1ik_@PE?cQ-!^3kx+RWAM>I>EgN*_V$~gt;s4{EoxC(Y=25IH3`BEI7cP+{uO@a7rpm!9*GWt_N|Bj+E=vba)Vd7=M4IAz? zZlj`%mD{;Eqs9I;w0AMz^}<&Y;CbAyR^(xAN)qO_$d4u;xsB|`8r#uX;vq`fu;6K| zkx!vEK9JL_16<|Omb4-iv+_i5A#2KT74Dyz;6ZF;*4VFr=gS#O_{Zi~ zL6SqEK$0Ng&6j>GPZQT~gP|sE2*0EO3*o2#hG;Fm0e>WZ`t}wjeQwBKIIrX0Dh}uC z`n)6+NLCLcHIOBCpDgeCBoTMM^ntEdFNBR9Dcf#Obe&Oj{>Asjg*he!I4=p{LSEbT)~ z9sBjG7WGZ^l`Dt7bRbdumd_3Ch$#-+5(qH^!NXY-#rXJm#&`)5fPBm>2EVMDl+cAVShwojF`9^Ty(Bp6dq8WMo2vgz^l(%_Wa zOVBF42n-Tsc1u87ziANgcJfwfTcsxSctt~`f$e- z0dR#^4$wa@0|by2sCc5~0vi3Z5noI1gs~>yNx(@puOZ}-6iT?j?qmHM410)G0!UED zv@JS-SY-mVJ=&M31WY81}wkb3QcAiQ=E8#4#KNs8B(r=ge{g$DaoZ#g_ zKEIU?U8LO(_YIh)* z0cKe5wC^q}p~Hdn$IweW3vhBALwqfvy9M0oOKvN(fA?TxxBs701V+>2%b)*Q{N!Jv znv3@!qJ31uK~Ob=OxW-XCe90(vJT))5V?()P$h=T;^xs=NB>7uQdZGbiFZ+e!#!2h zgzjTPd?lK1GB<2v52PF(iKQm+^V4%2D? z&a41ZQM6Ux0Rl}|`O6dQBU*^z0mnh# zCp+pGnbGd@FpP)e1m>(0_}`6q|3hT0*m3rk1iG$5;Hr`UV}f3-Lba0`sa{072NApz zb_eidgrkasgBb4IA*3rYeKPR7jSU%-Hhq)tVeJ2c1u4u>bi#*8p-lzdGD{$+DER6H zW%i|G<-Vp<2|6hI+)C<@9lQRWJ2TEYs|+{8hHS^`{5#zH6?%Lr43w8%My*3o4FW9F zhf0_dh|%3kgBa;uj(y+0nWlK)^Ekj_*PyNsBPAnJXD1Z{b$t9SMK6ccD4csDUfr5l!yg@v#7gb0dU?USJVQkOYrjtn=PcRLGYJ%nqa^xj#R z6NOeNAN}X(8f-HfVH^g?!v!RVpsTn;XE{b1+$5(%{t&&6t;974RoHm_L7$lMq3NBm<%OXmJUs z450g2MTGs}bHD|sMsA4h@&7|QOHE4LH{L$?%M|Eq!A=P*Yg|s-A{vdB-PF?~fGPq7 zb0q?e6hs^7cGnm(F)oI^ZenL5SP!gYpO%(oG@J=%CH=cLU;%K;ga9l}6S`Nxe4r0g zBTsN3Jl7FW8jGI{>zo0!MLIKuh4<5ak&YRXQjD~eIx}J8H`Su~_2ZN6%71696Lxy* z4%u^J_*FP!kQFu&N{vkt5;Z{0#xQB3&n4hbeA_sJSad;&_m7Ich9X{bup??Z-MDQk z-}}cgT&va(l8eAF&r^~R7i7-pKy(}eNd#K%s9ti!RXc%vJTX(Q)=XaF>jHpgH6)C` zMn8rv;JzIK*Q05AITEv}?;qCT_}@^pDnXw}G?)}jxx-fw91(X4F_o2bbkFg&3t&$h0rL%G9thaiTtD3MF7`}Aqu@lj0ZYf+0?X(fsq+%MF!Hwon?0x z_z9XSL-FaP&3pIUSWstMIu?!qyW~skUkhg0A*a6|@gW{z(WnJVwK2%A`Vbv7H8dDW z(iKH!=U=Y_0t2GX(2iJ7$f2@ ztJ}eF8vM)+4L5LJP2F7qmLhht$f2EdVp5-P%3v?WeCPK+99xZiUwOmz;3;zXAR9TP! literal 0 HcmV?d00001 diff --git "a/\343\200\22000\343\200\221demos_04/images/image-20210101122150218.png" "b/\343\200\22000\343\200\221demos_04/images/image-20210101122150218.png" new file mode 100644 index 0000000000000000000000000000000000000000..bbaa81da3c35754034ff6139f3659ebfae653b8e GIT binary patch literal 5116 zcmZ`-Wmr^QyB1&Si4mk>bVzAI0hN%DkVXbXhHjCeXJ`?WkWT3sN~BX?Bt(=L zVuo&zmi)%|yyu+jyUzK3?0xMY&$ZWD&$`zgD?&$04NP~94gdgvHPlsg0RS>_(swcq z73uB3&)fn4T<+9RRo3@O+n9Rl2pvtQ+IC*P`O7w*?Y7v4Q}y#&@XDBe^oAbSU$v=6 zKN|15oxXnM`b>boG7dOaUG_PCn8r9M z$-Lo_1OU*ksJ{)*<(;ak&1sBsT#>sgbQ2n_bAYD8uCxalaV ze!62|$&1CTpthD-ZCWn4>}mazNog2NNO*t9%ke_Crl!Wy#Rc&FJEFn+B7?Y8R#vur z$Ac!0L%sv?G_(D125s@9=SdEVAno_m$x?Jx%>qMR%+%9O&%%(v!_!Q?y_W6e!%GVQ zDN+RHHL|K{d0BZM|C(699r+j!TgZB!P1@G%KkZ0zu~Hs*kx*Cm2KDv1iaAthk{ZTn zBxqmnJkw#<`WxH`x&D`s!+5u&pC8rX)=Y&)h!D5$-DSMft| zu#0|XdQ;3wtrlzTbE)B|om`S(BLUwNlZH`(}B&;eiX+)E$;ycFsY70C++lk0a4 za+BYi|K#K|5QBuDVh7OJ61UYhFOA#fU#9|R4{R#v0|#SR01-ZqEX1lSlUF1>Pq@W2 zulmV~`ZD5((sJ2n_IhPzi-x5!4j$7w>}ET#a?yv(TNLr?lAgLsLJnpa2(e#^y2^8{ zu8|oh#-i9O66~&y~J@8!{Ii)?vgh zIZF!=***evS(?X7-tX-5#eeuqfr0kfcRLwelu7eTBzJ4*(8F%@`8nEnjhQ)9`wijE zGt*`t4#Q!0{TqdMk55O!YmuWP$itwp7**YGw$OT~sg8x;gDzW}Q;iVB9DQJ|gMNY$ zJ82jv&cNYjg`_4d(2n){t}(Yqod_XU{ntKv)`{$OAQJ_E@&P-IkDP72&Bqw#&CcFF zUPErT#7MEyv(*y3XC@*FT?jjth&)I1@s?R~vt#P#Q0x$-pQpwaSrekt@Zy4~H7CWU zZx94aGEy9ii-*wX>}GPo^8M5wkO!jc6$;;h4sykGTD*rZ1uvTIl_x z3f9wAy>e3X)RrkJr&{^VL9trAyBU4Ws<8JJ?ld>9bDX(ux|E^_4d(v(2JOSokmMYJ z0W7)}twXn05OF8+E29wuHV`vPF+BfBPZLUY$rXvrcOZ>GuEtWMnR$f^mOZ{$qFsVM zlF#s4EvoL5Z}6^I<)g%^gX#qA={Kh&njKGr^wSf_Re7%9uZRoH&J?wcrd@EuZjgTP z+CtD>H&8_@2l?zhsY3N_^%VJP5 z6>*p4f>oCn0aKAU?w*OVvI=sgCtJd@x>_-dtxvpkM|%5AqRm;g=mYP?d?2rr5#V}& zts-@3>wp}0c?k{`IW4PxC3cc6XeF$w8&{k7VO@5DDc-YgC0jOZ8{1`EUYL4K~METj9U|qeY3vY^b9c7%| zjV>E&kc{K4$;FB6ORvZWwlGwR+sRdNQ8s?V_(p4|b&kE<#dgF^w_ApoXg))e8XJgH zi7xxqHb>=k7;U{iPaDk%Y}d0CFrc+LFcBQl1F8@!6F*4fK{66Cpj+jb5tnKpS*guI z^T_sNPHRXrneFW5$q^Q#0$;Gf5stvsUq*;0l579mi4-lYcG`7QY zq<)4WmbkqkR`dGmXswHaKpwKRUA~FLg3njrP;1i%+0Jwf@y+7*==&Y9t^#qKisia5 zupgeJ=42Vu-nt1}s@~TiBk}LQZ$1_98Y688Wehg7J@~$AhvolZBz5*Zd95ygoAmE_ z+D-p6R=LvyWs*{iG}WEXX`>IEa-l^1mj`F$Vy89CpX3zIGVzBtO=HLIa=ts4yjvrr z8YA>oG=4;ls+}`C*G_lO7L#)^ry{D+z@O(!LUN_UQ{nCwI2JquRk)R;HwD$tT&v!GO=Du}qZI5E&ig)~q zrZr@nR$3dzR8uYwm;&y-)5v>UwY-@l|p@U!WOGVo7#K3hTaw!*>10FYs}Y!#j%#Mv@Zjh#Hxp z7zJCpxy#k&Tz=Fc*spm9+$ZwGk^cBL*F9gJ4-vB!pHj{uMIOxtfAO+o-Dn#0vSP9s zrK6WAbL`Xz<#Z!I0K)@B`H8=86rsD-bpfvmb%VNW__Qqtla^c-*9-jyxr_W<;qz)9 z3W&mj-r0|5V`~%y_gqRP7{_-DDU#~_UYp*)G>O|Dg?WF8N(T25X*cTG9ZQQJf7KLQ zi>s9^{^qOV>hUG2p;0&mkFnm0;|q=7J3&le4rFR^S~f^=a*xnivfldEzw)r5{0iDx za9r&B1OK{y^&^hdf^TF!YbA`QuAbxDlcMO~7LDuK+JBbj)f!Z%{!@oPeRoBZUcimF z2>`QzU32a|&v={$Spa#1s6(sdp}#H#viSG|tl?rDm~8Dr+xYOL-8w5j&PWfY7?lbA zttAg7sFsP2LvT~qOMP9+6I+wgE<1c^YC#rRPtH$l#<-%dK8RDD93U#%=rZ_MI~ied z&u%OMab%d@u8^y+?nV5x_|98K$o=i9 z9^}LhDZt#Rl4b&!OfK|_kt_x4Kt}J_0zZ#7O*$%n^ddr5qO-gUpcKS3Gk>+q4OLS~ z|5JZx(eWOBDX6zOWxu$B@MkgQS!DaP@PNH-?(>GmXjDBK^XCycY$+cAs+G?*=Bz4r zPx!~x&uu)4S8?b#OAl&3zM%KMW^?*Sj&qNWNhid^hap`X>}>W1#7p+dT;u7@!;YVK zAE4%3h9(t~v-^#?TVmg`2|BntofwXiX@7uL_#!s&QpqwnBgbZkbwh!C1-#=vf3eq) zzRJM;qeIqB0N{N0eL9vf9%-TdULOLgwef++A`n7Y5>hEZRy;4tZ%VAIr*F7_i87LR zVYlJ?o&=uv$8(V+sLDsN2RCZSYN}Qc~|2>ItRVK1UFLzl*klj~uRjndIXcXvl z<4zm`ks_Hmfw9)*ql~;HX*jm%7@xA+MncbZX!rS^`-`MPm*xfjJAbVoA`kjX-7-iqk8Q+f|yuirBLE= z_fxc@apwKYw9)c4bcu9uB>dLnv#KnEK(ZdygW<$KKH<^d>YhPz5>}O%f8+K4rGImy zH6@Ojxa_V?!VilU^X;WSenadyzo0945iYhtYn_Cr=JhIEK2(o-bv;VmgWc`U=Z7zY zx3`K;?;D~hdR_gF0RAgaSLYROx*xTS(*sjg^h=T#il4ZkaKsa&HmP2zEb^+(0>MO? zdBUz_3;Kf^nA(pTpS^oG{#Up4O|$g+n=rv>%KpWS=|-?f#_1RI%*=(#kGjV(go&IA z8R|V-%({bjV!v^@CEPV-+eQda_80Xzi$fpZV@0aSb@$B^Boewno>_ET*j}>!)k&-- zSPH$zzP*PlqUd(S-m3gfn7B&=qaK0QIYs|N^vlyCd1oswil|9 z@-kaOMG6XgIz2&&NrUJ|G0d47(3X3Cihp^>W~MJ?@@vi`4CnhvEqQXZ5ZJ$<*izX& zD>aPG#=X5(!&3|r$I-izwr#3Gm*ovlHWt0U0|h5-#wUXnB|oJ*P@caNeDan`LC@3W z^NQsU$So>KR?`#C(JTC}T(5UcNZBcEIJPQb>ewAArU!=xIC{yxy>y-mUMnL_Qn2?C z*?auLuh}0IJ)az;xw{&MBuuoXAu<%0w0~?O)zXmT=C8Tlqx+HrqjC*{@1>ZSJA#q! zBs<#uC;goUOI}WqiKEfkm3=(&LUtY`C!nO-L16z6{=#QGoZ^;!@&`DJIL2xS{@9fS z7n+dpqIarC@|N`d+-%~eCVzN$7I&Ig=%J&b)^UUo3BC7y-8+_f;V_W0pNv#t)-u2i z!Z0Pj+A0mm{Y=Vgt>6TRTmPM=KVIOr|8XCm6a4A5vHm2onB)Zn!WW640N zdvqST+9@4Jp{4b?-f*n?K#(bIQcduWebIG@#}Xw+QYYcr2{qrYaADRugE%M|M9|cG z3rALT5BKHWRdZ8`DB-^C&cP`x@S1#zP1YACHkr>x#fMjvPLUTU8ULJQC`oC>)g{pjTe(!bLM1_@8C?#Y3JG6h+=*h5@-KEMN+)qlLs35w z+)S2#-`%UWjWF*|YUXR3;P9a1&{Oi)Z++U^tlB8zpx6Lo|FMO?^&)A8CL{q^t@o!* z6yqZH4T%n6r|#TYS&yaLuX?h{y_efo{BfL)d$AS{rQ~Sr|?WGS(#Kwy~=~_APT(?{x z{q542`_H=mc+~$4sq3l#2U1w9awm%7cl}CskL3{j2RJ1Bq0rv`hxMnM_7Mh@-xDH3 z8Ko{i4xl$0Vh>dA%zxhPK=MY>P#7_mC^7DX78MwZ>1?;f*EBP-i9Z5&W)X+qvVZQcZL zjTjp%(b#v{UVXlqpliq>xIxhOkZ`lUOlvuzOjTKX5>WQCHQNJ;@mil3oPde3CJ#e* z=ZKM!B9@Ztz3Q0#Y`&22tE6dIlREDB#ZuAl%vHGmDw+tS0UmZCYnD~9EZ-&Y7W7f(Fueyf*d1sVURiWdfRPtUS7DQpj69oI zdk<>v2g%DD58k#P`zlG=jd!=~$2i!;*Fo%VO#fusG!@)OB;*>h4Q|{mBThZXel4Ey z?||d}-(mOv%RA!TVYP#;W05G?I%viTo?em5%Z?(h<)luz43^_?f?izf8Nyq5*OPAb O02=qSRLk#L2LB5pX}8`0 literal 0 HcmV?d00001 From 9ebab61b0998b00e357968f7ee1e283e6e18fd30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=9B=BD=E8=B1=AA?= <847818218@qq.com> Date: Fri, 1 Jan 2021 20:11:17 +0800 Subject: [PATCH 12/12] =?UTF-8?q?Completing=EF=BC=9Aspringboot-epidemic?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20-=20=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/zgh/util/PathUtil.java" | 32 +++++++++++++++++++ .../README.md" | 17 +++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 "\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/PathUtil.java" diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/PathUtil.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/PathUtil.java" new file mode 100644 index 0000000..bf66678 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/java/com/zgh/util/PathUtil.java" @@ -0,0 +1,32 @@ +package com.zgh.util; + +import java.io.File; + +public class PathUtil { + + public static void main(String[] args) { + + // 类加载路径的不同使用方式 + System.out.println(ClassLoader.getSystemResource("")); + + System.out.println(Thread.currentThread().getContextClassLoader().getResource("")); + + System.out.println(PathUtil.class.getResource("/")); + + System.out.println(PathUtil.class.getResource("")); + + System.out.println("======================="); + + // 当前项目根路径 + String path = System.getProperty("user.dir"); + System.out.println(path); + + System.out.println(new File("").getAbsolutePath()); + + // 当前所在磁盘 + System.out.println(new File("/").getAbsolutePath()); + + + // '/' 代表根目录 './' 代表当前目录 '../' 代表上级目录 + } +} diff --git "a/\343\200\22000\343\200\221demos_04/README.md" "b/\343\200\22000\343\200\221demos_04/README.md" index 08580bb..cab2d1c 100644 --- "a/\343\200\22000\343\200\221demos_04/README.md" +++ "b/\343\200\22000\343\200\221demos_04/README.md" @@ -344,4 +344,19 @@ cron 表达式(有七个字段:秒 分 时 日 月 周 年) 使用电子邮件协议 SMTP = Simple Mail Transfer Protocol 简单邮件传输协议 -## 七、多页面合并 \ No newline at end of file +## 七、cookie 与 session + +- cookie 在客户端,session 在服务端 +- cookie不安全,可以模拟,session相对安全,往往保存在缓存中 +- cookie有不可跨域名的特性,有大小限制,最大 4k + +**分布式 session** + +同一个服务 部署到多台机器 机器A 机器B 机器C ... + +当登录请求分发到机器A后,如何让 session 在机器B和机器C中也生效 + +1. 多个机器处理session时,使用统一的存储 **redis** +2. 当用户第一次请求,访问了机器A,后面所有的请求都访问机器A —— 粘性session + 缺点 会导致负载不均衡,因为根据ip绑定,可能造成单个机器负载过重 +3. session复制,当任一机器的 session 发生变化,广播给其他所有节点,以保证同步 \ No newline at end of file