echarts.min.js 995 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing,
  13. * software distributed under the License is distributed on an
  14. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. * KIND, either express or implied. See the License for the
  16. * specific language governing permissions and limitations
  17. * under the License.
  18. */
  19. ! 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";
  20. function e(t, e) { "createCanvas" === t && (q_ = null), j_[t] = e }
  21. function i(t) { if (null == t || "object" != typeof t) return t; var e = t,
  22. n = G_.call(t); if ("[object Array]" === n) { if (!O(t)) { e = []; for (var o = 0, a = t.length; o < a; o++) e[o] = i(t[o]) } } else if (V_[n]) { if (!O(t)) { var r = t.constructor; if (t.constructor.from) e = r.from(t);
  23. else { e = new r(t.length); for (var o = 0, a = t.length; o < a; o++) e[o] = i(t[o]) } } } else if (!B_[n] && !O(t) && !M(t)) { e = {}; for (var s in t) t.hasOwnProperty(s) && (e[s] = i(t[s])) } return e }
  24. function n(t, e, o) { if (!w(e) || !w(t)) return o ? i(e) : t; for (var a in e)
  25. if (e.hasOwnProperty(a)) { var r = t[a],
  26. s = e[a];!w(s) || !w(r) || y(s) || y(r) || M(s) || M(r) || b(s) || b(r) || O(s) || O(r) ? !o && a in t || (t[a] = i(e[a], !0)) : n(r, s, o) }
  27. return t }
  28. function o(t, e) { for (var i = t[0], o = 1, a = t.length; o < a; o++) i = n(i, t[o], e); return i }
  29. function a(t, e) { for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); return t }
  30. function r(t, e, i) { for (var n in e) e.hasOwnProperty(n) && (i ? null != e[n] : null == t[n]) && (t[n] = e[n]); return t }
  31. function s() { return q_ || (q_ = Y_().getContext("2d")), q_ }
  32. function l(t, e) { if (t) { if (t.indexOf) return t.indexOf(e); for (var i = 0, n = t.length; i < n; i++)
  33. if (t[i] === e) return i } return -1 }
  34. function u(t, e) {
  35. function i() {} var n = t.prototype;
  36. i.prototype = e.prototype, t.prototype = new i; for (var o in n) t.prototype[o] = n[o];
  37. t.prototype.constructor = t, t.superClass = e }
  38. function h(t, e, i) { r(t = "prototype" in t ? t.prototype : t, e = "prototype" in e ? e.prototype : e, i) }
  39. function c(t) { if (t) return "string" != typeof t && "number" == typeof t.length }
  40. function d(t, e, i) { if (t && e)
  41. if (t.forEach && t.forEach === W_) t.forEach(e, i);
  42. else if (t.length === +t.length)
  43. for (var n = 0, o = t.length; n < o; n++) e.call(i, t[n], n, t);
  44. else
  45. for (var a in t) t.hasOwnProperty(a) && e.call(i, t[a], a, t) }
  46. function f(t, e, i) { if (t && e) { if (t.map && t.map === U_) return t.map(e, i); for (var n = [], o = 0, a = t.length; o < a; o++) n.push(e.call(i, t[o], o, t)); return n } }
  47. function p(t, e, i, n) { if (t && e) { if (t.reduce && t.reduce === X_) return t.reduce(e, i, n); for (var o = 0, a = t.length; o < a; o++) i = e.call(n, i, t[o], o, t); return i } }
  48. function g(t, e, i) { if (t && e) { if (t.filter && t.filter === H_) return t.filter(e, i); for (var n = [], o = 0, a = t.length; o < a; o++) e.call(i, t[o], o, t) && n.push(t[o]); return n } }
  49. function m(t, e) { var i = Z_.call(arguments, 2); return function() { return t.apply(e, i.concat(Z_.call(arguments))) } }
  50. function v(t) { var e = Z_.call(arguments, 1); return function() { return t.apply(this, e.concat(Z_.call(arguments))) } }
  51. function y(t) { return "[object Array]" === G_.call(t) }
  52. function x(t) { return "function" == typeof t }
  53. function _(t) { return "[object String]" === G_.call(t) }
  54. function w(t) { var e = typeof t; return "function" === e || !!t && "object" == e }
  55. function b(t) { return !!B_[G_.call(t)] }
  56. function S(t) { return !!V_[G_.call(t)] }
  57. function M(t) { return "object" == typeof t && "number" == typeof t.nodeType && "object" == typeof t.ownerDocument }
  58. function I(t) { return t !== t }
  59. function T(t) { for (var e = 0, i = arguments.length; e < i; e++)
  60. if (null != arguments[e]) return arguments[e] }
  61. function A(t, e) { return null != t ? t : e }
  62. function D(t, e, i) { return null != t ? t : null != e ? e : i }
  63. function C() { return Function.call.apply(Z_, arguments) }
  64. function L(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 }
  65. function k(t, e) { if (!t) throw new Error(e) }
  66. function P(t) { return null == t ? null : "function" == typeof t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") }
  67. function N(t) { t[K_] = !0 }
  68. function O(t) { return t[K_] }
  69. function E(t) {
  70. function e(t, e) { i ? n.set(t, e) : n.set(e, t) } var i = y(t);
  71. this.data = {}; var n = this;
  72. t instanceof E ? t.each(e) : t && d(t, e) }
  73. function R(t) { return new E(t) }
  74. function z(t, e) { for (var i = new t.constructor(t.length + e.length), n = 0; n < t.length; n++) i[n] = t[n]; var o = t.length; for (n = 0; n < e.length; n++) i[n + o] = e[n]; return i }
  75. function B() {}
  76. function V(t, e) { var i = new J_(2); return null == t && (t = 0), null == e && (e = 0), i[0] = t, i[1] = e, i }
  77. function G(t, e) { return t[0] = e[0], t[1] = e[1], t }
  78. function F(t) { var e = new J_(2); return e[0] = t[0], e[1] = t[1], e }
  79. function W(t, e, i) { return t[0] = e, t[1] = i, t }
  80. function H(t, e, i) { return t[0] = e[0] + i[0], t[1] = e[1] + i[1], t }
  81. function Z(t, e, i, n) { return t[0] = e[0] + i[0] * n, t[1] = e[1] + i[1] * n, t }
  82. function U(t, e, i) { return t[0] = e[0] - i[0], t[1] = e[1] - i[1], t }
  83. function X(t) { return Math.sqrt(j(t)) }
  84. function j(t) { return t[0] * t[0] + t[1] * t[1] }
  85. function Y(t, e, i) { return t[0] = e[0] * i, t[1] = e[1] * i, t }
  86. function q(t, e) { var i = X(e); return 0 === i ? (t[0] = 0, t[1] = 0) : (t[0] = e[0] / i, t[1] = e[1] / i), t }
  87. function K(t, e) { return Math.sqrt((t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1])) }
  88. function $(t, e) { return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]) }
  89. function J(t, e, i, n) { return t[0] = e[0] + n * (i[0] - e[0]), t[1] = e[1] + n * (i[1] - e[1]), t }
  90. function Q(t, e, i) { var n = e[0],
  91. o = e[1]; return t[0] = i[0] * n + i[2] * o + i[4], t[1] = i[1] * n + i[3] * o + i[5], t }
  92. function tt(t, e, i) { return t[0] = Math.min(e[0], i[0]), t[1] = Math.min(e[1], i[1]), t }
  93. function et(t, e, i) { return t[0] = Math.max(e[0], i[0]), t[1] = Math.max(e[1], i[1]), t }
  94. function it() { this.on("mousedown", this._dragStart, this), this.on("mousemove", this._drag, this), this.on("mouseup", this._dragEnd, this), this.on("globalout", this._dragEnd, this) }
  95. function nt(t, e) { return { target: t, topTarget: e && e.topTarget } }
  96. function ot(t, e) { var i = t._$eventProcessor; return null != e && i && i.normalizeQuery && (e = i.normalizeQuery(e)), e }
  97. function at(t) { return t.getBoundingClientRect ? t.getBoundingClientRect() : { left: 0, top: 0 } }
  98. function rt(t, e, i, n) { return i = i || {}, n || !z_.canvasSupported ? st(t, e, i) : z_.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) : st(t, e, i), i }
  99. function st(t, e, i) { var n = at(t);
  100. i.zrX = e.clientX - n.left, i.zrY = e.clientY - n.top }
  101. function lt(t, e, i) { if (null != (e = e || window.event).zrX) return e; var n = e.type; if (n && n.indexOf("touch") >= 0) { var o = "touchend" != n ? e.targetTouches[0] : e.changedTouches[0];
  102. o && rt(t, o, e, i) } else rt(t, e, e, i), e.zrDelta = e.wheelDelta ? e.wheelDelta / 120 : -(e.detail || 0) / 3; var a = e.button; return null == e.which && void 0 !== a && sw.test(e.type) && (e.which = 1 & a ? 1 : 2 & a ? 3 : 4 & a ? 2 : 0), e }
  103. function ut(t, e, i) { rw ? t.addEventListener(e, i) : t.attachEvent("on" + e, i) }
  104. function ht(t, e, i) { rw ? t.removeEventListener(e, i) : t.detachEvent("on" + e, i) }
  105. function ct(t) { return t.which > 1 }
  106. function dt(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: ft } }
  107. function ft(t) { lw(this.event) }
  108. function pt() {}
  109. function gt(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;
  110. o.silent && (n = !0), o = o.parent } return !n || uw } return !1 }
  111. function mt() { var t = new dw(6); return vt(t), t }
  112. function vt(t) { return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t }
  113. function yt(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 }
  114. function xt(t, e, i) { var n = e[0] * i[0] + e[2] * i[1],
  115. o = e[1] * i[0] + e[3] * i[1],
  116. a = e[0] * i[2] + e[2] * i[3],
  117. r = e[1] * i[2] + e[3] * i[3],
  118. s = e[0] * i[4] + e[2] * i[5] + e[4],
  119. 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 }
  120. function _t(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 }
  121. function wt(t, e, i) { var n = e[0],
  122. o = e[2],
  123. a = e[4],
  124. r = e[1],
  125. s = e[3],
  126. l = e[5],
  127. u = Math.sin(i),
  128. 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 }
  129. function bt(t, e, i) { var n = i[0],
  130. 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 }
  131. function St(t, e) { var i = e[0],
  132. n = e[2],
  133. o = e[4],
  134. a = e[1],
  135. r = e[3],
  136. s = e[5],
  137. 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 }
  138. function Mt(t) { var e = mt(); return yt(e, t), e }
  139. function It(t) { return t > gw || t < -gw }
  140. function Tt(t) { this._target = t.target, this._life = t.life || 1e3, this._delay = t.delay || 0, this._initialized = !1, this.loop = null != t.loop && t.loop, this.gap = t.gap || 0, this.easing = t.easing || "Linear", this.onframe = t.onframe, this.ondestroy = t.ondestroy, this.onrestart = t.onrestart, this._pausedTime = 0, this._paused = !1 }
  141. function At(t) { return (t = Math.round(t)) < 0 ? 0 : t > 255 ? 255 : t }
  142. function Dt(t) { return (t = Math.round(t)) < 0 ? 0 : t > 360 ? 360 : t }
  143. function Ct(t) { return t < 0 ? 0 : t > 1 ? 1 : t }
  144. function Lt(t) { return At(t.length && "%" === t.charAt(t.length - 1) ? parseFloat(t) / 100 * 255 : parseInt(t, 10)) }
  145. function kt(t) { return Ct(t.length && "%" === t.charAt(t.length - 1) ? parseFloat(t) / 100 : parseFloat(t)) }
  146. function Pt(t, e, i) { return i < 0 ? i += 1 : i > 1 && (i -= 1), 6 * i < 1 ? t + (e - t) * i * 6 : 2 * i < 1 ? e : 3 * i < 2 ? t + (e - t) * (2 / 3 - i) * 6 : t }
  147. function Nt(t, e, i) { return t + (e - t) * i }
  148. function Ot(t, e, i, n, o) { return t[0] = e, t[1] = i, t[2] = n, t[3] = o, t }
  149. function Et(t, e) { return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t }
  150. function Rt(t, e) { Cw && Et(Cw, e), Cw = Dw.put(t, Cw || e.slice()) }
  151. function zt(t, e) { if (t) { e = e || []; var i = Dw.get(t); if (i) return Et(e, i); var n = (t += "").replace(/ /g, "").toLowerCase(); if (n in Aw) return Et(e, Aw[n]), Rt(t, e), e; if ("#" !== n.charAt(0)) { var o = n.indexOf("("),
  152. a = n.indexOf(")"); if (-1 !== o && a + 1 === n.length) { var r = n.substr(0, o),
  153. s = n.substr(o + 1, a - (o + 1)).split(","),
  154. l = 1; switch (r) {
  155. case "rgba":
  156. if (4 !== s.length) return void Ot(e, 0, 0, 0, 1);
  157. l = kt(s.pop());
  158. case "rgb":
  159. return 3 !== s.length ? void Ot(e, 0, 0, 0, 1) : (Ot(e, Lt(s[0]), Lt(s[1]), Lt(s[2]), l), Rt(t, e), e);
  160. case "hsla":
  161. return 4 !== s.length ? void Ot(e, 0, 0, 0, 1) : (s[3] = kt(s[3]), Bt(s, e), Rt(t, e), e);
  162. case "hsl":
  163. return 3 !== s.length ? void Ot(e, 0, 0, 0, 1) : (Bt(s, e), Rt(t, e), e);
  164. default:
  165. return } }
  166. Ot(e, 0, 0, 0, 1) } else { if (4 === n.length) return (u = parseInt(n.substr(1), 16)) >= 0 && u <= 4095 ? (Ot(e, (3840 & u) >> 4 | (3840 & u) >> 8, 240 & u | (240 & u) >> 4, 15 & u | (15 & u) << 4, 1), Rt(t, e), e) : void Ot(e, 0, 0, 0, 1); if (7 === n.length) { var u = parseInt(n.substr(1), 16); return u >= 0 && u <= 16777215 ? (Ot(e, (16711680 & u) >> 16, (65280 & u) >> 8, 255 & u, 1), Rt(t, e), e) : void Ot(e, 0, 0, 0, 1) } } } }
  167. function Bt(t, e) { var i = (parseFloat(t[0]) % 360 + 360) % 360 / 360,
  168. n = kt(t[1]),
  169. o = kt(t[2]),
  170. a = o <= .5 ? o * (n + 1) : o + n - o * n,
  171. r = 2 * o - a; return e = e || [], Ot(e, At(255 * Pt(r, a, i + 1 / 3)), At(255 * Pt(r, a, i)), At(255 * Pt(r, a, i - 1 / 3)), 1), 4 === t.length && (e[3] = t[3]), e }
  172. function Vt(t) { if (t) { var e, i, n = t[0] / 255,
  173. o = t[1] / 255,
  174. a = t[2] / 255,
  175. r = Math.min(n, o, a),
  176. s = Math.max(n, o, a),
  177. l = s - r,
  178. u = (s + r) / 2; if (0 === l) e = 0, i = 0;
  179. else { i = u < .5 ? l / (s + r) : l / (2 - s - r); var h = ((s - n) / 6 + l / 2) / l,
  180. c = ((s - o) / 6 + l / 2) / l,
  181. d = ((s - a) / 6 + l / 2) / l;
  182. n === s ? e = d - c : o === s ? e = 1 / 3 + h - d : a === s && (e = 2 / 3 + c - h), e < 0 && (e += 1), e > 1 && (e -= 1) } var f = [360 * e, i, u]; return null != t[3] && f.push(t[3]), f } }
  183. function Gt(t, e) { var i = zt(t); if (i) { for (var n = 0; n < 3; n++) i[n] = e < 0 ? i[n] * (1 - e) | 0 : (255 - i[n]) * e + i[n] | 0, i[n] > 255 ? i[n] = 255 : t[n] < 0 && (i[n] = 0); return Xt(i, 4 === i.length ? "rgba" : "rgb") } }
  184. function Ft(t) { var e = zt(t); if (e) return ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2]).toString(16).slice(1) }
  185. function Wt(t, e, i) { if (e && e.length && t >= 0 && t <= 1) { i = i || []; var n = t * (e.length - 1),
  186. o = Math.floor(n),
  187. a = Math.ceil(n),
  188. r = e[o],
  189. s = e[a],
  190. l = n - o; return i[0] = At(Nt(r[0], s[0], l)), i[1] = At(Nt(r[1], s[1], l)), i[2] = At(Nt(r[2], s[2], l)), i[3] = Ct(Nt(r[3], s[3], l)), i } }
  191. function Ht(t, e, i) { if (e && e.length && t >= 0 && t <= 1) { var n = t * (e.length - 1),
  192. o = Math.floor(n),
  193. a = Math.ceil(n),
  194. r = zt(e[o]),
  195. s = zt(e[a]),
  196. l = n - o,
  197. u = Xt([At(Nt(r[0], s[0], l)), At(Nt(r[1], s[1], l)), At(Nt(r[2], s[2], l)), Ct(Nt(r[3], s[3], l))], "rgba"); return i ? { color: u, leftIndex: o, rightIndex: a, value: n } : u } }
  198. function Zt(t, e, i, n) { if (t = zt(t)) return t = Vt(t), null != e && (t[0] = Dt(e)), null != i && (t[1] = kt(i)), null != n && (t[2] = kt(n)), Xt(Bt(t), "rgba") }
  199. function Ut(t, e) { if ((t = zt(t)) && null != e) return t[3] = Ct(e), Xt(t, "rgba") }
  200. function Xt(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 + ")" } }
  201. function jt(t, e) { return t[e] }
  202. function Yt(t, e, i) { t[e] = i }
  203. function qt(t, e, i) { return (e - t) * i + t }
  204. function Kt(t, e, i) { return i > .5 ? e : t }
  205. function $t(t, e, i, n, o) { var a = t.length; if (1 == o)
  206. for (s = 0; s < a; s++) n[s] = qt(t[s], e[s], i);
  207. else
  208. for (var r = a && t[0].length, s = 0; s < a; s++)
  209. for (var l = 0; l < r; l++) n[s][l] = qt(t[s][l], e[s][l], i) }
  210. function Jt(t, e, i) { var n = t.length,
  211. o = e.length; if (n !== o)
  212. if (n > o) t.length = o;
  213. else
  214. for (r = n; r < o; r++) t.push(1 === i ? e[r] : Nw.call(e[r]));
  215. for (var a = t[0] && t[0].length, r = 0; r < t.length; r++)
  216. if (1 === i) isNaN(t[r]) && (t[r] = e[r]);
  217. else
  218. for (var s = 0; s < a; s++) isNaN(t[r][s]) && (t[r][s] = e[r][s]) }
  219. function Qt(t, e, i) { if (t === e) return !0; var n = t.length; if (n !== e.length) return !1; if (1 === i) { for (a = 0; a < n; a++)
  220. if (t[a] !== e[a]) return !1 } else
  221. for (var o = t[0].length, a = 0; a < n; a++)
  222. for (var r = 0; r < o; r++)
  223. if (t[a][r] !== e[a][r]) return !1; return !0 }
  224. function te(t, e, i, n, o, a, r, s, l) { var u = t.length; if (1 == l)
  225. for (c = 0; c < u; c++) s[c] = ee(t[c], e[c], i[c], n[c], o, a, r);
  226. else
  227. for (var h = t[0].length, c = 0; c < u; c++)
  228. for (var d = 0; d < h; d++) s[c][d] = ee(t[c][d], e[c][d], i[c][d], n[c][d], o, a, r) }
  229. function ee(t, e, i, n, o, a, r) { var s = .5 * (i - t),
  230. l = .5 * (n - e); return (2 * (e - i) + s + l) * r + (-3 * (e - i) - 2 * s - l) * a + s * o + e }
  231. function ie(t) { if (c(t)) { var e = t.length; if (c(t[0])) { for (var i = [], n = 0; n < e; n++) i.push(Nw.call(t[n])); return i } return Nw.call(t) } return t }
  232. function ne(t) { return t[0] = Math.floor(t[0]), t[1] = Math.floor(t[1]), t[2] = Math.floor(t[2]), "rgba(" + t.join(",") + ")" }
  233. function oe(t) { var e = t[t.length - 1].value; return c(e && e[0]) ? 2 : 1 }
  234. function ae(t, e, i, n, o, a) { var r = t._getter,
  235. s = t._setter,
  236. l = "spline" === e,
  237. u = n.length; if (u) { var h, d = c(n[0].value),
  238. f = !1,
  239. p = !1,
  240. g = d ? oe(n) : 0;
  241. n.sort(function(t, e) { return t.time - e.time }), h = n[u - 1].time; for (var m = [], v = [], y = n[0].value, x = !0, _ = 0; _ < u; _++) { m.push(n[_].time / h); var w = n[_].value; if (d && Qt(w, y, g) || !d && w === y || (x = !1), y = w, "string" == typeof w) { var b = zt(w);
  242. b ? (w = b, f = !0) : p = !0 }
  243. v.push(w) } if (a || !x) { for (var S = v[u - 1], _ = 0; _ < u - 1; _++) d ? Jt(v[_], S, g) : !isNaN(v[_]) || isNaN(S) || p || f || (v[_] = S);
  244. d && Jt(r(t._target, o), S, g); var M, I, T, A, D, C, L = 0,
  245. k = 0; if (f) var P = [0, 0, 0, 0]; var N = new Tt({ target: t._target, life: h, loop: t._loop, delay: t._delay, onframe: function(t, e) { var i; if (e < 0) i = 0;
  246. else if (e < k) { for (i = M = Math.min(L + 1, u - 1); i >= 0 && !(m[i] <= e); i--);
  247. i = Math.min(i, u - 2) } else { for (i = L; i < u && !(m[i] > e); i++);
  248. i = Math.min(i - 1, u - 2) }
  249. L = i, k = e; var n = m[i + 1] - m[i]; if (0 !== n)
  250. if (I = (e - m[i]) / n, l)
  251. if (A = v[i], T = v[0 === i ? i : i - 1], D = v[i > u - 2 ? u - 1 : i + 1], C = v[i > u - 3 ? u - 1 : i + 2], d) te(T, A, D, C, I, I * I, I * I * I, r(t, o), g);
  252. else { if (f) a = te(T, A, D, C, I, I * I, I * I * I, P, 1), a = ne(P);
  253. else { if (p) return Kt(A, D, I);
  254. a = ee(T, A, D, C, I, I * I, I * I * I) }
  255. s(t, o, a) }
  256. else if (d) $t(v[i], v[i + 1], I, r(t, o), g);
  257. else { var a; if (f) $t(v[i], v[i + 1], I, P, 1), a = ne(P);
  258. else { if (p) return Kt(v[i], v[i + 1], I);
  259. a = qt(v[i], v[i + 1], I) }
  260. s(t, o, a) } }, ondestroy: i }); return e && "spline" !== e && (N.easing = e), N } } }
  261. function re(t, e, i, n, o, a, r, s) { _(n) ? (a = o, o = n, n = 0) : x(o) ? (a = o, o = "linear", n = 0) : x(n) ? (a = n, n = 0) : x(i) ? (a = i, i = 500) : i || (i = 500), t.stopAnimation(), se(t, "", t, e, i, n, s); var l = t.animators.slice(),
  262. u = l.length;
  263. u || a && a(); for (var h = 0; h < l.length; h++) l[h].done(function() {--u || a && a() }).start(o, r) }
  264. function se(t, e, i, n, o, a, r) { var s = {},
  265. l = 0; for (var u in n) n.hasOwnProperty(u) && (null != i[u] ? w(n[u]) && !c(n[u]) ? se(t, e ? e + "." + u : u, i[u], n[u], o, a, r) : (r ? (s[u] = i[u], le(t, e, u, n[u])) : s[u] = n[u], l++) : null == n[u] || r || le(t, e, u, n[u]));
  266. l > 0 && t.animate(e, !1).when(null == o ? 500 : o, s).delay(a || 0) }
  267. function le(t, e, i, n) { if (e) { var o = {};
  268. o[e] = {}, o[e][i] = n, t.attr(o) } else t.attr(i, n) }
  269. function ue(t, e, i, n) { i < 0 && (t += i, i = -i), n < 0 && (e += n, n = -n), this.x = t, this.y = e, this.width = i, this.height = n }
  270. function he(t) { for (var e = 0; t >= Uw;) e |= 1 & t, t >>= 1; return t + e }
  271. function ce(t, e, i, n) { var o = e + 1; if (o === i) return 1; if (n(t[o++], t[e]) < 0) { for (; o < i && n(t[o], t[o - 1]) < 0;) o++;
  272. de(t, e, o) } else
  273. for (; o < i && n(t[o], t[o - 1]) >= 0;) o++; return o - e }
  274. function de(t, e, i) { for (i--; e < i;) { var n = t[e];
  275. t[e++] = t[i], t[i--] = n } }
  276. function fe(t, e, i, n, o) { for (n === e && n++; n < i; n++) { for (var a, r = t[n], s = e, l = n; s < l;) o(r, t[a = s + l >>> 1]) < 0 ? l = a : s = a + 1; var u = n - s; switch (u) {
  277. case 3:
  278. t[s + 3] = t[s + 2];
  279. case 2:
  280. t[s + 2] = t[s + 1];
  281. case 1:
  282. t[s + 1] = t[s]; break;
  283. default:
  284. for (; u > 0;) t[s + u] = t[s + u - 1], u-- }
  285. t[s] = r } }
  286. function pe(t, e, i, n, o, a) { var r = 0,
  287. s = 0,
  288. l = 1; if (a(t, e[i + o]) > 0) { for (s = n - o; l < s && a(t, e[i + o + l]) > 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s);
  289. l > s && (l = s), r += o, l += o } else { for (s = o + 1; l < s && a(t, e[i + o - l]) <= 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s);
  290. l > s && (l = s); var u = r;
  291. r = o - l, l = o - u } for (r++; r < l;) { var h = r + (l - r >>> 1);
  292. a(t, e[i + h]) > 0 ? r = h + 1 : l = h } return l }
  293. function ge(t, e, i, n, o, a) { var r = 0,
  294. s = 0,
  295. l = 1; if (a(t, e[i + o]) < 0) { for (s = o + 1; l < s && a(t, e[i + o - l]) < 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s);
  296. l > s && (l = s); var u = r;
  297. r = o - l, l = o - u } else { for (s = n - o; l < s && a(t, e[i + o + l]) >= 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s);
  298. l > s && (l = s), r += o, l += o } for (r++; r < l;) { var h = r + (l - r >>> 1);
  299. a(t, e[i + h]) < 0 ? l = h : r = h + 1 } return l }
  300. function me(t, e) {
  301. function i(i) { var s = a[i],
  302. u = r[i],
  303. h = a[i + 1],
  304. c = r[i + 1];
  305. r[i] = u + c, i === l - 3 && (a[i + 1] = a[i + 2], r[i + 1] = r[i + 2]), l--; var d = ge(t[h], t, s, u, 0, e);
  306. s += d, 0 !== (u -= d) && 0 !== (c = pe(t[s + u - 1], t, h, c, c - 1, e)) && (u <= c ? n(s, u, h, c) : o(s, u, h, c)) }
  307. function n(i, n, o, a) { var r = 0; for (r = 0; r < n; r++) u[r] = t[i + r]; var l = 0,
  308. h = o,
  309. c = i; if (t[c++] = t[h++], 0 != --a)
  310. if (1 !== n) { for (var d, f, p, g = s;;) { d = 0, f = 0, p = !1;
  311. do { if (e(t[h], u[l]) < 0) { if (t[c++] = t[h++], f++, d = 0, 0 == --a) { p = !0; break } } else if (t[c++] = u[l++], d++, f = 0, 1 == --n) { p = !0; break } } while ((d | f) < g); if (p) break;
  312. do { if (0 !== (d = ge(t[h], u, l, n, 0, e))) { for (r = 0; r < d; r++) t[c + r] = u[l + r]; if (c += d, l += d, (n -= d) <= 1) { p = !0; break } } if (t[c++] = t[h++], 0 == --a) { p = !0; break } if (0 !== (f = pe(u[l], t, h, a, 0, e))) { for (r = 0; r < f; r++) t[c + r] = t[h + r]; if (c += f, h += f, 0 === (a -= f)) { p = !0; break } } if (t[c++] = u[l++], 1 == --n) { p = !0; break }
  313. g-- } while (d >= Xw || f >= Xw); if (p) break;
  314. g < 0 && (g = 0), g += 2 } if ((s = g) < 1 && (s = 1), 1 === n) { for (r = 0; r < a; r++) t[c + r] = t[h + r];
  315. t[c + a] = u[l] } else { if (0 === n) throw new Error; for (r = 0; r < n; r++) t[c + r] = u[l + r] } } else { for (r = 0; r < a; r++) t[c + r] = t[h + r];
  316. t[c + a] = u[l] }
  317. else
  318. for (r = 0; r < n; r++) t[c + r] = u[l + r] }
  319. function o(i, n, o, a) { var r = 0; for (r = 0; r < a; r++) u[r] = t[o + r]; var l = i + n - 1,
  320. h = a - 1,
  321. c = o + a - 1,
  322. d = 0,
  323. f = 0; if (t[c--] = t[l--], 0 != --n)
  324. if (1 !== a) { for (var p = s;;) { var g = 0,
  325. m = 0,
  326. v = !1;
  327. do { if (e(u[h], t[l]) < 0) { if (t[c--] = t[l--], g++, m = 0, 0 == --n) { v = !0; break } } else if (t[c--] = u[h--], m++, g = 0, 1 == --a) { v = !0; break } } while ((g | m) < p); if (v) break;
  328. do { if (0 != (g = n - ge(u[h], t, i, n, n - 1, e))) { for (n -= g, f = (c -= g) + 1, d = (l -= g) + 1, r = g - 1; r >= 0; r--) t[f + r] = t[d + r]; if (0 === n) { v = !0; break } } if (t[c--] = u[h--], 1 == --a) { v = !0; break } if (0 != (m = a - pe(t[l], u, 0, a, a - 1, e))) { for (a -= m, f = (c -= m) + 1, d = (h -= m) + 1, r = 0; r < m; r++) t[f + r] = u[d + r]; if (a <= 1) { v = !0; break } } if (t[c--] = t[l--], 0 == --n) { v = !0; break }
  329. p-- } while (g >= Xw || m >= Xw); if (v) break;
  330. p < 0 && (p = 0), p += 2 } if ((s = p) < 1 && (s = 1), 1 === a) { for (f = (c -= n) + 1, d = (l -= n) + 1, r = n - 1; r >= 0; r--) t[f + r] = t[d + r];
  331. t[c] = u[h] } else { if (0 === a) throw new Error; for (d = c - (a - 1), r = 0; r < a; r++) t[d + r] = u[r] } } else { for (f = (c -= n) + 1, d = (l -= n) + 1, r = n - 1; r >= 0; r--) t[f + r] = t[d + r];
  332. t[c] = u[h] }
  333. else
  334. for (d = c - (a - 1), r = 0; r < a; r++) t[d + r] = u[r] } var a, r, s = Xw,
  335. l = 0,
  336. u = [];
  337. a = [], r = [], this.mergeRuns = function() { for (; l > 1;) { var t = l - 2; if (t >= 1 && r[t - 1] <= r[t] + r[t + 1] || t >= 2 && r[t - 2] <= r[t] + r[t - 1]) r[t - 1] < r[t + 1] && t--;
  338. else if (r[t] > r[t + 1]) break;
  339. i(t) } }, this.forceMergeRuns = function() { for (; l > 1;) { var t = l - 2;
  340. t > 0 && r[t - 1] < r[t + 1] && t--, i(t) } }, this.pushRun = function(t, e) { a[l] = t, r[l] = e, l += 1 } }
  341. function ve(t, e, i, n) { i || (i = 0), n || (n = t.length); var o = n - i; if (!(o < 2)) { var a = 0; if (o < Uw) return a = ce(t, i, n, e), void fe(t, i, n, i + a, e); var r = new me(t, e),
  342. s = he(o);
  343. do { if ((a = ce(t, i, n, e)) < s) { var l = o;
  344. l > s && (l = s), fe(t, i, i + l, i + a, e), a = l }
  345. r.pushRun(i, a), r.mergeRuns(), o -= a, i += a } while (0 !== o);
  346. r.forceMergeRuns() } }
  347. function ye(t, e) { return t.zlevel === e.zlevel ? t.z === e.z ? t.z2 - e.z2 : t.z - e.z : t.zlevel - e.zlevel }
  348. function xe(t, e, i) { var n = null == e.x ? 0 : e.x,
  349. o = null == e.x2 ? 1 : e.x2,
  350. a = null == e.y ? 0 : e.y,
  351. r = null == e.y2 ? 0 : e.y2; return e.global || (n = n * i.width + i.x, o = o * i.width + i.x, a = a * i.height + i.y, r = r * i.height + i.y), n = isNaN(n) ? 0 : n, o = isNaN(o) ? 1 : o, a = isNaN(a) ? 0 : a, r = isNaN(r) ? 0 : r, t.createLinearGradient(n, a, o, r) }
  352. function _e(t, e, i) { var n = i.width,
  353. o = i.height,
  354. a = Math.min(n, o),
  355. r = null == e.x ? .5 : e.x,
  356. s = null == e.y ? .5 : e.y,
  357. l = null == e.r ? .5 : e.r; return e.global || (r = r * n + i.x, s = s * o + i.y, l *= a), t.createRadialGradient(r, s, 0, r, s, l) }
  358. function we() { return !1 }
  359. function be(t, e, i) { var n = Y_(),
  360. o = e.getWidth(),
  361. a = e.getHeight(),
  362. 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 }
  363. function Se(t) { if ("string" == typeof t) { var e = ob.get(t); return e && e.image } return t }
  364. function Me(t, e, i, n, o) { if (t) { if ("string" == typeof t) { if (e && e.__zrImageSrc === t || !i) return e; var a = ob.get(t),
  365. r = { hostEl: i, cb: n, cbPayload: o }; return a ? !Te(e = a.image) && a.pending.push(r) : (!e && (e = new Image), e.onload = e.onerror = Ie, ob.put(t, e.__cachedImgObj = { image: e, pending: [r] }), e.src = e.__zrImageSrc = t), e } return t } return e }
  366. function Ie() { var t = this.__cachedImgObj;
  367. this.onload = this.onerror = this.__cachedImgObj = null; for (var e = 0; e < t.pending.length; e++) { var i = t.pending[e],
  368. n = i.cb;
  369. n && n(this, i.cbPayload), i.hostEl.dirty() }
  370. t.pending.length = 0 }
  371. function Te(t) { return t && t.width && t.height }
  372. function Ae(t, e) { var i = t + ":" + (e = e || ub); if (ab[i]) return ab[i]; for (var n = (t + "").split("\n"), o = 0, a = 0, r = n.length; a < r; a++) o = Math.max(Ve(n[a], e).width, o); return rb > sb && (rb = 0, ab = {}), rb++, ab[i] = o, o }
  373. function De(t, e, i, n, o, a, r) { return a ? Le(t, e, i, n, o, a, r) : Ce(t, e, i, n, o, r) }
  374. function Ce(t, e, i, n, o, a) { var r = Ge(t, e, o, a),
  375. s = Ae(t, e);
  376. o && (s += o[1] + o[3]); var l = r.outerHeight,
  377. u = new ue(ke(0, s, i), Pe(0, l, n), s, l); return u.lineHeight = r.lineHeight, u }
  378. function Le(t, e, i, n, o, a, r) { var s = Fe(t, { rich: a, truncate: r, font: e, textAlign: i, textPadding: o }),
  379. l = s.outerWidth,
  380. u = s.outerHeight; return new ue(ke(0, l, i), Pe(0, u, n), l, u) }
  381. function ke(t, e, i) { return "right" === i ? t -= e : "center" === i && (t -= e / 2), t }
  382. function Pe(t, e, i) { return "middle" === i ? t -= e / 2 : "bottom" === i && (t -= e), t }
  383. function Ne(t, e, i) { var n = e.x,
  384. o = e.y,
  385. a = e.height,
  386. r = e.width,
  387. s = a / 2,
  388. l = "left",
  389. u = "top"; switch (t) {
  390. case "left":
  391. n -= i, o += s, l = "right", u = "middle"; break;
  392. case "right":
  393. n += i + r, o += s, u = "middle"; break;
  394. case "top":
  395. n += r / 2, o -= i, l = "center", u = "bottom"; break;
  396. case "bottom":
  397. n += r / 2, o += a + i, l = "center"; break;
  398. case "inside":
  399. n += r / 2, o += s, l = "center", u = "middle"; break;
  400. case "insideLeft":
  401. n += i, o += s, u = "middle"; break;
  402. case "insideRight":
  403. n += r - i, o += s, l = "right", u = "middle"; break;
  404. case "insideTop":
  405. n += r / 2, o += i, l = "center"; break;
  406. case "insideBottom":
  407. n += r / 2, o += a - i, l = "center", u = "bottom"; break;
  408. case "insideTopLeft":
  409. n += i, o += i; break;
  410. case "insideTopRight":
  411. n += r - i, o += i, l = "right"; break;
  412. case "insideBottomLeft":
  413. n += i, o += a - i, u = "bottom"; break;
  414. case "insideBottomRight":
  415. n += r - i, o += a - i, l = "right", u = "bottom" } return { x: n, y: o, textAlign: l, textVerticalAlign: u } }
  416. function Oe(t, e, i, n, o) { if (!e) return ""; var a = (t + "").split("\n");
  417. o = Ee(e, i, n, o); for (var r = 0, s = a.length; r < s; r++) a[r] = Re(a[r], o); return a.join("\n") }
  418. function Ee(t, e, i, n) {
  419. (n = a({}, n)).font = e; var i = A(i, "...");
  420. n.maxIterations = A(n.maxIterations, 2); var o = n.minChar = A(n.minChar, 0);
  421. n.cnCharWidth = Ae("鍥�", e); var r = n.ascCharWidth = Ae("a", e);
  422. n.placeholder = A(n.placeholder, ""); for (var s = t = Math.max(0, t - 1), l = 0; l < o && s >= r; l++) s -= r; var u = Ae(i); return u > s && (i = "", u = 0), s = t - u, n.ellipsis = i, n.ellipsisWidth = u, n.contentWidth = s, n.containerWidth = t, n }
  423. function Re(t, e) { var i = e.containerWidth,
  424. n = e.font,
  425. o = e.contentWidth; if (!i) return ""; var a = Ae(t, n); if (a <= i) return t; for (var r = 0;; r++) { if (a <= o || r >= e.maxIterations) { t += e.ellipsis; break } var s = 0 === r ? ze(t, o, e.ascCharWidth, e.cnCharWidth) : a > 0 ? Math.floor(t.length * o / a) : 0;
  426. a = Ae(t = t.substr(0, s), n) } return "" === t && (t = e.placeholder), t }
  427. function ze(t, e, i, n) { for (var o = 0, a = 0, r = t.length; a < r && o < e; a++) { var s = t.charCodeAt(a);
  428. o += 0 <= s && s <= 127 ? i : n } return a }
  429. function Be(t) { return Ae("鍥�", t) }
  430. function Ve(t, e) { return hb.measureText(t, e) }
  431. function Ge(t, e, i, n) { null != t && (t += ""); var o = Be(e),
  432. a = t ? t.split("\n") : [],
  433. r = a.length * o,
  434. s = r; if (i && (s += i[0] + i[2]), t && n) { var l = n.outerHeight,
  435. u = n.outerWidth; if (null != l && s > l) t = "", a = [];
  436. else if (null != u)
  437. for (var h = Ee(u - (i ? i[1] + i[3] : 0), e, n.ellipsis, { minChar: n.minChar, placeholder: n.placeholder }), c = 0, d = a.length; c < d; c++) a[c] = Re(a[c], h) } return { lines: a, height: r, outerHeight: s, lineHeight: o } }
  438. function Fe(t, e) { var i = { lines: [], width: 0, height: 0 }; if (null != t && (t += ""), !t) return i; for (var n, o = lb.lastIndex = 0; null != (n = lb.exec(t));) { var a = n.index;
  439. a > o && We(i, t.substring(o, a)), We(i, n[2], n[1]), o = lb.lastIndex }
  440. o < t.length && We(i, t.substring(o, t.length)); var r = i.lines,
  441. s = 0,
  442. l = 0,
  443. u = [],
  444. h = e.textPadding,
  445. c = e.truncate,
  446. d = c && c.outerWidth,
  447. f = c && c.outerHeight;
  448. h && (null != d && (d -= h[1] + h[3]), null != f && (f -= h[0] + h[2])); for (L = 0; L < r.length; L++) { for (var p = r[L], g = 0, m = 0, v = 0; v < p.tokens.length; v++) { var y = (k = p.tokens[v]).styleName && e.rich[k.styleName] || {},
  449. x = k.textPadding = y.textPadding,
  450. _ = k.font = y.font || e.font,
  451. w = k.textHeight = A(y.textHeight, Be(_)); if (x && (w += x[0] + x[2]), k.height = w, k.lineHeight = D(y.textLineHeight, e.textLineHeight, w), k.textAlign = y && y.textAlign || e.textAlign, k.textVerticalAlign = y && y.textVerticalAlign || "middle", null != f && s + k.lineHeight > f) return { lines: [], width: 0, height: 0 };
  452. k.textWidth = Ae(k.text, _); var b = y.textWidth,
  453. S = null == b || "auto" === b; if ("string" == typeof b && "%" === b.charAt(b.length - 1)) k.percentWidth = b, u.push(k), b = 0;
  454. else { if (S) { b = k.textWidth; var M = y.textBackgroundColor,
  455. I = M && M.image;
  456. I && Te(I = Se(I)) && (b = Math.max(b, I.width * w / I.height)) } var T = x ? x[1] + x[3] : 0;
  457. b += T; var C = null != d ? d - m : null;
  458. null != C && C < b && (!S || C < T ? (k.text = "", k.textWidth = b = 0) : (k.text = Oe(k.text, C - T, _, c.ellipsis, { minChar: c.minChar }), k.textWidth = Ae(k.text, _), b = k.textWidth + T)) }
  459. m += k.width = b, y && (g = Math.max(g, k.lineHeight)) }
  460. p.width = m, p.lineHeight = g, s += g, l = Math.max(l, m) }
  461. i.outerWidth = i.width = A(e.textWidth, l), i.outerHeight = i.height = A(e.textHeight, s), h && (i.outerWidth += h[1] + h[3], i.outerHeight += h[0] + h[2]); for (var L = 0; L < u.length; L++) { var k = u[L],
  462. P = k.percentWidth;
  463. k.width = parseInt(P, 10) / 100 * l } return i }
  464. function We(t, e, i) { for (var n = "" === e, o = e.split("\n"), a = t.lines, r = 0; r < o.length; r++) { var s = o[r],
  465. l = { styleName: i, text: s, isLineHolder: !s && !n }; if (r) a.push({ tokens: [l] });
  466. else { var u = (a[a.length - 1] || (a[0] = { tokens: [] })).tokens,
  467. h = u.length;
  468. 1 === h && u[0].isLineHolder ? u[0] = l : (s || !h || n) && u.push(l) } } }
  469. function He(t) { var e = (t.fontSize || t.fontFamily) && [t.fontStyle, t.fontWeight, (t.fontSize || 12) + "px", t.fontFamily || "sans-serif"].join(" "); return e && P(e) || t.textFont || t.font }
  470. function Ze(t, e) { var i, n, o, a, r = e.x,
  471. s = e.y,
  472. l = e.width,
  473. u = e.height,
  474. h = e.r;
  475. l < 0 && (r += l, l = -l), u < 0 && (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;
  476. i + n > l && (i *= l / (c = i + n), n *= l / c), o + a > l && (o *= l / (c = o + a), a *= l / c), n + o > u && (n *= u / (c = n + o), o *= u / c), i + a > u && (i *= u / (c = i + a), a *= u / c), t.moveTo(r + i, s), t.lineTo(r + l - n, s), 0 !== n && t.arc(r + l - n, s + n, n, -Math.PI / 2, 0), t.lineTo(r + l, s + u - o), 0 !== o && t.arc(r + l - o, s + u - o, o, 0, Math.PI / 2), t.lineTo(r + a, s + u), 0 !== a && t.arc(r + a, s + u - a, a, Math.PI / 2, Math.PI), t.lineTo(r, s + i), 0 !== i && t.arc(r + i, s + i, i, Math.PI, 1.5 * Math.PI) }
  477. function Ue(t) { return Xe(t), d(t.rich, Xe), t }
  478. function Xe(t) { if (t) { t.font = He(t); var e = t.textAlign; "middle" === e && (e = "center"), t.textAlign = null == e || cb[e] ? e : "left"; var i = t.textVerticalAlign || t.textBaseline; "center" === i && (i = "middle"), t.textVerticalAlign = null == i || db[i] ? i : "top", t.textPadding && (t.textPadding = L(t.textPadding)) } }
  479. function je(t, e, i, n, o, a) { n.rich ? qe(t, e, i, n, o) : Ye(t, e, i, n, o, a) }
  480. function Ye(t, e, i, n, o, a) { var r = a && a.style,
  481. s = r && "text" === a.type,
  482. l = n.font || ub;
  483. s && l === (r.font || ub) || (e.font = l); var u = t.__computedFont;
  484. t.__styleFont !== l && (t.__styleFont = l, u = t.__computedFont = e.font); var h = n.textPadding,
  485. c = t.__textCotentBlock;
  486. c && !t.__dirtyText || (c = t.__textCotentBlock = Ge(i, u, h, n.truncate)); var d = c.outerHeight,
  487. f = c.lines,
  488. p = c.lineHeight,
  489. g = ii(d, n, o),
  490. m = g.baseX,
  491. v = g.baseY,
  492. y = g.textAlign || "left",
  493. x = g.textVerticalAlign;
  494. $e(e, n, o, m, v); var _ = Pe(v, d, x),
  495. w = m,
  496. b = _,
  497. S = Qe(n); if (S || h) { var M = Ae(i, u);
  498. h && (M += h[1] + h[3]); var I = ke(m, M, y);
  499. S && ti(t, e, n, I, _, M, d), h && (w = si(m, y, h), b += h[0]) }
  500. e.textAlign = y, e.textBaseline = "middle"; for (R = 0; R < fb.length; R++) { var T = fb[R],
  501. A = T[0],
  502. D = T[1],
  503. C = n[A];
  504. s && C === r[A] || (e[D] = qw(e, D, C || T[2])) }
  505. b += p / 2; var L = n.textStrokeWidth,
  506. k = s ? r.textStrokeWidth : null,
  507. P = !s || L !== k,
  508. N = !s || P || n.textStroke !== r.textStroke,
  509. O = oi(n.textStroke, L),
  510. E = ai(n.textFill); if (O && (P && (e.lineWidth = L), N && (e.strokeStyle = O)), E && (s && n.textFill === r.textFill && !r.textBackgroundColor || (e.fillStyle = E)), 1 === f.length) O && e.strokeText(f[0], w, b), E && e.fillText(f[0], w, b);
  511. else
  512. for (var R = 0; R < f.length; R++) O && e.strokeText(f[R], w, b), E && e.fillText(f[R], w, b), b += p }
  513. function qe(t, e, i, n, o) { var a = t.__textCotentBlock;
  514. a && !t.__dirtyText || (a = t.__textCotentBlock = Fe(i, n)), Ke(t, e, a, n, o) }
  515. function Ke(t, e, i, n, o) { var a = i.width,
  516. r = i.outerWidth,
  517. s = i.outerHeight,
  518. l = n.textPadding,
  519. u = ii(s, n, o),
  520. h = u.baseX,
  521. c = u.baseY,
  522. d = u.textAlign,
  523. f = u.textVerticalAlign;
  524. $e(e, n, o, h, c); var p = ke(h, r, d),
  525. g = Pe(c, s, f),
  526. m = p,
  527. v = g;
  528. l && (m += l[3], v += l[0]); var y = m + a;
  529. Qe(n) && ti(t, e, n, p, g, r, s); for (var x = 0; x < i.lines.length; x++) { for (var _, w = i.lines[x], b = w.tokens, S = b.length, M = w.lineHeight, I = w.width, T = 0, A = m, D = y, C = S - 1; T < S && (!(_ = b[T]).textAlign || "left" === _.textAlign);) Je(t, e, _, n, M, v, A, "left"), I -= _.width, A += _.width, T++; for (; C >= 0 && "right" === (_ = b[C]).textAlign;) Je(t, e, _, n, M, v, D, "right"), I -= _.width, D -= _.width, C--; for (A += (a - (A - m) - (y - D) - I) / 2; T <= C;) Je(t, e, _ = b[T], n, M, v, A + _.width / 2, "center"), A += _.width, T++;
  530. v += M } }
  531. function $e(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) } }
  532. function Je(t, e, i, n, o, a, r, s) { var l = n.rich[i.styleName] || {};
  533. l.text = i.text; var u = i.textVerticalAlign,
  534. h = a + o / 2; "top" === u ? h = a + i.height / 2 : "bottom" === u && (h = a + o - i.height / 2), !i.isLineHolder && Qe(l) && ti(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;
  535. c && (r = si(r, s, c), h -= i.height / 2 - c[2] - i.textHeight / 2), ni(e, "shadowBlur", D(l.textShadowBlur, n.textShadowBlur, 0)), ni(e, "shadowColor", l.textShadowColor || n.textShadowColor || "transparent"), ni(e, "shadowOffsetX", D(l.textShadowOffsetX, n.textShadowOffsetX, 0)), ni(e, "shadowOffsetY", D(l.textShadowOffsetY, n.textShadowOffsetY, 0)), ni(e, "textAlign", s), ni(e, "textBaseline", "middle"), ni(e, "font", i.font || ub); var d = oi(l.textStroke || n.textStroke, p),
  536. f = ai(l.textFill || n.textFill),
  537. p = A(l.textStrokeWidth, n.textStrokeWidth);
  538. d && (ni(e, "lineWidth", p), ni(e, "strokeStyle", d), e.strokeText(i.text, r, h)), f && (ni(e, "fillStyle", f), e.fillText(i.text, r, h)) }
  539. function Qe(t) { return t.textBackgroundColor || t.textBorderWidth && t.textBorderColor }
  540. function ti(t, e, i, n, o, a, r) { var s = i.textBackgroundColor,
  541. l = i.textBorderWidth,
  542. u = i.textBorderColor,
  543. h = _(s); if (ni(e, "shadowBlur", i.textBoxShadowBlur || 0), ni(e, "shadowColor", i.textBoxShadowColor || "transparent"), ni(e, "shadowOffsetX", i.textBoxShadowOffsetX || 0), ni(e, "shadowOffsetY", i.textBoxShadowOffsetY || 0), h || l && u) { e.beginPath(); var c = i.textBorderRadius;
  544. c ? Ze(e, { x: n, y: o, width: a, height: r, r: c }) : e.rect(n, o, a, r), e.closePath() } if (h)
  545. if (ni(e, "fillStyle", s), null != i.fillOpacity) { f = e.globalAlpha;
  546. e.globalAlpha = i.fillOpacity * i.opacity, e.fill(), e.globalAlpha = f } else e.fill();
  547. else if (x(s)) ni(e, "fillStyle", s(i)), e.fill();
  548. else if (w(s)) { var d = s.image;
  549. (d = Me(d, null, t, ei, s)) && Te(d) && e.drawImage(d, n, o, a, r) } if (l && u)
  550. if (ni(e, "lineWidth", l), ni(e, "strokeStyle", u), null != i.strokeOpacity) { var f = e.globalAlpha;
  551. e.globalAlpha = i.strokeOpacity * i.opacity, e.stroke(), e.globalAlpha = f } else e.stroke() }
  552. function ei(t, e) { e.image = t }
  553. function ii(t, e, i) { var n = e.x || 0,
  554. o = e.y || 0,
  555. a = e.textAlign,
  556. r = e.textVerticalAlign; if (i) { var s = e.textPosition; if (s instanceof Array) n = i.x + ri(s[0], i.width), o = i.y + ri(s[1], i.height);
  557. else { var l = Ne(s, i, e.textDistance);
  558. n = l.x, o = l.y, a = a || l.textAlign, r = r || l.textVerticalAlign } var u = e.textOffset;
  559. u && (n += u[0], o += u[1]) } return { baseX: n, baseY: o, textAlign: a, textVerticalAlign: r } }
  560. function ni(t, e, i) { return t[e] = qw(t, e, i), t[e] }
  561. function oi(t, e) { return null == t || e <= 0 || "transparent" === t || "none" === t ? null : t.image || t.colorStops ? "#000" : t }
  562. function ai(t) { return null == t || "none" === t ? null : t.image || t.colorStops ? "#000" : t }
  563. function ri(t, e) { return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t }
  564. function si(t, e, i) { return "right" === e ? t - i[1] : "center" === e ? t + i[3] / 2 - i[1] / 2 : t + i[3] }
  565. function li(t, e) { return null != t && (t || e.textBackgroundColor || e.textBorderWidth && e.textBorderColor || e.textPadding) }
  566. function ui(t) { t = t || {}, Gw.call(this, t); for (var e in t) t.hasOwnProperty(e) && "style" !== e && (this[e] = t[e]);
  567. this.style = new $w(t.style, this), this._rect = null, this.__clipPaths = [] }
  568. function hi(t) { ui.call(this, t) }
  569. function ci(t) { return parseInt(t, 10) }
  570. function di(t) { return !!t && (!!t.__builtin__ || "function" == typeof t.resize && "function" == typeof t.refresh) }
  571. function fi(t, e, i) { return mb.copy(t.getBoundingRect()), t.transform && mb.applyTransform(t.transform), vb.width = e, vb.height = i, !mb.intersect(vb) }
  572. function pi(t, e) { if (t == e) return !1; if (!t || !e || t.length !== e.length) return !0; for (var i = 0; i < t.length; i++)
  573. if (t[i] !== e[i]) return !0 }
  574. function gi(t, e) { for (var i = 0; i < t.length; i++) { var n = t[i];
  575. n.setTransform(e), e.beginPath(), n.buildPath(e, n.shape), e.clip(), n.restoreTransform(e) } }
  576. function mi(t, e) { var i = document.createElement("div"); return i.style.cssText = ["position:relative", "overflow:hidden", "width:" + t + "px", "height:" + e + "px", "padding:0", "margin:0", "border-width:0"].join(";") + ";", i }
  577. function vi(t) { var e = t[1][0] - t[0][0],
  578. i = t[1][1] - t[0][1]; return Math.sqrt(e * e + i * i) }
  579. function yi(t) { return [(t[0][0] + t[1][0]) / 2, (t[0][1] + t[1][1]) / 2] }
  580. function xi(t) { return "mousewheel" === t && z_.browser.firefox ? "DOMMouseScroll" : t }
  581. function _i(t, e, i) { var n = t._gestureMgr; "start" === i && n.clear(); var o = n.recognize(e, t.handler.findHover(e.zrX, e.zrY, null).target, t.dom); if ("end" === i && n.clear(), o) { var a = o.type;
  582. e.gestureEvent = a, t.handler.dispatchToElement({ target: o.target }, a, o.event) } }
  583. function wi(t) { t._touching = !0, clearTimeout(t._touchTimer), t._touchTimer = setTimeout(function() { t._touching = !1 }, 700) }
  584. function bi(t) { var e = t.pointerType; return "pen" === e || "touch" === e }
  585. function Si(t) {
  586. function e(t, e) { return function() { if (!e._touching) return t.apply(e, arguments) } }
  587. d(Sb, function(e) { t._handlers[e] = m(Tb[e], t) }), d(Ib, function(e) { t._handlers[e] = m(Tb[e], t) }), d(bb, function(i) { t._handlers[i] = e(Tb[i], t) }) }
  588. function Mi(t) {
  589. function e(e, i) { d(e, function(e) { ut(t, xi(e), i._handlers[e]) }, i) }
  590. aw.call(this), this.dom = t, this._touching = !1, this._touchTimer, this._gestureMgr = new _b, this._handlers = {}, Si(this), z_.pointerEventsSupported ? e(Ib, this) : (z_.touchEventsSupported && e(Sb, this), e(bb, this)) }
  591. function Ii(t, e) { var i = new kb(E_(), t, e); return Lb[i.id] = i, i }
  592. function Ti(t, e) { Cb[t] = e }
  593. function Ai(t) { delete Lb[t] }
  594. function Di(t) { return t instanceof Array ? t : null == t ? [] : [t] }
  595. function Ci(t, e, i) { if (t) { t[e] = t[e] || {}, t.emphasis = t.emphasis || {}, t.emphasis[e] = t.emphasis[e] || {}; for (var n = 0, o = i.length; n < o; n++) { var a = i[n];!t.emphasis[e].hasOwnProperty(a) && t[e].hasOwnProperty(a) && (t.emphasis[e][a] = t[e][a]) } } }
  596. function Li(t) { return !Ob(t) || Eb(t) || t instanceof Date ? t : t.value }
  597. function ki(t) { return Ob(t) && !(t instanceof Array) }
  598. function Pi(t, e) { e = (e || []).slice(); var i = f(t || [], function(t, e) { return { exist: t } }); return Nb(e, function(t, n) { if (Ob(t)) { for (o = 0; o < i.length; o++)
  599. if (!i[o].option && null != t.id && i[o].exist.id === t.id + "") return i[o].option = t, void(e[n] = null);
  600. for (var o = 0; o < i.length; o++) { var a = i[o].exist; if (!(i[o].option || null != a.id && null != t.id || null == t.name || Ei(t) || Ei(a) || a.name !== t.name + "")) return i[o].option = t, void(e[n] = null) } } }), Nb(e, function(t, e) { if (Ob(t)) { for (var n = 0; n < i.length; n++) { var o = i[n].exist; if (!i[n].option && !Ei(o) && null == t.id) { i[n].option = t; break } }
  601. n >= i.length && i.push({ option: t }) } }), i }
  602. function Ni(t) { var e = R();
  603. Nb(t, function(t, i) { var n = t.exist;
  604. n && e.set(n.id, t) }), Nb(t, function(t, i) { var n = t.option;
  605. k(!n || null == n.id || !e.get(n.id) || e.get(n.id) === t, "id duplicates: " + (n && n.id)), n && null != n.id && e.set(n.id, t), !t.keyInfo && (t.keyInfo = {}) }), Nb(t, function(t, i) { var n = t.exist,
  606. o = t.option,
  607. a = t.keyInfo; if (Ob(o)) { if (a.name = null != o.name ? o.name + "" : n ? n.name : Rb + i, n) a.id = n.id;
  608. else if (null != o.id) a.id = o.id + "";
  609. else { var r = 0;
  610. do { a.id = "\0" + a.name + "\0" + r++ } while (e.get(a.id)) }
  611. e.set(a.id, t) } }) }
  612. function Oi(t) { var e = t.name; return !(!e || !e.indexOf(Rb)) }
  613. function Ei(t) { return Ob(t) && t.id && 0 === (t.id + "").indexOf("\0_ec_\0") }
  614. function Ri(t, e) {
  615. function i(t, e, i) { for (var n = 0, o = t.length; n < o; n++)
  616. for (var a = t[n].seriesId, r = Di(t[n].dataIndex), s = i && i[a], l = 0, u = r.length; l < u; l++) { var h = r[l];
  617. s && s[h] ? s[h] = null : (e[a] || (e[a] = {}))[h] = 1 } }
  618. function n(t, e) { var i = []; for (var o in t)
  619. if (t.hasOwnProperty(o) && null != t[o])
  620. if (e) i.push(+o);
  621. else { var a = n(t[o], !0);
  622. a.length && i.push({ seriesId: o, dataIndex: a }) }
  623. return i } var o = {},
  624. a = {}; return i(t || [], o), i(e || [], a, o), [n(o), n(a)] }
  625. function zi(t, e) { return null != e.dataIndexInside ? e.dataIndexInside : null != e.dataIndex ? y(e.dataIndex) ? f(e.dataIndex, function(e) { return t.indexOfRawIndex(e) }) : t.indexOfRawIndex(e.dataIndex) : null != e.name ? y(e.name) ? f(e.name, function(e) { return t.indexOfName(e) }) : t.indexOfName(e.name) : void 0 }
  626. function Bi() { var t = "__\0ec_inner_" + Bb++ + "_" + Math.random().toFixed(5); return function(e) { return e[t] || (e[t] = {}) } }
  627. function Vi(t, e, i) { if (_(e)) { var n = {};
  628. n[e + "Index"] = 0, e = n } var o = i && i.defaultMainType;!o || Gi(e, o + "Index") || Gi(e, o + "Id") || Gi(e, o + "Name") || (e[o + "Index"] = 0); var a = {}; return Nb(e, function(n, o) { var n = e[o]; if ("dataIndex" !== o && "dataIndexInside" !== o) { var r = o.match(/^(\w+)(Index|Id|Name)$/) || [],
  629. s = r[1],
  630. u = (r[2] || "").toLowerCase(); if (!(!s || !u || null == n || "index" === u && "none" === n || i && i.includeMainTypes && l(i.includeMainTypes, s) < 0)) { var h = { mainType: s }; "index" === u && "all" === n || (h[u] = n); var c = t.queryComponents(h);
  631. a[s + "Models"] = c, a[s + "Model"] = c[0] } } else a[o] = n }), a }
  632. function Gi(t, e) { return t && t.hasOwnProperty(e) }
  633. function Fi(t, e, i) { t.setAttribute ? t.setAttribute(e, i) : t[e] = i }
  634. function Wi(t, e) { return t.getAttribute ? t.getAttribute(e) : t[e] }
  635. function Hi(t) { return "auto" === t ? z_.domSupported ? "html" : "richText" : t || "html" }
  636. function Zi(t) { var e = { main: "", sub: "" }; return t && (t = t.split(Vb), e.main = t[0] || "", e.sub = t[1] || ""), e }
  637. function Ui(t) { k(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t), 'componentType "' + t + '" illegal') }
  638. function Xi(t, e) { t.$constructor = t, t.extend = function(t) { var e = this,
  639. i = function() { t.$constructor ? t.$constructor.apply(this, arguments) : e.apply(this, arguments) }; return a(i.prototype, t), i.extend = this.extend, i.superCall = Yi, i.superApply = qi, u(i, this), i.superClass = e, i } }
  640. function ji(t) { var e = ["__\0is_clz", Fb++, Math.random().toFixed(3)].join("_");
  641. t.prototype[e] = !0, t.isInstance = function(t) { return !(!t || !t[e]) } }
  642. function Yi(t, e) { var i = C(arguments, 2); return this.superClass.prototype[e].apply(t, i) }
  643. function qi(t, e, i) { return this.superClass.prototype[e].apply(t, i) }
  644. function Ki(t, e) {
  645. function i(t) { var e = n[t.main]; return e && e[Gb] || ((e = n[t.main] = {})[Gb] = !0), e }
  646. e = e || {}; var n = {}; if (t.registerClass = function(t, e) { return e && (Ui(e), (e = Zi(e)).sub ? e.sub !== Gb && (i(e)[e.sub] = t) : n[e.main] = t), t }, t.getClass = function(t, e, i) { var o = n[t]; if (o && o[Gb] && (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 = Zi(t); var e = [],
  647. i = n[t.main]; return i && i[Gb] ? d(i, function(t, i) { i !== Gb && e.push(t) }) : e.push(i), e }, t.hasClass = function(t) { return t = Zi(t), !!n[t.main] }, t.getAllClassMainTypes = function() { var t = []; return d(n, function(e, i) { t.push(i) }), t }, t.hasSubTypes = function(t) { t = Zi(t); var e = n[t.main]; return e && e[Gb] }, t.parseClassType = Zi, e.registerWhenExtend) { var o = t.extend;
  648. o && (t.extend = function(e) { var i = o.call(this, e); return t.registerClass(i, e.type) }) } return t }
  649. function $i(t) { return t > -qb && t < qb }
  650. function Ji(t) { return t > qb || t < -qb }
  651. function Qi(t, e, i, n, o) { var a = 1 - o; return a * a * (a * t + 3 * o * e) + o * o * (o * n + 3 * a * i) }
  652. function tn(t, e, i, n, o) { var a = 1 - o; return 3 * (((e - t) * a + 2 * (i - e) * o) * a + (n - i) * o * o) }
  653. function en(t, e, i, n, o, a) { var r = n + 3 * (e - i) - t,
  654. s = 3 * (i - 2 * e + t),
  655. l = 3 * (e - t),
  656. u = t - o,
  657. h = s * s - 3 * r * l,
  658. c = s * l - 9 * r * u,
  659. d = l * l - 3 * s * u,
  660. f = 0; if ($i(h) && $i(c)) $i(s) ? a[0] = 0 : (M = -l / s) >= 0 && M <= 1 && (a[f++] = M);
  661. else { var p = c * c - 4 * h * d; if ($i(p)) { var g = c / h,
  662. m = -g / 2;
  663. (M = -s / r + g) >= 0 && M <= 1 && (a[f++] = M), m >= 0 && m <= 1 && (a[f++] = m) } else if (p > 0) { var v = Yb(p),
  664. y = h * s + 1.5 * r * (-c + v),
  665. x = h * s + 1.5 * r * (-c - v);
  666. (M = (-s - ((y = y < 0 ? -jb(-y, Jb) : jb(y, Jb)) + (x = x < 0 ? -jb(-x, Jb) : jb(x, Jb)))) / (3 * r)) >= 0 && M <= 1 && (a[f++] = M) } else { var _ = (2 * h * s - 3 * r * c) / (2 * Yb(h * h * h)),
  667. w = Math.acos(_) / 3,
  668. b = Yb(h),
  669. S = Math.cos(w),
  670. M = (-s - 2 * b * S) / (3 * r),
  671. m = (-s + b * (S + $b * Math.sin(w))) / (3 * r),
  672. I = (-s + b * (S - $b * Math.sin(w))) / (3 * r);
  673. M >= 0 && M <= 1 && (a[f++] = M), m >= 0 && m <= 1 && (a[f++] = m), I >= 0 && I <= 1 && (a[f++] = I) } } return f }
  674. function nn(t, e, i, n, o) { var a = 6 * i - 12 * e + 6 * t,
  675. r = 9 * e + 3 * n - 3 * t - 9 * i,
  676. s = 3 * e - 3 * t,
  677. l = 0; if ($i(r)) Ji(a) && (c = -s / a) >= 0 && c <= 1 && (o[l++] = c);
  678. else { var u = a * a - 4 * r * s; if ($i(u)) o[0] = -a / (2 * r);
  679. else if (u > 0) { var h = Yb(u),
  680. c = (-a + h) / (2 * r),
  681. d = (-a - h) / (2 * r);
  682. c >= 0 && c <= 1 && (o[l++] = c), d >= 0 && d <= 1 && (o[l++] = d) } } return l }
  683. function on(t, e, i, n, o, a) { var r = (e - t) * o + t,
  684. s = (i - e) * o + e,
  685. l = (n - i) * o + i,
  686. u = (s - r) * o + r,
  687. h = (l - s) * o + s,
  688. c = (h - u) * o + u;
  689. a[0] = t, a[1] = r, a[2] = u, a[3] = c, a[4] = c, a[5] = h, a[6] = l, a[7] = n }
  690. function an(t, e, i, n, o, a, r, s, l, u, h) { var c, d, f, p, g, m = .005,
  691. v = 1 / 0;
  692. Qb[0] = l, Qb[1] = u; for (var y = 0; y < 1; y += .05) tS[0] = Qi(t, i, o, r, y), tS[1] = Qi(e, n, a, s, y), (p = iw(Qb, tS)) < v && (c = y, v = p);
  693. v = 1 / 0; for (var x = 0; x < 32 && !(m < Kb); x++) d = c - m, f = c + m, tS[0] = Qi(t, i, o, r, d), tS[1] = Qi(e, n, a, s, d), p = iw(tS, Qb), d >= 0 && p < v ? (c = d, v = p) : (eS[0] = Qi(t, i, o, r, f), eS[1] = Qi(e, n, a, s, f), g = iw(eS, Qb), f <= 1 && g < v ? (c = f, v = g) : m *= .5); return h && (h[0] = Qi(t, i, o, r, c), h[1] = Qi(e, n, a, s, c)), Yb(v) }
  694. function rn(t, e, i, n) { var o = 1 - n; return o * (o * t + 2 * n * e) + n * n * i }
  695. function sn(t, e, i, n) { return 2 * ((1 - n) * (e - t) + n * (i - e)) }
  696. function ln(t, e, i, n, o) { var a = t - 2 * e + i,
  697. r = 2 * (e - t),
  698. s = t - n,
  699. l = 0; if ($i(a)) Ji(r) && (c = -s / r) >= 0 && c <= 1 && (o[l++] = c);
  700. else { var u = r * r - 4 * a * s; if ($i(u))(c = -r / (2 * a)) >= 0 && c <= 1 && (o[l++] = c);
  701. else if (u > 0) { var h = Yb(u),
  702. c = (-r + h) / (2 * a),
  703. d = (-r - h) / (2 * a);
  704. c >= 0 && c <= 1 && (o[l++] = c), d >= 0 && d <= 1 && (o[l++] = d) } } return l }
  705. function un(t, e, i) { var n = t + i - 2 * e; return 0 === n ? .5 : (t - e) / n }
  706. function hn(t, e, i, n, o) { var a = (e - t) * n + t,
  707. r = (i - e) * n + e,
  708. s = (r - a) * n + a;
  709. o[0] = t, o[1] = a, o[2] = s, o[3] = s, o[4] = r, o[5] = i }
  710. function cn(t, e, i, n, o, a, r, s, l) { var u, h = .005,
  711. c = 1 / 0;
  712. Qb[0] = r, Qb[1] = s; for (var d = 0; d < 1; d += .05) tS[0] = rn(t, i, o, d), tS[1] = rn(e, n, a, d), (m = iw(Qb, tS)) < c && (u = d, c = m);
  713. c = 1 / 0; for (var f = 0; f < 32 && !(h < Kb); f++) { var p = u - h,
  714. g = u + h;
  715. tS[0] = rn(t, i, o, p), tS[1] = rn(e, n, a, p); var m = iw(tS, Qb); if (p >= 0 && m < c) u = p, c = m;
  716. else { eS[0] = rn(t, i, o, g), eS[1] = rn(e, n, a, g); var v = iw(eS, Qb);
  717. g <= 1 && v < c ? (u = g, c = v) : h *= .5 } } return l && (l[0] = rn(t, i, o, u), l[1] = rn(e, n, a, u)), Yb(c) }
  718. function dn(t, e, i) { if (0 !== t.length) { var n, o = t[0],
  719. a = o[0],
  720. r = o[0],
  721. s = o[1],
  722. l = o[1]; for (n = 1; n < t.length; n++) o = t[n], a = iS(a, o[0]), r = nS(r, o[0]), s = iS(s, o[1]), l = nS(l, o[1]);
  723. e[0] = a, e[1] = s, i[0] = r, i[1] = l } }
  724. function fn(t, e, i, n, o, a) { o[0] = iS(t, i), o[1] = iS(e, n), a[0] = nS(t, i), a[1] = nS(e, n) }
  725. function pn(t, e, i, n, o, a, r, s, l, u) { var h, c = nn,
  726. d = Qi,
  727. f = c(t, i, o, r, hS); for (l[0] = 1 / 0, l[1] = 1 / 0, u[0] = -1 / 0, u[1] = -1 / 0, h = 0; h < f; h++) { var p = d(t, i, o, r, hS[h]);
  728. l[0] = iS(p, l[0]), u[0] = nS(p, u[0]) } for (f = c(e, n, a, s, cS), h = 0; h < f; h++) { var g = d(e, n, a, s, cS[h]);
  729. l[1] = iS(g, l[1]), u[1] = nS(g, u[1]) }
  730. l[0] = iS(t, l[0]), u[0] = nS(t, u[0]), l[0] = iS(r, l[0]), u[0] = nS(r, u[0]), l[1] = iS(e, l[1]), u[1] = nS(e, u[1]), l[1] = iS(s, l[1]), u[1] = nS(s, u[1]) }
  731. function gn(t, e, i, n, o, a, r, s) { var l = un,
  732. u = rn,
  733. h = nS(iS(l(t, i, o), 1), 0),
  734. c = nS(iS(l(e, n, a), 1), 0),
  735. d = u(t, i, o, h),
  736. f = u(e, n, a, c);
  737. r[0] = iS(t, o, d), r[1] = iS(e, a, f), s[0] = nS(t, o, d), s[1] = nS(e, a, f) }
  738. function mn(t, e, i, n, o, a, r, s, l) { var u = tt,
  739. h = et,
  740. c = Math.abs(o - a); if (c % rS < 1e-4 && c > 1e-4) return s[0] = t - i, s[1] = e - n, l[0] = t + i, void(l[1] = e + n); if (sS[0] = aS(o) * i + t, sS[1] = oS(o) * n + e, lS[0] = aS(a) * i + t, lS[1] = oS(a) * n + e, u(s, sS, lS), h(l, sS, lS), (o %= rS) < 0 && (o += rS), (a %= rS) < 0 && (a += rS), o > a && !r ? a += rS : o < a && r && (o += rS), r) { var d = a;
  741. a = o, o = d } for (var f = 0; f < a; f += Math.PI / 2) f > o && (uS[0] = aS(f) * i + t, uS[1] = oS(f) * n + e, u(s, uS, s), h(l, uS, l)) }
  742. function vn(t, e, i, n, o, a, r) { if (0 === o) return !1; var s = o,
  743. l = 0,
  744. u = t; if (r > e + s && r > n + s || r < e - s && r < n - s || a > t + s && a > i + s || a < t - s && a < i - s) return !1; if (t === i) return Math.abs(a - t) <= s / 2; var h = (l = (e - n) / (t - i)) * a - r + (u = (t * n - i * e) / (t - i)); return h * h / (l * l + 1) <= s / 2 * s / 2 }
  745. function yn(t, e, i, n, o, a, r, s, l, u, h) { if (0 === l) return !1; var c = l; return !(h > e + c && h > n + c && h > a + c && h > s + c || h < e - c && h < n - c && h < a - c && h < s - c || u > t + c && u > i + c && u > o + c && u > r + c || u < t - c && u < i - c && u < o - c && u < r - c) && an(t, e, i, n, o, a, r, s, u, h, null) <= c / 2 }
  746. function xn(t, e, i, n, o, a, r, s, l) { if (0 === r) return !1; var u = r; return !(l > e + u && l > n + u && l > a + u || l < e - u && l < n - u && l < a - u || s > t + u && s > i + u && s > o + u || s < t - u && s < i - u && s < o - u) && cn(t, e, i, n, o, a, s, l, null) <= u / 2 }
  747. function _n(t) { return (t %= IS) < 0 && (t += IS), t }
  748. function wn(t, e, i, n, o, a, r, s, l) { if (0 === r) return !1; var u = r;
  749. s -= t, l -= e; var h = Math.sqrt(s * s + l * l); if (h - u > i || h + u < i) return !1; if (Math.abs(n - o) % TS < 1e-4) return !0; if (a) { var c = n;
  750. n = _n(o), o = _n(c) } else n = _n(n), o = _n(o);
  751. n > o && (o += TS); var d = Math.atan2(l, s); return d < 0 && (d += TS), d >= n && d <= o || d + TS >= n && d + TS <= o }
  752. function bn(t, e, i, n, o, a) { if (a > e && a > n || a < e && a < n) return 0; if (n === e) return 0; var r = n < e ? 1 : -1,
  753. s = (a - e) / (n - e);
  754. 1 !== s && 0 !== s || (r = n < e ? .5 : -.5); var l = s * (i - t) + t; return l === o ? 1 / 0 : l > o ? r : 0 }
  755. function Sn(t, e) { return Math.abs(t - e) < CS }
  756. function Mn() { var t = kS[0];
  757. kS[0] = kS[1], kS[1] = t }
  758. function In(t, e, i, n, o, a, r, s, l, u) { if (u > e && u > n && u > a && u > s || u < e && u < n && u < a && u < s) return 0; var h = en(e, n, a, s, u, LS); if (0 === h) return 0; for (var c, d, f = 0, p = -1, g = 0; g < h; g++) { var m = LS[g],
  759. v = 0 === m || 1 === m ? .5 : 1;
  760. Qi(t, i, o, r, m) < l || (p < 0 && (p = nn(e, n, a, s, kS), kS[1] < kS[0] && p > 1 && Mn(), c = Qi(e, n, a, s, kS[0]), p > 1 && (d = Qi(e, n, a, s, kS[1]))), 2 == p ? m < kS[0] ? f += c < e ? v : -v : m < kS[1] ? f += d < c ? v : -v : f += s < d ? v : -v : m < kS[0] ? f += c < e ? v : -v : f += s < c ? v : -v) } return f }
  761. function Tn(t, e, i, n, o, a, r, s) { if (s > e && s > n && s > a || s < e && s < n && s < a) return 0; var l = ln(e, n, a, s, LS); if (0 === l) return 0; var u = un(e, n, a); if (u >= 0 && u <= 1) { for (var h = 0, c = rn(e, n, a, u), d = 0; d < l; d++) { f = 0 === LS[d] || 1 === LS[d] ? .5 : 1;
  762. (p = rn(t, i, o, LS[d])) < r || (LS[d] < u ? h += c < e ? f : -f : h += a < c ? f : -f) } return h } var f = 0 === LS[0] || 1 === LS[0] ? .5 : 1,
  763. p = rn(t, i, o, LS[0]); return p < r ? 0 : a < e ? f : -f }
  764. function An(t, e, i, n, o, a, r, s) { if ((s -= e) > i || s < -i) return 0;
  765. u = Math.sqrt(i * i - s * s);
  766. LS[0] = -u, LS[1] = u; var l = Math.abs(n - o); if (l < 1e-4) return 0; if (l % DS < 1e-4) { n = 0, o = DS;
  767. p = a ? 1 : -1; return r >= LS[0] + t && r <= LS[1] + t ? p : 0 } if (a) { var u = n;
  768. n = _n(o), o = _n(u) } else n = _n(n), o = _n(o);
  769. n > o && (o += DS); for (var h = 0, c = 0; c < 2; c++) { var d = LS[c]; if (d + t > r) { var f = Math.atan2(s, d),
  770. p = a ? 1 : -1;
  771. f < 0 && (f = DS + f), (f >= n && f <= o || f + DS >= n && f + DS <= o) && (f > Math.PI / 2 && f < 1.5 * Math.PI && (p = -p), h += p) } } return h }
  772. function Dn(t, e, i, n, o) { for (var a = 0, r = 0, s = 0, l = 0, u = 0, h = 0; h < t.length;) { var c = t[h++]; switch (c === AS.M && h > 1 && (i || (a += bn(r, s, l, u, n, o))), 1 == h && (l = r = t[h], u = s = t[h + 1]), c) {
  773. case AS.M:
  774. r = l = t[h++], s = u = t[h++]; break;
  775. case AS.L:
  776. if (i) { if (vn(r, s, t[h], t[h + 1], e, n, o)) return !0 } else a += bn(r, s, t[h], t[h + 1], n, o) || 0;
  777. r = t[h++], s = t[h++]; break;
  778. case AS.C:
  779. if (i) { if (yn(r, s, t[h++], t[h++], t[h++], t[h++], t[h], t[h + 1], e, n, o)) return !0 } else a += In(r, s, t[h++], t[h++], t[h++], t[h++], t[h], t[h + 1], n, o) || 0;
  780. r = t[h++], s = t[h++]; break;
  781. case AS.Q:
  782. if (i) { if (xn(r, s, t[h++], t[h++], t[h], t[h + 1], e, n, o)) return !0 } else a += Tn(r, s, t[h++], t[h++], t[h], t[h + 1], n, o) || 0;
  783. r = t[h++], s = t[h++]; break;
  784. case AS.A:
  785. var d = t[h++],
  786. f = t[h++],
  787. p = t[h++],
  788. g = t[h++],
  789. m = t[h++],
  790. v = t[h++],
  791. y = (t[h++], 1 - t[h++]),
  792. x = Math.cos(m) * p + d,
  793. _ = Math.sin(m) * g + f;
  794. h > 1 ? a += bn(r, s, x, _, n, o) : (l = x, u = _); var w = (n - d) * g / p + d; if (i) { if (wn(d, f, g, m, m + v, y, e, w, o)) return !0 } else a += An(d, f, g, m, m + v, y, w, o);
  795. r = Math.cos(m + v) * p + d, s = Math.sin(m + v) * g + f; break;
  796. case AS.R:
  797. l = r = t[h++], u = s = t[h++]; var x = l + t[h++],
  798. _ = u + t[h++]; if (i) { if (vn(l, u, x, u, e, n, o) || vn(x, u, x, _, e, n, o) || vn(x, _, l, _, e, n, o) || vn(l, _, l, u, e, n, o)) return !0 } else a += bn(x, u, x, _, n, o), a += bn(l, _, l, u, n, o); break;
  799. case AS.Z:
  800. if (i) { if (vn(r, s, l, u, e, n, o)) return !0 } else a += bn(r, s, l, u, n, o);
  801. r = l, s = u } } return i || Sn(s, u) || (a += bn(r, s, l, u, n, o) || 0), 0 !== a }
  802. function Cn(t, e, i) { return Dn(t, 0, !1, e, i) }
  803. function Ln(t, e, i, n) { return Dn(t, e, !0, i, n) }
  804. function kn(t) { ui.call(this, t), this.path = null }
  805. function Pn(t, e, i, n, o, a, r, s, l, u, h) { var c = l * (HS / 180),
  806. d = WS(c) * (t - i) / 2 + FS(c) * (e - n) / 2,
  807. f = -1 * FS(c) * (t - i) / 2 + WS(c) * (e - n) / 2,
  808. p = d * d / (r * r) + f * f / (s * s);
  809. p > 1 && (r *= GS(p), s *= GS(p)); var g = (o === a ? -1 : 1) * GS((r * r * (s * s) - r * r * (f * f) - s * s * (d * d)) / (r * r * (f * f) + s * s * (d * d))) || 0,
  810. m = g * r * f / s,
  811. v = g * -s * d / r,
  812. y = (t + i) / 2 + WS(c) * m - FS(c) * v,
  813. x = (e + n) / 2 + FS(c) * m + WS(c) * v,
  814. _ = XS([1, 0], [(d - m) / r, (f - v) / s]),
  815. w = [(d - m) / r, (f - v) / s],
  816. b = [(-1 * d - m) / r, (-1 * f - v) / s],
  817. S = XS(w, b);
  818. US(w, b) <= -1 && (S = HS), US(w, b) >= 1 && (S = 0), 0 === a && S > 0 && (S -= 2 * HS), 1 === a && S < 0 && (S += 2 * HS), h.addData(u, y, x, r, s, _, S, c, a) }
  819. function Nn(t) { if (!t) return new MS; for (var e, i = 0, n = 0, o = i, a = n, r = new MS, s = MS.CMD, l = t.match(jS), u = 0; u < l.length; u++) { for (var h, c = l[u], d = c.charAt(0), f = c.match(YS) || [], p = f.length, g = 0; g < p; g++) f[g] = parseFloat(f[g]); for (var m = 0; m < p;) { var v, y, x, _, w, b, S, M = i,
  820. I = n; switch (d) {
  821. case "l":
  822. i += f[m++], n += f[m++], h = s.L, r.addData(h, i, n); break;
  823. case "L":
  824. i = f[m++], n = f[m++], h = s.L, r.addData(h, i, n); break;
  825. case "m":
  826. i += f[m++], n += f[m++], h = s.M, r.addData(h, i, n), o = i, a = n, d = "l"; break;
  827. case "M":
  828. i = f[m++], n = f[m++], h = s.M, r.addData(h, i, n), o = i, a = n, d = "L"; break;
  829. case "h":
  830. i += f[m++], h = s.L, r.addData(h, i, n); break;
  831. case "H":
  832. i = f[m++], h = s.L, r.addData(h, i, n); break;
  833. case "v":
  834. n += f[m++], h = s.L, r.addData(h, i, n); break;
  835. case "V":
  836. n = f[m++], h = s.L, r.addData(h, i, n); break;
  837. case "C":
  838. 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;
  839. case "c":
  840. 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;
  841. case "S":
  842. v = i, y = n; var T = r.len(),
  843. A = r.data;
  844. 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;
  845. case "s":
  846. v = i, y = n; var T = r.len(),
  847. A = r.data;
  848. 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;
  849. case "Q":
  850. M = f[m++], I = f[m++], i = f[m++], n = f[m++], h = s.Q, r.addData(h, M, I, i, n); break;
  851. case "q":
  852. 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;
  853. case "T":
  854. v = i, y = n; var T = r.len(),
  855. A = r.data;
  856. 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;
  857. case "t":
  858. v = i, y = n; var T = r.len(),
  859. A = r.data;
  860. 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;
  861. case "A":
  862. x = f[m++], _ = f[m++], w = f[m++], b = f[m++], S = f[m++], Pn(M = i, I = n, i = f[m++], n = f[m++], b, S, x, _, w, h = s.A, r); break;
  863. case "a":
  864. x = f[m++], _ = f[m++], w = f[m++], b = f[m++], S = f[m++], Pn(M = i, I = n, i += f[m++], n += f[m++], b, S, x, _, w, h = s.A, r) } } "z" !== d && "Z" !== d || (h = s.Z, r.addData(h), i = o, n = a), e = h } return r.toStatic(), r }
  865. function On(t, e) { var i = Nn(t); return e = e || {}, e.buildPath = function(t) { if (t.setData) t.setData(i.data), (e = t.getContext()) && t.rebuildPath(e);
  866. else { var e = t;
  867. i.rebuildPath(e) } }, e.applyTransform = function(t) { VS(i, t), this.dirty(!0) }, e }
  868. function En(t, e) { return new kn(On(t, e)) }
  869. function Rn(t, e) { return kn.extend(On(t, e)) }
  870. function zn(t, e, i, n, o, a, r) { var s = .5 * (i - t),
  871. l = .5 * (n - e); return (2 * (e - i) + s + l) * r + (-3 * (e - i) - 2 * s - l) * a + s * o + e }
  872. function Bn(t, e, i) { var n = e.points,
  873. o = e.smooth; if (n && n.length >= 2) { if (o && "spline" !== o) { var a = iM(n, o, i, e.smoothConstraint);
  874. t.moveTo(n[0][0], n[0][1]); for (var r = n.length, s = 0; s < (i ? r : r - 1); s++) { var l = a[2 * s],
  875. u = a[2 * s + 1],
  876. h = n[(s + 1) % r];
  877. t.bezierCurveTo(l[0], l[1], u[0], u[1], h[0], h[1]) } } else { "spline" === o && (n = eM(n, i)), t.moveTo(n[0][0], n[0][1]); for (var s = 1, c = n.length; s < c; s++) t.lineTo(n[s][0], n[s][1]) }
  878. i && t.closePath() } }
  879. function Vn(t, e, i) { var n = t.cpx2,
  880. o = t.cpy2; return null === n || null === o ? [(i ? tn : Qi)(t.x1, t.cpx1, t.cpx2, t.x2, e), (i ? tn : Qi)(t.y1, t.cpy1, t.cpy2, t.y2, e)] : [(i ? sn : rn)(t.x1, t.cpx1, t.x2, e), (i ? sn : rn)(t.y1, t.cpy1, t.y2, e)] }
  881. function Gn(t) { ui.call(this, t), this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.notClear = !0 }
  882. function Fn(t) { return kn.extend(t) }
  883. function Wn(t, e, i, n) { var o = En(t, e); return i && ("center" === n && (i = Zn(i, o.getBoundingRect())), Un(o, i)), o }
  884. function Hn(t, e, i) { var n = new hi({ 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 };
  885. n.setStyle(Zn(e, o)) } } }); return n }
  886. function Zn(t, e) { var i, n = e.width / e.height,
  887. o = t.height * n; return i = o <= t.width ? t.height : (o = t.width) / n, { x: t.x + t.width / 2 - o / 2, y: t.y + t.height / 2 - i / 2, width: o, height: i } }
  888. function Un(t, e) { if (t.applyTransform) { var i = t.getBoundingRect().calculateTransform(e);
  889. t.applyTransform(i) } }
  890. function Xn(t) { var e = t.shape,
  891. i = t.style.lineWidth; return gM(2 * e.x1) === gM(2 * e.x2) && (e.x1 = e.x2 = Yn(e.x1, i, !0)), gM(2 * e.y1) === gM(2 * e.y2) && (e.y1 = e.y2 = Yn(e.y1, i, !0)), t }
  892. function jn(t) { var e = t.shape,
  893. i = t.style.lineWidth,
  894. n = e.x,
  895. o = e.y,
  896. a = e.width,
  897. r = e.height; return e.x = Yn(e.x, i, !0), e.y = Yn(e.y, i, !0), e.width = Math.max(Yn(n + a, i, !1) - e.x, 0 === a ? 0 : 1), e.height = Math.max(Yn(o + r, i, !1) - e.y, 0 === r ? 0 : 1), t }
  898. function Yn(t, e, i) { var n = gM(2 * t); return (n + gM(e)) % 2 == 0 ? n / 2 : (n + (i ? 1 : -1)) / 2 }
  899. function qn(t) { return null != t && "none" !== t }
  900. function Kn(t) { if ("string" != typeof t) return t; var e = _M.get(t); return e || (e = Gt(t, -.1), wM < 1e4 && (_M.set(t, e), wM++)), e }
  901. function $n(t) { if (t.__hoverStlDirty) { t.__hoverStlDirty = !1; var e = t.__hoverStl; if (e) { var i = t.__normalStl = {},
  902. n = t.style; for (var o in e) null != e[o] && (i[o] = n[o]);
  903. i.fill = n.fill, i.stroke = n.stroke } else t.__normalStl = null } }
  904. function Jn(t) { var e = t.__hoverStl; if (e && !t.__highlighted) { var i = t.useHoverLayer;
  905. t.__highlighted = i ? "layer" : "plain"; var n = t.__zr; if (n || !i) { var o = t,
  906. a = t.style;
  907. i && (a = (o = n.addHover(t)).style), xo(a), i || $n(o), a.extendFrom(e), Qn(a, e, "fill"), Qn(a, e, "stroke"), yo(a), i || (t.dirty(!1), t.z2 += 1) } } }
  908. function Qn(t, e, i) {!qn(e[i]) && qn(t[i]) && (t[i] = Kn(t[i])) }
  909. function to(t) { t.__highlighted && (eo(t), t.__highlighted = !1) }
  910. function eo(t) { var e = t.__highlighted; if ("layer" === e) t.__zr && t.__zr.removeHover(t);
  911. else if (e) { var i = t.style,
  912. n = t.__normalStl;
  913. n && (xo(i), t.setStyle(n), yo(i), t.z2 -= 1) } }
  914. function io(t, e) { t.isGroup ? t.traverse(function(t) {!t.isGroup && e(t) }) : e(t) }
  915. function no(t, e) { e = t.__hoverStl = !1 !== e && (e || {}), t.__hoverStlDirty = !0, t.__highlighted && (to(t), Jn(t)) }
  916. function oo(t) { return t && t.__isEmphasisEntered }
  917. function ao(t) { this.__hoverSilentOnTouch && t.zrByTouch || !this.__isEmphasisEntered && io(this, Jn) }
  918. function ro(t) { this.__hoverSilentOnTouch && t.zrByTouch || !this.__isEmphasisEntered && io(this, to) }
  919. function so() { this.__isEmphasisEntered = !0, io(this, Jn) }
  920. function lo() { this.__isEmphasisEntered = !1, io(this, to) }
  921. function uo(t, e, i) { t.isGroup ? t.traverse(function(t) {!t.isGroup && no(t, t.hoverStyle || e) }) : no(t, t.hoverStyle || e), ho(t, i) }
  922. function ho(t, e) { var i = !1 === e; if (t.__hoverSilentOnTouch = null != e && e.hoverSilentOnTouch, !i || t.__hoverStyleTrigger) { var n = i ? "off" : "on";
  923. t[n]("mouseover", ao)[n]("mouseout", ro), t[n]("emphasis", so)[n]("normal", lo), t.__hoverStyleTrigger = !i } }
  924. function co(t, e, i, n, o, a, r) { var s, l = (o = o || yM).labelFetcher,
  925. u = o.labelDataIndex,
  926. h = o.labelDimIndex,
  927. c = i.getShallow("show"),
  928. d = n.getShallow("show");
  929. (c || d) && (l && (s = l.getFormattedLabel(u, "normal", null, h)), null == s && (s = x(o.defaultText) ? o.defaultText(u, o) : o.defaultText)); var f = c ? s : null,
  930. p = d ? A(l ? l.getFormattedLabel(u, "emphasis", null, h) : null, s) : null;
  931. null == f && null == p || (fo(t, i, a, o), fo(e, n, r, o, !0)), t.text = f, e.text = p }
  932. function fo(t, e, i, n, o) { return po(t, e, n, o), i && a(t, i), t }
  933. function po(t, e, i, n) { if ((i = i || yM).isRectText) { var o = e.getShallow("position") || (n ? null : "inside"); "outside" === o && (o = "top"), t.textPosition = o, t.textOffset = e.getShallow("offset"); var a = e.getShallow("rotate");
  934. null != a && (a *= Math.PI / 180), t.textRotation = a, t.textDistance = A(e.getShallow("distance"), n ? null : 5) } var r, s = e.ecModel,
  935. l = s && s.option.textStyle,
  936. u = go(e); if (u) { r = {}; for (var h in u)
  937. if (u.hasOwnProperty(h)) { var c = e.getModel(["rich", h]);
  938. mo(r[h] = {}, c, l, i, n) } } return t.rich = r, mo(t, e, l, i, n, !0), i.forceRich && !i.textStyle && (i.textStyle = {}), t }
  939. function go(t) { for (var e; t && t !== t.ecModel;) { var i = (t.option || yM).rich; if (i) { e = e || {}; for (var n in i) i.hasOwnProperty(n) && (e[n] = 1) }
  940. t = t.parentModel } return e }
  941. function mo(t, e, i, n, o, a) { i = !o && i || yM, t.textFill = vo(e.getShallow("color"), n) || i.color, t.textStroke = vo(e.getShallow("textBorderColor"), n) || i.textBorderColor, t.textStrokeWidth = A(e.getShallow("textBorderWidth"), i.textBorderWidth), t.insideRawTextPosition = t.textPosition, o || (a && (t.insideRollbackOpt = n, yo(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 = vo(e.getShallow("backgroundColor"), n), t.textPadding = e.getShallow("padding"), t.textBorderColor = vo(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 }
  942. function vo(t, e) { return "auto" !== t ? t : e && e.autoColor ? e.autoColor : null }
  943. function yo(t) { var e = t.insideRollbackOpt; if (e && null == t.textFill) { var i, n = e.useInsideStyle,
  944. o = t.insideRawTextPosition,
  945. a = e.autoColor;!1 !== n && (!0 === n || e.isRectText && o && "string" == typeof o && o.indexOf("inside") >= 0) ? (i = { textFill: null, textStroke: t.textStroke, textStrokeWidth: t.textStrokeWidth }, t.textFill = "#fff", null == t.textStroke && (t.textStroke = a, null == t.textStrokeWidth && (t.textStrokeWidth = 2))) : null != a && (i = { textFill: null }, t.textFill = a), i && (t.insideRollback = i) } }
  946. function xo(t) { var e = t.insideRollback;
  947. e && (t.textFill = e.textFill, t.textStroke = e.textStroke, t.textStrokeWidth = e.textStrokeWidth, t.insideRollback = null) }
  948. function _o(t, e) { var i = e || e.getModel("textStyle"); return P([t.fontStyle || i && i.getShallow("fontStyle") || "", t.fontWeight || i && i.getShallow("fontWeight") || "", (t.fontSize || i && i.getShallow("fontSize") || 12) + "px", t.fontFamily || i && i.getShallow("fontFamily") || "sans-serif"].join(" ")) }
  949. function wo(t, e, i, n, o, a) { if ("function" == typeof o && (a = o, o = null), n && n.isAnimationEnabled()) { var r = t ? "Update" : "",
  950. s = n.getShallow("animationDuration" + r),
  951. l = n.getShallow("animationEasing" + r),
  952. u = n.getShallow("animationDelay" + r); "function" == typeof u && (u = u(o, n.getAnimationDelayParams ? n.getAnimationDelayParams(e, o) : null)), "function" == typeof s && (s = s(o)), s > 0 ? e.animateTo(i, s, u || 0, l, a, !!a) : (e.stopAnimation(), e.attr(i), a && a()) } else e.stopAnimation(), e.attr(i), a && a() }
  953. function bo(t, e, i, n, o) { wo(!0, t, e, i, n, o) }
  954. function So(t, e, i, n, o) { wo(!1, t, e, i, n, o) }
  955. function Mo(t, e) { for (var i = vt([]); t && t !== e;) xt(i, t.getLocalTransform(), i), t = t.parent; return i }
  956. function Io(t, e, i) { return e && !c(e) && (e = mw.getLocalTransform(e)), i && (e = St([], e)), Q([], t, e) }
  957. function To(t, e, i) { var n = 0 === e[4] || 0 === e[5] || 0 === e[0] ? 1 : Math.abs(2 * e[4] / e[0]),
  958. o = 0 === e[4] || 0 === e[5] || 0 === e[2] ? 1 : Math.abs(2 * e[4] / e[2]),
  959. a = ["left" === t ? -n : "right" === t ? n : 0, "top" === t ? -o : "bottom" === t ? o : 0]; return a = Io(a, e, i), Math.abs(a[0]) > Math.abs(a[1]) ? a[0] > 0 ? "right" : "left" : a[1] > 0 ? "bottom" : "top" }
  960. function Ao(t, e, i, n) {
  961. function o(t) { var e = { position: F(t.position), rotation: t.rotation }; return t.shape && (e.shape = a({}, t.shape)), e } if (t && e) { var r = function(t) { var e = {}; return t.traverse(function(t) {!t.isGroup && t.anid && (e[t.anid] = t) }), e }(t);
  962. e.traverse(function(t) { if (!t.isGroup && t.anid) { var e = r[t.anid]; if (e) { var n = o(t);
  963. t.attr(o(e)), bo(t, n, i, t.dataIndex) } } }) } }
  964. function Do(t, e) { return f(t, function(t) { var i = t[0];
  965. i = mM(i, e.x), i = vM(i, e.x + e.width); var n = t[1]; return n = mM(n, e.y), n = vM(n, e.y + e.height), [i, n] }) }
  966. function Co(t, e, i) { var n = (e = a({ rectHover: !0 }, e)).style = { strokeNoScale: !0 }; if (i = i || { x: -1, y: -1, width: 2, height: 2 }, t) return 0 === t.indexOf("image://") ? (n.image = t.slice(8), r(n, i), new hi(e)) : Wn(t.replace("path://", ""), e, i, "center") }
  967. function Lo(t, e, i) { this.parentModel = e, this.ecModel = i, this.option = t }
  968. function ko(t, e, i) { for (var n = 0; n < e.length && (!e[n] || null != (t = t && "object" == typeof t ? t[e[n]] : null)); n++); return null == t && i && (t = i.get(e)), t }
  969. function Po(t, e) { var i = DM(t).getParent; return i ? i.call(t, e) : t.parentModel }
  970. function No(t) { return [t || "", CM++, Math.random().toFixed(5)].join("_") }
  971. function Oo(t) { return t.replace(/^\s+/, "").replace(/\s+$/, "") }
  972. function Eo(t, e, i, n) { var o = e[1] - e[0],
  973. a = i[1] - i[0]; if (0 === o) return 0 === a ? i[0] : (i[0] + i[1]) / 2; if (n)
  974. 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] }
  975. else { if (t === e[0]) return i[0]; if (t === e[1]) return i[1] } return (t - e[0]) / o * a + i[0] }
  976. function Ro(t, e) { switch (t) {
  977. case "center":
  978. case "middle":
  979. t = "50%"; break;
  980. case "left":
  981. case "top":
  982. t = "0%"; break;
  983. case "right":
  984. case "bottom":
  985. t = "100%" } return "string" == typeof t ? Oo(t).match(/%$/) ? parseFloat(t) / 100 * e : parseFloat(t) : null == t ? NaN : +t }
  986. function zo(t, e, i) { return null == e && (e = 10), e = Math.min(Math.max(0, e), 20), t = (+t).toFixed(e), i ? t : +t }
  987. function Bo(t) { return t.sort(function(t, e) { return t - e }), t }
  988. function Vo(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 }
  989. function Go(t) { var e = t.toString(),
  990. i = e.indexOf("e"); if (i > 0) { var n = +e.slice(i + 1); return n < 0 ? -n : 0 } var o = e.indexOf("."); return o < 0 ? 0 : e.length - 1 - o }
  991. function Fo(t, e) { var i = Math.log,
  992. n = Math.LN10,
  993. o = Math.floor(i(t[1] - t[0]) / n),
  994. a = Math.round(i(Math.abs(e[1] - e[0])) / n),
  995. r = Math.min(Math.max(-o + a, 0), 20); return isFinite(r) ? r : 20 }
  996. function Wo(t, e, i) { if (!t[e]) return 0; var n = p(t, function(t, e) { return t + (isNaN(e) ? 0 : e) }, 0); if (0 === n) return 0; for (var o = Math.pow(10, i), a = f(t, function(t) { return (isNaN(t) ? 0 : t) / n * o * 100 }), r = 100 * o, s = f(a, function(t) { return Math.floor(t) }), l = p(s, function(t, e) { return t + e }, 0), u = f(a, function(t, e) { return t - s[e] }); l < r;) { for (var h = Number.NEGATIVE_INFINITY, c = null, d = 0, g = u.length; d < g; ++d) u[d] > h && (h = u[d], c = d);++s[c], u[c] = 0, ++l } return s[e] / o }
  997. function Ho(t) { var e = 2 * Math.PI; return (t % e + e) % e }
  998. function Zo(t) { return t > -LM && t < LM }
  999. function Uo(t) { if (t instanceof Date) return t; if ("string" == typeof t) { var e = PM.exec(t); if (!e) return new Date(NaN); 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 null == t ? new Date(NaN) : new Date(Math.round(t)) }
  1000. function Xo(t) { return Math.pow(10, jo(t)) }
  1001. function jo(t) { return Math.floor(Math.log(t) / Math.LN10) }
  1002. function Yo(t, e) { var i, n = jo(t),
  1003. o = Math.pow(10, n),
  1004. a = t / o; return i = e ? a < 1.5 ? 1 : a < 2.5 ? 2 : a < 4 ? 3 : a < 7 ? 5 : 10 : a < 1 ? 1 : a < 2 ? 2 : a < 3 ? 3 : a < 5 ? 5 : 10, t = i * o, n >= -20 ? +t.toFixed(n < 0 ? -n : 0) : t }
  1005. function qo(t) {
  1006. function e(t, i, n) { return t.interval[n] < i.interval[n] || t.interval[n] === i.interval[n] && (t.close[n] - i.close[n] == (n ? -1 : 1) || !n && e(t, i, 1)) }
  1007. t.sort(function(t, i) { return e(t, i, 0) ? -1 : 1 }); for (var i = -1 / 0, n = 1, o = 0; o < t.length;) { for (var a = t[o].interval, r = t[o].close, s = 0; s < 2; s++) a[s] <= i && (a[s] = i, r[s] = s ? 1 : 1 - n), i = a[s], n = r[s];
  1008. a[0] === a[1] && r[0] * r[1] != 1 ? t.splice(o, 1) : o++ } return t }
  1009. function Ko(t) { return t - parseFloat(t) >= 0 }
  1010. function $o(t) { return isNaN(t) ? "-" : (t = (t + "").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (t.length > 1 ? "." + t[1] : "") }
  1011. function Jo(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 }
  1012. function Qo(t) { return null == t ? "" : (t + "").replace(EM, function(t, e) { return RM[e] }) }
  1013. function ta(t, e, i) { y(e) || (e = [e]); var n = e.length; if (!n) return ""; for (var o = e[0].$vars || [], a = 0; a < o.length; a++) { var r = zM[a];
  1014. t = t.replace(BM(r), BM(r, 0)) } for (var s = 0; s < n; s++)
  1015. for (var l = 0; l < o.length; l++) { var u = e[s][o[l]];
  1016. t = t.replace(BM(zM[l], s), i ? Qo(u) : u) }
  1017. return t }
  1018. function ea(t, e, i) { return d(e, function(e, n) { t = t.replace("{" + n + "}", i ? Qo(e) : e) }), t }
  1019. function ia(t, e) { var i = (t = _(t) ? { color: t, extraCssText: e } : t || {}).color,
  1020. n = t.type,
  1021. e = t.extraCssText,
  1022. o = t.renderMode || "html",
  1023. a = t.markerId || "X"; return i ? "html" === o ? "subItem" === n ? '<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:' + Qo(i) + ";" + (e || "") + '"></span>' : '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:' + Qo(i) + ";" + (e || "") + '"></span>' : { renderMode: o, content: "{marker" + a + "|} ", style: { color: i } } : "" }
  1024. function na(t, e) { return t += "", "0000".substr(0, e - t.length) + t }
  1025. function oa(t, e, i) { "week" !== t && "month" !== t && "quarter" !== t && "half-year" !== t && "year" !== t || (t = "MM-dd\nyyyy"); var n = Uo(e),
  1026. o = i ? "UTC" : "",
  1027. a = n["get" + o + "FullYear"](),
  1028. r = n["get" + o + "Month"]() + 1,
  1029. s = n["get" + o + "Date"](),
  1030. l = n["get" + o + "Hours"](),
  1031. u = n["get" + o + "Minutes"](),
  1032. h = n["get" + o + "Seconds"](),
  1033. c = n["get" + o + "Milliseconds"](); return t = t.replace("MM", na(r, 2)).replace("M", r).replace("yyyy", a).replace("yy", a % 100).replace("dd", na(s, 2)).replace("d", s).replace("hh", na(l, 2)).replace("h", l).replace("mm", na(u, 2)).replace("m", u).replace("ss", na(h, 2)).replace("s", h).replace("SSS", na(c, 3)) }
  1034. function aa(t) { return t ? t.charAt(0).toUpperCase() + t.substr(1) : t }
  1035. function ra(t, e, i, n, o) { var a = 0,
  1036. r = 0;
  1037. null == n && (n = 1 / 0), null == o && (o = 1 / 0); var s = 0;
  1038. e.eachChild(function(l, u) { var h, c, d = l.position,
  1039. f = l.getBoundingRect(),
  1040. p = e.childAt(u + 1),
  1041. g = p && p.getBoundingRect(); if ("horizontal" === t) { var m = f.width + (g ? -g.x + f.x : 0);
  1042. (h = a + m) > n || l.newline ? (a = 0, h = m, r += s + i, s = f.height) : s = Math.max(s, f.height) } else { var v = f.height + (g ? -g.y + f.y : 0);
  1043. (c = r + v) > o || l.newline ? (a += s + i, r = 0, c = v, s = f.width) : s = Math.max(s, f.width) }
  1044. l.newline || (d[0] = a, d[1] = r, "horizontal" === t ? a = h + i : r = c + i) }) }
  1045. function sa(t, e, i) { var n = e.width,
  1046. o = e.height,
  1047. a = Ro(t.x, n),
  1048. r = Ro(t.y, o),
  1049. s = Ro(t.x2, n),
  1050. l = Ro(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 = OM(i || 0), { width: Math.max(s - a - i[1] - i[3], 0), height: Math.max(l - r - i[0] - i[2], 0) } }
  1051. function la(t, e, i) { i = OM(i || 0); var n = e.width,
  1052. o = e.height,
  1053. a = Ro(t.left, n),
  1054. r = Ro(t.top, o),
  1055. s = Ro(t.right, n),
  1056. l = Ro(t.bottom, o),
  1057. u = Ro(t.width, n),
  1058. h = Ro(t.height, o),
  1059. c = i[2] + i[0],
  1060. d = i[1] + i[3],
  1061. 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) {
  1062. case "center":
  1063. a = n / 2 - u / 2 - i[3]; break;
  1064. case "right":
  1065. a = n - u - d } switch (t.top || t.bottom) {
  1066. case "middle":
  1067. case "center":
  1068. r = o / 2 - h / 2 - i[0]; break;
  1069. case "bottom":
  1070. r = o - h - c }
  1071. 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 ue(a + i[3], r + i[0], u, h); return p.margin = i, p }
  1072. function ua(t, e, i, n, o) { var a = !o || !o.hv || o.hv[0],
  1073. s = !o || !o.hv || o.hv[1],
  1074. l = o && o.boundingMode || "all"; if (a || s) { var u; if ("raw" === l) u = "group" === t.type ? new ue(0, 0, +e.width || 0, +e.height || 0) : t.getBoundingRect();
  1075. else if (u = t.getBoundingRect(), t.needLocalTransform()) { var h = t.getLocalTransform();
  1076. (u = u.clone()).applyTransform(h) }
  1077. e = la(r({ width: u.width, height: u.height }, e), i, n); var c = t.position,
  1078. d = a ? e.x - u.x : 0,
  1079. f = s ? e.y - u.y : 0;
  1080. t.attr("position", "raw" === l ? [d, f] : [c[0] + d, c[1] + f]) } }
  1081. function ha(t, e) { return null != t[ZM[e][0]] || null != t[ZM[e][1]] && null != t[ZM[e][2]] }
  1082. function ca(t, e, i) {
  1083. function n(i, n) { var r = {},
  1084. l = 0,
  1085. u = {},
  1086. h = 0; if (WM(i, function(e) { u[e] = t[e] }), WM(i, function(t) { o(e, t) && (r[t] = u[t] = e[t]), a(r, t) && l++, a(u, t) && h++ }), s[n]) return a(e, i[1]) ? u[i[2]] = null : a(e, i[2]) && (u[i[1]] = null), u; if (2 !== h && l) { if (l >= 2) return r; for (var c = 0; c < i.length; c++) { var d = i[c]; if (!o(r, d) && o(t, d)) { r[d] = t[d]; break } } return r } return u }
  1087. function o(t, e) { return t.hasOwnProperty(e) }
  1088. function a(t, e) { return null != t[e] && "auto" !== t[e] }
  1089. function r(t, e, i) { WM(t, function(t) { e[t] = i[t] }) }!w(i) && (i = {}); var s = i.ignoreSize;!y(s) && (s = [s, s]); var l = n(ZM[0], 0),
  1090. u = n(ZM[1], 1);
  1091. r(ZM[0], t, l), r(ZM[1], t, u) }
  1092. function da(t) { return fa({}, t) }
  1093. function fa(t, e) { return e && t && WM(HM, function(i) { e.hasOwnProperty(i) && (t[i] = e[i]) }), t }
  1094. function pa(t, e) { for (var i = t.length, n = 0; n < i; n++)
  1095. if (t[n].length > e) return t[n];
  1096. return t[i - 1] }
  1097. function ga(t) { var e = t.get("coordinateSystem"),
  1098. i = { coordSysName: e, coordSysDims: [], axisMap: R(), categoryAxisMap: R() },
  1099. n = QM[e]; if (n) return n(t, i, i.axisMap, i.categoryAxisMap), i }
  1100. function ma(t) { return "category" === t.get("type") }
  1101. function va(t) { this.fromDataset = t.fromDataset, this.data = t.data || (t.sourceFormat === nI ? {} : []), this.sourceFormat = t.sourceFormat || oI, this.seriesLayoutBy = t.seriesLayoutBy || rI, this.dimensionsDefine = t.dimensionsDefine, this.encodeDefine = t.encodeDefine && R(t.encodeDefine), this.startIndex = t.startIndex || 0, this.dimensionsDetectCount = t.dimensionsDetectCount }
  1102. function ya(t) { var e = t.option.source,
  1103. i = oI; if (S(e)) i = aI;
  1104. else if (y(e)) { 0 === e.length && (i = eI); for (var n = 0, o = e.length; n < o; n++) { var a = e[n]; if (null != a) { if (y(a)) { i = eI; break } if (w(a)) { i = iI; break } } } } else if (w(e)) { for (var r in e)
  1105. if (e.hasOwnProperty(r) && c(e[r])) { i = nI; break } } else if (null != e) throw new Error("Invalid data");
  1106. lI(t).sourceFormat = i }
  1107. function xa(t) { return lI(t).source }
  1108. function _a(t) { lI(t).datasetMap = R() }
  1109. function wa(t) { var e = t.option,
  1110. i = e.data,
  1111. n = S(i) ? aI : tI,
  1112. o = !1,
  1113. a = e.seriesLayoutBy,
  1114. r = e.sourceHeader,
  1115. s = e.dimensions,
  1116. l = Aa(t); if (l) { var u = l.option;
  1117. i = u.source, n = lI(l).sourceFormat, o = !0, a = a || u.seriesLayoutBy, null == r && (r = u.sourceHeader), s = s || u.dimensions } var h = ba(i, n, a, r, s),
  1118. c = e.encode;!c && l && (c = Ta(t, l, i, n, a, h)), lI(t).source = new va({ data: i, fromDataset: o, seriesLayoutBy: a, sourceFormat: n, dimensionsDefine: h.dimensionsDefine, startIndex: h.startIndex, dimensionsDetectCount: h.dimensionsDetectCount, encodeDefine: c }) }
  1119. function ba(t, e, i, n, o) { if (!t) return { dimensionsDefine: Sa(o) }; var a, r, s; if (e === eI) "auto" === n || null == n ? Ma(function(t) { null != t && "-" !== t && (_(t) ? null == r && (r = 1) : r = 0) }, i, t, 10) : r = n ? 1 : 0, o || 1 !== r || (o = [], Ma(function(t, e) { o[e] = null != t ? t : "" }, i, t)), a = o ? o.length : i === sI ? t.length : t[0] ? t[0].length : null;
  1120. else if (e === iI) o || (o = Ia(t), s = !0);
  1121. else if (e === nI) o || (o = [], s = !0, d(t, function(t, e) { o.push(e) }));
  1122. else if (e === tI) { var l = Li(t[0]);
  1123. a = y(l) && l.length || 1 } var u; return s && d(o, function(t, e) { "name" === (w(t) ? t.name : t) && (u = e) }), { startIndex: r, dimensionsDefine: Sa(o), dimensionsDetectCount: a, potentialNameDimIndex: u } }
  1124. function Sa(t) { if (t) { var e = R(); return f(t, function(t, i) { if (null == (t = a({}, w(t) ? t : { name: t })).name) return t;
  1125. t.name += "", null == t.displayName && (t.displayName = t.name); var n = e.get(t.name); return n ? t.name += "-" + n.count++ : e.set(t.name, { count: 1 }), t }) } }
  1126. function Ma(t, e, i, n) { if (null == n && (n = 1 / 0), e === sI)
  1127. for (a = 0; a < i.length && a < n; a++) t(i[a] ? i[a][0] : null, a);
  1128. else
  1129. for (var o = i[0] || [], a = 0; a < o.length && a < n; a++) t(o[a], a) }
  1130. function Ia(t) { for (var e, i = 0; i < t.length && !(e = t[i++]);); if (e) { var n = []; return d(e, function(t, e) { n.push(e) }), n } }
  1131. function Ta(t, e, i, n, o, a) { var r = ga(t),
  1132. s = {},
  1133. l = [],
  1134. u = [],
  1135. h = t.subType,
  1136. c = R(["pie", "map", "funnel"]),
  1137. f = R(["line", "bar", "pictorialBar", "scatter", "effectScatter", "candlestick", "boxplot"]); if (r && null != f.get(h)) { var p = t.ecModel,
  1138. g = lI(p).datasetMap,
  1139. m = e.uid + "_" + o,
  1140. v = g.get(m) || g.set(m, { categoryWayDim: 1, valueWayDim: 0 });
  1141. d(r.coordSysDims, function(t) { if (null == r.firstCategoryDimIndex) { e = v.valueWayDim++;
  1142. s[t] = e, u.push(e) } else if (r.categoryAxisMap.get(t)) s[t] = 0, l.push(0);
  1143. else { var e = v.categoryWayDim++;
  1144. s[t] = e, u.push(e) } }) } else if (null != c.get(h)) { for (var y, x = 0; x < 5 && null == y; x++) Ca(i, n, o, a.dimensionsDefine, a.startIndex, x) || (y = x); if (null != y) { s.value = y; var _ = a.potentialNameDimIndex || Math.max(y - 1, 0);
  1145. u.push(_), l.push(_) } } return l.length && (s.itemName = l), u.length && (s.seriesName = u), s }
  1146. function Aa(t) { var e = t.option; if (!e.data) return t.ecModel.getComponent("dataset", e.datasetIndex || 0) }
  1147. function Da(t, e) { return Ca(t.data, t.sourceFormat, t.seriesLayoutBy, t.dimensionsDefine, t.startIndex, e) }
  1148. function Ca(t, e, i, n, o, a) {
  1149. function r(t) { return (null == t || !isFinite(t) || "" === t) && (!(!_(t) || "-" === t) || void 0) } var s; if (S(t)) return !1; var l; if (n && (l = w(l = n[a]) ? l.name : l), e === eI)
  1150. if (i === sI) { for (var u = t[a], h = 0; h < (u || []).length && h < 5; h++)
  1151. if (null != (s = r(u[o + h]))) return s } else
  1152. for (h = 0; h < t.length && h < 5; h++) { var c = t[o + h]; if (c && null != (s = r(c[a]))) return s } else if (e === iI) { if (!l) return; for (h = 0; h < t.length && h < 5; h++)
  1153. if ((d = t[h]) && null != (s = r(d[l]))) return s } else if (e === nI) { if (!l) return; if (!(u = t[l]) || S(u)) return !1; for (h = 0; h < u.length && h < 5; h++)
  1154. if (null != (s = r(u[h]))) return s } else if (e === tI)
  1155. for (h = 0; h < t.length && h < 5; h++) { var d = t[h],
  1156. f = Li(d); if (!y(f)) return !1; if (null != (s = r(f[a]))) return s }
  1157. return !1 }
  1158. function La(t, e) { if (e) { var i = e.seiresIndex,
  1159. n = e.seriesId,
  1160. o = e.seriesName; return null != i && t.componentIndex !== i || null != n && t.id !== n || null != o && t.name !== o } }
  1161. function ka(t, e) { var o = t.color && !t.colorLayer;
  1162. d(e, function(e, a) { "colorLayer" === a && o || YM.hasClass(a) || ("object" == typeof e ? t[a] = t[a] ? n(t[a], e, !1) : i(e) : null == t[a] && (t[a] = e)) }) }
  1163. function Pa(t) { t = t, this.option = {}, this.option[uI] = 1, this._componentsMap = R({ series: [] }), this._seriesIndices, this._seriesIndicesMap, ka(t, this._theme.option), n(t, KM, !1), this.mergeOption(t) }
  1164. function Na(t, e) { y(e) || (e = e ? [e] : []); var i = {}; return d(e, function(e) { i[e] = (t.get(e) || []).slice() }), i }
  1165. function Oa(t, e, i) { return e.type ? e.type : i ? i.subType : YM.determineSubType(t, e) }
  1166. function Ea(t, e) { t._seriesIndicesMap = R(t._seriesIndices = f(e, function(t) { return t.componentIndex }) || []) }
  1167. function Ra(t, e) { return e.hasOwnProperty("subType") ? g(t, function(t) { return t.subType === e.subType }) : t }
  1168. function za(t) { d(cI, function(e) { this[e] = m(t[e], t) }, this) }
  1169. function Ba() { this._coordinateSystems = [] }
  1170. function Va(t) { this._api = t, this._timelineOptions = [], this._mediaList = [], this._mediaDefault, this._currentMediaIndices = [], this._optionBackup, this._newBaseOption }
  1171. function Ga(t, e, i) { var n, o, a = [],
  1172. r = [],
  1173. 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;
  1174. fI(l, function(t) { t && t.option && (t.query ? r.push(t) : n || (n = t)) }) } return o || (o = t), o.timeline || (o.timeline = s), fI([o].concat(a).concat(f(r, function(t) { return t.option })), function(t) { fI(e, function(e) { e(t, i) }) }), { baseOption: o, timelineOptions: a, mediaDefault: n, mediaList: r } }
  1175. function Fa(t, e, i) { var n = { width: e, height: i, aspectratio: e / i },
  1176. o = !0; return d(t, function(t, e) { var i = e.match(vI); if (i && i[1] && i[2]) { var a = i[1],
  1177. r = i[2].toLowerCase();
  1178. Wa(n[r], t, a) || (o = !1) } }), o }
  1179. function Wa(t, e, i) { return "min" === i ? t >= e : "max" === i ? t <= e : t === e }
  1180. function Ha(t, e) { return t.join(",") === e.join(",") }
  1181. function Za(t, e) { fI(e = e || {}, function(e, i) { if (null != e) { var n = t[i]; if (YM.hasClass(i)) { e = Di(e); var o = Pi(n = Di(n), e);
  1182. t[i] = gI(o, function(t) { return t.option && t.exist ? mI(t.exist, t.option, !0) : t.exist || t.option }) } else t[i] = mI(n, e, !0) } }) }
  1183. function Ua(t) { var e = t && t.itemStyle; if (e)
  1184. for (var i = 0, o = _I.length; i < o; i++) { var a = _I[i],
  1185. r = e.normal,
  1186. s = e.emphasis;
  1187. r && r[a] && (t[a] = t[a] || {}, t[a].normal ? n(t[a].normal, r[a]) : t[a].normal = r[a], r[a] = null), s && s[a] && (t[a] = t[a] || {}, t[a].emphasis ? n(t[a].emphasis, s[a]) : t[a].emphasis = s[a], s[a] = null) } }
  1188. function Xa(t, e, i) { if (t && t[e] && (t[e].normal || t[e].emphasis)) { var n = t[e].normal,
  1189. o = t[e].emphasis;
  1190. n && (i ? (t[e].normal = t[e].emphasis = null, r(t[e], n)) : t[e] = n), o && (t.emphasis = t.emphasis || {}, t.emphasis[e] = o) } }
  1191. function ja(t) { Xa(t, "itemStyle"), Xa(t, "lineStyle"), Xa(t, "areaStyle"), Xa(t, "label"), Xa(t, "labelLine"), Xa(t, "upperLabel"), Xa(t, "edgeLabel") }
  1192. function Ya(t, e) { var i = xI(t) && t[e],
  1193. n = xI(i) && i.textStyle; if (n)
  1194. for (var o = 0, a = zb.length; o < a; o++) { var e = zb[o];
  1195. n.hasOwnProperty(e) && (i[e] = n[e]) } }
  1196. function qa(t) { t && (ja(t), Ya(t, "label"), t.emphasis && Ya(t.emphasis, "label")) }
  1197. function Ka(t) { if (xI(t)) { Ua(t), ja(t), Ya(t, "label"), Ya(t, "upperLabel"), Ya(t, "edgeLabel"), t.emphasis && (Ya(t.emphasis, "label"), Ya(t.emphasis, "upperLabel"), Ya(t.emphasis, "edgeLabel")); var e = t.markPoint;
  1198. e && (Ua(e), qa(e)); var i = t.markLine;
  1199. i && (Ua(i), qa(i)); var n = t.markArea;
  1200. n && qa(n); var o = t.data; if ("graph" === t.type) { o = o || t.nodes; var a = t.links || t.edges; if (a && !S(a))
  1201. for (s = 0; s < a.length; s++) qa(a[s]);
  1202. d(t.categories, function(t) { ja(t) }) } if (o && !S(o))
  1203. for (s = 0; s < o.length; s++) qa(o[s]); if ((e = t.markPoint) && e.data)
  1204. for (var r = e.data, s = 0; s < r.length; s++) qa(r[s]); if ((i = t.markLine) && i.data)
  1205. for (var l = i.data, s = 0; s < l.length; s++) y(l[s]) ? (qa(l[s][0]), qa(l[s][1])) : qa(l[s]); "gauge" === t.type ? (Ya(t, "axisLabel"), Ya(t, "title"), Ya(t, "detail")) : "treemap" === t.type ? (Xa(t.breadcrumb, "itemStyle"), d(t.levels, function(t) { ja(t) })) : "tree" === t.type && ja(t.leaves) } }
  1206. function $a(t) { return y(t) ? t : t ? [t] : [] }
  1207. function Ja(t) { return (y(t) ? t[0] : t) || {} }
  1208. function Qa(t, e) { e = e.split(","); for (var i = t, n = 0; n < e.length && null != (i = i && i[e[n]]); n++); return i }
  1209. function tr(t, e, i, n) { e = e.split(","); for (var o, a = t, r = 0; r < e.length - 1; r++) null == a[o = e[r]] && (a[o] = {}), a = a[o];
  1210. (n || null == a[e[r]]) && (a[e[r]] = i) }
  1211. function er(t) { d(bI, function(e) { e[0] in t && !(e[1] in t) && (t[e[1]] = t[e[0]]) }) }
  1212. function ir(t) { d(t, function(e, i) { var n = [],
  1213. o = [NaN, NaN],
  1214. a = [e.stackResultDimension, e.stackedOverDimension],
  1215. r = e.data,
  1216. s = e.isStackedByIndex,
  1217. l = r.map(a, function(a, l, u) { var h = r.get(e.stackedDimension, u); if (isNaN(h)) return o; var c, d;
  1218. s ? d = r.getRawIndex(u) : c = r.get(e.stackedByDimension, u); for (var f = NaN, p = i - 1; p >= 0; p--) { var g = t[p]; if (s || (d = g.data.rawIndexOf(g.stackedByDimension, c)), d >= 0) { var m = g.data.getByRawIndex(g.stackResultDimension, d); if (h >= 0 && m > 0 || h <= 0 && m < 0) { h += m, f = m; break } } } return n[0] = h, n[1] = f, n });
  1219. r.hostModel.setData(l), e.data = l }) }
  1220. function nr(t, e) { va.isInstance(t) || (t = va.seriesDataToSource(t)), this._source = t; var i = this._data = t.data,
  1221. n = t.sourceFormat;
  1222. n === aI && (this._offset = 0, this._dimSize = e, this._data = i), a(this, TI[n === eI ? n + "_" + t.seriesLayoutBy : n]) }
  1223. function or() { return this._data.length }
  1224. function ar(t) { return this._data[t] }
  1225. function rr(t) { for (var e = 0; e < t.length; e++) this._data.push(t[e]) }
  1226. function sr(t, e, i, n) { return null != i ? t[i] : t }
  1227. function lr(t, e, i, n) { return ur(t[n], this._dimensionInfos[e]) }
  1228. function ur(t, e) { var i = e && e.type; if ("ordinal" === i) { var n = e && e.ordinalMeta; return n ? n.parseAndCollect(t) : t } return "time" === i && "number" != typeof t && null != t && "-" !== t && (t = +Uo(t)), null == t || "" === t ? NaN : +t }
  1229. function hr(t, e, i) { if (t) { var n = t.getRawDataItem(e); if (null != n) { var o, a, r = t.getProvider().getSource().sourceFormat,
  1230. s = t.getDimensionInfo(i); return s && (o = s.name, a = s.index), AI[r](n, e, a, o) } } }
  1231. function cr(t, e, i) { if (t) { var n = t.getProvider().getSource().sourceFormat; if (n === tI || n === iI) { var o = t.getRawDataItem(e); return n !== tI || w(o) || (o = null), o ? o[i] : void 0 } } }
  1232. function dr(t) { return new fr(t) }
  1233. function fr(t) { t = t || {}, this._reset = t.reset, this._plan = t.plan, this._count = t.count, this._onDirty = t.onDirty, this._dirty = !0, this.context }
  1234. function pr(t, e, i, n, o, a) { PI.reset(i, n, o, a), t._callingProgress = e, t._callingProgress({ start: i, end: n, count: n - i, next: PI.next }, t.context) }
  1235. function gr(t, e) { t._dueIndex = t._outputDueEnd = t._dueEnd = 0, t._settedOutputEnd = null; var i, n;!e && t._reset && ((i = t._reset(t.context)) && i.progress && (n = i.forceFirstProgress, i = i.progress), y(i) && !i.length && (i = null)), t._progress = i, t._modBy = t._modDataCount = null; var o = t._downstream; return o && o.dirty(), n }
  1236. function mr(t) { var e = t.name;
  1237. Oi(t) || (t.name = vr(t) || e) }
  1238. function vr(t) { var e = t.getRawData(),
  1239. i = []; return d(e.mapDimension("seriesName", !0), function(t) { var n = e.getDimensionInfo(t);
  1240. n.displayName && i.push(n.displayName) }), i.join(" ") }
  1241. function yr(t) { return t.model.getRawData().count() }
  1242. function xr(t) { var e = t.model; return e.setData(e.getRawData().cloneShallow()), _r }
  1243. function _r(t, e) { t.end > e.outputData.count() && e.model.getRawData().cloneShallow(e.outputData) }
  1244. function wr(t, e) { d(t.CHANGABLE_METHODS, function(i) { t.wrapMethod(i, v(br, e)) }) }
  1245. function br(t) { var e = Sr(t);
  1246. e && e.setOutputEnd(this.count()) }
  1247. function Sr(t) { var e = (t.ecModel || {}).scheduler,
  1248. i = e && e.getPipeline(t.uid); if (i) { var n = i.currentTask; if (n) { var o = n.agentStubMap;
  1249. o && (n = o.get(t.uid)) } return n } }
  1250. function Mr() { this.group = new Zw, this.uid = No("viewChart"), this.renderTask = dr({ plan: Ar, reset: Dr }), this.renderTask.context = { view: this } }
  1251. function Ir(t, e) { if (t && (t.trigger(e), "group" === t.type))
  1252. for (var i = 0; i < t.childCount(); i++) Ir(t.childAt(i), e) }
  1253. function Tr(t, e, i) { var n = zi(t, e);
  1254. null != n ? d(Di(n), function(e) { Ir(t.getItemGraphicEl(e), i) }) : t.eachItemGraphicEl(function(t) { Ir(t, i) }) }
  1255. function Ar(t) { return VI(t.model) }
  1256. function Dr(t) { var e = t.model,
  1257. i = t.ecModel,
  1258. n = t.api,
  1259. o = t.payload,
  1260. a = e.pipelineContext.progressiveRender,
  1261. r = t.view,
  1262. s = o && BI(o).updateMethod,
  1263. l = a ? "incrementalPrepareRender" : s && r[s] ? s : "render"; return "render" !== l && r[l](e, i, n, o), FI[l] }
  1264. function Cr(t, e, i) {
  1265. function n() { h = (new Date).getTime(), c = null, t.apply(r, s || []) } var o, a, r, s, l, u = 0,
  1266. h = 0,
  1267. c = null;
  1268. e = e || 0; var d = function() { o = (new Date).getTime(), r = this, s = arguments; var t = l || e,
  1269. d = l || i;
  1270. 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 }
  1271. function Lr(t, e, i, n) { var o = t[e]; if (o) { var a = o[WI] || o,
  1272. r = o[ZI]; if (o[HI] !== i || r !== n) { if (null == i || !n) return t[e] = a;
  1273. (o = t[e] = Cr(a, i, "debounce" === n))[WI] = a, o[ZI] = n, o[HI] = i } return o } }
  1274. function kr(t, e) { var i = t[e];
  1275. i && i[WI] && (t[e] = i[WI]) }
  1276. function Pr(t, e, i, n) { this.ecInstance = t, this.api = e, this.unfinished; var i = this._dataProcessorHandlers = i.slice(),
  1277. n = this._visualHandlers = n.slice();
  1278. this._allHandlers = i.concat(n), this._stageTaskMap = R() }
  1279. function Nr(t, e, i, n, o) {
  1280. function a(t, e) { return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id)) }
  1281. o = o || {}; var r;
  1282. d(e, function(e, s) { if (!o.visualType || o.visualType === e.visualType) { var l = t._stageTaskMap.get(e.uid),
  1283. u = l.seriesTaskMap,
  1284. h = l.overallTask; if (h) { var c, d = h.agentStubMap;
  1285. d.each(function(t) { a(o, t) && (t.dirty(), c = !0) }), c && h.dirty(), KI(h, n); var f = t.getPerformArgs(h, o.block);
  1286. d.each(function(t) { t.perform(f) }), r |= h.perform(f) } else u && u.each(function(s, l) { a(o, s) && s.dirty(); var u = t.getPerformArgs(s, o.block);
  1287. u.skip = !e.performRawSeries && i.isSeriesFiltered(s.context.model), KI(s, n), r |= s.perform(u) }) } }), t.unfinished |= r }
  1288. function Or(t, e, i, n, o) {
  1289. function a(i) { var a = i.uid,
  1290. s = r.get(a) || r.set(a, dr({ plan: Gr, reset: Fr, count: Hr }));
  1291. s.context = { model: i, ecModel: n, api: o, useClearVisual: e.isVisual && !e.isLayout, plan: e.plan, reset: e.reset, scheduler: t }, Zr(t, i, s) } var r = i.seriesTaskMap || (i.seriesTaskMap = R()),
  1292. s = e.seriesType,
  1293. l = e.getTargetSeries;
  1294. e.createOnAllSeries ? n.eachRawSeries(a) : s ? n.eachRawSeriesByType(s, a) : l && l(n, o).each(a); var u = t._pipelineMap;
  1295. r.each(function(t, e) { u.get(e) || (t.dispose(), r.removeKey(e)) }) }
  1296. function Er(t, e, i, n, o) {
  1297. function a(e) { var i = e.uid,
  1298. n = s.get(i);
  1299. n || (n = s.set(i, dr({ reset: zr, onDirty: Vr })), r.dirty()), n.context = { model: e, overallProgress: h, modifyOutputEnd: c }, n.agent = r, n.__block = h, Zr(t, e, n) } var r = i.overallTask = i.overallTask || dr({ reset: Rr });
  1300. r.context = { ecModel: n, api: o, overallReset: e.overallReset, scheduler: t }; var s = r.agentStubMap = r.agentStubMap || R(),
  1301. l = e.seriesType,
  1302. u = e.getTargetSeries,
  1303. h = !0,
  1304. c = e.modifyOutputEnd;
  1305. l ? n.eachRawSeriesByType(l, a) : u ? u(n, o).each(a) : (h = !1, d(n.getSeries(), a)); var f = t._pipelineMap;
  1306. s.each(function(t, e) { f.get(e) || (t.dispose(), r.dirty(), s.removeKey(e)) }) }
  1307. function Rr(t) { t.overallReset(t.ecModel, t.api, t.payload) }
  1308. function zr(t, e) { return t.overallProgress && Br }
  1309. function Br() { this.agent.dirty(), this.getDownstream().dirty() }
  1310. function Vr() { this.agent && this.agent.dirty() }
  1311. function Gr(t) { return t.plan && t.plan(t.model, t.ecModel, t.api, t.payload) }
  1312. function Fr(t) { t.useClearVisual && t.data.clearAllVisual(); var e = t.resetDefines = Di(t.reset(t.model, t.ecModel, t.api, t.payload)); return e.length > 1 ? f(e, function(t, e) { return Wr(e) }) : $I }
  1313. function Wr(t) { return function(e, i) { var n = i.data,
  1314. o = i.resetDefines[t]; if (o && o.dataEach)
  1315. for (var a = e.start; a < e.end; a++) o.dataEach(n, a);
  1316. else o && o.progress && o.progress(e, n) } }
  1317. function Hr(t) { return t.data.count() }
  1318. function Zr(t, e, i) { var n = e.uid,
  1319. o = t._pipelineMap.get(n);!o.head && (o.head = i), o.tail && o.tail.pipe(i), o.tail = i, i.__idxInPipeline = o.count++, i.__pipeline = o }
  1320. function Ur(t) { JI = null; try { t(QI, tT) } catch (t) {} return JI }
  1321. function Xr(t, e) { for (var i in e.prototype) t[i] = B }
  1322. function jr(t) { for (_(t) && (t = (new DOMParser).parseFromString(t, "text/xml")), 9 === t.nodeType && (t = t.firstChild);
  1323. "svg" !== t.nodeName.toLowerCase() || 1 !== t.nodeType;) t = t.nextSibling; return t }
  1324. function Yr() { this._defs = {}, this._root = null, this._isDefine = !1, this._isText = !1 }
  1325. function qr(t, e) { for (var i = t.firstChild; i;) { if (1 === i.nodeType) { var n = i.getAttribute("offset");
  1326. n = n.indexOf("%") > 0 ? parseInt(n, 10) / 100 : n ? parseFloat(n) : 0; var o = i.getAttribute("stop-color") || "#000000";
  1327. e.addColorStop(n, o) }
  1328. i = i.nextSibling } }
  1329. function Kr(t, e) { t && t.__inheritedStyle && (e.__inheritedStyle || (e.__inheritedStyle = {}), r(e.__inheritedStyle, t.__inheritedStyle)) }
  1330. function $r(t) { for (var e = P(t).split(rT), i = [], n = 0; n < e.length; n += 2) { var o = parseFloat(e[n]),
  1331. a = parseFloat(e[n + 1]);
  1332. i.push([o, a]) } return i }
  1333. function Jr(t, e, i, n) { var o = e.__inheritedStyle || {},
  1334. r = "text" === e.type; if (1 === t.nodeType && (ts(t, e), a(o, es(t)), !n))
  1335. for (var s in uT)
  1336. if (uT.hasOwnProperty(s)) { var l = t.getAttribute(s);
  1337. null != l && (o[uT[s]] = l) }
  1338. var u = r ? "textFill" : "fill",
  1339. h = r ? "textStroke" : "stroke";
  1340. e.style = e.style || new $w; var c = e.style;
  1341. null != o.fill && c.set(u, Qr(o.fill, i)), null != o.stroke && c.set(h, Qr(o.stroke, i)), d(["lineWidth", "opacity", "fillOpacity", "strokeOpacity", "miterLimit", "fontSize"], function(t) { var e = "lineWidth" === t && r ? "textStrokeWidth" : t;
  1342. null != o[t] && c.set(e, 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"), d(["lineDashOffset", "lineCap", "lineJoin", "fontWeight", "fontFamily", "fontStyle", "textAlign", "textBaseline"], function(t) { null != o[t] && c.set(t, o[t]) }), o.lineDash && (e.style.lineDash = P(o.lineDash).split(rT)), c[h] && "none" !== c[h] && (e[h] = !0), e.__inheritedStyle = o }
  1343. function Qr(t, e) { var i = e && t && t.match(hT); return i ? e[P(i[1])] : t }
  1344. function ts(t, e) { var i = t.getAttribute("transform"); if (i) { var n = null,
  1345. o = [];
  1346. (i = i.replace(/,/g, " ")).replace(cT, function(t, e, i) { o.push(e, i) }); for (var a = o.length - 1; a > 0; a -= 2) { var r = o[a],
  1347. s = o[a - 1]; switch (n = n || mt(), s) {
  1348. case "translate":
  1349. r = P(r).split(rT), _t(n, n, [parseFloat(r[0]), parseFloat(r[1] || 0)]); break;
  1350. case "scale":
  1351. r = P(r).split(rT), bt(n, n, [parseFloat(r[0]), parseFloat(r[1] || r[0])]); break;
  1352. case "rotate":
  1353. r = P(r).split(rT), wt(n, n, parseFloat(r[0])); break;
  1354. case "skew":
  1355. r = P(r).split(rT), console.warn("Skew transform is not supported yet"); break;
  1356. case "matrix":
  1357. r = P(r).split(rT);
  1358. 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]) } } }
  1359. e.setLocalTransform(n) }
  1360. function es(t) { var e = t.getAttribute("style"),
  1361. i = {}; if (!e) return i; var n = {};
  1362. dT.lastIndex = 0; for (var o; null != (o = dT.exec(e));) n[o[1]] = o[2]; for (var a in uT) uT.hasOwnProperty(a) && null != n[a] && (i[uT[a]] = n[a]); return i }
  1363. function is(t, e, i) { var n = e / t.width,
  1364. o = i / t.height,
  1365. a = Math.min(n, o); return { scale: [a, a], position: [-(t.x + t.width / 2) * a + e / 2, -(t.y + t.height / 2) * a + i / 2] } }
  1366. function ns(t, e) { return (new Yr).parse(t, e) }
  1367. function os(t) { return function(e, i, n) { e = e && e.toLowerCase(), aw.prototype[t].call(this, e, i, n) } }
  1368. function as() { aw.call(this) }
  1369. function rs(t, e, n) {
  1370. function o(t, e) { return t.__prio - e.__prio }
  1371. n = n || {}, "string" == typeof e && (e = BT[e]), this.id, this.group, this._dom = t; var a = this._zr = Ii(t, { renderer: n.renderer || "canvas", devicePixelRatio: n.devicePixelRatio, width: n.width, height: n.height });
  1372. this._throttledZrFlush = Cr(m(a.flush, a), 17), (e = i(e)) && MI(e, !0), this._theme = e, this._chartsViews = [], this._chartsMap = {}, this._componentsViews = [], this._componentsMap = {}, this._coordSysMgr = new Ba; var r = this._api = Ms(this);
  1373. ve(zT, o), ve(OT, o), this._scheduler = new Pr(this, r, OT, zT), aw.call(this, this._ecEventProcessor = new Is), this._messageCenter = new as, this._initEvents(), this.resize = m(this.resize, this), this._pendingActions = [], a.animation.on("frame", this._onframe, this), ps(a, this), N(this) }
  1374. function ss(t, e, i) { var n, o = this._model,
  1375. a = this._coordSysMgr.getCoordinateSystems();
  1376. e = Vi(o, e); for (var r = 0; r < a.length; r++) { var s = a[r]; if (s[t] && null != (n = s[t](o, e, i))) return n } }
  1377. function ls(t) { var e = t._model,
  1378. i = t._scheduler;
  1379. i.restorePipelines(e), i.prepareStageTasks(), gs(t, "component", e, i), gs(t, "chart", e, i), i.plan() }
  1380. function us(t, e, i, n, o) {
  1381. function a(n) { n && n.__alive && n[e] && n[e](n.__model, r, t._api, i) } var r = t._model; if (n) { var s = {};
  1382. s[n + "Id"] = i[n + "Id"], s[n + "Index"] = i[n + "Index"], s[n + "Name"] = i[n + "Name"]; var l = { mainType: n, query: s };
  1383. o && (l.subType = o); var u = i.excludeSeriesId;
  1384. null != u && (u = R(Di(u))), r && r.eachComponent(l, function(e) { u && null != u.get(e.id) || a(t["series" === n ? "_chartsMap" : "_componentsMap"][e.__viewId]) }, t) } else vT(t._componentsViews.concat(t._chartsViews), a) }
  1385. function hs(t, e) { var i = t._chartsMap,
  1386. n = t._scheduler;
  1387. e.eachSeries(function(t) { n.updateStreamModes(t, i[t.__viewId]) }) }
  1388. function cs(t, e) { var i = t.type,
  1389. n = t.escapeConnect,
  1390. o = PT[i],
  1391. s = o.actionInfo,
  1392. l = (s.update || "update").split(":"),
  1393. u = l.pop();
  1394. l = null != l[0] && _T(l[0]), this[TT] = !0; var h = [t],
  1395. c = !1;
  1396. t.batch && (c = !0, h = f(t.batch, function(e) { return e = r(a({}, e), t), e.batch = null, e })); var d, p = [],
  1397. g = "highlight" === i || "downplay" === i;
  1398. vT(h, function(t) { d = o.action(t, this._model, this._api), (d = d || a({}, t)).type = s.event || d.type, p.push(d), g ? us(this, u, t, "series") : l && us(this, u, t, l.main, l.sub) }, this), "none" === u || g || l || (this[AT] ? (ls(this), LT.update.call(this, t), this[AT] = !1) : LT[u].call(this, t)), d = c ? { type: s.event || i, escapeConnect: n, batch: p } : p[0], this[TT] = !1, !e && this._messageCenter.trigger(d.type, d) }
  1399. function ds(t) { for (var e = this._pendingActions; e.length;) { var i = e.shift();
  1400. cs.call(this, i, t) } }
  1401. function fs(t) {!t && this.trigger("updated") }
  1402. function ps(t, e) { t.on("rendered", function() { e.trigger("rendered"), !t.animation.isFinished() || e[AT] || e._scheduler.unfinished || e._pendingActions.length || e.trigger("finished") }) }
  1403. function gs(t, e, i, n) {
  1404. function o(t) { var e = "_ec_" + t.id + "_" + t.type,
  1405. o = s[e]; if (!o) { var h = _T(t.type);
  1406. (o = new(a ? EI.getClass(h.main, h.sub) : Mr.getClass(h.sub))).init(i, u), s[e] = o, r.push(o), l.add(o.group) }
  1407. t.__viewId = o.__id = e, o.__alive = !0, o.__model = t, o.group.__ecComponentInfo = { mainType: t.mainType, index: t.componentIndex }, !a && n.prepareView(o, t, i, u) } for (var a = "component" === e, r = a ? t._componentsViews : t._chartsViews, s = a ? t._componentsMap : t._chartsMap, l = t._zr, u = t._api, h = 0; h < r.length; h++) r[h].__alive = !1;
  1408. a ? i.eachComponent(function(t, e) { "series" !== t && o(e) }) : i.eachSeries(o); for (h = 0; h < r.length;) { var c = r[h];
  1409. c.__alive ? h++ : (!a && c.renderTask.dispose(), l.remove(c.group), c.dispose(i, u), r.splice(h, 1), delete s[c.__id], c.__id = c.group.__ecComponentInfo = null) } }
  1410. function ms(t) { t.clearColorPalette(), t.eachSeries(function(t) { t.clearColorPalette() }) }
  1411. function vs(t, e, i, n) { ys(t, e, i, n), vT(t._chartsViews, function(t) { t.__alive = !1 }), xs(t, e, i, n), vT(t._chartsViews, function(t) { t.__alive || t.remove(e, i) }) }
  1412. function ys(t, e, i, n, o) { vT(o || t._componentsViews, function(t) { var o = t.__model;
  1413. t.render(o, e, i, n), Ss(o, t) }) }
  1414. function xs(t, e, i, n, o) { var a, r = t._scheduler;
  1415. e.eachSeries(function(e) { var i = t._chartsMap[e.__viewId];
  1416. i.__alive = !0; var s = i.renderTask;
  1417. r.updatePayload(s, n), o && o.get(e.uid) && s.dirty(), a |= s.perform(r.getPerformArgs(s)), i.group.silent = !!e.get("silent"), Ss(e, i), bs(e, i) }), r.unfinished |= a, ws(t._zr, e), jI(t._zr.dom, e) }
  1418. function _s(t, e) { vT(RT, function(i) { i(t, e) }) }
  1419. function ws(t, e) { var i = t.storage,
  1420. n = 0;
  1421. i.traverse(function(t) { t.isGroup || n++ }), n > e.get("hoverLayerThreshold") && !z_.node && i.traverse(function(t) { t.isGroup || (t.useHoverLayer = !0) }) }
  1422. function bs(t, e) { var i = t.get("blendMode") || null;
  1423. 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) }) }) }
  1424. function Ss(t, e) { var i = t.get("z"),
  1425. n = t.get("zlevel");
  1426. e.group.traverse(function(t) { "group" !== t.type && (null != i && (t.z = i), null != n && (t.zlevel = n)) }) }
  1427. function Ms(t) { var e = t._coordSysMgr; return a(new za(t), { getCoordinateSystems: m(e.getCoordinateSystems, e), getComponentByElement: function(e) { for (; e;) { var i = e.__ecComponentInfo; if (null != i) return t._model.getComponent(i.mainType, i.index);
  1428. e = e.parent } } }) }
  1429. function Is() { this.eventInfo }
  1430. function Ts(t) {
  1431. function e(t, e) { for (var n = 0; n < t.length; n++) t[n][i] = e } var i = "__connectUpdateStatus";
  1432. vT(NT, function(n, o) { t._messageCenter.on(o, function(n) { if (FT[t.group] && 0 !== t[i]) { if (n && n.escapeConnect) return; var o = t.makeActionFromEvent(n),
  1433. a = [];
  1434. vT(GT, function(e) { e !== t && e.group === t.group && a.push(e) }), e(a, 0), vT(a, function(t) { 1 !== t[i] && t.dispatchAction(o) }), e(a, 2) } }) }) }
  1435. function As(t) { FT[t] = !1 }
  1436. function Ds(t) { return GT[Wi(t, ZT)] }
  1437. function Cs(t, e) { BT[t] = e }
  1438. function Ls(t) { ET.push(t) }
  1439. function ks(t, e) { Rs(OT, t, e, bT) }
  1440. function Ps(t, e, i) { "function" == typeof e && (i = e, e = ""); var n = xT(t) ? t.type : [t, t = { event: e }][0];
  1441. t.event = (t.event || n).toLowerCase(), e = t.event, mT(DT.test(n) && DT.test(e)), PT[n] || (PT[n] = { action: i, actionInfo: t }), NT[e] = n }
  1442. function Ns(t, e) { Ba.register(t, e) }
  1443. function Os(t, e) { Rs(zT, t, e, ST, "layout") }
  1444. function Es(t, e) { Rs(zT, t, e, MT, "visual") }
  1445. function Rs(t, e, i, n, o) {
  1446. (yT(e) || xT(e)) && (i = e, e = n); var a = Pr.wrapStageHandler(i, o); return a.__prio = e, a.__raw = i, t.push(a), a }
  1447. function zs(t, e) { VT[t] = e }
  1448. function Bs(t) { return YM.extend(t) }
  1449. function Vs(t) { return EI.extend(t) }
  1450. function Gs(t) { return OI.extend(t) }
  1451. function Fs(t) { return Mr.extend(t) }
  1452. function Ws(t) { return t }
  1453. function Hs(t, e, i, n, o) { this._old = t, this._new = e, this._oldKeyGetter = i || Ws, this._newKeyGetter = n || Ws, this.context = o }
  1454. function Zs(t, e, i, n, o) { for (var a = 0; a < t.length; a++) { var r = "_ec_" + o[n](t[a], a),
  1455. s = e[r];
  1456. null == s ? (i.push(r), e[r] = a) : (s.length || (e[r] = s = [s]), s.push(a)) } }
  1457. function Us(t) { var e = {},
  1458. i = e.encode = {},
  1459. n = R(),
  1460. o = [],
  1461. a = [];
  1462. d(t.dimensions, function(e) { var r = t.getDimensionInfo(e),
  1463. s = r.coordDim; if (s) { var l = i[s];
  1464. i.hasOwnProperty(s) || (l = i[s] = []), l[r.coordDimIndex] = e, r.isExtraCoord || (n.set(s, 1), js(r.type) && (o[0] = e)), r.defaultTooltip && a.push(e) }
  1465. jT.each(function(t, e) { var n = i[e];
  1466. i.hasOwnProperty(e) || (n = i[e] = []); var o = r.otherDims[e];
  1467. null != o && !1 !== o && (n[o] = r.name) }) }); var r = [],
  1468. s = {};
  1469. n.each(function(t, e) { var n = i[e];
  1470. s[e] = n[0], r = r.concat(n) }), e.dataDimsOnCoord = r, e.encodeFirstDimNotExtra = s; var l = i.label;
  1471. l && l.length && (o = l.slice()); var u = i.tooltip; return u && u.length ? a = u.slice() : a.length || (a = o.slice()), i.defaultedLabel = o, i.defaultedTooltip = a, e }
  1472. function Xs(t) { return "category" === t ? "ordinal" : "time" === t ? "time" : "float" }
  1473. function js(t) { return !("ordinal" === t || "time" === t) }
  1474. function Ys(t) { return t._rawCount > 65535 ? $T : JT }
  1475. function qs(t) { var e = t.constructor; return e === Array ? t.slice() : new e(t) }
  1476. function Ks(t, e) { d(QT.concat(e.__wrappedMethods || []), function(i) { e.hasOwnProperty(i) && (t[i] = e[i]) }), t.__wrappedMethods = e.__wrappedMethods, d(tA, function(n) { t[n] = i(e[n]) }), t._calculationInfo = a(e._calculationInfo) }
  1477. function $s(t) { var e = t._invertedIndicesMap;
  1478. d(e, function(i, n) { var o = t._dimensionInfos[n].ordinalMeta; if (o) { i = e[n] = new $T(o.categories.length); for (a = 0; a < i.length; a++) i[a] = NaN; for (var a = 0; a < t._count; a++) i[t.get(n, a)] = a } }) }
  1479. function Js(t, e, i) { var n; if (null != e) { var o = t._chunkSize,
  1480. a = Math.floor(i / o),
  1481. r = i % o,
  1482. s = t.dimensions[e],
  1483. l = t._storage[s][a]; if (l) { n = l[r]; var u = t._dimensionInfos[s].ordinalMeta;
  1484. u && u.categories.length && (n = u.categories[n]) } } return n }
  1485. function Qs(t) { return t }
  1486. function tl(t) { return t < this._count && t >= 0 ? this._indices[t] : -1 }
  1487. function el(t, e) { var i = t._idList[e]; return null == i && (i = Js(t, t._idDimIdx, e)), null == i && (i = qT + e), i }
  1488. function il(t) { return y(t) || (t = [t]), t }
  1489. function nl(t, e) { var i = t.dimensions,
  1490. n = new eA(f(i, t.getDimensionInfo, t), t.hostModel);
  1491. Ks(n, t); for (var o = n._storage = {}, a = t._storage, r = 0; r < i.length; r++) { var s = i[r];
  1492. a[s] && (l(e, s) >= 0 ? (o[s] = ol(a[s]), n._rawExtent[s] = al(), n._extent[s] = null) : o[s] = a[s]) } return n }
  1493. function ol(t) { for (var e = new Array(t.length), i = 0; i < t.length; i++) e[i] = qs(t[i]); return e }
  1494. function al() { return [1 / 0, -1 / 0] }
  1495. function rl(t, e, n) {
  1496. function o(t, e, i) { null != jT.get(e) ? t.otherDims[e] = i : (t.coordDim = e, t.coordDimIndex = i, h.set(e, !0)) }
  1497. va.isInstance(e) || (e = va.seriesDataToSource(e)), n = n || {}, t = (t || []).slice(); for (var s = (n.dimsDef || []).slice(), l = R(n.encodeDef), u = R(), h = R(), c = [], f = sl(e, t, s, n.dimCount), p = 0; p < f; p++) { var g = s[p] = a({}, w(s[p]) ? s[p] : { name: s[p] }),
  1498. m = g.name,
  1499. v = c[p] = { otherDims: {} };
  1500. null != m && null == u.get(m) && (v.name = v.displayName = m, u.set(m, p)), null != g.type && (v.type = g.type), null != g.displayName && (v.displayName = g.displayName) }
  1501. l.each(function(t, e) { if (1 === (t = Di(t).slice()).length && t[0] < 0) l.set(e, !1);
  1502. else { var i = l.set(e, []);
  1503. d(t, function(t, n) { _(t) && (t = u.get(t)), null != t && t < f && (i[n] = t, o(c[t], e, n)) }) } }); var y = 0;
  1504. d(t, function(t, e) { var n, t, a, s; if (_(t)) n = t, t = {};
  1505. else { n = t.name; var u = t.ordinalMeta;
  1506. t.ordinalMeta = null, (t = i(t)).ordinalMeta = u, a = t.dimsDef, s = t.otherDims, t.name = t.coordDim = t.coordDimIndex = t.dimsDef = t.otherDims = null } var h = l.get(n); if (!1 !== h) { if (!(h = Di(h)).length)
  1507. for (var f = 0; f < (a && a.length || 1); f++) { for (; y < c.length && null != c[y].coordDim;) y++;
  1508. y < c.length && h.push(y++) }
  1509. d(h, function(e, i) { var l = c[e]; if (o(r(l, t), n, i), null == l.name && a) { var u = a[i];!w(u) && (u = { name: u }), l.name = l.displayName = u.name, l.defaultTooltip = u.defaultTooltip }
  1510. s && r(l.otherDims, s) }) } }); var x = n.generateCoord,
  1511. b = n.generateCoordCount,
  1512. S = null != b;
  1513. b = x ? b || 1 : 0; for (var M = x || "value", I = 0; I < f; I++) null == (v = c[I] = c[I] || {}).coordDim && (v.coordDim = ll(M, h, S), v.coordDimIndex = 0, (!x || b <= 0) && (v.isExtraCoord = !0), b--), null == v.name && (v.name = ll(v.coordDim, u)), null == v.type && Da(e, I, v.name) && (v.type = "ordinal"); return c }
  1514. function sl(t, e, i, n) { var o = Math.max(t.dimensionsDetectCount || 1, e.length, i.length, n || 0); return d(e, function(t) { var e = t.dimsDef;
  1515. e && (o = Math.max(o, e.length)) }), o }
  1516. function ll(t, e, i) { if (i || null != e.get(t)) { for (var n = 0; null != e.get(t + n);) n++;
  1517. t += n } return e.set(t, !0), t }
  1518. function ul(t, e, i) { var n, o, a, r, s = (i = i || {}).byIndex,
  1519. l = i.stackedCoordDimension,
  1520. u = !(!t || !t.get("stack")); if (d(e, function(t, i) { _(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 = "__\0ecstackresult", r = "__\0ecstackedover", n && (n.createInvertedIndices = !0); var h = o.coordDim,
  1521. c = o.type,
  1522. f = 0;
  1523. d(e, function(t) { t.coordDim === h && f++ }), e.push({ name: a, coordDim: h, coordDimIndex: f, type: c, isExtraCoord: !0, isCalculationCoord: !0 }), f++, e.push({ name: r, coordDim: r, coordDimIndex: f, type: c, isExtraCoord: !0, isCalculationCoord: !0 }) } return { stackedDimension: o && o.name, stackedByDimension: n && n.name, isStackedByIndex: s, stackedOverDimension: r, stackResultDimension: a } }
  1524. function hl(t, e) { return !!e && e === t.getCalculationInfo("stackedDimension") }
  1525. function cl(t, e) { return hl(t, e) ? t.getCalculationInfo("stackResultDimension") : e }
  1526. function dl(t, e, i) { i = i || {}, va.isInstance(t) || (t = va.seriesDataToSource(t)); var n, o = e.get("coordinateSystem"),
  1527. a = Ba.get(o),
  1528. r = ga(e);
  1529. r && (n = f(r.coordSysDims, function(t) { var e = { name: t },
  1530. i = r.axisMap.get(t); if (i) { var n = i.get("type");
  1531. e.type = Xs(n) } return e })), n || (n = a && (a.getDimensionsInfo ? a.getDimensionsInfo() : a.dimensions.slice()) || ["x", "y"]); var s, l, u = oA(t, { coordDimensions: n, generateCoord: i.generateCoord });
  1532. r && d(u, function(t, e) { var i = t.coordDim,
  1533. n = r.categoryAxisMap.get(i);
  1534. 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 = ul(e, u),
  1535. c = new eA(u, e);
  1536. c.setCalculationInfo(h); var p = null != s && fl(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, p), c }
  1537. function fl(t) { if (t.sourceFormat === tI) { var e = pl(t.data || []); return null != e && !y(Li(e)) } }
  1538. function pl(t) { for (var e = 0; e < t.length && null == t[e];) e++; return t[e] }
  1539. function gl(t) { this._setting = t || {}, this._extent = [1 / 0, -1 / 0], this._interval = 0, this.init && this.init.apply(this, arguments) }
  1540. function ml(t) { this.categories = t.categories || [], this._needCollect = t.needCollect, this._deduplication = t.deduplication, this._map }
  1541. function vl(t) { return t._map || (t._map = R(t.categories)) }
  1542. function yl(t) { return w(t) && null != t.value ? t.value : t + "" }
  1543. function xl(t, e, i, n) { var o = {},
  1544. a = t[1] - t[0],
  1545. r = o.interval = Yo(a / e, !0);
  1546. null != i && r < i && (r = o.interval = i), null != n && r > n && (r = o.interval = n); var s = o.intervalPrecision = _l(r); return bl(o.niceTickExtent = [lA(Math.ceil(t[0] / r) * r, s), lA(Math.floor(t[1] / r) * r, s)], t), o }
  1547. function _l(t) { return Go(t) + 2 }
  1548. function wl(t, e, i) { t[e] = Math.max(Math.min(t[e], i[1]), i[0]) }
  1549. function bl(t, e) {!isFinite(t[0]) && (t[0] = e[0]), !isFinite(t[1]) && (t[1] = e[1]), wl(t, 0, e), wl(t, 1, e), t[0] > t[1] && (t[0] = t[1]) }
  1550. function Sl(t, e, i, n) { var o = []; if (!t) return o;
  1551. e[0] < i[0] && o.push(e[0]); for (var a = i[0]; a <= i[1] && (o.push(a), (a = lA(a + t, n)) !== o[o.length - 1]);)
  1552. if (o.length > 1e4) return [];
  1553. return e[1] > (o.length ? o[o.length - 1] : i[1]) && o.push(e[1]), o }
  1554. function Ml(t) { return t.get("stack") || cA + t.seriesIndex }
  1555. function Il(t) { return t.dim + t.index }
  1556. function Tl(t) { var e = [],
  1557. i = t.axis; if ("category" === i.type) { for (var n = i.getBandWidth(), o = 0; o < t.count; o++) e.push(r({ bandWidth: n, axisKey: "axis0", stackId: cA + o }, t)); for (var a = Cl(e), s = [], o = 0; o < t.count; o++) { var l = a.axis0[cA + o];
  1558. l.offsetCenter = l.offset + l.width / 2, s.push(l) } return s } }
  1559. function Al(t, e) { var i = []; return e.eachSeriesByType(t, function(t) { Pl(t) && !Nl(t) && i.push(t) }), i }
  1560. function Dl(t) { var e = []; return d(t, function(t) { var i = t.getData(),
  1561. n = t.coordinateSystem.getBaseAxis(),
  1562. o = n.getExtent(),
  1563. a = "category" === n.type ? n.getBandWidth() : Math.abs(o[1] - o[0]) / i.count(),
  1564. r = Ro(t.get("barWidth"), a),
  1565. s = Ro(t.get("barMaxWidth"), a),
  1566. l = t.get("barGap"),
  1567. u = t.get("barCategoryGap");
  1568. e.push({ bandWidth: a, barWidth: r, barMaxWidth: s, barGap: l, barCategoryGap: u, axisKey: Il(n), stackId: Ml(t) }) }), Cl(e) }
  1569. function Cl(t) { var e = {};
  1570. d(t, function(t, i) { var n = t.axisKey,
  1571. o = t.bandWidth,
  1572. a = e[n] || { bandWidth: o, remainedWidth: o, autoWidthCount: 0, categoryGap: "20%", gap: "30%", stacks: {} },
  1573. r = a.stacks;
  1574. e[n] = a; var s = t.stackId;
  1575. r[s] || a.autoWidthCount++, r[s] = r[s] || { width: 0, maxWidth: 0 }; var l = t.barWidth;
  1576. l && !r[s].width && (r[s].width = l, l = Math.min(a.remainedWidth, l), a.remainedWidth -= l); var u = t.barMaxWidth;
  1577. u && (r[s].maxWidth = u); var h = t.barGap;
  1578. null != h && (a.gap = h); var c = t.barCategoryGap;
  1579. null != c && (a.categoryGap = c) }); var i = {}; return d(e, function(t, e) { i[e] = {}; var n = t.stacks,
  1580. o = t.bandWidth,
  1581. a = Ro(t.categoryGap, o),
  1582. r = Ro(t.gap, 1),
  1583. s = t.remainedWidth,
  1584. l = t.autoWidthCount,
  1585. u = (s - a) / (l + (l - 1) * r);
  1586. u = Math.max(u, 0), d(n, function(t, e) { var i = t.maxWidth;
  1587. i && i < u && (i = Math.min(i, s), t.width && (i = Math.min(i, t.width)), s -= i, t.width = i, l--) }), u = (s - a) / (l + (l - 1) * r), u = Math.max(u, 0); var h, c = 0;
  1588. d(n, function(t, e) { t.width || (t.width = u), h = t, c += t.width * (1 + r) }), h && (c -= h.width * r); var f = -c / 2;
  1589. d(n, function(t, n) { i[e][n] = i[e][n] || { offset: f, width: t.width }, f += t.width * (1 + r) }) }), i }
  1590. function Ll(t, e, i) { if (t && e) { var n = t[Il(e)]; return null != n && null != i && (n = n[Ml(i)]), n } }
  1591. function kl(t, e) { var i = Al(t, e),
  1592. n = Dl(i),
  1593. o = {};
  1594. d(i, function(t) { var e = t.getData(),
  1595. i = t.coordinateSystem,
  1596. a = i.getBaseAxis(),
  1597. r = Ml(t),
  1598. s = n[Il(a)][r],
  1599. l = s.offset,
  1600. u = s.width,
  1601. h = i.getOtherAxis(a),
  1602. c = t.get("barMinHeight") || 0;
  1603. o[r] = o[r] || [], e.setLayout({ offset: l, size: u }); for (var d = e.mapDimension(h.dim), f = e.mapDimension(a.dim), p = hl(e, d), g = h.isHorizontal(), m = Ol(a, h, p), v = 0, y = e.count(); v < y; v++) { var x = e.get(d, v),
  1604. _ = e.get(f, v); if (!isNaN(x)) { var w = x >= 0 ? "p" : "n",
  1605. b = m;
  1606. p && (o[r][_] || (o[r][_] = { p: m, n: m }), b = o[r][_][w]); var S, M, I, T; if (g) S = b, M = (A = i.dataToPoint([x, _]))[1] + l, I = A[0] - m, T = u, Math.abs(I) < c && (I = (I < 0 ? -1 : 1) * c), p && (o[r][_][w] += I);
  1607. else { var A = i.dataToPoint([_, x]);
  1608. S = A[0] + l, M = b, I = u, T = A[1] - m, Math.abs(T) < c && (T = (T <= 0 ? -1 : 1) * c), p && (o[r][_][w] += T) }
  1609. e.setItemLayout(v, { x: S, y: M, width: I, height: T }) } } }, this) }
  1610. function Pl(t) { return t.coordinateSystem && "cartesian2d" === t.coordinateSystem.type }
  1611. function Nl(t) { return t.pipelineContext && t.pipelineContext.large }
  1612. function Ol(t, e, i) { var n, o, a = e.getGlobalExtent();
  1613. a[0] > a[1] ? (n = a[1], o = a[0]) : (n = a[0], o = a[1]); var r = e.toGlobalCoord(e.dataToCoord(0)); return r < n && (r = n), r > o && (r = o), r }
  1614. function El(t, e) { return SA(t, bA(e)) }
  1615. function Rl(t, e) { var i, n, o, a = t.type,
  1616. r = e.getMin(),
  1617. s = e.getMax(),
  1618. l = null != r,
  1619. u = null != s,
  1620. h = t.getExtent(); "ordinal" === a ? i = e.getCategories().length : (y(n = e.get("boundaryGap")) || (n = [n || 0, n || 0]), "boolean" == typeof n[0] && (n = [0, 0]), n[0] = Ro(n[0], 1), n[1] = Ro(n[1], 1), o = h[1] - h[0] || Math.abs(h[0])), null == r && (r = "ordinal" === a ? i ? 0 : NaN : h[0] - n[0] * o), null == s && (s = "ordinal" === a ? i ? i - 1 : NaN : h[1] + n[1] * o), "dataMin" === r ? r = h[0] : "function" == typeof r && (r = r({ min: h[0], max: h[1] })), "dataMax" === s ? s = h[1] : "function" == typeof s && (s = s({ min: h[0], max: h[1] })), (null == r || !isFinite(r)) && (r = NaN), (null == s || !isFinite(s)) && (s = NaN), t.setBlank(I(r) || I(s) || "ordinal" === a && !t.getOrdinalMeta().categories.length), e.getNeedCrossZero() && (r > 0 && s > 0 && !l && (r = 0), r < 0 && s < 0 && !u && (s = 0)); var c = e.ecModel; if (c && "time" === a) { var f, p = Al("bar", c); if (d(p, function(t) { f |= t.getBaseAxis() === e.axis }), f) { var g = Dl(p),
  1621. m = zl(r, s, e, g);
  1622. r = m.min, s = m.max } } return [r, s] }
  1623. function zl(t, e, i, n) { var o = i.axis.getExtent(),
  1624. a = o[1] - o[0],
  1625. r = Ll(n, i.axis); if (void 0 === r) return { min: t, max: e }; var s = 1 / 0;
  1626. d(r, function(t) { s = Math.min(t.offset, s) }); var l = -1 / 0;
  1627. d(r, function(t) { l = Math.max(t.offset + t.width, l) }), s = Math.abs(s), l = Math.abs(l); var u = s + l,
  1628. h = e - t,
  1629. c = h / (1 - (s + l) / a) - h; return e += c * (l / u), t -= c * (s / u), { min: t, max: e } }
  1630. function Bl(t, e) { var i = Rl(t, e),
  1631. n = null != e.getMin(),
  1632. o = null != e.getMax(),
  1633. a = e.get("splitNumber"); "log" === t.type && (t.base = e.get("logBase")); var r = t.type;
  1634. t.setExtent(i[0], i[1]), t.niceExtent({ splitNumber: a, fixMin: n, fixMax: o, minInterval: "interval" === r || "time" === r ? e.get("minInterval") : null, maxInterval: "interval" === r || "time" === r ? e.get("maxInterval") : null }); var s = e.get("interval");
  1635. null != s && t.setInterval && t.setInterval(s) }
  1636. function Vl(t, e) { if (e = e || t.get("type")) switch (e) {
  1637. case "category":
  1638. return new sA(t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(), [1 / 0, -1 / 0]);
  1639. case "value":
  1640. return new hA;
  1641. default:
  1642. return (gl.getClass(e) || hA).create(t) } }
  1643. function Gl(t) { var e = t.scale.getExtent(),
  1644. i = e[0],
  1645. n = e[1]; return !(i > 0 && n > 0 || i < 0 && n < 0) }
  1646. function Fl(t) { var e = t.getLabelModel().get("formatter"),
  1647. 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(Wl(t, n), o) } : function(e) { return t.scale.getLabel(e) } }
  1648. function Wl(t, e) { return "category" === t.type ? t.scale.getLabel(e) : e }
  1649. function Hl(t) { var e = t.model,
  1650. i = t.scale; if (e.get("axisLabel.show") && !i.isBlank()) { var n, o, a = "category" === t.type,
  1651. r = i.getExtent();
  1652. o = a ? i.count() : (n = i.getTicks()).length; var s, l = t.getLabelModel(),
  1653. u = Fl(t),
  1654. h = 1;
  1655. o > 40 && (h = Math.ceil(o / 40)); for (var c = 0; c < o; c += h) { var d = u(n ? n[c] : r[0] + c),
  1656. f = Zl(l.getTextRect(d), l.get("rotate") || 0);
  1657. s ? s.union(f) : s = f } return s } }
  1658. function Zl(t, e) { var i = e * Math.PI / 180,
  1659. n = t.plain(),
  1660. o = n.width,
  1661. a = n.height,
  1662. r = o * Math.cos(i) + a * Math.sin(i),
  1663. s = o * Math.sin(i) + a * Math.cos(i); return new ue(n.x, n.y, r, s) }
  1664. function Ul(t, e) { if ("image" !== this.type) { var i = this.style,
  1665. n = this.shape;
  1666. 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) } }
  1667. function Xl(t, e, i, n, o, a, r) { var s = 0 === t.indexOf("empty");
  1668. s && (t = t.substr(5, 1).toLowerCase() + t.substr(6)); var l; return l = 0 === t.indexOf("image://") ? Hn(t.slice(8), new ue(e, i, n, o), r ? "center" : "cover") : 0 === t.indexOf("path://") ? Wn(t.slice(7), {}, new ue(e, i, n, o), r ? "center" : "cover") : new RA({ shape: { symbolType: t, x: e, y: i, width: n, height: o } }), l.__isEmptyBrush = s, l.setColor = Ul, l.setColor(a), l }
  1669. function jl(t, e) { return Math.abs(t - e) < VA }
  1670. function Yl(t, e, i) { var n = 0,
  1671. o = t[0]; if (!o) return !1; for (var a = 1; a < t.length; a++) { var r = t[a];
  1672. n += bn(o[0], o[1], r[0], r[1], e, i), o = r } var s = t[0]; return jl(o[0], s[0]) && jl(o[1], s[1]) || (n += bn(o[0], o[1], s[0], s[1], e, i)), 0 !== n }
  1673. function ql(t, e, i) { if (this.name = t, this.geometries = e, i) i = [i[0], i[1]];
  1674. else { var n = this.getBoundingRect();
  1675. i = [n.x + n.width / 2, n.y + n.height / 2] }
  1676. this.center = i }
  1677. function Kl(t) { if (!t.UTF8Encoding) return t; var e = t.UTF8Scale;
  1678. null == e && (e = 1024); for (var i = t.features, n = 0; n < i.length; n++)
  1679. for (var o = i[n].geometry, a = o.coordinates, r = o.encodeOffsets, s = 0; s < a.length; s++) { var l = a[s]; if ("Polygon" === o.type) a[s] = $l(l, r[s], e);
  1680. else if ("MultiPolygon" === o.type)
  1681. for (var u = 0; u < l.length; u++) { var h = l[u];
  1682. l[u] = $l(h, r[s][u], e) } }
  1683. return t.UTF8Encoding = !1, t }
  1684. function $l(t, e, i) { for (var n = [], o = e[0], a = e[1], r = 0; r < t.length; r += 2) { var s = t.charCodeAt(r) - 64,
  1685. l = t.charCodeAt(r + 1) - 64;
  1686. s = s >> 1 ^ -(1 & s), l = l >> 1 ^ -(1 & l), o = s += o, a = l += a, n.push([s / i, l / i]) } return n }
  1687. function Jl(t) { return "category" === t.type ? tu(t) : nu(t) }
  1688. function Ql(t, e) { return "category" === t.type ? iu(t, e) : { ticks: t.scale.getTicks() } }
  1689. function tu(t) { var e = t.getLabelModel(),
  1690. i = eu(t, e); return !e.get("show") || t.scale.isBlank() ? { labels: [], labelCategoryInterval: i.labelCategoryInterval } : i }
  1691. function eu(t, e) { var i = ou(t, "labels"),
  1692. n = du(e),
  1693. o = au(i, n); if (o) return o; var a, r; return a = x(n) ? cu(t, n) : hu(t, r = "auto" === n ? su(t) : n), ru(i, n, { labels: a, labelCategoryInterval: r }) }
  1694. function iu(t, e) { var i = ou(t, "ticks"),
  1695. n = du(e),
  1696. o = au(i, n); if (o) return o; var a, r; if (e.get("show") && !t.scale.isBlank() || (a = []), x(n)) a = cu(t, n, !0);
  1697. else if ("auto" === n) { var s = eu(t, t.getLabelModel());
  1698. r = s.labelCategoryInterval, a = f(s.labels, function(t) { return t.tickValue }) } else a = hu(t, r = n, !0); return ru(i, n, { ticks: a, tickCategoryInterval: r }) }
  1699. function nu(t) { var e = t.scale.getTicks(),
  1700. i = Fl(t); return { labels: f(e, function(e, n) { return { formattedLabel: i(e, n), rawLabel: t.scale.getLabel(e), tickValue: e } }) } }
  1701. function ou(t, e) { return FA(t)[e] || (FA(t)[e] = []) }
  1702. function au(t, e) { for (var i = 0; i < t.length; i++)
  1703. if (t[i].key === e) return t[i].value }
  1704. function ru(t, e, i) { return t.push({ key: e, value: i }), i }
  1705. function su(t) { var e = FA(t).autoInterval; return null != e ? e : FA(t).autoInterval = t.calculateCategoryInterval() }
  1706. function lu(t) { var e = uu(t),
  1707. i = Fl(t),
  1708. n = (e.axisRotate - e.labelRotate) / 180 * Math.PI,
  1709. o = t.scale,
  1710. a = o.getExtent(),
  1711. r = o.count(); if (a[1] - a[0] < 1) return 0; var s = 1;
  1712. r > 40 && (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,
  1713. g = 0,
  1714. m = De(i(l), e.font, "center", "top");
  1715. 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,
  1716. y = f / c;
  1717. isNaN(v) && (v = 1 / 0), isNaN(y) && (y = 1 / 0); var x = Math.max(0, Math.floor(Math.min(v, y))),
  1718. _ = FA(t.model),
  1719. w = _.lastAutoInterval,
  1720. b = _.lastTickCount; return null != w && null != b && Math.abs(w - x) <= 1 && Math.abs(b - r) <= 1 && w > x ? x = w : (_.lastTickCount = r, _.lastAutoInterval = x), x }
  1721. function uu(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() } }
  1722. function hu(t, e, i) {
  1723. function n(t) { l.push(i ? t : { formattedLabel: o(t), rawLabel: a.getLabel(t), tickValue: t }) } var o = Fl(t),
  1724. a = t.scale,
  1725. r = a.getExtent(),
  1726. s = t.getLabelModel(),
  1727. l = [],
  1728. u = Math.max((e || 0) + 1, 1),
  1729. h = r[0],
  1730. c = a.count();
  1731. 0 !== h && u > 1 && c / u > 2 && (h = Math.round(Math.ceil(h / u) * u)); var d = { min: s.get("showMinLabel"), max: s.get("showMaxLabel") };
  1732. d.min && h !== r[0] && n(r[0]); for (var f = h; f <= r[1]; f += u) n(f); return d.max && f !== r[1] && n(r[1]), l }
  1733. function cu(t, e, i) { var n = t.scale,
  1734. o = Fl(t),
  1735. a = []; return d(n.getTicks(), function(t) { var r = n.getLabel(t);
  1736. e(t, r) && a.push(i ? t : { formattedLabel: o(t), rawLabel: r, tickValue: t }) }), a }
  1737. function du(t) { var e = t.get("interval"); return null == e ? "auto" : e }
  1738. function fu(t, e) { var i = (t[1] - t[0]) / e / 2;
  1739. t[0] += i, t[1] -= i }
  1740. function pu(t, e, i, n, o) {
  1741. function a(t, e) { return h ? t > e : t < e } var r = e.length; if (t.onBand && !n && r) { var s, l = t.getExtent(); if (1 === r) e[0].coord = l[0], s = e[1] = { coord: l[0] };
  1742. else { var u = e[1].coord - e[0].coord;
  1743. d(e, function(t) { t.coord -= u / 2; var e = e || 0;
  1744. e % 2 > 0 && (t.coord -= u / (2 * (e + 1))) }), s = { coord: e[r - 1].coord + u }, e.push(s) } var h = l[0] > l[1];
  1745. a(e[0].coord, l[0]) && (o ? e[0].coord = l[0] : e.shift()), o && a(l[0], e[0].coord) && e.unshift({ coord: l[0] }), a(l[1], s.coord) && (o ? s.coord = l[1] : e.pop()), o && a(s.coord, l[1]) && e.push({ coord: l[1] }) } }
  1746. function gu(t, e) { var i = t.mapDimension("defaultedLabel", !0),
  1747. n = i.length; if (1 === n) return hr(t, e, i[0]); if (n) { for (var o = [], a = 0; a < i.length; a++) { var r = hr(t, e, i[a]);
  1748. o.push(r) } return o.join(" ") } }
  1749. function mu(t, e, i) { Zw.call(this), this.updateData(t, e, i) }
  1750. function vu(t) { return [t[0] / 2, t[1] / 2] }
  1751. function yu(t, e) { this.parent.drift(t, e) }
  1752. function xu() {!oo(this) && wu.call(this) }
  1753. function _u() {!oo(this) && bu.call(this) }
  1754. function wu() { if (!this.incremental && !this.useHoverLayer) { var t = this.__symbolOriginalScale,
  1755. e = t[1] / t[0];
  1756. this.animateTo({ scale: [Math.max(1.1 * t[0], t[0] + 3), Math.max(1.1 * t[1], t[1] + 3 * e)] }, 400, "elasticOut") } }
  1757. function bu() { this.incremental || this.useHoverLayer || this.animateTo({ scale: this.__symbolOriginalScale }, 400, "elasticOut") }
  1758. function Su(t) { this.group = new Zw, this._symbolCtor = t || mu }
  1759. function Mu(t, e, i, n) { return e && !isNaN(e[0]) && !isNaN(e[1]) && !(n.isIgnore && n.isIgnore(i)) && !(n.clipShape && !n.clipShape.contain(e[0], e[1])) && "none" !== t.getItemVisual(i, "symbol") }
  1760. function Iu(t) { return null == t || w(t) || (t = { isIgnore: t }), t || {} }
  1761. function Tu(t) { var e = t.hostModel; return { itemStyle: e.getModel("itemStyle").getItemStyle(["color"]), hoverItemStyle: e.getModel("emphasis.itemStyle").getItemStyle(), symbolRotate: e.get("symbolRotate"), symbolOffset: e.get("symbolOffset"), hoverAnimation: e.get("hoverAnimation"), labelModel: e.getModel("label"), hoverLabelModel: e.getModel("emphasis.label"), cursorStyle: e.get("cursor") } }
  1762. function Au(t, e, i) { var n, o = t.getBaseAxis(),
  1763. a = t.getOtherAxis(o),
  1764. r = Du(a, i),
  1765. s = o.dim,
  1766. l = a.dim,
  1767. u = e.mapDimension(l),
  1768. h = e.mapDimension(s),
  1769. c = "x" === l || "radius" === l ? 1 : 0,
  1770. d = f(t.dimensions, function(t) { return e.mapDimension(t) }),
  1771. p = e.getCalculationInfo("stackResultDimension"); return (n |= hl(e, d[0])) && (d[0] = p), (n |= hl(e, d[1])) && (d[1] = p), { dataDimsForPoint: d, valueStart: r, valueAxisDim: l, baseAxisDim: s, stacked: !!n, valueDim: u, baseDim: h, baseDataOffset: c, stackedOverDimension: e.getCalculationInfo("stackedOverDimension") } }
  1772. function Du(t, e) { var i = 0,
  1773. n = t.scale.getExtent(); return "start" === e ? i = n[0] : "end" === e ? i = n[1] : n[0] > 0 ? i = n[0] : n[1] < 0 && (i = n[1]), i }
  1774. function Cu(t, e, i, n) { var o = NaN;
  1775. t.stacked && (o = i.get(i.getCalculationInfo("stackedOverDimension"), n)), isNaN(o) && (o = t.valueStart); var a = t.baseDataOffset,
  1776. r = []; return r[a] = i.get(t.baseDim, n), r[1 - a] = o, e.dataToPoint(r) }
  1777. function Lu(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 }
  1778. function ku(t) { return isNaN(t[0]) || isNaN(t[1]) }
  1779. function Pu(t, e, i, n, o, a, r, s, l, u, h) { return "none" !== u && u ? Nu.apply(this, arguments) : Ou.apply(this, arguments) }
  1780. function Nu(t, e, i, n, o, a, r, s, l, u, h) { for (var c = 0, d = i, f = 0; f < n; f++) { var p = e[d]; if (d >= o || d < 0) break; if (ku(p)) { if (h) { d += a; continue } break } if (d === i) t[a > 0 ? "moveTo" : "lineTo"](p[0], p[1]);
  1781. else if (l > 0) { var g = e[c],
  1782. m = "y" === u ? 1 : 0,
  1783. v = (p[m] - g[m]) * l;
  1784. oD(rD, g), rD[m] = g[m] + v, oD(sD, p), sD[m] = p[m] - v, t.bezierCurveTo(rD[0], rD[1], sD[0], sD[1], p[0], p[1]) } else t.lineTo(p[0], p[1]);
  1785. c = d, d += a } return f }
  1786. function Ou(t, e, i, n, o, a, r, s, l, u, h) { for (var c = 0, d = i, f = 0; f < n; f++) { var p = e[d]; if (d >= o || d < 0) break; if (ku(p)) { if (h) { d += a; continue } break } if (d === i) t[a > 0 ? "moveTo" : "lineTo"](p[0], p[1]), oD(rD, p);
  1787. else if (l > 0) { var g = d + a,
  1788. m = e[g]; if (h)
  1789. for (; m && ku(e[g]);) m = e[g += a]; var v = .5,
  1790. y = e[c]; if (!(m = e[g]) || ku(m)) oD(sD, p);
  1791. else { ku(m) && !h && (m = p), U(aD, m, y); var x, _; if ("x" === u || "y" === u) { var w = "x" === u ? 0 : 1;
  1792. x = Math.abs(p[w] - y[w]), _ = Math.abs(p[w] - m[w]) } else x = ew(p, y), _ = ew(p, m);
  1793. nD(sD, p, aD, -l * (1 - (v = _ / (_ + x)))) }
  1794. eD(rD, rD, s), iD(rD, rD, r), eD(sD, sD, s), iD(sD, sD, r), t.bezierCurveTo(rD[0], rD[1], sD[0], sD[1], p[0], p[1]), nD(rD, p, aD, l * v) } else t.lineTo(p[0], p[1]);
  1795. c = d, d += a } return f }
  1796. function Eu(t, e) { var i = [1 / 0, 1 / 0],
  1797. n = [-1 / 0, -1 / 0]; if (e)
  1798. for (var o = 0; o < t.length; o++) { var a = t[o];
  1799. a[0] < i[0] && (i[0] = a[0]), a[1] < i[1] && (i[1] = a[1]), a[0] > n[0] && (n[0] = a[0]), a[1] > n[1] && (n[1] = a[1]) }
  1800. return { min: e ? i : n, max: e ? n : i } }
  1801. function Ru(t, e) { if (t.length === e.length) { for (var i = 0; i < t.length; i++) { var n = t[i],
  1802. o = e[i]; if (n[0] !== o[0] || n[1] !== o[1]) return } return !0 } }
  1803. function zu(t) { return "number" == typeof t ? t : t ? .5 : 0 }
  1804. function Bu(t) { var e = t.getGlobalExtent(); if (t.onBand) { var i = t.getBandWidth() / 2 - 1,
  1805. n = e[1] > e[0] ? 1 : -1;
  1806. e[0] += n * i, e[1] -= n * i } return e }
  1807. function Vu(t, e, i) { if (!i.valueDim) return []; for (var n = [], o = 0, a = e.count(); o < a; o++) n.push(Cu(i, t, e, o)); return n }
  1808. function Gu(t, e, i, n) { var o = Bu(t.getAxis("x")),
  1809. a = Bu(t.getAxis("y")),
  1810. r = t.getBaseAxis().isHorizontal(),
  1811. s = Math.min(o[0], o[1]),
  1812. l = Math.min(a[0], a[1]),
  1813. u = Math.max(o[0], o[1]) - s,
  1814. h = Math.max(a[0], a[1]) - l; if (i) s -= .5, u += .5, l -= .5, h += .5;
  1815. else { var c = n.get("lineStyle.width") || 2,
  1816. d = n.get("clipOverflow") ? c / 2 : Math.max(u, h);
  1817. r ? (l -= d, h += 2 * d) : (s -= d, u += 2 * d) } var f = new aM({ shape: { x: s, y: l, width: u, height: h } }); return e && (f.shape[r ? "width" : "height"] = 0, So(f, { shape: { width: u, height: h } }, n)), f }
  1818. function Fu(t, e, i, n) { var o = t.getAngleAxis(),
  1819. a = t.getRadiusAxis().getExtent().slice();
  1820. a[0] > a[1] && a.reverse(); var r = o.getExtent(),
  1821. s = Math.PI / 180;
  1822. i && (a[0] -= .5, a[1] += .5); var l = new QS({ shape: { cx: zo(t.cx, 1), cy: zo(t.cy, 1), r0: zo(a[0], 1), r: zo(a[1], 1), startAngle: -r[0] * s, endAngle: -r[1] * s, clockwise: o.inverse } }); return e && (l.shape.endAngle = -r[0] * s, So(l, { shape: { endAngle: -r[1] * s } }, n)), l }
  1823. function Wu(t, e, i, n) { return "polar" === t.type ? Fu(t, e, i, n) : Gu(t, e, i, n) }
  1824. function Hu(t, e, i) { for (var n = e.getBaseAxis(), o = "x" === n.dim || "radius" === n.dim ? 0 : 1, a = [], r = 0; r < t.length - 1; r++) { var s = t[r + 1],
  1825. l = t[r];
  1826. a.push(l); var u = []; switch (i) {
  1827. case "end":
  1828. u[o] = s[o], u[1 - o] = l[1 - o], a.push(u); break;
  1829. case "middle":
  1830. var h = (l[o] + s[o]) / 2,
  1831. c = [];
  1832. u[o] = c[o] = h, u[1 - o] = l[1 - o], c[1 - o] = s[1 - o], a.push(u), a.push(c); break;
  1833. default:
  1834. u[o] = l[o], u[1 - o] = s[1 - o], a.push(u) } } return t[r] && a.push(t[r]), a }
  1835. function Zu(t, e) { var i = t.getVisual("visualMeta"); if (i && i.length && t.count() && "cartesian2d" === e.type) { for (var n, o, a = i.length - 1; a >= 0; a--) { var r = i[a].dimension,
  1836. s = t.dimensions[r],
  1837. l = t.getDimensionInfo(s); if ("x" === (n = l && l.coordDim) || "y" === n) { o = i[a]; break } } if (o) { var u = e.getAxis(n),
  1838. h = f(o.stops, function(t) { return { coord: u.toGlobalCoord(u.dataToCoord(t.value)), color: t.color } }),
  1839. c = h.length,
  1840. p = o.outerColors.slice();
  1841. c && h[0].coord > h[c - 1].coord && (h.reverse(), p.reverse()); var g = h[0].coord - 10,
  1842. m = h[c - 1].coord + 10,
  1843. v = m - g; if (v < .001) return "transparent";
  1844. d(h, function(t) { t.offset = (t.coord - g) / v }), h.push({ offset: c ? h[c - 1].offset : .5, color: p[1] || "transparent" }), h.unshift({ offset: c ? h[0].offset : .5, color: p[0] || "transparent" }); var y = new dM(0, 0, 0, 0, h, !0); return y[n] = g, y[n + "2"] = m, y } } }
  1845. function Uu(t, e, i) { var n = t.get("showAllSymbol"),
  1846. o = "auto" === n; if (!n || o) { var a = i.getAxesByScale("ordinal")[0]; if (a && (!o || !Xu(a, e))) { var r = e.mapDimension(a.dim),
  1847. s = {}; return d(a.getViewLabels(), function(t) { s[t.tickValue] = 1 }),
  1848. function(t) { return !s.hasOwnProperty(e.get(r, t)) } } } }
  1849. function Xu(t, e) { var i = t.getExtent(),
  1850. n = Math.abs(i[1] - i[0]) / t.scale.count();
  1851. isNaN(n) && (n = 0); for (var o = e.count(), a = Math.max(1, Math.round(o / 5)), r = 0; r < o; r += a)
  1852. if (1.5 * mu.getSymbolSize(e, r)[t.isHorizontal() ? 1 : 0] > n) return !1;
  1853. return !0 }
  1854. function ju(t) { return this._axes[t] }
  1855. function Yu(t) { pD.call(this, t) }
  1856. function qu(t, e) { return e.type || (e.data ? "category" : "value") }
  1857. function Ku(t, e, i) { return t.getCoordSysModel() === e }
  1858. function $u(t, e, i) { this._coordsMap = {}, this._coordsList = [], this._axesMap = {}, this._axesList = [], this._initCartesian(t, e, i), this.model = t }
  1859. function Ju(t, e, i, n) {
  1860. function o(t) { return t.dim + "_" + t.index }
  1861. i.getAxesOnZeroOf = function() { return a ? [a] : [] }; var a, r = t[e],
  1862. s = i.model,
  1863. l = s.get("axisLine.onZero"),
  1864. u = s.get("axisLine.onZeroAxisIndex"); if (l) { if (null != u) Qu(r[u]) && (a = r[u]);
  1865. else
  1866. for (var h in r)
  1867. if (r.hasOwnProperty(h) && Qu(r[h]) && !n[o(r[h])]) { a = r[h]; break }
  1868. a && (n[o(a)] = !0) } }
  1869. function Qu(t) { return t && "category" !== t.type && "time" !== t.type && Gl(t) }
  1870. function th(t, e) { var i = t.getExtent(),
  1871. n = i[0] + i[1];
  1872. 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 } }
  1873. function eh(t, e) { return f(SD, function(e) { return t.getReferringComponents(e)[0] }) }
  1874. function ih(t) { return "cartesian2d" === t.get("coordinateSystem") }
  1875. function nh(t) { var e = { componentType: t.mainType, componentIndex: t.componentIndex }; return e[t.mainType + "Index"] = t.componentIndex, e }
  1876. function oh(t, e, i, n) { var o, a, r = Ho(i - t.rotation),
  1877. s = n[0] > n[1],
  1878. l = "start" === e && !s || "start" !== e && s; return Zo(r - MD / 2) ? (a = l ? "bottom" : "top", o = "center") : Zo(r - 1.5 * MD) ? (a = l ? "top" : "bottom", o = "center") : (a = "middle", o = r < 1.5 * MD && r > MD / 2 ? l ? "left" : "right" : l ? "right" : "left"), { rotation: r, textAlign: o, textVerticalAlign: a } }
  1879. function ah(t) { var e = t.get("tooltip"); return t.get("silent") || !(t.get("triggerEvent") || e && e.show) }
  1880. function rh(t, e, i) { var n = t.get("axisLabel.showMinLabel"),
  1881. o = t.get("axisLabel.showMaxLabel");
  1882. e = e || [], i = i || []; var a = e[0],
  1883. r = e[1],
  1884. s = e[e.length - 1],
  1885. l = e[e.length - 2],
  1886. u = i[0],
  1887. h = i[1],
  1888. c = i[i.length - 1],
  1889. d = i[i.length - 2];!1 === n ? (sh(a), sh(u)) : lh(a, r) && (n ? (sh(r), sh(h)) : (sh(a), sh(u))), !1 === o ? (sh(s), sh(c)) : lh(l, s) && (o ? (sh(l), sh(d)) : (sh(s), sh(c))) }
  1890. function sh(t) { t && (t.ignore = !0) }
  1891. function lh(t, e, i) { var n = t && t.getBoundingRect().clone(),
  1892. o = e && e.getBoundingRect().clone(); if (n && o) { var a = vt([]); return wt(a, a, -t.rotation), n.applyTransform(xt([], a, t.getLocalTransform())), o.applyTransform(xt([], a, e.getLocalTransform())), n.intersect(o) } }
  1893. function uh(t) { return "middle" === t || "center" === t }
  1894. function hh(t, e, i) { var n = e.axis; if (e.get("axisTick.show") && !n.scale.isBlank()) { for (var o = e.getModel("axisTick"), a = o.getModel("lineStyle"), s = o.get("length"), l = n.getTicksCoords(), u = [], h = [], c = t._transform, d = [], f = 0; f < l.length; f++) { var p = l[f].coord;
  1895. u[0] = p, u[1] = 0, h[0] = p, h[1] = i.tickDirection * s, c && (Q(u, u, c), Q(h, h, c)); var g = new rM(Xn({ anid: "tick_" + l[f].tickValue, shape: { x1: u[0], y1: u[1], x2: h[0], y2: h[1] }, style: r(a.getLineStyle(), { stroke: e.get("axisLine.lineStyle.color") }), z2: 2, silent: !0 }));
  1896. t.group.add(g), d.push(g) } return d } }
  1897. function ch(t, e, i) { var n = e.axis; if (T(i.axisLabelShow, e.get("axisLabel.show")) && !n.scale.isBlank()) { var o = e.getModel("axisLabel"),
  1898. a = o.get("margin"),
  1899. r = n.getViewLabels(),
  1900. s = (T(i.labelRotate, o.get("rotate")) || 0) * MD / 180,
  1901. l = AD(i.rotation, s, i.labelDirection),
  1902. u = e.getCategories(!0),
  1903. h = [],
  1904. c = ah(e),
  1905. f = e.get("triggerEvent"); return d(r, function(r, s) { var d = r.tickValue,
  1906. p = r.formattedLabel,
  1907. g = r.rawLabel,
  1908. m = o;
  1909. u && u[d] && u[d].textStyle && (m = new Lo(u[d].textStyle, o, e.ecModel)); var v = m.getTextColor() || e.get("axisLine.lineStyle.color"),
  1910. y = [n.dataToCoord(d), i.labelOffset + i.labelDirection * a],
  1911. x = new qS({ anid: "label_" + d, position: y, rotation: l.rotation, silent: c, z2: 10 });
  1912. fo(x.style, m, { text: p, textAlign: m.getShallow("align", !0) || l.textAlign, textVerticalAlign: m.getShallow("verticalAlign", !0) || m.getShallow("baseline", !0) || l.textVerticalAlign, textFill: "function" == typeof v ? v("category" === n.type ? g : "value" === n.type ? d + "" : d, s) : v }), f && (x.eventData = nh(e), x.eventData.targetType = "axisLabel", x.eventData.value = g), t._dumbGroup.add(x), x.updateTransform(), h.push(x), t.group.add(x), x.decomposeTransform() }), h } }
  1913. function dh(t, e) { var i = { axesInfo: {}, seriesInvolved: !1, coordSysAxesInfo: {}, coordSysMap: {} }; return fh(i, t, e), i.seriesInvolved && gh(i, t), i }
  1914. function fh(t, e, i) { var n = e.getComponent("tooltip"),
  1915. o = e.getComponent("axisPointer"),
  1916. a = o.get("link", !0) || [],
  1917. r = [];
  1918. DD(i.getCoordinateSystems(), function(i) {
  1919. function s(n, s, l) { var c = l.model.getModel("axisPointer", o),
  1920. d = c.get("show"); if (d && ("auto" !== d || n || wh(c))) { null == s && (s = c.get("triggerTooltip")); var f = (c = n ? ph(l, h, o, e, n, s) : c).get("snap"),
  1921. p = bh(l.model),
  1922. g = s || f || "category" === l.type,
  1923. m = t.axesInfo[p] = { key: p, axis: l, coordSys: i, axisPointerModel: c, triggerTooltip: s, involveSeries: g, snap: f, useHandle: wh(c), seriesModels: [] };
  1924. u[p] = m, t.seriesInvolved |= g; var v = mh(a, l); if (null != v) { var y = r[v] || (r[v] = { axesInfo: {} });
  1925. y.axesInfo[p] = m, y.mapper = a[v].mapper, m.linkGroup = y } } } if (i.axisPointerEnabled) { var l = bh(i.model),
  1926. u = t.coordSysAxesInfo[l] = {};
  1927. t.coordSysMap[l] = i; var h = i.model.getModel("tooltip", n); if (DD(i.getAxes(), CD(s, !1, null)), i.getTooltipAxes && n && h.get("show")) { var c = "axis" === h.get("trigger"),
  1928. d = "cross" === h.get("axisPointer.type"),
  1929. f = i.getTooltipAxes(h.get("axisPointer.axis"));
  1930. (c || d) && DD(f.baseAxes, CD(s, !d || "cross", c)), d && DD(f.otherAxes, CD(s, "cross", !1)) } } }) }
  1931. function ph(t, e, n, o, a, s) { var l = e.getModel("axisPointer"),
  1932. u = {};
  1933. DD(["type", "snap", "lineStyle", "shadowStyle", "label", "animation", "animationDurationUpdate", "animationEasingUpdate", "z"], function(t) { u[t] = i(l.get(t)) }), u.snap = "category" !== t.type && !!s, "cross" === l.get("type") && (u.type = "line"); var h = u.label || (u.label = {}); if (null == h.show && (h.show = !1), "cross" === a) { var c = l.get("label.show"); if (h.show = null == c || c, !s) { var d = u.lineStyle = l.get("crossStyle");
  1934. d && r(h, d.textStyle) } } return t.model.getModel("axisPointer", new Lo(u, n, o)) }
  1935. function gh(t, e) { e.eachSeries(function(e) { var i = e.coordinateSystem,
  1936. n = e.get("tooltip.trigger", !0),
  1937. o = e.get("tooltip.show", !0);
  1938. i && "none" !== n && !1 !== n && "item" !== n && !1 !== o && !1 !== e.get("axisPointer.show", !0) && DD(t.coordSysAxesInfo[bh(i.model)], function(t) { var n = t.axis;
  1939. i.getAxis(n.dim) === n && (t.seriesModels.push(e), null == t.seriesDataCount && (t.seriesDataCount = 0), t.seriesDataCount += e.getData().count()) }) }, this) }
  1940. function mh(t, e) { for (var i = e.model, n = e.dim, o = 0; o < t.length; o++) { var a = t[o] || {}; if (vh(a[n + "AxisId"], i.id) || vh(a[n + "AxisIndex"], i.componentIndex) || vh(a[n + "AxisName"], i.name)) return o } }
  1941. function vh(t, e) { return "all" === t || y(t) && l(t, e) >= 0 || t === e }
  1942. function yh(t) { var e = xh(t); if (e) { var i = e.axisPointerModel,
  1943. n = e.axis.scale,
  1944. o = i.option,
  1945. a = i.get("status"),
  1946. r = i.get("value");
  1947. null != r && (r = n.parse(r)); var s = wh(i);
  1948. null == a && (o.status = s ? "show" : "hide"); var l = n.getExtent().slice();
  1949. l[0] > l[1] && l.reverse(), (null == r || r > l[1]) && (r = l[1]), r < l[0] && (r = l[0]), o.value = r, s && (o.status = e.axis.scale.isBlank() ? "hide" : "show") } }
  1950. function xh(t) { var e = (t.ecModel.getComponent("axisPointer") || {}).coordSysAxesInfo; return e && e.axesInfo[bh(t)] }
  1951. function _h(t) { var e = xh(t); return e && e.axisPointerModel }
  1952. function wh(t) { return !!t.get("handle.show") }
  1953. function bh(t) { return t.type + "||" + t.id }
  1954. function Sh(t, e, i, n, o, a) { var r = LD.getAxisPointerClass(t.axisPointerClass); if (r) { var s = _h(e);
  1955. s ? (t._axisPointer || (t._axisPointer = new r)).render(e, s, n, a) : Mh(t, n) } }
  1956. function Mh(t, e, i) { var n = t._axisPointer;
  1957. n && n.dispose(e, i), t._axisPointer = null }
  1958. function Ih(t, e, i) { i = i || {}; var n = t.coordinateSystem,
  1959. o = e.axis,
  1960. a = {},
  1961. r = o.getAxesOnZeroOf()[0],
  1962. s = o.position,
  1963. l = r ? "onZero" : s,
  1964. u = o.dim,
  1965. h = n.getRect(),
  1966. c = [h.x, h.x + h.width, h.y, h.y + h.height],
  1967. d = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 },
  1968. f = e.get("offset") || 0,
  1969. p = "x" === u ? [c[2] - f, c[3] + f] : [c[0] - f, c[1] + f]; if (r) { var g = r.toGlobalCoord(r.dataToCoord(0));
  1970. p[d.onZero] = Math.max(Math.min(g, p[1]), p[0]) }
  1971. a.position = ["y" === u ? p[d[l]] : c[0], "x" === u ? p[d[l]] : c[3]], a.rotation = Math.PI / 2 * ("x" === u ? 0 : 1); var m = { top: -1, bottom: 1, left: -1, right: 1 };
  1972. a.labelDirection = a.tickDirection = a.nameDirection = m[s], a.labelOffset = r ? p[d[s]] - p[d.onZero] : 0, e.get("axisTick.inside") && (a.tickDirection = -a.tickDirection), T(i.labelInside, e.get("axisLabel.inside")) && (a.labelDirection = -a.labelDirection); var v = e.get("axisLabel.rotate"); return a.labelRotate = "top" === l ? -v : v, a.z2 = 1, a }
  1973. function Th(t, e, i, n, o, a, r) { co(t, e, i.getModel("label"), i.getModel("emphasis.label"), { labelFetcher: o, labelDataIndex: a, defaultText: gu(o.getData(), a), isRectText: !0, autoColor: n }), Ah(t), Ah(e) }
  1974. function Ah(t, e) { "outside" === t.textPosition && (t.textPosition = e) }
  1975. function Dh(t, e, i) { i.style.text = null, bo(i, { shape: { width: 0 } }, e, t, function() { i.parent && i.parent.remove(i) }) }
  1976. function Ch(t, e, i) { i.style.text = null, bo(i, { shape: { r: i.shape.r0 } }, e, t, function() { i.parent && i.parent.remove(i) }) }
  1977. function Lh(t, e, i, n, o, a, s, l) { var u = e.getItemVisual(i, "color"),
  1978. h = e.getItemVisual(i, "opacity"),
  1979. c = n.getModel("itemStyle"),
  1980. d = n.getModel("emphasis.itemStyle").getBarItemStyle();
  1981. l || t.setShape("r", c.get("barBorderRadius") || 0), t.useStyle(r({ fill: u, opacity: h }, c.getBarItemStyle())); var f = n.getShallow("cursor");
  1982. f && t.attr("cursor", f); var p = s ? o.height > 0 ? "bottom" : "top" : o.width > 0 ? "left" : "right";
  1983. l || Th(t.style, d, n, u, a, i, p), uo(t, d) }
  1984. function kh(t, e) { var i = t.get(BD) || 0; return Math.min(i, Math.abs(e.width), Math.abs(e.height)) }
  1985. function Ph(t, e, i) { var n = t.getData(),
  1986. o = [],
  1987. a = n.getLayout("valueAxisHorizontal") ? 1 : 0;
  1988. o[1 - a] = n.getLayout("valueAxisStart"); var r = new FD({ shape: { points: n.getLayout("largePoints") }, incremental: !!i, __startPoint: o, __valueIdx: a });
  1989. e.add(r), Nh(r, t, n) }
  1990. function Nh(t, e, i) { var n = i.getVisual("borderColor") || i.getVisual("color"),
  1991. o = e.getModel("itemStyle").getItemStyle(["color", "borderColor"]);
  1992. t.useStyle(o), t.style.fill = null, t.style.stroke = n, t.style.lineWidth = i.getLayout("barWidth") }
  1993. function Oh(t, e, i, n) { var o = e.getData(),
  1994. a = this.dataIndex,
  1995. r = o.getName(a),
  1996. s = e.get("selectedOffset");
  1997. n.dispatchAction({ type: "pieToggleSelect", from: t, name: r, seriesId: e.id }), o.each(function(t) { Eh(o.getItemGraphicEl(t), o.getItemLayout(t), e.isSelected(o.getName(t)), s, i) }) }
  1998. function Eh(t, e, i, n, o) { var a = (e.startAngle + e.endAngle) / 2,
  1999. r = Math.cos(a),
  2000. s = Math.sin(a),
  2001. l = i ? n : 0,
  2002. u = [r * l, s * l];
  2003. o ? t.animate().when(200, { position: u }).start("bounceOut") : t.attr("position", u) }
  2004. function Rh(t, e) {
  2005. function i() { a.ignore = a.hoverIgnore, r.ignore = r.hoverIgnore }
  2006. function n() { a.ignore = a.normalIgnore, r.ignore = r.normalIgnore }
  2007. Zw.call(this); var o = new QS({ z2: 2 }),
  2008. a = new oM,
  2009. r = new qS;
  2010. this.add(o), this.add(a), this.add(r), this.updateData(t, e, !0), this.on("emphasis", i).on("normal", n).on("mouseover", i).on("mouseout", n) }
  2011. function zh(t, e, i, n, o, a, r) {
  2012. function s(e, i) { for (var n = e; n >= 0 && (t[n].y -= i, !(n > 0 && t[n].y > t[n - 1].y + t[n - 1].height)); n--); }
  2013. function l(t, e, i, n, o, a) { for (var r = e ? Number.MAX_VALUE : 0, s = 0, l = t.length; s < l; s++)
  2014. if ("center" !== t[s].position) { var u = Math.abs(t[s].y - n),
  2015. h = t[s].len,
  2016. c = t[s].len2,
  2017. d = u < o + h ? Math.sqrt((o + h + c) * (o + h + c) - u * u) : Math.abs(t[s].x - i);
  2018. e && d >= r && (d = r - 10), !e && d <= r && (d = r + 10), t[s].x = i + d * a, r = d } }
  2019. t.sort(function(t, e) { return t.y - e.y }); for (var u, h = 0, c = t.length, d = [], f = [], p = 0; p < c; p++)(u = t[p].y - h) < 0 && function(e, i, n, o) { for (var a = e; a < i; a++)
  2020. if (t[a].y += n, a > e && a + 1 < i && t[a + 1].y > t[a].y + t[a].height) return void s(a, n / 2);
  2021. s(i - 1, n / 2) }(p, c, -u), h = t[p].y + t[p].height;
  2022. r - h < 0 && s(c - 1, h - r); for (p = 0; p < c; p++) t[p].y >= i ? f.push(t[p]) : d.push(t[p]);
  2023. l(d, !1, e, i, n, o), l(f, !0, e, i, n, o) }
  2024. function Bh(t, e, i, n, o, a) { for (var r = [], s = [], l = 0; l < t.length; l++) t[l].x < e ? r.push(t[l]) : s.push(t[l]);
  2025. zh(s, e, i, n, 1, o, a), zh(r, e, i, n, -1, o, a); for (l = 0; l < t.length; l++) { var u = t[l].linePoints; if (u) { var h = u[1][0] - u[2][0];
  2026. t[l].x < e ? u[2][0] = t[l].x + 3 : u[2][0] = t[l].x - 3, u[1][1] = u[2][1] = t[l].y, u[1][0] = u[2][0] + h } } }
  2027. function Vh() { this.group = new Zw }
  2028. function Gh(t, e, i) { HA.call(this, t, e, i), this.type = "value", this.angle = 0, this.name = "", this.model }
  2029. function Fh(t, e, i) { this._model = t, this.dimensions = [], this._indicatorAxes = f(t.getIndicatorModels(), function(t, e) { var i = "indicator_" + e,
  2030. n = new Gh(i, new hA); 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 }
  2031. function Wh(t, e) { return r({ show: e }, t) }
  2032. function Hh(t) { return y(t) || (t = [+t, +t]), t }
  2033. function Zh() { mw.call(this) }
  2034. function Uh(t) { this.name = t, this.zoomLimit, mw.call(this), this._roamTransformable = new Zh, this._rawTransformable = new Zh, this._center, this._zoom }
  2035. function Xh(t, e, i, n) { var o = i.seriesModel,
  2036. a = o ? o.coordinateSystem : null; return a === this ? a[t](n) : null }
  2037. function jh(t) { for (var e, i = 0; i < t.length; i++) { var n = t[i].getBoundingRect();
  2038. (e = e || n.clone()).union(n) } return e }
  2039. function Yh(t, e) { var i, n, o = t.svgXML; try { k(null != (n = (i = o && ns(o, { ignoreViewBox: !0, ignoreRootClip: !0 }) || {}).root)) } catch (t) { throw new Error("Invalid svg format\n" + t.message) } var a = i.width,
  2040. r = i.height,
  2041. s = i.viewBoxRect; if (e || (e = null == a || null == r ? n.getBoundingRect() : new ue(0, 0, 0, 0), null != a && (e.width = a), null != r && (e.height = r)), s) { var l = is(s, e.width, e.height),
  2042. u = n;
  2043. (n = new Zw).add(u), u.scale = l.scale, u.position = l.position } return n.setClipPath(new aM({ shape: e.plain() })), { root: n, boundingRect: e } }
  2044. function qh(t) { return function(e, i) { var n = []; return d(Kh(e), function(o) { var a = yC[o.type][t];
  2045. a && n.push(a(e, o, i)) }), n } }
  2046. function Kh(t) { return pT.retrieveMap(t) || [] }
  2047. function $h(t, e, i, n) { Uh.call(this, t), this.map = e; var o = xC.load(e, i);
  2048. this._nameCoordMap = o.nameCoordMap, this._regionsMap = o.nameCoordMap, this._invertLongitute = null == n || n, this.regions = o.regions, this._rect = o.boundingRect }
  2049. function Jh(t, e, i, n) { var o = i.geoModel,
  2050. a = i.seriesModel,
  2051. r = o ? o.coordinateSystem : a ? a.coordinateSystem || (a.getReferringComponents("geo")[0] || {}).coordinateSystem : null; return r === this ? r[t](n) : null }
  2052. function Qh(t, e) { var i = t.get("boundingCoords"); if (null != i) { var n = i[0],
  2053. o = i[1];
  2054. isNaN(n[0]) || isNaN(n[1]) || isNaN(o[0]) || isNaN(o[1]) || this.setBoundingRect(n[0], n[1], o[0] - n[0], o[1] - n[1]) } var a, r = this.getBoundingRect(),
  2055. s = t.get("layoutCenter"),
  2056. l = t.get("layoutSize"),
  2057. u = e.getWidth(),
  2058. h = e.getHeight(),
  2059. c = r.width / r.height * this.aspectScale,
  2060. d = !1;
  2061. s && l && (s = [Ro(s[0], u), Ro(s[1], h)], l = Ro(l, Math.min(u, h)), isNaN(s[0]) || isNaN(s[1]) || isNaN(l) || (d = !0)); if (d) { var f = {};
  2062. c > 1 ? (f.width = l, f.height = l / c) : (f.height = l, f.width = l * c), f.y = s[1] - f.height / 2, f.x = s[0] - f.width / 2 } else(a = t.getBoxLayoutParams()).aspect = c, f = la(a, { width: u, height: h });
  2063. this.setViewRect(f.x, f.y, f.width, f.height), this.setCenter(t.get("center")), this.setZoom(t.get("zoom")) }
  2064. function tc(t, e) { d(e.get("geoCoord"), function(e, i) { t.addGeoCoord(i, e) }) }
  2065. function ec(t, e, i) { oc(t)[e] = i }
  2066. function ic(t, e, i) { var n = oc(t);
  2067. n[e] === i && (n[e] = null) }
  2068. function nc(t, e) { return !!oc(t)[e] }
  2069. function oc(t) { return t[bC] || (t[bC] = {}) }
  2070. function ac(t) { this.pointerChecker, this._zr = t, this._opt = {}; var e = m,
  2071. n = e(rc, this),
  2072. o = e(sc, this),
  2073. a = e(lc, this),
  2074. s = e(uc, this),
  2075. l = e(hc, this);
  2076. aw.call(this), this.setPointerChecker = function(t) { this.pointerChecker = t }, this.enable = function(e, u) { this.disable(), this._opt = r(i(u) || {}, { zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !1, preventDefaultMouseMove: !0 }), null == e && (e = !0), !0 !== e && "move" !== e && "pan" !== e || (t.on("mousedown", n), t.on("mousemove", o), t.on("mouseup", a)), !0 !== e && "scale" !== e && "zoom" !== e || (t.on("mousewheel", s), t.on("pinch", l)) }, this.disable = function() { t.off("mousedown", n), t.off("mousemove", o), t.off("mouseup", a), t.off("mousewheel", s), t.off("pinch", l) }, this.dispose = this.disable, this.isDragging = function() { return this._dragging }, this.isPinching = function() { return this._pinching } }
  2077. function rc(t) { if (!(ct(t) || t.target && t.target.draggable)) { var e = t.offsetX,
  2078. i = t.offsetY;
  2079. this.pointerChecker && this.pointerChecker(t, e, i) && (this._x = e, this._y = i, this._dragging = !0) } }
  2080. function sc(t) { if (!ct(t) && fc("moveOnMouseMove", t, this._opt) && this._dragging && "pinch" !== t.gestureEvent && !nc(this._zr, "globalPan")) { var e = t.offsetX,
  2081. i = t.offsetY,
  2082. n = this._x,
  2083. o = this._y,
  2084. a = e - n,
  2085. r = i - o;
  2086. this._x = e, this._y = i, this._opt.preventDefaultMouseMove && lw(t.event), dc(this, "pan", "moveOnMouseMove", t, { dx: a, dy: r, oldX: n, oldY: o, newX: e, newY: i }) } }
  2087. function lc(t) { ct(t) || (this._dragging = !1) }
  2088. function uc(t) { var e = fc("zoomOnMouseWheel", t, this._opt),
  2089. i = fc("moveOnMouseWheel", t, this._opt),
  2090. n = t.wheelDelta,
  2091. o = Math.abs(n),
  2092. a = t.offsetX,
  2093. r = t.offsetY; if (0 !== n && (e || i)) { if (e) { var s = o > 3 ? 1.4 : o > 1 ? 1.2 : 1.1;
  2094. cc(this, "zoom", "zoomOnMouseWheel", t, { scale: n > 0 ? s : 1 / s, originX: a, originY: r }) } if (i) { var l = Math.abs(n);
  2095. cc(this, "scrollMove", "moveOnMouseWheel", t, { scrollDelta: (n > 0 ? 1 : -1) * (l > 3 ? .4 : l > 1 ? .15 : .05), originX: a, originY: r }) } } }
  2096. function hc(t) { nc(this._zr, "globalPan") || cc(this, "zoom", null, t, { scale: t.pinchScale > 1 ? 1.1 : 1 / 1.1, originX: t.pinchX, originY: t.pinchY }) }
  2097. function cc(t, e, i, n, o) { t.pointerChecker && t.pointerChecker(n, o.originX, o.originY) && (lw(n.event), dc(t, e, i, n, o)) }
  2098. function dc(t, e, i, n, o) { o.isAvailableBehavior = m(fc, null, i, n), t.trigger(e, o) }
  2099. function fc(t, e, i) { var n = i[t]; return !t || n && (!_(n) || e.event[n + "Key"]) }
  2100. function pc(t, e, i) { var n = t.target,
  2101. o = n.position;
  2102. o[0] += e, o[1] += i, n.dirty() }
  2103. function gc(t, e, i, n) { var o = t.target,
  2104. a = t.zoomLimit,
  2105. r = o.position,
  2106. s = o.scale,
  2107. l = t.zoom = t.zoom || 1; if (l *= e, a) { var u = a.min || 0,
  2108. h = a.max || 1 / 0;
  2109. l = Math.max(Math.min(h, l), u) } var c = l / t.zoom;
  2110. 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() }
  2111. function mc(t, e, i) { var n = e.getComponentByElement(t.topTarget),
  2112. o = n && n.coordinateSystem; return n && n !== i && !SC[n.mainType] && o && o.model !== i }
  2113. function vc(t, e) { var i = t.getItemStyle(),
  2114. n = t.get("areaColor"); return null != n && (i.fill = n), i }
  2115. function yc(t, e, i, n, o) { i.off("click"), i.off("mousedown"), e.get("selectedMode") && (i.on("mousedown", function() { t._mouseDownFlag = !0 }), i.on("click", function(a) { if (t._mouseDownFlag) { t._mouseDownFlag = !1; for (var r = a.target; !r.__regions;) r = r.parent; if (r) { var s = { type: ("geo" === e.mainType ? "geo" : "map") + "ToggleSelect", batch: f(r.__regions, function(t) { return { name: t.name, from: o.uid } }) };
  2116. s[e.mainType + "Id"] = e.id, n.dispatchAction(s), xc(e, i) } } })) }
  2117. function xc(t, e) { e.eachChild(function(e) { d(e.__regions, function(i) { e.trigger(t.isSelected(i.name) ? "emphasis" : "normal") }) }) }
  2118. function _c(t, e) { var i = new Zw;
  2119. this.uid = No("ec_map_draw"), this._controller = new ac(t.getZr()), this._controllerHost = { target: e ? i : null }, this.group = i, this._updateGroup = e, this._mouseDownFlag, this._mapName, this._initialized, i.add(this._regionsGroup = new Zw), i.add(this._backgroundGroup = new Zw) }
  2120. function wc(t, e, i) { var n = t.getZoom(),
  2121. o = t.getCenter(),
  2122. a = e.zoom,
  2123. r = t.dataToPoint(o); if (null != e.dx && null != e.dy) { r[0] -= e.dx, r[1] -= e.dy;
  2124. o = t.pointToData(r);
  2125. t.setCenter(o) } if (null != a) { if (i) { var s = i.min || 0,
  2126. l = i.max || 1 / 0;
  2127. a = Math.max(Math.min(n * a, l), s) / n }
  2128. t.scale[0] *= a, t.scale[1] *= a; var u = t.position,
  2129. h = (e.originX - u[0]) * (a - 1),
  2130. c = (e.originY - u[1]) * (a - 1);
  2131. u[0] -= h, u[1] -= c, t.updateTransform();
  2132. o = t.pointToData(r);
  2133. t.setCenter(o), t.setZoom(a * n) } return { center: t.getCenter(), zoom: t.getZoom() } }
  2134. function bc(t, e) { var i = {}; return d(t, function(t) { t.each(t.mapDimension("value"), function(e, n) { var o = "ec-" + t.getName(n);
  2135. i[o] = i[o] || [], isNaN(e) || i[o].push(e) }) }), t[0].map(t[0].mapDimension("value"), function(n, o) { for (var a = "ec-" + t[0].getName(o), r = 0, s = 1 / 0, l = -1 / 0, u = i[a].length, h = 0; h < u; 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 ? NaN : c }) }
  2136. function Sc(t) { var e = t.mainData,
  2137. i = t.datas;
  2138. i || (i = { main: e }, t.datasAttr = { main: "data" }), t.datas = t.mainData = null, Cc(e, i, t), MC(i, function(i) { MC(e.TRANSFERABLE_METHODS, function(e) { i.wrapMethod(e, v(Mc, t)) }) }), e.wrapMethod("cloneShallow", v(Tc, t)), MC(e.CHANGABLE_METHODS, function(i) { e.wrapMethod(i, v(Ic, t)) }), k(i[e.dataType] === e) }
  2139. function Mc(t, e) { if (Dc(this)) { var i = a({}, this[IC]);
  2140. i[this.dataType] = e, Cc(e, i, t) } else Lc(e, this.dataType, this[TC], t); return e }
  2141. function Ic(t, e) { return t.struct && t.struct.update(this), e }
  2142. function Tc(t, e) { return MC(e[IC], function(i, n) { i !== e && Lc(i.cloneShallow(), n, e, t) }), e }
  2143. function Ac(t) { var e = this[TC]; return null == t || null == e ? e : e[IC][t] }
  2144. function Dc(t) { return t[TC] === t }
  2145. function Cc(t, e, i) { t[IC] = {}, MC(e, function(e, n) { Lc(e, n, t, i) }) }
  2146. function Lc(t, e, i, n) { i[IC][e] = t, t[TC] = i, t.dataType = e, n.struct && (t[n.structAttr] = n.struct, n.struct[n.datasAttr[e]] = t), t.getLinkedData = Ac }
  2147. function kc(t, e, i) { this.root, this.data, this._nodes = [], this.hostModel = t, this.levelModels = f(e || [], function(e) { return new Lo(e, t, t.ecModel) }), this.leavesModel = new Lo(i || {}, t, t.ecModel) }
  2148. function Pc(t, e) { var i = e.children;
  2149. t.parentNode !== e && (i.push(t), t.parentNode = e) }
  2150. function Nc(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();)
  2151. if (i = e.children, e.isExpand && i.length)
  2152. for (var o = i.length - 1; o >= 0; o--) { var a = i[o];
  2153. a.hierNode = { defaultAncestor: null, ancestor: a, prelim: 0, modifier: 0, change: 0, shift: 0, i: o, thread: null }, n.push(a) } }
  2154. function Oc(t, e) { var i = t.isExpand ? t.children : [],
  2155. n = t.parentNode.children,
  2156. o = t.hierNode.i ? n[t.hierNode.i - 1] : null; if (i.length) { Vc(t); var a = (i[0].hierNode.prelim + i[i.length - 1].hierNode.prelim) / 2;
  2157. 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));
  2158. t.parentNode.hierNode.defaultAncestor = Gc(t, o, t.parentNode.hierNode.defaultAncestor || n[0], e) }
  2159. function Ec(t) { var e = t.hierNode.prelim + t.parentNode.hierNode.modifier;
  2160. t.setLayout({ x: e }, !0), t.hierNode.modifier += t.parentNode.hierNode.modifier }
  2161. function Rc(t) { return arguments.length ? t : Uc }
  2162. function zc(t, e) { var i = {}; return t -= Math.PI / 2, i.x = e * Math.cos(t), i.y = e * Math.sin(t), i }
  2163. function Bc(t, e) { return la(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }) }
  2164. function Vc(t) { for (var e = t.children, i = e.length, n = 0, o = 0; --i >= 0;) { var a = e[i];
  2165. a.hierNode.prelim += n, a.hierNode.modifier += n, o += a.hierNode.change, n += a.hierNode.shift + o } }
  2166. function Gc(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 = Fc(s), a = Wc(a), s && a;) { o = Fc(o), r = Wc(r), o.hierNode.ancestor = t; var d = s.hierNode.prelim + c - a.hierNode.prelim - u + n(s, a);
  2167. d > 0 && (Zc(Hc(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 }
  2168. s && !Fc(o) && (o.hierNode.thread = s, o.hierNode.modifier += c - l), a && !Wc(r) && (r.hierNode.thread = a, r.hierNode.modifier += u - h, i = t) } return i }
  2169. function Fc(t) { var e = t.children; return e.length && t.isExpand ? e[e.length - 1] : t.hierNode.thread }
  2170. function Wc(t) { var e = t.children; return e.length && t.isExpand ? e[0] : t.hierNode.thread }
  2171. function Hc(t, e, i) { return t.hierNode.ancestor.parentNode === e.parentNode ? t.hierNode.ancestor : i }
  2172. function Zc(t, e, i) { var n = i / (e.hierNode.i - t.hierNode.i);
  2173. e.hierNode.change -= n, e.hierNode.shift += i, e.hierNode.modifier += i, e.hierNode.prelim += i, t.hierNode.change += n }
  2174. function Uc(t, e) { return t.parentNode === e.parentNode ? 1 : 2 }
  2175. function Xc(t, e) { var i = t.getItemLayout(e); return i && !isNaN(i.x) && !isNaN(i.y) && "none" !== t.getItemVisual(e, "symbol") }
  2176. function jc(t, e, i) { return i.itemModel = e, i.itemStyle = e.getModel("itemStyle").getItemStyle(), i.hoverItemStyle = e.getModel("emphasis.itemStyle").getItemStyle(), i.lineStyle = e.getModel("lineStyle").getLineStyle(), i.labelModel = e.getModel("label"), i.hoverLabelModel = e.getModel("emphasis.label"), !1 === t.isExpand && 0 !== t.children.length ? i.symbolInnerColor = i.itemStyle.fill : i.symbolInnerColor = "#fff", i }
  2177. function Yc(t, e, i, n, o, a) { var s = !i,
  2178. l = t.tree.getNodeByDataIndex(e),
  2179. a = jc(l, l.getModel(), a),
  2180. u = t.tree.root,
  2181. h = l.parentNode === u ? l : l.parentNode || l,
  2182. c = t.getItemGraphicEl(h.dataIndex),
  2183. d = h.getLayout(),
  2184. f = c ? { x: c.position[0], y: c.position[1], rawX: c.__radialOldRawX, rawY: c.__radialOldRawY } : d,
  2185. p = l.getLayout();
  2186. s ? (i = new mu(t, e, a)).attr("position", [f.x, f.y]) : i.updateData(t, e, a), i.__radialOldRawX = i.__radialRawX, i.__radialOldRawY = i.__radialRawY, i.__radialRawX = p.rawX, i.__radialRawY = p.rawY, n.add(i), t.setItemGraphicEl(e, i), bo(i, { position: [p.x, p.y] }, o); var g = i.getSymbolPath(); if ("radial" === a.layout) { var m, v, y = u.children[0],
  2187. x = y.getLayout(),
  2188. _ = y.children.length; if (p.x === x.x && !0 === l.isExpand) { var w = {};
  2189. w.x = (y.children[0].getLayout().x + y.children[_ - 1].getLayout().x) / 2, w.y = (y.children[0].getLayout().y + y.children[_ - 1].getLayout().y) / 2, (m = Math.atan2(w.y - x.y, w.x - x.x)) < 0 && (m = 2 * Math.PI + m), (v = w.x < x.x) && (m -= Math.PI) } else(m = Math.atan2(p.y - x.y, p.x - x.x)) < 0 && (m = 2 * Math.PI + m), 0 === l.children.length || 0 !== l.children.length && !1 === l.isExpand ? (v = p.x < x.x) && (m -= Math.PI) : (v = p.x > x.x) || (m -= Math.PI); var b = v ? "left" : "right";
  2190. g.setStyle({ textPosition: b, textRotation: -m, textOrigin: "center", verticalAlign: "middle" }) } if (l.parentNode && l.parentNode !== u) { var S = i.__edge;
  2191. S || (S = i.__edge = new lM({ shape: Kc(a, f, f), style: r({ opacity: 0, strokeNoScale: !0 }, a.lineStyle) })), bo(S, { shape: Kc(a, d, p), style: { opacity: 1 } }, o), n.add(S) } }
  2192. function qc(t, e, i, n, o, a) { for (var r, s = t.tree.getNodeByDataIndex(e), l = t.tree.root, a = jc(s, s.getModel(), a), u = s.parentNode === l ? s : s.parentNode || s; null == (r = u.getLayout());) u = u.parentNode === l ? u : u.parentNode || u;
  2193. bo(i, { position: [r.x + 1, r.y + 1] }, o, function() { n.remove(i), t.setItemGraphicEl(e, null) }), i.fadeOut(null, { keepLabel: !0 }); var h = i.__edge;
  2194. h && bo(h, { shape: Kc(a, r, r), style: { opacity: 0 } }, o, function() { n.remove(h) }) }
  2195. function Kc(t, e, i) { var n, o, a, r, s, l, u, h, c = t.orient; if ("radial" === t.layout) { s = e.rawX, u = e.rawY, l = i.rawX, h = i.rawY; var d = zc(s, u),
  2196. f = zc(s, u + (h - u) * t.curvature),
  2197. p = zc(l, h + (u - h) * t.curvature),
  2198. g = zc(l, h); return { x1: d.x, y1: d.y, x2: g.x, y2: g.y, cpx1: f.x, cpy1: f.y, cpx2: p.x, cpy2: p.y } } return s = e.x, u = e.y, l = i.x, h = i.y, "LR" !== c && "RL" !== c || (n = s + (l - s) * t.curvature, o = u, a = l + (s - l) * t.curvature, r = h), "TB" !== c && "BT" !== c || (n = s, o = u + (h - u) * t.curvature, a = l, r = h + (u - h) * t.curvature), { x1: s, y1: u, x2: l, y2: h, cpx1: n, cpy1: o, cpx2: a, cpy2: r } }
  2199. function $c(t, e, i) { for (var n, o = [t], a = []; n = o.pop();)
  2200. if (a.push(n), n.isExpand) { var r = n.children; if (r.length)
  2201. for (var s = 0; s < r.length; s++) o.push(r[s]) }
  2202. for (; n = a.pop();) e(n, i) }
  2203. function Jc(t, e) { for (var i, n = [t]; i = n.pop();)
  2204. if (e(i), i.isExpand) { var o = i.children; if (o.length)
  2205. for (var a = o.length - 1; a >= 0; a--) n.push(o[a]) } }
  2206. function Qc(t, e) { var i = Bc(t, e);
  2207. t.layoutInfo = i; var n = t.get("layout"),
  2208. o = 0,
  2209. a = 0,
  2210. r = null; "radial" === n ? (o = 2 * Math.PI, a = Math.min(i.height, i.width) / 2, r = Rc(function(t, e) { return (t.parentNode === e.parentNode ? 1 : 2) / t.depth })) : (o = i.width, a = i.height, r = Rc()); var s = t.getData().tree.root,
  2211. l = s.children[0]; if (l) { Nc(s), $c(l, Oc, r), s.hierNode.modifier = -l.hierNode.prelim, Jc(l, Ec); var u = l,
  2212. h = l,
  2213. c = l;
  2214. Jc(l, function(t) { var e = t.getLayout().x;
  2215. e < u.getLayout().x && (u = t), e > h.getLayout().x && (h = t), t.depth > c.depth && (c = t) }); var d = u === h ? 1 : r(u, h) / 2,
  2216. f = d - u.getLayout().x,
  2217. p = 0,
  2218. g = 0,
  2219. m = 0,
  2220. v = 0; if ("radial" === n) p = o / (h.getLayout().x + d + f), g = a / (c.depth - 1 || 1), Jc(l, function(t) { m = (t.getLayout().x + f) * p, v = (t.depth - 1) * g; var e = zc(m, v);
  2221. t.setLayout({ x: e.x, y: e.y, rawX: m, rawY: v }, !0) });
  2222. else { var y = t.getOrient(); "RL" === y || "LR" === y ? (g = a / (h.getLayout().x + d + f), p = o / (c.depth - 1 || 1), Jc(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), Jc(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) })) } } }
  2223. function td(t, e, i) { if (t && l(e, t.type) >= 0) { var n = i.getData().tree.root,
  2224. 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 } } }
  2225. function ed(t) { for (var e = []; t;)(t = t.parentNode) && e.push(t); return e.reverse() }
  2226. function id(t, e) { return l(ed(t), e) >= 0 }
  2227. function nd(t, e) { for (var i = []; t;) { var n = t.dataIndex;
  2228. i.push({ name: t.name, dataIndex: n, value: e.getRawValue(n) }), t = t.parentNode } return i.reverse(), i }
  2229. function od(t) { var e = 0;
  2230. d(t.children, function(t) { od(t); var i = t.value;
  2231. y(i) && (i = i[0]), e += i }); var i = t.value;
  2232. y(i) && (i = i[0]), (null == i || isNaN(i)) && (i = e), i < 0 && (i = 0), y(t.value) ? t.value[0] = i : t.value = i }
  2233. function ad(t, e) { var i = e.get("color"); if (i) { var n; return d(t = t || [], function(t) { var e = new Lo(t),
  2234. i = e.get("color");
  2235. (e.get("itemStyle.color") || i && "none" !== i) && (n = !0) }), n || ((t[0] || (t[0] = {})).color = i.slice()), t } }
  2236. function rd(t) { this.group = new Zw, t.add(this.group) }
  2237. function sd(t, e, i, n, o, a) { var r = [
  2238. [o ? t : t - DC, e],
  2239. [t + i, e],
  2240. [t + i, e + n],
  2241. [o ? t : t - DC, e + n]
  2242. ]; return !a && r.splice(2, 0, [t + i + DC, e + n / 2]), !o && r.push([t, e + n / 2]), r }
  2243. function ld(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 && nd(i, e) } }
  2244. function ud() { var t, e = [],
  2245. i = {}; return { add: function(t, n, o, a, r) { return _(a) && (r = a, a = 0), !i[t.id] && (i[t.id] = 1, e.push({ el: t, target: n, time: o, delay: a, easing: r }), !0) }, done: function(e) { return t = e, this }, start: function() { for (var n = e.length, o = 0, a = e.length; o < a; o++) { var r = e[o];
  2246. r.el.animateTo(r.target, r.time, r.delay, r.easing, function() {--n || (e.length = 0, i = {}, t && t()) }) } return this } } }
  2247. function hd(t, e, n, o, r, s, l, u, h, c) {
  2248. function d(t, e) { w ? !t.invisible && s.push(t) : (e(), t.__tmWillVisible || (t.invisible = !1)) }
  2249. function f(e, n, o, a, r, s) { var u = l.getModel(),
  2250. h = T(t.getFormattedLabel(l.dataIndex, "normal", null, null, s ? "upperLabel" : "label"), u.get("name")); if (!s && v.isLeafRoot) { var c = t.get("drillDownIcon", !0);
  2251. h = c ? c + " " + h : h } var d = u.getModel(s ? EC : NC),
  2252. f = u.getModel(s ? RC : OC),
  2253. p = d.getShallow("show");
  2254. co(e, n, d, f, { defaultText: p ? h : null, autoColor: o, isRectText: !0 }), s && (e.textRect = i(s)), e.truncate = p && d.get("ellipsis") ? { outerWidth: a, outerHeight: r, minChar: 2 } : null }
  2255. function p(t, i, o, a) { var s = null != S && n[t][S],
  2256. l = r[t]; return s ? (n[t][S] = null, g(l, s, t)) : w || ((s = new i({ z: cd(o, a) })).__tmDepth = o, s.__tmStorageName = t, m(l, s, t)), e[t][b] = s }
  2257. function g(t, e, i) {
  2258. (t[b] = {}).old = "nodeGroup" === i ? e.position.slice() : a({}, e.shape) }
  2259. function m(t, e, i) { var n = t[b] = {},
  2260. a = l.parentNode; if (a && (!o || "drillDown" === o.direction)) { var s = 0,
  2261. u = 0,
  2262. h = r.background[a.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 } }
  2263. n.fadein = "nodeGroup" !== i } if (l) { var v = l.getLayout(); if (v && v.isInView) { var y = v.width,
  2264. x = v.height,
  2265. _ = v.borderWidth,
  2266. w = v.invisible,
  2267. b = l.getRawIndex(),
  2268. S = u && u.getRawIndex(),
  2269. M = l.viewChildren,
  2270. I = v.upperHeight,
  2271. A = M && M.length,
  2272. D = l.getModel("itemStyle"),
  2273. C = l.getModel("emphasis.itemStyle"),
  2274. L = p("nodeGroup", LC); if (L) { if (h.add(L), L.attr("position", [v.x || 0, v.y || 0]), L.__tmNodeWidth = y, L.__tmNodeHeight = x, v.isAboveViewRoot) return L; var k = p("background", kC, c, BC); if (k && function(e, i, n) { i.dataIndex = l.dataIndex, i.seriesIndex = t.seriesIndex, i.setShape({ x: 0, y: 0, width: y, height: x }); var o = l.getVisual("borderColor", !0),
  2275. a = C.get("borderColor");
  2276. d(i, function() { var t = FC(D);
  2277. t.fill = o; var e = GC(C); if (e.fill = a, n) { var r = y - 2 * _;
  2278. f(t, e, o, r, I, { x: _, y: 0, width: r, height: I }) } else t.text = e.text = null;
  2279. i.setStyle(t), uo(i, e) }), e.add(i) }(L, k, A && v.upperHeight), !A) { var P = p("content", kC, c, VC);
  2280. P && function(e, i) { i.dataIndex = l.dataIndex, i.seriesIndex = t.seriesIndex; var n = Math.max(y - 2 * _, 0),
  2281. o = Math.max(x - 2 * _, 0);
  2282. i.culling = !0, i.setShape({ x: _, y: _, width: n, height: o }); var a = l.getVisual("color", !0);
  2283. d(i, function() { var t = FC(D);
  2284. t.fill = a; var e = GC(C);
  2285. f(t, e, a, n, o), i.setStyle(t), uo(i, e) }), e.add(i) }(L, P) } return L } } } }
  2286. function cd(t, e) { var i = t * zC + e; return (i - 1) / i }
  2287. function dd(t) { var e = t.pieceList;
  2288. t.hasSpecialVisual = !1, d(e, function(e, i) { e.originIndex = i, null != e.visual && (t.hasSpecialVisual = !0) }) }
  2289. function fd(t) { var e = t.categories,
  2290. i = t.visual,
  2291. n = t.categoryMap = {}; if (ZC(e, function(t, e) { n[t] = e }), !y(i)) { var o = [];
  2292. w(i) ? ZC(i, function(t, e) { var i = n[e];
  2293. o[null != i ? i : XC] = t }) : o[XC] = i, i = bd(t, o) } for (var a = e.length - 1; a >= 0; a--) null == i[a] && (delete n[e[a]], e.pop()) }
  2294. function pd(t, e) { var i = t.visual,
  2295. n = [];
  2296. w(i) ? ZC(i, function(t) { n.push(t) }) : null != i && n.push(i); var o = { color: 1, symbol: 1 };
  2297. e || 1 !== n.length || o.hasOwnProperty(t.type) || (n[1] = n[0]), bd(t, n) }
  2298. function gd(t) { return { applyVisual: function(e, i, n) { e = this.mapValueToVisual(e), n("color", t(i("color"), e)) }, _doMap: _d([0, 1]) } }
  2299. function md(t) { var e = this.option.visual; return e[Math.round(Eo(t, [0, 1], [0, e.length - 1], !0))] || {} }
  2300. function vd(t) { return function(e, i, n) { n(t, this.mapValueToVisual(e)) } }
  2301. function yd(t) { var e = this.option.visual; return e[this.option.loop && t !== XC ? t % e.length : t] }
  2302. function xd() { return this.option.visual[0] }
  2303. function _d(t) { return { linear: function(e) { return Eo(e, t, this.option.visual, !0) }, category: yd, piecewise: function(e, i) { var n = wd.call(this, i); return null == n && (n = Eo(e, t, this.option.visual, !0)), n }, fixed: xd } }
  2304. function wd(t) { var e = this.option,
  2305. i = e.pieceList; if (e.hasSpecialVisual) { var n = i[jC.findPieceIndex(t, i)]; if (n && n.visual) return n.visual[this.type] } }
  2306. function bd(t, e) { return t.visual = e, "color" === t.type && (t.parsedVisual = f(e, function(t) { return zt(t) })), e }
  2307. function Sd(t, e, i) { return t ? e <= i : e < i }
  2308. function Md(t, e, i, n, o, a) { var r = t.getModel(),
  2309. s = t.getLayout(); if (s && !s.invisible && s.isInView) { var l, u = t.getModel($C),
  2310. h = Id(u, e, i[t.depth], n),
  2311. c = u.get("borderColor"),
  2312. f = u.get("borderColorSaturation");
  2313. null != f && (c = Ad(f, l = Td(h))), t.setVisual("borderColor", c); var p = t.viewChildren; if (p && p.length) { var g = Cd(t, r, s, u, h, p);
  2314. d(p, function(t, e) {
  2315. (t.depth >= o.length || t === o[t.depth]) && Md(t, kd(r, h, t, e, g, a), i, n, o, a) }) } else l = Td(h), t.setVisual("color", l) } }
  2316. function Id(t, e, i, n) { var o = a({}, e); return d(["color", "colorAlpha", "colorSaturation"], function(a) { var r = t.get(a, !0);
  2317. null == r && i && (r = i[a]), null == r && (r = e[a]), null == r && (r = n.get(a)), null != r && (o[a] = r) }), o }
  2318. function Td(t) { var e = Dd(t, "color"); if (e) { var i = Dd(t, "colorAlpha"),
  2319. n = Dd(t, "colorSaturation"); return n && (e = Zt(e, null, null, n)), i && (e = Ut(e, i)), e } }
  2320. function Ad(t, e) { return null != e ? Zt(e, null, null, t) : null }
  2321. function Dd(t, e) { var i = t[e]; if (null != i && "none" !== i) return i }
  2322. function Cd(t, e, i, n, o, a) { if (a && a.length) { var r = Ld(e, "color") || null != o.color && "none" !== o.color && (Ld(e, "colorAlpha") || Ld(e, "colorSaturation")); if (r) { var s = e.get("visualMin"),
  2323. l = e.get("visualMax"),
  2324. u = i.dataExtent.slice();
  2325. null != s && s < u[0] && (u[0] = s), null != l && l > u[1] && (u[1] = l); var h = e.get("colorMappingBy"),
  2326. 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 jC(c); return d.__drColorMappingBy = h, d } } }
  2327. function Ld(t, e) { var i = t.get(e); return KC(i) && i.length ? { name: e, range: i } : null }
  2328. function kd(t, e, i, n, o, r) { var s = a({}, e); if (o) { var l = o.type,
  2329. u = "color" === l && o.__drColorMappingBy,
  2330. h = "index" === u ? n : "id" === u ? r.mapIdToIndex(i.getId()) : i.getValue(t.get("visualDimension"));
  2331. s[l] = o.mapValueToVisual(h) } return s }
  2332. function Pd(t, e, i, n) { var o, a; if (!t.isRemoved()) { var r = t.getLayout();
  2333. o = r.width, a = r.height; var s = (f = t.getModel()).get(nL),
  2334. l = f.get(oL) / 2,
  2335. u = Wd(f),
  2336. h = Math.max(s, u),
  2337. c = s - l,
  2338. d = h - l,
  2339. f = t.getModel();
  2340. t.setLayout({ borderWidth: s, upperHeight: h, upperLabelHeight: u }, !0); var p = (o = QC(o - 2 * c, 0)) * (a = QC(a - c - d, 0)),
  2341. g = Nd(t, f, p, e, i, n); if (g.length) { var m = { x: c, y: d, width: o, height: a },
  2342. v = tL(o, a),
  2343. y = 1 / 0,
  2344. x = [];
  2345. x.area = 0; for (var _ = 0, w = g.length; _ < w;) { var b = g[_];
  2346. x.push(b), x.area += b.getLayout().area; var S = zd(x, v, e.squareRatio);
  2347. S <= y ? (_++, y = S) : (x.area -= x.pop().getLayout().area, Bd(x, v, m, l, !1), v = tL(m.width, m.height), x.length = x.area = 0, y = 1 / 0) } if (x.length && Bd(x, v, m, l, !0), !i) { var M = f.get("childrenVisibleMin");
  2348. null != M && p < M && (i = !0) } for (var _ = 0, w = g.length; _ < w; _++) Pd(g[_], e, i, n + 1) } } }
  2349. function Nd(t, e, i, n, o, a) { var r = t.children || [],
  2350. s = n.sort; "asc" !== s && "desc" !== s && (s = null); var l = null != n.leafDepth && n.leafDepth <= a; if (o && !l) return t.viewChildren = [];
  2351. Ed(r = g(r, function(t) { return !t.isRemoved() }), s); var u = Rd(e, r, s); if (0 === u.sum) return t.viewChildren = []; if (u.sum = Od(e, i, u.sum, s, r), 0 === u.sum) return t.viewChildren = []; for (var h = 0, c = r.length; h < c; h++) { var d = r[h].getValue() / u.sum * i;
  2352. 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 }
  2353. function Od(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();
  2354. u / i * e < a && (s = l, i -= u) } return "asc" === n ? o.splice(0, r - s) : o.splice(s, r - s), i }
  2355. function Ed(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 }
  2356. function Rd(t, e, i) { for (var n = 0, o = 0, a = e.length; o < a; o++) n += e[o].getValue(); var r = t.get("visualDimension"); if (e && e.length)
  2357. if ("value" === r && i) s = [e[e.length - 1].getValue(), e[0].getValue()], "asc" === i && s.reverse();
  2358. else { var s = [1 / 0, -1 / 0];
  2359. iL(e, function(t) { var e = t.getValue(r);
  2360. e < s[0] && (s[0] = e), e > s[1] && (s[1] = e) }) }
  2361. else s = [NaN, NaN]; return { sum: n, dataExtent: s } }
  2362. function zd(t, e, i) { for (var n, o = 0, a = 1 / 0, r = 0, s = t.length; r < s; r++)(n = t[r].getLayout().area) && (n < a && (a = n), n > o && (o = n)); var l = t.area * t.area,
  2363. u = e * e * i; return l ? QC(u * o / l, l / (u * a)) : 1 / 0 }
  2364. function Bd(t, e, i, n, o) { var a = e === i.width ? 0 : 1,
  2365. r = 1 - a,
  2366. s = ["x", "y"],
  2367. l = ["width", "height"],
  2368. u = i[s[a]],
  2369. h = e ? t.area / e : 0;
  2370. (o || h > i[l[r]]) && (h = i[l[r]]); for (var c = 0, d = t.length; c < d; c++) { var f = t[c],
  2371. p = {},
  2372. g = h ? f.getLayout().area / h : 0,
  2373. m = p[l[r]] = QC(h - 2 * n, 0),
  2374. v = i[s[a]] + i[l[a]] - u,
  2375. y = c === d - 1 || v < g ? v : g,
  2376. x = p[l[a]] = QC(y - 2 * n, 0);
  2377. p[s[r]] = i[s[r]] + tL(n, m / 2), p[s[a]] = u + tL(n, x / 2), u += y, f.setLayout(p, !0) }
  2378. i[s[r]] += h, i[l[r]] -= h }
  2379. function Vd(t, e, i, n, o) { var a = (e || {}).node,
  2380. 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; d < f; d++) h += c[d].getValue(); var p = a.getValue(); if (0 === p) return r;
  2381. u *= h / p; var g = s.getModel(),
  2382. m = g.get(nL);
  2383. (u += 4 * m * m + (3 * m + Math.max(m, Wd(g))) * Math.pow(u, .5)) > kM && (u = kM), a = s }
  2384. u < l && (u = l); var v = Math.pow(u / l, .5); return [n * v, o * v] }
  2385. function Gd(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,
  2386. a = o.getLayout(); if (!a) return n; for (var r = [a.width / 2, a.height / 2], s = o; s;) { var l = s.getLayout();
  2387. r[0] += l.x, r[1] += l.y, s = s.parentNode } return { x: t.width / 2 - r[0], y: t.height / 2 - r[1] } }
  2388. function Fd(t, e, i, n, o) { var a = t.getLayout(),
  2389. r = i[o],
  2390. 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 ue(e.x - a.x, e.y - a.y, e.width, e.height);
  2391. iL(t.viewChildren || [], function(t) { Fd(t, l, i, n, o + 1) }) } }
  2392. function Wd(t) { return t.get(aL) ? t.get(rL) : 0 }
  2393. function Hd(t) { return "_EC_" + t }
  2394. function Zd(t, e) { this.id = null == t ? "" : t, this.inEdges = [], this.outEdges = [], this.edges = [], this.hostGraph, this.dataIndex = null == e ? -1 : e }
  2395. function Ud(t, e, i) { this.node1 = t, this.node2 = e, this.dataIndex = null == i ? -1 : i }
  2396. function Xd(t) { return isNaN(+t.cpx1) || isNaN(+t.cpy1) }
  2397. function jd(t) { return "_" + t + "Type" }
  2398. function Yd(t, e, i) { var n = e.getItemVisual(i, "color"),
  2399. o = e.getItemVisual(i, t),
  2400. a = e.getItemVisual(i, t + "Size"); if (o && "none" !== o) { y(a) || (a = [a, a]); var r = Xl(o, -a[0] / 2, -a[1] / 2, a[0], a[1], n); return r.name = t, r } }
  2401. function qd(t) { var e = new gL({ name: "line" }); return Kd(e.shape, t), e }
  2402. function Kd(t, e) { var i = e[0],
  2403. n = e[1],
  2404. o = e[2];
  2405. t.x1 = i[0], t.y1 = i[1], t.x2 = n[0], t.y2 = n[1], t.percent = 1, o ? (t.cpx1 = o[0], t.cpy1 = o[1]) : (t.cpx1 = NaN, t.cpy1 = NaN) }
  2406. function $d(t, e, i) { Zw.call(this), this._createLine(t, e, i) }
  2407. function Jd(t) { this._ctor = t || $d, this.group = new Zw }
  2408. function Qd(t, e, i, n) { if (of(e.getItemLayout(i))) { var o = new t._ctor(e, i, n);
  2409. e.setItemGraphicEl(i, o), t.group.add(o) } }
  2410. function tf(t, e, i, n, o, a) { var r = e.getItemGraphicEl(n);
  2411. of(i.getItemLayout(o)) ? (r ? r.updateData(i, o, a) : r = new t._ctor(i, o, a), i.setItemGraphicEl(o, r), t.group.add(r)) : t.group.remove(r) }
  2412. function ef(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") } }
  2413. function nf(t) { return isNaN(t[0]) || isNaN(t[1]) }
  2414. function of(t) { return !nf(t[0]) && !nf(t[1]) }
  2415. function af(t, e, i) { for (var n, o = t[0], a = t[1], r = t[2], s = 1 / 0, l = i * i, u = .1, h = .1; h <= .9; h += .1) xL[0] = bL(o[0], a[0], r[0], h), xL[1] = bL(o[1], a[1], r[1], h), (f = ML(SL(xL, e) - l)) < s && (s = f, n = h); for (var c = 0; c < 32; c++) { var d = n + u;
  2416. _L[0] = bL(o[0], a[0], r[0], n), _L[1] = bL(o[1], a[1], r[1], n), wL[0] = bL(o[0], a[0], r[0], d), wL[1] = bL(o[1], a[1], r[1], d); var f = SL(_L, e) - l; if (ML(f) < .01) break; var p = SL(wL, e) - l;
  2417. u /= 2, f < 0 ? p >= 0 ? n += u : n -= u : p >= 0 ? n -= u : n += u } return n }
  2418. function rf(t, e) { return t.getVisual("opacity") || t.getModel().get(e) }
  2419. function sf(t, e, i) { var n = t.getGraphicEl(),
  2420. o = rf(t, e);
  2421. null != i && (null == o && (o = 1), o *= i), n.downplay && n.downplay(), n.traverse(function(t) { "group" !== t.type && t.setStyle("opacity", o) }) }
  2422. function lf(t, e) { var i = rf(t, e),
  2423. n = t.getGraphicEl();
  2424. n.highlight && n.highlight(), n.traverse(function(t) { "group" !== t.type && t.setStyle("opacity", i) }) }
  2425. function uf(t) { return t instanceof Array || (t = [t, t]), t }
  2426. function hf(t) { var e = t.coordinateSystem; if (!e || "view" === e.type) { var i = t.getGraph();
  2427. i.eachNode(function(t) { var e = t.getModel();
  2428. t.setLayout([+e.get("x"), +e.get("y")]) }), cf(i) } }
  2429. function cf(t) { t.eachEdge(function(t) { var e = t.getModel().get("lineStyle.curveness") || 0,
  2430. i = F(t.node1.getLayout()),
  2431. n = F(t.node2.getLayout()),
  2432. o = [i, n]; + e && o.push([(i[0] + n[0]) / 2 - (i[1] - n[1]) * e, (i[1] + n[1]) / 2 - (n[0] - i[0]) * e]), t.setLayout(o) }) }
  2433. function df(t) { var e = t.coordinateSystem; if (!e || "view" === e.type) { var i = e.getBoundingRect(),
  2434. n = t.getData(),
  2435. o = n.graph,
  2436. a = 0,
  2437. r = n.getSum("value"),
  2438. s = 2 * Math.PI / (r || n.count()),
  2439. l = i.width / 2 + i.x,
  2440. u = i.height / 2 + i.y,
  2441. h = Math.min(i.width, i.height) / 2;
  2442. o.eachNode(function(t) { var e = t.getValue("value");
  2443. a += s * (r ? e : 1) / 2, t.setLayout([h * Math.cos(a) + l, h * Math.sin(a) + u]), a += s * (r ? e : 1) / 2 }), n.setLayout({ cx: l, cy: u }), o.eachEdge(function(t) { var e, i = t.getModel().get("lineStyle.curveness") || 0,
  2444. n = F(t.node1.getLayout()),
  2445. o = F(t.node2.getLayout()),
  2446. a = (n[0] + o[0]) / 2,
  2447. r = (n[1] + o[1]) / 2; + i && (e = [l * (i *= 3) + a * (1 - i), u * i + r * (1 - i)]), t.setLayout([n, o, e]) }) } }
  2448. function ff(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; l < t.length; l++) { var u = t[l];
  2449. u.p || (u.p = V(o * (Math.random() - .5) + r[0], a * (Math.random() - .5) + r[1])), u.pp = F(u.p), u.edges = null } var h = .6; return { warmUp: function() { h = .5 }, setFixed: function(e) { t[e].fixed = !0 }, setUnfixed: function(e) { t[e].fixed = !1 }, step: function(i) { for (var n = [], o = t.length, a = 0; a < e.length; a++) { var l = e[a],
  2450. u = l.n1;
  2451. U(n, (p = l.n2).p, u.p); var c = X(n) - l.d,
  2452. d = p.w / (u.w + p.w);
  2453. isNaN(d) && (d = 0), q(n, n), !u.fixed && DL(u.p, u.p, n, d * c * h), !p.fixed && DL(p.p, p.p, n, -(1 - d) * c * h) } for (a = 0; a < o; a++)(v = t[a]).fixed || (U(n, r, v.p), DL(v.p, v.p, n, s * h)); for (a = 0; a < o; a++)
  2454. for (var u = t[a], f = a + 1; f < o; f++) { var p = t[f];
  2455. U(n, p.p, u.p), 0 === (c = X(n)) && (W(n, Math.random() - .5, Math.random() - .5), c = 1); var g = (u.rep + p.rep) / c / c;!u.fixed && DL(u.pp, u.pp, n, g), !p.fixed && DL(p.pp, p.pp, n, -g) }
  2456. for (var m = [], a = 0; a < o; a++) { var v = t[a];
  2457. v.fixed || (U(m, v.p, v.pp), DL(v.p, v.p, m, h), G(v.pp, v.p)) }
  2458. h *= .992, i && i(t, e, h < .01) } } }
  2459. function pf(t, e, i) { var n = t.getBoxLayoutParams(); return n.aspect = i, la(n, { width: e.getWidth(), height: e.getHeight() }) }
  2460. function gf(t, e) { var i = t.get("center"),
  2461. n = e.getWidth(),
  2462. o = e.getHeight(),
  2463. a = Math.min(n, o); return { cx: Ro(i[0], e.getWidth()), cy: Ro(i[1], e.getHeight()), r: Ro(t.get("radius"), a / 2) } }
  2464. function mf(t, e) { return e && ("string" == typeof e ? t = e.replace("{value}", null != t ? t : "") : "function" == typeof e && (t = e(t))), t }
  2465. function vf(t, e) {
  2466. function i() { a.ignore = a.hoverIgnore, r.ignore = r.hoverIgnore }
  2467. function n() { a.ignore = a.normalIgnore, r.ignore = r.normalIgnore }
  2468. Zw.call(this); var o = new nM,
  2469. a = new oM,
  2470. r = new qS;
  2471. this.add(o), this.add(a), this.add(r), this.updateData(t, e, !0), this.on("emphasis", i).on("normal", n).on("mouseover", i).on("mouseout", n) }
  2472. function yf(t, e) { return la(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }) }
  2473. function xf(t, e) { for (var i = t.mapDimension("value"), n = t.mapArray(i, function(t) { return t }), o = [], a = "ascending" === e, r = 0, s = t.count(); r < s; 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 }
  2474. function _f(t) { t.each(function(e) { var i, n, o, a, r = t.getItemModel(e),
  2475. s = r.getModel("label").get("position"),
  2476. l = r.getModel("labelLine"),
  2477. u = t.getItemLayout(e),
  2478. h = u.points,
  2479. c = "inner" === s || "inside" === s || "center" === s; if (c) i = "center", a = [
  2480. [n = (h[0][0] + h[1][0] + h[2][0] + h[3][0]) / 4, o = (h[0][1] + h[1][1] + h[2][1] + h[3][1]) / 4],
  2481. [n, o]
  2482. ];
  2483. else { var d, f, p, g = l.get("length"); "left" === s ? (d = (h[3][0] + h[0][0]) / 2, f = (h[3][1] + h[0][1]) / 2, n = (p = d - g) - 5, i = "right") : (d = (h[1][0] + h[2][0]) / 2, f = (h[1][1] + h[2][1]) / 2, n = (p = d + g) + 5, i = "left"); var m = f;
  2484. a = [
  2485. [d, f],
  2486. [p, m]
  2487. ], o = m }
  2488. u.label = { linePoints: a, x: n, y: o, verticalAlign: "middle", textAlign: i, inside: c } }) }
  2489. function wf(t) { if (!t.parallel) { var e = !1;
  2490. d(t.series, function(t) { t && "parallel" === t.type && (e = !0) }), e && (t.parallel = [{}]) } }
  2491. function bf(t) { d(Di(t.parallelAxis), function(e) { if (w(e)) { var i = e.parallelIndex || 0,
  2492. o = Di(t.parallel)[i];
  2493. o && o.parallelAxisDefault && n(e, o.parallelAxisDefault, !1) } }) }
  2494. function Sf(t, e) { var i = t[e] - t[1 - e]; return { span: Math.abs(i), sign: i > 0 ? -1 : i < 0 ? 1 : e ? -1 : 1 } }
  2495. function Mf(t, e) { return Math.min(e[1], Math.max(e[0], t)) }
  2496. function If(t, e, i) { this._axesMap = R(), this._axesLayout = {}, this.dimensions = t.dimensions, this._rect, this._model = t, this._init(t, e, i) }
  2497. function Tf(t, e) { return zL(BL(t, e[0]), e[1]) }
  2498. function Af(t, e) { var i = e.layoutLength / (e.axisCount - 1); return { position: i * t, axisNameAvailableWidth: i, axisLabelShow: !0 } }
  2499. function Df(t, e) { var i, n, o = e.layoutLength,
  2500. a = e.axisExpandWidth,
  2501. r = e.axisCount,
  2502. s = e.axisCollapseWidth,
  2503. l = e.winInnerIndices,
  2504. u = s,
  2505. h = !1; return t < l[0] ? (i = t * s, n = s) : t <= l[1] ? (i = e.axisExpandWindow0Pos + t * a - e.axisExpandWindow[0], u = a, h = !0) : (i = o - (r - 1 - t) * s, n = s), { position: i, axisNameAvailableWidth: u, axisLabelShow: h, nameTruncateMaxWidth: n } }
  2506. function Cf(t) { aw.call(this), this._zr = t, this.group = new Zw, this._brushType, this._brushOption, this._panels, this._track = [], this._dragging, this._covers = [], this._creatingCover, this._creatingPanel, this._enableGlobalPan, this._uid = "brushController_" + ok++, this._handlers = {}, XL(ak, function(t, e) { this._handlers[e] = m(t, this) }, this) }
  2507. function Lf(t, e) { var o = t._zr;
  2508. t._enableGlobalPan || ec(o, tk, t._uid), XL(t._handlers, function(t, e) { o.on(e, t) }), t._brushType = e.brushType, t._brushOption = n(i(nk), e, !0) }
  2509. function kf(t) { var e = t._zr;
  2510. ic(e, tk, t._uid), XL(t._handlers, function(t, i) { e.off(i, t) }), t._brushType = t._brushOption = null }
  2511. function Pf(t, e) { var i = rk[e.brushType].createCover(t, e); return i.__brushOption = e, Ef(i, e), t.group.add(i), i }
  2512. function Nf(t, e) { var i = zf(e); return i.endCreating && (i.endCreating(t, e), Ef(e, e.__brushOption)), e }
  2513. function Of(t, e) { var i = e.__brushOption;
  2514. zf(e).updateCoverShape(t, e, i.range, i) }
  2515. function Ef(t, e) { var i = e.z;
  2516. null == i && (i = $L), t.traverse(function(t) { t.z = i, t.z2 = i }) }
  2517. function Rf(t, e) { zf(e).updateCommon(t, e), Of(t, e) }
  2518. function zf(t) { return rk[t.__brushOption.brushType] }
  2519. function Bf(t, e, i) { var n = t._panels; if (!n) return !0; var o, a = t._transform; return XL(n, function(t) { t.isTargetByCursor(e, i, a) && (o = t) }), o }
  2520. function Vf(t, e) { var i = t._panels; if (!i) return !0; var n = e.__brushOption.panelId; return null == n || i[n] }
  2521. function Gf(t) { var e = t._covers,
  2522. i = e.length; return XL(e, function(e) { t.group.remove(e) }, t), e.length = 0, !!i }
  2523. function Ff(t, e) { var n = jL(t._covers, function(t) { var e = t.__brushOption,
  2524. n = i(e.range); return { brushType: e.brushType, panelId: e.panelId, range: n } });
  2525. t.trigger("brush", n, { isEnd: !!e.isEnd, removeOnClick: !!e.removeOnClick }) }
  2526. function Wf(t) { var e = t._track; if (!e.length) return !1; var i = e[e.length - 1],
  2527. n = e[0],
  2528. o = i[0] - n[0],
  2529. a = i[1] - n[1]; return KL(o * o + a * a, .5) > JL }
  2530. function Hf(t) { var e = t.length - 1; return e < 0 && (e = 0), [t[0], t[e]] }
  2531. function Zf(t, e, i, n) { var o = new Zw; return o.add(new aM({ name: "main", style: Yf(i), silent: !0, draggable: !0, cursor: "move", drift: UL(t, e, o, "nswe"), ondragend: UL(Ff, e, { isEnd: !0 }) })), XL(n, function(i) { o.add(new aM({ name: i, style: { opacity: 0 }, draggable: !0, silent: !0, invisible: !0, drift: UL(t, e, o, i), ondragend: UL(Ff, e, { isEnd: !0 }) })) }), o }
  2532. function Uf(t, e, i, n) { var o = n.brushStyle.lineWidth || 0,
  2533. a = qL(o, QL),
  2534. r = i[0][0],
  2535. s = i[1][0],
  2536. l = r - o / 2,
  2537. u = s - o / 2,
  2538. h = i[0][1],
  2539. c = i[1][1],
  2540. d = h - a + o / 2,
  2541. f = c - a + o / 2,
  2542. p = h - r,
  2543. g = c - s,
  2544. m = p + o,
  2545. v = g + o;
  2546. jf(t, e, "main", r, s, p, g), n.transformable && (jf(t, e, "w", l, u, a, v), jf(t, e, "e", d, u, a, v), jf(t, e, "n", l, u, m, a), jf(t, e, "s", l, f, m, a), jf(t, e, "nw", l, u, a, a), jf(t, e, "ne", d, u, a, a), jf(t, e, "sw", l, f, a, a), jf(t, e, "se", d, f, a, a)) }
  2547. function Xf(t, e) { var i = e.__brushOption,
  2548. n = i.transformable,
  2549. o = e.childAt(0);
  2550. o.useStyle(Yf(i)), o.attr({ silent: !n, cursor: n ? "move" : "default" }), XL(["w", "e", "n", "s", "se", "sw", "ne", "nw"], function(i) { var o = e.childOfName(i),
  2551. a = $f(t, i);
  2552. o && o.attr({ silent: !n, invisible: !n, cursor: n ? ik[a] + "-resize" : null }) }) }
  2553. function jf(t, e, i, n, o, a, r) { var s = e.childOfName(i);
  2554. s && s.setShape(ip(ep(t, e, [
  2555. [n, o],
  2556. [n + a, o + r]
  2557. ]))) }
  2558. function Yf(t) { return r({ strokeNoScale: !0 }, t.brushStyle) }
  2559. function qf(t, e, i, n) { var o = [YL(t, i), YL(e, n)],
  2560. a = [qL(t, i), qL(e, n)]; return [
  2561. [o[0], a[0]],
  2562. [o[1], a[1]]
  2563. ] }
  2564. function Kf(t) { return Mo(t.group) }
  2565. function $f(t, e) { if (e.length > 1) return ("e" === (n = [$f(t, (e = e.split(""))[0]), $f(t, e[1])])[0] || "w" === n[0]) && n.reverse(), n.join(""); var i = { left: "w", right: "e", top: "n", bottom: "s" },
  2566. n = To({ w: "left", e: "right", n: "top", s: "bottom" }[e], Kf(t)); return i[n] }
  2567. function Jf(t, e, i, n, o, a, r, s) { var l = n.__brushOption,
  2568. u = t(l.range),
  2569. h = tp(i, a, r);
  2570. XL(o.split(""), function(t) { var e = ek[t];
  2571. u[e[0]][e[1]] += h[e[0]] }), l.range = e(qf(u[0][0], u[1][0], u[0][1], u[1][1])), Rf(i, n), Ff(i, { isEnd: !1 }) }
  2572. function Qf(t, e, i, n, o) { var a = e.__brushOption.range,
  2573. r = tp(t, i, n);
  2574. XL(a, function(t) { t[0] += r[0], t[1] += r[1] }), Rf(t, e), Ff(t, { isEnd: !1 }) }
  2575. function tp(t, e, i) { var n = t.group,
  2576. o = n.transformCoordToLocal(e, i),
  2577. a = n.transformCoordToLocal(0, 0); return [o[0] - a[0], o[1] - a[1]] }
  2578. function ep(t, e, n) { var o = Vf(t, e); return o && !0 !== o ? o.clipPath(n, t._transform) : i(n) }
  2579. function ip(t) { var e = YL(t[0][0], t[1][0]),
  2580. i = YL(t[0][1], t[1][1]); return { x: e, y: i, width: qL(t[0][0], t[1][0]) - e, height: qL(t[0][1], t[1][1]) - i } }
  2581. function np(t, e, i) { if (t._brushType) { var n = t._zr,
  2582. o = t._covers,
  2583. a = Bf(t, e, i); if (!t._dragging)
  2584. for (var r = 0; r < o.length; r++) { var s = o[r].__brushOption; if (a && (!0 === a || s.panelId === a.panelId) && rk[s.brushType].contain(o[r], i[0], i[1])) return }
  2585. a && n.setCursorStyle("crosshair") } }
  2586. function op(t) { var e = t.event;
  2587. e.preventDefault && e.preventDefault() }
  2588. function ap(t, e, i) { return t.childOfName("main").contain(e, i) }
  2589. function rp(t, e, n, o) { var a, r = t._creatingCover,
  2590. s = t._creatingPanel,
  2591. l = t._brushOption; if (t._track.push(n.slice()), Wf(t) || r) { if (s && !r) { "single" === l.brushMode && Gf(t); var u = i(l);
  2592. u.brushType = sp(u.brushType, s), u.panelId = !0 === s ? null : s.panelId, r = t._creatingCover = Pf(t, u), t._covers.push(r) } if (r) { var h = rk[sp(t._brushType, s)];
  2593. r.__brushOption.range = h.getCreatingRange(ep(t, r, t._track)), o && (Nf(t, r), h.updateCommon(t, r)), Of(t, r), a = { isEnd: o } } } else o && "single" === l.brushMode && l.removeOnClick && Bf(t, e, n) && Gf(t) && (a = { isEnd: o, removeOnClick: !0 }); return a }
  2594. function sp(t, e) { return "auto" === t ? e.defaultBrushType : t }
  2595. function lp(t) { if (this._dragging) { op(t); var e = rp(this, t, this.group.transformCoordToLocal(t.offsetX, t.offsetY), !0);
  2596. this._dragging = !1, this._track = [], this._creatingCover = null, e && Ff(this, e) } }
  2597. function up(t) { return { createCover: function(e, i) { return Zf(UL(Jf, function(e) { var i = [e, [0, 100]]; return t && i.reverse(), i }, function(e) { return e[t] }), e, i, [
  2598. ["w", "e"],
  2599. ["n", "s"]
  2600. ][t]) }, getCreatingRange: function(e) { var i = Hf(e); return [YL(i[0][t], i[1][t]), qL(i[0][t], i[1][t])] }, updateCoverShape: function(e, i, n, o) { var a, r = Vf(e, i); if (!0 !== r && r.getLinearBrushOtherExtent) a = r.getLinearBrushOtherExtent(t, e._transform);
  2601. else { var s = e._zr;
  2602. a = [0, [s.getWidth(), s.getHeight()][1 - t]] } var l = [n, a];
  2603. t && l.reverse(), Uf(e, i, l, o) }, updateCommon: Xf, contain: ap } }
  2604. function hp(t) { return t = fp(t),
  2605. function(e, i) { return Do(e, t) } }
  2606. function cp(t, e) { return t = fp(t),
  2607. function(i) { var n = null != e ? e : i,
  2608. o = n ? t.width : t.height,
  2609. a = n ? t.x : t.y; return [a, a + (o || 0)] } }
  2610. function dp(t, e, i) { return t = fp(t),
  2611. function(n, o, a) { return t.contain(o[0], o[1]) && !mc(n, e, i) } }
  2612. function fp(t) { return ue.create(t) }
  2613. function pp(t, e, i) { return i && "axisAreaSelect" === i.type && e.findComponents({ mainType: "parallelAxis", query: i })[0] === t }
  2614. function gp(t) { var e = t.axis; return f(t.activeIntervals, function(t) { return { brushType: "lineX", panelId: "pl", range: [e.dataToCoord(t[0], !0), e.dataToCoord(t[1], !0)] } }) }
  2615. function mp(t, e) { return e.getComponent("parallel", t.get("parallelIndex")) }
  2616. function vp(t, e) { var i = t._model; return i.get("axisExpandable") && i.get("axisExpandTriggerOn") === e }
  2617. function yp(t, e) { if (!t.encodeDefine) { var i = e.ecModel.getComponent("parallel", e.get("parallelIndex")); if (i) { var n = t.encodeDefine = R();
  2618. d(i.dimensions, function(t) { var e = xp(t);
  2619. n.set(t, e) }) } } }
  2620. function xp(t) { return +t.replace("dim", "") }
  2621. function _p(t, e, i) { var n = t.model,
  2622. o = t.getRect(),
  2623. a = new aM({ shape: { x: o.x, y: o.y, width: o.width, height: o.height } }),
  2624. r = "horizontal" === n.get("layout") ? "width" : "height"; return a.setShape(r, 0), So(a, { shape: { width: o.width, height: o.height } }, e, i), a }
  2625. function wp(t, e, i, n) { for (var o = [], a = 0; a < i.length; a++) { var r = i[a],
  2626. s = t.get(t.mapDimension(r), e);
  2627. Ip(s, n.getAxis(r).type) || o.push(n.dataToPoint(s, r)) } return o }
  2628. function bp(t, e, i, n, o) { var a = wp(t, i, n, o),
  2629. r = new oM({ shape: { points: a }, silent: !0, z2: 10 }); return e.add(r), t.setItemGraphicEl(i, r), r }
  2630. function Sp(t) { var e = t.get("smooth", !0); return !0 === e && (e = hk), { lineStyle: t.getModel("lineStyle").getLineStyle(), smooth: null != e ? e : hk } }
  2631. function Mp(t, e, i, n) { var o = n.lineStyle;
  2632. e.hasItemOption && (o = e.getItemModel(i).getModel("lineStyle").getLineStyle()), t.useStyle(o); var a = t.style;
  2633. a.fill = null, a.stroke = e.getItemVisual(i, "color"), a.opacity = e.getItemVisual(i, "opacity"), n.smooth && (t.shape.smooth = n.smooth) }
  2634. function Ip(t, e) { return "category" === e ? null == t : null == t || isNaN(t) }
  2635. function Tp(t, e) { return t.getVisual("opacity") || t.getModel().get(e) }
  2636. function Ap(t, e, i) { var n = t.getGraphicEl(),
  2637. o = Tp(t, e);
  2638. null != i && (null == o && (o = 1), o *= i), n.downplay && n.downplay(), n.traverse(function(t) { "group" !== t.type && t.setStyle("opacity", o) }) }
  2639. function Dp(t, e) { var i = Tp(t, e),
  2640. n = t.getGraphicEl();
  2641. n.highlight && n.highlight(), n.traverse(function(t) { "group" !== t.type && t.setStyle("opacity", i) }) }
  2642. function Cp(t, e, i) { var n = new aM({ shape: { x: t.x - 10, y: t.y - 10, width: 0, height: t.height + 20 } }); return So(n, { shape: { width: t.width + 20, height: t.height + 20 } }, e, i), n }
  2643. function Lp() {
  2644. function t(e, n) { if (n >= i.length) return e; for (var o = -1, a = e.length, r = i[n++], s = {}, l = {}; ++o < a;) { var u = r(e[o]),
  2645. h = l[u];
  2646. h ? h.push(e[o]) : l[u] = [e[o]] } return d(l, function(e, i) { s[i] = t(e, n) }), s }
  2647. function e(t, o) { if (o >= i.length) return t; var a = [],
  2648. r = n[o++]; return d(t, function(t, i) { a.push({ key: i, values: e(t, o) }) }), r ? a.sort(function(t, e) { return r(t.key, e.key) }) : a } var i = [],
  2649. n = []; return { key: function(t) { return i.push(t), this }, sortKeys: function(t) { return n[i.length - 1] = t, this }, entries: function(i) { return e(t(i, 0), 0) } } }
  2650. function kp(t, e) { return la(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }) }
  2651. function Pp(t, e, i, n, o, a, r, s) { Op(t, e, i, o, a, s), zp(t, e, a, o, n, r, s), Yp(t, s) }
  2652. function Np(t) { d(t, function(t) { var e = Xp(t.outEdges, Up),
  2653. i = Xp(t.inEdges, Up),
  2654. n = Math.max(e, i);
  2655. t.setLayout({ value: n }, !0) }) }
  2656. function Op(t, e, i, n, o, a) { for (var r = [], s = [], l = [], u = [], h = 0, c = 0; c < e.length; c++) r[c] = 1; for (c = 0; c < t.length; c++) s[c] = t[c].inEdges.length, 0 === s[c] && l.push(t[c]); for (; l.length;) { for (var d = 0; d < l.length; d++) { var f = l[d]; "vertical" === a ? (f.setLayout({ y: h }, !0), f.setLayout({ dy: i }, !0)) : (f.setLayout({ x: h }, !0), f.setLayout({ dx: i }, !0)); for (var p = 0; p < f.outEdges.length; p++) { var g = f.outEdges[p];
  2657. r[e.indexOf(g)] = 0; var m = g.node2;
  2658. 0 == --s[t.indexOf(m)] && u.push(m) } }++h, l = u, u = [] } for (c = 0; c < r.length; c++);
  2659. Ep(t, h, a), Rp(t, "vertical" === a ? (o - i) / (h - 1) : (n - i) / (h - 1), a) }
  2660. function Ep(t, e, i) { d(t, function(t) { t.outEdges.length || ("vertical" === i ? t.setLayout({ y: e - 1 }, !0) : t.setLayout({ x: e - 1 }, !0)) }) }
  2661. function Rp(t, e, i) { d(t, function(t) { if ("vertical" === i) { var n = t.getLayout().y * e;
  2662. t.setLayout({ y: n }, !0) } else { var o = t.getLayout().x * e;
  2663. t.setLayout({ x: o }, !0) } }) }
  2664. function zp(t, e, i, n, o, a, r) { var s = Lp().key(Bp(r)).sortKeys(function(t, e) { return t - e }).entries(t).map(function(t) { return t.values });
  2665. Vp(t, s, e, i, n, o, r), Gp(s, o, i, n, r); for (var l = 1; a > 0; a--) Fp(s, l *= .99, r), Gp(s, o, i, n, r), jp(s, l, r), Gp(s, o, i, n, r) }
  2666. function Bp(t) { return "vertical" === t ? function(t) { return t.getLayout().y } : function(t) { return t.getLayout().x } }
  2667. function Vp(t, e, i, n, o, a, r) { var s = [];
  2668. d(e, function(t) { var e = t.length,
  2669. i = 0,
  2670. l = 0;
  2671. d(t, function(t) { i += t.getLayout().value }), l = "vertical" === r ? (o - (e - 1) * a) / i : (n - (e - 1) * a) / i, s.push(l) }), s.sort(function(t, e) { return t - e }); var l = s[0];
  2672. d(e, function(t) { d(t, function(t, e) { var i = t.getLayout().value * l; "vertical" === r ? (t.setLayout({ x: e }, !0), t.setLayout({ dx: i }, !0)) : (t.setLayout({ y: e }, !0), t.setLayout({ dy: i }, !0)) }) }), d(i, function(t) { var e = +t.getValue() * l;
  2673. t.setLayout({ dy: e }, !0) }) }
  2674. function Gp(t, e, i, n, o) { d(t, function(t) { var a, r, s, l = 0,
  2675. u = t.length; if ("vertical" === o) { var h; for (t.sort(function(t, e) { return t.getLayout().x - e.getLayout().x }), s = 0; s < u; s++)(r = l - (a = t[s]).getLayout().x) > 0 && (h = a.getLayout().x + r, a.setLayout({ x: h }, !0)), l = a.getLayout().x + a.getLayout().dx + e; if ((r = l - e - n) > 0)
  2676. for (h = a.getLayout().x - r, a.setLayout({ x: h }, !0), l = h, s = u - 2; s >= 0; --s)(r = (a = t[s]).getLayout().x + a.getLayout().dx + e - l) > 0 && (h = a.getLayout().x - r, a.setLayout({ x: h }, !0)), l = a.getLayout().x } else { var c; for (t.sort(function(t, e) { return t.getLayout().y - e.getLayout().y }), s = 0; s < u; s++)(r = l - (a = t[s]).getLayout().y) > 0 && (c = a.getLayout().y + r, a.setLayout({ y: c }, !0)), l = a.getLayout().y + a.getLayout().dy + e; if ((r = l - e - i) > 0)
  2677. for (c = a.getLayout().y - r, a.setLayout({ y: c }, !0), l = c, s = u - 2; s >= 0; --s)(r = (a = t[s]).getLayout().y + a.getLayout().dy + e - l) > 0 && (c = a.getLayout().y - r, a.setLayout({ y: c }, !0)), l = a.getLayout().y } }) }
  2678. function Fp(t, e, i) { d(t.slice().reverse(), function(t) { d(t, function(t) { if (t.outEdges.length) { var n = Xp(t.outEdges, Wp, i) / Xp(t.outEdges, Up, i); if ("vertical" === i) { var o = t.getLayout().x + (n - Zp(t, i)) * e;
  2679. t.setLayout({ x: o }, !0) } else { var a = t.getLayout().y + (n - Zp(t, i)) * e;
  2680. t.setLayout({ y: a }, !0) } } }) }) }
  2681. function Wp(t, e) { return Zp(t.node2, e) * t.getValue() }
  2682. function Hp(t, e) { return Zp(t.node1, e) * t.getValue() }
  2683. function Zp(t, e) { return "vertical" === e ? t.getLayout().x + t.getLayout().dx / 2 : t.getLayout().y + t.getLayout().dy / 2 }
  2684. function Up(t) { return t.getValue() }
  2685. function Xp(t, e, i) { for (var n = 0, o = t.length, a = -1; ++a < o;) { var r = +e.call(t, t[a], i);
  2686. isNaN(r) || (n += r) } return n }
  2687. function jp(t, e, i) { d(t, function(t) { d(t, function(t) { if (t.inEdges.length) { var n = Xp(t.inEdges, Hp, i) / Xp(t.inEdges, Up, i); if ("vertical" === i) { var o = t.getLayout().x + (n - Zp(t, i)) * e;
  2688. t.setLayout({ x: o }, !0) } else { var a = t.getLayout().y + (n - Zp(t, i)) * e;
  2689. t.setLayout({ y: a }, !0) } } }) }) }
  2690. function Yp(t, e) { d(t, function(t) { "vertical" === e ? (t.outEdges.sort(function(t, e) { return t.node2.getLayout().x - e.node2.getLayout().x }), t.inEdges.sort(function(t, e) { return t.node1.getLayout().x - e.node1.getLayout().x })) : (t.outEdges.sort(function(t, e) { return t.node2.getLayout().y - e.node2.getLayout().y }), t.inEdges.sort(function(t, e) { return t.node1.getLayout().y - e.node1.getLayout().y })) }), d(t, function(t) { var e = 0,
  2691. i = 0;
  2692. d(t.outEdges, function(t) { t.setLayout({ sy: e }, !0), e += t.getLayout().dy }), d(t.inEdges, function(t) { t.setLayout({ ty: i }, !0), i += t.getLayout().dy }) }) }
  2693. function qp(t, e, i, n, o) { var a = t.ends,
  2694. r = new xk({ shape: { points: o ? $p(a, n, t) : a } }); return Kp(t, r, e, i, o), r }
  2695. function Kp(t, e, i, n, o) { var a = i.hostModel;
  2696. (0, bM[o ? "initProps" : "updateProps"])(e, { shape: { points: t.ends } }, a, n); var r = i.getItemModel(n),
  2697. s = r.getModel(vk),
  2698. l = i.getItemVisual(n, "color"),
  2699. u = s.getItemStyle(["borderColor"]);
  2700. u.stroke = l, u.strokeNoScale = !0, e.useStyle(u), e.z2 = 100, uo(e, r.getModel(yk).getItemStyle()) }
  2701. function $p(t, e, i) { return f(t, function(t) { return t = t.slice(), t[e] = i.initBaseline, t }) }
  2702. function Jp(t) { var e = [],
  2703. i = []; return t.eachSeriesByType("boxplot", function(t) { var n = t.getBaseAxis(),
  2704. o = l(i, n);
  2705. o < 0 && (o = i.length, i[o] = n, e[o] = { axis: n, seriesModels: [] }), e[o].seriesModels.push(t) }), e }
  2706. function Qp(t) { var e, i, n = t.axis,
  2707. o = t.seriesModels,
  2708. a = o.length,
  2709. r = t.boxWidthList = [],
  2710. s = t.boxOffsetList = [],
  2711. l = []; if ("category" === n.type) i = n.getBandWidth();
  2712. else { var u = 0;
  2713. wk(o, function(t) { u = Math.max(u, t.getData().count()) }), e = n.getExtent(), Math.abs(e[1] - e[0]) }
  2714. wk(o, function(t) { var e = t.get("boxWidth");
  2715. y(e) || (e = [e, e]), l.push([Ro(e[0], i) || 0, Ro(e[1], i) || 0]) }); var h = .8 * i - 2,
  2716. c = h / a * .3,
  2717. d = (h - c * (a - 1)) / a,
  2718. f = d / 2 - h / 2;
  2719. wk(o, function(t, e) { s.push(f), f += c + d, r.push(Math.min(Math.max(d, l[e][0]), l[e][1])) }) }
  2720. function tg(t, e, i) {
  2721. function n(t, i, n) { var o = s.get(i, n),
  2722. a = [];
  2723. a[u] = t, a[h] = o; var l; return isNaN(t) || isNaN(o) ? l = [NaN, NaN] : (l = r.dataToPoint(a))[u] += e, l }
  2724. function o(t, e, i) { var n = e.slice(),
  2725. o = e.slice();
  2726. n[u] += l, o[u] -= l, i ? t.push(n, o) : t.push(o, n) }
  2727. function a(t, e) { var i = e.slice(),
  2728. n = e.slice();
  2729. i[u] -= l, n[u] += l, t.push(i, n) } var r = t.coordinateSystem,
  2730. s = t.getData(),
  2731. l = i / 2,
  2732. u = "horizontal" === t.get("layout") ? 0 : 1,
  2733. h = 1 - u,
  2734. c = ["x", "y"],
  2735. d = s.mapDimension(c[u]),
  2736. f = s.mapDimension(c[h], !0); if (!(null == d || f.length < 5))
  2737. for (var p = 0; p < s.count(); p++) { var g = s.get(d, p),
  2738. m = n(g, f[2], p),
  2739. v = n(g, f[0], p),
  2740. y = n(g, f[1], p),
  2741. x = n(g, f[3], p),
  2742. _ = n(g, f[4], p),
  2743. w = [];
  2744. o(w, y, 0), o(w, x, 1), w.push(v, y, _, x), a(w, v), a(w, _), a(w, m), s.setItemLayout(p, { initBaseline: m[h], ends: w }) } }
  2745. function eg(t, e, i) { var n = t.ends; return new Ik({ shape: { points: i ? ng(n, t) : n }, z2: 100 }) }
  2746. function ig(t, e, i, n) { var o = e.getItemModel(i),
  2747. a = o.getModel(bk),
  2748. r = e.getItemVisual(i, "color"),
  2749. s = e.getItemVisual(i, "borderColor") || r,
  2750. l = a.getItemStyle(Mk);
  2751. t.useStyle(l), t.style.strokeNoScale = !0, t.style.fill = r, t.style.stroke = s, t.__simpleBox = n, uo(t, o.getModel(Sk).getItemStyle()) }
  2752. function ng(t, e) { return f(t, function(t) { return t = t.slice(), t[1] = e.initBaseline, t }) }
  2753. function og(t, e, i) { var n = t.getData(),
  2754. o = n.getLayout("largePoints"),
  2755. a = new Tk({ shape: { points: o }, __sign: 1 });
  2756. e.add(a); var r = new Tk({ shape: { points: o }, __sign: -1 });
  2757. e.add(r), ag(1, a, t, n), ag(-1, r, t, n), i && (a.incremental = !0, r.incremental = !0) }
  2758. function ag(t, e, i, n) { var o = t > 0 ? "P" : "N",
  2759. a = n.getVisual("borderColor" + o) || n.getVisual("color" + o),
  2760. r = i.getModel(bk).getItemStyle(Mk);
  2761. e.useStyle(r), e.style.fill = null, e.style.stroke = a }
  2762. function rg(t, e, i, n, o) { return i > n ? -1 : i < n ? 1 : e > 0 ? t.get(o, e - 1) <= n ? 1 : -1 : 1 }
  2763. function sg(t, e) { var i, n = t.getBaseAxis(),
  2764. o = "category" === n.type ? n.getBandWidth() : (i = n.getExtent(), Math.abs(i[1] - i[0]) / e.count()),
  2765. a = Ro(A(t.get("barMaxWidth"), o), o),
  2766. r = Ro(A(t.get("barMinWidth"), 1), o),
  2767. s = t.get("barWidth"); return null != s ? Ro(s, o) : Math.max(Math.min(o / 2, a), r) }
  2768. function lg(t) { return y(t) || (t = [+t, +t]), t }
  2769. function ug(t, e) { t.eachChild(function(t) { t.attr({ z: e.z, zlevel: e.zlevel, style: { stroke: "stroke" === e.brushType ? e.color : null, fill: "fill" === e.brushType ? e.color : null } }) }) }
  2770. function hg(t, e) { Zw.call(this); var i = new mu(t, e),
  2771. n = new Zw;
  2772. this.add(i), this.add(n), n.beforeUpdate = function() { this.attr(i.getScale()) }, this.updateData(t, e) }
  2773. function cg(t) { var e = t.data;
  2774. e && e[0] && e[0][0] && e[0][0].coord && (t.data = f(e, function(t) { var e = { coords: [t[0].coord, t[1].coord] }; return t[0].name && (e.fromName = t[0].name), t[1].name && (e.toName = t[1].name), o([e, t[0], t[1]]) })) }
  2775. function dg(t, e, i) { Zw.call(this), this.add(this.createLine(t, e, i)), this._updateEffectSymbol(t, e) }
  2776. function fg(t, e, i) { Zw.call(this), this._createPolyline(t, e, i) }
  2777. function pg(t, e, i) { dg.call(this, t, e, i), this._lastFrame = 0, this._lastFramePercent = 0 }
  2778. function gg() { this.group = new Zw }
  2779. function mg(t) { return t instanceof Array || (t = [t, t]), t }
  2780. function vg() { var t = Y_();
  2781. this.canvas = t, this.blurSize = 30, this.pointSize = 20, this.maxOpacity = 1, this.minOpacity = 0, this._gradientPixels = {} }
  2782. function yg(t, e, i) { var n = t[1] - t[0],
  2783. o = (e = f(e, function(e) { return { interval: [(e.interval[0] - t[0]) / n, (e.interval[1] - t[0]) / n] } })).length,
  2784. a = 0; return function(t) { for (n = a; n < o; n++)
  2785. if ((r = e[n].interval)[0] <= t && t <= r[1]) { a = n; break }
  2786. if (n === o)
  2787. for (var n = a - 1; n >= 0; n--) { var r = e[n].interval; if (r[0] <= t && t <= r[1]) { a = n; break } }
  2788. return n >= 0 && n < o && i[n] } }
  2789. function xg(t, e) { var i = t[1] - t[0]; return e = [(e[0] - t[0]) / i, (e[1] - t[0]) / i],
  2790. function(t) { return t >= e[0] && t <= e[1] } }
  2791. function _g(t) { var e = t.dimensions; return "lng" === e[0] && "lat" === e[1] }
  2792. function wg(t, e, i, n) { var o = t.getItemLayout(e),
  2793. a = i.get("symbolRepeat"),
  2794. r = i.get("symbolClip"),
  2795. s = i.get("symbolPosition") || "start",
  2796. l = (i.get("symbolRotate") || 0) * Math.PI / 180 || 0,
  2797. u = i.get("symbolPatternSize") || 2,
  2798. h = i.isAnimationEnabled(),
  2799. c = { dataIndex: e, layout: o, itemModel: i, symbolType: t.getItemVisual(e, "symbol") || "circle", color: t.getItemVisual(e, "color"), symbolClip: r, symbolRepeat: a, symbolRepeatDirection: i.get("symbolRepeatDirection"), symbolPatternSize: u, rotation: l, animationModel: h ? i : null, hoverAnimation: h && i.get("hoverAnimation"), z2: i.getShallow("z", !0) || 0 };
  2800. bg(i, a, o, n, c), Mg(t, e, o, a, r, c.boundingLength, c.pxSign, u, n, c), Ig(i, c.symbolScale, l, n, c); var d = c.symbolSize,
  2801. f = i.get("symbolOffset"); return y(f) && (f = [Ro(f[0], d[0]), Ro(f[1], d[1])]), Tg(i, d, o, a, r, f, s, c.valueLineWidth, c.boundingLength, c.repeatCutLength, n, c), c }
  2802. function bg(t, e, i, n, o) { var a, r = n.valueDim,
  2803. s = t.get("symbolBoundingData"),
  2804. l = n.coordSys.getOtherAxis(n.coordSys.getBaseAxis()),
  2805. u = l.toGlobalCoord(l.dataToCoord(0)),
  2806. h = 1 - +(i[r.wh] <= 0); if (y(s)) { var c = [Sg(l, s[0]) - u, Sg(l, s[1]) - u];
  2807. c[1] < c[0] && c.reverse(), a = c[h] } else a = null != s ? Sg(l, s) - u : e ? n.coordSysExtent[r.index][h] - u : i[r.wh];
  2808. o.boundingLength = a, e && (o.repeatCutLength = i[r.wh]), o.pxSign = a > 0 ? 1 : a < 0 ? -1 : 0 }
  2809. function Sg(t, e) { return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e))) }
  2810. function Mg(t, e, i, n, o, a, r, s, l, u) { var h = l.valueDim,
  2811. c = l.categoryDim,
  2812. d = Math.abs(i[c.wh]),
  2813. f = t.getItemVisual(e, "symbolSize");
  2814. y(f) ? f = f.slice() : (null == f && (f = "100%"), f = [f, f]), f[c.index] = Ro(f[c.index], d), f[h.index] = Ro(f[h.index], n ? d : Math.abs(a)), u.symbolSize = f, (u.symbolScale = [f[0] / s, f[1] / s])[h.index] *= (l.isHorizontal ? -1 : 1) * r }
  2815. function Ig(t, e, i, n, o) { var a = t.get(jk) || 0;
  2816. a && (qk.attr({ scale: e.slice(), rotation: i }), qk.updateTransform(), a /= qk.getLineScale(), a *= e[n.valueDim.index]), o.valueLineWidth = a }
  2817. function Tg(t, e, i, n, o, r, s, l, u, h, c, d) { var f = c.categoryDim,
  2818. p = c.valueDim,
  2819. g = d.pxSign,
  2820. m = Math.max(e[p.index] + l, 0),
  2821. v = m; if (n) { var y = Math.abs(u),
  2822. x = T(t.get("symbolMargin"), "15%") + "",
  2823. _ = !1;
  2824. x.lastIndexOf("!") === x.length - 1 && (_ = !0, x = x.slice(0, x.length - 1)), x = Ro(x, e[p.index]); var w = Math.max(m + 2 * x, 0),
  2825. b = _ ? 0 : 2 * x,
  2826. S = Ko(n),
  2827. M = S ? n : Hg((y + b) / w);
  2828. w = m + 2 * (x = (y - M * m) / 2 / (_ ? M : M - 1)), b = _ ? 0 : 2 * x, S || "fixed" === n || (M = h ? Hg((Math.abs(h) + b) / w) : 0), v = M * w - b, d.repeatTimes = M, d.symbolMargin = x } var I = g * (v / 2),
  2829. A = d.pathPosition = [];
  2830. A[f.index] = i[f.wh] / 2, A[p.index] = "start" === s ? I : "end" === s ? u - I : u / 2, r && (A[0] += r[0], A[1] += r[1]); var D = d.bundlePosition = [];
  2831. D[f.index] = i[f.xy], D[p.index] = i[p.xy]; var C = d.barRectShape = a({}, i);
  2832. C[p.wh] = g * Math.max(Math.abs(i[p.wh]), Math.abs(A[p.index] + I)), C[f.wh] = i[f.wh]; var L = d.clipShape = {};
  2833. L[f.xy] = -i[f.xy], L[f.wh] = c.ecSize[f.wh], L[p.xy] = 0, L[p.wh] = i[p.wh] }
  2834. function Ag(t) { var e = t.symbolPatternSize,
  2835. i = Xl(t.symbolType, -e / 2, -e / 2, e, e, t.color); return i.attr({ culling: !0 }), "image" !== i.type && i.setStyle({ strokeNoScale: !0 }), i }
  2836. function Dg(t, e, i, n) {
  2837. function o(t) { var e = l.slice(),
  2838. n = i.pxSign,
  2839. o = t; return ("start" === i.symbolRepeatDirection ? n > 0 : n < 0) && (o = h - 1 - t), e[u.index] = d * (o - h / 2 + .5) + l[u.index], { position: e, scale: i.symbolScale.slice(), rotation: i.rotation } } var a = t.__pictorialBundle,
  2840. r = i.symbolSize,
  2841. s = i.valueLineWidth,
  2842. l = i.pathPosition,
  2843. u = e.valueDim,
  2844. h = i.repeatTimes || 0,
  2845. c = 0,
  2846. d = r[e.valueDim.index] + s + 2 * i.symbolMargin; for (Gg(t, function(t) { t.__pictorialAnimationIndex = c, t.__pictorialRepeatTimes = h, c < h ? Fg(t, null, o(c), i, n) : Fg(t, null, { scale: [0, 0] }, i, n, function() { a.remove(t) }), Eg(t, i), c++ }); c < h; c++) { var f = Ag(i);
  2847. f.__pictorialAnimationIndex = c, f.__pictorialRepeatTimes = h, a.add(f); var p = o(c);
  2848. Fg(f, { position: p.position, scale: [0, 0] }, { scale: p.scale, rotation: p.rotation }, i, n), f.on("mouseover", function() { Gg(t, function(t) { t.trigger("emphasis") }) }).on("mouseout", function() { Gg(t, function(t) { t.trigger("normal") }) }), Eg(f, i) } }
  2849. function Cg(t, e, i, n) { var o = t.__pictorialBundle,
  2850. a = t.__pictorialMainPath;
  2851. a ? Fg(a, null, { position: i.pathPosition.slice(), scale: i.symbolScale.slice(), rotation: i.rotation }, i, n) : (a = t.__pictorialMainPath = Ag(i), o.add(a), Fg(a, { position: i.pathPosition.slice(), scale: [0, 0], rotation: i.rotation }, { scale: i.symbolScale.slice() }, i, n), a.on("mouseover", function() { this.trigger("emphasis") }).on("mouseout", function() { this.trigger("normal") })), Eg(a, i) }
  2852. function Lg(t, e, i) { var n = a({}, e.barRectShape),
  2853. o = t.__pictorialBarRect;
  2854. o ? Fg(o, null, { shape: n }, e, i) : (o = t.__pictorialBarRect = new aM({ z2: 2, shape: n, silent: !0, style: { stroke: "transparent", fill: "transparent", lineWidth: 0 } }), t.add(o)) }
  2855. function kg(t, e, i, n) { if (i.symbolClip) { var o = t.__pictorialClipPath,
  2856. r = a({}, i.clipShape),
  2857. s = e.valueDim,
  2858. l = i.animationModel,
  2859. u = i.dataIndex; if (o) bo(o, { shape: r }, l, u);
  2860. else { r[s.wh] = 0, o = new aM({ shape: r }), t.__pictorialBundle.setClipPath(o), t.__pictorialClipPath = o; var h = {};
  2861. h[s.wh] = i.clipShape[s.wh], bM[n ? "updateProps" : "initProps"](o, { shape: h }, l, u) } } }
  2862. function Pg(t, e) { var i = t.getItemModel(e); return i.getAnimationDelayParams = Ng, i.isAnimationEnabled = Og, i }
  2863. function Ng(t) { return { index: t.__pictorialAnimationIndex, count: t.__pictorialRepeatTimes } }
  2864. function Og() { return this.parentModel.isAnimationEnabled() && !!this.getShallow("animation") }
  2865. function Eg(t, e) { t.off("emphasis").off("normal"); var i = e.symbolScale.slice();
  2866. 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") }) }
  2867. function Rg(t, e, i, n) { var o = new Zw,
  2868. a = new Zw; return o.add(a), o.__pictorialBundle = a, a.attr("position", i.bundlePosition.slice()), i.symbolRepeat ? Dg(o, e, i) : Cg(o, e, i), Lg(o, i, n), kg(o, e, i, n), o.__pictorialShapeStr = Vg(t, i), o.__pictorialSymbolMeta = i, o }
  2869. function zg(t, e, i) { var n = i.animationModel,
  2870. o = i.dataIndex;
  2871. bo(t.__pictorialBundle, { position: i.bundlePosition.slice() }, n, o), i.symbolRepeat ? Dg(t, e, i, !0) : Cg(t, e, i, !0), Lg(t, i, !0), kg(t, e, i, !0) }
  2872. function Bg(t, e, i, n) { var o = n.__pictorialBarRect;
  2873. o && (o.style.text = null); var a = [];
  2874. Gg(n, function(t) { a.push(t) }), n.__pictorialMainPath && a.push(n.__pictorialMainPath), n.__pictorialClipPath && (i = null), d(a, function(t) { bo(t, { scale: [0, 0] }, i, e, function() { n.parent && n.parent.remove(n) }) }), t.setItemGraphicEl(e, null) }
  2875. function Vg(t, e) { return [t.getItemVisual(e.dataIndex, "symbol") || "none", !!e.symbolRepeat, !!e.symbolClip].join(":") }
  2876. function Gg(t, e, i) { d(t.__pictorialBundle.children(), function(n) { n !== t.__pictorialBarRect && e.call(i, n) }) }
  2877. function Fg(t, e, i, n, o, a) { e && t.attr(e), n.symbolClip && !o ? i && t.attr(i) : i && bM[o ? "updateProps" : "initProps"](t, i, n.animationModel, n.dataIndex, a) }
  2878. function Wg(t, e, i) { var n = i.color,
  2879. o = i.dataIndex,
  2880. a = i.itemModel,
  2881. s = a.getModel("itemStyle").getItemStyle(["color"]),
  2882. l = a.getModel("emphasis.itemStyle").getItemStyle(),
  2883. u = a.getShallow("cursor");
  2884. Gg(t, function(t) { t.setColor(n), t.setStyle(r({ fill: n, opacity: i.opacity }, s)), uo(t, l), u && (t.cursor = u), t.z2 = i.z2 }); var h = {},
  2885. c = e.valueDim.posDesc[+(i.boundingLength > 0)],
  2886. d = t.__pictorialBarRect;
  2887. Th(d.style, h, a, n, e.seriesModel, o, c), uo(d, h) }
  2888. function Hg(t) { var e = Math.round(t); return Math.abs(t - e) < 1e-4 ? e : Math.ceil(t) }
  2889. function Zg(t, e, i) { this.dimension = "single", this.dimensions = ["single"], this._axis = null, this._rect, this._init(t, e, i), this.model = t }
  2890. function Ug(t, e) { e = e || {}; var i = t.coordinateSystem,
  2891. n = t.axis,
  2892. o = {},
  2893. a = n.position,
  2894. r = n.orient,
  2895. s = i.getRect(),
  2896. l = [s.x, s.x + s.width, s.y, s.y + s.height],
  2897. u = { horizontal: { top: l[2], bottom: l[3] }, vertical: { left: l[0], right: l[1] } };
  2898. o.position = ["vertical" === r ? u.vertical[a] : l[0], "horizontal" === r ? u.horizontal[a] : l[3]]; var h = { horizontal: 0, vertical: 1 };
  2899. o.rotation = Math.PI / 2 * h[r]; var c = { top: -1, bottom: 1, right: 1, left: -1 };
  2900. o.labelDirection = o.tickDirection = o.nameDirection = c[a], t.get("axisTick.inside") && (o.tickDirection = -o.tickDirection), T(e.labelInside, t.get("axisLabel.inside")) && (o.labelDirection = -o.labelDirection); var d = e.rotate; return null == d && (d = t.get("axisLabel.rotate")), o.labelRotation = "top" === a ? -d : d, o.z2 = 1, o }
  2901. function Xg(t, e, i, n, o) { var r = t.axis; if (!r.scale.isBlank() && r.containData(e))
  2902. if (t.involveSeries) { var s = jg(e, t),
  2903. l = s.payloadBatch,
  2904. u = s.snapToValue;
  2905. l[0] && null == o.seriesIndex && a(o, l[0]), !n && t.snap && r.containData(u) && null != u && (e = u), i.showPointer(t, e, l, o), i.showTooltip(t, s, u) } else i.showPointer(t, e) }
  2906. function jg(t, e) { var i = e.axis,
  2907. n = i.dim,
  2908. o = t,
  2909. a = [],
  2910. r = Number.MAX_VALUE,
  2911. s = -1; return iP(e.seriesModels, function(e, l) { var u, h, c = e.getData().mapDimension(n, !0); if (e.getAxisTooltipData) { var d = e.getAxisTooltipData(c, t, i);
  2912. h = d.dataIndices, u = d.nestestValue } else { if (!(h = e.getData().indicesOfNearest(c[0], t, "category" === i.type ? .5 : null)).length) return;
  2913. u = e.getData().get(c[0], h[0]) } if (null != u && isFinite(u)) { var f = t - u,
  2914. p = Math.abs(f);
  2915. p <= r && ((p < r || f >= 0 && s < 0) && (r = p, s = f, o = u, a.length = 0), iP(h, function(t) { a.push({ seriesIndex: e.seriesIndex, dataIndexInside: t, dataIndex: e.getData().getRawIndex(t) }) })) } }), { payloadBatch: a, snapToValue: o } }
  2916. function Yg(t, e, i, n) { t[e.key] = { value: i, payloadBatch: n } }
  2917. function qg(t, e, i, n) { var o = i.payloadBatch,
  2918. a = e.axis,
  2919. r = a.model,
  2920. s = e.axisPointerModel; if (e.triggerTooltip && o.length) { var l = e.coordSys.model,
  2921. u = bh(l),
  2922. h = t.map[u];
  2923. 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() }) } }
  2924. function Kg(t, e, i) { var n = i.axesInfo = [];
  2925. iP(e, function(e, i) { var o = e.axisPointerModel.option,
  2926. a = t[i];
  2927. 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 }) }) }
  2928. function $g(t, e, i, n) { if (!em(e) && t.list.length) { var o = ((t.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};
  2929. n({ type: "showTip", escapeConnect: !0, x: e[0], y: e[1], tooltipOption: i.tooltipOption, position: i.position, dataIndexInside: o.dataIndexInside, dataIndex: o.dataIndex, seriesIndex: o.seriesIndex, dataByCoordSys: t.list }) } else n({ type: "hideTip" }) }
  2930. function Jg(t, e, i) { var n = i.getZr(),
  2931. o = oP(n).axisPointerLastHighlights || {},
  2932. a = oP(n).axisPointerLastHighlights = {};
  2933. iP(t, function(t, e) { var i = t.axisPointerModel.option; "show" === i.status && iP(i.seriesDataIndices, function(t) { var e = t.seriesIndex + " | " + t.dataIndex;
  2934. a[e] = t }) }); var r = [],
  2935. s = [];
  2936. d(o, function(t, e) {!a[e] && s.push(t) }), d(a, function(t, e) {!o[e] && r.push(t) }), s.length && i.dispatchAction({ type: "downplay", escapeConnect: !0, batch: s }), r.length && i.dispatchAction({ type: "highlight", escapeConnect: !0, batch: r }) }
  2937. function Qg(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 } }
  2938. function tm(t) { var e = t.axis.model,
  2939. i = {},
  2940. 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 }
  2941. function em(t) { return !t || null == t[0] || isNaN(t[0]) || null == t[1] || isNaN(t[1]) }
  2942. function im(t, e, i) { if (!z_.node) { var n = e.getZr();
  2943. aP(n).records || (aP(n).records = {}), nm(n, e), (aP(n).records[t] || (aP(n).records[t] = {})).handler = i } }
  2944. function nm(t, e) {
  2945. function i(i, n) { t.on(i, function(i) { var o = sm(e);
  2946. rP(aP(t).records, function(t) { t && n(t, i, o.dispatchAction) }), om(o.pendings, e) }) }
  2947. aP(t).initialized || (aP(t).initialized = !0, i("click", v(rm, "click")), i("mousemove", v(rm, "mousemove")), i("globalout", am)) }
  2948. function om(t, e) { var i, n = t.showTip.length,
  2949. o = t.hideTip.length;
  2950. n ? i = t.showTip[n - 1] : o && (i = t.hideTip[o - 1]), i && (i.dispatchAction = null, e.dispatchAction(i)) }
  2951. function am(t, e, i) { t.handler("leave", null, i) }
  2952. function rm(t, e, i, n) { e.handler(t, i, n) }
  2953. function sm(t) { var e = { showTip: [], hideTip: [] },
  2954. i = function(n) { var o = e[n.type];
  2955. o ? o.push(n) : (n.dispatchAction = i, t.dispatchAction(n)) }; return { dispatchAction: i, pendings: e } }
  2956. function lm(t, e) { if (!z_.node) { var i = e.getZr();
  2957. (aP(i).records || {})[t] && (aP(i).records[t] = null) } }
  2958. function um() {}
  2959. function hm(t, e, i, n) { cm(lP(i).lastProp, n) || (lP(i).lastProp = n, e ? bo(i, n, t) : (i.stopAnimation(), i.attr(n))) }
  2960. function cm(t, e) { if (w(t) && w(e)) { var i = !0; return d(e, function(e, n) { i = i && cm(t[n], e) }), !!i } return t === e }
  2961. function dm(t, e) { t[e.get("label.show") ? "show" : "hide"]() }
  2962. function fm(t) { return { position: t.position.slice(), rotation: t.rotation || 0 } }
  2963. function pm(t, e, i) { var n = e.get("z"),
  2964. o = e.get("zlevel");
  2965. t && t.traverse(function(t) { "group" !== t.type && (null != n && (t.z = n), null != o && (t.zlevel = o), t.silent = i) }) }
  2966. function gm(t) { var e, i = t.get("type"),
  2967. n = t.getModel(i + "Style"); return "line" === i ? (e = n.getLineStyle()).fill = null : "shadow" === i && ((e = n.getAreaStyle()).stroke = null), e }
  2968. function mm(t, e, i, n, o) { var a = ym(i.get("value"), e.axis, e.ecModel, i.get("seriesDataIndices"), { precision: i.get("label.precision"), formatter: i.get("label.formatter") }),
  2969. r = i.getModel("label"),
  2970. s = OM(r.get("padding") || 0),
  2971. l = r.getFont(),
  2972. u = De(a, l),
  2973. h = o.position,
  2974. c = u.width + s[1] + s[3],
  2975. d = u.height + s[0] + s[2],
  2976. f = o.align; "right" === f && (h[0] -= c), "center" === f && (h[0] -= c / 2); var p = o.verticalAlign; "bottom" === p && (h[1] -= d), "middle" === p && (h[1] -= d / 2), vm(h, c, d, n); var g = r.get("backgroundColor");
  2977. g && "auto" !== g || (g = e.get("axisLine.lineStyle.color")), t.label = { shape: { x: 0, y: 0, width: c, height: d, r: r.get("borderRadius") }, position: h.slice(), style: { text: a, textFont: l, textFill: r.getTextColor(), textPosition: "inside", fill: g, stroke: r.get("borderColor") || "transparent", lineWidth: r.get("borderWidth") || 0, shadowBlur: r.get("shadowBlur"), shadowColor: r.get("shadowColor"), shadowOffsetX: r.get("shadowOffsetX"), shadowOffsetY: r.get("shadowOffsetY") }, z2: 10 } }
  2978. function vm(t, e, i, n) { var o = n.getWidth(),
  2979. a = n.getHeight();
  2980. 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) }
  2981. function ym(t, e, i, n, o) { t = e.scale.parse(t); var a = e.scale.getLabel(t, { precision: o.precision }),
  2982. r = o.formatter; if (r) { var s = { value: Wl(e, t), seriesData: [] };
  2983. d(n, function(t) { var e = i.getSeriesByIndex(t.seriesIndex),
  2984. n = t.dataIndexInside,
  2985. o = e && e.getDataParams(n);
  2986. o && s.seriesData.push(o) }), _(r) ? a = r.replace("{value}", a) : x(r) && (a = r(s)) } return a }
  2987. function xm(t, e, i) { var n = mt(); return wt(n, n, i.rotation), _t(n, n, i.position), Io([t.dataToCoord(e), (i.labelOffset || 0) + (i.labelDirection || 1) * (i.labelMargin || 0)], n) }
  2988. function _m(t, e, i, n, o, a) { var r = ID.innerTextLayout(i.rotation, 0, i.labelDirection);
  2989. i.labelMargin = o.get("label.margin"), mm(e, n, o, a, { position: xm(n.axis, t, i), align: r.textAlign, verticalAlign: r.textVerticalAlign }) }
  2990. function wm(t, e, i) { return i = i || 0, { x1: t[i], y1: t[1 - i], x2: e[i], y2: e[1 - i] } }
  2991. function bm(t, e, i) { return i = i || 0, { x: t[i], y: t[1 - i], width: e[i], height: e[1 - i] } }
  2992. function Sm(t, e, i, n, o, a) { return { cx: t, cy: e, r0: i, r: n, startAngle: o, endAngle: a, clockwise: !0 } }
  2993. function Mm(t, e) { var i = {}; return i[e.dim + "AxisIndex"] = e.index, t.getCartesian(i) }
  2994. function Im(t) { return "x" === t.dim ? 0 : 1 }
  2995. function Tm(t) { return t.isHorizontal() ? 0 : 1 }
  2996. function Am(t, e) { var i = t.getRect(); return [i[fP[e]], i[fP[e]] + i[pP[e]]] }
  2997. function Dm(t, e, i) { var n = new aM({ shape: { x: t.x - 10, y: t.y - 10, width: 0, height: t.height + 20 } }); return So(n, { shape: { width: t.width + 20, height: t.height + 20 } }, e, i), n }
  2998. function Cm(t, e, i) { if (t.count())
  2999. for (var n, o = e.coordinateSystem, a = e.getLayerSeries(), r = t.mapDimension("single"), s = t.mapDimension("value"), l = f(a, function(e) { return f(e.indices, function(e) { var i = o.dataToPoint(t.get(r, e)); return i[1] = t.get(s, e), i }) }), u = Lm(l), h = u.y0, c = i / u.max, d = a.length, p = a[0].indices.length, g = 0; g < p; ++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; m < d; ++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 }) } }
  3000. function Lm(t) { for (var e = t.length, i = t[0].length, n = [], o = [], a = 0, r = {}, s = 0; s < i; ++s) { for (var l = 0, u = 0; l < e; ++l) u += t[l][s][1];
  3001. u > a && (a = u), n.push(u) } for (var h = 0; h < i; ++h) o[h] = (a - n[h]) / 2;
  3002. a = 0; for (var c = 0; c < i; ++c) { var d = n[c] + o[c];
  3003. d > a && (a = d) } return r.y0 = o, r.max = a, r }
  3004. function km(t) { var e = 0;
  3005. d(t.children, function(t) { km(t); var i = t.value;
  3006. y(i) && (i = i[0]), e += i }); var i = t.value;
  3007. y(i) && (i = i[0]), (null == i || isNaN(i)) && (i = e), i < 0 && (i = 0), y(t.value) ? t.value[0] = i : t.value = i }
  3008. function Pm(t, e, i) {
  3009. function n() { r.ignore = r.hoverIgnore }
  3010. function o() { r.ignore = r.normalIgnore }
  3011. Zw.call(this); var a = new QS({ z2: xP });
  3012. a.seriesIndex = e.seriesIndex; var r = new qS({ z2: _P, silent: t.getModel("label").get("silent") });
  3013. 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) }
  3014. function Nm(t, e, i) { var n = t.getVisual("color"),
  3015. o = t.getVisual("visualMeta");
  3016. 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[Om(t) % r] }
  3017. function Om(t) { for (var e = t; e.depth > 1;) e = e.parentNode; return l(t.getAncestors()[0].children, e) }
  3018. function Em(t, e, i) { return i !== yP.NONE && (i === yP.SELF ? t === e : i === yP.ANCESTOR ? t === e || t.isAncestorOf(e) : t === e || t.isDescendantOf(e)) }
  3019. function Rm(t, e) { var i = t.children || [];
  3020. t.children = zm(i, e), i.length && d(t.children, function(t) { Rm(t, e) }) }
  3021. function zm(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 }) }
  3022. function Bm(t, e) { return e = e || [0, 0], f(["x", "y"], function(i, n) { var o = this.getAxis(i),
  3023. a = e[n],
  3024. r = t[n] / 2; return "category" === o.type ? o.getBandWidth() : Math.abs(o.dataToCoord(a - r) - o.dataToCoord(a + r)) }, this) }
  3025. function Vm(t, e) { return e = e || [0, 0], f([0, 1], function(i) { var n = e[i],
  3026. o = t[i] / 2,
  3027. a = [],
  3028. 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) }
  3029. function Gm(t, e) { var i = this.getAxis(),
  3030. n = e instanceof Array ? e[0] : e,
  3031. o = (t instanceof Array ? t[0] : t) / 2; return "category" === i.type ? i.getBandWidth() : Math.abs(i.dataToCoord(n - o) - i.dataToCoord(n + o)) }
  3032. function Fm(t, e) { return f(["Radius", "Angle"], function(i, n) { var o = this["get" + i + "Axis"](),
  3033. a = e[n],
  3034. r = t[n] / 2,
  3035. s = "dataTo" + i,
  3036. 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) }
  3037. function Wm(t) { var e, i = t.type; if ("path" === i) { var n = t.shape,
  3038. o = null != n.width && null != n.height ? { x: n.x || 0, y: n.y || 0, width: n.width, height: n.height } : null,
  3039. a = tv(n);
  3040. (e = Wn(a, null, o, n.layout || "center")).__customPathData = a } else "image" === i ? (e = new hi({})).__customImagePath = t.style.image : "text" === i ? (e = new qS({})).__customText = t.style.text : e = new(0, bM[i.charAt(0).toUpperCase() + i.slice(1)]); return e.__customGraphicType = i, e.name = t.name, e }
  3041. function Hm(t, e, n, o, a, r, s) { var l = {},
  3042. u = n.style || {}; if (n.shape && (l.shape = i(n.shape)), n.position && (l.position = n.position.slice()), n.scale && (l.scale = n.scale.slice()), n.origin && (l.origin = n.origin.slice()), n.rotation && (l.rotation = n.rotation), "image" === t.type && n.style) { h = l.style = {};
  3043. d(["x", "y", "width", "height"], function(e) { Zm(e, h, u, t.style, r) }) } if ("text" === t.type && n.style) { var h = l.style = {};
  3044. d(["x", "y"], function(e) { Zm(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;
  3045. null == c && (c = 1), So(t, { style: { opacity: c } }, o, e) }
  3046. r ? t.attr(l) : bo(t, l, o, e), n.hasOwnProperty("z2") && t.attr("z2", n.z2 || 0), n.hasOwnProperty("silent") && t.attr("silent", n.silent), n.hasOwnProperty("invisible") && t.attr("invisible", n.invisible), n.hasOwnProperty("ignore") && t.attr("ignore", n.ignore), n.hasOwnProperty("info") && t.attr("info", n.info); var f = n.styleEmphasis,
  3047. p = !1 === f;
  3048. t.__cusHasEmphStl && null == f || !t.__cusHasEmphStl && p || (no(t, f), t.__cusHasEmphStl = !p), s && ho(t, !p) }
  3049. function Zm(t, e, i, n, o) { null == i[t] || o || (e[t] = i[t], i[t] = n[t]) }
  3050. function Um(t, e, i, n) {
  3051. function o(t) { null == t && (t = h), v && (c = e.getItemModel(t), d = c.getModel(AP), f = c.getModel(DP), p = e.getItemVisual(t, "color"), v = !1) } var s = t.get("renderItem"),
  3052. l = t.coordinateSystem,
  3053. u = {};
  3054. l && (u = l.prepareCustoms ? l.prepareCustoms() : LP[l.type](l)); var h, c, d, f, p, g = r({ getWidth: n.getWidth, getHeight: n.getHeight, getZr: n.getZr, getDevicePixelRatio: n.getDevicePixelRatio, value: function(t, i) { return null == i && (i = h), e.get(e.getDimension(t || 0), i) }, style: function(i, n) { null == n && (n = h), o(n); var r = c.getModel(IP).getItemStyle();
  3055. null != p && (r.fill = p); var s = e.getItemVisual(n, "opacity"); return null != s && (r.opacity = s), fo(r, d, null, { autoColor: p, isRectText: !0 }), r.text = d.getShallow("show") ? A(t.getFormattedLabel(n, "normal"), gu(e, n)) : null, i && a(r, i), r }, styleEmphasis: function(i, n) { null == n && (n = h), o(n); var r = c.getModel(TP).getItemStyle(); return fo(r, f, null, { isRectText: !0 }, !0), r.text = f.getShallow("show") ? D(t.getFormattedLabel(n, "emphasis"), t.getFormattedLabel(n, "normal"), gu(e, n)) : null, i && a(r, i), r }, visual: function(t, i) { return null == i && (i = h), e.getItemVisual(i, t) }, barLayout: function(t) { if (l.getBaseAxis) return Tl(r({ axis: l.getBaseAxis() }, t), n) }, currentSeriesIndices: function() { return i.getCurrentSeriesIndices() }, font: function(t) { return _o(t, i) } }, u.api || {}),
  3056. m = { context: {}, seriesId: t.id, seriesName: t.name, seriesIndex: t.seriesIndex, coordSys: u.coordSys, dataInsideLength: e.count(), encode: Xm(t.getData()) },
  3057. v = !0; return function(t, i) { return h = t, v = !0, s && s(r({ dataIndexInside: t, dataIndex: e.getRawIndex(t), actionType: i ? i.type : null }, m), g) } }
  3058. function Xm(t) { var e = {}; return d(t.dimensions, function(i, n) { var o = t.getDimensionInfo(i); if (!o.isExtraCoord) { var a = o.coordDim;
  3059. (e[a] = e[a] || [])[o.coordDimIndex] = n } }), e }
  3060. function jm(t, e, i, n, o, a) { return (t = Ym(t, e, i, n, o, a, !0)) && a.setItemGraphicEl(e, t), t }
  3061. function Ym(t, e, i, n, o, a, r) { var s = !i,
  3062. l = (i = i || {}).type,
  3063. u = i.shape,
  3064. h = i.style; if (t && (s || null != l && l !== t.__customGraphicType || "path" === l && ev(u) && tv(u) !== t.__customPathData || "image" === l && iv(h, "image") && h.image !== t.__customImagePath || "text" === l && iv(u, "text") && h.text !== t.__customText) && (o.remove(t), t = null), !s) { var c = !t; return !t && (t = Wm(i)), Hm(t, e, i, n, a, c, r), "group" === l && qm(t, e, i, n, a), o.add(t), t } }
  3065. function qm(t, e, i, n, o) { var a = i.children,
  3066. r = a ? a.length : 0,
  3067. s = i.$mergeChildren,
  3068. l = "byName" === s || i.diffChildrenByName,
  3069. u = !1 === s; if (r || l || u)
  3070. if (l) Km({ oldChildren: t.children() || [], newChildren: a || [], dataIndex: e, animatableModel: n, group: t, data: o });
  3071. else { u && t.removeAll(); for (var h = 0; h < r; h++) a[h] && Ym(t.childAt(h), e, a[h], n, t, o) } }
  3072. function Km(t) { new Hs(t.oldChildren, t.newChildren, $m, $m, t).add(Jm).update(Jm).remove(Qm).execute() }
  3073. function $m(t, e) { var i = t && t.name; return null != i ? i : CP + e }
  3074. function Jm(t, e) { var i = this.context,
  3075. n = null != t ? i.newChildren[t] : null;
  3076. Ym(null != e ? i.oldChildren[e] : null, i.dataIndex, n, i.animatableModel, i.group, i.data) }
  3077. function Qm(t) { var e = this.context,
  3078. i = e.oldChildren[t];
  3079. i && e.group.remove(i) }
  3080. function tv(t) { return t && (t.pathData || t.d) }
  3081. function ev(t) { return t && (t.hasOwnProperty("pathData") || t.hasOwnProperty("d")) }
  3082. function iv(t, e) { return t && t.hasOwnProperty(e) }
  3083. function nv(t, e, i, n) { var o = i.type,
  3084. a = new(0, bM[o.charAt(0).toUpperCase() + o.slice(1)])(i);
  3085. e.add(a), n.set(t, a), a.__ecGraphicId = t }
  3086. function ov(t, e) { var i = t && t.parent;
  3087. i && ("group" === t.type && t.traverse(function(t) { ov(t, e) }), e.removeKey(t.__ecGraphicId), i.remove(t)) }
  3088. function av(t) { return t = a({}, t), d(["id", "parentId", "$action", "hv", "bounding"].concat(HM), function(e) { delete t[e] }), t }
  3089. function rv(t, e) { var i; return d(e, function(e) { null != t[e] && "auto" !== t[e] && (i = !0) }), i }
  3090. function sv(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;
  3091. n ? e.parentId = n.id : i && (e.parentId = i.parentId) }
  3092. e.parentOption = null }
  3093. function lv(t, e, i) { var o = a({}, i),
  3094. r = t[e],
  3095. s = i.$action || "merge"; "merge" === s ? r ? (n(r, o, !0), ca(r, o, { ignoreSize: !0 }), fa(i, r)) : t[e] = o : "replace" === s ? t[e] = o : "remove" === s && r && (t[e] = null) }
  3096. function uv(t, e) { t && (t.hv = e.hv = [rv(e, ["left", "right"]), rv(e, ["top", "bottom"])], "group" === t.type && (null == t.width && (t.width = e.width = 0), null == t.height && (t.height = e.height = 0))) }
  3097. function hv(t, e, i) { var n = t.eventData;
  3098. t.silent || t.ignore || n || (n = t.eventData = { componentType: "graphic", componentIndex: e.componentIndex, name: t.name }), n && (n.info = t.info) }
  3099. function cv(t, e, i) { var n, o = {},
  3100. a = "toggleSelected" === t; return i.eachComponent("legend", function(i) { a && null != n ? i[n ? "select" : "unSelect"](e.name) : (i[t](e.name), n = i.isSelected(e.name)), d(i.getData(), function(t) { var e = t.get("name"); if ("\n" !== e && "" !== e) { var n = i.isSelected(e);
  3101. o.hasOwnProperty(e) ? o[e] = o[e] && n : o[e] = n } }) }), { name: e.name, selected: o } }
  3102. function dv(t, e, i) { var n = e.getBoxLayoutParams(),
  3103. o = e.get("padding"),
  3104. a = { width: i.getWidth(), height: i.getHeight() },
  3105. r = la(n, a, o);
  3106. UM(e.get("orient"), t, e.get("itemGap"), r.width, r.height), ua(t, n, a, o) }
  3107. function fv(t, e) { var i = OM(e.get("padding")),
  3108. n = e.getItemStyle(["color", "opacity"]); return n.fill = e.get("backgroundColor"), t = new aM({ 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 }) }
  3109. function pv(t, e) { e.dispatchAction({ type: "legendToggleSelect", name: t }) }
  3110. function gv(t, e, i, n) { var o = i.getZr().storage.getDisplayList()[0];
  3111. o && o.useHoverLayer || i.dispatchAction({ type: "highlight", seriesName: t, name: e, excludeSeriesId: n }) }
  3112. function mv(t, e, i, n) { var o = i.getZr().storage.getDisplayList()[0];
  3113. o && o.useHoverLayer || i.dispatchAction({ type: "downplay", seriesName: t, name: e, excludeSeriesId: n }) }
  3114. function vv(t, e, i) { var n = [1, 1];
  3115. n[t.getOrient().index] = 0, ca(e, i, { type: "box", ignoreSize: n }) }
  3116. function yv(t) { var e = "left " + t + "s cubic-bezier(0.23, 1, 0.32, 1),top " + t + "s cubic-bezier(0.23, 1, 0.32, 1)"; return f(ZP, function(t) { return t + "transition:" + e }).join(";") }
  3117. function xv(t) { var e = [],
  3118. i = t.get("fontSize"),
  3119. n = t.getTextColor(); return n && e.push("color:" + n), e.push("font:" + t.getFont()), i && e.push("line-height:" + Math.round(3 * i / 2) + "px"), WP(["decoration", "align"], function(i) { var n = t.get(i);
  3120. n && e.push("text-" + i + ":" + n) }), e.join(";") }
  3121. function _v(t) { var e = [],
  3122. i = t.get("transitionDuration"),
  3123. n = t.get("backgroundColor"),
  3124. o = t.getModel("textStyle"),
  3125. a = t.get("padding"); return i && e.push(yv(i)), n && (z_.canvasSupported ? e.push("background-Color:" + n) : (e.push("background-Color:#" + Ft(n)), e.push("filter:alpha(opacity=70)"))), WP(["width", "color", "radius"], function(i) { var n = "border-" + i,
  3126. o = HP(n),
  3127. a = t.get(o);
  3128. null != a && e.push(n + ":" + a + ("color" === i ? "" : "px")) }), e.push(xv(o)), null != a && e.push("padding:" + OM(a).join("px ") + "px"), e.join(";") + ";" }
  3129. function wv(t, e) { if (z_.wxa) return null; var i = document.createElement("div"),
  3130. n = this._zr = e.getZr();
  3131. this.el = i, this._x = e.getWidth() / 2, this._y = e.getHeight() / 2, t.appendChild(i), this._container = t, this._show = !1, this._hideTimeout; var o = this;
  3132. i.onmouseenter = function() { o._enterable && (clearTimeout(o._hideTimeout), o._show = !0), o._inContent = !0 }, i.onmousemove = function(e) { if (e = e || window.event, !o._enterable) { var i = n.handler;
  3133. lt(t, e, !0), i.dispatch("mousemove", e) } }, i.onmouseleave = function() { o._enterable && o._show && o.hideLater(o._hideDelay), o._inContent = !1 } }
  3134. function bv(t) { this._zr = t.getZr(), this._show = !1, this._hideTimeout }
  3135. function Sv(t) { for (var e = t.pop(); t.length;) { var i = t.pop();
  3136. i && (Lo.isInstance(i) && (i = i.get("tooltip", !0)), "string" == typeof i && (i = { formatter: i }), e = new Lo(i, e, e.ecModel)) } return e }
  3137. function Mv(t, e) { return t.dispatchAction || m(e.dispatchAction, e) }
  3138. function Iv(t, e, i, n, o, a, r) { var s = i.getOuterSize(),
  3139. l = s.width,
  3140. 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] }
  3141. function Tv(t, e, i, n, o) { var a = i.getOuterSize(),
  3142. r = a.width,
  3143. 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] }
  3144. function Av(t, e, i) { var n = i[0],
  3145. o = i[1],
  3146. a = 0,
  3147. r = 0,
  3148. s = e.width,
  3149. l = e.height; switch (t) {
  3150. case "inside":
  3151. a = e.x + s / 2 - n / 2, r = e.y + l / 2 - o / 2; break;
  3152. case "top":
  3153. a = e.x + s / 2 - n / 2, r = e.y - o - 5; break;
  3154. case "bottom":
  3155. a = e.x + s / 2 - n / 2, r = e.y + l + 5; break;
  3156. case "left":
  3157. a = e.x - n - 5, r = e.y + l / 2 - o / 2; break;
  3158. case "right":
  3159. a = e.x + s + 5, r = e.y + l / 2 - o / 2 } return [a, r] }
  3160. function Dv(t) { return "center" === t || "middle" === t }
  3161. function Cv(t) { return t.get("stack") || "__ec_stack_" + t.seriesIndex }
  3162. function Lv(t) { return t.dim }
  3163. function kv(t, e) { var i = {};
  3164. d(t, function(t, e) { var n = t.getData(),
  3165. o = t.coordinateSystem.getBaseAxis(),
  3166. a = o.getExtent(),
  3167. r = "category" === o.type ? o.getBandWidth() : Math.abs(a[1] - a[0]) / n.count(),
  3168. s = i[Lv(o)] || { bandWidth: r, remainedWidth: r, autoWidthCount: 0, categoryGap: "20%", gap: "30%", stacks: {} },
  3169. l = s.stacks;
  3170. i[Lv(o)] = s; var u = Cv(t);
  3171. l[u] || s.autoWidthCount++, l[u] = l[u] || { width: 0, maxWidth: 0 }; var h = Ro(t.get("barWidth"), r),
  3172. c = Ro(t.get("barMaxWidth"), r),
  3173. d = t.get("barGap"),
  3174. f = t.get("barCategoryGap");
  3175. h && !l[u].width && (h = Math.min(s.remainedWidth, h), l[u].width = h, s.remainedWidth -= h), c && (l[u].maxWidth = c), null != d && (s.gap = d), null != f && (s.categoryGap = f) }); var n = {}; return d(i, function(t, e) { n[e] = {}; var i = t.stacks,
  3176. o = t.bandWidth,
  3177. a = Ro(t.categoryGap, o),
  3178. r = Ro(t.gap, 1),
  3179. s = t.remainedWidth,
  3180. l = t.autoWidthCount,
  3181. u = (s - a) / (l + (l - 1) * r);
  3182. u = Math.max(u, 0), d(i, function(t, e) { var i = t.maxWidth;
  3183. i && i < u && (i = Math.min(i, s), t.width && (i = Math.min(i, t.width)), s -= i, t.width = i, l--) }), u = (s - a) / (l + (l - 1) * r), u = Math.max(u, 0); var h, c = 0;
  3184. d(i, function(t, e) { t.width || (t.width = u), h = t, c += t.width * (1 + r) }), h && (c -= h.width * r); var f = -c / 2;
  3185. d(i, function(t, i) { n[e][i] = n[e][i] || { offset: f, width: t.width }, f += t.width * (1 + r) }) }), n }
  3186. function Pv(t, e) { HA.call(this, "radius", t, e), this.type = "category" }
  3187. function Nv(t, e) { e = e || [0, 360], HA.call(this, "angle", t, e), this.type = "category" }
  3188. function Ov(t, e) { return e.type || (e.data ? "category" : "value") }
  3189. function Ev(t, e, i) { var n = e.get("center"),
  3190. o = i.getWidth(),
  3191. a = i.getHeight();
  3192. t.cx = Ro(n[0], o), t.cy = Ro(n[1], a); var r = t.getRadiusAxis(),
  3193. s = Math.min(o, a) / 2,
  3194. l = Ro(e.get("radius"), s);
  3195. r.inverse ? r.setExtent(l, 0) : r.setExtent(0, l) }
  3196. function Rv(t, e) { var i = this,
  3197. n = i.getAngleAxis(),
  3198. o = i.getRadiusAxis(); if (n.scale.setExtent(1 / 0, -1 / 0), o.scale.setExtent(1 / 0, -1 / 0), t.eachSeries(function(t) { if (t.coordinateSystem === i) { var e = t.getData();
  3199. d(e.mapDimension("radius", !0), function(t) { o.scale.unionExtentFromData(e, cl(e, t)) }), d(e.mapDimension("angle", !0), function(t) { n.scale.unionExtentFromData(e, cl(e, t)) }) } }), Bl(n.scale, n.model), Bl(o.scale, o.model), "category" === n.type && !n.onBand) { var a = n.getExtent(),
  3200. r = 360 / n.scale.count();
  3201. n.inverse ? a[1] += r : a[1] -= r, n.setExtent(a[0], a[1]) } }
  3202. function zv(t, e) { if (t.type = e.get("type"), t.scale = Vl(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");
  3203. t.setExtent(i, i + (t.inverse ? -360 : 360)) }
  3204. e.axis = t, t.model = e }
  3205. function Bv(t, e, i) { e[1] > e[0] && (e = e.slice().reverse()); var n = t.coordToPoint([e[0], i]),
  3206. o = t.coordToPoint([e[1], i]); return { x1: n[0], y1: n[1], x2: o[0], y2: o[1] } }
  3207. function Vv(t) { return t.getRadiusAxis().inverse ? 0 : 1 }
  3208. function Gv(t) { var e = t[0],
  3209. i = t[t.length - 1];
  3210. e && i && Math.abs(Math.abs(e.coord - i.coord) - 360) < 1e-4 && t.pop() }
  3211. function Fv(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 } }
  3212. function Wv(t, e, i, n, o) { var a = e.axis,
  3213. r = a.dataToCoord(t),
  3214. s = n.getAngleAxis().getExtent()[0];
  3215. s = s / 180 * Math.PI; var l, u, h, c = n.getRadiusAxis().getExtent(); if ("radius" === a.dim) { var d = mt();
  3216. wt(d, d, s), _t(d, d, [n.cx, n.cy]), l = Io([r, -o], d); var f = e.getModel("axisLabel").get("rotate") || 0,
  3217. p = ID.innerTextLayout(s, f * Math.PI / 180, -1);
  3218. u = p.textAlign, h = p.textVerticalAlign } else { var g = c[1];
  3219. l = n.coordToPoint([g + o, r]); var m = n.cx,
  3220. v = n.cy;
  3221. 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 } }
  3222. function Hv(t, e) { e.update = "updateView", Ps(e, function(e, i) { var n = {}; return i.eachComponent({ mainType: "geo", query: e }, function(i) { i[t](e.name), d(i.coordinateSystem.regions, function(t) { n[t.name] = i.isSelected(t.name) || !1 }) }), { selected: n, name: e.name } }) }
  3223. function Zv(t) { var e = {};
  3224. d(t, function(t) { e[t] = 1 }), t.length = 0, d(e, function(e, i) { t.push(i) }) }
  3225. function Uv(t) { if (t)
  3226. for (var e in t)
  3227. if (t.hasOwnProperty(e)) return !0 }
  3228. function Xv(t, e, n) {
  3229. function o() { var t = function() {}; return t.prototype.__hidden = t.prototype, new t } var a = {}; return rN(e, function(e) { var r = a[e] = o();
  3230. rN(t[e], function(t, o) { if (jC.isValidType(o)) { var a = { type: o, visual: t };
  3231. n && n(a, e), r[o] = new jC(a), "opacity" === o && ((a = i(a)).type = "colorAlpha", r.__hidden.__alphaForOpacity = new jC(a)) } }) }), a }
  3232. function jv(t, e, n) { var o;
  3233. d(n, function(t) { e.hasOwnProperty(t) && Uv(e[t]) && (o = !0) }), o && d(n, function(n) { e.hasOwnProperty(n) && Uv(e[n]) ? t[n] = i(e[n]) : delete t[n] }) }
  3234. function Yv(t, e, i, n, o, a) {
  3235. function r(t) { return i.getItemVisual(h, t) }
  3236. function s(t, e) { i.setItemVisual(h, t, e) }
  3237. function l(t, l) { h = null == a ? t : l; var c = i.getRawDataItem(h); if (!c || !1 !== c.visualMap)
  3238. for (var d = n.call(o, t), f = e[d], p = u[d], g = 0, m = p.length; g < m; g++) { var v = p[g];
  3239. f[v] && f[v].applyVisual(t, r, s) } } var u = {};
  3240. d(t, function(t) { var i = jC.prepareVisualTypes(e[t]);
  3241. u[t] = i }); var h;
  3242. null == a ? i.each(l) : i.each([a], l) }
  3243. function qv(t, e, i, n) { var o = {}; return d(t, function(t) { var i = jC.prepareVisualTypes(e[t]);
  3244. o[t] = i }), { progress: function(t, a) { null != n && (n = a.getDimension(n)); for (var r; null != (r = t.next());) { var s = a.getRawDataItem(r); if (s && !1 === s.visualMap) return; for (var l = null != n ? a.get(n, r, !0) : r, u = i(l), h = e[u], c = o[u], d = 0, f = c.length; d < f; d++) { var p = c[d];
  3245. h[p] && h[p].applyVisual(l, function(t) { return a.getItemVisual(r, t) }, function(t, e) { a.setItemVisual(r, t, e) }) } } } } }
  3246. function Kv(t) { var e = ["x", "y"],
  3247. i = ["width", "height"]; return { point: function(e, i, n) { if (e) { var o = n.range; return $v(e[t], o) } }, rect: function(n, o, a) { if (n) { var r = a.range,
  3248. s = [n[e[t]], n[e[t]] + n[i[t]]]; return s[1] < s[0] && s.reverse(), $v(s[0], r) || $v(s[1], r) || $v(r[0], s) || $v(r[1], s) } } } }
  3249. function $v(t, e) { return e[0] <= t && t <= e[1] }
  3250. function Jv(t, e, i, n, o) { for (var a = 0, r = o[o.length - 1]; a < o.length; a++) { var s = o[a]; if (Qv(t, e, i, n, s[0], s[1], r[0], r[1])) return !0;
  3251. r = s } }
  3252. function Qv(t, e, i, n, o, a, r, s) { var l = ey(i - t, o - r, n - e, a - s); if (ty(l)) return !1; var u = ey(o - t, o - r, a - e, a - s) / l; if (u < 0 || u > 1) return !1; var h = ey(i - t, o - t, n - e, a - e) / l; return !(h < 0 || h > 1) }
  3253. function ty(t) { return t <= 1e-6 && t >= -1e-6 }
  3254. function ey(t, e, i, n) { return t * n - e * i }
  3255. function iy(t, e, i) { var n = this._targetInfoList = [],
  3256. o = {},
  3257. a = oy(e, t);
  3258. lN(pN, function(t, e) {
  3259. (!i || !i.include || uN(i.include, e) >= 0) && t(a, n, o) }) }
  3260. function ny(t) { return t[0] > t[1] && t.reverse(), t }
  3261. function oy(t, e) { return Vi(t, e, { includeMainTypes: dN }) }
  3262. function ay(t, e, i, n) { var o = i.getAxis(["x", "y"][t]),
  3263. a = ny(f([0, 1], function(t) { return e ? o.coordToData(o.toLocalCoord(n[t])) : o.toGlobalCoord(o.dataToCoord(n[t])) })),
  3264. r = []; return r[t] = a, r[1 - t] = [NaN, NaN], { values: a, xyMinMax: r } }
  3265. function ry(t, e, i, n) { return [e[0] - n[t] * i[0], e[1] - n[t] * i[1]] }
  3266. function sy(t, e) { var i = ly(t),
  3267. n = ly(e),
  3268. o = [i[0] / n[0], i[1] / n[1]]; return isNaN(o[0]) && (o[0] = 1), isNaN(o[1]) && (o[1] = 1), o }
  3269. function ly(t) { return t ? [t[0][1] - t[0][0], t[1][1] - t[1][0]] : [NaN, NaN] }
  3270. function uy(t, e, i, n, o) { if (o) { var a = t.getZr();
  3271. a[wN] || (a[_N] || (a[_N] = hy), Lr(a, _N, i, e)(t, n)) } }
  3272. function hy(t, e) { if (!t.isDisposed()) { var i = t.getZr();
  3273. i[wN] = !0, t.dispatchAction({ type: "brushSelect", batch: e }), i[wN] = !1 } }
  3274. function cy(t, e, i, n) { for (var o = 0, a = e.length; o < a; o++) { var r = e[o]; if (t[r.brushType](n, i, r.selectors, r)) return !0 } }
  3275. function dy(t) { var e = t.brushSelector; if (_(e)) { var i = []; return d(sN, function(t, n) { i[n] = function(i, n, o, a) { var r = n.getItemLayout(i); return t[e](r, o, a) } }), i } if (x(e)) { var n = {}; return d(sN, function(t, i) { n[i] = e }), n } return e }
  3276. function fy(t, e) { var i = t.option.seriesIndex; return null != i && "all" !== i && (y(i) ? l(i, e) < 0 : e !== i) }
  3277. function py(t) { var e = t.selectors = {}; return d(sN[t.brushType], function(i, n) { e[n] = function(n) { return i(n, e, t) } }), t }
  3278. function gy(t) { return new ue(t[0][0], t[1][0], t[0][1] - t[0][0], t[1][1] - t[1][0]) }
  3279. function my(t, e) { return n({ brushType: t.brushType, brushMode: t.brushMode, transformable: t.transformable, brushStyle: new Lo(t.brushStyle).getItemStyle(), removeOnClick: t.removeOnClick, z: t.z }, e, !0) }
  3280. function vy(t, e, i, n) {
  3281. (!n || n.$from !== t.id) && this._brushController.setPanels(t.brushTargetManager.makePanelOpts(i)).enableBrush(t.brushOption).updateCovers(t.areas.slice()) }
  3282. function yy(t, e) { IN[t] = e }
  3283. function xy(t) { return IN[t] }
  3284. function _y(t, e, i) { this.model = t, this.ecModel = e, this.api = i, this._brushType, this._brushMode }
  3285. function wy(t, e, i) { this._model = t }
  3286. function by(t, e, i, n) { var o = i.calendarModel,
  3287. a = i.seriesModel,
  3288. r = o ? o.coordinateSystem : a ? a.coordinateSystem : null; return r === this ? r[t](n) : null }
  3289. function Sy(t, e) { var i = t.cellSize;
  3290. y(i) ? 1 === i.length && (i[1] = i[0]) : i = t.cellSize = [i, i]; var n = f([0, 1], function(t) { return ha(e, t) && (i[t] = "auto"), null != i[t] && "auto" !== i[t] });
  3291. ca(t, e, { type: "box", ignoreSize: n }) }
  3292. function My(t) { return l(kN, t) >= 0 }
  3293. function Iy(t, e, i) {
  3294. function n(t, e) { return l(e.nodes, t) >= 0 }
  3295. function o(t, n) { var o = !1; return e(function(e) { d(i(t, e) || [], function(t) { n.records[e.name][t] && (o = !0) }) }), o }
  3296. function a(t, n) { n.nodes.push(t), e(function(e) { d(i(t, e) || [], function(t) { n.records[e.name][t] = !0 }) }) } return function(i) { var r = { nodes: [], records: {} }; if (e(function(t) { r.records[t.name] = {} }), !i) return r;
  3297. a(i, r); var s;
  3298. do { s = !1, t(function(t) {!n(t, r) && o(t, r) && (a(t, r), s = !0) }) } while (s); return r } }
  3299. function Ty(t, e, i) { var n = [1 / 0, -1 / 0]; return NN(i, function(t) { var i = t.getData();
  3300. i && NN(i.mapDimension(e, !0), function(t) { var e = i.getApproximateExtent(t);
  3301. e[0] < n[0] && (n[0] = e[0]), e[1] > n[1] && (n[1] = e[1]) }) }), n[1] < n[0] && (n = [NaN, NaN]), Ay(t, n), n }
  3302. function Ay(t, e) { var i = t.getAxisModel(),
  3303. n = i.getMin(!0),
  3304. o = "category" === i.get("type"),
  3305. a = o && i.getCategories().length;
  3306. null != n && "dataMin" !== n && "function" != typeof n ? e[0] = n : o && (e[0] = a > 0 ? 0 : NaN); var r = i.getMax(!0); return null != r && "dataMax" !== r && "function" != typeof r ? e[1] = r : o && (e[1] = a > 0 ? a - 1 : NaN), i.get("scale", !0) || (e[0] > 0 && (e[0] = 0), e[1] < 0 && (e[1] = 0)), e }
  3307. function Dy(t, e) { var i = t.getAxisModel(),
  3308. n = t._percentWindow,
  3309. o = t._valueWindow; if (n) { var a = Fo(o, [0, 500]);
  3310. a = Math.min(a, 20); var r = e || 0 === n[0] && 100 === n[1];
  3311. i.setRange(r ? null : +o[0].toFixed(a), r ? null : +o[1].toFixed(a)) } }
  3312. function Cy(t) { var e = t._minMaxSpan = {},
  3313. i = t._dataZoomModel;
  3314. NN(["min", "max"], function(n) { e[n + "Span"] = i.get(n + "Span"); var o = i.get(n + "ValueSpan"); if (null != o && (e[n + "ValueSpan"] = o, null != (o = t.getAxisModel().axis.scale.parse(o)))) { var a = t._dataExtent;
  3315. e[n + "Span"] = Eo(a[0] + o, a, [0, 100], !0) } }) }
  3316. function Ly(t) { var e = {}; return RN(["start", "end", "startValue", "endValue", "throttle"], function(i) { t.hasOwnProperty(i) && (e[i] = t[i]) }), e }
  3317. function ky(t, e) { var i = t._rangePropMode,
  3318. n = t.get("rangeMode");
  3319. RN([
  3320. ["start", "startValue"],
  3321. ["end", "endValue"]
  3322. ], function(t, o) { var a = null != e[t[0]],
  3323. r = null != e[t[1]];
  3324. a && !r ? i[o] = "percent" : !a && r ? i[o] = "value" : n ? i[o] = n[o] : a && (i[o] = "percent") }) }
  3325. function Py(t) { return { x: "y", y: "x", radius: "angle", angle: "radius" }[t] }
  3326. function Ny(t) { return "vertical" === t ? "ns-resize" : "ew-resize" }
  3327. function Oy(t, e) { var i = zy(t),
  3328. n = e.dataZoomId,
  3329. o = e.coordId;
  3330. d(i, function(t, i) { var a = t.dataZoomInfos;
  3331. a[n] && l(e.allCoordIds, o) < 0 && (delete a[n], t.count--) }), Vy(i); var a = i[o];
  3332. a || ((a = i[o] = { coordId: o, dataZoomInfos: {}, count: 0 }).controller = By(t, a), a.dispatchAction = v(Gy, t)), !a.dataZoomInfos[n] && a.count++, a.dataZoomInfos[n] = e; var r = Fy(a.dataZoomInfos);
  3333. a.controller.enable(r.controlType, r.opt), a.controller.setPointerChecker(e.containsPoint), Lr(a, "dispatchAction", e.dataZoomModel.get("throttle", !0), "fixRate") }
  3334. function Ey(t, e) { var i = zy(t);
  3335. d(i, function(t) { t.controller.dispose(); var i = t.dataZoomInfos;
  3336. i[e] && (delete i[e], t.count--) }), Vy(i) }
  3337. function Ry(t) { return t.type + "\0_" + t.id }
  3338. function zy(t) { var e = t.getZr(); return e[qN] || (e[qN] = {}) }
  3339. function By(t, e) { var i = new ac(t.getZr()); return d(["pan", "zoom", "scrollMove"], function(t) { i.on(t, function(i) { var n = [];
  3340. d(e.dataZoomInfos, function(o) { if (i.isAvailableBehavior(o.dataZoomModel.option)) { var a = (o.getRange || {})[t],
  3341. 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 }
  3342. function Vy(t) { d(t, function(e, i) { e.count || (e.controller.dispose(), delete t[i]) }) }
  3343. function Gy(t, e) { t.dispatchAction({ type: "dataZoom", batch: e }) }
  3344. function Fy(t) { var e, i = { type_true: 2, type_move: 1, type_false: 0, type_undefined: -1 },
  3345. n = !0; return d(t, function(t) { var o = t.dataZoomModel,
  3346. a = !o.get("disabled", !0) && (!o.get("zoomLock", !0) || "move");
  3347. i["type_" + a] > i["type_" + e] && (e = a), n &= o.get("preventDefaultMouseMove", !0) }), { controlType: e, opt: { zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !0, preventDefaultMouseMove: !!n } } }
  3348. function Wy(t) { return function(e, i, n, o) { var a = this._range,
  3349. r = a.slice(),
  3350. s = e.axisModels[0]; if (s) { var l = t(r, s, e, i, n, o); return EL(l, r, [0, 100], "all"), this._range = r, a[0] !== r[0] || a[1] !== r[1] ? r : void 0 } } }
  3351. function Hy(t, e) { return t && t.hasOwnProperty && t.hasOwnProperty(e) }
  3352. function Zy(t, e, i, n) { for (var o = e.targetVisuals[n], a = jC.prepareVisualTypes(o), r = { color: t.getData().getVisual("color") }, s = 0, l = a.length; s < l; s++) { var u = a[s],
  3353. h = o["opacity" === u ? "__alphaForOpacity" : u];
  3354. h && h.applyVisual(i, function(t) { return r[t] }, function(t, e) { r[t] = e }) } return r.color }
  3355. function Uy(t, e, i) { if (i[0] === i[1]) return i.slice(); for (var n = (i[1] - i[0]) / 200, o = i[0], a = [], r = 0; r <= 200 && o < i[1]; r++) a.push(o), o += n; return a.push(i[1]), a }
  3356. function Xy(t, e, i) { var n = t.option,
  3357. o = n.align; if (null != o && "auto" !== o) return o; for (var a = { width: e.getWidth(), height: e.getHeight() }, r = "horizontal" === n.orient ? 1 : 0, s = [
  3358. ["left", "right", "width"],
  3359. ["top", "bottom", "height"]
  3360. ], l = s[r], u = [0, null, 10], h = {}, c = 0; c < 3; c++) h[s[1 - r][c]] = u[c], h[l[c]] = 2 === c ? i[0] : n[l[c]]; var d = [
  3361. ["x", "width", 3],
  3362. ["y", "height", 0]
  3363. ][r],
  3364. f = la(h, a, n.padding); return l[(f.margin[d[2]] || 0) + f[d[0]] + .5 * f[d[1]] < .5 * a[d[1]] ? 0 : 1] }
  3365. function jy(t) { return d(t || [], function(e) { null != t.dataIndex && (t.dataIndexInside = t.dataIndex, t.dataIndex = null) }), t }
  3366. function Yy(t, e, i, n) { return new nM({ shape: { points: t }, draggable: !!i, cursor: e, drift: i, onmousemove: function(t) { lw(t.event) }, ondragend: n }) }
  3367. function qy(t, e) { return 0 === t ? [
  3368. [0, 0],
  3369. [e, 0],
  3370. [e, -e]
  3371. ] : [
  3372. [0, 0],
  3373. [e, 0],
  3374. [e, e]
  3375. ] }
  3376. function Ky(t, e, i, n) { return t ? [
  3377. [0, -yO(e, xO(i, 0))],
  3378. [wO, 0],
  3379. [0, yO(e, xO(n - i, 0))]
  3380. ] : [
  3381. [0, 0],
  3382. [5, -5],
  3383. [5, 5]
  3384. ] }
  3385. function $y(t, e, i) { var n = _O / 2,
  3386. o = t.get("hoverLinkDataSize"); return o && (n = mO(o, e, i, !0) / 2), n }
  3387. function Jy(t) { var e = t.get("hoverLinkOnHandle"); return !!(null == e ? t.get("realtime") : e) }
  3388. function Qy(t) { return "vertical" === t ? "ns-resize" : "ew-resize" }
  3389. function tx(t, e) { var i = t.inverse;
  3390. ("vertical" === t.orient ? !i : i) && e.reverse() }
  3391. function ex(t) { Ci(t, "label", ["show"]) }
  3392. function ix(t) { return !(isNaN(parseFloat(t.x)) && isNaN(parseFloat(t.y))) }
  3393. function nx(t) { return !isNaN(parseFloat(t.x)) && !isNaN(parseFloat(t.y)) }
  3394. function ox(t, e, i, n, o, a) { var r = [],
  3395. s = hl(e, n) ? e.getCalculationInfo("stackResultDimension") : n,
  3396. l = hx(e, s, t),
  3397. u = e.indicesOfNearest(s, l)[0];
  3398. r[o] = e.get(i, u), r[a] = e.get(n, u); var h = Vo(e.get(n, u)); return (h = Math.min(h, 20)) >= 0 && (r[a] = +r[a].toFixed(h)), r }
  3399. function ax(t, e) { var n = t.getData(),
  3400. o = t.coordinateSystem; if (e && !nx(e) && !y(e.coord) && o) { var a = o.dimensions,
  3401. r = rx(e, n, o, t); if ((e = i(e)).type && LO[e.type] && r.baseAxis && r.valueAxis) { var s = DO(a, r.baseAxis.dim),
  3402. l = DO(a, r.valueAxis.dim);
  3403. e.coord = LO[e.type](n, r.baseDataDim, r.valueDataDim, s, l), e.value = e.coord[l] } else { for (var u = [null != e.xAxis ? e.xAxis : e.radiusAxis, null != e.yAxis ? e.yAxis : e.angleAxis], h = 0; h < 2; h++) LO[u[h]] && (u[h] = hx(n, n.mapDimension(a[h]), u[h]));
  3404. e.coord = u } } return e }
  3405. function rx(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(sx(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 }
  3406. function sx(t, e) { var i = t.getData(),
  3407. n = i.dimensions;
  3408. e = i.getDimension(e); for (var o = 0; o < n.length; o++) { var a = i.getDimensionInfo(n[o]); if (a.name === e) return a.coordDim } }
  3409. function lx(t, e) { return !(t && t.containData && e.coord && !ix(e)) || t.containData(e.coord) }
  3410. function ux(t, e, i, n) { return n < 2 ? t.coord && t.coord[n] : t.value }
  3411. function hx(t, e, i) { if ("average" === i) { var n = 0,
  3412. o = 0; return t.each(e, function(t, e) { isNaN(t) || (n += t, o++) }), n / o } return "median" === i ? t.getMedian(e) : t.getDataExtent(e, !0)["max" === i ? 1 : 0] }
  3413. function cx(t, e, i) { var n = e.coordinateSystem;
  3414. t.each(function(o) { var a, r = t.getItemModel(o),
  3415. s = Ro(r.get("x"), i.getWidth()),
  3416. l = Ro(r.get("y"), i.getHeight()); if (isNaN(s) || isNaN(l)) { if (e.getMarkerPosition) a = e.getMarkerPosition(t.getValues(t.dimensions, o));
  3417. else if (n) { var u = t.get(n.dimensions[0], o),
  3418. h = t.get(n.dimensions[1], o);
  3419. a = n.dataToPoint([u, h]) } } else a = [s, l];
  3420. isNaN(s) || (a[0] = s), isNaN(l) || (a[1] = l), t.setItemLayout(o, a) }) }
  3421. function dx(t, e, i) { var n;
  3422. n = t ? f(t && t.dimensions, function(t) { return r({ name: t }, e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {}) }) : [{ name: "value", type: "float" }]; var o = new eA(n, i),
  3423. a = f(i.get("data"), v(ax, e)); return t && (a = g(a, v(lx, t))), o.initData(a, null, t ? ux : function(t) { return t.value }), o }
  3424. function fx(t) { return !isNaN(t) && !isFinite(t) }
  3425. function px(t, e, i, n) { var o = 1 - t,
  3426. a = n.dimensions[t]; return fx(e[o]) && fx(i[o]) && e[t] === i[t] && n.getAxis(a).containData(e[t]) }
  3427. function gx(t, e) { if ("cartesian2d" === t.type) { var i = e[0].coord,
  3428. n = e[1].coord; if (i && n && (px(1, i, n, t) || px(0, i, n, t))) return !0 } return lx(t, e[0]) && lx(t, e[1]) }
  3429. function mx(t, e, i, n, o) { var a, r = n.coordinateSystem,
  3430. s = t.getItemModel(e),
  3431. l = Ro(s.get("x"), o.getWidth()),
  3432. u = Ro(s.get("y"), o.getHeight()); if (isNaN(l) || isNaN(u)) { if (n.getMarkerPosition) a = n.getMarkerPosition(t.getValues(t.dimensions, e));
  3433. else { var h = r.dimensions,
  3434. c = t.get(h[0], e),
  3435. d = t.get(h[1], e);
  3436. a = r.dataToPoint([c, d]) } if ("cartesian2d" === r.type) { var f = r.getAxis("x"),
  3437. p = r.getAxis("y"),
  3438. h = r.dimensions;
  3439. fx(t.get(h[0], e)) ? a[0] = f.toGlobalCoord(f.getExtent()[i ? 0 : 1]) : fx(t.get(h[1], e)) && (a[1] = p.toGlobalCoord(p.getExtent()[i ? 0 : 1])) }
  3440. isNaN(l) || (a[0] = l), isNaN(u) || (a[1] = u) } else a = [l, u];
  3441. t.setItemLayout(e, a) }
  3442. function vx(t, e, i) { var n;
  3443. n = t ? f(t && t.dimensions, function(t) { return r({ name: t }, e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {}) }) : [{ name: "value", type: "float" }]; var o = new eA(n, i),
  3444. a = new eA(n, i),
  3445. s = new eA([], i),
  3446. l = f(i.get("data"), v(PO, e, t, i));
  3447. t && (l = g(l, v(gx, t))); var u = t ? ux : function(t) { return t.value }; return o.initData(f(l, function(t) { return t[0] }), null, u), a.initData(f(l, function(t) { return t[1] }), null, u), s.initData(f(l, function(t) { return t[2] })), s.hasItemOption = !0, { from: o, to: a, line: s } }
  3448. function yx(t) { return !isNaN(t) && !isFinite(t) }
  3449. function xx(t, e, i, n) { var o = 1 - t; return yx(e[o]) && yx(i[o]) }
  3450. function _x(t, e) { var i = e.coord[0],
  3451. n = e.coord[1]; return !("cartesian2d" !== t.type || !i || !n || !xx(1, i, n, t) && !xx(0, i, n, t)) || (lx(t, { coord: i, x: e.x0, y: e.y0 }) || lx(t, { coord: n, x: e.x1, y: e.y1 })) }
  3452. function bx(t, e, i, n, o) { var a, r = n.coordinateSystem,
  3453. s = t.getItemModel(e),
  3454. l = Ro(s.get(i[0]), o.getWidth()),
  3455. u = Ro(s.get(i[1]), o.getHeight()); if (isNaN(l) || isNaN(u)) { if (n.getMarkerPosition) a = n.getMarkerPosition(t.getValues(i, e));
  3456. else { var h = [f = t.get(i[0], e), p = t.get(i[1], e)];
  3457. r.clampData && r.clampData(h, h), a = r.dataToPoint(h, !0) } if ("cartesian2d" === r.type) { var c = r.getAxis("x"),
  3458. d = r.getAxis("y"),
  3459. f = t.get(i[0], e),
  3460. p = t.get(i[1], e);
  3461. yx(f) ? a[0] = c.toGlobalCoord(c.getExtent()["x0" === i[0] ? 0 : 1]) : yx(p) && (a[1] = d.toGlobalCoord(d.getExtent()["y0" === i[1] ? 0 : 1])) }
  3462. isNaN(l) || (a[0] = l), isNaN(u) || (a[1] = u) } else a = [l, u]; return a }
  3463. function Sx(t, e, i) { var n, o, a = ["x0", "y0", "x1", "y1"];
  3464. t ? (n = f(t && t.dimensions, function(t) { var i = e.getData(); return r({ name: t }, i.getDimensionInfo(i.mapDimension(t)) || {}) }), o = new eA(f(a, function(t, e) { return { name: t, type: n[e % 2].type } }), i)) : o = new eA(n = [{ name: "value", type: "float" }], i); var s = f(i.get("data"), v(NO, e, t, i));
  3465. t && (s = g(s, v(_x, 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(s, null, l), o.hasItemOption = !0, o }
  3466. function Mx(t) { var e = t.type,
  3467. i = { number: "value", time: "time" }; if (i[e] && (t.axisType = i[e], delete t.type), Ix(t), Tx(t, "controlPosition")) { var n = t.controlStyle || (t.controlStyle = {});
  3468. Tx(n, "position") || (n.position = t.controlPosition), "none" !== n.position || Tx(n, "show") || (n.show = !1, delete n.position), delete t.controlPosition }
  3469. d(t.data || [], function(t) { w(t) && !y(t) && (!Tx(t, "value") && Tx(t, "name") && (t.value = t.name), Ix(t)) }) }
  3470. function Ix(t) { var e = t.itemStyle || (t.itemStyle = {}),
  3471. i = e.emphasis || (e.emphasis = {}),
  3472. n = t.label || t.label || {},
  3473. o = n.normal || (n.normal = {}),
  3474. a = { normal: 1, emphasis: 1 };
  3475. d(n, function(t, e) { a[e] || Tx(o, e) || (o[e] = t) }), i.label && !Tx(n, "emphasis") && (n.emphasis = i.label, delete i.label) }
  3476. function Tx(t, e) { return t.hasOwnProperty(e) }
  3477. function Ax(t, e) { return la(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }, t.get("padding")) }
  3478. function Dx(t, e, n, o) { return Wn(t.get(e).replace(/^path:\/\//, ""), i(o || {}), new ue(n[0], n[1], n[2], n[3]), "center") }
  3479. function Cx(t, e, i, o, a, r) { var s = e.get("color");
  3480. a ? (a.setColor(s), i.add(a), r && r.onUpdate(a)) : ((a = Xl(t.get("symbol"), -1, -1, 2, 2, s)).setStyle("strokeNoScale", !0), i.add(a), r && r.onCreate(a)); var l = e.getItemStyle(["color", "symbol", "symbolSize"]);
  3481. a.setStyle(l), o = n({ rectHover: !0, z2: 100 }, o, !0); var u = t.get("symbolSize");
  3482. (u = u instanceof Array ? u.slice() : [+u, +u])[0] /= 2, u[1] /= 2, o.scale = u; var h = t.get("symbolOffset"); if (h) { var c = o.position = o.position || [0, 0];
  3483. c[0] += Ro(h[0], u[0]), c[1] += Ro(h[1], u[1]) } var d = t.get("symbolRotate"); return o.rotation = (d || 0) * Math.PI / 180 || 0, a.attr(o), a.updateTransform(), a }
  3484. function Lx(t, e, i, n, o) { if (!t.dragging) { var a = n.getModel("checkpointStyle"),
  3485. r = i.dataToCoord(n.getData().get(["value"], e));
  3486. 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))) } }
  3487. function kx(t) { return 0 === t.indexOf("my") }
  3488. function Px(t) { this.model = t }
  3489. function Nx(t) { this.model = t }
  3490. function Ox(t) { var e = {},
  3491. i = [],
  3492. n = []; return t.eachRawSeries(function(t) { var o = t.coordinateSystem; if (!o || "cartesian2d" !== o.type && "polar" !== o.type) i.push(t);
  3493. else { var a = o.getBaseAxis(); if ("category" === a.type) { var r = a.dim + "_" + a.index;
  3494. 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 } }
  3495. function Ex(t) { var e = []; return d(t, function(t, i) { var n = t.categoryAxis,
  3496. o = t.valueAxis.dim,
  3497. a = [" "].concat(f(t.series, function(t) { return t.name })),
  3498. r = [n.model.getCategories()];
  3499. d(t.series, function(t) { r.push(t.getRawData().mapArray(o, function(t) { return t })) }); for (var s = [a.join(qO)], l = 0; l < r[0].length; l++) { for (var u = [], h = 0; h < r.length; h++) u.push(r[h][l]);
  3500. s.push(u.join(qO)) }
  3501. e.push(s.join("\n")) }), e.join("\n\n" + YO + "\n\n") }
  3502. function Rx(t) { return f(t, function(t) { var e = t.getRawData(),
  3503. i = [t.name],
  3504. n = []; return e.each(e.dimensions, function() { for (var t = arguments.length, o = arguments[t - 1], a = e.getName(o), r = 0; r < t - 1; r++) n[r] = arguments[r];
  3505. i.push((a ? a + qO : "") + n.join(qO)) }), i.join("\n") }).join("\n\n" + YO + "\n\n") }
  3506. function zx(t) { var e = Ox(t); return { value: g([Ex(e.seriesGroupByCategoryAxis), Rx(e.other)], function(t) { return t.replace(/[\n\t\s]/g, "") }).join("\n\n" + YO + "\n\n"), meta: e.meta } }
  3507. function Bx(t) { return t.replace(/^\s\s*/, "").replace(/\s\s*$/, "") }
  3508. function Vx(t) { if (t.slice(0, t.indexOf("\n")).indexOf(qO) >= 0) return !0 }
  3509. function Gx(t) { for (var e = t.split(/\n+/g), i = [], n = f(Bx(e.shift()).split(KO), function(t) { return { name: t, data: [] } }), o = 0; o < e.length; o++) { var a = Bx(e[o]).split(KO);
  3510. i.push(a.shift()); for (var r = 0; r < a.length; r++) n[r] && (n[r].data[o] = a[r]) } return { series: n, categories: i } }
  3511. function Fx(t) { for (var e = t.split(/\n+/g), i = Bx(e.shift()), n = [], o = 0; o < e.length; o++) { var a, r = Bx(e[o]).split(KO),
  3512. s = "",
  3513. l = !1;
  3514. isNaN(r[0]) ? (l = !0, s = r[0], r = r.slice(1), n[o] = { name: s, value: [] }, a = n[o].value) : a = n[o] = []; for (var u = 0; u < r.length; u++) a.push(+r[u]);
  3515. 1 === a.length && (l ? n[o].value = a[0] : n[o] = a[0]) } return { name: i, data: n } }
  3516. function Wx(t, e) { var i = { series: [] }; return d(t.split(new RegExp("\n*" + YO + "\n*", "g")), function(t, n) { if (Vx(t)) { var o = Gx(t),
  3517. a = e[n],
  3518. r = a.axisDim + "Axis";
  3519. a && (i[r] = i[r] || [], i[r][a.axisIndex] = { data: o.categories }, i.series = i.series.concat(o.series)) } else { o = Fx(t);
  3520. i.series.push(o) } }), i }
  3521. function Hx(t) { this._dom = null, this.model = t }
  3522. function Zx(t, e) { return f(t, function(t, i) { var n = e && e[i]; return w(n) && !y(n) ? (w(t) && !y(t) && (t = t.value), r({ value: t }, n)) : t }) }
  3523. function Ux(t, e) { var i = qx(t);
  3524. $O(e, function(e, n) { for (var o = i.length - 1; o >= 0 && !i[o][n]; o--); if (o < 0) { var a = t.queryComponents({ mainType: "dataZoom", subType: "select", id: n })[0]; if (a) { var r = a.getPercentRange();
  3525. i[0][n] = { dataZoomId: n, start: r[0], end: r[1] } } } }), i.push(e) }
  3526. function Xx(t) { var e = qx(t),
  3527. i = e[e.length - 1];
  3528. e.length > 1 && e.pop(); var n = {}; return $O(i, function(t, i) { for (var o = e.length - 1; o >= 0; o--)
  3529. if (t = e[o][i]) { n[i] = t; break } }), n }
  3530. function jx(t) { t[JO] = null }
  3531. function Yx(t) { return qx(t).length }
  3532. function qx(t) { var e = t[JO]; return e || (e = t[JO] = [{}]), e }
  3533. function Kx(t, e, i) {
  3534. (this._brushController = new Cf(i.getZr())).on("brush", m(this._onBrush, this)).mount(), this._isZoomActive }
  3535. function $x(t) { var e = {}; return d(["xAxisIndex", "yAxisIndex"], function(i) { e[i] = t[i], null == e[i] && (e[i] = "all"), (!1 === e[i] || "none" === e[i]) && (e[i] = []) }), e }
  3536. function Jx(t, e) { t.setIconStatus("back", Yx(e) > 1 ? "emphasis" : "normal") }
  3537. function Qx(t, e, i, n, o) { var a = i._isZoomActive;
  3538. n && "takeGlobalCursor" === n.type && (a = "dataZoomSelect" === n.key && n.dataZoomSelectActive), i._isZoomActive = a, t.setIconStatus("zoom", a ? "emphasis" : "normal"); var r = new iy($x(t.option), e, { include: ["grid"] });
  3539. i._brushController.setPanels(r.makePanelOpts(o, function(t) { return t.xAxisDeclared && !t.yAxisDeclared ? "lineX" : !t.xAxisDeclared && t.yAxisDeclared ? "lineY" : "rect" })).enableBrush(!!a && { brushType: "auto", brushStyle: { lineWidth: 0, fill: "rgba(0,0,0,0.2)" } }) }
  3540. function t_(t) { this.model = t }
  3541. function e_(t) { return aE(t) }
  3542. function i_() { if (!lE && uE) { lE = !0; var t = uE.styleSheets;
  3543. t.length < 31 ? uE.createStyleSheet().addRule(".zrvml", "behavior:url(#default#VML)") : t[0].addRule(".zrvml", "behavior:url(#default#VML)") } }
  3544. function n_(t) { return parseInt(t, 10) }
  3545. function o_(t, e) { i_(), this.root = t, this.storage = e; var i = document.createElement("div"),
  3546. n = document.createElement("div");
  3547. i.style.cssText = "display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;", n.style.cssText = "position:absolute;left:0;top:0;", t.appendChild(i), this._vmlRoot = n, this._vmlViewport = i, this.resize(); var o = e.delFromStorage,
  3548. a = e.addToStorage;
  3549. e.delFromStorage = function(t) { o.call(e, t), t && t.onRemove && t.onRemove(n) }, e.addToStorage = function(t) { t.onAdd && t.onAdd(n), a.call(e, t) }, this._firstPaint = !0 }
  3550. function a_(t) { return function() { Bw('In IE8.0 VML mode painter not support method "' + t + '"') } }
  3551. function r_(t) { return document.createElementNS(HE, t) }
  3552. function s_(t) { return jE(1e4 * t) / 1e4 }
  3553. function l_(t) { return t < QE && t > -QE }
  3554. function u_(t, e) { var i = e ? t.textFill : t.fill; return null != i && i !== XE }
  3555. function h_(t, e) { var i = e ? t.textStroke : t.stroke; return null != i && i !== XE }
  3556. function c_(t, e) { e && d_(t, "transform", "matrix(" + UE.call(e, ",") + ")") }
  3557. function d_(t, e, i) {
  3558. (!i || "linear" !== i.type && "radial" !== i.type) && ("string" == typeof i && i.indexOf("NaN") > -1 && console.log(i), t.setAttribute(e, i)) }
  3559. function f_(t, e, i) { t.setAttributeNS("http://www.w3.org/1999/xlink", e, i) }
  3560. function p_(t, e, i, n) { if (u_(e, i)) { var o = i ? e.textFill : e.fill;
  3561. o = "transparent" === o ? XE : o, "none" !== t.getAttribute("clip-path") && o === XE && (o = "rgba(0, 0, 0, 0.002)"), d_(t, "fill", o), d_(t, "fill-opacity", null != e.fillOpacity ? e.fillOpacity * e.opacity : e.opacity) } else d_(t, "fill", XE); if (h_(e, i)) { var a = i ? e.textStroke : e.stroke;
  3562. d_(t, "stroke", a = "transparent" === a ? XE : a), d_(t, "stroke-width", (i ? e.textStrokeWidth : e.lineWidth) / (!i && e.strokeNoScale ? n.getLineScale() : 1)), d_(t, "paint-order", i ? "stroke" : "fill"), d_(t, "stroke-opacity", null != e.strokeOpacity ? e.strokeOpacity : e.opacity), e.lineDash ? (d_(t, "stroke-dasharray", e.lineDash.join(",")), d_(t, "stroke-dashoffset", jE(e.lineDashOffset || 0))) : d_(t, "stroke-dasharray", ""), e.lineCap && d_(t, "stroke-linecap", e.lineCap), e.lineJoin && d_(t, "stroke-linejoin", e.lineJoin), e.miterLimit && d_(t, "stroke-miterlimit", e.miterLimit) } else d_(t, "stroke", XE) }
  3563. function g_(t) { for (var e = [], i = t.data, n = t.len(), o = 0; o < n;) { var a = "",
  3564. r = 0; switch (i[o++]) {
  3565. case ZE.M:
  3566. a = "M", r = 2; break;
  3567. case ZE.L:
  3568. a = "L", r = 2; break;
  3569. case ZE.Q:
  3570. a = "Q", r = 4; break;
  3571. case ZE.C:
  3572. a = "C", r = 6; break;
  3573. case ZE.A:
  3574. var s = i[o++],
  3575. l = i[o++],
  3576. u = i[o++],
  3577. h = i[o++],
  3578. c = i[o++],
  3579. d = i[o++],
  3580. f = i[o++],
  3581. p = i[o++],
  3582. g = Math.abs(d),
  3583. m = l_(g - $E) && !l_(g),
  3584. v = !1;
  3585. v = g >= $E || !l_(g) && (d > -KE && d < 0 || d > KE) == !!p; var y = s_(s + u * qE(c)),
  3586. x = s_(l + h * YE(c));
  3587. m && (d = p ? $E - 1e-4 : 1e-4 - $E, v = !0, 9 === o && e.push("M", y, x)); var _ = s_(s + u * qE(c + d)),
  3588. w = s_(l + h * YE(c + d));
  3589. e.push("A", s_(u), s_(h), jE(f * JE), +v, +p, _, w); break;
  3590. case ZE.Z:
  3591. a = "Z"; break;
  3592. case ZE.R:
  3593. var _ = s_(i[o++]),
  3594. w = s_(i[o++]),
  3595. b = s_(i[o++]),
  3596. S = s_(i[o++]);
  3597. e.push("M", _, w, "L", _ + b, w, "L", _ + b, w + S, "L", _, w + S, "L", _, w) }
  3598. a && e.push(a); for (var M = 0; M < r; M++) e.push(s_(i[o++])) } return e.join(" ") }
  3599. function m_(t) { return "middle" === t ? "middle" : "bottom" === t ? "after-edge" : "hanging" }
  3600. function v_() {}
  3601. function y_(t, e, i, n) { for (var o = 0, a = e.length, r = 0, s = 0; o < a; o++) { var l = e[o]; if (l.removed) { for (var u = [], h = s; h < s + l.count; h++) u.push(h);
  3602. l.indices = u, s += l.count } else { for (var u = [], h = r; h < r + l.count; h++) u.push(h);
  3603. l.indices = u, r += l.count, l.added || (s += l.count) } } return e }
  3604. function x_(t) { return { newPos: t.newPos, components: t.components.slice(0) } }
  3605. function __(t, e, i, n, o) { this._zrId = t, this._svgRoot = e, this._tagNames = "string" == typeof i ? [i] : i, this._markLabel = n, this._domName = o || "_dom", this.nextId = 0 }
  3606. function w_(t, e) { __.call(this, t, e, ["linearGradient", "radialGradient"], "__gradient_in_use__") }
  3607. function b_(t, e) { __.call(this, t, e, "clipPath", "__clippath_in_use__") }
  3608. function S_(t, e) { __.call(this, t, e, ["filter"], "__filter_in_use__", "_shadowDom") }
  3609. function M_(t) { return t && (t.shadowBlur || t.shadowOffsetX || t.shadowOffsetY || t.textShadowBlur || t.textShadowOffsetX || t.textShadowOffsetY) }
  3610. function I_(t) { return parseInt(t, 10) }
  3611. function T_(t) { return t instanceof kn ? tR : t instanceof hi ? eR : t instanceof qS ? iR : tR }
  3612. function A_(t, e) { return e && t && e.parentNode !== t }
  3613. function D_(t, e, i) { if (A_(t, e) && i) { var n = i.nextSibling;
  3614. n ? t.insertBefore(e, n) : t.appendChild(e) } }
  3615. function C_(t, e) { if (A_(t, e)) { var i = t.firstChild;
  3616. i ? t.insertBefore(e, i) : t.appendChild(e) } }
  3617. function L_(t, e) { e && t && e.parentNode === t && t.removeChild(e) }
  3618. function k_(t) { return t.__textSvgEl }
  3619. function P_(t) { return t.__svgEl }
  3620. function N_(t) { return function() { Bw('In SVG mode painter not support method "' + t + '"') } } var O_ = 2311,
  3621. E_ = function() { return O_++ },
  3622. R_ = {},
  3623. z_ = R_ = "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 } : function(t) { var e = {},
  3624. i = {},
  3625. n = t.match(/Firefox\/([\d.]+)/),
  3626. o = t.match(/MSIE\s([\d.]+)/) || t.match(/Trident\/.+?rv:(([\d.]+))/),
  3627. a = t.match(/Edge\/([\d.]+)/),
  3628. 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 } }(navigator.userAgent),
  3629. B_ = { "[object Function]": 1, "[object RegExp]": 1, "[object Date]": 1, "[object Error]": 1, "[object CanvasGradient]": 1, "[object CanvasPattern]": 1, "[object Image]": 1, "[object Canvas]": 1 },
  3630. V_ = { "[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 },
  3631. G_ = Object.prototype.toString,
  3632. F_ = Array.prototype,
  3633. W_ = F_.forEach,
  3634. H_ = F_.filter,
  3635. Z_ = F_.slice,
  3636. U_ = F_.map,
  3637. X_ = F_.reduce,
  3638. j_ = {},
  3639. Y_ = function() { return j_.createCanvas() };
  3640. j_.createCanvas = function() { return document.createElement("canvas") }; var q_, K_ = "__ec_primitive__";
  3641. E.prototype = { constructor: E, get: function(t) { return this.data.hasOwnProperty(t) ? this.data[t] : null }, set: function(t, e) { return this.data[t] = e }, each: function(t, e) { void 0 !== e && (t = m(t, e)); for (var i in this.data) this.data.hasOwnProperty(i) && t(this.data[i], i) }, removeKey: function(t) { delete this.data[t] } }; var $_ = (Object.freeze || Object)({ $override: e, clone: i, merge: n, mergeAll: o, extend: a, defaults: r, createCanvas: Y_, getContext: s, indexOf: l, inherits: u, mixin: h, isArrayLike: c, each: d, map: f, reduce: p, filter: g, find: function(t, e, i) { if (t && e)
  3642. for (var n = 0, o = t.length; n < o; n++)
  3643. if (e.call(i, t[n], n, t)) return t[n] }, bind: m, curry: v, isArray: y, isFunction: x, isString: _, isObject: w, isBuiltInObject: b, isTypedArray: S, isDom: M, eqNaN: I, retrieve: T, retrieve2: A, retrieve3: D, slice: C, normalizeCssArray: L, assert: k, trim: P, setAsPrimitive: N, isPrimitive: O, createHashMap: R, concatArray: z, noop: B }),
  3644. J_ = "undefined" == typeof Float32Array ? Array : Float32Array,
  3645. Q_ = X,
  3646. tw = j,
  3647. ew = K,
  3648. iw = $,
  3649. nw = (Object.freeze || Object)({ create: V, copy: G, clone: F, set: W, add: H, scaleAndAdd: Z, sub: U, len: X, length: Q_, lenSquare: j, lengthSquare: tw, mul: function(t, e, i) { return t[0] = e[0] * i[0], t[1] = e[1] * i[1], t }, div: function(t, e, i) { return t[0] = e[0] / i[0], t[1] = e[1] / i[1], t }, dot: function(t, e) { return t[0] * e[0] + t[1] * e[1] }, scale: Y, normalize: q, distance: K, dist: ew, distanceSquare: $, distSquare: iw, negate: function(t, e) { return t[0] = -e[0], t[1] = -e[1], t }, lerp: J, applyTransform: Q, min: tt, max: et });
  3650. it.prototype = { constructor: it, _dragStart: function(t) { var e = t.target;
  3651. e && e.draggable && (this._draggingTarget = e, e.dragging = !0, this._x = t.offsetX, this._y = t.offsetY, this.dispatchToElement(nt(e, t), "dragstart", t.event)) }, _drag: function(t) { var e = this._draggingTarget; if (e) { var i = t.offsetX,
  3652. n = t.offsetY,
  3653. o = i - this._x,
  3654. a = n - this._y;
  3655. this._x = i, this._y = n, e.drift(o, a, t), this.dispatchToElement(nt(e, t), "drag", t.event); var r = this.findHover(i, n, e).target,
  3656. s = this._dropTarget;
  3657. this._dropTarget = r, e !== r && (s && r !== s && this.dispatchToElement(nt(s, t), "dragleave", t.event), r && r !== s && this.dispatchToElement(nt(r, t), "dragenter", t.event)) } }, _dragEnd: function(t) { var e = this._draggingTarget;
  3658. e && (e.dragging = !1), this.dispatchToElement(nt(e, t), "dragend", t.event), this._dropTarget && this.dispatchToElement(nt(this._dropTarget, t), "drop", t.event), this._draggingTarget = null, this._dropTarget = null } }; var ow = Array.prototype.slice,
  3659. aw = function(t) { this._$handlers = {}, this._$eventProcessor = t };
  3660. aw.prototype = { constructor: aw, one: function(t, e, i, n) { var o = this._$handlers; if ("function" == typeof e && (n = i, i = e, e = null), !i || !t) return this;
  3661. e = ot(this, e), o[t] || (o[t] = []); for (var a = 0; a < o[t].length; a++)
  3662. if (o[t][a].h === i) return this;
  3663. return o[t].push({ h: i, one: !0, query: e, ctx: n || this }), this }, on: function(t, e, i, n) { var o = this._$handlers; if ("function" == typeof e && (n = i, i = e, e = null), !i || !t) return this;
  3664. e = ot(this, e), o[t] || (o[t] = []); for (var a = 0; a < o[t].length; a++)
  3665. if (o[t][a].h === i) return this;
  3666. return o[t].push({ h: i, one: !1, query: e, ctx: n || this }), this }, 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; o < a; o++) i[t][o].h !== e && n.push(i[t][o]);
  3667. i[t] = n }
  3668. i[t] && 0 === i[t].length && delete i[t] } else delete i[t]; return this }, trigger: function(t) { var e = this._$handlers[t],
  3669. i = this._$eventProcessor; if (e) { var n = arguments,
  3670. o = n.length;
  3671. o > 3 && (n = ow.call(n, 1)); for (var a = e.length, r = 0; r < a;) { var s = e[r]; if (i && i.filter && null != s.query && !i.filter(t, s.query)) r++;
  3672. else { switch (o) {
  3673. case 1:
  3674. s.h.call(s.ctx); break;
  3675. case 2:
  3676. s.h.call(s.ctx, n[1]); break;
  3677. case 3:
  3678. s.h.call(s.ctx, n[1], n[2]); break;
  3679. default:
  3680. s.h.apply(s.ctx, n) }
  3681. s.one ? (e.splice(r, 1), a--) : r++ } } } return i && i.afterTrigger && i.afterTrigger(t), this }, triggerWithContext: function(t) { var e = this._$handlers[t],
  3682. i = this._$eventProcessor; if (e) { var n = arguments,
  3683. o = n.length;
  3684. o > 4 && (n = ow.call(n, 1, n.length - 1)); for (var a = n[n.length - 1], r = e.length, s = 0; s < r;) { var l = e[s]; if (i && i.filter && null != l.query && !i.filter(t, l.query)) s++;
  3685. else { switch (o) {
  3686. case 1:
  3687. l.h.call(a); break;
  3688. case 2:
  3689. l.h.call(a, n[1]); break;
  3690. case 3:
  3691. l.h.call(a, n[1], n[2]); break;
  3692. default:
  3693. l.h.apply(a, n) }
  3694. l.one ? (e.splice(s, 1), r--) : s++ } } } return i && i.afterTrigger && i.afterTrigger(t), this } }; var rw = "undefined" != typeof window && !!window.addEventListener,
  3695. sw = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
  3696. lw = rw ? function(t) { t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0 } : function(t) { t.returnValue = !1, t.cancelBubble = !0 },
  3697. uw = "silent";
  3698. pt.prototype.dispose = function() {}; var hw = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"],
  3699. cw = function(t, e, i, n) { aw.call(this), this.storage = t, this.painter = e, this.painterRoot = n, i = i || new pt, this.proxy = null, this._hovered = {}, this._lastTouchMoment, this._lastX, this._lastY, it.call(this), this.setHandlerProxy(i) };
  3700. cw.prototype = { constructor: cw, setHandlerProxy: function(t) { this.proxy && this.proxy.dispose(), t && (d(hw, function(e) { t.on && t.on(e, this[e], this) }, this), t.handler = this), this.proxy = t }, mousemove: function(t) { var e = t.zrX,
  3701. i = t.zrY,
  3702. n = this._hovered,
  3703. o = n.target;
  3704. o && !o.__zr && (o = (n = this.findHover(n.x, n.y)).target); var a = this._hovered = this.findHover(e, i),
  3705. r = a.target,
  3706. s = this.proxy;
  3707. s.setCursor && s.setCursor(r ? r.cursor : "default"), o && r !== o && this.dispatchToElement(n, "mouseout", t), this.dispatchToElement(a, "mousemove", t), r && r !== o && this.dispatchToElement(a, "mouseover", t) }, mouseout: function(t) { this.dispatchToElement(this._hovered, "mouseout", t); var e, i = t.toElement || t.relatedTarget;
  3708. do { i = i && i.parentNode } while (i && 9 != i.nodeType && !(e = i === this.painterRoot));!e && this.trigger("globalout", { event: t }) }, resize: function(t) { this._hovered = {} }, dispatch: function(t, e) { var i = this[t];
  3709. i && i.call(this, e) }, dispose: function() { this.proxy.dispose(), this.storage = this.proxy = this.painter = null }, setCursorStyle: function(t) { var e = this.proxy;
  3710. e.setCursor && e.setCursor(t) }, dispatchToElement: function(t, e, i) { var n = (t = t || {}).target; if (!n || !n.silent) { for (var o = "on" + e, a = dt(e, t, i); n && (n[o] && (a.cancelBubble = n[o].call(n, a)), n.trigger(e, a), n = n.parent, !a.cancelBubble););
  3711. 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 = gt(n[a], t, e)) && (!o.topTarget && (o.topTarget = n[a]), r !== uw)) { o.target = n[a]; break } } return o } }, d(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(t) { cw.prototype[t] = function(e) { var i = this.findHover(e.zrX, e.zrY),
  3712. n = i.target; if ("mousedown" === t) this._downEl = n, this._downPoint = [e.zrX, e.zrY], this._upEl = n;
  3713. else if ("mouseup" === t) this._upEl = n;
  3714. else if ("click" === t) { if (this._downEl !== this._upEl || !this._downPoint || ew(this._downPoint, [e.zrX, e.zrY]) > 4) return;
  3715. this._downPoint = null }
  3716. this.dispatchToElement(i, t, e) } }), h(cw, aw), h(cw, it); var dw = "undefined" == typeof Float32Array ? Array : Float32Array,
  3717. fw = (Object.freeze || Object)({ create: mt, identity: vt, copy: yt, mul: xt, translate: _t, rotate: wt, scale: bt, invert: St, clone: Mt }),
  3718. pw = vt,
  3719. gw = 5e-5,
  3720. mw = function(t) {
  3721. (t = t || {}).position || (this.position = [0, 0]), null == t.rotation && (this.rotation = 0), t.scale || (this.scale = [1, 1]), this.origin = this.origin || null },
  3722. vw = mw.prototype;
  3723. vw.transform = null, vw.needLocalTransform = function() { return It(this.rotation) || It(this.position[0]) || It(this.position[1]) || It(this.scale[0] - 1) || It(this.scale[1] - 1) }; var yw = [];
  3724. vw.updateTransform = function() { var t = this.parent,
  3725. e = t && t.transform,
  3726. i = this.needLocalTransform(),
  3727. n = this.transform; if (i || e) { n = n || mt(), i ? this.getLocalTransform(n) : pw(n), e && (i ? xt(n, t.transform, n) : yt(n, t.transform)), this.transform = n; var o = this.globalScaleRatio; if (null != o && 1 !== o) { this.getGlobalScale(yw); var a = yw[0] < 0 ? -1 : 1,
  3728. r = yw[1] < 0 ? -1 : 1,
  3729. s = ((yw[0] - a) * o + a) / yw[0] || 0,
  3730. l = ((yw[1] - r) * o + r) / yw[1] || 0;
  3731. n[0] *= s, n[1] *= s, n[2] *= l, n[3] *= l }
  3732. this.invTransform = this.invTransform || mt(), St(this.invTransform, n) } else n && pw(n) }, vw.getLocalTransform = function(t) { return mw.getLocalTransform(this, t) }, vw.setTransform = function(t) { var e = this.transform,
  3733. i = t.dpr || 1;
  3734. 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) }, vw.restoreTransform = function(t) { var e = t.dpr || 1;
  3735. t.setTransform(e, 0, 0, e, 0, 0) }; var xw = [],
  3736. _w = mt();
  3737. vw.setLocalTransform = function(t) { if (t) { var e = t[0] * t[0] + t[1] * t[1],
  3738. i = t[2] * t[2] + t[3] * t[3],
  3739. n = this.position,
  3740. o = this.scale;
  3741. It(e - 1) && (e = Math.sqrt(e)), It(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) } }, vw.decomposeTransform = function() { if (this.transform) { var t = this.parent,
  3742. e = this.transform;
  3743. t && t.transform && (xt(xw, t.invTransform, e), e = xw); var i = this.origin;
  3744. i && (i[0] || i[1]) && (_w[4] = i[0], _w[5] = i[1], xt(xw, e, _w), xw[4] -= i[0], xw[5] -= i[1], e = xw), this.setLocalTransform(e) } }, vw.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) }, vw.transformCoordToLocal = function(t, e) { var i = [t, e],
  3745. n = this.invTransform; return n && Q(i, i, n), i }, vw.transformCoordToGlobal = function(t, e) { var i = [t, e],
  3746. n = this.transform; return n && Q(i, i, n), i }, mw.getLocalTransform = function(t, e) { pw(e = e || []); var i = t.origin,
  3747. n = t.scale || [1, 1],
  3748. o = t.rotation || 0,
  3749. a = t.position || [0, 0]; return i && (e[4] -= i[0], e[5] -= i[1]), bt(e, e, n), o && wt(e, e, o), i && (e[4] += i[0], e[5] += i[1]), e[4] += a[0], e[5] += a[1], e }; var ww = { linear: function(t) { return t }, quadraticIn: function(t) { return t * t }, quadraticOut: function(t) { return t * (2 - t) }, quadraticInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1) }, cubicIn: function(t) { return t * t * t }, cubicOut: function(t) { return --t * t * t + 1 }, cubicInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2) }, quarticIn: function(t) { return t * t * t * t }, quarticOut: function(t) { return 1 - --t * t * t * t }, quarticInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2) }, quinticIn: function(t) { return t * t * t * t * t }, quinticOut: function(t) { return --t * t * t * t * t + 1 }, quinticInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2) }, sinusoidalIn: function(t) { return 1 - Math.cos(t * Math.PI / 2) }, sinusoidalOut: function(t) { return Math.sin(t * Math.PI / 2) }, sinusoidalInOut: function(t) { return .5 * (1 - Math.cos(Math.PI * t)) }, exponentialIn: function(t) { return 0 === t ? 0 : Math.pow(1024, t - 1) }, exponentialOut: function(t) { return 1 === t ? 1 : 1 - Math.pow(2, -10 * t) }, exponentialInOut: function(t) { return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? .5 * Math.pow(1024, t - 1) : .5 * (2 - Math.pow(2, -10 * (t - 1))) }, circularIn: function(t) { return 1 - Math.sqrt(1 - t * t) }, circularOut: function(t) { return Math.sqrt(1 - --t * t) }, circularInOut: function(t) { return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1) }, elasticIn: function(t) { var e, i = .1; return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), -i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4)) }, elasticOut: function(t) { var e, i = .1; return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), i * Math.pow(2, -10 * t) * Math.sin((t - e) * (2 * Math.PI) / .4) + 1) }, elasticInOut: function(t) { var e, i = .1; return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), (t *= 2) < 1 ? i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4) * -.5 : i * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4) * .5 + 1) }, backIn: function(t) { var e = 1.70158; return t * t * ((e + 1) * t - e) }, backOut: function(t) { var e = 1.70158; return --t * t * ((e + 1) * t + e) + 1 }, backInOut: function(t) { var e = 2.5949095; return (t *= 2) < 1 ? t * t * ((e + 1) * t - e) * .5 : .5 * ((t -= 2) * t * ((e + 1) * t + e) + 2) }, bounceIn: function(t) { return 1 - ww.bounceOut(1 - t) }, bounceOut: function(t) { return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 }, bounceInOut: function(t) { return t < .5 ? .5 * ww.bounceIn(2 * t) : .5 * ww.bounceOut(2 * t - 1) + .5 } };
  3750. Tt.prototype = { constructor: Tt, step: function(t, e) { if (this._initialized || (this._startTime = t + this._delay, this._initialized = !0), this._paused) this._pausedTime += e;
  3751. else { var i = (t - this._startTime - this._pausedTime) / this._life; if (!(i < 0)) { i = Math.min(i, 1); var n = this.easing,
  3752. o = "string" == typeof n ? ww[n] : n,
  3753. 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;
  3754. this._startTime = t - e + this.gap, this._pausedTime = 0, this._needsRemove = !1 }, fire: function(t, e) { this[t = "on" + t] && this[t](this._target, e) }, pause: function() { this._paused = !0 }, resume: function() { this._paused = !1 } }; var bw = function() { this.head = null, this.tail = null, this._len = 0 },
  3755. Sw = bw.prototype;
  3756. Sw.insert = function(t) { var e = new Mw(t); return this.insertEntry(e), e }, Sw.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++ }, Sw.remove = function(t) { var e = t.prev,
  3757. i = t.next;
  3758. e ? e.next = i : this.head = i, i ? i.prev = e : this.tail = e, t.next = t.prev = null, this._len-- }, Sw.len = function() { return this._len }, Sw.clear = function() { this.head = this.tail = null, this._len = 0 }; var Mw = function(t) { this.value = t, this.next, this.prev },
  3759. Iw = function(t) { this._list = new bw, this._map = {}, this._maxSize = t || 10, this._lastRemovedEntry = null },
  3760. Tw = Iw.prototype;
  3761. Tw.put = function(t, e) { var i = this._list,
  3762. n = this._map,
  3763. o = null; if (null == n[t]) { var a = i.len(),
  3764. r = this._lastRemovedEntry; if (a >= this._maxSize && a > 0) { var s = i.head;
  3765. i.remove(s), delete n[s.key], o = s.value, this._lastRemovedEntry = s }
  3766. r ? r.value = e : r = new Mw(e), r.key = t, i.insertEntry(r), n[t] = r } return o }, Tw.get = function(t) { var e = this._map[t],
  3767. i = this._list; if (null != e) return e !== i.tail && (i.remove(e), i.insertEntry(e)), e.value }, Tw.clear = function() { this._list.clear(), this._map = {} }; var Aw = { 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] },
  3768. Dw = new Iw(20),
  3769. Cw = null,
  3770. Lw = Wt,
  3771. kw = Ht,
  3772. Pw = (Object.freeze || Object)({ parse: zt, lift: Gt, toHex: Ft, fastLerp: Wt, fastMapToColor: Lw, lerp: Ht, mapToColor: kw, modifyHSL: Zt, modifyAlpha: Ut, stringify: Xt }),
  3773. Nw = Array.prototype.slice,
  3774. Ow = function(t, e, i, n) { this._tracks = {}, this._target = t, this._loop = e || !1, this._getter = i || jt, this._setter = n || Yt, this._clipCount = 0, this._delay = 0, this._doneList = [], this._onframeList = [], this._clipList = [] };
  3775. Ow.prototype = { when: function(t, e) { var i = this._tracks; for (var n in e)
  3776. if (e.hasOwnProperty(n)) { if (!i[n]) { i[n] = []; var o = this._getter(this._target, n); if (null == o) continue;
  3777. 0 !== t && i[n].push({ time: 0, value: ie(o) }) }
  3778. i[n].push({ time: t, value: e[n] }) }
  3779. return this }, during: function(t) { return this._onframeList.push(t), this }, pause: function() { for (var t = 0; t < this._clipList.length; t++) this._clipList[t].pause();
  3780. this._paused = !0 }, resume: function() { for (var t = 0; t < this._clipList.length; t++) this._clipList[t].resume();
  3781. this._paused = !1 }, isPaused: function() { return !!this._paused }, _doneCallback: function() { this._tracks = {}, this._clipList.length = 0; for (var t = this._doneList, e = t.length, i = 0; i < e; i++) t[i].call(this) }, start: function(t, e) { var i, n = this,
  3782. o = 0; for (var a in this._tracks)
  3783. if (this._tracks.hasOwnProperty(a)) { var r = ae(this, t, function() {--o || n._doneCallback() }, this._tracks[a], a, e);
  3784. r && (this._clipList.push(r), o++, this.animation && this.animation.addClip(r), i = r) }
  3785. if (i) { var s = i.onframe;
  3786. i.onframe = function(t, e) { s(t, e); for (var i = 0; i < n._onframeList.length; i++) n._onframeList[i](t, e) } } return o || this._doneCallback(), this }, stop: function(t) { for (var e = this._clipList, i = this.animation, n = 0; n < e.length; n++) { var o = e[n];
  3787. t && o.onframe(this._target, 1), i && i.removeClip(o) }
  3788. e.length = 0 }, delay: function(t) { return this._delay = t, this }, done: function(t) { return t && this._doneList.push(t), this }, getClips: function() { return this._clipList } }; var Ew = 1; "undefined" != typeof window && (Ew = Math.max(window.devicePixelRatio || 1, 1)); var Rw = Ew,
  3789. zw = function() {},
  3790. Bw = zw,
  3791. Vw = function() { this.animators = [] };
  3792. Vw.prototype = { constructor: Vw, animate: function(t, e) { var i, n = !1,
  3793. o = this,
  3794. a = this.__zr; if (t) { var r = t.split("."),
  3795. s = o;
  3796. n = "shape" === r[0]; for (var u = 0, h = r.length; u < h; u++) s && (s = s[r[u]]);
  3797. s && (i = s) } else i = o; if (i) { var c = o.animators,
  3798. d = new Ow(i, e); return d.during(function(t) { o.dirty(n) }).done(function() { c.splice(l(c, d), 1) }), c.push(d), a && a.animation.addAnimator(d), d }
  3799. Bw('Property "' + t + '" is not existed in element ' + o.id) }, stopAnimation: function(t) { for (var e = this.animators, i = e.length, n = 0; n < i; n++) e[n].stop(t); return e.length = 0, this }, animateTo: function(t, e, i, n, o, a) { re(this, t, e, i, n, o, a) }, animateFrom: function(t, e, i, n, o, a) { re(this, t, e, i, n, o, a, !0) } }; var Gw = function(t) { mw.call(this, t), aw.call(this, t), Vw.call(this, t), this.id = t.id || E_() };
  3800. Gw.prototype = { type: "element", name: "", __zr: null, ignore: !1, clipPath: null, isGroup: !1, drift: function(t, e) { switch (this.draggable) {
  3801. case "horizontal":
  3802. e = 0; break;
  3803. case "vertical":
  3804. t = 0 } var i = this.transform;
  3805. 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(t, e) {}, attrKV: function(t, e) { if ("position" === t || "scale" === t || "origin" === t) { if (e) { var i = this[t];
  3806. 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);
  3807. else if (w(t))
  3808. 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;
  3809. 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;
  3810. 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)
  3811. for (var i = 0; i < e.length; i++) t.animation.addAnimator(e[i]);
  3812. this.clipPath && this.clipPath.addSelfToZr(t) }, removeSelfFromZr: function(t) { this.__zr = null; var e = this.animators; if (e)
  3813. for (var i = 0; i < e.length; i++) t.animation.removeAnimator(e[i]);
  3814. this.clipPath && this.clipPath.removeSelfFromZr(t) } }, h(Gw, Vw), h(Gw, mw), h(Gw, aw); var Fw = Q,
  3815. Ww = Math.min,
  3816. Hw = Math.max;
  3817. ue.prototype = { constructor: ue, union: function(t) { var e = Ww(t.x, this.x),
  3818. i = Ww(t.y, this.y);
  3819. this.width = Hw(t.x + t.width, this.x + this.width) - e, this.height = Hw(t.y + t.height, this.y + this.height) - i, this.x = e, this.y = i }, applyTransform: function() { var t = [],
  3820. e = [],
  3821. i = [],
  3822. n = []; return function(o) { if (o) { t[0] = i[0] = this.x, t[1] = n[1] = this.y, e[0] = n[0] = this.x + this.width, e[1] = i[1] = this.y + this.height, Fw(t, t, o), Fw(e, e, o), Fw(i, i, o), Fw(n, n, o), this.x = Ww(t[0], e[0], i[0], n[0]), this.y = Ww(t[1], e[1], i[1], n[1]); var a = Hw(t[0], e[0], i[0], n[0]),
  3823. r = Hw(t[1], e[1], i[1], n[1]);
  3824. this.width = a - this.x, this.height = r - this.y } } }(), calculateTransform: function(t) { var e = this,
  3825. i = t.width / e.width,
  3826. n = t.height / e.height,
  3827. o = mt(); return _t(o, o, [-e.x, -e.y]), bt(o, o, [i, n]), _t(o, o, [t.x, t.y]), o }, intersect: function(t) { if (!t) return !1;
  3828. t instanceof ue || (t = ue.create(t)); var e = this,
  3829. i = e.x,
  3830. n = e.x + e.width,
  3831. o = e.y,
  3832. a = e.y + e.height,
  3833. r = t.x,
  3834. s = t.x + t.width,
  3835. l = t.y,
  3836. u = t.y + t.height; return !(n < r || s < i || a < l || u < o) }, 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 ue(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 } } }, ue.create = function(t) { return new ue(t.x, t.y, t.width, t.height) }; var Zw = function(t) { t = t || {}, Gw.call(this, t); for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]);
  3837. this._children = [], this.__storage = null, this.__dirty = !0 };
  3838. Zw.prototype = { constructor: Zw, 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 < e.length; i++)
  3839. if (e[i].name === t) return e[i] }, childCount: function() { return this._children.length }, add: function(t) { return t && t !== this && t.parent !== this && (this._children.push(t), this._doAdd(t)), this }, addBefore: function(t, e) { if (t && t !== this && t.parent !== this && e && e.parent === this) { var i = this._children,
  3840. n = i.indexOf(e);
  3841. n >= 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,
  3842. i = this.__zr;
  3843. e && e !== t.__storage && (e.addToStorage(t), t instanceof Zw && t.addChildrenToStorage(e)), i && i.refresh() }, remove: function(t) { var e = this.__zr,
  3844. i = this.__storage,
  3845. n = this._children,
  3846. o = l(n, t); return o < 0 ? this : (n.splice(o, 1), t.parent = null, i && (i.delFromStorage(t), t instanceof Zw && t.delChildrenFromStorage(i)), e && e.refresh(), this) }, removeAll: function() { var t, e, i = this._children,
  3847. n = this.__storage; for (e = 0; e < i.length; e++) t = i[e], n && (n.delFromStorage(t), t instanceof Zw && t.delChildrenFromStorage(n)), t.parent = null; return i.length = 0, this }, eachChild: function(t, e) { for (var i = this._children, n = 0; n < i.length; n++) { var o = i[n];
  3848. t.call(e, o, n) } return this }, traverse: function(t, e) { for (var i = 0; i < this._children.length; i++) { var n = this._children[i];
  3849. t.call(e, n), "group" === n.type && n.traverse(t, e) } return this }, addChildrenToStorage: function(t) { for (var e = 0; e < this._children.length; e++) { var i = this._children[e];
  3850. t.addToStorage(i), i instanceof Zw && i.addChildrenToStorage(t) } }, delChildrenFromStorage: function(t) { for (var e = 0; e < this._children.length; e++) { var i = this._children[e];
  3851. t.delFromStorage(i), i instanceof Zw && i.delChildrenFromStorage(t) } }, dirty: function() { return this.__dirty = !0, this.__zr && this.__zr.refresh(), this }, getBoundingRect: function(t) { for (var e = null, i = new ue(0, 0, 0, 0), n = t || this._children, o = [], a = 0; a < n.length; a++) { var r = n[a]; if (!r.ignore && !r.invisible) { var s = r.getBoundingRect(),
  3852. l = r.getLocalTransform(o);
  3853. l ? (i.copy(s), i.applyTransform(l), (e = e || i.clone()).union(i)) : (e = e || s.clone()).union(s) } } return e || i } }, u(Zw, Gw); var Uw = 32,
  3854. Xw = 7,
  3855. jw = function() { this._roots = [], this._displayList = [], this._displayListLen = 0 };
  3856. jw.prototype = { constructor: jw, traverse: function(t, e) { for (var i = 0; i < this._roots.length; i++) this._roots[i].traverse(t, e) }, getDisplayList: function(t, e) { return e = e || !1, t && this.updateDisplayList(e), this._displayList }, updateDisplayList: function(t) { this._displayListLen = 0; for (var e = this._roots, i = this._displayList, n = 0, o = e.length; n < o; n++) this._updateAndAddDisplayable(e[n], null, t);
  3857. i.length = this._displayListLen, z_.canvasSupported && ve(i, ye) }, _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; s < r.length; s++) { var l = r[s];
  3858. t.__dirty && (l.__dirty = !0), this._updateAndAddDisplayable(l, e, i) }
  3859. t.__dirty = !1 } else t.__clipPaths = e, this._displayList[this._displayListLen++] = t } }, addRoot: function(t) { t.__storage !== this && (t instanceof Zw && t.addChildrenToStorage(this), this.addToStorage(t), this._roots.push(t)) }, delRoot: function(t) { if (null == t) { for (i = 0; i < this._roots.length; i++) { var e = this._roots[i];
  3860. e instanceof Zw && e.delChildrenFromStorage(this) } return this._roots = [], this._displayList = [], void(this._displayListLen = 0) } if (t instanceof Array)
  3861. for (var i = 0, n = t.length; i < n; i++) this.delRoot(t[i]);
  3862. else { var o = l(this._roots, t);
  3863. o >= 0 && (this.delFromStorage(t), this._roots.splice(o, 1), t instanceof Zw && 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: ye }; var Yw = { shadowBlur: 1, shadowOffsetX: 1, shadowOffsetY: 1, textShadowBlur: 1, textShadowOffsetX: 1, textShadowOffsetY: 1, textBoxShadowBlur: 1, textBoxShadowOffsetX: 1, textBoxShadowOffsetY: 1 },
  3864. qw = function(t, e, i) { return Yw.hasOwnProperty(e) ? i *= t.dpr : i },
  3865. Kw = [
  3866. ["shadowBlur", 0],
  3867. ["shadowOffsetX", 0],
  3868. ["shadowOffsetY", 0],
  3869. ["shadowColor", "#000"],
  3870. ["lineCap", "butt"],
  3871. ["lineJoin", "miter"],
  3872. ["miterLimit", 10]
  3873. ],
  3874. $w = function(t) { this.extendFrom(t, !1) };
  3875. $w.prototype = { constructor: $w, 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) { for (var n = this, o = i && i.style, a = !o, r = 0; r < Kw.length; r++) { var s = Kw[r],
  3876. l = s[0];
  3877. (a || n[l] !== o[l]) && (t[l] = qw(t, l, n[l] || s[1])) } if ((a || n.fill !== o.fill) && (t.fillStyle = n.fill), (a || n.stroke !== o.stroke) && (t.strokeStyle = n.stroke), (a || n.opacity !== o.opacity) && (t.globalAlpha = null == n.opacity ? 1 : n.opacity), (a || n.blend !== o.blend) && (t.globalCompositeOperation = n.blend || "source-over"), this.hasStroke()) { var u = n.lineWidth;
  3878. t.lineWidth = u / (this.strokeNoScale && e && e.getLineScale ? e.getLineScale() : 1) } }, hasFill: function() { var t = this.fill; return null != t && "none" !== t }, hasStroke: function() { var t = this.stroke; return null != t && "none" !== t && this.lineWidth > 0 }, extendFrom: function(t, e) { if (t)
  3879. for (var i in t) !t.hasOwnProperty(i) || !0 !== e && (!1 === e ? this.hasOwnProperty(i) : null == t[i]) || (this[i] = t[i]) }, set: function(t, e) { "string" == typeof t ? this[t] = e : this.extendFrom(t, !0) }, clone: function() { var t = new this.constructor; return t.extendFrom(this, !0), t }, getGradient: function(t, e, i) { for (var n = ("radial" === e.type ? _e : xe)(t, e, i), o = e.colorStops, a = 0; a < o.length; a++) n.addColorStop(o[a].offset, o[a].color); return n } }; for (var Jw = $w.prototype, Qw = 0; Qw < Kw.length; Qw++) { var tb = Kw[Qw];
  3880. tb[0] in Jw || (Jw[tb[0]] = tb[1]) }
  3881. $w.getGradient = Jw.getGradient; var eb = function(t, e) { this.image = t, this.repeat = e, this.type = "pattern" };
  3882. eb.prototype.getCanvasPattern = function(t) { return t.createPattern(this.image, this.repeat || "repeat") }; var ib = function(t, e, i) { var n;
  3883. i = i || Rw, "string" == typeof t ? n = be(t, e, i) : w(t) && (t = (n = t).id), this.id = t, this.dom = n; var o = n.style;
  3884. o && (n.onselectstart = we, o["-webkit-user-select"] = "none", o["user-select"] = "none", o["-webkit-touch-callout"] = "none", o["-webkit-tap-highlight-color"] = "rgba(0,0,0,0)", o.padding = 0, o.margin = 0, o["border-width"] = 0), this.domBack = null, this.ctxBack = null, this.painter = e, this.config = null, this.clearColor = 0, this.motionBlur = !1, this.lastFrameAlpha = .7, this.dpr = i };
  3885. ib.prototype = { constructor: ib, __dirty: !0, __used: !1, __drawIndex: 0, __startIndex: 0, __endIndex: 0, incremental: !1, getElementCount: function() { return this.__endIndex - this.__startIndex }, initContext: function() { this.ctx = this.dom.getContext("2d"), this.ctx.dpr = this.dpr }, createBackBuffer: function() { var t = this.dpr;
  3886. this.domBack = be("back-" + this.id, this.painter, t), this.ctxBack = this.domBack.getContext("2d"), 1 != t && this.ctxBack.scale(t, t) }, resize: function(t, e) { var i = this.dpr,
  3887. n = this.dom,
  3888. o = n.style,
  3889. a = this.domBack;
  3890. o && (o.width = t + "px", o.height = e + "px"), n.width = t * i, n.height = e * i, a && (a.width = t * i, a.height = e * i, 1 != i && this.ctxBack.scale(i, i)) }, clear: function(t, e) { var i = this.dom,
  3891. n = this.ctx,
  3892. o = i.width,
  3893. a = i.height,
  3894. e = e || this.clearColor,
  3895. r = this.motionBlur && !t,
  3896. s = this.lastFrameAlpha,
  3897. l = this.dpr; if (r && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(i, 0, 0, o / l, a / l)), n.clearRect(0, 0, o, a), e && "transparent" !== e) { var u;
  3898. e.colorStops ? (u = e.__canvasGradient || $w.getGradient(n, e, { x: 0, y: 0, width: o, height: a }), e.__canvasGradient = u) : e.image && (u = eb.prototype.getCanvasPattern.call(e, n)), n.save(), n.fillStyle = u || e, n.fillRect(0, 0, o, a), n.restore() } if (r) { var h = this.domBack;
  3899. n.save(), n.globalAlpha = s, n.drawImage(h, 0, 0, o, a), n.restore() } } }; var nb = "undefined" != typeof window && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function(t) { setTimeout(t, 16) },
  3900. ob = new Iw(50),
  3901. ab = {},
  3902. rb = 0,
  3903. sb = 5e3,
  3904. lb = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g,
  3905. ub = "12px sans-serif",
  3906. hb = {};
  3907. hb.measureText = function(t, e) { var i = s(); return i.font = e || ub, i.measureText(t) }; var cb = { left: 1, right: 1, center: 1 },
  3908. db = { top: 1, bottom: 1, middle: 1 },
  3909. fb = [
  3910. ["textShadowBlur", "shadowBlur", 0],
  3911. ["textShadowOffsetX", "shadowOffsetX", 0],
  3912. ["textShadowOffsetY", "shadowOffsetY", 0],
  3913. ["textShadowColor", "shadowColor", "transparent"]
  3914. ],
  3915. pb = new ue,
  3916. gb = function() {};
  3917. gb.prototype = { constructor: gb, drawRectText: function(t, e) { var i = this.style;
  3918. e = i.textRect || e, this.__dirty && Ue(i); var n = i.text; if (null != n && (n += ""), li(n, i)) { t.save(); var o = this.transform;
  3919. i.transformText ? this.setTransform(t) : o && (pb.copy(e), pb.applyTransform(o), e = pb), je(this, t, n, i, e), t.restore() } } }, ui.prototype = { constructor: ui, type: "displayable", __dirty: !0, invisible: !1, z: 0, z2: 0, zlevel: 0, draggable: !1, dragging: !1, silent: !1, culling: !1, cursor: "pointer", rectHover: !1, progressive: !1, incremental: !1, globalScaleRatio: 1, beforeBrush: function(t) {}, afterBrush: function(t) {}, brush: function(t, e) {}, getBoundingRect: function() {}, contain: function(t, e) { return this.rectContain(t, e) }, traverse: function(t, e) { t.call(e, this) }, rectContain: function(t, e) { var i = this.transformCoordToLocal(t, e); return this.getBoundingRect().contain(i[0], i[1]) }, dirty: function() { this.__dirty = this.__dirtyText = !0, this._rect = null, this.__zr && this.__zr.refresh() }, animateStyle: function(t) { return this.animate("style", t) }, attrKV: function(t, e) { "style" !== t ? Gw.prototype.attrKV.call(this, t, e) : this.style.set(e) }, setStyle: function(t, e) { return this.style.set(t, e), this.dirty(!1), this }, useStyle: function(t) { return this.style = new $w(t, this), this.dirty(!1), this } }, u(ui, Gw), h(ui, gb), hi.prototype = { constructor: hi, type: "image", brush: function(t, e) { var i = this.style,
  3920. n = i.image;
  3921. i.bind(t, this, e); var o = this._image = Me(n, this._image, this, this.onload); if (o && Te(o)) { var a = i.x || 0,
  3922. r = i.y || 0,
  3923. s = i.width,
  3924. l = i.height,
  3925. u = o.width / o.height; if (null == s && null != l ? s = l * u : null == l && null != s ? l = s / u : null == s && null == l && (s = o.width, l = o.height), this.setTransform(t), i.sWidth && i.sHeight) { var h = i.sx || 0,
  3926. c = i.sy || 0;
  3927. t.drawImage(o, h, c, i.sWidth, i.sHeight, a, r, s, l) } else if (i.sx && i.sy) { var d = s - (h = i.sx),
  3928. f = l - (c = i.sy);
  3929. t.drawImage(o, h, c, d, f, a, r, s, l) } else t.drawImage(o, a, r, s, l);
  3930. null != i.text && (this.restoreTransform(t), this.drawRectText(t, this.getBoundingRect())) } }, getBoundingRect: function() { var t = this.style; return this._rect || (this._rect = new ue(t.x || 0, t.y || 0, t.width || 0, t.height || 0)), this._rect } }, u(hi, ui); var mb = new ue(0, 0, 0, 0),
  3931. vb = new ue(0, 0, 0, 0),
  3932. yb = function(t, e, i) { this.type = "canvas"; var n = !t.nodeName || "CANVAS" === t.nodeName.toUpperCase();
  3933. this._opts = i = a({}, i || {}), this.dpr = i.devicePixelRatio || Rw, this._singleCanvas = n, this.root = t; var o = t.style;
  3934. o && (o["-webkit-tap-highlight-color"] = "transparent", o["-webkit-user-select"] = o["user-select"] = o["-webkit-touch-callout"] = "none", t.innerHTML = ""), this.storage = e; var r = this._zlevelList = [],
  3935. s = this._layers = {}; if (this._layerConfig = {}, this._needsManuallyCompositing = !1, n) { var l = t.width,
  3936. u = t.height;
  3937. null != i.width && (l = i.width), null != i.height && (u = i.height), this.dpr = i.devicePixelRatio || 1, t.width = l * this.dpr, t.height = u * this.dpr, this._width = l, this._height = u; var h = new ib(t, this, this.dpr);
  3938. h.__builtin__ = !0, h.initContext(), s[314159] = h, h.zlevel = 314159, r.push(314159), this._domRoot = t } else { this._width = this._getSize(0), this._height = this._getSize(1); var c = this._domRoot = mi(this._width, this._height);
  3939. t.appendChild(c) }
  3940. this._hoverlayer = null, this._hoverElements = [] };
  3941. yb.prototype = { constructor: yb, getType: function() { return "canvas" }, isSingleCanvas: function() { return this._singleCanvas }, getViewportRoot: function() { return this._domRoot }, getViewportRootOffset: function() { var t = this.getViewportRoot(); if (t) return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0 } }, refresh: function(t) { var e = this.storage.getDisplayList(!0),
  3942. i = this._zlevelList;
  3943. this._redrawId = Math.random(), this._paintList(e, t, this._redrawId); for (var n = 0; n < i.length; n++) { var o = i[n],
  3944. a = this._layers[o]; if (!a.__builtin__ && a.refresh) { var r = 0 === n ? this._backgroundColor : null;
  3945. a.refresh(r) } } return this.refreshHover(), this }, addHover: function(t, e) { if (!t.__hoverMir) { var i = new t.constructor({ style: t.style, shape: t.shape, z: t.z, z2: t.z2, silent: t.silent }); return i.__from = t, t.__hoverMir = i, e && i.setStyle(e), this._hoverElements.push(i), i } }, removeHover: function(t) { var e = t.__hoverMir,
  3946. i = this._hoverElements,
  3947. n = l(i, e);
  3948. n >= 0 && i.splice(n, 1), t.__hoverMir = null }, clearHover: function(t) { for (var e = this._hoverElements, i = 0; i < e.length; i++) { var n = e[i].__from;
  3949. n && (n.__hoverMir = null) }
  3950. e.length = 0 }, refreshHover: function() { var t = this._hoverElements,
  3951. e = t.length,
  3952. i = this._hoverlayer; if (i && i.clear(), e) { ve(t, this.storage.displayableSortFunc), i || (i = this._hoverlayer = this.getLayer(1e5)); var n = {};
  3953. i.ctx.save(); for (var o = 0; o < e;) { var a = t[o],
  3954. r = a.__from;
  3955. 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--) }
  3956. i.ctx.restore() } }, getHoverLayer: function() { return this.getLayer(1e5) }, _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;
  3957. nb(function() { o._paintList(t, e, i) }) } } }, _compositeManually: function() { var t = this.getLayer(314159).ctx,
  3958. e = this._domRoot.width,
  3959. i = this._domRoot.height;
  3960. 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; n < this._zlevelList.length; n++) { var o = this._zlevelList[n];
  3961. (s = this._layers[o]).__builtin__ && s !== this._hoverlayer && (s.__dirty || e) && i.push(s) } for (var a = !0, r = 0; r < i.length; r++) { var s = i[r],
  3962. l = s.ctx,
  3963. u = {};
  3964. l.save(); var h = e ? s.__startIndex : s.__drawIndex,
  3965. c = !e && s.incremental && Date.now,
  3966. f = c && Date.now(),
  3967. p = s.zlevel === this._zlevelList[0] ? this._backgroundColor : null; if (s.__startIndex === s.__endIndex) s.clear(!1, p);
  3968. else if (h === s.__startIndex) { var g = t[h];
  3969. g.incremental && g.notClear && !e || s.clear(!1, p) } - 1 === h && (console.error("For some unknown reason. drawIndex is -1"), h = s.__startIndex); for (var m = h; m < s.__endIndex; m++) { var v = t[m]; if (this._doPaintEl(v, s, e, u), v.__dirty = v.__dirtyText = !1, c && Date.now() - f > 15) break }
  3970. s.__drawIndex = m, s.__drawIndex < s.__endIndex && (a = !1), u.prevElClipPaths && l.restore(), l.restore() } return z_.wxa && d(this._layers, function(t) { t && t.ctx && t.ctx.draw && t.ctx.draw() }), a }, _doPaintEl: function(t, e, i, n) { var o = e.ctx,
  3971. a = t.transform; if ((e.__dirty || i) && !t.invisible && 0 !== t.style.opacity && (!a || a[0] || a[3]) && (!t.culling || !fi(t, this._width, this._height))) { var r = t.__clipPaths;
  3972. n.prevElClipPaths && !pi(r, n.prevElClipPaths) || (n.prevElClipPaths && (e.ctx.restore(), n.prevElClipPaths = null, n.prevEl = null), r && (o.save(), gi(r, o), n.prevElClipPaths = r)), t.beforeBrush && t.beforeBrush(o), t.brush(o, n.prevEl || null), n.prevEl = t, t.afterBrush && t.afterBrush(o) } }, getLayer: function(t, e) { this._singleCanvas && !this._needsManuallyCompositing && (t = 314159); var i = this._layers[t]; return i || ((i = new ib("zr_" + t, this, this.dpr)).zlevel = t, i.__builtin__ = !0, this._layerConfig[t] && n(i, this._layerConfig[t], !0), e && (i.virtual = e), this.insertLayer(t, i), i.initContext()), i }, insertLayer: function(t, e) { var i = this._layers,
  3973. n = this._zlevelList,
  3974. o = n.length,
  3975. a = null,
  3976. r = -1,
  3977. s = this._domRoot; if (i[t]) Bw("ZLevel " + t + " has been used already");
  3978. else if (di(e)) { if (o > 0 && t > n[0]) { for (r = 0; r < o - 1 && !(n[r] < t && n[r + 1] > t); r++);
  3979. a = i[n[r]] } if (n.splice(r + 1, 0, t), i[t] = e, !e.virtual)
  3980. if (a) { var l = a.dom;
  3981. l.nextSibling ? s.insertBefore(e.dom, l.nextSibling) : s.appendChild(e.dom) } else s.firstChild ? s.insertBefore(e.dom, s.firstChild) : s.appendChild(e.dom) } else Bw("Layer of zlevel " + t + " is not valid") }, eachLayer: function(t, e) { var i, n, o = this._zlevelList; for (n = 0; n < o.length; n++) i = o[n], t.call(e, this._layers[i], i) }, eachBuiltinLayer: function(t, e) { var i, n, o, a = this._zlevelList; for (o = 0; o < a.length; o++) n = a[o], (i = this._layers[n]).__builtin__ && t.call(e, i, n) }, eachOtherLayer: function(t, e) { var i, n, o, a = this._zlevelList; for (o = 0; o < a.length; o++) n = a[o], (i = this._layers[n]).__builtin__ || t.call(e, i, n) }, getLayers: function() { return this._layers }, _updateLayerStatus: function(t) {
  3982. function e(t) { i && (i.__endIndex !== t && (i.__dirty = !0), i.__endIndex = t) } if (this.eachBuiltinLayer(function(t, e) { t.__dirty = t.__used = !1 }), this._singleCanvas)
  3983. for (o = 1; o < t.length; o++)
  3984. if ((r = t[o]).zlevel !== t[o - 1].zlevel || r.incremental) { this._needsManuallyCompositing = !0; break }
  3985. for (var i = null, n = 0, o = 0; o < t.length; o++) { var a, r = t[o],
  3986. s = r.zlevel;
  3987. r.incremental ? ((a = this.getLayer(s + .001, this._needsManuallyCompositing)).incremental = !0, n = 1) : a = this.getLayer(s + (n > 0 ? .01 : 0), this._needsManuallyCompositing), a.__builtin__ || Bw("ZLevel " + s + " has been used by unkown layer " + a.id), a !== i && (a.__used = !0, a.__startIndex !== o && (a.__dirty = !0), a.__startIndex = o, a.incremental ? a.__drawIndex = -1 : a.__drawIndex = o, e(o), i = a), r.__dirty && (a.__dirty = !0, a.incremental && a.__drawIndex < 0 && (a.__drawIndex = o)) }
  3988. e(o), this.eachBuiltinLayer(function(t, e) {!t.__used && t.getElementCount() > 0 && (t.__dirty = !0, t.__startIndex = t.__endIndex = t.__drawIndex = 0), t.__dirty && t.__drawIndex < 0 && (t.__drawIndex = t.__startIndex) }) }, clear: function() { return this.eachBuiltinLayer(this._clearLayer), this }, _clearLayer: function(t) { t.clear() }, setBackgroundColor: function(t) { this._backgroundColor = t }, configLayer: function(t, e) { if (e) { var i = this._layerConfig;
  3989. i[t] ? n(i[t], e, !0) : i[t] = e; for (var o = 0; o < this._zlevelList.length; o++) { var a = this._zlevelList[o];
  3990. a !== t && a !== t + .01 || n(this._layers[a], i[t], !0) } } }, delLayer: function(t) { var e = this._layers,
  3991. i = this._zlevelList,
  3992. n = e[t];
  3993. n && (n.dom.parentNode.removeChild(n.dom), delete e[t], i.splice(l(i, t), 1)) }, resize: function(t, e) { if (this._domRoot.style) { var i = this._domRoot;
  3994. i.style.display = "none"; var n = this._opts; if (null != t && (n.width = t), null != e && (n.height = e), t = this._getSize(0), e = this._getSize(1), i.style.display = "", this._width != t || e != this._height) { i.style.width = t + "px", i.style.height = e + "px"; for (var o in this._layers) this._layers.hasOwnProperty(o) && this._layers[o].resize(t, e);
  3995. d(this._progressiveLayers, function(i) { i.resize(t, e) }), this.refresh(!0) }
  3996. this._width = t, this._height = e } else { if (null == t || null == e) return;
  3997. this._width = t, this._height = e, this.getLayer(314159).resize(t, e) } return this }, clearLayer: function(t) { var e = this._layers[t];
  3998. e && e.clear() }, dispose: function() { this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null }, getRenderedCanvas: function(t) { if (t = t || {}, this._singleCanvas && !this._compositeManually) return this._layers[314159].dom; var e = new ib("image", this, t.pixelRatio || this.dpr); if (e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor), t.pixelRatio <= this.dpr) { this.refresh(); var i = e.dom.width,
  3999. n = e.dom.height,
  4000. o = e.ctx;
  4001. this.eachLayer(function(t) { t.__builtin__ ? o.drawImage(t.dom, 0, 0, i, n) : t.renderToCanvas && (e.ctx.save(), t.renderToCanvas(e.ctx), e.ctx.restore()) }) } else
  4002. for (var a = {}, r = this.storage.getDisplayList(!0), s = 0; s < r.length; s++) { var l = r[s];
  4003. this._doPaintEl(l, e, !0, a) }
  4004. return e.dom }, getWidth: function() { return this._width }, getHeight: function() { return this._height }, _getSize: function(t) { var e = this._opts,
  4005. i = ["width", "height"][t],
  4006. n = ["clientWidth", "clientHeight"][t],
  4007. o = ["paddingLeft", "paddingTop"][t],
  4008. a = ["paddingRight", "paddingBottom"][t]; if (null != e[i] && "auto" !== e[i]) return parseFloat(e[i]); var r = this.root,
  4009. s = document.defaultView.getComputedStyle(r); return (r[n] || ci(s[i]) || ci(r.style[i])) - (ci(s[o]) || 0) - (ci(s[a]) || 0) | 0 }, pathToImage: function(t, e) { e = e || this.dpr; var i = document.createElement("canvas"),
  4010. n = i.getContext("2d"),
  4011. o = t.getBoundingRect(),
  4012. a = t.style,
  4013. r = a.shadowBlur * e,
  4014. s = a.shadowOffsetX * e,
  4015. l = a.shadowOffsetY * e,
  4016. u = a.hasStroke() ? a.lineWidth : 0,
  4017. h = Math.max(u / 2, -s + r),
  4018. c = Math.max(u / 2, s + r),
  4019. d = Math.max(u / 2, -l + r),
  4020. f = Math.max(u / 2, l + r),
  4021. p = o.width + h + c,
  4022. g = o.height + d + f;
  4023. i.width = p * e, i.height = g * e, n.scale(e, e), n.clearRect(0, 0, p, g), n.dpr = e; var m = { position: t.position, rotation: t.rotation, scale: t.scale };
  4024. t.position = [h - o.x, d - o.y], t.rotation = 0, t.scale = [1, 1], t.updateTransform(), t && t.brush(n); var v = new hi({ style: { x: 0, y: 0, image: i } }); return null != m.position && (v.position = t.position = m.position), null != m.rotation && (v.rotation = t.rotation = m.rotation), null != m.scale && (v.scale = t.scale = m.scale), v } }; var xb = function(t) { t = t || {}, this.stage = t.stage || {}, this.onframe = t.onframe || function() {}, this._clips = [], this._running = !1, this._time, this._pausedTime, this._pauseStart, this._paused = !1, aw.call(this) };
  4025. xb.prototype = { constructor: xb, addClip: function(t) { this._clips.push(t) }, addAnimator: function(t) { t.animation = this; for (var e = t.getClips(), i = 0; i < e.length; i++) this.addClip(e[i]) }, removeClip: function(t) { var e = l(this._clips, t);
  4026. e >= 0 && this._clips.splice(e, 1) }, removeAnimator: function(t) { for (var e = t.getClips(), i = 0; i < e.length; i++) this.removeClip(e[i]);
  4027. t.animation = null }, _update: function() { for (var t = (new Date).getTime() - this._pausedTime, e = t - this._time, i = this._clips, n = i.length, o = [], a = [], r = 0; r < n; r++) { var s = i[r],
  4028. l = s.step(t, e);
  4029. l && (o.push(l), a.push(s)) } for (r = 0; r < n;) i[r]._needsRemove ? (i[r] = i[n - 1], i.pop(), n--) : r++;
  4030. n = o.length; for (r = 0; r < n; r++) a[r].fire(o[r]);
  4031. this._time = t, this.onframe(e), this.trigger("frame", e), this.stage.update && this.stage.update() }, _startLoop: function() {
  4032. function t() { e._running && (nb(t), !e._paused && e._update()) } var e = this;
  4033. this._running = !0, nb(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) { var i = new Ow(t, (e = e || {}).loop, e.getter, e.setter); return this.addAnimator(i), i } }, h(xb, aw); var _b = function() { this._track = [] };
  4034. _b.prototype = { constructor: _b, 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; a < r; a++) { var s = n[a],
  4035. l = rt(i, s, {});
  4036. o.points.push([l.zrX, l.zrY]), o.touches.push(s) }
  4037. this._track.push(o) } }, _recognize: function(t) { for (var e in wb)
  4038. if (wb.hasOwnProperty(e)) { var i = wb[e](this._track, t); if (i) return i } } }; var wb = { pinch: function(t, e) { var i = t.length; if (i) { var n = (t[i - 1] || {}).points,
  4039. o = (t[i - 2] || {}).points || n; if (o && o.length > 1 && n && n.length > 1) { var a = vi(n) / vi(o);!isFinite(a) && (a = 1), e.pinchScale = a; var r = yi(n); return e.pinchX = r[0], e.pinchY = r[1], { type: "pinch", target: t[0].target, event: e } } } } },
  4040. bb = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"],
  4041. Sb = ["touchstart", "touchend", "touchmove"],
  4042. Mb = { pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1 },
  4043. Ib = f(bb, function(t) { var e = t.replace("mouse", "pointer"); return Mb[e] ? e : t }),
  4044. Tb = { mousemove: function(t) { t = lt(this.dom, t), this.trigger("mousemove", t) }, mouseout: function(t) { var e = (t = lt(this.dom, t)).toElement || t.relatedTarget; if (e != this.dom)
  4045. for (; e && 9 != e.nodeType;) { if (e === this.dom) return;
  4046. e = e.parentNode }
  4047. this.trigger("mouseout", t) }, touchstart: function(t) {
  4048. (t = lt(this.dom, t)).zrByTouch = !0, this._lastTouchMoment = new Date, _i(this, t, "start"), Tb.mousemove.call(this, t), Tb.mousedown.call(this, t), wi(this) }, touchmove: function(t) {
  4049. (t = lt(this.dom, t)).zrByTouch = !0, _i(this, t, "change"), Tb.mousemove.call(this, t), wi(this) }, touchend: function(t) {
  4050. (t = lt(this.dom, t)).zrByTouch = !0, _i(this, t, "end"), Tb.mouseup.call(this, t), +new Date - this._lastTouchMoment < 300 && Tb.click.call(this, t), wi(this) }, pointerdown: function(t) { Tb.mousedown.call(this, t) }, pointermove: function(t) { bi(t) || Tb.mousemove.call(this, t) }, pointerup: function(t) { Tb.mouseup.call(this, t) }, pointerout: function(t) { bi(t) || Tb.mouseout.call(this, t) } };
  4051. d(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(t) { Tb[t] = function(e) { e = lt(this.dom, e), this.trigger(t, e) } }); var Ab = Mi.prototype;
  4052. Ab.dispose = function() { for (var t = bb.concat(Sb), e = 0; e < t.length; e++) { var i = t[e];
  4053. ht(this.dom, xi(i), this._handlers[i]) } }, Ab.setCursor = function(t) { this.dom.style && (this.dom.style.cursor = t || "default") }, h(Mi, aw); var Db = !z_.canvasSupported,
  4054. Cb = { canvas: yb },
  4055. Lb = {},
  4056. kb = function(t, e, i) { i = i || {}, this.dom = e, this.id = t; var n = this,
  4057. o = new jw,
  4058. a = i.renderer; if (Db) { if (!Cb.vml) throw new Error("You need to require 'zrender/vml/vml' to support IE8");
  4059. a = "vml" } else a && Cb[a] || (a = "canvas"); var r = new Cb[a](e, o, i, t);
  4060. this.storage = o, this.painter = r; var s = z_.node || z_.worker ? null : new Mi(r.getViewportRoot());
  4061. this.handler = new cw(o, r, s, r.root), this.animation = new xb({ stage: { update: m(this.flush, this) } }), this.animation.start(), this._needsRefresh; var l = o.delFromStorage,
  4062. u = o.addToStorage;
  4063. o.delFromStorage = function(t) { l.call(o, t), t && t.removeSelfFromZr(n) }, o.addToStorage = function(t) { u.call(o, t), t.addSelfToZr(n) } };
  4064. kb.prototype = { constructor: kb, getId: function() { return this.id }, add: function(t) { this.storage.addRoot(t), this._needsRefresh = !0 }, remove: function(t) { this.storage.delRoot(t), this._needsRefresh = !0 }, configLayer: function(t, e) { this.painter.configLayer && this.painter.configLayer(t, e), this._needsRefresh = !0 }, setBackgroundColor: function(t) { this.painter.setBackgroundColor && this.painter.setBackgroundColor(t), this._needsRefresh = !0 }, refreshImmediately: function() { this._needsRefresh = !1, this.painter.refresh(), this._needsRefresh = !1 }, refresh: function() { this._needsRefresh = !0 }, flush: function() { var t;
  4065. this._needsRefresh && (t = !0, this.refreshImmediately()), this._needsRefreshHover && (t = !0, this.refreshHoverImmediately()), t && this.trigger("rendered") }, addHover: function(t, e) { if (this.painter.addHover) { var i = this.painter.addHover(t, e); return this.refreshHover(), i } }, removeHover: function(t) { this.painter.removeHover && (this.painter.removeHover(t), this.refreshHover()) }, clearHover: function() { this.painter.clearHover && (this.painter.clearHover(), this.refreshHover()) }, refreshHover: function() { this._needsRefreshHover = !0 }, refreshHoverImmediately: function() { this._needsRefreshHover = !1, this.painter.refreshHover && this.painter.refreshHover() }, resize: function(t) { t = t || {}, this.painter.resize(t.width, t.height), this.handler.resize() }, clearAnimation: function() { this.animation.clear() }, getWidth: function() { return this.painter.getWidth() }, getHeight: function() { return this.painter.getHeight() }, pathToImage: function(t, e) { return this.painter.pathToImage(t, e) }, setCursorStyle: function(t) { this.handler.setCursorStyle(t) }, findHover: function(t, e) { return this.handler.findHover(t, e) }, on: function(t, e, i) { this.handler.on(t, e, i) }, off: function(t, e) { this.handler.off(t, e) }, trigger: function(t, e) { this.handler.trigger(t, e) }, clear: function() { this.storage.delRoot(), this.painter.clear() }, 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, Ai(this.id) } }; var Pb = (Object.freeze || Object)({ version: "4.0.5", init: Ii, dispose: function(t) { if (t) t.dispose();
  4066. else { for (var e in Lb) Lb.hasOwnProperty(e) && Lb[e].dispose();
  4067. Lb = {} } return this }, getInstance: function(t) { return Lb[t] }, registerPainter: Ti }),
  4068. Nb = d,
  4069. Ob = w,
  4070. Eb = y,
  4071. Rb = "series\0",
  4072. zb = ["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"],
  4073. Bb = 0,
  4074. Vb = ".",
  4075. Gb = "___EC__COMPONENT__CONTAINER___",
  4076. Fb = 0,
  4077. Wb = function(t) { for (var e = 0; e < t.length; e++) t[e][1] || (t[e][1] = t[e][0]); return function(e, i, n) { for (var o = {}, a = 0; a < t.length; a++) { var r = t[a][1]; if (!(i && l(i, r) >= 0 || n && l(n, r) < 0)) { var s = e.getShallow(r);
  4078. null != s && (o[t[a][0]] = s) } } return o } },
  4079. Hb = Wb([
  4080. ["lineWidth", "width"],
  4081. ["stroke", "color"],
  4082. ["opacity"],
  4083. ["shadowBlur"],
  4084. ["shadowOffsetX"],
  4085. ["shadowOffsetY"],
  4086. ["shadowColor"]
  4087. ]),
  4088. Zb = { getLineStyle: function(t) { var e = Hb(this, t),
  4089. i = this.getLineDash(e.lineWidth); return i && (e.lineDash = i), e }, getLineDash: function(t) { null == t && (t = 1); var e = this.get("type"),
  4090. i = Math.max(t, 2),
  4091. n = 4 * t; return "solid" === e || null == e ? null : "dashed" === e ? [n, n] : [i, i] } },
  4092. Ub = Wb([
  4093. ["fill", "color"],
  4094. ["shadowBlur"],
  4095. ["shadowOffsetX"],
  4096. ["shadowOffsetY"],
  4097. ["opacity"],
  4098. ["shadowColor"]
  4099. ]),
  4100. Xb = { getAreaStyle: function(t, e) { return Ub(this, t, e) } },
  4101. jb = Math.pow,
  4102. Yb = Math.sqrt,
  4103. qb = 1e-8,
  4104. Kb = 1e-4,
  4105. $b = Yb(3),
  4106. Jb = 1 / 3,
  4107. Qb = V(),
  4108. tS = V(),
  4109. eS = V(),
  4110. iS = Math.min,
  4111. nS = Math.max,
  4112. oS = Math.sin,
  4113. aS = Math.cos,
  4114. rS = 2 * Math.PI,
  4115. sS = V(),
  4116. lS = V(),
  4117. uS = V(),
  4118. hS = [],
  4119. cS = [],
  4120. dS = { M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, R: 7 },
  4121. fS = [],
  4122. pS = [],
  4123. gS = [],
  4124. mS = [],
  4125. vS = Math.min,
  4126. yS = Math.max,
  4127. xS = Math.cos,
  4128. _S = Math.sin,
  4129. wS = Math.sqrt,
  4130. bS = Math.abs,
  4131. SS = "undefined" != typeof Float32Array,
  4132. MS = function(t) { this._saveData = !t, this._saveData && (this.data = []), this._ctx = null };
  4133. MS.prototype = { constructor: MS, _xi: 0, _yi: 0, _x0: 0, _y0: 0, _ux: 0, _uy: 0, _len: 0, _lineDash: null, _dashOffset: 0, _dashIdx: 0, _dashSum: 0, setScale: function(t, e) { this._ux = bS(1 / Rw / t) || 0, this._uy = bS(1 / Rw / 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(dS.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 = bS(t - this._xi) > this._ux || bS(e - this._yi) > this._uy || this._len < 5; return this.addData(dS.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(dS.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(dS.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(dS.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 = xS(o) * i + t, this._yi = _S(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(dS.R, t, e, i, n), this }, closePath: function() { this.addData(dS.Z); var t = this._ctx,
  4134. e = this._x0,
  4135. 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; i < t.length; i++) e += t[i];
  4136. this._dashSum = e } return this }, setLineDashOffset: function(t) { return this._dashOffset = t, this }, len: function() { return this._len }, setData: function(t) { var e = t.length;
  4137. this.data && this.data.length == e || !SS || (this.data = new Float32Array(e)); for (var i = 0; i < e; i++) this.data[i] = t[i];
  4138. this._len = e }, appendPath: function(t) { t instanceof Array || (t = [t]); for (var e = t.length, i = 0, n = this._len, o = 0; o < e; o++) i += t[o].len();
  4139. SS && this.data instanceof Float32Array && (this.data = new Float32Array(n + i)); for (o = 0; o < e; o++)
  4140. for (var a = t[o].data, r = 0; r < a.length; r++) this.data[n++] = a[r];
  4141. this._len = n }, addData: function(t) { if (this._saveData) { var e = this.data;
  4142. this._len + arguments.length > e.length && (this._expandData(), e = this.data); for (var i = 0; i < arguments.length; i++) e[this._len++] = arguments[i];
  4143. this._prevCmd = t } }, _expandData: function() { if (!(this.data instanceof Array)) { for (var t = [], e = 0; e < this._len; e++) t[e] = this.data[e];
  4144. this.data = t } }, _needsDash: function() { return this._lineDash }, _dashedLineTo: function(t, e) { var i, n, o = this._dashSum,
  4145. a = this._dashOffset,
  4146. r = this._lineDash,
  4147. s = this._ctx,
  4148. l = this._xi,
  4149. u = this._yi,
  4150. h = t - l,
  4151. c = e - u,
  4152. d = wS(h * h + c * c),
  4153. f = l,
  4154. p = u,
  4155. g = r.length; for (h /= d, c /= d, a < 0 && (a = o + a), f -= (a %= o) * h, p -= a * c; h > 0 && f <= t || h < 0 && f >= t || 0 == h && (c > 0 && p <= e || c < 0 && p >= e);) f += h * (i = r[n = this._dashIdx]), p += c * i, this._dashIdx = (n + 1) % g, h > 0 && f < l || h < 0 && f > l || c > 0 && p < u || c < 0 && p > u || s[n % 2 ? "moveTo" : "lineTo"](h >= 0 ? vS(f, t) : yS(f, t), c >= 0 ? vS(p, e) : yS(p, e));
  4156. h = f - t, c = p - e, this._dashOffset = -wS(h * h + c * c) }, _dashedBezierTo: function(t, e, i, n, o, a) { var r, s, l, u, h, c = this._dashSum,
  4157. d = this._dashOffset,
  4158. f = this._lineDash,
  4159. p = this._ctx,
  4160. g = this._xi,
  4161. m = this._yi,
  4162. v = Qi,
  4163. y = 0,
  4164. x = this._dashIdx,
  4165. _ = f.length,
  4166. w = 0; for (d < 0 && (d = c + d), d %= c, r = 0; r < 1; r += .1) s = v(g, t, i, o, r + .1) - v(g, t, i, o, r), l = v(m, e, n, a, r + .1) - v(m, e, n, a, r), y += wS(s * s + l * l); for (; x < _ && !((w += f[x]) > d); x++); for (r = (w - d) / y; r <= 1;) u = v(g, t, i, o, r), h = v(m, e, n, a, r), x % 2 ? p.moveTo(u, h) : p.lineTo(u, h), r += f[x] / y, x = (x + 1) % _;
  4167. x % 2 != 0 && p.lineTo(o, a), s = o - u, l = a - h, this._dashOffset = -wS(s * s + l * l) }, _dashedQuadraticTo: function(t, e, i, n) { var o = i,
  4168. a = n;
  4169. 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;
  4170. t instanceof Array && (t.length = this._len, SS && (this.data = new Float32Array(t))) }, getBoundingRect: function() { fS[0] = fS[1] = gS[0] = gS[1] = Number.MAX_VALUE, pS[0] = pS[1] = mS[0] = mS[1] = -Number.MAX_VALUE; for (var t = this.data, e = 0, i = 0, n = 0, o = 0, a = 0; a < t.length;) { var r = t[a++]; switch (1 == a && (n = e = t[a], o = i = t[a + 1]), r) {
  4171. case dS.M:
  4172. e = n = t[a++], i = o = t[a++], gS[0] = n, gS[1] = o, mS[0] = n, mS[1] = o; break;
  4173. case dS.L:
  4174. fn(e, i, t[a], t[a + 1], gS, mS), e = t[a++], i = t[a++]; break;
  4175. case dS.C:
  4176. pn(e, i, t[a++], t[a++], t[a++], t[a++], t[a], t[a + 1], gS, mS), e = t[a++], i = t[a++]; break;
  4177. case dS.Q:
  4178. gn(e, i, t[a++], t[a++], t[a], t[a + 1], gS, mS), e = t[a++], i = t[a++]; break;
  4179. case dS.A:
  4180. var s = t[a++],
  4181. l = t[a++],
  4182. u = t[a++],
  4183. h = t[a++],
  4184. c = t[a++],
  4185. d = t[a++] + c,
  4186. f = (t[a++], 1 - t[a++]);
  4187. 1 == a && (n = xS(c) * u + s, o = _S(c) * h + l), mn(s, l, u, h, c, d, f, gS, mS), e = xS(d) * u + s, i = _S(d) * h + l; break;
  4188. case dS.R:
  4189. fn(n = e = t[a++], o = i = t[a++], n + t[a++], o + t[a++], gS, mS); break;
  4190. case dS.Z:
  4191. e = n, i = o }
  4192. tt(fS, fS, gS), et(pS, pS, mS) } return 0 === a && (fS[0] = fS[1] = pS[0] = pS[1] = 0), new ue(fS[0], fS[1], pS[0] - fS[0], pS[1] - fS[1]) }, rebuildPath: function(t) { for (var e, i, n, o, a, r, s = this.data, l = this._ux, u = this._uy, h = this._len, c = 0; c < h;) { var d = s[c++]; switch (1 == c && (e = n = s[c], i = o = s[c + 1]), d) {
  4193. case dS.M:
  4194. e = n = s[c++], i = o = s[c++], t.moveTo(n, o); break;
  4195. case dS.L:
  4196. a = s[c++], r = s[c++], (bS(a - n) > l || bS(r - o) > u || c === h - 1) && (t.lineTo(a, r), n = a, o = r); break;
  4197. case dS.C:
  4198. t.bezierCurveTo(s[c++], s[c++], s[c++], s[c++], s[c++], s[c++]), n = s[c - 2], o = s[c - 1]; break;
  4199. case dS.Q:
  4200. t.quadraticCurveTo(s[c++], s[c++], s[c++], s[c++]), n = s[c - 2], o = s[c - 1]; break;
  4201. case dS.A:
  4202. var f = s[c++],
  4203. p = s[c++],
  4204. g = s[c++],
  4205. m = s[c++],
  4206. v = s[c++],
  4207. y = s[c++],
  4208. x = s[c++],
  4209. _ = s[c++],
  4210. w = g > m ? g : m,
  4211. b = g > m ? 1 : g / m,
  4212. S = g > m ? m / g : 1,
  4213. M = v + y;
  4214. Math.abs(g - m) > .001 ? (t.translate(f, p), t.rotate(x), t.scale(b, S), t.arc(0, 0, w, v, M, 1 - _), t.scale(1 / b, 1 / S), t.rotate(-x), t.translate(-f, -p)) : t.arc(f, p, w, v, M, 1 - _), 1 == c && (e = xS(v) * g + f, i = _S(v) * m + p), n = xS(M) * g + f, o = _S(M) * m + p; break;
  4215. case dS.R:
  4216. e = n = s[c], i = o = s[c + 1], t.rect(s[c++], s[c++], s[c++], s[c++]); break;
  4217. case dS.Z:
  4218. t.closePath(), n = e, o = i } } } }, MS.CMD = dS; var IS = 2 * Math.PI,
  4219. TS = 2 * Math.PI,
  4220. AS = MS.CMD,
  4221. DS = 2 * Math.PI,
  4222. CS = 1e-4,
  4223. LS = [-1, -1, -1],
  4224. kS = [-1, -1],
  4225. PS = eb.prototype.getCanvasPattern,
  4226. NS = Math.abs,
  4227. OS = new MS(!0);
  4228. kn.prototype = { constructor: kn, type: "path", __dirtyPath: !0, strokeContainThreshold: 5, brush: function(t, e) { var i = this.style,
  4229. n = this.path || OS,
  4230. o = i.hasStroke(),
  4231. a = i.hasFill(),
  4232. r = i.fill,
  4233. s = i.stroke,
  4234. l = a && !!r.colorStops,
  4235. u = o && !!s.colorStops,
  4236. h = a && !!r.image,
  4237. c = o && !!s.image; if (i.bind(t, this, e), this.setTransform(t), this.__dirty) { var d;
  4238. l && (d = d || this.getBoundingRect(), this._fillGradient = i.getGradient(t, r, d)), u && (d = d || this.getBoundingRect(), this._strokeGradient = i.getGradient(t, s, d)) }
  4239. l ? t.fillStyle = this._fillGradient : h && (t.fillStyle = PS.call(r, t)), u ? t.strokeStyle = this._strokeGradient : c && (t.strokeStyle = PS.call(s, t)); var f = i.lineDash,
  4240. p = i.lineDashOffset,
  4241. g = !!t.setLineDash,
  4242. m = this.getGlobalScale(); if (n.setScale(m[0], m[1]), this.__dirtyPath || f && !g && o ? (n.beginPath(t), f && !g && (n.setLineDash(f), n.setLineDashOffset(p)), this.buildPath(n, this.shape, !1), this.path && (this.__dirtyPath = !1)) : (t.beginPath(), this.path.rebuildPath(t)), a)
  4243. if (null != i.fillOpacity) { v = t.globalAlpha;
  4244. t.globalAlpha = i.fillOpacity * i.opacity, n.fill(t), t.globalAlpha = v } else n.fill(t);
  4245. if (f && g && (t.setLineDash(f), t.lineDashOffset = p), o)
  4246. if (null != i.strokeOpacity) { var v = t.globalAlpha;
  4247. t.globalAlpha = i.strokeOpacity * i.opacity, n.stroke(t), t.globalAlpha = v } else n.stroke(t);
  4248. f && g && t.setLineDash([]), null != i.text && (this.restoreTransform(t), this.drawRectText(t, this.getBoundingRect())) }, buildPath: function(t, e, i) {}, createPathProxy: function() { this.path = new MS }, getBoundingRect: function() { var t = this._rect,
  4249. e = this.style,
  4250. i = !t; if (i) { var n = this.path;
  4251. n || (n = this.path = new MS), 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,
  4252. r = e.strokeNoScale ? this.getLineScale() : 1;
  4253. 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),
  4254. n = this.getBoundingRect(),
  4255. 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,
  4256. s = o.strokeNoScale ? this.getLineScale() : 1; if (s > 1e-10 && (o.hasFill() || (r = Math.max(r, this.strokeContainThreshold)), Ln(a, r / s, t, e))) return !0 } if (o.hasFill()) return Cn(a, t, e) } return !1 }, dirty: function(t) { null == t && (t = !0), t && (this.__dirtyPath = t, this._rect = null), this.__dirty = this.__dirtyText = !0, this.__zr && this.__zr.refresh(), this.__clipTarget && this.__clipTarget.dirty() }, animateShape: function(t) { return this.animate("shape", t) }, attrKV: function(t, e) { "shape" === t ? (this.setShape(e), this.__dirtyPath = !0, this._rect = null) : ui.prototype.attrKV.call(this, t, e) }, setShape: function(t, e) { var i = this.shape; if (i) { if (w(t))
  4257. for (var n in t) t.hasOwnProperty(n) && (i[n] = t[n]);
  4258. else i[t] = e;
  4259. this.dirty(!0) } return this }, getLineScale: function() { var t = this.transform; return t && NS(t[0] - 1) > 1e-10 && NS(t[3] - 1) > 1e-10 ? Math.sqrt(NS(t[0] * t[3] - t[2] * t[1])) : 1 } }, kn.extend = function(t) { var e = function(e) { kn.call(this, e), t.style && this.style.extendFrom(t.style, !1); var i = t.shape; if (i) { this.shape = this.shape || {}; var n = this.shape; for (var o in i) !n.hasOwnProperty(o) && i.hasOwnProperty(o) && (n[o] = i[o]) }
  4260. t.init && t.init.call(this, e) };
  4261. u(e, kn); for (var i in t) "style" !== i && "shape" !== i && (e.prototype[i] = t[i]); return e }, u(kn, ui); var ES = MS.CMD,
  4262. RS = [
  4263. [],
  4264. [],
  4265. []
  4266. ],
  4267. zS = Math.sqrt,
  4268. BS = Math.atan2,
  4269. VS = function(t, e) { var i, n, o, a, r, s, l = t.data,
  4270. u = ES.M,
  4271. h = ES.C,
  4272. c = ES.L,
  4273. d = ES.R,
  4274. f = ES.A,
  4275. p = ES.Q; for (o = 0, a = 0; o < l.length;) { switch (i = l[o++], a = o, n = 0, i) {
  4276. case u:
  4277. case c:
  4278. n = 1; break;
  4279. case h:
  4280. n = 3; break;
  4281. case p:
  4282. n = 2; break;
  4283. case f:
  4284. var g = e[4],
  4285. m = e[5],
  4286. v = zS(e[0] * e[0] + e[1] * e[1]),
  4287. y = zS(e[2] * e[2] + e[3] * e[3]),
  4288. x = BS(-e[1] / y, e[0] / v);
  4289. l[o] *= v, l[o++] += g, l[o] *= y, l[o++] += m, l[o++] *= v, l[o++] *= y, l[o++] += x, l[o++] += x, a = o += 2; break;
  4290. case d:
  4291. s[0] = l[o++], s[1] = l[o++], Q(s, s, e), l[a++] = s[0], l[a++] = s[1], s[0] += l[o++], s[1] += l[o++], Q(s, s, e), l[a++] = s[0], l[a++] = s[1] } for (r = 0; r < n; r++)(s = RS[r])[0] = l[o++], s[1] = l[o++], Q(s, s, e), l[a++] = s[0], l[a++] = s[1] } },
  4292. GS = Math.sqrt,
  4293. FS = Math.sin,
  4294. WS = Math.cos,
  4295. HS = Math.PI,
  4296. ZS = function(t) { return Math.sqrt(t[0] * t[0] + t[1] * t[1]) },
  4297. US = function(t, e) { return (t[0] * e[0] + t[1] * e[1]) / (ZS(t) * ZS(e)) },
  4298. XS = function(t, e) { return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos(US(t, e)) },
  4299. jS = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,
  4300. YS = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g,
  4301. qS = function(t) { ui.call(this, t) };
  4302. qS.prototype = { constructor: qS, type: "text", brush: function(t, e) { var i = this.style;
  4303. this.__dirty && Ue(i), i.fill = i.stroke = i.shadowBlur = i.shadowColor = i.shadowOffsetX = i.shadowOffsetY = null; var n = i.text;
  4304. null != n && (n += ""), li(n, i) && (this.setTransform(t), je(this, t, n, i, null, e), this.restoreTransform(t)) }, getBoundingRect: function() { var t = this.style; if (this.__dirty && Ue(t), !this._rect) { var e = t.text;
  4305. null != e ? e += "" : e = ""; var i = De(t.text + "", t.font, t.textAlign, t.textVerticalAlign, t.textPadding, t.rich); if (i.x += t.x || 0, i.y += t.y || 0, oi(t.textStroke, t.textStrokeWidth)) { var n = t.textStrokeWidth;
  4306. i.x -= n / 2, i.y -= n / 2, i.width += n, i.height += n }
  4307. this._rect = i } return this._rect } }, u(qS, ui); var KS = kn.extend({ type: "circle", shape: { cx: 0, cy: 0, r: 0 }, buildPath: function(t, e, i) { i && t.moveTo(e.cx + e.r, e.cy), t.arc(e.cx, e.cy, e.r, 0, 2 * Math.PI, !0) } }),
  4308. $S = [
  4309. ["shadowBlur", 0],
  4310. ["shadowColor", "#000"],
  4311. ["shadowOffsetX", 0],
  4312. ["shadowOffsetY", 0]
  4313. ],
  4314. JS = function(t) { return z_.browser.ie && z_.browser.version >= 11 ? function() { var e, i = this.__clipPaths,
  4315. n = this.style; if (i)
  4316. for (var o = 0; o < i.length; o++) { var a = i[o],
  4317. r = a && a.shape,
  4318. s = a && a.type; if (r && ("sector" === s && r.startAngle === r.endAngle || "rect" === s && (!r.width || !r.height))) { for (l = 0; l < $S.length; l++) $S[l][2] = n[$S[l][0]], n[$S[l][0]] = $S[l][1];
  4319. e = !0; break } }
  4320. if (t.apply(this, arguments), e)
  4321. for (var l = 0; l < $S.length; l++) n[$S[l][0]] = $S[l][2] } : t },
  4322. QS = kn.extend({ type: "sector", shape: { cx: 0, cy: 0, r0: 0, r: 0, startAngle: 0, endAngle: 2 * Math.PI, clockwise: !0 }, brush: JS(kn.prototype.brush), buildPath: function(t, e) { var i = e.cx,
  4323. n = e.cy,
  4324. o = Math.max(e.r0 || 0, 0),
  4325. a = Math.max(e.r, 0),
  4326. r = e.startAngle,
  4327. s = e.endAngle,
  4328. l = e.clockwise,
  4329. u = Math.cos(r),
  4330. h = Math.sin(r);
  4331. t.moveTo(u * o + i, h * o + n), t.lineTo(u * a + i, h * a + n), t.arc(i, n, a, r, s, !l), t.lineTo(Math.cos(s) * o + i, Math.sin(s) * o + n), 0 !== o && t.arc(i, n, o, s, r, l), t.closePath() } }),
  4332. tM = kn.extend({ type: "ring", shape: { cx: 0, cy: 0, r: 0, r0: 0 }, buildPath: function(t, e) { var i = e.cx,
  4333. n = e.cy,
  4334. o = 2 * Math.PI;
  4335. t.moveTo(i + e.r, n), t.arc(i, n, e.r, 0, o, !1), t.moveTo(i + e.r0, n), t.arc(i, n, e.r0, 0, o, !0) } }),
  4336. eM = function(t, e) { for (var i = t.length, n = [], o = 0, a = 1; a < i; a++) o += K(t[a - 1], t[a]); var r = o / 2;
  4337. r = r < i ? i : r; for (a = 0; a < r; a++) { var s, l, u, h = a / (r - 1) * (e ? i : i - 1),
  4338. c = Math.floor(h),
  4339. d = h - c,
  4340. f = t[c % i];
  4341. 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,
  4342. g = d * p;
  4343. n.push([zn(s[0], f[0], l[0], u[0], d, p, g), zn(s[1], f[1], l[1], u[1], d, p, g)]) } return n },
  4344. iM = function(t, e, i, n) { var o, a, r, s, l = [],
  4345. u = [],
  4346. h = [],
  4347. c = []; if (n) { r = [1 / 0, 1 / 0], s = [-1 / 0, -1 / 0]; for (var d = 0, f = t.length; d < f; d++) tt(r, r, t[d]), et(s, s, t[d]);
  4348. tt(r, r, n[0]), et(s, s, n[1]) } for (var d = 0, f = t.length; d < f; d++) { var p = t[d]; if (i) o = t[d ? d - 1 : f - 1], a = t[(d + 1) % f];
  4349. else { if (0 === d || d === f - 1) { l.push(F(t[d])); continue }
  4350. o = t[d - 1], a = t[d + 1] }
  4351. U(u, a, o), Y(u, u, e); var g = K(p, o),
  4352. m = K(p, a),
  4353. v = g + m;
  4354. 0 !== v && (g /= v, m /= v), Y(h, u, -g), Y(c, u, m); var y = H([], p, h),
  4355. x = H([], p, c);
  4356. n && (et(y, y, r), tt(y, y, s), et(x, x, r), tt(x, x, s)), l.push(y), l.push(x) } return i && l.push(l.shift()), l },
  4357. nM = kn.extend({ type: "polygon", shape: { points: null, smooth: !1, smoothConstraint: null }, buildPath: function(t, e) { Bn(t, e, !0) } }),
  4358. oM = kn.extend({ type: "polyline", shape: { points: null, smooth: !1, smoothConstraint: null }, style: { stroke: "#000", fill: null }, buildPath: function(t, e) { Bn(t, e, !1) } }),
  4359. aM = kn.extend({ type: "rect", shape: { r: 0, x: 0, y: 0, width: 0, height: 0 }, buildPath: function(t, e) { var i = e.x,
  4360. n = e.y,
  4361. o = e.width,
  4362. a = e.height;
  4363. e.r ? Ze(t, e) : t.rect(i, n, o, a), t.closePath() } }),
  4364. rM = kn.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 = e.x1,
  4365. n = e.y1,
  4366. o = e.x2,
  4367. a = e.y2,
  4368. r = e.percent;
  4369. 0 !== r && (t.moveTo(i, n), r < 1 && (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] } }),
  4370. sM = [],
  4371. lM = kn.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,
  4372. n = e.y1,
  4373. o = e.x2,
  4374. a = e.y2,
  4375. r = e.cpx1,
  4376. s = e.cpy1,
  4377. l = e.cpx2,
  4378. u = e.cpy2,
  4379. h = e.percent;
  4380. 0 !== h && (t.moveTo(i, n), null == l || null == u ? (h < 1 && (hn(i, r, o, h, sM), r = sM[1], o = sM[2], hn(n, s, a, h, sM), s = sM[1], a = sM[2]), t.quadraticCurveTo(r, s, o, a)) : (h < 1 && (on(i, r, l, o, h, sM), r = sM[1], l = sM[2], o = sM[3], on(n, s, u, a, h, sM), s = sM[1], u = sM[2], a = sM[3]), t.bezierCurveTo(r, s, l, u, o, a))) }, pointAt: function(t) { return Vn(this.shape, t, !1) }, tangentAt: function(t) { var e = Vn(this.shape, t, !0); return q(e, e) } }),
  4381. uM = kn.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,
  4382. n = e.cy,
  4383. o = Math.max(e.r, 0),
  4384. a = e.startAngle,
  4385. r = e.endAngle,
  4386. s = e.clockwise,
  4387. l = Math.cos(a),
  4388. u = Math.sin(a);
  4389. t.moveTo(l * o + i, u * o + n), t.arc(i, n, o, a, r, !s) } }),
  4390. hM = kn.extend({ type: "compound", shape: { paths: null }, _updatePathDirty: function() { for (var t = this.__dirtyPath, e = this.shape.paths, i = 0; i < e.length; i++) t = t || e[i].__dirtyPath;
  4391. this.__dirtyPath = t, this.__dirty = this.__dirty || t }, beforeBrush: function() { this._updatePathDirty(); for (var t = this.shape.paths || [], e = this.getGlobalScale(), i = 0; i < t.length; i++) t[i].path || t[i].createPathProxy(), t[i].path.setScale(e[0], e[1]) }, buildPath: function(t, e) { for (var i = e.paths || [], n = 0; n < i.length; n++) i[n].buildPath(t, i[n].shape, !0) }, afterBrush: function() { for (var t = this.shape.paths || [], e = 0; e < t.length; e++) t[e].__dirtyPath = !1 }, getBoundingRect: function() { return this._updatePathDirty(), kn.prototype.getBoundingRect.call(this) } }),
  4392. cM = function(t) { this.colorStops = t || [] };
  4393. cM.prototype = { constructor: cM, addColorStop: function(t, e) { this.colorStops.push({ offset: t, color: e }) } }; var dM = function(t, e, i, n, o, a) { this.x = null == t ? 0 : t, this.y = null == e ? 0 : e, this.x2 = null == i ? 1 : i, this.y2 = null == n ? 0 : n, this.type = "linear", this.global = a || !1, cM.call(this, o) };
  4394. dM.prototype = { constructor: dM }, u(dM, cM); var fM = function(t, e, i, n, o) { this.x = null == t ? .5 : t, this.y = null == e ? .5 : e, this.r = null == i ? .5 : i, this.type = "radial", this.global = o || !1, cM.call(this, n) };
  4395. fM.prototype = { constructor: fM }, u(fM, cM), Gn.prototype.incremental = !0, Gn.prototype.clearDisplaybles = function() { this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.dirty(), this.notClear = !1 }, Gn.prototype.addDisplayable = function(t, e) { e ? this._temporaryDisplayables.push(t) : this._displayables.push(t), this.dirty() }, Gn.prototype.addDisplayables = function(t, e) { e = e || !1; for (var i = 0; i < t.length; i++) this.addDisplayable(t[i], e) }, Gn.prototype.eachPendingDisplayable = function(t) { for (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]) }, Gn.prototype.update = function() { this.updateTransform(); for (t = this._cursor; t < this._displayables.length; t++)(e = this._displayables[t]).parent = this, e.update(), e.parent = null; for (var t = 0; t < this._temporaryDisplayables.length; t++) { var e = this._temporaryDisplayables[t];
  4396. e.parent = this, e.update(), e.parent = null } }, Gn.prototype.brush = function(t, e) { for (i = this._cursor; i < this._displayables.length; i++)(n = this._displayables[i]).beforeBrush && n.beforeBrush(t), n.brush(t, i === this._cursor ? null : this._displayables[i - 1]), n.afterBrush && n.afterBrush(t);
  4397. this._cursor = i; for (var i = 0; i < this._temporaryDisplayables.length; i++) { var n = this._temporaryDisplayables[i];
  4398. n.beforeBrush && n.beforeBrush(t), n.brush(t, 0 === i ? null : this._temporaryDisplayables[i - 1]), n.afterBrush && n.afterBrush(t) }
  4399. this._temporaryDisplayables = [], this.notClear = !0 }; var pM = [];
  4400. Gn.prototype.getBoundingRect = function() { if (!this._rect) { for (var t = new ue(1 / 0, 1 / 0, -1 / 0, -1 / 0), e = 0; e < this._displayables.length; e++) { var i = this._displayables[e],
  4401. n = i.getBoundingRect().clone();
  4402. i.needLocalTransform() && n.applyTransform(i.getLocalTransform(pM)), t.union(n) }
  4403. this._rect = t } return this._rect }, Gn.prototype.contain = function(t, e) { var i = this.transformCoordToLocal(t, e); if (this.getBoundingRect().contain(i[0], i[1]))
  4404. for (var n = 0; n < this._displayables.length; n++)
  4405. if (this._displayables[n].contain(t, e)) return !0;
  4406. return !1 }, u(Gn, ui); var gM = Math.round,
  4407. mM = Math.max,
  4408. vM = Math.min,
  4409. yM = {},
  4410. xM = function(t, e) { for (var i = [], n = t.length, o = 0; o < n; o++) { var a = t[o];
  4411. a.path || a.createPathProxy(), a.__dirtyPath && a.buildPath(a.path, a.shape, !0), i.push(a.path) } var r = new kn(e); return r.createPathProxy(), r.buildPath = function(t) { t.appendPath(i); var e = t.getContext();
  4412. e && t.rebuildPath(e) }, r },
  4413. _M = R(),
  4414. wM = 0,
  4415. bM = (Object.freeze || Object)({ extendShape: Fn, extendPath: function(t, e) { return Rn(t, e) }, makePath: Wn, makeImage: Hn, mergePath: xM, resizePath: Un, subPixelOptimizeLine: Xn, subPixelOptimizeRect: jn, subPixelOptimize: Yn, setElementHoverStyle: no, isInEmphasis: oo, setHoverStyle: uo, setAsHoverStyleTrigger: ho, setLabelStyle: co, setTextStyle: fo, setText: function(t, e, i) { var n, o = { isRectText: !0 };!1 === i ? n = !0 : o.autoColor = i, po(t, e, o, n) }, getFont: _o, updateProps: bo, initProps: So, getTransform: Mo, applyTransform: Io, transformDirection: To, groupTransition: Ao, clipPointsByRect: Do, clipRectByRect: function(t, e) { var i = mM(t.x, e.x),
  4416. n = vM(t.x + t.width, e.x + e.width),
  4417. o = mM(t.y, e.y),
  4418. a = vM(t.y + t.height, e.y + e.height); if (n >= i && a >= o) return { x: i, y: o, width: n - i, height: a - o } }, createIcon: Co, Group: Zw, Image: hi, Text: qS, Circle: KS, Sector: QS, Ring: tM, Polygon: nM, Polyline: oM, Rect: aM, Line: rM, BezierCurve: lM, Arc: uM, IncrementalDisplayable: Gn, CompoundPath: hM, LinearGradient: dM, RadialGradient: fM, BoundingRect: ue }),
  4419. SM = ["textStyle", "color"],
  4420. MM = { getTextColor: function(t) { var e = this.ecModel; return this.getShallow("color") || (!t && e ? e.get(SM) : null) }, getFont: function() { return _o({ fontStyle: this.getShallow("fontStyle"), fontWeight: this.getShallow("fontWeight"), fontSize: this.getShallow("fontSize"), fontFamily: this.getShallow("fontFamily") }, this.ecModel) }, getTextRect: function(t) { return De(t, this.getFont(), this.getShallow("align"), this.getShallow("verticalAlign") || this.getShallow("baseline"), this.getShallow("padding"), this.getShallow("rich"), this.getShallow("truncateText")) } },
  4421. IM = Wb([
  4422. ["fill", "color"],
  4423. ["stroke", "borderColor"],
  4424. ["lineWidth", "borderWidth"],
  4425. ["opacity"],
  4426. ["shadowBlur"],
  4427. ["shadowOffsetX"],
  4428. ["shadowOffsetY"],
  4429. ["shadowColor"],
  4430. ["textPosition"],
  4431. ["textAlign"]
  4432. ]),
  4433. TM = { getItemStyle: function(t, e) { var i = IM(this, t, e),
  4434. n = this.getBorderLineDash(); return n && (i.lineDash = n), i }, getBorderLineDash: function() { var t = this.get("borderType"); return "solid" === t || null == t ? null : "dashed" === t ? [5, 5] : [1, 1] } },
  4435. AM = h,
  4436. DM = Bi();
  4437. Lo.prototype = { constructor: Lo, init: null, mergeOption: function(t) { n(this.option, t, !0) }, get: function(t, e) { return null == t ? this.option : ko(this.option, this.parsePath(t), !e && Po(this, t)) }, getShallow: function(t, e) { var i = this.option,
  4438. n = null == i ? i : i[t],
  4439. o = !e && Po(this, t); return null == n && o && (n = o.getShallow(t)), n }, getModel: function(t, e) { var i, n = null == t ? this.option : ko(this.option, t = this.parsePath(t)); return e = e || (i = Po(this, t)) && i.getModel(t), new Lo(n, e, this.ecModel) }, isEmpty: function() { return null == this.option }, restoreData: function() {}, clone: function() { return new(0, this.constructor)(i(this.option)) }, setReadOnly: function(t) {}, parsePath: function(t) { return "string" == typeof t && (t = t.split(".")), t }, customizeGetParent: function(t) { DM(this).getParent = t }, isAnimationEnabled: function() { if (!z_.node) { if (null != this.option.animation) return !!this.option.animation; if (this.parentModel) return this.parentModel.isAnimationEnabled() } } }, Xi(Lo), ji(Lo), AM(Lo, Zb), AM(Lo, Xb), AM(Lo, MM), AM(Lo, TM); var CM = 0,
  4440. LM = 1e-4,
  4441. kM = 9007199254740991,
  4442. PM = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/,
  4443. NM = (Object.freeze || Object)({ linearMap: Eo, parsePercent: Ro, round: zo, asc: Bo, getPrecision: Vo, getPrecisionSafe: Go, getPixelPrecision: Fo, getPercentWithPrecision: Wo, MAX_SAFE_INTEGER: kM, remRadian: Ho, isRadianAroundZero: Zo, parseDate: Uo, quantity: Xo, nice: Yo, quantile: function(t, e) { var i = (t.length - 1) * e + 1,
  4444. n = Math.floor(i),
  4445. o = +t[n - 1],
  4446. a = i - n; return a ? o + a * (t[n] - o) : o }, reformIntervals: qo, isNumeric: Ko }),
  4447. OM = L,
  4448. EM = /([&<>"'])/g,
  4449. RM = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" },
  4450. zM = ["a", "b", "c", "d", "e", "f", "g"],
  4451. BM = function(t, e) { return "{" + t + (null == e ? "" : e) + "}" },
  4452. VM = Oe,
  4453. GM = De,
  4454. FM = (Object.freeze || Object)({ addCommas: $o, toCamelCase: Jo, normalizeCssArray: OM, encodeHTML: Qo, formatTpl: ta, formatTplSimple: ea, getTooltipMarker: ia, formatTime: oa, capitalFirst: aa, truncateText: VM, getTextRect: GM }),
  4455. WM = d,
  4456. HM = ["left", "right", "top", "bottom", "width", "height"],
  4457. ZM = [
  4458. ["width", "left", "right"],
  4459. ["height", "top", "bottom"]
  4460. ],
  4461. UM = ra,
  4462. XM = (v(ra, "vertical"), v(ra, "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") } } }),
  4463. jM = Bi(),
  4464. YM = Lo.extend({ type: "component", id: "", name: "", mainType: "", subType: "", componentIndex: 0, defaultOption: null, ecModel: null, dependentModels: [], uid: null, layoutMode: null, $constructor: function(t, e, i, n) { Lo.call(this, t, e, i, n), this.uid = No("ec_cpt_model") }, init: function(t, e, i, n) { this.mergeDefaultAndTheme(t, i) }, mergeDefaultAndTheme: function(t, e) { var i = this.layoutMode,
  4465. o = i ? da(t) : {};
  4466. n(t, e.getTheme().get(this.mainType)), n(t, this.getDefaultOption()), i && ca(t, o, i) }, mergeOption: function(t, e) { n(this.option, t, !0); var i = this.layoutMode;
  4467. i && ca(this.option, t, i) }, optionUpdated: function(t, e) {}, getDefaultOption: function() { var t = jM(this); if (!t.defaultOption) { for (var e = [], i = this.constructor; i;) { var o = i.prototype.defaultOption;
  4468. o && e.push(o), i = i.superClass } for (var a = {}, r = e.length - 1; r >= 0; r--) a = n(a, e[r], !0);
  4469. 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) }) } });
  4470. Ki(YM, { registerWhenExtend: !0 }),
  4471. function(t) { var e = {};
  4472. t.registerSubTypeDefaulter = function(t, i) { t = Zi(t), e[t.main] = i }, t.determineSubType = function(i, n) { var o = n.type; if (!o) { var a = Zi(i).main;
  4473. t.hasSubTypes(i) && e[a] && (o = e[a](n)) } return o } }(YM),
  4474. function(t, e) {
  4475. function i(t) { var i = {},
  4476. a = []; return d(t, function(r) { var s = n(i, r),
  4477. u = o(s.originalDeps = e(r), t);
  4478. s.entryCount = u.length, 0 === s.entryCount && a.push(r), d(u, function(t) { l(s.predecessor, t) < 0 && s.predecessor.push(t); var e = n(i, t);
  4479. l(e.successor, t) < 0 && e.successor.push(r) }) }), { graph: i, noEntryList: a } }
  4480. function n(t, e) { return t[e] || (t[e] = { predecessor: [], successor: [] }), t[e] }
  4481. function o(t, e) { var i = []; return d(t, function(t) { l(e, t) >= 0 && i.push(t) }), i }
  4482. t.topologicalTravel = function(t, e, n, o) {
  4483. function a(t) { s[t].entryCount--, 0 === s[t].entryCount && l.push(t) } if (t.length) { var r = i(e),
  4484. s = r.graph,
  4485. l = r.noEntryList,
  4486. u = {}; for (d(t, function(t) { u[t] = !0 }); l.length;) { var h = l.pop(),
  4487. c = s[h],
  4488. f = !!u[h];
  4489. f && (n.call(o, h, c.originalDeps.slice()), delete u[h]), d(c.successor, f ? function(t) { u[t] = !0, a(t) } : a) }
  4490. d(u, function() { throw new Error("Circle dependency may exists") }) } } }(YM, function(t) { var e = []; return d(YM.getClassesByMainType(t), function(t) { e = e.concat(t.prototype.dependencies || []) }), e = f(e, function(t) { return Zi(t).main }), "dataset" !== t && l(e, "dataset") <= 0 && e.unshift("dataset"), e }), h(YM, XM); var qM = ""; "undefined" != typeof navigator && (qM = navigator.platform || ""); var KM = { color: ["#c23531", "#2f4554", "#61a0a8", "#d48265", "#91c7ae", "#749f83", "#ca8622", "#bda29a", "#6e7074", "#546570", "#c4ccd3"], gradientColor: ["#f6efa6", "#d88273", "#bf444c"], textStyle: { fontFamily: qM.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 },
  4491. $M = Bi(),
  4492. JM = { clearColorPalette: function() { $M(this).colorIdx = 0, $M(this).colorNameMap = {} }, getColorFromPalette: function(t, e, i) { var n = $M(e = e || this),
  4493. o = n.colorIdx || 0,
  4494. a = n.colorNameMap = n.colorNameMap || {}; if (a.hasOwnProperty(t)) return a[t]; var r = Di(this.get("color", !0)),
  4495. s = this.get("colorLayer", !0),
  4496. l = null != i && s ? pa(s, i) : r; if ((l = l || r) && l.length) { var u = l[o]; return t && (a[t] = u), n.colorIdx = (o + 1) % l.length, u } } },
  4497. QM = { cartesian2d: function(t, e, i, n) { var o = t.getReferringComponents("xAxis")[0],
  4498. a = t.getReferringComponents("yAxis")[0];
  4499. e.coordSysDims = ["x", "y"], i.set("x", o), i.set("y", a), ma(o) && (n.set("x", o), e.firstCategoryDimIndex = 0), ma(a) && (n.set("y", a), e.firstCategoryDimIndex = 1) }, singleAxis: function(t, e, i, n) { var o = t.getReferringComponents("singleAxis")[0];
  4500. e.coordSysDims = ["single"], i.set("single", o), ma(o) && (n.set("single", o), e.firstCategoryDimIndex = 0) }, polar: function(t, e, i, n) { var o = t.getReferringComponents("polar")[0],
  4501. a = o.findAxisModel("radiusAxis"),
  4502. r = o.findAxisModel("angleAxis");
  4503. e.coordSysDims = ["radius", "angle"], i.set("radius", a), i.set("angle", r), ma(a) && (n.set("radius", a), e.firstCategoryDimIndex = 0), ma(r) && (n.set("angle", r), e.firstCategoryDimIndex = 1) }, geo: function(t, e, i, n) { e.coordSysDims = ["lng", "lat"] }, parallel: function(t, e, i, n) { var o = t.ecModel,
  4504. a = o.getComponent("parallel", t.get("parallelIndex")),
  4505. r = e.coordSysDims = a.dimensions.slice();
  4506. d(a.parallelAxisIndex, function(t, a) { var s = o.getComponent("parallelAxis", t),
  4507. l = r[a];
  4508. i.set(l, s), ma(s) && null == e.firstCategoryDimIndex && (n.set(l, s), e.firstCategoryDimIndex = a) }) } },
  4509. tI = "original",
  4510. eI = "arrayRows",
  4511. iI = "objectRows",
  4512. nI = "keyedColumns",
  4513. oI = "unknown",
  4514. aI = "typedArray",
  4515. rI = "column",
  4516. sI = "row";
  4517. va.seriesDataToSource = function(t) { return new va({ data: t, sourceFormat: S(t) ? aI : tI, fromDataset: !1 }) }, ji(va); var lI = Bi(),
  4518. uI = "\0_ec_inner",
  4519. hI = Lo.extend({ init: function(t, e, i, n) { i = i || {}, this.option = null, this._theme = new Lo(i), this._optionManager = n }, setOption: function(t, e) { k(!(uI in t), "please use chart.getOption()"), this._optionManager.setOption(t, e), this.resetOption(null) }, resetOption: function(t) { var e = !1,
  4520. i = this._optionManager; if (!t || "recreate" === t) { var n = i.mountOption("recreate" === t);
  4521. this.option && "recreate" !== t ? (this.restoreData(), this.mergeOption(n)) : Pa.call(this, n), e = !0 } if ("timeline" !== t && "media" !== t || this.restoreData(), !t || "recreate" === t || "timeline" === t) { var o = i.getTimelineOption(this);
  4522. o && (this.mergeOption(o), e = !0) } if (!t || "recreate" === t || "media" === t) { var a = i.getMediaOption(this, this._api);
  4523. a.length && d(a, function(t) { this.mergeOption(t, e = !0) }, this) } return e }, mergeOption: function(t) { var e = this.option,
  4524. o = this._componentsMap,
  4525. r = [];
  4526. _a(this), d(t, function(t, o) { null != t && (YM.hasClass(o) ? o && r.push(o) : e[o] = null == e[o] ? i(t) : n(e[o], t, !0)) }), YM.topologicalTravel(r, YM.getAllClassMainTypes(), function(i, n) { var r = Di(t[i]),
  4527. s = Pi(o.get(i), r);
  4528. Ni(s), d(s, function(t, e) { var n = t.option;
  4529. w(n) && (t.keyInfo.mainType = i, t.keyInfo.subType = Oa(i, n, t.exist)) }); var l = Na(o, n);
  4530. e[i] = [], o.set(i, []), d(s, function(t, n) { var r = t.exist,
  4531. s = t.option; if (k(w(s) || r, "Empty component definition"), s) { var u = YM.getClass(i, t.keyInfo.subType, !0); if (r && r instanceof u) r.name = t.keyInfo.name, r.mergeOption(s, this), r.optionUpdated(s, !1);
  4532. else { var h = a({ dependentModels: l, componentIndex: n }, t.keyInfo);
  4533. a(r = new u(s, this, this, h), h), r.init(s, this, this, h), r.optionUpdated(null, !0) } } else r.mergeOption({}, this), r.optionUpdated({}, !1);
  4534. o.get(i)[n] = r, e[i][n] = r.option }, this), "series" === i && Ea(this, o.get("series")) }, this), this._seriesIndicesMap = R(this._seriesIndices = this._seriesIndices || []) }, getOption: function() { var t = i(this.option); return d(t, function(e, i) { if (YM.hasClass(i)) { for (var n = (e = Di(e)).length - 1; n >= 0; n--) Ei(e[n]) && e.splice(n, 1);
  4535. t[i] = e } }), delete t[uI], t }, getTheme: function() { return this._theme }, getComponent: function(t, e) { var i = this._componentsMap.get(t); if (i) return i[e || 0] }, queryComponents: function(t) { var e = t.mainType; if (!e) return []; var i = t.index,
  4536. n = t.id,
  4537. o = t.name,
  4538. a = this._componentsMap.get(e); if (!a || !a.length) return []; var r; if (null != i) y(i) || (i = [i]), r = g(f(i, function(t) { return a[t] }), function(t) { return !!t });
  4539. else if (null != n) { var s = y(n);
  4540. r = g(a, function(t) { return s && l(n, t.id) >= 0 || !s && t.id === n }) } else if (null != o) { var u = y(o);
  4541. r = g(a, function(t) { return u && l(o, t.name) >= 0 || !u && t.name === o }) } else r = a.slice(); return Ra(r, t) }, findComponents: function(t) { var e = t.query,
  4542. i = t.mainType,
  4543. n = function(t) { var e = i + "Index",
  4544. n = i + "Id",
  4545. o = i + "Name"; return !t || null == t[e] && null == t[n] && null == t[o] ? null : { mainType: i, index: t[e], id: t[n], name: t[o] } }(e); return function(e) { return t.filter ? g(e, t.filter) : e }(Ra(n ? this.queryComponents(n) : this._componentsMap.get(i), t)) }, eachComponent: function(t, e, i) { var n = this._componentsMap; "function" == typeof t ? (i = e, e = t, n.each(function(t, n) { d(t, function(t, o) { e.call(i, n, t, o) }) })) : _(t) ? d(n.get(t), e, i) : w(t) && d(this.findComponents(t), e, i) }, getSeriesByName: function(t) { return g(this._componentsMap.get("series"), function(e) { return e.name === t }) }, getSeriesByIndex: function(t) { return this._componentsMap.get("series")[t] }, getSeriesByType: function(t) { return g(this._componentsMap.get("series"), function(e) { return e.subType === t }) }, getSeries: function() { return this._componentsMap.get("series").slice() }, getSeriesCount: function() { return this._componentsMap.get("series").length }, eachSeries: function(t, e) { d(this._seriesIndices, function(i) { var n = this._componentsMap.get("series")[i];
  4546. t.call(e, n, i) }, this) }, eachRawSeries: function(t, e) { d(this._componentsMap.get("series"), t, e) }, eachSeriesByType: function(t, e, i) { d(this._seriesIndices, function(n) { var o = this._componentsMap.get("series")[n];
  4547. o.subType === t && e.call(i, o, n) }, this) }, eachRawSeriesByType: function(t, e, i) { return d(this.getSeriesByType(t), e, i) }, isSeriesFiltered: function(t) { return null == this._seriesIndicesMap.get(t.componentIndex) }, getCurrentSeriesIndices: function() { return (this._seriesIndices || []).slice() }, filterSeries: function(t, e) { Ea(this, g(this._componentsMap.get("series"), t, e)) }, restoreData: function(t) { var e = this._componentsMap;
  4548. Ea(this, e.get("series")); var i = [];
  4549. e.each(function(t, e) { i.push(e) }), YM.topologicalTravel(i, YM.getAllClassMainTypes(), function(i, n) { d(e.get(i), function(e) {
  4550. ("series" !== i || !La(e, t)) && e.restoreData() }) }) } });
  4551. h(hI, JM); var cI = ["getDom", "getZr", "getWidth", "getHeight", "getDevicePixelRatio", "dispatchAction", "isDisposed", "on", "off", "getDataURL", "getConnectedDataURL", "getModel", "getOption", "getViewOfComponentModel", "getViewOfSeriesModel"],
  4552. dI = {};
  4553. Ba.prototype = { constructor: Ba, create: function(t, e) { var i = [];
  4554. d(dI, function(n, o) { var a = n.create(t, e);
  4555. i = i.concat(a || []) }), this._coordinateSystems = i }, update: function(t, e) { d(this._coordinateSystems, function(i) { i.update && i.update(t, e) }) }, getCoordinateSystems: function() { return this._coordinateSystems.slice() } }, Ba.register = function(t, e) { dI[t] = e }, Ba.get = function(t) { return dI[t] }; var fI = d,
  4556. pI = i,
  4557. gI = f,
  4558. mI = n,
  4559. vI = /^(min|max)?(.+)$/;
  4560. Va.prototype = { constructor: Va, setOption: function(t, e) { t && d(Di(t.series), function(t) { t && t.data && S(t.data) && N(t.data) }), t = pI(t, !0); var i = this._optionBackup,
  4561. n = Ga.call(this, t, e, !i);
  4562. this._newBaseOption = n.baseOption, i ? (Za(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 = gI(e.timelineOptions, pI), this._mediaList = gI(e.mediaList, pI), this._mediaDefault = pI(e.mediaDefault), this._currentMediaIndices = [], pI(t ? e.baseOption : this._newBaseOption) }, getTimelineOption: function(t) { var e, i = this._timelineOptions; if (i.length) { var n = t.getComponent("timeline");
  4563. n && (e = pI(i[n.getCurrentIndex()], !0)) } return e }, getMediaOption: function(t) { var e = this._api.getWidth(),
  4564. i = this._api.getHeight(),
  4565. n = this._mediaList,
  4566. o = this._mediaDefault,
  4567. a = [],
  4568. r = []; if (!n.length && !o) return r; for (var s = 0, l = n.length; s < l; s++) Fa(n[s].query, e, i) && a.push(s); return !a.length && o && (a = [-1]), a.length && !Ha(a, this._currentMediaIndices) && (r = gI(a, function(t) { return pI(-1 === t ? o.option : n[t].option) })), this._currentMediaIndices = a, r } }; var yI = d,
  4569. xI = w,
  4570. _I = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"],
  4571. wI = function(t, e) { yI($a(t.series), function(t) { xI(t) && Ka(t) }); var i = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"];
  4572. e && i.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"), yI(i, function(e) { yI($a(t[e]), function(t) { t && (Ya(t, "axisLabel"), Ya(t.axisPointer, "label")) }) }), yI($a(t.parallel), function(t) { var e = t && t.parallelAxisDefault;
  4573. Ya(e, "axisLabel"), Ya(e && e.axisPointer, "label") }), yI($a(t.calendar), function(t) { Xa(t, "itemStyle"), Ya(t, "dayLabel"), Ya(t, "monthLabel"), Ya(t, "yearLabel") }), yI($a(t.radar), function(t) { Ya(t, "name") }), yI($a(t.geo), function(t) { xI(t) && (qa(t), yI($a(t.regions), function(t) { qa(t) })) }), yI($a(t.timeline), function(t) { qa(t), Xa(t, "label"), Xa(t, "itemStyle"), Xa(t, "controlStyle", !0); var e = t.data;
  4574. y(e) && d(e, function(t) { w(t) && (Xa(t, "label"), Xa(t, "itemStyle")) }) }), yI($a(t.toolbox), function(t) { Xa(t, "iconStyle"), yI(t.feature, function(t) { Xa(t, "iconStyle") }) }), Ya(Ja(t.axisPointer), "label"), Ya(Ja(t.tooltip).axisPointer, "label") },
  4575. bI = [
  4576. ["x", "left"],
  4577. ["y", "top"],
  4578. ["x2", "right"],
  4579. ["y2", "bottom"]
  4580. ],
  4581. SI = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"],
  4582. MI = function(t, e) { wI(t, e), t.series = Di(t.series), d(t.series, function(t) { if (w(t)) { var e = t.type; if ("pie" !== e && "gauge" !== e || null != t.clockWise && (t.clockwise = t.clockWise), "gauge" === e) { var i = Qa(t, "pointer.color");
  4583. null != i && tr(t, "itemStyle.normal.color", i) }
  4584. er(t) } }), t.dataRange && (t.visualMap = t.dataRange), d(SI, function(e) { var i = t[e];
  4585. i && (y(i) || (i = [i]), d(i, function(t) { er(t) })) }) },
  4586. II = nr.prototype;
  4587. II.pure = !1, II.persistent = !0, II.getSource = function() { return this._source }; var TI = { 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: rr }, 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 < i.length; n++) { var o = i[n];
  4588. e.push(o ? o[t] : null) } return e }, appendData: function() { throw new Error('Do not support appendData when set seriesLayoutBy: "row".') } }, objectRows: { pure: !0, count: or, getItem: ar, appendData: rr }, keyedColumns: { pure: !0, count: function() { var t = this._source.dimensionsDefine[0].name,
  4589. e = this._data[t]; return e ? e.length : 0 }, getItem: function(t) { for (var e = [], i = this._source.dimensionsDefine, n = 0; n < i.length; n++) { var o = this._data[i[n].name];
  4590. e.push(o ? o[t] : null) } return e }, appendData: function(t) { var e = this._data;
  4591. d(t, function(t, i) { for (var n = e[i] || (e[i] = []), o = 0; o < (t || []).length; o++) n.push(t[o]) }) } }, original: { count: or, getItem: ar, appendData: rr }, typedArray: { persistent: !1, pure: !0, count: function() { return this._data ? this._data.length / this._dimSize : 0 }, getItem: function(t, e) { t -= this._offset, e = e || []; for (var i = this._dimSize * t, n = 0; n < this._dimSize; n++) e[n] = this._data[i + n]; return e }, appendData: function(t) { this._data = t }, clean: function() { this._offset += this.count(), this._data = null } } },
  4592. AI = { arrayRows: sr, objectRows: function(t, e, i, n) { return null != i ? t[n] : t }, keyedColumns: sr, original: function(t, e, i, n) { var o = Li(t); return null != i && o instanceof Array ? o[i] : o }, typedArray: sr },
  4593. DI = { arrayRows: lr, objectRows: function(t, e, i, n) { return ur(t[e], this._dimensionInfos[e]) }, keyedColumns: lr, original: function(t, e, i, n) { var o = t && (null == t.value ? t : t.value); return !this._rawData.pure && ki(t) && (this.hasItemOption = !0), ur(o instanceof Array ? o[n] : o, this._dimensionInfos[e]) }, typedArray: function(t, e, i, n) { return t[n] } },
  4594. CI = /\{@(.+?)\}/g,
  4595. LI = { getDataParams: function(t, e) { var i = this.getData(e),
  4596. n = this.getRawValue(t, e),
  4597. o = i.getRawIndex(t),
  4598. a = i.getName(t),
  4599. r = i.getRawDataItem(t),
  4600. s = i.getItemVisual(t, "color"),
  4601. l = this.ecModel.getComponent("tooltip"),
  4602. u = Hi(l && l.get("renderMode")),
  4603. h = this.mainType,
  4604. c = "series" === h; 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: a, dataIndex: o, data: r, dataType: e, value: n, color: s, marker: ia({ color: s, renderMode: u }), $vars: ["seriesName", "name", "value"] } }, getFormattedLabel: function(t, e, i, n, o) { e = e || "normal"; var a = this.getData(i),
  4605. r = a.getItemModel(t),
  4606. s = this.getDataParams(t, i);
  4607. null != n && s.value instanceof Array && (s.value = s.value[n]); var l = r.get("normal" === e ? [o || "label", "formatter"] : [e, o || "label", "formatter"]); return "function" == typeof l ? (s.status = e, l(s)) : "string" == typeof l ? ta(l, s).replace(CI, function(e, i) { var n = i.length; return "[" === i.charAt(0) && "]" === i.charAt(n - 1) && (i = +i.slice(1, n - 1)), hr(a, t, i) }) : void 0 }, getRawValue: function(t, e) { return hr(this.getData(e), t) }, formatTooltip: function() {} },
  4608. kI = fr.prototype;
  4609. kI.perform = function(t) {
  4610. function e(t) { return !(t >= 1) && (t = 1), t } var i = this._upstream,
  4611. n = t && t.skip; if (this._dirty && i) { var o = this.context;
  4612. o.data = o.outputData = i.context.outputData }
  4613. this.__pipeline && (this.__pipeline.currentTask = this); var a;
  4614. this._plan && !n && (a = this._plan(this.context)); var r = e(this._modBy),
  4615. s = this._modDataCount || 0,
  4616. l = e(t && t.modBy),
  4617. u = t && t.modDataCount || 0;
  4618. r === l && s === u || (a = "reset"); var h;
  4619. (this._dirty || "reset" === a) && (this._dirty = !1, h = gr(this, n)), this._modBy = l, this._modDataCount = u; var c = t && t.step; if (this._dueEnd = i ? i._outputDueEnd : this._count ? this._count(this.context) : 1 / 0, this._progress) { var d = this._dueIndex,
  4620. f = Math.min(null != c ? this._dueIndex + c : 1 / 0, this._dueEnd); if (!n && (h || d < f)) { var p = this._progress; if (y(p))
  4621. for (var g = 0; g < p.length; g++) pr(this, p[g], d, f, l, u);
  4622. else pr(this, p, d, f, l, u) }
  4623. this._dueIndex = f; var m = null != this._settedOutputEnd ? this._settedOutputEnd : f;
  4624. this._outputDueEnd = m } else this._dueIndex = this._outputDueEnd = null != this._settedOutputEnd ? this._settedOutputEnd : this._dueEnd; return this.unfinished() }; var PI = function() {
  4625. function t() { return n < i ? n++ : null }
  4626. function e() { var t = n % r * o + Math.ceil(n / r),
  4627. e = n >= i ? null : t < a ? 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 }();
  4628. kI.dirty = function() { this._dirty = !0, this._onDirty && this._onDirty(this.context) }, kI.unfinished = function() { return this._progress && this._dueIndex < this._dueEnd }, kI.pipe = function(t) {
  4629. (this._downstream !== t || this._dirty) && (this._downstream = t, t._upstream = this, t.dirty()) }, kI.dispose = function() { this._disposed || (this._upstream && (this._upstream._downstream = null), this._downstream && (this._downstream._upstream = null), this._dirty = !1, this._disposed = !0) }, kI.getUpstream = function() { return this._upstream }, kI.getDownstream = function() { return this._downstream }, kI.setOutputEnd = function(t) { this._outputDueEnd = this._settedOutputEnd = t }; var NI = Bi(),
  4630. OI = YM.extend({ type: "series.__base__", seriesIndex: 0, coordinateSystem: null, defaultOption: null, legendDataProvider: null, visualColorAccessPath: "itemStyle.color", layoutMode: null, init: function(t, e, i, n) { this.seriesIndex = this.componentIndex, this.dataTask = dr({ count: yr, reset: xr }), this.dataTask.context = { model: this }, this.mergeDefaultAndTheme(t, i), wa(this); var o = this.getInitialData(t, i);
  4631. wr(o, this), this.dataTask.context.data = o, NI(this).dataBeforeProcessed = o, mr(this) }, mergeDefaultAndTheme: function(t, e) { var i = this.layoutMode,
  4632. o = i ? da(t) : {},
  4633. a = this.subType;
  4634. YM.hasClass(a) && (a += "Series"), n(t, e.getTheme().get(this.subType)), n(t, this.getDefaultOption()), Ci(t, "label", ["show"]), this.fillDataTextStyle(t.data), i && ca(t, o, i) }, mergeOption: function(t, e) { t = n(this.option, t, !0), this.fillDataTextStyle(t.data); var i = this.layoutMode;
  4635. i && ca(this.option, t, i), wa(this); var o = this.getInitialData(t, e);
  4636. wr(o, this), this.dataTask.dirty(), this.dataTask.context.data = o, NI(this).dataBeforeProcessed = o, mr(this) }, fillDataTextStyle: function(t) { if (t && !S(t))
  4637. for (var e = ["show"], i = 0; i < t.length; i++) t[i] && t[i].label && Ci(t[i], "label", e) }, getInitialData: function() {}, appendData: function(t) { this.getRawData().appendData(t.data) }, getData: function(t) { var e = Sr(this); if (e) { var i = e.context.data; return null == t ? i : i.getLinkedData(t) } return NI(this).data }, setData: function(t) { var e = Sr(this); if (e) { var i = e.context;
  4638. i.data !== t && e.modifyOutputEnd && e.setOutputEnd(t.count()), i.outputData = t, e !== this.dataTask && (i.data = t) }
  4639. NI(this).data = t }, getSource: function() { return xa(this) }, getRawData: function() { return NI(this).dataBeforeProcessed }, getBaseAxis: function() { var t = this.coordinateSystem; return t && t.getBaseAxis && t.getBaseAxis() }, formatTooltip: function(t, e, i, n) {
  4640. function o(t) { return { renderMode: n, content: Qo($o(t)), style: l } } var a = this,
  4641. r = "html" === (n = n || "html") ? "<br/>" : "\n",
  4642. s = "richText" === n,
  4643. l = {},
  4644. u = 0,
  4645. h = this.getData(),
  4646. c = h.mapDimension("defaultedTooltip", !0),
  4647. f = c.length,
  4648. g = this.getRawValue(t),
  4649. m = y(g),
  4650. v = h.getItemVisual(t, "color");
  4651. w(v) && v.colorStops && (v = (v.colorStops[0] || {}).color), v = v || "transparent"; var x = (f > 1 || m && !f ? function(i) {
  4652. function o(t, i) { var o = h.getDimensionInfo(i); if (o && !1 !== o.otherDims.tooltip) { var c = o.type,
  4653. d = "sub" + a.seriesIndex + "at" + u,
  4654. p = ia({ color: v, type: "subItem", renderMode: n, markerId: d }),
  4655. g = "string" == typeof p ? p : p.content,
  4656. m = (r ? g + Qo(o.displayName || "-") + ": " : "") + Qo("ordinal" === c ? t + "" : "time" === c ? e ? "" : oa("yyyy/MM/dd hh:mm:ss", t) : $o(t));
  4657. m && f.push(m), s && (l[d] = v, ++u) } } var r = p(i, function(t, e, i) { var n = h.getDimensionInfo(i); return t |= n && !1 !== n.tooltip && null != n.displayName }, 0),
  4658. f = [];
  4659. c.length ? d(c, function(e) { o(hr(h, t, e), e) }) : d(i, o); var g = r ? s ? "\n" : "<br/>" : "",
  4660. m = g + f.join(g || ", "); return { renderMode: n, content: m, style: l } }(g) : o(f ? hr(h, t, c[0]) : m ? g[0] : g)).content,
  4661. _ = a.seriesIndex + "at" + u,
  4662. b = ia({ color: v, type: "item", renderMode: n, markerId: _ });
  4663. l[_] = v, ++u; var S = h.getName(t),
  4664. M = this.name;
  4665. Oi(this) || (M = ""), M = M ? Qo(M) + (e ? ": " : r) : ""; var I = "string" == typeof b ? b : b.content; return { html: e ? I + M + x : M + I + (S ? Qo(S) + ": " + x : x), markers: l } }, isAnimationEnabled: function() { if (z_.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,
  4666. o = JM.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 });
  4667. h(OI, LI), h(OI, JM); var EI = function() { this.group = new Zw, this.uid = No("viewComponent") };
  4668. EI.prototype = { constructor: EI, init: function(t, e) {}, render: function(t, e, i, n) {}, dispose: function() {}, filterForExposedEvent: null }; var RI = EI.prototype;
  4669. RI.updateView = RI.updateLayout = RI.updateVisual = function(t, e, i, n) {}, Xi(EI), Ki(EI, { registerWhenExtend: !0 }); var zI = function() { var t = Bi(); return function(e) { var i = t(e),
  4670. n = e.pipelineContext,
  4671. o = i.large,
  4672. a = i.progressiveRender,
  4673. r = i.large = n.large,
  4674. s = i.progressiveRender = n.progressiveRender; return !!(o ^ r || a ^ s) && "reset" } },
  4675. BI = Bi(),
  4676. VI = zI();
  4677. Mr.prototype = { type: "chart", init: function(t, e) {}, render: function(t, e, i, n) {}, highlight: function(t, e, i, n) { Tr(t.getData(), n, "emphasis") }, downplay: function(t, e, i, n) { Tr(t.getData(), n, "normal") }, remove: function(t, e) { this.group.removeAll() }, dispose: function() {}, incrementalPrepareRender: null, incrementalRender: null, updateTransform: null, filterForExposedEvent: null }; var GI = Mr.prototype;
  4678. GI.updateView = GI.updateLayout = GI.updateVisual = function(t, e, i, n) { this.render(t, e, i, n) }, Xi(Mr), Ki(Mr, { registerWhenExtend: !0 }), Mr.markUpdateMethod = function(t, e) { BI(t).updateMethod = e }; var FI = { 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) } } },
  4679. WI = "\0__throttleOriginMethod",
  4680. HI = "\0__throttleRate",
  4681. ZI = "\0__throttleType",
  4682. UI = { createOnAllSeries: !0, performRawSeries: !0, reset: function(t, e) { var i = t.getData(),
  4683. n = (t.visualColorAccessPath || "itemStyle.color").split("."),
  4684. o = t.get(n) || t.getColorFromPalette(t.name, null, e.getSeriesCount()); if (i.setVisual("color", o), !e.isSeriesFiltered(t)) { "function" != typeof o || o instanceof cM || i.each(function(e) { i.setItemVisual(e, "color", o(t.getDataParams(e))) }); return { dataEach: i.hasItemOption ? function(t, e) { var i = t.getItemModel(e).get(n, !0);
  4685. null != i && t.setItemVisual(e, "color", i) } : null } } } },
  4686. XI = { 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: "鏁g偣鍥�", effectScatter: "娑熸吉鏁g偣鍥�", 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: "" } } } },
  4687. jI = function(t, e) {
  4688. function i(t, e) { if ("string" != typeof t) return t; var i = t; return d(e, function(t, e) { i = i.replace(new RegExp("\\{\\s*" + e + "\\s*\\}", "g"), t) }), i }
  4689. function n(t) { var e = a.get(t); if (null == e) { for (var i = t.split("."), n = XI.aria, o = 0; o < i.length; ++o) n = n[i[o]]; return n } return e }
  4690. function o(t) { return XI.series.typeNames[t] || "鑷畾涔夊浘" } var a = e.getModel("aria"); if (a.get("show"))
  4691. if (a.get("description")) t.setAttribute("aria-label", a.get("description"));
  4692. else { var r = 0;
  4693. e.eachSeries(function(t, e) {++r }, this); var s, l = a.get("data.maxCount") || 10,
  4694. u = a.get("series.maxCount") || 10,
  4695. h = Math.min(r, u); if (!(r < 1)) { var c = function() { var t = e.getModel("title").option; return t && t.length && (t = t[0]), t && t.text }();
  4696. s = c ? i(n("general.withTitle"), { title: c }) : n("general.withoutTitle"); var f = [];
  4697. s += i(n(r > 1 ? "series.multiple.prefix" : "series.single.prefix"), { seriesCount: r }), e.eachSeries(function(t, e) { if (e < h) { var a, s = t.get("name"),
  4698. u = "series." + (r > 1 ? "multiple" : "single") + ".";
  4699. a = i(a = n(s ? u + "withName" : u + "withoutName"), { seriesId: t.seriesIndex, seriesName: t.get("name"), seriesType: o(t.subType) }); var c = t.getData();
  4700. window.data = c, c.count() > l ? a += i(n("data.partialData"), { displayCnt: l }) : a += n("data.allData"); for (var d = [], p = 0; p < c.count(); p++)
  4701. if (p < l) { var g = c.getName(p),
  4702. m = hr(c, p);
  4703. d.push(i(n(g ? "data.withName" : "data.withoutName"), { name: g, value: m })) }
  4704. a += d.join(n("data.separator.middle")) + n("data.separator.end"), f.push(a) } }), s += f.join(n("series.multiple.separator.middle")) + n("series.multiple.separator.end"), t.setAttribute("aria-label", s) } } },
  4705. YI = Math.PI,
  4706. qI = Pr.prototype;
  4707. qI.restoreData = function(t, e) { t.restoreData(e), this._stageTaskMap.each(function(t) { var e = t.overallTask;
  4708. e && e.dirty() }) }, qI.getPerformArgs = function(t, e) { if (t.__pipeline) { var i = this._pipelineMap.get(t.__pipeline.id),
  4709. n = i.context,
  4710. o = !e && i.progressiveEnabled && (!n || n.progressiveRender) && t.__idxInPipeline > i.blockIndex ? i.step : null,
  4711. a = n && n.modDataCount; return { step: o, modBy: null != a ? Math.ceil(a / o) : null, modDataCount: a } } }, qI.getPipeline = function(t) { return this._pipelineMap.get(t) }, qI.updateStreamModes = function(t, e) { var i = this._pipelineMap.get(t.uid),
  4712. n = t.getData().count(),
  4713. o = i.progressiveEnabled && e.incrementalPrepareRender && n >= i.threshold,
  4714. a = t.get("large") && n >= t.get("largeThreshold"),
  4715. r = "mod" === t.get("progressiveChunkMode") ? n : null;
  4716. t.pipelineContext = i.context = { progressiveRender: o, modDataCount: r, large: a } }, qI.restorePipelines = function(t) { var e = this,
  4717. i = e._pipelineMap = R();
  4718. t.eachSeries(function(t) { var n = t.getProgressive(),
  4719. o = t.uid;
  4720. 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 }), Zr(e, t, t.dataTask) }) }, qI.prepareStageTasks = function() { var t = this._stageTaskMap,
  4721. e = this.ecInstance.getModel(),
  4722. i = this.api;
  4723. d(this._allHandlers, function(n) { var o = t.get(n.uid) || t.set(n.uid, []);
  4724. n.reset && Or(this, n, o, e, i), n.overallReset && Er(this, n, o, e, i) }, this) }, qI.prepareView = function(t, e, i, n) { var o = t.renderTask,
  4725. a = o.context;
  4726. a.model = e, a.ecModel = i, a.api = n, o.__block = !t.incrementalPrepareRender, Zr(this, e, o) }, qI.performDataProcessorTasks = function(t, e) { Nr(this, this._dataProcessorHandlers, t, e, { block: !0 }) }, qI.performVisualTasks = function(t, e, i) { Nr(this, this._visualHandlers, t, e, i) }, qI.performSeriesTasks = function(t) { var e;
  4727. t.eachSeries(function(t) { e |= t.dataTask.perform() }), this.unfinished |= e }, qI.plan = function() { this._pipelineMap.each(function(t) { var e = t.tail;
  4728. do { if (e.__block) { t.blockIndex = e.__idxInPipeline; break }
  4729. e = e.getUpstream() } while (e) }) }; var KI = qI.updatePayload = function(t, e) { "remain" !== e && (t.context.payload = e) },
  4730. $I = Wr(0);
  4731. Pr.wrapStageHandler = function(t, e) { return x(t) && (t = { overallReset: t, seriesType: Ur(t) }), t.uid = No("stageHandler"), e && (t.visualType = e), t }; var JI, QI = {},
  4732. tT = {};
  4733. Xr(QI, hI), Xr(tT, za), QI.eachSeriesByType = QI.eachRawSeriesByType = function(t) { JI = t }, QI.eachComponent = function(t) { "series" === t.mainType && t.subType && (JI = t.subType) }; var eT = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1", "#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"],
  4734. iT = { color: eT, colorLayer: [
  4735. ["#37A2DA", "#ffd85c", "#fd7b5f"],
  4736. ["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"],
  4737. ["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA", "#96BFFF"], eT
  4738. ] },
  4739. nT = ["#dd6b66", "#759aa0", "#e69d87", "#8dc1a9", "#ea7e53", "#eedd78", "#73a373", "#73b9bc", "#7289ab", "#91ca8c", "#f49f42"],
  4740. oT = { color: nT, backgroundColor: "#333", tooltip: { axisPointer: { lineStyle: { color: "#eee" }, crossStyle: { color: "#eee" } } }, legend: { textStyle: { color: "#eee" } }, textStyle: { color: "#eee" }, title: { textStyle: { color: "#eee" } }, toolbox: { iconStyle: { normal: { borderColor: "#eee" } } }, dataZoom: { textStyle: { color: "#eee" } }, visualMap: { textStyle: { color: "#eee" } }, timeline: { lineStyle: { color: "#eee" }, itemStyle: { normal: { color: nT[1] } }, label: { normal: { textStyle: { color: "#eee" } } }, controlStyle: { normal: { color: "#eee", borderColor: "#eee" } } }, timeAxis: { axisLine: { lineStyle: { color: "#eee" } }, axisTick: { lineStyle: { color: "#eee" } }, axisLabel: { textStyle: { color: "#eee" } }, splitLine: { lineStyle: { type: "dashed", color: "#aaa" } }, splitArea: { areaStyle: { color: "#eee" } } }, logAxis: { axisLine: { lineStyle: { color: "#eee" } }, axisTick: { lineStyle: { color: "#eee" } }, axisLabel: { textStyle: { color: "#eee" } }, splitLine: { lineStyle: { type: "dashed", color: "#aaa" } }, splitArea: { areaStyle: { color: "#eee" } } }, valueAxis: { axisLine: { lineStyle: { color: "#eee" } }, axisTick: { lineStyle: { color: "#eee" } }, axisLabel: { textStyle: { color: "#eee" } }, splitLine: { lineStyle: { type: "dashed", color: "#aaa" } }, splitArea: { areaStyle: { color: "#eee" } } }, categoryAxis: { axisLine: { lineStyle: { color: "#eee" } }, axisTick: { lineStyle: { color: "#eee" } }, axisLabel: { textStyle: { color: "#eee" } }, splitLine: { lineStyle: { type: "dashed", color: "#aaa" } }, splitArea: { areaStyle: { color: "#eee" } } }, line: { symbol: "circle" }, graph: { color: nT }, gauge: { title: { textStyle: { color: "#eee" } } }, candlestick: { itemStyle: { normal: { color: "#FD1050", color0: "#0CF49B", borderColor: "#FD1050", borderColor0: "#0CF49B" } } } };
  4741. oT.categoryAxis.splitLine.show = !1, YM.extend({ type: "dataset", defaultOption: { seriesLayoutBy: rI, sourceHeader: null, dimensions: null, source: null }, optionUpdated: function() { ya(this) } }), EI.extend({ type: "dataset" }); var aT = kn.extend({ type: "ellipse", shape: { cx: 0, cy: 0, rx: 0, ry: 0 }, buildPath: function(t, e) { var i = .5522848,
  4742. n = e.cx,
  4743. o = e.cy,
  4744. a = e.rx,
  4745. r = e.ry,
  4746. s = a * i,
  4747. l = r * i;
  4748. 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() } }),
  4749. rT = /[\s,]+/;
  4750. Yr.prototype.parse = function(t, e) { e = e || {}; var i = jr(t); if (!i) throw new Error("Illegal svg"); var n = new Zw;
  4751. this._root = n; var o = i.getAttribute("viewBox") || "",
  4752. a = parseFloat(i.getAttribute("width") || e.width),
  4753. r = parseFloat(i.getAttribute("height") || e.height);
  4754. isNaN(a) && (a = null), isNaN(r) && (r = null), Jr(i, n, null, !0); for (var s = i.firstChild; s;) this._parseNode(s, n), s = s.nextSibling; var l, u; if (o) { var h = P(o).split(rT);
  4755. 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 = is(l, a, r), !e.ignoreViewBox)) { var c = n;
  4756. (n = new Zw).add(c), c.scale = u.scale.slice(), c.position = u.position.slice() } return e.ignoreRootClip || null == a || null == r || n.setClipPath(new aM({ shape: { x: 0, y: 0, width: a, height: r } })), { root: n, width: a, height: r, viewBoxRect: l, viewBoxTransform: u } }, Yr.prototype._parseNode = function(t, e) { var i = t.nodeName.toLowerCase(); "defs" === i ? this._isDefine = !0 : "text" === i && (this._isText = !0); var n; if (this._isDefine) { if (r = lT[i]) { var o = r.call(this, t),
  4757. a = t.getAttribute("id");
  4758. a && (this._defs[a] = o) } } else { var r = sT[i];
  4759. r && (n = r.call(this, t, e), e.add(n)) } for (var s = t.firstChild; s;) 1 === s.nodeType && this._parseNode(s, n), 3 === s.nodeType && this._isText && this._parseText(s, n), s = s.nextSibling; "defs" === i ? this._isDefine = !1 : "text" === i && (this._isText = !1) }, Yr.prototype._parseText = function(t, e) { if (1 === t.nodeType) { var i = t.getAttribute("dx") || 0,
  4760. n = t.getAttribute("dy") || 0;
  4761. this._textX += parseFloat(i), this._textY += parseFloat(n) } var o = new qS({ style: { text: t.textContent, transformText: !0 }, position: [this._textX || 0, this._textY || 0] });
  4762. Kr(e, o), Jr(t, o, this._defs); var a = o.style.fontSize;
  4763. a && a < 9 && (o.style.fontSize = 9, o.scale = o.scale || [1, 1], o.scale[0] *= a / 9, o.scale[1] *= a / 9); var r = o.getBoundingRect(); return this._textX += r.width, e.add(o), o }; var sT = { g: function(t, e) { var i = new Zw; return Kr(e, i), Jr(t, i, this._defs), i }, rect: function(t, e) { var i = new aM; return Kr(e, i), Jr(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 KS; return Kr(e, i), Jr(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 rM; return Kr(e, i), Jr(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 aT; return Kr(e, i), Jr(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");
  4764. i && (i = $r(i)); var n = new nM({ shape: { points: i || [] } }); return Kr(e, n), Jr(t, n, this._defs), n }, polyline: function(t, e) { var i = new kn;
  4765. Kr(e, i), Jr(t, i, this._defs); var n = t.getAttribute("points"); return n && (n = $r(n)), new oM({ shape: { points: n || [] } }) }, image: function(t, e) { var i = new hi; return Kr(e, i), Jr(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,
  4766. n = t.getAttribute("y") || 0,
  4767. o = t.getAttribute("dx") || 0,
  4768. a = t.getAttribute("dy") || 0;
  4769. this._textX = parseFloat(i) + parseFloat(o), this._textY = parseFloat(n) + parseFloat(a); var r = new Zw; return Kr(e, r), Jr(t, r, this._defs), r }, tspan: function(t, e) { var i = t.getAttribute("x"),
  4770. n = t.getAttribute("y");
  4771. null != i && (this._textX = parseFloat(i)), null != n && (this._textY = parseFloat(n)); var o = t.getAttribute("dx") || 0,
  4772. a = t.getAttribute("dy") || 0,
  4773. r = new Zw; return Kr(e, r), Jr(t, r, this._defs), this._textX += o, this._textY += a, r }, path: function(t, e) { var i = En(t.getAttribute("d") || ""); return Kr(e, i), Jr(t, i, this._defs), i } },
  4774. lT = { lineargradient: function(t) { var e = parseInt(t.getAttribute("x1") || 0, 10),
  4775. i = parseInt(t.getAttribute("y1") || 0, 10),
  4776. n = parseInt(t.getAttribute("x2") || 10, 10),
  4777. o = parseInt(t.getAttribute("y2") || 0, 10),
  4778. a = new dM(e, i, n, o); return qr(t, a), a }, radialgradient: function(t) {} },
  4779. uT = { 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" },
  4780. hT = /url\(\s*#(.*?)\)/,
  4781. cT = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g,
  4782. dT = /([^\s:;]+)\s*:\s*([^:;]+)/g,
  4783. fT = R(),
  4784. pT = { registerMap: function(t, e, i) { var n; return y(e) ? n = e : e.svg ? n = [{ type: "svg", source: e.svg, specialAreas: e.specialAreas }] : (e.geoJson && !e.features && (i = e.specialAreas, e = e.geoJson), n = [{ type: "geoJSON", source: e, specialAreas: i }]), d(n, function(t) { var e = t.type; "geoJson" === e && (e = t.type = "geoJSON"), (0, gT[e])(t) }), fT.set(t, n) }, retrieveMap: function(t) { return fT.get(t) } },
  4785. gT = { geoJSON: function(t) { var e = t.source;
  4786. t.geoJSON = _(e) ? "undefined" != typeof JSON && JSON.parse ? JSON.parse(e) : new Function("return (" + e + ");")() : e }, svg: function(t) { t.svgXML = jr(t.source) } },
  4787. mT = k,
  4788. vT = d,
  4789. yT = x,
  4790. xT = w,
  4791. _T = YM.parseClassType,
  4792. wT = { zrender: "4.0.5" },
  4793. bT = 1e3,
  4794. ST = 1e3,
  4795. MT = 3e3,
  4796. IT = { PROCESSOR: { FILTER: bT, STATISTIC: 5e3 }, VISUAL: { LAYOUT: ST, GLOBAL: 2e3, CHART: MT, COMPONENT: 4e3, BRUSH: 5e3 } },
  4797. TT = "__flagInMainProcess",
  4798. AT = "__optionUpdated",
  4799. DT = /^[a-zA-Z0-9_]+$/;
  4800. as.prototype.on = os("on"), as.prototype.off = os("off"), as.prototype.one = os("one"), h(as, aw); var CT = rs.prototype;
  4801. CT._onframe = function() { if (!this._disposed) { var t = this._scheduler; if (this[AT]) { var e = this[AT].silent;
  4802. this[TT] = !0, ls(this), LT.update.call(this), this[TT] = !1, this[AT] = !1, ds.call(this, e), fs.call(this, e) } else if (t.unfinished) { var i = 1,
  4803. n = this._model;
  4804. this._api;
  4805. t.unfinished = !1;
  4806. do { var o = +new Date;
  4807. t.performSeriesTasks(n), t.performDataProcessorTasks(n), hs(this, n), t.performVisualTasks(n), xs(this, this._model, 0, "remain"), i -= +new Date - o } while (i > 0 && t.unfinished);
  4808. t.unfinished || this._zr.flush() } } }, CT.getDom = function() { return this._dom }, CT.getZr = function() { return this._zr }, CT.setOption = function(t, e, i) { var n; if (xT(e) && (i = e.lazyUpdate, n = e.silent, e = e.notMerge), this[TT] = !0, !this._model || e) { var o = new Va(this._api),
  4809. a = this._theme,
  4810. r = this._model = new hI(null, null, a, o);
  4811. r.scheduler = this._scheduler, r.init(null, null, a, o) }
  4812. this._model.setOption(t, ET), i ? (this[AT] = { silent: n }, this[TT] = !1) : (ls(this), LT.update.call(this), this._zr.flush(), this[AT] = !1, this[TT] = !1, ds.call(this, n), fs.call(this, n)) }, CT.setTheme = function() { console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0") }, CT.getModel = function() { return this._model }, CT.getOption = function() { return this._model && this._model.getOption() }, CT.getWidth = function() { return this._zr.getWidth() }, CT.getHeight = function() { return this._zr.getHeight() }, CT.getDevicePixelRatio = function() { return this._zr.painter.dpr || window.devicePixelRatio || 1 }, CT.getRenderedCanvas = function(t) { if (z_.canvasSupported) return (t = t || {}).pixelRatio = t.pixelRatio || 1, t.backgroundColor = t.backgroundColor || this._model.get("backgroundColor"), this._zr.painter.getRenderedCanvas(t) }, CT.getSvgDataUrl = function() { if (z_.svgSupported) { var t = this._zr; return d(t.storage.getDisplayList(), function(t) { t.stopAnimation(!0) }), t.painter.pathToDataUrl() } }, CT.getDataURL = function(t) { var e = (t = t || {}).excludeComponents,
  4813. i = this._model,
  4814. n = [],
  4815. o = this;
  4816. vT(e, function(t) { i.eachComponent({ mainType: t }, function(t) { var e = o._componentsMap[t.__viewId];
  4817. 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 vT(n, function(t) { t.group.ignore = !1 }), a }, CT.getConnectedDataURL = function(t) { if (z_.canvasSupported) { var e = this.group,
  4818. n = Math.min,
  4819. o = Math.max; if (FT[e]) { var a = 1 / 0,
  4820. r = 1 / 0,
  4821. s = -1 / 0,
  4822. l = -1 / 0,
  4823. u = [],
  4824. h = t && t.pixelRatio || 1;
  4825. d(GT, function(h, c) { if (h.group === e) { var d = h.getRenderedCanvas(i(t)),
  4826. f = h.getDom().getBoundingClientRect();
  4827. a = n(f.left, a), r = n(f.top, r), s = o(f.right, s), l = o(f.bottom, l), u.push({ dom: d, left: f.left, top: f.top }) } }); var c = (s *= h) - (a *= h),
  4828. f = (l *= h) - (r *= h),
  4829. p = Y_();
  4830. p.width = c, p.height = f; var g = Ii(p); return vT(u, function(t) { var e = new hi({ style: { x: t.left * h - a, y: t.top * h - r, image: t.dom } });
  4831. g.add(e) }), g.refreshImmediately(), p.toDataURL("image/" + (t && t.type || "png")) } return this.getDataURL(t) } }, CT.convertToPixel = v(ss, "convertToPixel"), CT.convertFromPixel = v(ss, "convertFromPixel"), CT.containPixel = function(t, e) { var i; return t = Vi(this._model, t), d(t, function(t, n) { n.indexOf("Models") >= 0 && d(t, function(t) { var o = t.coordinateSystem; if (o && o.containPoint) i |= !!o.containPoint(e);
  4832. else if ("seriesModels" === n) { var a = this._chartsMap[t.__viewId];
  4833. a && a.containPoint && (i |= a.containPoint(e, t)) } }, this) }, this), !!i }, CT.getVisual = function(t, e) { var i = (t = Vi(this._model, t, { defaultMainType: "series" })).seriesModel.getData(),
  4834. n = t.hasOwnProperty("dataIndexInside") ? t.dataIndexInside : t.hasOwnProperty("dataIndex") ? i.indexOfRawIndex(t.dataIndex) : null; return null != n ? i.getItemVisual(n, e) : i.getVisual(e) }, CT.getViewOfComponentModel = function(t) { return this._componentsMap[t.__viewId] }, CT.getViewOfSeriesModel = function(t) { return this._chartsMap[t.__viewId] }; var LT = { prepareAndUpdate: function(t) { ls(this), LT.update.call(this, t) }, update: function(t) { var e = this._model,
  4835. i = this._api,
  4836. n = this._zr,
  4837. o = this._coordSysMgr,
  4838. a = this._scheduler; if (e) { a.restoreData(e, t), a.performSeriesTasks(e), o.create(e, i), a.performDataProcessorTasks(e, t), hs(this, e), o.update(e, i), ms(e), a.performVisualTasks(e, t), vs(this, e, i, t); var r = e.get("backgroundColor") || "transparent"; if (z_.canvasSupported) n.setBackgroundColor(r);
  4839. else { var s = zt(r);
  4840. r = Xt(s, "rgb"), 0 === s[3] && (r = "transparent") }
  4841. _s(e, i) } }, updateTransform: function(t) { var e = this._model,
  4842. i = this,
  4843. n = this._api; if (e) { var o = [];
  4844. e.eachComponent(function(a, r) { var s = i.getViewOfComponentModel(r); if (s && s.__alive)
  4845. if (s.updateTransform) { var l = s.updateTransform(r, e, n, t);
  4846. l && l.update && o.push(s) } else o.push(s) }); var a = R();
  4847. e.eachSeries(function(o) { var r = i._chartsMap[o.__viewId]; if (r.updateTransform) { var s = r.updateTransform(o, e, n, t);
  4848. s && s.update && a.set(o.uid, 1) } else a.set(o.uid, 1) }), ms(e), this._scheduler.performVisualTasks(e, t, { setDirty: !0, dirtyMap: a }), xs(i, e, 0, t, a), _s(e, this._api) } }, updateView: function(t) { var e = this._model;
  4849. e && (Mr.markUpdateMethod(t, "updateView"), ms(e), this._scheduler.performVisualTasks(e, t, { setDirty: !0 }), vs(this, this._model, this._api, t), _s(e, this._api)) }, updateVisual: function(t) { LT.update.call(this, t) }, updateLayout: function(t) { LT.update.call(this, t) } };
  4850. CT.resize = function(t) { this._zr.resize(t); var e = this._model; if (this._loadingFX && this._loadingFX.resize(), e) { var i = e.resetOption("media"),
  4851. n = t && t.silent;
  4852. this[TT] = !0, i && ls(this), LT.update.call(this), this[TT] = !1, ds.call(this, n), fs.call(this, n) } }, CT.showLoading = function(t, e) { if (xT(t) && (e = t, t = ""), t = t || "default", this.hideLoading(), VT[t]) { var i = VT[t](this._api, e),
  4853. n = this._zr;
  4854. this._loadingFX = i, n.add(i) } }, CT.hideLoading = function() { this._loadingFX && this._zr.remove(this._loadingFX), this._loadingFX = null }, CT.makeActionFromEvent = function(t) { var e = a({}, t); return e.type = NT[t.type], e }, CT.dispatchAction = function(t, e) { xT(e) || (e = { silent: !!e }), PT[t.type] && this._model && (this[TT] ? this._pendingActions.push(t) : (cs.call(this, t, e.silent), e.flush ? this._zr.flush(!0) : !1 !== e.flush && z_.browser.weChat && this._throttledZrFlush(), ds.call(this, e.silent), fs.call(this, e.silent))) }, CT.appendData = function(t) { var e = t.seriesIndex;
  4855. this.getModel().getSeriesByIndex(e).appendData(t), this._scheduler.unfinished = !0 }, CT.on = os("on"), CT.off = os("off"), CT.one = os("one"); var kT = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout", "contextmenu"];
  4856. CT._initEvents = function() { vT(kT, function(t) { this._zr.on(t, function(e) { var i, n = this.getModel(),
  4857. o = e.target; if ("globalout" === t) i = {};
  4858. else if (o && null != o.dataIndex) { var r = o.dataModel || n.getSeriesByIndex(o.seriesIndex);
  4859. i = r && r.getDataParams(o.dataIndex, o.dataType, o) || {} } else o && o.eventData && (i = a({}, o.eventData)); if (i) { var s = i.componentType,
  4860. l = i.componentIndex; "markLine" !== s && "markPoint" !== s && "markArea" !== s || (s = "series", l = i.seriesIndex); var u = s && null != l && n.getComponent(s, l),
  4861. h = u && this["series" === u.mainType ? "_chartsMap" : "_componentsMap"][u.__viewId];
  4862. i.event = e, i.type = t, this._ecEventProcessor.eventInfo = { targetEl: o, packedEvent: i, model: u, view: h }, this.trigger(t, i) } }, this) }, this), vT(NT, function(t, e) { this._messageCenter.on(e, function(t) { this.trigger(e, t) }, this) }, this) }, CT.isDisposed = function() { return this._disposed }, CT.clear = function() { this.setOption({ series: [] }, !0) }, CT.dispose = function() { if (!this._disposed) { this._disposed = !0, Fi(this.getDom(), ZT, ""); var t = this._api,
  4863. e = this._model;
  4864. vT(this._componentsViews, function(i) { i.dispose(e, t) }), vT(this._chartsViews, function(i) { i.dispose(e, t) }), this._zr.dispose(), delete GT[this.id] } }, h(rs, aw), Is.prototype = { constructor: Is, normalizeQuery: function(t) { var e = {},
  4865. i = {},
  4866. n = {}; if (_(t)) { var o = _T(t);
  4867. e.mainType = o.main || null, e.subType = o.sub || null } else { var a = ["Index", "Name", "Id"],
  4868. r = { name: 1, dataIndex: 1, dataType: 1 };
  4869. d(t, function(t, o) { for (var s = !1, l = 0; l < a.length; l++) { var u = a[l],
  4870. h = o.lastIndexOf(u); if (h > 0 && h === o.length - u.length) { var c = o.slice(0, h); "data" !== c && (e.mainType = c, e[u.toLowerCase()] = t, s = !0) } }
  4871. r.hasOwnProperty(o) && (i[o] = t, s = !0), s || (n[o] = t) }) } return { cptQuery: e, dataQuery: i, otherQuery: n } }, filter: function(t, e, i) {
  4872. function n(t, e, i, n) { return null == t[i] || e[n || i] === t[i] } var o = this.eventInfo; if (!o) return !0; var a = o.targetEl,
  4873. r = o.packedEvent,
  4874. s = o.model,
  4875. l = o.view; if (!s || !l) return !0; var u = e.cptQuery,
  4876. h = e.dataQuery; return n(u, s, "mainType") && n(u, s, "subType") && n(u, s, "index", "componentIndex") && n(u, s, "name") && n(u, s, "id") && n(h, r, "name") && n(h, r, "dataIndex") && n(h, r, "dataType") && (!l.filterForExposedEvent || l.filterForExposedEvent(t, e.otherQuery, a, r)) }, afterTrigger: function() { this.eventInfo = null } }; var PT = {},
  4877. NT = {},
  4878. OT = [],
  4879. ET = [],
  4880. RT = [],
  4881. zT = [],
  4882. BT = {},
  4883. VT = {},
  4884. GT = {},
  4885. FT = {},
  4886. WT = new Date - 0,
  4887. HT = new Date - 0,
  4888. ZT = "_echarts_instance_",
  4889. UT = As;
  4890. Es(2e3, UI), Ls(MI), ks(5e3, function(t) { var e = R();
  4891. t.eachSeries(function(t) { var i = t.get("stack"); if (i) { var n = e.get(i) || e.set(i, []),
  4892. o = t.getData(),
  4893. 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;
  4894. n.length && o.setCalculationInfo("stackedOnSeries", n[n.length - 1].seriesModel), n.push(a) } }), e.each(ir) }), zs("default", function(t, e) { r(e = e || {}, { text: "loading", color: "#c23531", textColor: "#000", maskColor: "rgba(255, 255, 255, 0.8)", zlevel: 0 }); var i = new aM({ style: { fill: e.maskColor }, zlevel: e.zlevel, z: 1e4 }),
  4895. n = new uM({ shape: { startAngle: -YI / 2, endAngle: -YI / 2 + .1, r: 10 }, style: { stroke: e.color, lineCap: "round", lineWidth: 5 }, zlevel: e.zlevel, z: 10001 }),
  4896. o = new aM({ style: { fill: "none", text: e.text, textPosition: "right", textDistance: 10, textFill: e.textColor }, zlevel: e.zlevel, z: 10001 });
  4897. n.animateShape(!0).when(1e3, { endAngle: 3 * YI / 2 }).start("circularInOut"), n.animateShape(!0).when(1e3, { startAngle: 3 * YI / 2 }).delay(300).start("circularInOut"); var a = new Zw; return a.add(n), a.add(o), a.add(i), a.resize = function() { var e = t.getWidth() / 2,
  4898. a = t.getHeight() / 2;
  4899. n.setShape({ cx: e, cy: a }); var r = n.shape.r;
  4900. o.setShape({ x: e - r, y: a - r, width: 2 * r, height: 2 * r }), i.setShape({ x: 0, y: 0, width: t.getWidth(), height: t.getHeight() }) }, a.resize(), a }), Ps({ type: "highlight", event: "highlight", update: "highlight" }, B), Ps({ type: "downplay", event: "downplay", update: "downplay" }, B), Cs("light", iT), Cs("dark", oT); var XT = {};
  4901. Hs.prototype = { constructor: Hs, add: function(t) { return this._add = t, this }, update: function(t) { return this._update = t, this }, remove: function(t) { return this._remove = t, this }, execute: function() { var t = this._old,
  4902. e = this._new,
  4903. i = {},
  4904. n = [],
  4905. o = []; for (Zs(t, {}, n, "_oldKeyGetter", this), Zs(e, i, o, "_newKeyGetter", this), a = 0; a < t.length; a++) null != (s = i[r = n[a]]) ? ((u = s.length) ? (1 === u && (i[r] = null), s = s.unshift()) : i[r] = null, this._update && this._update(s, a)) : this._remove && this._remove(a); for (var a = 0; a < o.length; a++) { var r = o[a]; if (i.hasOwnProperty(r)) { var s = i[r]; if (null == s) continue; if (s.length)
  4906. for (var l = 0, u = s.length; l < u; l++) this._add && this._add(s[l]);
  4907. else this._add && this._add(s) } } } }; var jT = R(["tooltip", "label", "itemName", "itemId", "seriesName"]),
  4908. YT = w,
  4909. qT = "e\0\0",
  4910. KT = { float: "undefined" == typeof Float64Array ? Array : Float64Array, int: "undefined" == typeof Int32Array ? Array : Int32Array, ordinal: Array, number: Array, time: Array },
  4911. $T = "undefined" == typeof Uint32Array ? Array : Uint32Array,
  4912. JT = "undefined" == typeof Uint16Array ? Array : Uint16Array,
  4913. QT = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_rawData", "_chunkSize", "_chunkCount", "_dimValueGetter", "_count", "_rawCount", "_nameDimIdx", "_idDimIdx"],
  4914. tA = ["_extent", "_approximateExtent", "_rawExtent"],
  4915. eA = function(t, e) { t = t || ["x", "y"]; for (var i = {}, n = [], o = {}, a = 0; a < t.length; a++) { var r = t[a];
  4916. _(r) && (r = { name: r }); var s = r.name;
  4917. r.type = r.type || "float", r.coordDim || (r.coordDim = s, r.coordDimIndex = 0), r.otherDims = r.otherDims || {}, n.push(s), i[s] = r, r.index = a, r.createInvertedIndices && (o[s] = []) }
  4918. this.dimensions = n, this._dimensionInfos = i, this.hostModel = e, this.dataType, this._indices = null, this._count = 0, this._rawCount = 0, this._storage = {}, this._nameList = [], this._idList = [], this._optionModels = [], this._visual = {}, this._layout = {}, this._itemVisuals = [], this.hasItemVisual = {}, this._itemLayouts = [], this._graphicEls = [], this._chunkSize = 1e5, this._chunkCount = 0, this._rawData, this._rawExtent = {}, this._extent = {}, this._approximateExtent = {}, this._dimensionsSummary = Us(this), this._invertedIndicesMap = o, this._calculationInfo = {} },
  4919. iA = eA.prototype;
  4920. iA.type = "list", iA.hasItemOption = !0, iA.getDimension = function(t) { return isNaN(t) || (t = this.dimensions[t] || t), t }, iA.getDimensionInfo = function(t) { return this._dimensionInfos[this.getDimension(t)] }, iA.getDimensionsOnCoord = function() { return this._dimensionsSummary.dataDimsOnCoord.slice() }, iA.mapDimension = function(t, e) { var i = this._dimensionsSummary; if (null == e) return i.encodeFirstDimNotExtra[t]; var n = i.encode[t]; return !0 === e ? (n || []).slice() : n && n[e] }, iA.initData = function(t, e, i) {
  4921. (va.isInstance(t) || c(t)) && (t = new nr(t, this.dimensions.length)), this._rawData = t, this._storage = {}, this._indices = null, this._nameList = e || [], this._idList = [], this._nameRepeatCount = {}, i || (this.hasItemOption = !1), this.defaultDimValueGetter = DI[this._rawData.getSource().sourceFormat], this._dimValueGetter = i = i || this.defaultDimValueGetter, this._rawExtent = {}, this._initDataFromProvider(0, t.count()), t.pure && (this.hasItemOption = !1) }, iA.getProvider = function() { return this._rawData }, iA.appendData = function(t) { var e = this._rawData,
  4922. i = this.count();
  4923. e.appendData(t); var n = e.count();
  4924. e.persistent || (n += i), this._initDataFromProvider(i, n) }, iA._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 = f - 1, g = 0; g < s; g++) { c[T = r[g]] || (c[T] = [1 / 0, -1 / 0]); var m = l[T];
  4925. 0 === m.otherDims.itemName && (i = this._nameDimIdx = g), 0 === m.otherDims.itemId && (this._idDimIdx = g); var v = KT[m.type];
  4926. a[T] || (a[T] = []); var y = a[T][p]; if (y && y.length < n) { for (var x = new v(Math.min(e - p * n, n)), _ = 0; _ < y.length; _++) x[_] = y[_];
  4927. a[T][p] = x } for (I = f * n; I < e; I += n) a[T].push(new v(Math.min(e - I, n)));
  4928. this._chunkCount = a[T].length } for (var w = new Array(s), b = t; b < e; b++) { w = o.getItem(b, w); for (var S = Math.floor(b / n), M = b % n, I = 0; I < s; I++) { var T = r[I],
  4929. A = a[T][S],
  4930. D = this._dimValueGetter(w, T, b, I);
  4931. A[M] = D; var C = c[T];
  4932. D < C[0] && (C[0] = D), D > C[1] && (C[1] = D) } if (!o.pure) { var L = u[b]; if (w && null == L)
  4933. if (null != w.name) u[b] = L = w.name;
  4934. else if (null != i) { var k = r[i],
  4935. P = a[k][S]; if (P) { L = P[M]; var N = l[k].ordinalMeta;
  4936. N && N.categories.length && (L = N.categories[L]) } } var O = null == w ? null : w.id;
  4937. null == O && null != L && (d[L] = d[L] || 0, O = L, d[L] > 0 && (O += "__ec__" + d[L]), d[L]++), null != O && (h[b] = O) } }!o.persistent && o.clean && o.clean(), this._rawCount = this._count = e, this._extent = {}, $s(this) } }, iA.count = function() { return this._count }, iA.getIndices = function() { var t = this._indices; if (t) { var e = t.constructor,
  4938. i = this._count; if (e === Array) { n = new e(i); for (o = 0; o < i; o++) n[o] = t[o] } else n = new e(t.buffer, 0, i) } else
  4939. for (var n = new(e = Ys(this))(this.count()), o = 0; o < n.length; o++) n[o] = o; return n }, iA.get = function(t, e) { if (!(e >= 0 && e < this._count)) return NaN; var i = this._storage; if (!i[t]) return NaN;
  4940. e = this.getRawIndex(e); var n = Math.floor(e / this._chunkSize),
  4941. o = e % this._chunkSize; return i[t][n][o] }, iA.getByRawIndex = function(t, e) { if (!(e >= 0 && e < this._rawCount)) return NaN; var i = this._storage[t]; if (!i) return NaN; var n = Math.floor(e / this._chunkSize),
  4942. o = e % this._chunkSize; return i[n][o] }, iA._getFast = function(t, e) { var i = Math.floor(e / this._chunkSize),
  4943. n = e % this._chunkSize; return this._storage[t][i][n] }, iA.getValues = function(t, e) { var i = [];
  4944. y(t) || (e = t, t = this.dimensions); for (var n = 0, o = t.length; n < o; n++) i.push(this.get(t[n], e)); return i }, iA.hasValue = function(t) { for (var e = this._dimensionsSummary.dataDimsOnCoord, i = this._dimensionInfos, n = 0, o = e.length; n < o; n++)
  4945. if ("ordinal" !== i[e[n]].type && isNaN(this.get(e[n], t))) return !1;
  4946. return !0 }, iA.getDataExtent = function(t) { t = this.getDimension(t); var e = [1 / 0, -1 / 0]; if (!this._storage[t]) return e; var i, n = this.count(); if (!this._indices) return this._rawExtent[t].slice(); if (i = this._extent[t]) return i.slice(); for (var o = (i = e)[0], a = i[1], r = 0; r < n; r++) { var s = this._getFast(t, this.getRawIndex(r));
  4947. s < o && (o = s), s > a && (a = s) } return i = [o, a], this._extent[t] = i, i }, iA.getApproximateExtent = function(t) { return t = this.getDimension(t), this._approximateExtent[t] || this.getDataExtent(t) }, iA.setApproximateExtent = function(t, e) { e = this.getDimension(e), this._approximateExtent[e] = t.slice() }, iA.getCalculationInfo = function(t) { return this._calculationInfo[t] }, iA.setCalculationInfo = function(t, e) { YT(t) ? a(this._calculationInfo, t) : this._calculationInfo[t] = e }, iA.getSum = function(t) { var e = 0; if (this._storage[t])
  4948. for (var i = 0, n = this.count(); i < n; i++) { var o = this.get(t, i);
  4949. isNaN(o) || (e += o) }
  4950. return e }, iA.getMedian = function(t) { var e = [];
  4951. this.each(t, function(t, i) { isNaN(t) || e.push(t) }); var i = [].concat(e).sort(function(t, e) { return t - e }),
  4952. n = this.count(); return 0 === n ? 0 : n % 2 == 1 ? i[(n - 1) / 2] : (i[n / 2] + i[n / 2 - 1]) / 2 }, iA.rawIndexOf = function(t, e) { var i = (t && this._invertedIndicesMap[t])[e]; return null == i || isNaN(i) ? -1 : i }, iA.indexOfName = function(t) { for (var e = 0, i = this.count(); e < i; e++)
  4953. if (this.getName(e) === t) return e;
  4954. return -1 }, iA.indexOfRawIndex = function(t) { if (!this._indices) return t; if (t >= this._rawCount || t < 0) return -1; var e = this._indices,
  4955. i = e[t]; if (null != i && i < this._count && i === t) return t; for (var n = 0, o = this._count - 1; n <= o;) { var a = (n + o) / 2 | 0; if (e[a] < t) n = a + 1;
  4956. else { if (!(e[a] > t)) return a;
  4957. o = a - 1 } } return -1 }, iA.indicesOfNearest = function(t, e, i) { var n = []; if (!this._storage[t]) return n;
  4958. null == i && (i = 1 / 0); for (var o = Number.MAX_VALUE, a = -1, r = 0, s = this.count(); r < s; r++) { var l = e - this.get(t, r),
  4959. u = Math.abs(l);
  4960. l <= i && u <= o && ((u < o || l >= 0 && a < 0) && (o = u, a = l, n.length = 0), n.push(r)) } return n }, iA.getRawIndex = Qs, iA.getRawDataItem = function(t) { if (this._rawData.persistent) return this._rawData.getItem(this.getRawIndex(t)); for (var e = [], i = 0; i < this.dimensions.length; i++) { var n = this.dimensions[i];
  4961. e.push(this.get(n, t)) } return e }, iA.getName = function(t) { var e = this.getRawIndex(t); return this._nameList[e] || Js(this, this._nameDimIdx, e) || "" }, iA.getId = function(t) { return el(this, this.getRawIndex(t)) }, iA.each = function(t, e, i, n) { if (this._count) { "function" == typeof t && (n = i, i = e, e = t, t = []), i = i || n || this; for (var o = (t = f(il(t), this.getDimension, this)).length, a = 0; a < this.count(); a++) switch (o) {
  4962. case 0:
  4963. e.call(i, a); break;
  4964. case 1:
  4965. e.call(i, this.get(t[0], a), a); break;
  4966. case 2:
  4967. e.call(i, this.get(t[0], a), this.get(t[1], a), a); break;
  4968. default:
  4969. for (var r = 0, s = []; r < o; r++) s[r] = this.get(t[r], a);
  4970. s[r] = a, e.apply(i, s) } } }, iA.filterSelf = function(t, e, i, n) { if (this._count) { "function" == typeof t && (n = i, i = e, e = t, t = []), i = i || n || this, t = f(il(t), this.getDimension, this); for (var o = this.count(), a = new(Ys(this))(o), r = [], s = t.length, l = 0, u = t[0], h = 0; h < o; h++) { var c, d = this.getRawIndex(h); if (0 === s) c = e.call(i, h);
  4971. else if (1 === s) { var p = this._getFast(u, d);
  4972. c = e.call(i, p, h) } else { for (var g = 0; g < s; g++) r[g] = this._getFast(u, d);
  4973. r[g] = h, c = e.apply(i, r) }
  4974. c && (a[l++] = d) } return l < o && (this._indices = a), this._count = l, this._extent = {}, this.getRawIndex = this._indices ? tl : Qs, this } }, iA.selectRange = function(t) { if (this._count) { var e = []; for (var i in t) t.hasOwnProperty(i) && e.push(i); var n = e.length; if (n) { var o = this.count(),
  4975. a = new(Ys(this))(o),
  4976. r = 0,
  4977. s = e[0],
  4978. l = t[s][0],
  4979. u = t[s][1],
  4980. h = !1; if (!this._indices) { var c = 0; if (1 === n) { for (var d = this._storage[e[0]], f = 0; f < this._chunkCount; f++)
  4981. for (var p = d[f], g = Math.min(this._count - f * this._chunkSize, this._chunkSize), m = 0; m < g; m++)((w = p[m]) >= l && w <= u || isNaN(w)) && (a[r++] = c), c++;
  4982. h = !0 } else if (2 === n) { for (var d = this._storage[s], v = this._storage[e[1]], y = t[e[1]][0], x = t[e[1]][1], f = 0; f < this._chunkCount; f++)
  4983. for (var p = d[f], _ = v[f], g = Math.min(this._count - f * this._chunkSize, this._chunkSize), m = 0; m < g; m++) { var w = p[m],
  4984. b = _[m];
  4985. (w >= l && w <= u || isNaN(w)) && (b >= y && b <= x || isNaN(b)) && (a[r++] = c), c++ }
  4986. h = !0 } } if (!h)
  4987. if (1 === n)
  4988. for (m = 0; m < o; m++) { M = this.getRawIndex(m);
  4989. ((w = this._getFast(s, M)) >= l && w <= u || isNaN(w)) && (a[r++] = M) } else
  4990. for (m = 0; m < o; m++) { for (var S = !0, M = this.getRawIndex(m), f = 0; f < n; f++) { var I = e[f];
  4991. ((w = this._getFast(i, M)) < t[I][0] || w > t[I][1]) && (S = !1) }
  4992. S && (a[r++] = this.getRawIndex(m)) }
  4993. return r < o && (this._indices = a), this._count = r, this._extent = {}, this.getRawIndex = this._indices ? tl : Qs, this } } }, iA.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 }, iA.map = function(t, e, i, n) { i = i || n || this; var o = nl(this, t = f(il(t), this.getDimension, this));
  4994. o._indices = this._indices, o.getRawIndex = o._indices ? tl : Qs; for (var a = o._storage, r = [], s = this._chunkSize, l = t.length, u = this.count(), h = [], c = o._rawExtent, d = 0; d < u; d++) { for (var p = 0; p < l; p++) h[p] = this.get(t[p], d);
  4995. 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; x < g.length; x++) { var _ = t[x],
  4996. w = g[x],
  4997. b = c[_],
  4998. S = a[_];
  4999. S && (S[v][y] = w), w < b[0] && (b[0] = w), w > b[1] && (b[1] = w) } } } return o }, iA.downSample = function(t, e, i, n) { for (var o = nl(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(Ys(this))(u), f = 0, p = 0; p < u; p += s) { s > u - p && (s = u - p, r.length = s); for (var g = 0; g < s; g++) { var m = this.getRawIndex(p + g),
  5000. v = Math.floor(m / h),
  5001. y = m % h;
  5002. r[g] = l[v][y] } var x = i(r),
  5003. _ = this.getRawIndex(Math.min(p + n(r, x) || 0, u - 1)),
  5004. w = _ % h;
  5005. l[Math.floor(_ / h)][w] = x, x < c[0] && (c[0] = x), x > c[1] && (c[1] = x), d[f++] = _ } return o._count = f, o._indices = d, o.getRawIndex = tl, o }, iA.getItemModel = function(t) { var e = this.hostModel; return new Lo(this.getRawDataItem(t), e, e && e.ecModel) }, iA.diff = function(t) { var e = this; return new Hs(t ? t.getIndices() : [], this.getIndices(), function(e) { return el(t, e) }, function(t) { return el(e, t) }) }, iA.getVisual = function(t) { var e = this._visual; return e && e[t] }, iA.setVisual = function(t, e) { if (YT(t))
  5006. for (var i in t) t.hasOwnProperty(i) && this.setVisual(i, t[i]);
  5007. else this._visual = this._visual || {}, this._visual[t] = e }, iA.setLayout = function(t, e) { if (YT(t))
  5008. for (var i in t) t.hasOwnProperty(i) && this.setLayout(i, t[i]);
  5009. else this._layout[t] = e }, iA.getLayout = function(t) { return this._layout[t] }, iA.getItemLayout = function(t) { return this._itemLayouts[t] }, iA.setItemLayout = function(t, e, i) { this._itemLayouts[t] = i ? a(this._itemLayouts[t] || {}, e) : e }, iA.clearItemLayouts = function() { this._itemLayouts.length = 0 }, iA.getItemVisual = function(t, e, i) { var n = this._itemVisuals[t],
  5010. o = n && n[e]; return null != o || i ? o : this.getVisual(e) }, iA.setItemVisual = function(t, e, i) { var n = this._itemVisuals[t] || {},
  5011. o = this.hasItemVisual; if (this._itemVisuals[t] = n, YT(e))
  5012. for (var a in e) e.hasOwnProperty(a) && (n[a] = e[a], o[a] = !0);
  5013. else n[e] = i, o[e] = !0 }, iA.clearAllVisual = function() { this._visual = {}, this._itemVisuals = [], this.hasItemVisual = {} }; var nA = function(t) { t.seriesIndex = this.seriesIndex, t.dataIndex = this.dataIndex, t.dataType = this.dataType };
  5014. iA.setItemGraphicEl = function(t, e) { var i = this.hostModel;
  5015. e && (e.dataIndex = t, e.dataType = this.dataType, e.seriesIndex = i && i.seriesIndex, "group" === e.type && e.traverse(nA, e)), this._graphicEls[t] = e }, iA.getItemGraphicEl = function(t) { return this._graphicEls[t] }, iA.eachItemGraphicEl = function(t, e) { d(this._graphicEls, function(i, n) { i && t && t.call(e, i, n) }) }, iA.cloneShallow = function(t) { if (!t) { var e = f(this.dimensions, this.getDimensionInfo, this);
  5016. t = new eA(e, this.hostModel) } if (t._storage = this._storage, Ks(t, this), this._indices) { var i = this._indices.constructor;
  5017. t._indices = new i(this._indices) } else t._indices = null; return t.getRawIndex = t._indices ? tl : Qs, t }, iA.wrapMethod = function(t, e) { var i = this[t]; "function" == typeof i && (this.__wrappedMethods = this.__wrappedMethods || [], this.__wrappedMethods.push(t), this[t] = function() { var t = i.apply(this, arguments); return e.apply(this, [t].concat(C(arguments))) }) }, iA.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "map"], iA.CHANGABLE_METHODS = ["filterSelf", "selectRange"]; var oA = function(t, e) { return e = e || {}, rl(e.coordDimensions || [], t, { dimsDef: e.dimensionsDefine || t.dimensionsDefine, encodeDef: e.encodeDefine || t.encodeDefine, dimCount: e.dimensionsCount, generateCoord: e.generateCoord, generateCoordCount: e.generateCoordCount }) };
  5018. gl.prototype.parse = function(t) { return t }, gl.prototype.getSetting = function(t) { return this._setting[t] }, gl.prototype.contain = function(t) { var e = this._extent; return t >= e[0] && t <= e[1] }, gl.prototype.normalize = function(t) { var e = this._extent; return e[1] === e[0] ? .5 : (t - e[0]) / (e[1] - e[0]) }, gl.prototype.scale = function(t) { var e = this._extent; return t * (e[1] - e[0]) + e[0] }, gl.prototype.unionExtent = function(t) { var e = this._extent;
  5019. t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]) }, gl.prototype.unionExtentFromData = function(t, e) { this.unionExtent(t.getApproximateExtent(e)) }, gl.prototype.getExtent = function() { return this._extent.slice() }, gl.prototype.setExtent = function(t, e) { var i = this._extent;
  5020. isNaN(t) || (i[0] = t), isNaN(e) || (i[1] = e) }, gl.prototype.isBlank = function() { return this._isBlank }, gl.prototype.setBlank = function(t) { this._isBlank = t }, gl.prototype.getLabel = null, Xi(gl), Ki(gl, { registerWhenExtend: !0 }), ml.createByAxisModel = function(t) { var e = t.option,
  5021. i = e.data,
  5022. n = i && f(i, yl); return new ml({ categories: n, needCollect: !n, deduplication: !1 !== e.dedplication }) }; var aA = ml.prototype;
  5023. aA.getOrdinal = function(t) { return vl(this).get(t) }, aA.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 = vl(this); return null == (e = n.get(t)) && (i ? (e = this.categories.length, this.categories[e] = t, n.set(t, e)) : e = NaN), e }; var rA = gl.prototype,
  5024. sA = gl.extend({ type: "ordinal", init: function(t, e) { t && !y(t) || (t = new ml({ 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), rA.contain.call(this, t) && null != this._ordinalMeta.categories[t] }, normalize: function(t) { return rA.normalize.call(this, this.parse(t)) }, scale: function(t) { return Math.round(rA.scale.call(this, t)) }, getTicks: function() { for (var t = [], e = this._extent, i = e[0]; i <= e[1];) t.push(i), i++; return t }, getLabel: function(t) { if (!this.isBlank()) return this._ordinalMeta.categories[t] }, count: function() { return this._extent[1] - this._extent[0] + 1 }, unionExtentFromData: function(t, e) { this.unionExtent(t.getApproximateExtent(e)) }, getOrdinalMeta: function() { return this._ordinalMeta }, niceTicks: B, niceExtent: B });
  5025. sA.create = function() { return new sA }; var lA = zo,
  5026. uA = zo,
  5027. hA = gl.extend({ type: "interval", _interval: 0, _intervalPrecision: 2, setExtent: function(t, e) { var i = this._extent;
  5028. isNaN(t) || (i[0] = parseFloat(t)), isNaN(e) || (i[1] = parseFloat(e)) }, unionExtent: function(t) { var e = this._extent;
  5029. t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]), hA.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 = _l(t) }, getTicks: function() { return Sl(this._interval, this._extent, this._niceExtent, this._intervalPrecision) }, getLabel: function(t, e) { if (null == t) return ""; var i = e && e.precision; return null == i ? i = Go(t) || 0 : "auto" === i && (i = this._intervalPrecision), t = uA(t, i, !0), $o(t) }, niceTicks: function(t, e, i) { t = t || 5; var n = this._extent,
  5030. o = n[1] - n[0]; if (isFinite(o)) { o < 0 && (o = -o, n.reverse()); var a = xl(n, t, e, i);
  5031. this._intervalPrecision = a.intervalPrecision, this._interval = a.interval, this._niceExtent = a.niceTickExtent } }, niceExtent: function(t) { var e = this._extent; if (e[0] === e[1])
  5032. if (0 !== e[0]) { var i = e[0];
  5033. t.fixMax ? e[0] -= i / 2 : (e[1] += i / 2, e[0] -= i / 2) } else e[1] = 1;
  5034. var n = e[1] - e[0];
  5035. isFinite(n) || (e[0] = 0, e[1] = 1), this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval); var o = this._interval;
  5036. t.fixMin || (e[0] = uA(Math.floor(e[0] / o) * o)), t.fixMax || (e[1] = uA(Math.ceil(e[1] / o) * o)) } });
  5037. hA.create = function() { return new hA }; var cA = "__ec_stack_",
  5038. dA = "undefined" != typeof Float32Array ? Float32Array : Array,
  5039. fA = { seriesType: "bar", plan: zI(), reset: function(t) { if (Pl(t) && Nl(t)) { var e = t.getData(),
  5040. i = t.coordinateSystem,
  5041. n = i.getBaseAxis(),
  5042. o = i.getOtherAxis(n),
  5043. a = e.mapDimension(o.dim),
  5044. r = e.mapDimension(n.dim),
  5045. s = o.isHorizontal(),
  5046. l = s ? 0 : 1,
  5047. u = Ll(Dl([t]), n, t).width; return u > .5 || (u = .5), { progress: function(t, e) { for (var n, h = new dA(2 * t.count), c = [], d = [], f = 0; null != (n = t.next());) d[l] = e.get(a, n), d[1 - l] = e.get(r, n), c = i.dataToPoint(d, null, c), h[f++] = c[0], h[f++] = c[1];
  5048. e.setLayout({ largePoints: h, barWidth: u, valueAxisStart: Ol(0, o), valueAxisHorizontal: s }) } } } } },
  5049. pA = hA.prototype,
  5050. gA = Math.ceil,
  5051. mA = Math.floor,
  5052. vA = function(t, e, i, n) { for (; i < n;) { var o = i + n >>> 1;
  5053. t[o][1] < e ? i = o + 1 : n = o } return i },
  5054. yA = hA.extend({ type: "time", getLabel: function(t) { var e = this._stepLvl,
  5055. i = new Date(t); return oa(e[0], i, this.getSetting("useUTC")) }, niceExtent: function(t) { var e = this._extent; if (e[0] === e[1] && (e[0] -= 864e5, e[1] += 864e5), e[1] === -1 / 0 && e[0] === 1 / 0) { var i = new Date;
  5056. e[1] = +new Date(i.getFullYear(), i.getMonth(), i.getDate()), e[0] = e[1] - 864e5 }
  5057. this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval); var n = this._interval;
  5058. t.fixMin || (e[0] = zo(mA(e[0] / n) * n)), t.fixMax || (e[1] = zo(gA(e[1] / n) * n)) }, niceTicks: function(t, e, i) { t = t || 10; var n = this._extent,
  5059. o = n[1] - n[0],
  5060. a = o / t;
  5061. null != e && a < e && (a = e), null != i && a > i && (a = i); var r = xA.length,
  5062. s = vA(xA, a, 0, r),
  5063. l = xA[Math.min(s, r - 1)],
  5064. u = l[1]; "year" === l[0] && (u *= Yo(o / u / t, !0)); var h = this.getSetting("useUTC") ? 0 : 60 * new Date(+n[0] || +n[1]).getTimezoneOffset() * 1e3,
  5065. c = [Math.round(gA((n[0] - h) / u) * u + h), Math.round(mA((n[1] - h) / u) * u + h)];
  5066. bl(c, n), this._stepLvl = l, this._interval = u, this._niceExtent = c }, parse: function(t) { return +Uo(t) } });
  5067. d(["contain", "normalize"], function(t) { yA.prototype[t] = function(e) { return pA[t].call(this, this.parse(e)) } }); var xA = [
  5068. ["hh:mm:ss", 1e3],
  5069. ["hh:mm:ss", 5e3],
  5070. ["hh:mm:ss", 1e4],
  5071. ["hh:mm:ss", 15e3],
  5072. ["hh:mm:ss", 3e4],
  5073. ["hh:mm\nMM-dd", 6e4],
  5074. ["hh:mm\nMM-dd", 3e5],
  5075. ["hh:mm\nMM-dd", 6e5],
  5076. ["hh:mm\nMM-dd", 9e5],
  5077. ["hh:mm\nMM-dd", 18e5],
  5078. ["hh:mm\nMM-dd", 36e5],
  5079. ["hh:mm\nMM-dd", 72e5],
  5080. ["hh:mm\nMM-dd", 216e5],
  5081. ["hh:mm\nMM-dd", 432e5],
  5082. ["MM-dd\nyyyy", 864e5],
  5083. ["MM-dd\nyyyy", 1728e5],
  5084. ["MM-dd\nyyyy", 2592e5],
  5085. ["MM-dd\nyyyy", 3456e5],
  5086. ["MM-dd\nyyyy", 432e6],
  5087. ["MM-dd\nyyyy", 5184e5],
  5088. ["week", 6048e5],
  5089. ["MM-dd\nyyyy", 864e6],
  5090. ["week", 12096e5],
  5091. ["week", 18144e5],
  5092. ["month", 26784e5],
  5093. ["week", 36288e5],
  5094. ["month", 53568e5],
  5095. ["week", 6048e6],
  5096. ["quarter", 8208e6],
  5097. ["month", 107136e5],
  5098. ["month", 13392e6],
  5099. ["half-year", 16416e6],
  5100. ["month", 214272e5],
  5101. ["month", 26784e6],
  5102. ["year", 32832e6]
  5103. ];
  5104. yA.create = function(t) { return new yA({ useUTC: t.ecModel.get("useUTC") }) }; var _A = gl.prototype,
  5105. wA = hA.prototype,
  5106. bA = Go,
  5107. SA = zo,
  5108. MA = Math.floor,
  5109. IA = Math.ceil,
  5110. TA = Math.pow,
  5111. AA = Math.log,
  5112. DA = gl.extend({ type: "log", base: 10, $constructor: function() { gl.apply(this, arguments), this._originalScale = new hA }, getTicks: function() { var t = this._originalScale,
  5113. e = this._extent,
  5114. i = t.getExtent(); return f(wA.getTicks.call(this), function(n) { var o = zo(TA(this.base, n)); return o = n === e[0] && t.__fixMin ? El(o, i[0]) : o, o = n === e[1] && t.__fixMax ? El(o, i[1]) : o }, this) }, getLabel: wA.getLabel, scale: function(t) { return t = _A.scale.call(this, t), TA(this.base, t) }, setExtent: function(t, e) { var i = this.base;
  5115. t = AA(t) / AA(i), e = AA(e) / AA(i), wA.setExtent.call(this, t, e) }, getExtent: function() { var t = this.base,
  5116. e = _A.getExtent.call(this);
  5117. e[0] = TA(t, e[0]), e[1] = TA(t, e[1]); var i = this._originalScale,
  5118. n = i.getExtent(); return i.__fixMin && (e[0] = El(e[0], n[0])), i.__fixMax && (e[1] = El(e[1], n[1])), e }, unionExtent: function(t) { this._originalScale.unionExtent(t); var e = this.base;
  5119. t[0] = AA(t[0]) / AA(e), t[1] = AA(t[1]) / AA(e), _A.unionExtent.call(this, t) }, unionExtentFromData: function(t, e) { this.unionExtent(t.getApproximateExtent(e)) }, niceTicks: function(t) { t = t || 10; var e = this._extent,
  5120. i = e[1] - e[0]; if (!(i === 1 / 0 || i <= 0)) { var n = Xo(i); for (t / i * n <= .5 && (n *= 10); !isNaN(n) && Math.abs(n) < 1 && Math.abs(n) > 0;) n *= 10; var o = [zo(IA(e[0] / n) * n), zo(MA(e[1] / n) * n)];
  5121. this._interval = n, this._niceExtent = o } }, niceExtent: function(t) { wA.niceExtent.call(this, t); var e = this._originalScale;
  5122. e.__fixMin = t.fixMin, e.__fixMax = t.fixMax } });
  5123. d(["contain", "normalize"], function(t) { DA.prototype[t] = function(e) { return e = AA(e) / AA(this.base), _A[t].call(this, e) } }), DA.create = function() { return new DA }; var CA = { getMin: function(t) { var e = this.option,
  5124. i = t || null == e.rangeStart ? e.min : e.rangeStart; return this.axis && null != i && "dataMin" !== i && "function" != typeof i && !I(i) && (i = this.axis.scale.parse(i)), i }, getMax: function(t) { var e = this.option,
  5125. i = t || null == e.rangeEnd ? e.max : e.rangeEnd; return this.axis && null != i && "dataMax" !== i && "function" != typeof i && !I(i) && (i = this.axis.scale.parse(i)), i }, getNeedCrossZero: function() { var t = this.option; return null == t.rangeStart && null == t.rangeEnd && !t.scale }, getCoordSysModel: B, setRange: function(t, e) { this.option.rangeStart = t, this.option.rangeEnd = e }, resetRange: function() { this.option.rangeStart = this.option.rangeEnd = null } },
  5126. LA = Fn({ type: "triangle", shape: { cx: 0, cy: 0, width: 0, height: 0 }, buildPath: function(t, e) { var i = e.cx,
  5127. n = e.cy,
  5128. o = e.width / 2,
  5129. a = e.height / 2;
  5130. t.moveTo(i, n - a), t.lineTo(i + o, n + a), t.lineTo(i - o, n + a), t.closePath() } }),
  5131. kA = Fn({ type: "diamond", shape: { cx: 0, cy: 0, width: 0, height: 0 }, buildPath: function(t, e) { var i = e.cx,
  5132. n = e.cy,
  5133. o = e.width / 2,
  5134. a = e.height / 2;
  5135. t.moveTo(i, n - a), t.lineTo(i + o, n), t.lineTo(i, n + a), t.lineTo(i - o, n), t.closePath() } }),
  5136. PA = Fn({ type: "pin", shape: { x: 0, y: 0, width: 0, height: 0 }, buildPath: function(t, e) { var i = e.x,
  5137. n = e.y,
  5138. o = e.width / 5 * 3,
  5139. a = Math.max(o, e.height),
  5140. r = o / 2,
  5141. s = r * r / (a - r),
  5142. l = n - a + r + s,
  5143. u = Math.asin(s / r),
  5144. h = Math.cos(u) * r,
  5145. c = Math.sin(u),
  5146. d = Math.cos(u),
  5147. f = .6 * r,
  5148. p = .7 * r;
  5149. 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() } }),
  5150. NA = Fn({ type: "arrow", shape: { x: 0, y: 0, width: 0, height: 0 }, buildPath: function(t, e) { var i = e.height,
  5151. n = e.width,
  5152. o = e.x,
  5153. a = e.y,
  5154. r = n / 3 * 2;
  5155. 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() } }),
  5156. OA = { 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);
  5157. 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 } },
  5158. EA = {};
  5159. d({ line: rM, rect: aM, roundRect: aM, square: aM, circle: KS, diamond: kA, pin: PA, arrow: NA, triangle: LA }, function(t, e) { EA[e] = new t }); var RA = Fn({ type: "symbol", shape: { symbolType: "", x: 0, y: 0, width: 0, height: 0 }, beforeBrush: function() { var t = this.style; "pin" === this.shape.symbolType && "inside" === t.textPosition && (t.textPosition = ["50%", "40%"], t.textAlign = "center", t.textVerticalAlign = "middle") }, buildPath: function(t, e, i) { var n = e.symbolType,
  5160. o = EA[n]; "none" !== e.symbolType && (o || (o = EA[n = "rect"]), OA[n](e.x, e.y, e.width, e.height, o.shape), o.buildPath(t, o.shape, i)) } }),
  5161. zA = { isDimensionStacked: hl, enableDataStack: ul, getStackedDimension: cl },
  5162. BA = (Object.freeze || Object)({ createList: function(t) { return dl(t.getSource(), t) }, getLayoutRect: la, dataStack: zA, createScale: function(t, e) { var i = e;
  5163. Lo.isInstance(e) || h(i = new Lo(e), CA); var n = Vl(i); return n.setExtent(t[0], t[1]), Bl(n, i), n }, mixinAxisModelCommonMethods: function(t) { h(t, CA) }, completeDimensions: rl, createDimensions: oA, createSymbol: Xl }),
  5164. VA = 1e-8;
  5165. ql.prototype = { constructor: ql, 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; s < r.length; s++) "polygon" === r[s].type && (dn(r[s].exterior, o, a), tt(i, i, o), et(n, n, a)); return 0 === s && (i[0] = i[1] = n[0] = n[1] = 0), this._rect = new ue(i[0], i[1], n[0] - i[0], n[1] - i[1]) }, contain: function(t) { var e = this.getBoundingRect(),
  5166. i = this.geometries; if (!e.contain(t[0], t[1])) return !1;
  5167. t: for (var n = 0, o = i.length; n < o; n++)
  5168. if ("polygon" === i[n].type) { var a = i[n].exterior,
  5169. r = i[n].interiors; if (Yl(a, t[0], t[1])) { for (var s = 0; s < (r ? r.length : 0); s++)
  5170. if (Yl(r[s])) continue t;
  5171. return !0 } } return !1 }, transformTo: function(t, e, i, n) { var o = this.getBoundingRect(),
  5172. a = o.width / o.height;
  5173. i ? n || (n = i / a) : i = a * n; for (var r = new ue(t, e, i, n), s = o.calculateTransform(r), l = this.geometries, u = 0; u < l.length; u++)
  5174. if ("polygon" === l[u].type) { for (var h = l[u].exterior, c = l[u].interiors, d = 0; d < h.length; d++) Q(h[d], h[d], s); for (var f = 0; f < (c ? c.length : 0); f++)
  5175. for (d = 0; d < c[f].length; d++) Q(c[f][d], c[f][d], s) }(o = this._rect).copy(r), this.center = [o.x + o.width / 2, o.y + o.height / 2] }, cloneShallow: function(t) { null == t && (t = this.name); var e = new ql(t, this.geometries, this.center); return e._rect = this._rect, e.transformTo = null, e } }; var GA = function(t) { return Kl(t), f(g(t.features, function(t) { return t.geometry && t.properties && t.geometry.coordinates.length > 0 }), function(t) { var e = t.properties,
  5176. i = t.geometry,
  5177. n = i.coordinates,
  5178. o = []; "Polygon" === i.type && o.push({ type: "polygon", exterior: n[0], interiors: n.slice(1) }), "MultiPolygon" === i.type && d(n, function(t) { t[0] && o.push({ type: "polygon", exterior: t[0], interiors: t.slice(1) }) }); var a = new ql(e.name, o, e.cp); return a.properties = e, a }) },
  5179. FA = Bi(),
  5180. WA = [0, 1],
  5181. HA = function(t, e, i) { this.dim = t, this.scale = e, this._extent = i || [0, 0], this.inverse = !1, this.onBand = !1 };
  5182. HA.prototype = { constructor: HA, contain: function(t) { var e = this._extent,
  5183. i = Math.min(e[0], e[1]),
  5184. n = Math.max(e[0], e[1]); return t >= i && t <= n }, containData: function(t) { return this.contain(this.dataToCoord(t)) }, getExtent: function() { return this._extent.slice() }, getPixelPrecision: function(t) { return Fo(t || this.scale.getExtent(), this._extent) }, setExtent: function(t, e) { var i = this._extent;
  5185. i[0] = t, i[1] = e }, dataToCoord: function(t, e) { var i = this._extent,
  5186. n = this.scale; return t = n.normalize(t), this.onBand && "ordinal" === n.type && fu(i = i.slice(), n.count()), Eo(t, WA, i, e) }, coordToData: function(t, e) { var i = this._extent,
  5187. n = this.scale;
  5188. this.onBand && "ordinal" === n.type && fu(i = i.slice(), n.count()); var o = Eo(t, i, WA, e); return this.scale.scale(o) }, pointToData: function(t, e) {}, getTicksCoords: function(t) { var e = (t = t || {}).tickModel || this.getTickModel(),
  5189. i = Ql(this, e),
  5190. n = f(i.ticks, function(t) { return { coord: this.dataToCoord(t), tickValue: t } }, this),
  5191. o = e.get("alignWithLabel"); return pu(this, n, i.tickCategoryInterval, o, t.clamp), n }, getViewLabels: function() { return Jl(this).labels }, getLabelModel: function() { return this.model.getModel("axisLabel") }, getTickModel: function() { return this.model.getModel("axisTick") }, getBandWidth: function() { var t = this._extent,
  5192. e = this.scale.getExtent(),
  5193. i = e[1] - e[0] + (this.onBand ? 1 : 0);
  5194. 0 === i && (i = 1); var n = Math.abs(t[1] - t[0]); return Math.abs(n) / i }, isHorizontal: null, getRotate: null, calculateCategoryInterval: function() { return lu(this) } }; var ZA = GA,
  5195. UA = {};
  5196. d(["map", "each", "filter", "indexOf", "inherits", "reduce", "filter", "bind", "curry", "isArray", "isString", "isObject", "isFunction", "extend", "defaults", "clone", "merge"], function(t) { UA[t] = $_[t] }); var XA = {};
  5197. d(["extendShape", "extendPath", "makePath", "makeImage", "mergePath", "resizePath", "createIcon", "setHoverStyle", "setLabelStyle", "setTextStyle", "setText", "getFont", "updateProps", "initProps", "getTransform", "clipPointsByRect", "clipRectByRect", "Group", "Image", "Text", "Circle", "Sector", "Ring", "Polygon", "Polyline", "Rect", "Line", "BezierCurve", "Arc", "IncrementalDisplayable", "CompoundPath", "LinearGradient", "RadialGradient", "BoundingRect"], function(t) { XA[t] = bM[t] }), OI.extend({ type: "series.line", dependencies: ["grid", "polar"], getInitialData: function(t, e) { return dl(this.getSource(), this) }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: "cartesian2d", legendHoverLink: !0, hoverAnimation: !0, clipOverflow: !0, label: { position: "top" }, lineStyle: { width: 2, type: "solid" }, step: !1, smooth: !1, smoothMonotone: null, symbol: "emptyCircle", symbolSize: 4, symbolRotate: null, showSymbol: !0, showAllSymbol: "auto", connectNulls: !1, sampling: "none", animationEasing: "linear", progressive: 0, hoverLayerThreshold: 1 / 0 } }); var jA = mu.prototype,
  5198. YA = mu.getSymbolSize = function(t, e) { var i = t.getItemVisual(e, "symbolSize"); return i instanceof Array ? i.slice() : [+i, +i] };
  5199. jA._createSymbol = function(t, e, i, n, o) { this.removeAll(); var a = Xl(t, -1, -1, 2, 2, e.getItemVisual(i, "color"), o);
  5200. a.attr({ z2: 100, culling: !0, scale: vu(n) }), a.drift = yu, this._symbolType = t, this.add(a) }, jA.stopSymbolAnimation = function(t) { this.childAt(0).stopAnimation(t) }, jA.getSymbolPath = function() { return this.childAt(0) }, jA.getScale = function() { return this.childAt(0).scale }, jA.highlight = function() { this.childAt(0).trigger("emphasis") }, jA.downplay = function() { this.childAt(0).trigger("normal") }, jA.setZ = function(t, e) { var i = this.childAt(0);
  5201. i.zlevel = t, i.z = e }, jA.setDraggable = function(t) { var e = this.childAt(0);
  5202. e.draggable = t, e.cursor = t ? "move" : "pointer" }, jA.updateData = function(t, e, i) { this.silent = !1; var n = t.getItemVisual(e, "symbol") || "circle",
  5203. o = t.hostModel,
  5204. a = YA(t, e),
  5205. r = n !== this._symbolType; if (r) { var s = t.getItemVisual(e, "symbolKeepAspect");
  5206. this._createSymbol(n, t, e, a, s) } else(l = this.childAt(0)).silent = !1, bo(l, { scale: vu(a) }, o, e); if (this._updateCommon(t, e, a, i), r) { var l = this.childAt(0),
  5207. u = i && i.fadeIn,
  5208. h = { scale: l.scale.slice() };
  5209. u && (h.style = { opacity: l.style.opacity }), l.scale = [0, 0], u && (l.style.opacity = 0), So(l, h, o, e) }
  5210. this._seriesModel = o }; var qA = ["itemStyle"],
  5211. KA = ["emphasis", "itemStyle"],
  5212. $A = ["label"],
  5213. JA = ["emphasis", "label"];
  5214. jA._updateCommon = function(t, e, i, n) { var o = this.childAt(0),
  5215. r = t.hostModel,
  5216. s = t.getItemVisual(e, "color"); "image" !== o.type && o.useStyle({ strokeNoScale: !0 }); var l = n && n.itemStyle,
  5217. u = n && n.hoverItemStyle,
  5218. h = n && n.symbolRotate,
  5219. c = n && n.symbolOffset,
  5220. d = n && n.labelModel,
  5221. f = n && n.hoverLabelModel,
  5222. p = n && n.hoverAnimation,
  5223. g = n && n.cursorStyle; if (!n || t.hasItemOption) { var m = n && n.itemModel ? n.itemModel : t.getItemModel(e);
  5224. l = m.getModel(qA).getItemStyle(["color"]), u = m.getModel(KA).getItemStyle(), h = m.getShallow("symbolRotate"), c = m.getShallow("symbolOffset"), d = m.getModel($A), f = m.getModel(JA), p = m.getShallow("hoverAnimation"), g = m.getShallow("cursor") } else u = a({}, u); var v = o.style;
  5225. o.attr("rotation", (h || 0) * Math.PI / 180 || 0), c && o.attr("position", [Ro(c[0], i[0]), Ro(c[1], i[1])]), g && o.attr("cursor", g), o.setColor(s, n && n.symbolInnerColor), o.setStyle(l); var y = t.getItemVisual(e, "opacity");
  5226. null != y && (v.opacity = y); var x = t.getItemVisual(e, "liftZ"),
  5227. _ = o.__z2Origin;
  5228. null != x ? null == _ && (o.__z2Origin = o.z2, o.z2 += x) : null != _ && (o.z2 = _, o.__z2Origin = null); var w = n && n.useNameLabel;
  5229. co(v, u, d, f, { labelFetcher: r, labelDataIndex: e, defaultText: function(e, i) { return w ? t.getName(e) : gu(t, e) }, isRectText: !0, autoColor: s }), o.off("mouseover").off("mouseout").off("emphasis").off("normal"), o.hoverStyle = u, uo(o), o.__symbolOriginalScale = vu(i), p && r.isAnimationEnabled() && o.on("mouseover", xu).on("mouseout", _u).on("emphasis", wu).on("normal", bu) }, jA.fadeOut = function(t, e) { var i = this.childAt(0);
  5230. this.silent = i.silent = !0, !(e && e.keepLabel) && (i.style.text = null), bo(i, { style: { opacity: 0 }, scale: [0, 0] }, this._seriesModel, this.dataIndex, t) }, u(mu, Zw); var QA = Su.prototype;
  5231. QA.updateData = function(t, e) { e = Iu(e); var i = this.group,
  5232. n = t.hostModel,
  5233. o = this._data,
  5234. a = this._symbolCtor,
  5235. r = Tu(t);
  5236. o || i.removeAll(), t.diff(o).add(function(n) { var o = t.getItemLayout(n); if (Mu(t, o, n, e)) { var s = new a(t, n, r);
  5237. s.attr("position", o), t.setItemGraphicEl(n, s), i.add(s) } }).update(function(s, l) { var u = o.getItemGraphicEl(l),
  5238. h = t.getItemLayout(s);
  5239. Mu(t, h, s, e) ? (u ? (u.updateData(t, s, r), bo(u, { position: h }, n)) : (u = new a(t, s)).attr("position", h), i.add(u), t.setItemGraphicEl(s, u)) : i.remove(u) }).remove(function(t) { var e = o.getItemGraphicEl(t);
  5240. e && e.fadeOut(function() { i.remove(e) }) }).execute(), this._data = t }, QA.isPersistent = function() { return !0 }, QA.updateLayout = function() { var t = this._data;
  5241. t && t.eachItemGraphicEl(function(e, i) { var n = t.getItemLayout(i);
  5242. e.attr("position", n) }) }, QA.incrementalPrepareUpdate = function(t) { this._seriesScope = Tu(t), this._data = null, this.group.removeAll() }, QA.incrementalUpdate = function(t, e, i) { i = Iu(i); for (var n = t.start; n < t.end; n++) { var o = e.getItemLayout(n); if (Mu(e, o, n, i)) { var a = new this._symbolCtor(e, n, this._seriesScope);
  5243. a.traverse(function(t) { t.isGroup || (t.incremental = t.useHoverLayer = !0) }), a.attr("position", o), this.group.add(a), e.setItemGraphicEl(n, a) } } }, QA.remove = function(t) { var e = this.group,
  5244. i = this._data;
  5245. i && t ? i.eachItemGraphicEl(function(t) { t.fadeOut(function() { e.remove(t) }) }) : e.removeAll() }; var tD = function(t, e, i, n, o, a, r, s) { for (var l = Lu(t, e), u = [], h = [], c = [], d = [], f = [], p = [], g = [], m = Au(o, e, r), v = Au(a, t, s), y = 0; y < l.length; y++) { var x = l[y],
  5246. _ = !0; switch (x.cmd) {
  5247. case "=":
  5248. var w = t.getItemLayout(x.idx),
  5249. b = e.getItemLayout(x.idx1);
  5250. (isNaN(w[0]) || isNaN(w[1])) && (w = b.slice()), u.push(w), h.push(b), c.push(i[x.idx]), d.push(n[x.idx1]), g.push(e.getRawIndex(x.idx1)); break;
  5251. case "+":
  5252. S = x.idx;
  5253. u.push(o.dataToPoint([e.get(m.dataDimsForPoint[0], S), e.get(m.dataDimsForPoint[1], S)])), h.push(e.getItemLayout(S).slice()), c.push(Cu(m, o, e, S)), d.push(n[S]), g.push(e.getRawIndex(S)); break;
  5254. case "-":
  5255. var S = x.idx,
  5256. M = t.getRawIndex(S);
  5257. M !== S ? (u.push(t.getItemLayout(S)), h.push(a.dataToPoint([t.get(v.dataDimsForPoint[0], S), t.get(v.dataDimsForPoint[1], S)])), c.push(i[S]), d.push(Cu(v, a, t, S)), g.push(M)) : _ = !1 }
  5258. _ && (f.push(x), p.push(p.length)) }
  5259. p.sort(function(t, e) { return g[t] - g[e] }); for (var I = [], T = [], A = [], D = [], C = [], y = 0; y < p.length; y++) { S = p[y];
  5260. I[y] = u[S], T[y] = h[S], A[y] = c[S], D[y] = d[S], C[y] = f[S] } return { current: I, next: T, stackedOnCurrent: A, stackedOnNext: D, status: C } },
  5261. eD = tt,
  5262. iD = et,
  5263. nD = Z,
  5264. oD = G,
  5265. aD = [],
  5266. rD = [],
  5267. sD = [],
  5268. lD = kn.extend({ type: "ec-polyline", shape: { points: [], smooth: 0, smoothConstraint: !0, smoothMonotone: null, connectNulls: !1 }, style: { fill: null, stroke: "#000" }, brush: JS(kn.prototype.brush), buildPath: function(t, e) { var i = e.points,
  5269. n = 0,
  5270. o = i.length,
  5271. a = Eu(i, e.smoothConstraint); if (e.connectNulls) { for (; o > 0 && ku(i[o - 1]); o--); for (; n < o && ku(i[n]); n++); } for (; n < o;) n += Pu(t, i, n, o, o, 1, a.min, a.max, e.smooth, e.smoothMonotone, e.connectNulls) + 1 } }),
  5272. uD = kn.extend({ type: "ec-polygon", shape: { points: [], stackedOnPoints: [], smooth: 0, stackedOnSmooth: 0, smoothConstraint: !0, smoothMonotone: null, connectNulls: !1 }, brush: JS(kn.prototype.brush), buildPath: function(t, e) { var i = e.points,
  5273. n = e.stackedOnPoints,
  5274. o = 0,
  5275. a = i.length,
  5276. r = e.smoothMonotone,
  5277. s = Eu(i, e.smoothConstraint),
  5278. l = Eu(n, e.smoothConstraint); if (e.connectNulls) { for (; a > 0 && ku(i[a - 1]); a--); for (; o < a && ku(i[o]); o++); } for (; o < a;) { var u = Pu(t, i, o, a, a, 1, s.min, s.max, e.smooth, r, e.connectNulls);
  5279. Pu(t, n, o + u - 1, u, a, -1, l.min, l.max, e.stackedOnSmooth, r, e.connectNulls), o += u + 1, t.closePath() } } });
  5280. Mr.extend({ type: "line", init: function() { var t = new Zw,
  5281. e = new Su;
  5282. this.group.add(e.group), this._symbolDraw = e, this._lineGroup = t }, render: function(t, e, i) { var n = t.coordinateSystem,
  5283. o = this.group,
  5284. a = t.getData(),
  5285. s = t.getModel("lineStyle"),
  5286. l = t.getModel("areaStyle"),
  5287. u = a.mapArray(a.getItemLayout),
  5288. h = "polar" === n.type,
  5289. c = this._coordSys,
  5290. d = this._symbolDraw,
  5291. f = this._polyline,
  5292. p = this._polygon,
  5293. g = this._lineGroup,
  5294. m = t.get("animation"),
  5295. v = !l.isEmpty(),
  5296. y = l.get("origin"),
  5297. x = Vu(n, a, Au(n, a, y)),
  5298. _ = t.get("showSymbol"),
  5299. w = _ && !h && Uu(t, a, n),
  5300. b = this._data;
  5301. b && b.eachItemGraphicEl(function(t, e) { t.__temp && (o.remove(t), b.setItemGraphicEl(e, null)) }), _ || d.remove(), o.add(g); var S = !h && t.get("step");
  5302. f && c.type === n.type && S === this._step ? (v && !p ? p = this._newPolygon(u, x, n, m) : p && !v && (g.remove(p), p = this._polygon = null), g.setClipPath(Wu(n, !1, !1, t)), _ && d.updateData(a, { isIgnore: w, clipShape: Wu(n, !1, !0, t) }), a.eachItemGraphicEl(function(t) { t.stopAnimation(!0) }), Ru(this._stackedOnPoints, x) && Ru(this._points, u) || (m ? this._updateAnimation(a, x, n, i, S, y) : (S && (u = Hu(u, n, S), x = Hu(x, n, S)), f.setShape({ points: u }), p && p.setShape({ points: u, stackedOnPoints: x })))) : (_ && d.updateData(a, { isIgnore: w, clipShape: Wu(n, !1, !0, t) }), S && (u = Hu(u, n, S), x = Hu(x, n, S)), f = this._newPolyline(u, n, m), v && (p = this._newPolygon(u, x, n, m)), g.setClipPath(Wu(n, !0, !1, t))); var M = Zu(a, n) || a.getVisual("color");
  5303. f.useStyle(r(s.getLineStyle(), { fill: "none", stroke: M, lineJoin: "bevel" })); var I = t.get("smooth"); if (I = zu(t.get("smooth")), f.setShape({ smooth: I, smoothMonotone: t.get("smoothMonotone"), connectNulls: t.get("connectNulls") }), p) { var T = a.getCalculationInfo("stackedOnSeries"),
  5304. A = 0;
  5305. p.useStyle(r(l.getAreaStyle(), { fill: M, opacity: .7, lineJoin: "bevel" })), T && (A = zu(T.get("smooth"))), p.setShape({ smooth: I, stackedOnSmooth: A, smoothMonotone: t.get("smoothMonotone"), connectNulls: t.get("connectNulls") }) }
  5306. this._data = a, this._coordSys = n, this._stackedOnPoints = x, this._points = u, this._step = S, this._valueOrigin = y }, dispose: function() {}, highlight: function(t, e, i, n) { var o = t.getData(),
  5307. a = zi(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;
  5308. (r = new mu(o, a)).position = s, r.setZ(t.get("zlevel"), t.get("z")), r.ignore = isNaN(s[0]) || isNaN(s[1]), r.__temp = !0, o.setItemGraphicEl(a, r), r.stopSymbolAnimation(!0), this.group.add(r) }
  5309. r.highlight() } else Mr.prototype.highlight.call(this, t, e, i, n) }, downplay: function(t, e, i, n) { var o = t.getData(),
  5310. a = zi(o, n); if (null != a && a >= 0) { var r = o.getItemGraphicEl(a);
  5311. r && (r.__temp ? (o.setItemGraphicEl(a, null), this.group.remove(r)) : r.downplay()) } else Mr.prototype.downplay.call(this, t, e, i, n) }, _newPolyline: function(t) { var e = this._polyline; return e && this._lineGroup.remove(e), e = new lD({ 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 uD({ 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,
  5312. s = this._polygon,
  5313. l = t.hostModel,
  5314. u = tD(this._data, t, this._stackedOnPoints, e, this._coordSys, i, this._valueOrigin, a),
  5315. h = u.current,
  5316. c = u.stackedOnCurrent,
  5317. d = u.next,
  5318. f = u.stackedOnNext;
  5319. o && (h = Hu(u.current, i, o), c = Hu(u.stackedOnCurrent, i, o), d = Hu(u.next, i, o), f = Hu(u.stackedOnNext, i, o)), r.shape.__points = u.current, r.shape.points = h, bo(r, { shape: { points: d } }, l), s && (s.setShape({ points: h, stackedOnPoints: c }), bo(s, { shape: { points: d, stackedOnPoints: f } }, l)); for (var p = [], g = u.status, m = 0; m < g.length; m++)
  5320. if ("=" === g[m].cmd) { var v = t.getItemGraphicEl(g[m].idx1);
  5321. v && p.push({ el: v, ptIdx: m }) }
  5322. r.animators && r.animators.length && r.animators[0].during(function() { for (var t = 0; t < p.length; t++) p[t].el.attr("position", r.shape.__points[p[t].ptIdx]) }) }, remove: function(t) { var e = this.group,
  5323. i = this._data;
  5324. this._lineGroup.removeAll(), this._symbolDraw.remove(!0), i && i.eachItemGraphicEl(function(t, n) { t.__temp && (e.remove(t), i.setItemGraphicEl(n, null)) }), this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._data = null } }); var hD = function(t, e, i) { return { seriesType: t, performRawSeries: !0, reset: function(t, n, o) { var a = t.getData(),
  5325. r = t.get("symbol") || e,
  5326. s = t.get("symbolSize"),
  5327. l = t.get("symbolKeepAspect"); if (a.setVisual({ legendSymbol: i || r, symbol: r, symbolSize: s, symbolKeepAspect: l }), !n.isSeriesFiltered(t)) { var u = "function" == typeof s; return { dataEach: a.hasItemOption || u ? function(e, i) { if ("function" == typeof s) { var n = t.getRawValue(i),
  5328. o = t.getDataParams(i);
  5329. e.setItemVisual(i, "symbolSize", s(n, o)) } if (e.hasItemOption) { var a = e.getItemModel(i),
  5330. r = a.getShallow("symbol", !0),
  5331. l = a.getShallow("symbolSize", !0),
  5332. u = a.getShallow("symbolKeepAspect", !0);
  5333. null != r && e.setItemVisual(i, "symbol", r), null != l && e.setItemVisual(i, "symbolSize", l), null != u && e.setItemVisual(i, "symbolKeepAspect", u) } } : null } } } } },
  5334. cD = function(t) { return { seriesType: t, plan: zI(), reset: function(t) { var e = t.getData(),
  5335. i = t.coordinateSystem,
  5336. n = t.pipelineContext.large; if (i) { var o = f(i.dimensions, function(t) { return e.mapDimension(t) }).slice(0, 2),
  5337. a = o.length,
  5338. r = e.getCalculationInfo("stackResultDimension"); return hl(e, o[0]) && (o[0] = r), hl(e, o[1]) && (o[1] = r), a && { progress: function(t, e) { for (var r = t.end - t.start, s = n && new Float32Array(r * a), l = t.start, u = 0, h = [], c = []; l < t.end; l++) { var d; if (1 === a) f = e.get(o[0], l), d = !isNaN(f) && i.dataToPoint(f, null, c);
  5339. else { var f = h[0] = e.get(o[0], l),
  5340. p = h[1] = e.get(o[1], l);
  5341. d = !isNaN(f) && !isNaN(p) && i.dataToPoint(h, null, c) }
  5342. n ? (s[u++] = d ? d[0] : NaN, s[u++] = d ? d[1] : NaN) : e.setItemLayout(l, d && d.slice() || [NaN, NaN]) }
  5343. n && e.setLayout("symbolPoints", s) } } } } } },
  5344. dD = { average: function(t) { for (var e = 0, i = 0, n = 0; n < t.length; n++) isNaN(t[n]) || (e += t[n], i++); return 0 === i ? NaN : e / i }, sum: function(t) { for (var e = 0, i = 0; i < t.length; i++) e += t[i] || 0; return e }, max: function(t) { for (var e = -1 / 0, i = 0; i < t.length; i++) t[i] > e && (e = t[i]); return isFinite(e) ? e : NaN }, min: function(t) { for (var e = 1 / 0, i = 0; i < t.length; i++) t[i] < e && (e = t[i]); return isFinite(e) ? e : NaN }, nearest: function(t) { return t[0] } },
  5345. fD = function(t, e) { return Math.round(t.length / 2) },
  5346. pD = function(t) { this._axes = {}, this._dimList = [], this.name = t || "" };
  5347. pD.prototype = { constructor: pD, type: "cartesian", getAxis: function(t) { return this._axes[t] }, getAxes: function() { return f(this._dimList, ju, this) }, getAxesByScale: function(t) { return t = t.toLowerCase(), g(this.getAxes(), function(e) { return e.scale.type === t }) }, addAxis: function(t) { var e = t.dim;
  5348. 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; o < i.length; o++) { var a = i[o],
  5349. r = this._axes[a];
  5350. n[a] = r[e](t[a]) } return n } }, Yu.prototype = { constructor: Yu, type: "cartesian2d", dimensions: ["x", "y"], getBaseAxis: function() { return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAxis("x") }, containPoint: function(t) { var e = this.getAxis("x"),
  5351. i = this.getAxis("y"); return e.contain(e.toLocalCoord(t[0])) && i.contain(i.toLocalCoord(t[1])) }, containData: function(t) { return this.getAxis("x").containData(t[0]) && this.getAxis("y").containData(t[1]) }, dataToPoint: function(t, e, i) { var n = this.getAxis("x"),
  5352. o = this.getAxis("y"); return i = i || [], i[0] = n.toGlobalCoord(n.dataToCoord(t[0])), i[1] = o.toGlobalCoord(o.dataToCoord(t[1])), i }, clampData: function(t, e) { var i = this.getAxis("x").scale,
  5353. n = this.getAxis("y").scale,
  5354. o = i.getExtent(),
  5355. a = n.getExtent(),
  5356. r = i.parse(t[0]),
  5357. s = n.parse(t[1]); return e = e || [], e[0] = Math.min(Math.max(Math.min(o[0], o[1]), r), Math.max(o[0], o[1])), e[1] = Math.min(Math.max(Math.min(a[0], a[1]), s), Math.max(a[0], a[1])), e }, pointToData: function(t, e) { var i = this.getAxis("x"),
  5358. n = this.getAxis("y"); return e = e || [], e[0] = i.coordToData(i.toLocalCoord(t[0])), e[1] = n.coordToData(n.toLocalCoord(t[1])), e }, getOtherAxis: function(t) { return this.getAxis("x" === t.dim ? "y" : "x") } }, u(Yu, pD); var gD = function(t, e, i, n, o) { HA.call(this, t, e, i), this.type = n || "value", this.position = o || "bottom" };
  5359. gD.prototype = { constructor: gD, index: 0, getAxesOnZeroOf: null, model: null, isHorizontal: function() { var t = this.position; return "top" === t || "bottom" === t }, 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 }, getOtherAxis: function() { this.grid.getOtherAxis() }, pointToData: function(t, e) { return this.coordToData(this.toLocalCoord(t["x" === this.dim ? 0 : 1]), e) }, toLocalCoord: null, toGlobalCoord: null }, u(gD, HA); var mD = { 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)"] } } },
  5360. vD = {};
  5361. vD.categoryAxis = n({ boundaryGap: !0, deduplication: null, splitLine: { show: !1 }, axisTick: { alignWithLabel: !1, interval: "auto" }, axisLabel: { interval: "auto" } }, mD), vD.valueAxis = n({ boundaryGap: [0, 0], splitNumber: 5 }, mD), vD.timeAxis = r({ scale: !0, min: "dataMin", max: "dataMax" }, vD.valueAxis), vD.logAxis = r({ scale: !0, logBase: 10 }, vD.valueAxis); var yD = ["value", "category", "time", "log"],
  5362. xD = function(t, e, i, a) { d(yD, function(r) { e.extend({ type: t + "Axis." + r, mergeDefaultAndTheme: function(e, o) { var a = this.layoutMode,
  5363. s = a ? da(e) : {};
  5364. n(e, o.getTheme().get(r + "Axis")), n(e, this.getDefaultOption()), e.type = i(t, e), a && ca(e, s, a) }, optionUpdated: function() { "category" === this.option.type && (this.__ordinalMeta = ml.createByAxisModel(this)) }, getCategories: function(t) { var e = this.option; if ("category" === e.type) return t ? e.data : this.__ordinalMeta.categories }, getOrdinalMeta: function() { return this.__ordinalMeta }, defaultOption: o([{}, vD[r + "Axis"], a], !0) }) }), YM.registerSubTypeDefaulter(t + "Axis", v(i, t)) },
  5365. _D = YM.extend({ type: "cartesian2dAxis", axis: null, init: function() { _D.superApply(this, "init", arguments), this.resetRange() }, mergeOption: function() { _D.superApply(this, "mergeOption", arguments), this.resetRange() }, restoreData: function() { _D.superApply(this, "restoreData", arguments), this.resetRange() }, getCoordSysModel: function() { return this.ecModel.queryComponents({ mainType: "grid", index: this.option.gridIndex, id: this.option.gridId })[0] } });
  5366. n(_D.prototype, CA); var wD = { offset: 0 };
  5367. xD("x", _D, qu, wD), xD("y", _D, qu, wD), YM.extend({ type: "grid", dependencies: ["xAxis", "yAxis"], layoutMode: "box", coordinateSystem: null, defaultOption: { show: !1, zlevel: 0, z: 0, left: "10%", top: 60, right: "10%", bottom: 60, containLabel: !1, backgroundColor: "rgba(0,0,0,0)", borderWidth: 1, borderColor: "#ccc" } }); var bD = $u.prototype;
  5368. bD.type = "grid", bD.axisPointerEnabled = !0, bD.getRect = function() { return this._rect }, bD.update = function(t, e) { var i = this._axesMap;
  5369. this._updateScale(t, this.model), d(i.x, function(t) { Bl(t.scale, t.model) }), d(i.y, function(t) { Bl(t.scale, t.model) }); var n = {};
  5370. d(i.x, function(t) { Ju(i, "y", t, n) }), d(i.y, function(t) { Ju(i, "x", t, n) }), this.resize(this.model, e) }, bD.resize = function(t, e, i) {
  5371. function n() { d(a, function(t) { var e = t.isHorizontal(),
  5372. i = e ? [0, o.width] : [0, o.height],
  5373. n = t.inverse ? 1 : 0;
  5374. t.setExtent(i[n], i[1 - n]), th(t, e ? o.x : o.y) }) } var o = la(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() });
  5375. this._rect = o; var a = this._axesList;
  5376. n(), !i && t.get("containLabel") && (d(a, function(t) { if (!t.model.get("axisLabel.inside")) { var e = Hl(t); if (e) { var i = t.isHorizontal() ? "height" : "width",
  5377. n = t.model.get("axisLabel.margin");
  5378. o[i] -= e[i] + n, "top" === t.position ? o.y += e.height + n : "left" === t.position && (o.x += e.width + n) } } }), n()) }, bD.getAxis = function(t, e) { var i = this._axesMap[t]; if (null != i) { if (null == e)
  5379. for (var n in i)
  5380. if (i.hasOwnProperty(n)) return i[n];
  5381. return i[e] } }, bD.getAxes = function() { return this._axesList.slice() }, bD.getCartesian = function(t, e) { if (null != t && null != e) { var i = "x" + t + "y" + e; return this._coordsMap[i] }
  5382. w(t) && (e = t.yAxisIndex, t = t.xAxisIndex); for (var n = 0, o = this._coordsList; n < o.length; n++)
  5383. if (o[n].getAxis("x").index === t || o[n].getAxis("y").index === e) return o[n] }, bD.getCartesians = function() { return this._coordsList.slice() }, bD.convertToPixel = function(t, e, i) { var n = this._findConvertTarget(t, e); return n.cartesian ? n.cartesian.dataToPoint(i) : n.axis ? n.axis.toGlobalCoord(n.axis.dataToCoord(i)) : null }, bD.convertFromPixel = function(t, e, i) { var n = this._findConvertTarget(t, e); return n.cartesian ? n.cartesian.pointToData(i) : n.axis ? n.axis.coordToData(n.axis.toLocalCoord(i)) : null }, bD._findConvertTarget = function(t, e) { var i, n, o = e.seriesModel,
  5384. a = e.xAxisModel || o && o.getReferringComponents("xAxis")[0],
  5385. r = e.yAxisModel || o && o.getReferringComponents("yAxis")[0],
  5386. s = e.gridModel,
  5387. u = this._coordsList; return o ? l(u, i = o.coordinateSystem) < 0 && (i = null) : a && r ? i = this.getCartesian(a.componentIndex, r.componentIndex) : a ? n = this.getAxis("x", a.componentIndex) : r ? n = this.getAxis("y", r.componentIndex) : s && s.coordinateSystem === this && (i = this._coordsList[0]), { cartesian: i, axis: n } }, bD.containPoint = function(t) { var e = this._coordsList[0]; if (e) return e.containPoint(t) }, bD._initCartesian = function(t, e, i) {
  5388. function n(i) { return function(n, s) { if (Ku(n, t, e)) { var l = n.get("position"); "x" === i ? "top" !== l && "bottom" !== l && o[l = "bottom"] && (l = "top" === l ? "bottom" : "top") : "left" !== l && "right" !== l && o[l = "left"] && (l = "left" === l ? "right" : "left"), o[l] = !0; var u = new gD(i, Vl(n), [0, 0], n.get("type"), l),
  5389. h = "category" === u.type;
  5390. u.onBand = h && n.get("boundaryGap"), u.inverse = n.get("inverse"), n.axis = u, u.model = n, u.grid = this, u.index = s, this._axesList.push(u), a[i][s] = u, r[i]++ } } } var o = { left: !1, right: !1, top: !1, bottom: !1 },
  5391. a = { x: {}, y: {} },
  5392. r = { x: 0, y: 0 }; if (e.eachComponent("xAxis", n("x"), this), e.eachComponent("yAxis", n("y"), this), !r.x || !r.y) return this._axesMap = {}, void(this._axesList = []);
  5393. this._axesMap = a, d(a.x, function(e, i) { d(a.y, function(n, o) { var a = "x" + i + "y" + o,
  5394. r = new Yu(a);
  5395. r.grid = this, r.model = t, this._coordsMap[a] = r, this._coordsList.push(r), r.addAxis(e), r.addAxis(n) }, this) }, this) }, bD._updateScale = function(t, e) {
  5396. function i(t, e, i) { d(t.mapDimension(e.dim, !0), function(i) { e.scale.unionExtentFromData(t, cl(t, i)) }) }
  5397. d(this._axesList, function(t) { t.scale.setExtent(1 / 0, -1 / 0) }), t.eachSeries(function(n) { if (ih(n)) { var o = eh(n),
  5398. a = o[0],
  5399. r = o[1]; if (!Ku(a, e, t) || !Ku(r, e, t)) return; var s = this.getCartesian(a.componentIndex, r.componentIndex),
  5400. l = n.getData(),
  5401. u = s.getAxis("x"),
  5402. h = s.getAxis("y"); "list" === l.type && (i(l, u), i(l, h)) } }, this) }, bD.getTooltipAxes = function(t) { var e = [],
  5403. i = []; return d(this.getCartesians(), function(n) { var o = null != t && "auto" !== t ? n.getAxis(t) : n.getBaseAxis(),
  5404. a = n.getOtherAxis(o);
  5405. l(e, o) < 0 && e.push(o), l(i, a) < 0 && i.push(a) }), { baseAxes: e, otherAxes: i } }; var SD = ["xAxis", "yAxis"];
  5406. $u.create = function(t, e) { var i = []; return t.eachComponent("grid", function(n, o) { var a = new $u(n, t, e);
  5407. a.name = "grid_" + o, a.resize(n, e, !0), n.coordinateSystem = a, i.push(a) }), t.eachSeries(function(t) { if (ih(t)) { var e = eh(t),
  5408. i = e[0],
  5409. n = e[1],
  5410. o = i.getCoordSysModel().coordinateSystem;
  5411. t.coordinateSystem = o.getCartesian(i.componentIndex, n.componentIndex) } }), i }, $u.dimensions = $u.prototype.dimensions = Yu.prototype.dimensions, Ba.register("cartesian2d", $u); var MD = Math.PI,
  5412. ID = function(t, e) { this.opt = e, this.axisModel = t, r(e, { labelOffset: 0, nameDirection: 1, tickDirection: 1, labelDirection: 1, silent: !0 }), this.group = new Zw; var i = new Zw({ position: e.position.slice(), rotation: e.rotation });
  5413. i.updateTransform(), this._transform = i.transform, this._dumbGroup = i };
  5414. ID.prototype = { constructor: ID, hasBuilder: function(t) { return !!TD[t] }, add: function(t) { TD[t].call(this) }, getGroup: function() { return this.group } }; var TD = { axisLine: function() { var t = this.opt,
  5415. e = this.axisModel; if (e.get("axisLine.show")) { var i = this.axisModel.axis.getExtent(),
  5416. n = this._transform,
  5417. o = [i[0], 0],
  5418. r = [i[1], 0];
  5419. n && (Q(o, o, n), Q(r, r, n)); var s = a({ lineCap: "round" }, e.getModel("axisLine.lineStyle").getLineStyle());
  5420. this.group.add(new rM(Xn({ anid: "line", shape: { x1: o[0], y1: o[1], x2: r[0], y2: r[1] }, style: s, strokeContainThreshold: t.strokeContainThreshold || 5, silent: !0, z2: 1 }))); var l = e.get("axisLine.symbol"),
  5421. u = e.get("axisLine.symbolSize"),
  5422. 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],
  5423. f = u[1];
  5424. d([{ 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] - r[0]) * (o[0] - r[0]) + (o[1] - r[1]) * (o[1] - r[1])) }], function(e, i) { if ("none" !== l[i] && null != l[i]) { var n = Xl(l[i], -c / 2, -f / 2, c, f, s.stroke, !0),
  5425. a = e.r + e.offset,
  5426. r = [o[0] + a * Math.cos(t.rotation), o[1] - a * Math.sin(t.rotation)];
  5427. n.attr({ rotation: e.rotate, position: r, silent: !0 }), this.group.add(n) } }, this) } } }, axisTickLabel: function() { var t = this.axisModel,
  5428. e = this.opt,
  5429. i = hh(this, t, e);
  5430. rh(t, ch(this, t, e), i) }, axisName: function() { var t = this.opt,
  5431. e = this.axisModel,
  5432. i = T(t.axisName, e.get("name")); if (i) { var n, o = e.get("nameLocation"),
  5433. r = t.nameDirection,
  5434. s = e.getModel("nameTextStyle"),
  5435. l = e.get("nameGap") || 0,
  5436. u = this.axisModel.axis.getExtent(),
  5437. h = u[0] > u[1] ? -1 : 1,
  5438. c = ["start" === o ? u[0] - h * l : "end" === o ? u[1] + h * l : (u[0] + u[1]) / 2, uh(o) ? t.labelOffset + r * l : 0],
  5439. d = e.get("nameRotate");
  5440. null != d && (d = d * MD / 180); var f;
  5441. uh(o) ? n = AD(t.rotation, null != d ? d : t.rotation, r) : (n = oh(t, o, d || 0, u), null != (f = t.axisNameAvailableWidth) && (f = Math.abs(f / Math.sin(n.rotation)), !isFinite(f) && (f = null))); var p = s.getFont(),
  5442. g = e.get("nameTruncate", !0) || {},
  5443. m = g.ellipsis,
  5444. v = T(t.nameTruncateMaxWidth, g.maxWidth, f),
  5445. y = null != m && null != v ? VM(i, v, p, m, { minChar: 2, placeholder: g.placeholder }) : i,
  5446. x = e.get("tooltip", !0),
  5447. _ = e.mainType,
  5448. w = { componentType: _, name: i, $vars: ["name"] };
  5449. w[_ + "Index"] = e.componentIndex; var b = new qS({ anid: "name", __fullText: i, __truncatedText: y, position: c, rotation: n.rotation, silent: ah(e), z2: 1, tooltip: x && x.show ? a({ content: i, formatter: function() { return i }, formatterParams: w }, x) : null });
  5450. fo(b.style, s, { text: y, textFont: p, textFill: s.getTextColor() || e.get("axisLine.lineStyle.color"), textAlign: n.textAlign, textVerticalAlign: n.textVerticalAlign }), e.get("triggerEvent") && (b.eventData = nh(e), b.eventData.targetType = "axisName", b.eventData.name = i), this._dumbGroup.add(b), b.updateTransform(), this.group.add(b), b.decomposeTransform() } } },
  5451. AD = ID.innerTextLayout = function(t, e, i) { var n, o, a = Ho(e - t); return Zo(a) ? (o = i > 0 ? "top" : "bottom", n = "center") : Zo(a - MD) ? (o = i > 0 ? "bottom" : "top", n = "center") : (o = "middle", n = a > 0 && a < MD ? i > 0 ? "right" : "left" : i > 0 ? "left" : "right"), { rotation: a, textAlign: n, textVerticalAlign: o } },
  5452. DD = d,
  5453. CD = v,
  5454. LD = Vs({ type: "axis", _axisPointer: null, axisPointerClass: null, render: function(t, e, i, n) { this.axisPointerClass && yh(t), LD.superApply(this, "render", arguments), Sh(this, t, 0, i, 0, !0) }, updateAxisPointer: function(t, e, i, n, o) { Sh(this, t, 0, i, 0, !1) }, remove: function(t, e) { var i = this._axisPointer;
  5455. i && i.remove(e), LD.superApply(this, "remove", arguments) }, dispose: function(t, e) { Mh(this, e), LD.superApply(this, "dispose", arguments) } }),
  5456. kD = [];
  5457. LD.registerAxisPointerClass = function(t, e) { kD[t] = e }, LD.getAxisPointerClass = function(t) { return t && kD[t] }; var PD = ["axisLine", "axisTickLabel", "axisName"],
  5458. ND = ["splitArea", "splitLine"],
  5459. OD = LD.extend({ type: "cartesianAxis", axisPointerClass: "CartesianAxisPointer", render: function(t, e, i, n) { this.group.removeAll(); var o = this._axisGroup; if (this._axisGroup = new Zw, this.group.add(this._axisGroup), t.get("show")) { var a = t.getCoordSysModel(),
  5460. r = Ih(a, t),
  5461. s = new ID(t, r);
  5462. d(PD, s.add, s), this._axisGroup.add(s.getGroup()), d(ND, function(e) { t.get(e + ".show") && this["_" + e](t, a) }, this), Ao(o, this._axisGroup, t), OD.superCall(this, "render", t, e, i, n) } }, remove: function() { this._splitAreaColors = null }, _splitLine: function(t, e) { var i = t.axis; if (!i.scale.isBlank()) { var n = t.getModel("splitLine"),
  5463. o = n.getModel("lineStyle"),
  5464. a = o.get("color");
  5465. a = y(a) ? a : [a]; for (var s = e.coordinateSystem.getRect(), l = i.isHorizontal(), u = 0, h = i.getTicksCoords({ tickModel: n }), c = [], d = [], f = o.getLineStyle(), p = 0; p < h.length; p++) { var g = i.toGlobalCoord(h[p].coord);
  5466. l ? (c[0] = g, c[1] = s.y, d[0] = g, d[1] = s.y + s.height) : (c[0] = s.x, c[1] = g, d[0] = s.x + s.width, d[1] = g); var m = u++ % a.length,
  5467. v = h[p].tickValue;
  5468. this._axisGroup.add(new rM(Xn({ anid: null != v ? "line_" + h[p].tickValue : null, shape: { x1: c[0], y1: c[1], x2: d[0], y2: d[1] }, style: r({ stroke: a[m] }, f), silent: !0 }))) } } }, _splitArea: function(t, e) { var i = t.axis; if (!i.scale.isBlank()) { var n = t.getModel("splitArea"),
  5469. o = n.getModel("areaStyle"),
  5470. a = o.get("color"),
  5471. s = e.coordinateSystem.getRect(),
  5472. l = i.getTicksCoords({ tickModel: n, clamp: !0 }); if (l.length) { var u = a.length,
  5473. h = this._splitAreaColors,
  5474. c = R(),
  5475. d = 0; if (h)
  5476. for (m = 0; m < l.length; m++) { var f = h.get(l[m].tickValue); if (null != f) { d = (f + (u - 1) * m) % u; break } }
  5477. var p = i.toGlobalCoord(l[0].coord),
  5478. g = o.getAreaStyle();
  5479. a = y(a) ? a : [a]; for (var m = 1; m < l.length; m++) { var v, x, _, w, b = i.toGlobalCoord(l[m].coord);
  5480. i.isHorizontal() ? (v = p, x = s.y, _ = b - v, w = s.height, p = v + _) : (v = s.x, x = p, _ = s.width, p = x + (w = b - x)); var S = l[m - 1].tickValue;
  5481. null != S && c.set(S, d), this._axisGroup.add(new aM({ anid: null != S ? "area_" + S : null, shape: { x: v, y: x, width: _, height: w }, style: r({ fill: a[d] }, g), silent: !0 })), d = (d + 1) % u }
  5482. this._splitAreaColors = c } } } });
  5483. OD.extend({ type: "xAxis" }), OD.extend({ type: "yAxis" }), Vs({ type: "grid", render: function(t, e) { this.group.removeAll(), t.get("show") && this.group.add(new aM({ shape: t.coordinateSystem.getRect(), style: r({ fill: t.get("backgroundColor") }, t.getItemStyle()), silent: !0, z2: -1 })) } }), Ls(function(t) { t.xAxis && t.yAxis && !t.grid && (t.grid = {}) }), Es(hD("line", "circle", "line")), Os(cD("line")), ks(IT.PROCESSOR.STATISTIC, function(t) { return { seriesType: t, modifyOutputEnd: !0, reset: function(t, e, i) { var n = t.getData(),
  5484. o = t.get("sampling"),
  5485. a = t.coordinateSystem; if ("cartesian2d" === a.type && o) { var r = a.getBaseAxis(),
  5486. s = a.getOtherAxis(r),
  5487. l = r.getExtent(),
  5488. u = l[1] - l[0],
  5489. h = Math.round(n.count() / u); if (h > 1) { var c; "string" == typeof o ? c = dD[o] : "function" == typeof o && (c = o), c && t.setData(n.downSample(n.mapDimension(s.dim), 1 / h, c, fD)) } } } } }("line")); var ED = OI.extend({ type: "series.__base_bar__", getInitialData: function(t, e) { return dl(this.getSource(), this) }, getMarkerPosition: function(t) { var e = this.coordinateSystem; if (e) { var i = e.dataToPoint(e.clampData(t)),
  5490. n = this.getData(),
  5491. o = n.getLayout("offset"),
  5492. a = n.getLayout("size"); return i[e.getBaseAxis().isHorizontal() ? 0 : 1] += o + a / 2, i } return [NaN, NaN] }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: "cartesian2d", legendHoverLink: !0, barMinHeight: 0, barMinAngle: 0, large: !1, largeThreshold: 400, progressive: 3e3, progressiveChunkMode: "mod", itemStyle: {}, emphasis: {} } });
  5493. ED.extend({ type: "series.bar", dependencies: ["grid", "polar"], brushSelector: "rect", getProgressive: function() { return !!this.get("large") && this.get("progressive") }, getProgressiveThreshold: function() { var t = this.get("progressiveThreshold"),
  5494. e = this.get("largeThreshold"); return e > t && (t = e), t } }); var RD = Wb([
  5495. ["fill", "color"],
  5496. ["stroke", "borderColor"],
  5497. ["lineWidth", "borderWidth"],
  5498. ["stroke", "barBorderColor"],
  5499. ["lineWidth", "barBorderWidth"],
  5500. ["opacity"],
  5501. ["shadowBlur"],
  5502. ["shadowOffsetX"],
  5503. ["shadowOffsetY"],
  5504. ["shadowColor"]
  5505. ]),
  5506. zD = { getBarItemStyle: function(t) { var e = RD(this, t); if (this.getBorderLineDash) { var i = this.getBorderLineDash();
  5507. i && (e.lineDash = i) } return e } },
  5508. BD = ["itemStyle", "barBorderWidth"];
  5509. a(Lo.prototype, zD), Fs({ type: "bar", render: function(t, e, i) { this._updateDrawMode(t); var n = t.get("coordinateSystem"); return "cartesian2d" !== n && "polar" !== n || (this._isLargeDraw ? this._renderLarge(t, e, i) : this._renderNormal(t, e, i)), this.group }, incrementalPrepareRender: function(t, e, i) { this._clear(), this._updateDrawMode(t) }, incrementalRender: function(t, e, i, n) { this._incrementalRenderLarge(t, e) }, _updateDrawMode: function(t) { var e = t.pipelineContext.large;
  5510. (null == this._isLargeDraw || e ^ this._isLargeDraw) && (this._isLargeDraw = e, this._clear()) }, _renderNormal: function(t, e, i) { var n, o = this.group,
  5511. a = t.getData(),
  5512. r = this._data,
  5513. s = t.coordinateSystem,
  5514. l = s.getBaseAxis(); "cartesian2d" === s.type ? n = l.isHorizontal() : "polar" === s.type && (n = "angle" === l.dim); var u = t.isAnimationEnabled() ? t : null;
  5515. a.diff(r).add(function(e) { if (a.hasValue(e)) { var i = a.getItemModel(e),
  5516. r = GD[s.type](a, e, i),
  5517. l = VD[s.type](a, e, i, r, n, u);
  5518. a.setItemGraphicEl(e, l), o.add(l), Lh(l, a, e, i, r, t, n, "polar" === s.type) } }).update(function(e, i) { var l = r.getItemGraphicEl(i); if (a.hasValue(e)) { var h = a.getItemModel(e),
  5519. c = GD[s.type](a, e, h);
  5520. l ? bo(l, { shape: c }, u, e) : l = VD[s.type](a, e, h, c, n, u, !0), a.setItemGraphicEl(e, l), o.add(l), Lh(l, a, e, h, c, t, n, "polar" === s.type) } else o.remove(l) }).remove(function(t) { var e = r.getItemGraphicEl(t); "cartesian2d" === s.type ? e && Dh(t, u, e) : e && Ch(t, u, e) }).execute(), this._data = a }, _renderLarge: function(t, e, i) { this._clear(), Ph(t, this.group) }, _incrementalRenderLarge: function(t, e) { Ph(e, this.group, !0) }, dispose: B, remove: function(t) { this._clear(t) }, _clear: function(t) { var e = this.group,
  5521. i = this._data;
  5522. t && t.get("animation") && i && !this._isLargeDraw ? i.eachItemGraphicEl(function(e) { "sector" === e.type ? Ch(e.dataIndex, t, e) : Dh(e.dataIndex, t, e) }) : e.removeAll(), this._data = null } }); var VD = { cartesian2d: function(t, e, i, n, o, r, s) { var l = new aM({ shape: a({}, n) }); if (r) { var u = l.shape,
  5523. h = o ? "height" : "width",
  5524. c = {};
  5525. u[h] = 0, c[h] = n[h], bM[s ? "updateProps" : "initProps"](l, { shape: c }, r, e) } return l }, polar: function(t, e, i, n, o, a, s) { var l = n.startAngle < n.endAngle,
  5526. u = new QS({ shape: r({ clockwise: l }, n) }); if (a) { var h = u.shape,
  5527. c = o ? "r" : "endAngle",
  5528. d = {};
  5529. h[c] = o ? 0 : n.startAngle, d[c] = n[c], bM[s ? "updateProps" : "initProps"](u, { shape: d }, a, e) } return u } },
  5530. GD = { cartesian2d: function(t, e, i) { var n = t.getItemLayout(e),
  5531. o = kh(i, n),
  5532. a = n.width > 0 ? 1 : -1,
  5533. r = n.height > 0 ? 1 : -1; return { x: n.x + a * o / 2, y: n.y + r * o / 2, width: n.width - a * o, height: n.height - r * o } }, polar: function(t, e, i) { var n = t.getItemLayout(e); return { cx: n.cx, cy: n.cy, r0: n.r0, r: n.r, startAngle: n.startAngle, endAngle: n.endAngle } } },
  5534. FD = kn.extend({ type: "largeBar", shape: { points: [] }, buildPath: function(t, e) { for (var i = e.points, n = this.__startPoint, o = this.__valueIdx, a = 0; a < i.length; a += 2) n[this.__valueIdx] = i[a + o], t.moveTo(n[0], n[1]), t.lineTo(i[a], i[a + 1]) } });
  5535. Os(v(kl, "bar")), Os(fA), Es({ seriesType: "bar", reset: function(t) { t.getData().setVisual("legendSymbol", "roundRect") } }); var WD = function(t, e, i) { e = y(e) && { coordDimensions: e } || a({}, e); var n = t.getSource(),
  5536. o = oA(n, e),
  5537. r = new eA(o, t); return r.initData(n, i), r },
  5538. HD = { updateSelectedMap: function(t) { this._targetList = y(t) ? t.slice() : [], this._selectTargetMap = p(t || [], function(t, e) { return t.set(e.name, e), t }, R()) }, select: function(t, e) { var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t); "single" === this.get("selectedMode") && 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);
  5539. i && (i.selected = !1) }, toggleSelected: function(t, e) { var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t); if (null != i) return this[i.selected ? "unSelect" : "select"](t, e), i.selected }, isSelected: function(t, e) { var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t); return i && i.selected } },
  5540. ZD = Gs({ type: "series.pie", init: function(t) { ZD.superApply(this, "init", arguments), this.legendDataProvider = function() { return this.getRawData() }, this.updateSelectedMap(this._createSelectableList()), this._defaultLabelLine(t) }, mergeOption: function(t) { ZD.superCall(this, "mergeOption", t), this.updateSelectedMap(this._createSelectableList()) }, getInitialData: function(t, e) { return WD(this, ["value"]) }, _createSelectableList: function() { for (var t = this.getRawData(), e = t.mapDimension("value"), i = [], n = 0, o = t.count(); n < o; n++) i.push({ name: t.getName(n), value: t.get(e, n), selected: cr(t, n, "selected") }); return i }, getDataParams: function(t) { var e = this.getData(),
  5541. i = ZD.superCall(this, "getDataParams", t),
  5542. n = []; return e.each(e.mapDimension("value"), function(t) { n.push(t) }), i.percent = Wo(n, t, e.hostModel.get("percentPrecision")), i.$vars.push("percent"), i }, _defaultLabelLine: function(t) { Ci(t, "labelLine", ["show"]); var e = t.labelLine,
  5543. i = t.emphasis.labelLine;
  5544. 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, selectedOffset: 10, hoverOffset: 10, avoidLabelOverlap: !0, percentPrecision: 2, stillShowZeroSum: !0, label: { rotate: !1, show: !0, position: "outer" }, labelLine: { show: !0, length: 15, length2: 15, smooth: !1, lineStyle: { width: 1, type: "solid" } }, itemStyle: { borderWidth: 1 }, animationType: "expansion", animationEasing: "cubicOut" } });
  5545. h(ZD, HD); var UD = Rh.prototype;
  5546. UD.updateData = function(t, e, i) {
  5547. function n() { s.stopAnimation(!0), s.animateTo({ shape: { r: h.r + l.get("hoverOffset") } }, 300, "elasticOut") }
  5548. function o() { s.stopAnimation(!0), s.animateTo({ shape: { r: h.r } }, 300, "elasticOut") } var s = this.childAt(0),
  5549. l = t.hostModel,
  5550. u = t.getItemModel(e),
  5551. h = t.getItemLayout(e),
  5552. c = a({}, h);
  5553. c.label = null, i ? (s.setShape(c), "scale" === l.getShallow("animationType") ? (s.shape.r = h.r0, So(s, { shape: { r: h.r } }, l, e)) : (s.shape.endAngle = h.startAngle, bo(s, { shape: { endAngle: h.endAngle } }, l, e))) : bo(s, { shape: c }, l, e); var d = t.getItemVisual(e, "color");
  5554. s.useStyle(r({ lineJoin: "bevel", fill: d }, u.getModel("itemStyle").getItemStyle())), s.hoverStyle = u.getModel("emphasis.itemStyle").getItemStyle(); var f = u.getShallow("cursor");
  5555. f && s.attr("cursor", f), Eh(this, t.getItemLayout(e), l.isSelected(null, e), l.get("selectedOffset"), l.get("animation")), s.off("mouseover").off("mouseout").off("emphasis").off("normal"), u.get("hoverAnimation") && l.isAnimationEnabled() && s.on("mouseover", n).on("mouseout", o).on("emphasis", n).on("normal", o), this._updateLabel(t, e), uo(this) }, UD._updateLabel = function(t, e) { var i = this.childAt(1),
  5556. n = this.childAt(2),
  5557. o = t.hostModel,
  5558. a = t.getItemModel(e),
  5559. r = t.getItemLayout(e).label,
  5560. s = t.getItemVisual(e, "color");
  5561. bo(i, { shape: { points: r.linePoints || [
  5562. [r.x, r.y],
  5563. [r.x, r.y],
  5564. [r.x, r.y]
  5565. ] } }, o, e), bo(n, { style: { x: r.x, y: r.y } }, o, e), n.attr({ rotation: r.rotation, origin: [r.x, r.y], z2: 10 }); var l = a.getModel("label"),
  5566. u = a.getModel("emphasis.label"),
  5567. h = a.getModel("labelLine"),
  5568. c = a.getModel("emphasis.labelLine"),
  5569. s = t.getItemVisual(e, "color");
  5570. co(n.style, n.hoverStyle = {}, l, u, { labelFetcher: t.hostModel, labelDataIndex: e, defaultText: t.getName(e), autoColor: s, useInsideStyle: !!r.inside }, { textAlign: r.textAlign, textVerticalAlign: r.verticalAlign, opacity: t.getItemVisual(e, "opacity") }), n.ignore = n.normalIgnore = !l.get("show"), n.hoverIgnore = !u.get("show"), i.ignore = i.normalIgnore = !h.get("show"), i.hoverIgnore = !c.get("show"), i.setStyle({ stroke: s, opacity: t.getItemVisual(e, "opacity") }), i.setStyle(h.getModel("lineStyle").getLineStyle()), i.hoverStyle = c.getModel("lineStyle").getLineStyle(); var d = h.get("smooth");
  5571. d && !0 === d && (d = .4), i.setShape({ smooth: d }) }, u(Rh, Zw);
  5572. Mr.extend({ type: "pie", init: function() { var t = new Zw;
  5573. this._sectorGroup = t }, render: function(t, e, i, n) { if (!n || n.from !== this.uid) { var o = t.getData(),
  5574. a = this._data,
  5575. r = this.group,
  5576. s = e.get("animation"),
  5577. l = !a,
  5578. u = t.get("animationType"),
  5579. h = v(Oh, this.uid, t, s, i),
  5580. c = t.get("selectedMode"); if (o.diff(a).add(function(t) { var e = new Rh(o, t);
  5581. l && "scale" !== u && e.eachChild(function(t) { t.stopAnimation(!0) }), c && e.on("click", h), o.setItemGraphicEl(t, e), r.add(e) }).update(function(t, e) { var i = a.getItemGraphicEl(e);
  5582. i.updateData(o, t), i.off("click"), c && i.on("click", h), r.add(i), o.setItemGraphicEl(t, i) }).remove(function(t) { var e = a.getItemGraphicEl(t);
  5583. r.remove(e) }).execute(), s && l && o.count() > 0 && "scale" !== u) { var d = o.getItemLayout(0),
  5584. f = Math.max(i.getWidth(), i.getHeight()) / 2,
  5585. p = m(r.removeClipPath, r);
  5586. r.setClipPath(this._createClipPath(d.cx, d.cy, f, d.startAngle, d.clockwise, p, t)) } else r.removeClipPath();
  5587. this._data = o } }, dispose: function() {}, _createClipPath: function(t, e, i, n, o, a, r) { var s = new QS({ shape: { cx: t, cy: e, r0: 0, r: i, startAngle: n, endAngle: n, clockwise: o } }); return So(s, { shape: { endAngle: n + (o ? 1 : -1) * Math.PI * 2 } }, r, a), s }, containPoint: function(t, e) { var i = e.getData().getItemLayout(0); if (i) { var n = t[0] - i.cx,
  5588. o = t[1] - i.cy,
  5589. a = Math.sqrt(n * n + o * o); return a <= i.r && a >= i.r0 } } }); var XD = function(t, e) { d(e, function(e) { e.update = "updateView", Ps(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();
  5590. n.each(function(e) { var i = n.getName(e);
  5591. o[i] = t.isSelected(i) || !1 }) }), { name: i.name, selected: o } }) }) },
  5592. jD = function(t) { return { getTargetSeries: function(e) { var i = {},
  5593. n = R(); return e.eachSeriesByType(t, function(t) { t.__paletteScope = i, n.set(t.uid, t) }), n }, reset: function(t, e) { var i = t.getRawData(),
  5594. n = {},
  5595. o = t.getData();
  5596. o.each(function(t) { var e = o.getRawIndex(t);
  5597. n[e] = t }), i.each(function(e) { var a = n[e],
  5598. r = null != a && o.getItemVisual(a, "color", !0); if (r) i.setItemVisual(e, "color", r);
  5599. else { var s = i.getItemModel(e).get("itemStyle.color") || t.getColorFromPalette(i.getName(e) || e + "", t.__paletteScope, i.count());
  5600. i.setItemVisual(e, "color", s), null != a && o.setItemVisual(a, "color", s) } }) } } },
  5601. YD = function(t, e, i, n) { var o, a, r = t.getData(),
  5602. s = [],
  5603. l = !1;
  5604. r.each(function(i) { var n, u, h, c, d = r.getItemLayout(i),
  5605. f = r.getItemModel(i),
  5606. p = f.getModel("label"),
  5607. g = p.get("position") || f.get("emphasis.label.position"),
  5608. m = f.getModel("labelLine"),
  5609. v = m.get("length"),
  5610. y = m.get("length2"),
  5611. x = (d.startAngle + d.endAngle) / 2,
  5612. _ = Math.cos(x),
  5613. w = Math.sin(x);
  5614. o = d.cx, a = d.cy; var b = "inside" === g || "inner" === g; if ("center" === g) n = d.cx, u = d.cy, c = "center";
  5615. else { var S = (b ? (d.r + d.r0) / 2 * _ : d.r * _) + o,
  5616. M = (b ? (d.r + d.r0) / 2 * w : d.r * w) + a; if (n = S + 3 * _, u = M + 3 * w, !b) { var I = S + _ * (v + e - d.r),
  5617. T = M + w * (v + e - d.r),
  5618. A = I + (_ < 0 ? -1 : 1) * y,
  5619. D = T;
  5620. n = A + (_ < 0 ? -5 : 5), u = D, h = [
  5621. [S, M],
  5622. [I, T],
  5623. [A, D]
  5624. ] }
  5625. c = b ? "center" : _ > 0 ? "left" : "right" } var C = p.getFont(),
  5626. L = p.get("rotate") ? _ < 0 ? -x + Math.PI : -x : 0,
  5627. k = De(t.getFormattedLabel(i, "normal") || r.getName(i), C, c, "top");
  5628. l = !!L, d.label = { x: n, y: u, position: g, height: k.height, len: v, len2: y, linePoints: h, textAlign: c, verticalAlign: "middle", rotation: L, inside: b }, b || s.push(d.label) }), !l && t.get("avoidLabelOverlap") && Bh(s, o, a, e, i, n) },
  5629. qD = 2 * Math.PI,
  5630. KD = Math.PI / 180,
  5631. $D = function(t) { return { seriesType: t, reset: function(t, e) { var i = e.findComponents({ mainType: "legend" }); if (i && i.length) { var n = t.getData();
  5632. n.filterSelf(function(t) { for (var e = n.getName(t), o = 0; o < i.length; o++)
  5633. if (!i[o].isSelected(e)) return !1;
  5634. return !0 }) } } } };
  5635. XD("pie", [{ type: "pieToggleSelect", event: "pieselectchanged", method: "toggleSelected" }, { type: "pieSelect", event: "pieselected", method: "select" }, { type: "pieUnSelect", event: "pieunselected", method: "unSelect" }]), Es(jD("pie")), Os(v(function(t, e, i, n) { e.eachSeriesByType(t, function(t) { var e = t.getData(),
  5636. n = e.mapDimension("value"),
  5637. o = t.get("center"),
  5638. a = t.get("radius");
  5639. y(a) || (a = [0, a]), y(o) || (o = [o, o]); var r = i.getWidth(),
  5640. s = i.getHeight(),
  5641. l = Math.min(r, s),
  5642. u = Ro(o[0], r),
  5643. h = Ro(o[1], s),
  5644. c = Ro(a[0], l / 2),
  5645. d = Ro(a[1], l / 2),
  5646. f = -t.get("startAngle") * KD,
  5647. p = t.get("minAngle") * KD,
  5648. g = 0;
  5649. e.each(n, function(t) {!isNaN(t) && g++ }); var m = e.getSum(n),
  5650. v = Math.PI / (m || g) * 2,
  5651. x = t.get("clockwise"),
  5652. _ = t.get("roseType"),
  5653. w = t.get("stillShowZeroSum"),
  5654. b = e.getDataExtent(n);
  5655. b[0] = 0; var S = qD,
  5656. M = 0,
  5657. I = f,
  5658. T = x ? 1 : -1; if (e.each(n, function(t, i) { var n; if (isNaN(t)) e.setItemLayout(i, { angle: NaN, startAngle: NaN, endAngle: NaN, clockwise: x, cx: u, cy: h, r0: c, r: _ ? NaN : d });
  5659. else {
  5660. (n = "area" !== _ ? 0 === m && w ? v : t * v : qD / g) < p ? (n = p, S -= p) : M += t; var o = I + T * n;
  5661. e.setItemLayout(i, { angle: n, startAngle: I, endAngle: o, clockwise: x, cx: u, cy: h, r0: c, r: _ ? Eo(t, b, [c, d]) : d }), I = o } }), S < qD && g)
  5662. if (S <= .001) { var A = qD / g;
  5663. e.each(n, function(t, i) { if (!isNaN(t)) { var n = e.getItemLayout(i);
  5664. n.angle = A, n.startAngle = f + T * i * A, n.endAngle = f + T * (i + 1) * A } }) } else v = S / M, I = f, e.each(n, function(t, i) { if (!isNaN(t)) { var n = e.getItemLayout(i),
  5665. o = n.angle === p ? p : t * v;
  5666. n.startAngle = I, n.endAngle = I + T * o, I += T * o } });
  5667. YD(t, d, r, s) }) }, "pie")), ks($D("pie")), OI.extend({ type: "series.scatter", dependencies: ["grid", "polar", "geo", "singleAxis", "calendar"], getInitialData: function(t, e) { return dl(this.getSource(), this) }, brushSelector: "point", getProgressive: function() { var t = this.option.progressive; return null == t ? this.option.large ? 5e3 : this.get("progressive") : t }, getProgressiveThreshold: function() { var t = this.option.progressiveThreshold; return null == t ? this.option.large ? 1e4 : this.get("progressiveThreshold") : t }, defaultOption: { coordinateSystem: "cartesian2d", zlevel: 0, z: 2, legendHoverLink: !0, hoverAnimation: !0, symbolSize: 10, large: !1, largeThreshold: 2e3, itemStyle: { opacity: .8 } } }); var JD = Fn({ shape: { points: null }, symbolProxy: null, buildPath: function(t, e) { var i = e.points,
  5668. n = e.size,
  5669. o = this.symbolProxy,
  5670. a = o.shape; if (!((t.getContext ? t.getContext() : t) && n[0] < 4))
  5671. for (var r = 0; r < i.length;) { var s = i[r++],
  5672. l = i[r++];
  5673. isNaN(s) || isNaN(l) || (a.x = s - n[0] / 2, a.y = l - n[1] / 2, a.width = n[0], a.height = n[1], o.buildPath(t, a, !0)) } }, afterBrush: function(t) { var e = this.shape,
  5674. i = e.points,
  5675. n = e.size; if (n[0] < 4) { this.setTransform(t); for (var o = 0; o < i.length;) { var a = i[o++],
  5676. r = i[o++];
  5677. isNaN(a) || isNaN(r) || t.fillRect(a - n[0] / 2, r - n[1] / 2, n[0], n[1]) }
  5678. this.restoreTransform(t) } }, findDataIndex: function(t, e) { for (var i = this.shape, n = i.points, o = i.size, a = Math.max(o[0], 4), r = Math.max(o[1], 4), s = n.length / 2 - 1; s >= 0; s--) { var l = 2 * s,
  5679. u = n[l] - a / 2,
  5680. h = n[l + 1] - r / 2; if (t >= u && e >= h && t <= u + a && e <= h + r) return s } return -1 } }),
  5681. QD = Vh.prototype;
  5682. QD.isPersistent = function() { return !this._incremental }, QD.updateData = function(t) { this.group.removeAll(); var e = new JD({ rectHover: !0, cursor: "default" });
  5683. e.setShape({ points: t.getLayout("symbolPoints") }), this._setCommon(e, t), this.group.add(e), this._incremental = null }, QD.updateLayout = function(t) { if (!this._incremental) { var e = t.getLayout("symbolPoints");
  5684. this.group.eachChild(function(t) { if (null != t.startIndex) { var i = 2 * (t.endIndex - t.startIndex),
  5685. n = 4 * t.startIndex * 2;
  5686. e = new Float32Array(e.buffer, n, i) }
  5687. t.setShape("points", e) }) } }, QD.incrementalPrepareUpdate = function(t) { this.group.removeAll(), this._clearIncremental(), t.count() > 2e6 ? (this._incremental || (this._incremental = new Gn({ silent: !0 })), this.group.add(this._incremental)) : this._incremental = null }, QD.incrementalUpdate = function(t, e) { var i;
  5688. this._incremental ? (i = new JD, this._incremental.addDisplayable(i, !0)) : ((i = new JD({ rectHover: !0, cursor: "default", startIndex: t.start, endIndex: t.end })).incremental = !0, this.group.add(i)), i.setShape({ points: e.getLayout("symbolPoints") }), this._setCommon(i, e, !!this._incremental) }, QD._setCommon = function(t, e, i) { var n = e.hostModel,
  5689. o = e.getVisual("symbolSize");
  5690. t.setShape("size", o instanceof Array ? o : [o, o]), t.symbolProxy = Xl(e.getVisual("symbol"), 0, 0, 0, 0), t.setColor = t.symbolProxy.setColor; var a = t.shape.size[0] < 4;
  5691. t.useStyle(n.getModel("itemStyle").getItemStyle(a ? ["color", "shadowBlur", "shadowColor"] : ["color"])); var r = e.getVisual("color");
  5692. r && t.setColor(r), i || (t.seriesIndex = n.seriesIndex, t.on("mousemove", function(e) { t.dataIndex = null; var i = t.findDataIndex(e.offsetX, e.offsetY);
  5693. i >= 0 && (t.dataIndex = i + (t.startIndex || 0)) })) }, QD.remove = function() { this._clearIncremental(), this._incremental = null, this.group.removeAll() }, QD._clearIncremental = function() { var t = this._incremental;
  5694. t && t.clearDisplaybles() }, Fs({ type: "scatter", render: function(t, e, i) { var n = t.getData();
  5695. this._updateSymbolDraw(n, t).updateData(n), this._finished = !0 }, incrementalPrepareRender: function(t, e, i) { var n = t.getData();
  5696. this._updateSymbolDraw(n, t).incrementalPrepareUpdate(n), this._finished = !1 }, incrementalRender: function(t, e, i) { this._symbolDraw.incrementalUpdate(t, e.getData()), this._finished = t.end === e.getData().count() }, updateTransform: function(t, e, i) { var n = t.getData(); if (this.group.dirty(), !this._finished || n.count() > 1e4 || !this._symbolDraw.isPersistent()) return { update: !0 }; var o = cD().reset(t);
  5697. o.progress && o.progress({ start: 0, end: n.count() }, n), this._symbolDraw.updateLayout(n) }, _updateSymbolDraw: function(t, e) { var i = this._symbolDraw,
  5698. n = e.pipelineContext.large; return i && n === this._isLargeDraw || (i && i.remove(), i = this._symbolDraw = n ? new Vh : new Su, this._isLargeDraw = n, this.group.removeAll()), this.group.add(i.group), i }, remove: function(t, e) { this._symbolDraw && this._symbolDraw.remove(!0), this._symbolDraw = null }, dispose: function() {} }), Es(hD("scatter", "circle")), Os(cD("scatter")), u(Gh, HA), Fh.prototype.getIndicatorAxes = function() { return this._indicatorAxes }, Fh.prototype.dataToPoint = function(t, e) { var i = this._indicatorAxes[e]; return this.coordToPoint(i.dataToCoord(t), e) }, Fh.prototype.coordToPoint = function(t, e) { var i = this._indicatorAxes[e].angle; return [this.cx + t * Math.cos(i), this.cy - t * Math.sin(i)] }, Fh.prototype.pointToData = function(t) { var e = t[0] - this.cx,
  5699. i = t[1] - this.cy,
  5700. n = Math.sqrt(e * e + i * i);
  5701. e /= n, i /= n; for (var o, a = Math.atan2(-i, e), r = 1 / 0, s = -1, l = 0; l < this._indicatorAxes.length; l++) { var u = this._indicatorAxes[l],
  5702. h = Math.abs(a - u.angle);
  5703. h < r && (o = u, s = l, r = h) } return [s, +(o && o.coodToData(n))] }, Fh.prototype.resize = function(t, e) { var i = t.get("center"),
  5704. n = e.getWidth(),
  5705. o = e.getHeight(),
  5706. a = Math.min(n, o) / 2;
  5707. this.cx = Ro(i[0], n), this.cy = Ro(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 = Ro(r[0], a), this.r = Ro(r[1], a), d(this._indicatorAxes, function(t, e) { t.setExtent(this.r0, this.r); var i = this.startAngle + e * Math.PI * 2 / this._indicatorAxes.length;
  5708. i = Math.atan2(Math.sin(i), Math.cos(i)), t.angle = i }, this) }, Fh.prototype.update = function(t, e) {
  5709. function i(t) { var e = Math.pow(10, Math.floor(Math.log(t) / Math.LN10)),
  5710. i = t / e; return 2 === i ? i = 5 : i *= 2, i * e } var n = this._indicatorAxes,
  5711. o = this._model;
  5712. d(n, function(t) { t.scale.setExtent(1 / 0, -1 / 0) }), t.eachSeriesByType("radar", function(e, i) { if ("radar" === e.get("coordinateSystem") && t.getComponent("radar", e.get("radarIndex")) === o) { var a = e.getData();
  5713. d(n, function(t) { t.scale.unionExtentFromData(a, a.mapDimension(t.dim)) }) } }, this); var a = o.get("splitNumber");
  5714. d(n, function(t, e) { var n = Rl(t.scale, t.model);
  5715. Bl(t.scale, t.model); var o = t.model,
  5716. r = t.scale,
  5717. s = o.getMin(),
  5718. l = o.getMax(),
  5719. u = r.getInterval(); if (null != s && null != l) r.setExtent(+s, +l), r.setInterval((l - s) / a);
  5720. else if (null != s) { var h;
  5721. do { h = s + u * a, r.setExtent(+s, h), r.setInterval(u), u = i(u) } while (h < n[1] && isFinite(h) && isFinite(n[1])) } else if (null != l) { var c;
  5722. do { c = l - u * a, r.setExtent(c, +l), r.setInterval(u), u = i(u) } while (c > n[0] && isFinite(c) && isFinite(n[0])) } else { r.getTicks().length - 1 > a && (u = i(u)); var d = Math.round((n[0] + n[1]) / 2 / u) * u,
  5723. f = Math.round(a / 2);
  5724. r.setExtent(zo(d - f * u), zo(d + (a - f) * u)), r.setInterval(u) } }) }, Fh.dimensions = [], Fh.create = function(t, e) { var i = []; return t.eachComponent("radar", function(n) { var o = new Fh(n, t, e);
  5725. i.push(o), n.coordinateSystem = o }), t.eachSeriesByType("radar", function(t) { "radar" === t.get("coordinateSystem") && (t.coordinateSystem = i[t.get("radarIndex") || 0]) }), i }, Ba.register("radar", Fh); var tC = vD.valueAxis,
  5726. eC = (Bs({ type: "radar", optionUpdated: function() { var t = this.get("boundaryGap"),
  5727. e = this.get("splitNumber"),
  5728. o = this.get("scale"),
  5729. s = this.get("axisLine"),
  5730. l = this.get("axisTick"),
  5731. u = this.get("axisLabel"),
  5732. h = this.get("name"),
  5733. c = this.get("name.show"),
  5734. d = this.get("name.formatter"),
  5735. p = this.get("nameGap"),
  5736. g = this.get("triggerEvent"),
  5737. m = f(this.get("indicator") || [], function(f) { null != f.max && f.max > 0 && !f.min ? f.min = 0 : null != f.min && f.min < 0 && !f.max && (f.max = 0); var m = h; if (null != f.color && (m = r({ color: f.color }, h)), f = n(i(f), { boundaryGap: t, splitNumber: e, scale: o, axisLine: s, axisTick: l, axisLabel: u, name: f.text, nameLocation: "end", nameGap: p, nameTextStyle: m, triggerEvent: g }, !1), c || (f.name = ""), "string" == typeof d) { var v = f.name;
  5738. f.name = d.replace("{value}", null != v ? v : "") } else "function" == typeof d && (f.name = d(f.name, f)); var y = a(new Lo(f, null, this.ecModel), CA); return y.mainType = "radar", y.componentIndex = this.componentIndex, y }, this);
  5739. this.getIndicatorModels = function() { return m } }, defaultOption: { zlevel: 0, z: 0, center: ["50%", "50%"], radius: "75%", startAngle: 90, name: { show: !0 }, boundaryGap: [0, 0], splitNumber: 5, nameGap: 15, scale: !1, shape: "polygon", axisLine: n({ lineStyle: { color: "#bbb" } }, tC.axisLine), axisLabel: Wh(tC.axisLabel, !1), axisTick: Wh(tC.axisTick, !1), splitLine: Wh(tC.splitLine, !0), splitArea: Wh(tC.splitArea, !0), indicator: [] } }), ["axisLine", "axisTickLabel", "axisName"]);
  5740. Vs({ type: "radar", render: function(t, e, i) { this.group.removeAll(), this._buildAxes(t), this._buildSplitLineAndArea(t) }, _buildAxes: function(t) { var e = t.coordinateSystem;
  5741. d(f(e.getIndicatorAxes(), function(t) { return new ID(t.model, { position: [e.cx, e.cy], rotation: t.angle, labelDirection: -1, tickDirection: -1, nameDirection: 1 }) }), function(t) { d(eC, t.add, t), this.group.add(t.getGroup()) }, this) }, _buildSplitLineAndArea: function(t) {
  5742. function e(t, e, i) { var n = i % e.length; return t[n] = t[n] || [], n } var i = t.coordinateSystem,
  5743. n = i.getIndicatorAxes(); if (n.length) { var o = t.get("shape"),
  5744. a = t.getModel("splitLine"),
  5745. s = t.getModel("splitArea"),
  5746. l = a.getModel("lineStyle"),
  5747. u = s.getModel("areaStyle"),
  5748. h = a.get("show"),
  5749. c = s.get("show"),
  5750. p = l.get("color"),
  5751. g = u.get("color");
  5752. p = y(p) ? p : [p], g = y(g) ? g : [g]; var m = [],
  5753. v = []; if ("circle" === o)
  5754. for (var x = n[0].getTicksCoords(), _ = i.cx, w = i.cy, b = 0; b < x.length; b++) h && m[D = e(m, p, b)].push(new KS({ shape: { cx: _, cy: w, r: x[b].coord } })), c && b < x.length - 1 && v[D = e(v, g, b)].push(new tM({ shape: { cx: _, cy: w, r0: x[b].coord, r: x[b + 1].coord } }));
  5755. else
  5756. for (var S, M = f(n, function(t, e) { var n = t.getTicksCoords(); return S = null == S ? n.length - 1 : Math.min(n.length - 1, S), f(n, function(t) { return i.coordToPoint(t.coord, e) }) }), I = [], b = 0; b <= S; b++) { for (var T = [], A = 0; A < n.length; A++) T.push(M[A][b]); if (T[0] && T.push(T[0].slice()), h && m[D = e(m, p, b)].push(new oM({ shape: { points: T } })), c && I) { var D = e(v, g, b - 1);
  5757. v[D].push(new nM({ shape: { points: T.concat(I) } })) }
  5758. I = T.slice().reverse() }
  5759. var C = l.getLineStyle(),
  5760. L = u.getAreaStyle();
  5761. d(v, function(t, e) { this.group.add(xM(t, { style: r({ stroke: "none", fill: g[e % g.length] }, L), silent: !0 })) }, this), d(m, function(t, e) { this.group.add(xM(t, { style: r({ fill: "none", stroke: p[e % p.length] }, C), silent: !0 })) }, this) } } }); var iC = OI.extend({ type: "series.radar", dependencies: ["radar"], init: function(t) { iC.superApply(this, "init", arguments), this.legendDataProvider = function() { return this.getRawData() } }, getInitialData: function(t, e) { return WD(this, { generateCoord: "indicator_", generateCoordCount: 1 / 0 }) }, formatTooltip: function(t) { var e = this.getData(),
  5762. i = this.coordinateSystem.getIndicatorAxes(),
  5763. n = this.getData().getName(t); return Qo("" === n ? this.name : n) + "<br/>" + f(i, function(i, n) { var o = e.get(e.mapDimension(i.dim), t); return Qo(i.name + " : " + o) }).join("<br />") }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: "radar", legendHoverLink: !0, radarIndex: 0, lineStyle: { width: 2, type: "solid" }, label: { position: "top" }, symbol: "emptyCircle", symbolSize: 4 } });
  5764. Fs({ type: "radar", render: function(t, e, n) {
  5765. function o(t, e) { var i = t.getItemVisual(e, "symbol") || "circle",
  5766. n = t.getItemVisual(e, "color"); if ("none" !== i) { var o = Hh(t.getItemVisual(e, "symbolSize")),
  5767. a = Xl(i, -1, -1, 2, 2, n); return a.attr({ style: { strokeNoScale: !0 }, z2: 100, scale: [o[0] / 2, o[1] / 2] }), a } }
  5768. function a(e, i, n, a, r, s) { n.removeAll(); for (var l = 0; l < i.length - 1; l++) { var u = o(a, r);
  5769. u && (u.__dimIdx = l, e[l] ? (u.attr("position", e[l]), bM[s ? "initProps" : "updateProps"](u, { position: i[l] }, t, r)) : u.attr("position", i[l]), n.add(u)) } }
  5770. function s(t) { return f(t, function(t) { return [l.cx, l.cy] }) } var l = t.coordinateSystem,
  5771. u = this.group,
  5772. h = t.getData(),
  5773. c = this._data;
  5774. h.diff(c).add(function(e) { var i = h.getItemLayout(e); if (i) { var n = new nM,
  5775. o = new oM,
  5776. r = { shape: { points: i } };
  5777. n.shape.points = s(i), o.shape.points = s(i), So(n, r, t, e), So(o, r, t, e); var l = new Zw,
  5778. u = new Zw;
  5779. l.add(o), l.add(n), l.add(u), a(o.shape.points, i, u, h, e, !0), h.setItemGraphicEl(e, l) } }).update(function(e, i) { var n = c.getItemGraphicEl(i),
  5780. o = n.childAt(0),
  5781. r = n.childAt(1),
  5782. s = n.childAt(2),
  5783. l = { shape: { points: h.getItemLayout(e) } };
  5784. l.shape.points && (a(o.shape.points, l.shape.points, s, h, e, !1), bo(o, l, t), bo(r, l, t), h.setItemGraphicEl(e, n)) }).remove(function(t) { u.remove(c.getItemGraphicEl(t)) }).execute(), h.eachItemGraphicEl(function(t, e) {
  5785. function n() { l.attr("ignore", m) }
  5786. function o() { l.attr("ignore", g) } var a = h.getItemModel(e),
  5787. s = t.childAt(0),
  5788. l = t.childAt(1),
  5789. c = t.childAt(2),
  5790. d = h.getItemVisual(e, "color");
  5791. u.add(t), s.useStyle(r(a.getModel("lineStyle").getLineStyle(), { fill: "none", stroke: d })), s.hoverStyle = a.getModel("emphasis.lineStyle").getLineStyle(); var f = a.getModel("areaStyle"),
  5792. p = a.getModel("emphasis.areaStyle"),
  5793. g = f.isEmpty() && f.parentModel.isEmpty(),
  5794. m = p.isEmpty() && p.parentModel.isEmpty();
  5795. m = m && g, l.ignore = g, l.useStyle(r(f.getAreaStyle(), { fill: d, opacity: .7 })), l.hoverStyle = p.getAreaStyle(); var v = a.getModel("itemStyle").getItemStyle(["color"]),
  5796. y = a.getModel("emphasis.itemStyle").getItemStyle(),
  5797. x = a.getModel("label"),
  5798. _ = a.getModel("emphasis.label");
  5799. c.eachChild(function(t) { t.setStyle(v), t.hoverStyle = i(y), co(t.style, t.hoverStyle, x, _, { labelFetcher: h.hostModel, labelDataIndex: e, labelDimIndex: t.__dimIdx, defaultText: h.get(h.dimensions[t.__dimIdx], e), autoColor: d, isRectText: !0 }) }), t.off("mouseover").off("mouseout").off("normal").off("emphasis"), t.on("emphasis", n).on("mouseover", n).on("normal", o).on("mouseout", o), uo(t) }), this._data = h }, remove: function() { this.group.removeAll(), this._data = null }, dispose: function() {} });
  5800. Es(jD("radar")), Es(hD("radar", "circle")), Os(function(t) { t.eachSeriesByType("radar", function(t) { var e = t.getData(),
  5801. i = [],
  5802. n = t.coordinateSystem; if (n) { for (var o = n.getIndicatorAxes(), a = 0; a < o.length; a++) e.each(e.mapDimension(o[a].dim), function(t, e) { i[e] = i[e] || [], i[e][a] = n.dataToPoint(t, a) });
  5803. e.each(function(t) { i[t][0] && i[t].push(i[t][0].slice()), e.setItemLayout(t, i[t]) }) } }) }), ks($D("radar")), Ls(function(t) { var e = t.polar; if (e) { y(e) || (e = [e]); var i = [];
  5804. d(e, function(e, n) { e.indicator ? (e.type && !e.shape && (e.shape = e.type), t.radar = t.radar || [], y(t.radar) || (t.radar = [t.radar]), t.radar.push(e)) : i.push(e) }), t.polar = i }
  5805. d(t.series, function(t) { t && "radar" === t.type && t.polarIndex && (t.radarIndex = t.polarIndex) }) }); var nC = Q;
  5806. h(Zh, mw), Uh.prototype = { constructor: Uh, type: "view", dimensions: ["x", "y"], setBoundingRect: function(t, e, i, n) { return this._rect = new ue(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 ue(t, e, i, n) }, transformTo: function(t, e, i, n) { var o = this.getBoundingRect(),
  5807. a = this._rawTransformable;
  5808. a.transform = o.calculateTransform(new ue(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;
  5809. e && (null != e.max && (t = Math.min(e.max, t)), null != e.min && (t = Math.max(e.min, t))), this._zoom = t, this._updateCenterAndZoom() }, getDefaultCenter: function() { var t = this.getBoundingRect(); return [t.x + t.width / 2, t.y + t.height / 2] }, getCenter: function() { return this._center || this.getDefaultCenter() }, getZoom: function() { return this._zoom || 1 }, getRoamTransform: function() { return this._roamTransformable.getLocalTransform() }, _updateCenterAndZoom: function() { var t = this._rawTransformable.getLocalTransform(),
  5810. e = this._roamTransformable,
  5811. i = this.getDefaultCenter(),
  5812. n = this.getCenter(),
  5813. o = this.getZoom();
  5814. n = Q([], n, t), i = Q([], i, t), e.origin = n, e.position = [i[0] - n[0], i[1] - n[1]], e.scale = [o, o], this._updateTransform() }, _updateTransform: function() { var t = this._roamTransformable,
  5815. e = this._rawTransformable;
  5816. e.parent = t, t.updateTransform(), e.updateTransform(), yt(this.transform || (this.transform = []), e.transform || mt()), this._rawTransform = e.getLocalTransform(), this.invTransform = this.invTransform || [], St(this.invTransform, this.transform), this.decomposeTransform() }, getViewRect: function() { return this._viewRect }, getViewRectAfterRoam: function() { var t = this.getBoundingRect().clone(); return t.applyTransform(this.transform), t }, dataToPoint: function(t, e, i) { var n = e ? this._rawTransform : this.transform; return i = i || [], n ? nC(i, t, n) : G(i, t) }, pointToData: function(t) { var e = this.invTransform; return e ? nC([], t, e) : [t[0], t[1]] }, convertToPixel: v(Xh, "dataToPoint"), convertFromPixel: v(Xh, "pointToData"), containPoint: function(t) { return this.getViewRectAfterRoam().contain(t[0], t[1]) } }, h(Uh, mw); for (var oC = [126, 25], aC = [
  5817. [
  5818. [0, 3.5],
  5819. [7, 11.2],
  5820. [15, 11.9],
  5821. [30, 7],
  5822. [42, .7],
  5823. [52, .7],
  5824. [56, 7.7],
  5825. [59, .7],
  5826. [64, .7],
  5827. [64, 0],
  5828. [5, 0],
  5829. [0, 3.5]
  5830. ],
  5831. [
  5832. [13, 16.1],
  5833. [19, 14.7],
  5834. [16, 21.7],
  5835. [11, 23.1],
  5836. [13, 16.1]
  5837. ],
  5838. [
  5839. [12, 32.2],
  5840. [14, 38.5],
  5841. [15, 38.5],
  5842. [13, 32.2],
  5843. [12, 32.2]
  5844. ],
  5845. [
  5846. [16, 47.6],
  5847. [12, 53.2],
  5848. [13, 53.2],
  5849. [18, 47.6],
  5850. [16, 47.6]
  5851. ],
  5852. [
  5853. [6, 64.4],
  5854. [8, 70],
  5855. [9, 70],
  5856. [8, 64.4],
  5857. [6, 64.4]
  5858. ],
  5859. [
  5860. [23, 82.6],
  5861. [29, 79.8],
  5862. [30, 79.8],
  5863. [25, 82.6],
  5864. [23, 82.6]
  5865. ],
  5866. [
  5867. [37, 70.7],
  5868. [43, 62.3],
  5869. [44, 62.3],
  5870. [39, 70.7],
  5871. [37, 70.7]
  5872. ],
  5873. [
  5874. [48, 51.1],
  5875. [51, 45.5],
  5876. [53, 45.5],
  5877. [50, 51.1],
  5878. [48, 51.1]
  5879. ],
  5880. [
  5881. [51, 35],
  5882. [51, 28.7],
  5883. [53, 28.7],
  5884. [53, 35],
  5885. [51, 35]
  5886. ],
  5887. [
  5888. [52, 22.4],
  5889. [55, 17.5],
  5890. [56, 17.5],
  5891. [53, 22.4],
  5892. [52, 22.4]
  5893. ],
  5894. [
  5895. [58, 12.6],
  5896. [62, 7],
  5897. [63, 7],
  5898. [60, 12.6],
  5899. [58, 12.6]
  5900. ],
  5901. [
  5902. [0, 3.5],
  5903. [0, 93.1],
  5904. [64, 93.1],
  5905. [64, 0],
  5906. [63, 0],
  5907. [63, 92.4],
  5908. [1, 92.4],
  5909. [1, 3.5],
  5910. [0, 3.5]
  5911. ]
  5912. ], rC = 0; rC < aC.length; rC++)
  5913. for (var sC = 0; sC < aC[rC].length; sC++) aC[rC][sC][0] /= 10.5, aC[rC][sC][1] /= -14, aC[rC][sC][0] += oC[0], aC[rC][sC][1] += oC[1]; var lC = function(t, e) { "china" === t && e.push(new ql("鍗楁捣璇稿矝", f(aC, function(t) { return { type: "polygon", exterior: t } }), oC)) },
  5914. uC = { "鍗楁捣璇稿矝": [32, 80], "骞夸笢": [0, -10], "棣欐腐": [10, 5], "婢抽棬": [-10, 10], "澶╂触": [5, 5] },
  5915. hC = function(t, e) { if ("china" === t) { var i = uC[e.name]; if (i) { var n = e.center;
  5916. n[0] += i[0] / 10.5, n[1] += -i[1] / 14 } } },
  5917. cC = { Russia: [100, 60], "United States": [-99, 38], "United States of America": [-99, 38] },
  5918. dC = function(t, e) { if ("world" === t) { var i = cC[e.name]; if (i) { var n = e.center;
  5919. n[0] = i[0], n[1] = i[1] } } },
  5920. fC = [
  5921. [
  5922. [123.45165252685547, 25.73527164402261],
  5923. [123.49731445312499, 25.73527164402261],
  5924. [123.49731445312499, 25.750734064600884],
  5925. [123.45165252685547, 25.750734064600884],
  5926. [123.45165252685547, 25.73527164402261]
  5927. ]
  5928. ],
  5929. pC = function(t, e) { "china" === t && "鍙版咕" === e.name && e.geometries.push({ type: "polygon", exterior: fC[0] }) },
  5930. gC = Bi(),
  5931. mC = { load: function(t, e) { var i = gC(e).parsed; if (i) return i; var n, o = e.specialAreas || {},
  5932. a = e.geoJSON; try { n = a ? GA(a) : [] } catch (t) { throw new Error("Invalid geoJson format\n" + t.message) } return d(n, function(e) { var i = e.name;
  5933. hC(t, e), dC(t, e), pC(t, e); var n = o[i];
  5934. n && e.transformTo(n.left, n.top, n.width, n.height) }), lC(t, n), gC(e).parsed = { regions: n, boundingRect: jh(n) } } },
  5935. vC = Bi(),
  5936. yC = { geoJSON: mC, svg: { load: function(t, e) { var i = vC(e).originRoot; if (i) return { root: i, boundingRect: vC(e).boundingRect }; var n = Yh(e); return vC(e).originRoot = n.root, vC(e).boundingRect = n.boundingRect, n }, makeGraphic: function(t, e, i) { var n = vC(e),
  5937. o = n.rootMap || (n.rootMap = R()),
  5938. a = o.get(i); if (a) return a; var r = n.originRoot,
  5939. s = n.boundingRect; return n.originRootHostKey ? a = Yh(e, s).root : (n.originRootHostKey = i, a = r), o.set(i, a) }, removeGraphic: function(t, e, i) { var n = vC(e),
  5940. o = n.rootMap;
  5941. o && o.removeKey(i), i === n.originRootHostKey && (n.originRootHostKey = null) } } },
  5942. xC = { load: function(t, e) { var i, n = [],
  5943. o = R(),
  5944. a = R(); return d(Kh(t), function(r) { var s = yC[r.type].load(t, r);
  5945. d(s.regions, function(t) { var i = t.name;
  5946. e && e.hasOwnProperty(i) && (t = t.cloneShallow(i = e[i])), n.push(t), o.set(i, t), a.set(i, t.center) }); var l = s.boundingRect;
  5947. l && (i ? i.union(l) : i = l.clone()) }), { regions: n, regionsMap: o, nameCoordMap: a, boundingRect: i || new ue(0, 0, 0, 0) } }, makeGraphic: qh("makeGraphic"), removeGraphic: qh("removeGraphic") };
  5948. $h.prototype = { constructor: $h, type: "geo", dimensions: ["lng", "lat"], containCoord: function(t) { for (var e = this.regions, i = 0; i < e.length; i++)
  5949. if (e[i].contain(t)) return !0;
  5950. return !1 }, transformTo: function(t, e, i, n) { var o = this.getBoundingRect(),
  5951. a = this._invertLongitute;
  5952. o = o.clone(), a && (o.y = -o.y - o.height); var r = this._rawTransformable; if (r.transform = o.calculateTransform(new ue(t, e, i, n)), r.decomposeTransform(), a) { var s = r.scale;
  5953. s[1] = -s[1] }
  5954. r.updateTransform(), this._updateTransform() }, getRegion: function(t) { return this._regionsMap.get(t) }, getRegionByCoord: function(t) { for (var e = this.regions, i = 0; i < e.length; i++)
  5955. if (e[i].contain(t)) return e[i] }, addGeoCoord: function(t, e) { this._nameCoordMap.set(t, e) }, getGeoCoord: function(t) { return this._nameCoordMap.get(t) }, getBoundingRect: function() { return this._rect }, dataToPoint: function(t, e, i) { if ("string" == typeof t && (t = this.getGeoCoord(t)), t) return Uh.prototype.dataToPoint.call(this, t, e, i) }, convertToPixel: v(Jh, "dataToPoint"), convertFromPixel: v(Jh, "pointToData") }, h($h, Uh); var _C = { dimensions: $h.prototype.dimensions, create: function(t, e) { var i = [];
  5956. t.eachComponent("geo", function(t, n) { var o = t.get("map"),
  5957. a = t.get("aspectScale"),
  5958. r = !0,
  5959. s = pT.retrieveMap(o);
  5960. s && s[0] && "svg" === s[0].type ? (null == a && (a = 1), r = !1) : null == a && (a = .75); var l = new $h(o + n, o, t.get("nameMap"), r);
  5961. l.aspectScale = a, l.zoomLimit = t.get("scaleLimit"), i.push(l), tc(l, t), t.coordinateSystem = l, l.model = t, l.resize = Qh, l.resize(t, e) }), t.eachSeries(function(t) { if ("geo" === t.get("coordinateSystem")) { var e = t.get("geoIndex") || 0;
  5962. t.coordinateSystem = i[e] } }); var n = {}; return t.eachSeriesByType("map", function(t) { if (!t.getHostGeoModel()) { var e = t.getMapType();
  5963. n[e] = n[e] || [], n[e].push(t) } }), d(n, function(t, n) { var a = new $h(n, n, o(f(t, function(t) { return t.get("nameMap") })));
  5964. a.zoomLimit = T.apply(null, f(t, function(t) { return t.get("scaleLimit") })), i.push(a), a.resize = Qh, a.aspectScale = t[0].get("aspectScale"), a.resize(t[0], e), d(t, function(t) { t.coordinateSystem = a, tc(a, t) }) }), i }, getFilledRegions: function(t, e, i) { for (var n = (t || []).slice(), o = R(), a = 0; a < n.length; a++) o.set(n[a].name, n[a]); return d(xC.load(e, i).regions, function(t) { var e = t.name;!o.get(e) && n.push({ name: e }) }), n } };
  5965. Ns("geo", _C); var wC = OI.extend({ type: "series.map", dependencies: ["geo"], layoutMode: "box", needsDrawMap: !1, seriesGroup: [], init: function(t) { wC.superApply(this, "init", arguments), this.updateSelectedMap(this._createSelectableList()) }, getInitialData: function(t) { return WD(this, ["value"]) }, mergeOption: function(t) { wC.superApply(this, "mergeOption", arguments), this.updateSelectedMap(this._createSelectableList()) }, _createSelectableList: function() { for (var t = this.getRawData(), e = t.mapDimension("value"), i = [], n = 0, o = t.count(); n < o; n++) i.push({ name: t.getName(n), value: t.get(e, n), selected: cr(t, n, "selected") }); return i = _C.getFilledRegions(i, this.getMapType(), this.option.nameMap) }, getHostGeoModel: function() { var t = this.option.geoIndex; return null != t ? this.dependentModels.geo[t] : null }, getMapType: function() { return (this.getHostGeoModel() || this).option.map }, _fillOption: function(t, e) {}, 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) { for (var e = this.getData(), i = $o(this.getRawValue(t)), n = e.getName(t), o = this.seriesGroup, a = [], r = 0; r < o.length; r++) { var s = o[r].originalData.indexOfName(n),
  5966. l = e.mapDimension("value");
  5967. isNaN(o[r].originalData.get(l, s)) || a.push(Qo(o[r].name)) } return a.join(", ") + "<br />" + Qo(n + " : " + i) }, getTooltipPosition: function(t) { if (null != t) { var e = this.getData().getName(t),
  5968. i = this.coordinateSystem,
  5969. 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)" } } } });
  5970. h(wC, HD); var bC = "\0_ec_interaction_mutex";
  5971. Ps({ type: "takeGlobalCursor", event: "globalCursorTaken", update: "update" }, function() {}), h(ac, aw); var SC = { axisPointer: 1, tooltip: 1, brush: 1 };
  5972. _c.prototype = { constructor: _c, draw: function(t, e, i, n, o) { var a = "geo" === t.mainType,
  5973. r = t.getData && t.getData();
  5974. a && e.eachComponent({ mainType: "series", subType: "map" }, function(e) { r || e.getHostGeoModel() !== t || (r = e.getData()) }); var s = t.coordinateSystem;
  5975. this._updateBackground(s); var l = this._regionsGroup,
  5976. u = this.group,
  5977. h = s.scale,
  5978. c = { position: s.position, scale: h };!l.childAt(0) || o ? u.attr(c) : bo(u, c, t), l.removeAll(); var f = ["itemStyle"],
  5979. p = ["emphasis", "itemStyle"],
  5980. g = ["label"],
  5981. m = ["emphasis", "label"],
  5982. v = R();
  5983. d(s.regions, function(e) { var i = v.get(e.name) || v.set(e.name, new Zw),
  5984. n = new hM({ shape: { paths: [] } });
  5985. i.add(n); var o, s = (C = t.getRegionModel(e.name) || t).getModel(f),
  5986. u = C.getModel(p),
  5987. c = vc(s),
  5988. y = vc(u),
  5989. x = C.getModel(g),
  5990. _ = C.getModel(m); if (r) { o = r.indexOfName(e.name); var w = r.getItemVisual(o, "color", !0);
  5991. w && (c.fill = w) }
  5992. d(e.geometries, function(t) { if ("polygon" === t.type) { n.shape.paths.push(new nM({ shape: { points: t.exterior } })); for (var e = 0; e < (t.interiors ? t.interiors.length : 0); e++) n.shape.paths.push(new nM({ shape: { points: t.interiors[e] } })) } }), n.setStyle(c), n.style.strokeNoScale = !0, n.culling = !0; var b = x.get("show"),
  5993. S = _.get("show"),
  5994. M = r && isNaN(r.get(r.mapDimension("value"), o)),
  5995. I = r && r.getItemLayout(o); if (a || M && (b || S) || I && I.showLabel) { var T, A = a ? e.name : o;
  5996. (!r || o >= 0) && (T = t); var D = new qS({ position: e.center.slice(), scale: [1 / h[0], 1 / h[1]], z2: 10, silent: !0 });
  5997. co(D.style, D.hoverStyle = {}, x, _, { labelFetcher: T, labelDataIndex: A, defaultText: e.name, useInsideStyle: !1 }, { textAlign: "center", textVerticalAlign: "middle" }), i.add(D) } if (r) r.setItemGraphicEl(o, i);
  5998. else { var C = t.getRegionModel(e.name);
  5999. n.eventData = { componentType: "geo", componentIndex: t.componentIndex, geoIndex: t.componentIndex, name: e.name, region: C && C.option || {} } }(i.__regions || (i.__regions = [])).push(e), uo(i, y, { hoverSilentOnTouch: !!t.get("selectedMode") }), l.add(i) }), this._updateController(t, e, i), yc(this, t, l, i, n), xc(t, l) }, remove: function() { this._regionsGroup.removeAll(), this._backgroundGroup.removeAll(), this._controller.dispose(), this._mapName && xC.removeGraphic(this._mapName, this.uid), this._mapName = null, this._controllerHost = {} }, _updateBackground: function(t) { var e = t.map;
  6000. this._mapName !== e && d(xC.makeGraphic(e, this.uid), function(t) { this._backgroundGroup.add(t) }, this), this._mapName = e }, _updateController: function(t, e, i) {
  6001. function n() { var e = { type: "geoRoam", componentType: l }; return e[l + "Id"] = t.id, e } var o = t.coordinateSystem,
  6002. r = this._controller,
  6003. s = this._controllerHost;
  6004. s.zoomLimit = t.get("scaleLimit"), s.zoom = o.getZoom(), r.enable(t.get("roam") || !1); var l = t.mainType;
  6005. r.off("pan").on("pan", function(t) { this._mouseDownFlag = !1, pc(s, t.dx, t.dy), i.dispatchAction(a(n(), { dx: t.dx, dy: t.dy })) }, this), r.off("zoom").on("zoom", function(t) { if (this._mouseDownFlag = !1, gc(s, t.scale, t.originX, t.originY), i.dispatchAction(a(n(), { zoom: t.scale, originX: t.originX, originY: t.originY })), this._updateGroup) { var e = this.group.scale;
  6006. this._regionsGroup.traverse(function(t) { "text" === t.type && t.attr("scale", [1 / e[0], 1 / e[1]]) }) } }, this), r.setPointerChecker(function(e, n, a) { return o.getViewRectAfterRoam().contain(n, a) && !mc(e, i, t) }) } }, Fs({ type: "map", render: function(t, e, i, n) { if (!n || "mapToggleSelect" !== n.type || n.from !== this.uid) { var o = this.group; if (o.removeAll(), !t.getHostGeoModel()) { if (n && "geoRoam" === n.type && "series" === n.componentType && n.seriesId === t.id)(a = this._mapDraw) && o.add(a.group);
  6007. else if (t.needsDrawMap) { var a = this._mapDraw || new _c(i, !0);
  6008. o.add(a.group), a.draw(t, e, i, this, n), this._mapDraw = a } else this._mapDraw && this._mapDraw.remove(), this._mapDraw = null;
  6009. t.get("showLegendSymbol") && e.getComponent("legend") && this._renderSymbols(t, e, i) } } }, remove: function() { this._mapDraw && this._mapDraw.remove(), this._mapDraw = null, this.group.removeAll() }, dispose: function() { this._mapDraw && this._mapDraw.remove(), this._mapDraw = null }, _renderSymbols: function(t, e, i) { var n = t.originalData,
  6010. o = this.group;
  6011. n.each(n.mapDimension("value"), function(e, i) { if (!isNaN(e)) { var a = n.getItemLayout(i); if (a && a.point) { var r = a.point,
  6012. s = a.offset,
  6013. l = new KS({ style: { fill: t.getData().getVisual("color") }, shape: { cx: r[0] + 9 * s, cy: r[1], r: 3 }, silent: !0, z2: s ? 8 : 10 }); if (!s) { var u = t.mainSeries.getData(),
  6014. h = n.getName(i),
  6015. c = u.indexOfName(h),
  6016. d = n.getItemModel(i),
  6017. f = d.getModel("label"),
  6018. p = d.getModel("emphasis.label"),
  6019. g = u.getItemGraphicEl(c),
  6020. m = A(t.getFormattedLabel(i, "normal"), h),
  6021. v = A(t.getFormattedLabel(i, "emphasis"), m),
  6022. y = function() { var t = fo({}, p, { text: p.get("show") ? v : null }, { isRectText: !0, useInsideStyle: !1 }, !0);
  6023. l.style.extendFrom(t), l.__mapOriginalZ2 = l.z2, l.z2 += 1 },
  6024. x = function() { fo(l.style, f, { text: f.get("show") ? m : null, textPosition: f.getShallow("position") || "bottom" }, { isRectText: !0, useInsideStyle: !1 }), null != l.__mapOriginalZ2 && (l.z2 = l.__mapOriginalZ2, l.__mapOriginalZ2 = null) };
  6025. g.on("mouseover", y).on("mouseout", x).on("emphasis", y).on("normal", x), x() }
  6026. o.add(l) } } }) } }), Ps({ type: "geoRoam", event: "geoRoam", update: "updateTransform" }, function(t, e) { var i = t.componentType || "series";
  6027. e.eachComponent({ mainType: i, query: t }, function(e) { var n = e.coordinateSystem; if ("geo" === n.type) { var o = wc(n, t, e.get("scaleLimit"));
  6028. e.setCenter && e.setCenter(o.center), e.setZoom && e.setZoom(o.zoom), "series" === i && d(e.seriesGroup, function(t) { t.setCenter(o.center), t.setZoom(o.zoom) }) } }) });
  6029. Os(function(t) { var e = {};
  6030. t.eachSeriesByType("map", function(i) { var n = i.getMapType(); if (!i.getHostGeoModel() && !e[n]) { var o = {};
  6031. d(i.seriesGroup, function(e) { var i = e.coordinateSystem,
  6032. n = e.originalData;
  6033. e.get("showLegendSymbol") && t.getComponent("legend") && n.each(n.mapDimension("value"), function(t, e) { var a = n.getName(e),
  6034. r = i.getRegion(a); if (r && !isNaN(t)) { var s = o[a] || 0,
  6035. l = i.dataToPoint(r.center);
  6036. o[a] = s + 1, n.setItemLayout(e, { point: l, offset: s }) } }) }); var a = i.getData();
  6037. a.each(function(t) { var e = a.getName(t),
  6038. i = a.getItemLayout(t) || {};
  6039. i.showLabel = !o[e], a.setItemLayout(t, i) }), e[n] = !0 } }) }), Es(function(t) { t.eachSeriesByType("map", function(t) { var e = t.get("color"),
  6040. i = t.getModel("itemStyle"),
  6041. n = i.get("areaColor"),
  6042. o = i.get("color") || e[t.seriesIndex % e.length];
  6043. t.getData().setVisual({ areaColor: n, color: o }) }) }), ks(IT.PROCESSOR.STATISTIC, function(t) { var e = {};
  6044. t.eachSeriesByType("map", function(t) { var i = t.getHostGeoModel(),
  6045. n = i ? "o" + i.id : "i" + t.getMapType();
  6046. (e[n] = e[n] || []).push(t) }), d(e, function(t, e) { for (var i = bc(f(t, function(t) { return t.getData() }), t[0].get("mapValueCalculation")), n = 0; n < t.length; n++) t[n].originalData = t[n].getData(); for (n = 0; n < t.length; n++) t[n].seriesGroup = t, t[n].needsDrawMap = 0 === n && !t[n].getHostGeoModel(), t[n].setData(i.cloneShallow()), t[n].mainSeries = t[0] }) }), Ls(function(t) { var e = [];
  6047. d(t.series, function(t) { t && "map" === t.type && (e.push(t), t.map = t.map || t.mapType, r(t, t.mapLocation)) }) }), XD("map", [{ type: "mapToggleSelect", event: "mapselectchanged", method: "toggleSelected" }, { type: "mapSelect", event: "mapselected", method: "select" }, { type: "mapUnSelect", event: "mapunselected", method: "unSelect" }]); var MC = d,
  6048. IC = "\0__link_datas",
  6049. TC = "\0__link_mainData",
  6050. AC = 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 };
  6051. AC.prototype = { constructor: AC, isRemoved: function() { return this.dataIndex < 0 }, eachNode: function(t, e, i) { "function" == typeof t && (i = e, e = t, t = null), _(t = t || {}) && (t = { order: t }); var n, o = t.order || "preorder",
  6052. a = this[t.attr || "children"]; "preorder" === o && (n = e.call(i, this)); for (var r = 0; !n && r < a.length; r++) a[r].eachNode(t, e, i); "postorder" === o && e.call(i, this) }, updateDepthAndHeight: function(t) { var e = 0;
  6053. this.depth = t; for (var i = 0; i < this.children.length; i++) { var n = this.children[i];
  6054. n.updateDepthAndHeight(t + 1), n.height > e && (e = n.height) }
  6055. this.height = e + 1 }, getNodeById: function(t) { if (this.getId() === t) return this; for (var e = 0, i = this.children, n = i.length; e < n; 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; e < n; 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, i = this.hostTree,
  6056. n = i.data.getItemModel(this.dataIndex),
  6057. o = this.getLevelModel(); return o || 0 !== this.children.length && (0 === this.children.length || !1 !== this.isExpand) || (e = this.getLeavesModel()), n.getModel(t, (o || e || i.hostModel).getModel(t)) } }, getLevelModel: function() { return (this.hostTree.levelModels || [])[this.depth] }, getLeavesModel: function() { return this.hostTree.leavesModel }, setVisual: function(t, e) { this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, t, e) }, getVisual: function(t, e) { return this.hostTree.data.getItemVisual(this.dataIndex, t, e) }, getRawIndex: function() { return this.hostTree.data.getRawIndex(this.dataIndex) }, getId: function() { return this.hostTree.data.getId(this.dataIndex) }, isAncestorOf: function(t) { for (var e = t.parentNode; e;) { if (e === this) return !0;
  6058. e = e.parentNode } return !1 }, isDescendantOf: function(t) { return t !== this && t.isAncestorOf(this) } }, kc.prototype = { constructor: kc, 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; i < n; i++) e[i].dataIndex = -1; for (var i = 0, n = t.count(); i < n; i++) e[t.getRawIndex(i)].dataIndex = i }, clearLayouts: function() { this.data.clearItemLayouts() } }, kc.createTree = function(t, e, i) {
  6059. function n(t, e) { var i = t.value;
  6060. r = Math.max(r, y(i) ? i.length : 1), a.push(t); var s = new AC(t.name, o);
  6061. e ? Pc(s, e) : o.root = s, o._nodes.push(s); var l = t.children; if (l)
  6062. for (var u = 0; u < l.length; u++) n(l[u], s) } var o = new kc(e, i.levels, i.leaves),
  6063. a = [],
  6064. r = 1;
  6065. n(t), o.root.updateDepthAndHeight(0); var s = oA(a, { coordDimensions: ["value"], dimensionsCount: r }),
  6066. l = new eA(s, e); return l.initData(a), Sc({ mainData: l, struct: o, structAttr: "tree" }), o.update(), o }, OI.extend({ type: "series.tree", layoutInfo: null, layoutMode: "box", getInitialData: function(t) { var e = { name: t.name, children: t.data },
  6067. i = t.leaves || {},
  6068. n = {};
  6069. n.leaves = i; var o = kc.createTree(e, this, n),
  6070. a = 0;
  6071. o.eachNode("preorder", function(t) { t.depth > a && (a = t.depth) }); var r = t.expandAndCollapse && t.initialTreeDepth >= 0 ? t.initialTreeDepth : a; return o.root.eachNode("preorder", function(t) { var e = t.hostTree.data.getRawDataItem(t.dataIndex);
  6072. t.isExpand = e && null != e.collapsed ? !e.collapsed : t.depth <= r }), o.data }, getOrient: function() { var t = this.get("orient"); return "horizontal" === t ? t = "LR" : "vertical" === t && (t = "TB"), t }, setZoom: function(t) { this.option.zoom = t }, setCenter: function(t) { this.option.center = t }, formatTooltip: function(t) { for (var e = this.getData().tree, i = e.root.children[0], n = e.getNodeByDataIndex(t), o = n.getValue(), a = n.name; n && n !== i;) a = n.parentNode.name + "." + a, n = n.parentNode; return Qo(a + (isNaN(o) || null == o ? "" : " : " + o)) }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: "view", left: "12%", top: "12%", right: "12%", bottom: "12%", layout: "orthogonal", roam: !1, nodeScaleRatio: .4, center: null, zoom: 1, orient: "LR", symbol: "emptyCircle", symbolSize: 7, expandAndCollapse: !0, initialTreeDepth: 2, lineStyle: { color: "#ccc", width: 1.5, curveness: .5 }, itemStyle: { color: "lightsteelblue", borderColor: "#c23531", borderWidth: 1.5 }, label: { show: !0, color: "#555" }, leaves: { label: { show: !0 } }, animationEasing: "linear", animationDuration: 700, animationDurationUpdate: 1e3 } }), Fs({ type: "tree", init: function(t, e) { this._oldTree, this._mainGroup = new Zw, this._controller = new ac(e.getZr()), this._controllerHost = { target: this.group }, this.group.add(this._mainGroup) }, render: function(t, e, i, n) { var o = t.getData(),
  6073. a = t.layoutInfo,
  6074. r = this._mainGroup,
  6075. s = t.get("layout"); "radial" === s ? r.attr("position", [a.x + a.width / 2, a.y + a.height / 2]) : r.attr("position", [a.x, a.y]), this._updateViewCoordSys(t), this._updateController(t, e, i); var l = this._data,
  6076. u = { expandAndCollapse: t.get("expandAndCollapse"), layout: s, orient: t.getOrient(), curvature: t.get("lineStyle.curveness"), symbolRotate: t.get("symbolRotate"), symbolOffset: t.get("symbolOffset"), hoverAnimation: t.get("hoverAnimation"), useNameLabel: !0, fadeIn: !0 };
  6077. o.diff(l).add(function(e) { Xc(o, e) && Yc(o, e, null, r, t, u) }).update(function(e, i) { var n = l.getItemGraphicEl(i);
  6078. Xc(o, e) ? Yc(o, e, n, r, t, u) : n && qc(l, i, n, r, t, u) }).remove(function(e) { var i = l.getItemGraphicEl(e);
  6079. i && qc(l, e, i, r, t, u) }).execute(), this._nodeScaleRatio = t.get("nodeScaleRatio"), this._updateNodeAndLinkScale(t), !0 === u.expandAndCollapse && o.eachItemGraphicEl(function(e, n) { e.off("click").on("click", function() { i.dispatchAction({ type: "treeExpandAndCollapse", seriesId: t.id, dataIndex: n }) }) }), this._data = o }, _updateViewCoordSys: function(t) { var e = t.getData(),
  6080. i = [];
  6081. e.each(function(t) { var n = e.getItemLayout(t);!n || isNaN(n.x) || isNaN(n.y) || i.push([+n.x, +n.y]) }); var n = [],
  6082. o = [];
  6083. dn(i, n, o), o[0] - n[0] == 0 && (o[0] += 1, n[0] -= 1), o[1] - n[1] == 0 && (o[1] += 1, n[1] -= 1); var a = t.coordinateSystem = new Uh;
  6084. a.zoomLimit = t.get("scaleLimit"), a.setBoundingRect(n[0], n[1], o[0] - n[0], o[1] - n[1]), a.setCenter(t.get("center")), a.setZoom(t.get("zoom")), this.group.attr({ position: a.position, scale: a.scale }), this._viewCoordSys = a }, _updateController: function(t, e, i) { var n = this._controller,
  6085. o = this._controllerHost,
  6086. a = this.group;
  6087. n.setPointerChecker(function(e, n, o) { var r = a.getBoundingRect(); return r.applyTransform(a.transform), r.contain(n, o) && !mc(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) { pc(o, e.dx, e.dy), i.dispatchAction({ seriesId: t.id, type: "treeRoam", dx: e.dx, dy: e.dy }) }, this).on("zoom", function(e) { gc(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(),
  6088. i = this._getNodeGlobalScale(t),
  6089. n = [i, i];
  6090. e.eachItemGraphicEl(function(t, e) { t.attr("scale", n) }) }, _getNodeGlobalScale: function(t) { var e = t.coordinateSystem; if ("view" !== e.type) return 1; var i = this._nodeScaleRatio,
  6091. n = e.scale,
  6092. o = n && n[0] || 1; return ((e.getZoom() - 1) * i + 1) / o }, dispose: function() { this._controller && this._controller.dispose(), this._controllerHost = {} }, remove: function() { this._mainGroup.removeAll(), this._data = null } }), Ps({ type: "treeExpandAndCollapse", event: "treeExpandAndCollapse", update: "update" }, function(t, e) { e.eachComponent({ mainType: "series", subType: "tree", query: t }, function(e) { var i = t.dataIndex,
  6093. n = e.getData().tree.getNodeByDataIndex(i);
  6094. n.isExpand = !n.isExpand }) }), Ps({ type: "treeRoam", event: "treeRoam", update: "none" }, function(t, e) { e.eachComponent({ mainType: "series", subType: "tree", query: t }, function(e) { var i = wc(e.coordinateSystem, t);
  6095. e.setCenter && e.setCenter(i.center), e.setZoom && e.setZoom(i.zoom) }) });
  6096. Es(hD("tree", "circle")), Os(function(t, e) { t.eachSeriesByType("tree", function(t) { Qc(t, e) }) }), OI.extend({ type: "series.treemap", layoutMode: "box", dependencies: ["grid", "polar"], _viewRoot: null, defaultOption: { progressive: 0, hoverLayerThreshold: 1 / 0, left: "center", top: "middle", right: null, bottom: null, width: "80%", height: "80%", sort: !0, clipWindow: "origin", squareRatio: .5 * (1 + Math.sqrt(5)), leafDepth: null, drillDownIcon: "鈻�", zoomToNodeRatio: .1024, roam: !0, nodeClick: "zoomToNode", animation: !0, animationDurationUpdate: 900, animationEasing: "quinticInOut", breadcrumb: { show: !0, height: 22, left: "center", top: "bottom", emptyItemWidth: 25, itemStyle: { color: "rgba(0,0,0,0.7)", borderColor: "rgba(255,255,255,0.7)", borderWidth: 1, shadowColor: "rgba(150,150,150,1)", shadowBlur: 3, shadowOffsetX: 0, shadowOffsetY: 0, textStyle: { color: "#fff" } }, emphasis: { textStyle: {} } }, label: { show: !0, distance: 0, padding: 5, position: "inside", color: "#fff", ellipsis: !0 }, upperLabel: { show: !1, position: [0, "50%"], height: 20, color: "#fff", ellipsis: !0, verticalAlign: "middle" }, itemStyle: { color: null, colorAlpha: null, colorSaturation: null, borderWidth: 0, gapWidth: 0, borderColor: "#fff", borderColorSaturation: null }, emphasis: { upperLabel: { show: !0, position: [0, "50%"], color: "#fff", ellipsis: !0, verticalAlign: "middle" } }, visualDimension: 0, visualMin: null, visualMax: null, color: [], colorAlpha: null, colorSaturation: null, colorMappingBy: "index", visibleMin: 10, childrenVisibleMin: null, levels: [] }, getInitialData: function(t, e) { var i = { name: t.name, children: t.data };
  6097. od(i); var n = t.levels || [];
  6098. n = t.levels = ad(n, e); var o = {}; return o.levels = n, kc.createTree(i, this, o).data }, optionUpdated: function() { this.resetViewRoot() }, formatTooltip: function(t) { var e = this.getData(),
  6099. i = this.getRawValue(t),
  6100. n = $o(y(i) ? i[0] : i); return Qo(e.getName(t) + ": " + n) }, getDataParams: function(t) { var e = OI.prototype.getDataParams.apply(this, arguments),
  6101. i = this.getData().tree.getNodeByDataIndex(t); return e.treePathInfo = nd(i, this), e }, setLayoutInfo: function(t) { this.layoutInfo = this.layoutInfo || {}, a(this.layoutInfo, t) }, mapIdToIndex: function(t) { var e = this._idIndexMap;
  6102. e || (e = this._idIndexMap = R(), this._idIndexMapCount = 0); var i = e.get(t); return null == i && e.set(t, i = this._idIndexMapCount++), i }, getViewRoot: function() { return this._viewRoot }, resetViewRoot: function(t) { t ? this._viewRoot = t : t = this._viewRoot; var e = this.getRawData().tree.root;
  6103. t && (t === e || e.contains(t)) || (this._viewRoot = e) } }); var DC = 5;
  6104. rd.prototype = { constructor: rd, render: function(t, e, i, n) { var o = t.getModel("breadcrumb"),
  6105. a = this.group; if (a.removeAll(), o.get("show") && i) { var r = o.getModel("itemStyle"),
  6106. s = r.getModel("textStyle"),
  6107. 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: [] };
  6108. this._prepare(i, l, s), this._renderContent(t, l, r, s, n), ua(a, l.pos, l.box) } }, _prepare: function(t, e, i) { for (var n = t; n; n = n.parentNode) { var o = n.getModel().get("name"),
  6109. a = i.getTextRect(o),
  6110. r = Math.max(a.width + 16, e.emptyItemWidth);
  6111. e.totalWidth += r + 8, e.renderList.push({ node: n, text: o, width: r }) } }, _renderContent: function(t, e, i, n, o) { for (var a = 0, s = e.emptyItemWidth, l = t.get("breadcrumb.height"), u = sa(e.pos, e.box), h = e.totalWidth, c = e.renderList, d = c.length - 1; d >= 0; d--) { var f = c[d],
  6112. p = f.node,
  6113. g = f.width,
  6114. m = f.text;
  6115. h > u.width && (h -= g - s, g = s, m = null); var y = new nM({ shape: { points: sd(a, 0, g, l, d === c.length - 1, 0 === d) }, style: r(i.getItemStyle(), { lineJoin: "bevel", text: m, textFill: n.getTextColor(), textFont: n.getFont() }), z: 10, onclick: v(o, p) });
  6116. this.group.add(y), ld(y, t, p), a += g + 8 } }, remove: function() { this.group.removeAll() } }; var CC = m,
  6117. LC = Zw,
  6118. kC = aM,
  6119. PC = d,
  6120. NC = ["label"],
  6121. OC = ["emphasis", "label"],
  6122. EC = ["upperLabel"],
  6123. RC = ["emphasis", "upperLabel"],
  6124. zC = 10,
  6125. BC = 1,
  6126. VC = 2,
  6127. GC = Wb([
  6128. ["fill", "color"],
  6129. ["stroke", "strokeColor"],
  6130. ["lineWidth", "strokeWidth"],
  6131. ["shadowBlur"],
  6132. ["shadowOffsetX"],
  6133. ["shadowOffsetY"],
  6134. ["shadowColor"]
  6135. ]),
  6136. FC = function(t) { var e = GC(t); return e.stroke = e.fill = e.lineWidth = null, e };
  6137. Fs({ type: "treemap", init: function(t, e) { this._containerGroup, this._storage = { nodeGroup: [], background: [], content: [] }, this._oldTree, this._breadcrumb, this._controller, this._state = "ready" }, render: function(t, e, i, n) { if (!(l(e.findComponents({ mainType: "series", subType: "treemap", query: n }), t) < 0)) { this.seriesModel = t, this.api = i, this.ecModel = e; var o = td(n, ["treemapZoomToNode", "treemapRootToNode"], t),
  6138. a = n && n.type,
  6139. r = t.layoutInfo,
  6140. s = !this._oldTree,
  6141. u = this._storage,
  6142. h = "treemapRootToNode" === a && o && u ? { rootNodeGroup: u.nodeGroup[o.node.getRawIndex()], direction: n.direction } : null,
  6143. c = this._giveContainerGroup(r),
  6144. d = this._doRender(c, t, h);
  6145. s || a && "treemapZoomToNode" !== a && "treemapRootToNode" !== a ? d.renderFinally() : this._doAnimation(c, d, t, h), this._resetController(i), this._renderBreadcrumb(t, i, o) } }, _giveContainerGroup: function(t) { var e = this._containerGroup; return e || (e = this._containerGroup = new LC, this._initEvents(e), this.group.add(e)), e.attr("position", [t.x, t.y]), e }, _doRender: function(t, e, i) {
  6146. function n(t, e, i, o, a) {
  6147. function r(t) { return t.getId() }
  6148. function s(r, s) { var l = null != r ? t[r] : null,
  6149. u = null != s ? e[s] : null,
  6150. c = h(l, u, i, a);
  6151. c && n(l && l.viewChildren || [], u && u.viewChildren || [], c, o, a + 1) }
  6152. o ? (e = t, PC(t, function(t, e) {!t.isRemoved() && s(e, e) })) : new Hs(e, t, r, r).add(s).update(s).remove(v(s, null)).execute() } var o = e.getData().tree,
  6153. a = this._oldTree,
  6154. r = { nodeGroup: [], background: [], content: [] },
  6155. s = { nodeGroup: [], background: [], content: [] },
  6156. l = this._storage,
  6157. u = [],
  6158. h = v(hd, e, s, l, i, r, u);
  6159. n(o.root ? [o.root] : [], a && a.root ? [a.root] : [], t, o === a || !a, 0); var c = function(t) { var e = { nodeGroup: [], background: [], content: [] }; return t && PC(t, function(t, i) { var n = e[i];
  6160. PC(t, function(t) { t && (n.push(t), t.__tmWillDelete = 1) }) }), e }(l); return this._oldTree = o, this._storage = s, { lastsForAnimation: r, willDeleteEls: c, renderFinally: function() { PC(c, function(t) { PC(t, function(t) { t.parent && t.parent.remove(t) }) }), PC(u, function(t) { t.invisible = !0, t.dirty() }) } } }, _doAnimation: function(t, e, i, n) { if (i.get("animation")) { var o = i.get("animationDurationUpdate"),
  6161. r = i.get("animationEasing"),
  6162. s = ud();
  6163. PC(e.willDeleteEls, function(t, e) { PC(t, function(t, i) { if (!t.invisible) { var a, l = t.parent; if (n && "drillDown" === n.direction) a = l === n.rootNodeGroup ? { shape: { x: 0, y: 0, width: l.__tmNodeWidth, height: l.__tmNodeHeight }, style: { opacity: 0 } } : { style: { opacity: 0 } };
  6164. else { var u = 0,
  6165. h = 0;
  6166. l.__tmWillDelete || (u = l.__tmNodeWidth / 2, h = l.__tmNodeHeight / 2), a = "nodeGroup" === e ? { position: [u, h], style: { opacity: 0 } } : { shape: { x: u, y: h, width: 0, height: 0 }, style: { opacity: 0 } } }
  6167. a && s.add(t, a, o, r) } }) }), PC(this._storage, function(t, i) { PC(t, function(t, n) { var l = e.lastsForAnimation[i][n],
  6168. u = {};
  6169. l && ("nodeGroup" === i ? l.old && (u.position = t.position.slice(), t.attr("position", l.old)) : (l.old && (u.shape = a({}, t.shape), t.setShape(l.old)), l.fadein ? (t.setStyle("opacity", 0), u.style = { opacity: 1 }) : 1 !== t.style.opacity && (u.style = { opacity: 1 })), s.add(t, u, o, r)) }) }, this), this._state = "animating", s.done(CC(function() { this._state = "ready", e.renderFinally() }, this)).start() } }, _resetController: function(t) { var e = this._controller;
  6170. e || ((e = this._controller = new ac(t.getZr())).enable(this.seriesModel.get("roam")), e.on("pan", CC(this._onPan, this)), e.on("zoom", CC(this._onZoom, this))); var i = new ue(0, 0, t.getWidth(), t.getHeight());
  6171. e.setPointerChecker(function(t, e, n) { return i.contain(e, n) }) }, _clearController: function() { var t = this._controller;
  6172. t && (t.dispose(), t = null) }, _onPan: function(t) { if ("animating" !== this._state && (Math.abs(t.dx) > 3 || Math.abs(t.dy) > 3)) { var e = this.seriesModel.getData().tree.root; if (!e) return; var i = e.getLayout(); if (!i) return;
  6173. 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,
  6174. 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 ue(o.x, o.y, o.width, o.height),
  6175. r = this.seriesModel.layoutInfo;
  6176. e -= r.x, i -= r.y; var s = mt();
  6177. _t(s, s, [-e, -i]), bt(s, s, [t.scale, t.scale]), _t(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);
  6178. else if ("zoomToNode" === e) this._zoomToNode(i);
  6179. else if ("link" === e) { var o = n.hostTree.data.getItemModel(n.dataIndex),
  6180. a = o.get("link", !0),
  6181. r = o.get("target", !0) || "blank";
  6182. a && window.open(a, r) } } } } }, this) }, _renderBreadcrumb: function(t, e, i) { i || (i = null != t.get("leafDepth", !0) ? { node: t.getViewRoot() } : this.findTarget(e.getWidth() / 2, e.getHeight() / 2)) || (i = { node: t.getData().tree.root }), (this._breadcrumb || (this._breadcrumb = new rd(this.group))).render(t, e, i.node, CC(function(e) { "animating" !== this._state && (id(t.getViewRoot(), e) ? this._rootToNode({ node: e }) : this._zoomToNode({ node: e })) }, this)) }, remove: function() { this._clearController(), this._containerGroup && this._containerGroup.removeAll(), this._storage = { nodeGroup: [], background: [], content: [] }, this._state = "ready", this._breadcrumb && this._breadcrumb.remove() }, dispose: function() { this._clearController() }, _zoomToNode: function(t) { this.api.dispatchAction({ type: "treemapZoomToNode", from: this.uid, seriesId: this.seriesModel.id, targetNode: t.node }) }, _rootToNode: function(t) { this.api.dispatchAction({ type: "treemapRootToNode", from: this.uid, seriesId: this.seriesModel.id, targetNode: t.node }) }, findTarget: function(t, e) { var i; return this.seriesModel.getViewRoot().eachNode({ attr: "viewChildren", order: "preorder" }, function(n) { var o = this._storage.background[n.getRawIndex()]; if (o) { var a = o.transformCoordToLocal(t, e),
  6183. 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;
  6184. i = { node: n, offsetX: a[0], offsetY: a[1] } } }, this), i } }); for (var WC = ["treemapZoomToNode", "treemapRender", "treemapMove"], HC = 0; HC < WC.length; HC++) Ps({ type: WC[HC], update: "updateView" }, function() {});
  6185. Ps({ type: "treemapRootToNode", update: "updateView" }, function(t, e) { e.eachComponent({ mainType: "series", subType: "treemap", query: t }, function(e, i) { var n = td(t, ["treemapZoomToNode", "treemapRootToNode"], e); if (n) { var o = e.getViewRoot();
  6186. o && (t.direction = id(o, n.node) ? "rollUp" : "drillDown"), e.resetViewRoot(n.node) } }) }); var ZC = d,
  6187. UC = w,
  6188. XC = -1,
  6189. jC = function(t) { var e = t.mappingMethod,
  6190. n = t.type,
  6191. o = this.option = i(t);
  6192. this.type = n, this.mappingMethod = e, this._normalizeData = qC[e]; var a = YC[n];
  6193. this.applyVisual = a.applyVisual, this.getColorMapper = a.getColorMapper, this._doMap = a._doMap[e], "piecewise" === e ? (pd(o), dd(o)) : "category" === e ? o.categories ? fd(o) : pd(o, !0) : (k("linear" !== e || o.dataExtent), pd(o)) };
  6194. jC.prototype = { constructor: jC, mapValueToVisual: function(t) { var e = this._normalizeData(t); return this._doMap(e, t) }, getNormalizer: function() { return m(this._normalizeData, this) } }; var YC = jC.visualHandlers = { color: { applyVisual: vd("color"), getColorMapper: function() { var t = this.option; return m("category" === t.mappingMethod ? function(t, e) { return !e && (t = this._normalizeData(t)), yd.call(this, t) } : function(e, i, n) { var o = !!n; return !i && (e = this._normalizeData(e)), n = Wt(e, t.parsedVisual, n), o ? n : Xt(n, "rgba") }, this) }, _doMap: { linear: function(t) { return Xt(Wt(t, this.option.parsedVisual), "rgba") }, category: yd, piecewise: function(t, e) { var i = wd.call(this, e); return null == i && (i = Xt(Wt(t, this.option.parsedVisual), "rgba")), i }, fixed: xd } }, colorHue: gd(function(t, e) { return Zt(t, e) }), colorSaturation: gd(function(t, e) { return Zt(t, null, e) }), colorLightness: gd(function(t, e) { return Zt(t, null, null, e) }), colorAlpha: gd(function(t, e) { return Ut(t, e) }), opacity: { applyVisual: vd("opacity"), _doMap: _d([0, 1]) }, liftZ: { applyVisual: vd("liftZ"), _doMap: { linear: xd, category: xd, piecewise: xd, fixed: xd } }, symbol: { applyVisual: function(t, e, i) { var n = this.mapValueToVisual(t); if (_(n)) i("symbol", n);
  6195. else if (UC(n))
  6196. for (var o in n) n.hasOwnProperty(o) && i(o, n[o]) }, _doMap: { linear: md, category: yd, piecewise: function(t, e) { var i = wd.call(this, e); return null == i && (i = md.call(this, t)), i }, fixed: xd } }, symbolSize: { applyVisual: vd("symbolSize"), _doMap: _d([0, 1]) } },
  6197. qC = { linear: function(t) { return Eo(t, this.option.dataExtent, [0, 1], !0) }, piecewise: function(t) { var e = this.option.pieceList,
  6198. i = jC.findPieceIndex(t, e, !0); if (null != i) return Eo(i, [0, e.length - 1], [0, 1], !0) }, category: function(t) { var e = this.option.categories ? this.option.categoryMap[t] : t; return null == e ? XC : e }, fixed: B };
  6199. jC.listVisualTypes = function() { var t = []; return d(YC, function(e, i) { t.push(i) }), t }, jC.addVisualHandler = function(t, e) { YC[t] = e }, jC.isValidType = function(t) { return YC.hasOwnProperty(t) }, jC.eachVisual = function(t, e, i) { w(t) ? d(t, e, i) : e.call(i, t) }, jC.mapVisual = function(t, e, i) { var n, o = y(t) ? [] : w(t) ? {} : (n = !0, null); return jC.eachVisual(t, function(t, a) { var r = e.call(i, t, a);
  6200. n ? o = r : o[a] = r }), o }, jC.retrieveVisuals = function(t) { var e, i = {}; return t && ZC(YC, function(n, o) { t.hasOwnProperty(o) && (i[o] = t[o], e = !0) }), e ? i : null }, jC.prepareVisualTypes = function(t) { if (UC(t)) { var e = [];
  6201. ZC(t, function(t, i) { e.push(i) }), t = e } else { if (!y(t)) return [];
  6202. t = t.slice() } return t.sort(function(t, e) { return "color" === e && "color" !== t && 0 === t.indexOf("color") ? 1 : -1 }), t }, jC.dependsOn = function(t, e) { return "color" === e ? !(!t || 0 !== t.indexOf(e)) : t === e }, jC.findPieceIndex = function(t, e, i) {
  6203. function n(e, i) { var n = Math.abs(e - t);
  6204. n < a && (a = n, o = i) } for (var o, a = 1 / 0, r = 0, s = e.length; r < s; r++) { var l = e[r].value; if (null != l) { if (l === t || "string" == typeof l && l === t + "") return r;
  6205. i && n(l, r) } } for (var r = 0, s = e.length; r < s; r++) { var u = e[r],
  6206. h = u.interval,
  6207. c = u.close; if (h) { if (h[0] === -1 / 0) { if (Sd(c[1], t, h[1])) return r } else if (h[1] === 1 / 0) { if (Sd(c[0], h[0], t)) return r } else if (Sd(c[0], h[0], t) && Sd(c[1], t, h[1])) return r;
  6208. i && n(h[0], r), i && n(h[1], r) } } if (i) return t === 1 / 0 ? e.length - 1 : t === -1 / 0 ? 0 : o }; var KC = y,
  6209. $C = "itemStyle",
  6210. JC = { seriesType: "treemap", reset: function(t, e, i, n) { var o = t.getData().tree,
  6211. a = o.root,
  6212. r = t.getModel($C);
  6213. a.isRemoved() || Md(a, {}, f(o.levelModels, function(t) { return t ? t.get($C) : null }), r, t.getViewRoot().getAncestors(), t) } },
  6214. QC = Math.max,
  6215. tL = Math.min,
  6216. eL = T,
  6217. iL = d,
  6218. nL = ["itemStyle", "borderWidth"],
  6219. oL = ["itemStyle", "gapWidth"],
  6220. aL = ["upperLabel", "show"],
  6221. rL = ["upperLabel", "height"],
  6222. sL = { seriesType: "treemap", reset: function(t, e, i, n) { var o = i.getWidth(),
  6223. r = i.getHeight(),
  6224. s = t.option,
  6225. l = la(t.getBoxLayoutParams(), { width: i.getWidth(), height: i.getHeight() }),
  6226. u = s.size || [],
  6227. h = Ro(eL(l.width, u[0]), o),
  6228. c = Ro(eL(l.height, u[1]), r),
  6229. d = n && n.type,
  6230. f = td(n, ["treemapZoomToNode", "treemapRootToNode"], t),
  6231. p = "treemapRender" === d || "treemapMove" === d ? n.rootRect : null,
  6232. g = t.getViewRoot(),
  6233. m = ed(g); if ("treemapMove" !== d) { var v = "treemapZoomToNode" === d ? Vd(t, f, g, h, c) : p ? [p.width, p.height] : [h, c],
  6234. y = s.sort;
  6235. y && "asc" !== y && "desc" !== y && (y = "desc"); var x = { squareRatio: s.squareRatio, sort: y, leafDepth: s.leafDepth };
  6236. g.hostTree.clearLayouts();
  6237. _ = { x: 0, y: 0, width: v[0], height: v[1], area: v[0] * v[1] };
  6238. g.setLayout(_), Pd(g, x, !1, 0); var _ = g.getLayout();
  6239. iL(m, function(t, e) { var i = (m[e + 1] || g).getValue();
  6240. t.setLayout(a({ dataExtent: [i, i], borderWidth: 0, upperHeight: 0 }, _)) }) } var w = t.getData().tree.root;
  6241. w.setLayout(Gd(l, p, f), !0), t.setLayoutInfo(l), Fd(w, new ue(-l.x, -l.y, o, r), m, g, 0) } };
  6242. Es(JC), Os(sL); var lL = function(t) { this._directed = t || !1, this.nodes = [], this.edges = [], this._nodesMap = {}, this._edgesMap = {}, this.data, this.edgeData },
  6243. uL = lL.prototype;
  6244. uL.type = "graph", uL.isDirected = function() { return this._directed }, uL.addNode = function(t, e) { t = t || "" + e; var i = this._nodesMap; if (!i[Hd(t)]) { var n = new Zd(t, e); return n.hostGraph = this, this.nodes.push(n), i[Hd(t)] = n, n } }, uL.getNodeByIndex = function(t) { var e = this.data.getRawIndex(t); return this.nodes[e] }, uL.getNodeById = function(t) { return this._nodesMap[Hd(t)] }, uL.addEdge = function(t, e, i) { var n = this._nodesMap,
  6245. o = this._edgesMap; if ("number" == typeof t && (t = this.nodes[t]), "number" == typeof e && (e = this.nodes[e]), Zd.isInstance(t) || (t = n[Hd(t)]), Zd.isInstance(e) || (e = n[Hd(e)]), t && e) { var a = t.id + "-" + e.id; if (!o[a]) { var r = new Ud(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 } } }, uL.getEdgeByIndex = function(t) { var e = this.edgeData.getRawIndex(t); return this.edges[e] }, uL.getEdge = function(t, e) { Zd.isInstance(t) && (t = t.id), Zd.isInstance(e) && (e = e.id); var i = this._edgesMap; return this._directed ? i[t + "-" + e] : i[t + "-" + e] || i[e + "-" + t] }, uL.eachNode = function(t, e) { for (var i = this.nodes, n = i.length, o = 0; o < n; o++) i[o].dataIndex >= 0 && t.call(e, i[o], o) }, uL.eachEdge = function(t, e) { for (var i = this.edges, n = i.length, o = 0; o < n; o++) i[o].dataIndex >= 0 && i[o].node1.dataIndex >= 0 && i[o].node2.dataIndex >= 0 && t.call(e, i[o], o) }, uL.breadthFirstTraverse = function(t, e, i, n) { if (Zd.isInstance(e) || (e = this._nodesMap[Hd(e)]), e) { for (var o = "out" === i ? "outEdges" : "in" === i ? "inEdges" : "edges", a = 0; a < this.nodes.length; a++) this.nodes[a].__visited = !1; if (!t.call(n, e, null))
  6246. for (var r = [e]; r.length;)
  6247. for (var s = r.shift(), l = s[o], a = 0; a < l.length; a++) { var u = l[a],
  6248. h = u.node1 === s ? u.node2 : u.node1; if (!h.__visited) { if (t.call(n, h, s)) return;
  6249. r.push(h), h.__visited = !0 } } } }, uL.update = function() { for (var t = this.data, e = this.edgeData, i = this.nodes, n = this.edges, o = 0, a = i.length; o < a; o++) i[o].dataIndex = -1; for (var o = 0, a = t.count(); o < a; o++) i[t.getRawIndex(o)].dataIndex = o;
  6250. 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; o < a; o++) n[o].dataIndex = -1; for (var o = 0, a = e.count(); o < a; o++) n[e.getRawIndex(o)].dataIndex = o }, uL.clone = function() { for (var t = new lL(this._directed), e = this.nodes, i = this.edges, n = 0; n < e.length; n++) t.addNode(e[n].id, e[n].dataIndex); for (n = 0; n < i.length; n++) { var o = i[n];
  6251. t.addEdge(o.node1.id, o.node2.id, o.dataIndex) } return t }, Zd.prototype = { constructor: Zd, degree: function() { return this.edges.length }, inDegree: function() { return this.inEdges.length }, outDegree: function() { return this.outEdges.length }, getModel: function(t) { if (!(this.dataIndex < 0)) return this.hostGraph.data.getItemModel(this.dataIndex).getModel(t) } }, Ud.prototype.getModel = function(t) { if (!(this.dataIndex < 0)) return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(t) }; var hL = function(t, e) { return { getValue: function(i) { var n = this[t][e]; return n.get(n.getDimension(i || "value"), this.dataIndex) }, setVisual: function(i, n) { this.dataIndex >= 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) } } };
  6252. h(Zd, hL("hostGraph", "data")), h(Ud, hL("hostGraph", "edgeData")), lL.Node = Zd, lL.Edge = Ud, ji(Zd), ji(Ud); var cL = function(t, e, i, n, o) { for (var a = new lL(n), r = 0; r < t.length; r++) a.addNode(T(t[r].id, t[r].name, r), r); for (var s = [], u = [], h = 0, r = 0; r < e.length; r++) { var c = e[r],
  6253. d = c.source,
  6254. f = c.target;
  6255. a.addEdge(d, f, h) && (u.push(c), s.push(T(c.id, d + " > " + f)), h++) } var p, g = i.get("coordinateSystem"); if ("cartesian2d" === g || "polar" === g) p = dl(t, i);
  6256. else { var m = Ba.get(g),
  6257. v = m && "view" !== m.type ? m.dimensions || [] : [];
  6258. l(v, "value") < 0 && v.concat(["value"]); var y = oA(t, { coordDimensions: v });
  6259. (p = new eA(y, i)).initData(t) } var x = new eA(["value"], i); return x.initData(u, s), o && o(p, x), Sc({ mainData: p, struct: a, structAttr: "graph", datas: { node: p, edge: x }, datasAttr: { node: "data", edge: "edgeData" } }), a.update(), a },
  6260. dL = Gs({ type: "series.graph", init: function(t) { dL.superApply(this, "init", arguments), this.legendDataProvider = function() { return this._categoriesData }, this.fillDataTextStyle(t.edges || t.links), this._updateCategoriesData() }, mergeOption: function(t) { dL.superApply(this, "mergeOption", arguments), this.fillDataTextStyle(t.edges || t.links), this._updateCategoriesData() }, mergeDefaultAndTheme: function(t) { dL.superApply(this, "mergeDefaultAndTheme", arguments), Ci(t, ["edgeLabel"], ["show"]) }, getInitialData: function(t, e) { var i = t.edges || t.links || [],
  6261. n = t.data || t.nodes || [],
  6262. o = this; if (n && i) return cL(n, i, this, !0, function(t, i) {
  6263. function n(t) { return (t = this.parsePath(t)) && "label" === t[0] ? r : t && "emphasis" === t[0] && "label" === t[1] ? l : this.parentModel }
  6264. t.wrapMethod("getItemModel", function(t) { var e = o._categoriesModels[t.getShallow("category")]; return e && (e.parentModel = t.parentModel, t.parentModel = e), t }); var a = o.getModel("edgeLabel"),
  6265. r = new Lo({ label: a.option }, a.parentModel, e),
  6266. s = o.getModel("emphasis.edgeLabel"),
  6267. l = new Lo({ emphasis: { label: s.option } }, s.parentModel, e);
  6268. i.wrapMethod("getItemModel", function(t) { return t.customizeGetParent(n), t }) }).data }, getGraph: function() { return this.getData().graph }, getEdgeData: function() { return this.getGraph().edgeData }, getCategoriesData: function() { return this._categoriesData }, formatTooltip: function(t, e, i) { if ("edge" === i) { var n = this.getData(),
  6269. o = this.getDataParams(t, i),
  6270. a = n.graph.getEdgeByIndex(t),
  6271. r = n.getName(a.node1.dataIndex),
  6272. s = n.getName(a.node2.dataIndex),
  6273. l = []; return null != r && l.push(r), null != s && l.push(s), l = Qo(l.join(" > ")), o.value && (l += " : " + Qo(o.value)), l } return dL.superApply(this, "formatTooltip", arguments) }, _updateCategoriesData: function() { var t = f(this.option.categories || [], function(t) { return null != t.value ? t : a({ value: 0 }, t) }),
  6274. e = new eA(["value"], this);
  6275. 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 dL.superCall(this, "isAnimationEnabled") && !("force" === this.get("layout") && this.get("force.layoutAnimation")) }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: "view", legendHoverLink: !0, hoverAnimation: !0, layout: null, focusNodeAdjacency: !1, circular: { rotateLabel: !1 }, force: { initLayout: null, repulsion: [0, 50], gravity: .1, edgeLength: 30, layoutAnimation: !0 }, left: "center", top: "center", symbol: "circle", symbolSize: 10, edgeSymbol: ["none", "none"], edgeSymbolSize: 10, edgeLabel: { position: "middle" }, draggable: !1, roam: !1, center: null, zoom: 1, nodeScaleRatio: .6, label: { show: !1, formatter: "{b}" }, itemStyle: {}, lineStyle: { color: "#aaa", width: 1, curveness: 0, opacity: .5 }, emphasis: { label: { show: !0 } } } }),
  6276. fL = rM.prototype,
  6277. pL = lM.prototype,
  6278. gL = Fn({ 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) {
  6279. (Xd(e) ? fL : pL).buildPath(t, e) }, pointAt: function(t) { return Xd(this.shape) ? fL.pointAt.call(this, t) : pL.pointAt.call(this, t) }, tangentAt: function(t) { var e = this.shape,
  6280. i = Xd(e) ? [e.x2 - e.x1, e.y2 - e.y1] : pL.tangentAt.call(this, t); return q(i, i) } }),
  6281. mL = ["fromSymbol", "toSymbol"],
  6282. vL = $d.prototype;
  6283. vL.beforeUpdate = function() { var t = this,
  6284. e = t.childOfName("fromSymbol"),
  6285. i = t.childOfName("toSymbol"),
  6286. 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,
  6287. l = r.pointAt(0),
  6288. u = r.pointAt(s),
  6289. h = U([], u, l); if (q(h, h), e && (e.attr("position", l), c = r.tangentAt(0), e.attr("rotation", Math.PI / 2 - Math.atan2(c[1], c[0])), e.attr("scale", [o * s, o * s])), i) { i.attr("position", u); var c = r.tangentAt(1);
  6290. i.attr("rotation", -Math.PI / 2 - Math.atan2(c[1], c[0])), i.attr("scale", [o * s, o * s]) } if (!n.ignore) { n.attr("position", u); var d, f, p, g = 5 * o; if ("end" === n.__position) d = [h[0] * g + u[0], h[1] * g + u[1]], f = h[0] > .8 ? "left" : h[0] < -.8 ? "right" : "center", p = h[1] > .8 ? "top" : h[1] < -.8 ? "bottom" : "middle";
  6291. else if ("middle" === n.__position) { var m = s / 2,
  6292. v = [(c = r.tangentAt(m))[1], -c[0]],
  6293. y = r.pointAt(m);
  6294. v[1] > 0 && (v[0] = -v[0], v[1] = -v[1]), d = [y[0] + v[0] * g, y[1] + v[1] * g], f = "center", p = "bottom"; var x = -Math.atan2(c[1], c[0]);
  6295. u[0] < l[0] && (x = Math.PI + x), n.attr("rotation", x) } else d = [-h[0] * g + l[0], -h[1] * g + l[1]], f = h[0] > .8 ? "right" : h[0] < -.8 ? "left" : "center", p = h[1] > .8 ? "bottom" : h[1] < -.8 ? "top" : "middle";
  6296. n.attr({ style: { textVerticalAlign: n.__verticalAlign || p, textAlign: n.__textAlign || f }, position: d, scale: [o, o] }) } } } }, vL._createLine = function(t, e, i) { var n = t.hostModel,
  6297. o = qd(t.getItemLayout(e));
  6298. o.shape.percent = 0, So(o, { shape: { percent: 1 } }, n, e), this.add(o); var a = new qS({ name: "label" });
  6299. this.add(a), d(mL, function(i) { var n = Yd(i, t, e);
  6300. this.add(n), this[jd(i)] = t.getItemVisual(e, i) }, this), this._updateCommonStl(t, e, i) }, vL.updateData = function(t, e, i) { var n = t.hostModel,
  6301. o = this.childOfName("line"),
  6302. a = t.getItemLayout(e),
  6303. r = { shape: {} };
  6304. Kd(r.shape, a), bo(o, r, n, e), d(mL, function(i) { var n = t.getItemVisual(e, i),
  6305. o = jd(i); if (this[o] !== n) { this.remove(this.childOfName(i)); var a = Yd(i, t, e);
  6306. this.add(a) }
  6307. this[o] = n }, this), this._updateCommonStl(t, e, i) }, vL._updateCommonStl = function(t, e, i) { var n = t.hostModel,
  6308. o = this.childOfName("line"),
  6309. a = i && i.lineStyle,
  6310. s = i && i.hoverLineStyle,
  6311. l = i && i.labelModel,
  6312. u = i && i.hoverLabelModel; if (!i || t.hasItemOption) { var h = t.getItemModel(e);
  6313. a = h.getModel("lineStyle").getLineStyle(), s = h.getModel("emphasis.lineStyle").getLineStyle(), l = h.getModel("label"), u = h.getModel("emphasis.label") } var c = t.getItemVisual(e, "color"),
  6314. f = D(t.getItemVisual(e, "opacity"), a.opacity, 1);
  6315. o.useStyle(r({ strokeNoScale: !0, fill: "none", stroke: c, opacity: f }, a)), o.hoverStyle = s, d(mL, function(t) { var e = this.childOfName(t);
  6316. e && (e.setColor(c), e.setStyle({ opacity: f })) }, this); var p, g, m = l.getShallow("show"),
  6317. v = u.getShallow("show"),
  6318. y = this.childOfName("label"); if ((m || v) && (p = c || "#000", null == (g = n.getFormattedLabel(e, "normal", t.dataType)))) { var x = n.getRawValue(e);
  6319. g = null == x ? t.getName(e) : isFinite(x) ? zo(x) : x } var _ = m ? g : null,
  6320. w = v ? A(n.getFormattedLabel(e, "emphasis", t.dataType), g) : null,
  6321. b = y.style;
  6322. null == _ && null == w || (fo(y.style, l, { text: _ }, { autoColor: p }), y.__textAlign = b.textAlign, y.__verticalAlign = b.textVerticalAlign, y.__position = l.get("position") || "middle"), y.hoverStyle = null != w ? { text: w, textFill: u.getTextColor(!0), fontStyle: u.getShallow("fontStyle"), fontWeight: u.getShallow("fontWeight"), fontSize: u.getShallow("fontSize"), fontFamily: u.getShallow("fontFamily") } : { text: null }, y.ignore = !m && !v, uo(this) }, vL.highlight = function() { this.trigger("emphasis") }, vL.downplay = function() { this.trigger("normal") }, vL.updateLayout = function(t, e) { this.setLinePoints(t.getItemLayout(e)) }, vL.setLinePoints = function(t) { var e = this.childOfName("line");
  6323. Kd(e.shape, t), e.dirty() }, u($d, Zw); var yL = Jd.prototype;
  6324. yL.isPersistent = function() { return !0 }, yL.updateData = function(t) { var e = this,
  6325. i = e.group,
  6326. n = e._lineData;
  6327. e._lineData = t, n || i.removeAll(); var o = ef(t);
  6328. t.diff(n).add(function(i) { Qd(e, t, i, o) }).update(function(i, a) { tf(e, n, t, a, i, o) }).remove(function(t) { i.remove(n.getItemGraphicEl(t)) }).execute() }, yL.updateLayout = function() { var t = this._lineData;
  6329. t && t.eachItemGraphicEl(function(e, i) { e.updateLayout(t, i) }, this) }, yL.incrementalPrepareUpdate = function(t) { this._seriesScope = ef(t), this._lineData = null, this.group.removeAll() }, yL.incrementalUpdate = function(t, e) { for (var i = t.start; i < t.end; i++)
  6330. if (of(e.getItemLayout(i))) { var n = new this._ctor(e, i, this._seriesScope);
  6331. n.traverse(function(t) { t.isGroup || (t.incremental = t.useHoverLayer = !0) }), this.group.add(n), e.setItemGraphicEl(i, n) } }, yL.remove = function() { this._clearIncremental(), this._incremental = null, this.group.removeAll() }, yL._clearIncremental = function() { var t = this._incremental;
  6332. t && t.clearDisplaybles() }; var xL = [],
  6333. _L = [],
  6334. wL = [],
  6335. bL = rn,
  6336. SL = iw,
  6337. ML = Math.abs,
  6338. IL = function(t, e) {
  6339. function i(t) { var e = t.getVisual("symbolSize"); return e instanceof Array && (e = (e[0] + e[1]) / 2), e } var n = [],
  6340. o = hn,
  6341. a = [
  6342. [],
  6343. [],
  6344. []
  6345. ],
  6346. r = [
  6347. [],
  6348. []
  6349. ],
  6350. s = [];
  6351. e /= 2, t.eachEdge(function(t, l) { var u = t.getLayout(),
  6352. h = t.getVisual("fromSymbol"),
  6353. c = t.getVisual("toSymbol");
  6354. u.__original || (u.__original = [F(u[0]), F(u[1])], u[2] && u.__original.push(F(u[2]))); var d = u.__original; if (null != u[2]) { if (G(a[0], d[0]), G(a[1], d[2]), G(a[2], d[1]), h && "none" !== h) { var f = i(t.node1),
  6355. p = af(a, d[0], f * e);
  6356. o(a[0][0], a[1][0], a[2][0], p, n), a[0][0] = n[3], a[1][0] = n[4], o(a[0][1], a[1][1], a[2][1], p, n), a[0][1] = n[3], a[1][1] = n[4] } if (c && "none" !== c) { var f = i(t.node2),
  6357. p = af(a, d[1], f * e);
  6358. o(a[0][0], a[1][0], a[2][0], p, n), a[1][0] = n[1], a[2][0] = n[2], o(a[0][1], a[1][1], a[2][1], p, n), a[1][1] = n[1], a[2][1] = n[2] }
  6359. G(u[0], a[0]), G(u[1], a[2]), G(u[2], a[1]) } else { if (G(r[0], d[0]), G(r[1], d[1]), U(s, r[1], r[0]), q(s, s), h && "none" !== h) { f = i(t.node1);
  6360. Z(r[0], r[0], s, f * e) } if (c && "none" !== c) { f = i(t.node2);
  6361. Z(r[1], r[1], s, -f * e) }
  6362. G(u[0], r[0]), G(u[1], r[1]) } }) },
  6363. TL = ["itemStyle", "opacity"],
  6364. AL = ["lineStyle", "opacity"];
  6365. Fs({ type: "graph", init: function(t, e) { var i = new Su,
  6366. n = new Jd,
  6367. o = this.group;
  6368. this._controller = new ac(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 = t.coordinateSystem;
  6369. this._model = t, this._nodeScaleRatio = t.get("nodeScaleRatio"); var o = this._symbolDraw,
  6370. a = this._lineDraw,
  6371. r = this.group; if ("view" === n.type) { var s = { position: n.position, scale: n.scale };
  6372. this._firstRender ? r.attr(s) : bo(r, s, t) }
  6373. IL(t.getGraph(), this._getNodeGlobalScale(t)); var l = t.getData();
  6374. o.updateData(l); var u = t.getEdgeData();
  6375. a.updateData(u), this._updateNodeAndLinkScale(), this._updateController(t, e, i), clearTimeout(this._layoutTimeout); var h = t.forceLayout,
  6376. c = t.get("force.layoutAnimation");
  6377. h && this._startForceLayoutIteration(h, c), l.eachItemGraphicEl(function(e, n) { var o = l.getItemModel(n);
  6378. e.off("drag").off("dragend"); var a = o.get("draggable");
  6379. a && e.on("drag", function() { h && (h.warmUp(), !this._layouting && this._startForceLayoutIteration(h, c), h.setFixed(n), l.setItemLayout(n, e.position)) }, this).on("dragend", function() { h && h.setUnfixed(n) }, this), e.setDraggable(a && h), e.off("mouseover", e.__focusNodeAdjacency), e.off("mouseout", e.__unfocusNodeAdjacency), o.get("focusNodeAdjacency") && (e.on("mouseover", e.__focusNodeAdjacency = function() { i.dispatchAction({ type: "focusNodeAdjacency", seriesId: t.id, dataIndex: e.dataIndex }) }), e.on("mouseout", e.__unfocusNodeAdjacency = function() { i.dispatchAction({ type: "unfocusNodeAdjacency", seriesId: t.id }) })) }, this), l.graph.eachEdge(function(e) { var n = e.getGraphicEl();
  6380. n.off("mouseover", n.__focusNodeAdjacency), n.off("mouseout", n.__unfocusNodeAdjacency), e.getModel().get("focusNodeAdjacency") && (n.on("mouseover", n.__focusNodeAdjacency = function() { i.dispatchAction({ type: "focusNodeAdjacency", seriesId: t.id, edgeDataIndex: e.dataIndex }) }), n.on("mouseout", n.__unfocusNodeAdjacency = function() { i.dispatchAction({ type: "unfocusNodeAdjacency", seriesId: t.id }) })) }); var d = "circular" === t.get("layout") && t.get("circular.rotateLabel"),
  6381. f = l.getLayout("cx"),
  6382. p = l.getLayout("cy");
  6383. l.eachItemGraphicEl(function(t, e) { var i = t.getSymbolPath(); if (d) { var n = l.getItemLayout(e),
  6384. o = Math.atan2(n[1] - p, n[0] - f);
  6385. o < 0 && (o = 2 * Math.PI + o); var a = n[0] < f;
  6386. a && (o -= Math.PI); var r = a ? "left" : "right";
  6387. i.setStyle({ textRotation: -o, textPosition: r, textOrigin: "center" }), i.hoverStyle && (i.hoverStyle.textPosition = r) } else i.setStyle({ textRotation: 0 }) }), this._firstRender = !1 }, dispose: function() { this._controller && this._controller.dispose(), this._controllerHost = {} }, focusNodeAdjacency: function(t, e, i, n) { var o = this._model.getData().graph,
  6388. a = n.dataIndex,
  6389. r = n.edgeDataIndex,
  6390. s = o.getNodeByIndex(a),
  6391. l = o.getEdgeByIndex(r);
  6392. (s || l) && (o.eachNode(function(t) { sf(t, TL, .1) }), o.eachEdge(function(t) { sf(t, AL, .1) }), s && (lf(s, TL), d(s.edges, function(t) { t.dataIndex < 0 || (lf(t, AL), lf(t.node1, TL), lf(t.node2, TL)) })), l && (lf(l, AL), lf(l.node1, TL), lf(l.node2, TL))) }, unfocusNodeAdjacency: function(t, e, i, n) { var o = this._model.getData().graph;
  6393. o.eachNode(function(t) { sf(t, TL) }), o.eachEdge(function(t) { sf(t, AL) }) }, _startForceLayoutIteration: function(t, e) { var i = this;! function n() { t.step(function(t) { i.updateLayout(i._model), (i._layouting = !t) && (e ? i._layoutTimeout = setTimeout(n, 16) : n()) }) }() }, _updateController: function(t, e, i) { var n = this._controller,
  6394. o = this._controllerHost,
  6395. a = this.group;
  6396. n.setPointerChecker(function(e, n, o) { var r = a.getBoundingRect(); return r.applyTransform(a.transform), r.contain(n, o) && !mc(e, i, t) }), "view" === t.coordinateSystem.type ? (n.enable(t.get("roam")), o.zoomLimit = t.get("scaleLimit"), o.zoom = t.coordinateSystem.getZoom(), n.off("pan").off("zoom").on("pan", function(e) { pc(o, e.dx, e.dy), i.dispatchAction({ seriesId: t.id, type: "graphRoam", dx: e.dx, dy: e.dy }) }).on("zoom", function(e) { gc(o, e.scale, e.originX, e.originY), i.dispatchAction({ seriesId: t.id, type: "graphRoam", zoom: e.scale, originX: e.originX, originY: e.originY }), this._updateNodeAndLinkScale(), IL(t.getGraph(), this._getNodeGlobalScale(t)), this._lineDraw.updateLayout() }, this)) : n.disable() }, _updateNodeAndLinkScale: function() { var t = this._model,
  6397. e = t.getData(),
  6398. i = this._getNodeGlobalScale(t),
  6399. n = [i, i];
  6400. e.eachItemGraphicEl(function(t, e) { t.attr("scale", n) }) }, _getNodeGlobalScale: function(t) { var e = t.coordinateSystem; if ("view" !== e.type) return 1; var i = this._nodeScaleRatio,
  6401. n = e.scale,
  6402. o = n && n[0] || 1; return ((e.getZoom() - 1) * i + 1) / o }, updateLayout: function(t) { IL(t.getGraph(), this._getNodeGlobalScale(t)), this._symbolDraw.updateLayout(), this._lineDraw.updateLayout() }, remove: function(t, e) { this._symbolDraw && this._symbolDraw.remove(), this._lineDraw && this._lineDraw.remove() } }), Ps({ type: "focusNodeAdjacency", event: "focusNodeAdjacency", update: "series:focusNodeAdjacency" }, function() {}), Ps({ type: "unfocusNodeAdjacency", event: "unfocusNodeAdjacency", update: "series:unfocusNodeAdjacency" }, function() {}), Ps({ type: "graphRoam", event: "graphRoam", update: "none" }, function(t, e) { e.eachComponent({ mainType: "series", query: t }, function(e) { var i = wc(e.coordinateSystem, t);
  6403. e.setCenter && e.setCenter(i.center), e.setZoom && e.setZoom(i.zoom) }) }); var DL = Z;
  6404. ks(function(t) { var e = t.findComponents({ mainType: "legend" });
  6405. e && e.length && t.eachSeriesByType("graph", function(t) { var i = t.getCategoriesData(),
  6406. n = t.getGraph().data,
  6407. o = i.mapArray(i.getName);
  6408. n.filterSelf(function(t) { var i = n.getItemModel(t).getShallow("category"); if (null != i) { "number" == typeof i && (i = o[i]); for (var a = 0; a < e.length; a++)
  6409. if (!e[a].isSelected(i)) return !1 } return !0 }) }, this) }), Es(hD("graph", "circle", null)), Es(function(t) { var e = {};
  6410. t.eachSeriesByType("graph", function(t) { var i = t.getCategoriesData(),
  6411. n = t.getData(),
  6412. o = {};
  6413. i.each(function(n) { var a = i.getName(n);
  6414. o["ec-" + a] = n; var r = i.getItemModel(n).get("itemStyle.color") || t.getColorFromPalette(a, e);
  6415. i.setItemVisual(n, "color", r) }), i.count() && n.each(function(t) { var e = n.getItemModel(t).getShallow("category");
  6416. null != e && ("string" == typeof e && (e = o["ec-" + e]), n.getItemVisual(t, "color", !0) || n.setItemVisual(t, "color", i.getItemVisual(e, "color"))) }) }) }), Es(function(t) { t.eachSeriesByType("graph", function(t) { var e = t.getGraph(),
  6417. i = t.getEdgeData(),
  6418. n = uf(t.get("edgeSymbol")),
  6419. o = uf(t.get("edgeSymbolSize")),
  6420. a = "lineStyle.color".split("."),
  6421. r = "lineStyle.opacity".split(".");
  6422. i.setVisual("fromSymbol", n && n[0]), i.setVisual("toSymbol", n && n[1]), i.setVisual("fromSymbolSize", o && o[0]), i.setVisual("toSymbolSize", o && o[1]), i.setVisual("color", t.get(a)), i.setVisual("opacity", t.get(r)), i.each(function(t) { var n = i.getItemModel(t),
  6423. o = e.getEdgeByIndex(t),
  6424. s = uf(n.getShallow("symbol", !0)),
  6425. l = uf(n.getShallow("symbolSize", !0)),
  6426. u = n.get(a),
  6427. h = n.get(r); switch (u) {
  6428. case "source":
  6429. u = o.node1.getVisual("color"); break;
  6430. case "target":
  6431. u = o.node2.getVisual("color") }
  6432. s[0] && o.setVisual("fromSymbol", s[0]), s[1] && o.setVisual("toSymbol", s[1]), l[0] && o.setVisual("fromSymbolSize", l[0]), l[1] && o.setVisual("toSymbolSize", l[1]), o.setVisual("color", u), o.setVisual("opacity", h) }) }) }), Os(function(t, e) { t.eachSeriesByType("graph", function(t) { var e = t.get("layout"),
  6433. i = t.coordinateSystem; if (i && "view" !== i.type) { var n = t.getData(),
  6434. o = [];
  6435. d(i.dimensions, function(t) { o = o.concat(n.mapDimension(t, !0)) }); for (var a = 0; a < n.count(); a++) { for (var r = [], s = !1, l = 0; l < o.length; l++) { var u = n.get(o[l], a);
  6436. isNaN(u) || (s = !0), r.push(u) }
  6437. s ? n.setItemLayout(a, i.dataToPoint(r)) : n.setItemLayout(a, [NaN, NaN]) }
  6438. cf(n.graph) } else e && "none" !== e || hf(t) }) }), Os(function(t) { t.eachSeriesByType("graph", function(t) { "circular" === t.get("layout") && df(t) }) }), Os(function(t) { t.eachSeriesByType("graph", function(t) { var e = t.coordinateSystem; if (!e || "view" === e.type)
  6439. if ("force" === t.get("layout")) { var i = t.preservedPoints || {},
  6440. n = t.getGraph(),
  6441. o = n.data,
  6442. a = n.edgeData,
  6443. r = t.getModel("force"),
  6444. s = r.get("initLayout");
  6445. t.preservedPoints ? o.each(function(t) { var e = o.getId(t);
  6446. o.setItemLayout(t, i[e] || [NaN, NaN]) }) : s && "none" !== s ? "circular" === s && df(t) : hf(t); var l = o.getDataExtent("value"),
  6447. u = a.getDataExtent("value"),
  6448. h = r.get("repulsion"),
  6449. c = r.get("edgeLength");
  6450. y(h) || (h = [h, h]), y(c) || (c = [c, c]), c = [c[1], c[0]]; var d = o.mapArray("value", function(t, e) { var i = o.getItemLayout(e),
  6451. n = Eo(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 } }),
  6452. f = a.mapArray("value", function(t, e) { var i = n.getEdgeByIndex(e),
  6453. o = Eo(t, u, c); return isNaN(o) && (o = (c[0] + c[1]) / 2), { n1: d[i.node1.dataIndex], n2: d[i.node2.dataIndex], d: o, curveness: i.getModel().get("lineStyle.curveness") || 0 } }),
  6454. p = (e = t.coordinateSystem).getBoundingRect(),
  6455. g = ff(d, f, { rect: p, gravity: r.get("gravity") }),
  6456. m = g.step;
  6457. g.step = function(t) { for (var e = 0, a = d.length; e < a; e++) d[e].fixed && G(d[e].p, n.getNodeByIndex(e).getLayout());
  6458. m(function(e, a, r) { for (var s = 0, l = e.length; s < l; 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; s < l; s++) { var u = a[s],
  6459. h = n.getEdgeByIndex(s),
  6460. c = u.n1.p,
  6461. d = u.n2.p,
  6462. f = h.getLayout();
  6463. (f = f ? f.slice() : [])[0] = f[0] || [], f[1] = f[1] || [], G(f[0], c), G(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) }
  6464. t && t(r) }) }, t.forceLayout = g, t.preservedPoints = i, g.step() } else t.forceLayout = null }) }), Ns("graphView", { create: function(t, e) { var i = []; return t.eachSeriesByType("graph", function(t) { var n = t.get("coordinateSystem"); if (!n || "view" === n) { var o = t.getData(),
  6465. a = [],
  6466. r = [];
  6467. dn(o.mapArray(function(t) { var e = o.getItemModel(t); return [+e.get("x"), +e.get("y")] }), a, r), r[0] - a[0] == 0 && (r[0] += 1, a[0] -= 1), r[1] - a[1] == 0 && (r[1] += 1, a[1] -= 1); var s = (r[0] - a[0]) / (r[1] - a[1]),
  6468. l = pf(t, e, s);
  6469. isNaN(s) && (a = [l.x, l.y], r = [l.x + l.width, l.y + l.height]); var u = r[0] - a[0],
  6470. h = r[1] - a[1],
  6471. c = l.width,
  6472. d = l.height,
  6473. f = t.coordinateSystem = new Uh;
  6474. f.zoomLimit = t.get("scaleLimit"), f.setBoundingRect(a[0], a[1], u, h), f.setViewRect(l.x, l.y, c, d), f.setCenter(t.get("center")), f.setZoom(t.get("zoom")), i.push(f) } }), i } });
  6475. OI.extend({ type: "series.gauge", getInitialData: function(t, e) { var i = t.data || []; return y(i) || (i = [i]), t.data = i, WD(this, ["value"]) }, defaultOption: { zlevel: 0, z: 2, center: ["50%", "50%"], legendHoverLink: !0, radius: "75%", startAngle: 225, endAngle: -45, clockwise: !0, min: 0, max: 100, splitNumber: 10, axisLine: { show: !0, lineStyle: { color: [
  6476. [.2, "#91c7ae"],
  6477. [.8, "#63869e"],
  6478. [1, "#c23531"]
  6479. ], width: 30 } }, splitLine: { show: !0, length: 30, lineStyle: { color: "#eee", width: 2, type: "solid" } }, axisTick: { show: !0, splitNumber: 5, length: 8, lineStyle: { color: "#eee", width: 1, type: "solid" } }, axisLabel: { show: !0, distance: 5, color: "auto" }, pointer: { show: !0, length: "80%", width: 8 }, itemStyle: { color: "auto" }, title: { show: !0, offsetCenter: [0, "-40%"], color: "#333", fontSize: 15 }, detail: { show: !0, backgroundColor: "rgba(0,0,0,0)", borderWidth: 0, borderColor: "#ccc", width: 100, height: null, padding: [5, 10], offsetCenter: [0, "40%"], color: "auto", fontSize: 30 } } }); var CL = kn.extend({ type: "echartsGaugePointer", shape: { angle: 0, width: 10, r: 10, x: 0, y: 0 }, buildPath: function(t, e) { var i = Math.cos,
  6480. n = Math.sin,
  6481. o = e.r,
  6482. a = e.width,
  6483. r = e.angle,
  6484. s = e.x - i(r) * a * (a >= o / 3 ? 1 : 2),
  6485. l = e.y - n(r) * a * (a >= o / 3 ? 1 : 2);
  6486. 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) } }),
  6487. LL = 2 * Math.PI,
  6488. kL = (Mr.extend({ type: "gauge", render: function(t, e, i) { this.group.removeAll(); var n = t.get("axisLine.lineStyle.color"),
  6489. o = gf(t, i);
  6490. this._renderMain(t, e, i, n, o) }, dispose: function() {}, _renderMain: function(t, e, i, n, o) { for (var a = this.group, r = t.getModel("axisLine").getModel("lineStyle"), s = t.get("clockwise"), l = -t.get("startAngle") / 180 * Math.PI, u = -t.get("endAngle") / 180 * Math.PI, h = (u - l) % LL, c = l, d = r.get("width"), f = 0; f < n.length; f++) { var p = Math.min(Math.max(n[f][0], 0), 1),
  6491. g = new QS({ shape: { startAngle: c, endAngle: u = l + h * p, cx: o.cx, cy: o.cy, clockwise: s, r0: o.r - d, r: o.r }, silent: !0 });
  6492. g.setStyle({ fill: n[f][1] }), g.setStyle(r.getLineStyle(["color", "borderWidth", "borderColor"])), a.add(g), c = u } var m = function(t) { if (t <= 0) return n[0][1]; for (var e = 0; e < n.length; e++)
  6493. if (n[e][0] >= t && (0 === e ? 0 : n[e - 1][0]) < t) return n[e][1];
  6494. return n[e - 1][1] }; if (!s) { var v = l;
  6495. l = u, u = v }
  6496. this._renderTicks(t, e, i, m, o, l, u, s), this._renderPointer(t, e, i, m, o, l, u, s), this._renderTitle(t, e, i, m, o), this._renderDetail(t, e, i, m, o) }, _renderTicks: function(t, e, i, n, o, a, r, s) { for (var l = this.group, u = o.cx, h = o.cy, c = o.r, d = +t.get("min"), f = +t.get("max"), p = t.getModel("splitLine"), g = t.getModel("axisTick"), m = t.getModel("axisLabel"), v = t.get("splitNumber"), y = g.get("splitNumber"), x = Ro(p.get("length"), c), _ = Ro(g.get("length"), c), w = a, b = (r - a) / v, S = b / y, M = p.getModel("lineStyle").getLineStyle(), I = g.getModel("lineStyle").getLineStyle(), T = 0; T <= v; T++) { var A = Math.cos(w),
  6497. D = Math.sin(w); if (p.get("show")) { var C = new rM({ shape: { x1: A * c + u, y1: D * c + h, x2: A * (c - x) + u, y2: D * (c - x) + h }, style: M, silent: !0 }); "auto" === M.stroke && C.setStyle({ stroke: n(T / v) }), l.add(C) } if (m.get("show")) { var L = mf(zo(T / v * (f - d) + d), m.get("formatter")),
  6498. k = m.get("distance"),
  6499. P = n(T / v);
  6500. l.add(new qS({ style: fo({}, m, { text: L, x: A * (c - x - k) + u, y: D * (c - x - k) + h, textVerticalAlign: D < -.4 ? "top" : D > .4 ? "bottom" : "middle", textAlign: A < -.4 ? "left" : A > .4 ? "right" : "center" }, { autoColor: P }), silent: !0 })) } if (g.get("show") && T !== v) { for (var N = 0; N <= y; N++) { var A = Math.cos(w),
  6501. D = Math.sin(w),
  6502. O = new rM({ shape: { x1: A * c + u, y1: D * c + h, x2: A * (c - _) + u, y2: D * (c - _) + h }, silent: !0, style: I }); "auto" === I.stroke && O.setStyle({ stroke: n((T + N / y) / v) }), l.add(O), w += S }
  6503. w -= S } else w += b } }, _renderPointer: function(t, e, i, n, o, a, r, s) { var l = this.group,
  6504. u = this._data; if (t.get("pointer.show")) { var h = [+t.get("min"), +t.get("max")],
  6505. c = [a, r],
  6506. d = t.getData(),
  6507. f = d.mapDimension("value");
  6508. d.diff(u).add(function(e) { var i = new CL({ shape: { angle: a } });
  6509. So(i, { shape: { angle: Eo(d.get(f, e), h, c, !0) } }, t), l.add(i), d.setItemGraphicEl(e, i) }).update(function(e, i) { var n = u.getItemGraphicEl(i);
  6510. bo(n, { shape: { angle: Eo(d.get(f, e), h, c, !0) } }, t), l.add(n), d.setItemGraphicEl(e, n) }).remove(function(t) { var e = u.getItemGraphicEl(t);
  6511. l.remove(e) }).execute(), d.eachItemGraphicEl(function(t, e) { var i = d.getItemModel(e),
  6512. a = i.getModel("pointer");
  6513. t.setShape({ x: o.cx, y: o.cy, width: Ro(a.get("width"), o.r), r: Ro(a.get("length"), o.r) }), t.useStyle(i.getModel("itemStyle").getItemStyle()), "auto" === t.style.fill && t.setStyle("fill", n(Eo(d.get(f, e), h, [0, 1], !0))), uo(t, i.getModel("emphasis.itemStyle").getItemStyle()) }), this._data = d } else u && u.eachItemGraphicEl(function(t) { l.remove(t) }) }, _renderTitle: function(t, e, i, n, o) { var a = t.getData(),
  6514. r = a.mapDimension("value"),
  6515. s = t.getModel("title"); if (s.get("show")) { var l = s.get("offsetCenter"),
  6516. u = o.cx + Ro(l[0], o.r),
  6517. h = o.cy + Ro(l[1], o.r),
  6518. c = +t.get("min"),
  6519. d = +t.get("max"),
  6520. f = n(Eo(t.getData().get(r, 0), [c, d], [0, 1], !0));
  6521. this.group.add(new qS({ silent: !0, style: fo({}, s, { x: u, y: h, text: a.getName(0), textAlign: "center", textVerticalAlign: "middle" }, { autoColor: f, forceRich: !0 }) })) } }, _renderDetail: function(t, e, i, n, o) { var a = t.getModel("detail"),
  6522. r = +t.get("min"),
  6523. s = +t.get("max"); if (a.get("show")) { var l = a.get("offsetCenter"),
  6524. u = o.cx + Ro(l[0], o.r),
  6525. h = o.cy + Ro(l[1], o.r),
  6526. c = Ro(a.get("width"), o.r),
  6527. d = Ro(a.get("height"), o.r),
  6528. f = t.getData(),
  6529. p = f.get(f.mapDimension("value"), 0),
  6530. g = n(Eo(p, [r, s], [0, 1], !0));
  6531. this.group.add(new qS({ silent: !0, style: fo({}, a, { x: u, y: h, text: mf(p, a.get("formatter")), textWidth: isNaN(c) ? null : c, textHeight: isNaN(d) ? null : d, textAlign: "center", textVerticalAlign: "middle" }, { autoColor: g, forceRich: !0 }) })) } } }), Gs({ type: "series.funnel", init: function(t) { kL.superApply(this, "init", arguments), this.legendDataProvider = function() { return this.getRawData() }, this._defaultLabelLine(t) }, getInitialData: function(t, e) { return WD(this, ["value"]) }, _defaultLabelLine: function(t) { Ci(t, "labelLine", ["show"]); var e = t.labelLine,
  6532. i = t.emphasis.labelLine;
  6533. e.show = e.show && t.label.show, i.show = i.show && t.emphasis.label.show }, getDataParams: function(t) { var e = this.getData(),
  6534. i = kL.superCall(this, "getDataParams", t),
  6535. n = e.mapDimension("value"),
  6536. o = e.getSum(n); return i.percent = o ? +(e.get(n, t) / o * 100).toFixed(2) : 0, i.$vars.push("percent"), i }, defaultOption: { zlevel: 0, z: 2, legendHoverLink: !0, left: 80, top: 60, right: 80, bottom: 60, minSize: "0%", maxSize: "100%", sort: "descending", gap: 0, funnelAlign: "center", label: { show: !0, position: "outer" }, labelLine: { show: !0, length: 20, lineStyle: { width: 1, type: "solid" } }, itemStyle: { borderColor: "#fff", borderWidth: 1 }, emphasis: { label: { show: !0 } } } })),
  6537. PL = vf.prototype,
  6538. NL = ["itemStyle", "opacity"];
  6539. PL.updateData = function(t, e, i) { var n = this.childAt(0),
  6540. o = t.hostModel,
  6541. a = t.getItemModel(e),
  6542. s = t.getItemLayout(e),
  6543. l = t.getItemModel(e).get(NL);
  6544. l = null == l ? 1 : l, n.useStyle({}), i ? (n.setShape({ points: s.points }), n.setStyle({ opacity: 0 }), So(n, { style: { opacity: l } }, o, e)) : bo(n, { style: { opacity: l }, shape: { points: s.points } }, o, e); var u = a.getModel("itemStyle"),
  6545. h = t.getItemVisual(e, "color");
  6546. n.setStyle(r({ lineJoin: "round", fill: h }, u.getItemStyle(["opacity"]))), n.hoverStyle = u.getModel("emphasis").getItemStyle(), this._updateLabel(t, e), uo(this) }, PL._updateLabel = function(t, e) { var i = this.childAt(1),
  6547. n = this.childAt(2),
  6548. o = t.hostModel,
  6549. a = t.getItemModel(e),
  6550. r = t.getItemLayout(e).label,
  6551. s = t.getItemVisual(e, "color");
  6552. bo(i, { shape: { points: r.linePoints || r.linePoints } }, o, e), bo(n, { style: { x: r.x, y: r.y } }, o, e), n.attr({ rotation: r.rotation, origin: [r.x, r.y], z2: 10 }); var l = a.getModel("label"),
  6553. u = a.getModel("emphasis.label"),
  6554. h = a.getModel("labelLine"),
  6555. c = a.getModel("emphasis.labelLine"),
  6556. s = t.getItemVisual(e, "color");
  6557. co(n.style, n.hoverStyle = {}, l, u, { labelFetcher: t.hostModel, labelDataIndex: e, defaultText: t.getName(e), autoColor: s, useInsideStyle: !!r.inside }, { textAlign: r.textAlign, textVerticalAlign: r.verticalAlign }), n.ignore = n.normalIgnore = !l.get("show"), n.hoverIgnore = !u.get("show"), i.ignore = i.normalIgnore = !h.get("show"), i.hoverIgnore = !c.get("show"), i.setStyle({ stroke: s }), i.setStyle(h.getModel("lineStyle").getLineStyle()), i.hoverStyle = c.getModel("lineStyle").getLineStyle() }, u(vf, Zw);
  6558. Mr.extend({ type: "funnel", render: function(t, e, i) { var n = t.getData(),
  6559. o = this._data,
  6560. a = this.group;
  6561. n.diff(o).add(function(t) { var e = new vf(n, t);
  6562. n.setItemGraphicEl(t, e), a.add(e) }).update(function(t, e) { var i = o.getItemGraphicEl(e);
  6563. i.updateData(n, t), a.add(i), n.setItemGraphicEl(t, i) }).remove(function(t) { var e = o.getItemGraphicEl(t);
  6564. a.remove(e) }).execute(), this._data = n }, remove: function() { this.group.removeAll(), this._data = null }, dispose: function() {} });
  6565. Es(jD("funnel")), Os(function(t, e, i) { t.eachSeriesByType("funnel", function(t) { var i = t.getData(),
  6566. n = i.mapDimension("value"),
  6567. o = t.get("sort"),
  6568. a = yf(t, e),
  6569. r = xf(i, o),
  6570. s = [Ro(t.get("minSize"), a.width), Ro(t.get("maxSize"), a.width)],
  6571. l = i.getDataExtent(n),
  6572. u = t.get("min"),
  6573. h = t.get("max");
  6574. null == u && (u = Math.min(l[0], 0)), null == h && (h = l[1]); var c = t.get("funnelAlign"),
  6575. d = t.get("gap"),
  6576. f = (a.height - d * (i.count() - 1)) / i.count(),
  6577. p = a.y,
  6578. g = function(t, e) { var o, r = Eo(i.get(n, t) || 0, [u, h], s, !0); switch (c) {
  6579. case "left":
  6580. o = a.x; break;
  6581. case "center":
  6582. o = a.x + (a.width - r) / 2; break;
  6583. case "right":
  6584. o = a.x + a.width - r } return [
  6585. [o, e],
  6586. [o + r, e]
  6587. ] }; "ascending" === o && (f = -f, d = -d, p += a.height, r = r.reverse()); for (var m = 0; m < r.length; m++) { var v = r[m],
  6588. y = r[m + 1],
  6589. x = i.getItemModel(v).get("itemStyle.height");
  6590. null == x ? x = f : (x = Ro(x, a.height), "ascending" === o && (x = -x)); var _ = g(v, p),
  6591. w = g(y, p + x);
  6592. p += x + d, i.setItemLayout(v, { points: _.concat(w.slice().reverse()) }) }
  6593. _f(i) }) }), ks($D("funnel")); var OL = function(t, e, i, n, o) { HA.call(this, t, e, i), this.type = n || "value", this.axisIndex = o };
  6594. OL.prototype = { constructor: OL, model: null, isHorizontal: function() { return "horizontal" !== this.coordinateSystem.getModel().get("layout") } }, u(OL, HA); var EL = function(t, e, i, n, o, a) { e[0] = Mf(e[0], i), e[1] = Mf(e[1], i), t = t || 0; var r = i[1] - i[0];
  6595. null != o && (o = Mf(o, [0, r])), null != a && (a = Math.max(a, null != o ? o : 0)), "all" === n && (o = a = Math.abs(e[1] - e[0]), n = 0); var s = Sf(e, n);
  6596. e[n] += t; var l = o || 0,
  6597. u = i.slice();
  6598. s.sign < 0 ? u[0] += l : u[1] -= l, e[n] = Mf(e[n], u);
  6599. h = Sf(e, n);
  6600. null != o && (h.sign !== s.sign || h.span < o) && (e[1 - n] = e[n] + s.sign * o); var h = Sf(e, n); return null != a && h.span > a && (e[1 - n] = e[n] + h.sign * a), e },
  6601. RL = d,
  6602. zL = Math.min,
  6603. BL = Math.max,
  6604. VL = Math.floor,
  6605. GL = Math.ceil,
  6606. FL = zo,
  6607. WL = Math.PI;
  6608. If.prototype = { type: "parallel", constructor: If, _init: function(t, e, i) { var n = t.dimensions,
  6609. o = t.parallelAxisIndex;
  6610. RL(n, function(t, i) { var n = o[i],
  6611. a = e.getComponent("parallelAxis", n),
  6612. r = this._axesMap.set(t, new OL(t, Vl(a), [0, 0], a.get("type"), n)),
  6613. s = "category" === r.type;
  6614. r.onBand = s && a.get("boundaryGap"), r.inverse = a.get("inverse"), a.axis = r, r.model = a, r.coordinateSystem = a.coordinateSystem = this }, this) }, update: function(t, e) { this._updateAxesFromSeries(this._model, t) }, containPoint: function(t) { var e = this._makeLayoutInfo(),
  6615. i = e.axisBase,
  6616. n = e.layoutBase,
  6617. o = e.pixelDimIndex,
  6618. a = t[1 - o],
  6619. 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();
  6620. RL(this.dimensions, function(t) { var e = this._axesMap.get(t);
  6621. e.scale.unionExtentFromData(n, n.mapDimension(t)), Bl(e.scale, e.model) }, this) } }, this) }, resize: function(t, e) { this._rect = la(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }), this._layoutAxes() }, getRect: function() { return this._rect }, _makeLayoutInfo: function() { var t, e = this._model,
  6622. i = this._rect,
  6623. n = ["x", "y"],
  6624. o = ["width", "height"],
  6625. a = e.get("layout"),
  6626. r = "horizontal" === a ? 0 : 1,
  6627. s = i[o[r]],
  6628. l = [0, s],
  6629. u = this.dimensions.length,
  6630. h = Tf(e.get("axisExpandWidth"), l),
  6631. c = Tf(e.get("axisExpandCount") || 0, [0, u]),
  6632. d = e.get("axisExpandable") && u > 3 && u > c && c > 1 && h > 0 && s > 0,
  6633. f = e.get("axisExpandWindow");
  6634. f ? (t = Tf(f[1] - f[0], l), f[1] = f[0] + t) : (t = Tf(h * (c - 1), l), (f = [h * (e.get("axisExpandCenter") || VL(u / 2)) - t / 2])[1] = f[0] + t); var p = (s - t) / (u - c);
  6635. p < 3 && (p = 0); var g = [VL(FL(f[0] / h, 1)) + 1, GL(FL(f[1] / h, 1)) - 1],
  6636. m = p / h * f[0]; return { layout: a, pixelDimIndex: r, layoutBase: i[n[r]], layoutLength: s, axisBase: i[n[1 - r]], axisLength: i[o[1 - r]], axisExpandable: d, axisExpandWidth: h, axisCollapseWidth: p, axisExpandWindow: f, axisCount: u, winInnerIndices: g, axisExpandWindow0Pos: m } }, _layoutAxes: function() { var t = this._rect,
  6637. e = this._axesMap,
  6638. i = this.dimensions,
  6639. n = this._makeLayoutInfo(),
  6640. o = n.layout;
  6641. e.each(function(t) { var e = [0, n.axisLength],
  6642. i = t.inverse ? 1 : 0;
  6643. t.setExtent(e[i], e[1 - i]) }), RL(i, function(e, i) { var a = (n.axisExpandable ? Df : Af)(i, n),
  6644. r = { horizontal: { x: a.position, y: n.axisLength }, vertical: { x: 0, y: a.position } },
  6645. s = { horizontal: WL / 2, vertical: 0 },
  6646. l = [r[o].x + t.x, r[o].y + t.y],
  6647. u = s[o],
  6648. h = mt();
  6649. wt(h, h, u), _t(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,
  6650. a = this.dimensions,
  6651. r = [],
  6652. s = [];
  6653. d(a, function(e) { r.push(t.mapDimension(e)), s.push(o.get(e).model) }); for (var l = this.hasAxisBrushed(), u = i; u < n; u++) { var h; if (l) { h = "active"; for (var c = t.getValues(r, u), f = 0, p = a.length; f < p; f++)
  6654. if ("inactive" === s[f].getActiveState(c[f])) { h = "inactive"; break } } else h = "normal";
  6655. e(h, u) } }, hasAxisBrushed: function() { for (var t = this.dimensions, e = this._axesMap, i = !1, n = 0, o = t.length; n < o; n++) "normal" !== e.get(t[n]).model.getActiveState() && (i = !0); return i }, axisCoordToPoint: function(t, e) { return Io([t, 0], this._axesLayout[e].transform) }, getAxisLayout: function(t) { return i(this._axesLayout[t]) }, getSlidedAxisExpandWindow: function(t) { var e = this._makeLayoutInfo(),
  6656. i = e.pixelDimIndex,
  6657. n = e.axisExpandWindow.slice(),
  6658. o = n[1] - n[0],
  6659. 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,
  6660. l = "slide",
  6661. u = e.axisCollapseWidth,
  6662. h = this._model.get("axisExpandSlideTriggerArea"),
  6663. c = null != h[0]; if (u) c && u && s < o * h[0] ? (l = "jump", r = s - o * h[2]) : c && u && s > o * (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) ? EL(r, n, a, "all") : l = "none";
  6664. else { o = n[1] - n[0];
  6665. (n = [BL(0, a[1] * s / o - o / 2)])[1] = zL(a[1], n[0] + o), n[0] = n[1] - o } return { axisExpandWindow: n, behavior: l } } }, Ba.register("parallel", { create: function(t, e) { var i = []; return t.eachComponent("parallel", function(n, o) { var a = new If(n, t, e);
  6666. a.name = "parallel_" + o, a.resize(n, e), n.coordinateSystem = a, a.model = n, i.push(a) }), t.eachSeries(function(e) { if ("parallel" === e.get("coordinateSystem")) { var i = t.queryComponents({ mainType: "parallel", index: e.get("parallelIndex"), id: e.get("parallelId") })[0];
  6667. e.coordinateSystem = i.coordinateSystem } }), i } }); var HL = YM.extend({ type: "baseParallelAxis", axis: null, activeIntervals: [], getAreaSelectStyle: function() { return Wb([
  6668. ["fill", "color"],
  6669. ["lineWidth", "borderWidth"],
  6670. ["stroke", "borderColor"],
  6671. ["width", "width"],
  6672. ["opacity", "opacity"]
  6673. ])(this.getModel("areaSelectStyle")) }, setActiveIntervals: function(t) { var e = this.activeIntervals = i(t); if (e)
  6674. for (var n = e.length - 1; n >= 0; n--) Bo(e[n]) }, getActiveState: function(t) { var e = this.activeIntervals; if (!e.length) return "normal"; if (null == t || isNaN(t)) return "inactive"; if (1 === e.length) { var i = e[0]; if (i[0] <= t && t <= i[1]) return "active" } else
  6675. for (var n = 0, o = e.length; n < o; n++)
  6676. if (e[n][0] <= t && t <= e[n][1]) return "active"; return "inactive" } }),
  6677. ZL = { 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 };
  6678. n(HL.prototype, CA), xD("parallel", HL, function(t, e) { return e.type || (e.data ? "category" : "value") }, ZL), YM.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() { YM.prototype.init.apply(this, arguments), this.mergeOption({}) }, mergeOption: function(t) { var e = this.option;
  6679. t && n(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) { d(["axisExpandable", "axisExpandCenter", "axisExpandCount", "axisExpandWidth", "axisExpandWindow"], function(e) { t.hasOwnProperty(e) && (this.option[e] = t[e]) }, this) }, _initDimensions: function() { var t = this.dimensions = [],
  6680. e = this.parallelAxisIndex = [];
  6681. d(g(this.dependentModels.parallelAxis, function(t) { return (t.get("parallelIndex") || 0) === this.componentIndex }, this), function(i) { t.push("dim" + i.get("dim")), e.push(i.componentIndex) }) } }), Ps({ type: "axisAreaSelect", event: "axisAreaSelected" }, function(t, e) { e.eachComponent({ mainType: "parallelAxis", query: t }, function(e) { e.axis.model.setActiveIntervals(t.intervals) }) }), Ps("parallelAxisExpand", function(t, e) { e.eachComponent({ mainType: "parallel", query: t }, function(e) { e.setAxisExpand(t) }) }); var UL = v,
  6682. XL = d,
  6683. jL = f,
  6684. YL = Math.min,
  6685. qL = Math.max,
  6686. KL = Math.pow,
  6687. $L = 1e4,
  6688. JL = 6,
  6689. QL = 6,
  6690. tk = "globalPan",
  6691. ek = { w: [0, 0], e: [0, 1], n: [1, 0], s: [1, 1] },
  6692. ik = { w: "ew", e: "ew", n: "ns", s: "ns", ne: "nesw", sw: "nesw", nw: "nwse", se: "nwse" },
  6693. nk = { brushStyle: { lineWidth: 2, stroke: "rgba(0,0,0,0.3)", fill: "rgba(0,0,0,0.1)" }, transformable: !0, brushMode: "single", removeOnClick: !1 },
  6694. ok = 0;
  6695. Cf.prototype = { constructor: Cf, enableBrush: function(t) { return this._brushType && kf(this), t.brushType && Lf(this, t), this }, setPanels: function(t) { if (t && t.length) { var e = this._panels = {};
  6696. d(t, function(t) { e[t.panelId] = i(t) }) } else this._panels = null; return this }, mount: function(t) { t = t || {}, 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) { XL(this._covers, t, e) }, updateCovers: function(t) {
  6697. function e(t, e) { return (null != t.id ? t.id : a + e) + "-" + t.brushType }
  6698. function o(e, i) { var n = t[e]; if (null != i && r[i] === u) s[e] = r[i];
  6699. else { var o = s[e] = null != i ? (r[i].__brushOption = n, r[i]) : Nf(l, Pf(l, n));
  6700. Rf(l, o) } }
  6701. t = f(t, function(t) { return n(i(nk), t, !0) }); var a = "\0-brush-index-",
  6702. r = this._covers,
  6703. s = this._covers = [],
  6704. l = this,
  6705. u = this._creatingCover; return new Hs(r, t, function(t, i) { return e(t.__brushOption, i) }, e).add(o).update(o).remove(function(t) { r[t] !== u && l.group.remove(r[t]) }).execute(), this }, unmount: function() { return this.enableBrush(!1), Gf(this), this._zr.remove(this.group), this }, dispose: function() { this.unmount(), this.off() } }, h(Cf, aw); var ak = { mousedown: function(t) { if (this._dragging) lp.call(this, t);
  6706. else if (!t.target || !t.target.draggable) { op(t); var e = this.group.transformCoordToLocal(t.offsetX, t.offsetY);
  6707. this._creatingCover = null, (this._creatingPanel = Bf(this, t, e)) && (this._dragging = !0, this._track = [e.slice()]) } }, mousemove: function(t) { var e = this.group.transformCoordToLocal(t.offsetX, t.offsetY); if (np(this, t, e), this._dragging) { op(t); var i = rp(this, t, e, !1);
  6708. i && Ff(this, i) } }, mouseup: lp },
  6709. rk = { lineX: up(0), lineY: up(1), rect: { createCover: function(t, e) { return Zf(UL(Jf, function(t) { return t }, function(t) { return t }), t, e, ["w", "e", "n", "s", "se", "sw", "ne", "nw"]) }, getCreatingRange: function(t) { var e = Hf(t); return qf(e[1][0], e[1][1], e[0][0], e[0][1]) }, updateCoverShape: function(t, e, i, n) { Uf(t, e, i, n) }, updateCommon: Xf, contain: ap }, polygon: { createCover: function(t, e) { var i = new Zw; return i.add(new oM({ name: "main", style: Yf(e), silent: !0 })), i }, getCreatingRange: function(t) { return t }, endCreating: function(t, e) { e.remove(e.childAt(0)), e.add(new nM({ name: "main", draggable: !0, drift: UL(Qf, t, e), ondragend: UL(Ff, t, { isEnd: !0 }) })) }, updateCoverShape: function(t, e, i, n) { e.childAt(0).setShape({ points: ep(t, e, i) }) }, updateCommon: Xf, contain: ap } },
  6710. sk = ["axisLine", "axisTickLabel", "axisName"],
  6711. lk = Vs({ type: "parallelAxis", init: function(t, e) { lk.superApply(this, "init", arguments), (this._brushController = new Cf(e.getZr())).on("brush", m(this._onBrush, this)) }, render: function(t, e, i, n) { if (!pp(t, e, n)) { this.axisModel = t, this.api = i, this.group.removeAll(); var o = this._axisGroup; if (this._axisGroup = new Zw, this.group.add(this._axisGroup), t.get("show")) { var r = mp(t, e),
  6712. s = r.coordinateSystem,
  6713. l = t.getAreaSelectStyle(),
  6714. u = l.width,
  6715. h = t.axis.dim,
  6716. c = a({ strokeContainThreshold: u }, s.getAxisLayout(h)),
  6717. f = new ID(t, c);
  6718. d(sk, f.add, f), this._axisGroup.add(f.getGroup()), this._refreshBrushController(c, l, t, r, u, i); var p = n && !1 === n.animation ? null : t;
  6719. Ao(o, this._axisGroup, p) } } }, _refreshBrushController: function(t, e, i, n, o, a) { var r = i.axis.getExtent(),
  6720. s = r[1] - r[0],
  6721. l = Math.min(30, .1 * Math.abs(s)),
  6722. u = ue.create({ x: r[0], y: -o / 2, width: s, height: o });
  6723. u.x -= l, u.width += 2 * l, this._brushController.mount({ enableGlobalPan: !0, rotation: t.rotation, position: t.position }).setPanels([{ panelId: "pl", clipPath: hp(u), isTargetByCursor: dp(u, a, n), getLinearBrushOtherExtent: cp(u, 0) }]).enableBrush({ brushType: "lineX", brushStyle: e, removeOnClick: !0 }).updateCovers(gp(i)) }, _onBrush: function(t, e) { var i = this.axisModel,
  6724. n = i.axis,
  6725. o = f(t, function(t) { return [n.coordToData(t.range[0], !0), n.coordToData(t.range[1], !0)] });
  6726. (!i.option.realtime === e.isEnd || e.removeOnClick) && this.api.dispatchAction({ type: "axisAreaSelect", parallelAxisId: i.id, intervals: o }) }, dispose: function() { this._brushController.dispose() } });
  6727. Vs({ type: "parallel", render: function(t, e, i) { this._model = t, this._api = i, this._handlers || (this._handlers = {}, d(uk, function(t, e) { i.getZr().on(e, this._handlers[e] = m(t, this)) }, this)), Lr(this, "_throttledDispatchExpand", t.get("axisExpandRate"), "fixRate") }, dispose: function(t, e) { d(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(a({ type: "parallelAxisExpand" }, t)) } }); var uk = { mousedown: function(t) { vp(this, "click") && (this._mouseDownPoint = [t.offsetX, t.offsetY]) }, mouseup: function(t) { var e = this._mouseDownPoint; if (vp(this, "click") && e) { var i = [t.offsetX, t.offsetY]; if (Math.pow(e[0] - i[0], 2) + Math.pow(e[1] - i[1], 2) > 5) return; var n = this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX, t.offsetY]); "none" !== n.behavior && this._dispatchExpand({ axisExpandWindow: n.axisExpandWindow }) }
  6728. this._mouseDownPoint = null }, mousemove: function(t) { if (!this._mouseDownPoint && vp(this, "mousemove")) { var e = this._model,
  6729. i = e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX, t.offsetY]),
  6730. n = i.behavior; "jump" === n && this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")), this._throttledDispatchExpand("none" === n ? null : { axisExpandWindow: i.axisExpandWindow, animation: "jump" === n && null }) } } };
  6731. Ls(function(t) { wf(t), bf(t) }), OI.extend({ type: "series.parallel", dependencies: ["parallel"], visualColorAccessPath: "lineStyle.color", getInitialData: function(t, e) { var i = this.getSource(); return yp(i, this), dl(i, this) }, getRawIndicesByActiveState: function(t) { var e = this.coordinateSystem,
  6732. i = this.getData(),
  6733. 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 hk = .3,
  6734. ck = (Mr.extend({ type: "parallel", init: function() { this._dataGroup = new Zw, this.group.add(this._dataGroup), this._data, this._initialized }, render: function(t, e, i, n) { var o = this._dataGroup,
  6735. a = t.getData(),
  6736. r = this._data,
  6737. s = t.coordinateSystem,
  6738. l = s.dimensions,
  6739. u = Sp(t); if (a.diff(r).add(function(t) { Mp(bp(a, o, t, l, s), a, t, u) }).update(function(e, i) { var o = r.getItemGraphicEl(i),
  6740. h = wp(a, e, l, s);
  6741. a.setItemGraphicEl(e, o), bo(o, { shape: { points: h } }, n && !1 === n.animation ? null : t, e), Mp(o, a, e, u) }).remove(function(t) { var e = r.getItemGraphicEl(t);
  6742. o.remove(e) }).execute(), !this._initialized) { this._initialized = !0; var h = _p(s, t, function() { setTimeout(function() { o.removeClipPath() }) });
  6743. o.setClipPath(h) }
  6744. this._data = a }, incrementalPrepareRender: function(t, e, i) { this._initialized = !0, this._data = null, this._dataGroup.removeAll() }, incrementalRender: function(t, e, i) { for (var n = e.getData(), o = e.coordinateSystem, a = o.dimensions, r = Sp(e), s = t.start; s < t.end; s++) { var l = bp(n, this._dataGroup, s, a, o);
  6745. l.incremental = !0, Mp(l, n, s, r) } }, dispose: function() {}, remove: function() { this._dataGroup && this._dataGroup.removeAll(), this._data = null } }), ["lineStyle", "normal", "opacity"]);
  6746. Es({ seriesType: "parallel", reset: function(t, e, i) { var n = t.getModel("itemStyle"),
  6747. o = t.getModel("lineStyle"),
  6748. a = e.get("color"),
  6749. r = o.get("color") || n.get("color") || a[t.seriesIndex % a.length],
  6750. s = t.get("inactiveOpacity"),
  6751. l = t.get("activeOpacity"),
  6752. u = t.getModel("lineStyle").getLineStyle(),
  6753. h = t.coordinateSystem,
  6754. c = t.getData(),
  6755. d = { normal: u.opacity, active: l, inactive: s }; return c.setVisual("color", r), { progress: function(t, e) { h.eachActiveState(e, function(t, i) { var n = d[t]; if ("normal" === t && e.hasItemOption) { var o = e.getItemModel(i).get(ck, !0);
  6756. null != o && (n = o) }
  6757. e.setItemVisual(i, "opacity", n) }, t.start, t.end) } } } }); var dk = OI.extend({ type: "series.sankey", layoutInfo: null, getInitialData: function(t) { var e = t.edges || t.links,
  6758. i = t.data || t.nodes; if (i && e) return cL(i, e, this, !0).data }, setNodePosition: function(t, e) { var i = this.option.data[t];
  6759. 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),
  6760. o = n.data,
  6761. a = o.source + " -- " + o.target; return n.value && (a += " : " + n.value), Qo(a) } return dk.superCall(this, "formatTooltip", t, e) }, optionUpdated: function() { var t = this.option;!0 === t.focusNodeAdjacency && (t.focusNodeAdjacency = "allEdges") }, 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 }, itemStyle: { borderWidth: 1, borderColor: "#333" }, lineStyle: { color: "#314656", opacity: .2, curveness: .5 }, emphasis: { label: { show: !0 }, lineStyle: { opacity: .6 } }, animationEasing: "linear", animationDuration: 1e3 } }),
  6762. fk = ["itemStyle", "opacity"],
  6763. pk = ["lineStyle", "opacity"],
  6764. gk = Fn({ 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; "vertical" === e.orient ? (t.moveTo(e.x1, e.y1), t.bezierCurveTo(e.cpx1, e.cpy1, e.cpx2, e.cpy2, e.x2, e.y2), 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.moveTo(e.x1, e.y1), t.bezierCurveTo(e.cpx1, e.cpy1, e.cpx2, e.cpy2, e.x2, e.y2), 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() } });
  6765. Fs({ type: "sankey", _model: null, _focusAdjacencyDisabled: !1, render: function(t, e, i) { var n = this,
  6766. o = t.getGraph(),
  6767. a = this.group,
  6768. r = t.layoutInfo,
  6769. s = r.width,
  6770. l = r.height,
  6771. u = t.getData(),
  6772. h = t.getData("edge"),
  6773. c = t.get("orient");
  6774. this._model = t, a.removeAll(), a.attr("position", [r.x, r.y]), o.eachEdge(function(e) { var i = new gk;
  6775. i.dataIndex = e.dataIndex, i.seriesIndex = t.seriesIndex, i.dataType = "edge"; var n, o, r, u, d, f, p, g, m = e.getModel("lineStyle"),
  6776. v = m.get("curveness"),
  6777. y = e.node1.getLayout(),
  6778. x = e.node1.getModel(),
  6779. _ = x.get("localX"),
  6780. w = x.get("localY"),
  6781. b = e.node2.getLayout(),
  6782. S = e.node2.getModel(),
  6783. M = S.get("localX"),
  6784. I = S.get("localY"),
  6785. 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, d = n, f = o * (1 - v) + (u = null != I ? I * l : b.y) * 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, d = n * (1 - v) + (r = null != M ? M * s : b.x) * v, f = o, p = n * v + r * (1 - v), g = u = (null != I ? I * l : b.y) + T.ty), 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) {
  6786. case "source":
  6787. i.style.fill = e.node1.getVisual("color"); break;
  6788. case "target":
  6789. i.style.fill = e.node2.getVisual("color") }
  6790. uo(i, e.getModel("emphasis.lineStyle").getItemStyle()), a.add(i), h.setItemGraphicEl(e.dataIndex, i) }), o.eachNode(function(e) { var i = e.getLayout(),
  6791. n = e.getModel(),
  6792. o = n.get("localX"),
  6793. r = n.get("localY"),
  6794. h = n.getModel("label"),
  6795. c = n.getModel("emphasis.label"),
  6796. d = new aM({ 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() }),
  6797. f = e.getModel("emphasis.itemStyle").getItemStyle();
  6798. co(d.style, f, h, c, { labelFetcher: t, labelDataIndex: e.dataIndex, defaultText: e.id, isRectText: !0 }), d.setStyle("fill", e.getVisual("color")), uo(d, f), a.add(d), u.setItemGraphicEl(e.dataIndex, d), d.dataType = "node" }), u.eachItemGraphicEl(function(e, o) { var a = u.getItemModel(o);
  6799. 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"), a.get("focusNodeAdjacency") && (e.off("mouseover").on("mouseover", function() { n._focusAdjacencyDisabled || i.dispatchAction({ type: "focusNodeAdjacency", seriesId: t.id, dataIndex: e.dataIndex }) }), e.off("mouseout").on("mouseout", function() { n._focusAdjacencyDisabled || i.dispatchAction({ type: "unfocusNodeAdjacency", seriesId: t.id }) })) }), h.eachItemGraphicEl(function(e, o) { h.getItemModel(o).get("focusNodeAdjacency") && (e.off("mouseover").on("mouseover", function() { n._focusAdjacencyDisabled || i.dispatchAction({ type: "focusNodeAdjacency", seriesId: t.id, edgeDataIndex: e.dataIndex }) }), e.off("mouseout").on("mouseout", function() { n._focusAdjacencyDisabled || i.dispatchAction({ type: "unfocusNodeAdjacency", seriesId: t.id }) })) }), !this._data && t.get("animation") && a.setClipPath(Cp(a.getBoundingRect(), t, function() { a.removeClipPath() })), this._data = t.getData() }, dispose: function() {}, focusNodeAdjacency: function(t, e, i, n) { var o = this._model.getData(),
  6800. a = o.graph,
  6801. r = n.dataIndex,
  6802. s = o.getItemModel(r),
  6803. l = n.edgeDataIndex; if (null != r || null != l) { var u = a.getNodeByIndex(r),
  6804. h = a.getEdgeByIndex(l); if (a.eachNode(function(t) { Ap(t, fk, .1) }), a.eachEdge(function(t) { Ap(t, pk, .1) }), u) { Dp(u, fk); var c = s.get("focusNodeAdjacency"); "outEdges" === c ? d(u.outEdges, function(t) { t.dataIndex < 0 || (Dp(t, pk), Dp(t.node2, fk)) }) : "inEdges" === c ? d(u.inEdges, function(t) { t.dataIndex < 0 || (Dp(t, pk), Dp(t.node1, fk)) }) : "allEdges" === c && d(u.edges, function(t) { t.dataIndex < 0 || (Dp(t, pk), Dp(t.node1, fk), Dp(t.node2, fk)) }) }
  6805. h && (Dp(h, pk), Dp(h.node1, fk), Dp(h.node2, fk)) } }, unfocusNodeAdjacency: function(t, e, i, n) { var o = this._model.getGraph();
  6806. o.eachNode(function(t) { Ap(t, fk) }), o.eachEdge(function(t) { Ap(t, pk) }) } }), Ps({ 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]) }) });
  6807. Os(function(t, e, i) { t.eachSeriesByType("sankey", function(t) { var i = t.get("nodeWidth"),
  6808. n = t.get("nodeGap"),
  6809. o = kp(t, e);
  6810. t.layoutInfo = o; var a = o.width,
  6811. r = o.height,
  6812. s = t.getGraph(),
  6813. l = s.nodes,
  6814. u = s.edges;
  6815. Np(l), Pp(l, u, i, n, a, r, 0 !== g(l, function(t) { return 0 === t.getLayout().value }).length ? 0 : t.get("layoutIterations"), t.get("orient")) }) }), Es(function(t, e) { t.eachSeriesByType("sankey", function(t) { var e = t.getGraph().nodes; if (e.length) { var i = 1 / 0,
  6816. n = -1 / 0;
  6817. d(e, function(t) { var e = t.getLayout().value;
  6818. e < i && (i = e), e > n && (n = e) }), d(e, function(e) { var o = new jC({ type: "color", mappingMethod: "linear", dataExtent: [i, n], visual: t.get("color") }).mapValueToVisual(e.getLayout().value);
  6819. e.setVisual("color", o); var a = e.getModel().get("itemStyle.color");
  6820. null != a && e.setVisual("color", a) }) } }) }); var mk = { _baseAxisDim: null, getInitialData: function(t, e) { var i, n, o = e.getComponent("xAxis", this.get("xAxisIndex")),
  6821. a = e.getComponent("yAxis", this.get("yAxisIndex")),
  6822. r = o.get("type"),
  6823. s = a.get("type"); "category" === r ? (t.layout = "horizontal", i = o.getOrdinalMeta(), n = !0) : "category" === s ? (t.layout = "vertical", i = a.getOrdinalMeta(), n = !0) : t.layout = t.layout || "horizontal"; var l = ["x", "y"],
  6824. u = "horizontal" === t.layout ? 0 : 1,
  6825. h = this._baseAxisDim = l[u],
  6826. c = l[1 - u],
  6827. f = [o, a],
  6828. p = f[u].get("type"),
  6829. g = f[1 - u].get("type"),
  6830. m = t.data; if (m && n) { var v = [];
  6831. d(m, function(t, e) { var i;
  6832. t.value && y(t.value) ? (i = t.value.slice(), t.value.unshift(e)) : y(t) ? (i = t.slice(), t.unshift(e)) : i = t, v.push(i) }), t.data = v } var x = this.defaultValueDimensions; return WD(this, { coordDimensions: [{ name: h, type: Xs(p), ordinalMeta: i, otherDims: { tooltip: !1, itemName: 0 }, dimsDef: ["base"] }, { name: c, type: Xs(g), dimsDef: x.slice() }], dimensionsCount: x.length + 1 }) }, getBaseAxis: function() { var t = this._baseAxisDim; return this.ecModel.getComponent(t + "Axis", this.get(t + "AxisIndex")).axis } };
  6833. h(OI.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 } }), mk, !0); var vk = ["itemStyle"],
  6834. yk = ["emphasis", "itemStyle"],
  6835. xk = (Mr.extend({ type: "boxplot", render: function(t, e, i) { var n = t.getData(),
  6836. o = this.group,
  6837. a = this._data;
  6838. this._data || o.removeAll(); var r = "horizontal" === t.get("layout") ? 1 : 0;
  6839. n.diff(a).add(function(t) { if (n.hasValue(t)) { var e = qp(n.getItemLayout(t), n, t, r, !0);
  6840. n.setItemGraphicEl(t, e), o.add(e) } }).update(function(t, e) { var i = a.getItemGraphicEl(e); if (n.hasValue(t)) { var s = n.getItemLayout(t);
  6841. i ? Kp(s, i, n, t) : i = qp(s, n, t, r), o.add(i), n.setItemGraphicEl(t, i) } else o.remove(i) }).remove(function(t) { var e = a.getItemGraphicEl(t);
  6842. e && o.remove(e) }).execute(), this._data = n }, remove: function(t) { var e = this.group,
  6843. i = this._data;
  6844. this._data = null, i && i.eachItemGraphicEl(function(t) { t && e.remove(t) }) }, dispose: B }), kn.extend({ type: "boxplotBoxPath", shape: {}, buildPath: function(t, e) { var i = e.points,
  6845. n = 0; for (t.moveTo(i[n][0], i[n][1]), n++; n < 4; n++) t.lineTo(i[n][0], i[n][1]); for (t.closePath(); n < i.length; n++) t.moveTo(i[n][0], i[n][1]), n++, t.lineTo(i[n][0], i[n][1]) } })),
  6846. _k = ["itemStyle", "borderColor"],
  6847. wk = d;
  6848. Es(function(t, e) { var i = t.get("color");
  6849. t.eachRawSeriesByType("boxplot", function(e) { var n = i[e.seriesIndex % i.length],
  6850. o = e.getData();
  6851. o.setVisual({ legendSymbol: "roundRect", color: e.get(_k) || n }), t.isSeriesFiltered(e) || o.each(function(t) { var e = o.getItemModel(t);
  6852. o.setItemVisual(t, { color: e.get(_k, !0) }) }) }) }), Os(function(t) { var e = Jp(t);
  6853. wk(e, function(t) { var e = t.seriesModels;
  6854. e.length && (Qp(t), wk(e, function(e, i) { tg(e, t.boxOffsetList[i], t.boxWidthList[i]) })) }) }), h(OI.extend({ type: "series.candlestick", dependencies: ["xAxis", "yAxis", "grid"], defaultValueDimensions: [{ name: "open", defaultTooltip: !0 }, { name: "close", defaultTooltip: !0 }, { name: "lowest", defaultTooltip: !0 }, { name: "highest", defaultTooltip: !0 }], dimensions: null, defaultOption: { zlevel: 0, z: 2, coordinateSystem: "cartesian2d", legendHoverLink: !0, hoverAnimation: !0, layout: null, itemStyle: { color: "#c23531", color0: "#314656", borderWidth: 1, borderColor: "#c23531", borderColor0: "#314656" }, emphasis: { itemStyle: { borderWidth: 2 } }, barMaxWidth: null, barMinWidth: null, barWidth: null, large: !0, largeThreshold: 600, progressive: 3e3, progressiveThreshold: 1e4, progressiveChunkMode: "mod", animationUpdate: !1, animationEasing: "linear", animationDuration: 300 }, getShadowDim: function() { return "open" }, brushSelector: function(t, e, i) { var n = e.getItemLayout(t); return n && i.rect(n.brushRect) } }), mk, !0); var bk = ["itemStyle"],
  6855. Sk = ["emphasis", "itemStyle"],
  6856. Mk = ["color", "color0", "borderColor", "borderColor0"],
  6857. Ik = (Mr.extend({ type: "candlestick", render: function(t, e, i) { this._updateDrawMode(t), this._isLargeDraw ? this._renderLarge(t) : this._renderNormal(t) }, incrementalPrepareRender: function(t, e, i) { this._clear(), this._updateDrawMode(t) }, incrementalRender: function(t, e, i, n) { this._isLargeDraw ? this._incrementalRenderLarge(t, e) : this._incrementalRenderNormal(t, e) }, _updateDrawMode: function(t) { var e = t.pipelineContext.large;
  6858. (null == this._isLargeDraw || e ^ this._isLargeDraw) && (this._isLargeDraw = e, this._clear()) }, _renderNormal: function(t) { var e = t.getData(),
  6859. i = this._data,
  6860. n = this.group,
  6861. o = e.getLayout("isSimpleBox");
  6862. this._data || n.removeAll(), e.diff(i).add(function(i) { if (e.hasValue(i)) { var a, r = e.getItemLayout(i);
  6863. So(a = eg(r, 0, !0), { shape: { points: r.ends } }, t, i), ig(a, e, i, o), n.add(a), e.setItemGraphicEl(i, a) } }).update(function(a, r) { var s = i.getItemGraphicEl(r); if (e.hasValue(a)) { var l = e.getItemLayout(a);
  6864. s ? bo(s, { shape: { points: l.ends } }, t, a) : s = eg(l), ig(s, e, a, o), n.add(s), e.setItemGraphicEl(a, s) } else n.remove(s) }).remove(function(t) { var e = i.getItemGraphicEl(t);
  6865. e && n.remove(e) }).execute(), this._data = e }, _renderLarge: function(t) { this._clear(), og(t, this.group) }, _incrementalRenderNormal: function(t, e) { for (var i, n = e.getData(), o = n.getLayout("isSimpleBox"); null != (i = t.next());) { var a;
  6866. ig(a = eg(n.getItemLayout(i)), n, i, o), a.incremental = !0, this.group.add(a) } }, _incrementalRenderLarge: function(t, e) { og(e, this.group, !0) }, remove: function(t) { this._clear() }, _clear: function() { this.group.removeAll(), this._data = null }, dispose: B }), kn.extend({ type: "normalCandlestickBox", shape: {}, buildPath: function(t, e) { var i = e.points;
  6867. this.__simpleBox ? (t.moveTo(i[4][0], i[4][1]), t.lineTo(i[6][0], i[6][1])) : (t.moveTo(i[0][0], i[0][1]), t.lineTo(i[1][0], i[1][1]), t.lineTo(i[2][0], i[2][1]), t.lineTo(i[3][0], i[3][1]), t.closePath(), t.moveTo(i[4][0], i[4][1]), t.lineTo(i[5][0], i[5][1]), t.moveTo(i[6][0], i[6][1]), t.lineTo(i[7][0], i[7][1])) } })),
  6868. Tk = kn.extend({ type: "largeCandlestickBox", shape: {}, buildPath: function(t, e) { for (var i = e.points, n = 0; n < i.length;)
  6869. if (this.__sign === i[n++]) { var o = i[n++];
  6870. t.moveTo(o, i[n++]), t.lineTo(o, i[n++]) } else n += 3 } }),
  6871. Ak = ["itemStyle", "borderColor"],
  6872. Dk = ["itemStyle", "borderColor0"],
  6873. Ck = ["itemStyle", "color"],
  6874. Lk = ["itemStyle", "color0"],
  6875. kk = { seriesType: "candlestick", plan: zI(), performRawSeries: !0, reset: function(t, e) {
  6876. function i(t, e) { return e.get(t > 0 ? Ck : Lk) }
  6877. function n(t, e) { return e.get(t > 0 ? Ak : Dk) } var o = t.getData(),
  6878. a = t.pipelineContext.large; if (o.setVisual({ legendSymbol: "roundRect", colorP: i(1, t), colorN: i(-1, t), borderColorP: n(1, t), borderColorN: n(-1, t) }), !e.isSeriesFiltered(t)) return !a && { progress: function(t, e) { for (var o; null != (o = t.next());) { var a = e.getItemModel(o),
  6879. r = e.getItemLayout(o).sign;
  6880. e.setItemVisual(o, { color: i(r, a), borderColor: n(r, a) }) } } } } },
  6881. Pk = "undefined" != typeof Float32Array ? Float32Array : Array,
  6882. Nk = { seriesType: "candlestick", plan: zI(), reset: function(t) { var e = t.coordinateSystem,
  6883. i = t.getData(),
  6884. n = sg(t, i),
  6885. o = 0,
  6886. a = 1,
  6887. r = ["x", "y"],
  6888. s = i.mapDimension(r[o]),
  6889. l = i.mapDimension(r[a], !0),
  6890. u = l[0],
  6891. h = l[1],
  6892. c = l[2],
  6893. d = l[3]; if (i.setLayout({ candleWidth: n, isSimpleBox: n <= 1.3 }), !(null == s || l.length < 4)) return { progress: t.pipelineContext.large ? function(t, i) { for (var n, r, l = new Pk(5 * t.count), f = 0, p = [], g = []; null != (r = t.next());) { var m = i.get(s, r),
  6894. v = i.get(u, r),
  6895. y = i.get(h, r),
  6896. x = i.get(c, r),
  6897. _ = i.get(d, r);
  6898. isNaN(m) || isNaN(x) || isNaN(_) ? (l[f++] = NaN, f += 4) : (l[f++] = rg(i, r, v, y, h), p[o] = m, p[a] = x, n = e.dataToPoint(p, null, g), l[f++] = n ? n[0] : NaN, l[f++] = n ? n[1] : NaN, p[a] = _, n = e.dataToPoint(p, null, g), l[f++] = n ? n[1] : NaN) }
  6899. i.setLayout("largePoints", l) } : function(t, i) {
  6900. function r(t, i) { var n = []; return n[o] = i, n[a] = t, isNaN(i) || isNaN(t) ? [NaN, NaN] : e.dataToPoint(n) }
  6901. function l(t, e, i) { var a = e.slice(),
  6902. r = e.slice();
  6903. a[o] = Yn(a[o] + n / 2, 1, !1), r[o] = Yn(r[o] - n / 2, 1, !0), i ? t.push(a, r) : t.push(r, a) }
  6904. function f(t) { return t[o] = Yn(t[o], 1), t } for (var p; null != (p = t.next());) { var g = i.get(s, p),
  6905. m = i.get(u, p),
  6906. v = i.get(h, p),
  6907. y = i.get(c, p),
  6908. x = i.get(d, p),
  6909. _ = Math.min(m, v),
  6910. w = Math.max(m, v),
  6911. b = r(_, g),
  6912. S = r(w, g),
  6913. M = r(y, g),
  6914. I = r(x, g),
  6915. T = [];
  6916. l(T, S, 0), l(T, b, 1), T.push(f(I), f(S), f(M), f(b)), i.setItemLayout(p, { sign: rg(i, p, m, v, h), initBaseline: m > v ? S[a] : b[a], ends: T, brushRect: function(t, e, i) { var s = r(t, i),
  6917. l = r(e, i); return s[o] -= n / 2, l[o] -= n / 2, { x: s[0], y: s[1], width: a ? n : l[0] - s[0], height: a ? l[1] - s[1] : n } }(y, x, g) }) } } } } };
  6918. Ls(function(t) { t && y(t.series) && d(t.series, function(t) { w(t) && "k" === t.type && (t.type = "candlestick") }) }), Es(kk), Os(Nk), OI.extend({ type: "series.effectScatter", dependencies: ["grid", "polar"], getInitialData: function(t, e) { return dl(this.getSource(), this) }, brushSelector: "point", defaultOption: { coordinateSystem: "cartesian2d", zlevel: 0, z: 2, legendHoverLink: !0, effectType: "ripple", progressive: 0, showEffectOn: "render", rippleEffect: { period: 4, scale: 2.5, brushType: "fill" }, symbolSize: 10 } }); var Ok = hg.prototype;
  6919. Ok.stopEffectAnimation = function() { this.childAt(1).removeAll() }, Ok.startEffectAnimation = function(t) { for (var e = t.symbolType, i = t.color, n = this.childAt(1), o = 0; o < 3; o++) { var a = Xl(e, -1, -1, 2, 2, i);
  6920. a.attr({ style: { strokeNoScale: !0 }, z2: 99, silent: !0, scale: [.5, .5] }); var r = -o / 3 * t.period + t.effectOffset;
  6921. 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) }
  6922. ug(n, t) }, Ok.updateEffectAnimation = function(t) { for (var e = this._effectCfg, i = this.childAt(1), n = ["symbolType", "period", "rippleScale"], o = 0; o < n.length; o++) { var a = n[o]; if (e[a] !== t[a]) return this.stopEffectAnimation(), void this.startEffectAnimation(t) }
  6923. ug(i, t) }, Ok.highlight = function() { this.trigger("emphasis") }, Ok.downplay = function() { this.trigger("normal") }, Ok.updateData = function(t, e) { var i = t.hostModel;
  6924. this.childAt(0).updateData(t, e); var n = this.childAt(1),
  6925. o = t.getItemModel(e),
  6926. a = t.getItemVisual(e, "symbol"),
  6927. r = lg(t.getItemVisual(e, "symbolSize")),
  6928. s = t.getItemVisual(e, "color");
  6929. n.attr("scale", r), n.traverse(function(t) { t.attr({ fill: s }) }); var l = o.getShallow("symbolOffset"); if (l) { var u = n.position;
  6930. u[0] = Ro(l[0], r[0]), u[1] = Ro(l[1], r[1]) }
  6931. n.rotation = (o.getShallow("symbolRotate") || 0) * Math.PI / 180 || 0; var h = {}; if (h.showEffectOn = i.get("showEffectOn"), h.rippleScale = o.get("rippleEffect.scale"), h.brushType = o.get("rippleEffect.brushType"), h.period = 1e3 * o.get("rippleEffect.period"), h.effectOffset = e / t.count(), h.z = o.getShallow("z") || 0, h.zlevel = o.getShallow("zlevel") || 0, h.symbolType = a, h.color = s, this.off("mouseover").off("mouseout").off("emphasis").off("normal"), "render" === h.showEffectOn) this._effectCfg ? this.updateEffectAnimation(h) : this.startEffectAnimation(h), this._effectCfg = h;
  6932. else { this._effectCfg = null, this.stopEffectAnimation(); var c = this.childAt(0),
  6933. d = function() { c.highlight(), "render" !== h.showEffectOn && this.startEffectAnimation(h) },
  6934. f = function() { c.downplay(), "render" !== h.showEffectOn && this.stopEffectAnimation() };
  6935. this.on("mouseover", d, this).on("mouseout", f, this).on("emphasis", d, this).on("normal", f, this) }
  6936. this._effectCfg = h }, Ok.fadeOut = function(t) { this.off("mouseover").off("mouseout").off("emphasis").off("normal"), t && t() }, u(hg, Zw), Fs({ type: "effectScatter", init: function() { this._symbolDraw = new Su(hg) }, render: function(t, e, i) { var n = t.getData(),
  6937. o = this._symbolDraw;
  6938. o.updateData(n), this.group.add(o.group) }, updateTransform: function(t, e, i) { var n = t.getData();
  6939. this.group.dirty(); var o = cD().reset(t);
  6940. o.progress && o.progress({ start: 0, end: n.count() }, n), this._symbolDraw.updateLayout(n) }, _updateGroupTransform: function(t) { var e = t.coordinateSystem;
  6941. e && e.getRoamTransform && (this.group.transform = Mt(e.getRoamTransform()), this.group.decomposeTransform()) }, remove: function(t, e) { this._symbolDraw && this._symbolDraw.remove(e) }, dispose: function() {} }), Es(hD("effectScatter", "circle")), Os(cD("effectScatter")); var Ek = "undefined" == typeof Uint32Array ? Array : Uint32Array,
  6942. Rk = "undefined" == typeof Float64Array ? Array : Float64Array,
  6943. zk = OI.extend({ type: "series.lines", dependencies: ["grid", "polar"], visualColorAccessPath: "lineStyle.color", init: function(t) { t.data = t.data || [], cg(t); var e = this._processFlatCoordsArray(t.data);
  6944. this._flatCoords = e.flatCoords, this._flatCoordsOffset = e.flatCoordsOffset, e.flatCoords && (t.data = new Float32Array(e.count)), zk.superApply(this, "init", arguments) }, mergeOption: function(t) { if (t.data = t.data || [], cg(t), t.data) { var e = this._processFlatCoordsArray(t.data);
  6945. this._flatCoords = e.flatCoords, this._flatCoordsOffset = e.flatCoordsOffset, e.flatCoords && (t.data = new Float32Array(e.count)) }
  6946. zk.superApply(this, "mergeOption", arguments) }, appendData: function(t) { var e = this._processFlatCoordsArray(t.data);
  6947. e.flatCoords && (this._flatCoords ? (this._flatCoords = z(this._flatCoords, e.flatCoords), this._flatCoordsOffset = z(this._flatCoordsOffset, e.flatCoordsOffset)) : (this._flatCoords = e.flatCoords, this._flatCoordsOffset = e.flatCoordsOffset), t.data = new Float32Array(e.count)), this.getRawData().appendData(t.data) }, _getCoordsFromItemModel: function(t) { var e = this.getData().getItemModel(t); return e.option instanceof Array ? e.option : e.getShallow("coords") }, 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; o < n; 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; o < a.length; o++) e[o] = e[o] || [], e[o][0] = a[o][0], e[o][1] = a[o][1]; return a.length }, _processFlatCoordsArray: function(t) { var e = 0; if (this._flatCoords && (e = this._flatCoords.length), "number" == typeof t[0]) { for (var i = t.length, n = new Ek(i), o = new Rk(i), a = 0, r = 0, s = 0, l = 0; l < i;) { s++; var u = t[l++];
  6948. n[r++] = a + e, n[r++] = u; for (var h = 0; h < u; h++) { var c = t[l++],
  6949. d = t[l++];
  6950. o[a++] = c, o[a++] = d } } return { flatCoordsOffset: new Uint32Array(n.buffer, 0, r), flatCoords: o, count: s } } return { flatCoordsOffset: null, flatCoords: null, count: t.length } }, getInitialData: function(t, e) { var i = new eA(["value"], this); return i.hasItemOption = !1, i.initData(t.data, [], function(t, e, n, o) { if (t instanceof Array) return NaN;
  6951. 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().getItemModel(t),
  6952. i = e.get("name"); if (i) return i; var n = e.get("fromName"),
  6953. o = e.get("toName"),
  6954. a = []; return null != n && a.push(n), null != o && a.push(o), Qo(a.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, label: { show: !1, position: "end" }, lineStyle: { opacity: .5 } } }),
  6955. Bk = dg.prototype;
  6956. Bk.createLine = function(t, e, i) { return new $d(t, e, i) }, Bk._updateEffectSymbol = function(t, e) { var i = t.getItemModel(e).getModel("effect"),
  6957. n = i.get("symbolSize"),
  6958. o = i.get("symbol");
  6959. y(n) || (n = [n, n]); var a = i.get("color") || t.getItemVisual(e, "color"),
  6960. r = this.childAt(1);
  6961. this._symbolType !== o && (this.remove(r), (r = Xl(o, -.5, -.5, 1, 1, a)).z2 = 100, r.culling = !0, this.add(r)), r && (r.setStyle("shadowColor", a), r.setStyle(i.getItemStyle(["color"])), r.attr("scale", n), r.setColor(a), r.attr("scale", n), this._symbolType = o, this._updateEffectAnimation(t, i, e)) }, Bk._updateEffectAnimation = function(t, e, i) { var n = this.childAt(1); if (n) { var o = this,
  6962. a = t.getItemLayout(i),
  6963. r = 1e3 * e.get("period"),
  6964. s = e.get("loop"),
  6965. l = e.get("constantSpeed"),
  6966. u = T(e.get("delay"), function(e) { return e / t.count() * r / 3 }),
  6967. h = "function" == typeof u; if (n.ignore = !0, this.updateAnimationPoints(n, a), l > 0 && (r = this.getLineLength(n) / l * 1e3), r !== this._period || s !== this._loop) { n.stopAnimation(); var c = u;
  6968. 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) });
  6969. s || d.done(function() { o.remove(n) }), d.start() }
  6970. this._period = r, this._loop = s } }, Bk.getLineLength = function(t) { return ew(t.__p1, t.__cp1) + ew(t.__cp1, t.__p2) }, Bk.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] }, Bk.updateData = function(t, e, i) { this.childAt(0).updateData(t, e, i), this._updateEffectSymbol(t, e) }, Bk.updateSymbolPosition = function(t) { var e = t.__p1,
  6971. i = t.__p2,
  6972. n = t.__cp1,
  6973. o = t.__t,
  6974. a = t.position,
  6975. r = rn,
  6976. s = sn;
  6977. a[0] = r(e[0], n[0], i[0], o), a[1] = r(e[1], n[1], i[1], o); var l = s(e[0], n[0], i[0], o),
  6978. u = s(e[1], n[1], i[1], o);
  6979. t.rotation = -Math.atan2(u, l) - Math.PI / 2, t.ignore = !1 }, Bk.updateLayout = function(t, e) { this.childAt(0).updateLayout(t, e); var i = t.getItemModel(e).getModel("effect");
  6980. this._updateEffectAnimation(t, i, e) }, u(dg, Zw); var Vk = fg.prototype;
  6981. Vk._createPolyline = function(t, e, i) { var n = t.getItemLayout(e),
  6982. o = new oM({ shape: { points: n } });
  6983. this.add(o), this._updateCommonStl(t, e, i) }, Vk.updateData = function(t, e, i) { var n = t.hostModel;
  6984. bo(this.childAt(0), { shape: { points: t.getItemLayout(e) } }, n, e), this._updateCommonStl(t, e, i) }, Vk._updateCommonStl = function(t, e, i) { var n = this.childAt(0),
  6985. o = t.getItemModel(e),
  6986. a = t.getItemVisual(e, "color"),
  6987. s = i && i.lineStyle,
  6988. l = i && i.hoverLineStyle;
  6989. i && !t.hasItemOption || (s = o.getModel("lineStyle").getLineStyle(), l = o.getModel("emphasis.lineStyle").getLineStyle()), n.useStyle(r({ strokeNoScale: !0, fill: "none", stroke: a }, s)), n.hoverStyle = l, uo(this) }, Vk.updateLayout = function(t, e) { this.childAt(0).setShape("points", t.getItemLayout(e)) }, u(fg, Zw); var Gk = pg.prototype;
  6990. Gk.createLine = function(t, e, i) { return new fg(t, e, i) }, Gk.updateAnimationPoints = function(t, e) { this._points = e; for (var i = [0], n = 0, o = 1; o < e.length; o++) { var a = e[o - 1],
  6991. r = e[o];
  6992. n += ew(a, r), i.push(n) } if (0 !== n) { for (o = 0; o < i.length; o++) i[o] /= n;
  6993. this._offsets = i, this._length = n } }, Gk.getLineLength = function(t) { return this._length }, Gk.updateSymbolPosition = function(t) { var e = t.__t,
  6994. i = this._points,
  6995. n = this._offsets,
  6996. o = i.length; if (n) { var a = this._lastFrame; if (e < this._lastFramePercent) { for (r = Math.min(a + 1, o - 1); r >= 0 && !(n[r] <= e); r--);
  6997. r = Math.min(r, o - 2) } else { for (var r = a; r < o && !(n[r] > e); r++);
  6998. r = Math.min(r - 1, o - 2) }
  6999. J(t.position, i[r], i[r + 1], (e - n[r]) / (n[r + 1] - n[r])); var s = i[r + 1][0] - i[r][0],
  7000. l = i[r + 1][1] - i[r][1];
  7001. t.rotation = -Math.atan2(l, s) - Math.PI / 2, this._lastFrame = r, this._lastFramePercent = e, t.ignore = !1 } }, u(pg, dg); var Fk = Fn({ shape: { polyline: !1, curveness: 0, segs: [] }, buildPath: function(t, e) { var i = e.segs,
  7002. n = e.curveness; if (e.polyline)
  7003. for (r = 0; r < i.length;) { var o = i[r++]; if (o > 0) { t.moveTo(i[r++], i[r++]); for (var a = 1; a < o; a++) t.lineTo(i[r++], i[r++]) } } else
  7004. for (var r = 0; r < i.length;) { var s = i[r++],
  7005. l = i[r++],
  7006. u = i[r++],
  7007. h = i[r++]; if (t.moveTo(s, l), n > 0) { var c = (s + u) / 2 - (l - h) * n,
  7008. d = (l + h) / 2 - (u - s) * n;
  7009. t.quadraticCurveTo(c, d, u, h) } else t.lineTo(u, h) } }, findDataIndex: function(t, e) { var i = this.shape,
  7010. n = i.segs,
  7011. o = i.curveness; if (i.polyline)
  7012. for (var a = 0, r = 0; r < n.length;) { var s = n[r++]; if (s > 0)
  7013. for (var l = n[r++], u = n[r++], h = 1; h < s; h++)
  7014. if (vn(l, u, c = n[r++], d = n[r++])) return a;
  7015. a++ } else
  7016. for (var a = 0, r = 0; r < n.length;) { var l = n[r++],
  7017. u = n[r++],
  7018. c = n[r++],
  7019. d = n[r++]; if (o > 0) { if (xn(l, u, (l + c) / 2 - (u - d) * o, (u + d) / 2 - (c - l) * o, c, d)) return a } else if (vn(l, u, c, d)) return a;
  7020. a++ }
  7021. return -1 } }),
  7022. Wk = gg.prototype;
  7023. Wk.isPersistent = function() { return !this._incremental }, Wk.updateData = function(t) { this.group.removeAll(); var e = new Fk({ rectHover: !0, cursor: "default" });
  7024. e.setShape({ segs: t.getLayout("linesPoints") }), this._setCommon(e, t), this.group.add(e), this._incremental = null }, Wk.incrementalPrepareUpdate = function(t) { this.group.removeAll(), this._clearIncremental(), t.count() > 5e5 ? (this._incremental || (this._incremental = new Gn({ silent: !0 })), this.group.add(this._incremental)) : this._incremental = null }, Wk.incrementalUpdate = function(t, e) { var i = new Fk;
  7025. 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)) }, Wk.remove = function() { this._clearIncremental(), this._incremental = null, this.group.removeAll() }, Wk._setCommon = function(t, e, i) { var n = e.hostModel;
  7026. 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");
  7027. 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);
  7028. i > 0 && (t.dataIndex = i + t.__startIndex) })) }, Wk._clearIncremental = function() { var t = this._incremental;
  7029. t && t.clearDisplaybles() }; var Hk = { seriesType: "lines", plan: zI(), reset: function(t) { var e = t.coordinateSystem,
  7030. i = t.get("polyline"),
  7031. n = t.pipelineContext.large; return { progress: function(o, a) { var r = []; if (n) { var s, l = o.end - o.start; if (i) { for (var u = 0, h = o.start; h < o.end; h++) u += t.getLineCoordsCount(h);
  7032. s = new Float32Array(l + 2 * u) } else s = new Float32Array(4 * l); for (var c = 0, d = [], h = o.start; h < o.end; h++) { g = t.getLineCoords(h, r), i && (s[c++] = g); for (var f = 0; f < g; f++) d = e.dataToPoint(r[f], !1, d), s[c++] = d[0], s[c++] = d[1] }
  7033. a.setLayout("linesPoints", s) } else
  7034. for (h = o.start; h < o.end; h++) { var p = a.getItemModel(h),
  7035. g = t.getLineCoords(h, r),
  7036. m = []; if (i)
  7037. for (var v = 0; v < g; v++) m.push(e.dataToPoint(r[v]));
  7038. else { m[0] = e.dataToPoint(r[0]), m[1] = e.dataToPoint(r[1]); var y = p.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]) }
  7039. a.setItemLayout(h, m) } } } } };
  7040. Fs({ type: "lines", init: function() {}, render: function(t, e, i) { var n = t.getData(),
  7041. o = this._updateLineDraw(n, t),
  7042. a = t.get("zlevel"),
  7043. r = t.get("effect.trailLength"),
  7044. s = i.getZr(),
  7045. l = "svg" === s.painter.getType();
  7046. l || s.painter.getLayer(a).clear(!0), null == this._lastZlevel || l || s.configLayer(this._lastZlevel, { motionBlur: !1 }), this._showEffect(t) && r && (l || s.configLayer(a, { motionBlur: !0, lastFrameAlpha: Math.max(Math.min(r / 10 + .9, 1), 0) })), o.updateData(n), this._lastZlevel = a, this._finished = !0 }, incrementalPrepareRender: function(t, e, i) { var n = t.getData();
  7047. this._updateLineDraw(n, t).incrementalPrepareUpdate(n), this._clearLayer(i), this._finished = !1 }, incrementalRender: function(t, e, i) { this._lineDraw.incrementalUpdate(t, e.getData()), this._finished = t.end === e.getData().count() }, updateTransform: function(t, e, i) { var n = t.getData(),
  7048. o = t.pipelineContext; if (!this._finished || o.large || o.progressiveRender) return { update: !0 }; var a = Hk.reset(t);
  7049. a.progress && a.progress({ start: 0, end: n.count() }, n), this._lineDraw.updateLayout(), this._clearLayer(i) }, _updateLineDraw: function(t, e) { var i = this._lineDraw,
  7050. n = this._showEffect(e),
  7051. o = !!e.get("polyline"),
  7052. a = e.pipelineContext.large; return i && n === this._hasEffet && o === this._isPolyline && a === this._isLargeDraw || (i && i.remove(), i = this._lineDraw = a ? new gg : new Jd(o ? n ? pg : fg : n ? dg : $d), this._hasEffet = n, this._isPolyline = o, this._isLargeDraw = a, this.group.removeAll()), this.group.add(i.group), i }, _showEffect: function(t) { return !!t.get("effect.show") }, _clearLayer: function(t) { var e = t.getZr(); "svg" === e.painter.getType() || 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 Zk = "lineStyle.opacity".split("."),
  7053. Uk = { seriesType: "lines", reset: function(t, e, i) { var n = mg(t.get("symbol")),
  7054. o = mg(t.get("symbolSize")),
  7055. a = t.getData(); return a.setVisual("fromSymbol", n && n[0]), a.setVisual("toSymbol", n && n[1]), a.setVisual("fromSymbolSize", o && o[0]), a.setVisual("toSymbolSize", o && o[1]), a.setVisual("opacity", t.get(Zk)), { dataEach: a.hasItemOption ? function(t, e) { var i = t.getItemModel(e),
  7056. n = mg(i.getShallow("symbol", !0)),
  7057. o = mg(i.getShallow("symbolSize", !0)),
  7058. a = i.get(Zk);
  7059. 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) } : null } } };
  7060. Os(Hk), Es(Uk), OI.extend({ type: "series.heatmap", getInitialData: function(t, e) { return dl(this.getSource(), this, { generateCoord: "value" }) }, preventIncremental: function() { var t = Ba.get(this.get("coordinateSystem")); if (t && t.dimensions) return "lng" === t.dimensions[0] && "lat" === t.dimensions[1] }, defaultOption: { coordinateSystem: "cartesian2d", zlevel: 0, z: 2, geoIndex: 0, blurSize: 30, pointSize: 20, maxOpacity: 1, minOpacity: 0 } });
  7061. vg.prototype = { update: function(t, e, i, n, o, a) { var r = this._getBrush(),
  7062. s = this._getGradient(t, o, "inRange"),
  7063. l = this._getGradient(t, o, "outOfRange"),
  7064. u = this.pointSize + this.blurSize,
  7065. h = this.canvas,
  7066. c = h.getContext("2d"),
  7067. d = t.length;
  7068. h.width = e, h.height = i; for (var f = 0; f < d; ++f) { var p = t[f],
  7069. g = p[0],
  7070. m = p[1],
  7071. v = n(p[2]);
  7072. c.globalAlpha = v, c.drawImage(r, g - u, m - u) } if (!h.width || !h.height) return h; for (var y = c.getImageData(0, 0, h.width, h.height), x = y.data, _ = 0, w = x.length, b = this.minOpacity, S = this.maxOpacity - b; _ < w;) { var v = x[_ + 3] / 256,
  7073. M = 4 * Math.floor(255 * v); if (v > 0) { var I = a(v) ? s : l;
  7074. v > 0 && (v = v * S + b), x[_++] = I[M], x[_++] = I[M + 1], x[_++] = I[M + 2], x[_++] = I[M + 3] * v * 256 } else _ += 4 } return c.putImageData(y, 0, 0), h }, _getBrush: function() { var t = this._brushCanvas || (this._brushCanvas = Y_()),
  7075. e = this.pointSize + this.blurSize,
  7076. i = 2 * e;
  7077. t.width = i, t.height = i; var n = t.getContext("2d"); return n.clearRect(0, 0, i, i), n.shadowOffsetX = i, n.shadowBlur = this.blurSize, n.shadowColor = "#000", n.beginPath(), n.arc(-e, e, this.pointSize, 0, 2 * Math.PI, !0), n.closePath(), n.fill(), t }, _getGradient: function(t, e, i) { for (var n = this._gradientPixels, o = n[i] || (n[i] = new Uint8ClampedArray(1024)), a = [0, 0, 0, 0], r = 0, s = 0; s < 256; s++) e[i](s / 255, !0, a), o[r++] = a[0], o[r++] = a[1], o[r++] = a[2], o[r++] = a[3]; return o } }, Fs({ type: "heatmap", render: function(t, e, i) { var n;
  7078. e.eachComponent("visualMap", function(e) { e.eachTargetSeries(function(i) { i === t && (n = e) }) }), this.group.removeAll(), this._incrementalDisplayable = null; var o = t.coordinateSystem; "cartesian2d" === o.type || "calendar" === o.type ? this._renderOnCartesianAndCalendar(t, i, 0, t.getData().count()) : _g(o) && this._renderOnGeo(o, t, n, i) }, incrementalPrepareRender: function(t, e, i) { this.group.removeAll() }, incrementalRender: function(t, e, i, n) { e.coordinateSystem && this._renderOnCartesianAndCalendar(e, n, t.start, t.end, !0) }, _renderOnCartesianAndCalendar: function(t, e, i, n, o) { var r, s, l = t.coordinateSystem; if ("cartesian2d" === l.type) { var u = l.getAxis("x"),
  7079. h = l.getAxis("y");
  7080. r = u.getBandWidth(), s = h.getBandWidth() } for (var c = this.group, d = t.getData(), f = t.getModel("itemStyle").getItemStyle(["color"]), p = t.getModel("emphasis.itemStyle").getItemStyle(), g = t.getModel("label"), m = t.getModel("emphasis.label"), v = l.type, y = "cartesian2d" === v ? [d.mapDimension("x"), d.mapDimension("y"), d.mapDimension("value")] : [d.mapDimension("time"), d.mapDimension("value")], x = i; x < n; x++) { var _; if ("cartesian2d" === v) { if (isNaN(d.get(y[2], x))) continue; var w = l.dataToPoint([d.get(y[0], x), d.get(y[1], x)]);
  7081. _ = new aM({ shape: { x: w[0] - r / 2, y: w[1] - s / 2, width: r, height: s }, style: { fill: d.getItemVisual(x, "color"), opacity: d.getItemVisual(x, "opacity") } }) } else { if (isNaN(d.get(y[1], x))) continue;
  7082. _ = new aM({ z2: 1, shape: l.dataToRect([d.get(y[0], x)]).contentShape, style: { fill: d.getItemVisual(x, "color"), opacity: d.getItemVisual(x, "opacity") } }) } var b = d.getItemModel(x);
  7083. d.hasItemOption && (f = b.getModel("itemStyle").getItemStyle(["color"]), p = b.getModel("emphasis.itemStyle").getItemStyle(), g = b.getModel("label"), m = b.getModel("emphasis.label")); var S = t.getRawValue(x),
  7084. M = "-";
  7085. S && null != S[2] && (M = S[2]), co(f, p, g, m, { labelFetcher: t, labelDataIndex: x, defaultText: M, isRectText: !0 }), _.setStyle(f), uo(_, d.hasItemOption ? p : a({}, p)), _.incremental = o, o && (_.useHoverLayer = !0), c.add(_), d.setItemGraphicEl(x, _) } }, _renderOnGeo: function(t, e, i, n) { var o = i.targetVisuals.inRange,
  7086. a = i.targetVisuals.outOfRange,
  7087. r = e.getData(),
  7088. s = this._hmLayer || this._hmLayer || new vg;
  7089. 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(),
  7090. u = t.getRoamTransform();
  7091. l.applyTransform(u); var h = Math.max(l.x, 0),
  7092. c = Math.max(l.y, 0),
  7093. d = Math.min(l.width + l.x, n.getWidth()),
  7094. f = Math.min(l.height + l.y, n.getHeight()),
  7095. p = d - h,
  7096. g = f - c,
  7097. m = [r.mapDimension("lng"), r.mapDimension("lat"), r.mapDimension("value")],
  7098. 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 }),
  7099. y = i.getExtent(),
  7100. x = "visualMap.continuous" === i.type ? xg(y, i.option.range) : yg(y, i.getPieceList(), i.option.selected);
  7101. s.update(v, p, g, o.color.getNormalizer(), { inRange: o.color.getColorMapper(), outOfRange: a.color.getColorMapper() }, x); var _ = new hi({ style: { width: p, height: g, x: h, y: c, image: s.canvas }, silent: !0 });
  7102. this.group.add(_) }, dispose: function() {} }); var Xk = ED.extend({ type: "series.pictorialBar", dependencies: ["grid"], defaultOption: { symbol: "circle", symbolSize: null, symbolRotate: null, symbolPosition: null, symbolOffset: null, symbolMargin: null, symbolRepeat: !1, symbolRepeatDirection: "end", symbolClip: !1, symbolBoundingData: null, symbolPatternSize: 400, barGap: "-100%", progressive: 0, hoverAnimation: !1 }, getInitialData: function(t) { return t.stack = null, Xk.superApply(this, "getInitialData", arguments) } }),
  7103. jk = ["itemStyle", "borderWidth"],
  7104. Yk = [{ xy: "x", wh: "width", index: 0, posDesc: ["left", "right"] }, { xy: "y", wh: "height", index: 1, posDesc: ["top", "bottom"] }],
  7105. qk = new KS;
  7106. Fs({ type: "pictorialBar", render: function(t, e, i) { var n = this.group,
  7107. o = t.getData(),
  7108. a = this._data,
  7109. r = t.coordinateSystem,
  7110. s = !!r.getBaseAxis().isHorizontal(),
  7111. l = r.grid.getRect(),
  7112. u = { ecSize: { width: i.getWidth(), height: i.getHeight() }, seriesModel: t, coordSys: r, coordSysExtent: [
  7113. [l.x, l.x + l.width],
  7114. [l.y, l.y + l.height]
  7115. ], isHorizontal: s, valueDim: Yk[+s], categoryDim: Yk[1 - s] }; return o.diff(a).add(function(t) { if (o.hasValue(t)) { var e = Pg(o, t),
  7116. i = wg(o, t, e, u),
  7117. a = Rg(o, u, i);
  7118. o.setItemGraphicEl(t, a), n.add(a), Wg(a, u, i) } }).update(function(t, e) { var i = a.getItemGraphicEl(e); if (o.hasValue(t)) { var r = Pg(o, t),
  7119. s = wg(o, t, r, u),
  7120. l = Vg(o, s);
  7121. i && l !== i.__pictorialShapeStr && (n.remove(i), o.setItemGraphicEl(t, null), i = null), i ? zg(i, u, s) : i = Rg(o, u, s, !0), o.setItemGraphicEl(t, i), i.__pictorialSymbolMeta = s, n.add(i), Wg(i, u, s) } else n.remove(i) }).remove(function(t) { var e = a.getItemGraphicEl(t);
  7122. e && Bg(a, t, e.__pictorialSymbolMeta.animationModel, e) }).execute(), this._data = o, this.group }, dispose: B, remove: function(t, e) { var i = this.group,
  7123. n = this._data;
  7124. t.get("animation") ? n && n.eachItemGraphicEl(function(e) { Bg(n, e.dataIndex, t, e) }) : i.removeAll() } });
  7125. Os(v(kl, "pictorialBar")), Es(hD("pictorialBar", "roundRect")); var Kk = function(t, e, i, n, o) { HA.call(this, t, e, i), this.type = n || "value", this.position = o || "bottom", this.orient = null };
  7126. Kk.prototype = { constructor: Kk, 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 }, u(Kk, HA), Zg.prototype = { type: "singleAxis", axisPointerEnabled: !0, constructor: Zg, _init: function(t, e, i) { var n = this.dimension,
  7127. o = new Kk(n, Vl(t), [0, 0], t.get("type"), t.get("position")),
  7128. a = "category" === o.type;
  7129. o.onBand = a && t.get("boundaryGap"), o.inverse = t.get("inverse"), o.orient = t.get("orient"), t.axis = o, o.model = t, o.coordinateSystem = this, this._axis = o }, update: function(t, e) { t.eachSeries(function(t) { if (t.coordinateSystem === this) { var e = t.getData();
  7130. d(e.mapDimension(this.dimension, !0), function(t) { this._axis.scale.unionExtentFromData(e, t) }, this), Bl(this._axis.scale, this._axis.model) } }, this) }, resize: function(t, e) { this._rect = la({ 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,
  7131. e = this._axis,
  7132. i = e.isHorizontal(),
  7133. n = i ? [0, t.width] : [0, t.height],
  7134. o = e.reverse ? 1 : 0;
  7135. e.setExtent(n[o], n[1 - o]), this._updateAxisTransform(e, i ? t.x : t.y) }, _updateAxisTransform: function(t, e) { var i = t.getExtent(),
  7136. n = i[0] + i[1],
  7137. o = t.isHorizontal();
  7138. 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(),
  7139. i = this.getAxis(); return "horizontal" === i.orient ? 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(),
  7140. i = this.getRect(),
  7141. n = [],
  7142. 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 } }, Ba.register("single", { create: function(t, e) { var i = []; return t.eachComponent("singleAxis", function(n, o) { var a = new Zg(n, t, e);
  7143. a.name = "single_" + o, a.resize(n, e), n.coordinateSystem = a, i.push(a) }), t.eachSeries(function(e) { if ("singleAxis" === e.get("coordinateSystem")) { var i = t.queryComponents({ mainType: "singleAxis", index: e.get("singleAxisIndex"), id: e.get("singleAxisId") })[0];
  7144. e.coordinateSystem = i && i.coordinateSystem } }), i }, dimensions: Zg.prototype.dimensions }); var $k = ["axisLine", "axisTickLabel", "axisName"],
  7145. Jk = LD.extend({ type: "singleAxis", axisPointerClass: "SingleAxisPointer", render: function(t, e, i, n) { var o = this.group;
  7146. o.removeAll(); var a = Ug(t),
  7147. r = new ID(t, a);
  7148. d($k, r.add, r), o.add(r.getGroup()), t.get("splitLine.show") && this._splitLine(t), Jk.superCall(this, "render", t, e, i, n) }, _splitLine: function(t) { var e = t.axis; if (!e.scale.isBlank()) { var i = t.getModel("splitLine"),
  7149. n = i.getModel("lineStyle"),
  7150. o = n.get("width"),
  7151. a = n.get("color");
  7152. a = a instanceof Array ? a : [a]; for (var r = t.coordinateSystem.getRect(), s = e.isHorizontal(), l = [], u = 0, h = e.getTicksCoords({ tickModel: i }), c = [], d = [], f = 0; f < h.length; ++f) { var p = e.toGlobalCoord(h[f].coord);
  7153. s ? (c[0] = p, c[1] = r.y, d[0] = p, d[1] = r.y + r.height) : (c[0] = r.x, c[1] = p, d[0] = r.x + r.width, d[1] = p); var g = u++ % a.length;
  7154. l[g] = l[g] || [], l[g].push(new rM(Xn({ shape: { x1: c[0], y1: c[1], x2: d[0], y2: d[1] }, style: { lineWidth: o }, silent: !0 }))) } for (f = 0; f < l.length; ++f) this.group.add(xM(l[f], { style: { stroke: a[f % a.length], lineDash: n.getLineDash(o), lineWidth: o }, silent: !0 })) } } }),
  7155. Qk = YM.extend({ type: "singleAxis", layoutMode: "box", axis: null, coordinateSystem: null, getCoordSysModel: function() { return this } }),
  7156. tP = { left: "5%", top: "5%", right: "5%", bottom: "5%", type: "value", position: "bottom", orient: "horizontal", axisLine: { show: !0, lineStyle: { width: 2, type: "solid" } }, tooltip: { show: !0 }, axisTick: { show: !0, length: 6, lineStyle: { width: 2 } }, axisLabel: { show: !0, interval: "auto" }, splitLine: { show: !0, lineStyle: { type: "dashed", opacity: .2 } } };
  7157. n(Qk.prototype, CA), xD("single", Qk, function(t, e) { return e.type || (e.data ? "category" : "value") }, tP); var eP = function(t, e) { var i, n = [],
  7158. o = t.seriesIndex; if (null == o || !(i = e.getSeriesByIndex(o))) return { point: [] }; var a = i.getData(),
  7159. r = zi(a, t); if (null == r || r < 0 || y(r)) return { point: [] }; var s = a.getItemGraphicEl(r),
  7160. l = i.coordinateSystem; if (i.getTooltipPosition) n = i.getTooltipPosition(r) || [];
  7161. else if (l && l.dataToPoint) n = l.dataToPoint(a.getValues(f(l.dimensions, function(t) { return a.mapDimension(t) }), r, !0)) || [];
  7162. else if (s) { var u = s.getBoundingRect().clone();
  7163. u.applyTransform(s.transform), n = [u.x + u.width / 2, u.y + u.height / 2] } return { point: n, el: s } },
  7164. iP = d,
  7165. nP = v,
  7166. oP = Bi(),
  7167. aP = (Bs({ 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 } } }), Bi()),
  7168. rP = d,
  7169. sP = Vs({ type: "axisPointer", render: function(t, e, i) { var n = e.getComponent("tooltip"),
  7170. o = t.get("triggerOn") || n && n.get("triggerOn") || "mousemove|click";
  7171. im("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) { lm(e.getZr(), "axisPointer"), sP.superApply(this._model, "remove", arguments) }, dispose: function(t, e) { lm("axisPointer", e), sP.superApply(this._model, "dispose", arguments) } }),
  7172. lP = Bi(),
  7173. uP = i,
  7174. hP = m;
  7175. (um.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"),
  7176. 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,
  7177. s = this._handle; if (!a || "hide" === a) return r && r.hide(), void(s && s.hide());
  7178. r && r.show(), s && s.show(); var l = {};
  7179. this.makeElOption(l, o, t, e, i); var u = l.graphicKey;
  7180. u !== this._lastGraphicKey && this.clear(i), this._lastGraphicKey = u; var h = this._moveAnimation = this.determineAnimation(t, e); if (r) { var c = v(hm, e, h);
  7181. this.updatePointerEl(r, l, c, e), this.updateLabelEl(r, l, c, e) } else r = this._group = new Zw, this.createPointerEl(r, l, t, e), this.createLabelEl(r, l, t, e), i.getZr().add(r);
  7182. pm(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"),
  7183. n = t.axis,
  7184. o = "category" === n.type,
  7185. 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 = xh(t).seriesDataCount,
  7186. l = n.getExtent(); return Math.abs(l[0] - l[1]) / s > r } return !1 } return !0 === i }, makeElOption: function(t, e, i, n, o) {}, createPointerEl: function(t, e, i, n) { var o = e.pointer; if (o) { var a = lP(t).pointerEl = new bM[o.type](uP(e.pointer));
  7187. t.add(a) } }, createLabelEl: function(t, e, i, n) { if (e.label) { var o = lP(t).labelEl = new aM(uP(e.label));
  7188. t.add(o), dm(o, n) } }, updatePointerEl: function(t, e, i) { var n = lP(t).pointerEl;
  7189. n && (n.setStyle(e.pointer.style), i(n, { shape: e.pointer.shape })) }, updateLabelEl: function(t, e, i, n) { var o = lP(t).labelEl;
  7190. o && (o.setStyle(e.label.style), i(o, { shape: e.label.shape, position: e.label.position }), dm(o, n)) }, _renderHandle: function(t) { if (!this._dragging && this.updateHandleTransform) { var e = this._axisPointerModel,
  7191. i = this._api.getZr(),
  7192. n = this._handle,
  7193. o = e.getModel("handle"),
  7194. a = e.get("status"); if (!o.get("show") || !a || "hide" === a) return n && i.remove(n), void(this._handle = null); var r;
  7195. this._handle || (r = !0, n = this._handle = Co(o.get("icon"), { cursor: "move", draggable: !0, onmousemove: function(t) { lw(t.event) }, onmousedown: hP(this._onHandleDragMove, this, 0, 0), drift: hP(this._onHandleDragMove, this), ondragend: hP(this._onHandleDragEnd, this) }), i.add(n)), pm(n, e, !1); var s = ["color", "borderColor", "borderWidth", "opacity", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"];
  7196. n.setStyle(o.getItemStyle(null, s)); var l = o.get("size");
  7197. y(l) || (l = [l, l]), n.attr("scale", [l[0] / 2, l[1] / 2]), Lr(this, "_doDispatchAxisPointer", o.get("throttle") || 0, "fixRate"), this._moveHandleToValue(t, r) } }, _moveHandleToValue: function(t, e) { hm(this._axisPointerModel, !e && this._moveAnimation, this._handle, fm(this.getHandleTransform(t, this._axisModel, this._axisPointerModel))) }, _onHandleDragMove: function(t, e) { var i = this._handle; if (i) { this._dragging = !0; var n = this.updateHandleTransform(fm(i), [t, e], this._axisModel, this._axisPointerModel);
  7198. this._payloadInfo = n, i.stopAnimation(), i.attr(fm(n)), lP(i).lastProp = null, this._doDispatchAxisPointer() } }, _doDispatchAxisPointer: function() { if (this._handle) { var t = this._payloadInfo,
  7199. e = this._axisModel;
  7200. this._api.dispatchAction({ type: "updateAxisPointer", x: t.cursorPoint[0], y: t.cursorPoint[1], tooltipOption: t.tooltipOption, axesInfo: [{ axisDim: e.axis.dim, axisIndex: e.componentIndex }] }) } }, _onHandleDragEnd: function(t) { if (this._dragging = !1, this._handle) { var e = this._axisPointerModel.get("value");
  7201. 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(),
  7202. i = this._group,
  7203. n = this._handle;
  7204. e && i && (this._lastGraphicKey = null, i && e.remove(i), n && e.remove(n), this._group = null, this._handle = null, this._payloadInfo = null) }, doClear: function() {}, buildLabel: function(t, e, i) { return i = i || 0, { x: t[i], y: t[1 - i], width: e[i], height: e[1 - i] } } }).constructor = um, Xi(um); var cP = um.extend({ makeElOption: function(t, e, i, n, o) { var a = i.axis,
  7205. r = a.grid,
  7206. s = n.get("type"),
  7207. l = Mm(r, a).getOtherAxis(a).getGlobalExtent(),
  7208. u = a.toGlobalCoord(a.dataToCoord(e, !0)); if (s && "none" !== s) { var h = gm(n),
  7209. c = dP[s](a, u, l, h);
  7210. c.style = h, t.graphicKey = c.type, t.pointer = c }
  7211. _m(e, t, Ih(r.model, i), i, n, o) }, getHandleTransform: function(t, e, i) { var n = Ih(e.axis.grid.model, e, { labelInside: !1 }); return n.labelMargin = i.get("handle.margin"), { position: xm(e.axis, t, n), rotation: n.rotation + (n.labelDirection < 0 ? Math.PI : 0) } }, updateHandleTransform: function(t, e, i, n) { var o = i.axis,
  7212. a = o.grid,
  7213. r = o.getGlobalExtent(!0),
  7214. s = Mm(a, o).getOtherAxis(o).getGlobalExtent(),
  7215. l = "x" === o.dim ? 0 : 1,
  7216. u = t.position;
  7217. u[l] += e[l], u[l] = Math.min(r[1], u[l]), u[l] = Math.max(r[0], u[l]); var h = (s[1] + s[0]) / 2,
  7218. c = [h, h];
  7219. c[l] = u[l]; var d = [{ verticalAlign: "middle" }, { align: "center" }]; return { position: u, rotation: t.rotation, cursorPoint: c, tooltipOption: d[l] } } }),
  7220. dP = { line: function(t, e, i, n) { var o = wm([e, i[0]], [e, i[1]], Im(t)); return Xn({ shape: o, style: n }), { type: "Line", shape: o } }, shadow: function(t, e, i, n) { var o = Math.max(1, t.getBandWidth()),
  7221. a = i[1] - i[0]; return { type: "Rect", shape: bm([e - o / 2, i[0]], [o, a], Im(t)) } } };
  7222. LD.registerAxisPointerClass("CartesianAxisPointer", cP), Ls(function(t) { if (t) {
  7223. (!t.axisPointer || 0 === t.axisPointer.length) && (t.axisPointer = {}); var e = t.axisPointer.link;
  7224. e && !y(e) && (t.axisPointer.link = [e]) } }), ks(IT.PROCESSOR.STATISTIC, function(t, e) { t.getComponent("axisPointer").coordSysAxesInfo = dh(t, e) }), Ps({ type: "updateAxisPointer", event: "updateAxisPointer", update: ":updateAxisPointer" }, function(t, e, i) { var n = t.currTrigger,
  7225. o = [t.x, t.y],
  7226. a = t,
  7227. r = t.dispatchAction || m(i.dispatchAction, i),
  7228. s = e.getComponent("axisPointer").coordSysAxesInfo; if (s) { em(o) && (o = eP({ seriesIndex: a.seriesIndex, dataIndex: a.dataIndex }, e).point); var l = em(o),
  7229. u = a.axesInfo,
  7230. h = s.axesInfo,
  7231. c = "leave" === n || em(o),
  7232. d = {},
  7233. f = {},
  7234. p = { list: [], map: {} },
  7235. g = { showPointer: nP(Yg, f), showTooltip: nP(qg, p) };
  7236. iP(s.coordSysMap, function(t, e) { var i = l || t.containPoint(o);
  7237. iP(s.coordSysAxesInfo[e], function(t, e) { var n = t.axis,
  7238. a = Qg(u, t); if (!c && i && (!u || a)) { var r = a && a.value;
  7239. null != r || l || (r = n.pointToData(o)), null != r && Xg(t, r, g, !1, d) } }) }); var v = {}; return iP(h, function(t, e) { var i = t.linkGroup;
  7240. i && !f[e] && iP(i.axesInfo, function(e, n) { var o = f[n]; if (e !== t && o) { var a = o.value;
  7241. i.mapper && (a = t.axis.scale.parse(i.mapper(a, tm(e), tm(t)))), v[t.key] = a } }) }), iP(v, function(t, e) { Xg(h[e], t, g, !0, d) }), Kg(f, h, d), $g(p, o, t, r), Jg(h, 0, i), d } }); var fP = ["x", "y"],
  7242. pP = ["width", "height"],
  7243. gP = um.extend({ makeElOption: function(t, e, i, n, o) { var a = i.axis,
  7244. r = a.coordinateSystem,
  7245. s = Am(r, 1 - Tm(a)),
  7246. l = r.dataToPoint(e)[0],
  7247. u = n.get("type"); if (u && "none" !== u) { var h = gm(n),
  7248. c = mP[u](a, l, s, h);
  7249. c.style = h, t.graphicKey = c.type, t.pointer = c }
  7250. _m(e, t, Ug(i), i, n, o) }, getHandleTransform: function(t, e, i) { var n = Ug(e, { labelInside: !1 }); return n.labelMargin = i.get("handle.margin"), { position: xm(e.axis, t, n), rotation: n.rotation + (n.labelDirection < 0 ? Math.PI : 0) } }, updateHandleTransform: function(t, e, i, n) { var o = i.axis,
  7251. a = o.coordinateSystem,
  7252. r = Tm(o),
  7253. s = Am(a, r),
  7254. l = t.position;
  7255. l[r] += e[r], l[r] = Math.min(s[1], l[r]), l[r] = Math.max(s[0], l[r]); var u = Am(a, 1 - r),
  7256. h = (u[1] + u[0]) / 2,
  7257. c = [h, h]; return c[r] = l[r], { position: l, rotation: t.rotation, cursorPoint: c, tooltipOption: { verticalAlign: "middle" } } } }),
  7258. mP = { line: function(t, e, i, n) { var o = wm([e, i[0]], [e, i[1]], Tm(t)); return Xn({ shape: o, style: n }), { type: "Line", shape: o } }, shadow: function(t, e, i, n) { var o = t.getBandWidth(),
  7259. a = i[1] - i[0]; return { type: "Rect", shape: bm([e - o / 2, i[0]], [o, a], Tm(t)) } } };
  7260. LD.registerAxisPointerClass("SingleAxisPointer", gP), Vs({ type: "single" }); var vP = OI.extend({ type: "series.themeRiver", dependencies: ["singleAxis"], nameMap: null, init: function(t) { vP.superApply(this, "init", arguments), this.legendDataProvider = function() { return this.getRawData() } }, fixData: function(t) { for (var e = t.length, i = f(Lp().key(function(t) { return t[2] }).entries(t), function(t) { return { name: t.key, dataList: t.values } }), n = i.length, o = -1, a = -1, r = 0; r < n; ++r) { var s = i[r].dataList.length;
  7261. s > o && (o = s, a = r) } for (var l = 0; l < n; ++l)
  7262. if (l !== a)
  7263. for (var u = i[l].name, h = 0; h < o; ++h) { for (var c = i[a].dataList[h][0], d = i[l].dataList.length, p = -1, g = 0; g < d; ++g)
  7264. if (i[l].dataList[g][0] === c) { p = g; break } - 1 === p && (t[e] = [], t[e][0] = c, t[e][1] = 0, t[e][2] = u, e++) }
  7265. return t }, getInitialData: function(t, e) { for (var i = e.queryComponents({ mainType: "singleAxis", index: this.get("singleAxisIndex"), id: this.get("singleAxisId") })[0].get("type"), n = g(t.data, function(t) { return void 0 !== t[2] }), o = this.fixData(n || []), a = [], r = this.nameMap = R(), s = 0, l = 0; l < o.length; ++l) a.push(o[l][2]), r.get(o[l][2]) || (r.set(o[l][2], s), s++); var u = oA(o, { coordDimensions: ["single"], dimensionsDefine: [{ name: "time", type: Xs(i) }, { name: "value", type: "float" }, { name: "name", type: "ordinal" }], encodeDefine: { single: 0, value: 1, itemName: 2 } }),
  7266. h = new eA(u, this); return h.initData(o), h }, getLayerSeries: function() { for (var t = this.getData(), e = t.count(), i = [], n = 0; n < e; ++n) i[n] = n; for (var o = f(Lp().key(function(e) { return t.get("name", e) }).entries(i), function(t) { return { name: t.key, indices: t.values } }), a = t.mapDimension("single"), r = 0; r < o.length; ++r) o[r].indices.sort(function(e, i) { return t.get(a, e) - t.get(a, i) }); return o }, getAxisTooltipData: function(t, e, i) { y(t) || (t = t ? [t] : []); for (var n, o = this.getData(), a = this.getLayerSeries(), r = [], s = a.length, l = 0; l < s; ++l) { for (var u = Number.MAX_VALUE, h = -1, c = a[l].indices.length, d = 0; d < c; ++d) { var f = o.get(t[0], a[l].indices[d]),
  7267. p = Math.abs(f - e);
  7268. p <= u && (n = f, u = p, h = a[l].indices[d]) }
  7269. r.push(h) } return { dataIndices: r, nestestValue: n } }, formatTooltip: function(t) { var e = this.getData(),
  7270. i = e.getName(t),
  7271. n = e.get(e.mapDimension("value"), t); return (isNaN(n) || null == n) && (n = "-"), Qo(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 } } } });
  7272. Fs({ type: "themeRiver", init: function() { this._layers = [] }, render: function(t, e, i) {
  7273. function n(t) { return t.name }
  7274. function o(e, i, n) { var o = this._layers; if ("remove" !== e) { for (var u, h = [], c = [], f = l[i].indices, p = 0; p < f.length; p++) { var g = r.getItemLayout(f[p]),
  7275. m = g.x,
  7276. v = g.y0,
  7277. y = g.y;
  7278. h.push([m, v]), c.push([m, v + y]), u = r.getItemVisual(f[p], "color") } var x, _, w = r.getItemLayout(f[0]),
  7279. b = r.getItemModel(f[p - 1]),
  7280. S = b.getModel("label"),
  7281. M = S.get("margin"); if ("add" === e) { I = d[i] = new Zw;
  7282. x = new uD({ shape: { points: h, stackedOnPoints: c, smooth: .4, stackedOnSmooth: .4, smoothConstraint: !1 }, z2: 0 }), _ = new qS({ style: { x: w.x - M, y: w.y0 + w.y / 2 } }), I.add(x), I.add(_), s.add(I), x.setClipPath(Dm(x.getBoundingRect(), t, function() { x.removeClipPath() })) } else { var I = o[n];
  7283. x = I.childAt(0), _ = I.childAt(1), s.add(I), d[i] = I, bo(x, { shape: { points: h, stackedOnPoints: c } }, t), bo(_, { style: { x: w.x - M, y: w.y0 + w.y / 2 } }, t) } var T = b.getModel("emphasis.itemStyle"),
  7284. A = b.getModel("itemStyle");
  7285. fo(_.style, S, { text: S.get("show") ? t.getFormattedLabel(f[p - 1], "normal") || r.getName(f[p - 1]) : null, textVerticalAlign: "middle" }), x.setStyle(a({ fill: u }, A.getItemStyle(["color"]))), uo(x, T.getItemStyle()) } else s.remove(o[i]) } var r = t.getData(),
  7286. s = this.group,
  7287. l = t.getLayerSeries(),
  7288. u = r.getLayout("layoutInfo"),
  7289. h = u.rect,
  7290. c = u.boundaryGap;
  7291. s.attr("position", [0, h.y + c[0]]); var d = {};
  7292. new Hs(this._layersSeries || [], l, n, n).add(m(o, this, "add")).update(m(o, this, "update")).remove(m(o, this, "remove")).execute(), this._layersSeries = l, this._layers = d }, dispose: function() {} });
  7293. Os(function(t, e) { t.eachSeriesByType("themeRiver", function(t) { var e = t.getData(),
  7294. i = t.coordinateSystem,
  7295. n = {},
  7296. o = i.getRect();
  7297. n.rect = o; var a = t.get("boundaryGap"),
  7298. r = i.getAxis();
  7299. n.boundaryGap = a, "horizontal" === r.orient ? (a[0] = Ro(a[0], o.height), a[1] = Ro(a[1], o.height), Cm(e, t, o.height - a[0] - a[1])) : (a[0] = Ro(a[0], o.width), a[1] = Ro(a[1], o.width), Cm(e, t, o.width - a[0] - a[1])), e.setLayout("layoutInfo", n) }) }), Es(function(t) { t.eachSeriesByType("themeRiver", function(t) { var e = t.getData(),
  7300. i = t.getRawData(),
  7301. n = t.get("color"),
  7302. o = R();
  7303. e.each(function(t) { o.set(e.getRawIndex(t), t) }), i.each(function(a) { var r = i.getName(a),
  7304. s = n[(t.nameMap.get(r) - 1) % n.length];
  7305. i.setItemVisual(a, "color", s); var l = o.get(a);
  7306. null != l && e.setItemVisual(l, "color", s) }) }) }), ks($D("themeRiver")), OI.extend({ type: "series.sunburst", _viewRoot: null, getInitialData: function(t, e) { var i = { name: t.name, children: t.data };
  7307. km(i); var n = t.levels || [],
  7308. o = {}; return o.levels = n, kc.createTree(i, this, o).data }, optionUpdated: function() { this.resetViewRoot() }, getDataParams: function(t) { var e = OI.prototype.getDataParams.apply(this, arguments),
  7309. i = this.getData().tree.getNodeByDataIndex(t); return e.treePathInfo = nd(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, emphasis: {} }, itemStyle: { borderWidth: 1, borderColor: "white", borderType: "solid", shadowBlur: 0, shadowColor: "rgba(0, 0, 0, 0.2)", shadowOffsetX: 0, shadowOffsetY: 0, opacity: 1, emphasis: {}, highlight: { opacity: 1 }, downplay: { opacity: .9 } }, 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;
  7310. t && (t === e || e.contains(t)) || (this._viewRoot = e) } }); var yP = { NONE: "none", DESCENDANT: "descendant", ANCESTOR: "ancestor", SELF: "self" },
  7311. xP = 2,
  7312. _P = 4,
  7313. wP = Pm.prototype;
  7314. wP.updateData = function(t, e, i, o, s) { this.node = e, e.piece = this, o = o || this._seriesModel, s = s || this._ecModel; var l = this.childAt(0);
  7315. l.dataIndex = e.dataIndex; var u = e.getModel(),
  7316. h = e.getLayout();
  7317. h || console.log(e.getLayout()); var c = a({}, h);
  7318. c.label = null; var d, f = Nm(e, 0, s),
  7319. p = u.getModel("itemStyle").getItemStyle();
  7320. d = r({ lineJoin: "bevel", fill: (d = "normal" === i ? p : n(u.getModel(i + ".itemStyle").getItemStyle(), p)).fill || f }, d), t ? (l.setShape(c), l.shape.r = h.r0, bo(l, { shape: { r: h.r } }, o, e.dataIndex), l.useStyle(d)) : "object" == typeof d.fill && d.fill.type || "object" == typeof l.style.fill && l.style.fill.type ? (bo(l, { shape: c }, o), l.useStyle(d)) : bo(l, { shape: c, style: d }, o), this._updateLabel(o, f, i); var g = u.getShallow("cursor"); if (g && l.attr("cursor", g), t) { var m = o.getShallow("highlightPolicy");
  7321. this._initEvents(l, e, o, m) }
  7322. this._seriesModel = o || this._seriesModel, this._ecModel = s || this._ecModel }, wP.onEmphasis = function(t) { var e = this;
  7323. this.node.hostTree.root.eachNode(function(i) { i.piece && (e.node === i ? i.piece.updateData(!1, i, "emphasis") : Em(i, e.node, t) ? i.piece.childAt(0).trigger("highlight") : t !== yP.NONE && i.piece.childAt(0).trigger("downplay")) }) }, wP.onNormal = function() { this.node.hostTree.root.eachNode(function(t) { t.piece && t.piece.updateData(!1, t, "normal") }) }, wP.onHighlight = function() { this.updateData(!1, this.node, "highlight") }, wP.onDownplay = function() { this.updateData(!1, this.node, "downplay") }, wP._updateLabel = function(t, e, i) {
  7324. function n(t) { var e = r.get(t); return null == e ? a.get(t) : e } var o = this.node.getModel(),
  7325. a = o.getModel("label"),
  7326. r = "normal" === i || "emphasis" === i ? a : o.getModel(i + ".label"),
  7327. s = o.getModel("emphasis.label"),
  7328. l = T(t.getFormattedLabel(this.node.dataIndex, "normal", null, null, "label"), this.node.name);!1 === n("show") && (l = ""); var u = this.node.getLayout(),
  7329. h = r.get("minAngle");
  7330. null == h && (h = a.get("minAngle")), h = h / 180 * Math.PI; var c = u.endAngle - u.startAngle;
  7331. null != h && Math.abs(c) < h && (l = ""); var d = this.childAt(1);
  7332. co(d.style, d.hoverStyle || {}, a, s, { defaultText: r.getShallow("show") ? l : null, autoColor: e, useInsideStyle: !0 }); var f, p = (u.startAngle + u.endAngle) / 2,
  7333. g = Math.cos(p),
  7334. m = Math.sin(p),
  7335. v = n("position"),
  7336. y = n("distance") || 0,
  7337. x = n("align"); "outside" === v ? (f = u.r + y, x = p > Math.PI / 2 ? "right" : "left") : x && "center" !== x ? "left" === x ? (f = u.r0 + y, p > Math.PI / 2 && (x = "right")) : "right" === x && (f = u.r - y, p > Math.PI / 2 && (x = "left")) : (f = (u.r + u.r0) / 2, x = "center"), d.attr("style", { text: l, textAlign: x, textVerticalAlign: n("verticalAlign") || "middle", opacity: n("opacity") }); var _ = f * g + u.cx,
  7338. w = f * m + u.cy;
  7339. d.attr("position", [_, w]); var b = n("rotate"),
  7340. S = 0; "radial" === b ? (S = -p) < -Math.PI / 2 && (S += Math.PI) : "tangential" === b ? (S = Math.PI / 2 - p) > Math.PI / 2 ? S -= Math.PI : S < -Math.PI / 2 && (S += Math.PI) : "number" == typeof b && (S = b * Math.PI / 180), d.attr("rotation", S) }, wP._initEvents = function(t, e, i, n) { t.off("mouseover").off("mouseout").off("emphasis").off("normal"); var o = this,
  7341. a = function() { o.onEmphasis(n) },
  7342. r = function() { o.onNormal() };
  7343. i.isAnimationEnabled() && t.on("mouseover", a).on("mouseout", r).on("emphasis", a).on("normal", r).on("downplay", function() { o.onDownplay() }).on("highlight", function() { o.onHighlight() }) }, u(Pm, Zw);
  7344. Mr.extend({ type: "sunburst", init: function() {}, render: function(t, e, i, n) {
  7345. function o(i, n) { if (c || !i || i.getValue() || (i = null), i !== l && n !== l)
  7346. if (n && n.piece) i ? (n.piece.updateData(!1, i, "normal", t, e), s.setItemGraphicEl(i.dataIndex, n.piece)) : a(n);
  7347. else if (i) { var o = new Pm(i, t, e);
  7348. h.add(o), s.setItemGraphicEl(i.dataIndex, o) } }
  7349. function a(t) { t && t.piece && (h.remove(t.piece), t.piece = null) } var r = this;
  7350. this.seriesModel = t, this.api = i, this.ecModel = e; var s = t.getData(),
  7351. l = s.tree.root,
  7352. u = t.getViewRoot(),
  7353. h = this.group,
  7354. c = t.get("renderLabelForZeroData"),
  7355. d = [];
  7356. u.eachNode(function(t) { d.push(t) }); var f = this._oldChildren || []; if (function(t, e) {
  7357. function i(t) { return t.getId() }
  7358. function n(i, n) { o(null == i ? null : t[i], null == n ? null : e[n]) }
  7359. 0 === t.length && 0 === e.length || new Hs(e, t, i, i).add(n).update(n).remove(v(n, null)).execute() }(d, f), function(i, n) { if (n.depth > 0) { r.virtualPiece ? r.virtualPiece.updateData(!1, i, "normal", t, e) : (r.virtualPiece = new Pm(i, t, e), h.add(r.virtualPiece)), n.piece._onclickEvent && n.piece.off("click", n.piece._onclickEvent); var o = function(t) { r._rootToNode(n.parentNode) };
  7360. n.piece._onclickEvent = o, r.virtualPiece.on("click", o) } else r.virtualPiece && (h.remove(r.virtualPiece), r.virtualPiece = null) }(l, u), n && n.highlight && n.highlight.piece) { var p = t.getShallow("highlightPolicy");
  7361. n.highlight.piece.onEmphasis(p) } else if (n && n.unhighlight) { var g = this.virtualPiece;!g && l.children.length && (g = l.children[0].piece), g && g.onNormal() }
  7362. this._initEvents(), this._oldChildren = d }, dispose: function() {}, _initEvents: function() { var t = this,
  7363. e = function(e) { var i = !1;
  7364. t.seriesModel.getViewRoot().eachNode(function(n) { if (!i && n.piece && n.piece.childAt(0) === e.target) { var o = n.getModel().get("nodeClick"); if ("rootToNode" === o) t._rootToNode(n);
  7365. else if ("link" === o) { var a = n.getModel(),
  7366. r = a.get("link"); if (r) { var s = a.get("target", !0) || "_blank";
  7367. window.open(r, s) } }
  7368. i = !0 } }) };
  7369. this.group._onclickEvent && this.group.off("click", this.group._onclickEvent), this.group.on("click", e), this.group._onclickEvent = e }, _rootToNode: function(t) { t !== this.seriesModel.getViewRoot() && this.api.dispatchAction({ type: "sunburstRootToNode", from: this.uid, seriesId: this.seriesModel.id, targetNode: t }) }, containPoint: function(t, e) { var i = e.getData().getItemLayout(0); if (i) { var n = t[0] - i.cx,
  7370. o = t[1] - i.cy,
  7371. a = Math.sqrt(n * n + o * o); return a <= i.r && a >= i.r0 } } }); var bP = "sunburstRootToNode";
  7372. Ps({ type: bP, update: "updateView" }, function(t, e) { e.eachComponent({ mainType: "series", subType: "sunburst", query: t }, function(e, i) { var n = td(t, [bP], e); if (n) { var o = e.getViewRoot();
  7373. o && (t.direction = id(o, n.node) ? "rollUp" : "drillDown"), e.resetViewRoot(n.node) } }) }); var SP = "sunburstHighlight";
  7374. Ps({ type: SP, update: "updateView" }, function(t, e) { e.eachComponent({ mainType: "series", subType: "sunburst", query: t }, function(e, i) { var n = td(t, [SP], e);
  7375. n && (t.highlight = n.node) }) });
  7376. Ps({ type: "sunburstUnhighlight", update: "updateView" }, function(t, e) { e.eachComponent({ mainType: "series", subType: "sunburst", query: t }, function(e, i) { t.unhighlight = !0 }) }); var MP = Math.PI / 180;
  7377. Es(v(jD, "sunburst")), Os(v(function(t, e, i, n) { e.eachSeriesByType(t, function(t) { var e = t.get("center"),
  7378. n = t.get("radius");
  7379. y(n) || (n = [0, n]), y(e) || (e = [e, e]); var o = i.getWidth(),
  7380. a = i.getHeight(),
  7381. r = Math.min(o, a),
  7382. s = Ro(e[0], o),
  7383. l = Ro(e[1], a),
  7384. u = Ro(n[0], r / 2),
  7385. h = Ro(n[1], r / 2),
  7386. c = -t.get("startAngle") * MP,
  7387. f = t.get("minAngle") * MP,
  7388. p = t.getData().tree.root,
  7389. g = t.getViewRoot(),
  7390. m = g.depth,
  7391. v = t.get("sort");
  7392. null != v && Rm(g, v); var x = 0;
  7393. d(g.children, function(t) {!isNaN(t.getValue()) && x++ }); var _ = g.getValue(),
  7394. w = Math.PI / (_ || x) * 2,
  7395. b = g.depth > 0,
  7396. S = g.height - (b ? -1 : 1),
  7397. M = (h - u) / (S || 1),
  7398. I = t.get("clockwise"),
  7399. T = t.get("stillShowZeroSum"),
  7400. A = I ? 1 : -1,
  7401. D = function(t, e) { if (t) { var i = e; if (t !== p) { var n = t.getValue(),
  7402. o = 0 === _ && T ? w : n * w;
  7403. o < f && (o = f), i = e + A * o; var a = t.depth - m - (b ? -1 : 1),
  7404. h = u + M * a,
  7405. c = u + M * (a + 1),
  7406. g = t.getModel();
  7407. null != g.get("r0") && (h = Ro(g.get("r0"), r / 2)), null != g.get("r") && (c = Ro(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;
  7408. d(t.children, function(t) { v += D(t, e + v) }) } return i - e } }; if (b) { var C = u,
  7409. L = u + M,
  7410. k = 2 * Math.PI;
  7411. p.setLayout({ angle: k, startAngle: c, endAngle: c + k, clockwise: I, cx: s, cy: l, r0: C, r: L }) }
  7412. D(g, c) }) }, "sunburst")), ks(v($D, "sunburst")); var IP = ["itemStyle"],
  7413. TP = ["emphasis", "itemStyle"],
  7414. AP = ["label"],
  7415. DP = ["emphasis", "label"],
  7416. CP = "e\0\0",
  7417. LP = { cartesian2d: function(t) { var e = t.grid.getRect(); return { coordSys: { type: "cartesian2d", x: e.x, y: e.y, width: e.width, height: e.height }, api: { coord: function(e) { return t.dataToPoint(e) }, size: m(Bm, t) } } }, geo: function(t) { var e = t.getBoundingRect(); return { coordSys: { type: "geo", x: e.x, y: e.y, width: e.width, height: e.height, zoom: t.getZoom() }, api: { coord: function(e) { return t.dataToPoint(e) }, size: m(Vm, t) } } }, singleAxis: function(t) { var e = t.getRect(); return { coordSys: { type: "singleAxis", x: e.x, y: e.y, width: e.width, height: e.height }, api: { coord: function(e) { return t.dataToPoint(e) }, size: m(Gm, t) } } }, polar: function(t) { var e = t.getRadiusAxis(),
  7418. i = t.getAngleAxis(),
  7419. n = e.getExtent(); return n[0] > n[1] && n.reverse(), { coordSys: { type: "polar", cx: t.cx, cy: t.cy, r: n[1], r0: n[0] }, api: { coord: m(function(n) { var o = e.dataToRadius(n[0]),
  7420. a = i.dataToAngle(n[1]),
  7421. r = t.coordToPoint([o, a]); return r.push(o, a * Math.PI / 180), r }), size: m(Fm, t) } } }, calendar: function(t) { var e = t.getRect(),
  7422. 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) } } } } };
  7423. OI.extend({ type: "series.custom", dependencies: ["grid", "polar", "geo", "singleAxis", "calendar"], defaultOption: { coordinateSystem: "cartesian2d", zlevel: 0, z: 2, legendHoverLink: !0, useTransform: !0 }, getInitialData: function(t, e) { return dl(this.getSource(), this) }, getDataParams: function(t, e, i) { var n = OI.prototype.getDataParams.apply(this, arguments); return i && (n.info = i.info), n } }), Mr.extend({ type: "custom", _data: null, render: function(t, e, i, n) { var o = this._data,
  7424. a = t.getData(),
  7425. r = this.group,
  7426. s = Um(t, a, e, i);
  7427. a.diff(o).add(function(e) { jm(null, e, s(e, n), t, r, a) }).update(function(e, i) { jm(o.getItemGraphicEl(i), e, s(e, n), t, r, a) }).remove(function(t) { var e = o.getItemGraphicEl(t);
  7428. e && r.remove(e) }).execute(), this._data = a }, incrementalPrepareRender: function(t, e, i) { this.group.removeAll(), this._data = null }, incrementalRender: function(t, e, i, n, o) { for (var a = e.getData(), r = Um(e, a, i, n), s = t.start; s < t.end; s++) jm(null, s, r(s, o), e, this.group, a).traverse(function(t) { t.isGroup || (t.incremental = !0, t.useHoverLayer = !0) }) }, dispose: B, filterForExposedEvent: function(t, e, i, n) { var o = e.element; if (null == o || i.name === o) return !0; for (;
  7429. (i = i.parent) && i !== this.group;)
  7430. if (i.name === o) return !0;
  7431. return !1 } }), Ls(function(t) { var e = t.graphic;
  7432. y(e) ? e[0] && e[0].elements ? t.graphic = [t.graphic[0]] : t.graphic = [{ elements: e }] : e && !e.elements && (t.graphic = [{ elements: [e] }]) }); var kP = Bs({ type: "graphic", defaultOption: { elements: [], parentId: null }, _elOptionsToUpdate: null, mergeOption: function(t) { var e = this.option.elements;
  7433. this.option.elements = null, kP.superApply(this, "mergeOption", arguments), this.option.elements = e }, optionUpdated: function(t, e) { var i = this.option,
  7434. n = (e ? i : t).elements,
  7435. o = i.elements = e ? [] : i.elements,
  7436. a = [];
  7437. this._flatten(n, a); var r = Pi(o, a);
  7438. Ni(r); var s = this._elOptionsToUpdate = [];
  7439. d(r, function(t, e) { var i = t.option;
  7440. i && (s.push(i), sv(t, i), lv(o, e, i), uv(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) { d(t, function(t) { if (t) { i && (t.parentOption = i), e.push(t); var n = t.children; "group" === t.type && n && this._flatten(n, e, t), delete t.children } }, this) }, useElOptionsToUpdate: function() { var t = this._elOptionsToUpdate; return this._elOptionsToUpdate = null, t } });
  7441. Vs({ type: "graphic", init: function(t, e) { this._elMap = R(), this._lastGraphicModel }, render: function(t, e, i) { t !== this._lastGraphicModel && this._clear(), this._lastGraphicModel = t, this._updateElements(t), this._relocate(t, i) }, _updateElements: function(t) { var e = t.useElOptionsToUpdate(); if (e) { var i = this._elMap,
  7442. n = this.group;
  7443. d(e, function(e) { var o = e.$action,
  7444. a = e.id,
  7445. r = i.get(a),
  7446. s = e.parentId,
  7447. l = null != s ? i.get(s) : n,
  7448. 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 = av(e);
  7449. o && "merge" !== o ? "replace" === o ? (ov(r, i), nv(a, l, h, i)) : "remove" === o && ov(r, i) : r ? r.attr(h) : nv(a, l, h, i); var c = i.get(a);
  7450. c && (c.__ecGraphicWidth = e.width, c.__ecGraphicHeight = e.height, hv(c, t)) }) } }, _relocate: function(t, e) { for (var i = t.option.elements, n = this.group, o = this._elMap, a = i.length - 1; a >= 0; a--) { var r = i[a],
  7451. s = o.get(r.id); if (s) { var l = s.parent;
  7452. ua(s, r, l === n ? { width: e.getWidth(), height: e.getHeight() } : { width: l.__ecGraphicWidth || 0, height: l.__ecGraphicHeight || 0 }, null, { hv: r.hv, boundingMode: r.bounding }) } } }, _clear: function() { var t = this._elMap;
  7453. t.each(function(e) { ov(e, t) }), this._elMap = R() }, dispose: function() { this._clear() } }); var PP = Bs({ type: "legend.plain", dependencies: ["series"], layoutMode: { type: "box", ignoreSize: !0 }, init: function(t, e, i) { this.mergeDefaultAndTheme(t, i), t.selected = t.selected || {} }, mergeOption: function(t) { PP.superCall(this, "mergeOption", t) }, optionUpdated: function() { this._updateData(this.ecModel); var t = this._data; if (t[0] && "single" === this.get("selectedMode")) { for (var e = !1, i = 0; i < t.length; i++) { var n = t[i].get("name"); if (this.isSelected(n)) { this.select(n), e = !0; break } }!e && this.select(t[0].get("name")) } }, _updateData: function(t) { var e = [],
  7454. i = [];
  7455. t.eachRawSeries(function(n) { var o = n.name;
  7456. i.push(o); var a; if (n.legendDataProvider) { var r = n.legendDataProvider(),
  7457. s = r.mapArray(r.getName);
  7458. t.isSeriesFiltered(n) || (i = i.concat(s)), s.length ? e = e.concat(s) : a = !0 } else a = !0;
  7459. a && Oi(n) && e.push(n.name) }), this._availableNames = i; var n = f(this.get("data") || e, function(t) { return "string" != typeof t && "number" != typeof t || (t = { name: t }), new Lo(t, this, this.ecModel) }, this);
  7460. this._data = n }, getData: function() { return this._data }, select: function(t) { var e = this.option.selected; "single" === this.get("selectedMode") && d(this._data, function(t) { e[t.get("name")] = !1 }), e[t] = !0 }, unSelect: function(t) { "single" !== this.get("selectedMode") && (this.option.selected[t] = !1) }, toggleSelected: function(t) { var e = this.option.selected;
  7461. e.hasOwnProperty(t) || (e[t] = !0), this[e[t] ? "unSelect" : "select"](t) }, isSelected: function(t) { var e = this.option.selected; return !(e.hasOwnProperty(t) && !e[t]) && l(this._availableNames, t) >= 0 }, defaultOption: { zlevel: 0, z: 4, show: !0, orient: "horizontal", left: "center", top: 0, align: "auto", backgroundColor: "rgba(0,0,0,0)", borderColor: "#ccc", borderRadius: 0, borderWidth: 0, padding: 5, itemGap: 10, itemWidth: 25, itemHeight: 14, inactiveColor: "#ccc", textStyle: { color: "#333" }, selectedMode: !0, tooltip: { show: !1 } } });
  7462. Ps("legendToggleSelect", "legendselectchanged", v(cv, "toggleSelected")), Ps("legendSelect", "legendselected", v(cv, "select")), Ps("legendUnSelect", "legendunselected", v(cv, "unSelect")); var NP = v,
  7463. OP = d,
  7464. EP = Zw,
  7465. RP = Vs({ type: "legend.plain", newlineDisabled: !1, init: function() { this.group.add(this._contentGroup = new EP), this._backgroundEl }, getContentGroup: function() { return this._contentGroup }, render: function(t, e, i) { if (this.resetInner(), t.get("show", !0)) { var n = t.get("align");
  7466. n && "auto" !== n || (n = "right" === t.get("left") && "vertical" === t.get("orient") ? "right" : "left"), this.renderInner(n, t, e, i); var o = t.getBoxLayoutParams(),
  7467. a = { width: i.getWidth(), height: i.getHeight() },
  7468. s = t.get("padding"),
  7469. l = la(o, a, s),
  7470. u = this.layoutInner(t, n, l),
  7471. h = la(r({ width: u.width, height: u.height }, o), a, s);
  7472. this.group.attr("position", [h.x - u.x, h.y - u.y]), this.group.add(this._backgroundEl = fv(u, t)) } }, resetInner: function() { this.getContentGroup().removeAll(), this._backgroundEl && this.group.remove(this._backgroundEl) }, renderInner: function(t, e, i, n) { var o = this.getContentGroup(),
  7473. a = R(),
  7474. r = e.get("selectedMode"),
  7475. s = [];
  7476. i.eachRawSeries(function(t) {!t.get("legendHoverLink") && s.push(t.id) }), OP(e.getData(), function(l, u) { var h = l.get("name"); if (this.newlineDisabled || "" !== h && "\n" !== h) { var c = i.getSeriesByName(h)[0]; if (!a.get(h))
  7477. if (c) { var d = c.getData(),
  7478. f = d.getVisual("color"); "function" == typeof f && (f = f(c.getDataParams(0))); var p = d.getVisual("legendSymbol") || "roundRect",
  7479. g = d.getVisual("symbol");
  7480. this._createItem(h, u, l, e, p, g, t, f, r).on("click", NP(pv, h, n)).on("mouseover", NP(gv, c.name, null, n, s)).on("mouseout", NP(mv, c.name, null, n, s)), a.set(h, !0) } else i.eachRawSeries(function(i) { if (!a.get(h) && i.legendDataProvider) { var o = i.legendDataProvider(),
  7481. c = o.indexOfName(h); if (c < 0) return; var d = o.getItemVisual(c, "color");
  7482. this._createItem(h, u, l, e, "roundRect", null, t, d, r).on("click", NP(pv, h, n)).on("mouseover", NP(gv, null, h, n, s)).on("mouseout", NP(mv, null, h, n, s)), a.set(h, !0) } }, this) } else o.add(new EP({ newline: !0 })) }, this) }, _createItem: function(t, e, i, n, o, r, s, l, u) { var h = n.get("itemWidth"),
  7483. c = n.get("itemHeight"),
  7484. d = n.get("inactiveColor"),
  7485. f = n.get("symbolKeepAspect"),
  7486. p = n.isSelected(t),
  7487. g = new EP,
  7488. m = i.getModel("textStyle"),
  7489. v = i.get("icon"),
  7490. y = i.getModel("tooltip"),
  7491. x = y.parentModel; if (o = v || o, g.add(Xl(o, 0, 0, h, c, p ? l : d, null == f || f)), !v && r && (r !== o || "none" === r)) { var _ = .8 * c; "none" === r && (r = "circle"), g.add(Xl(r, (h - _) / 2, (c - _) / 2, _, _, p ? l : d, null == f || f)) } var w = "left" === s ? h + 5 : -5,
  7492. b = s,
  7493. S = n.get("formatter"),
  7494. M = t; "string" == typeof S && S ? M = S.replace("{name}", null != t ? t : "") : "function" == typeof S && (M = S(t)), g.add(new qS({ style: fo({}, m, { text: M, x: w, y: c / 2, textFill: p ? m.getTextColor() : d, textAlign: b, textVerticalAlign: "middle" }) })); var I = new aM({ shape: g.getBoundingRect(), invisible: !0, tooltip: y.get("show") ? a({ content: t, formatter: x.get("formatter", !0) || function() { return t }, formatterParams: { componentType: "legend", legendIndex: n.componentIndex, name: t, $vars: ["name"] } }, y.option) : null }); return g.add(I), g.eachChild(function(t) { t.silent = !0 }), I.silent = !u, this.getContentGroup().add(g), uo(g), g.__legendDataIndex = e, g }, layoutInner: function(t, e, i) { var n = this.getContentGroup();
  7495. UM(t.get("orient"), n, t.get("itemGap"), i.width, i.height); var o = n.getBoundingRect(); return n.attr("position", [-o.x, -o.y]), this.group.getBoundingRect() } });
  7496. ks(function(t) { var e = t.findComponents({ mainType: "legend" });
  7497. e && e.length && t.filterSeries(function(t) { for (var i = 0; i < e.length; i++)
  7498. if (!e[i].isSelected(t.name)) return !1;
  7499. return !0 }) }), YM.registerSubTypeDefaulter("legend", function() { return "plain" }); var zP = PP.extend({ type: "legend.scroll", setScrollDataIndex: function(t) { this.option.scrollDataIndex = t }, 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 }, init: function(t, e, i, n) { var o = da(t);
  7500. zP.superCall(this, "init", t, e, i, n), vv(this, t, o) }, mergeOption: function(t, e) { zP.superCall(this, "mergeOption", t, e), vv(this, this.option, t) }, getOrient: function() { return "vertical" === this.get("orient") ? { index: 1, name: "vertical" } : { index: 0, name: "horizontal" } } }),
  7501. BP = Zw,
  7502. VP = ["width", "height"],
  7503. GP = ["x", "y"],
  7504. FP = RP.extend({ type: "legend.scroll", newlineDisabled: !0, init: function() { FP.superCall(this, "init"), this._currentIndex = 0, this.group.add(this._containerGroup = new BP), this._containerGroup.add(this.getContentGroup()), this.group.add(this._controllerGroup = new BP), this._showController }, resetInner: function() { FP.superCall(this, "resetInner"), this._controllerGroup.removeAll(), this._containerGroup.removeClipPath(), this._containerGroup.__rectSize = null }, renderInner: function(t, e, i, n) {
  7505. function o(t, i) { var o = t + "DataIndex",
  7506. l = Co(e.get("pageIcons", !0)[e.getOrient().name][i], { onclick: m(a._pageGo, a, o, e, n) }, { x: -s[0] / 2, y: -s[1] / 2, width: s[0], height: s[1] });
  7507. l.name = t, r.add(l) } var a = this;
  7508. FP.superCall(this, "renderInner", t, e, i, n); var r = this._controllerGroup,
  7509. s = e.get("pageIconSize", !0);
  7510. y(s) || (s = [s, s]), o("pagePrev", 0); var l = e.getModel("pageTextStyle");
  7511. r.add(new qS({ name: "pageText", style: { textFill: l.getTextColor(), font: l.getFont(), textVerticalAlign: "middle", textAlign: "center" }, silent: !0 })), o("pageNext", 1) }, layoutInner: function(t, e, i) { var n = this.getContentGroup(),
  7512. o = this._containerGroup,
  7513. a = this._controllerGroup,
  7514. r = t.getOrient().index,
  7515. s = VP[r],
  7516. l = VP[1 - r],
  7517. u = GP[1 - r];
  7518. UM(t.get("orient"), n, t.get("itemGap"), r ? i.width : null, r ? null : i.height), UM("horizontal", a, t.get("pageButtonItemGap", !0)); var h = n.getBoundingRect(),
  7519. c = a.getBoundingRect(),
  7520. d = this._showController = h[s] > i[s],
  7521. f = [-h.x, -h.y];
  7522. f[r] = n.position[r]; var p = [0, 0],
  7523. g = [-c.x, -c.y],
  7524. m = A(t.get("pageButtonGap", !0), t.get("itemGap", !0));
  7525. d && ("end" === t.get("pageButtonPosition", !0) ? g[r] += i[s] - c[s] : p[r] += c[s] + m), g[1 - r] += h[l] / 2 - c[l] / 2, n.attr("position", f), o.attr("position", p), a.attr("position", g); var v = this.group.getBoundingRect(); if ((v = { x: 0, y: 0 })[s] = d ? i[s] : h[s], v[l] = Math.max(h[l], c[l]), v[u] = Math.min(0, c[u] + g[1 - r]), o.__rectSize = i[s], d) { var y = { x: 0, y: 0 };
  7526. y[s] = Math.max(i[s] - c[s] - m, 0), y[l] = v[l], o.setClipPath(new aM({ shape: y })), o.__rectSize = y[s] } else a.eachChild(function(t) { t.attr({ invisible: !0, silent: !0 }) }); var x = this._getPageInfo(t); return null != x.pageIndex && bo(n, { position: x.contentPosition }, !!d && t), this._updatePageInfoView(t, x), v }, _pageGo: function(t, e, i) { var n = this._getPageInfo(e)[t];
  7527. null != n && i.dispatchAction({ type: "legendScroll", scrollDataIndex: n, legendId: e.id }) }, _updatePageInfoView: function(t, e) { var i = this._controllerGroup;
  7528. d(["pagePrev", "pageNext"], function(n) { var o = null != e[n + "DataIndex"],
  7529. a = i.childOfName(n);
  7530. a && (a.setStyle("fill", o ? t.get("pageIconColor", !0) : t.get("pageIconInactiveColor", !0)), a.cursor = o ? "pointer" : "default") }); var n = i.childOfName("pageText"),
  7531. o = t.get("pageFormatter"),
  7532. a = e.pageIndex,
  7533. r = null != a ? a + 1 : 0,
  7534. s = e.pageCount;
  7535. n && o && n.setStyle("text", _(o) ? o.replace("{current}", r).replace("{total}", s) : o({ current: r, total: s })) }, _getPageInfo: function(t) {
  7536. function e(t) { var e = t.getBoundingRect().clone(); return e[f] += t.position[h], e } var i, n, o, a, r = t.get("scrollDataIndex", !0),
  7537. s = this.getContentGroup(),
  7538. l = s.getBoundingRect(),
  7539. u = this._containerGroup.__rectSize,
  7540. h = t.getOrient().index,
  7541. c = VP[h],
  7542. d = VP[1 - h],
  7543. f = GP[h],
  7544. p = s.position.slice();
  7545. this._showController ? s.eachChild(function(t) { t.__legendDataIndex === r && (a = t) }) : a = s.childAt(0); var g = u ? Math.ceil(l[c] / u) : 0; if (a) { var m = a.getBoundingRect(),
  7546. v = a.position[h] + m[f];
  7547. p[h] = -v - l[f], i = Math.floor(g * (v + m[f] + u / 2) / l[c]), i = l[c] && g ? Math.max(0, Math.min(g - 1, i)) : -1; var y = { x: 0, y: 0 };
  7548. y[c] = u, y[d] = l[d], y[f] = -p[h] - l[f]; var x, _ = s.children(); if (s.eachChild(function(t, i) { var n = e(t);
  7549. n.intersect(y) && (null == x && (x = i), o = t.__legendDataIndex), i === _.length - 1 && n[f] + n[c] <= y[f] + y[c] && (o = null) }), null != x) { var w = e(_[x]); if (y[f] = w[f] + w[c] - y[c], x <= 0 && w[f] >= y[f]) n = null;
  7550. else { for (; x > 0 && e(_[x - 1]).intersect(y);) x--;
  7551. n = _[x].__legendDataIndex } } } return { contentPosition: p, pageIndex: i, pageCount: g, pagePrevDataIndex: n, pageNextDataIndex: o } } });
  7552. Ps("legendScroll", "legendscroll", function(t, e) { var i = t.scrollDataIndex;
  7553. null != i && e.eachComponent({ mainType: "legend", subType: "scroll", query: t }, function(t) { t.setScrollDataIndex(i) }) }), Bs({ type: "tooltip", dependencies: ["axisPointer"], defaultOption: { zlevel: 0, z: 60, show: !0, showContent: !0, trigger: "item", triggerOn: "mousemove|click", alwaysShowContent: !1, displayMode: "single", renderMode: "auto", confine: !1, showDelay: 0, hideDelay: 100, transitionDuration: .4, enterable: !1, backgroundColor: "rgba(50,50,50,0.7)", borderColor: "#333", borderRadius: 4, borderWidth: 0, padding: 5, extraCssText: "", axisPointer: { type: "line", axis: "auto", animation: "auto", animationDurationUpdate: 200, animationEasingUpdate: "exponentialOut", crossStyle: { color: "#999", width: 1, type: "dashed", textStyle: {} } }, textStyle: { color: "#fff", fontSize: 14 } } }); var WP = d,
  7554. HP = Jo,
  7555. ZP = ["", "-webkit-", "-moz-", "-o-"];
  7556. wv.prototype = { constructor: wv, _enterable: !0, update: function() { var t = this._container,
  7557. e = t.currentStyle || document.defaultView.getComputedStyle(t),
  7558. i = t.style; "absolute" !== i.position && "absolute" !== e.position && (i.position = "relative") }, show: function(t) { clearTimeout(this._hideTimeout); var e = this.el;
  7559. e.style.cssText = "position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;" + _v(t) + ";left:" + this._x + "px;top:" + this._y + "px;" + (t.get("extraCssText") || ""), e.style.display = e.innerHTML ? "block" : "none", e.style.pointerEvents = this._enterable ? "auto" : "none", this._show = !0 }, setContent: function(t) { this.el.innerHTML = null == t ? "" : t }, setEnterable: function(t) { this._enterable = t }, getSize: function() { var t = this.el; return [t.clientWidth, t.clientHeight] }, moveTo: function(t, e) { var i, n = this._zr;
  7560. n && n.painter && (i = n.painter.getViewportRootOffset()) && (t += i.offsetLeft, e += i.offsetTop); var o = this.el.style;
  7561. o.left = t + "px", o.top = e + "px", this._x = t, this._y = e }, hide: function() { this.el.style.display = "none", this._show = !1 }, hideLater: function(t) {!this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout = setTimeout(m(this.hide, this), t)) : this.hide()) }, isShow: function() { return this._show }, getOuterSize: function() { var t = this.el.clientWidth,
  7562. e = this.el.clientHeight; if (document.defaultView && document.defaultView.getComputedStyle) { var i = document.defaultView.getComputedStyle(this.el);
  7563. i && (t += parseInt(i.paddingLeft, 10) + parseInt(i.paddingRight, 10) + parseInt(i.borderLeftWidth, 10) + parseInt(i.borderRightWidth, 10), e += parseInt(i.paddingTop, 10) + parseInt(i.paddingBottom, 10) + parseInt(i.borderTopWidth, 10) + parseInt(i.borderBottomWidth, 10)) } return { width: t, height: e } } }, bv.prototype = { constructor: bv, _enterable: !0, update: function() {}, show: function(t) { this._hideTimeout && clearTimeout(this._hideTimeout), this.el.attr("show", !0), this._show = !0 }, setContent: function(t, e, i) { this.el && this._zr.remove(this.el); for (var n = {}, o = t, a = o.indexOf("{marker"); a >= 0;) { var r = o.indexOf("|}"),
  7564. s = o.substr(a + "{marker".length, r - a - "{marker".length);
  7565. s.indexOf("sub") > -1 ? n["marker" + s] = { textWidth: 4, textHeight: 4, textBorderRadius: 2, textBackgroundColor: e[s], textOffset: [3, 0] } : n["marker" + s] = { textWidth: 10, textHeight: 10, textBorderRadius: 5, textBackgroundColor: e[s] }, a = (o = o.substr(r + 1)).indexOf("{marker") }
  7566. this.el = new qS({ style: { rich: n, text: t, textLineHeight: 20, textBackgroundColor: i.get("backgroundColor"), textBorderRadius: i.get("borderRadius"), textFill: i.get("textStyle.color"), textPadding: i.get("padding") }, z: i.get("z") }), this._zr.add(this.el); var l = this;
  7567. this.el.on("mouseover", function() { l._enterable && (clearTimeout(l._hideTimeout), l._show = !0), l._inContent = !0 }), this.el.on("mouseout", function() { l._enterable && l._show && l.hideLater(l._hideDelay), l._inContent = !1 }) }, setEnterable: function(t) { this._enterable = t }, getSize: function() { var t = this.el.getBoundingRect(); return [t.width, t.height] }, moveTo: function(t, e) { this.el && this.el.attr("position", [t, e]) }, hide: function() { this.el.hide(), this._show = !1 }, hideLater: function(t) {!this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout = setTimeout(m(this.hide, this), t)) : this.hide()) }, isShow: function() { return this._show }, getOuterSize: function() { return this.getSize() } }; var UP = m,
  7568. XP = d,
  7569. jP = Ro,
  7570. YP = new aM({ shape: { x: -1, y: -1, width: 2, height: 2 } });
  7571. Vs({ type: "tooltip", init: function(t, e) { if (!z_.node) { var i = t.getComponent("tooltip").get("renderMode");
  7572. this._renderMode = Hi(i); var n; "html" === this._renderMode ? (n = new wv(e.getDom(), e), this._newLine = "<br/>") : (n = new bv(e), this._newLine = "\n"), this._tooltipContent = n } }, render: function(t, e, i) { if (!z_.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;
  7573. n.update(), n.setEnterable(t.get("enterable")), this._initGlobalListener(), this._keepShow() } }, _initGlobalListener: function() { var t = this._tooltipModel.get("triggerOn");
  7574. im("itemTooltip", this._api, UP(function(e, i, n) { "none" !== t && (t.indexOf(e) >= 0 ? this._tryShow(i, n) : "leave" === e && this._hide(n)) }, this)) }, _keepShow: function() { var t = this._tooltipModel,
  7575. e = this._ecModel,
  7576. i = this._api; if (null != this._lastX && null != this._lastY && "none" !== t.get("triggerOn")) { var n = this;
  7577. clearTimeout(this._refreshUpdateTimeout), this._refreshUpdateTimeout = setTimeout(function() { n.manuallyShowTip(t, e, i, { x: n._lastX, y: n._lastY }) }) } }, manuallyShowTip: function(t, e, i, n) { if (n.from !== this.uid && !z_.node) { var o = Mv(n, i);
  7578. this._ticket = ""; var a = n.dataByCoordSys; if (n.tooltip && null != n.x && null != n.y) { var r = YP;
  7579. r.position = [n.x, n.y], r.update(), r.tooltip = n.tooltip, this._tryShow({ offsetX: n.x, offsetY: n.y, target: r }, o) } else if (a) this._tryShow({ offsetX: n.x, offsetY: n.y, position: n.position, event: {}, dataByCoordSys: n.dataByCoordSys, tooltipOption: n.tooltipOption }, o);
  7580. else if (null != n.seriesIndex) { if (this._manuallyAxisShowTip(t, e, i, n)) return; var s = eP(n, e),
  7581. l = s.point[0],
  7582. u = s.point[1];
  7583. null != l && null != u && this._tryShow({ offsetX: l, offsetY: u, position: n.position, target: s.el, event: {} }, o) } else null != n.x && null != n.y && (i.dispatchAction({ type: "updateAxisPointer", x: n.x, y: n.y }), this._tryShow({ offsetX: n.x, offsetY: n.y, position: n.position, target: i.getZr().findHover(n.x, n.y).target, event: {} }, o)) } }, manuallyHideTip: function(t, e, i, n) { var o = this._tooltipContent;!this._alwaysShowContent && this._tooltipModel && o.hideLater(this._tooltipModel.get("hideDelay")), this._lastX = this._lastY = null, n.from !== this.uid && this._hide(Mv(n, i)) }, _manuallyAxisShowTip: function(t, e, i, n) { var o = n.seriesIndex,
  7584. a = n.dataIndex,
  7585. r = e.getComponent("axisPointer").coordSysAxesInfo; if (null != o && null != a && null != r) { var s = e.getSeriesByIndex(o); if (s && "axis" === (t = Sv([s.getData().getItemModel(a), s, (s.coordinateSystem || {}).model, t])).get("trigger")) return i.dispatchAction({ type: "updateAxisPointer", seriesIndex: o, dataIndex: a, position: n.position }), !0 } }, _tryShow: function(t, e) { var i = t.target; if (this._tooltipModel) { this._lastX = t.offsetX, this._lastY = t.offsetY; var n = t.dataByCoordSys;
  7586. n && n.length ? this._showAxisTooltip(n, t) : i && null != i.dataIndex ? (this._lastDataByCoordSys = null, this._showSeriesItemTooltip(t, i, e)) : i && i.tooltip ? (this._lastDataByCoordSys = null, this._showComponentItemTooltip(t, i, e)) : (this._lastDataByCoordSys = null, this._hide(e)) } }, _showOrMove: function(t, e) { var i = t.get("showDelay");
  7587. e = m(e, this), clearTimeout(this._showTimout), i > 0 ? this._showTimout = setTimeout(e, i) : e() }, _showAxisTooltip: function(t, e) { var i = this._ecModel,
  7588. o = this._tooltipModel,
  7589. a = [e.offsetX, e.offsetY],
  7590. r = [],
  7591. s = [],
  7592. l = Sv([e.tooltipOption, o]),
  7593. u = this._renderMode,
  7594. h = this._newLine,
  7595. c = {};
  7596. XP(t, function(t) { XP(t.dataByAxis, function(t) { var e = i.getComponent(t.axisDim + "Axis", t.axisIndex),
  7597. o = t.value,
  7598. a = []; if (e && null != o) { var l = ym(o, e.axis, i, t.seriesDataIndices, t.valueLabelOpt);
  7599. d(t.seriesDataIndices, function(r) { var h = i.getSeriesByIndex(r.seriesIndex),
  7600. d = r.dataIndexInside,
  7601. f = h && h.getDataParams(d); if (f.axisDim = t.axisDim, f.axisIndex = t.axisIndex, f.axisType = t.axisType, f.axisId = t.axisId, f.axisValue = Wl(e.axis, o), f.axisValueLabel = l, f) { s.push(f); var p, g = h.formatTooltip(d, !0, null, u); if (w(g)) { p = g.html; var m = g.markers;
  7602. n(c, m) } else p = g;
  7603. a.push(p) } }); var f = l; "html" !== u ? r.push(a.join(h)) : r.push((f ? Qo(f) + h : "") + a.join(h)) } }) }, this), r.reverse(), r = r.join(this._newLine + this._newLine); var f = e.position;
  7604. this._showOrMove(l, function() { this._updateContentNotChangedOnAxis(t) ? this._updatePosition(l, f, a[0], a[1], this._tooltipContent, s) : this._showTooltipContent(l, r, s, Math.random(), a[0], a[1], f, void 0, c) }) }, _showSeriesItemTooltip: function(t, e, i) { var n = this._ecModel,
  7605. o = e.seriesIndex,
  7606. a = n.getSeriesByIndex(o),
  7607. r = e.dataModel || a,
  7608. s = e.dataIndex,
  7609. l = e.dataType,
  7610. u = r.getData(),
  7611. h = Sv([u.getItemModel(s), r, a && (a.coordinateSystem || {}).model, this._tooltipModel]),
  7612. c = h.get("trigger"); if (null == c || "item" === c) { var d, f, p = r.getDataParams(s, l),
  7613. g = r.formatTooltip(s, !1, l, this._renderMode);
  7614. w(g) ? (d = g.html, f = g.markers) : (d = g, f = null); var m = "item_" + r.name + "_" + s;
  7615. 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;
  7616. n = { content: o, formatter: o } } var a = new Lo(n, this._tooltipModel, this._ecModel),
  7617. r = a.get("content"),
  7618. s = Math.random();
  7619. 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,
  7620. h = t.get("formatter");
  7621. r = r || t.get("position"); var c = e; if (h && "string" == typeof h) c = ta(h, i, !0);
  7622. else if ("function" == typeof h) { var d = UP(function(e, n) { e === this._ticket && (u.setContent(n, l, t), this._updatePosition(t, r, o, a, u, i, s)) }, this);
  7623. this._ticket = n, c = h(i, n, d) }
  7624. 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(),
  7625. l = this._api.getHeight();
  7626. e = e || t.get("position"); var u = o.getSize(),
  7627. h = t.get("align"),
  7628. c = t.get("verticalAlign"),
  7629. d = r && r.getBoundingRect().clone(); if (r && d.applyTransform(r.transform), "function" == typeof e && (e = e([i, n], a, o.el, d, { viewSize: [s, l], contentSize: u.slice() })), y(e)) i = jP(e[0], s), n = jP(e[1], l);
  7630. else if (w(e)) { e.width = u[0], e.height = u[1]; var f = la(e, { width: s, height: l });
  7631. i = f.x, n = f.y, h = null, c = null } else "string" == typeof e && r ? (i = (p = Av(e, d, u))[0], n = p[1]) : (i = (p = Iv(i, n, o, s, l, h ? null : 20, c ? null : 20))[0], n = p[1]); if (h && (i -= Dv(h) ? u[0] / 2 : "right" === h ? u[0] : 0), c && (n -= Dv(c) ? u[1] / 2 : "bottom" === c ? u[1] : 0), t.get("confine")) { var p = Tv(i, n, o, s, l);
  7632. i = p[0], n = p[1] }
  7633. o.moveTo(i, n) }, _updateContentNotChangedOnAxis: function(t) { var e = this._lastDataByCoordSys,
  7634. i = !!e && e.length === t.length; return i && XP(e, function(e, n) { var o = e.dataByAxis || {},
  7635. a = (t[n] || {}).dataByAxis || [];
  7636. (i &= o.length === a.length) && XP(o, function(t, e) { var n = a[e] || {},
  7637. o = t.seriesDataIndices || [],
  7638. r = n.seriesDataIndices || [];
  7639. (i &= t.value === n.value && t.axisType === n.axisType && t.axisId === n.axisId && o.length === r.length) && XP(o, function(t, e) { var n = r[e];
  7640. 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) { z_.node || (this._tooltipContent.hide(), lm("itemTooltip", e)) } }), Ps({ type: "showTip", event: "showTip", update: "tooltip:manuallyShowTip" }, function() {}), Ps({ type: "hideTip", event: "hideTip", update: "tooltip:manuallyHideTip" }, function() {}), Pv.prototype = { constructor: Pv, pointToData: function(t, e) { return this.polar.pointToData(t, e)["radius" === this.dim ? 0 : 1] }, dataToRadius: HA.prototype.dataToCoord, radiusToData: HA.prototype.coordToData }, u(Pv, HA); var qP = Bi();
  7641. Nv.prototype = { constructor: Nv, pointToData: function(t, e) { return this.polar.pointToData(t, e)["radius" === this.dim ? 0 : 1] }, dataToAngle: HA.prototype.dataToCoord, angleToData: HA.prototype.coordToData, calculateCategoryInterval: function() { var t = this,
  7642. e = t.getLabelModel(),
  7643. i = t.scale,
  7644. n = i.getExtent(),
  7645. o = i.count(); if (n[1] - n[0] < 1) return 0; var a = n[0],
  7646. r = t.dataToCoord(a + 1) - t.dataToCoord(a),
  7647. s = Math.abs(r),
  7648. l = De(a, e.getFont(), "center", "top"),
  7649. u = Math.max(l.height, 7) / s;
  7650. isNaN(u) && (u = 1 / 0); var h = Math.max(0, Math.floor(u)),
  7651. c = qP(t.model),
  7652. d = c.lastAutoInterval,
  7653. f = c.lastTickCount; return null != d && null != f && Math.abs(d - h) <= 1 && Math.abs(f - o) <= 1 && d > h ? h = d : (c.lastTickCount = o, c.lastAutoInterval = h), h } }, u(Nv, HA); var KP = function(t) { this.name = t || "", this.cx = 0, this.cy = 0, this._radiusAxis = new Pv, this._angleAxis = new Nv, this._radiusAxis.polar = this._angleAxis.polar = this };
  7654. KP.prototype = { type: "polar", axisPointerEnabled: !0, constructor: KP, 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 = [],
  7655. i = this._angleAxis,
  7656. 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,
  7657. i = t[1] - this.cy,
  7658. n = this.getAngleAxis(),
  7659. o = n.getExtent(),
  7660. a = Math.min(o[0], o[1]),
  7661. r = Math.max(o[0], o[1]);
  7662. n.inverse ? a = r - 360 : r = a + 360; var s = Math.sqrt(e * e + i * i);
  7663. e /= s, i /= s; for (var l = Math.atan2(-i, e) / Math.PI * 180, u = l < a ? 1 : -1; l < a || l > r;) l += 360 * u; return [s, l] }, coordToPoint: function(t) { var e = t[0],
  7664. i = t[1] / 180 * Math.PI; return [Math.cos(i) * e + this.cx, -Math.sin(i) * e + this.cy] } }; var $P = YM.extend({ type: "polarAxis", axis: null, getCoordSysModel: function() { return this.ecModel.queryComponents({ mainType: "polar", index: this.option.polarIndex, id: this.option.polarId })[0] } });
  7665. n($P.prototype, CA); var JP = { angle: { startAngle: 90, clockwise: !0, splitNumber: 12, axisLabel: { rotate: !1 } }, radius: { splitNumber: 5 } };
  7666. xD("angle", $P, Ov, JP.angle), xD("radius", $P, Ov, JP.radius), Bs({ type: "polar", dependencies: ["polarAxis", "angleAxis"], coordinateSystem: null, findAxisModel: function(t) { var e; return this.ecModel.eachComponent(t, function(t) { t.getCoordSysModel() === this && (e = t) }, this), e }, defaultOption: { zlevel: 0, z: 0, center: ["50%", "50%"], radius: "80%" } }); var QP = { dimensions: KP.prototype.dimensions, create: function(t, e) { var i = []; return t.eachComponent("polar", function(t, n) { var o = new KP(n);
  7667. o.update = Rv; var a = o.getRadiusAxis(),
  7668. r = o.getAngleAxis(),
  7669. s = t.findAxisModel("radiusAxis"),
  7670. l = t.findAxisModel("angleAxis");
  7671. zv(a, s), zv(r, l), Ev(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];
  7672. e.coordinateSystem = i.coordinateSystem } }), i } };
  7673. Ba.register("polar", QP); var tN = ["axisLine", "axisLabel", "axisTick", "splitLine", "splitArea"];
  7674. LD.extend({ type: "angleAxis", axisPointerClass: "PolarAxisPointer", render: function(t, e) { if (this.group.removeAll(), t.get("show")) { var n = t.axis,
  7675. o = n.polar,
  7676. a = o.getRadiusAxis().getExtent(),
  7677. r = n.getTicksCoords(),
  7678. s = f(n.getViewLabels(), function(t) { return (t = i(t)).coord = n.dataToCoord(t.tickValue), t });
  7679. Gv(s), Gv(r), d(tN, function(e) {!t.get(e + ".show") || n.scale.isBlank() && "axisLine" !== e || this["_" + e](t, o, r, a, s) }, this) } }, _axisLine: function(t, e, i, n) { var o = t.getModel("axisLine.lineStyle"),
  7680. a = new KS({ shape: { cx: e.cx, cy: e.cy, r: n[Vv(e)] }, style: o.getLineStyle(), z2: 1, silent: !0 });
  7681. a.style.fill = null, this.group.add(a) }, _axisTick: function(t, e, i, n) { var o = t.getModel("axisTick"),
  7682. a = (o.get("inside") ? -1 : 1) * o.get("length"),
  7683. s = n[Vv(e)],
  7684. l = f(i, function(t) { return new rM({ shape: Bv(e, [s, s + a], t.coord) }) });
  7685. this.group.add(xM(l, { style: r(o.getModel("lineStyle").getLineStyle(), { stroke: t.get("axisLine.lineStyle.color") }) })) }, _axisLabel: function(t, e, i, n, o) { var a = t.getCategories(!0),
  7686. r = t.getModel("axisLabel"),
  7687. s = r.get("margin");
  7688. d(o, function(i, o) { var l = r,
  7689. u = i.tickValue,
  7690. h = n[Vv(e)],
  7691. c = e.coordToPoint([h + s, i.coord]),
  7692. d = e.cx,
  7693. f = e.cy,
  7694. p = Math.abs(c[0] - d) / h < .3 ? "center" : c[0] > d ? "left" : "right",
  7695. g = Math.abs(c[1] - f) / h < .3 ? "middle" : c[1] > f ? "top" : "bottom";
  7696. a && a[u] && a[u].textStyle && (l = new Lo(a[u].textStyle, r, r.ecModel)); var m = new qS({ silent: !0 });
  7697. this.group.add(m), fo(m.style, l, { x: c[0], y: c[1], textFill: l.getTextColor() || t.get("axisLine.lineStyle.color"), text: i.formattedLabel, textAlign: p, textVerticalAlign: g }) }, this) }, _splitLine: function(t, e, i, n) { var o = t.getModel("splitLine").getModel("lineStyle"),
  7698. a = o.get("color"),
  7699. s = 0;
  7700. a = a instanceof Array ? a : [a]; for (var l = [], u = 0; u < i.length; u++) { var h = s++ % a.length;
  7701. l[h] = l[h] || [], l[h].push(new rM({ shape: Bv(e, n, i[u].coord) })) } for (u = 0; u < l.length; u++) this.group.add(xM(l[u], { style: r({ stroke: a[u % a.length] }, o.getLineStyle()), silent: !0, z: t.get("z") })) }, _splitArea: function(t, e, i, n) { if (i.length) { var o = t.getModel("splitArea").getModel("areaStyle"),
  7702. a = o.get("color"),
  7703. s = 0;
  7704. a = a instanceof Array ? a : [a]; for (var l = [], u = Math.PI / 180, h = -i[0].coord * u, c = Math.min(n[0], n[1]), d = Math.max(n[0], n[1]), f = t.get("clockwise"), p = 1; p < i.length; p++) { var g = s++ % a.length;
  7705. l[g] = l[g] || [], l[g].push(new QS({ shape: { cx: e.cx, cy: e.cy, r0: c, r: d, startAngle: h, endAngle: -i[p].coord * u, clockwise: f }, silent: !0 })), h = -i[p].coord * u } for (p = 0; p < l.length; p++) this.group.add(xM(l[p], { style: r({ fill: a[p % a.length] }, o.getAreaStyle()), silent: !0 })) } } }); var eN = ["axisLine", "axisTickLabel", "axisName"],
  7706. iN = ["splitLine", "splitArea"];
  7707. LD.extend({ type: "radiusAxis", axisPointerClass: "PolarAxisPointer", render: function(t, e) { if (this.group.removeAll(), t.get("show")) { var i = t.axis,
  7708. n = i.polar,
  7709. o = n.getAngleAxis(),
  7710. a = i.getTicksCoords(),
  7711. r = o.getExtent()[0],
  7712. s = i.getExtent(),
  7713. l = Fv(n, t, r),
  7714. u = new ID(t, l);
  7715. d(eN, u.add, u), this.group.add(u.getGroup()), d(iN, function(e) { t.get(e + ".show") && !i.scale.isBlank() && this["_" + e](t, n, r, s, a) }, this) } }, _splitLine: function(t, e, i, n, o) { var a = t.getModel("splitLine").getModel("lineStyle"),
  7716. s = a.get("color"),
  7717. l = 0;
  7718. s = s instanceof Array ? s : [s]; for (var u = [], h = 0; h < o.length; h++) { var c = l++ % s.length;
  7719. u[c] = u[c] || [], u[c].push(new KS({ shape: { cx: e.cx, cy: e.cy, r: o[h].coord }, silent: !0 })) } for (h = 0; h < u.length; h++) this.group.add(xM(u[h], { style: r({ stroke: s[h % s.length], fill: null }, a.getLineStyle()), silent: !0 })) }, _splitArea: function(t, e, i, n, o) { if (o.length) { var a = t.getModel("splitArea").getModel("areaStyle"),
  7720. s = a.get("color"),
  7721. l = 0;
  7722. s = s instanceof Array ? s : [s]; for (var u = [], h = o[0].coord, c = 1; c < o.length; c++) { var d = l++ % s.length;
  7723. u[d] = u[d] || [], u[d].push(new QS({ shape: { cx: e.cx, cy: e.cy, r0: h, r: o[c].coord, startAngle: 0, endAngle: 2 * Math.PI }, silent: !0 })), h = o[c].coord } for (c = 0; c < u.length; c++) this.group.add(xM(u[c], { style: r({ fill: s[c % s.length] }, a.getAreaStyle()), silent: !0 })) } } }); var nN = um.extend({ makeElOption: function(t, e, i, n, o) { var a = i.axis; "angle" === a.dim && (this.animationThreshold = Math.PI / 18); var r, s = a.polar,
  7724. l = s.getOtherAxis(a).getExtent();
  7725. r = a["dataTo" + aa(a.dim)](e); var u = n.get("type"); if (u && "none" !== u) { var h = gm(n),
  7726. c = oN[u](a, s, r, l, h);
  7727. c.style = h, t.graphicKey = c.type, t.pointer = c }
  7728. mm(t, i, n, o, Wv(e, i, 0, s, n.get("label.margin"))) } }),
  7729. oN = { line: function(t, e, i, n, o) { return "angle" === t.dim ? { type: "Line", shape: wm(e.coordToPoint([n[0], i]), e.coordToPoint([n[1], i])) } : { type: "Circle", shape: { cx: e.cx, cy: e.cy, r: i } } }, shadow: function(t, e, i, n, o) { var a = Math.max(1, t.getBandWidth()),
  7730. r = Math.PI / 180; return "angle" === t.dim ? { type: "Sector", shape: Sm(e.cx, e.cy, n[0], n[1], (-i - a / 2) * r, (a / 2 - i) * r) } : { type: "Sector", shape: Sm(e.cx, e.cy, i - a / 2, i + a / 2, 0, 2 * Math.PI) } } };
  7731. LD.registerAxisPointerClass("PolarAxisPointer", nN), Os(v(function(t, e, i) { var n = {},
  7732. o = kv(g(e.getSeriesByType(t), function(t) { return !e.isSeriesFiltered(t) && t.coordinateSystem && "polar" === t.coordinateSystem.type }));
  7733. e.eachSeriesByType(t, function(t) { if ("polar" === t.coordinateSystem.type) { var e = t.getData(),
  7734. i = t.coordinateSystem,
  7735. a = i.getBaseAxis(),
  7736. r = Cv(t),
  7737. s = o[Lv(a)][r],
  7738. l = s.offset,
  7739. u = s.width,
  7740. h = i.getOtherAxis(a),
  7741. c = t.coordinateSystem.cx,
  7742. d = t.coordinateSystem.cy,
  7743. f = t.get("barMinHeight") || 0,
  7744. p = t.get("barMinAngle") || 0;
  7745. n[r] = n[r] || []; for (var g = e.mapDimension(h.dim), m = e.mapDimension(a.dim), v = hl(e, g), y = h.getExtent()[0], x = 0, _ = e.count(); x < _; x++) { var w = e.get(g, x),
  7746. b = e.get(m, x); if (!isNaN(w)) { var S = w >= 0 ? "p" : "n",
  7747. M = y;
  7748. v && (n[r][b] || (n[r][b] = { p: y, n: y }), M = n[r][b][S]); var I, T, A, D; if ("radius" === h.dim) { var C = h.dataToRadius(w) - y,
  7749. L = a.dataToAngle(b);
  7750. Math.abs(C) < f && (C = (C < 0 ? -1 : 1) * f), I = M, T = M + C, D = (A = L - l) - u, v && (n[r][b][S] = T) } else { var k = h.dataToAngle(w, !0) - y,
  7751. P = a.dataToRadius(b);
  7752. Math.abs(k) < p && (k = (k < 0 ? -1 : 1) * p), T = (I = P + l) + u, A = M, D = M + k, v && (n[r][b][S] = D) }
  7753. e.setItemLayout(x, { cx: c, cy: d, r0: I, r: T, startAngle: -A * Math.PI / 180, endAngle: -D * Math.PI / 180 }) } } } }, this) }, "bar")), Vs({ type: "polar" }), h(YM.extend({ type: "geo", coordinateSystem: null, layoutMode: "box", init: function(t) { YM.prototype.init.apply(this, arguments), Ci(t, "label", ["show"]) }, optionUpdated: function() { var t = this.option,
  7754. e = this;
  7755. t.regions = _C.getFilledRegions(t.regions, t.map, t.nameMap), this._optionModelMap = p(t.regions || [], function(t, i) { return i.name && t.set(i.name, new Lo(i, e)), t }, R()), this.updateSelectedMap(t.regions) }, 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)" } }, regions: [] }, getRegionModel: function(t) { return this._optionModelMap.get(t) || new Lo(null, this, this.ecModel) }, getFormattedLabel: function(t, e) { var i = this.getRegionModel(t).get("label." + e + ".formatter"),
  7756. n = { name: t }; return "function" == typeof i ? (n.status = e, i(n)) : "string" == typeof i ? i.replace("{a}", null != t ? t : "") : void 0 }, setZoom: function(t) { this.option.zoom = t }, setCenter: function(t) { this.option.center = t } }), HD), Vs({ type: "geo", init: function(t, e) { var i = new _c(e, !0);
  7757. this._mapDraw = i, this.group.add(i.group) }, render: function(t, e, i, n) { if (!n || "geoToggleSelect" !== n.type || n.from !== this.uid) { var o = this._mapDraw;
  7758. t.get("show") ? o.draw(t, e, i, this, n) : this._mapDraw.group.removeAll(), this.group.silent = t.get("silent") } }, dispose: function() { this._mapDraw && this._mapDraw.remove() } }), Hv("toggleSelected", { type: "geoToggleSelect", event: "geoselectchanged" }), Hv("select", { type: "geoSelect", event: "geoselected" }), Hv("unSelect", { type: "geoUnSelect", event: "geounselected" }); var aN = ["rect", "polygon", "keep", "clear"],
  7759. rN = d,
  7760. sN = { lineX: Kv(0), lineY: Kv(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]) && Yl(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,
  7761. a = t.y,
  7762. r = t.width,
  7763. s = t.height,
  7764. l = n[0]; return !!(Yl(n, o, a) || Yl(n, o + r, a) || Yl(n, o, a + s) || Yl(n, o + r, a + s) || ue.create(t).contain(l[0], l[1]) || Jv(o, a, o + r, a, n) || Jv(o, a, o, a + s, n) || Jv(o + r, a, o + r, a + s, n) || Jv(o, a + s, o + r, a + s, n)) || void 0 } } },
  7765. lN = d,
  7766. uN = l,
  7767. hN = v,
  7768. cN = ["dataToPoint", "pointToData"],
  7769. dN = ["grid", "xAxis", "yAxis", "geo", "graph", "polar", "radiusAxis", "angleAxis", "bmap"],
  7770. fN = iy.prototype;
  7771. fN.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 = vN[t.brushType](0, i, e);
  7772. t.__rangeOffset = { offset: yN[t.brushType](n.values, t.range, [1, 1]), xyMinMax: n.xyMinMax } } }) }, fN.matchOutputRanges = function(t, e, i) { lN(t, function(t) { var n = this.findTargetInfo(t, e);
  7773. n && !0 !== n && d(n.coordSyses, function(n) { var o = vN[t.brushType](1, n, t.range);
  7774. i(t, o.values, n, e) }) }, this) }, fN.setInputRanges = function(t, e) { lN(t, function(t) { var i = this.findTargetInfo(t, e); if (t.range = t.range || [], i && !0 !== i) { t.panelId = i.panelId; var n = vN[t.brushType](0, i.coordSys, t.coordRange),
  7775. o = t.__rangeOffset;
  7776. t.range = o ? yN[t.brushType](n.values, o.offset, sy(n.xyMinMax, o.xyMinMax)) : n.values } }, this) }, fN.makePanelOpts = function(t, e) { return f(this._targetInfoList, function(i) { var n = i.getPanelRect(); return { panelId: i.panelId, defaultBrushType: e && e(i), clipPath: hp(n), isTargetByCursor: dp(n, t, i.coordSysModel), getLinearBrushOtherExtent: cp(n) } }) }, fN.controlSeries = function(t, e, i) { var n = this.findTargetInfo(t, i); return !0 === n || n && uN(n.coordSyses, e.coordinateSystem) >= 0 }, fN.findTargetInfo = function(t, e) { for (var i = this._targetInfoList, n = oy(e, t), o = 0; o < i.length; o++) { var a = i[o],
  7777. r = t.panelId; if (r) { if (a.panelId === r) return a } else
  7778. for (o = 0; o < gN.length; o++)
  7779. if (gN[o](n, a)) return a } return !0 }; var pN = { grid: function(t, e) { var i = t.xAxisModels,
  7780. n = t.yAxisModels,
  7781. o = t.gridModels,
  7782. a = R(),
  7783. r = {},
  7784. s = {};
  7785. (i || n || o) && (lN(i, function(t) { var e = t.axis.grid.model;
  7786. a.set(e.id, e), r[e.id] = !0 }), lN(n, function(t) { var e = t.axis.grid.model;
  7787. a.set(e.id, e), s[e.id] = !0 }), lN(o, function(t) { a.set(t.id, t), r[t.id] = !0, s[t.id] = !0 }), a.each(function(t) { var o = t.coordinateSystem,
  7788. a = [];
  7789. lN(o.getCartesians(), function(t, e) {
  7790. (uN(i, t.getAxis("x").model) >= 0 || uN(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: mN.grid, xAxisDeclared: r[t.id], yAxisDeclared: s[t.id] }) })) }, geo: function(t, e) { lN(t.geoModels, function(t) { var i = t.coordinateSystem;
  7791. e.push({ panelId: "geo--" + t.id, geoModel: t, coordSysModel: t, coordSys: i, coordSyses: [i], getPanelRect: mN.geo }) }) } },
  7792. gN = [function(t, e) { var i = t.xAxisModel,
  7793. n = t.yAxisModel,
  7794. 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 }],
  7795. mN = { grid: function() { return this.coordSys.grid.getRect().clone() }, geo: function() { var t = this.coordSys,
  7796. e = t.getBoundingRect().clone(); return e.applyTransform(Mo(t)), e } },
  7797. vN = { lineX: hN(ay, 0), lineY: hN(ay, 1), rect: function(t, e, i) { var n = e[cN[t]]([i[0][0], i[1][0]]),
  7798. o = e[cN[t]]([i[0][1], i[1][1]]),
  7799. a = [ny([n[0], o[0]]), ny([n[1], o[1]])]; return { values: a, xyMinMax: a } }, polygon: function(t, e, i) { var n = [
  7800. [1 / 0, -1 / 0],
  7801. [1 / 0, -1 / 0]
  7802. ]; return { values: f(i, function(i) { var o = e[cN[t]](i); return n[0][0] = Math.min(n[0][0], o[0]), n[1][0] = Math.min(n[1][0], o[1]), n[0][1] = Math.max(n[0][1], o[0]), n[1][1] = Math.max(n[1][1], o[1]), o }), xyMinMax: n } } },
  7803. yN = { lineX: hN(ry, 0), lineY: hN(ry, 1), rect: function(t, e, i) { return [
  7804. [t[0][0] - i[0] * e[0][0], t[0][1] - i[0] * e[0][1]],
  7805. [t[1][0] - i[1] * e[1][0], t[1][1] - i[1] * e[1][1]]
  7806. ] }, polygon: function(t, e, i) { return f(t, function(t, n) { return [t[0] - i[0] * e[n][0], t[1] - i[1] * e[n][1]] }) } },
  7807. xN = ["inBrush", "outOfBrush"],
  7808. _N = "__ecBrushSelect",
  7809. wN = "__ecInBrushSelectEvent",
  7810. bN = IT.VISUAL.BRUSH;
  7811. Os(bN, function(t, e, i) { t.eachComponent({ mainType: "brush" }, function(e) { i && "takeGlobalCursor" === i.type && e.setBrushOption("brush" === i.key ? i.brushOption : { brushType: !1 }), (e.brushTargetManager = new iy(e.option, t)).setInputRanges(e.areas, t) }) }), Es(bN, function(t, e, n) { var o, a, s = [];
  7812. t.eachComponent({ mainType: "brush" }, function(e, n) {
  7813. function l(t) { return "all" === m || v[t] }
  7814. function u(t) { return !!t.length }
  7815. function h(t, e) { var i = t.coordinateSystem;
  7816. w |= i.hasAxisBrushed(), l(e) && i.eachActiveState(t.getData(), function(t, e) { "active" === t && (x[e] = 1) }) }
  7817. function c(i, n, o) { var a = dy(i); if (a && !fy(e, n) && (d(b, function(n) { a[n.brushType] && e.brushTargetManager.controlSeries(n, i, t) && o.push(n), w |= u(o) }), l(n) && u(o))) { var r = i.getData();
  7818. r.each(function(t) { cy(a, o, r, t) && (x[t] = 1) }) } } var p = { brushId: e.id, brushIndex: n, brushName: e.name, areas: i(e.areas), selected: [] };
  7819. s.push(p); var g = e.option,
  7820. m = g.brushLink,
  7821. v = [],
  7822. x = [],
  7823. _ = [],
  7824. w = 0;
  7825. n || (o = g.throttleType, a = g.throttleDelay); var b = f(e.areas, function(t) { return py(r({ boundingRect: SN[t.brushType](t) }, t)) }),
  7826. S = Xv(e.option, xN, function(t) { t.mappingMethod = "fixed" });
  7827. y(m) && d(m, function(t) { v[t] = 1 }), t.eachSeries(function(t, e) { var i = _[e] = []; "parallel" === t.subType ? h(t, e) : c(t, e, i) }), t.eachSeries(function(t, e) { var i = { seriesId: t.id, seriesIndex: e, seriesName: t.name, dataIndex: [] };
  7828. p.selected.push(i); var n = dy(t),
  7829. o = _[e],
  7830. a = t.getData(),
  7831. r = l(e) ? function(t) { return x[t] ? (i.dataIndex.push(a.getRawIndex(t)), "inBrush") : "outOfBrush" } : function(t) { return cy(n, o, a, t) ? (i.dataIndex.push(a.getRawIndex(t)), "inBrush") : "outOfBrush" };
  7832. (l(e) ? w : u(o)) && Yv(xN, S, a, r) }) }), uy(e, o, a, s, n) }); var SN = { lineX: B, lineY: B, rect: function(t) { return gy(t.range) }, polygon: function(t) { for (var e, i = t.range, n = 0, o = i.length; n < o; n++) { e = e || [
  7833. [1 / 0, -1 / 0],
  7834. [1 / 0, -1 / 0]
  7835. ]; var a = i[n];
  7836. a[0] < e[0][0] && (e[0][0] = a[0]), a[0] > e[0][1] && (e[0][1] = a[0]), a[1] < e[1][0] && (e[1][0] = a[1]), a[1] > e[1][1] && (e[1][1] = a[1]) } return e && gy(e) } },
  7837. MN = ["#ddd"];
  7838. Bs({ 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 && jv(i, t, ["inBrush", "outOfBrush"]); var n = i.inBrush = i.inBrush || {};
  7839. i.outOfBrush = i.outOfBrush || { color: MN }, n.hasOwnProperty("liftZ") || (n.liftZ = 5) }, setAreas: function(t) { t && (this.areas = f(t, function(t) { return my(this.option, t) }, this)) }, setBrushOption: function(t) { this.brushOption = my(this.option, t), this.brushType = this.brushOption.brushType } });
  7840. Vs({ type: "brush", init: function(t, e) { this.ecModel = t, this.api = e, this.model, (this._brushController = new Cf(e.getZr())).on("brush", m(this._onBrush, this)).mount() }, render: function(t) { return this.model = t, vy.apply(this, arguments) }, updateTransform: vy, updateView: vy, dispose: function() { this._brushController.dispose() }, _onBrush: function(t, e) { var n = this.model.id;
  7841. this.model.brushTargetManager.setOutputRanges(t, this.ecModel), (!e.isEnd || e.removeOnClick) && this.api.dispatchAction({ type: "brush", brushId: n, areas: i(t), $from: n }) } }), Ps({ type: "brush", event: "brush" }, function(t, e) { e.eachComponent({ mainType: "brush", query: t }, function(e) { e.setAreas(t.areas) }) }), Ps({ type: "brushSelect", event: "brushSelected", update: "none" }, function() {}); var IN = {},
  7842. TN = XI.toolbox.brush;
  7843. _y.defaultOption = { show: !0, type: ["rect", "polygon", "lineX", "lineY", "keep", "clear"], icon: { rect: "M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13", polygon: "M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2", lineX: "M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4", lineY: "M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4", keep: "M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z", clear: "M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2" }, title: i(TN.title) }; var AN = _y.prototype;
  7844. AN.render = AN.updateView = function(t, e, i) { var n, o, a;
  7845. e.eachComponent({ mainType: "brush" }, function(t) { n = t.brushType, o = t.brushOption.brushMode || "single", a |= t.areas.length }), this._brushType = n, this._brushMode = o, d(t.get("type", !0), function(e) { t.setIconStatus(e, ("keep" === e ? "multiple" === o : "clear" === e ? a : e === n) ? "emphasis" : "normal") }) }, AN.getIcons = function() { var t = this.model,
  7846. e = t.get("icon", !0),
  7847. i = {}; return d(t.get("type", !0), function(t) { e[t] && (i[t] = e[t]) }), i }, AN.onclick = function(t, e, i) { var n = this._brushType,
  7848. o = this._brushMode; "clear" === i ? (e.dispatchAction({ type: "axisAreaSelect", intervals: [] }), e.dispatchAction({ type: "brush", command: "clear", areas: [] })) : e.dispatchAction({ type: "takeGlobalCursor", key: "brush", brushOption: { brushType: "keep" === i ? n : n !== i && i, brushMode: "keep" === i ? "multiple" === o ? "single" : "multiple" : o } }) }, yy("brush", _y), Ls(function(t, e) { var i = t && t.brush; if (y(i) || (i = i ? [i] : []), i.length) { var n = [];
  7849. d(i, function(t) { var e = t.hasOwnProperty("toolbox") ? t.toolbox : [];
  7850. e instanceof Array && (n = n.concat(e)) }); var o = t && t.toolbox;
  7851. y(o) && (o = o[0]), o || (o = { feature: {} }, t.toolbox = [o]); var a = o.feature || (o.feature = {}),
  7852. r = a.brush || (a.brush = {}),
  7853. s = r.type || (r.type = []);
  7854. s.push.apply(s, n), Zv(s), e && !s.length && s.push.apply(s, aN) } });
  7855. wy.prototype = { constructor: wy, type: "calendar", dimensions: ["time", "value"], getDimensionsInfo: function() { return [{ name: "time", type: "time" }, "value"] }, getRangeInfo: function() { return this._rangeInfo }, getModel: function() { return this._model }, getRect: function() { return this._rect }, getCellWidth: function() { return this._sw }, getCellHeight: function() { return this._sh }, getOrient: function() { return this._orient }, getFirstDayOfWeek: function() { return this._firstDayOfWeek }, getDateInfo: function(t) { var e = (t = Uo(t)).getFullYear(),
  7856. i = t.getMonth() + 1;
  7857. i = i < 10 ? "0" + i : i; var n = t.getDate();
  7858. n = n < 10 ? "0" + n : n; var o = t.getDay(); return o = Math.abs((o + 7 - this.getFirstDayOfWeek()) % 7), { y: e, m: i, d: n, day: o, time: t.getTime(), formatedDate: e + "-" + i + "-" + n, date: t } }, getNextNDay: function(t, e) { return 0 === (e = e || 0) ? this.getDateInfo(t) : ((t = new Date(this.getDateInfo(t).time)).setDate(t.getDate() + e), this.getDateInfo(t)) }, update: function(t, e) {
  7859. function i(t, e) { return null != t[e] && "auto" !== t[e] }
  7860. 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,
  7861. o = ["width", "height"],
  7862. a = this._model.get("cellSize").slice(),
  7863. r = this._model.getBoxLayoutParams(),
  7864. s = "horizontal" === this._orient ? [n, 7] : [7, n];
  7865. d([0, 1], function(t) { i(a, t) && (r[o[t]] = a[t] * s[t]) }); var l = { width: e.getWidth(), height: e.getHeight() },
  7866. u = this._rect = la(r, l);
  7867. d([0, 1], function(t) { i(a, t) || (a[t] = u[o[t]] / s[t]) }), this._sw = a[0], this._sh = a[1] }, dataToPoint: function(t, e) { y(t) && (t = t[0]), null == e && (e = !0); var i = this.getDateInfo(t),
  7868. n = this._rangeInfo,
  7869. o = i.formatedDate; if (e && !(i.time >= n.start.time && i.time < n.end.time + 864e5)) return [NaN, NaN]; var a = i.day,
  7870. r = this._getRangeInfo([n.start.time, o]).nthWeek; return "vertical" === this._orient ? [this._rect.x + a * this._sw + this._sw / 2, this._rect.y + r * this._sh + this._sh / 2] : [this._rect.x + r * this._sw + this._sw / 2, this._rect.y + a * this._sh + this._sh / 2] }, pointToData: function(t) { var e = this.pointToDate(t); return e && e.time }, dataToRect: function(t, e) { var i = this.dataToPoint(t, e); return { contentShape: { x: i[0] - (this._sw - this._lineWidth) / 2, y: i[1] - (this._sh - this._lineWidth) / 2, width: this._sw - this._lineWidth, height: this._sh - this._lineWidth }, center: i, tl: [i[0] - this._sw / 2, i[1] - this._sh / 2], tr: [i[0] + this._sw / 2, i[1] - this._sh / 2], br: [i[0] + this._sw / 2, i[1] + this._sh / 2], bl: [i[0] - this._sw / 2, i[1] + this._sh / 2] } }, pointToDate: function(t) { var e = Math.floor((t[0] - this._rect.x) / this._sw) + 1,
  7871. i = Math.floor((t[1] - this._rect.y) / this._sh) + 1,
  7872. n = this._rangeInfo.range; return "vertical" === this._orient ? this._getDateByWeeksAndDay(i, e - 1, n) : this._getDateByWeeksAndDay(e, i - 1, n) }, convertToPixel: v(by, "dataToPoint"), convertFromPixel: v(by, "pointToData"), _initRangeOption: function() { var t = this._model.get("range"),
  7873. e = t; if (y(e) && 1 === e.length && (e = e[0]), /^\d{4}$/.test(e) && (t = [e + "-01-01", e + "-12-31"]), /^\d{4}[\/|-]\d{1,2}$/.test(e)) { var i = this.getDateInfo(e),
  7874. n = i.date;
  7875. n.setMonth(n.getMonth() + 1); var o = this.getNextNDay(n, -1);
  7876. t = [i.formatedDate, o.formatedDate] } /^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(e) && (t = [e, e]); var a = this._getRangeInfo(t); return a.start.time > a.end.time && t.reverse(), t }, _getRangeInfo: function(t) { var e;
  7877. (t = [this.getDateInfo(t[0]), this.getDateInfo(t[1])])[0].time > t[1].time && (e = !0, t.reverse()); var i = Math.floor(t[1].time / 864e5) - Math.floor(t[0].time / 864e5) + 1,
  7878. n = new Date(t[0].time),
  7879. o = n.getDate(),
  7880. a = t[1].date.getDate(); if (n.setDate(o + i - 1), n.getDate() !== a)
  7881. for (var r = n.getTime() - t[1].time > 0 ? 1 : -1; n.getDate() !== a && (n.getTime() - t[1].time) * r > 0;) i -= r, n.setDate(o + i - 1); var s = Math.floor((i + t[0].day + 6) / 7),
  7882. l = e ? 1 - s : s - 1; return e && t.reverse(), { range: [t[0].formatedDate, t[1].formatedDate], start: t[0], end: t[1], allDay: i, weeks: s, nthWeek: l, fweek: t[0].day, lweek: t[1].day } }, _getDateByWeeksAndDay: function(t, e, i) { var n = this._getRangeInfo(i); if (t > n.weeks || 0 === t && e < n.fweek || t === n.weeks && e > n.lweek) return !1; var o = 7 * (t - 1) - n.fweek + e,
  7883. a = new Date(n.start.time); return a.setDate(n.start.d + o), this.getDateInfo(a) } }, wy.dimensions = wy.prototype.dimensions, wy.getDimensionsInfo = wy.prototype.getDimensionsInfo, wy.create = function(t, e) { var i = []; return t.eachComponent("calendar", function(n) { var o = new wy(n, t, e);
  7884. i.push(o), n.coordinateSystem = o }), t.eachSeries(function(t) { "calendar" === t.get("coordinateSystem") && (t.coordinateSystem = i[t.get("calendarIndex") || 0]) }), i }, Ba.register("calendar", wy); var DN = YM.extend({ type: "calendar", coordinateSystem: null, defaultOption: { zlevel: 0, z: 2, left: 80, top: 60, cellSize: 20, orient: "horizontal", splitLine: { show: !0, lineStyle: { color: "#000", width: 1, type: "solid" } }, itemStyle: { color: "#fff", borderWidth: 1, borderColor: "#ccc" }, dayLabel: { show: !0, firstDay: 0, position: "start", margin: "50%", nameMap: "en", color: "#000" }, monthLabel: { show: !0, position: "start", margin: 5, align: "center", nameMap: "en", formatter: null, color: "#000" }, yearLabel: { show: !0, position: null, margin: 30, formatter: null, color: "#ccc", fontFamily: "sans-serif", fontWeight: "bolder", fontSize: 20 } }, init: function(t, e, i, n) { var o = da(t);
  7885. DN.superApply(this, "init", arguments), Sy(t, o) }, mergeOption: function(t, e) { DN.superApply(this, "mergeOption", arguments), Sy(this.option, t) } }),
  7886. CN = { EN: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], CN: ["涓€鏈�", "浜屾湀", "涓夋湀", "鍥涙湀", "浜旀湀", "鍏湀", "涓冩湀", "鍏湀", "涔濇湀", "鍗佹湀", "鍗佷竴鏈�", "鍗佷簩鏈�"] },
  7887. LN = { EN: ["S", "M", "T", "W", "T", "F", "S"], CN: ["鏃�", "涓€", "浜�", "涓�", "鍥�", "浜�", "鍏�"] };
  7888. Vs({ type: "calendar", _tlpoints: null, _blpoints: null, _firstDayOfMonth: null, _firstDayPoints: null, render: function(t, e, i) { var n = this.group;
  7889. n.removeAll(); var o = t.coordinateSystem,
  7890. a = o.getRangeInfo(),
  7891. r = o.getOrient();
  7892. this._renderDayRect(t, a, n), this._renderLines(t, a, r, n), this._renderYearText(t, a, r, n), this._renderMonthText(t, r, n), this._renderWeekText(t, a, r, n) }, _renderDayRect: function(t, e, i) { for (var n = t.coordinateSystem, o = t.getModel("itemStyle").getItemStyle(), a = n.getCellWidth(), r = n.getCellHeight(), s = e.start.time; s <= e.end.time; s = n.getNextNDay(s, 1).time) { var l = n.dataToRect([s], !1).tl,
  7893. u = new aM({ shape: { x: l[0], y: l[1], width: a, height: r }, cursor: "default", style: o });
  7894. i.add(u) } }, _renderLines: function(t, e, i, n) {
  7895. function o(e) { a._firstDayOfMonth.push(r.getDateInfo(e)), a._firstDayPoints.push(r.dataToRect([e], !1).tl); var o = a._getLinePointsOfOneWeek(t, e, i);
  7896. a._tlpoints.push(o[0]), a._blpoints.push(o[o.length - 1]), l && a._drawSplitline(o, s, n) } var a = this,
  7897. r = t.coordinateSystem,
  7898. s = t.getModel("splitLine.lineStyle").getLineStyle(),
  7899. l = t.get("splitLine.show"),
  7900. u = s.lineWidth;
  7901. 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;
  7902. d.setMonth(d.getMonth() + 1), h = r.getDateInfo(d) }
  7903. 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()],
  7904. 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 oM({ z2: 20, shape: { points: t }, style: e });
  7905. i.add(n) }, _getLinePointsOfOneWeek: function(t, e, i) { var n = t.coordinateSystem;
  7906. e = n.getDateInfo(e); for (var o = [], a = 0; a < 7; a++) { var r = n.getNextNDay(e.time, a),
  7907. s = n.dataToRect([r.time], !1);
  7908. 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 ? ea(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"),
  7909. r = o.get("position");
  7910. r || (r = "horizontal" !== i ? "top" : "left"); var s = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]],
  7911. l = (s[0][0] + s[1][0]) / 2,
  7912. u = (s[0][1] + s[1][1]) / 2,
  7913. h = "horizontal" === i ? 0 : 1,
  7914. c = { top: [l, s[h][1]], bottom: [l, s[1 - h][1]], left: [s[1 - h][0], u], right: [s[h][0], u] },
  7915. d = e.start.y; + e.end.y > +e.start.y && (d = d + "-" + e.end.y); var f = o.get("formatter"),
  7916. p = { start: e.start.y, end: e.end.y, nameMap: d },
  7917. g = this._formatterLabel(f, p),
  7918. m = new qS({ z2: 30 });
  7919. fo(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",
  7920. r = "top",
  7921. s = t[0],
  7922. 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"),
  7923. r = n.get("margin"),
  7924. s = n.get("position"),
  7925. l = n.get("align"),
  7926. u = [this._tlpoints, this._blpoints];
  7927. _(o) && (o = CN[o.toUpperCase()] || []); var h = "start" === s ? 0 : 1,
  7928. c = "horizontal" === e ? 0 : 1;
  7929. r = "start" === s ? -r : r; for (var d = "center" === l, f = 0; f < u[h].length - 1; f++) { var p = u[h][f].slice(),
  7930. g = this._firstDayOfMonth[f]; if (d) { var m = this._firstDayPoints[f];
  7931. p[c] = (m[c] + u[0][f + 1][c]) / 2 } var v = n.get("formatter"),
  7932. y = o[+g.m - 1],
  7933. x = { yyyy: g.y, yy: (g.y + "").slice(2), MM: g.m, M: +g.m, nameMap: y },
  7934. w = this._formatterLabel(v, x),
  7935. b = new qS({ z2: 30 });
  7936. a(fo(b.style, n, { text: w }), this._monthTextPositionControl(p, d, e, s, r)), i.add(b) } } }, _weekTextPositionControl: function(t, e, i, n, o) { var a = "center",
  7937. r = "middle",
  7938. s = t[0],
  7939. l = t[1],
  7940. u = "start" === i; return "horizontal" === e ? (s = s + n + (u ? 1 : -1) * o[0] / 2, a = u ? "right" : "left") : (l = l + n + (u ? 1 : -1) * o[1] / 2, r = u ? "bottom" : "top"), { x: s, y: l, textAlign: a, textVerticalAlign: r } }, _renderWeekText: function(t, e, i, n) { var o = t.getModel("dayLabel"); if (o.get("show")) { var r = t.coordinateSystem,
  7941. s = o.get("position"),
  7942. l = o.get("nameMap"),
  7943. u = o.get("margin"),
  7944. h = r.getFirstDayOfWeek();
  7945. _(l) && (l = LN[l.toUpperCase()] || []); var c = r.getNextNDay(e.end.time, 7 - e.lweek).time,
  7946. d = [r.getCellWidth(), r.getCellHeight()];
  7947. u = Ro(u, d["horizontal" === i ? 0 : 1]), "start" === s && (c = r.getNextNDay(e.start.time, -(7 + e.fweek)).time, u = -u); for (var f = 0; f < 7; f++) { var p = r.getNextNDay(c, f),
  7948. g = r.dataToRect([p.time], !1).center,
  7949. m = f;
  7950. m = Math.abs((f + h) % 7); var v = new qS({ z2: 30 });
  7951. a(fo(v.style, o, { text: l[m] }), this._weekTextPositionControl(g, i, s, u, d)), n.add(v) } } } }), Bs({ 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" } } }), Vs({ type: "title", render: function(t, e, i) { if (this.group.removeAll(), t.get("show")) { var n = this.group,
  7952. o = t.getModel("textStyle"),
  7953. a = t.getModel("subtextStyle"),
  7954. r = t.get("textAlign"),
  7955. s = t.get("textBaseline"),
  7956. l = new qS({ style: fo({}, o, { text: t.get("text"), textFill: o.getTextColor() }, { disableBox: !0 }), z2: 10 }),
  7957. u = l.getBoundingRect(),
  7958. h = t.get("subtext"),
  7959. c = new qS({ style: fo({}, a, { text: h, textFill: a.getTextColor(), y: u.height + t.get("itemGap"), textVerticalAlign: "top" }, { disableBox: !0 }), z2: 10 }),
  7960. d = t.get("link"),
  7961. f = t.get("sublink"),
  7962. p = t.get("triggerEvent", !0);
  7963. l.silent = !d && !p, c.silent = !f && !p, d && l.on("click", function() { window.open(d, "_" + t.get("target")) }), f && c.on("click", function() { window.open(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(),
  7964. m = t.getBoxLayoutParams();
  7965. m.width = g.width, m.height = g.height; var v = la(m, { width: i.getWidth(), height: i.getHeight() }, t.get("padding"));
  7966. r || ("middle" === (r = t.get("left") || t.get("right")) && (r = "center"), "right" === r ? v.x += v.width : "center" === r && (v.x += v.width / 2)), s || ("center" === (s = t.get("top") || t.get("bottom")) && (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 };
  7967. l.setStyle(y), c.setStyle(y), g = n.getBoundingRect(); var x = v.margin,
  7968. _ = t.getItemStyle(["color", "opacity"]);
  7969. _.fill = t.get("backgroundColor"); var w = new aM({ 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: _, silent: !0 });
  7970. jn(w), n.add(w) } } }), YM.registerSubTypeDefaulter("dataZoom", function() { return "slider" }); var kN = ["cartesian2d", "polar", "singleAxis"],
  7971. PN = function(t, e) { var i = f(t = t.slice(), aa),
  7972. n = f(e = (e || []).slice(), aa); return function(o, a) { d(t, function(t, r) { for (var s = { name: t, capital: i[r] }, l = 0; l < e.length; l++) s[e[l]] = t + n[l];
  7973. o.call(a, s) }) } }(["x", "y", "z", "radius", "angle", "single"], ["axisIndex", "axis", "index", "id"]),
  7974. NN = d,
  7975. ON = Bo,
  7976. EN = 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 };
  7977. EN.prototype = { constructor: EN, hostedBy: function(t) { return this._dataZoomModel === t }, getDataValueWindow: function() { return this._valueWindow.slice() }, getDataPercentWindow: function() { return this._percentWindow.slice() }, getTargetSeriesModels: function() { var t = [],
  7978. e = this.ecModel; return e.eachSeries(function(i) { if (My(i.get("coordinateSystem"))) { var n = this._dimName,
  7979. o = e.queryComponents({ mainType: n + "Axis", index: i.get(n + "AxisIndex"), id: i.get(n + "AxisId") })[0];
  7980. 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,
  7981. n = this.ecModel,
  7982. o = this.getAxisModel(); "x" === i || "y" === i ? (e = "gridIndex", t = "x" === i ? "y" : "x") : (e = "polarIndex", t = "angle" === i ? "radius" : "angle"); var a; return n.eachComponent(t + "Axis", function(t) {
  7983. (t.get(e) || 0) === (o.get(e) || 0) && (a = t) }), a }, getMinMaxSpan: function() { return i(this._minMaxSpan) }, calculateDataWindow: function(t) { var e = this._dataExtent,
  7984. i = this.getAxisModel().axis.scale,
  7985. n = this._dataZoomModel.getRangePropMode(),
  7986. o = [0, 100],
  7987. a = [t.start, t.end],
  7988. r = []; return NN(["startValue", "endValue"], function(e) { r.push(null != t[e] ? i.parse(t[e]) : null) }), NN([0, 1], function(t) { var s = r[t],
  7989. l = a[t]; "percent" === n[t] ? (null == l && (l = o[t]), s = i.parse(Eo(l, o, e, !0))) : l = Eo(s, e, o, !0), r[t] = s, a[t] = l }), { valueWindow: ON(r), percentWindow: ON(a) } }, reset: function(t) { if (t === this._dataZoomModel) { var e = this.getTargetSeriesModels();
  7990. this._dataExtent = Ty(this, this._dimName, e); var i = this.calculateDataWindow(t.option);
  7991. this._valueWindow = i.valueWindow, this._percentWindow = i.percentWindow, Cy(this), Dy(this) } }, restore: function(t) { t === this._dataZoomModel && (this._valueWindow = this._percentWindow = null, Dy(this, !0)) }, filterData: function(t, e) {
  7992. function i(t) { return t >= r[0] && t <= r[1] } if (t === this._dataZoomModel) { var n = this._dimName,
  7993. o = this.getTargetSeriesModels(),
  7994. a = t.get("filterMode"),
  7995. r = this._valueWindow; "none" !== a && NN(o, function(t) { var e = t.getData(),
  7996. o = e.mapDimension(n, !0);
  7997. o.length && ("weakFilter" === a ? e.filterSelf(function(t) { for (var i, n, a, s = 0; s < o.length; s++) { var l = e.get(o[s], t),
  7998. u = !isNaN(l),
  7999. h = l < r[0],
  8000. c = l > r[1]; if (u && !h && !c) return !0;
  8001. u && (a = !0), h && (i = !0), c && (n = !0) } return a && i && n }) : NN(o, function(n) { if ("empty" === a) t.setData(e.map(n, function(t) { return i(t) ? t : NaN }));
  8002. else { var o = {};
  8003. o[n] = r, e.selectRange(o) } }), NN(o, function(t) { e.setApproximateExtent(r, t) })) }) } } }; var RN = d,
  8004. zN = PN,
  8005. BN = Bs({ 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 = Ly(t);
  8006. this.mergeDefaultAndTheme(t, i), this.doInit(n) }, mergeOption: function(t) { var e = Ly(t);
  8007. n(this.option, t, !0), this.doInit(e) }, doInit: function(t) { var e = this.option;
  8008. z_.canvasSupported || (e.realtime = !1), this._setDefaultThrottle(t), ky(this, t), RN([
  8009. ["start", "startValue"],
  8010. ["end", "endValue"]
  8011. ], function(t, i) { "value" === this._rangePropMode[i] && (e[t[0]] = null) }, this), this.textStyleModel = this.getModel("textStyle"), this._resetTarget(), this._giveAxisProxies() }, _giveAxisProxies: function() { var t = this._axisProxies;
  8012. this.eachTargetAxis(function(e, i, n, o) { var a = this.dependentModels[e.axis][i],
  8013. r = a.__dzAxisProxy || (a.__dzAxisProxy = new EN(e.name, i, this, o));
  8014. t[e.name + "_" + i] = r }, this) }, _resetTarget: function() { var t = this.option,
  8015. e = this._judgeAutoMode();
  8016. zN(function(e) { var i = e.axisIndex;
  8017. t[i] = Di(t[i]) }, this), "axisIndex" === e ? this._autoSetAxisIndex() : "orient" === e && this._autoSetOrient() }, _judgeAutoMode: function() { var t = this.option,
  8018. e = !1;
  8019. zN(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,
  8020. e = this.get("orient", !0),
  8021. i = this.option,
  8022. n = this.dependentModels; if (t) { var o = "vertical" === e ? "y" : "x";
  8023. n[o + "Axis"].length ? (i[o + "AxisIndex"] = [0], t = !1) : RN(n.singleAxis, function(n) { t && n.get("orient", !0) === e && (i.singleAxisIndex = [n.componentIndex], t = !1) }) }
  8024. t && zN(function(e) { if (t) { var n = [],
  8025. o = this.dependentModels[e.axis]; if (o.length && !n.length)
  8026. for (var a = 0, r = o.length; a < r; a++) "category" === o[a].get("type") && n.push(a);
  8027. i[e.axisIndex] = n, n.length && (t = !1) } }, this), t && this.ecModel.eachSeries(function(t) { this._isSeriesHasAllAxesTypeOf(t, "value") && zN(function(e) { var n = i[e.axisIndex],
  8028. o = t.get(e.axisIndex),
  8029. a = t.get(e.axisId);
  8030. l(n, o = t.ecModel.queryComponents({ mainType: e.axis, index: o, id: a })[0].componentIndex) < 0 && n.push(o) }) }, this) }, _autoSetOrient: function() { var t;
  8031. this.eachTargetAxis(function(e) {!t && (t = e.name) }, this), this.option.orient = "y" === t ? "vertical" : "horizontal" }, _isSeriesHasAllAxesTypeOf: function(t, e) { var i = !0; return zN(function(n) { var o = t.get(n.axisIndex),
  8032. a = this.dependentModels[n.axis][o];
  8033. 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;
  8034. this.option.throttle = e.animation && e.animationDurationUpdate > 0 ? 100 : 20 } }, getFirstTargetAxisModel: function() { var t; return zN(function(e) { if (null == t) { var i = this.get(e.axisIndex);
  8035. i.length && (t = this.dependentModels[e.axis][i[0]]) } }, this), t }, eachTargetAxis: function(t, e) { var i = this.ecModel;
  8036. zN(function(n) { RN(this.get(n.axisIndex), function(o) { t.call(e, n, o, this, i) }, this) }, this) }, getAxisProxy: function(t, e) { return this._axisProxies[t + "_" + e] }, getAxisModel: function(t, e) { var i = this.getAxisProxy(t, e); return i && i.getAxisModel() }, setRawRange: function(t, e) { var i = this.option;
  8037. RN([
  8038. ["start", "startValue"],
  8039. ["end", "endValue"]
  8040. ], function(e) { null == t[e[0]] && null == t[e[1]] || (i[e[0]] = t[e[0]], i[e[1]] = t[e[1]]) }, this), !e && ky(this, t) }, getPercentRange: function() { var t = this.findRepresentativeAxisProxy(); if (t) return t.getDataPercentWindow() }, getValueRange: function(t, e) { if (null != t || null != e) return this.getAxisProxy(t, e).getDataValueWindow(); var i = this.findRepresentativeAxisProxy(); return i ? i.getDataValueWindow() : void 0 }, findRepresentativeAxisProxy: function(t) { if (t) return t.__dzAxisProxy; var e = this._axisProxies; for (var i in e)
  8041. if (e.hasOwnProperty(i) && e[i].hostedBy(this)) return e[i];
  8042. for (var i in e)
  8043. if (e.hasOwnProperty(i) && !e[i].hostedBy(this)) return e[i] }, getRangePropMode: function() { return this._rangePropMode.slice() } }),
  8044. VN = EI.extend({ type: "dataZoom", render: function(t, e, i, n) { this.dataZoomModel = t, this.ecModel = e, this.api = i }, getTargetCoordInfo: function() {
  8045. function t(t, e, i, n) { for (var o, a = 0; a < i.length; a++)
  8046. if (i[a].model === t) { o = i[a]; break }
  8047. o || i.push(o = { model: t, axisModels: [], coordIndex: n }), o.axisModels.push(e) } var e = this.dataZoomModel,
  8048. i = this.ecModel,
  8049. n = {}; return e.eachTargetAxis(function(e, o) { var a = i.getComponent(e.axis, o); if (a) { var r = a.getCoordSysModel();
  8050. r && t(r, a, n[r.mainType] || (n[r.mainType] = []), r.componentIndex) } }, this), n } }),
  8051. GN = (BN.extend({ type: "dataZoom.slider", layoutMode: "box", defaultOption: { show: !0, right: "ph", top: "ph", width: "ph", height: "ph", left: null, bottom: null, backgroundColor: "rgba(47,69,84,0)", dataBackground: { lineStyle: { color: "#2f4554", width: .5, opacity: .3 }, areaStyle: { color: "rgba(47,69,84,0.3)", opacity: .3 } }, borderColor: "#ddd", fillerColor: "rgba(167,183,204,0.4)", handleIcon: "M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z", handleSize: "100%", handleStyle: { color: "#a7b7cc" }, labelPrecision: null, labelFormatter: null, showDetail: !0, showDataShadow: "auto", realtime: !0, zoomLock: !1, textStyle: { color: "#333" } } }), aM),
  8052. FN = Eo,
  8053. WN = Bo,
  8054. HN = m,
  8055. ZN = d,
  8056. UN = "horizontal",
  8057. XN = 5,
  8058. jN = ["line", "bar", "candlestick", "scatter"],
  8059. YN = VN.extend({ type: "dataZoom.slider", init: function(t, e) { this._displayables = {}, this._orient, this._range, this._handleEnds, this._size, this._handleWidth, this._handleHeight, this._location, this._dragging, this._dataShadowInfo, this.api = e }, render: function(t, e, i, n) { YN.superApply(this, "render", arguments), Lr(this, "_dispatchZoomAction", this.dataZoomModel.get("throttle"), "fixRate"), this._orient = t.get("orient"), !1 !== this.dataZoomModel.get("show") ? (n && "dataZoom" === n.type && n.from === this.uid || this._buildView(), this._updateView()) : this.group.removeAll() }, remove: function() { YN.superApply(this, "remove", arguments), kr(this, "_dispatchZoomAction") }, dispose: function() { YN.superApply(this, "dispose", arguments), kr(this, "_dispatchZoomAction") }, _buildView: function() { var t = this.group;
  8060. t.removeAll(), this._resetLocation(), this._resetInterval(); var e = this._displayables.barGroup = new Zw;
  8061. this._renderBackground(), this._renderHandle(), this._renderDataShadow(), t.add(e), this._positionGroup() }, _resetLocation: function() { var t = this.dataZoomModel,
  8062. e = this.api,
  8063. i = this._findCoordRect(),
  8064. n = { width: e.getWidth(), height: e.getHeight() },
  8065. o = this._orient === UN ? { right: n.width - i.x - i.width, top: n.height - 30 - 7, width: i.width, height: 30 } : { right: 7, top: i.y, width: 30, height: i.height },
  8066. a = da(t.option);
  8067. d(["right", "top", "width", "height"], function(t) { "ph" === a[t] && (a[t] = o[t]) }); var r = la(a, n, t.padding);
  8068. this._location = { x: r.x, y: r.y }, this._size = [r.width, r.height], "vertical" === this._orient && this._size.reverse() }, _positionGroup: function() { var t = this.group,
  8069. e = this._location,
  8070. i = this._orient,
  8071. n = this.dataZoomModel.getFirstTargetAxisModel(),
  8072. o = n && n.get("inverse"),
  8073. a = this._displayables.barGroup,
  8074. r = (this._dataShadowInfo || {}).otherAxisInverse;
  8075. a.attr(i !== UN || o ? i === UN && o ? { scale: r ? [-1, 1] : [-1, -1] } : "vertical" !== i || o ? { scale: r ? [-1, -1] : [-1, 1], rotation: Math.PI / 2 } : { scale: r ? [1, -1] : [1, 1], rotation: Math.PI / 2 } : { scale: r ? [1, 1] : [1, -1] }); var s = t.getBoundingRect([a]);
  8076. t.attr("position", [e.x - s.x, e.y - s.y]) }, _getViewExtent: function() { return [0, this._size[0]] }, _renderBackground: function() { var t = this.dataZoomModel,
  8077. e = this._size,
  8078. i = this._displayables.barGroup;
  8079. i.add(new GN({ silent: !0, shape: { x: 0, y: 0, width: e[0], height: e[1] }, style: { fill: t.get("backgroundColor") }, z2: -40 })), i.add(new GN({ shape: { x: 0, y: 0, width: e[0], height: e[1] }, style: { fill: "transparent" }, z2: 0, onclick: m(this._onClickPanelClick, this) })) }, _renderDataShadow: function() { var t = this._dataShadowInfo = this._prepareDataShadowInfo(); if (t) { var e = this._size,
  8080. i = t.series,
  8081. n = i.getRawData(),
  8082. o = i.getShadowDim ? i.getShadowDim() : t.otherDim; if (null != o) { var a = n.getDataExtent(o),
  8083. s = .3 * (a[1] - a[0]);
  8084. a = [a[0] - s, a[1] + s]; var l, u = [0, e[1]],
  8085. h = [0, e[0]],
  8086. c = [
  8087. [e[0], 0],
  8088. [0, 0]
  8089. ],
  8090. d = [],
  8091. f = h[1] / (n.count() - 1),
  8092. p = 0,
  8093. g = Math.round(n.count() / e[0]);
  8094. n.each([o], function(t, e) { if (g > 0 && e % g) p += f;
  8095. else { var i = null == t || isNaN(t) || "" === t,
  8096. n = i ? 0 : FN(t, a, u, !0);
  8097. 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;
  8098. this._displayables.barGroup.add(new nM({ shape: { points: c }, style: r({ fill: m.get("dataBackgroundColor") }, m.getModel("dataBackground.areaStyle").getAreaStyle()), silent: !0, z2: -20 })), this._displayables.barGroup.add(new oM({ shape: { points: d }, style: m.getModel("dataBackground.lineStyle").getLineStyle(), silent: !0, z2: -19 })) } } }, _prepareDataShadowInfo: function() { var t = this.dataZoomModel,
  8099. e = t.get("showDataShadow"); if (!1 !== e) { var i, n = this.ecModel; return t.eachTargetAxis(function(o, a) { d(t.getAxisProxy(o.name, a).getTargetSeriesModels(), function(t) { if (!(i || !0 !== e && l(jN, t.get("type")) < 0)) { var r, s = n.getComponent(o.axis, a).axis,
  8100. u = Py(o.name),
  8101. h = t.coordinateSystem;
  8102. null != u && h.getOtherAxis && (r = h.getOtherAxis(s).inverse), u = t.getData().mapDimension(u), i = { thisAxis: s, series: t, thisDim: o.name, otherDim: u, otherAxisInverse: r } } }, this) }, this), i } }, _renderHandle: function() { var t = this._displayables,
  8103. e = t.handles = [],
  8104. i = t.handleLabels = [],
  8105. n = this._displayables.barGroup,
  8106. o = this._size,
  8107. a = this.dataZoomModel;
  8108. n.add(t.filler = new GN({ draggable: !0, cursor: Ny(this._orient), drift: HN(this._onDragMove, this, "all"), onmousemove: function(t) { lw(t.event) }, ondragstart: HN(this._showDataInfo, this, !0), ondragend: HN(this._onDragEnd, this), onmouseover: HN(this._showDataInfo, this, !0), onmouseout: HN(this._showDataInfo, this, !1), style: { fill: a.get("fillerColor"), textPosition: "inside" } })), n.add(new GN(jn({ silent: !0, shape: { x: 0, y: 0, width: o[0], height: o[1] }, style: { stroke: a.get("dataBackgroundColor") || a.get("borderColor"), lineWidth: 1, fill: "rgba(0,0,0,0)" } }))), ZN([0, 1], function(t) { var o = Co(a.get("handleIcon"), { cursor: Ny(this._orient), draggable: !0, drift: HN(this._onDragMove, this, t), onmousemove: function(t) { lw(t.event) }, ondragend: HN(this._onDragEnd, this), onmouseover: HN(this._showDataInfo, this, !0), onmouseout: HN(this._showDataInfo, this, !1) }, { x: -1, y: 0, width: 2, height: 2 }),
  8109. r = o.getBoundingRect();
  8110. this._handleHeight = Ro(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");
  8111. null != s && (o.style.fill = s), n.add(e[t] = o); var l = a.textStyleModel;
  8112. this.group.add(i[t] = new qS({ 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(),
  8113. e = this._getViewExtent();
  8114. this._handleEnds = [FN(t[0], [0, 100], e, !0), FN(t[1], [0, 100], e, !0)] }, _updateInterval: function(t, e) { var i = this.dataZoomModel,
  8115. n = this._handleEnds,
  8116. o = this._getViewExtent(),
  8117. a = i.findRepresentativeAxisProxy().getMinMaxSpan(),
  8118. r = [0, 100];
  8119. EL(e, n, o, i.get("zoomLock") ? "all" : t, null != a.minSpan ? FN(a.minSpan, r, o, !0) : null, null != a.maxSpan ? FN(a.maxSpan, r, o, !0) : null); var s = this._range,
  8120. l = this._range = WN([FN(n[0], o, r, !0), FN(n[1], o, r, !0)]); return !s || s[0] !== l[0] || s[1] !== l[1] }, _updateView: function(t) { var e = this._displayables,
  8121. i = this._handleEnds,
  8122. n = WN(i.slice()),
  8123. o = this._size;
  8124. ZN([0, 1], function(t) { var n = e.handles[t],
  8125. a = this._handleHeight;
  8126. 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) {
  8127. function e(t) { var e = Mo(n.handles[t].parent, this.group),
  8128. i = To(0 === t ? "right" : "left", e),
  8129. s = this._handleWidth / 2 + XN,
  8130. l = Io([c[t] + (0 === t ? -s : s), this._size[1] / 2], e);
  8131. o[t].setStyle({ x: l[0], y: l[1], textVerticalAlign: a === UN ? "middle" : i, textAlign: a === UN ? i : "center", text: r[t] }) } var i = this.dataZoomModel,
  8132. n = this._displayables,
  8133. o = n.handleLabels,
  8134. a = this._orient,
  8135. r = ["", ""]; if (i.get("showDetail")) { var s = i.findRepresentativeAxisProxy(); if (s) { var l = s.getAxisModel().axis,
  8136. u = this._range,
  8137. h = t ? s.calculateDataWindow({ start: u[0], end: u[1] }).valueWindow : s.getDataValueWindow();
  8138. r = [this._formatLabel(h[0], l), this._formatLabel(h[1], l)] } } var c = WN(this._handleEnds.slice());
  8139. e.call(this, 0), e.call(this, 1) }, _formatLabel: function(t, e) { var i = this.dataZoomModel,
  8140. n = i.get("labelFormatter"),
  8141. o = i.get("labelPrecision");
  8142. null != o && "auto" !== o || (o = e.getPixelPrecision()); var a = null == t || isNaN(t) ? "" : "category" === e.type || "time" === e.type ? e.scale.getLabel(Math.round(t)) : t.toFixed(Math.min(o, 20)); return x(n) ? n(t, a) : _(n) ? n.replace("{value}", a) : a }, _showDataInfo: function(t) { t = this._dragging || t; var e = this._displayables.handleLabels;
  8143. e[0].attr("invisible", !t), e[1].attr("invisible", !t) }, _onDragMove: function(t, e, i) { this._dragging = !0; var n = Io([e, i], this._displayables.barGroup.getLocalTransform(), !0),
  8144. o = this._updateInterval(t, n[0]),
  8145. a = this.dataZoomModel.get("realtime");
  8146. this._updateView(!a), o && a && this._dispatchZoomAction() }, _onDragEnd: function() { this._dragging = !1, this._showDataInfo(!1), !this.dataZoomModel.get("realtime") && this._dispatchZoomAction() }, _onClickPanelClick: function(t) { var e = this._size,
  8147. 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,
  8148. o = (n[0] + n[1]) / 2,
  8149. a = this._updateInterval("all", i[0] - o);
  8150. this._updateView(), a && this._dispatchZoomAction() } }, _dispatchZoomAction: function() { var t = this._range;
  8151. this.api.dispatchAction({ type: "dataZoom", from: this.uid, dataZoomId: this.dataZoomModel.id, start: t[0], end: t[1] }) }, _findCoordRect: function() { var t; if (ZN(this.getTargetCoordInfo(), function(e) { if (!t && e.length) { var i = e[0].model.coordinateSystem;
  8152. t = i.getRect && i.getRect() } }), !t) { var e = this.api.getWidth(),
  8153. i = this.api.getHeight();
  8154. t = { x: .2 * e, y: .2 * i, width: .6 * e, height: .6 * i } } return t } });
  8155. BN.extend({ type: "dataZoom.inside", defaultOption: { disabled: !1, zoomLock: !1, zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !1, preventDefaultMouseMove: !0 } }); var qN = "\0_ec_dataZoom_roams",
  8156. KN = m,
  8157. $N = VN.extend({ type: "dataZoom.inside", init: function(t, e) { this._range }, render: function(t, e, i, n) { $N.superApply(this, "render", arguments), this._range = t.getPercentRange(), d(this.getTargetCoordInfo(), function(e, n) { var o = f(e, function(t) { return Ry(t.model) });
  8158. d(e, function(e) { var a = e.model,
  8159. r = {};
  8160. d(["pan", "zoom", "scrollMove"], function(t) { r[t] = KN(JN[t], this, e, n) }, this), Oy(i, { coordId: Ry(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() { Ey(this.api, this.dataZoomModel.id), $N.superApply(this, "dispose", arguments), this._range = null } }),
  8161. JN = { zoom: function(t, e, i, n) { var o = this._range,
  8162. a = o.slice(),
  8163. r = t.axisModels[0]; if (r) { var s = QN[e](null, [n.originX, n.originY], r, i, t),
  8164. l = (s.signal > 0 ? s.pixelStart + s.pixelLength - s.pixel : s.pixel - s.pixelStart) / s.pixelLength * (a[1] - a[0]) + a[0],
  8165. u = Math.max(1 / n.scale, 0);
  8166. a[0] = (a[0] - l) * u + l, a[1] = (a[1] - l) * u + l; var h = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan(); return EL(0, a, [0, 100], 0, h.minSpan, h.maxSpan), this._range = a, o[0] !== a[0] || o[1] !== a[1] ? a : void 0 } }, pan: Wy(function(t, e, i, n, o, a) { var r = QN[n]([a.oldX, a.oldY], [a.newX, a.newY], e, o, i); return r.signal * (t[1] - t[0]) * r.pixel / r.pixelLength }), scrollMove: Wy(function(t, e, i, n, o, a) { return QN[n]([0, 0], [a.scrollDelta, a.scrollDelta], e, o, i).signal * (t[1] - t[0]) * a.scrollDelta }) },
  8167. QN = { grid: function(t, e, i, n, o) { var a = i.axis,
  8168. r = {},
  8169. 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,
  8170. r = {},
  8171. s = o.model.coordinateSystem,
  8172. l = s.getRadiusAxis().getExtent(),
  8173. 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,
  8174. r = o.model.coordinateSystem.getRect(),
  8175. 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 } };
  8176. ks({ getTargetSeries: function(t) { var e = R(); return t.eachComponent("dataZoom", function(t) { t.eachTargetAxis(function(t, i, n) { d(n.getAxisProxy(t.name, i).getTargetSeriesModels(), function(t) { e.set(t.uid, t) }) }) }), e }, modifyOutputEnd: !0, overallReset: function(t, e) { t.eachComponent("dataZoom", function(t) { t.eachTargetAxis(function(t, i, n) { n.getAxisProxy(t.name, i).reset(n, e) }), t.eachTargetAxis(function(t, i, n) { n.getAxisProxy(t.name, i).filterData(n, e) }) }), t.eachComponent("dataZoom", function(t) { var e = t.findRepresentativeAxisProxy(),
  8177. i = e.getDataPercentWindow(),
  8178. n = e.getDataValueWindow();
  8179. t.setRawRange({ start: i[0], end: i[1], startValue: n[0], endValue: n[1] }, !0) }) } }), Ps("dataZoom", function(t, e) { var i = Iy(m(e.eachComponent, e, "dataZoom"), PN, function(t, e) { return t.get(e.axisIndex) }),
  8180. n = [];
  8181. e.eachComponent({ mainType: "dataZoom", query: t }, function(t, e) { n.push.apply(n, i(t).nodes) }), d(n, function(e, i) { e.setRawRange({ start: t.start, end: t.end, startValue: t.startValue, endValue: t.endValue }) }) }); var tO = d,
  8182. eO = function(t) { var e = t && t.visualMap;
  8183. y(e) || (e = e ? [e] : []), tO(e, function(t) { if (t) { Hy(t, "splitList") && !Hy(t, "pieces") && (t.pieces = t.splitList, delete t.splitList); var e = t.pieces;
  8184. e && y(e) && tO(e, function(t) { w(t) && (Hy(t, "start") && !Hy(t, "min") && (t.min = t.start), Hy(t, "end") && !Hy(t, "max") && (t.max = t.end)) }) } }) };
  8185. YM.registerSubTypeDefaulter("visualMap", function(t) { return t.categories || (t.pieces ? t.pieces.length > 0 : t.splitNumber > 0) && !t.calculable ? "piecewise" : "continuous" }); var iO = IT.VISUAL.COMPONENT;
  8186. Es(iO, { 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(qv(e.stateList, e.targetVisuals, m(e.getValueState, e), e.getDataDimension(t.getData()))) }), i } }), Es(iO, { createOnAllSeries: !0, reset: function(t, e) { var i = t.getData(),
  8187. n = [];
  8188. e.eachComponent("visualMap", function(e) { if (e.isTargetSeries(t)) { var o = e.getVisualMeta(m(Zy, null, t, e)) || { stops: [], outerColors: [] },
  8189. a = e.getDataDimension(i),
  8190. r = i.getDimensionInfo(a);
  8191. null != r && (o.dimension = r.index, n.push(o)) } }), t.getData().setVisual("visualMeta", n) } }); var nO = { get: function(t, e, n) { var o = i((oO[t] || {})[e]); return n && y(o) ? o[o.length - 1] : o } },
  8192. oO = { 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] } },
  8193. aO = jC.mapVisual,
  8194. rO = jC.eachVisual,
  8195. sO = y,
  8196. lO = d,
  8197. uO = Bo,
  8198. hO = Eo,
  8199. cO = B,
  8200. dO = Bs({ 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;
  8201. z_.canvasSupported || (i.realtime = !1), !e && jv(i, t, this.replacableOptionKeys), this.textStyleModel = this.getModel("textStyle"), this.resetItemSize(), this.completeVisualOption() }, resetVisual: function(t) { var e = this.stateList;
  8202. t = m(t, this), this.controllerVisuals = Xv(this.option.controller, e, t), this.targetVisuals = Xv(this.option.target, e, t) }, getTargetSeriesIndices: function() { var t = this.option.seriesIndex,
  8203. e = []; return null == t || "all" === t ? this.ecModel.eachSeries(function(t, i) { e.push(i) }) : e = Di(t), e }, eachTargetSeries: function(t, e) { d(this.getTargetSeriesIndices(), function(i) { t.call(e, this.ecModel.getSeriesByIndex(i)) }, this) }, isTargetSeries: function(t) { var e = !1; return this.eachTargetSeries(function(i) { i === t && (e = !0) }), e }, formatValueText: function(t, e, i) {
  8204. function n(t) { return t === l[0] ? "min" : t === l[1] ? "max" : (+t).toFixed(Math.min(s, 20)) } var o, a, r = this.option,
  8205. s = r.precision,
  8206. l = this.dataBound,
  8207. u = r.formatter; return i = i || ["<", ">"], y(t) && (t = t.slice(), o = !0), a = e ? t : o ? [n(t[0]), n(t[1])] : n(t), _(u) ? u.replace("{value}", o ? a[0] : a).replace("{value2}", o ? a[1] : a) : x(u) ? o ? u(t[0], t[1]) : u(t) : o ? t[0] === l[0] ? i[0] + " " + a[1] : t[1] === l[1] ? i[1] + " " + a[0] : a[0] + " - " + a[1] : a }, resetExtent: function() { var t = this.option,
  8208. e = uO([t.min, t.max]);
  8209. this._dataExtent = e }, getDataDimension: function(t) { var e = this.option.dimension,
  8210. i = t.dimensions; if (null != e || i.length) { if (null != e) return t.getDimension(e); for (var n = t.dimensions, o = n.length - 1; o >= 0; o--) { var a = n[o]; if (!t.getDimensionInfo(a).isCalculationCoord) return a } } }, getExtent: function() { return this._dataExtent.slice() }, completeVisualOption: function() {
  8211. function t(t) { sO(o.color) && !t.inRange && (t.inRange = { color: o.color.slice().reverse() }), t.inRange = t.inRange || { color: e.get("gradientColor") }, lO(this.stateList, function(e) { var i = t[e]; if (_(i)) { var n = nO.get(i, "active", l);
  8212. n ? (t[e] = {}, t[e][i] = n) : delete t[e] } }, this) } var e = this.ecModel,
  8213. o = this.option,
  8214. a = { inRange: o.inRange, outOfRange: o.outOfRange },
  8215. r = o.target || (o.target = {}),
  8216. s = o.controller || (o.controller = {});
  8217. n(r, a), n(s, a); var l = this.isCategory();
  8218. t.call(this, r), t.call(this, s),
  8219. function(t, e, i) { var n = t[e],
  8220. o = t[i];
  8221. n && !o && (o = t[i] = {}, lO(n, function(t, e) { if (jC.isValidType(e)) { var i = nO.get(e, "inactive", l);
  8222. null != i && (o[e] = i, "color" !== e || o.hasOwnProperty("opacity") || o.hasOwnProperty("colorAlpha") || (o.opacity = [0, 0])) } })) }.call(this, r, "inRange", "outOfRange"),
  8223. function(t) { var e = (t.inRange || {}).symbol || (t.outOfRange || {}).symbol,
  8224. n = (t.inRange || {}).symbolSize || (t.outOfRange || {}).symbolSize,
  8225. o = this.get("inactiveColor");
  8226. lO(this.stateList, function(a) { var r = this.itemSize,
  8227. s = t[a];
  8228. s || (s = t[a] = { color: l ? o : [o] }), null == s.symbol && (s.symbol = e && i(e) || (l ? "roundRect" : ["roundRect"])), null == s.symbolSize && (s.symbolSize = n && i(n) || (l ? r[0] : [r[0], r[0]])), s.symbol = aO(s.symbol, function(t) { return "none" === t || "square" === t ? "roundRect" : t }); var u = s.symbolSize; if (null != u) { var h = -1 / 0;
  8229. rO(u, function(t) { t > h && (h = t) }), s.symbolSize = aO(u, function(t) { return hO(t, [0, h], [0, r[0]], !0) }) } }, this) }.call(this, s) }, resetItemSize: function() { this.itemSize = [parseFloat(this.get("itemWidth")), parseFloat(this.get("itemHeight"))] }, isCategory: function() { return !!this.option.categories }, setSelected: cO, getValueState: cO, getVisualMeta: cO }),
  8230. fO = [20, 140],
  8231. pO = dO.extend({ type: "visualMap.continuous", defaultOption: { align: "auto", calculable: !1, range: null, realtime: !0, itemHeight: null, itemWidth: null, hoverLink: !0, hoverLinkDataSize: null, hoverLinkOnHandle: null }, optionUpdated: function(t, e) { pO.superApply(this, "optionUpdated", arguments), this.resetExtent(), this.resetVisual(function(t) { t.mappingMethod = "linear", t.dataExtent = this.getExtent() }), this._resetRange() }, resetItemSize: function() { pO.superApply(this, "resetItemSize", arguments); var t = this.itemSize; "horizontal" === this._orient && t.reverse(), (null == t[0] || isNaN(t[0])) && (t[0] = fO[0]), (null == t[1] || isNaN(t[1])) && (t[1] = fO[1]) }, _resetRange: function() { var t = this.getExtent(),
  8232. e = this.option.range;!e || e.auto ? (t.auto = 1, this.option.range = t) : y(e) && (e[0] > e[1] && e.reverse(), e[0] = Math.max(e[0], t[0]), e[1] = Math.min(e[1], t[1])) }, completeVisualOption: function() { dO.prototype.completeVisualOption.apply(this, arguments), d(this.stateList, function(t) { var e = this.option.controller[t].symbolSize;
  8233. 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(),
  8234. e = Bo((this.get("range") || []).slice()); return e[0] > t[1] && (e[0] = t[1]), e[1] > t[1] && (e[1] = t[1]), e[0] < t[0] && (e[0] = t[0]), e[1] < t[0] && (e[1] = t[0]), e }, getValueState: function(t) { var e = this.option.range,
  8235. i = this.getExtent(); return (e[0] <= i[0] || e[0] <= t) && (e[1] >= i[1] || t <= e[1]) ? "inRange" : "outOfRange" }, findTargetDataIndices: function(t) { var e = []; return this.eachTargetSeries(function(i) { var n = [],
  8236. o = i.getData();
  8237. 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) {
  8238. function e(e, i) { o.push({ value: e, color: t(e, i) }) } for (var i = Uy(0, 0, this.getExtent()), n = Uy(0, 0, this.option.range.slice()), o = [], a = 0, r = 0, s = n.length, l = i.length; r < l && (!n.length || i[r] <= n[0]); r++) i[r] < n[a] && e(i[r], "outOfRange"); for (u = 1; a < s; a++, u = 0) u && o.length && e(n[a], "outOfRange"), e(n[a], "inRange"); for (var u = 1; r < l; r++)(!n.length || n[n.length - 1] < i[r]) && (u && (o.length && e(o[o.length - 1].value, "outOfRange"), u = 0), e(i[r], "outOfRange")); var h = o.length; return { stops: o, outerColors: [h ? o[0].color : "transparent", h ? o[h - 1].color : "transparent"] } } }),
  8239. gO = Vs({ type: "visualMap", autoPositionValues: { left: 1, right: 1, top: 1, bottom: 1 }, init: function(t, e) { this.ecModel = t, this.api = e, this.visualMapModel }, render: function(t, e, i, n) { this.visualMapModel = t, !1 !== t.get("show") ? this.doRender.apply(this, arguments) : this.group.removeAll() }, renderBackground: function(t) { var e = this.visualMapModel,
  8240. i = OM(e.get("padding") || 0),
  8241. n = t.getBoundingRect();
  8242. t.add(new aM({ z2: -1, silent: !0, shape: { x: n.x - i[3], y: n.y - i[0], width: n.width + i[3] + i[1], height: n.height + i[0] + i[2] }, style: { fill: e.get("backgroundColor"), stroke: e.get("borderColor"), lineWidth: e.get("borderWidth") } })) }, getControllerVisual: function(t, e, i) {
  8243. function n(t) { return s[t] }
  8244. function o(t, e) { s[t] = e } var a = (i = i || {}).forceState,
  8245. r = this.visualMapModel,
  8246. s = {}; if ("symbol" === e && (s.symbol = r.get("itemSymbol")), "color" === e) { var l = r.get("contentColor");
  8247. s.color = l } var u = r.controllerVisuals[a || r.getValueState(t)]; return d(jC.prepareVisualTypes(u), function(a) { var r = u[a];
  8248. i.convertOpacityToAlpha && "opacity" === a && (a = "colorAlpha", r = u.__alphaForOpacity), jC.dependsOn(a, e) && r && r.applyVisual(t, n, o) }), s[e] }, positionGroup: function(t) { var e = this.visualMapModel,
  8249. i = this.api;
  8250. ua(t, e.getBoxLayoutParams(), { width: i.getWidth(), height: i.getHeight() }) }, doRender: B }),
  8251. mO = Eo,
  8252. vO = d,
  8253. yO = Math.min,
  8254. xO = Math.max,
  8255. _O = 12,
  8256. wO = 6,
  8257. bO = gO.extend({ type: "visualMap.continuous", init: function() { bO.superApply(this, "init", arguments), this._shapes = {}, this._dataInterval = [], this._handleEnds = [], this._orient, this._useHandle, this._hoverLinkDataIndices = [], this._dragging, this._hovering }, doRender: function(t, e, i, n) { n && "selectDataRange" === n.type && n.from === this.uid || this._buildView() }, _buildView: function() { this.group.removeAll(); var t = this.visualMapModel,
  8258. e = this.group;
  8259. this._orient = t.get("orient"), this._useHandle = t.get("calculable"), this._resetInterval(), this._renderBar(e); var i = t.get("text");
  8260. this._renderEndsText(e, i, 0), this._renderEndsText(e, i, 1), this._updateView(!0), this.renderBackground(e), this._updateView(), this._enableHoverLinkToSeries(), this._enableHoverLinkFromSeries(), this.positionGroup(e) }, _renderEndsText: function(t, e, i) { if (e) { var n = e[1 - i];
  8261. n = null != n ? n + "" : ""; var o = this.visualMapModel,
  8262. a = o.get("textGap"),
  8263. r = o.itemSize,
  8264. s = this._shapes.barGroup,
  8265. l = this._applyTransform([r[0] / 2, 0 === i ? -a : r[1] + a], s),
  8266. u = this._applyTransform(0 === i ? "bottom" : "top", s),
  8267. h = this._orient,
  8268. c = this.visualMapModel.textStyleModel;
  8269. this.group.add(new qS({ style: { x: l[0], y: l[1], textVerticalAlign: "horizontal" === h ? "middle" : u, textAlign: "horizontal" === h ? u : "center", text: n, textFont: c.getFont(), textFill: c.getTextColor() } })) } }, _renderBar: function(t) { var e = this.visualMapModel,
  8270. i = this._shapes,
  8271. n = e.itemSize,
  8272. o = this._orient,
  8273. a = this._useHandle,
  8274. r = Xy(e, this.api, n),
  8275. s = i.barGroup = this._createBarGroup(r);
  8276. s.add(i.outOfRange = Yy()), s.add(i.inRange = Yy(null, a ? Qy(this._orient) : null, m(this._dragHandle, this, "all", !1), m(this._dragHandle, this, "all", !0))); var l = e.textStyleModel.getTextRect("鍥�"),
  8277. u = xO(l.width, l.height);
  8278. a && (i.handleThumbs = [], i.handleLabels = [], i.handleLabelPoints = [], this._createHandle(s, 0, n, u, o, r), this._createHandle(s, 1, n, u, o, r)), this._createIndicator(s, n, u, o), t.add(s) }, _createHandle: function(t, e, i, n, o) { var a = m(this._dragHandle, this, e, !1),
  8279. r = m(this._dragHandle, this, e, !0),
  8280. s = Yy(qy(e, n), Qy(this._orient), a, r);
  8281. s.position[0] = i[0], t.add(s); var l = this.visualMapModel.textStyleModel,
  8282. u = new qS({ draggable: !0, drift: a, onmousemove: function(t) { lw(t.event) }, ondragend: r, style: { x: 0, y: 0, text: "", textFont: l.getFont(), textFill: l.getTextColor() } });
  8283. this.group.add(u); var h = ["horizontal" === o ? n / 2 : 1.5 * n, "horizontal" === o ? 0 === e ? -1.5 * n : 1.5 * n : 0 === e ? -n / 2 : n / 2],
  8284. c = this._shapes;
  8285. c.handleThumbs[e] = s, c.handleLabelPoints[e] = h, c.handleLabels[e] = u }, _createIndicator: function(t, e, i, n) { var o = Yy([
  8286. [0, 0]
  8287. ], "move");
  8288. o.position[0] = e[0], o.attr({ invisible: !0, silent: !0 }), t.add(o); var a = this.visualMapModel.textStyleModel,
  8289. r = new qS({ silent: !0, invisible: !0, style: { x: 0, y: 0, text: "", textFont: a.getFont(), textFill: a.getTextColor() } });
  8290. this.group.add(r); var s = ["horizontal" === n ? i / 2 : wO + 3, 0],
  8291. l = this._shapes;
  8292. l.indicator = o, l.indicatorLabel = r, l.indicatorLabelPoint = s }, _dragHandle: function(t, e, i, n) { if (this._useHandle) { if (this._dragging = !e, !e) { var o = this._applyTransform([i, n], this._shapes.barGroup, !0);
  8293. this._updateInterval(t, o[1]), this._updateView() }
  8294. e === !this.visualMapModel.get("realtime") && this.api.dispatchAction({ type: "selectDataRange", from: this.uid, visualMapId: this.visualMapModel.id, selected: this._dataInterval.slice() }), e ? !this._hovering && this._clearHoverLinkToSeries() : Jy(this.visualMapModel) && this._doHoverLinkToSeries(this._handleEnds[t], !1) } }, _resetInterval: function() { var t = this.visualMapModel,
  8295. e = this._dataInterval = t.getSelected(),
  8296. i = t.getExtent(),
  8297. n = [0, t.itemSize[1]];
  8298. this._handleEnds = [mO(e[0], i, n, !0), mO(e[1], i, n, !0)] }, _updateInterval: function(t, e) { e = e || 0; var i = this.visualMapModel,
  8299. n = this._handleEnds,
  8300. o = [0, i.itemSize[1]];
  8301. EL(e, n, o, t, 0); var a = i.getExtent();
  8302. this._dataInterval = [mO(n[0], o, a, !0), mO(n[1], o, a, !0)] }, _updateView: function(t) { var e = this.visualMapModel,
  8303. i = e.getExtent(),
  8304. n = this._shapes,
  8305. o = [0, e.itemSize[1]],
  8306. a = t ? o : this._handleEnds,
  8307. r = this._createBarVisual(this._dataInterval, i, a, "inRange"),
  8308. s = this._createBarVisual(i, i, o, "outOfRange");
  8309. n.inRange.setStyle({ fill: r.barColor, opacity: r.opacity }).setShape("points", r.barPoints), n.outOfRange.setStyle({ fill: s.barColor, opacity: s.opacity }).setShape("points", s.barPoints), this._updateHandle(a, r) }, _createBarVisual: function(t, e, i, n) { var o = { forceState: n, convertOpacityToAlpha: !0 },
  8310. a = this._makeColorGradient(t, o),
  8311. r = [this.getControllerVisual(t[0], "symbolSize", o), this.getControllerVisual(t[1], "symbolSize", o)],
  8312. s = this._createBarPoints(i, r); return { barColor: new dM(0, 0, 0, 1, a), barPoints: s, handlesColor: [a[0].color, a[a.length - 1].color] } }, _makeColorGradient: function(t, e) { var i = [],
  8313. n = (t[1] - t[0]) / 100;
  8314. i.push({ color: this.getControllerVisual(t[0], "color", e), offset: 0 }); for (var o = 1; o < 100; o++) { var a = t[0] + n * o; if (a > t[1]) break;
  8315. i.push({ color: this.getControllerVisual(a, "color", e), offset: o / 100 }) } return i.push({ color: this.getControllerVisual(t[1], "color", e), offset: 1 }), i }, _createBarPoints: function(t, e) { var i = this.visualMapModel.itemSize; return [
  8316. [i[0] - e[0], t[0]],
  8317. [i[0], t[0]],
  8318. [i[0], t[1]],
  8319. [i[0] - e[1], t[1]]
  8320. ] }, _createBarGroup: function(t) { var e = this._orient,
  8321. i = this.visualMapModel.get("inverse"); return new Zw("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,
  8322. n = this.visualMapModel,
  8323. o = i.handleThumbs,
  8324. a = i.handleLabels;
  8325. vO([0, 1], function(r) { var s = o[r];
  8326. s.setStyle("fill", e.handlesColor[r]), s.position[1] = t[r]; var l = Io(i.handleLabelPoints[r], Mo(s, this.group));
  8327. 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,
  8328. a = o.getExtent(),
  8329. r = o.itemSize,
  8330. s = [0, r[1]],
  8331. l = mO(t, a, s, !0),
  8332. u = this._shapes,
  8333. h = u.indicator; if (h) { h.position[1] = l, h.attr("invisible", !1), h.setShape("points", Ky(!!i, n, l, r[1])); var c = { convertOpacityToAlpha: !0 },
  8334. d = this.getControllerVisual(t, "color", c);
  8335. h.setStyle("fill", d); var f = Io(u.indicatorLabelPoint, Mo(h, this.group)),
  8336. p = u.indicatorLabel;
  8337. p.attr("invisible", !1); var g = this._applyTransform("left", u.barGroup),
  8338. m = this._orient;
  8339. p.setStyle({ text: (i || "") + o.formatValueText(e), textVerticalAlign: "horizontal" === m ? g : "middle", textAlign: "horizontal" === m ? "center" : g, x: f[0], y: f[1] }) } }, _enableHoverLinkToSeries: function() { var t = this;
  8340. this._shapes.barGroup.on("mousemove", function(e) { if (t._hovering = !0, !t._dragging) { var i = t.visualMapModel.itemSize,
  8341. n = t._applyTransform([e.offsetX, e.offsetY], t._shapes.barGroup, !0, !0);
  8342. n[1] = yO(xO(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();
  8343. 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,
  8344. n = i.itemSize; if (i.option.hoverLink) { var o = [0, n[1]],
  8345. a = i.getExtent();
  8346. t = yO(xO(o[0], t), o[1]); var r = $y(i, a, o),
  8347. s = [t - r, t + r],
  8348. l = mO(t, o, a, !0),
  8349. u = [mO(s[0], o, a, !0), mO(s[1], o, a, !0)];
  8350. s[0] < o[0] && (u[0] = -1 / 0), s[1] > o[1] && (u[1] = 1 / 0), e && (u[0] === -1 / 0 ? this._showIndicator(l, u[1], "< ", r) : u[1] === 1 / 0 ? this._showIndicator(l, u[0], "> ", r) : this._showIndicator(l, l, "鈮� ", r)); var h = this._hoverLinkDataIndices,
  8351. c = [];
  8352. (e || Jy(i)) && (c = this._hoverLinkDataIndices = i.findTargetDataIndices(u)); var d = Ri(h, c);
  8353. this._dispatchHighDown("downplay", jy(d[0])), this._dispatchHighDown("highlight", jy(d[1])) } }, _hoverLinkFromSeriesMouseOver: function(t) { var e = t.target,
  8354. 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),
  8355. a = o.get(i.getDataDimension(o), e.dataIndex, !0);
  8356. isNaN(a) || this._showIndicator(a, a) } } }, _hideIndicator: function() { var t = this._shapes;
  8357. t.indicator && t.indicator.attr("invisible", !0), t.indicatorLabel && t.indicatorLabel.attr("invisible", !0) }, _clearHoverLinkToSeries: function() { this._hideIndicator(); var t = this._hoverLinkDataIndices;
  8358. this._dispatchHighDown("downplay", jy(t)), t.length = 0 }, _clearHoverLinkFromSeries: function() { this._hideIndicator(); var t = this.api.getZr();
  8359. t.off("mouseover", this._hoverLinkFromSeriesMouseOver), t.off("mouseout", this._hideIndicator) }, _applyTransform: function(t, e, i, n) { var o = Mo(e, n ? null : this.group); return bM[y(t) ? "applyTransform" : "transformDirection"](t, o, i) }, _dispatchHighDown: function(t, e) { e && e.length && this.api.dispatchAction({ type: t, batch: e }) }, dispose: function() { this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries() }, remove: function() { this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries() } });
  8360. Ps({ type: "selectDataRange", event: "dataRangeSelected", update: "update" }, function(t, e) { e.eachComponent({ mainType: "visualMap", query: t }, function(e) { e.setSelected(t.selected) }) }), Ls(eO); var SO = dO.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) { SO.superApply(this, "optionUpdated", arguments), this._pieceList = [], this.resetExtent(); var n = this._mode = this._determineMode();
  8361. MO[this._mode].call(this), this._resetSelected(t, e); var o = this.option.categories;
  8362. this.resetVisual(function(t, e) { "categories" === n ? (t.mappingMethod = "category", t.categories = i(o)) : (t.dataExtent = this.getExtent(), t.mappingMethod = "piecewise", t.pieceList = f(this._pieceList, function(t) { var t = i(t); return "inRange" !== e && (t.visual = null), t })) }) }, completeVisualOption: function() {
  8363. function t(t, e, i) { return t && t[e] && (w(t[e]) ? t[e].hasOwnProperty(i) : t[e] === i) } var e = this.option,
  8364. i = {},
  8365. n = jC.listVisualTypes(),
  8366. o = this.isCategory();
  8367. d(e.pieces, function(t) { d(n, function(e) { t.hasOwnProperty(e) && (i[e] = 1) }) }), d(i, function(i, n) { var a = 0;
  8368. d(this.stateList, function(i) { a |= t(e, i, n) || t(e.target, i, n) }, this), !a && d(this.stateList, function(t) {
  8369. (e[t] || (e[t] = {}))[n] = nO.get(n, "inRange" === t ? "active" : "inactive", o) }) }, this), dO.prototype.completeVisualOption.apply(this, arguments) }, _resetSelected: function(t, e) { var i = this.option,
  8370. n = this._pieceList,
  8371. o = (e ? i : t).selected || {}; if (i.selected = o, d(n, function(t, e) { var i = this.getSelectedMapKey(t);
  8372. o.hasOwnProperty(i) || (o[i] = !0) }, this), "single" === i.selectedMode) { var a = !1;
  8373. d(n, function(t, e) { var i = this.getSelectedMapKey(t);
  8374. o[i] && (a ? o[i] = !1 : a = !0) }, this) } }, getSelectedMapKey: function(t) { return "categories" === this._mode ? t.value + "" : t.index + "" }, getPieceList: function() { return this._pieceList }, _determineMode: function() { var t = this.option; return t.pieces && t.pieces.length > 0 ? "pieces" : this.option.categories ? "categories" : "splitNumber" }, setSelected: function(t) { this.option.selected = i(t) }, getValueState: function(t) { var e = jC.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 = [],
  8375. o = i.getData();
  8376. o.each(this.getDataDimension(o), function(e, i) { jC.findPieceIndex(e, this._pieceList) === t && n.push(i) }, this), e.push({ seriesId: i.id, dataIndex: n }) }, this), e }, getRepresentValue: function(t) { var e; if (this.isCategory()) e = t.value;
  8377. else if (null != t.value) e = t.value;
  8378. else { var i = t.interval || [];
  8379. e = i[0] === -1 / 0 && i[1] === 1 / 0 ? 0 : (i[0] + i[1]) / 2 } return e }, getVisualMeta: function(t) {
  8380. function e(e, a) { var r = o.getRepresentValue({ interval: e });
  8381. a || (a = o.getValueState(r)); var s = t(r, a);
  8382. e[0] === -1 / 0 ? n[0] = s : e[1] === 1 / 0 ? n[1] = s : i.push({ value: e[0], color: s }, { value: e[1], color: s }) } if (!this.isCategory()) { var i = [],
  8383. n = [],
  8384. o = this,
  8385. a = this._pieceList.slice(); if (a.length) { var r = a[0].interval[0];
  8386. r !== -1 / 0 && a.unshift({ interval: [-1 / 0, r] }), (r = a[a.length - 1].interval[1]) !== 1 / 0 && a.push({ interval: [r, 1 / 0] }) } else a.push({ interval: [-1 / 0, 1 / 0] }); var s = -1 / 0; return d(a, function(t) { var i = t.interval;
  8387. i && (i[0] > s && e([s, i[0]], "outOfRange"), e(i.slice()), s = i[1]) }, this), { stops: i, outerColors: n } } } }),
  8388. MO = { splitNumber: function() { var t = this.option,
  8389. e = this._pieceList,
  8390. i = Math.min(t.precision, 20),
  8391. n = this.getExtent(),
  8392. o = t.splitNumber;
  8393. o = Math.max(parseInt(o, 10), 1), t.splitNumber = o; for (var a = (n[1] - n[0]) / o; + a.toFixed(i) !== a && i < 5;) i++;
  8394. t.precision = i, a = +a.toFixed(i); var r = 0;
  8395. t.minOpen && e.push({ index: r++, interval: [-1 / 0, n[0]], close: [0, 0] }); for (var s = n[0], l = r + o; r < l; s += a) { var u = r === o - 1 ? n[1] : s + a;
  8396. e.push({ index: r++, interval: [s, u], close: [1, 1] }) }
  8397. t.maxOpen && e.push({ index: r++, interval: [n[1], 1 / 0], close: [0, 0] }), qo(e), d(e, function(t) { t.text = this.formatValueText(t.interval) }, this) }, categories: function() { var t = this.option;
  8398. d(t.categories, function(t) { this._pieceList.push({ text: this.formatValueText(t, !0), value: t }) }, this), tx(t, this._pieceList) }, pieces: function() { var t = this.option,
  8399. e = this._pieceList;
  8400. d(t.pieces, function(t, i) { w(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;
  8401. 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; h < 2; h++) { for (var c = [
  8402. ["gte", "gt", "min"],
  8403. ["lte", "lt", "max"]
  8404. ][h], d = 0; d < 3 && null == a[h]; d++) a[h] = t[c[d]], r[h] = s[d], u[h] = 2 === d;
  8405. null == a[h] && (a[h] = l[h]) }
  8406. u[0] && a[1] === 1 / 0 && (r[0] = 0), u[1] && a[0] === -1 / 0 && (r[1] = 0), a[0] === a[1] && r[0] && r[1] && (n.value = a[0]) }
  8407. n.visual = jC.retrieveVisuals(t), e.push(n) }, this), tx(t, e), qo(e), d(e, function(t) { var e = t.close,
  8408. i = [
  8409. ["<", "鈮�"][e[1]],
  8410. [">", "鈮�"][e[0]]
  8411. ];
  8412. t.text = t.text || this.formatValueText(null != t.value ? t.value : t.interval, !1, i) }, this) } };
  8413. gO.extend({ type: "visualMap.piecewise", doRender: function() { var t = this.group;
  8414. t.removeAll(); var e = this.visualMapModel,
  8415. i = e.get("textGap"),
  8416. n = e.textStyleModel,
  8417. o = n.getFont(),
  8418. a = n.getTextColor(),
  8419. r = this._getItemAlign(),
  8420. s = e.itemSize,
  8421. l = this._getViewData(),
  8422. u = l.endsText,
  8423. h = T(e.get("showLabel", !0), !u);
  8424. u && this._renderEndsText(t, u[0], s, h, r), d(l.viewPieceList, function(n) { var l = n.piece,
  8425. u = new Zw;
  8426. u.onclick = m(this._onItemClick, this, l), this._enableHoverLink(u, n.indexInModelPieceList); var c = e.getRepresentValue(l); if (this._createItemSymbol(u, c, [0, 0, s[0], s[1]]), h) { var d = this.visualMapModel.getValueState(c);
  8427. u.add(new qS({ style: { x: "right" === r ? -i : s[0] + i, y: s[1] / 2, text: l.text, textVerticalAlign: "middle", textAlign: r, textFont: o, textFill: a, opacity: "outOfRange" === d ? .5 : 1 } })) }
  8428. t.add(u) }, this), u && this._renderEndsText(t, u[1], s, h, r), UM(e.get("orient"), t, e.get("itemGap")), this.renderBackground(t), this.positionGroup(t) }, _enableHoverLink: function(t, e) {
  8429. function i(t) { var i = this.visualMapModel;
  8430. i.option.hoverLink && this.api.dispatchAction({ type: t, batch: jy(i.findTargetDataIndices(e)) }) }
  8431. t.on("mouseover", m(i, this, "highlight")).on("mouseout", m(i, this, "downplay")) }, _getItemAlign: function() { var t = this.visualMapModel,
  8432. e = t.option; if ("vertical" === e.orient) return Xy(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 Zw,
  8433. r = this.visualMapModel.textStyleModel;
  8434. a.add(new qS({ 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,
  8435. e = f(t.getPieceList(), function(t, e) { return { piece: t, indexInModelPieceList: e } }),
  8436. i = t.get("text"),
  8437. n = t.get("orient"),
  8438. 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(Xl(this.getControllerVisual(e, "symbol"), i[0], i[1], i[2], i[3], this.getControllerVisual(e, "color"))) }, _onItemClick: function(t) { var e = this.visualMapModel,
  8439. n = e.option,
  8440. o = i(n.selected),
  8441. a = e.getSelectedMapKey(t); "single" === n.selectedMode ? (o[a] = !0, d(o, function(t, e) { o[e] = e === a })) : o[a] = !o[a], this.api.dispatchAction({ type: "selectDataRange", from: this.uid, visualMapId: this.visualMapModel.id, selected: o }) } });
  8442. Ls(eO); var IO = $o,
  8443. TO = Qo,
  8444. AO = Bs({ type: "marker", dependencies: ["series", "grid", "polar", "geo"], init: function(t, e, i, n) { this.mergeDefaultAndTheme(t, i), this.mergeOption(t, i, n.createdBySelf, !0) }, isAnimationEnabled: function() { if (z_.node) return !1; var t = this.__hostSeries; return this.getShallow("animation") && t && t.isAnimationEnabled() }, mergeOption: function(t, e, i, n) { var o = this.constructor,
  8445. r = this.mainType + "Model";
  8446. i || e.eachSeries(function(t) { var i = t.get(this.mainType, !0),
  8447. s = t[r];
  8448. i && i.data ? (s ? s.mergeOption(i, e, !0) : (n && ex(i), d(i.data, function(t) { t instanceof Array ? (ex(t[0]), ex(t[1])) : ex(t) }), a(s = new o(i, this, e), { mainType: this.mainType, seriesIndex: t.seriesIndex, name: t.name, createdBySelf: !0 }), s.__hostSeries = t), t[r] = s) : t[r] = null }, this) }, formatTooltip: function(t) { var e = this.getData(),
  8449. i = this.getRawValue(t),
  8450. n = y(i) ? f(i, IO).join(", ") : IO(i),
  8451. o = e.getName(t),
  8452. a = TO(this.name); return (null != i || o) && (a += "<br />"), o && (a += TO(o), null != i && (a += " : ")), null != i && (a += TO(n)), a }, getData: function() { return this._data }, setData: function(t) { this._data = t } });
  8453. h(AO, LI), AO.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 DO = l,
  8454. CO = v,
  8455. LO = { min: CO(ox, "min"), max: CO(ox, "max"), average: CO(ox, "average") },
  8456. kO = Vs({ type: "marker", init: function() { this.markerGroupMap = R() }, render: function(t, e, i) { var n = this.markerGroupMap;
  8457. n.each(function(t) { t.__keep = !1 }); var o = this.type + "Model";
  8458. e.eachSeries(function(t) { var n = t[o];
  8459. n && this.renderSeries(t, n, e, i) }, this), n.each(function(t) {!t.__keep && this.group.remove(t.group) }, this) }, renderSeries: function() {} });
  8460. kO.extend({ type: "markPoint", updateTransform: function(t, e, i) { e.eachSeries(function(t) { var e = t.markPointModel;
  8461. e && (cx(e.getData(), t, i), this.markerGroupMap.get(t.id).updateLayout(e)) }, this) }, renderSeries: function(t, e, i, n) { var o = t.coordinateSystem,
  8462. a = t.id,
  8463. r = t.getData(),
  8464. s = this.markerGroupMap,
  8465. l = s.get(a) || s.set(a, new Su),
  8466. u = dx(o, t, e);
  8467. e.setData(u), cx(e.getData(), t, n), u.each(function(t) { var i = u.getItemModel(t),
  8468. n = i.getShallow("symbolSize"); "function" == typeof n && (n = n(e.getRawValue(t), e.getDataParams(t))), u.setItemVisual(t, { symbolSize: n, color: i.get("itemStyle.color") || r.getVisual("color"), symbol: i.getShallow("symbol") }) }), l.updateData(u), this.group.add(l.group), u.eachItemGraphicEl(function(t) { t.traverse(function(t) { t.dataModel = e }) }), l.__keep = !0, l.group.silent = e.get("silent") || t.get("silent") } }), Ls(function(t) { t.markPoint = t.markPoint || {} }), AO.extend({ type: "markLine", defaultOption: { zlevel: 0, z: 5, symbol: ["circle", "arrow"], symbolSize: [8, 16], precision: 2, tooltip: { trigger: "item" }, label: { show: !0, position: "end" }, lineStyle: { type: "dashed" }, emphasis: { label: { show: !0 }, lineStyle: { width: 3 } }, animationEasing: "linear" } }); var PO = function(t, e, o, r) { var s = t.getData(),
  8469. l = r.type; if (!y(r) && ("min" === l || "max" === l || "average" === l || "median" === l || null != r.xAxis || null != r.yAxis)) { var u, h; if (null != r.yAxis || null != r.xAxis) u = null != r.yAxis ? "y" : "x", e.getAxis(u), h = T(r.yAxis, r.xAxis);
  8470. else { var c = rx(r, s, e, t);
  8471. u = c.valueDataDim, c.valueAxis, h = hx(s, u, l) } var d = "x" === u ? 0 : 1,
  8472. f = 1 - d,
  8473. p = i(r),
  8474. g = {};
  8475. p.type = null, p.coord = [], g.coord = [], p.coord[f] = -1 / 0, g.coord[f] = 1 / 0; var m = o.get("precision");
  8476. m >= 0 && "number" == typeof h && (h = +h.toFixed(Math.min(m, 20))), p.coord[d] = g.coord[d] = h, r = [p, g, { type: l, valueIndex: r.valueIndex, value: h }] } return r = [ax(t, r[0]), ax(t, r[1]), a({}, r[2])], r[2].type = r[2].type || "", n(r[2], r[0]), n(r[2], r[1]), r };
  8477. kO.extend({ type: "markLine", updateTransform: function(t, e, i) { e.eachSeries(function(t) { var e = t.markLineModel; if (e) { var n = e.getData(),
  8478. o = e.__from,
  8479. a = e.__to;
  8480. o.each(function(e) { mx(o, e, !0, t, i), mx(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) {
  8481. function o(e, i, o) { var a = e.getItemModel(i);
  8482. mx(e, i, o, t, n), e.setItemVisual(i, { symbolSize: a.get("symbolSize") || g[o ? 0 : 1], symbol: a.get("symbol", !0) || p[o ? 0 : 1], color: a.get("itemStyle.color") || s.getVisual("color") }) } var a = t.coordinateSystem,
  8483. r = t.id,
  8484. s = t.getData(),
  8485. l = this.markerGroupMap,
  8486. u = l.get(r) || l.set(r, new Jd);
  8487. this.group.add(u.group); var h = vx(a, t, e),
  8488. c = h.from,
  8489. d = h.to,
  8490. f = h.line;
  8491. e.__from = c, e.__to = d, e.setData(f); var p = e.get("symbol"),
  8492. g = e.get("symbolSize");
  8493. y(p) || (p = [p, p]), "number" == typeof g && (g = [g, g]), h.from.each(function(t) { o(c, t, !0), o(d, t, !1) }), f.each(function(t) { var e = f.getItemModel(t).get("lineStyle.color");
  8494. f.setItemVisual(t, { color: e || c.getItemVisual(t, "color") }), f.setItemLayout(t, [c.getItemLayout(t), d.getItemLayout(t)]), f.setItemVisual(t, { fromSymbolSize: c.getItemVisual(t, "symbolSize"), fromSymbol: c.getItemVisual(t, "symbol"), toSymbolSize: d.getItemVisual(t, "symbolSize"), toSymbol: d.getItemVisual(t, "symbol") }) }), u.updateData(f), h.line.eachItemGraphicEl(function(t, i) { t.traverse(function(t) { t.dataModel = e }) }), u.__keep = !0, u.group.silent = e.get("silent") || t.get("silent") } }), Ls(function(t) { t.markLine = t.markLine || {} }), AO.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 NO = function(t, e, i, n) { var a = ax(t, n[0]),
  8495. r = ax(t, n[1]),
  8496. s = T,
  8497. l = a.coord,
  8498. u = r.coord;
  8499. l[0] = s(l[0], -1 / 0), l[1] = s(l[1], -1 / 0), u[0] = s(u[0], 1 / 0), u[1] = s(u[1], 1 / 0); var h = o([{}, a, r]); return h.coord = [a.coord, r.coord], h.x0 = a.x, h.y0 = a.y, h.x1 = r.x, h.y1 = r.y, h },
  8500. OO = [
  8501. ["x0", "y0"],
  8502. ["x1", "y0"],
  8503. ["x1", "y1"],
  8504. ["x0", "y1"]
  8505. ];
  8506. kO.extend({ type: "markArea", updateTransform: function(t, e, i) { e.eachSeries(function(t) { var e = t.markAreaModel; if (e) { var n = e.getData();
  8507. n.each(function(e) { var o = f(OO, function(o) { return bx(n, e, o, t, i) });
  8508. n.setItemLayout(e, o), n.getItemGraphicEl(e).setShape("points", o) }) } }, this) }, renderSeries: function(t, e, i, n) { var o = t.coordinateSystem,
  8509. a = t.id,
  8510. s = t.getData(),
  8511. l = this.markerGroupMap,
  8512. u = l.get(a) || l.set(a, { group: new Zw });
  8513. this.group.add(u.group), u.__keep = !0; var h = Sx(o, t, e);
  8514. e.setData(h), h.each(function(e) { h.setItemLayout(e, f(OO, function(i) { return bx(h, e, i, t, n) })), h.setItemVisual(e, { color: s.getVisual("color") }) }), h.diff(u.__data).add(function(t) { var e = new nM({ shape: { points: h.getItemLayout(t) } });
  8515. h.setItemGraphicEl(t, e), u.group.add(e) }).update(function(t, i) { var n = u.__data.getItemGraphicEl(i);
  8516. bo(n, { shape: { points: h.getItemLayout(t) } }, e, t), u.group.add(n), h.setItemGraphicEl(t, n) }).remove(function(t) { var e = u.__data.getItemGraphicEl(t);
  8517. u.group.remove(e) }).execute(), h.eachItemGraphicEl(function(t, i) { var n = h.getItemModel(i),
  8518. o = n.getModel("label"),
  8519. a = n.getModel("emphasis.label"),
  8520. s = h.getItemVisual(i, "color");
  8521. t.useStyle(r(n.getModel("itemStyle").getItemStyle(), { fill: Ut(s, .4), stroke: s })), t.hoverStyle = n.getModel("emphasis.itemStyle").getItemStyle(), co(t.style, t.hoverStyle, o, a, { labelFetcher: e, labelDataIndex: i, defaultText: h.getName(i) || "", isRectText: !0, autoColor: s }), uo(t, {}), t.dataModel = e }), u.__data = h, u.group.silent = e.get("silent") || t.get("silent") } }), Ls(function(t) { t.markArea = t.markArea || {} });
  8522. YM.registerSubTypeDefaulter("timeline", function() { return "slider" }), Ps({ type: "timelineChange", event: "timelineChanged", update: "prepareAndUpdate" }, function(t, e) { var i = e.getComponent("timeline"); return i && null != t.currentIndex && (i.setCurrentIndex(t.currentIndex), !i.get("loop", !0) && i.isIndexMax() && i.setPlayState(!1)), e.resetOption("timeline"), r({ currentIndex: i.option.currentIndex }, t) }), Ps({ type: "timelinePlayChange", event: "timelinePlayChanged", update: "update" }, function(t, e) { var i = e.getComponent("timeline");
  8523. i && null != t.playState && i.setPlayState(t.playState) }); var EO = YM.extend({ type: "timeline", layoutMode: "box", defaultOption: { zlevel: 0, z: 4, show: !0, axisType: "time", realtime: !0, left: "20%", top: null, right: "20%", bottom: 0, width: null, height: 40, padding: 5, controlPosition: "left", autoPlay: !1, rewind: !1, loop: !0, playInterval: 2e3, currentIndex: 0, itemStyle: {}, label: { color: "#000" }, data: [] }, init: function(t, e, i) { this._data, this._names, this.mergeDefaultAndTheme(t, i), this._initData() }, mergeOption: function(t) { EO.superApply(this, "mergeOption", arguments), this._initData() }, setCurrentIndex: function(t) { null == t && (t = this.option.currentIndex); var e = this._data.count();
  8524. this.option.loop ? t = (t % e + e) % e : (t >= e && (t = e - 1), t < 0 && (t = 0)), this.option.currentIndex = t }, getCurrentIndex: function() { return this.option.currentIndex }, isIndexMax: function() { return this.getCurrentIndex() >= this._data.count() - 1 }, setPlayState: function(t) { this.option.autoPlay = !!t }, getPlayState: function() { return !!this.option.autoPlay }, _initData: function() { var t = this.option,
  8525. e = t.data || [],
  8526. n = t.axisType,
  8527. o = this._names = []; if ("category" === n) { var a = [];
  8528. d(e, function(t, e) { var n, r = Li(t);
  8529. w(t) ? (n = i(t)).value = e : n = e, a.push(n), _(r) || null != r && !isNaN(r) || (r = ""), o.push(r + "") }), e = a } var r = { category: "ordinal", time: "time" }[n] || "number";
  8530. (this._data = new eA([{ name: "value", type: r }], this)).initData(e, o) }, getData: function() { return this._data }, getCategories: function() { if ("category" === this.get("axisType")) return this._names.slice() } });
  8531. h(EO.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: [] } }), LI); var RO = EI.extend({ type: "timeline" }),
  8532. zO = function(t, e, i, n) { HA.call(this, t, e, i), this.type = n || "value", this.model = null };
  8533. zO.prototype = { constructor: zO, getLabelModel: function() { return this.model.getModel("label") }, isHorizontal: function() { return "horizontal" === this.model.get("orient") } }, u(zO, HA); var BO = m,
  8534. VO = d,
  8535. GO = Math.PI;
  8536. RO.extend({ type: "timeline.slider", init: function(t, e) { this.api = e, this._axis, this._viewRect, this._timer, this._currentPointer, this._mainGroup, this._labelGroup }, render: function(t, e, i, n) { if (this.model = t, this.api = i, this.ecModel = e, this.group.removeAll(), t.get("show", !0)) { var o = this._layout(t, i),
  8537. a = this._createGroup("mainGroup"),
  8538. r = this._createGroup("labelGroup"),
  8539. s = this._axis = this._createAxis(o, t);
  8540. t.formatTooltip = function(t) { return Qo(s.scale.getLabel(t)) }, VO(["AxisLine", "AxisTick", "Control", "CurrentPointer"], function(e) { this["_render" + e](o, a, s, t) }, this), this._renderAxisLabel(o, r, s, t), this._position(o, t) }
  8541. this._doPlayStop() }, remove: function() { this._clearTimer(), this.group.removeAll() }, dispose: function() { this._clearTimer() }, _layout: function(t, e) { var i = t.get("label.position"),
  8542. n = t.get("orient"),
  8543. o = Ax(t, e);
  8544. null == i || "auto" === i ? i = "horizontal" === n ? o.y + o.height / 2 < e.getHeight() / 2 ? "-" : "+" : o.x + o.width / 2 < e.getWidth() / 2 ? "+" : "-" : isNaN(i) && (i = { horizontal: { top: "-", bottom: "+" }, vertical: { left: "-", right: "+" } }[n][i]); var a = { horizontal: "center", vertical: i >= 0 || "+" === i ? "left" : "right" },
  8545. r = { horizontal: i >= 0 || "+" === i ? "top" : "bottom", vertical: "middle" },
  8546. s = { horizontal: 0, vertical: GO / 2 },
  8547. l = "vertical" === n ? o.height : o.width,
  8548. u = t.getModel("controlStyle"),
  8549. h = u.get("show", !0),
  8550. c = h ? u.get("itemSize") : 0,
  8551. d = h ? u.get("itemGap") : 0,
  8552. f = c + d,
  8553. p = t.get("label.rotate") || 0;
  8554. p = p * GO / 180; var g, m, v, y, x = u.get("position", !0),
  8555. _ = h && u.get("showPlayBtn", !0),
  8556. w = h && u.get("showPrevBtn", !0),
  8557. b = h && u.get("showNextBtn", !0),
  8558. S = 0,
  8559. M = l; return "left" === x || "bottom" === x ? (_ && (g = [0, 0], S += f), w && (m = [S, 0], S += f), b && (v = [M - c, 0], M -= f)) : (_ && (g = [M - c, 0], M -= f), w && (m = [0, 0], S += f), b && (v = [M - c, 0], M -= f)), y = [S, M], t.get("inverse") && y.reverse(), { viewRect: o, mainLength: l, orient: n, rotation: s[n], labelRotation: p, labelPosOpt: i, labelAlign: t.get("label.align") || a[n], labelBaseline: t.get("label.verticalAlign") || t.get("label.baseline") || r[n], playPosition: g, prevBtnPosition: m, nextBtnPosition: v, axisExtent: y, controlSize: c, controlGap: d } }, _position: function(t, e) {
  8560. function i(t) { var e = t.position;
  8561. t.origin = [c[0][0] - e[0], c[1][0] - e[1]] }
  8562. function n(t) { return [
  8563. [t.x, t.x + t.width],
  8564. [t.y, t.y + t.height]
  8565. ] }
  8566. function o(t, e, i, n, o) { t[n] += i[n][o] - e[n][o] } var a = this._mainGroup,
  8567. r = this._labelGroup,
  8568. s = t.viewRect; if ("vertical" === t.orient) { var l = mt(),
  8569. u = s.x,
  8570. h = s.y + s.height;
  8571. _t(l, l, [-u, -h]), wt(l, l, -GO / 2), _t(l, l, [u, h]), (s = s.clone()).applyTransform(l) } var c = n(s),
  8572. d = n(a.getBoundingRect()),
  8573. f = n(r.getBoundingRect()),
  8574. p = a.position,
  8575. g = r.position;
  8576. g[0] = p[0] = c[0][0]; var m = t.labelPosOpt; if (isNaN(m)) o(p, d, c, 1, v = "+" === m ? 0 : 1), o(g, f, c, 1, 1 - v);
  8577. else { var v = m >= 0 ? 0 : 1;
  8578. o(p, d, c, 1, v), g[1] = p[1] + m }
  8579. a.attr("position", p), r.attr("position", g), a.rotation = r.rotation = t.rotation, i(a), i(r) }, _createAxis: function(t, e) { var i = e.getData(),
  8580. n = e.get("axisType"),
  8581. o = Vl(e, n);
  8582. o.getTicks = function() { return i.mapArray(["value"], function(t) { return t }) }; var a = i.getDataExtent("value");
  8583. o.setExtent(a[0], a[1]), o.niceTicks(); var r = new zO("value", o, t.axisExtent, n); return r.model = e, r }, _createGroup: function(t) { var e = this["_" + t] = new Zw; return this.group.add(e), e }, _renderAxisLine: function(t, e, i, n) { var o = i.getExtent();
  8584. n.get("lineStyle.show") && e.add(new rM({ shape: { x1: o[0], y1: 0, x2: o[1], y2: 0 }, style: a({ lineCap: "round" }, n.getModel("lineStyle").getLineStyle()), silent: !0, z2: 1 })) }, _renderAxisTick: function(t, e, i, n) { var o = n.getData(),
  8585. a = i.scale.getTicks();
  8586. VO(a, function(t) { var a = i.dataToCoord(t),
  8587. r = o.getItemModel(t),
  8588. s = r.getModel("itemStyle"),
  8589. l = r.getModel("emphasis.itemStyle"),
  8590. u = { position: [a, 0], onclick: BO(this._changeTimeline, this, t) },
  8591. h = Cx(r, s, e, u);
  8592. uo(h, l.getItemStyle()), r.get("tooltip") ? (h.dataIndex = t, h.dataModel = n) : h.dataIndex = h.dataModel = null }, this) }, _renderAxisLabel: function(t, e, i, n) { if (i.getLabelModel().get("show")) { var o = n.getData(),
  8593. a = i.getViewLabels();
  8594. VO(a, function(n) { var a = n.tickValue,
  8595. r = o.getItemModel(a),
  8596. s = r.getModel("label"),
  8597. l = r.getModel("emphasis.label"),
  8598. u = i.dataToCoord(n.tickValue),
  8599. h = new qS({ position: [u, 0], rotation: t.labelRotation - t.rotation, onclick: BO(this._changeTimeline, this, a), silent: !1 });
  8600. fo(h.style, s, { text: n.formattedLabel, textAlign: t.labelAlign, textVerticalAlign: t.labelBaseline }), e.add(h), uo(h, fo({}, l)) }, this) } }, _renderControl: function(t, e, i, n) {
  8601. function o(t, i, o, h) { if (t) { var c = Dx(n, i, u, { position: t, origin: [a / 2, 0], rotation: h ? -r : 0, rectHover: !0, style: s, onclick: o });
  8602. e.add(c), uo(c, l) } } var a = t.controlSize,
  8603. r = t.rotation,
  8604. s = n.getModel("controlStyle").getItemStyle(),
  8605. l = n.getModel("emphasis.controlStyle").getItemStyle(),
  8606. u = [0, -a / 2, a, a],
  8607. h = n.getPlayState(),
  8608. c = n.get("inverse", !0);
  8609. o(t.nextBtnPosition, "controlStyle.nextIcon", BO(this._changeTimeline, this, c ? "-" : "+")), o(t.prevBtnPosition, "controlStyle.prevIcon", BO(this._changeTimeline, this, c ? "+" : "-")), o(t.playPosition, "controlStyle." + (h ? "stopIcon" : "playIcon"), BO(this._handlePlayClick, this, !h), !0) }, _renderCurrentPointer: function(t, e, i, n) { var o = n.getData(),
  8610. a = n.getCurrentIndex(),
  8611. r = o.getItemModel(a).getModel("checkpointStyle"),
  8612. s = this,
  8613. l = { onCreate: function(t) { t.draggable = !0, t.drift = BO(s._handlePointerDrag, s), t.ondragend = BO(s._handlePointerDragend, s), Lx(t, a, i, n, !0) }, onUpdate: function(t) { Lx(t, a, i, n) } };
  8614. this._currentPointer = Cx(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],
  8615. n = Bo(this._axis.getExtent().slice());
  8616. i > n[1] && (i = n[1]), i < n[0] && (i = n[0]), this._currentPointer.position[0] = i, this._currentPointer.dirty(); var o = this._findNearestTick(i),
  8617. a = this.model;
  8618. (e || o !== a.getCurrentIndex() && a.get("realtime")) && this._changeTimeline(o) }, _doPlayStop: function() { this._clearTimer(), this.model.getPlayState() && (this._timer = setTimeout(BO(function() { var t = this.model;
  8619. this._changeTimeline(t.getCurrentIndex() + (t.get("rewind", !0) ? -1 : 1)) }, this), this.model.get("playInterval"))) }, _toAxisCoord: function(t) { return Io(t, this._mainGroup.getLocalTransform(), !0) }, _findNearestTick: function(t) { var e, i = this.model.getData(),
  8620. n = 1 / 0,
  8621. o = this._axis; return i.each(["value"], function(i, a) { var r = o.dataToCoord(i),
  8622. s = Math.abs(r - t);
  8623. s < n && (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 }) } }), Ls(function(t) { var e = t && t.timeline;
  8624. y(e) || (e = e ? [e] : []), d(e, function(t) { t && Mx(t) }) }); var FO = Bs({ type: "toolbox", layoutMode: { type: "box", ignoreSize: !0 }, optionUpdated: function() { FO.superApply(this, "optionUpdated", arguments), d(this.option.feature, function(t, e) { var i = xy(e);
  8625. i && n(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" } } } });
  8626. Vs({ type: "toolbox", render: function(t, e, i, n) {
  8627. function o(o, r) { var s, c = h[o],
  8628. d = h[r],
  8629. f = new Lo(l[c], t, t.ecModel); if (c && !d) { if (kx(c)) s = { model: f, onclick: f.option.onclick, featureName: c };
  8630. else { var p = xy(c); if (!p) return;
  8631. s = new p(f, e, i) }
  8632. u[c] = s } else { if (!(s = u[d])) return;
  8633. s.model = f, s.ecModel = e, s.api = i }
  8634. c || !d ? f.get("show") && !s.unusable ? (a(f, s, c), f.setIconStatus = function(t, e) { var i = this.option,
  8635. n = this.iconPaths;
  8636. i.iconStatus = i.iconStatus || {}, i.iconStatus[t] = e, n[t] && n[t].trigger(e) }, s.render && s.render(f, e, i, n)) : s.remove && s.remove(e, i) : s.dispose && s.dispose(e, i) }
  8637. function a(n, o, a) { var l = n.getModel("iconStyle"),
  8638. u = n.getModel("emphasis.iconStyle"),
  8639. h = o.getIcons ? o.getIcons() : n.get("icon"),
  8640. c = n.get("title") || {}; if ("string" == typeof h) { var f = h,
  8641. p = c;
  8642. c = {}, (h = {})[a] = f, c[a] = p } var g = n.iconPaths = {};
  8643. d(h, function(a, h) { var d = Co(a, {}, { x: -s / 2, y: -s / 2, width: s, height: s });
  8644. d.setStyle(l.getItemStyle()), d.hoverStyle = u.getItemStyle(), uo(d), t.get("showTitle") && (d.__title = c[h], d.on("mouseover", function() { var t = u.getItemStyle();
  8645. d.setStyle({ text: c[h], textPosition: t.textPosition || "bottom", textFill: t.fill || t.stroke || "#000", textAlign: t.textAlign || "center" }) }).on("mouseout", function() { d.setStyle({ textFill: null }) })), d.trigger(n.get("iconStatus." + h) || "normal"), r.add(d), d.on("click", m(o.onclick, o, e, i, h)), g[h] = d }) } var r = this.group; if (r.removeAll(), t.get("show")) { var s = +t.get("itemSize"),
  8646. l = t.get("feature") || {},
  8647. u = this._features || (this._features = {}),
  8648. h = [];
  8649. d(l, function(t, e) { h.push(e) }), new Hs(this._featureNames || [], h).add(o).update(o).remove(v(o, null)).execute(), this._featureNames = h, dv(r, t, i), r.add(fv(r.getBoundingRect(), t)), r.eachChild(function(t) { var e = t.__title,
  8650. n = t.hoverStyle; if (n && e) { var o = De(e, He(n)),
  8651. a = t.position[0] + r.position[0],
  8652. l = !1;
  8653. t.position[1] + r.position[1] + s + o.height > i.getHeight() && (n.textPosition = "top", l = !0); var u = l ? -5 - o.height : s + 8;
  8654. a + o.width / 2 > i.getWidth() ? (n.textPosition = ["100%", u], n.textAlign = "right") : a - o.width / 2 < 0 && (n.textPosition = [0, u], n.textAlign = "left") } }) } }, updateView: function(t, e, i, n) { d(this._features, function(t) { t.updateView && t.updateView(t.model, e, i, n) }) }, remove: function(t, e) { d(this._features, function(i) { i.remove && i.remove(t, e) }), this.group.removeAll() }, dispose: function(t, e) { d(this._features, function(i) { i.dispose && i.dispose(t, e) }) } }); var WO = XI.toolbox.saveAsImage;
  8655. Px.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: WO.title, type: "png", name: "", excludeComponents: ["toolbox"], pixelRatio: 1, lang: WO.lang.slice() }, Px.prototype.unusable = !z_.canvasSupported, Px.prototype.onclick = function(t, e) { var i = this.model,
  8656. n = i.get("name") || t.get("title.0.text") || "echarts",
  8657. o = document.createElement("a"),
  8658. a = i.get("type", !0) || "png";
  8659. o.download = n + "." + a, o.target = "_blank"; var r = e.getConnectedDataURL({ type: a, backgroundColor: i.get("backgroundColor", !0) || t.get("backgroundColor") || "#fff", excludeComponents: i.get("excludeComponents"), pixelRatio: i.get("pixelRatio") }); if (o.href = r, "function" != typeof MouseEvent || z_.browser.ie || z_.browser.edge)
  8660. 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]);
  8661. window.navigator.msSaveOrOpenBlob(h, n + "." + a) } else { var c = i.get("lang"),
  8662. d = '<body style="margin:0;"><img src="' + r + '" style="max-width:100%;" title="' + (c && c[0] || "") + '" /></body>';
  8663. window.open().document.write(d) }
  8664. else { var f = new MouseEvent("click", { view: window, bubbles: !0, cancelable: !1 });
  8665. o.dispatchEvent(f) } }, yy("saveAsImage", Px); var HO = XI.toolbox.magicType;
  8666. Nx.defaultOption = { show: !0, type: [], icon: { line: "M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4", bar: "M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7", stack: "M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z", tiled: "M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z" }, title: i(HO.title), option: {}, seriesIndex: {} }; var ZO = Nx.prototype;
  8667. ZO.getIcons = function() { var t = this.model,
  8668. e = t.get("icon"),
  8669. i = {}; return d(t.get("type"), function(t) { e[t] && (i[t] = e[t]) }), i }; var UO = { line: function(t, e, i, o) { if ("bar" === t) return n({ id: e, type: "line", data: i.get("data"), stack: i.get("stack"), markPoint: i.get("markPoint"), markLine: i.get("markLine") }, o.get("option.line") || {}, !0) }, bar: function(t, e, i, o) { if ("line" === t) return n({ id: e, type: "bar", data: i.get("data"), stack: i.get("stack"), markPoint: i.get("markPoint"), markLine: i.get("markLine") }, o.get("option.bar") || {}, !0) }, stack: function(t, e, i, o) { if ("line" === t || "bar" === t) return n({ id: e, stack: "__ec_magicType_stack__" }, o.get("option.stack") || {}, !0) }, tiled: function(t, e, i, o) { if ("line" === t || "bar" === t) return n({ id: e, stack: "" }, o.get("option.tiled") || {}, !0) } },
  8670. XO = [
  8671. ["line", "bar"],
  8672. ["stack", "tiled"]
  8673. ];
  8674. ZO.onclick = function(t, e, i) { var n = this.model,
  8675. o = n.get("seriesIndex." + i); if (UO[i]) { var a = { series: [] };
  8676. d(XO, function(t) { l(t, i) >= 0 && d(t, function(t) { n.setIconStatus(t, "normal") }) }), n.setIconStatus(i, "emphasis"), t.eachComponent({ mainType: "series", query: null == o ? null : { seriesIndex: o } }, function(e) { var o = e.subType,
  8677. s = e.id,
  8678. l = UO[i](o, s, e, n);
  8679. l && (r(l, e.option), a.series.push(l)); var u = e.coordinateSystem; if (u && "cartesian2d" === u.type && ("line" === i || "bar" === i)) { var h = u.getAxesByScale("ordinal")[0]; if (h) { var c = h.dim + "Axis",
  8680. d = t.queryComponents({ mainType: c, index: e.get(name + "Index"), id: e.get(name + "Id") })[0].componentIndex;
  8681. a[c] = a[c] || []; for (var f = 0; f <= d; f++) a[c][d] = a[c][d] || {};
  8682. a[c][d].boundaryGap = "bar" === i } } }), e.dispatchAction({ type: "changeMagicType", currentType: i, newOption: a }) } }, Ps({ type: "changeMagicType", event: "magicTypeChanged", update: "prepareAndUpdate" }, function(t, e) { e.mergeOption(t.newOption) }), yy("magicType", Nx); var jO = XI.toolbox.dataView,
  8683. YO = new Array(60).join("-"),
  8684. qO = "\t",
  8685. KO = new RegExp("[" + qO + "]+", "g");
  8686. Hx.defaultOption = { show: !0, readOnly: !1, optionToContent: null, contentToOption: null, icon: "M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28", title: i(jO.title), lang: i(jO.lang), backgroundColor: "#fff", textColor: "#000", textareaColor: "#fff", textareaBorderColor: "#333", buttonColor: "#c23531", buttonTextColor: "#fff" }, Hx.prototype.onclick = function(t, e) {
  8687. function i() { n.removeChild(a), x._dom = null } var n = e.getDom(),
  8688. o = this.model;
  8689. this._dom && n.removeChild(this._dom); var a = document.createElement("div");
  8690. 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"),
  8691. s = o.get("lang") || [];
  8692. r.innerHTML = s[0] || o.get("title"), r.style.cssText = "margin: 10px 20px;", r.style.color = o.get("textColor"); var l = document.createElement("div"),
  8693. u = document.createElement("textarea");
  8694. l.style.cssText = "display:block;width:100%;overflow:auto;"; var h = o.get("optionToContent"),
  8695. c = o.get("contentToOption"),
  8696. d = zx(t); if ("function" == typeof h) { var f = h(e.getOption()); "string" == typeof f ? l.innerHTML = f : M(f) && l.appendChild(f) } else l.appendChild(u), u.readOnly = o.get("readOnly"), u.style.cssText = "width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;", u.style.color = o.get("textColor"), u.style.borderColor = o.get("textareaBorderColor"), u.style.backgroundColor = o.get("textareaColor"), u.value = d.value; var p = d.meta,
  8697. g = document.createElement("div");
  8698. 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",
  8699. v = document.createElement("div"),
  8700. y = document.createElement("div");
  8701. m += ";background-color:" + o.get("buttonColor"), m += ";color:" + o.get("buttonTextColor"); var x = this;
  8702. ut(v, "click", i), ut(y, "click", function() { var t; try { t = "function" == typeof c ? c(l, e.getOption()) : Wx(u.value, p) } catch (t) { throw i(), new Error("Data view format error " + t) }
  8703. 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), ut(u, "keydown", function(t) { if (9 === (t.keyCode || t.which)) { var e = this.value,
  8704. i = this.selectionStart,
  8705. n = this.selectionEnd;
  8706. this.value = e.substring(0, i) + qO + e.substring(n), this.selectionStart = this.selectionEnd = i + 1, lw(t) } }), a.appendChild(r), a.appendChild(l), a.appendChild(g), l.style.height = n.clientHeight - 80 + "px", n.appendChild(a), this._dom = a }, Hx.prototype.remove = function(t, e) { this._dom && e.getDom().removeChild(this._dom) }, Hx.prototype.dispose = function(t, e) { this.remove(t, e) }, yy("dataView", Hx), Ps({ type: "changeDataView", event: "dataViewChanged", update: "prepareAndUpdate" }, function(t, e) { var i = [];
  8707. d(t.newOption.series, function(t) { var n = e.getSeriesByName(t.name)[0]; if (n) { var o = n.get("data");
  8708. i.push({ name: t.name, data: Zx(t.data, o) }) } else i.push(a({ type: "scatter" }, t)) }), e.mergeOption(r({ series: i }, t.newOption)) }); var $O = d,
  8709. JO = "\0_ec_hist_store";
  8710. BN.extend({ type: "dataZoom.select" }), VN.extend({ type: "dataZoom.select" }); var QO = XI.toolbox.dataZoom,
  8711. tE = d,
  8712. eE = "\0_ec_\0toolbox-dataZoom_";
  8713. Kx.defaultOption = { show: !0, icon: { zoom: "M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1", back: "M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26" }, title: i(QO.title) }; var iE = Kx.prototype;
  8714. iE.render = function(t, e, i, n) { this.model = t, this.ecModel = e, this.api = i, Qx(t, e, this, n, i), Jx(t, e) }, iE.onclick = function(t, e, i) { nE[i].call(this) }, iE.remove = function(t, e) { this._brushController.unmount() }, iE.dispose = function(t, e) { this._brushController.dispose() }; var nE = { zoom: function() { var t = !this._isZoomActive;
  8715. this.api.dispatchAction({ type: "takeGlobalCursor", key: "dataZoomSelect", dataZoomSelectActive: t }) }, back: function() { this._dispatchZoomAction(Xx(this.ecModel)) } };
  8716. iE._onBrush = function(t, e) {
  8717. function i(t, e, i) { var r = e.getAxis(t),
  8718. s = r.model,
  8719. l = n(t, s, a),
  8720. u = l.findRepresentativeAxisProxy(s).getMinMaxSpan();
  8721. null == u.minValueSpan && null == u.maxValueSpan || (i = EL(0, i.slice(), r.scale.getExtent(), 0, u.minValueSpan, u.maxValueSpan)), l && (o[l.id] = { dataZoomId: l.id, startValue: i[0], endValue: i[1] }) }
  8722. function n(t, e, i) { var n; return i.eachComponent({ mainType: "dataZoom", subType: "select" }, function(i) { i.getAxisModel(t, e.componentIndex) && (n = i) }), n } if (e.isEnd && t.length) { var o = {},
  8723. a = this.ecModel;
  8724. this._brushController.updateCovers([]), new iy($x(this.model.option), a, { include: ["grid"] }).matchOutputRanges(t, a, function(t, e, n) { if ("cartesian2d" === n.type) { var o = t.brushType; "rect" === o ? (i("x", n, e[0]), i("y", n, e[1])) : i({ lineX: "x", lineY: "y" }[o], n, e) } }), Ux(a, o), this._dispatchZoomAction(o) } }, iE._dispatchZoomAction = function(t) { var e = [];
  8725. tE(t, function(t, n) { e.push(i(t)) }), e.length && this.api.dispatchAction({ type: "dataZoom", from: this.uid, batch: e }) }, yy("dataZoom", Kx), Ls(function(t) {
  8726. function e(t, e) { if (e) { var o = t + "Index",
  8727. a = e[o];
  8728. null == a || "all" === a || y(a) || (a = !1 === a || "none" === a ? [] : [a]), i(t, function(e, i) { if (null == a || "all" === a || -1 !== l(a, i)) { var r = { type: "select", $fromToolbox: !0, id: eE + t + i };
  8729. r[o] = i, n.push(r) } }) } }
  8730. function i(e, i) { var n = t[e];
  8731. y(n) || (n = n ? [n] : []), tE(n, i) } if (t) { var n = t.dataZoom || (t.dataZoom = []);
  8732. y(n) || (t.dataZoom = n = [n]); var o = t.toolbox; if (o && (y(o) && (o = o[0]), o && o.feature)) { var a = o.feature.dataZoom;
  8733. e("xAxis", a), e("yAxis", a) } } }); var oE = XI.toolbox.restore;
  8734. t_.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: oE.title }, t_.prototype.onclick = function(t, e, i) { jx(t), e.dispatchAction({ type: "restore", from: this.uid }) }, yy("restore", t_), Ps({ type: "restore", event: "restore", update: "prepareAndUpdate" }, function(t, e) { e.resetOption("recreate") }); var aE, rE = "urn:schemas-microsoft-com:vml",
  8735. sE = "undefined" == typeof window ? null : window,
  8736. lE = !1,
  8737. uE = sE && sE.document; if (uE && !z_.canvasSupported) try {!uE.namespaces.zrvml && uE.namespaces.add("zrvml", rE), aE = function(t) { return uE.createElement("<zrvml:" + t + ' class="zrvml">') } } catch (t) { aE = function(t) { return uE.createElement("<" + t + ' xmlns="' + rE + '" class="zrvml">') } }
  8738. var hE = MS.CMD,
  8739. cE = Math.round,
  8740. dE = Math.sqrt,
  8741. fE = Math.abs,
  8742. pE = Math.cos,
  8743. gE = Math.sin,
  8744. mE = Math.max; if (!z_.canvasSupported) { var vE = 21600,
  8745. yE = vE / 2,
  8746. xE = function(t) { t.style.cssText = "position:absolute;left:0;top:0;width:1px;height:1px;", t.coordsize = vE + "," + vE, t.coordorigin = "0,0" },
  8747. _E = function(t) { return String(t).replace(/&/g, "&amp;").replace(/"/g, "&quot;") },
  8748. wE = function(t, e, i) { return "rgb(" + [t, e, i].join(",") + ")" },
  8749. bE = function(t, e) { e && t && e.parentNode !== t && t.appendChild(e) },
  8750. SE = function(t, e) { e && t && e.parentNode === t && t.removeChild(e) },
  8751. ME = function(t, e, i) { return 1e5 * (parseFloat(t) || 0) + 1e3 * (parseFloat(e) || 0) + i },
  8752. IE = function(t, e) { return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t },
  8753. TE = function(t, e, i) { var n = zt(e);
  8754. i = +i, isNaN(i) && (i = 1), n && (t.color = wE(n[0], n[1], n[2]), t.opacity = i * n[3]) },
  8755. AE = function(t) { var e = zt(t); return [wE(e[0], e[1], e[2]), e[3]] },
  8756. DE = function(t, e, i) { var n = e.fill; if (null != n)
  8757. if (n instanceof cM) { var o, a = 0,
  8758. r = [0, 0],
  8759. s = 0,
  8760. l = 1,
  8761. u = i.getBoundingRect(),
  8762. h = u.width,
  8763. c = u.height; if ("linear" === n.type) { o = "gradient"; var d = i.transform,
  8764. f = [n.x * h, n.y * c],
  8765. p = [n.x2 * h, n.y2 * c];
  8766. d && (Q(f, f, d), Q(p, p, d)); var g = p[0] - f[0],
  8767. m = p[1] - f[1];
  8768. (a = 180 * Math.atan2(g, m) / Math.PI) < 0 && (a += 360), a < 1e-6 && (a = 0) } else { o = "gradientradial"; var f = [n.x * h, n.y * c],
  8769. d = i.transform,
  8770. v = i.scale,
  8771. y = h,
  8772. x = c;
  8773. r = [(f[0] - u.x) / y, (f[1] - u.y) / x], d && Q(f, f, d), y /= v[0] * vE, x /= v[1] * vE; var _ = mE(y, x);
  8774. s = 0 / _, l = 2 * n.r / _ - s } var w = n.colorStops.slice();
  8775. w.sort(function(t, e) { return t.offset - e.offset }); for (var b = w.length, S = [], M = [], I = 0; I < b; I++) { var T = w[I],
  8776. A = AE(T.color);
  8777. M.push(T.offset * l + s + " " + A[0]), 0 !== I && I !== b - 1 || S.push(A) } if (b >= 2) { var D = S[0][0],
  8778. C = S[1][0],
  8779. L = S[0][1] * e.opacity,
  8780. k = S[1][1] * e.opacity;
  8781. t.type = o, t.method = "none", t.focus = "100%", t.angle = a, t.color = D, t.color2 = C, t.colors = M.join(","), t.opacity = k, t.opacity2 = L } "radial" === o && (t.focusposition = r.join(",")) } else TE(t, n, e.opacity) },
  8782. CE = function(t, e) { null != e.lineDash && (t.dashstyle = e.lineDash.join(" ")), null == e.stroke || e.stroke instanceof cM || TE(t, e.stroke, e.opacity) },
  8783. LE = function(t, e, i, n) { var o = "fill" == e,
  8784. a = t.getElementsByTagName(e)[0];
  8785. null != i[e] && "none" !== i[e] && (o || !o && i.lineWidth) ? (t[o ? "filled" : "stroked"] = "true", i[e] instanceof cM && SE(t, a), a || (a = e_(e)), o ? DE(a, i, n) : CE(a, i), bE(t, a)) : (t[o ? "filled" : "stroked"] = "false", SE(t, a)) },
  8786. kE = [
  8787. [],
  8788. [],
  8789. []
  8790. ],
  8791. PE = function(t, e) { var i, n, o, a, r, s, l = hE.M,
  8792. u = hE.C,
  8793. h = hE.L,
  8794. c = hE.A,
  8795. d = hE.Q,
  8796. f = [],
  8797. p = t.data,
  8798. g = t.len(); for (a = 0; a < g;) { switch (o = p[a++], n = "", i = 0, o) {
  8799. case l:
  8800. n = " m ", i = 1, r = p[a++], s = p[a++], kE[0][0] = r, kE[0][1] = s; break;
  8801. case h:
  8802. n = " l ", i = 1, r = p[a++], s = p[a++], kE[0][0] = r, kE[0][1] = s; break;
  8803. case d:
  8804. case u:
  8805. n = " c ", i = 3; var m, v, y = p[a++],
  8806. x = p[a++],
  8807. _ = p[a++],
  8808. w = p[a++];
  8809. o === d ? (m = _, v = w, _ = (_ + 2 * y) / 3, w = (w + 2 * x) / 3, y = (r + 2 * y) / 3, x = (s + 2 * x) / 3) : (m = p[a++], v = p[a++]), kE[0][0] = y, kE[0][1] = x, kE[1][0] = _, kE[1][1] = w, kE[2][0] = m, kE[2][1] = v, r = m, s = v; break;
  8810. case c:
  8811. var b = 0,
  8812. S = 0,
  8813. M = 1,
  8814. I = 1,
  8815. T = 0;
  8816. e && (b = e[4], S = e[5], M = dE(e[0] * e[0] + e[1] * e[1]), I = dE(e[2] * e[2] + e[3] * e[3]), T = Math.atan2(-e[1] / I, e[0] / M)); var A = p[a++],
  8817. D = p[a++],
  8818. C = p[a++],
  8819. L = p[a++],
  8820. k = p[a++] + T,
  8821. P = p[a++] + k + T;
  8822. a++; var N = p[a++],
  8823. O = A + pE(k) * C,
  8824. E = D + gE(k) * L,
  8825. y = A + pE(P) * C,
  8826. x = D + gE(P) * L,
  8827. R = N ? " wa " : " at ";
  8828. Math.abs(O - y) < 1e-4 && (Math.abs(P - k) > .01 ? N && (O += .0125) : Math.abs(E - D) < 1e-4 ? N && O < A || !N && O > A ? x -= .0125 : x += .0125 : N && E < D || !N && E > D ? y += .0125 : y -= .0125), f.push(R, cE(((A - C) * M + b) * vE - yE), ",", cE(((D - L) * I + S) * vE - yE), ",", cE(((A + C) * M + b) * vE - yE), ",", cE(((D + L) * I + S) * vE - yE), ",", cE((O * M + b) * vE - yE), ",", cE((E * I + S) * vE - yE), ",", cE((y * M + b) * vE - yE), ",", cE((x * I + S) * vE - yE)), r = y, s = x; break;
  8829. case hE.R:
  8830. var z = kE[0],
  8831. B = kE[1];
  8832. z[0] = p[a++], z[1] = p[a++], B[0] = z[0] + p[a++], B[1] = z[1] + p[a++], e && (Q(z, z, e), Q(B, B, e)), z[0] = cE(z[0] * vE - yE), B[0] = cE(B[0] * vE - yE), z[1] = cE(z[1] * vE - yE), B[1] = cE(B[1] * vE - yE), f.push(" m ", z[0], ",", z[1], " l ", B[0], ",", z[1], " l ", B[0], ",", B[1], " l ", z[0], ",", B[1]); break;
  8833. case hE.Z:
  8834. f.push(" x ") } if (i > 0) { f.push(n); for (var V = 0; V < i; V++) { var G = kE[V];
  8835. e && Q(G, G, e), f.push(cE(G[0] * vE - yE), ",", cE(G[1] * vE - yE), V < i - 1 ? "," : "") } } } return f.join("") };
  8836. kn.prototype.brushVML = function(t) { var e = this.style,
  8837. i = this._vmlEl;
  8838. i || (i = e_("shape"), xE(i), this._vmlEl = i), LE(i, "fill", e, this), LE(i, "stroke", e, this); var n = this.transform,
  8839. o = null != n,
  8840. a = i.getElementsByTagName("stroke")[0]; if (a) { var r = e.lineWidth; if (o && !e.strokeNoScale) { var s = n[0] * n[3] - n[1] * n[2];
  8841. r *= dE(fE(s)) }
  8842. a.weight = r + "px" } var l = this.path || (this.path = new MS);
  8843. this.__dirtyPath && (l.beginPath(), this.buildPath(l, this.shape), l.toStatic(), this.__dirtyPath = !1), i.path = PE(l, this.transform), i.style.zIndex = ME(this.zlevel, this.z, this.z2), bE(t, i), null != e.text ? this.drawRectText(t, this.getBoundingRect()) : this.removeRectText(t) }, kn.prototype.onRemove = function(t) { SE(t, this._vmlEl), this.removeRectText(t) }, kn.prototype.onAdd = function(t) { bE(t, this._vmlEl), this.appendRectText(t) }; var NE = function(t) { return "object" == typeof t && t.tagName && "IMG" === t.tagName.toUpperCase() };
  8844. hi.prototype.brushVML = function(t) { var e, i, n = this.style,
  8845. o = n.image; if (NE(o)) { var a = o.src; if (a === this._imageSrc) e = this._imageWidth, i = this._imageHeight;
  8846. else { var r = o.runtimeStyle,
  8847. s = r.width,
  8848. l = r.height;
  8849. r.width = "auto", r.height = "auto", e = o.width, i = o.height, r.width = s, r.height = l, this._imageSrc = a, this._imageWidth = e, this._imageHeight = i }
  8850. o = a } else o === this._imageSrc && (e = this._imageWidth, i = this._imageHeight); if (o) { var u = n.x || 0,
  8851. h = n.y || 0,
  8852. c = n.width,
  8853. d = n.height,
  8854. f = n.sWidth,
  8855. p = n.sHeight,
  8856. g = n.sx || 0,
  8857. m = n.sy || 0,
  8858. v = f && p,
  8859. y = this._vmlEl;
  8860. y || (y = uE.createElement("div"), xE(y), this._vmlEl = y); var x, _ = y.style,
  8861. w = !1,
  8862. b = 1,
  8863. S = 1; if (this.transform && (x = this.transform, b = dE(x[0] * x[0] + x[1] * x[1]), S = dE(x[2] * x[2] + x[3] * x[3]), w = x[1] || x[2]), w) { var M = [u, h],
  8864. I = [u + c, h],
  8865. T = [u, h + d],
  8866. A = [u + c, h + d];
  8867. Q(M, M, x), Q(I, I, x), Q(T, T, x), Q(A, A, x); var D = mE(M[0], I[0], T[0], A[0]),
  8868. C = mE(M[1], I[1], T[1], A[1]),
  8869. L = [];
  8870. L.push("M11=", x[0] / b, ",", "M12=", x[2] / S, ",", "M21=", x[1] / b, ",", "M22=", x[3] / S, ",", "Dx=", cE(u * b + x[4]), ",", "Dy=", cE(h * S + x[5])), _.padding = "0 " + cE(D) + "px " + cE(C) + "px 0", _.filter = "progid:DXImageTransform.Microsoft.Matrix(" + L.join("") + ", SizingMethod=clip)" } else x && (u = u * b + x[4], h = h * S + x[5]), _.filter = "", _.left = cE(u) + "px", _.top = cE(h) + "px"; var k = this._imageEl,
  8871. P = this._cropEl;
  8872. k || (k = uE.createElement("div"), this._imageEl = k); var N = k.style; if (v) { if (e && i) N.width = cE(b * e * c / f) + "px", N.height = cE(S * i * d / p) + "px";
  8873. else { var O = new Image,
  8874. E = this;
  8875. O.onload = function() { O.onload = null, e = O.width, i = O.height, N.width = cE(b * e * c / f) + "px", N.height = cE(S * i * d / p) + "px", E._imageWidth = e, E._imageHeight = i, E._imageSrc = o }, O.src = o }
  8876. P || ((P = uE.createElement("div")).style.overflow = "hidden", this._cropEl = P); var R = P.style;
  8877. R.width = cE((c + g * c / f) * b), R.height = cE((d + m * d / p) * S), R.filter = "progid:DXImageTransform.Microsoft.Matrix(Dx=" + -g * c / f * b + ",Dy=" + -m * d / p * S + ")", P.parentNode || y.appendChild(P), k.parentNode != P && P.appendChild(k) } else N.width = cE(b * c) + "px", N.height = cE(S * d) + "px", y.appendChild(k), P && P.parentNode && (y.removeChild(P), this._cropEl = null); var z = "",
  8878. B = n.opacity;
  8879. B < 1 && (z += ".Alpha(opacity=" + cE(100 * B) + ") "), z += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + o + ", SizingMethod=scale)", N.filter = z, y.style.zIndex = ME(this.zlevel, this.z, this.z2), bE(t, y), null != n.text && this.drawRectText(t, this.getBoundingRect()) } }, hi.prototype.onRemove = function(t) { SE(t, this._vmlEl), this._vmlEl = null, this._cropEl = null, this._imageEl = null, this.removeRectText(t) }, hi.prototype.onAdd = function(t) { bE(t, this._vmlEl), this.appendRectText(t) }; var OE, EE = {},
  8880. RE = 0,
  8881. zE = document.createElement("div"),
  8882. BE = function(t) { var e = EE[t]; if (!e) { RE > 100 && (RE = 0, EE = {}); var i, n = zE.style; try { n.font = t, i = n.fontFamily.split(",")[0] } catch (t) {}
  8883. e = { style: n.fontStyle || "normal", variant: n.fontVariant || "normal", weight: n.fontWeight || "normal", size: 0 | parseFloat(n.fontSize || 12), family: i || "Microsoft YaHei" }, EE[t] = e, RE++ } return e };! function(t, e) { hb[t] = e }("measureText", function(t, e) { var i = uE;
  8884. OE || ((OE = i.createElement("div")).style.cssText = "position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;", uE.body.appendChild(OE)); try { OE.style.font = e } catch (t) {} return OE.innerHTML = "", OE.appendChild(i.createTextNode(t)), { width: OE.offsetWidth } }); for (var VE = new ue, GE = [gb, ui, hi, kn, qS], FE = 0; FE < GE.length; FE++) { var WE = GE[FE].prototype;
  8885. WE.drawRectText = function(t, e, i, n) { var o = this.style;
  8886. this.__dirty && Ue(o); var a = o.text; if (null != a && (a += ""), a) { if (o.rich) { var r = Fe(a, o);
  8887. a = []; for (var s = 0; s < r.lines.length; s++) { for (var l = r.lines[s].tokens, u = [], h = 0; h < l.length; h++) u.push(l[h].text);
  8888. a.push(u.join("")) }
  8889. a = a.join("\n") } var c, d, f = o.textAlign,
  8890. p = o.textVerticalAlign,
  8891. g = BE(o.font),
  8892. m = g.style + " " + g.variant + " " + g.weight + " " + g.size + 'px "' + g.family + '"';
  8893. i = i || De(a, m, f, p); var v = this.transform; if (v && !n && (VE.copy(e), VE.applyTransform(v), e = VE), n) c = e.x, d = e.y;
  8894. else { var y = o.textPosition,
  8895. x = o.textDistance; if (y instanceof Array) c = e.x + IE(y[0], e.width), d = e.y + IE(y[1], e.height), f = f || "left";
  8896. else { var _ = Ne(y, e, x);
  8897. c = _.x, d = _.y, f = f || _.textAlign, p = p || _.textVerticalAlign } }
  8898. c = ke(c, i.width, f), d = Pe(d, i.height, p), d += i.height / 2; var w, b, S, M = e_,
  8899. I = this._textVmlEl;
  8900. I ? b = (w = (S = I.firstChild).nextSibling).nextSibling : (I = M("line"), w = M("path"), b = M("textpath"), S = M("skew"), b.style["v-text-align"] = "left", xE(I), w.textpathok = !0, b.on = !0, I.from = "0 0", I.to = "1000 0.05", bE(I, S), bE(I, w), bE(I, b), this._textVmlEl = I); var T = [c, d],
  8901. A = I.style;
  8902. v && n ? (Q(T, T, v), S.on = !0, S.matrix = v[0].toFixed(3) + "," + v[2].toFixed(3) + "," + v[1].toFixed(3) + "," + v[3].toFixed(3) + ",0,0", S.offset = (cE(T[0]) || 0) + "," + (cE(T[1]) || 0), S.origin = "0 0", A.left = "0px", A.top = "0px") : (S.on = !1, A.left = cE(c) + "px", A.top = cE(d) + "px"), b.string = _E(a); try { b.style.font = m } catch (t) {}
  8903. LE(I, "fill", { fill: o.textFill, opacity: o.opacity }, this), LE(I, "stroke", { stroke: o.textStroke, opacity: o.opacity, lineDash: o.lineDash }, this), I.style.zIndex = ME(this.zlevel, this.z, this.z2), bE(t, I) } }, WE.removeRectText = function(t) { SE(t, this._textVmlEl), this._textVmlEl = null }, WE.appendRectText = function(t) { bE(t, this._textVmlEl) } }
  8904. qS.prototype.brushVML = function(t) { var e = this.style;
  8905. null != e.text ? this.drawRectText(t, { x: e.x || 0, y: e.y || 0, width: 0, height: 0 }, this.getBoundingRect(), !0) : this.removeRectText(t) }, qS.prototype.onRemove = function(t) { this.removeRectText(t) }, qS.prototype.onAdd = function(t) { this.appendRectText(t) } }
  8906. o_.prototype = { constructor: o_, getType: function() { return "vml" }, getViewportRoot: function() { return this._vmlViewport }, getViewportRootOffset: function() { var t = this.getViewportRoot(); if (t) return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0 } }, refresh: function() { var t = this.storage.getDisplayList(!0, !0);
  8907. this._paintList(t) }, _paintList: function(t) { for (var e = this._vmlRoot, i = 0; i < t.length; i++) { var n = t[i];
  8908. n.invisible || n.ignore ? (n.__alreadyNotVisible || n.onRemove(e), n.__alreadyNotVisible = !0) : (n.__alreadyNotVisible && n.onAdd(e), n.__alreadyNotVisible = !1, n.__dirty && (n.beforeBrush && n.beforeBrush(), (n.brushVML || n.brush).call(n, e), n.afterBrush && n.afterBrush())), n.__dirty = !1 }
  8909. this._firstPaint && (this._vmlViewport.appendChild(e), this._firstPaint = !1) }, resize: function(t, e) { var t = null == t ? this._getWidth() : t,
  8910. e = null == e ? this._getHeight() : e; if (this._width != t || this._height != e) { this._width = t, this._height = e; var i = this._vmlViewport.style;
  8911. i.width = t + "px", i.height = e + "px" } }, dispose: function() { this.root.innerHTML = "", this._vmlRoot = this._vmlViewport = this.storage = null }, getWidth: function() { return this._width }, getHeight: function() { return this._height }, clear: function() { this._vmlViewport && this.root.removeChild(this._vmlViewport) }, _getWidth: function() { var t = this.root,
  8912. e = t.currentStyle; return (t.clientWidth || n_(e.width)) - n_(e.paddingLeft) - n_(e.paddingRight) | 0 }, _getHeight: function() { var t = this.root,
  8913. e = t.currentStyle; return (t.clientHeight || n_(e.height)) - n_(e.paddingTop) - n_(e.paddingBottom) | 0 } }, d(["getLayer", "insertLayer", "eachLayer", "eachBuiltinLayer", "eachOtherLayer", "getLayers", "modLayer", "delLayer", "clearLayer", "toDataURL", "pathToImage"], function(t) { o_.prototype[t] = a_(t) }), Ti("vml", o_); var HE = "http://www.w3.org/2000/svg",
  8914. ZE = MS.CMD,
  8915. UE = Array.prototype.join,
  8916. XE = "none",
  8917. jE = Math.round,
  8918. YE = Math.sin,
  8919. qE = Math.cos,
  8920. KE = Math.PI,
  8921. $E = 2 * Math.PI,
  8922. JE = 180 / KE,
  8923. QE = 1e-4,
  8924. tR = {};
  8925. tR.brush = function(t) { var e = t.style,
  8926. i = t.__svgEl;
  8927. i || (i = r_("path"), t.__svgEl = i), t.path || t.createPathProxy(); var n = t.path; if (t.__dirtyPath) { n.beginPath(), t.buildPath(n, t.shape), t.__dirtyPath = !1; var o = g_(n);
  8928. o.indexOf("NaN") < 0 && d_(i, "d", o) }
  8929. p_(i, e, !1, t), c_(i, t.transform), null != e.text && oR(t, t.getBoundingRect()) }; var eR = {};
  8930. eR.brush = function(t) { var e = t.style,
  8931. i = e.image; if (i instanceof HTMLImageElement && (i = i.src), i) { var n = e.x || 0,
  8932. o = e.y || 0,
  8933. a = e.width,
  8934. r = e.height,
  8935. s = t.__svgEl;
  8936. s || (s = r_("image"), t.__svgEl = s), i !== t.__imageSrc && (f_(s, "href", i), t.__imageSrc = i), d_(s, "width", a), d_(s, "height", r), d_(s, "x", n), d_(s, "y", o), c_(s, t.transform), null != e.text && oR(t, t.getBoundingRect()) } }; var iR = {},
  8937. nR = new ue,
  8938. oR = function(t, e, i) { var n = t.style;
  8939. t.__dirty && Ue(n); var o = n.text; if (null != o) { o += ""; var a = t.__textSvgEl;
  8940. a || (a = r_("text"), t.__textSvgEl = a); var r, s, l = n.textPosition,
  8941. u = n.textDistance,
  8942. h = n.textAlign || "left"; "number" == typeof n.fontSize && (n.fontSize += "px"); var c = n.font || [n.fontStyle || "", n.fontWeight || "", n.fontSize || "", n.fontFamily || ""].join(" ") || ub,
  8943. d = m_(n.textVerticalAlign),
  8944. f = (i = De(o, c, h, d)).lineHeight; if (l instanceof Array) r = e.x + l[0], s = e.y + l[1];
  8945. else { var p = Ne(l, e, u);
  8946. r = p.x, s = p.y, d = m_(p.textVerticalAlign), h = p.textAlign }
  8947. d_(a, "alignment-baseline", d), c && (a.style.font = c); var g = n.textPadding; if (d_(a, "x", r), d_(a, "y", s), p_(a, n, !0, t), t instanceof qS || t.style.transformText) c_(a, t.transform);
  8948. else { if (t.transform) nR.copy(e), nR.applyTransform(t.transform), e = nR;
  8949. else { var m = t.transformCoordToGlobal(e.x, e.y);
  8950. e.x = m[0], e.y = m[1], t.transform = vt(mt()) } var v = n.textOrigin; "center" === v ? (r = i.width / 2 + r, s = i.height / 2 + s) : v && (r = v[0] + r, s = v[1] + s); var y = -n.textRotation || 0,
  8951. x = mt();
  8952. wt(x, x, y), _t(x, x, m = [t.transform[4], t.transform[5]]), c_(a, x) } var _ = o.split("\n"),
  8953. w = _.length,
  8954. b = h; "left" === b ? (b = "start", g && (r += g[3])) : "right" === b ? (b = "end", g && (r -= g[1])) : "center" === b && (b = "middle", g && (r += (g[3] - g[1]) / 2)); var S = 0; if ("after-edge" === d ? (S = -i.height + f, g && (S -= g[2])) : "middle" === d ? (S = (-i.height + f) / 2, g && (s += (g[0] - g[2]) / 2)) : g && (S += g[0]), t.__text !== o || t.__textFont !== c) { var M = t.__tspanList || [];
  8955. t.__tspanList = M; for (T = 0; T < w; T++)(A = M[T]) ? A.innerHTML = "" : (A = M[T] = r_("tspan"), a.appendChild(A), d_(A, "alignment-baseline", d), d_(A, "text-anchor", b)), d_(A, "x", r), d_(A, "y", s + T * f + S), A.appendChild(document.createTextNode(_[T])); for (; T < M.length; T++) a.removeChild(M[T]);
  8956. M.length = w, t.__text = o, t.__textFont = c } else if (t.__tspanList.length)
  8957. for (var I = t.__tspanList.length, T = 0; T < I; ++T) { var A = t.__tspanList[T];
  8958. A && (d_(A, "x", r), d_(A, "y", s + T * f + S)) } } };
  8959. iR.drawRectText = oR, iR.brush = function(t) { var e = t.style;
  8960. null != e.text && (e.textPosition = [0, 0], oR(t, { x: e.x || 0, y: e.y || 0, width: 0, height: 0 }, t.getBoundingRect())) }, v_.prototype = { diff: function(t, e, i) { i || (i = function(t, e) { return t === e }), this.equals = i; var n = this;
  8961. t = t.slice(); var o = (e = e.slice()).length,
  8962. a = t.length,
  8963. r = 1,
  8964. s = o + a,
  8965. l = [{ newPos: -1, components: [] }],
  8966. u = this.extractCommon(l[0], e, t, 0); if (l[0].newPos + 1 >= o && u + 1 >= a) { for (var h = [], c = 0; c < e.length; c++) h.push(c); return [{ indices: h, count: e.length }] } for (; r <= s;) { var d = function() { for (var i = -1 * r; i <= r; i += 2) { var s, u = l[i - 1],
  8967. h = l[i + 1],
  8968. c = (h ? h.newPos : 0) - i;
  8969. u && (l[i - 1] = void 0); var d = u && u.newPos + 1 < o,
  8970. f = h && 0 <= c && c < a; if (d || f) { if (!d || f && u.newPos < h.newPos ? (s = x_(h), n.pushComponent(s.components, void 0, !0)) : ((s = u).newPos++, n.pushComponent(s.components, !0, void 0)), c = n.extractCommon(s, e, t, i), s.newPos + 1 >= o && c + 1 >= a) return y_(0, s.components);
  8971. l[i] = s } else l[i] = void 0 }
  8972. r++ }(); if (d) return d } }, pushComponent: function(t, e, i) { var n = t[t.length - 1];
  8973. n && n.added === e && n.removed === i ? t[t.length - 1] = { count: n.count + 1, added: e, removed: i } : t.push({ count: 1, added: e, removed: i }) }, extractCommon: function(t, e, i, n) { for (var o = e.length, a = i.length, r = t.newPos, s = r - n, l = 0; r + 1 < o && s + 1 < a && this.equals(e[r + 1], i[s + 1]);) r++, s++, l++; return l && t.components.push({ count: l }), t.newPos = r, s }, tokenize: function(t) { return t.slice() }, join: function(t) { return t.slice() } }; var aR = new v_,
  8974. rR = function(t, e, i) { return aR.diff(t, e, i) };
  8975. __.prototype.createElement = r_, __.prototype.getDefs = function(t) { var e = this._svgRoot,
  8976. i = this._svgRoot.getElementsByTagName("defs"); return 0 === i.length ? t ? ((i = e.insertBefore(this.createElement("defs"), e.firstChild)).contains || (i.contains = function(t) { var e = i.children; if (!e) return !1; for (var n = e.length - 1; n >= 0; --n)
  8977. if (e[n] === t) return !0;
  8978. return !1 }), i) : null : i[0] }, __.prototype.update = function(t, e) { if (t) { var i = this.getDefs(!1); if (t[this._domName] && i.contains(t[this._domName])) "function" == typeof e && e(t);
  8979. else { var n = this.add(t);
  8980. n && (t[this._domName] = n) } } }, __.prototype.addDom = function(t) { this.getDefs(!0).appendChild(t) }, __.prototype.removeDom = function(t) { var e = this.getDefs(!1);
  8981. e && t[this._domName] && (e.removeChild(t[this._domName]), t[this._domName] = null) }, __.prototype.getDoms = function() { var t = this.getDefs(!1); if (!t) return []; var e = []; return d(this._tagNames, function(i) { var n = t.getElementsByTagName(i);
  8982. e = e.concat([].slice.call(n)) }), e }, __.prototype.markAllUnused = function() { var t = this;
  8983. d(this.getDoms(), function(e) { e[t._markLabel] = "0" }) }, __.prototype.markUsed = function(t) { t && (t[this._markLabel] = "1") }, __.prototype.removeUnused = function() { var t = this.getDefs(!1); if (t) { var e = this;
  8984. d(this.getDoms(), function(i) { "1" !== i[e._markLabel] && t.removeChild(i) }) } }, __.prototype.getSvgProxy = function(t) { return t instanceof kn ? tR : t instanceof hi ? eR : t instanceof qS ? iR : tR }, __.prototype.getTextSvgElement = function(t) { return t.__textSvgEl }, __.prototype.getSvgElement = function(t) { return t.__svgEl }, u(w_, __), w_.prototype.addWithoutUpdate = function(t, e) { if (e && e.style) { var i = this;
  8985. d(["fill", "stroke"], function(n) { if (e.style[n] && ("linear" === e.style[n].type || "radial" === e.style[n].type)) { var o, a = e.style[n],
  8986. r = i.getDefs(!0);
  8987. a._dom ? (o = a._dom, r.contains(a._dom) || i.addDom(o)) : o = i.add(a), i.markUsed(e); var s = o.getAttribute("id");
  8988. t.setAttribute(n, "url(#" + s + ")") } }) } }, w_.prototype.add = function(t) { var e; if ("linear" === t.type) e = this.createElement("linearGradient");
  8989. else { if ("radial" !== t.type) return Bw("Illegal gradient type."), null;
  8990. e = this.createElement("radialGradient") } return t.id = t.id || this.nextId++, e.setAttribute("id", "zr" + this._zrId + "-gradient-" + t.id), this.updateDom(t, e), this.addDom(e), e }, w_.prototype.update = function(t) { var e = this;
  8991. __.prototype.update.call(this, t, function() { var i = t.type,
  8992. n = t._dom.tagName; "linear" === i && "linearGradient" === n || "radial" === i && "radialGradient" === n ? e.updateDom(t, t._dom) : (e.removeDom(t), e.add(t)) }) }, w_.prototype.updateDom = function(t, e) { if ("linear" === t.type) e.setAttribute("x1", t.x), e.setAttribute("y1", t.y), e.setAttribute("x2", t.x2), e.setAttribute("y2", t.y2);
  8993. else { if ("radial" !== t.type) return void Bw("Illegal gradient type.");
  8994. e.setAttribute("cx", t.x), e.setAttribute("cy", t.y), e.setAttribute("r", t.r) }
  8995. t.global ? e.setAttribute("gradientUnits", "userSpaceOnUse") : e.setAttribute("gradientUnits", "objectBoundingBox"), e.innerHTML = ""; for (var i = t.colorStops, n = 0, o = i.length; n < o; ++n) { var a = this.createElement("stop");
  8996. a.setAttribute("offset", 100 * i[n].offset + "%"), a.setAttribute("stop-color", i[n].color), e.appendChild(a) }
  8997. t._dom = e }, w_.prototype.markUsed = function(t) { if (t.style) { var e = t.style.fill;
  8998. e && e._dom && __.prototype.markUsed.call(this, e._dom), (e = t.style.stroke) && e._dom && __.prototype.markUsed.call(this, e._dom) } }, u(b_, __), b_.prototype.update = function(t) { var e = this.getSvgElement(t);
  8999. e && this.updateDom(e, t.__clipPaths, !1); var i = this.getTextSvgElement(t);
  9000. i && this.updateDom(i, t.__clipPaths, !0), this.markUsed(t) }, b_.prototype.updateDom = function(t, e, i) { if (e && e.length > 0) { var n, o, a = this.getDefs(!0),
  9001. r = e[0],
  9002. s = i ? "_textDom" : "_dom";
  9003. r[s] ? (o = r[s].getAttribute("id"), n = r[s], a.contains(n) || a.appendChild(n)) : (o = "zr" + this._zrId + "-clip-" + this.nextId, ++this.nextId, (n = this.createElement("clipPath")).setAttribute("id", o), a.appendChild(n), r[s] = n); var l = this.getSvgProxy(r); if (r.transform && r.parent.invTransform && !i) { var u = Array.prototype.slice.call(r.transform);
  9004. xt(r.transform, r.parent.invTransform, r.transform), l.brush(r), r.transform = u } else l.brush(r); var h = this.getSvgElement(r);
  9005. n.innerHTML = "", n.appendChild(h.cloneNode()), t.setAttribute("clip-path", "url(#" + o + ")"), e.length > 1 && this.updateDom(n, e.slice(1), i) } else t && t.setAttribute("clip-path", "none") }, b_.prototype.markUsed = function(t) { var e = this;
  9006. t.__clipPaths && t.__clipPaths.length > 0 && d(t.__clipPaths, function(t) { t._dom && __.prototype.markUsed.call(e, t._dom), t._textDom && __.prototype.markUsed.call(e, t._textDom) }) }, u(S_, __), S_.prototype.addWithoutUpdate = function(t, e) { if (e && M_(e.style)) { var i, n = e.style;
  9007. n._shadowDom ? (i = n._shadowDom, this.getDefs(!0).contains(n._shadowDom) || this.addDom(i)) : i = this.add(e), this.markUsed(e); var o = i.getAttribute("id");
  9008. t.style.filter = "url(#" + o + ")" } }, S_.prototype.add = function(t) { var e = this.createElement("filter"),
  9009. i = t.style; return i._shadowDomId = i._shadowDomId || this.nextId++, e.setAttribute("id", "zr" + this._zrId + "-shadow-" + i._shadowDomId), this.updateDom(t, e), this.addDom(e), e }, S_.prototype.update = function(t, e) { var i = e.style; if (M_(i)) { var n = this;
  9010. __.prototype.update.call(this, e, function(t) { n.updateDom(e, t._shadowDom) }) } else this.remove(t, i) }, S_.prototype.remove = function(t, e) { null != e._shadowDomId && (this.removeDom(e), t.style.filter = "") }, S_.prototype.updateDom = function(t, e) { var i = e.getElementsByTagName("feDropShadow");
  9011. i = 0 === i.length ? this.createElement("feDropShadow") : i[0]; var n, o, a, r, s = t.style,
  9012. l = t.scale ? t.scale[0] || 1 : 1,
  9013. u = t.scale ? t.scale[1] || 1 : 1; if (s.shadowBlur || s.shadowOffsetX || s.shadowOffsetY) n = s.shadowOffsetX || 0, o = s.shadowOffsetY || 0, a = s.shadowBlur, r = s.shadowColor;
  9014. else { if (!s.textShadowBlur) return void this.removeDom(e, s);
  9015. n = s.textShadowOffsetX || 0, o = s.textShadowOffsetY || 0, a = s.textShadowBlur, r = s.textShadowColor }
  9016. i.setAttribute("dx", n / l), i.setAttribute("dy", o / u), i.setAttribute("flood-color", r); var h = a / 2 / l + " " + a / 2 / u;
  9017. i.setAttribute("stdDeviation", h), e.setAttribute("x", "-100%"), e.setAttribute("y", "-100%"), e.setAttribute("width", Math.ceil(a / 2 * 200) + "%"), e.setAttribute("height", Math.ceil(a / 2 * 200) + "%"), e.appendChild(i), s._shadowDom = e }, S_.prototype.markUsed = function(t) { var e = t.style;
  9018. e && e._shadowDom && __.prototype.markUsed.call(this, e._shadowDom) }; var sR = function(t, e, i, n) { this.root = t, this.storage = e, this._opts = i = a({}, i || {}); var o = r_("svg");
  9019. o.setAttribute("xmlns", "http://www.w3.org/2000/svg"), o.setAttribute("version", "1.1"), o.setAttribute("baseProfile", "full"), o.style.cssText = "user-select:none;position:absolute;left:0;top:0;", this.gradientManager = new w_(n, o), this.clipPathManager = new b_(n, o), this.shadowManager = new S_(n, o); var r = document.createElement("div");
  9020. r.style.cssText = "overflow:hidden;position:relative", this._svgRoot = o, this._viewport = r, t.appendChild(r), r.appendChild(o), this.resize(i.width, i.height), this._visibleList = [] };
  9021. sR.prototype = { constructor: sR, getType: function() { return "svg" }, getViewportRoot: function() { return this._viewport }, getViewportRootOffset: function() { var t = this.getViewportRoot(); if (t) return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0 } }, refresh: function() { var t = this.storage.getDisplayList(!0);
  9022. this._paintList(t) }, setBackgroundColor: function(t) { this._viewport.style.background = t }, _paintList: function(t) { this.gradientManager.markAllUnused(), this.clipPathManager.markAllUnused(), this.shadowManager.markAllUnused(); var e, i = this._svgRoot,
  9023. n = this._visibleList,
  9024. o = t.length,
  9025. a = []; for (e = 0; e < o; e++) { var r = T_(f = t[e]),
  9026. s = P_(f) || k_(f);
  9027. f.invisible || (f.__dirty && (r && r.brush(f), this.clipPathManager.update(f), f.style && (this.gradientManager.update(f.style.fill), this.gradientManager.update(f.style.stroke), this.shadowManager.update(s, f)), f.__dirty = !1), a.push(f)) } var l, u = rR(n, a); for (e = 0; e < u.length; e++)
  9028. if ((c = u[e]).removed)
  9029. for (d = 0; d < c.count; d++) { var s = P_(f = n[c.indices[d]]),
  9030. h = k_(f);
  9031. L_(i, s), L_(i, h) }
  9032. for (e = 0; e < u.length; e++) { var c = u[e]; if (c.added)
  9033. for (d = 0; d < c.count; d++) { var s = P_(f = a[c.indices[d]]),
  9034. h = k_(f);
  9035. l ? D_(i, s, l) : C_(i, s), s ? D_(i, h, s) : l ? D_(i, h, l) : C_(i, h), D_(i, h, s), l = h || s || l, this.gradientManager.addWithoutUpdate(s, f), this.shadowManager.addWithoutUpdate(l, f), this.clipPathManager.markUsed(f) } else if (!c.removed)
  9036. for (var d = 0; d < c.count; d++) { var f = a[c.indices[d]];
  9037. l = s = k_(f) || P_(f) || l, this.gradientManager.markUsed(f), this.gradientManager.addWithoutUpdate(s, f), this.shadowManager.markUsed(f), this.shadowManager.addWithoutUpdate(s, f), this.clipPathManager.markUsed(f) } }
  9038. this.gradientManager.removeUnused(), this.clipPathManager.removeUnused(), this.shadowManager.removeUnused(), this._visibleList = a }, _getDefs: function(t) { var e = this._svgRoot,
  9039. i = this._svgRoot.getElementsByTagName("defs"); return 0 === i.length ? t ? ((i = e.insertBefore(r_("defs"), e.firstChild)).contains || (i.contains = function(t) { var e = i.children; if (!e) return !1; for (var n = e.length - 1; n >= 0; --n)
  9040. if (e[n] === t) return !0;
  9041. return !1 }), i) : null : i[0] }, resize: function(t, e) { var i = this._viewport;
  9042. i.style.display = "none"; var n = this._opts; if (null != t && (n.width = t), null != e && (n.height = e), t = this._getSize(0), e = this._getSize(1), i.style.display = "", this._width !== t || this._height !== e) { this._width = t, this._height = e; var o = i.style;
  9043. o.width = t + "px", o.height = e + "px"; var a = this._svgRoot;
  9044. a.setAttribute("width", t), a.setAttribute("height", e) } }, getWidth: function() { return this._width }, getHeight: function() { return this._height }, _getSize: function(t) { var e = this._opts,
  9045. i = ["width", "height"][t],
  9046. n = ["clientWidth", "clientHeight"][t],
  9047. o = ["paddingLeft", "paddingTop"][t],
  9048. a = ["paddingRight", "paddingBottom"][t]; if (null != e[i] && "auto" !== e[i]) return parseFloat(e[i]); var r = this.root,
  9049. s = document.defaultView.getComputedStyle(r); return (r[n] || I_(s[i]) || I_(r.style[i])) - (I_(s[o]) || 0) - (I_(s[a]) || 0) | 0 }, dispose: function() { this.root.innerHTML = "", this._svgRoot = this._viewport = this.storage = null }, clear: function() { this._viewport && this.root.removeChild(this._viewport) }, pathToDataUrl: function() { return this.refresh(), "data:image/svg+xml;charset=UTF-8," + this._svgRoot.outerHTML } }, d(["getLayer", "insertLayer", "eachLayer", "eachBuiltinLayer", "eachOtherLayer", "getLayers", "modLayer", "delLayer", "clearLayer", "toDataURL", "pathToImage"], function(t) { sR.prototype[t] = N_(t) }), Ti("svg", sR), t.version = "4.2.0", t.dependencies = wT, t.PRIORITY = IT, t.init = function(t, e, i) { var n = Ds(t); if (n) return n; var o = new rs(t, e, i); return o.id = "ec_" + WT++, GT[o.id] = o, Fi(t, ZT, o.id), Ts(o), o }, t.connect = function(t) { if (y(t)) { var e = t;
  9050. t = null, vT(e, function(e) { null != e.group && (t = e.group) }), t = t || "g_" + HT++, vT(e, function(e) { e.group = t }) } return FT[t] = !0, t }, t.disConnect = As, t.disconnect = UT, t.dispose = function(t) { "string" == typeof t ? t = GT[t] : t instanceof rs || (t = Ds(t)), t instanceof rs && !t.isDisposed() && t.dispose() }, t.getInstanceByDom = Ds, t.getInstanceById = function(t) { return GT[t] }, t.registerTheme = Cs, t.registerPreprocessor = Ls, t.registerProcessor = ks, t.registerPostUpdate = function(t) { RT.push(t) }, t.registerAction = Ps, t.registerCoordinateSystem = Ns, t.getCoordinateSystemDimensions = function(t) { var e = Ba.get(t); if (e) return e.getDimensionsInfo ? e.getDimensionsInfo() : e.dimensions.slice() }, t.registerLayout = Os, t.registerVisual = Es, t.registerLoading = zs, t.extendComponentModel = Bs, t.extendComponentView = Vs, t.extendSeriesModel = Gs, t.extendChartView = Fs, t.setCanvasCreator = function(t) { e("createCanvas", t) }, t.registerMap = function(t, e, i) { pT.registerMap(t, e, i) }, t.getMap = function(t) { var e = pT.retrieveMap(t); return e && e[0] && { geoJson: e[0].geoJSON, specialAreas: e[0].specialAreas } }, t.dataTool = XT, t.zrender = Pb, t.number = NM, t.format = FM, t.throttle = Cr, t.helper = BA, t.matrix = fw, t.vector = nw, t.color = Pw, t.parseGeoJSON = GA, t.parseGeoJson = ZA, t.util = UA, t.graphic = XA, t.List = eA, t.Model = Lo, t.Axis = HA, t.env = z_ });