echarts.min.js 522 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377
  1. ! function(t, e) {
  2. "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define
  3. .amd ? define(["exports"], e) : e(t.echarts = {})
  4. }(this, function(t) {
  5. "use strict";
  6. function e(t) {
  7. var e = {},
  8. n = {},
  9. i = t.match(/Firefox\/([\d.]+)/),
  10. r = t.match(/MSIE\s([\d.]+)/) || t.match(/Trident\/.+?rv:(([\d.]+))/),
  11. o = t.match(/Edge\/([\d.]+)/),
  12. a = /micromessenger/i.test(t);
  13. return i && (n.firefox = !0, n.version = i[1]), r && (n.ie = !0, n.version = r[1]), o && (n.edge = !0, n
  14. .version = o[1]), a && (n.weChat = !0), {
  15. browser: n,
  16. os: e,
  17. node: !1,
  18. canvasSupported: !!document.createElement("canvas").getContext,
  19. svgSupported: "undefined" != typeof SVGRect,
  20. touchEventsSupported: "ontouchstart" in window && !n.ie && !n.edge,
  21. pointerEventsSupported: "onpointerdown" in window && (n.edge || n.ie && n.version >= 11),
  22. domSupported: "undefined" != typeof document
  23. }
  24. }
  25. function n(t, e) {
  26. "createCanvas" === t && (Mp = null), bp[t] = e
  27. }
  28. function i(t) {
  29. if (null == t || "object" != typeof t) return t;
  30. var e = t,
  31. n = gp.call(t);
  32. if ("[object Array]" === n) {
  33. if (!B(t)) {
  34. e = [];
  35. for (var r = 0, o = t.length; o > r; r++) e[r] = i(t[r])
  36. }
  37. } else if (pp[n]) {
  38. if (!B(t)) {
  39. var a = t.constructor;
  40. if (t.constructor.from) e = a.from(t);
  41. else {
  42. e = new a(t.length);
  43. for (var r = 0, o = t.length; o > r; r++) e[r] = i(t[r])
  44. }
  45. }
  46. } else if (!fp[n] && !B(t) && !C(t)) {
  47. e = {};
  48. for (var s in t) t.hasOwnProperty(s) && (e[s] = i(t[s]))
  49. }
  50. return e
  51. }
  52. function r(t, e, n) {
  53. if (!S(e) || !S(t)) return n ? i(e) : t;
  54. for (var o in e)
  55. if (e.hasOwnProperty(o)) {
  56. var a = t[o],
  57. s = e[o];
  58. !S(s) || !S(a) || _(s) || _(a) || C(s) || C(a) || M(s) || M(a) || B(s) || B(a) ? !n && o in t || (t[
  59. o] = i(e[o], !0)) : r(a, s, n)
  60. } return t
  61. }
  62. function o(t, e) {
  63. for (var n = t[0], i = 1, o = t.length; o > i; i++) n = r(n, t[i], e);
  64. return n
  65. }
  66. function a(t, e) {
  67. for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]);
  68. return t
  69. }
  70. function s(t, e, n) {
  71. for (var i in e) e.hasOwnProperty(i) && (n ? null != e[i] : null == t[i]) && (t[i] = e[i]);
  72. return t
  73. }
  74. function l() {
  75. return Mp || (Mp = Sp().getContext("2d")), Mp
  76. }
  77. function u(t, e) {
  78. if (t) {
  79. if (t.indexOf) return t.indexOf(e);
  80. for (var n = 0, i = t.length; i > n; n++)
  81. if (t[n] === e) return n
  82. }
  83. return -1
  84. }
  85. function h(t, e) {
  86. function n() {}
  87. var i = t.prototype;
  88. n.prototype = e.prototype, t.prototype = new n;
  89. for (var r in i) i.hasOwnProperty(r) && (t.prototype[r] = i[r]);
  90. t.prototype.constructor = t, t.superClass = e
  91. }
  92. function c(t, e, n) {
  93. t = "prototype" in t ? t.prototype : t, e = "prototype" in e ? e.prototype : e, s(t, e, n)
  94. }
  95. function d(t) {
  96. return t ? "string" == typeof t ? !1 : "number" == typeof t.length : void 0
  97. }
  98. function f(t, e, n) {
  99. if (t && e)
  100. if (t.forEach && t.forEach === mp) t.forEach(e, n);
  101. else if (t.length === +t.length)
  102. for (var i = 0, r = t.length; r > i; i++) e.call(n, t[i], i, t);
  103. else
  104. for (var o in t) t.hasOwnProperty(o) && e.call(n, t[o], o, t)
  105. }
  106. function p(t, e, n) {
  107. if (t && e) {
  108. if (t.map && t.map === _p) return t.map(e, n);
  109. for (var i = [], r = 0, o = t.length; o > r; r++) i.push(e.call(n, t[r], r, t));
  110. return i
  111. }
  112. }
  113. function g(t, e, n, i) {
  114. if (t && e) {
  115. if (t.reduce && t.reduce === wp) return t.reduce(e, n, i);
  116. for (var r = 0, o = t.length; o > r; r++) n = e.call(i, n, t[r], r, t);
  117. return n
  118. }
  119. }
  120. function v(t, e, n) {
  121. if (t && e) {
  122. if (t.filter && t.filter === yp) return t.filter(e, n);
  123. for (var i = [], r = 0, o = t.length; o > r; r++) e.call(n, t[r], r, t) && i.push(t[r]);
  124. return i
  125. }
  126. }
  127. function m(t, e, n) {
  128. if (t && e)
  129. for (var i = 0, r = t.length; r > i; i++)
  130. if (e.call(n, t[i], i, t)) return t[i]
  131. }
  132. function y(t, e) {
  133. var n = xp.call(arguments, 2);
  134. return function() {
  135. return t.apply(e, n.concat(xp.call(arguments)))
  136. }
  137. }
  138. function x(t) {
  139. var e = xp.call(arguments, 1);
  140. return function() {
  141. return t.apply(this, e.concat(xp.call(arguments)))
  142. }
  143. }
  144. function _(t) {
  145. return "[object Array]" === gp.call(t)
  146. }
  147. function w(t) {
  148. return "function" == typeof t
  149. }
  150. function b(t) {
  151. return "[object String]" === gp.call(t)
  152. }
  153. function S(t) {
  154. var e = typeof t;
  155. return "function" === e || !!t && "object" === e
  156. }
  157. function M(t) {
  158. return !!fp[gp.call(t)]
  159. }
  160. function I(t) {
  161. return !!pp[gp.call(t)]
  162. }
  163. function C(t) {
  164. return "object" == typeof t && "number" == typeof t.nodeType && "object" == typeof t.ownerDocument
  165. }
  166. function T(t) {
  167. return t !== t
  168. }
  169. function A() {
  170. for (var t = 0, e = arguments.length; e > t; t++)
  171. if (null != arguments[t]) return arguments[t]
  172. }
  173. function D(t, e) {
  174. return null != t ? t : e
  175. }
  176. function k(t, e, n) {
  177. return null != t ? t : null != e ? e : n
  178. }
  179. function P() {
  180. return Function.call.apply(xp, arguments)
  181. }
  182. function O(t) {
  183. if ("number" == typeof t) return [t, t, t, t];
  184. var e = t.length;
  185. return 2 === e ? [t[0], t[1], t[0], t[1]] : 3 === e ? [t[0], t[1], t[2], t[1]] : t
  186. }
  187. function L(t, e) {
  188. if (!t) throw new Error(e)
  189. }
  190. function z(t) {
  191. return null == t ? null : "function" == typeof t.trim ? t.trim() : t.replace(
  192. /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "")
  193. }
  194. function E(t) {
  195. t[Ip] = !0
  196. }
  197. function B(t) {
  198. return t[Ip]
  199. }
  200. function R(t) {
  201. function e(t, e) {
  202. n ? i.set(t, e) : i.set(e, t)
  203. }
  204. var n = _(t);
  205. this.data = {};
  206. var i = this;
  207. t instanceof R ? t.each(e) : t && f(t, e)
  208. }
  209. function N(t) {
  210. return new R(t)
  211. }
  212. function F(t, e) {
  213. for (var n = new t.constructor(t.length + e.length), i = 0; i < t.length; i++) n[i] = t[i];
  214. var r = t.length;
  215. for (i = 0; i < e.length; i++) n[i + r] = e[i];
  216. return n
  217. }
  218. function V() {}
  219. function W(t, e) {
  220. var n = new Tp(2);
  221. return null == t && (t = 0), null == e && (e = 0), n[0] = t, n[1] = e, n
  222. }
  223. function H(t, e) {
  224. return t[0] = e[0], t[1] = e[1], t
  225. }
  226. function G(t) {
  227. var e = new Tp(2);
  228. return e[0] = t[0], e[1] = t[1], e
  229. }
  230. function Z(t, e, n) {
  231. return t[0] = e, t[1] = n, t
  232. }
  233. function X(t, e, n) {
  234. return t[0] = e[0] + n[0], t[1] = e[1] + n[1], t
  235. }
  236. function Y(t, e, n, i) {
  237. return t[0] = e[0] + n[0] * i, t[1] = e[1] + n[1] * i, t
  238. }
  239. function U(t, e, n) {
  240. return t[0] = e[0] - n[0], t[1] = e[1] - n[1], t
  241. }
  242. function j(t) {
  243. return Math.sqrt(q(t))
  244. }
  245. function q(t) {
  246. return t[0] * t[0] + t[1] * t[1]
  247. }
  248. function K(t, e, n) {
  249. return t[0] = e[0] * n[0], t[1] = e[1] * n[1], t
  250. }
  251. function $(t, e, n) {
  252. return t[0] = e[0] / n[0], t[1] = e[1] / n[1], t
  253. }
  254. function Q(t, e) {
  255. return t[0] * e[0] + t[1] * e[1]
  256. }
  257. function J(t, e, n) {
  258. return t[0] = e[0] * n, t[1] = e[1] * n, t
  259. }
  260. function te(t, e) {
  261. var n = j(e);
  262. return 0 === n ? (t[0] = 0, t[1] = 0) : (t[0] = e[0] / n, t[1] = e[1] / n), t
  263. }
  264. function ee(t, e) {
  265. return Math.sqrt((t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]))
  266. }
  267. function ne(t, e) {
  268. return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1])
  269. }
  270. function ie(t, e) {
  271. return t[0] = -e[0], t[1] = -e[1], t
  272. }
  273. function re(t, e, n, i) {
  274. return t[0] = e[0] + i * (n[0] - e[0]), t[1] = e[1] + i * (n[1] - e[1]), t
  275. }
  276. function oe(t, e, n) {
  277. var i = e[0],
  278. r = e[1];
  279. return t[0] = n[0] * i + n[2] * r + n[4], t[1] = n[1] * i + n[3] * r + n[5], t
  280. }
  281. function ae(t, e, n) {
  282. return t[0] = Math.min(e[0], n[0]), t[1] = Math.min(e[1], n[1]), t
  283. }
  284. function se(t, e, n) {
  285. return t[0] = Math.max(e[0], n[0]), t[1] = Math.max(e[1], n[1]), t
  286. }
  287. function le() {
  288. this.on("mousedown", this._dragStart, this), this.on("mousemove", this._drag, this), this.on("mouseup", this
  289. ._dragEnd, this)
  290. }
  291. function ue(t, e) {
  292. return {
  293. target: t,
  294. topTarget: e && e.topTarget
  295. }
  296. }
  297. function he(t, e) {
  298. var n = t._$eventProcessor;
  299. return null != e && n && n.normalizeQuery && (e = n.normalizeQuery(e)), e
  300. }
  301. function ce(t, e, n, i, r, o) {
  302. var a = t._$handlers;
  303. if ("function" == typeof n && (r = i, i = n, n = null), !i || !e) return t;
  304. n = he(t, n), a[e] || (a[e] = []);
  305. for (var s = 0; s < a[e].length; s++)
  306. if (a[e][s].h === i) return t;
  307. var l = {
  308. h: i,
  309. one: o,
  310. query: n,
  311. ctx: r || t,
  312. callAtLast: i.zrEventfulCallAtLast
  313. },
  314. u = a[e].length - 1,
  315. h = a[e][u];
  316. return h && h.callAtLast ? a[e].splice(u, 0, l) : a[e].push(l), t
  317. }
  318. function de(t, e, n, i, r, o) {
  319. var a = i + "-" + r,
  320. s = t.length;
  321. if (o.hasOwnProperty(a)) return o[a];
  322. if (1 === e) {
  323. var l = Math.round(Math.log((1 << s) - 1 & ~r) / Ep);
  324. return t[n][l]
  325. }
  326. for (var u = i | 1 << n, h = n + 1; i & 1 << h;) h++;
  327. for (var c = 0, d = 0, f = 0; s > d; d++) {
  328. var p = 1 << d;
  329. p & r || (c += (f % 2 ? -1 : 1) * t[n][d] * de(t, e - 1, h, u, r | p, o), f++)
  330. }
  331. return o[a] = c, c
  332. }
  333. function fe(t, e) {
  334. var n = [
  335. [t[0], t[1], 1, 0, 0, 0, -e[0] * t[0], -e[0] * t[1]],
  336. [0, 0, 0, t[0], t[1], 1, -e[1] * t[0], -e[1] * t[1]],
  337. [t[2], t[3], 1, 0, 0, 0, -e[2] * t[2], -e[2] * t[3]],
  338. [0, 0, 0, t[2], t[3], 1, -e[3] * t[2], -e[3] * t[3]],
  339. [t[4], t[5], 1, 0, 0, 0, -e[4] * t[4], -e[4] * t[5]],
  340. [0, 0, 0, t[4], t[5], 1, -e[5] * t[4], -e[5] * t[5]],
  341. [t[6], t[7], 1, 0, 0, 0, -e[6] * t[6], -e[6] * t[7]],
  342. [0, 0, 0, t[6], t[7], 1, -e[7] * t[6], -e[7] * t[7]]
  343. ],
  344. i = {},
  345. r = de(n, 8, 0, 0, 0, i);
  346. if (0 !== r) {
  347. for (var o = [], a = 0; 8 > a; a++)
  348. for (var s = 0; 8 > s; s++) null == o[s] && (o[s] = 0), o[s] += ((a + s) % 2 ? -1 : 1) * de(n, 7,
  349. 0 === a ? 1 : 0, 1 << a, 1 << s, i) / r * e[a];
  350. return function(t, e, n) {
  351. var i = e * o[6] + n * o[7] + 1;
  352. t[0] = (e * o[0] + n * o[1] + o[2]) / i, t[1] = (e * o[3] + n * o[4] + o[5]) / i
  353. }
  354. }
  355. }
  356. function pe(t, e, n, i, r) {
  357. return ge(Rp, e, i, r, !0) && ge(t, n, Rp[0], Rp[1])
  358. }
  359. function ge(t, e, n, i, r) {
  360. if (e.getBoundingClientRect && dp.domSupported && !ye(e)) {
  361. var o = e[Bp] || (e[Bp] = {}),
  362. a = ve(e, o),
  363. s = me(a, o, r);
  364. if (s) return s(t, n, i), !0
  365. }
  366. return !1
  367. }
  368. function ve(t, e) {
  369. var n = e.markers;
  370. if (n) return n;
  371. n = e.markers = [];
  372. for (var i = ["left", "right"], r = ["top", "bottom"], o = 0; 4 > o; o++) {
  373. var a = document.createElement("div"),
  374. s = a.style,
  375. l = o % 2,
  376. u = (o >> 1) % 2;
  377. s.cssText = ["position: absolute", "visibility: hidden", "padding: 0", "margin: 0", "border-width: 0",
  378. "user-select: none", "width:0", "height:0", i[l] + ":0", r[u] + ":0", i[1 - l] + ":auto", r[1 -
  379. u] + ":auto", ""
  380. ].join("!important;"), t.appendChild(a), n.push(a)
  381. }
  382. return n
  383. }
  384. function me(t, e, n) {
  385. for (var i = n ? "invTrans" : "trans", r = e[i], o = e.srcCoords, a = !0, s = [], l = [], u = 0; 4 >
  386. u; u++) {
  387. var h = t[u].getBoundingClientRect(),
  388. c = 2 * u,
  389. d = h.left,
  390. f = h.top;
  391. s.push(d, f), a = a && o && d === o[c] && f === o[c + 1], l.push(t[u].offsetLeft, t[u].offsetTop)
  392. }
  393. return a && r ? r : (e.srcCoords = s, e[i] = n ? fe(l, s) : fe(s, l))
  394. }
  395. function ye(t) {
  396. return "CANVAS" === t.nodeName.toUpperCase()
  397. }
  398. function xe(t, e, n, i) {
  399. return n = n || {}, i || !dp.canvasSupported ? _e(t, e, n) : dp.browser.firefox && null != e.layerX && e
  400. .layerX !== e.offsetX ? (n.zrX = e.layerX, n.zrY = e.layerY) : null != e.offsetX ? (n.zrX = e.offsetX, n
  401. .zrY = e.offsetY) : _e(t, e, n), n
  402. }
  403. function _e(t, e, n) {
  404. if (dp.domSupported && t.getBoundingClientRect) {
  405. var i = e.clientX,
  406. r = e.clientY;
  407. if (ye(t)) {
  408. var o = t.getBoundingClientRect();
  409. return n.zrX = i - o.left, void(n.zrY = r - o.top)
  410. }
  411. if (ge(Vp, t, i, r)) return n.zrX = Vp[0], void(n.zrY = Vp[1])
  412. }
  413. n.zrX = n.zrY = 0
  414. }
  415. function we(t) {
  416. return t || window.event
  417. }
  418. function be(t, e, n) {
  419. if (e = we(e), null != e.zrX) return e;
  420. var i = e.type,
  421. r = i && i.indexOf("touch") >= 0;
  422. if (r) {
  423. var o = "touchend" !== i ? e.targetTouches[0] : e.changedTouches[0];
  424. o && xe(t, o, e, n)
  425. } else xe(t, e, e, n), e.zrDelta = e.wheelDelta ? e.wheelDelta / 120 : -(e.detail || 0) / 3;
  426. var a = e.button;
  427. return null == e.which && void 0 !== a && Fp.test(e.type) && (e.which = 1 & a ? 1 : 2 & a ? 3 : 4 & a ? 2 :
  428. 0), e
  429. }
  430. function Se(t, e, n, i) {
  431. Np ? t.addEventListener(e, n, i) : t.attachEvent("on" + e, n)
  432. }
  433. function Me(t, e, n, i) {
  434. Np ? t.removeEventListener(e, n, i) : t.detachEvent("on" + e, n)
  435. }
  436. function Ie(t) {
  437. return 2 === t.which || 3 === t.which
  438. }
  439. function Ce(t) {
  440. var e = t[1][0] - t[0][0],
  441. n = t[1][1] - t[0][1];
  442. return Math.sqrt(e * e + n * n)
  443. }
  444. function Te(t) {
  445. return [(t[0][0] + t[1][0]) / 2, (t[0][1] + t[1][1]) / 2]
  446. }
  447. function Ae(t, e, n) {
  448. return {
  449. type: t,
  450. event: n,
  451. target: e.target,
  452. topTarget: e.topTarget,
  453. cancelBubble: !1,
  454. offsetX: n.zrX,
  455. offsetY: n.zrY,
  456. gestureEvent: n.gestureEvent,
  457. pinchX: n.pinchX,
  458. pinchY: n.pinchY,
  459. pinchScale: n.pinchScale,
  460. wheelDelta: n.zrDelta,
  461. zrByTouch: n.zrByTouch,
  462. which: n.which,
  463. stop: De
  464. }
  465. }
  466. function De() {
  467. Wp(this.event)
  468. }
  469. function ke() {}
  470. function Pe(t, e, n) {
  471. if (t[t.rectHover ? "rectContain" : "contain"](e, n)) {
  472. for (var i, r = t; r;) {
  473. if (r.clipPath && !r.clipPath.contain(e, n)) return !1;
  474. r.silent && (i = !0), r = r.parent
  475. }
  476. return i ? Zp : !0
  477. }
  478. return !1
  479. }
  480. function Oe(t, e, n) {
  481. var i = t.painter;
  482. return 0 > e || e > i.getWidth() || 0 > n || n > i.getHeight()
  483. }
  484. function Le() {
  485. var t = new Up(6);
  486. return ze(t), t
  487. }
  488. function ze(t) {
  489. return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t
  490. }
  491. function Ee(t, e) {
  492. 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
  493. }
  494. function Be(t, e, n) {
  495. var i = e[0] * n[0] + e[2] * n[1],
  496. r = e[1] * n[0] + e[3] * n[1],
  497. o = e[0] * n[2] + e[2] * n[3],
  498. a = e[1] * n[2] + e[3] * n[3],
  499. s = e[0] * n[4] + e[2] * n[5] + e[4],
  500. l = e[1] * n[4] + e[3] * n[5] + e[5];
  501. return t[0] = i, t[1] = r, t[2] = o, t[3] = a, t[4] = s, t[5] = l, t
  502. }
  503. function Re(t, e, n) {
  504. return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4] + n[0], t[5] = e[5] + n[1], t
  505. }
  506. function Ne(t, e, n) {
  507. var i = e[0],
  508. r = e[2],
  509. o = e[4],
  510. a = e[1],
  511. s = e[3],
  512. l = e[5],
  513. u = Math.sin(n),
  514. h = Math.cos(n);
  515. return t[0] = i * h + a * u, t[1] = -i * u + a * h, t[2] = r * h + s * u, t[3] = -r * u + h * s, t[4] = h *
  516. o + u * l, t[5] = h * l - u * o, t
  517. }
  518. function Fe(t, e, n) {
  519. var i = n[0],
  520. r = n[1];
  521. return t[0] = e[0] * i, t[1] = e[1] * r, t[2] = e[2] * i, t[3] = e[3] * r, t[4] = e[4] * i, t[5] = e[5] * r,
  522. t
  523. }
  524. function Ve(t, e) {
  525. var n = e[0],
  526. i = e[2],
  527. r = e[4],
  528. o = e[1],
  529. a = e[3],
  530. s = e[5],
  531. l = n * a - o * i;
  532. return l ? (l = 1 / l, t[0] = a * l, t[1] = -o * l, t[2] = -i * l, t[3] = n * l, t[4] = (i * s - a * r) * l,
  533. t[5] = (o * r - n * s) * l, t) : null
  534. }
  535. function We(t) {
  536. var e = Le();
  537. return Ee(e, t), e
  538. }
  539. function He(t) {
  540. return t > Kp || -Kp > t
  541. }
  542. function Ge(t) {
  543. this._target = t.target, this._life = t.life || 1e3, this._delay = t.delay || 0, this._initialized = !1,
  544. this.loop = null == t.loop ? !1 : t.loop, this.gap = t.gap || 0, this.easing = t.easing || "Linear",
  545. this.onframe = t.onframe, this.ondestroy = t.ondestroy, this.onrestart = t.onrestart, this._pausedTime =
  546. 0, this._paused = !1
  547. }
  548. function Ze(t) {
  549. return t = Math.round(t), 0 > t ? 0 : t > 255 ? 255 : t
  550. }
  551. function Xe(t) {
  552. return t = Math.round(t), 0 > t ? 0 : t > 360 ? 360 : t
  553. }
  554. function Ye(t) {
  555. return 0 > t ? 0 : t > 1 ? 1 : t
  556. }
  557. function Ue(t) {
  558. return Ze(t.length && "%" === t.charAt(t.length - 1) ? parseFloat(t) / 100 * 255 : parseInt(t, 10))
  559. }
  560. function je(t) {
  561. return Ye(t.length && "%" === t.charAt(t.length - 1) ? parseFloat(t) / 100 : parseFloat(t))
  562. }
  563. function qe(t, e, n) {
  564. return 0 > n ? n += 1 : n > 1 && (n -= 1), 1 > 6 * n ? t + (e - t) * n * 6 : 1 > 2 * n ? e : 2 > 3 * n ? t +
  565. (e - t) * (2 / 3 - n) * 6 : t
  566. }
  567. function Ke(t, e, n) {
  568. return t + (e - t) * n
  569. }
  570. function $e(t, e, n, i, r) {
  571. return t[0] = e, t[1] = n, t[2] = i, t[3] = r, t
  572. }
  573. function Qe(t, e) {
  574. return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t
  575. }
  576. function Je(t, e) {
  577. hg && Qe(hg, e), hg = ug.put(t, hg || e.slice())
  578. }
  579. function tn(t, e) {
  580. if (t) {
  581. e = e || [];
  582. var n = ug.get(t);
  583. if (n) return Qe(e, n);
  584. t += "";
  585. var i = t.replace(/ /g, "").toLowerCase();
  586. if (i in lg) return Qe(e, lg[i]), Je(t, e), e;
  587. if ("#" !== i.charAt(0)) {
  588. var r = i.indexOf("("),
  589. o = i.indexOf(")");
  590. if (-1 !== r && o + 1 === i.length) {
  591. var a = i.substr(0, r),
  592. s = i.substr(r + 1, o - (r + 1)).split(","),
  593. l = 1;
  594. switch (a) {
  595. case "rgba":
  596. if (4 !== s.length) return void $e(e, 0, 0, 0, 1);
  597. l = je(s.pop());
  598. case "rgb":
  599. return 3 !== s.length ? void $e(e, 0, 0, 0, 1) : ($e(e, Ue(s[0]), Ue(s[1]), Ue(s[2]),
  600. l), Je(t, e), e);
  601. case "hsla":
  602. return 4 !== s.length ? void $e(e, 0, 0, 0, 1) : (s[3] = je(s[3]), en(s, e), Je(t, e),
  603. e);
  604. case "hsl":
  605. return 3 !== s.length ? void $e(e, 0, 0, 0, 1) : (en(s, e), Je(t, e), e);
  606. default:
  607. return
  608. }
  609. }
  610. $e(e, 0, 0, 0, 1)
  611. } else {
  612. if (4 === i.length) {
  613. var u = parseInt(i.substr(1), 16);
  614. return u >= 0 && 4095 >= u ? ($e(e, (3840 & u) >> 4 | (3840 & u) >> 8, 240 & u | (240 & u) >> 4,
  615. 15 & u | (15 & u) << 4, 1), Je(t, e), e) : void $e(e, 0, 0, 0, 1)
  616. }
  617. if (7 === i.length) {
  618. var u = parseInt(i.substr(1), 16);
  619. return u >= 0 && 16777215 >= u ? ($e(e, (16711680 & u) >> 16, (65280 & u) >> 8, 255 & u, 1), Je(
  620. t, e), e) : void $e(e, 0, 0, 0, 1)
  621. }
  622. }
  623. }
  624. }
  625. function en(t, e) {
  626. var n = (parseFloat(t[0]) % 360 + 360) % 360 / 360,
  627. i = je(t[1]),
  628. r = je(t[2]),
  629. o = .5 >= r ? r * (i + 1) : r + i - r * i,
  630. a = 2 * r - o;
  631. return e = e || [], $e(e, Ze(255 * qe(a, o, n + 1 / 3)), Ze(255 * qe(a, o, n)), Ze(255 * qe(a, o, n - 1 /
  632. 3)), 1), 4 === t.length && (e[3] = t[3]), e
  633. }
  634. function nn(t) {
  635. if (t) {
  636. var e, n, i = t[0] / 255,
  637. r = t[1] / 255,
  638. o = t[2] / 255,
  639. a = Math.min(i, r, o),
  640. s = Math.max(i, r, o),
  641. l = s - a,
  642. u = (s + a) / 2;
  643. if (0 === l) e = 0, n = 0;
  644. else {
  645. n = .5 > u ? l / (s + a) : l / (2 - s - a);
  646. var h = ((s - i) / 6 + l / 2) / l,
  647. c = ((s - r) / 6 + l / 2) / l,
  648. d = ((s - o) / 6 + l / 2) / l;
  649. i === s ? e = d - c : r === s ? e = 1 / 3 + h - d : o === s && (e = 2 / 3 + c - h), 0 > e && (e +=
  650. 1), e > 1 && (e -= 1)
  651. }
  652. var f = [360 * e, n, u];
  653. return null != t[3] && f.push(t[3]), f
  654. }
  655. }
  656. function rn(t, e) {
  657. var n = tn(t);
  658. if (n) {
  659. for (var i = 0; 3 > i; i++) n[i] = 0 > e ? n[i] * (1 - e) | 0 : (255 - n[i]) * e + n[i] | 0, n[i] >
  660. 255 ? n[i] = 255 : t[i] < 0 && (n[i] = 0);
  661. return hn(n, 4 === n.length ? "rgba" : "rgb")
  662. }
  663. }
  664. function on(t) {
  665. var e = tn(t);
  666. return e ? ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2]).toString(16).slice(1) : void 0
  667. }
  668. function an(t, e, n) {
  669. if (e && e.length && t >= 0 && 1 >= t) {
  670. n = n || [];
  671. var i = t * (e.length - 1),
  672. r = Math.floor(i),
  673. o = Math.ceil(i),
  674. a = e[r],
  675. s = e[o],
  676. l = i - r;
  677. return n[0] = Ze(Ke(a[0], s[0], l)), n[1] = Ze(Ke(a[1], s[1], l)), n[2] = Ze(Ke(a[2], s[2], l)), n[3] =
  678. Ye(Ke(a[3], s[3], l)), n
  679. }
  680. }
  681. function sn(t, e, n) {
  682. if (e && e.length && t >= 0 && 1 >= t) {
  683. var i = t * (e.length - 1),
  684. r = Math.floor(i),
  685. o = Math.ceil(i),
  686. a = tn(e[r]),
  687. s = tn(e[o]),
  688. l = i - r,
  689. u = hn([Ze(Ke(a[0], s[0], l)), Ze(Ke(a[1], s[1], l)), Ze(Ke(a[2], s[2], l)), Ye(Ke(a[3], s[3], l))],
  690. "rgba");
  691. return n ? {
  692. color: u,
  693. leftIndex: r,
  694. rightIndex: o,
  695. value: i
  696. } : u
  697. }
  698. }
  699. function ln(t, e, n, i) {
  700. return t = tn(t), t ? (t = nn(t), null != e && (t[0] = Xe(e)), null != n && (t[1] = je(n)), null != i && (t[
  701. 2] = je(i)), hn(en(t), "rgba")) : void 0
  702. }
  703. function un(t, e) {
  704. return t = tn(t), t && null != e ? (t[3] = Ye(e), hn(t, "rgba")) : void 0
  705. }
  706. function hn(t, e) {
  707. if (t && t.length) {
  708. var n = t[0] + "," + t[1] + "," + t[2];
  709. return ("rgba" === e || "hsva" === e || "hsla" === e) && (n += "," + t[3]), e + "(" + n + ")"
  710. }
  711. }
  712. function cn(t, e) {
  713. return t[e]
  714. }
  715. function dn(t, e, n) {
  716. t[e] = n
  717. }
  718. function fn(t, e, n) {
  719. return (e - t) * n + t
  720. }
  721. function pn(t, e, n) {
  722. return n > .5 ? e : t
  723. }
  724. function gn(t, e, n, i, r) {
  725. var o = t.length;
  726. if (1 === r)
  727. for (var a = 0; o > a; a++) i[a] = fn(t[a], e[a], n);
  728. else
  729. for (var s = o && t[0].length, a = 0; o > a; a++)
  730. for (var l = 0; s > l; l++) i[a][l] = fn(t[a][l], e[a][l], n)
  731. }
  732. function vn(t, e, n) {
  733. var i = t.length,
  734. r = e.length;
  735. if (i !== r) {
  736. var o = i > r;
  737. if (o) t.length = r;
  738. else
  739. for (var a = i; r > a; a++) t.push(1 === n ? e[a] : pg.call(e[a]))
  740. }
  741. for (var s = t[0] && t[0].length, a = 0; a < t.length; a++)
  742. if (1 === n) isNaN(t[a]) && (t[a] = e[a]);
  743. else
  744. for (var l = 0; s > l; l++) isNaN(t[a][l]) && (t[a][l] = e[a][l])
  745. }
  746. function mn(t, e, n) {
  747. if (t === e) return !0;
  748. var i = t.length;
  749. if (i !== e.length) return !1;
  750. if (1 === n) {
  751. for (var r = 0; i > r; r++)
  752. if (t[r] !== e[r]) return !1
  753. } else
  754. for (var o = t[0].length, r = 0; i > r; r++)
  755. for (var a = 0; o > a; a++)
  756. if (t[r][a] !== e[r][a]) return !1;
  757. return !0
  758. }
  759. function yn(t, e, n, i, r, o, a, s, l) {
  760. var u = t.length;
  761. if (1 === l)
  762. for (var h = 0; u > h; h++) s[h] = xn(t[h], e[h], n[h], i[h], r, o, a);
  763. else
  764. for (var c = t[0].length, h = 0; u > h; h++)
  765. for (var d = 0; c > d; d++) s[h][d] = xn(t[h][d], e[h][d], n[h][d], i[h][d], r, o, a)
  766. }
  767. function xn(t, e, n, i, r, o, a) {
  768. var s = .5 * (n - t),
  769. l = .5 * (i - e);
  770. return (2 * (e - n) + s + l) * a + (-3 * (e - n) - 2 * s - l) * o + s * r + e
  771. }
  772. function _n(t) {
  773. if (d(t)) {
  774. var e = t.length;
  775. if (d(t[0])) {
  776. for (var n = [], i = 0; e > i; i++) n.push(pg.call(t[i]));
  777. return n
  778. }
  779. return pg.call(t)
  780. }
  781. return t
  782. }
  783. function wn(t) {
  784. return t[0] = Math.floor(t[0]), t[1] = Math.floor(t[1]), t[2] = Math.floor(t[2]), "rgba(" + t.join(",") +
  785. ")"
  786. }
  787. function bn(t) {
  788. var e = t[t.length - 1].value;
  789. return d(e && e[0]) ? 2 : 1
  790. }
  791. function Sn(t, e, n, i, r, o) {
  792. var a = t._getter,
  793. s = t._setter,
  794. l = "spline" === e,
  795. u = i.length;
  796. if (u) {
  797. var h, c = i[0].value,
  798. f = d(c),
  799. p = !1,
  800. g = !1,
  801. v = f ? bn(i) : 0;
  802. i.sort(function(t, e) {
  803. return t.time - e.time
  804. }), h = i[u - 1].time;
  805. for (var m = [], y = [], x = i[0].value, _ = !0, w = 0; u > w; w++) {
  806. m.push(i[w].time / h);
  807. var b = i[w].value;
  808. if (f && mn(b, x, v) || !f && b === x || (_ = !1), x = b, "string" == typeof b) {
  809. var S = tn(b);
  810. S ? (b = S, p = !0) : g = !0
  811. }
  812. y.push(b)
  813. }
  814. if (o || !_) {
  815. for (var M = y[u - 1], w = 0; u - 1 > w; w++) f ? vn(y[w], M, v) : !isNaN(y[w]) || isNaN(M) || g ||
  816. p || (y[w] = M);
  817. f && vn(a(t._target, r), M, v);
  818. var I, C, T, A, D, k, P = 0,
  819. O = 0;
  820. if (p) var L = [0, 0, 0, 0];
  821. var z = function(t, e) {
  822. var n;
  823. if (0 > e) n = 0;
  824. else if (O > e) {
  825. for (I = Math.min(P + 1, u - 1), n = I; n >= 0 && !(m[n] <= e); n--);
  826. n = Math.min(n, u - 2)
  827. } else {
  828. for (n = P; u > n && !(m[n] > e); n++);
  829. n = Math.min(n - 1, u - 2)
  830. }
  831. P = n, O = e;
  832. var i = m[n + 1] - m[n];
  833. if (0 !== i)
  834. if (C = (e - m[n]) / i, l)
  835. if (A = y[n], T = y[0 === n ? n : n - 1], D = y[n > u - 2 ? u - 1 : n + 1], k = y[
  836. n > u - 3 ? u - 1 : n + 2], f) yn(T, A, D, k, C, C * C, C * C * C, a(t, r),
  837. v);
  838. else {
  839. var o;
  840. if (p) o = yn(T, A, D, k, C, C * C, C * C * C, L, 1), o = wn(L);
  841. else {
  842. if (g) return pn(A, D, C);
  843. o = xn(T, A, D, k, C, C * C, C * C * C)
  844. }
  845. s(t, r, o)
  846. }
  847. else if (f) gn(y[n], y[n + 1], C, a(t, r), v);
  848. else {
  849. var o;
  850. if (p) gn(y[n], y[n + 1], C, L, 1), o = wn(L);
  851. else {
  852. if (g) return pn(y[n], y[n + 1], C);
  853. o = fn(y[n], y[n + 1], C)
  854. }
  855. s(t, r, o)
  856. }
  857. },
  858. E = new Ge({
  859. target: t._target,
  860. life: h,
  861. loop: t._loop,
  862. delay: t._delay,
  863. onframe: z,
  864. ondestroy: n
  865. });
  866. return e && "spline" !== e && (E.easing = e), E
  867. }
  868. }
  869. }
  870. function Mn(t, e, n, i, r, o, a, s) {
  871. function l() {
  872. h--, h || o && o()
  873. }
  874. b(i) ? (o = r, r = i, i = 0) : w(r) ? (o = r, r = "linear", i = 0) : w(i) ? (o = i, i = 0) : w(n) ? (o = n,
  875. n = 500) : n || (n = 500), t.stopAnimation(), In(t, "", t, e, n, i, s);
  876. var u = t.animators.slice(),
  877. h = u.length;
  878. h || o && o();
  879. for (var c = 0; c < u.length; c++) u[c].done(l).start(r, a)
  880. }
  881. function In(t, e, n, i, r, o, a) {
  882. var s = {},
  883. l = 0;
  884. for (var u in i) i.hasOwnProperty(u) && (null != n[u] ? S(i[u]) && !d(i[u]) ? In(t, e ? e + "." + u : u, n[
  885. u], i[u], r, o, a) : (a ? (s[u] = n[u], Cn(t, e, u, i[u])) : s[u] = i[u], l++) : null == i[u] ||
  886. a || Cn(t, e, u, i[u]));
  887. l > 0 && t.animate(e, !1).when(null == r ? 500 : r, s).delay(o || 0)
  888. }
  889. function Cn(t, e, n, i) {
  890. if (e) {
  891. var r = {};
  892. r[e] = {}, r[e][n] = i, t.attr(r)
  893. } else t.attr(n, i)
  894. }
  895. function Tn(t, e, n, i) {
  896. 0 > n && (t += n, n = -n), 0 > i && (e += i, i = -i), this.x = t, this.y = e, this.width = n, this.height =
  897. i
  898. }
  899. function An(t) {
  900. for (var e = 0; t >= Tg;) e |= 1 & t, t >>= 1;
  901. return t + e
  902. }
  903. function Dn(t, e, n, i) {
  904. var r = e + 1;
  905. if (r === n) return 1;
  906. if (i(t[r++], t[e]) < 0) {
  907. for (; n > r && i(t[r], t[r - 1]) < 0;) r++;
  908. kn(t, e, r)
  909. } else
  910. for (; n > r && i(t[r], t[r - 1]) >= 0;) r++;
  911. return r - e
  912. }
  913. function kn(t, e, n) {
  914. for (n--; n > e;) {
  915. var i = t[e];
  916. t[e++] = t[n], t[n--] = i
  917. }
  918. }
  919. function Pn(t, e, n, i, r) {
  920. for (i === e && i++; n > i; i++) {
  921. for (var o, a = t[i], s = e, l = i; l > s;) o = s + l >>> 1, r(a, t[o]) < 0 ? l = o : s = o + 1;
  922. var u = i - s;
  923. switch (u) {
  924. case 3:
  925. t[s + 3] = t[s + 2];
  926. case 2:
  927. t[s + 2] = t[s + 1];
  928. case 1:
  929. t[s + 1] = t[s];
  930. break;
  931. default:
  932. for (; u > 0;) t[s + u] = t[s + u - 1], u--
  933. }
  934. t[s] = a
  935. }
  936. }
  937. function On(t, e, n, i, r, o) {
  938. var a = 0,
  939. s = 0,
  940. l = 1;
  941. if (o(t, e[n + r]) > 0) {
  942. for (s = i - r; s > l && o(t, e[n + r + l]) > 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s);
  943. l > s && (l = s), a += r, l += r
  944. } else {
  945. for (s = r + 1; s > l && o(t, e[n + r - l]) <= 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s);
  946. l > s && (l = s);
  947. var u = a;
  948. a = r - l, l = r - u
  949. }
  950. for (a++; l > a;) {
  951. var h = a + (l - a >>> 1);
  952. o(t, e[n + h]) > 0 ? a = h + 1 : l = h
  953. }
  954. return l
  955. }
  956. function Ln(t, e, n, i, r, o) {
  957. var a = 0,
  958. s = 0,
  959. l = 1;
  960. if (o(t, e[n + r]) < 0) {
  961. for (s = r + 1; s > l && o(t, e[n + r - l]) < 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s);
  962. l > s && (l = s);
  963. var u = a;
  964. a = r - l, l = r - u
  965. } else {
  966. for (s = i - r; s > l && o(t, e[n + r + l]) >= 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s);
  967. l > s && (l = s), a += r, l += r
  968. }
  969. for (a++; l > a;) {
  970. var h = a + (l - a >>> 1);
  971. o(t, e[n + h]) < 0 ? l = h : a = h + 1
  972. }
  973. return l
  974. }
  975. function zn(t, e) {
  976. function n(t, e) {
  977. l[c] = t, u[c] = e, c += 1
  978. }
  979. function i() {
  980. for (; c > 1;) {
  981. var t = c - 2;
  982. if (t >= 1 && u[t - 1] <= u[t] + u[t + 1] || t >= 2 && u[t - 2] <= u[t] + u[t - 1]) u[t - 1] < u[t +
  983. 1] && t--;
  984. else if (u[t] > u[t + 1]) break;
  985. o(t)
  986. }
  987. }
  988. function r() {
  989. for (; c > 1;) {
  990. var t = c - 2;
  991. t > 0 && u[t - 1] < u[t + 1] && t--, o(t)
  992. }
  993. }
  994. function o(n) {
  995. var i = l[n],
  996. r = u[n],
  997. o = l[n + 1],
  998. h = u[n + 1];
  999. u[n] = r + h, n === c - 3 && (l[n + 1] = l[n + 2], u[n + 1] = u[n + 2]), c--;
  1000. var d = Ln(t[o], t, i, r, 0, e);
  1001. i += d, r -= d, 0 !== r && (h = On(t[i + r - 1], t, o, h, h - 1, e), 0 !== h && (h >= r ? a(i, r, o,
  1002. h) : s(i, r, o, h)))
  1003. }
  1004. function a(n, i, r, o) {
  1005. var a = 0;
  1006. for (a = 0; i > a; a++) d[a] = t[n + a];
  1007. var s = 0,
  1008. l = r,
  1009. u = n;
  1010. if (t[u++] = t[l++], 0 !== --o) {
  1011. if (1 === i) {
  1012. for (a = 0; o > a; a++) t[u + a] = t[l + a];
  1013. return void(t[u + o] = d[s])
  1014. }
  1015. for (var c, f, p, g = h;;) {
  1016. c = 0, f = 0, p = !1;
  1017. do
  1018. if (e(t[l], d[s]) < 0) {
  1019. if (t[u++] = t[l++], f++, c = 0, 0 === --o) {
  1020. p = !0;
  1021. break
  1022. }
  1023. } else if (t[u++] = d[s++], c++, f = 0, 1 === --i) {
  1024. p = !0;
  1025. break
  1026. } while (g > (c | f));
  1027. if (p) break;
  1028. do {
  1029. if (c = Ln(t[l], d, s, i, 0, e), 0 !== c) {
  1030. for (a = 0; c > a; a++) t[u + a] = d[s + a];
  1031. if (u += c, s += c, i -= c, 1 >= i) {
  1032. p = !0;
  1033. break
  1034. }
  1035. }
  1036. if (t[u++] = t[l++], 0 === --o) {
  1037. p = !0;
  1038. break
  1039. }
  1040. if (f = On(d[s], t, l, o, 0, e), 0 !== f) {
  1041. for (a = 0; f > a; a++) t[u + a] = t[l + a];
  1042. if (u += f, l += f, o -= f, 0 === o) {
  1043. p = !0;
  1044. break
  1045. }
  1046. }
  1047. if (t[u++] = d[s++], 1 === --i) {
  1048. p = !0;
  1049. break
  1050. }
  1051. g--
  1052. } while (c >= Ag || f >= Ag);
  1053. if (p) break;
  1054. 0 > g && (g = 0), g += 2
  1055. }
  1056. if (h = g, 1 > h && (h = 1), 1 === i) {
  1057. for (a = 0; o > a; a++) t[u + a] = t[l + a];
  1058. t[u + o] = d[s]
  1059. } else {
  1060. if (0 === i) throw new Error;
  1061. for (a = 0; i > a; a++) t[u + a] = d[s + a]
  1062. }
  1063. } else
  1064. for (a = 0; i > a; a++) t[u + a] = d[s + a]
  1065. }
  1066. function s(n, i, r, o) {
  1067. var a = 0;
  1068. for (a = 0; o > a; a++) d[a] = t[r + a];
  1069. var s = n + i - 1,
  1070. l = o - 1,
  1071. u = r + o - 1,
  1072. c = 0,
  1073. f = 0;
  1074. if (t[u--] = t[s--], 0 !== --i) {
  1075. if (1 === o) {
  1076. for (u -= i, s -= i, f = u + 1, c = s + 1, a = i - 1; a >= 0; a--) t[f + a] = t[c + a];
  1077. return void(t[u] = d[l])
  1078. }
  1079. for (var p = h;;) {
  1080. var g = 0,
  1081. v = 0,
  1082. m = !1;
  1083. do
  1084. if (e(d[l], t[s]) < 0) {
  1085. if (t[u--] = t[s--], g++, v = 0, 0 === --i) {
  1086. m = !0;
  1087. break
  1088. }
  1089. } else if (t[u--] = d[l--], v++, g = 0, 1 === --o) {
  1090. m = !0;
  1091. break
  1092. } while (p > (g | v));
  1093. if (m) break;
  1094. do {
  1095. if (g = i - Ln(d[l], t, n, i, i - 1, e), 0 !== g) {
  1096. for (u -= g, s -= g, i -= g, f = u + 1, c = s + 1, a = g - 1; a >= 0; a--) t[f + a] = t[
  1097. c + a];
  1098. if (0 === i) {
  1099. m = !0;
  1100. break
  1101. }
  1102. }
  1103. if (t[u--] = d[l--], 1 === --o) {
  1104. m = !0;
  1105. break
  1106. }
  1107. if (v = o - On(t[s], d, 0, o, o - 1, e), 0 !== v) {
  1108. for (u -= v, l -= v, o -= v, f = u + 1, c = l + 1, a = 0; v > a; a++) t[f + a] = d[c +
  1109. a];
  1110. if (1 >= o) {
  1111. m = !0;
  1112. break
  1113. }
  1114. }
  1115. if (t[u--] = t[s--], 0 === --i) {
  1116. m = !0;
  1117. break
  1118. }
  1119. p--
  1120. } while (g >= Ag || v >= Ag);
  1121. if (m) break;
  1122. 0 > p && (p = 0), p += 2
  1123. }
  1124. if (h = p, 1 > h && (h = 1), 1 === o) {
  1125. for (u -= i, s -= i, f = u + 1, c = s + 1, a = i - 1; a >= 0; a--) t[f + a] = t[c + a];
  1126. t[u] = d[l]
  1127. } else {
  1128. if (0 === o) throw new Error;
  1129. for (c = u - (o - 1), a = 0; o > a; a++) t[c + a] = d[a]
  1130. }
  1131. } else
  1132. for (c = u - (o - 1), a = 0; o > a; a++) t[c + a] = d[a]
  1133. }
  1134. var l, u, h = Ag,
  1135. c = 0,
  1136. d = [];
  1137. l = [], u = [], this.mergeRuns = i, this.forceMergeRuns = r, this.pushRun = n
  1138. }
  1139. function En(t, e, n, i) {
  1140. n || (n = 0), i || (i = t.length);
  1141. var r = i - n;
  1142. if (!(2 > r)) {
  1143. var o = 0;
  1144. if (Tg > r) return o = Dn(t, n, i, e), void Pn(t, n, i, n + o, e);
  1145. var a = new zn(t, e),
  1146. s = An(r);
  1147. do {
  1148. if (o = Dn(t, n, i, e), s > o) {
  1149. var l = r;
  1150. l > s && (l = s), Pn(t, n, n + l, n + o, e), o = l
  1151. }
  1152. a.pushRun(n, o), a.mergeRuns(), r -= o, n += o
  1153. } while (0 !== r);
  1154. a.forceMergeRuns()
  1155. }
  1156. }
  1157. function Bn(t, e) {
  1158. return t.zlevel === e.zlevel ? t.z === e.z ? t.z2 - e.z2 : t.z - e.z : t.zlevel - e.zlevel
  1159. }
  1160. function Rn(t, e, n) {
  1161. var i = null == e.x ? 0 : e.x,
  1162. r = null == e.x2 ? 1 : e.x2,
  1163. o = null == e.y ? 0 : e.y,
  1164. a = null == e.y2 ? 0 : e.y2;
  1165. e.global || (i = i * n.width + n.x, r = r * n.width + n.x, o = o * n.height + n.y, a = a * n.height + n.y),
  1166. i = isNaN(i) ? 0 : i, r = isNaN(r) ? 1 : r, o = isNaN(o) ? 0 : o, a = isNaN(a) ? 0 : a;
  1167. var s = t.createLinearGradient(i, o, r, a);
  1168. return s
  1169. }
  1170. function Nn(t, e, n) {
  1171. var i = n.width,
  1172. r = n.height,
  1173. o = Math.min(i, r),
  1174. a = null == e.x ? .5 : e.x,
  1175. s = null == e.y ? .5 : e.y,
  1176. l = null == e.r ? .5 : e.r;
  1177. e.global || (a = a * i + n.x, s = s * r + n.y, l *= o);
  1178. var u = t.createRadialGradient(a, s, 0, a, s, l);
  1179. return u
  1180. }
  1181. function Fn() {
  1182. return !1
  1183. }
  1184. function Vn(t, e, n) {
  1185. var i = Sp(),
  1186. r = e.getWidth(),
  1187. o = e.getHeight(),
  1188. a = i.style;
  1189. return a && (a.position = "absolute", a.left = 0, a.top = 0, a.width = r + "px", a.height = o + "px", i
  1190. .setAttribute("data-zr-dom-id", t)), i.width = r * n, i.height = o * n, i
  1191. }
  1192. function Wn(t) {
  1193. if ("string" == typeof t) {
  1194. var e = Hg.get(t);
  1195. return e && e.image
  1196. }
  1197. return t
  1198. }
  1199. function Hn(t, e, n, i, r) {
  1200. if (t) {
  1201. if ("string" == typeof t) {
  1202. if (e && e.__zrImageSrc === t || !n) return e;
  1203. var o = Hg.get(t),
  1204. a = {
  1205. hostEl: n,
  1206. cb: i,
  1207. cbPayload: r
  1208. };
  1209. return o ? (e = o.image, !Zn(e) && o.pending.push(a)) : (e = new Image, e.onload = e.onerror = Gn,
  1210. Hg.put(t, e.__cachedImgObj = {
  1211. image: e,
  1212. pending: [a]
  1213. }), e.src = e.__zrImageSrc = t), e
  1214. }
  1215. return t
  1216. }
  1217. return e
  1218. }
  1219. function Gn() {
  1220. var t = this.__cachedImgObj;
  1221. this.onload = this.onerror = this.__cachedImgObj = null;
  1222. for (var e = 0; e < t.pending.length; e++) {
  1223. var n = t.pending[e],
  1224. i = n.cb;
  1225. i && i(this, n.cbPayload), n.hostEl.dirty()
  1226. }
  1227. t.pending.length = 0
  1228. }
  1229. function Zn(t) {
  1230. return t && t.width && t.height
  1231. }
  1232. function Xn(t, e) {
  1233. e = e || Ug;
  1234. var n = t + ":" + e;
  1235. if (Gg[n]) return Gg[n];
  1236. for (var i = (t + "").split("\n"), r = 0, o = 0, a = i.length; a > o; o++) r = Math.max(ii(i[o], e).width,
  1237. r);
  1238. return Zg > Xg && (Zg = 0, Gg = {}), Zg++, Gg[n] = r, r
  1239. }
  1240. function Yn(t, e, n, i, r, o, a, s) {
  1241. return a ? jn(t, e, n, i, r, o, a, s) : Un(t, e, n, i, r, o, s)
  1242. }
  1243. function Un(t, e, n, i, r, o, a) {
  1244. var s = ri(t, e, r, o, a),
  1245. l = Xn(t, e);
  1246. r && (l += r[1] + r[3]);
  1247. var u = s.outerHeight,
  1248. h = qn(0, l, n),
  1249. c = Kn(0, u, i),
  1250. d = new Tn(h, c, l, u);
  1251. return d.lineHeight = s.lineHeight, d
  1252. }
  1253. function jn(t, e, n, i, r, o, a, s) {
  1254. var l = oi(t, {
  1255. rich: a,
  1256. truncate: s,
  1257. font: e,
  1258. textAlign: n,
  1259. textPadding: r,
  1260. textLineHeight: o
  1261. }),
  1262. u = l.outerWidth,
  1263. h = l.outerHeight,
  1264. c = qn(0, u, n),
  1265. d = Kn(0, h, i);
  1266. return new Tn(c, d, u, h)
  1267. }
  1268. function qn(t, e, n) {
  1269. return "right" === n ? t -= e : "center" === n && (t -= e / 2), t
  1270. }
  1271. function Kn(t, e, n) {
  1272. return "middle" === n ? t -= e / 2 : "bottom" === n && (t -= e), t
  1273. }
  1274. function $n(t, e, n) {
  1275. var i = e.textPosition,
  1276. r = e.textDistance,
  1277. o = n.x,
  1278. a = n.y;
  1279. r = r || 0;
  1280. var s = n.height,
  1281. l = n.width,
  1282. u = s / 2,
  1283. h = "left",
  1284. c = "top";
  1285. switch (i) {
  1286. case "left":
  1287. o -= r, a += u, h = "right", c = "middle";
  1288. break;
  1289. case "right":
  1290. o += r + l, a += u, c = "middle";
  1291. break;
  1292. case "top":
  1293. o += l / 2, a -= r, h = "center", c = "bottom";
  1294. break;
  1295. case "bottom":
  1296. o += l / 2, a += s + r, h = "center";
  1297. break;
  1298. case "inside":
  1299. o += l / 2, a += u, h = "center", c = "middle";
  1300. break;
  1301. case "insideLeft":
  1302. o += r, a += u, c = "middle";
  1303. break;
  1304. case "insideRight":
  1305. o += l - r, a += u, h = "right", c = "middle";
  1306. break;
  1307. case "insideTop":
  1308. o += l / 2, a += r, h = "center";
  1309. break;
  1310. case "insideBottom":
  1311. o += l / 2, a += s - r, h = "center", c = "bottom";
  1312. break;
  1313. case "insideTopLeft":
  1314. o += r, a += r;
  1315. break;
  1316. case "insideTopRight":
  1317. o += l - r, a += r, h = "right";
  1318. break;
  1319. case "insideBottomLeft":
  1320. o += r, a += s - r, c = "bottom";
  1321. break;
  1322. case "insideBottomRight":
  1323. o += l - r, a += s - r, h = "right", c = "bottom"
  1324. }
  1325. return t = t || {}, t.x = o, t.y = a, t.textAlign = h, t.textVerticalAlign = c, t
  1326. }
  1327. function Qn(t, e, n, i, r) {
  1328. if (!e) return "";
  1329. var o = (t + "").split("\n");
  1330. r = Jn(e, n, i, r);
  1331. for (var a = 0, s = o.length; s > a; a++) o[a] = ti(o[a], r);
  1332. return o.join("\n")
  1333. }
  1334. function Jn(t, e, n, i) {
  1335. i = a({}, i), i.font = e;
  1336. var n = D(n, "...");
  1337. i.maxIterations = D(i.maxIterations, 2);
  1338. var r = i.minChar = D(i.minChar, 0);
  1339. i.cnCharWidth = Xn("国", e);
  1340. var o = i.ascCharWidth = Xn("a", e);
  1341. i.placeholder = D(i.placeholder, "");
  1342. for (var s = t = Math.max(0, t - 1), l = 0; r > l && s >= o; l++) s -= o;
  1343. var u = Xn(n, e);
  1344. return u > s && (n = "", u = 0), s = t - u, i.ellipsis = n, i.ellipsisWidth = u, i.contentWidth = s, i
  1345. .containerWidth = t, i
  1346. }
  1347. function ti(t, e) {
  1348. var n = e.containerWidth,
  1349. i = e.font,
  1350. r = e.contentWidth;
  1351. if (!n) return "";
  1352. var o = Xn(t, i);
  1353. if (n >= o) return t;
  1354. for (var a = 0;; a++) {
  1355. if (r >= o || a >= e.maxIterations) {
  1356. t += e.ellipsis;
  1357. break
  1358. }
  1359. var s = 0 === a ? ei(t, r, e.ascCharWidth, e.cnCharWidth) : o > 0 ? Math.floor(t.length * r / o) : 0;
  1360. t = t.substr(0, s), o = Xn(t, i)
  1361. }
  1362. return "" === t && (t = e.placeholder), t
  1363. }
  1364. function ei(t, e, n, i) {
  1365. for (var r = 0, o = 0, a = t.length; a > o && e > r; o++) {
  1366. var s = t.charCodeAt(o);
  1367. r += s >= 0 && 127 >= s ? n : i
  1368. }
  1369. return o
  1370. }
  1371. function ni(t) {
  1372. return Xn("国", t)
  1373. }
  1374. function ii(t, e) {
  1375. return jg.measureText(t, e)
  1376. }
  1377. function ri(t, e, n, i, r) {
  1378. null != t && (t += "");
  1379. var o = D(i, ni(e)),
  1380. a = t ? t.split("\n") : [],
  1381. s = a.length * o,
  1382. l = s,
  1383. u = !0;
  1384. if (n && (l += n[0] + n[2]), t && r) {
  1385. u = !1;
  1386. var h = r.outerHeight,
  1387. c = r.outerWidth;
  1388. if (null != h && l > h) t = "", a = [];
  1389. else if (null != c)
  1390. for (var d = Jn(c - (n ? n[1] + n[3] : 0), e, r.ellipsis, {
  1391. minChar: r.minChar,
  1392. placeholder: r.placeholder
  1393. }), f = 0, p = a.length; p > f; f++) a[f] = ti(a[f], d)
  1394. }
  1395. return {
  1396. lines: a,
  1397. height: s,
  1398. outerHeight: l,
  1399. lineHeight: o,
  1400. canCacheByTextString: u
  1401. }
  1402. }
  1403. function oi(t, e) {
  1404. var n = {
  1405. lines: [],
  1406. width: 0,
  1407. height: 0
  1408. };
  1409. if (null != t && (t += ""), !t) return n;
  1410. for (var i, r = Yg.lastIndex = 0; null != (i = Yg.exec(t));) {
  1411. var o = i.index;
  1412. o > r && ai(n, t.substring(r, o)), ai(n, i[2], i[1]), r = Yg.lastIndex
  1413. }
  1414. r < t.length && ai(n, t.substring(r, t.length));
  1415. var a = n.lines,
  1416. s = 0,
  1417. l = 0,
  1418. u = [],
  1419. h = e.textPadding,
  1420. c = e.truncate,
  1421. d = c && c.outerWidth,
  1422. f = c && c.outerHeight;
  1423. h && (null != d && (d -= h[1] + h[3]), null != f && (f -= h[0] + h[2]));
  1424. for (var p = 0; p < a.length; p++) {
  1425. for (var g = a[p], v = 0, m = 0, y = 0; y < g.tokens.length; y++) {
  1426. var x = g.tokens[y],
  1427. _ = x.styleName && e.rich[x.styleName] || {},
  1428. w = x.textPadding = _.textPadding,
  1429. b = x.font = _.font || e.font,
  1430. S = x.textHeight = D(_.textHeight, ni(b));
  1431. if (w && (S += w[0] + w[2]), x.height = S, x.lineHeight = k(_.textLineHeight, e.textLineHeight, S),
  1432. x.textAlign = _ && _.textAlign || e.textAlign, x.textVerticalAlign = _ && _.textVerticalAlign ||
  1433. "middle", null != f && s + x.lineHeight > f) return {
  1434. lines: [],
  1435. width: 0,
  1436. height: 0
  1437. };
  1438. x.textWidth = Xn(x.text, b);
  1439. var M = _.textWidth,
  1440. I = null == M || "auto" === M;
  1441. if ("string" == typeof M && "%" === M.charAt(M.length - 1)) x.percentWidth = M, u.push(x), M = 0;
  1442. else {
  1443. if (I) {
  1444. M = x.textWidth;
  1445. var C = _.textBackgroundColor,
  1446. T = C && C.image;
  1447. T && (T = Wn(T), Zn(T) && (M = Math.max(M, T.width * S / T.height)))
  1448. }
  1449. var A = w ? w[1] + w[3] : 0;
  1450. M += A;
  1451. var P = null != d ? d - m : null;
  1452. null != P && M > P && (!I || A > P ? (x.text = "", x.textWidth = M = 0) : (x.text = Qn(x.text,
  1453. P - A, b, c.ellipsis, {
  1454. minChar: c.minChar
  1455. }), x.textWidth = Xn(x.text, b), M = x.textWidth + A))
  1456. }
  1457. m += x.width = M, _ && (v = Math.max(v, x.lineHeight))
  1458. }
  1459. g.width = m, g.lineHeight = v, s += v, l = Math.max(l, m)
  1460. }
  1461. n.outerWidth = n.width = D(e.textWidth, l), n.outerHeight = n.height = D(e.textHeight, s), h && (n
  1462. .outerWidth += h[1] + h[3], n.outerHeight += h[0] + h[2]);
  1463. for (var p = 0; p < u.length; p++) {
  1464. var x = u[p],
  1465. O = x.percentWidth;
  1466. x.width = parseInt(O, 10) / 100 * l
  1467. }
  1468. return n
  1469. }
  1470. function ai(t, e, n) {
  1471. for (var i = "" === e, r = e.split("\n"), o = t.lines, a = 0; a < r.length; a++) {
  1472. var s = r[a],
  1473. l = {
  1474. styleName: n,
  1475. text: s,
  1476. isLineHolder: !s && !i
  1477. };
  1478. if (a) o.push({
  1479. tokens: [l]
  1480. });
  1481. else {
  1482. var u = (o[o.length - 1] || (o[0] = {
  1483. tokens: []
  1484. })).tokens,
  1485. h = u.length;
  1486. 1 === h && u[0].isLineHolder ? u[0] = l : (s || !h || i) && u.push(l)
  1487. }
  1488. }
  1489. }
  1490. function si(t) {
  1491. var e = (t.fontSize || t.fontFamily) && [t.fontStyle, t.fontWeight, (t.fontSize || 12) + "px", t
  1492. .fontFamily || "sans-serif"
  1493. ].join(" ");
  1494. return e && z(e) || t.textFont || t.font
  1495. }
  1496. function li(t, e) {
  1497. var n, i, r, o, a = e.x,
  1498. s = e.y,
  1499. l = e.width,
  1500. u = e.height,
  1501. h = e.r;
  1502. 0 > l && (a += l, l = -l), 0 > u && (s += u, u = -u), "number" == typeof h ? n = i = r = o = h :
  1503. h instanceof Array ? 1 === h.length ? n = i = r = o = h[0] : 2 === h.length ? (n = r = h[0], i = o = h[
  1504. 1]) : 3 === h.length ? (n = h[0], i = o = h[1], r = h[2]) : (n = h[0], i = h[1], r = h[2], o = h[
  1505. 3]) : n = i = r = o = 0;
  1506. var c;
  1507. n + i > l && (c = n + i, n *= l / c, i *= l / c), r + o > l && (c = r + o, r *= l / c, o *= l / c), i + r >
  1508. u && (c = i + r, i *= u / c, r *= u / c), n + o > u && (c = n + o, n *= u / c, o *= u / c), t.moveTo(a +
  1509. n, s), t.lineTo(a + l - i, s), 0 !== i && t.arc(a + l - i, s + i, i, -Math.PI / 2, 0), t.lineTo(a +
  1510. l, s + u - r), 0 !== r && t.arc(a + l - r, s + u - r, r, 0, Math.PI / 2), t.lineTo(a + o, s + u),
  1511. 0 !== o && t.arc(a + o, s + u - o, o, Math.PI / 2, Math.PI), t.lineTo(a, s + n), 0 !== n && t.arc(a + n,
  1512. s + n, n, Math.PI, 1.5 * Math.PI)
  1513. }
  1514. function ui(t) {
  1515. return hi(t), f(t.rich, hi), t
  1516. }
  1517. function hi(t) {
  1518. if (t) {
  1519. t.font = si(t);
  1520. var e = t.textAlign;
  1521. "middle" === e && (e = "center"), t.textAlign = null == e || Kg[e] ? e : "left";
  1522. var n = t.textVerticalAlign || t.textBaseline;
  1523. "center" === n && (n = "middle"), t.textVerticalAlign = null == n || $g[n] ? n : "top";
  1524. var i = t.textPadding;
  1525. i && (t.textPadding = O(t.textPadding))
  1526. }
  1527. }
  1528. function ci(t, e, n, i, r, o) {
  1529. i.rich ? fi(t, e, n, i, r, o) : di(t, e, n, i, r, o)
  1530. }
  1531. function di(t, e, n, i, r, o) {
  1532. var a, s = mi(i),
  1533. l = !1,
  1534. u = e.__attrCachedBy === Og.PLAIN_TEXT;
  1535. o !== Lg ? (o && (a = o.style, l = !s && u && a), e.__attrCachedBy = s ? Og.NONE : Og.PLAIN_TEXT) : u && (e
  1536. .__attrCachedBy = Og.NONE);
  1537. var h = i.font || qg;
  1538. l && h === (a.font || qg) || (e.font = h);
  1539. var c = t.__computedFont;
  1540. t.__styleFont !== h && (t.__styleFont = h, c = t.__computedFont = e.font);
  1541. var d = i.textPadding,
  1542. f = i.textLineHeight,
  1543. p = t.__textCotentBlock;
  1544. (!p || t.__dirtyText) && (p = t.__textCotentBlock = ri(n, c, d, f, i.truncate));
  1545. var g = p.outerHeight,
  1546. v = p.lines,
  1547. m = p.lineHeight,
  1548. y = _i(tv, t, i, r),
  1549. x = y.baseX,
  1550. _ = y.baseY,
  1551. w = y.textAlign || "left",
  1552. b = y.textVerticalAlign;
  1553. gi(e, i, r, x, _);
  1554. var S = Kn(_, g, b),
  1555. M = x,
  1556. I = S;
  1557. if (s || d) {
  1558. var C = Xn(n, c),
  1559. T = C;
  1560. d && (T += d[1] + d[3]);
  1561. var A = qn(x, T, w);
  1562. s && yi(t, e, i, A, S, T, g), d && (M = Ii(x, w, d), I += d[0])
  1563. }
  1564. e.textAlign = w, e.textBaseline = "middle", e.globalAlpha = i.opacity || 1;
  1565. for (var D = 0; D < Qg.length; D++) {
  1566. var k = Qg[D],
  1567. P = k[0],
  1568. O = k[1],
  1569. L = i[P];
  1570. l && L === a[P] || (e[O] = Pg(e, O, L || k[2]))
  1571. }
  1572. I += m / 2;
  1573. var z = i.textStrokeWidth,
  1574. E = l ? a.textStrokeWidth : null,
  1575. B = !l || z !== E,
  1576. R = !l || B || i.textStroke !== a.textStroke,
  1577. N = bi(i.textStroke, z),
  1578. F = Si(i.textFill);
  1579. if (N && (B && (e.lineWidth = z), R && (e.strokeStyle = N)), F && (l && i.textFill === a.textFill || (e
  1580. .fillStyle = F)), 1 === v.length) N && e.strokeText(v[0], M, I), F && e.fillText(v[0], M, I);
  1581. else
  1582. for (var D = 0; D < v.length; D++) N && e.strokeText(v[D], M, I), F && e.fillText(v[D], M, I), I += m
  1583. }
  1584. function fi(t, e, n, i, r, o) {
  1585. o !== Lg && (e.__attrCachedBy = Og.NONE);
  1586. var a = t.__textCotentBlock;
  1587. (!a || t.__dirtyText) && (a = t.__textCotentBlock = oi(n, i)), pi(t, e, a, i, r)
  1588. }
  1589. function pi(t, e, n, i, r) {
  1590. var o = n.width,
  1591. a = n.outerWidth,
  1592. s = n.outerHeight,
  1593. l = i.textPadding,
  1594. u = _i(tv, t, i, r),
  1595. h = u.baseX,
  1596. c = u.baseY,
  1597. d = u.textAlign,
  1598. f = u.textVerticalAlign;
  1599. gi(e, i, r, h, c);
  1600. var p = qn(h, a, d),
  1601. g = Kn(c, s, f),
  1602. v = p,
  1603. m = g;
  1604. l && (v += l[3], m += l[0]);
  1605. var y = v + o;
  1606. mi(i) && yi(t, e, i, p, g, a, s);
  1607. for (var x = 0; x < n.lines.length; x++) {
  1608. for (var _, w = n.lines[x], b = w.tokens, S = b.length, M = w.lineHeight, I = w.width, C = 0, T = v, A =
  1609. y, D = S - 1; S > C && (_ = b[C], !_.textAlign || "left" === _.textAlign);) vi(t, e, _, i, M, m,
  1610. T, "left"), I -= _.width, T += _.width, C++;
  1611. for (; D >= 0 && (_ = b[D], "right" === _.textAlign);) vi(t, e, _, i, M, m, A, "right"), I -= _.width,
  1612. A -= _.width, D--;
  1613. for (T += (o - (T - v) - (y - A) - I) / 2; D >= C;) _ = b[C], vi(t, e, _, i, M, m, T + _.width / 2,
  1614. "center"), T += _.width, C++;
  1615. m += M
  1616. }
  1617. }
  1618. function gi(t, e, n, i, r) {
  1619. if (n && e.textRotation) {
  1620. var o = e.textOrigin;
  1621. "center" === o ? (i = n.width / 2 + n.x, r = n.height / 2 + n.y) : o && (i = o[0] + n.x, r = o[1] + n
  1622. .y), t.translate(i, r), t.rotate(-e.textRotation), t.translate(-i, -r)
  1623. }
  1624. }
  1625. function vi(t, e, n, i, r, o, a, s) {
  1626. var l = i.rich[n.styleName] || {};
  1627. l.text = n.text;
  1628. var u = n.textVerticalAlign,
  1629. h = o + r / 2;
  1630. "top" === u ? h = o + n.height / 2 : "bottom" === u && (h = o + r - n.height / 2), !n.isLineHolder && mi(
  1631. l) && yi(t, e, l, "right" === s ? a - n.width : "center" === s ? a - n.width / 2 : a, h - n.height / 2,
  1632. n.width, n.height);
  1633. var c = n.textPadding;
  1634. c && (a = Ii(a, s, c), h -= n.height / 2 - c[2] - n.textHeight / 2), wi(e, "shadowBlur", k(l.textShadowBlur,
  1635. i.textShadowBlur, 0)), wi(e, "shadowColor", l.textShadowColor || i.textShadowColor ||
  1636. "transparent"), wi(e, "shadowOffsetX", k(l.textShadowOffsetX, i.textShadowOffsetX, 0)), wi(e,
  1637. "shadowOffsetY", k(l.textShadowOffsetY, i.textShadowOffsetY, 0)), wi(e, "textAlign", s), wi(e,
  1638. "textBaseline", "middle"), wi(e, "font", n.font || qg);
  1639. var d = bi(l.textStroke || i.textStroke, p),
  1640. f = Si(l.textFill || i.textFill),
  1641. p = D(l.textStrokeWidth, i.textStrokeWidth);
  1642. d && (wi(e, "lineWidth", p), wi(e, "strokeStyle", d), e.strokeText(n.text, a, h)), f && (wi(e, "fillStyle",
  1643. f), e.fillText(n.text, a, h))
  1644. }
  1645. function mi(t) {
  1646. return !!(t.textBackgroundColor || t.textBorderWidth && t.textBorderColor)
  1647. }
  1648. function yi(t, e, n, i, r, o, a) {
  1649. var s = n.textBackgroundColor,
  1650. l = n.textBorderWidth,
  1651. u = n.textBorderColor,
  1652. h = b(s);
  1653. if (wi(e, "shadowBlur", n.textBoxShadowBlur || 0), wi(e, "shadowColor", n.textBoxShadowColor ||
  1654. "transparent"), wi(e, "shadowOffsetX", n.textBoxShadowOffsetX || 0), wi(e, "shadowOffsetY", n
  1655. .textBoxShadowOffsetY || 0), h || l && u) {
  1656. e.beginPath();
  1657. var c = n.textBorderRadius;
  1658. c ? li(e, {
  1659. x: i,
  1660. y: r,
  1661. width: o,
  1662. height: a,
  1663. r: c
  1664. }) : e.rect(i, r, o, a), e.closePath()
  1665. }
  1666. if (h)
  1667. if (wi(e, "fillStyle", s), null != n.fillOpacity) {
  1668. var d = e.globalAlpha;
  1669. e.globalAlpha = n.fillOpacity * n.opacity, e.fill(), e.globalAlpha = d
  1670. } else e.fill();
  1671. else if (S(s)) {
  1672. var f = s.image;
  1673. f = Hn(f, null, t, xi, s), f && Zn(f) && e.drawImage(f, i, r, o, a)
  1674. }
  1675. if (l && u)
  1676. if (wi(e, "lineWidth", l), wi(e, "strokeStyle", u), null != n.strokeOpacity) {
  1677. var d = e.globalAlpha;
  1678. e.globalAlpha = n.strokeOpacity * n.opacity, e.stroke(), e.globalAlpha = d
  1679. } else e.stroke()
  1680. }
  1681. function xi(t, e) {
  1682. e.image = t
  1683. }
  1684. function _i(t, e, n, i) {
  1685. var r = n.x || 0,
  1686. o = n.y || 0,
  1687. a = n.textAlign,
  1688. s = n.textVerticalAlign;
  1689. if (i) {
  1690. var l = n.textPosition;
  1691. if (l instanceof Array) r = i.x + Mi(l[0], i.width), o = i.y + Mi(l[1], i.height);
  1692. else {
  1693. var u = e && e.calculateTextPosition ? e.calculateTextPosition(Jg, n, i) : $n(Jg, n, i);
  1694. r = u.x, o = u.y, a = a || u.textAlign, s = s || u.textVerticalAlign
  1695. }
  1696. var h = n.textOffset;
  1697. h && (r += h[0], o += h[1])
  1698. }
  1699. return t = t || {}, t.baseX = r, t.baseY = o, t.textAlign = a, t.textVerticalAlign = s, t
  1700. }
  1701. function wi(t, e, n) {
  1702. return t[e] = Pg(t, e, n), t[e]
  1703. }
  1704. function bi(t, e) {
  1705. return null == t || 0 >= e || "transparent" === t || "none" === t ? null : t.image || t.colorStops ?
  1706. "#000" : t
  1707. }
  1708. function Si(t) {
  1709. return null == t || "none" === t ? null : t.image || t.colorStops ? "#000" : t
  1710. }
  1711. function Mi(t, e) {
  1712. return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t
  1713. }
  1714. function Ii(t, e, n) {
  1715. return "right" === e ? t - n[1] : "center" === e ? t + n[3] / 2 - n[1] / 2 : t + n[3]
  1716. }
  1717. function Ci(t, e) {
  1718. return null != t && (t || e.textBackgroundColor || e.textBorderWidth && e.textBorderColor || e.textPadding)
  1719. }
  1720. function Ti(t) {
  1721. t = t || {}, bg.call(this, t);
  1722. for (var e in t) t.hasOwnProperty(e) && "style" !== e && (this[e] = t[e]);
  1723. this.style = new Eg(t.style, this), this._rect = null, this.__clipPaths = null
  1724. }
  1725. function Ai(t) {
  1726. Ti.call(this, t)
  1727. }
  1728. function Di(t) {
  1729. return parseInt(t, 10)
  1730. }
  1731. function ki(t) {
  1732. return t ? t.__builtin__ ? !0 : "function" != typeof t.resize || "function" != typeof t.refresh ? !1 : !0 :
  1733. !1
  1734. }
  1735. function Pi(t, e, n) {
  1736. return sv.copy(t.getBoundingRect()), t.transform && sv.applyTransform(t.transform), lv.width = e, lv
  1737. .height = n, !sv.intersect(lv)
  1738. }
  1739. function Oi(t, e) {
  1740. if (t === e) return !1;
  1741. if (!t || !e || t.length !== e.length) return !0;
  1742. for (var n = 0; n < t.length; n++)
  1743. if (t[n] !== e[n]) return !0;
  1744. return !1
  1745. }
  1746. function Li(t, e) {
  1747. for (var n = 0; n < t.length; n++) {
  1748. var i = t[n];
  1749. i.setTransform(e), e.beginPath(), i.buildPath(e, i.shape), e.clip(), i.restoreTransform(e)
  1750. }
  1751. }
  1752. function zi(t, e) {
  1753. var n = document.createElement("div");
  1754. return n.style.cssText = ["position:relative", "width:" + t + "px", "height:" + e + "px", "padding:0",
  1755. "margin:0", "border-width:0"
  1756. ].join(";") + ";", n
  1757. }
  1758. function Ei(t) {
  1759. return "mousewheel" === t && dp.browser.firefox ? "DOMMouseScroll" : t
  1760. }
  1761. function Bi(t) {
  1762. var e = t.pointerType;
  1763. return "pen" === e || "touch" === e
  1764. }
  1765. function Ri(t) {
  1766. t.touching = !0, null != t.touchTimer && (clearTimeout(t.touchTimer), t.touchTimer = null), t.touchTimer =
  1767. setTimeout(function() {
  1768. t.touching = !1, t.touchTimer = null
  1769. }, 700)
  1770. }
  1771. function Ni(t) {
  1772. t && (t.zrByTouch = !0)
  1773. }
  1774. function Fi(t, e) {
  1775. return be(t.dom, new Wi(t, e), !0)
  1776. }
  1777. function Vi(t, e) {
  1778. for (var n = e, i = !1; n && 9 !== n.nodeType && !(i = n.domBelongToZr || n !== e && n === t.painterRoot);)
  1779. n = n.parentNode;
  1780. return i
  1781. }
  1782. function Wi(t, e) {
  1783. this.type = e.type, this.target = this.currentTarget = t.dom, this.pointerType = e.pointerType, this
  1784. .clientX = e.clientX, this.clientY = e.clientY
  1785. }
  1786. function Hi(t, e) {
  1787. var n = e.domHandlers;
  1788. dp.pointerEventsSupported ? f(fv.pointer, function(i) {
  1789. Zi(e, i, function(e) {
  1790. n[i].call(t, e)
  1791. })
  1792. }) : (dp.touchEventsSupported && f(fv.touch, function(i) {
  1793. Zi(e, i, function(r) {
  1794. n[i].call(t, r), Ri(e)
  1795. })
  1796. }), f(fv.mouse, function(i) {
  1797. Zi(e, i, function(r) {
  1798. r = we(r), e.touching || n[i].call(t, r)
  1799. })
  1800. }))
  1801. }
  1802. function Gi(t, e) {
  1803. function n(n) {
  1804. function i(i) {
  1805. i = we(i), Vi(t, i.target) || (i = Fi(t, i), e.domHandlers[n].call(t, i))
  1806. }
  1807. Zi(e, n, i, {
  1808. capture: !0
  1809. })
  1810. }
  1811. dp.pointerEventsSupported ? f(pv.pointer, n) : dp.touchEventsSupported || f(pv.mouse, n)
  1812. }
  1813. function Zi(t, e, n, i) {
  1814. t.mounted[e] = n, t.listenerOpts[e] = i, Se(t.domTarget, Ei(e), n, i)
  1815. }
  1816. function Xi(t) {
  1817. var e = t.mounted;
  1818. for (var n in e) e.hasOwnProperty(n) && Me(t.domTarget, Ei(n), e[n], t.listenerOpts[n]);
  1819. t.mounted = {}
  1820. }
  1821. function Yi(t, e) {
  1822. if (t._mayPointerCapture = null, dv && t._pointerCapturing ^ e) {
  1823. t._pointerCapturing = e;
  1824. var n = t._globalHandlerScope;
  1825. e ? Gi(t, n) : Xi(n)
  1826. }
  1827. }
  1828. function Ui(t, e) {
  1829. this.domTarget = t, this.domHandlers = e, this.mounted = {}, this.listenerOpts = {}, this.touchTimer = null,
  1830. this.touching = !1
  1831. }
  1832. function ji(t, e) {
  1833. zp.call(this), this.dom = t, this.painterRoot = e, this._localHandlerScope = new Ui(t, vv), dv && (this
  1834. ._globalHandlerScope = new Ui(document, mv)), this._pointerCapturing = !1, this._mayPointerCapture =
  1835. null, Hi(this, this._localHandlerScope)
  1836. }
  1837. function qi(t, e) {
  1838. var n = new Sv(hp(), t, e);
  1839. return wv[n.id] = n, n
  1840. }
  1841. function Ki(t) {
  1842. if (t) t.dispose();
  1843. else {
  1844. for (var e in wv) wv.hasOwnProperty(e) && wv[e].dispose();
  1845. wv = {}
  1846. }
  1847. return this
  1848. }
  1849. function $i(t) {
  1850. return wv[t]
  1851. }
  1852. function Qi(t, e) {
  1853. _v[t] = e
  1854. }
  1855. function Ji(t) {
  1856. delete wv[t]
  1857. }
  1858. function tr(t) {
  1859. return t instanceof Array ? t : null == t ? [] : [t]
  1860. }
  1861. function er(t, e, n) {
  1862. if (t) {
  1863. t[e] = t[e] || {}, t.emphasis = t.emphasis || {}, t.emphasis[e] = t.emphasis[e] || {};
  1864. for (var i = 0, r = n.length; r > i; i++) {
  1865. var o = n[i];
  1866. !t.emphasis[e].hasOwnProperty(o) && t[e].hasOwnProperty(o) && (t.emphasis[e][o] = t[e][o])
  1867. }
  1868. }
  1869. }
  1870. function nr(t) {
  1871. return !Cv(t) || Tv(t) || t instanceof Date ? t : t.value
  1872. }
  1873. function ir(t) {
  1874. return Cv(t) && !(t instanceof Array)
  1875. }
  1876. function rr(t, e) {
  1877. e = (e || []).slice();
  1878. var n = p(t || [], function(t) {
  1879. return {
  1880. exist: t
  1881. }
  1882. });
  1883. return Iv(e, function(t, i) {
  1884. if (Cv(t)) {
  1885. for (var r = 0; r < n.length; r++)
  1886. if (!n[r].option && null != t.id && n[r].exist.id === t.id + "") return n[r].option = t,
  1887. void(e[i] = null);
  1888. for (var r = 0; r < n.length; r++) {
  1889. var o = n[r].exist;
  1890. if (!(n[r].option || null != o.id && null != t.id || null == t.name || sr(t) || sr(o) ||
  1891. o.name !== t.name + "")) return n[r].option = t, void(e[i] = null)
  1892. }
  1893. }
  1894. }), Iv(e, function(t) {
  1895. if (Cv(t)) {
  1896. for (var e = 0; e < n.length; e++) {
  1897. var i = n[e].exist;
  1898. if (!n[e].option && !sr(i) && null == t.id) {
  1899. n[e].option = t;
  1900. break
  1901. }
  1902. }
  1903. e >= n.length && n.push({
  1904. option: t
  1905. })
  1906. }
  1907. }), n
  1908. }
  1909. function or(t) {
  1910. var e = N();
  1911. Iv(t, function(t) {
  1912. var n = t.exist;
  1913. n && e.set(n.id, t)
  1914. }), Iv(t, function(t) {
  1915. var n = t.option;
  1916. L(!n || null == n.id || !e.get(n.id) || e.get(n.id) === t, "id duplicates: " + (n && n.id)),
  1917. n && null != n.id && e.set(n.id, t), !t.keyInfo && (t.keyInfo = {})
  1918. }), Iv(t, function(t, n) {
  1919. var i = t.exist,
  1920. r = t.option,
  1921. o = t.keyInfo;
  1922. if (Cv(r)) {
  1923. if (o.name = null != r.name ? r.name + "" : i ? i.name : Av + n, i) o.id = i.id;
  1924. else if (null != r.id) o.id = r.id + "";
  1925. else {
  1926. var a = 0;
  1927. do o.id = "\x00" + o.name + "\x00" + a++; while (e.get(o.id))
  1928. }
  1929. e.set(o.id, t)
  1930. }
  1931. })
  1932. }
  1933. function ar(t) {
  1934. var e = t.name;
  1935. return !(!e || !e.indexOf(Av))
  1936. }
  1937. function sr(t) {
  1938. return Cv(t) && t.id && 0 === (t.id + "").indexOf("\x00_ec_\x00")
  1939. }
  1940. function lr(t, e) {
  1941. return null != e.dataIndexInside ? e.dataIndexInside : null != e.dataIndex ? _(e.dataIndex) ? p(e.dataIndex,
  1942. function(e) {
  1943. return t.indexOfRawIndex(e)
  1944. }) : t.indexOfRawIndex(e.dataIndex) : null != e.name ? _(e.name) ? p(e.name, function(e) {
  1945. return t.indexOfName(e)
  1946. }) : t.indexOfName(e.name) : void 0
  1947. }
  1948. function ur() {
  1949. var t = "__\x00ec_inner_" + kv++ + "_" + Math.random().toFixed(5);
  1950. return function(e) {
  1951. return e[t] || (e[t] = {})
  1952. }
  1953. }
  1954. function hr(t, e, n) {
  1955. if (b(e)) {
  1956. var i = {};
  1957. i[e + "Index"] = 0, e = i
  1958. }
  1959. var r = n && n.defaultMainType;
  1960. !r || cr(e, r + "Index") || cr(e, r + "Id") || cr(e, r + "Name") || (e[r + "Index"] = 0);
  1961. var o = {};
  1962. return Iv(e, function(i, r) {
  1963. var i = e[r];
  1964. if ("dataIndex" === r || "dataIndexInside" === r) return void(o[r] = i);
  1965. var a = r.match(/^(\w+)(Index|Id|Name)$/) || [],
  1966. s = a[1],
  1967. l = (a[2] || "").toLowerCase();
  1968. if (!(!s || !l || null == i || "index" === l && "none" === i || n && n.includeMainTypes && u(n
  1969. .includeMainTypes, s) < 0)) {
  1970. var h = {
  1971. mainType: s
  1972. };
  1973. ("index" !== l || "all" !== i) && (h[l] = i);
  1974. var c = t.queryComponents(h);
  1975. o[s + "Models"] = c, o[s + "Model"] = c[0]
  1976. }
  1977. }), o
  1978. }
  1979. function cr(t, e) {
  1980. return t && t.hasOwnProperty(e)
  1981. }
  1982. function dr(t, e, n) {
  1983. t.setAttribute ? t.setAttribute(e, n) : t[e] = n
  1984. }
  1985. function fr(t, e) {
  1986. return t.getAttribute ? t.getAttribute(e) : t[e]
  1987. }
  1988. function pr(t) {
  1989. return "auto" === t ? dp.domSupported ? "html" : "richText" : t || "html"
  1990. }
  1991. function gr(t) {
  1992. var e = {
  1993. main: "",
  1994. sub: ""
  1995. };
  1996. return t && (t = t.split(Pv), e.main = t[0] || "", e.sub = t[1] || ""), e
  1997. }
  1998. function vr(t) {
  1999. L(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t), 'componentType "' + t + '" illegal')
  2000. }
  2001. function mr(t, e) {
  2002. t.$constructor = t, t.extend = function(t) {
  2003. lp && f(e, function(e) {
  2004. t[e] || console.warn("Method `" + e + "` should be implemented" + (t.type ? " in " + t
  2005. .type : "") + ".")
  2006. });
  2007. var n = this,
  2008. i = function() {
  2009. t.$constructor ? t.$constructor.apply(this, arguments) : n.apply(this, arguments)
  2010. };
  2011. return a(i.prototype, t), i.extend = this.extend, i.superCall = xr, i.superApply = _r, h(i, this), i
  2012. .superClass = n, i
  2013. }
  2014. }
  2015. function yr(t) {
  2016. var e = ["__\x00is_clz", Lv++, Math.random().toFixed(3)].join("_");
  2017. t.prototype[e] = !0, lp && L(!t.isInstance, 'The method "is" can not be defined.'), t.isInstance = function(
  2018. t) {
  2019. return !(!t || !t[e])
  2020. }
  2021. }
  2022. function xr(t, e) {
  2023. var n = P(arguments, 2);
  2024. return this.superClass.prototype[e].apply(t, n)
  2025. }
  2026. function _r(t, e, n) {
  2027. return this.superClass.prototype[e].apply(t, n)
  2028. }
  2029. function wr(t, e) {
  2030. function n(t) {
  2031. var e = i[t.main];
  2032. return e && e[Ov] || (e = i[t.main] = {}, e[Ov] = !0), e
  2033. }
  2034. e = e || {};
  2035. var i = {};
  2036. if (t.registerClass = function(t, e) {
  2037. if (e)
  2038. if (vr(e), e = gr(e), e.sub) {
  2039. if (e.sub !== Ov) {
  2040. var r = n(e);
  2041. r[e.sub] = t
  2042. }
  2043. } else lp && i[e.main] && console.warn(e.main + " exists."), i[e.main] = t;
  2044. return t
  2045. }, t.getClass = function(t, e, n) {
  2046. var r = i[t];
  2047. if (r && r[Ov] && (r = e ? r[e] : null), n && !r) throw new Error(e ? "Component " + t + "." + (e ||
  2048. "") + " not exists. Load it first." : t + ".type should be specified.");
  2049. return r
  2050. }, t.getClassesByMainType = function(t) {
  2051. t = gr(t);
  2052. var e = [],
  2053. n = i[t.main];
  2054. return n && n[Ov] ? f(n, function(t, n) {
  2055. n !== Ov && e.push(t)
  2056. }) : e.push(n), e
  2057. }, t.hasClass = function(t) {
  2058. return t = gr(t), !!i[t.main]
  2059. }, t.getAllClassMainTypes = function() {
  2060. var t = [];
  2061. return f(i, function(e, n) {
  2062. t.push(n)
  2063. }), t
  2064. }, t.hasSubTypes = function(t) {
  2065. t = gr(t);
  2066. var e = i[t.main];
  2067. return e && e[Ov]
  2068. }, t.parseClassType = gr, e.registerWhenExtend) {
  2069. var r = t.extend;
  2070. r && (t.extend = function(e) {
  2071. var n = r.call(this, e);
  2072. return t.registerClass(n, e.type)
  2073. })
  2074. }
  2075. return t
  2076. }
  2077. function br(t) {
  2078. return t > -Wv && Wv > t
  2079. }
  2080. function Sr(t) {
  2081. return t > Wv || -Wv > t
  2082. }
  2083. function Mr(t, e, n, i, r) {
  2084. var o = 1 - r;
  2085. return o * o * (o * t + 3 * r * e) + r * r * (r * i + 3 * o * n)
  2086. }
  2087. function Ir(t, e, n, i, r) {
  2088. var o = 1 - r;
  2089. return 3 * (((e - t) * o + 2 * (n - e) * r) * o + (i - n) * r * r)
  2090. }
  2091. function Cr(t, e, n, i, r, o) {
  2092. var a = i + 3 * (e - n) - t,
  2093. s = 3 * (n - 2 * e + t),
  2094. l = 3 * (e - t),
  2095. u = t - r,
  2096. h = s * s - 3 * a * l,
  2097. c = s * l - 9 * a * u,
  2098. d = l * l - 3 * s * u,
  2099. f = 0;
  2100. if (br(h) && br(c))
  2101. if (br(s)) o[0] = 0;
  2102. else {
  2103. var p = -l / s;
  2104. p >= 0 && 1 >= p && (o[f++] = p)
  2105. }
  2106. else {
  2107. var g = c * c - 4 * h * d;
  2108. if (br(g)) {
  2109. var v = c / h,
  2110. p = -s / a + v,
  2111. m = -v / 2;
  2112. p >= 0 && 1 >= p && (o[f++] = p), m >= 0 && 1 >= m && (o[f++] = m)
  2113. } else if (g > 0) {
  2114. var y = Vv(g),
  2115. x = h * s + 1.5 * a * (-c + y),
  2116. _ = h * s + 1.5 * a * (-c - y);
  2117. x = 0 > x ? -Fv(-x, Zv) : Fv(x, Zv), _ = 0 > _ ? -Fv(-_, Zv) : Fv(_, Zv);
  2118. var p = (-s - (x + _)) / (3 * a);
  2119. p >= 0 && 1 >= p && (o[f++] = p)
  2120. } else {
  2121. var w = (2 * h * s - 3 * a * c) / (2 * Vv(h * h * h)),
  2122. b = Math.acos(w) / 3,
  2123. S = Vv(h),
  2124. M = Math.cos(b),
  2125. p = (-s - 2 * S * M) / (3 * a),
  2126. m = (-s + S * (M + Gv * Math.sin(b))) / (3 * a),
  2127. I = (-s + S * (M - Gv * Math.sin(b))) / (3 * a);
  2128. p >= 0 && 1 >= p && (o[f++] = p), m >= 0 && 1 >= m && (o[f++] = m), I >= 0 && 1 >= I && (o[f++] = I)
  2129. }
  2130. }
  2131. return f
  2132. }
  2133. function Tr(t, e, n, i, r) {
  2134. var o = 6 * n - 12 * e + 6 * t,
  2135. a = 9 * e + 3 * i - 3 * t - 9 * n,
  2136. s = 3 * e - 3 * t,
  2137. l = 0;
  2138. if (br(a)) {
  2139. if (Sr(o)) {
  2140. var u = -s / o;
  2141. u >= 0 && 1 >= u && (r[l++] = u)
  2142. }
  2143. } else {
  2144. var h = o * o - 4 * a * s;
  2145. if (br(h)) r[0] = -o / (2 * a);
  2146. else if (h > 0) {
  2147. var c = Vv(h),
  2148. u = (-o + c) / (2 * a),
  2149. d = (-o - c) / (2 * a);
  2150. u >= 0 && 1 >= u && (r[l++] = u), d >= 0 && 1 >= d && (r[l++] = d)
  2151. }
  2152. }
  2153. return l
  2154. }
  2155. function Ar(t, e, n, i, r, o) {
  2156. var a = (e - t) * r + t,
  2157. s = (n - e) * r + e,
  2158. l = (i - n) * r + n,
  2159. u = (s - a) * r + a,
  2160. h = (l - s) * r + s,
  2161. c = (h - u) * r + u;
  2162. o[0] = t, o[1] = a, o[2] = u, o[3] = c, o[4] = c, o[5] = h, o[6] = l, o[7] = i
  2163. }
  2164. function Dr(t, e, n, i, r, o, a, s, l, u, h) {
  2165. var c, d, f, p, g, v = .005,
  2166. m = 1 / 0;
  2167. Xv[0] = l, Xv[1] = u;
  2168. for (var y = 0; 1 > y; y += .05) Yv[0] = Mr(t, n, r, a, y), Yv[1] = Mr(e, i, o, s, y), p = Pp(Xv, Yv), m >
  2169. p && (c = y, m = p);
  2170. m = 1 / 0;
  2171. for (var x = 0; 32 > x && !(Hv > v); x++) d = c - v, f = c + v, Yv[0] = Mr(t, n, r, a, d), Yv[1] = Mr(e, i,
  2172. o, s, d), p = Pp(Yv, Xv), d >= 0 && m > p ? (c = d, m = p) : (Uv[0] = Mr(t, n, r, a, f), Uv[1] = Mr(
  2173. e, i, o, s, f), g = Pp(Uv, Xv), 1 >= f && m > g ? (c = f, m = g) : v *= .5);
  2174. return h && (h[0] = Mr(t, n, r, a, c), h[1] = Mr(e, i, o, s, c)), Vv(m)
  2175. }
  2176. function kr(t, e, n, i) {
  2177. var r = 1 - i;
  2178. return r * (r * t + 2 * i * e) + i * i * n
  2179. }
  2180. function Pr(t, e, n, i) {
  2181. return 2 * ((1 - i) * (e - t) + i * (n - e))
  2182. }
  2183. function Or(t, e, n, i, r) {
  2184. var o = t - 2 * e + n,
  2185. a = 2 * (e - t),
  2186. s = t - i,
  2187. l = 0;
  2188. if (br(o)) {
  2189. if (Sr(a)) {
  2190. var u = -s / a;
  2191. u >= 0 && 1 >= u && (r[l++] = u)
  2192. }
  2193. } else {
  2194. var h = a * a - 4 * o * s;
  2195. if (br(h)) {
  2196. var u = -a / (2 * o);
  2197. u >= 0 && 1 >= u && (r[l++] = u)
  2198. } else if (h > 0) {
  2199. var c = Vv(h),
  2200. u = (-a + c) / (2 * o),
  2201. d = (-a - c) / (2 * o);
  2202. u >= 0 && 1 >= u && (r[l++] = u), d >= 0 && 1 >= d && (r[l++] = d)
  2203. }
  2204. }
  2205. return l
  2206. }
  2207. function Lr(t, e, n) {
  2208. var i = t + n - 2 * e;
  2209. return 0 === i ? .5 : (t - e) / i
  2210. }
  2211. function zr(t, e, n, i, r) {
  2212. var o = (e - t) * i + t,
  2213. a = (n - e) * i + e,
  2214. s = (a - o) * i + o;
  2215. r[0] = t, r[1] = o, r[2] = s, r[3] = s, r[4] = a, r[5] = n
  2216. }
  2217. function Er(t, e, n, i, r, o, a, s, l) {
  2218. var u, h = .005,
  2219. c = 1 / 0;
  2220. Xv[0] = a, Xv[1] = s;
  2221. for (var d = 0; 1 > d; d += .05) {
  2222. Yv[0] = kr(t, n, r, d), Yv[1] = kr(e, i, o, d);
  2223. var f = Pp(Xv, Yv);
  2224. c > f && (u = d, c = f)
  2225. }
  2226. c = 1 / 0;
  2227. for (var p = 0; 32 > p && !(Hv > h); p++) {
  2228. var g = u - h,
  2229. v = u + h;
  2230. Yv[0] = kr(t, n, r, g), Yv[1] = kr(e, i, o, g);
  2231. var f = Pp(Yv, Xv);
  2232. if (g >= 0 && c > f) u = g, c = f;
  2233. else {
  2234. Uv[0] = kr(t, n, r, v), Uv[1] = kr(e, i, o, v);
  2235. var m = Pp(Uv, Xv);
  2236. 1 >= v && c > m ? (u = v, c = m) : h *= .5
  2237. }
  2238. }
  2239. return l && (l[0] = kr(t, n, r, u), l[1] = kr(e, i, o, u)), Vv(c)
  2240. }
  2241. function Br(t, e, n) {
  2242. if (0 !== t.length) {
  2243. var i, r = t[0],
  2244. o = r[0],
  2245. a = r[0],
  2246. s = r[1],
  2247. l = r[1];
  2248. for (i = 1; i < t.length; i++) r = t[i], o = jv(o, r[0]), a = qv(a, r[0]), s = jv(s, r[1]), l = qv(l, r[
  2249. 1]);
  2250. e[0] = o, e[1] = s, n[0] = a, n[1] = l
  2251. }
  2252. }
  2253. function Rr(t, e, n, i, r, o) {
  2254. r[0] = jv(t, n), r[1] = jv(e, i), o[0] = qv(t, n), o[1] = qv(e, i)
  2255. }
  2256. function Nr(t, e, n, i, r, o, a, s, l, u) {
  2257. var h, c = Tr,
  2258. d = Mr,
  2259. f = c(t, n, r, a, nm);
  2260. for (l[0] = 1 / 0, l[1] = 1 / 0, u[0] = -1 / 0, u[1] = -1 / 0, h = 0; f > h; h++) {
  2261. var p = d(t, n, r, a, nm[h]);
  2262. l[0] = jv(p, l[0]), u[0] = qv(p, u[0])
  2263. }
  2264. for (f = c(e, i, o, s, im), h = 0; f > h; h++) {
  2265. var g = d(e, i, o, s, im[h]);
  2266. l[1] = jv(g, l[1]), u[1] = qv(g, u[1])
  2267. }
  2268. l[0] = jv(t, l[0]), u[0] = qv(t, u[0]), l[0] = jv(a, l[0]), u[0] = qv(a, u[0]), l[1] = jv(e, l[1]), u[1] =
  2269. qv(e, u[1]), l[1] = jv(s, l[1]), u[1] = qv(s, u[1])
  2270. }
  2271. function Fr(t, e, n, i, r, o, a, s) {
  2272. var l = Lr,
  2273. u = kr,
  2274. h = qv(jv(l(t, n, r), 1), 0),
  2275. c = qv(jv(l(e, i, o), 1), 0),
  2276. d = u(t, n, r, h),
  2277. f = u(e, i, o, c);
  2278. a[0] = jv(t, r, d), a[1] = jv(e, o, f), s[0] = qv(t, r, d), s[1] = qv(e, o, f)
  2279. }
  2280. function Vr(t, e, n, i, r, o, a, s, l) {
  2281. var u = ae,
  2282. h = se,
  2283. c = Math.abs(r - o);
  2284. if (1e-4 > c % Qv && c > 1e-4) return s[0] = t - n, s[1] = e - i, l[0] = t + n, void(l[1] = e + i);
  2285. if (Jv[0] = $v(r) * n + t, Jv[1] = Kv(r) * i + e, tm[0] = $v(o) * n + t, tm[1] = Kv(o) * i + e, u(s, Jv,
  2286. tm), h(l, Jv, tm), r %= Qv, 0 > r && (r += Qv), o %= Qv, 0 > o && (o += Qv), r > o && !a ? o += Qv : o >
  2287. r && a && (r += Qv), a) {
  2288. var d = o;
  2289. o = r, r = d
  2290. }
  2291. for (var f = 0; o > f; f += Math.PI / 2) f > r && (em[0] = $v(f) * n + t, em[1] = Kv(f) * i + e, u(s, em,
  2292. s), h(l, em, l))
  2293. }
  2294. function Wr(t, e, n, i, r, o, a) {
  2295. if (0 === r) return !1;
  2296. var s = r,
  2297. l = 0,
  2298. u = t;
  2299. if (a > e + s && a > i + s || e - s > a && i - s > a || o > t + s && o > n + s || t - s > o && n - s > o)
  2300. return !1;
  2301. if (t === n) return Math.abs(o - t) <= s / 2;
  2302. l = (e - i) / (t - n), u = (t * i - n * e) / (t - n);
  2303. var h = l * o - a + u,
  2304. c = h * h / (l * l + 1);
  2305. return s / 2 * s / 2 >= c
  2306. }
  2307. function Hr(t, e, n, i, r, o, a, s, l, u, h) {
  2308. if (0 === l) return !1;
  2309. var c = l;
  2310. if (h > e + c && h > i + c && h > o + c && h > s + c || e - c > h && i - c > h && o - c > h && s - c > h ||
  2311. u > t + c && u > n + c && u > r + c && u > a + c || t - c > u && n - c > u && r - c > u && a - c > u)
  2312. return !1;
  2313. var d = Dr(t, e, n, i, r, o, a, s, u, h, null);
  2314. return c / 2 >= d
  2315. }
  2316. function Gr(t, e, n, i, r, o, a, s, l) {
  2317. if (0 === a) return !1;
  2318. var u = a;
  2319. if (l > e + u && l > i + u && l > o + u || e - u > l && i - u > l && o - u > l || s > t + u && s > n + u &&
  2320. s > r + u || t - u > s && n - u > s && r - u > s) return !1;
  2321. var h = Er(t, e, n, i, r, o, s, l, null);
  2322. return u / 2 >= h
  2323. }
  2324. function Zr(t) {
  2325. return t %= mm, 0 > t && (t += mm), t
  2326. }
  2327. function Xr(t, e, n, i, r, o, a, s, l) {
  2328. if (0 === a) return !1;
  2329. var u = a;
  2330. s -= t, l -= e;
  2331. var h = Math.sqrt(s * s + l * l);
  2332. if (h - u > n || n > h + u) return !1;
  2333. if (Math.abs(i - r) % ym < 1e-4) return !0;
  2334. if (o) {
  2335. var c = i;
  2336. i = Zr(r), r = Zr(c)
  2337. } else i = Zr(i), r = Zr(r);
  2338. i > r && (r += ym);
  2339. var d = Math.atan2(l, s);
  2340. return 0 > d && (d += ym), d >= i && r >= d || d + ym >= i && r >= d + ym
  2341. }
  2342. function Yr(t, e, n, i, r, o) {
  2343. if (o > e && o > i || e > o && i > o) return 0;
  2344. if (i === e) return 0;
  2345. var a = e > i ? 1 : -1,
  2346. s = (o - e) / (i - e);
  2347. (1 === s || 0 === s) && (a = e > i ? .5 : -.5);
  2348. var l = s * (n - t) + t;
  2349. return l === r ? 1 / 0 : l > r ? a : 0
  2350. }
  2351. function Ur(t, e) {
  2352. return Math.abs(t - e) < wm
  2353. }
  2354. function jr() {
  2355. var t = Sm[0];
  2356. Sm[0] = Sm[1], Sm[1] = t
  2357. }
  2358. function qr(t, e, n, i, r, o, a, s, l, u) {
  2359. if (u > e && u > i && u > o && u > s || e > u && i > u && o > u && s > u) return 0;
  2360. var h = Cr(e, i, o, s, u, bm);
  2361. if (0 === h) return 0;
  2362. for (var c, d, f = 0, p = -1, g = 0; h > g; g++) {
  2363. var v = bm[g],
  2364. m = 0 === v || 1 === v ? .5 : 1,
  2365. y = Mr(t, n, r, a, v);
  2366. l > y || (0 > p && (p = Tr(e, i, o, s, Sm), Sm[1] < Sm[0] && p > 1 && jr(), c = Mr(e, i, o, s, Sm[0]),
  2367. p > 1 && (d = Mr(e, i, o, s, Sm[1]))), f += 2 === p ? v < Sm[0] ? e > c ? m : -m : v < Sm[
  2368. 1] ? c > d ? m : -m : d > s ? m : -m : v < Sm[0] ? e > c ? m : -m : c > s ? m : -m)
  2369. }
  2370. return f
  2371. }
  2372. function Kr(t, e, n, i, r, o, a, s) {
  2373. if (s > e && s > i && s > o || e > s && i > s && o > s) return 0;
  2374. var l = Or(e, i, o, s, bm);
  2375. if (0 === l) return 0;
  2376. var u = Lr(e, i, o);
  2377. if (u >= 0 && 1 >= u) {
  2378. for (var h = 0, c = kr(e, i, o, u), d = 0; l > d; d++) {
  2379. var f = 0 === bm[d] || 1 === bm[d] ? .5 : 1,
  2380. p = kr(t, n, r, bm[d]);
  2381. a > p || (h += bm[d] < u ? e > c ? f : -f : c > o ? f : -f)
  2382. }
  2383. return h
  2384. }
  2385. var f = 0 === bm[0] || 1 === bm[0] ? .5 : 1,
  2386. p = kr(t, n, r, bm[0]);
  2387. return a > p ? 0 : e > o ? f : -f
  2388. }
  2389. function $r(t, e, n, i, r, o, a, s) {
  2390. if (s -= e, s > n || -n > s) return 0;
  2391. var l = Math.sqrt(n * n - s * s);
  2392. bm[0] = -l, bm[1] = l;
  2393. var u = Math.abs(i - r);
  2394. if (1e-4 > u) return 0;
  2395. if (1e-4 > u % _m) {
  2396. i = 0, r = _m;
  2397. var h = o ? 1 : -1;
  2398. return a >= bm[0] + t && a <= bm[1] + t ? h : 0
  2399. }
  2400. if (o) {
  2401. var l = i;
  2402. i = Zr(r), r = Zr(l)
  2403. } else i = Zr(i), r = Zr(r);
  2404. i > r && (r += _m);
  2405. for (var c = 0, d = 0; 2 > d; d++) {
  2406. var f = bm[d];
  2407. if (f + t > a) {
  2408. var p = Math.atan2(s, f),
  2409. h = o ? 1 : -1;
  2410. 0 > p && (p = _m + p), (p >= i && r >= p || p + _m >= i && r >= p + _m) && (p > Math.PI / 2 && p <
  2411. 1.5 * Math.PI && (h = -h), c += h)
  2412. }
  2413. }
  2414. return c
  2415. }
  2416. function Qr(t, e, n, i, r) {
  2417. for (var o = 0, a = 0, s = 0, l = 0, u = 0, h = 0; h < t.length;) {
  2418. var c = t[h++];
  2419. switch (c === xm.M && h > 1 && (n || (o += Yr(a, s, l, u, i, r))), 1 === h && (a = t[h], s = t[h + 1],
  2420. l = a, u = s), c) {
  2421. case xm.M:
  2422. l = t[h++], u = t[h++], a = l, s = u;
  2423. break;
  2424. case xm.L:
  2425. if (n) {
  2426. if (Wr(a, s, t[h], t[h + 1], e, i, r)) return !0
  2427. } else o += Yr(a, s, t[h], t[h + 1], i, r) || 0;
  2428. a = t[h++], s = t[h++];
  2429. break;
  2430. case xm.C:
  2431. if (n) {
  2432. if (Hr(a, s, t[h++], t[h++], t[h++], t[h++], t[h], t[h + 1], e, i, r)) return !0
  2433. } else o += qr(a, s, t[h++], t[h++], t[h++], t[h++], t[h], t[h + 1], i, r) || 0;
  2434. a = t[h++], s = t[h++];
  2435. break;
  2436. case xm.Q:
  2437. if (n) {
  2438. if (Gr(a, s, t[h++], t[h++], t[h], t[h + 1], e, i, r)) return !0
  2439. } else o += Kr(a, s, t[h++], t[h++], t[h], t[h + 1], i, r) || 0;
  2440. a = t[h++], s = t[h++];
  2441. break;
  2442. case xm.A:
  2443. var d = t[h++],
  2444. f = t[h++],
  2445. p = t[h++],
  2446. g = t[h++],
  2447. v = t[h++],
  2448. m = t[h++];
  2449. h += 1;
  2450. var y = 1 - t[h++],
  2451. x = Math.cos(v) * p + d,
  2452. _ = Math.sin(v) * g + f;
  2453. h > 1 ? o += Yr(a, s, x, _, i, r) : (l = x, u = _);
  2454. var w = (i - d) * g / p + d;
  2455. if (n) {
  2456. if (Xr(d, f, g, v, v + m, y, e, w, r)) return !0
  2457. } else o += $r(d, f, g, v, v + m, y, w, r);
  2458. a = Math.cos(v + m) * p + d, s = Math.sin(v + m) * g + f;
  2459. break;
  2460. case xm.R:
  2461. l = a = t[h++], u = s = t[h++];
  2462. var b = t[h++],
  2463. S = t[h++],
  2464. x = l + b,
  2465. _ = u + S;
  2466. if (n) {
  2467. if (Wr(l, u, x, u, e, i, r) || Wr(x, u, x, _, e, i, r) || Wr(x, _, l, _, e, i, r) || Wr(l,
  2468. _, l, u, e, i, r)) return !0
  2469. } else o += Yr(x, u, x, _, i, r), o += Yr(l, _, l, u, i, r);
  2470. break;
  2471. case xm.Z:
  2472. if (n) {
  2473. if (Wr(a, s, l, u, e, i, r)) return !0
  2474. } else o += Yr(a, s, l, u, i, r);
  2475. a = l, s = u
  2476. }
  2477. }
  2478. return n || Ur(s, u) || (o += Yr(a, s, l, u, i, r) || 0), 0 !== o
  2479. }
  2480. function Jr(t, e, n) {
  2481. return Qr(t, 0, !1, e, n)
  2482. }
  2483. function to(t, e, n, i) {
  2484. return Qr(t, e, !0, n, i)
  2485. }
  2486. function eo(t) {
  2487. Ti.call(this, t), this.path = null
  2488. }
  2489. function no(t, e, n, i, r, o, a, s, l, u, h) {
  2490. var c = l * (Em / 180),
  2491. d = zm(c) * (t - n) / 2 + Lm(c) * (e - i) / 2,
  2492. f = -1 * Lm(c) * (t - n) / 2 + zm(c) * (e - i) / 2,
  2493. p = d * d / (a * a) + f * f / (s * s);
  2494. p > 1 && (a *= Om(p), s *= Om(p));
  2495. var g = (r === o ? -1 : 1) * Om((a * a * s * s - a * a * f * f - s * s * d * d) / (a * a * f * f + s * s *
  2496. d * d)) || 0,
  2497. v = g * a * f / s,
  2498. m = g * -s * d / a,
  2499. y = (t + n) / 2 + zm(c) * v - Lm(c) * m,
  2500. x = (e + i) / 2 + Lm(c) * v + zm(c) * m,
  2501. _ = Nm([1, 0], [(d - v) / a, (f - m) / s]),
  2502. w = [(d - v) / a, (f - m) / s],
  2503. b = [(-1 * d - v) / a, (-1 * f - m) / s],
  2504. S = Nm(w, b);
  2505. Rm(w, b) <= -1 && (S = Em), Rm(w, b) >= 1 && (S = 0), 0 === o && S > 0 && (S -= 2 * Em), 1 === o && 0 > S &&
  2506. (S += 2 * Em), h.addData(u, y, x, a, s, _, S, c, o)
  2507. }
  2508. function io(t) {
  2509. if (!t) return new vm;
  2510. for (var e, n = 0, i = 0, r = n, o = i, a = new vm, s = vm.CMD, l = t.match(Fm), u = 0; u < l.length; u++) {
  2511. for (var h, c = l[u], d = c.charAt(0), f = c.match(Vm) || [], p = f.length, g = 0; p > g; g++) f[g] =
  2512. parseFloat(f[g]);
  2513. for (var v = 0; p > v;) {
  2514. var m, y, x, _, w, b, S, M = n,
  2515. I = i;
  2516. switch (d) {
  2517. case "l":
  2518. n += f[v++], i += f[v++], h = s.L, a.addData(h, n, i);
  2519. break;
  2520. case "L":
  2521. n = f[v++], i = f[v++], h = s.L, a.addData(h, n, i);
  2522. break;
  2523. case "m":
  2524. n += f[v++], i += f[v++], h = s.M, a.addData(h, n, i), r = n, o = i, d = "l";
  2525. break;
  2526. case "M":
  2527. n = f[v++], i = f[v++], h = s.M, a.addData(h, n, i), r = n, o = i, d = "L";
  2528. break;
  2529. case "h":
  2530. n += f[v++], h = s.L, a.addData(h, n, i);
  2531. break;
  2532. case "H":
  2533. n = f[v++], h = s.L, a.addData(h, n, i);
  2534. break;
  2535. case "v":
  2536. i += f[v++], h = s.L, a.addData(h, n, i);
  2537. break;
  2538. case "V":
  2539. i = f[v++], h = s.L, a.addData(h, n, i);
  2540. break;
  2541. case "C":
  2542. h = s.C, a.addData(h, f[v++], f[v++], f[v++], f[v++], f[v++], f[v++]), n = f[v - 2], i = f[
  2543. v - 1];
  2544. break;
  2545. case "c":
  2546. h = s.C, a.addData(h, f[v++] + n, f[v++] + i, f[v++] + n, f[v++] + i, f[v++] + n, f[v++] +
  2547. i), n += f[v - 2], i += f[v - 1];
  2548. break;
  2549. case "S":
  2550. m = n, y = i;
  2551. var C = a.len(),
  2552. T = a.data;
  2553. e === s.C && (m += n - T[C - 4], y += i - T[C - 3]), h = s.C, M = f[v++], I = f[v++], n = f[
  2554. v++], i = f[v++], a.addData(h, m, y, M, I, n, i);
  2555. break;
  2556. case "s":
  2557. m = n, y = i;
  2558. var C = a.len(),
  2559. T = a.data;
  2560. e === s.C && (m += n - T[C - 4], y += i - T[C - 3]), h = s.C, M = n + f[v++], I = i + f[
  2561. v++], n += f[v++], i += f[v++], a.addData(h, m, y, M, I, n, i);
  2562. break;
  2563. case "Q":
  2564. M = f[v++], I = f[v++], n = f[v++], i = f[v++], h = s.Q, a.addData(h, M, I, n, i);
  2565. break;
  2566. case "q":
  2567. M = f[v++] + n, I = f[v++] + i, n += f[v++], i += f[v++], h = s.Q, a.addData(h, M, I, n, i);
  2568. break;
  2569. case "T":
  2570. m = n, y = i;
  2571. var C = a.len(),
  2572. T = a.data;
  2573. e === s.Q && (m += n - T[C - 4], y += i - T[C - 3]), n = f[v++], i = f[v++], h = s.Q, a
  2574. .addData(h, m, y, n, i);
  2575. break;
  2576. case "t":
  2577. m = n, y = i;
  2578. var C = a.len(),
  2579. T = a.data;
  2580. e === s.Q && (m += n - T[C - 4], y += i - T[C - 3]), n += f[v++], i += f[v++], h = s.Q, a
  2581. .addData(h, m, y, n, i);
  2582. break;
  2583. case "A":
  2584. x = f[v++], _ = f[v++], w = f[v++], b = f[v++], S = f[v++], M = n, I = i, n = f[v++], i = f[
  2585. v++], h = s.A, no(M, I, n, i, b, S, x, _, w, h, a);
  2586. break;
  2587. case "a":
  2588. x = f[v++], _ = f[v++], w = f[v++], b = f[v++], S = f[v++], M = n, I = i, n += f[v++], i +=
  2589. f[v++], h = s.A, no(M, I, n, i, b, S, x, _, w, h, a)
  2590. }
  2591. }("z" === d || "Z" === d) && (h = s.Z, a.addData(h), n = r, i = o), e = h
  2592. }
  2593. return a.toStatic(), a
  2594. }
  2595. function ro(t, e) {
  2596. var n = io(t);
  2597. return e = e || {}, e.buildPath = function(t) {
  2598. if (t.setData) {
  2599. t.setData(n.data);
  2600. var e = t.getContext();
  2601. e && t.rebuildPath(e)
  2602. } else {
  2603. var e = t;
  2604. n.rebuildPath(e)
  2605. }
  2606. }, e.applyTransform = function(t) {
  2607. Pm(n, t), this.dirty(!0)
  2608. }, e
  2609. }
  2610. function oo(t, e) {
  2611. return new eo(ro(t, e))
  2612. }
  2613. function ao(t, e) {
  2614. return eo.extend(ro(t, e))
  2615. }
  2616. function so(t, e) {
  2617. for (var n = [], i = t.length, r = 0; i > r; r++) {
  2618. var o = t[r];
  2619. o.path || o.createPathProxy(), o.__dirtyPath && o.buildPath(o.path, o.shape, !0), n.push(o.path)
  2620. }
  2621. var a = new eo(e);
  2622. return a.createPathProxy(), a.buildPath = function(t) {
  2623. t.appendPath(n);
  2624. var e = t.getContext();
  2625. e && t.rebuildPath(e)
  2626. }, a
  2627. }
  2628. function lo(t, e, n, i, r, o, a) {
  2629. var s = .5 * (n - t),
  2630. l = .5 * (i - e);
  2631. return (2 * (e - n) + s + l) * a + (-3 * (e - n) - 2 * s - l) * o + s * r + e
  2632. }
  2633. function uo(t, e, n) {
  2634. var i = e.points,
  2635. r = e.smooth;
  2636. if (i && i.length >= 2) {
  2637. if (r && "spline" !== r) {
  2638. var o = jm(i, r, n, e.smoothConstraint);
  2639. t.moveTo(i[0][0], i[0][1]);
  2640. for (var a = i.length, s = 0;
  2641. (n ? a : a - 1) > s; s++) {
  2642. var l = o[2 * s],
  2643. u = o[2 * s + 1],
  2644. h = i[(s + 1) % a];
  2645. t.bezierCurveTo(l[0], l[1], u[0], u[1], h[0], h[1])
  2646. }
  2647. } else {
  2648. "spline" === r && (i = Um(i, n)), t.moveTo(i[0][0], i[0][1]);
  2649. for (var s = 1, c = i.length; c > s; s++) t.lineTo(i[s][0], i[s][1])
  2650. }
  2651. n && t.closePath()
  2652. }
  2653. }
  2654. function ho(t, e, n) {
  2655. if (e) {
  2656. var i = e.x1,
  2657. r = e.x2,
  2658. o = e.y1,
  2659. a = e.y2;
  2660. t.x1 = i, t.x2 = r, t.y1 = o, t.y2 = a;
  2661. var s = n && n.lineWidth;
  2662. s && ($m(2 * i) === $m(2 * r) && (t.x1 = t.x2 = fo(i, s, !0)), $m(2 * o) === $m(2 * a) && (t.y1 = t.y2 =
  2663. fo(o, s, !0)))
  2664. }
  2665. }
  2666. function co(t, e, n) {
  2667. if (e) {
  2668. var i = e.x,
  2669. r = e.y,
  2670. o = e.width,
  2671. a = e.height;
  2672. t.x = i, t.y = r, t.width = o, t.height = a;
  2673. var s = n && n.lineWidth;
  2674. s && (t.x = fo(i, s, !0), t.y = fo(r, s, !0), t.width = Math.max(fo(i + o, s, !1) - t.x, 0 === o ? 0 :
  2675. 1), t.height = Math.max(fo(r + a, s, !1) - t.y, 0 === a ? 0 : 1))
  2676. }
  2677. }
  2678. function fo(t, e, n) {
  2679. if (!e) return t;
  2680. var i = $m(2 * t);
  2681. return (i + $m(e)) % 2 === 0 ? i / 2 : (i + (n ? 1 : -1)) / 2
  2682. }
  2683. function po(t, e, n) {
  2684. var i = t.cpx2,
  2685. r = t.cpy2;
  2686. return null === i || null === r ? [(n ? Ir : Mr)(t.x1, t.cpx1, t.cpx2, t.x2, e), (n ? Ir : Mr)(t.y1, t.cpy1,
  2687. t.cpy2, t.y2, e)] : [(n ? Pr : kr)(t.x1, t.cpx1, t.x2, e), (n ? Pr : kr)(t.y1, t.cpy1, t.y2, e)]
  2688. }
  2689. function go(t) {
  2690. Ti.call(this, t), this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this
  2691. .notClear = !0
  2692. }
  2693. function vo(t) {
  2694. return eo.extend(t)
  2695. }
  2696. function mo(t, e) {
  2697. return ao(t, e)
  2698. }
  2699. function yo(t, e) {
  2700. xy[t] = e
  2701. }
  2702. function xo(t) {
  2703. return xy.hasOwnProperty(t) ? xy[t] : void 0
  2704. }
  2705. function _o(t, e, n, i) {
  2706. var r = oo(t, e);
  2707. return n && ("center" === i && (n = bo(n, r.getBoundingRect())), So(r, n)), r
  2708. }
  2709. function wo(t, e, n) {
  2710. var i = new Ai({
  2711. style: {
  2712. image: t,
  2713. x: e.x,
  2714. y: e.y,
  2715. width: e.width,
  2716. height: e.height
  2717. },
  2718. onload: function(t) {
  2719. if ("center" === n) {
  2720. var r = {
  2721. width: t.width,
  2722. height: t.height
  2723. };
  2724. i.setStyle(bo(e, r))
  2725. }
  2726. }
  2727. });
  2728. return i
  2729. }
  2730. function bo(t, e) {
  2731. var n, i = e.width / e.height,
  2732. r = t.height * i;
  2733. r <= t.width ? n = t.height : (r = t.width, n = r / i);
  2734. var o = t.x + t.width / 2,
  2735. a = t.y + t.height / 2;
  2736. return {
  2737. x: o - r / 2,
  2738. y: a - n / 2,
  2739. width: r,
  2740. height: n
  2741. }
  2742. }
  2743. function So(t, e) {
  2744. if (t.applyTransform) {
  2745. var n = t.getBoundingRect(),
  2746. i = n.calculateTransform(e);
  2747. t.applyTransform(i)
  2748. }
  2749. }
  2750. function Mo(t) {
  2751. return ho(t.shape, t.shape, t.style), t
  2752. }
  2753. function Io(t) {
  2754. return co(t.shape, t.shape, t.style), t
  2755. }
  2756. function Co(t) {
  2757. return null != t && "none" !== t
  2758. }
  2759. function To(t) {
  2760. if ("string" != typeof t) return t;
  2761. var e = by.get(t);
  2762. return e || (e = rn(t, -.1), 1e4 > Sy && (by.set(t, e), Sy++)), e
  2763. }
  2764. function Ao(t) {
  2765. if (t.__hoverStlDirty) {
  2766. t.__hoverStlDirty = !1;
  2767. var e = t.__hoverStl;
  2768. if (!e) return void(t.__cachedNormalStl = t.__cachedNormalZ2 = null);
  2769. var n = t.__cachedNormalStl = {};
  2770. t.__cachedNormalZ2 = t.z2;
  2771. var i = t.style;
  2772. for (var r in e) null != e[r] && (n[r] = i[r]);
  2773. n.fill = i.fill, n.stroke = i.stroke
  2774. }
  2775. }
  2776. function Do(t) {
  2777. var e = t.__hoverStl;
  2778. if (e && !t.__highlighted) {
  2779. var n = t.__zr,
  2780. i = t.useHoverLayer && n && "canvas" === n.painter.type;
  2781. if (t.__highlighted = i ? "layer" : "plain", !(t.isGroup || !n && t.useHoverLayer)) {
  2782. var r = t,
  2783. o = t.style;
  2784. i && (r = n.addHover(t), o = r.style), Qo(o), i || Ao(r), o.extendFrom(e), ko(o, e, "fill"), ko(o,
  2785. e, "stroke"), $o(o), i || (t.dirty(!1), t.z2 += fy)
  2786. }
  2787. }
  2788. }
  2789. function ko(t, e, n) {
  2790. !Co(e[n]) && Co(t[n]) && (t[n] = To(t[n]))
  2791. }
  2792. function Po(t) {
  2793. var e = t.__highlighted;
  2794. if (e && (t.__highlighted = !1, !t.isGroup))
  2795. if ("layer" === e) t.__zr && t.__zr.removeHover(t);
  2796. else {
  2797. var n = t.style,
  2798. i = t.__cachedNormalStl;
  2799. i && (Qo(n), t.setStyle(i), $o(n));
  2800. var r = t.__cachedNormalZ2;
  2801. null != r && t.z2 - r === fy && (t.z2 = r)
  2802. }
  2803. }
  2804. function Oo(t, e, n) {
  2805. var i, r = vy,
  2806. o = vy;
  2807. t.__highlighted && (r = gy, i = !0), e(t, n), t.__highlighted && (o = gy, i = !0), t.isGroup && t.traverse(
  2808. function(t) {
  2809. !t.isGroup && e(t, n)
  2810. }), i && t.__highDownOnUpdate && t.__highDownOnUpdate(r, o)
  2811. }
  2812. function Lo(t, e) {
  2813. e = t.__hoverStl = e !== !1 && (t.hoverStyle || e || {}), t.__hoverStlDirty = !0, t.__highlighted && (t
  2814. .__cachedNormalStl = null, Po(t), Do(t))
  2815. }
  2816. function zo(t) {
  2817. !No(this, t) && !this.__highByOuter && Oo(this, Do)
  2818. }
  2819. function Eo(t) {
  2820. !No(this, t) && !this.__highByOuter && Oo(this, Po)
  2821. }
  2822. function Bo(t) {
  2823. this.__highByOuter |= 1 << (t || 0), Oo(this, Do)
  2824. }
  2825. function Ro(t) {
  2826. !(this.__highByOuter &= ~(1 << (t || 0))) && Oo(this, Po)
  2827. }
  2828. function No(t, e) {
  2829. return t.__highDownSilentOnTouch && e.zrByTouch
  2830. }
  2831. function Fo(t, e) {
  2832. Vo(t, !0), Oo(t, Lo, e)
  2833. }
  2834. function Vo(t, e) {
  2835. var n = e === !1;
  2836. if (t.__highDownSilentOnTouch = t.highDownSilentOnTouch, t.__highDownOnUpdate = t.highDownOnUpdate, !n || t
  2837. .__highDownDispatcher) {
  2838. var i = n ? "off" : "on";
  2839. t[i]("mouseover", zo)[i]("mouseout", Eo), t[i]("emphasis", Bo)[i]("normal", Ro), t.__highByOuter = t
  2840. .__highByOuter || 0, t.__highDownDispatcher = !n
  2841. }
  2842. }
  2843. function Wo(t) {
  2844. return !(!t || !t.__highDownDispatcher)
  2845. }
  2846. function Ho(t) {
  2847. var e = yy[t];
  2848. return null == e && 32 >= my && (e = yy[t] = my++), e
  2849. }
  2850. function Go(t, e, n, i, r, o, a) {
  2851. r = r || dy;
  2852. var s, l = r.labelFetcher,
  2853. u = r.labelDataIndex,
  2854. h = r.labelDimIndex,
  2855. c = r.labelProp,
  2856. d = n.getShallow("show"),
  2857. f = i.getShallow("show");
  2858. (d || f) && (l && (s = l.getFormattedLabel(u, "normal", null, h, c)), null == s && (s = w(r.defaultText) ? r
  2859. .defaultText(u, r) : r.defaultText));
  2860. var p = d ? s : null,
  2861. g = f ? D(l ? l.getFormattedLabel(u, "emphasis", null, h, c) : null, s) : null;
  2862. (null != p || null != g) && (Xo(t, n, o, r), Xo(e, i, a, r, !0)), t.text = p, e.text = g
  2863. }
  2864. function Zo(t, e, n) {
  2865. var i = t.style;
  2866. e && (Qo(i), t.setStyle(e), $o(i)), i = t.__hoverStl, n && i && (Qo(i), a(i, n), $o(i))
  2867. }
  2868. function Xo(t, e, n, i, r) {
  2869. return Uo(t, e, i, r), n && a(t, n), t
  2870. }
  2871. function Yo(t, e, n) {
  2872. var i, r = {
  2873. isRectText: !0
  2874. };
  2875. n === !1 ? i = !0 : r.autoColor = n, Uo(t, e, r, i)
  2876. }
  2877. function Uo(t, e, n, i) {
  2878. if (n = n || dy, n.isRectText) {
  2879. var r;
  2880. n.getTextPosition ? r = n.getTextPosition(e, i) : (r = e.getShallow("position") || (i ? null :
  2881. "inside"), "outside" === r && (r = "top")), t.textPosition = r, t.textOffset = e.getShallow(
  2882. "offset");
  2883. var o = e.getShallow("rotate");
  2884. null != o && (o *= Math.PI / 180), t.textRotation = o, t.textDistance = D(e.getShallow("distance"), i ?
  2885. null : 5)
  2886. }
  2887. var a, s = e.ecModel,
  2888. l = s && s.option.textStyle,
  2889. u = jo(e);
  2890. if (u) {
  2891. a = {};
  2892. for (var h in u)
  2893. if (u.hasOwnProperty(h)) {
  2894. var c = e.getModel(["rich", h]);
  2895. qo(a[h] = {}, c, l, n, i)
  2896. }
  2897. }
  2898. return t.rich = a, qo(t, e, l, n, i, !0), n.forceRich && !n.textStyle && (n.textStyle = {}), t
  2899. }
  2900. function jo(t) {
  2901. for (var e; t && t !== t.ecModel;) {
  2902. var n = (t.option || dy).rich;
  2903. if (n) {
  2904. e = e || {};
  2905. for (var i in n) n.hasOwnProperty(i) && (e[i] = 1)
  2906. }
  2907. t = t.parentModel
  2908. }
  2909. return e
  2910. }
  2911. function qo(t, e, n, i, r, o) {
  2912. n = !r && n || dy, t.textFill = Ko(e.getShallow("color"), i) || n.color, t.textStroke = Ko(e.getShallow(
  2913. "textBorderColor"), i) || n.textBorderColor, t.textStrokeWidth = D(e.getShallow("textBorderWidth"),
  2914. n.textBorderWidth), r || (o && (t.insideRollbackOpt = i, $o(t)), null == t.textFill && (t.textFill =
  2915. i.autoColor)), t.fontStyle = e.getShallow("fontStyle") || n.fontStyle, t.fontWeight = e.getShallow(
  2916. "fontWeight") || n.fontWeight, t.fontSize = e.getShallow("fontSize") || n.fontSize, t.fontFamily = e
  2917. .getShallow("fontFamily") || n.fontFamily, t.textAlign = e.getShallow("align"), t.textVerticalAlign = e
  2918. .getShallow("verticalAlign") || e.getShallow("baseline"), t.textLineHeight = e.getShallow("lineHeight"),
  2919. t.textWidth = e.getShallow("width"), t.textHeight = e.getShallow("height"), t.textTag = e.getShallow(
  2920. "tag"), o && i.disableBox || (t.textBackgroundColor = Ko(e.getShallow("backgroundColor"), i), t
  2921. .textPadding = e.getShallow("padding"), t.textBorderColor = Ko(e.getShallow("borderColor"), i), t
  2922. .textBorderWidth = e.getShallow("borderWidth"), t.textBorderRadius = e.getShallow("borderRadius"), t
  2923. .textBoxShadowColor = e.getShallow("shadowColor"), t.textBoxShadowBlur = e.getShallow("shadowBlur"),
  2924. t.textBoxShadowOffsetX = e.getShallow("shadowOffsetX"), t.textBoxShadowOffsetY = e.getShallow(
  2925. "shadowOffsetY")), t.textShadowColor = e.getShallow("textShadowColor") || n.textShadowColor, t
  2926. .textShadowBlur = e.getShallow("textShadowBlur") || n.textShadowBlur, t.textShadowOffsetX = e
  2927. .getShallow("textShadowOffsetX") || n.textShadowOffsetX, t.textShadowOffsetY = e.getShallow(
  2928. "textShadowOffsetY") || n.textShadowOffsetY
  2929. }
  2930. function Ko(t, e) {
  2931. return "auto" !== t ? t : e && e.autoColor ? e.autoColor : null
  2932. }
  2933. function $o(t) {
  2934. var e, n = t.textPosition,
  2935. i = t.insideRollbackOpt;
  2936. if (i && null == t.textFill) {
  2937. var r = i.autoColor,
  2938. o = i.isRectText,
  2939. a = i.useInsideStyle,
  2940. s = a !== !1 && (a === !0 || o && n && "string" == typeof n && n.indexOf("inside") >= 0),
  2941. l = !s && null != r;
  2942. (s || l) && (e = {
  2943. textFill: t.textFill,
  2944. textStroke: t.textStroke,
  2945. textStrokeWidth: t.textStrokeWidth
  2946. }), s && (t.textFill = "#fff", null == t.textStroke && (t.textStroke = r, null == t.textStrokeWidth && (
  2947. t.textStrokeWidth = 2))), l && (t.textFill = r)
  2948. }
  2949. t.insideRollback = e
  2950. }
  2951. function Qo(t) {
  2952. var e = t.insideRollback;
  2953. e && (t.textFill = e.textFill, t.textStroke = e.textStroke, t.textStrokeWidth = e.textStrokeWidth, t
  2954. .insideRollback = null)
  2955. }
  2956. function Jo(t, e) {
  2957. var n = e && e.getModel("textStyle");
  2958. return z([t.fontStyle || n && n.getShallow("fontStyle") || "", t.fontWeight || n && n.getShallow(
  2959. "fontWeight") || "", (t.fontSize || n && n.getShallow("fontSize") || 12) + "px", t
  2960. .fontFamily || n && n.getShallow("fontFamily") || "sans-serif"
  2961. ].join(" "))
  2962. }
  2963. function ta(t, e, n, i, r, o) {
  2964. "function" == typeof r && (o = r, r = null);
  2965. var a = i && i.isAnimationEnabled();
  2966. if (a) {
  2967. var s = t ? "Update" : "",
  2968. l = i.getShallow("animationDuration" + s),
  2969. u = i.getShallow("animationEasing" + s),
  2970. h = i.getShallow("animationDelay" + s);
  2971. "function" == typeof h && (h = h(r, i.getAnimationDelayParams ? i.getAnimationDelayParams(e, r) :
  2972. null)), "function" == typeof l && (l = l(r)), l > 0 ? e.animateTo(n, l, h || 0, u, o, !!o) : (e
  2973. .stopAnimation(), e.attr(n), o && o())
  2974. } else e.stopAnimation(), e.attr(n), o && o()
  2975. }
  2976. function ea(t, e, n, i, r) {
  2977. ta(!0, t, e, n, i, r)
  2978. }
  2979. function na(t, e, n, i, r) {
  2980. ta(!1, t, e, n, i, r)
  2981. }
  2982. function ia(t, e) {
  2983. for (var n = ze([]); t && t !== e;) Be(n, t.getLocalTransform(), n), t = t.parent;
  2984. return n
  2985. }
  2986. function ra(t, e, n) {
  2987. return e && !d(e) && (e = $p.getLocalTransform(e)), n && (e = Ve([], e)), oe([], t, e)
  2988. }
  2989. function oa(t, e, n) {
  2990. var i = 0 === e[4] || 0 === e[5] || 0 === e[0] ? 1 : Math.abs(2 * e[4] / e[0]),
  2991. r = 0 === e[4] || 0 === e[5] || 0 === e[2] ? 1 : Math.abs(2 * e[4] / e[2]),
  2992. o = ["left" === t ? -i : "right" === t ? i : 0, "top" === t ? -r : "bottom" === t ? r : 0];
  2993. return o = ra(o, e, n), Math.abs(o[0]) > Math.abs(o[1]) ? o[0] > 0 ? "right" : "left" : o[1] > 0 ?
  2994. "bottom" : "top"
  2995. }
  2996. function aa(t, e, n) {
  2997. function i(t) {
  2998. var e = {};
  2999. return t.traverse(function(t) {
  3000. !t.isGroup && t.anid && (e[t.anid] = t)
  3001. }), e
  3002. }
  3003. function r(t) {
  3004. var e = {
  3005. position: G(t.position),
  3006. rotation: t.rotation
  3007. };
  3008. return t.shape && (e.shape = a({}, t.shape)), e
  3009. }
  3010. if (t && e) {
  3011. var o = i(t);
  3012. e.traverse(function(t) {
  3013. if (!t.isGroup && t.anid) {
  3014. var e = o[t.anid];
  3015. if (e) {
  3016. var i = r(t);
  3017. t.attr(r(e)), ea(t, i, n, t.dataIndex)
  3018. }
  3019. }
  3020. })
  3021. }
  3022. }
  3023. function sa(t, e) {
  3024. return p(t, function(t) {
  3025. var n = t[0];
  3026. n = hy(n, e.x), n = cy(n, e.x + e.width);
  3027. var i = t[1];
  3028. return i = hy(i, e.y), i = cy(i, e.y + e.height), [n, i]
  3029. })
  3030. }
  3031. function la(t, e) {
  3032. var n = hy(t.x, e.x),
  3033. i = cy(t.x + t.width, e.x + e.width),
  3034. r = hy(t.y, e.y),
  3035. o = cy(t.y + t.height, e.y + e.height);
  3036. return i >= n && o >= r ? {
  3037. x: n,
  3038. y: r,
  3039. width: i - n,
  3040. height: o - r
  3041. } : void 0
  3042. }
  3043. function ua(t, e, n) {
  3044. e = a({
  3045. rectHover: !0
  3046. }, e);
  3047. var i = e.style = {
  3048. strokeNoScale: !0
  3049. };
  3050. return n = n || {
  3051. x: -1,
  3052. y: -1,
  3053. width: 2,
  3054. height: 2
  3055. }, t ? 0 === t.indexOf("image://") ? (i.image = t.slice(8), s(i, n), new Ai(e)) : _o(t.replace(
  3056. "path://", ""), e, n, "center") : void 0
  3057. }
  3058. function ha(t, e, n, i, r) {
  3059. for (var o = 0, a = r[r.length - 1]; o < r.length; o++) {
  3060. var s = r[o];
  3061. if (ca(t, e, n, i, s[0], s[1], a[0], a[1])) return !0;
  3062. a = s
  3063. }
  3064. }
  3065. function ca(t, e, n, i, r, o, a, s) {
  3066. var l = n - t,
  3067. u = i - e,
  3068. h = a - r,
  3069. c = s - o,
  3070. d = da(h, c, l, u);
  3071. if (fa(d)) return !1;
  3072. var f = t - r,
  3073. p = e - o,
  3074. g = da(f, p, l, u) / d;
  3075. if (0 > g || g > 1) return !1;
  3076. var v = da(f, p, h, c) / d;
  3077. return 0 > v || v > 1 ? !1 : !0
  3078. }
  3079. function da(t, e, n, i) {
  3080. return t * i - n * e
  3081. }
  3082. function fa(t) {
  3083. return 1e-6 >= t && t >= -1e-6
  3084. }
  3085. function pa(t, e, n) {
  3086. this.parentModel = e, this.ecModel = n, this.option = t
  3087. }
  3088. function ga(t, e, n) {
  3089. for (var i = 0; i < e.length && (!e[i] || (t = t && "object" == typeof t ? t[e[i]] : null, null != t)); i++)
  3090. ;
  3091. return null == t && n && (t = n.get(e)), t
  3092. }
  3093. function va(t, e) {
  3094. var n = ky(t).getParent;
  3095. return n ? n.call(t, e) : t.parentModel
  3096. }
  3097. function ma(t) {
  3098. return [t || "", Py++, Math.random().toFixed(5)].join("_")
  3099. }
  3100. function ya(t) {
  3101. var e = {};
  3102. return t.registerSubTypeDefaulter = function(t, n) {
  3103. t = gr(t), e[t.main] = n
  3104. }, t.determineSubType = function(n, i) {
  3105. var r = i.type;
  3106. if (!r) {
  3107. var o = gr(n).main;
  3108. t.hasSubTypes(n) && e[o] && (r = e[o](i))
  3109. }
  3110. return r
  3111. }, t
  3112. }
  3113. function xa(t, e) {
  3114. function n(t) {
  3115. var n = {},
  3116. o = [];
  3117. return f(t, function(a) {
  3118. var s = i(n, a),
  3119. l = s.originalDeps = e(a),
  3120. h = r(l, t);
  3121. s.entryCount = h.length, 0 === s.entryCount && o.push(a), f(h, function(t) {
  3122. u(s.predecessor, t) < 0 && s.predecessor.push(t);
  3123. var e = i(n, t);
  3124. u(e.successor, t) < 0 && e.successor.push(a)
  3125. })
  3126. }), {
  3127. graph: n,
  3128. noEntryList: o
  3129. }
  3130. }
  3131. function i(t, e) {
  3132. return t[e] || (t[e] = {
  3133. predecessor: [],
  3134. successor: []
  3135. }), t[e]
  3136. }
  3137. function r(t, e) {
  3138. var n = [];
  3139. return f(t, function(t) {
  3140. u(e, t) >= 0 && n.push(t)
  3141. }), n
  3142. }
  3143. t.topologicalTravel = function(t, e, i, r) {
  3144. function o(t) {
  3145. l[t].entryCount--, 0 === l[t].entryCount && u.push(t)
  3146. }
  3147. function a(t) {
  3148. h[t] = !0, o(t)
  3149. }
  3150. if (t.length) {
  3151. var s = n(e),
  3152. l = s.graph,
  3153. u = s.noEntryList,
  3154. h = {};
  3155. for (f(t, function(t) {
  3156. h[t] = !0
  3157. }); u.length;) {
  3158. var c = u.pop(),
  3159. d = l[c],
  3160. p = !!h[c];
  3161. p && (i.call(r, c, d.originalDeps.slice()), delete h[c]), f(d.successor, p ? a : o)
  3162. }
  3163. f(h, function() {
  3164. throw new Error("Circle dependency may exists")
  3165. })
  3166. }
  3167. }
  3168. }
  3169. function _a(t) {
  3170. return t.replace(/^\s+|\s+$/g, "")
  3171. }
  3172. function wa(t, e, n, i) {
  3173. var r = e[1] - e[0],
  3174. o = n[1] - n[0];
  3175. if (0 === r) return 0 === o ? n[0] : (n[0] + n[1]) / 2;
  3176. if (i)
  3177. if (r > 0) {
  3178. if (t <= e[0]) return n[0];
  3179. if (t >= e[1]) return n[1]
  3180. } else {
  3181. if (t >= e[0]) return n[0];
  3182. if (t <= e[1]) return n[1]
  3183. }
  3184. else {
  3185. if (t === e[0]) return n[0];
  3186. if (t === e[1]) return n[1]
  3187. }
  3188. return (t - e[0]) / r * o + n[0]
  3189. }
  3190. function ba(t, e) {
  3191. switch (t) {
  3192. case "center":
  3193. case "middle":
  3194. t = "50%";
  3195. break;
  3196. case "left":
  3197. case "top":
  3198. t = "0%";
  3199. break;
  3200. case "right":
  3201. case "bottom":
  3202. t = "100%"
  3203. }
  3204. return "string" == typeof t ? _a(t).match(/%$/) ? parseFloat(t) / 100 * e : parseFloat(t) : null == t ? 0 /
  3205. 0 : +t
  3206. }
  3207. function Sa(t, e, n) {
  3208. return null == e && (e = 10), e = Math.min(Math.max(0, e), 20), t = (+t).toFixed(e), n ? t : +t
  3209. }
  3210. function Ma(t) {
  3211. return t.sort(function(t, e) {
  3212. return t - e
  3213. }), t
  3214. }
  3215. function Ia(t) {
  3216. if (t = +t, isNaN(t)) return 0;
  3217. for (var e = 1, n = 0; Math.round(t * e) / e !== t;) e *= 10, n++;
  3218. return n
  3219. }
  3220. function Ca(t) {
  3221. var e = t.toString(),
  3222. n = e.indexOf("e");
  3223. if (n > 0) {
  3224. var i = +e.slice(n + 1);
  3225. return 0 > i ? -i : 0
  3226. }
  3227. var r = e.indexOf(".");
  3228. return 0 > r ? 0 : e.length - 1 - r
  3229. }
  3230. function Ta(t, e) {
  3231. var n = Math.log,
  3232. i = Math.LN10,
  3233. r = Math.floor(n(t[1] - t[0]) / i),
  3234. o = Math.round(n(Math.abs(e[1] - e[0])) / i),
  3235. a = Math.min(Math.max(-r + o, 0), 20);
  3236. return isFinite(a) ? a : 20
  3237. }
  3238. function Aa(t, e, n) {
  3239. if (!t[e]) return 0;
  3240. var i = g(t, function(t, e) {
  3241. return t + (isNaN(e) ? 0 : e)
  3242. }, 0);
  3243. if (0 === i) return 0;
  3244. for (var r = Math.pow(10, n), o = p(t, function(t) {
  3245. return (isNaN(t) ? 0 : t) / i * r * 100
  3246. }), a = 100 * r, s = p(o, function(t) {
  3247. return Math.floor(t)
  3248. }), l = g(s, function(t, e) {
  3249. return t + e
  3250. }, 0), u = p(o, function(t, e) {
  3251. return t - s[e]
  3252. }); a > l;) {
  3253. for (var h = Number.NEGATIVE_INFINITY, c = null, d = 0, f = u.length; f > d; ++d) u[d] > h && (h = u[d],
  3254. c = d);
  3255. ++s[c], u[c] = 0, ++l
  3256. }
  3257. return s[e] / r
  3258. }
  3259. function Da(t) {
  3260. var e = 2 * Math.PI;
  3261. return (t % e + e) % e
  3262. }
  3263. function ka(t) {
  3264. return t > -Oy && Oy > t
  3265. }
  3266. function Pa(t) {
  3267. if (t instanceof Date) return t;
  3268. if ("string" == typeof t) {
  3269. var e = zy.exec(t);
  3270. if (!e) return new Date(0 / 0);
  3271. if (e[8]) {
  3272. var n = +e[4] || 0;
  3273. return "Z" !== e[8].toUpperCase() && (n -= e[8].slice(0, 3)), new Date(Date.UTC(+e[1], +(e[2] ||
  3274. 1) - 1, +e[3] || 1, n, +(e[5] || 0), +e[6] || 0, +e[7] || 0))
  3275. }
  3276. return new Date(+e[1], +(e[2] || 1) - 1, +e[3] || 1, +e[4] || 0, +(e[5] || 0), +e[6] || 0, +e[7] || 0)
  3277. }
  3278. return new Date(null == t ? 0 / 0 : Math.round(t))
  3279. }
  3280. function Oa(t) {
  3281. return Math.pow(10, La(t))
  3282. }
  3283. function La(t) {
  3284. if (0 === t) return 0;
  3285. var e = Math.floor(Math.log(t) / Math.LN10);
  3286. return t / Math.pow(10, e) >= 10 && e++, e
  3287. }
  3288. function za(t, e) {
  3289. var n, i = La(t),
  3290. r = Math.pow(10, i),
  3291. o = t / r;
  3292. return n = e ? 1.5 > o ? 1 : 2.5 > o ? 2 : 4 > o ? 3 : 7 > o ? 5 : 10 : 1 > o ? 1 : 2 > o ? 2 : 3 > o ? 3 :
  3293. 5 > o ? 5 : 10, t = n * r, i >= -20 ? +t.toFixed(0 > i ? -i : 0) : t
  3294. }
  3295. function Ea(t, e) {
  3296. var n = (t.length - 1) * e + 1,
  3297. i = Math.floor(n),
  3298. r = +t[i - 1],
  3299. o = n - i;
  3300. return o ? r + o * (t[i] - r) : r
  3301. }
  3302. function Ba(t) {
  3303. function e(t, n, i) {
  3304. return t.interval[i] < n.interval[i] || t.interval[i] === n.interval[i] && (t.close[i] - n.close[i] ===
  3305. (i ? -1 : 1) || !i && e(t, n, 1))
  3306. }
  3307. t.sort(function(t, n) {
  3308. return e(t, n, 0) ? -1 : 1
  3309. });
  3310. for (var n = -1 / 0, i = 1, r = 0; r < t.length;) {
  3311. for (var o = t[r].interval, a = t[r].close, s = 0; 2 > s; s++) o[s] <= n && (o[s] = n, a[s] = s ? 1 :
  3312. 1 - i), n = o[s], i = a[s];
  3313. o[0] === o[1] && a[0] * a[1] !== 1 ? t.splice(r, 1) : r++
  3314. }
  3315. return t
  3316. }
  3317. function Ra(t) {
  3318. return t - parseFloat(t) >= 0
  3319. }
  3320. function Na(t) {
  3321. return isNaN(t) ? "-" : (t = (t + "").split("."), t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (t
  3322. .length > 1 ? "." + t[1] : ""))
  3323. }
  3324. function Fa(t, e) {
  3325. return t = (t || "").toLowerCase().replace(/-(.)/g, function(t, e) {
  3326. return e.toUpperCase()
  3327. }), e && t && (t = t.charAt(0).toUpperCase() + t.slice(1)), t
  3328. }
  3329. function Va(t) {
  3330. return null == t ? "" : (t + "").replace(Ry, function(t, e) {
  3331. return Ny[e]
  3332. })
  3333. }
  3334. function Wa(t, e, n) {
  3335. _(e) || (e = [e]);
  3336. var i = e.length;
  3337. if (!i) return "";
  3338. for (var r = e[0].$vars || [], o = 0; o < r.length; o++) {
  3339. var a = Fy[o];
  3340. t = t.replace(Vy(a), Vy(a, 0))
  3341. }
  3342. for (var s = 0; i > s; s++)
  3343. for (var l = 0; l < r.length; l++) {
  3344. var u = e[s][r[l]];
  3345. t = t.replace(Vy(Fy[l], s), n ? Va(u) : u)
  3346. }
  3347. return t
  3348. }
  3349. function Ha(t, e, n) {
  3350. return f(e, function(e, i) {
  3351. t = t.replace("{" + i + "}", n ? Va(e) : e)
  3352. }), t
  3353. }
  3354. function Ga(t, e) {
  3355. t = b(t) ? {
  3356. color: t,
  3357. extraCssText: e
  3358. } : t || {};
  3359. var n = t.color,
  3360. i = t.type,
  3361. e = t.extraCssText,
  3362. r = t.renderMode || "html",
  3363. o = t.markerId || "X";
  3364. return n ? "html" === r ? "subItem" === i ?
  3365. '<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:' +
  3366. Va(n) + ";" + (e || "") + '"></span>' :
  3367. '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:' +
  3368. Va(n) + ";" + (e || "") + '"></span>' : {
  3369. renderMode: r,
  3370. content: "{marker" + o + "|} ",
  3371. style: {
  3372. color: n
  3373. }
  3374. } : ""
  3375. }
  3376. function Za(t, e) {
  3377. return t += "", "0000".substr(0, e - t.length) + t
  3378. }
  3379. function Xa(t, e, n) {
  3380. ("week" === t || "month" === t || "quarter" === t || "half-year" === t || "year" === t) && (t =
  3381. "MM-dd\nyyyy");
  3382. var i = Pa(e),
  3383. r = n ? "UTC" : "",
  3384. o = i["get" + r + "FullYear"](),
  3385. a = i["get" + r + "Month"]() + 1,
  3386. s = i["get" + r + "Date"](),
  3387. l = i["get" + r + "Hours"](),
  3388. u = i["get" + r + "Minutes"](),
  3389. h = i["get" + r + "Seconds"](),
  3390. c = i["get" + r + "Milliseconds"]();
  3391. return t = t.replace("MM", Za(a, 2)).replace("M", a).replace("yyyy", o).replace("yy", o % 100).replace("dd",
  3392. Za(s, 2)).replace("d", s).replace("hh", Za(l, 2)).replace("h", l).replace("mm", Za(u, 2)).replace(
  3393. "m", u).replace("ss", Za(h, 2)).replace("s", h).replace("SSS", Za(c, 3))
  3394. }
  3395. function Ya(t) {
  3396. return t ? t.charAt(0).toUpperCase() + t.substr(1) : t
  3397. }
  3398. function Ua(t) {
  3399. return Yn(t.text, t.font, t.textAlign, t.textVerticalAlign, t.textPadding, t.textLineHeight, t.rich, t
  3400. .truncate)
  3401. }
  3402. function ja(t, e, n, i, r, o, a, s) {
  3403. return Yn(t, e, n, i, r, s, o, a)
  3404. }
  3405. function qa(t, e) {
  3406. if ("_blank" === e || "blank" === e) {
  3407. var n = window.open();
  3408. n.opener = null, n.location = t
  3409. } else window.open(t, e)
  3410. }
  3411. function Ka(t, e, n, i, r) {
  3412. var o = 0,
  3413. a = 0;
  3414. null == i && (i = 1 / 0), null == r && (r = 1 / 0);
  3415. var s = 0;
  3416. e.eachChild(function(l, u) {
  3417. var h, c, d = l.position,
  3418. f = l.getBoundingRect(),
  3419. p = e.childAt(u + 1),
  3420. g = p && p.getBoundingRect();
  3421. if ("horizontal" === t) {
  3422. var v = f.width + (g ? -g.x + f.x : 0);
  3423. h = o + v, h > i || l.newline ? (o = 0, h = v, a += s + n, s = f.height) : s = Math.max(s, f
  3424. .height)
  3425. } else {
  3426. var m = f.height + (g ? -g.y + f.y : 0);
  3427. c = a + m, c > r || l.newline ? (o += s + n, a = 0, c = m, s = f.width) : s = Math.max(s, f
  3428. .width)
  3429. }
  3430. l.newline || (d[0] = o, d[1] = a, "horizontal" === t ? o = h + n : a = c + n)
  3431. })
  3432. }
  3433. function $a(t, e, n) {
  3434. n = By(n || 0);
  3435. var i = e.width,
  3436. r = e.height,
  3437. o = ba(t.left, i),
  3438. a = ba(t.top, r),
  3439. s = ba(t.right, i),
  3440. l = ba(t.bottom, r),
  3441. u = ba(t.width, i),
  3442. h = ba(t.height, r),
  3443. c = n[2] + n[0],
  3444. d = n[1] + n[3],
  3445. f = t.aspect;
  3446. switch (isNaN(u) && (u = i - s - d - o), isNaN(h) && (h = r - l - c - a), null != f && (isNaN(u) && isNaN(
  3447. h) && (f > i / r ? u = .8 * i : h = .8 * r), isNaN(u) && (u = f * h), isNaN(h) && (h = u / f)),
  3448. isNaN(o) && (o = i - s - u - d), isNaN(a) && (a = r - l - h - c), t.left || t.right) {
  3449. case "center":
  3450. o = i / 2 - u / 2 - n[3];
  3451. break;
  3452. case "right":
  3453. o = i - u - d
  3454. }
  3455. switch (t.top || t.bottom) {
  3456. case "middle":
  3457. case "center":
  3458. a = r / 2 - h / 2 - n[0];
  3459. break;
  3460. case "bottom":
  3461. a = r - h - c
  3462. }
  3463. o = o || 0, a = a || 0, isNaN(u) && (u = i - d - o - (s || 0)), isNaN(h) && (h = r - c - a - (l || 0));
  3464. var p = new Tn(o + n[3], a + n[0], u, h);
  3465. return p.margin = n, p
  3466. }
  3467. function Qa(t, e, n) {
  3468. function i(n, i) {
  3469. var a = {},
  3470. l = 0,
  3471. u = {},
  3472. h = 0,
  3473. c = 2;
  3474. if (Gy(n, function(e) {
  3475. u[e] = t[e]
  3476. }), Gy(n, function(t) {
  3477. r(e, t) && (a[t] = u[t] = e[t]), o(a, t) && l++, o(u, t) && h++
  3478. }), s[i]) return o(e, n[1]) ? u[n[2]] = null : o(e, n[2]) && (u[n[1]] = null), u;
  3479. if (h !== c && l) {
  3480. if (l >= c) return a;
  3481. for (var d = 0; d < n.length; d++) {
  3482. var f = n[d];
  3483. if (!r(a, f) && r(t, f)) {
  3484. a[f] = t[f];
  3485. break
  3486. }
  3487. }
  3488. return a
  3489. }
  3490. return u
  3491. }
  3492. function r(t, e) {
  3493. return t.hasOwnProperty(e)
  3494. }
  3495. function o(t, e) {
  3496. return null != t[e] && "auto" !== t[e]
  3497. }
  3498. function a(t, e, n) {
  3499. Gy(t, function(t) {
  3500. e[t] = n[t]
  3501. })
  3502. }!S(n) && (n = {});
  3503. var s = n.ignoreSize;
  3504. !_(s) && (s = [s, s]);
  3505. var l = i(Xy[0], 0),
  3506. u = i(Xy[1], 1);
  3507. a(Xy[0], t, l), a(Xy[1], t, u)
  3508. }
  3509. function Ja(t) {
  3510. return ts({}, t)
  3511. }
  3512. function ts(t, e) {
  3513. return e && t && Gy(Zy, function(n) {
  3514. e.hasOwnProperty(n) && (t[n] = e[n])
  3515. }), t
  3516. }
  3517. function es(t) {
  3518. var e = [];
  3519. return f(qy.getClassesByMainType(t), function(t) {
  3520. e = e.concat(t.prototype.dependencies || [])
  3521. }), e = p(e, function(t) {
  3522. return gr(t).main
  3523. }), "dataset" !== t && u(e, "dataset") <= 0 && e.unshift("dataset"), e
  3524. }
  3525. function ns(t, e) {
  3526. for (var n = t.length, i = 0; n > i; i++)
  3527. if (t[i].length > e) return t[i];
  3528. return t[n - 1]
  3529. }
  3530. function is(t) {
  3531. this.fromDataset = t.fromDataset, this.data = t.data || (t.sourceFormat === ix ? {} : []), this
  3532. .sourceFormat = t.sourceFormat || rx, this.seriesLayoutBy = t.seriesLayoutBy || ax, this
  3533. .dimensionsDefine = t.dimensionsDefine, this.encodeDefine = t.encodeDefine && N(t.encodeDefine), this
  3534. .startIndex = t.startIndex || 0, this.dimensionsDetectCount = t.dimensionsDetectCount
  3535. }
  3536. function rs(t) {
  3537. var e = t.option.source,
  3538. n = rx;
  3539. if (I(e)) n = ox;
  3540. else if (_(e)) {
  3541. 0 === e.length && (n = ex);
  3542. for (var i = 0, r = e.length; r > i; i++) {
  3543. var o = e[i];
  3544. if (null != o) {
  3545. if (_(o)) {
  3546. n = ex;
  3547. break
  3548. }
  3549. if (S(o)) {
  3550. n = nx;
  3551. break
  3552. }
  3553. }
  3554. }
  3555. } else if (S(e)) {
  3556. for (var a in e)
  3557. if (e.hasOwnProperty(a) && d(e[a])) {
  3558. n = ix;
  3559. break
  3560. }
  3561. } else if (null != e) throw new Error("Invalid data");
  3562. ux(t).sourceFormat = n
  3563. }
  3564. function os(t) {
  3565. return ux(t).source
  3566. }
  3567. function as(t) {
  3568. ux(t).datasetMap = N()
  3569. }
  3570. function ss(t) {
  3571. var e = t.option,
  3572. n = e.data,
  3573. i = I(n) ? ox : tx,
  3574. r = !1,
  3575. o = e.seriesLayoutBy,
  3576. a = e.sourceHeader,
  3577. s = e.dimensions,
  3578. l = fs(t);
  3579. if (l) {
  3580. var u = l.option;
  3581. n = u.source, i = ux(l).sourceFormat, r = !0, o = o || u.seriesLayoutBy, null == a && (a = u
  3582. .sourceHeader), s = s || u.dimensions
  3583. }
  3584. var h = ls(n, i, o, a, s);
  3585. ux(t).source = new is({
  3586. data: n,
  3587. fromDataset: r,
  3588. seriesLayoutBy: o,
  3589. sourceFormat: i,
  3590. dimensionsDefine: h.dimensionsDefine,
  3591. startIndex: h.startIndex,
  3592. dimensionsDetectCount: h.dimensionsDetectCount,
  3593. encodeDefine: e.encode
  3594. })
  3595. }
  3596. function ls(t, e, n, i, r) {
  3597. if (!t) return {
  3598. dimensionsDefine: us(r)
  3599. };
  3600. var o, a;
  3601. if (e === ex) "auto" === i || null == i ? hs(function(t) {
  3602. null != t && "-" !== t && (b(t) ? null == a && (a = 1) : a = 0)
  3603. }, n, t, 10) : a = i ? 1 : 0, r || 1 !== a || (r = [], hs(function(t, e) {
  3604. r[e] = null != t ? t : ""
  3605. }, n, t)), o = r ? r.length : n === sx ? t.length : t[0] ? t[0].length : null;
  3606. else if (e === nx) r || (r = cs(t));
  3607. else if (e === ix) r || (r = [], f(t, function(t, e) {
  3608. r.push(e)
  3609. }));
  3610. else if (e === tx) {
  3611. var s = nr(t[0]);
  3612. o = _(s) && s.length || 1
  3613. } else e === ox && lp && L(!!r, "dimensions must be given if data is TypedArray.");
  3614. return {
  3615. startIndex: a,
  3616. dimensionsDefine: us(r),
  3617. dimensionsDetectCount: o
  3618. }
  3619. }
  3620. function us(t) {
  3621. if (t) {
  3622. var e = N();
  3623. return p(t, function(t) {
  3624. if (t = a({}, S(t) ? t : {
  3625. name: t
  3626. }), null == t.name) return t;
  3627. t.name += "", null == t.displayName && (t.displayName = t.name);
  3628. var n = e.get(t.name);
  3629. return n ? t.name += "-" + n.count++ : e.set(t.name, {
  3630. count: 1
  3631. }), t
  3632. })
  3633. }
  3634. }
  3635. function hs(t, e, n, i) {
  3636. if (null == i && (i = 1 / 0), e === sx)
  3637. for (var r = 0; r < n.length && i > r; r++) t(n[r] ? n[r][0] : null, r);
  3638. else
  3639. for (var o = n[0] || [], r = 0; r < o.length && i > r; r++) t(o[r], r)
  3640. }
  3641. function cs(t) {
  3642. for (var e, n = 0; n < t.length && !(e = t[n++]););
  3643. if (e) {
  3644. var i = [];
  3645. return f(e, function(t, e) {
  3646. i.push(e)
  3647. }), i
  3648. }
  3649. }
  3650. function ds(t, e, n) {
  3651. function i(t, e, n) {
  3652. for (var i = 0; n > i; i++) t.push(e + i)
  3653. }
  3654. function r(t) {
  3655. var e = t.dimsDef;
  3656. return e ? e.length : 1
  3657. }
  3658. var o = {},
  3659. a = fs(e);
  3660. if (!a || !t) return o;
  3661. var s, l, u = [],
  3662. h = [],
  3663. c = e.ecModel,
  3664. d = ux(c).datasetMap,
  3665. p = a.uid + "_" + n.seriesLayoutBy;
  3666. t = t.slice(), f(t, function(e, n) {
  3667. !S(e) && (t[n] = {
  3668. name: e
  3669. }), "ordinal" === e.type && null == s && (s = n, l = r(t[n])), o[e.name] = []
  3670. });
  3671. var g = d.get(p) || d.set(p, {
  3672. categoryWayDim: l,
  3673. valueWayDim: 0
  3674. });
  3675. return f(t, function(t, e) {
  3676. var n = t.name,
  3677. a = r(t);
  3678. if (null == s) {
  3679. var l = g.valueWayDim;
  3680. i(o[n], l, a), i(h, l, a), g.valueWayDim += a
  3681. } else if (s === e) i(o[n], 0, a), i(u, 0, a);
  3682. else {
  3683. var l = g.categoryWayDim;
  3684. i(o[n], l, a), i(h, l, a), g.categoryWayDim += a
  3685. }
  3686. }), u.length && (o.itemName = u), h.length && (o.seriesName = h), o
  3687. }
  3688. function fs(t) {
  3689. var e = t.option,
  3690. n = e.data;
  3691. return n ? void 0 : t.ecModel.getComponent("dataset", e.datasetIndex || 0)
  3692. }
  3693. function ps(t, e) {
  3694. return gs(t.data, t.sourceFormat, t.seriesLayoutBy, t.dimensionsDefine, t.startIndex, e)
  3695. }
  3696. function gs(t, e, n, i, r, o) {
  3697. function a(t) {
  3698. var e = b(t);
  3699. return null != t && isFinite(t) && "" !== t ? e ? lx.Might : lx.Not : e && "-" !== t ? lx.Must : void 0
  3700. }
  3701. var s, l = 5;
  3702. if (I(t)) return lx.Not;
  3703. var u, h;
  3704. if (i) {
  3705. var c = i[o];
  3706. S(c) ? (u = c.name, h = c.type) : b(c) && (u = c)
  3707. }
  3708. if (null != h) return "ordinal" === h ? lx.Must : lx.Not;
  3709. if (e === ex)
  3710. if (n === sx) {
  3711. for (var d = t[o], f = 0; f < (d || []).length && l > f; f++)
  3712. if (null != (s = a(d[r + f]))) return s
  3713. } else
  3714. for (var f = 0; f < t.length && l > f; f++) {
  3715. var p = t[r + f];
  3716. if (p && null != (s = a(p[o]))) return s
  3717. } else if (e === nx) {
  3718. if (!u) return lx.Not;
  3719. for (var f = 0; f < t.length && l > f; f++) {
  3720. var g = t[f];
  3721. if (g && null != (s = a(g[u]))) return s
  3722. }
  3723. } else if (e === ix) {
  3724. if (!u) return lx.Not;
  3725. var d = t[u];
  3726. if (!d || I(d)) return lx.Not;
  3727. for (var f = 0; f < d.length && l > f; f++)
  3728. if (null != (s = a(d[f]))) return s
  3729. } else if (e === tx)
  3730. for (var f = 0; f < t.length && l > f; f++) {
  3731. var g = t[f],
  3732. v = nr(g);
  3733. if (!_(v)) return lx.Not;
  3734. if (null != (s = a(v[o]))) return s
  3735. }
  3736. return lx.Not
  3737. }
  3738. function vs(t, e) {
  3739. if (e) {
  3740. var n = e.seiresIndex,
  3741. i = e.seriesId,
  3742. r = e.seriesName;
  3743. return null != n && t.componentIndex !== n || null != i && t.id !== i || null != r && t.name !== r
  3744. }
  3745. }
  3746. function ms(t, e) {
  3747. var n = t.color && !t.colorLayer;
  3748. f(e, function(e, o) {
  3749. "colorLayer" === o && n || qy.hasClass(o) || ("object" == typeof e ? t[o] = t[o] ? r(t[o], e, !
  3750. 1) : i(e) : null == t[o] && (t[o] = e))
  3751. })
  3752. }
  3753. function ys(t) {
  3754. t = t, this.option = {}, this.option[hx] = 1, this._componentsMap = N({
  3755. series: []
  3756. }), this._seriesIndices, this._seriesIndicesMap, ms(t, this._theme.option), r(t, $y, !1), this
  3757. .mergeOption(t)
  3758. }
  3759. function xs(t, e) {
  3760. _(e) || (e = e ? [e] : []);
  3761. var n = {};
  3762. return f(e, function(e) {
  3763. n[e] = (t.get(e) || []).slice()
  3764. }), n
  3765. }
  3766. function _s(t, e, n) {
  3767. var i = e.type ? e.type : n ? n.subType : qy.determineSubType(t, e);
  3768. return i
  3769. }
  3770. function ws(t, e) {
  3771. t._seriesIndicesMap = N(t._seriesIndices = p(e, function(t) {
  3772. return t.componentIndex
  3773. }) || [])
  3774. }
  3775. function bs(t, e) {
  3776. return e.hasOwnProperty("subType") ? v(t, function(t) {
  3777. return t.subType === e.subType
  3778. }) : t
  3779. }
  3780. function Ss(t) {
  3781. if (lp && !t._seriesIndices) throw new Error("Option should contains series.")
  3782. }
  3783. function Ms(t) {
  3784. f(dx, function(e) {
  3785. this[e] = y(t[e], t)
  3786. }, this)
  3787. }
  3788. function Is() {
  3789. this._coordinateSystems = []
  3790. }
  3791. function Cs(t) {
  3792. this._api = t, this._timelineOptions = [], this._mediaList = [], this._mediaDefault, this
  3793. ._currentMediaIndices = [], this._optionBackup, this._newBaseOption
  3794. }
  3795. function Ts(t, e, n) {
  3796. var i, r, o = [],
  3797. a = [],
  3798. s = t.timeline;
  3799. if (t.baseOption && (r = t.baseOption), (s || t.options) && (r = r || {}, o = (t.options || []).slice()), t
  3800. .media) {
  3801. r = r || {};
  3802. var l = t.media;
  3803. px(l, function(t) {
  3804. t && t.option && (t.query ? a.push(t) : i || (i = t))
  3805. })
  3806. }
  3807. return r || (r = t), r.timeline || (r.timeline = s), px([r].concat(o).concat(p(a, function(t) {
  3808. return t.option
  3809. })), function(t) {
  3810. px(e, function(e) {
  3811. e(t, n)
  3812. })
  3813. }), {
  3814. baseOption: r,
  3815. timelineOptions: o,
  3816. mediaDefault: i,
  3817. mediaList: a
  3818. }
  3819. }
  3820. function As(t, e, n) {
  3821. var i = {
  3822. width: e,
  3823. height: n,
  3824. aspectratio: e / n
  3825. },
  3826. r = !0;
  3827. return f(t, function(t, e) {
  3828. var n = e.match(yx);
  3829. if (n && n[1] && n[2]) {
  3830. var o = n[1],
  3831. a = n[2].toLowerCase();
  3832. Ds(i[a], t, o) || (r = !1)
  3833. }
  3834. }), r
  3835. }
  3836. function Ds(t, e, n) {
  3837. return "min" === n ? t >= e : "max" === n ? e >= t : t === e
  3838. }
  3839. function ks(t, e) {
  3840. return t.join(",") === e.join(",")
  3841. }
  3842. function Ps(t, e) {
  3843. e = e || {}, px(e, function(e, n) {
  3844. if (null != e) {
  3845. var i = t[n];
  3846. if (qy.hasClass(n)) {
  3847. e = tr(e), i = tr(i);
  3848. var r = rr(i, e);
  3849. t[n] = vx(r, function(t) {
  3850. return t.option && t.exist ? mx(t.exist, t.option, !0) : t.exist || t.option
  3851. })
  3852. } else t[n] = mx(i, e, !0)
  3853. }
  3854. })
  3855. }
  3856. function Os(t) {
  3857. var e = t && t.itemStyle;
  3858. if (e)
  3859. for (var n = 0, i = bx.length; i > n; n++) {
  3860. var o = bx[n],
  3861. a = e.normal,
  3862. s = e.emphasis;
  3863. a && a[o] && (t[o] = t[o] || {}, t[o].normal ? r(t[o].normal, a[o]) : t[o].normal = a[o], a[o] =
  3864. null), s && s[o] && (t[o] = t[o] || {}, t[o].emphasis ? r(t[o].emphasis, s[o]) : t[o]
  3865. .emphasis = s[o], s[o] = null)
  3866. }
  3867. }
  3868. function Ls(t, e, n) {
  3869. if (t && t[e] && (t[e].normal || t[e].emphasis)) {
  3870. var i = t[e].normal,
  3871. r = t[e].emphasis;
  3872. i && (n ? (t[e].normal = t[e].emphasis = null, s(t[e], i)) : t[e] = i), r && (t.emphasis = t.emphasis ||
  3873. {}, t.emphasis[e] = r)
  3874. }
  3875. }
  3876. function zs(t) {
  3877. Ls(t, "itemStyle"), Ls(t, "lineStyle"), Ls(t, "areaStyle"), Ls(t, "label"), Ls(t, "labelLine"), Ls(t,
  3878. "upperLabel"), Ls(t, "edgeLabel")
  3879. }
  3880. function Es(t, e) {
  3881. var n = _x(t) && t[e],
  3882. i = _x(n) && n.textStyle;
  3883. if (i)
  3884. for (var r = 0, o = Dv.length; o > r; r++) {
  3885. var e = Dv[r];
  3886. i.hasOwnProperty(e) && (n[e] = i[e])
  3887. }
  3888. }
  3889. function Bs(t) {
  3890. t && (zs(t), Es(t, "label"), t.emphasis && Es(t.emphasis, "label"))
  3891. }
  3892. function Rs(t) {
  3893. if (_x(t)) {
  3894. Os(t), zs(t), Es(t, "label"), Es(t, "upperLabel"), Es(t, "edgeLabel"), t.emphasis && (Es(t.emphasis,
  3895. "label"), Es(t.emphasis, "upperLabel"), Es(t.emphasis, "edgeLabel"));
  3896. var e = t.markPoint;
  3897. e && (Os(e), Bs(e));
  3898. var n = t.markLine;
  3899. n && (Os(n), Bs(n));
  3900. var i = t.markArea;
  3901. i && Bs(i);
  3902. var r = t.data;
  3903. if ("graph" === t.type) {
  3904. r = r || t.nodes;
  3905. var o = t.links || t.edges;
  3906. if (o && !I(o))
  3907. for (var a = 0; a < o.length; a++) Bs(o[a]);
  3908. f(t.categories, function(t) {
  3909. zs(t)
  3910. })
  3911. }
  3912. if (r && !I(r))
  3913. for (var a = 0; a < r.length; a++) Bs(r[a]);
  3914. var e = t.markPoint;
  3915. if (e && e.data)
  3916. for (var s = e.data, a = 0; a < s.length; a++) Bs(s[a]);
  3917. var n = t.markLine;
  3918. if (n && n.data)
  3919. for (var l = n.data, a = 0; a < l.length; a++) _(l[a]) ? (Bs(l[a][0]), Bs(l[a][1])) : Bs(l[a]);
  3920. "gauge" === t.type ? (Es(t, "axisLabel"), Es(t, "title"), Es(t, "detail")) : "treemap" === t.type ? (Ls(
  3921. t.breadcrumb, "itemStyle"), f(t.levels, function(t) {
  3922. zs(t)
  3923. })) : "tree" === t.type && zs(t.leaves)
  3924. }
  3925. }
  3926. function Ns(t) {
  3927. return _(t) ? t : t ? [t] : []
  3928. }
  3929. function Fs(t) {
  3930. return (_(t) ? t[0] : t) || {}
  3931. }
  3932. function Vs(t, e) {
  3933. e = e.split(",");
  3934. for (var n = t, i = 0; i < e.length && (n = n && n[e[i]], null != n); i++);
  3935. return n
  3936. }
  3937. function Ws(t, e, n, i) {
  3938. e = e.split(",");
  3939. for (var r, o = t, a = 0; a < e.length - 1; a++) r = e[a], null == o[r] && (o[r] = {}), o = o[r];
  3940. (i || null == o[e[a]]) && (o[e[a]] = n)
  3941. }
  3942. function Hs(t) {
  3943. f(Mx, function(e) {
  3944. e[0] in t && !(e[1] in t) && (t[e[1]] = t[e[0]])
  3945. })
  3946. }
  3947. function Gs(t) {
  3948. f(t, function(e, n) {
  3949. var i = [],
  3950. r = [0 / 0, 0 / 0],
  3951. o = [e.stackResultDimension, e.stackedOverDimension],
  3952. a = e.data,
  3953. s = e.isStackedByIndex,
  3954. l = a.map(o, function(o, l, u) {
  3955. var h = a.get(e.stackedDimension, u);
  3956. if (isNaN(h)) return r;
  3957. var c, d;
  3958. s ? d = a.getRawIndex(u) : c = a.get(e.stackedByDimension, u);
  3959. for (var f = 0 / 0, p = n - 1; p >= 0; p--) {
  3960. var g = t[p];
  3961. if (s || (d = g.data.rawIndexOf(g.stackedByDimension, c)), d >= 0) {
  3962. var v = g.data.getByRawIndex(g.stackResultDimension, d);
  3963. if (h >= 0 && v > 0 || 0 >= h && 0 > v) {
  3964. h += v, f = v;
  3965. break
  3966. }
  3967. }
  3968. }
  3969. return i[0] = h, i[1] = f, i
  3970. });
  3971. a.hostModel.setData(l), e.data = l
  3972. })
  3973. }
  3974. function Zs(t, e) {
  3975. is.isInstance(t) || (t = is.seriesDataToSource(t)), this._source = t;
  3976. var n = this._data = t.data,
  3977. i = t.sourceFormat;
  3978. if (i === ox) {
  3979. if (lp && null == e) throw new Error("Typed array data must specify dimension size");
  3980. this._offset = 0, this._dimSize = e, this._data = n
  3981. }
  3982. var r = Dx[i === ex ? i + "_" + t.seriesLayoutBy : i];
  3983. lp && L(r, "Invalide sourceFormat: " + i), a(this, r)
  3984. }
  3985. function Xs() {
  3986. return this._data.length
  3987. }
  3988. function Ys(t) {
  3989. return this._data[t]
  3990. }
  3991. function Us(t) {
  3992. for (var e = 0; e < t.length; e++) this._data.push(t[e])
  3993. }
  3994. function js(t, e, n) {
  3995. return null != n ? t[n] : t
  3996. }
  3997. function qs(t, e, n, i) {
  3998. return Ks(t[i], this._dimensionInfos[e])
  3999. }
  4000. function Ks(t, e) {
  4001. var n = e && e.type;
  4002. if ("ordinal" === n) {
  4003. var i = e && e.ordinalMeta;
  4004. return i ? i.parseAndCollect(t) : t
  4005. }
  4006. return "time" === n && "number" != typeof t && null != t && "-" !== t && (t = +Pa(t)), null == t || "" ===
  4007. t ? 0 / 0 : +t
  4008. }
  4009. function $s(t, e, n) {
  4010. if (t) {
  4011. var i = t.getRawDataItem(e);
  4012. if (null != i) {
  4013. var r, o, a = t.getProvider().getSource().sourceFormat,
  4014. s = t.getDimensionInfo(n);
  4015. return s && (r = s.name, o = s.index), kx[a](i, e, o, r)
  4016. }
  4017. }
  4018. }
  4019. function Qs(t) {
  4020. return new Js(t)
  4021. }
  4022. function Js(t) {
  4023. t = t || {}, this._reset = t.reset, this._plan = t.plan, this._count = t.count, this._onDirty = t.onDirty,
  4024. this._dirty = !0, this.context
  4025. }
  4026. function tl(t, e, n, i, r, o) {
  4027. Ex.reset(n, i, r, o), t._callingProgress = e, t._callingProgress({
  4028. start: n,
  4029. end: i,
  4030. count: i - n,
  4031. next: Ex.next
  4032. }, t.context)
  4033. }
  4034. function el(t, e) {
  4035. t._dueIndex = t._outputDueEnd = t._dueEnd = 0, t._settedOutputEnd = null;
  4036. var n, i;
  4037. !e && t._reset && (n = t._reset(t.context), n && n.progress && (i = n.forceFirstProgress, n = n.progress),
  4038. _(n) && !n.length && (n = null)), t._progress = n, t._modBy = t._modDataCount = null;
  4039. var r = t._downstream;
  4040. return r && r.dirty(), i
  4041. }
  4042. function nl(t) {
  4043. var e = t.name;
  4044. ar(t) || (t.name = il(t) || e)
  4045. }
  4046. function il(t) {
  4047. var e = t.getRawData(),
  4048. n = e.mapDimension("seriesName", !0),
  4049. i = [];
  4050. return f(n, function(t) {
  4051. var n = e.getDimensionInfo(t);
  4052. n.displayName && i.push(n.displayName)
  4053. }), i.join(" ")
  4054. }
  4055. function rl(t) {
  4056. return t.model.getRawData().count()
  4057. }
  4058. function ol(t) {
  4059. var e = t.model;
  4060. return e.setData(e.getRawData().cloneShallow()), al
  4061. }
  4062. function al(t, e) {
  4063. e.outputData && t.end > e.outputData.count() && e.model.getRawData().cloneShallow(e.outputData)
  4064. }
  4065. function sl(t, e) {
  4066. f(t.CHANGABLE_METHODS, function(n) {
  4067. t.wrapMethod(n, x(ll, e))
  4068. })
  4069. }
  4070. function ll(t) {
  4071. var e = ul(t);
  4072. e && e.setOutputEnd(this.count())
  4073. }
  4074. function ul(t) {
  4075. var e = (t.ecModel || {}).scheduler,
  4076. n = e && e.getPipeline(t.uid);
  4077. if (n) {
  4078. var i = n.currentTask;
  4079. if (i) {
  4080. var r = i.agentStubMap;
  4081. r && (i = r.get(t.uid))
  4082. }
  4083. return i
  4084. }
  4085. }
  4086. function hl() {
  4087. this.group = new Cg, this.uid = ma("viewChart"), this.renderTask = Qs({
  4088. plan: fl,
  4089. reset: pl
  4090. }), this.renderTask.context = {
  4091. view: this
  4092. }
  4093. }
  4094. function cl(t, e, n) {
  4095. if (t && (t.trigger(e, n), t.isGroup && !Wo(t)))
  4096. for (var i = 0, r = t.childCount(); r > i; i++) cl(t.childAt(i), e, n)
  4097. }
  4098. function dl(t, e, n) {
  4099. var i = lr(t, e),
  4100. r = e && null != e.highlightKey ? Ho(e.highlightKey) : null;
  4101. null != i ? f(tr(i), function(e) {
  4102. cl(t.getItemGraphicEl(e), n, r)
  4103. }) : t.eachItemGraphicEl(function(t) {
  4104. cl(t, n, r)
  4105. })
  4106. }
  4107. function fl(t) {
  4108. return Hx(t.model)
  4109. }
  4110. function pl(t) {
  4111. var e = t.model,
  4112. n = t.ecModel,
  4113. i = t.api,
  4114. r = t.payload,
  4115. o = e.pipelineContext.progressiveRender,
  4116. a = t.view,
  4117. s = r && Wx(r).updateMethod,
  4118. l = o ? "incrementalPrepareRender" : s && a[s] ? s : "render";
  4119. return "render" !== l && a[l](e, n, i, r), Zx[l]
  4120. }
  4121. function gl(t, e, n) {
  4122. function i() {
  4123. h = (new Date).getTime(), c = null, t.apply(a, s || [])
  4124. }
  4125. var r, o, a, s, l, u = 0,
  4126. h = 0,
  4127. c = null;
  4128. e = e || 0;
  4129. var d = function() {
  4130. r = (new Date).getTime(), a = this, s = arguments;
  4131. var t = l || e,
  4132. d = l || n;
  4133. l = null, o = r - (d ? u : h) - t, clearTimeout(c), d ? c = setTimeout(i, t) : o >= 0 ? i() : c =
  4134. setTimeout(i, -o), u = r
  4135. };
  4136. return d.clear = function() {
  4137. c && (clearTimeout(c), c = null)
  4138. }, d.debounceNextCall = function(t) {
  4139. l = t
  4140. }, d
  4141. }
  4142. function vl(t, e, n, i) {
  4143. var r = t[e];
  4144. if (r) {
  4145. var o = r[Xx] || r,
  4146. a = r[Ux],
  4147. s = r[Yx];
  4148. if (s !== n || a !== i) {
  4149. if (null == n || !i) return t[e] = o;
  4150. r = t[e] = gl(o, n, "debounce" === i), r[Xx] = o, r[Ux] = i, r[Yx] = n
  4151. }
  4152. return r
  4153. }
  4154. }
  4155. function ml(t, e) {
  4156. var n = t[e];
  4157. n && n[Xx] && (t[e] = n[Xx])
  4158. }
  4159. function yl(t, e, n, i) {
  4160. this.ecInstance = t, this.api = e, this.unfinished;
  4161. var n = this._dataProcessorHandlers = n.slice(),
  4162. i = this._visualHandlers = i.slice();
  4163. this._allHandlers = n.concat(i), this._stageTaskMap = N()
  4164. }
  4165. function xl(t, e, n, i, r) {
  4166. function o(t, e) {
  4167. return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id))
  4168. }
  4169. r = r || {};
  4170. var a;
  4171. f(e, function(e) {
  4172. if (!r.visualType || r.visualType === e.visualType) {
  4173. var s = t._stageTaskMap.get(e.uid),
  4174. l = s.seriesTaskMap,
  4175. u = s.overallTask;
  4176. if (u) {
  4177. var h, c = u.agentStubMap;
  4178. c.each(function(t) {
  4179. o(r, t) && (t.dirty(), h = !0)
  4180. }), h && u.dirty(), t_(u, i);
  4181. var d = t.getPerformArgs(u, r.block);
  4182. c.each(function(t) {
  4183. t.perform(d)
  4184. }), a |= u.perform(d)
  4185. } else l && l.each(function(s) {
  4186. o(r, s) && s.dirty();
  4187. var l = t.getPerformArgs(s, r.block);
  4188. l.skip = !e.performRawSeries && n.isSeriesFiltered(s.context.model), t_(s, i),
  4189. a |= s.perform(l)
  4190. })
  4191. }
  4192. }), t.unfinished |= a
  4193. }
  4194. function _l(t, e, n, i, r) {
  4195. function o(n) {
  4196. var o = n.uid,
  4197. s = a.get(o) || a.set(o, Qs({
  4198. plan: Cl,
  4199. reset: Tl,
  4200. count: Dl
  4201. }));
  4202. s.context = {
  4203. model: n,
  4204. ecModel: i,
  4205. api: r,
  4206. useClearVisual: e.isVisual && !e.isLayout,
  4207. plan: e.plan,
  4208. reset: e.reset,
  4209. scheduler: t
  4210. }, kl(t, n, s)
  4211. }
  4212. var a = n.seriesTaskMap || (n.seriesTaskMap = N()),
  4213. s = e.seriesType,
  4214. l = e.getTargetSeries;
  4215. e.createOnAllSeries ? i.eachRawSeries(o) : s ? i.eachRawSeriesByType(s, o) : l && l(i, r).each(o);
  4216. var u = t._pipelineMap;
  4217. a.each(function(t, e) {
  4218. u.get(e) || (t.dispose(), a.removeKey(e))
  4219. })
  4220. }
  4221. function wl(t, e, n, i, r) {
  4222. function o(e) {
  4223. var n = e.uid,
  4224. i = s.get(n);
  4225. i || (i = s.set(n, Qs({
  4226. reset: Sl,
  4227. onDirty: Il
  4228. })), a.dirty()), i.context = {
  4229. model: e,
  4230. overallProgress: h,
  4231. modifyOutputEnd: c
  4232. }, i.agent = a, i.__block = h, kl(t, e, i)
  4233. }
  4234. var a = n.overallTask = n.overallTask || Qs({
  4235. reset: bl
  4236. });
  4237. a.context = {
  4238. ecModel: i,
  4239. api: r,
  4240. overallReset: e.overallReset,
  4241. scheduler: t
  4242. };
  4243. var s = a.agentStubMap = a.agentStubMap || N(),
  4244. l = e.seriesType,
  4245. u = e.getTargetSeries,
  4246. h = !0,
  4247. c = e.modifyOutputEnd;
  4248. l ? i.eachRawSeriesByType(l, o) : u ? u(i, r).each(o) : (h = !1, f(i.getSeries(), o));
  4249. var d = t._pipelineMap;
  4250. s.each(function(t, e) {
  4251. d.get(e) || (t.dispose(), a.dirty(), s.removeKey(e))
  4252. })
  4253. }
  4254. function bl(t) {
  4255. t.overallReset(t.ecModel, t.api, t.payload)
  4256. }
  4257. function Sl(t) {
  4258. return t.overallProgress && Ml
  4259. }
  4260. function Ml() {
  4261. this.agent.dirty(), this.getDownstream().dirty()
  4262. }
  4263. function Il() {
  4264. this.agent && this.agent.dirty()
  4265. }
  4266. function Cl(t) {
  4267. return t.plan && t.plan(t.model, t.ecModel, t.api, t.payload)
  4268. }
  4269. function Tl(t) {
  4270. t.useClearVisual && t.data.clearAllVisual();
  4271. var e = t.resetDefines = tr(t.reset(t.model, t.ecModel, t.api, t.payload));
  4272. return e.length > 1 ? p(e, function(t, e) {
  4273. return Al(e)
  4274. }) : e_
  4275. }
  4276. function Al(t) {
  4277. return function(e, n) {
  4278. var i = n.data,
  4279. r = n.resetDefines[t];
  4280. if (r && r.dataEach)
  4281. for (var o = e.start; o < e.end; o++) r.dataEach(i, o);
  4282. else r && r.progress && r.progress(e, i)
  4283. }
  4284. }
  4285. function Dl(t) {
  4286. return t.data.count()
  4287. }
  4288. function kl(t, e, n) {
  4289. var i = e.uid,
  4290. r = t._pipelineMap.get(i);
  4291. !r.head && (r.head = n), r.tail && r.tail.pipe(n), r.tail = n, n.__idxInPipeline = r.count++, n.__pipeline =
  4292. r
  4293. }
  4294. function Pl(t) {
  4295. n_ = null;
  4296. try {
  4297. t(i_, r_)
  4298. } catch (e) {}
  4299. return n_
  4300. }
  4301. function Ol(t, e) {
  4302. for (var n in e.prototype) t[n] = V
  4303. }
  4304. function Ll(t) {
  4305. if (b(t)) {
  4306. var e = new DOMParser;
  4307. t = e.parseFromString(t, "text/xml")
  4308. }
  4309. for (9 === t.nodeType && (t = t.firstChild);
  4310. "svg" !== t.nodeName.toLowerCase() || 1 !== t.nodeType;) t = t.nextSibling;
  4311. return t
  4312. }
  4313. function zl() {
  4314. this._defs = {}, this._root = null, this._isDefine = !1, this._isText = !1
  4315. }
  4316. function El(t, e) {
  4317. for (var n = t.firstChild; n;) {
  4318. if (1 === n.nodeType) {
  4319. var i = n.getAttribute("offset");
  4320. i = i.indexOf("%") > 0 ? parseInt(i, 10) / 100 : i ? parseFloat(i) : 0;
  4321. var r = n.getAttribute("stop-color") || "#000000";
  4322. e.addColorStop(i, r)
  4323. }
  4324. n = n.nextSibling
  4325. }
  4326. }
  4327. function Bl(t, e) {
  4328. t && t.__inheritedStyle && (e.__inheritedStyle || (e.__inheritedStyle = {}), s(e.__inheritedStyle, t
  4329. .__inheritedStyle))
  4330. }
  4331. function Rl(t) {
  4332. for (var e = z(t).split(d_), n = [], i = 0; i < e.length; i += 2) {
  4333. var r = parseFloat(e[i]),
  4334. o = parseFloat(e[i + 1]);
  4335. n.push([r, o])
  4336. }
  4337. return n
  4338. }
  4339. function Nl(t, e, n, i) {
  4340. var r = e.__inheritedStyle || {},
  4341. o = "text" === e.type;
  4342. if (1 === t.nodeType && (Vl(t, e), a(r, Wl(t)), !i))
  4343. for (var s in g_)
  4344. if (g_.hasOwnProperty(s)) {
  4345. var l = t.getAttribute(s);
  4346. null != l && (r[g_[s]] = l)
  4347. } var u = o ? "textFill" : "fill",
  4348. h = o ? "textStroke" : "stroke";
  4349. e.style = e.style || new Eg;
  4350. var c = e.style;
  4351. null != r.fill && c.set(u, Fl(r.fill, n)), null != r.stroke && c.set(h, Fl(r.stroke, n)), f(["lineWidth",
  4352. "opacity", "fillOpacity", "strokeOpacity", "miterLimit", "fontSize"
  4353. ], function(t) {
  4354. var e = "lineWidth" === t && o ? "textStrokeWidth" : t;
  4355. null != r[t] && c.set(e, parseFloat(r[t]))
  4356. }), r.textBaseline && "auto" !== r.textBaseline || (r.textBaseline = "alphabetic"), "alphabetic" === r
  4357. .textBaseline && (r.textBaseline = "bottom"), "start" === r.textAlign && (r.textAlign = "left"),
  4358. "end" === r.textAlign && (r.textAlign = "right"), f(["lineDashOffset", "lineCap", "lineJoin",
  4359. "fontWeight", "fontFamily", "fontStyle", "textAlign", "textBaseline"
  4360. ], function(t) {
  4361. null != r[t] && c.set(t, r[t])
  4362. }), r.lineDash && (e.style.lineDash = z(r.lineDash).split(d_)), c[h] && "none" !== c[h] && (e[h] = !0),
  4363. e.__inheritedStyle = r
  4364. }
  4365. function Fl(t, e) {
  4366. var n = e && t && t.match(v_);
  4367. if (n) {
  4368. var i = z(n[1]),
  4369. r = e[i];
  4370. return r
  4371. }
  4372. return t
  4373. }
  4374. function Vl(t, e) {
  4375. var n = t.getAttribute("transform");
  4376. if (n) {
  4377. n = n.replace(/,/g, " ");
  4378. var i = null,
  4379. r = [];
  4380. n.replace(m_, function(t, e, n) {
  4381. r.push(e, n)
  4382. });
  4383. for (var o = r.length - 1; o > 0; o -= 2) {
  4384. var a = r[o],
  4385. s = r[o - 1];
  4386. switch (i = i || Le(), s) {
  4387. case "translate":
  4388. a = z(a).split(d_), Re(i, i, [parseFloat(a[0]), parseFloat(a[1] || 0)]);
  4389. break;
  4390. case "scale":
  4391. a = z(a).split(d_), Fe(i, i, [parseFloat(a[0]), parseFloat(a[1] || a[0])]);
  4392. break;
  4393. case "rotate":
  4394. a = z(a).split(d_), Ne(i, i, parseFloat(a[0]));
  4395. break;
  4396. case "skew":
  4397. a = z(a).split(d_), console.warn("Skew transform is not supported yet");
  4398. break;
  4399. case "matrix":
  4400. var a = z(a).split(d_);
  4401. i[0] = parseFloat(a[0]), i[1] = parseFloat(a[1]), i[2] = parseFloat(a[2]), i[3] =
  4402. parseFloat(a[3]), i[4] = parseFloat(a[4]), i[5] = parseFloat(a[5])
  4403. }
  4404. }
  4405. e.setLocalTransform(i)
  4406. }
  4407. }
  4408. function Wl(t) {
  4409. var e = t.getAttribute("style"),
  4410. n = {};
  4411. if (!e) return n;
  4412. var i = {};
  4413. y_.lastIndex = 0;
  4414. for (var r; null != (r = y_.exec(e));) i[r[1]] = r[2];
  4415. for (var o in g_) g_.hasOwnProperty(o) && null != i[o] && (n[g_[o]] = i[o]);
  4416. return n
  4417. }
  4418. function Hl(t, e, n) {
  4419. var i = e / t.width,
  4420. r = n / t.height,
  4421. o = Math.min(i, r),
  4422. a = [o, o],
  4423. s = [-(t.x + t.width / 2) * o + e / 2, -(t.y + t.height / 2) * o + n / 2];
  4424. return {
  4425. scale: a,
  4426. position: s
  4427. }
  4428. }
  4429. function Gl(t, e) {
  4430. return function(n, i, r) {
  4431. return !e && this._disposed ? void au(this.id) : (n = n && n.toLowerCase(), void zp.prototype[t]
  4432. .call(this, n, i, r))
  4433. }
  4434. }
  4435. function Zl() {
  4436. zp.call(this)
  4437. }
  4438. function Xl(t, e, n) {
  4439. function r(t, e) {
  4440. return t.__prio - e.__prio
  4441. }
  4442. n = n || {}, "string" == typeof e && (e = tw[e]), this.id, this.group, this._dom = t;
  4443. var o = "canvas";
  4444. lp && (o = ("undefined" == typeof window ? global : window).__ECHARTS__DEFAULT__RENDERER__ || o);
  4445. var a = this._zr = qi(t, {
  4446. renderer: n.renderer || o,
  4447. devicePixelRatio: n.devicePixelRatio,
  4448. width: n.width,
  4449. height: n.height
  4450. });
  4451. this._throttledZrFlush = gl(y(a.flush, a), 17);
  4452. var e = i(e);
  4453. e && Cx(e, !0), this._theme = e, this._chartsViews = [], this._chartsMap = {}, this._componentsViews = [],
  4454. this._componentsMap = {}, this._coordSysMgr = new Is;
  4455. var s = this._api = hu(this);
  4456. En(J_, r), En(K_, r), this._scheduler = new yl(this, s, K_, J_), zp.call(this, this._ecEventProcessor =
  4457. new cu), this._messageCenter = new Zl, this._initEvents(), this.resize = y(this.resize, this), this
  4458. ._pendingActions = [], a.animation.on("frame", this._onframe, this), Jl(a, this), E(this)
  4459. }
  4460. function Yl(t, e, n) {
  4461. if (this._disposed) return void au(this.id);
  4462. var i, r = this._model,
  4463. o = this._coordSysMgr.getCoordinateSystems();
  4464. e = hr(r, e);
  4465. for (var a = 0; a < o.length; a++) {
  4466. var s = o[a];
  4467. if (s[t] && null != (i = s[t](r, e, n))) return i
  4468. }
  4469. lp && console.warn("No coordinate system that supports " + t + " found by the given finder.")
  4470. }
  4471. function Ul(t) {
  4472. var e = t._model,
  4473. n = t._scheduler;
  4474. n.restorePipelines(e), n.prepareStageTasks(), tu(t, "component", e, n), tu(t, "chart", e, n), n.plan()
  4475. }
  4476. function jl(t, e, n, i, r) {
  4477. function o(i) {
  4478. i && i.__alive && i[e] && i[e](i.__model, a, t._api, n)
  4479. }
  4480. var a = t._model;
  4481. if (!i) return void S_(t._componentsViews.concat(t._chartsViews), o);
  4482. var s = {};
  4483. s[i + "Id"] = n[i + "Id"], s[i + "Index"] = n[i + "Index"], s[i + "Name"] = n[i + "Name"];
  4484. var l = {
  4485. mainType: i,
  4486. query: s
  4487. };
  4488. r && (l.subType = r);
  4489. var u = n.excludeSeriesId;
  4490. null != u && (u = N(tr(u))), a && a.eachComponent(l, function(e) {
  4491. u && null != u.get(e.id) || o(t["series" === i ? "_chartsMap" : "_componentsMap"][e.__viewId])
  4492. }, t)
  4493. }
  4494. function ql(t, e) {
  4495. var n = t._chartsMap,
  4496. i = t._scheduler;
  4497. e.eachSeries(function(t) {
  4498. i.updateStreamModes(t, n[t.__viewId])
  4499. })
  4500. }
  4501. function Kl(t, e) {
  4502. var n = t.type,
  4503. i = t.escapeConnect,
  4504. r = j_[n],
  4505. o = r.actionInfo,
  4506. l = (o.update || "update").split(":"),
  4507. u = l.pop();
  4508. l = null != l[0] && C_(l[0]), this[H_] = !0;
  4509. var h = [t],
  4510. c = !1;
  4511. t.batch && (c = !0, h = p(t.batch, function(e) {
  4512. return e = s(a({}, e), t), e.batch = null, e
  4513. }));
  4514. var d, f = [],
  4515. g = "highlight" === n || "downplay" === n;
  4516. S_(h, function(t) {
  4517. d = r.action(t, this._model, this._api), d = d || a({}, t), d.type = o.event || d.type, f.push(
  4518. d), g ? jl(this, u, t, "series") : l && jl(this, u, t, l.main, l.sub)
  4519. }, this), "none" === u || g || l || (this[G_] ? (Ul(this), Y_.update.call(this, t), this[G_] = !1) : Y_[
  4520. u].call(this, t)), d = c ? {
  4521. type: o.event || n,
  4522. escapeConnect: i,
  4523. batch: f
  4524. } : f[0], this[H_] = !1, !e && this._messageCenter.trigger(d.type, d)
  4525. }
  4526. function $l(t) {
  4527. for (var e = this._pendingActions; e.length;) {
  4528. var n = e.shift();
  4529. Kl.call(this, n, t)
  4530. }
  4531. }
  4532. function Ql(t) {
  4533. !t && this.trigger("updated")
  4534. }
  4535. function Jl(t, e) {
  4536. t.on("rendered", function() {
  4537. e.trigger("rendered"), !t.animation.isFinished() || e[G_] || e._scheduler.unfinished || e
  4538. ._pendingActions.length || e.trigger("finished")
  4539. })
  4540. }
  4541. function tu(t, e, n, i) {
  4542. function r(t) {
  4543. var e = "_ec_" + t.id + "_" + t.type,
  4544. r = s[e];
  4545. if (!r) {
  4546. var h = C_(t.type),
  4547. c = o ? Nx.getClass(h.main, h.sub) : hl.getClass(h.sub);
  4548. lp && b_(c, h.sub + " does not exist."), r = new c, r.init(n, u), s[e] = r, a.push(r), l.add(r
  4549. .group)
  4550. }
  4551. t.__viewId = r.__id = e, r.__alive = !0, r.__model = t, r.group.__ecComponentInfo = {
  4552. mainType: t.mainType,
  4553. index: t.componentIndex
  4554. }, !o && i.prepareView(r, t, n, u)
  4555. }
  4556. for (var o = "component" === e, a = o ? t._componentsViews : t._chartsViews, s = o ? t._componentsMap : t
  4557. ._chartsMap, l = t._zr, u = t._api, h = 0; h < a.length; h++) a[h].__alive = !1;
  4558. o ? n.eachComponent(function(t, e) {
  4559. "series" !== t && r(e)
  4560. }) : n.eachSeries(r);
  4561. for (var h = 0; h < a.length;) {
  4562. var c = a[h];
  4563. c.__alive ? h++ : (!o && c.renderTask.dispose(), l.remove(c.group), c.dispose(n, u), a.splice(h, 1),
  4564. delete s[c.__id], c.__id = c.group.__ecComponentInfo = null)
  4565. }
  4566. }
  4567. function eu(t) {
  4568. t.clearColorPalette(), t.eachSeries(function(t) {
  4569. t.clearColorPalette()
  4570. })
  4571. }
  4572. function nu(t, e, n, i) {
  4573. iu(t, e, n, i), S_(t._chartsViews, function(t) {
  4574. t.__alive = !1
  4575. }), ru(t, e, n, i), S_(t._chartsViews, function(t) {
  4576. t.__alive || t.remove(e, n)
  4577. })
  4578. }
  4579. function iu(t, e, n, i, r) {
  4580. S_(r || t._componentsViews, function(t) {
  4581. var r = t.__model;
  4582. t.render(r, e, n, i), uu(r, t)
  4583. })
  4584. }
  4585. function ru(t, e, n, i, r) {
  4586. var o, a = t._scheduler;
  4587. e.eachSeries(function(e) {
  4588. var n = t._chartsMap[e.__viewId];
  4589. n.__alive = !0;
  4590. var s = n.renderTask;
  4591. a.updatePayload(s, i), r && r.get(e.uid) && s.dirty(), o |= s.perform(a.getPerformArgs(s)), n
  4592. .group.silent = !!e.get("silent"), uu(e, n), lu(e, n)
  4593. }), a.unfinished |= o, su(t, e), Kx(t._zr.dom, e)
  4594. }
  4595. function ou(t, e) {
  4596. S_(Q_, function(n) {
  4597. n(t, e)
  4598. })
  4599. }
  4600. function au(t) {
  4601. lp && console.warn("Instance " + t + " has been disposed")
  4602. }
  4603. function su(t, e) {
  4604. var n = t._zr,
  4605. i = n.storage,
  4606. r = 0;
  4607. i.traverse(function() {
  4608. r++
  4609. }), r > e.get("hoverLayerThreshold") && !dp.node && e.eachSeries(function(e) {
  4610. if (!e.preventUsingHoverLayer) {
  4611. var n = t._chartsMap[e.__viewId];
  4612. n.__alive && n.group.traverse(function(t) {
  4613. t.useHoverLayer = !0
  4614. })
  4615. }
  4616. })
  4617. }
  4618. function lu(t, e) {
  4619. var n = t.get("blendMode") || null;
  4620. lp && !dp.canvasSupported && n && "source-over" !== n && console.warn("Only canvas support blendMode"), e
  4621. .group.traverse(function(t) {
  4622. t.isGroup || t.style.blend !== n && t.setStyle("blend", n), t.eachPendingDisplayable && t
  4623. .eachPendingDisplayable(function(t) {
  4624. t.setStyle("blend", n)
  4625. })
  4626. })
  4627. }
  4628. function uu(t, e) {
  4629. var n = t.get("z"),
  4630. i = t.get("zlevel");
  4631. e.group.traverse(function(t) {
  4632. "group" !== t.type && (null != n && (t.z = n), null != i && (t.zlevel = i))
  4633. })
  4634. }
  4635. function hu(t) {
  4636. var e = t._coordSysMgr;
  4637. return a(new Ms(t), {
  4638. getCoordinateSystems: y(e.getCoordinateSystems, e),
  4639. getComponentByElement: function(e) {
  4640. for (; e;) {
  4641. var n = e.__ecComponentInfo;
  4642. if (null != n) return t._model.getComponent(n.mainType, n.index);
  4643. e = e.parent
  4644. }
  4645. }
  4646. })
  4647. }
  4648. function cu() {
  4649. this.eventInfo
  4650. }
  4651. function du(t) {
  4652. function e(t, e) {
  4653. for (var n = 0; n < t.length; n++) {
  4654. var i = t[n];
  4655. i[o] = e
  4656. }
  4657. }
  4658. var n = 0,
  4659. i = 1,
  4660. r = 2,
  4661. o = "__connectUpdateStatus";
  4662. S_(q_, function(a, s) {
  4663. t._messageCenter.on(s, function(a) {
  4664. if (iw[t.group] && t[o] !== n) {
  4665. if (a && a.escapeConnect) return;
  4666. var s = t.makeActionFromEvent(a),
  4667. l = [];
  4668. S_(nw, function(e) {
  4669. e !== t && e.group === t.group && l.push(e)
  4670. }), e(l, n), S_(l, function(t) {
  4671. t[o] !== i && t.dispatchAction(s)
  4672. }), e(l, r)
  4673. }
  4674. })
  4675. })
  4676. }
  4677. function fu(t, e, n) {
  4678. if (lp) {
  4679. if (bv.replace(".", "") - 0 < A_.zrender.replace(".", "") - 0) throw new Error("zrender/src " + bv +
  4680. " is too old for ECharts " + T_ + ". Current version need ZRender " + A_.zrender + "+");
  4681. if (!t) throw new Error("Initialize failed: invalid dom.")
  4682. }
  4683. var i = mu(t);
  4684. if (i) return lp && console.warn("There is a chart instance already initialized on the dom."), i;
  4685. lp && (!C(t) || "CANVAS" === t.nodeName.toUpperCase() || (t.clientWidth || n && null != n.width) && (t
  4686. .clientHeight || n && null != n.height) || console.warn(
  4687. "Can't get DOM width or height. Please check dom.clientWidth and dom.clientHeight. They should not be 0.For example, you may need to call this in the callback of window.onload."
  4688. ));
  4689. var r = new Xl(t, e, n);
  4690. return r.id = "ec_" + rw++, nw[r.id] = r, dr(t, aw, r.id), du(r), r
  4691. }
  4692. function pu(t) {
  4693. if (_(t)) {
  4694. var e = t;
  4695. t = null, S_(e, function(e) {
  4696. null != e.group && (t = e.group)
  4697. }), t = t || "g_" + ow++, S_(e, function(e) {
  4698. e.group = t
  4699. })
  4700. }
  4701. return iw[t] = !0, t
  4702. }
  4703. function gu(t) {
  4704. iw[t] = !1
  4705. }
  4706. function vu(t) {
  4707. "string" == typeof t ? t = nw[t] : t instanceof Xl || (t = mu(t)), t instanceof Xl && !t.isDisposed() && t
  4708. .dispose()
  4709. }
  4710. function mu(t) {
  4711. return nw[fr(t, aw)]
  4712. }
  4713. function yu(t) {
  4714. return nw[t]
  4715. }
  4716. function xu(t, e) {
  4717. tw[t] = e
  4718. }
  4719. function _u(t) {
  4720. $_.push(t)
  4721. }
  4722. function wu(t, e) {
  4723. Au(K_, t, e, k_)
  4724. }
  4725. function bu(t) {
  4726. Q_.push(t)
  4727. }
  4728. function Su(t, e, n) {
  4729. "function" == typeof e && (n = e, e = "");
  4730. var i = I_(t) ? t.type : [t, t = {
  4731. event: e
  4732. }][0];
  4733. t.event = (t.event || i).toLowerCase(), e = t.event, b_(Z_.test(i) && Z_.test(e)), j_[i] || (j_[i] = {
  4734. action: n,
  4735. actionInfo: t
  4736. }), q_[e] = i
  4737. }
  4738. function Mu(t, e) {
  4739. Is.register(t, e)
  4740. }
  4741. function Iu(t) {
  4742. var e = Is.get(t);
  4743. return e ? e.getDimensionsInfo ? e.getDimensionsInfo() : e.dimensions.slice() : void 0
  4744. }
  4745. function Cu(t, e) {
  4746. Au(J_, t, e, z_, "layout")
  4747. }
  4748. function Tu(t, e) {
  4749. Au(J_, t, e, R_, "visual")
  4750. }
  4751. function Au(t, e, n, i, r) {
  4752. if ((M_(e) || I_(e)) && (n = e, e = i), lp) {
  4753. if (isNaN(e) || null == e) throw new Error("Illegal priority");
  4754. S_(t, function(t) {
  4755. b_(t.__raw !== n)
  4756. })
  4757. }
  4758. var o = yl.wrapStageHandler(n, r);
  4759. return o.__prio = e, o.__raw = n, t.push(o), o
  4760. }
  4761. function Du(t, e) {
  4762. ew[t] = e
  4763. }
  4764. function ku(t) {
  4765. return qy.extend(t)
  4766. }
  4767. function Pu(t) {
  4768. return Nx.extend(t)
  4769. }
  4770. function Ou(t) {
  4771. return Rx.extend(t)
  4772. }
  4773. function Lu(t) {
  4774. return hl.extend(t)
  4775. }
  4776. function zu(t) {
  4777. n("createCanvas", t)
  4778. }
  4779. function Eu(t, e, n) {
  4780. __.registerMap(t, e, n)
  4781. }
  4782. function Bu(t) {
  4783. var e = __.retrieveMap(t);
  4784. return e && e[0] && {
  4785. geoJson: e[0].geoJSON,
  4786. specialAreas: e[0].specialAreas
  4787. }
  4788. }
  4789. function Ru(t) {
  4790. return t
  4791. }
  4792. function Nu(t, e, n, i, r) {
  4793. this._old = t, this._new = e, this._oldKeyGetter = n || Ru, this._newKeyGetter = i || Ru, this.context = r
  4794. }
  4795. function Fu(t, e, n, i, r) {
  4796. for (var o = 0; o < t.length; o++) {
  4797. var a = "_ec_" + r[i](t[o], o),
  4798. s = e[a];
  4799. null == s ? (n.push(a), e[a] = o) : (s.length || (e[a] = s = [s]), s.push(o))
  4800. }
  4801. }
  4802. function Vu(t) {
  4803. var e = {},
  4804. n = e.encode = {},
  4805. i = N(),
  4806. r = [],
  4807. o = [],
  4808. a = e.userOutput = {
  4809. dimensionNames: t.dimensions.slice(),
  4810. encode: {}
  4811. };
  4812. f(t.dimensions, function(e) {
  4813. var s = t.getDimensionInfo(e),
  4814. l = s.coordDim;
  4815. if (l) {
  4816. lp && L(null == uw.get(l));
  4817. var u = s.coordDimIndex;
  4818. Wu(n, l)[u] = e, s.isExtraCoord || (i.set(l, 1), Gu(s.type) && (r[0] = e), Wu(a.encode, l)[
  4819. u] = s.index), s.defaultTooltip && o.push(e)
  4820. }
  4821. uw.each(function(t, e) {
  4822. var i = Wu(n, e),
  4823. r = s.otherDims[e];
  4824. null != r && r !== !1 && (i[r] = s.name)
  4825. })
  4826. });
  4827. var s = [],
  4828. l = {};
  4829. i.each(function(t, e) {
  4830. var i = n[e];
  4831. l[e] = i[0], s = s.concat(i)
  4832. }), e.dataDimsOnCoord = s, e.encodeFirstDimNotExtra = l;
  4833. var u = n.label;
  4834. u && u.length && (r = u.slice());
  4835. var h = n.tooltip;
  4836. return h && h.length ? o = h.slice() : o.length || (o = r.slice()), n.defaultedLabel = r, n
  4837. .defaultedTooltip = o, e
  4838. }
  4839. function Wu(t, e) {
  4840. return t.hasOwnProperty(e) || (t[e] = []), t[e]
  4841. }
  4842. function Hu(t) {
  4843. return "category" === t ? "ordinal" : "time" === t ? "time" : "float"
  4844. }
  4845. function Gu(t) {
  4846. return !("ordinal" === t || "time" === t)
  4847. }
  4848. function Zu(t) {
  4849. null != t && a(this, t), this.otherDims = {}
  4850. }
  4851. function Xu(t) {
  4852. return t._rawCount > 65535 ? gw : mw
  4853. }
  4854. function Yu(t) {
  4855. var e = t.constructor;
  4856. return e === Array ? t.slice() : new e(t)
  4857. }
  4858. function Uu(t, e) {
  4859. f(yw.concat(e.__wrappedMethods || []), function(n) {
  4860. e.hasOwnProperty(n) && (t[n] = e[n])
  4861. }), t.__wrappedMethods = e.__wrappedMethods, f(xw, function(n) {
  4862. t[n] = i(e[n])
  4863. }), t._calculationInfo = a(e._calculationInfo)
  4864. }
  4865. function ju(t, e, n, i, r) {
  4866. var o = pw[e.type],
  4867. a = i - 1,
  4868. s = e.name,
  4869. l = t[s][a];
  4870. if (l && l.length < n) {
  4871. for (var u = new o(Math.min(r - a * n, n)), h = 0; h < l.length; h++) u[h] = l[h];
  4872. t[s][a] = u
  4873. }
  4874. for (var c = i * n; r > c; c += n) t[s].push(new o(Math.min(r - c, n)))
  4875. }
  4876. function qu(t) {
  4877. var e = t._invertedIndicesMap;
  4878. f(e, function(n, i) {
  4879. var r = t._dimensionInfos[i],
  4880. o = r.ordinalMeta;
  4881. if (o) {
  4882. n = e[i] = new vw(o.categories.length);
  4883. for (var a = 0; a < n.length; a++) n[a] = dw;
  4884. for (var a = 0; a < t._count; a++) n[t.get(i, a)] = a
  4885. }
  4886. })
  4887. }
  4888. function Ku(t, e, n) {
  4889. var i;
  4890. if (null != e) {
  4891. var r = t._chunkSize,
  4892. o = Math.floor(n / r),
  4893. a = n % r,
  4894. s = t.dimensions[e],
  4895. l = t._storage[s][o];
  4896. if (l) {
  4897. i = l[a];
  4898. var u = t._dimensionInfos[s].ordinalMeta;
  4899. u && u.categories.length && (i = u.categories[i])
  4900. }
  4901. }
  4902. return i
  4903. }
  4904. function $u(t) {
  4905. return t
  4906. }
  4907. function Qu(t) {
  4908. return t < this._count && t >= 0 ? this._indices[t] : -1
  4909. }
  4910. function Ju(t, e) {
  4911. var n = t._idList[e];
  4912. return null == n && (n = Ku(t, t._idDimIdx, e)), null == n && (n = fw + e), n
  4913. }
  4914. function th(t) {
  4915. return _(t) || (t = [t]), t
  4916. }
  4917. function eh(t, e) {
  4918. for (var n = 0; n < e.length; n++) t._dimensionInfos[e[n]] || console.error("Unkown dimension " + e[n])
  4919. }
  4920. function nh(t, e) {
  4921. var n = t.dimensions,
  4922. i = new _w(p(n, t.getDimensionInfo, t), t.hostModel);
  4923. Uu(i, t);
  4924. for (var r = i._storage = {}, o = t._storage, a = 0; a < n.length; a++) {
  4925. var s = n[a];
  4926. o[s] && (u(e, s) >= 0 ? (r[s] = ih(o[s]), i._rawExtent[s] = rh(), i._extent[s] = null) : r[s] = o[s])
  4927. }
  4928. return i
  4929. }
  4930. function ih(t) {
  4931. for (var e = new Array(t.length), n = 0; n < t.length; n++) e[n] = Yu(t[n]);
  4932. return e
  4933. }
  4934. function rh() {
  4935. return [1 / 0, -1 / 0]
  4936. }
  4937. function oh(t, e, n) {
  4938. function r(t, e, n) {
  4939. null != uw.get(e) ? t.otherDims[e] = n : (t.coordDim = e, t.coordDimIndex = n, u.set(e, !0))
  4940. }
  4941. is.isInstance(e) || (e = is.seriesDataToSource(e)), n = n || {}, t = (t || []).slice();
  4942. for (var o = (n.dimsDef || []).slice(), l = N(), u = N(), h = [], c = ah(e, t, o, n.dimCount), d = 0; c >
  4943. d; d++) {
  4944. var p = o[d] = a({}, S(o[d]) ? o[d] : {
  4945. name: o[d]
  4946. }),
  4947. g = p.name,
  4948. v = h[d] = new Zu;
  4949. null != g && null == l.get(g) && (v.name = v.displayName = g, l.set(g, d)), null != p.type && (v.type =
  4950. p.type), null != p.displayName && (v.displayName = p.displayName)
  4951. }
  4952. var m = n.encodeDef;
  4953. !m && n.encodeDefaulter && (m = n.encodeDefaulter(e, c)), m = N(m), m.each(function(t, e) {
  4954. if (t = tr(t).slice(), 1 === t.length && !b(t[0]) && t[0] < 0) return void m.set(e, !1);
  4955. var n = m.set(e, []);
  4956. f(t, function(t, i) {
  4957. b(t) && (t = l.get(t)), null != t && c > t && (n[i] = t, r(h[t], e, i))
  4958. })
  4959. });
  4960. var y = 0;
  4961. f(t, function(t) {
  4962. var e, t, n, o;
  4963. if (b(t)) e = t, t = {};
  4964. else {
  4965. e = t.name;
  4966. var a = t.ordinalMeta;
  4967. t.ordinalMeta = null, t = i(t), t.ordinalMeta = a, n = t.dimsDef, o = t.otherDims, t.name =
  4968. t.coordDim = t.coordDimIndex = t.dimsDef = t.otherDims = null
  4969. }
  4970. var l = m.get(e);
  4971. if (l !== !1) {
  4972. var l = tr(l);
  4973. if (!l.length)
  4974. for (var u = 0; u < (n && n.length || 1); u++) {
  4975. for (; y < h.length && null != h[y].coordDim;) y++;
  4976. y < h.length && l.push(y++)
  4977. }
  4978. f(l, function(i, a) {
  4979. var l = h[i];
  4980. if (r(s(l, t), e, a), null == l.name && n) {
  4981. var u = n[a];
  4982. !S(u) && (u = {
  4983. name: u
  4984. }), l.name = l.displayName = u.name, l.defaultTooltip = u.defaultTooltip
  4985. }
  4986. o && s(l.otherDims, o)
  4987. })
  4988. }
  4989. });
  4990. var x = n.generateCoord,
  4991. _ = n.generateCoordCount,
  4992. w = null != _;
  4993. _ = x ? _ || 1 : 0;
  4994. for (var M = x || "value", I = 0; c > I; I++) {
  4995. var v = h[I] = h[I] || new Zu,
  4996. C = v.coordDim;
  4997. null == C && (v.coordDim = sh(M, u, w), v.coordDimIndex = 0, (!x || 0 >= _) && (v.isExtraCoord = !0),
  4998. _--), null == v.name && (v.name = sh(v.coordDim, l)), null != v.type || ps(e, I, v.name) !== lx
  4999. .Must && (!v.isExtraCoord || null == v.otherDims.itemName && null == v.otherDims.seriesName) || (v
  5000. .type = "ordinal")
  5001. }
  5002. return h
  5003. }
  5004. function ah(t, e, n, i) {
  5005. var r = Math.max(t.dimensionsDetectCount || 1, e.length, n.length, i || 0);
  5006. return f(e, function(t) {
  5007. var e = t.dimsDef;
  5008. e && (r = Math.max(r, e.length))
  5009. }), r
  5010. }
  5011. function sh(t, e, n) {
  5012. if (n || null != e.get(t)) {
  5013. for (var i = 0; null != e.get(t + i);) i++;
  5014. t += i
  5015. }
  5016. return e.set(t, !0), t
  5017. }
  5018. function lh(t) {
  5019. this.coordSysName = t, this.coordSysDims = [], this.axisMap = N(), this.categoryAxisMap = N(), this
  5020. .firstCategoryDimIndex = null
  5021. }
  5022. function uh(t) {
  5023. var e = t.get("coordinateSystem"),
  5024. n = new lh(e),
  5025. i = Mw[e];
  5026. return i ? (i(t, n, n.axisMap, n.categoryAxisMap), n) : void 0
  5027. }
  5028. function hh(t) {
  5029. return "category" === t.get("type")
  5030. }
  5031. function ch(t, e, n) {
  5032. n = n || {};
  5033. var i, r, o, a, s = n.byIndex,
  5034. l = n.stackedCoordDimension,
  5035. u = !(!t || !t.get("stack"));
  5036. if (f(e, function(t, n) {
  5037. b(t) && (e[n] = t = {
  5038. name: t
  5039. }), u && !t.isExtraCoord && (s || i || !t.ordinalMeta || (i = t), r || "ordinal" === t
  5040. .type || "time" === t.type || l && l !== t.coordDim || (r = t))
  5041. }), !r || s || i || (s = !0), r) {
  5042. o = "__\x00ecstackresult", a = "__\x00ecstackedover", i && (i.createInvertedIndices = !0);
  5043. var h = r.coordDim,
  5044. c = r.type,
  5045. d = 0;
  5046. f(e, function(t) {
  5047. t.coordDim === h && d++
  5048. }), e.push({
  5049. name: o,
  5050. coordDim: h,
  5051. coordDimIndex: d,
  5052. type: c,
  5053. isExtraCoord: !0,
  5054. isCalculationCoord: !0
  5055. }), d++, e.push({
  5056. name: a,
  5057. coordDim: a,
  5058. coordDimIndex: d,
  5059. type: c,
  5060. isExtraCoord: !0,
  5061. isCalculationCoord: !0
  5062. })
  5063. }
  5064. return {
  5065. stackedDimension: r && r.name,
  5066. stackedByDimension: i && i.name,
  5067. isStackedByIndex: s,
  5068. stackedOverDimension: a,
  5069. stackResultDimension: o
  5070. }
  5071. }
  5072. function dh(t, e) {
  5073. return !!e && e === t.getCalculationInfo("stackedDimension")
  5074. }
  5075. function fh(t, e) {
  5076. return dh(t, e) ? t.getCalculationInfo("stackResultDimension") : e
  5077. }
  5078. function ph(t, e, n) {
  5079. n = n || {}, is.isInstance(t) || (t = is.seriesDataToSource(t));
  5080. var i, r = e.get("coordinateSystem"),
  5081. o = Is.get(r),
  5082. a = uh(e);
  5083. a && (i = p(a.coordSysDims, function(t) {
  5084. var e = {
  5085. name: t
  5086. },
  5087. n = a.axisMap.get(t);
  5088. if (n) {
  5089. var i = n.get("type");
  5090. e.type = Hu(i)
  5091. }
  5092. return e
  5093. })), i || (i = o && (o.getDimensionsInfo ? o.getDimensionsInfo() : o.dimensions.slice()) || ["x", "y"]);
  5094. var s, l, u = Sw(t, {
  5095. coordDimensions: i,
  5096. generateCoord: n.generateCoord,
  5097. encodeDefaulter: n.useEncodeDefaulter ? x(ds, i, e) : null
  5098. });
  5099. a && f(u, function(t, e) {
  5100. var n = t.coordDim,
  5101. i = a.categoryAxisMap.get(n);
  5102. i && (null == s && (s = e), t.ordinalMeta = i.getOrdinalMeta()), null != t.otherDims.itemName &&
  5103. (l = !0)
  5104. }), l || null == s || (u[s].otherDims.itemName = 0);
  5105. var h = ch(e, u),
  5106. c = new _w(u, e);
  5107. c.setCalculationInfo(h);
  5108. var d = null != s && gh(t) ? function(t, e, n, i) {
  5109. return i === s ? n : this.defaultDimValueGetter(t, e, n, i)
  5110. } : null;
  5111. return c.hasItemOption = !1, c.initData(t, null, d), c
  5112. }
  5113. function gh(t) {
  5114. if (t.sourceFormat === tx) {
  5115. var e = vh(t.data || []);
  5116. return null != e && !_(nr(e))
  5117. }
  5118. }
  5119. function vh(t) {
  5120. for (var e = 0; e < t.length && null == t[e];) e++;
  5121. return t[e]
  5122. }
  5123. function mh(t) {
  5124. this._setting = t || {}, this._extent = [1 / 0, -1 / 0], this._interval = 0, this.init && this.init.apply(
  5125. this, arguments)
  5126. }
  5127. function yh(t) {
  5128. this.categories = t.categories || [], this._needCollect = t.needCollect, this._deduplication = t
  5129. .deduplication, this._map
  5130. }
  5131. function xh(t) {
  5132. return t._map || (t._map = N(t.categories))
  5133. }
  5134. function _h(t) {
  5135. return S(t) && null != t.value ? t.value : t + ""
  5136. }
  5137. function wh(t, e, n, i) {
  5138. var r = {},
  5139. o = t[1] - t[0],
  5140. a = r.interval = za(o / e, !0);
  5141. null != n && n > a && (a = r.interval = n), null != i && a > i && (a = r.interval = i);
  5142. var s = r.intervalPrecision = bh(a),
  5143. l = r.niceTickExtent = [Aw(Math.ceil(t[0] / a) * a, s), Aw(Math.floor(t[1] / a) * a, s)];
  5144. return Mh(l, t), r
  5145. }
  5146. function bh(t) {
  5147. return Ca(t) + 2
  5148. }
  5149. function Sh(t, e, n) {
  5150. t[e] = Math.max(Math.min(t[e], n[1]), n[0])
  5151. }
  5152. function Mh(t, e) {
  5153. !isFinite(t[0]) && (t[0] = e[0]), !isFinite(t[1]) && (t[1] = e[1]), Sh(t, 0, e), Sh(t, 1, e), t[0] > t[1] &&
  5154. (t[0] = t[1])
  5155. }
  5156. function Ih(t) {
  5157. return t.get("stack") || Pw + t.seriesIndex
  5158. }
  5159. function Ch(t) {
  5160. return t.dim + t.index
  5161. }
  5162. function Th(t, e) {
  5163. var n = [];
  5164. return e.eachSeriesByType(t, function(t) {
  5165. Oh(t) && !Lh(t) && n.push(t)
  5166. }), n
  5167. }
  5168. function Ah(t) {
  5169. var e = {};
  5170. f(t, function(t) {
  5171. var n = t.coordinateSystem,
  5172. i = n.getBaseAxis();
  5173. if ("time" === i.type || "value" === i.type)
  5174. for (var r = t.getData(), o = i.dim + "_" + i.index, a = r.mapDimension(i.dim), s = 0, l = r
  5175. .count(); l > s; ++s) {
  5176. var u = r.get(a, s);
  5177. e[o] ? e[o].push(u) : e[o] = [u]
  5178. }
  5179. });
  5180. var n = [];
  5181. for (var i in e)
  5182. if (e.hasOwnProperty(i)) {
  5183. var r = e[i];
  5184. if (r) {
  5185. r.sort(function(t, e) {
  5186. return t - e
  5187. });
  5188. for (var o = null, a = 1; a < r.length; ++a) {
  5189. var s = r[a] - r[a - 1];
  5190. s > 0 && (o = null === o ? s : Math.min(o, s))
  5191. }
  5192. n[i] = o
  5193. }
  5194. } return n
  5195. }
  5196. function Dh(t) {
  5197. var e = Ah(t),
  5198. n = [];
  5199. return f(t, function(t) {
  5200. var i, r = t.coordinateSystem,
  5201. o = r.getBaseAxis(),
  5202. a = o.getExtent();
  5203. if ("category" === o.type) i = o.getBandWidth();
  5204. else if ("value" === o.type || "time" === o.type) {
  5205. var s = o.dim + "_" + o.index,
  5206. l = e[s],
  5207. u = Math.abs(a[1] - a[0]),
  5208. h = o.scale.getExtent(),
  5209. c = Math.abs(h[1] - h[0]);
  5210. i = l ? u / c * l : u
  5211. } else {
  5212. var d = t.getData();
  5213. i = Math.abs(a[1] - a[0]) / d.count()
  5214. }
  5215. var f = ba(t.get("barWidth"), i),
  5216. p = ba(t.get("barMaxWidth"), i),
  5217. g = ba(t.get("barMinWidth") || 1, i),
  5218. v = t.get("barGap"),
  5219. m = t.get("barCategoryGap");
  5220. n.push({
  5221. bandWidth: i,
  5222. barWidth: f,
  5223. barMaxWidth: p,
  5224. barMinWidth: g,
  5225. barGap: v,
  5226. barCategoryGap: m,
  5227. axisKey: Ch(o),
  5228. stackId: Ih(t)
  5229. })
  5230. }), kh(n)
  5231. }
  5232. function kh(t) {
  5233. var e = {};
  5234. f(t, function(t) {
  5235. var n = t.axisKey,
  5236. i = t.bandWidth,
  5237. r = e[n] || {
  5238. bandWidth: i,
  5239. remainedWidth: i,
  5240. autoWidthCount: 0,
  5241. categoryGap: "20%",
  5242. gap: "30%",
  5243. stacks: {}
  5244. },
  5245. o = r.stacks;
  5246. e[n] = r;
  5247. var a = t.stackId;
  5248. o[a] || r.autoWidthCount++, o[a] = o[a] || {
  5249. width: 0,
  5250. maxWidth: 0
  5251. };
  5252. var s = t.barWidth;
  5253. s && !o[a].width && (o[a].width = s, s = Math.min(r.remainedWidth, s), r.remainedWidth -= s);
  5254. var l = t.barMaxWidth;
  5255. l && (o[a].maxWidth = l);
  5256. var u = t.barMinWidth;
  5257. u && (o[a].minWidth = u);
  5258. var h = t.barGap;
  5259. null != h && (r.gap = h);
  5260. var c = t.barCategoryGap;
  5261. null != c && (r.categoryGap = c)
  5262. });
  5263. var n = {};
  5264. return f(e, function(t, e) {
  5265. n[e] = {};
  5266. var i = t.stacks,
  5267. r = t.bandWidth,
  5268. o = ba(t.categoryGap, r),
  5269. a = ba(t.gap, 1),
  5270. s = t.remainedWidth,
  5271. l = t.autoWidthCount,
  5272. u = (s - o) / (l + (l - 1) * a);
  5273. u = Math.max(u, 0), f(i, function(t) {
  5274. var e = t.maxWidth,
  5275. n = t.minWidth;
  5276. if (t.width) {
  5277. var i = t.width;
  5278. e && (i = Math.min(i, e)), n && (i = Math.max(i, n)), t.width = i, s -= i + a *
  5279. i, l--
  5280. } else {
  5281. var i = u;
  5282. e && i > e && (i = Math.min(e, s)), n && n > i && (i = n), i !== u && (t.width =
  5283. i, s -= i + a * i, l--)
  5284. }
  5285. }), u = (s - o) / (l + (l - 1) * a), u = Math.max(u, 0);
  5286. var h, c = 0;
  5287. f(i, function(t) {
  5288. t.width || (t.width = u), h = t, c += t.width * (1 + a)
  5289. }), h && (c -= h.width * a);
  5290. var d = -c / 2;
  5291. f(i, function(t, i) {
  5292. n[e][i] = n[e][i] || {
  5293. bandWidth: r,
  5294. offset: d,
  5295. width: t.width
  5296. }, d += t.width * (1 + a)
  5297. })
  5298. }), n
  5299. }
  5300. function Ph(t, e, n) {
  5301. if (t && e) {
  5302. var i = t[Ch(e)];
  5303. return null != i && null != n && (i = i[Ih(n)]), i
  5304. }
  5305. }
  5306. function Oh(t) {
  5307. return t.coordinateSystem && "cartesian2d" === t.coordinateSystem.type
  5308. }
  5309. function Lh(t) {
  5310. return t.pipelineContext && t.pipelineContext.large
  5311. }
  5312. function zh(t, e) {
  5313. return e.toGlobalCoord(e.dataToCoord("log" === e.type ? 1 : 0))
  5314. }
  5315. function Eh(t, e) {
  5316. return Uw(t, Yw(e))
  5317. }
  5318. function Bh(t, e) {
  5319. var n, i, r, o = t.type,
  5320. a = e.getMin(),
  5321. s = e.getMax(),
  5322. l = t.getExtent();
  5323. "ordinal" === o ? n = e.getCategories().length : (i = e.get("boundaryGap"), _(i) || (i = [i || 0, i || 0]),
  5324. "boolean" == typeof i[0] && (lp && console.warn(
  5325. 'Boolean type for boundaryGap is only allowed for ordinal axis. Please use string in percentage instead, e.g., "20%". Currently, boundaryGap is set to be 0.'
  5326. ), i = [0, 0]), i[0] = ba(i[0], 1), i[1] = ba(i[1], 1), r = l[1] - l[0] || Math.abs(l[0])),
  5327. "dataMin" === a ? a = l[0] : "function" == typeof a && (a = a({
  5328. min: l[0],
  5329. max: l[1]
  5330. })), "dataMax" === s ? s = l[1] : "function" == typeof s && (s = s({
  5331. min: l[0],
  5332. max: l[1]
  5333. }));
  5334. var u = null != a,
  5335. h = null != s;
  5336. null == a && (a = "ordinal" === o ? n ? 0 : 0 / 0 : l[0] - i[0] * r), null == s && (s = "ordinal" === o ?
  5337. n ? n - 1 : 0 / 0 : l[1] + i[1] * r), (null == a || !isFinite(a)) && (a = 0 / 0), (null == s || !
  5338. isFinite(s)) && (s = 0 / 0), t.setBlank(T(a) || T(s) || "ordinal" === o && !t.getOrdinalMeta()
  5339. .categories.length), e.getNeedCrossZero() && (a > 0 && s > 0 && !u && (a = 0), 0 > a && 0 > s && !
  5340. h && (s = 0));
  5341. var c = e.ecModel;
  5342. if (c && "time" === o) {
  5343. var d, p = Th("bar", c);
  5344. if (f(p, function(t) {
  5345. d |= t.getBaseAxis() === e.axis
  5346. }), d) {
  5347. var g = Dh(p),
  5348. v = Rh(a, s, e, g);
  5349. a = v.min, s = v.max
  5350. }
  5351. }
  5352. return {
  5353. extent: [a, s],
  5354. fixMin: u,
  5355. fixMax: h
  5356. }
  5357. }
  5358. function Rh(t, e, n, i) {
  5359. var r = n.axis.getExtent(),
  5360. o = r[1] - r[0],
  5361. a = Ph(i, n.axis);
  5362. if (void 0 === a) return {
  5363. min: t,
  5364. max: e
  5365. };
  5366. var s = 1 / 0;
  5367. f(a, function(t) {
  5368. s = Math.min(t.offset, s)
  5369. });
  5370. var l = -1 / 0;
  5371. f(a, function(t) {
  5372. l = Math.max(t.offset + t.width, l)
  5373. }), s = Math.abs(s), l = Math.abs(l);
  5374. var u = s + l,
  5375. h = e - t,
  5376. c = 1 - (s + l) / o,
  5377. d = h / c - h;
  5378. return e += d * (l / u), t -= d * (s / u), {
  5379. min: t,
  5380. max: e
  5381. }
  5382. }
  5383. function Nh(t, e) {
  5384. var n = Bh(t, e),
  5385. i = n.extent,
  5386. r = e.get("splitNumber");
  5387. "log" === t.type && (t.base = e.get("logBase"));
  5388. var o = t.type;
  5389. t.setExtent(i[0], i[1]), t.niceExtent({
  5390. splitNumber: r,
  5391. fixMin: n.fixMin,
  5392. fixMax: n.fixMax,
  5393. minInterval: "interval" === o || "time" === o ? e.get("minInterval") : null,
  5394. maxInterval: "interval" === o || "time" === o ? e.get("maxInterval") : null
  5395. });
  5396. var a = e.get("interval");
  5397. null != a && t.setInterval && t.setInterval(a)
  5398. }
  5399. function Fh(t, e) {
  5400. if (e = e || t.get("type")) switch (e) {
  5401. case "category":
  5402. return new Tw(t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(), [1 / 0, -1 / 0]);
  5403. case "value":
  5404. return new kw;
  5405. default:
  5406. return (mh.getClass(e) || kw).create(t)
  5407. }
  5408. }
  5409. function Vh(t) {
  5410. var e = t.scale.getExtent(),
  5411. n = e[0],
  5412. i = e[1];
  5413. return !(n > 0 && i > 0 || 0 > n && 0 > i)
  5414. }
  5415. function Wh(t) {
  5416. var e = t.getLabelModel().get("formatter"),
  5417. n = "category" === t.type ? t.scale.getExtent()[0] : null;
  5418. return "string" == typeof e ? e = function(e) {
  5419. return function(n) {
  5420. return n = t.scale.getLabel(n), e.replace("{value}", null != n ? n : "")
  5421. }
  5422. }(e) : "function" == typeof e ? function(i, r) {
  5423. return null != n && (r = i - n), e(Hh(t, i), r)
  5424. } : function(e) {
  5425. return t.scale.getLabel(e)
  5426. }
  5427. }
  5428. function Hh(t, e) {
  5429. return "category" === t.type ? t.scale.getLabel(e) : e
  5430. }
  5431. function Gh(t) {
  5432. var e = t.model,
  5433. n = t.scale;
  5434. if (e.get("axisLabel.show") && !n.isBlank()) {
  5435. var i, r, o = "category" === t.type,
  5436. a = n.getExtent();
  5437. o ? r = n.count() : (i = n.getTicks(), r = i.length);
  5438. var s, l = t.getLabelModel(),
  5439. u = Wh(t),
  5440. h = 1;
  5441. r > 40 && (h = Math.ceil(r / 40));
  5442. for (var c = 0; r > c; c += h) {
  5443. var d = i ? i[c] : a[0] + c,
  5444. f = u(d),
  5445. p = l.getTextRect(f),
  5446. g = Zh(p, l.get("rotate") || 0);
  5447. s ? s.union(g) : s = g
  5448. }
  5449. return s
  5450. }
  5451. }
  5452. function Zh(t, e) {
  5453. var n = e * Math.PI / 180,
  5454. i = t.plain(),
  5455. r = i.width,
  5456. o = i.height,
  5457. a = r * Math.cos(n) + o * Math.sin(n),
  5458. s = r * Math.sin(n) + o * Math.cos(n),
  5459. l = new Tn(i.x, i.y, a, s);
  5460. return l
  5461. }
  5462. function Xh(t) {
  5463. var e = t.get("interval");
  5464. return null == e ? "auto" : e
  5465. }
  5466. function Yh(t) {
  5467. return "category" === t.type && 0 === Xh(t.getLabelModel())
  5468. }
  5469. function Uh(t, e) {
  5470. if ("image" !== this.type) {
  5471. var n = this.style,
  5472. i = this.shape;
  5473. i && "line" === i.symbolType ? n.stroke = t : this.__isEmptyBrush ? (n.stroke = t, n.fill = e ||
  5474. "#fff") : (n.fill && (n.fill = t), n.stroke && (n.stroke = t)), this.dirty(!1)
  5475. }
  5476. }
  5477. function jh(t, e, n, i, r, o, a) {
  5478. var s = 0 === t.indexOf("empty");
  5479. s && (t = t.substr(5, 1).toLowerCase() + t.substr(6));
  5480. var l;
  5481. return l = 0 === t.indexOf("image://") ? wo(t.slice(8), new Tn(e, n, i, r), a ? "center" : "cover") : 0 ===
  5482. t.indexOf("path://") ? _o(t.slice(7), {}, new Tn(e, n, i, r), a ? "center" : "cover") : new sb({
  5483. shape: {
  5484. symbolType: t,
  5485. x: e,
  5486. y: n,
  5487. width: i,
  5488. height: r
  5489. }
  5490. }), l.__isEmptyBrush = s, l.setColor = Uh, l.setColor(o), l
  5491. }
  5492. function qh(t) {
  5493. return ph(t.getSource(), t)
  5494. }
  5495. function Kh(t, e) {
  5496. var n = e;
  5497. pa.isInstance(e) || (n = new pa(e), c(n, Jw));
  5498. var i = Fh(n);
  5499. return i.setExtent(t[0], t[1]), Nh(i, n), i
  5500. }
  5501. function $h(t) {
  5502. c(t, Jw)
  5503. }
  5504. function Qh(t, e) {
  5505. return Math.abs(t - e) < hb
  5506. }
  5507. function Jh(t, e, n) {
  5508. var i = 0,
  5509. r = t[0];
  5510. if (!r) return !1;
  5511. for (var o = 1; o < t.length; o++) {
  5512. var a = t[o];
  5513. i += Yr(r[0], r[1], a[0], a[1], e, n), r = a
  5514. }
  5515. var s = t[0];
  5516. return Qh(r[0], s[0]) && Qh(r[1], s[1]) || (i += Yr(r[0], r[1], s[0], s[1], e, n)), 0 !== i
  5517. }
  5518. function tc(t, e, n) {
  5519. if (this.name = t, this.geometries = e, n) n = [n[0], n[1]];
  5520. else {
  5521. var i = this.getBoundingRect();
  5522. n = [i.x + i.width / 2, i.y + i.height / 2]
  5523. }
  5524. this.center = n
  5525. }
  5526. function ec(t) {
  5527. if (!t.UTF8Encoding) return t;
  5528. var e = t.UTF8Scale;
  5529. null == e && (e = 1024);
  5530. for (var n = t.features, i = 0; i < n.length; i++)
  5531. for (var r = n[i], o = r.geometry, a = o.coordinates, s = o.encodeOffsets, l = 0; l < a.length; l++) {
  5532. var u = a[l];
  5533. if ("Polygon" === o.type) a[l] = nc(u, s[l], e);
  5534. else if ("MultiPolygon" === o.type)
  5535. for (var h = 0; h < u.length; h++) {
  5536. var c = u[h];
  5537. u[h] = nc(c, s[l][h], e)
  5538. }
  5539. }
  5540. return t.UTF8Encoding = !1, t
  5541. }
  5542. function nc(t, e, n) {
  5543. for (var i = [], r = e[0], o = e[1], a = 0; a < t.length; a += 2) {
  5544. var s = t.charCodeAt(a) - 64,
  5545. l = t.charCodeAt(a + 1) - 64;
  5546. s = s >> 1 ^ -(1 & s), l = l >> 1 ^ -(1 & l), s += r, l += o, r = s, o = l, i.push([s / n, l / n])
  5547. }
  5548. return i
  5549. }
  5550. function ic(t) {
  5551. return "category" === t.type ? oc(t) : lc(t)
  5552. }
  5553. function rc(t, e) {
  5554. return "category" === t.type ? sc(t, e) : {
  5555. ticks: t.scale.getTicks()
  5556. }
  5557. }
  5558. function oc(t) {
  5559. var e = t.getLabelModel(),
  5560. n = ac(t, e);
  5561. return !e.get("show") || t.scale.isBlank() ? {
  5562. labels: [],
  5563. labelCategoryInterval: n.labelCategoryInterval
  5564. } : n
  5565. }
  5566. function ac(t, e) {
  5567. var n = uc(t, "labels"),
  5568. i = Xh(e),
  5569. r = hc(n, i);
  5570. if (r) return r;
  5571. var o, a;
  5572. return w(i) ? o = vc(t, i) : (a = "auto" === i ? dc(t) : i, o = gc(t, a)), cc(n, i, {
  5573. labels: o,
  5574. labelCategoryInterval: a
  5575. })
  5576. }
  5577. function sc(t, e) {
  5578. var n = uc(t, "ticks"),
  5579. i = Xh(e),
  5580. r = hc(n, i);
  5581. if (r) return r;
  5582. var o, a;
  5583. if ((!e.get("show") || t.scale.isBlank()) && (o = []), w(i)) o = vc(t, i, !0);
  5584. else if ("auto" === i) {
  5585. var s = ac(t, t.getLabelModel());
  5586. a = s.labelCategoryInterval, o = p(s.labels, function(t) {
  5587. return t.tickValue
  5588. })
  5589. } else a = i, o = gc(t, a, !0);
  5590. return cc(n, i, {
  5591. ticks: o,
  5592. tickCategoryInterval: a
  5593. })
  5594. }
  5595. function lc(t) {
  5596. var e = t.scale.getTicks(),
  5597. n = Wh(t);
  5598. return {
  5599. labels: p(e, function(e, i) {
  5600. return {
  5601. formattedLabel: n(e, i),
  5602. rawLabel: t.scale.getLabel(e),
  5603. tickValue: e
  5604. }
  5605. })
  5606. }
  5607. }
  5608. function uc(t, e) {
  5609. return db(t)[e] || (db(t)[e] = [])
  5610. }
  5611. function hc(t, e) {
  5612. for (var n = 0; n < t.length; n++)
  5613. if (t[n].key === e) return t[n].value
  5614. }
  5615. function cc(t, e, n) {
  5616. return t.push({
  5617. key: e,
  5618. value: n
  5619. }), n
  5620. }
  5621. function dc(t) {
  5622. var e = db(t).autoInterval;
  5623. return null != e ? e : db(t).autoInterval = t.calculateCategoryInterval()
  5624. }
  5625. function fc(t) {
  5626. var e = pc(t),
  5627. n = Wh(t),
  5628. i = (e.axisRotate - e.labelRotate) / 180 * Math.PI,
  5629. r = t.scale,
  5630. o = r.getExtent(),
  5631. a = r.count();
  5632. if (o[1] - o[0] < 1) return 0;
  5633. var s = 1;
  5634. a > 40 && (s = Math.max(1, Math.floor(a / 40)));
  5635. for (var l = o[0], u = t.dataToCoord(l + 1) - t.dataToCoord(l), h = Math.abs(u * Math.cos(i)), c = Math.abs(
  5636. u * Math.sin(i)), d = 0, f = 0; l <= o[1]; l += s) {
  5637. var p = 0,
  5638. g = 0,
  5639. v = Yn(n(l), e.font, "center", "top");
  5640. p = 1.3 * v.width, g = 1.3 * v.height, d = Math.max(d, p, 7), f = Math.max(f, g, 7)
  5641. }
  5642. var m = d / h,
  5643. y = f / c;
  5644. isNaN(m) && (m = 1 / 0), isNaN(y) && (y = 1 / 0);
  5645. var x = Math.max(0, Math.floor(Math.min(m, y))),
  5646. _ = db(t.model),
  5647. w = t.getExtent(),
  5648. b = _.lastAutoInterval,
  5649. S = _.lastTickCount;
  5650. return null != b && null != S && Math.abs(b - x) <= 1 && Math.abs(S - a) <= 1 && b > x && _.axisExtend0 ===
  5651. w[0] && _.axisExtend1 === w[1] ? x = b : (_.lastTickCount = a, _.lastAutoInterval = x, _.axisExtend0 =
  5652. w[0], _.axisExtend1 = w[1]), x
  5653. }
  5654. function pc(t) {
  5655. var e = t.getLabelModel();
  5656. return {
  5657. axisRotate: t.getRotate ? t.getRotate() : t.isHorizontal && !t.isHorizontal() ? 90 : 0,
  5658. labelRotate: e.get("rotate") || 0,
  5659. font: e.getFont()
  5660. }
  5661. }
  5662. function gc(t, e, n) {
  5663. function i(t) {
  5664. l.push(n ? t : {
  5665. formattedLabel: r(t),
  5666. rawLabel: o.getLabel(t),
  5667. tickValue: t
  5668. })
  5669. }
  5670. var r = Wh(t),
  5671. o = t.scale,
  5672. a = o.getExtent(),
  5673. s = t.getLabelModel(),
  5674. l = [],
  5675. u = Math.max((e || 0) + 1, 1),
  5676. h = a[0],
  5677. c = o.count();
  5678. 0 !== h && u > 1 && c / u > 2 && (h = Math.round(Math.ceil(h / u) * u));
  5679. var d = Yh(t),
  5680. f = s.get("showMinLabel") || d,
  5681. p = s.get("showMaxLabel") || d;
  5682. f && h !== a[0] && i(a[0]);
  5683. for (var g = h; g <= a[1]; g += u) i(g);
  5684. return p && g - u !== a[1] && i(a[1]), l
  5685. }
  5686. function vc(t, e, n) {
  5687. var i = t.scale,
  5688. r = Wh(t),
  5689. o = [];
  5690. return f(i.getTicks(), function(t) {
  5691. var a = i.getLabel(t);
  5692. e(t, a) && o.push(n ? t : {
  5693. formattedLabel: r(t),
  5694. rawLabel: a,
  5695. tickValue: t
  5696. })
  5697. }), o
  5698. }
  5699. function mc(t, e) {
  5700. var n = t[1] - t[0],
  5701. i = e,
  5702. r = n / i / 2;
  5703. t[0] += r, t[1] -= r
  5704. }
  5705. function yc(t, e, n, i) {
  5706. function r(t, e) {
  5707. return t = Sa(t), e = Sa(e), d ? t > e : e > t
  5708. }
  5709. var o = e.length;
  5710. if (t.onBand && !n && o) {
  5711. var a, s, l = t.getExtent();
  5712. if (1 === o) e[0].coord = l[0], a = e[1] = {
  5713. coord: l[0]
  5714. };
  5715. else {
  5716. var u = e[o - 1].tickValue - e[0].tickValue,
  5717. h = (e[o - 1].coord - e[0].coord) / u;
  5718. f(e, function(t) {
  5719. t.coord -= h / 2
  5720. });
  5721. var c = t.scale.getExtent();
  5722. s = 1 + c[1] - e[o - 1].tickValue, a = {
  5723. coord: e[o - 1].coord + h * s
  5724. }, e.push(a)
  5725. }
  5726. var d = l[0] > l[1];
  5727. r(e[0].coord, l[0]) && (i ? e[0].coord = l[0] : e.shift()), i && r(l[0], e[0].coord) && e.unshift({
  5728. coord: l[0]
  5729. }), r(l[1], a.coord) && (i ? a.coord = l[1] : e.pop()), i && r(a.coord, l[1]) && e.push({
  5730. coord: l[1]
  5731. })
  5732. }
  5733. }
  5734. function xc(t, e) {
  5735. var n = t.mapDimension("defaultedLabel", !0),
  5736. i = n.length;
  5737. if (1 === i) return $s(t, e, n[0]);
  5738. if (i) {
  5739. for (var r = [], o = 0; o < n.length; o++) {
  5740. var a = $s(t, e, n[o]);
  5741. r.push(a)
  5742. }
  5743. return r.join(" ")
  5744. }
  5745. }
  5746. function _c(t, e, n) {
  5747. Cg.call(this), this.updateData(t, e, n)
  5748. }
  5749. function wc(t) {
  5750. return [t[0] / 2, t[1] / 2]
  5751. }
  5752. function bc(t, e) {
  5753. this.parent.drift(t, e)
  5754. }
  5755. function Sc(t, e) {
  5756. if (!this.incremental && !this.useHoverLayer)
  5757. if ("emphasis" === e) {
  5758. var n = this.__symbolOriginalScale,
  5759. i = n[1] / n[0],
  5760. r = {
  5761. scale: [Math.max(1.1 * n[0], n[0] + 3), Math.max(1.1 * n[1], n[1] + 3 * i)]
  5762. };
  5763. this.animateTo(r, 400, "elasticOut")
  5764. } else "normal" === e && this.animateTo({
  5765. scale: this.__symbolOriginalScale
  5766. }, 400, "elasticOut")
  5767. }
  5768. function Mc(t) {
  5769. this.group = new Cg, this._symbolCtor = t || _c
  5770. }
  5771. function Ic(t, e, n, i) {
  5772. return !(!e || isNaN(e[0]) || isNaN(e[1]) || i.isIgnore && i.isIgnore(n) || i.clipShape && !i.clipShape
  5773. .contain(e[0], e[1]) || "none" === t.getItemVisual(n, "symbol"))
  5774. }
  5775. function Cc(t) {
  5776. return null == t || S(t) || (t = {
  5777. isIgnore: t
  5778. }), t || {}
  5779. }
  5780. function Tc(t) {
  5781. var e = t.hostModel;
  5782. return {
  5783. itemStyle: e.getModel("itemStyle").getItemStyle(["color"]),
  5784. hoverItemStyle: e.getModel("emphasis.itemStyle").getItemStyle(),
  5785. symbolRotate: e.get("symbolRotate"),
  5786. symbolOffset: e.get("symbolOffset"),
  5787. hoverAnimation: e.get("hoverAnimation"),
  5788. labelModel: e.getModel("label"),
  5789. hoverLabelModel: e.getModel("emphasis.label"),
  5790. cursorStyle: e.get("cursor")
  5791. }
  5792. }
  5793. function Ac(t, e, n) {
  5794. var i, r = t.getBaseAxis(),
  5795. o = t.getOtherAxis(r),
  5796. a = Dc(o, n),
  5797. s = r.dim,
  5798. l = o.dim,
  5799. u = e.mapDimension(l),
  5800. h = e.mapDimension(s),
  5801. c = "x" === l || "radius" === l ? 1 : 0,
  5802. d = p(t.dimensions, function(t) {
  5803. return e.mapDimension(t)
  5804. }),
  5805. f = e.getCalculationInfo("stackResultDimension");
  5806. return (i |= dh(e, d[0])) && (d[0] = f), (i |= dh(e, d[1])) && (d[1] = f), {
  5807. dataDimsForPoint: d,
  5808. valueStart: a,
  5809. valueAxisDim: l,
  5810. baseAxisDim: s,
  5811. stacked: !!i,
  5812. valueDim: u,
  5813. baseDim: h,
  5814. baseDataOffset: c,
  5815. stackedOverDimension: e.getCalculationInfo("stackedOverDimension")
  5816. }
  5817. }
  5818. function Dc(t, e) {
  5819. var n = 0,
  5820. i = t.scale.getExtent();
  5821. return "start" === e ? n = i[0] : "end" === e ? n = i[1] : i[0] > 0 ? n = i[0] : i[1] < 0 && (n = i[1]), n
  5822. }
  5823. function kc(t, e, n, i) {
  5824. var r = 0 / 0;
  5825. t.stacked && (r = n.get(n.getCalculationInfo("stackedOverDimension"), i)), isNaN(r) && (r = t.valueStart);
  5826. var o = t.baseDataOffset,
  5827. a = [];
  5828. return a[o] = n.get(t.baseDim, i), a[1 - o] = r, e.dataToPoint(a)
  5829. }
  5830. function Pc(t, e) {
  5831. var n = [];
  5832. return e.diff(t).add(function(t) {
  5833. n.push({
  5834. cmd: "+",
  5835. idx: t
  5836. })
  5837. }).update(function(t, e) {
  5838. n.push({
  5839. cmd: "=",
  5840. idx: e,
  5841. idx1: t
  5842. })
  5843. }).remove(function(t) {
  5844. n.push({
  5845. cmd: "-",
  5846. idx: t
  5847. })
  5848. }).execute(), n
  5849. }
  5850. function Oc(t) {
  5851. return isNaN(t[0]) || isNaN(t[1])
  5852. }
  5853. function Lc(t, e, n, i, r, o, a, s, l, u) {
  5854. return "none" !== u && u ? zc.apply(this, arguments) : Ec.apply(this, arguments)
  5855. }
  5856. function zc(t, e, n, i, r, o, a, s, l, u, h) {
  5857. for (var c = 0, d = n, f = 0; i > f; f++) {
  5858. var p = e[d];
  5859. if (d >= r || 0 > d) break;
  5860. if (Oc(p)) {
  5861. if (h) {
  5862. d += o;
  5863. continue
  5864. }
  5865. break
  5866. }
  5867. if (d === n) t[o > 0 ? "moveTo" : "lineTo"](p[0], p[1]);
  5868. else if (l > 0) {
  5869. var g = e[c],
  5870. v = "y" === u ? 1 : 0,
  5871. m = (p[v] - g[v]) * l;
  5872. Db(Pb, g), Pb[v] = g[v] + m, Db(Ob, p), Ob[v] = p[v] - m, t.bezierCurveTo(Pb[0], Pb[1], Ob[0], Ob[
  5873. 1], p[0], p[1])
  5874. } else t.lineTo(p[0], p[1]);
  5875. c = d, d += o
  5876. }
  5877. return f
  5878. }
  5879. function Ec(t, e, n, i, r, o, a, s, l, u, h) {
  5880. for (var c = 0, d = n, f = 0; i > f; f++) {
  5881. var p = e[d];
  5882. if (d >= r || 0 > d) break;
  5883. if (Oc(p)) {
  5884. if (h) {
  5885. d += o;
  5886. continue
  5887. }
  5888. break
  5889. }
  5890. if (d === n) t[o > 0 ? "moveTo" : "lineTo"](p[0], p[1]), Db(Pb, p);
  5891. else if (l > 0) {
  5892. var g = d + o,
  5893. v = e[g];
  5894. if (h)
  5895. for (; v && Oc(e[g]);) g += o, v = e[g];
  5896. var m = .5,
  5897. y = e[c],
  5898. v = e[g];
  5899. if (!v || Oc(v)) Db(Ob, p);
  5900. else {
  5901. Oc(v) && !h && (v = p), U(kb, v, y);
  5902. var x, _;
  5903. if ("x" === u || "y" === u) {
  5904. var w = "x" === u ? 0 : 1;
  5905. x = Math.abs(p[w] - y[w]), _ = Math.abs(p[w] - v[w])
  5906. } else x = kp(p, y), _ = kp(p, v);
  5907. m = _ / (_ + x), Ab(Ob, p, kb, -l * (1 - m))
  5908. }
  5909. Cb(Pb, Pb, s), Tb(Pb, Pb, a), Cb(Ob, Ob, s), Tb(Ob, Ob, a), t.bezierCurveTo(Pb[0], Pb[1], Ob[0], Ob[
  5910. 1], p[0], p[1]), Ab(Pb, p, kb, l * m)
  5911. } else t.lineTo(p[0], p[1]);
  5912. c = d, d += o
  5913. }
  5914. return f
  5915. }
  5916. function Bc(t, e) {
  5917. var n = [1 / 0, 1 / 0],
  5918. i = [-1 / 0, -1 / 0];
  5919. if (e)
  5920. for (var r = 0; r < t.length; r++) {
  5921. var o = t[r];
  5922. o[0] < n[0] && (n[0] = o[0]), o[1] < n[1] && (n[1] = o[1]), o[0] > i[0] && (i[0] = o[0]), o[1] > i[
  5923. 1] && (i[1] = o[1])
  5924. }
  5925. return {
  5926. min: e ? n : i,
  5927. max: e ? i : n
  5928. }
  5929. }
  5930. function Rc(t, e, n) {
  5931. var i = t.getArea(),
  5932. r = t.getBaseAxis().isHorizontal(),
  5933. o = i.x,
  5934. a = i.y,
  5935. s = i.width,
  5936. l = i.height,
  5937. u = n.get("lineStyle.width") || 2;
  5938. o -= u / 2, a -= u / 2, s += u, l += u, o = Math.floor(o), s = Math.round(s);
  5939. var h = new Jm({
  5940. shape: {
  5941. x: o,
  5942. y: a,
  5943. width: s,
  5944. height: l
  5945. }
  5946. });
  5947. return e && (h.shape[r ? "width" : "height"] = 0, na(h, {
  5948. shape: {
  5949. width: s,
  5950. height: l
  5951. }
  5952. }, n)), h
  5953. }
  5954. function Nc(t, e, n) {
  5955. var i = t.getArea(),
  5956. r = new Xm({
  5957. shape: {
  5958. cx: Sa(t.cx, 1),
  5959. cy: Sa(t.cy, 1),
  5960. r0: Sa(i.r0, 1),
  5961. r: Sa(i.r, 1),
  5962. startAngle: i.startAngle,
  5963. endAngle: i.endAngle,
  5964. clockwise: i.clockwise
  5965. }
  5966. });
  5967. return e && (r.shape.endAngle = i.startAngle, na(r, {
  5968. shape: {
  5969. endAngle: i.endAngle
  5970. }
  5971. }, n)), r
  5972. }
  5973. function Fc(t, e) {
  5974. if (t.length === e.length) {
  5975. for (var n = 0; n < t.length; n++) {
  5976. var i = t[n],
  5977. r = e[n];
  5978. if (i[0] !== r[0] || i[1] !== r[1]) return
  5979. }
  5980. return !0
  5981. }
  5982. }
  5983. function Vc(t, e) {
  5984. var n = [],
  5985. i = [],
  5986. r = [],
  5987. o = [];
  5988. return Br(t, n, i), Br(e, r, o), Math.max(Math.abs(n[0] - r[0]), Math.abs(n[1] - r[1]), Math.abs(i[0] - o[
  5989. 0]), Math.abs(i[1] - o[1]))
  5990. }
  5991. function Wc(t) {
  5992. return "number" == typeof t ? t : t ? .5 : 0
  5993. }
  5994. function Hc(t, e, n) {
  5995. if (!n.valueDim) return [];
  5996. for (var i = [], r = 0, o = e.count(); o > r; r++) i.push(kc(n, t, e, r));
  5997. return i
  5998. }
  5999. function Gc(t, e, n) {
  6000. for (var i = e.getBaseAxis(), r = "x" === i.dim || "radius" === i.dim ? 0 : 1, o = [], a = 0; a < t.length -
  6001. 1; a++) {
  6002. var s = t[a + 1],
  6003. l = t[a];
  6004. o.push(l);
  6005. var u = [];
  6006. switch (n) {
  6007. case "end":
  6008. u[r] = s[r], u[1 - r] = l[1 - r], o.push(u);
  6009. break;
  6010. case "middle":
  6011. var h = (l[r] + s[r]) / 2,
  6012. c = [];
  6013. u[r] = c[r] = h, u[1 - r] = l[1 - r], c[1 - r] = s[1 - r], o.push(u), o.push(c);
  6014. break;
  6015. default:
  6016. u[r] = l[r], u[1 - r] = s[1 - r], o.push(u)
  6017. }
  6018. }
  6019. return t[a] && o.push(t[a]), o
  6020. }
  6021. function Zc(t, e) {
  6022. var n = t.getVisual("visualMeta");
  6023. if (n && n.length && t.count()) {
  6024. if ("cartesian2d" !== e.type) return void(lp && console.warn(
  6025. "Visual map on line style is only supported on cartesian2d."));
  6026. for (var i, r, o = n.length - 1; o >= 0; o--) {
  6027. var a = n[o].dimension,
  6028. s = t.dimensions[a],
  6029. l = t.getDimensionInfo(s);
  6030. if (i = l && l.coordDim, "x" === i || "y" === i) {
  6031. r = n[o];
  6032. break
  6033. }
  6034. }
  6035. if (!r) return void(lp && console.warn("Visual map on line style only support x or y dimension."));
  6036. var u = e.getAxis(i),
  6037. h = p(r.stops, function(t) {
  6038. return {
  6039. coord: u.toGlobalCoord(u.dataToCoord(t.value)),
  6040. color: t.color
  6041. }
  6042. }),
  6043. c = h.length,
  6044. d = r.outerColors.slice();
  6045. c && h[0].coord > h[c - 1].coord && (h.reverse(), d.reverse());
  6046. var g = 10,
  6047. v = h[0].coord - g,
  6048. m = h[c - 1].coord + g,
  6049. y = m - v;
  6050. if (.001 > y) return "transparent";
  6051. f(h, function(t) {
  6052. t.offset = (t.coord - v) / y
  6053. }), h.push({
  6054. offset: c ? h[c - 1].offset : .5,
  6055. color: d[1] || "transparent"
  6056. }), h.unshift({
  6057. offset: c ? h[0].offset : .5,
  6058. color: d[0] || "transparent"
  6059. });
  6060. var x = new sy(0, 0, 0, 0, h, !0);
  6061. return x[i] = v, x[i + "2"] = m, x
  6062. }
  6063. }
  6064. function Xc(t, e, n) {
  6065. var i = t.get("showAllSymbol"),
  6066. r = "auto" === i;
  6067. if (!i || r) {
  6068. var o = n.getAxesByScale("ordinal")[0];
  6069. if (o && (!r || !Yc(o, e))) {
  6070. var a = e.mapDimension(o.dim),
  6071. s = {};
  6072. return f(o.getViewLabels(), function(t) {
  6073. s[t.tickValue] = 1
  6074. }),
  6075. function(t) {
  6076. return !s.hasOwnProperty(e.get(a, t))
  6077. }
  6078. }
  6079. }
  6080. }
  6081. function Yc(t, e) {
  6082. var n = t.getExtent(),
  6083. i = Math.abs(n[1] - n[0]) / t.scale.count();
  6084. isNaN(i) && (i = 0);
  6085. for (var r = e.count(), o = Math.max(1, Math.round(r / 5)), a = 0; r > a; a += o)
  6086. if (1.5 * _c.getSymbolSize(e, a)[t.isHorizontal() ? 1 : 0] > i) return !1;
  6087. return !0
  6088. }
  6089. function Uc(t, e, n) {
  6090. if ("cartesian2d" === t.type) {
  6091. var i = t.getBaseAxis().isHorizontal(),
  6092. r = Rc(t, e, n);
  6093. if (!n.get("clip", !0)) {
  6094. var o = r.shape,
  6095. a = Math.max(o.width, o.height);
  6096. i ? (o.y -= a, o.height += 2 * a) : (o.x -= a, o.width += 2 * a)
  6097. }
  6098. return r
  6099. }
  6100. return Nc(t, e, n)
  6101. }
  6102. function jc(t) {
  6103. return this._axes[t]
  6104. }
  6105. function qc(t) {
  6106. Vb.call(this, t)
  6107. }
  6108. function Kc(t, e) {
  6109. return e.type || (e.data ? "category" : "value")
  6110. }
  6111. function $c(t, e) {
  6112. return t.getCoordSysModel() === e
  6113. }
  6114. function Qc(t, e, n) {
  6115. this._coordsMap = {}, this._coordsList = [], this._axesMap = {}, this._axesList = [], this._initCartesian(t,
  6116. e, n), this.model = t
  6117. }
  6118. function Jc(t, e, n, i) {
  6119. function r(t) {
  6120. return t.dim + "_" + t.index
  6121. }
  6122. n.getAxesOnZeroOf = function() {
  6123. return o ? [o] : []
  6124. };
  6125. var o, a = t[e],
  6126. s = n.model,
  6127. l = s.get("axisLine.onZero"),
  6128. u = s.get("axisLine.onZeroAxisIndex");
  6129. if (l) {
  6130. if (null != u) td(a[u]) && (o = a[u]);
  6131. else
  6132. for (var h in a)
  6133. if (a.hasOwnProperty(h) && td(a[h]) && !i[r(a[h])]) {
  6134. o = a[h];
  6135. break
  6136. } o && (i[r(o)] = !0)
  6137. }
  6138. }
  6139. function td(t) {
  6140. return t && "category" !== t.type && "time" !== t.type && Vh(t)
  6141. }
  6142. function ed(t, e) {
  6143. var n = t.getExtent(),
  6144. i = n[0] + n[1];
  6145. t.toGlobalCoord = "x" === t.dim ? function(t) {
  6146. return t + e
  6147. } : function(t) {
  6148. return i - t + e
  6149. }, t.toLocalCoord = "x" === t.dim ? function(t) {
  6150. return t - e
  6151. } : function(t) {
  6152. return i - t + e
  6153. }
  6154. }
  6155. function nd(t) {
  6156. return p(qb, function(e) {
  6157. var n = t.getReferringComponents(e)[0];
  6158. if (lp && !n) throw new Error(e + ' "' + A(t.get(e + "Index"), t.get(e + "Id"), 0) +
  6159. '" not found');
  6160. return n
  6161. })
  6162. }
  6163. function id(t) {
  6164. return "cartesian2d" === t.get("coordinateSystem")
  6165. }
  6166. function rd(t, e, n, i) {
  6167. var r, o, a = Da(n - t.rotation),
  6168. s = i[0] > i[1],
  6169. l = "start" === e && !s || "start" !== e && s;
  6170. return ka(a - Kb / 2) ? (o = l ? "bottom" : "top", r = "center") : ka(a - 1.5 * Kb) ? (o = l ? "top" :
  6171. "bottom", r = "center") : (o = "middle", r = 1.5 * Kb > a && a > Kb / 2 ? l ? "left" : "right" : l ?
  6172. "right" : "left"), {
  6173. rotation: a,
  6174. textAlign: r,
  6175. textVerticalAlign: o
  6176. }
  6177. }
  6178. function od(t, e, n) {
  6179. if (!Yh(t.axis)) {
  6180. var i = t.get("axisLabel.showMinLabel"),
  6181. r = t.get("axisLabel.showMaxLabel");
  6182. e = e || [], n = n || [];
  6183. var o = e[0],
  6184. a = e[1],
  6185. s = e[e.length - 1],
  6186. l = e[e.length - 2],
  6187. u = n[0],
  6188. h = n[1],
  6189. c = n[n.length - 1],
  6190. d = n[n.length - 2];
  6191. i === !1 ? (ad(o), ad(u)) : sd(o, a) && (i ? (ad(a), ad(h)) : (ad(o), ad(u))), r === !1 ? (ad(s), ad(
  6192. c)) : sd(l, s) && (r ? (ad(l), ad(d)) : (ad(s), ad(c)))
  6193. }
  6194. }
  6195. function ad(t) {
  6196. t && (t.ignore = !0)
  6197. }
  6198. function sd(t, e) {
  6199. var n = t && t.getBoundingRect().clone(),
  6200. i = e && e.getBoundingRect().clone();
  6201. if (n && i) {
  6202. var r = ze([]);
  6203. return Ne(r, r, -t.rotation), n.applyTransform(Be([], r, t.getLocalTransform())), i.applyTransform(Be(
  6204. [], r, e.getLocalTransform())), n.intersect(i)
  6205. }
  6206. }
  6207. function ld(t) {
  6208. return "middle" === t || "center" === t
  6209. }
  6210. function ud(t, e, n, i, r) {
  6211. for (var o = [], a = [], s = [], l = 0; l < t.length; l++) {
  6212. var u = t[l].coord;
  6213. a[0] = u, a[1] = 0, s[0] = u, s[1] = n, e && (oe(a, a, e), oe(s, s, e));
  6214. var h = new ey({
  6215. anid: r + "_" + t[l].tickValue,
  6216. subPixelOptimize: !0,
  6217. shape: {
  6218. x1: a[0],
  6219. y1: a[1],
  6220. x2: s[0],
  6221. y2: s[1]
  6222. },
  6223. style: i,
  6224. z2: 2,
  6225. silent: !0
  6226. });
  6227. o.push(h)
  6228. }
  6229. return o
  6230. }
  6231. function hd(t, e, n) {
  6232. var i = e.axis,
  6233. r = e.getModel("axisTick");
  6234. if (r.get("show") && !i.scale.isBlank()) {
  6235. for (var o = r.getModel("lineStyle"), a = n.tickDirection * r.get("length"), l = i.getTicksCoords(), u =
  6236. ud(l, t._transform, a, s(o.getLineStyle(), {
  6237. stroke: e.get("axisLine.lineStyle.color")
  6238. }), "ticks"), h = 0; h < u.length; h++) t.group.add(u[h]);
  6239. return u
  6240. }
  6241. }
  6242. function cd(t, e, n) {
  6243. var i = e.axis,
  6244. r = e.getModel("minorTick");
  6245. if (r.get("show") && !i.scale.isBlank()) {
  6246. var o = i.getMinorTicksCoords();
  6247. if (o.length)
  6248. for (var a = r.getModel("lineStyle"), l = n.tickDirection * r.get("length"), u = s(a.getLineStyle(),
  6249. s(e.getModel("axisTick").getLineStyle(), {
  6250. stroke: e.get("axisLine.lineStyle.color")
  6251. })), h = 0; h < o.length; h++)
  6252. for (var c = ud(o[h], t._transform, l, u, "minorticks_" + h), d = 0; d < c.length; d++) t.group
  6253. .add(c[d])
  6254. }
  6255. }
  6256. function dd(t, e, n) {
  6257. var i = e.axis,
  6258. r = A(n.axisLabelShow, e.get("axisLabel.show"));
  6259. if (r && !i.scale.isBlank()) {
  6260. var o = e.getModel("axisLabel"),
  6261. a = o.get("margin"),
  6262. s = i.getViewLabels(),
  6263. l = (A(n.labelRotate, o.get("rotate")) || 0) * Kb / 180,
  6264. u = tS(n.rotation, l, n.labelDirection),
  6265. h = e.getCategories && e.getCategories(!0),
  6266. c = [],
  6267. d = eS(e),
  6268. p = e.get("triggerEvent");
  6269. return f(s, function(r, s) {
  6270. var l = r.tickValue,
  6271. f = r.formattedLabel,
  6272. g = r.rawLabel,
  6273. v = o;
  6274. h && h[l] && h[l].textStyle && (v = new pa(h[l].textStyle, o, e.ecModel));
  6275. var m = v.getTextColor() || e.get("axisLine.lineStyle.color"),
  6276. y = i.dataToCoord(l),
  6277. x = [y, n.labelOffset + n.labelDirection * a],
  6278. _ = new Wm({
  6279. anid: "label_" + l,
  6280. position: x,
  6281. rotation: u.rotation,
  6282. silent: d,
  6283. z2: 10
  6284. });
  6285. Xo(_.style, v, {
  6286. text: f,
  6287. textAlign: v.getShallow("align", !0) || u.textAlign,
  6288. textVerticalAlign: v.getShallow("verticalAlign", !0) || v.getShallow("baseline",
  6289. !0) || u.textVerticalAlign,
  6290. textFill: "function" == typeof m ? m("category" === i.type ? g : "value" === i
  6291. .type ? l + "" : l, s) : m
  6292. }), p && (_.eventData = Jb(e), _.eventData.targetType = "axisLabel", _.eventData.value =
  6293. g), t._dumbGroup.add(_), _.updateTransform(), c.push(_), t.group.add(_), _
  6294. .decomposeTransform()
  6295. }), c
  6296. }
  6297. }
  6298. function fd(t, e) {
  6299. var n = {
  6300. axesInfo: {},
  6301. seriesInvolved: !1,
  6302. coordSysAxesInfo: {},
  6303. coordSysMap: {}
  6304. };
  6305. return pd(n, t, e), n.seriesInvolved && vd(n, t), n
  6306. }
  6307. function pd(t, e, n) {
  6308. var i = e.getComponent("tooltip"),
  6309. r = e.getComponent("axisPointer"),
  6310. o = r.get("link", !0) || [],
  6311. a = [];
  6312. nS(n.getCoordinateSystems(), function(n) {
  6313. function s(i, s, l) {
  6314. var h = l.model.getModel("axisPointer", r),
  6315. d = h.get("show");
  6316. if (d && ("auto" !== d || i || bd(h))) {
  6317. null == s && (s = h.get("triggerTooltip")), h = i ? gd(l, c, r, e, i, s) : h;
  6318. var f = h.get("snap"),
  6319. p = Sd(l.model),
  6320. g = s || f || "category" === l.type,
  6321. v = t.axesInfo[p] = {
  6322. key: p,
  6323. axis: l,
  6324. coordSys: n,
  6325. axisPointerModel: h,
  6326. triggerTooltip: s,
  6327. involveSeries: g,
  6328. snap: f,
  6329. useHandle: bd(h),
  6330. seriesModels: []
  6331. };
  6332. u[p] = v, t.seriesInvolved |= g;
  6333. var m = md(o, l);
  6334. if (null != m) {
  6335. var y = a[m] || (a[m] = {
  6336. axesInfo: {}
  6337. });
  6338. y.axesInfo[p] = v, y.mapper = o[m].mapper, v.linkGroup = y
  6339. }
  6340. }
  6341. }
  6342. if (n.axisPointerEnabled) {
  6343. var l = Sd(n.model),
  6344. u = t.coordSysAxesInfo[l] = {};
  6345. t.coordSysMap[l] = n;
  6346. var h = n.model,
  6347. c = h.getModel("tooltip", i);
  6348. if (nS(n.getAxes(), iS(s, !1, null)), n.getTooltipAxes && i && c.get("show")) {
  6349. var d = "axis" === c.get("trigger"),
  6350. f = "cross" === c.get("axisPointer.type"),
  6351. p = n.getTooltipAxes(c.get("axisPointer.axis"));
  6352. (d || f) && nS(p.baseAxes, iS(s, f ? "cross" : !0, d)), f && nS(p.otherAxes, iS(s,
  6353. "cross", !1))
  6354. }
  6355. }
  6356. })
  6357. }
  6358. function gd(t, e, n, r, o, a) {
  6359. var l = e.getModel("axisPointer"),
  6360. u = {};
  6361. nS(["type", "snap", "lineStyle", "shadowStyle", "label", "animation", "animationDurationUpdate",
  6362. "animationEasingUpdate", "z"
  6363. ], function(t) {
  6364. u[t] = i(l.get(t))
  6365. }), u.snap = "category" !== t.type && !!a, "cross" === l.get("type") && (u.type = "line");
  6366. var h = u.label || (u.label = {});
  6367. if (null == h.show && (h.show = !1), "cross" === o) {
  6368. var c = l.get("label.show");
  6369. if (h.show = null != c ? c : !0, !a) {
  6370. var d = u.lineStyle = l.get("crossStyle");
  6371. d && s(h, d.textStyle)
  6372. }
  6373. }
  6374. return t.model.getModel("axisPointer", new pa(u, n, r))
  6375. }
  6376. function vd(t, e) {
  6377. e.eachSeries(function(e) {
  6378. var n = e.coordinateSystem,
  6379. i = e.get("tooltip.trigger", !0),
  6380. r = e.get("tooltip.show", !0);
  6381. n && "none" !== i && i !== !1 && "item" !== i && r !== !1 && e.get("axisPointer.show", !0) !== !
  6382. 1 && nS(t.coordSysAxesInfo[Sd(n.model)], function(t) {
  6383. var i = t.axis;
  6384. n.getAxis(i.dim) === i && (t.seriesModels.push(e), null == t.seriesDataCount && (t
  6385. .seriesDataCount = 0), t.seriesDataCount += e.getData().count())
  6386. })
  6387. }, this)
  6388. }
  6389. function md(t, e) {
  6390. for (var n = e.model, i = e.dim, r = 0; r < t.length; r++) {
  6391. var o = t[r] || {};
  6392. if (yd(o[i + "AxisId"], n.id) || yd(o[i + "AxisIndex"], n.componentIndex) || yd(o[i + "AxisName"], n
  6393. .name)) return r
  6394. }
  6395. }
  6396. function yd(t, e) {
  6397. return "all" === t || _(t) && u(t, e) >= 0 || t === e
  6398. }
  6399. function xd(t) {
  6400. var e = _d(t);
  6401. if (e) {
  6402. var n = e.axisPointerModel,
  6403. i = e.axis.scale,
  6404. r = n.option,
  6405. o = n.get("status"),
  6406. a = n.get("value");
  6407. null != a && (a = i.parse(a));
  6408. var s = bd(n);
  6409. null == o && (r.status = s ? "show" : "hide");
  6410. var l = i.getExtent().slice();
  6411. l[0] > l[1] && l.reverse(), (null == a || a > l[1]) && (a = l[1]), a < l[0] && (a = l[0]), r.value = a,
  6412. s && (r.status = e.axis.scale.isBlank() ? "hide" : "show")
  6413. }
  6414. }
  6415. function _d(t) {
  6416. var e = (t.ecModel.getComponent("axisPointer") || {}).coordSysAxesInfo;
  6417. return e && e.axesInfo[Sd(t)]
  6418. }
  6419. function wd(t) {
  6420. var e = _d(t);
  6421. return e && e.axisPointerModel
  6422. }
  6423. function bd(t) {
  6424. return !!t.get("handle.show")
  6425. }
  6426. function Sd(t) {
  6427. return t.type + "||" + t.id
  6428. }
  6429. function Md(t, e, n, i, r, o) {
  6430. var a = rS.getAxisPointerClass(t.axisPointerClass);
  6431. if (a) {
  6432. var s = wd(e);
  6433. s ? (t._axisPointer || (t._axisPointer = new a)).render(e, s, i, o) : Id(t, i)
  6434. }
  6435. }
  6436. function Id(t, e, n) {
  6437. var i = t._axisPointer;
  6438. i && i.dispose(e, n), t._axisPointer = null
  6439. }
  6440. function Cd(t, e, n) {
  6441. n = n || {};
  6442. var i = t.coordinateSystem,
  6443. r = e.axis,
  6444. o = {},
  6445. a = r.getAxesOnZeroOf()[0],
  6446. s = r.position,
  6447. l = a ? "onZero" : s,
  6448. u = r.dim,
  6449. h = i.getRect(),
  6450. c = [h.x, h.x + h.width, h.y, h.y + h.height],
  6451. d = {
  6452. left: 0,
  6453. right: 1,
  6454. top: 0,
  6455. bottom: 1,
  6456. onZero: 2
  6457. },
  6458. f = e.get("offset") || 0,
  6459. p = "x" === u ? [c[2] - f, c[3] + f] : [c[0] - f, c[1] + f];
  6460. if (a) {
  6461. var g = a.toGlobalCoord(a.dataToCoord(0));
  6462. p[d.onZero] = Math.max(Math.min(g, p[1]), p[0])
  6463. }
  6464. o.position = ["y" === u ? p[d[l]] : c[0], "x" === u ? p[d[l]] : c[3]], o.rotation = Math.PI / 2 * ("x" ===
  6465. u ? 0 : 1);
  6466. var v = {
  6467. top: -1,
  6468. bottom: 1,
  6469. left: -1,
  6470. right: 1
  6471. };
  6472. o.labelDirection = o.tickDirection = o.nameDirection = v[s], o.labelOffset = a ? p[d[s]] - p[d.onZero] : 0,
  6473. e.get("axisTick.inside") && (o.tickDirection = -o.tickDirection), A(n.labelInside, e.get(
  6474. "axisLabel.inside")) && (o.labelDirection = -o.labelDirection);
  6475. var m = e.get("axisLabel.rotate");
  6476. return o.labelRotate = "top" === l ? -m : m, o.z2 = 1, o
  6477. }
  6478. function Td(t, e, n, i) {
  6479. var r = n.axis;
  6480. if (!r.scale.isBlank()) {
  6481. var o = n.getModel("splitArea"),
  6482. a = o.getModel("areaStyle"),
  6483. l = a.get("color"),
  6484. u = i.coordinateSystem.getRect(),
  6485. h = r.getTicksCoords({
  6486. tickModel: o,
  6487. clamp: !0
  6488. });
  6489. if (h.length) {
  6490. var c = l.length,
  6491. d = t.__splitAreaColors,
  6492. f = N(),
  6493. p = 0;
  6494. if (d)
  6495. for (var g = 0; g < h.length; g++) {
  6496. var v = d.get(h[g].tickValue);
  6497. if (null != v) {
  6498. p = (v + (c - 1) * g) % c;
  6499. break
  6500. }
  6501. }
  6502. var m = r.toGlobalCoord(h[0].coord),
  6503. y = a.getAreaStyle();
  6504. l = _(l) ? l : [l];
  6505. for (var g = 1; g < h.length; g++) {
  6506. var x, w, b, S, M = r.toGlobalCoord(h[g].coord);
  6507. r.isHorizontal() ? (x = m, w = u.y, b = M - x, S = u.height, m = x + b) : (x = u.x, w = m, b = u
  6508. .width, S = M - w, m = w + S);
  6509. var I = h[g - 1].tickValue;
  6510. null != I && f.set(I, p), e.add(new Jm({
  6511. anid: null != I ? "area_" + I : null,
  6512. shape: {
  6513. x: x,
  6514. y: w,
  6515. width: b,
  6516. height: S
  6517. },
  6518. style: s({
  6519. fill: l[p]
  6520. }, y),
  6521. silent: !0
  6522. })), p = (p + 1) % c
  6523. }
  6524. t.__splitAreaColors = f
  6525. }
  6526. }
  6527. }
  6528. function Ad(t) {
  6529. t.__splitAreaColors = null
  6530. }
  6531. function Dd(t, e, n) {
  6532. var i, r = {},
  6533. o = "toggleSelected" === t;
  6534. return n.eachComponent("legend", function(n) {
  6535. o && null != i ? n[i ? "select" : "unSelect"](e.name) : "allSelect" === t || "inverseSelect" ===
  6536. t ? n[t]() : (n[t](e.name), i = n.isSelected(e.name));
  6537. var a = n.getData();
  6538. f(a, function(t) {
  6539. var e = t.get("name");
  6540. if ("\n" !== e && "" !== e) {
  6541. var i = n.isSelected(e);
  6542. r[e] = r.hasOwnProperty(e) ? r[e] && i : i
  6543. }
  6544. })
  6545. }), "allSelect" === t || "inverseSelect" === t ? {
  6546. selected: r
  6547. } : {
  6548. name: e.name,
  6549. selected: r
  6550. }
  6551. }
  6552. function kd(t, e) {
  6553. var n = By(e.get("padding")),
  6554. i = e.getItemStyle(["color", "opacity"]);
  6555. i.fill = e.get("backgroundColor");
  6556. var t = new Jm({
  6557. shape: {
  6558. x: t.x - n[3],
  6559. y: t.y - n[0],
  6560. width: t.width + n[1] + n[3],
  6561. height: t.height + n[0] + n[2],
  6562. r: e.get("borderRadius")
  6563. },
  6564. style: i,
  6565. silent: !0,
  6566. z2: -1
  6567. });
  6568. return t
  6569. }
  6570. function Pd(t, e, n, i, r, o) {
  6571. var a;
  6572. return "line" !== e && e.indexOf("empty") < 0 ? (a = n.getItemStyle(), t.style.stroke = i, o || (a.stroke =
  6573. r)) : a = n.getItemStyle(["borderWidth", "borderColor"]), t.setStyle(a)
  6574. }
  6575. function Od(t, e, n, i) {
  6576. zd(t, e, n, i), n.dispatchAction({
  6577. type: "legendToggleSelect",
  6578. name: null != t ? t : e
  6579. }), Ld(t, e, n, i)
  6580. }
  6581. function Ld(t, e, n, i) {
  6582. var r = n.getZr().storage.getDisplayList()[0];
  6583. r && r.useHoverLayer || n.dispatchAction({
  6584. type: "highlight",
  6585. seriesName: t,
  6586. name: e,
  6587. excludeSeriesId: i
  6588. })
  6589. }
  6590. function zd(t, e, n, i) {
  6591. var r = n.getZr().storage.getDisplayList()[0];
  6592. r && r.useHoverLayer || n.dispatchAction({
  6593. type: "downplay",
  6594. seriesName: t,
  6595. name: e,
  6596. excludeSeriesId: i
  6597. })
  6598. }
  6599. function Ed(t, e, n) {
  6600. var i = t.getOrient(),
  6601. r = [1, 1];
  6602. r[i.index] = 0, Qa(e, n, {
  6603. type: "box",
  6604. ignoreSize: r
  6605. })
  6606. }
  6607. function Bd(t, e, n, i, r) {
  6608. var o = t.axis;
  6609. if (!o.scale.isBlank() && o.containData(e)) {
  6610. if (!t.involveSeries) return void n.showPointer(t, e);
  6611. var s = Rd(e, t),
  6612. l = s.payloadBatch,
  6613. u = s.snapToValue;
  6614. l[0] && null == r.seriesIndex && a(r, l[0]), !i && t.snap && o.containData(u) && null != u && (e = u), n
  6615. .showPointer(t, e, l, r), n.showTooltip(t, s, u)
  6616. }
  6617. }
  6618. function Rd(t, e) {
  6619. var n = e.axis,
  6620. i = n.dim,
  6621. r = t,
  6622. o = [],
  6623. a = Number.MAX_VALUE,
  6624. s = -1;
  6625. return SS(e.seriesModels, function(e) {
  6626. var l, u, h = e.getData().mapDimension(i, !0);
  6627. if (e.getAxisTooltipData) {
  6628. var c = e.getAxisTooltipData(h, t, n);
  6629. u = c.dataIndices, l = c.nestestValue
  6630. } else {
  6631. if (u = e.getData().indicesOfNearest(h[0], t, "category" === n.type ? .5 : null), !u.length)
  6632. return;
  6633. l = e.getData().get(h[0], u[0])
  6634. }
  6635. if (null != l && isFinite(l)) {
  6636. var d = t - l,
  6637. f = Math.abs(d);
  6638. a >= f && ((a > f || d >= 0 && 0 > s) && (a = f, s = d, r = l, o.length = 0), SS(u,
  6639. function(t) {
  6640. o.push({
  6641. seriesIndex: e.seriesIndex,
  6642. dataIndexInside: t,
  6643. dataIndex: e.getData().getRawIndex(t)
  6644. })
  6645. }))
  6646. }
  6647. }), {
  6648. payloadBatch: o,
  6649. snapToValue: r
  6650. }
  6651. }
  6652. function Nd(t, e, n, i) {
  6653. t[e.key] = {
  6654. value: n,
  6655. payloadBatch: i
  6656. }
  6657. }
  6658. function Fd(t, e, n, i) {
  6659. var r = n.payloadBatch,
  6660. o = e.axis,
  6661. a = o.model,
  6662. s = e.axisPointerModel;
  6663. if (e.triggerTooltip && r.length) {
  6664. var l = e.coordSys.model,
  6665. u = Sd(l),
  6666. h = t.map[u];
  6667. h || (h = t.map[u] = {
  6668. coordSysId: l.id,
  6669. coordSysIndex: l.componentIndex,
  6670. coordSysType: l.type,
  6671. coordSysMainType: l.mainType,
  6672. dataByAxis: []
  6673. }, t.list.push(h)), h.dataByAxis.push({
  6674. axisDim: o.dim,
  6675. axisIndex: a.componentIndex,
  6676. axisType: a.type,
  6677. axisId: a.id,
  6678. value: i,
  6679. valueLabelOpt: {
  6680. precision: s.get("label.precision"),
  6681. formatter: s.get("label.formatter")
  6682. },
  6683. seriesDataIndices: r.slice()
  6684. })
  6685. }
  6686. }
  6687. function Vd(t, e, n) {
  6688. var i = n.axesInfo = [];
  6689. SS(e, function(e, n) {
  6690. var r = e.axisPointerModel.option,
  6691. o = t[n];
  6692. o ? (!e.useHandle && (r.status = "show"), r.value = o.value, r.seriesDataIndices = (o
  6693. .payloadBatch || []).slice()) : !e.useHandle && (r.status = "hide"), "show" === r
  6694. .status && i.push({
  6695. axisDim: e.axis.dim,
  6696. axisIndex: e.axis.model.componentIndex,
  6697. value: r.value
  6698. })
  6699. })
  6700. }
  6701. function Wd(t, e, n, i) {
  6702. if (Xd(e) || !t.list.length) return void i({
  6703. type: "hideTip"
  6704. });
  6705. var r = ((t.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};
  6706. i({
  6707. type: "showTip",
  6708. escapeConnect: !0,
  6709. x: e[0],
  6710. y: e[1],
  6711. tooltipOption: n.tooltipOption,
  6712. position: n.position,
  6713. dataIndexInside: r.dataIndexInside,
  6714. dataIndex: r.dataIndex,
  6715. seriesIndex: r.seriesIndex,
  6716. dataByCoordSys: t.list
  6717. })
  6718. }
  6719. function Hd(t, e, n) {
  6720. var i = n.getZr(),
  6721. r = "axisPointerLastHighlights",
  6722. o = IS(i)[r] || {},
  6723. a = IS(i)[r] = {};
  6724. SS(t, function(t) {
  6725. var e = t.axisPointerModel.option;
  6726. "show" === e.status && SS(e.seriesDataIndices, function(t) {
  6727. var e = t.seriesIndex + " | " + t.dataIndex;
  6728. a[e] = t
  6729. })
  6730. });
  6731. var s = [],
  6732. l = [];
  6733. f(o, function(t, e) {
  6734. !a[e] && l.push(t)
  6735. }), f(a, function(t, e) {
  6736. !o[e] && s.push(t)
  6737. }), l.length && n.dispatchAction({
  6738. type: "downplay",
  6739. escapeConnect: !0,
  6740. batch: l
  6741. }), s.length && n.dispatchAction({
  6742. type: "highlight",
  6743. escapeConnect: !0,
  6744. batch: s
  6745. })
  6746. }
  6747. function Gd(t, e) {
  6748. for (var n = 0; n < (t || []).length; n++) {
  6749. var i = t[n];
  6750. if (e.axis.dim === i.axisDim && e.axis.model.componentIndex === i.axisIndex) return i
  6751. }
  6752. }
  6753. function Zd(t) {
  6754. var e = t.axis.model,
  6755. n = {},
  6756. i = n.axisDim = t.axis.dim;
  6757. return n.axisIndex = n[i + "AxisIndex"] = e.componentIndex, n.axisName = n[i + "AxisName"] = e.name, n
  6758. .axisId = n[i + "AxisId"] = e.id, n
  6759. }
  6760. function Xd(t) {
  6761. return !t || null == t[0] || isNaN(t[0]) || null == t[1] || isNaN(t[1])
  6762. }
  6763. function Yd(t, e, n) {
  6764. if (!dp.node) {
  6765. var i = e.getZr();
  6766. TS(i).records || (TS(i).records = {}), Ud(i, e);
  6767. var r = TS(i).records[t] || (TS(i).records[t] = {});
  6768. r.handler = n
  6769. }
  6770. }
  6771. function Ud(t, e) {
  6772. function n(n, i) {
  6773. t.on(n, function(n) {
  6774. var r = $d(e);
  6775. AS(TS(t).records, function(t) {
  6776. t && i(t, n, r.dispatchAction)
  6777. }), jd(r.pendings, e)
  6778. })
  6779. }
  6780. TS(t).initialized || (TS(t).initialized = !0, n("click", x(Kd, "click")), n("mousemove", x(Kd,
  6781. "mousemove")), n("globalout", qd))
  6782. }
  6783. function jd(t, e) {
  6784. var n, i = t.showTip.length,
  6785. r = t.hideTip.length;
  6786. i ? n = t.showTip[i - 1] : r && (n = t.hideTip[r - 1]), n && (n.dispatchAction = null, e.dispatchAction(n))
  6787. }
  6788. function qd(t, e, n) {
  6789. t.handler("leave", null, n)
  6790. }
  6791. function Kd(t, e, n, i) {
  6792. e.handler(t, n, i)
  6793. }
  6794. function $d(t) {
  6795. var e = {
  6796. showTip: [],
  6797. hideTip: []
  6798. },
  6799. n = function(i) {
  6800. var r = e[i.type];
  6801. r ? r.push(i) : (i.dispatchAction = n, t.dispatchAction(i))
  6802. };
  6803. return {
  6804. dispatchAction: n,
  6805. pendings: e
  6806. }
  6807. }
  6808. function Qd(t, e) {
  6809. if (!dp.node) {
  6810. var n = e.getZr(),
  6811. i = (TS(n).records || {})[t];
  6812. i && (TS(n).records[t] = null)
  6813. }
  6814. }
  6815. function Jd() {}
  6816. function tf(t, e, n, i) {
  6817. ef(kS(n).lastProp, i) || (kS(n).lastProp = i, e ? ea(n, i, t) : (n.stopAnimation(), n.attr(i)))
  6818. }
  6819. function ef(t, e) {
  6820. if (S(t) && S(e)) {
  6821. var n = !0;
  6822. return f(e, function(e, i) {
  6823. n = n && ef(t[i], e)
  6824. }), !!n
  6825. }
  6826. return t === e
  6827. }
  6828. function nf(t, e) {
  6829. t[e.get("label.show") ? "show" : "hide"]()
  6830. }
  6831. function rf(t) {
  6832. return {
  6833. position: t.position.slice(),
  6834. rotation: t.rotation || 0
  6835. }
  6836. }
  6837. function of(t, e, n) {
  6838. var i = e.get("z"),
  6839. r = e.get("zlevel");
  6840. t && t.traverse(function(t) {
  6841. "group" !== t.type && (null != i && (t.z = i), null != r && (t.zlevel = r), t.silent = n)
  6842. })
  6843. }
  6844. function af(t) {
  6845. var e, n = t.get("type"),
  6846. i = t.getModel(n + "Style");
  6847. return "line" === n ? (e = i.getLineStyle(), e.fill = null) : "shadow" === n && (e = i.getAreaStyle(), e
  6848. .stroke = null), e
  6849. }
  6850. function sf(t, e, n, i, r) {
  6851. var o = n.get("value"),
  6852. a = uf(o, e.axis, e.ecModel, n.get("seriesDataIndices"), {
  6853. precision: n.get("label.precision"),
  6854. formatter: n.get("label.formatter")
  6855. }),
  6856. s = n.getModel("label"),
  6857. l = By(s.get("padding") || 0),
  6858. u = s.getFont(),
  6859. h = Yn(a, u),
  6860. c = r.position,
  6861. d = h.width + l[1] + l[3],
  6862. f = h.height + l[0] + l[2],
  6863. p = r.align;
  6864. "right" === p && (c[0] -= d), "center" === p && (c[0] -= d / 2);
  6865. var g = r.verticalAlign;
  6866. "bottom" === g && (c[1] -= f), "middle" === g && (c[1] -= f / 2), lf(c, d, f, i);
  6867. var v = s.get("backgroundColor");
  6868. v && "auto" !== v || (v = e.get("axisLine.lineStyle.color")), t.label = {
  6869. shape: {
  6870. x: 0,
  6871. y: 0,
  6872. width: d,
  6873. height: f,
  6874. r: s.get("borderRadius")
  6875. },
  6876. position: c.slice(),
  6877. style: {
  6878. text: a,
  6879. textFont: u,
  6880. textFill: s.getTextColor(),
  6881. textPosition: "inside",
  6882. textPadding: l,
  6883. fill: v,
  6884. stroke: s.get("borderColor") || "transparent",
  6885. lineWidth: s.get("borderWidth") || 0,
  6886. shadowBlur: s.get("shadowBlur"),
  6887. shadowColor: s.get("shadowColor"),
  6888. shadowOffsetX: s.get("shadowOffsetX"),
  6889. shadowOffsetY: s.get("shadowOffsetY")
  6890. },
  6891. z2: 10
  6892. }
  6893. }
  6894. function lf(t, e, n, i) {
  6895. var r = i.getWidth(),
  6896. o = i.getHeight();
  6897. t[0] = Math.min(t[0] + e, r) - e, t[1] = Math.min(t[1] + n, o) - n, t[0] = Math.max(t[0], 0), t[1] = Math
  6898. .max(t[1], 0)
  6899. }
  6900. function uf(t, e, n, i, r) {
  6901. t = e.scale.parse(t);
  6902. var o = e.scale.getLabel(t, {
  6903. precision: r.precision
  6904. }),
  6905. a = r.formatter;
  6906. if (a) {
  6907. var s = {
  6908. value: Hh(e, t),
  6909. axisDimension: e.dim,
  6910. axisIndex: e.index,
  6911. seriesData: []
  6912. };
  6913. f(i, function(t) {
  6914. var e = n.getSeriesByIndex(t.seriesIndex),
  6915. i = t.dataIndexInside,
  6916. r = e && e.getDataParams(i);
  6917. r && s.seriesData.push(r)
  6918. }), b(a) ? o = a.replace("{value}", o) : w(a) && (o = a(s))
  6919. }
  6920. return o
  6921. }
  6922. function hf(t, e, n) {
  6923. var i = Le();
  6924. return Ne(i, i, n.rotation), Re(i, i, n.position), ra([t.dataToCoord(e), (n.labelOffset || 0) + (n
  6925. .labelDirection || 1) * (n.labelMargin || 0)], i)
  6926. }
  6927. function cf(t, e, n, i, r, o) {
  6928. var a = $b.innerTextLayout(n.rotation, 0, n.labelDirection);
  6929. n.labelMargin = r.get("label.margin"), sf(e, i, r, o, {
  6930. position: hf(i.axis, t, n),
  6931. align: a.textAlign,
  6932. verticalAlign: a.textVerticalAlign
  6933. })
  6934. }
  6935. function df(t, e, n) {
  6936. return n = n || 0, {
  6937. x1: t[n],
  6938. y1: t[1 - n],
  6939. x2: e[n],
  6940. y2: e[1 - n]
  6941. }
  6942. }
  6943. function ff(t, e, n) {
  6944. return n = n || 0, {
  6945. x: t[n],
  6946. y: t[1 - n],
  6947. width: e[n],
  6948. height: e[1 - n]
  6949. }
  6950. }
  6951. function pf(t, e) {
  6952. var n = {};
  6953. return n[e.dim + "AxisIndex"] = e.index, t.getCartesian(n)
  6954. }
  6955. function gf(t) {
  6956. return "x" === t.dim ? 0 : 1
  6957. }
  6958. function vf(t) {
  6959. var e = "cubic-bezier(0.23, 1, 0.32, 1)",
  6960. n = "left " + t + "s " + e + ",top " + t + "s " + e;
  6961. return p(RS, function(t) {
  6962. return t + "transition:" + n
  6963. }).join(";")
  6964. }
  6965. function mf(t) {
  6966. var e = [],
  6967. n = t.get("fontSize"),
  6968. i = t.getTextColor();
  6969. return i && e.push("color:" + i), e.push("font:" + t.getFont()), n && e.push("line-height:" + Math.round(3 *
  6970. n / 2) + "px"), ES(["decoration", "align"], function(n) {
  6971. var i = t.get(n);
  6972. i && e.push("text-" + n + ":" + i)
  6973. }), e.join(";")
  6974. }
  6975. function yf(t) {
  6976. var e = [],
  6977. n = t.get("transitionDuration"),
  6978. i = t.get("backgroundColor"),
  6979. r = t.getModel("textStyle"),
  6980. o = t.get("padding");
  6981. return n && e.push(vf(n)), i && (dp.canvasSupported ? e.push("background-Color:" + i) : (e.push(
  6982. "background-Color:#" + on(i)), e.push("filter:alpha(opacity=70)"))), ES(["width", "color",
  6983. "radius"],
  6984. function(n) {
  6985. var i = "border-" + n,
  6986. r = BS(i),
  6987. o = t.get(r);
  6988. null != o && e.push(i + ":" + o + ("color" === n ? "" : "px"))
  6989. }), e.push(mf(r)), null != o && e.push("padding:" + By(o).join("px ") + "px"), e.join(";") + ";"
  6990. }
  6991. function xf(t, e, n, i, r) {
  6992. var o = e && e.painter;
  6993. if (n) {
  6994. var a = o && o.getViewportRoot();
  6995. a && pe(t, a, document.body, i, r)
  6996. } else {
  6997. t[0] = i, t[1] = r;
  6998. var s = o && o.getViewportRootOffset();
  6999. s && (t[0] += s.offsetLeft, t[1] += s.offsetTop)
  7000. }
  7001. }
  7002. function _f(t, e, n) {
  7003. if (dp.wxa) return null;
  7004. var i = document.createElement("div");
  7005. i.domBelongToZr = !0, this.el = i;
  7006. var r = this._zr = e.getZr(),
  7007. o = this._appendToBody = n && n.appendToBody;
  7008. this._styleCoord = [0, 0], xf(this._styleCoord, r, o, e.getWidth() / 2, e.getHeight() / 2), o ? document
  7009. .body.appendChild(i) : t.appendChild(i), this._container = t, this._show = !1, this._hideTimeout;
  7010. var a = this;
  7011. i.onmouseenter = function() {
  7012. a._enterable && (clearTimeout(a._hideTimeout), a._show = !0), a._inContent = !0
  7013. }, i.onmousemove = function(t) {
  7014. if (t = t || window.event, !a._enterable) {
  7015. var e = r.handler,
  7016. n = r.painter.getViewportRoot();
  7017. be(n, t, !0), e.dispatch("mousemove", t)
  7018. }
  7019. }, i.onmouseleave = function() {
  7020. a._enterable && a._show && a.hideLater(a._hideDelay), a._inContent = !1
  7021. }
  7022. }
  7023. function wf(t) {
  7024. this._zr = t.getZr(), this._show = !1, this._hideTimeout
  7025. }
  7026. function bf(t) {
  7027. for (var e = t.pop(); t.length;) {
  7028. var n = t.pop();
  7029. n && (pa.isInstance(n) && (n = n.get("tooltip", !0)), "string" == typeof n && (n = {
  7030. formatter: n
  7031. }), e = new pa(n, e, e.ecModel))
  7032. }
  7033. return e
  7034. }
  7035. function Sf(t, e) {
  7036. return t.dispatchAction || y(e.dispatchAction, e)
  7037. }
  7038. function Mf(t, e, n, i, r, o, a) {
  7039. var s = n.getOuterSize(),
  7040. l = s.width,
  7041. u = s.height;
  7042. return null != o && (t + l + o > i ? t -= l + o : t += o), null != a && (e + u + a > r ? e -= u + a : e +=
  7043. a), [t, e]
  7044. }
  7045. function If(t, e, n, i, r) {
  7046. var o = n.getOuterSize(),
  7047. a = o.width,
  7048. s = o.height;
  7049. return t = Math.min(t + a, i) - a, e = Math.min(e + s, r) - s, t = Math.max(t, 0), e = Math.max(e, 0), [t,
  7050. e]
  7051. }
  7052. function Cf(t, e, n) {
  7053. var i = n[0],
  7054. r = n[1],
  7055. o = 5,
  7056. a = 0,
  7057. s = 0,
  7058. l = e.width,
  7059. u = e.height;
  7060. switch (t) {
  7061. case "inside":
  7062. a = e.x + l / 2 - i / 2, s = e.y + u / 2 - r / 2;
  7063. break;
  7064. case "top":
  7065. a = e.x + l / 2 - i / 2, s = e.y - r - o;
  7066. break;
  7067. case "bottom":
  7068. a = e.x + l / 2 - i / 2, s = e.y + u + o;
  7069. break;
  7070. case "left":
  7071. a = e.x - i - o, s = e.y + u / 2 - r / 2;
  7072. break;
  7073. case "right":
  7074. a = e.x + l + o, s = e.y + u / 2 - r / 2
  7075. }
  7076. return [a, s]
  7077. }
  7078. function Tf(t) {
  7079. return "center" === t || "middle" === t
  7080. }
  7081. function Af(t) {
  7082. return u(ZS, t) >= 0
  7083. }
  7084. function Df(t, e) {
  7085. t = t.slice();
  7086. var n = p(t, Ya);
  7087. e = (e || []).slice();
  7088. var i = p(e, Ya);
  7089. return function(r, o) {
  7090. f(t, function(t, a) {
  7091. for (var s = {
  7092. name: t,
  7093. capital: n[a]
  7094. }, l = 0; l < e.length; l++) s[e[l]] = t + i[l];
  7095. r.call(o, s)
  7096. })
  7097. }
  7098. }
  7099. function kf(t, e, n) {
  7100. function i(t, e) {
  7101. return u(e.nodes, t) >= 0
  7102. }
  7103. function r(t, i) {
  7104. var r = !1;
  7105. return e(function(e) {
  7106. f(n(t, e) || [], function(t) {
  7107. i.records[e.name][t] && (r = !0)
  7108. })
  7109. }), r
  7110. }
  7111. function o(t, i) {
  7112. i.nodes.push(t), e(function(e) {
  7113. f(n(t, e) || [], function(t) {
  7114. i.records[e.name][t] = !0
  7115. })
  7116. })
  7117. }
  7118. return function(n) {
  7119. function a(t) {
  7120. !i(t, s) && r(t, s) && (o(t, s), l = !0)
  7121. }
  7122. var s = {
  7123. nodes: [],
  7124. records: {}
  7125. };
  7126. if (e(function(t) {
  7127. s.records[t.name] = {}
  7128. }), !n) return s;
  7129. o(n, s);
  7130. var l;
  7131. do l = !1, t(a); while (l);
  7132. return s
  7133. }
  7134. }
  7135. function Pf(t, e) {
  7136. var n = t[e] - t[1 - e];
  7137. return {
  7138. span: Math.abs(n),
  7139. sign: n > 0 ? -1 : 0 > n ? 1 : e ? -1 : 1
  7140. }
  7141. }
  7142. function Of(t, e) {
  7143. return Math.min(null != e[1] ? e[1] : 1 / 0, Math.max(null != e[0] ? e[0] : -1 / 0, t))
  7144. }
  7145. function Lf(t, e, n) {
  7146. var i = [1 / 0, -1 / 0];
  7147. return US(n, function(t) {
  7148. var n = t.getData();
  7149. n && US(n.mapDimension(e, !0), function(t) {
  7150. var e = n.getApproximateExtent(t);
  7151. e[0] < i[0] && (i[0] = e[0]), e[1] > i[1] && (i[1] = e[1])
  7152. })
  7153. }), i[1] < i[0] && (i = [0 / 0, 0 / 0]), zf(t, i), i
  7154. }
  7155. function zf(t, e) {
  7156. var n = t.getAxisModel(),
  7157. i = n.getMin(!0),
  7158. r = "category" === n.get("type"),
  7159. o = r && n.getCategories().length;
  7160. null != i && "dataMin" !== i && "function" != typeof i ? e[0] = i : r && (e[0] = o > 0 ? 0 : 0 / 0);
  7161. var a = n.getMax(!0);
  7162. return null != a && "dataMax" !== a && "function" != typeof a ? e[1] = a : r && (e[1] = o > 0 ? o - 1 : 0 /
  7163. 0), n.get("scale", !0) || (e[0] > 0 && (e[0] = 0), e[1] < 0 && (e[1] = 0)), e
  7164. }
  7165. function Ef(t, e) {
  7166. var n = t.getAxisModel(),
  7167. i = t._percentWindow,
  7168. r = t._valueWindow;
  7169. if (i) {
  7170. var o = Ta(r, [0, 500]);
  7171. o = Math.min(o, 20);
  7172. var a = e || 0 === i[0] && 100 === i[1];
  7173. n.setRange(a ? null : +r[0].toFixed(o), a ? null : +r[1].toFixed(o))
  7174. }
  7175. }
  7176. function Bf(t) {
  7177. var e = t._minMaxSpan = {},
  7178. n = t._dataZoomModel,
  7179. i = t._dataExtent;
  7180. US(["min", "max"], function(r) {
  7181. var o = n.get(r + "Span"),
  7182. a = n.get(r + "ValueSpan");
  7183. null != a && (a = t.getAxisModel().axis.scale.parse(a)), null != a ? o = wa(i[0] + a, i, [0,
  7184. 100], !0) : null != o && (a = wa(o, [0, 100], i, !0) - i[0]), e[r + "Span"] = o, e[r +
  7185. "ValueSpan"] = a
  7186. })
  7187. }
  7188. function Rf(t) {
  7189. var e = {};
  7190. return KS(["start", "end", "startValue", "endValue", "throttle"], function(n) {
  7191. t.hasOwnProperty(n) && (e[n] = t[n])
  7192. }), e
  7193. }
  7194. function Nf(t, e) {
  7195. var n = t._rangePropMode,
  7196. i = t.get("rangeMode");
  7197. KS([
  7198. ["start", "startValue"],
  7199. ["end", "endValue"]
  7200. ], function(t, r) {
  7201. var o = null != e[t[0]],
  7202. a = null != e[t[1]];
  7203. o && !a ? n[r] = "percent" : !o && a ? n[r] = "value" : i ? n[r] = i[r] : o && (n[r] =
  7204. "percent")
  7205. })
  7206. }
  7207. function Ff(t) {
  7208. var e = {
  7209. x: "y",
  7210. y: "x",
  7211. radius: "angle",
  7212. angle: "radius"
  7213. };
  7214. return e[t]
  7215. }
  7216. function Vf(t) {
  7217. return "vertical" === t ? "ns-resize" : "ew-resize"
  7218. }
  7219. function Wf(t, e) {
  7220. return !!Hf(t)[e]
  7221. }
  7222. function Hf(t) {
  7223. return t[fM] || (t[fM] = {})
  7224. }
  7225. function Gf(t) {
  7226. this.pointerChecker, this._zr = t, this._opt = {};
  7227. var e = y,
  7228. n = e(Zf, this),
  7229. r = e(Xf, this),
  7230. o = e(Yf, this),
  7231. a = e(Uf, this),
  7232. l = e(jf, this);
  7233. zp.call(this), this.setPointerChecker = function(t) {
  7234. this.pointerChecker = t
  7235. }, this.enable = function(e, u) {
  7236. this.disable(), this._opt = s(i(u) || {}, {
  7237. zoomOnMouseWheel: !0,
  7238. moveOnMouseMove: !0,
  7239. moveOnMouseWheel: !1,
  7240. preventDefaultMouseMove: !0
  7241. }), null == e && (e = !0), (e === !0 || "move" === e || "pan" === e) && (t.on("mousedown", n), t
  7242. .on("mousemove", r), t.on("mouseup", o)), (e === !0 || "scale" === e || "zoom" === e) && (t
  7243. .on("mousewheel", a), t.on("pinch", l))
  7244. }, this.disable = function() {
  7245. t.off("mousedown", n), t.off("mousemove", r), t.off("mouseup", o), t.off("mousewheel", a), t.off(
  7246. "pinch", l)
  7247. }, this.dispose = this.disable, this.isDragging = function() {
  7248. return this._dragging
  7249. }, this.isPinching = function() {
  7250. return this._pinching
  7251. }
  7252. }
  7253. function Zf(t) {
  7254. if (!(Ie(t) || t.target && t.target.draggable)) {
  7255. var e = t.offsetX,
  7256. n = t.offsetY;
  7257. this.pointerChecker && this.pointerChecker(t, e, n) && (this._x = e, this._y = n, this._dragging = !0)
  7258. }
  7259. }
  7260. function Xf(t) {
  7261. if (this._dragging && $f("moveOnMouseMove", t, this._opt) && "pinch" !== t.gestureEvent && !Wf(this._zr,
  7262. "globalPan")) {
  7263. var e = t.offsetX,
  7264. n = t.offsetY,
  7265. i = this._x,
  7266. r = this._y,
  7267. o = e - i,
  7268. a = n - r;
  7269. this._x = e, this._y = n, this._opt.preventDefaultMouseMove && Wp(t.event), Kf(this, "pan",
  7270. "moveOnMouseMove", t, {
  7271. dx: o,
  7272. dy: a,
  7273. oldX: i,
  7274. oldY: r,
  7275. newX: e,
  7276. newY: n
  7277. })
  7278. }
  7279. }
  7280. function Yf(t) {
  7281. Ie(t) || (this._dragging = !1)
  7282. }
  7283. function Uf(t) {
  7284. var e = $f("zoomOnMouseWheel", t, this._opt),
  7285. n = $f("moveOnMouseWheel", t, this._opt),
  7286. i = t.wheelDelta,
  7287. r = Math.abs(i),
  7288. o = t.offsetX,
  7289. a = t.offsetY;
  7290. if (0 !== i && (e || n)) {
  7291. if (e) {
  7292. var s = r > 3 ? 1.4 : r > 1 ? 1.2 : 1.1,
  7293. l = i > 0 ? s : 1 / s;
  7294. qf(this, "zoom", "zoomOnMouseWheel", t, {
  7295. scale: l,
  7296. originX: o,
  7297. originY: a
  7298. })
  7299. }
  7300. if (n) {
  7301. var u = Math.abs(i),
  7302. h = (i > 0 ? 1 : -1) * (u > 3 ? .4 : u > 1 ? .15 : .05);
  7303. qf(this, "scrollMove", "moveOnMouseWheel", t, {
  7304. scrollDelta: h,
  7305. originX: o,
  7306. originY: a
  7307. })
  7308. }
  7309. }
  7310. }
  7311. function jf(t) {
  7312. if (!Wf(this._zr, "globalPan")) {
  7313. var e = t.pinchScale > 1 ? 1.1 : 1 / 1.1;
  7314. qf(this, "zoom", null, t, {
  7315. scale: e,
  7316. originX: t.pinchX,
  7317. originY: t.pinchY
  7318. })
  7319. }
  7320. }
  7321. function qf(t, e, n, i, r) {
  7322. t.pointerChecker && t.pointerChecker(i, r.originX, r.originY) && (Wp(i.event), Kf(t, e, n, i, r))
  7323. }
  7324. function Kf(t, e, n, i, r) {
  7325. r.isAvailableBehavior = y($f, null, n, i), t.trigger(e, r)
  7326. }
  7327. function $f(t, e, n) {
  7328. var i = n[t];
  7329. return !t || i && (!b(i) || e.event[i + "Key"])
  7330. }
  7331. function Qf(t, e) {
  7332. var n = ep(t),
  7333. i = e.dataZoomId,
  7334. r = e.coordId;
  7335. f(n, function(t) {
  7336. var n = t.dataZoomInfos;
  7337. n[i] && u(e.allCoordIds, r) < 0 && (delete n[i], t.count--)
  7338. }), ip(n);
  7339. var o = n[r];
  7340. o || (o = n[r] = {
  7341. coordId: r,
  7342. dataZoomInfos: {},
  7343. count: 0
  7344. }, o.controller = np(t, o), o.dispatchAction = x(rp, t)), !o.dataZoomInfos[i] && o.count++, o
  7345. .dataZoomInfos[i] = e;
  7346. var a = op(o.dataZoomInfos);
  7347. o.controller.enable(a.controlType, a.opt), o.controller.setPointerChecker(e.containsPoint), vl(o,
  7348. "dispatchAction", e.dataZoomModel.get("throttle", !0), "fixRate")
  7349. }
  7350. function Jf(t, e) {
  7351. var n = ep(t);
  7352. f(n, function(t) {
  7353. t.controller.dispose();
  7354. var n = t.dataZoomInfos;
  7355. n[e] && (delete n[e], t.count--)
  7356. }), ip(n)
  7357. }
  7358. function tp(t) {
  7359. return t.type + "\x00_" + t.id
  7360. }
  7361. function ep(t) {
  7362. var e = t.getZr();
  7363. return e[pM] || (e[pM] = {})
  7364. }
  7365. function np(t, e) {
  7366. var n = new Gf(t.getZr());
  7367. return f(["pan", "zoom", "scrollMove"], function(t) {
  7368. n.on(t, function(n) {
  7369. var i = [];
  7370. f(e.dataZoomInfos, function(r) {
  7371. if (n.isAvailableBehavior(r.dataZoomModel.option)) {
  7372. var o = (r.getRange || {})[t],
  7373. a = o && o(e.controller, n);
  7374. !r.dataZoomModel.get("disabled", !0) && a && i.push({
  7375. dataZoomId: r.dataZoomId,
  7376. start: a[0],
  7377. end: a[1]
  7378. })
  7379. }
  7380. }), i.length && e.dispatchAction(i)
  7381. })
  7382. }), n
  7383. }
  7384. function ip(t) {
  7385. f(t, function(e, n) {
  7386. e.count || (e.controller.dispose(), delete t[n])
  7387. })
  7388. }
  7389. function rp(t, e) {
  7390. t.dispatchAction({
  7391. type: "dataZoom",
  7392. batch: e
  7393. })
  7394. }
  7395. function op(t) {
  7396. var e, n = "type_",
  7397. i = {
  7398. type_true: 2,
  7399. type_move: 1,
  7400. type_false: 0,
  7401. type_undefined: -1
  7402. },
  7403. r = !0;
  7404. return f(t, function(t) {
  7405. var o = t.dataZoomModel,
  7406. a = o.get("disabled", !0) ? !1 : o.get("zoomLock", !0) ? "move" : !0;
  7407. i[n + a] > i[n + e] && (e = a), r &= o.get("preventDefaultMouseMove", !0)
  7408. }), {
  7409. controlType: e,
  7410. opt: {
  7411. zoomOnMouseWheel: !0,
  7412. moveOnMouseMove: !0,
  7413. moveOnMouseWheel: !0,
  7414. preventDefaultMouseMove: !!r
  7415. }
  7416. }
  7417. }
  7418. function ap(t) {
  7419. return function(e, n, i, r) {
  7420. var o = this._range,
  7421. a = o.slice(),
  7422. s = e.axisModels[0];
  7423. if (s) {
  7424. var l = t(a, s, e, n, i, r);
  7425. return YS(l, a, [0, 100], "all"), this._range = a, o[0] !== a[0] || o[1] !== a[1] ? a : void 0
  7426. }
  7427. }
  7428. }
  7429. var sp;
  7430. "undefined" != typeof window ? sp = window.__DEV__ : "undefined" != typeof global && (sp = global.__DEV__),
  7431. "undefined" == typeof sp && (sp = !0);
  7432. var lp = sp,
  7433. up = 2311,
  7434. hp = function() {
  7435. return up++
  7436. },
  7437. cp = {};
  7438. cp = "object" == typeof wx && "function" == typeof wx.getSystemInfoSync ? {
  7439. browser: {},
  7440. os: {},
  7441. node: !1,
  7442. wxa: !0,
  7443. canvasSupported: !0,
  7444. svgSupported: !1,
  7445. touchEventsSupported: !0,
  7446. domSupported: !1
  7447. } : "undefined" == typeof document && "undefined" != typeof self ? {
  7448. browser: {},
  7449. os: {},
  7450. node: !1,
  7451. worker: !0,
  7452. canvasSupported: !0,
  7453. domSupported: !1
  7454. } : "undefined" == typeof navigator ? {
  7455. browser: {},
  7456. os: {},
  7457. node: !0,
  7458. worker: !1,
  7459. canvasSupported: !0,
  7460. svgSupported: !0,
  7461. domSupported: !1
  7462. } : e(navigator.userAgent);
  7463. var dp = cp,
  7464. fp = {
  7465. "[object Function]": 1,
  7466. "[object RegExp]": 1,
  7467. "[object Date]": 1,
  7468. "[object Error]": 1,
  7469. "[object CanvasGradient]": 1,
  7470. "[object CanvasPattern]": 1,
  7471. "[object Image]": 1,
  7472. "[object Canvas]": 1
  7473. },
  7474. pp = {
  7475. "[object Int8Array]": 1,
  7476. "[object Uint8Array]": 1,
  7477. "[object Uint8ClampedArray]": 1,
  7478. "[object Int16Array]": 1,
  7479. "[object Uint16Array]": 1,
  7480. "[object Int32Array]": 1,
  7481. "[object Uint32Array]": 1,
  7482. "[object Float32Array]": 1,
  7483. "[object Float64Array]": 1
  7484. },
  7485. gp = Object.prototype.toString,
  7486. vp = Array.prototype,
  7487. mp = vp.forEach,
  7488. yp = vp.filter,
  7489. xp = vp.slice,
  7490. _p = vp.map,
  7491. wp = vp.reduce,
  7492. bp = {},
  7493. Sp = function() {
  7494. return bp.createCanvas()
  7495. };
  7496. bp.createCanvas = function() {
  7497. return document.createElement("canvas")
  7498. };
  7499. var Mp, Ip = "__ec_primitive__";
  7500. R.prototype = {
  7501. constructor: R,
  7502. get: function(t) {
  7503. return this.data.hasOwnProperty(t) ? this.data[t] : null
  7504. },
  7505. set: function(t, e) {
  7506. return this.data[t] = e
  7507. },
  7508. each: function(t, e) {
  7509. void 0 !== e && (t = y(t, e));
  7510. for (var n in this.data) this.data.hasOwnProperty(n) && t(this.data[n], n)
  7511. },
  7512. removeKey: function(t) {
  7513. delete this.data[t]
  7514. }
  7515. };
  7516. var Cp = (Object.freeze || Object)({
  7517. $override: n,
  7518. clone: i,
  7519. merge: r,
  7520. mergeAll: o,
  7521. extend: a,
  7522. defaults: s,
  7523. createCanvas: Sp,
  7524. getContext: l,
  7525. indexOf: u,
  7526. inherits: h,
  7527. mixin: c,
  7528. isArrayLike: d,
  7529. each: f,
  7530. map: p,
  7531. reduce: g,
  7532. filter: v,
  7533. find: m,
  7534. bind: y,
  7535. curry: x,
  7536. isArray: _,
  7537. isFunction: w,
  7538. isString: b,
  7539. isObject: S,
  7540. isBuiltInObject: M,
  7541. isTypedArray: I,
  7542. isDom: C,
  7543. eqNaN: T,
  7544. retrieve: A,
  7545. retrieve2: D,
  7546. retrieve3: k,
  7547. slice: P,
  7548. normalizeCssArray: O,
  7549. assert: L,
  7550. trim: z,
  7551. setAsPrimitive: E,
  7552. isPrimitive: B,
  7553. createHashMap: N,
  7554. concatArray: F,
  7555. noop: V
  7556. }),
  7557. Tp = "undefined" == typeof Float32Array ? Array : Float32Array,
  7558. Ap = j,
  7559. Dp = q,
  7560. kp = ee,
  7561. Pp = ne,
  7562. Op = (Object.freeze || Object)({
  7563. create: W,
  7564. copy: H,
  7565. clone: G,
  7566. set: Z,
  7567. add: X,
  7568. scaleAndAdd: Y,
  7569. sub: U,
  7570. len: j,
  7571. length: Ap,
  7572. lenSquare: q,
  7573. lengthSquare: Dp,
  7574. mul: K,
  7575. div: $,
  7576. dot: Q,
  7577. scale: J,
  7578. normalize: te,
  7579. distance: ee,
  7580. dist: kp,
  7581. distanceSquare: ne,
  7582. distSquare: Pp,
  7583. negate: ie,
  7584. lerp: re,
  7585. applyTransform: oe,
  7586. min: ae,
  7587. max: se
  7588. });
  7589. le.prototype = {
  7590. constructor: le,
  7591. _dragStart: function(t) {
  7592. for (var e = t.target; e && !e.draggable;) e = e.parent;
  7593. e && (this._draggingTarget = e, e.dragging = !0, this._x = t.offsetX, this._y = t.offsetY, this
  7594. .dispatchToElement(ue(e, t), "dragstart", t.event))
  7595. },
  7596. _drag: function(t) {
  7597. var e = this._draggingTarget;
  7598. if (e) {
  7599. var n = t.offsetX,
  7600. i = t.offsetY,
  7601. r = n - this._x,
  7602. o = i - this._y;
  7603. this._x = n, this._y = i, e.drift(r, o, t), this.dispatchToElement(ue(e, t), "drag", t
  7604. .event);
  7605. var a = this.findHover(n, i, e).target,
  7606. s = this._dropTarget;
  7607. this._dropTarget = a, e !== a && (s && a !== s && this.dispatchToElement(ue(s, t),
  7608. "dragleave", t.event), a && a !== s && this.dispatchToElement(ue(a, t),
  7609. "dragenter", t.event))
  7610. }
  7611. },
  7612. _dragEnd: function(t) {
  7613. var e = this._draggingTarget;
  7614. e && (e.dragging = !1), this.dispatchToElement(ue(e, t), "dragend", t.event), this
  7615. ._dropTarget && this.dispatchToElement(ue(this._dropTarget, t), "drop", t.event), this
  7616. ._draggingTarget = null, this._dropTarget = null
  7617. }
  7618. };
  7619. var Lp = Array.prototype.slice,
  7620. zp = function(t) {
  7621. this._$handlers = {}, this._$eventProcessor = t
  7622. };
  7623. zp.prototype = {
  7624. constructor: zp,
  7625. one: function(t, e, n, i) {
  7626. return ce(this, t, e, n, i, !0)
  7627. },
  7628. on: function(t, e, n, i) {
  7629. return ce(this, t, e, n, i, !1)
  7630. },
  7631. isSilent: function(t) {
  7632. var e = this._$handlers;
  7633. return !e[t] || !e[t].length
  7634. },
  7635. off: function(t, e) {
  7636. var n = this._$handlers;
  7637. if (!t) return this._$handlers = {}, this;
  7638. if (e) {
  7639. if (n[t]) {
  7640. for (var i = [], r = 0, o = n[t].length; o > r; r++) n[t][r].h !== e && i.push(n[t][r]);
  7641. n[t] = i
  7642. }
  7643. n[t] && 0 === n[t].length && delete n[t]
  7644. } else delete n[t];
  7645. return this
  7646. },
  7647. trigger: function(t) {
  7648. var e = this._$handlers[t],
  7649. n = this._$eventProcessor;
  7650. if (e) {
  7651. var i = arguments,
  7652. r = i.length;
  7653. r > 3 && (i = Lp.call(i, 1));
  7654. for (var o = e.length, a = 0; o > a;) {
  7655. var s = e[a];
  7656. if (n && n.filter && null != s.query && !n.filter(t, s.query)) a++;
  7657. else {
  7658. switch (r) {
  7659. case 1:
  7660. s.h.call(s.ctx);
  7661. break;
  7662. case 2:
  7663. s.h.call(s.ctx, i[1]);
  7664. break;
  7665. case 3:
  7666. s.h.call(s.ctx, i[1], i[2]);
  7667. break;
  7668. default:
  7669. s.h.apply(s.ctx, i)
  7670. }
  7671. s.one ? (e.splice(a, 1), o--) : a++
  7672. }
  7673. }
  7674. }
  7675. return n && n.afterTrigger && n.afterTrigger(t), this
  7676. },
  7677. triggerWithContext: function(t) {
  7678. var e = this._$handlers[t],
  7679. n = this._$eventProcessor;
  7680. if (e) {
  7681. var i = arguments,
  7682. r = i.length;
  7683. r > 4 && (i = Lp.call(i, 1, i.length - 1));
  7684. for (var o = i[i.length - 1], a = e.length, s = 0; a > s;) {
  7685. var l = e[s];
  7686. if (n && n.filter && null != l.query && !n.filter(t, l.query)) s++;
  7687. else {
  7688. switch (r) {
  7689. case 1:
  7690. l.h.call(o);
  7691. break;
  7692. case 2:
  7693. l.h.call(o, i[1]);
  7694. break;
  7695. case 3:
  7696. l.h.call(o, i[1], i[2]);
  7697. break;
  7698. default:
  7699. l.h.apply(o, i)
  7700. }
  7701. l.one ? (e.splice(s, 1), a--) : s++
  7702. }
  7703. }
  7704. }
  7705. return n && n.afterTrigger && n.afterTrigger(t), this
  7706. }
  7707. };
  7708. var Ep = Math.log(2),
  7709. Bp = "___zrEVENTSAVED",
  7710. Rp = [],
  7711. Np = "undefined" != typeof window && !!window.addEventListener,
  7712. Fp = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
  7713. Vp = [],
  7714. Wp = Np ? function(t) {
  7715. t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0
  7716. } : function(t) {
  7717. t.returnValue = !1, t.cancelBubble = !0
  7718. },
  7719. Hp = function() {
  7720. this._track = []
  7721. };
  7722. Hp.prototype = {
  7723. constructor: Hp,
  7724. recognize: function(t, e, n) {
  7725. return this._doTrack(t, e, n), this._recognize(t)
  7726. },
  7727. clear: function() {
  7728. return this._track.length = 0, this
  7729. },
  7730. _doTrack: function(t, e, n) {
  7731. var i = t.touches;
  7732. if (i) {
  7733. for (var r = {
  7734. points: [],
  7735. touches: [],
  7736. target: e,
  7737. event: t
  7738. }, o = 0, a = i.length; a > o; o++) {
  7739. var s = i[o],
  7740. l = xe(n, s, {});
  7741. r.points.push([l.zrX, l.zrY]), r.touches.push(s)
  7742. }
  7743. this._track.push(r)
  7744. }
  7745. },
  7746. _recognize: function(t) {
  7747. for (var e in Gp)
  7748. if (Gp.hasOwnProperty(e)) {
  7749. var n = Gp[e](this._track, t);
  7750. if (n) return n
  7751. }
  7752. }
  7753. };
  7754. var Gp = {
  7755. pinch: function(t, e) {
  7756. var n = t.length;
  7757. if (n) {
  7758. var i = (t[n - 1] || {}).points,
  7759. r = (t[n - 2] || {}).points || i;
  7760. if (r && r.length > 1 && i && i.length > 1) {
  7761. var o = Ce(i) / Ce(r);
  7762. !isFinite(o) && (o = 1), e.pinchScale = o;
  7763. var a = Te(i);
  7764. return e.pinchX = a[0], e.pinchY = a[1], {
  7765. type: "pinch",
  7766. target: t[0].target,
  7767. event: e
  7768. }
  7769. }
  7770. }
  7771. }
  7772. },
  7773. Zp = "silent";
  7774. ke.prototype.dispose = function() {};
  7775. var Xp = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"],
  7776. Yp = function(t, e, n, i) {
  7777. zp.call(this), this.storage = t, this.painter = e, this.painterRoot = i, n = n || new ke, this.proxy =
  7778. null, this._hovered = {}, this._lastTouchMoment, this._lastX, this._lastY, this._gestureMgr, le
  7779. .call(this), this.setHandlerProxy(n)
  7780. };
  7781. Yp.prototype = {
  7782. constructor: Yp,
  7783. setHandlerProxy: function(t) {
  7784. this.proxy && this.proxy.dispose(), t && (f(Xp, function(e) {
  7785. t.on && t.on(e, this[e], this)
  7786. }, this), t.handler = this), this.proxy = t
  7787. },
  7788. mousemove: function(t) {
  7789. var e = t.zrX,
  7790. n = t.zrY,
  7791. i = Oe(this, e, n),
  7792. r = this._hovered,
  7793. o = r.target;
  7794. o && !o.__zr && (r = this.findHover(r.x, r.y), o = r.target);
  7795. var a = this._hovered = i ? {
  7796. x: e,
  7797. y: n
  7798. } : this.findHover(e, n),
  7799. s = a.target,
  7800. l = this.proxy;
  7801. l.setCursor && l.setCursor(s ? s.cursor : "default"), o && s !== o && this.dispatchToElement(r,
  7802. "mouseout", t), this.dispatchToElement(a, "mousemove", t), s && s !== o && this
  7803. .dispatchToElement(a, "mouseover", t)
  7804. },
  7805. mouseout: function(t) {
  7806. var e = t.zrEventControl,
  7807. n = t.zrIsToLocalDOM;
  7808. "only_globalout" !== e && this.dispatchToElement(this._hovered, "mouseout", t),
  7809. "no_globalout" !== e && !n && this.trigger("globalout", {
  7810. type: "globalout",
  7811. event: t
  7812. })
  7813. },
  7814. resize: function() {
  7815. this._hovered = {}
  7816. },
  7817. dispatch: function(t, e) {
  7818. var n = this[t];
  7819. n && n.call(this, e)
  7820. },
  7821. dispose: function() {
  7822. this.proxy.dispose(), this.storage = this.proxy = this.painter = null
  7823. },
  7824. setCursorStyle: function(t) {
  7825. var e = this.proxy;
  7826. e.setCursor && e.setCursor(t)
  7827. },
  7828. dispatchToElement: function(t, e, n) {
  7829. t = t || {};
  7830. var i = t.target;
  7831. if (!i || !i.silent) {
  7832. for (var r = "on" + e, o = Ae(e, t, n); i && (i[r] && (o.cancelBubble = i[r].call(i, o)), i
  7833. .trigger(e, o), i = i.parent, !o.cancelBubble););
  7834. o.cancelBubble || (this.trigger(e, o), this.painter && this.painter.eachOtherLayer(function(
  7835. t) {
  7836. "function" == typeof t[r] && t[r].call(t, o), t.trigger && t.trigger(e, o)
  7837. }))
  7838. }
  7839. },
  7840. findHover: function(t, e, n) {
  7841. for (var i = this.storage.getDisplayList(), r = {
  7842. x: t,
  7843. y: e
  7844. }, o = i.length - 1; o >= 0; o--) {
  7845. var a;
  7846. if (i[o] !== n && !i[o].ignore && (a = Pe(i[o], t, e)) && (!r.topTarget && (r.topTarget = i[
  7847. o]), a !== Zp)) {
  7848. r.target = i[o];
  7849. break
  7850. }
  7851. }
  7852. return r
  7853. },
  7854. processGesture: function(t, e) {
  7855. this._gestureMgr || (this._gestureMgr = new Hp);
  7856. var n = this._gestureMgr;
  7857. "start" === e && n.clear();
  7858. var i = n.recognize(t, this.findHover(t.zrX, t.zrY, null).target, this.proxy.dom);
  7859. if ("end" === e && n.clear(), i) {
  7860. var r = i.type;
  7861. t.gestureEvent = r, this.dispatchToElement({
  7862. target: i.target
  7863. }, r, i.event)
  7864. }
  7865. }
  7866. }, f(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(t) {
  7867. Yp.prototype[t] = function(e) {
  7868. var n, i, r = e.zrX,
  7869. o = e.zrY,
  7870. a = Oe(this, r, o);
  7871. if ("mouseup" === t && a || (n = this.findHover(r, o), i = n.target), "mousedown" === t)
  7872. this._downEl = i, this._downPoint = [e.zrX, e.zrY], this._upEl = i;
  7873. else if ("mouseup" === t) this._upEl = i;
  7874. else if ("click" === t) {
  7875. if (this._downEl !== this._upEl || !this._downPoint || kp(this._downPoint, [e.zrX, e
  7876. .zrY]) > 4) return;
  7877. this._downPoint = null
  7878. }
  7879. this.dispatchToElement(n, t, e)
  7880. }
  7881. }), c(Yp, zp), c(Yp, le);
  7882. var Up = "undefined" == typeof Float32Array ? Array : Float32Array,
  7883. jp = (Object.freeze || Object)({
  7884. create: Le,
  7885. identity: ze,
  7886. copy: Ee,
  7887. mul: Be,
  7888. translate: Re,
  7889. rotate: Ne,
  7890. scale: Fe,
  7891. invert: Ve,
  7892. clone: We
  7893. }),
  7894. qp = ze,
  7895. Kp = 5e-5,
  7896. $p = function(t) {
  7897. t = t || {}, t.position || (this.position = [0, 0]), null == t.rotation && (this.rotation = 0), t
  7898. .scale || (this.scale = [1, 1]), this.origin = this.origin || null
  7899. },
  7900. Qp = $p.prototype;
  7901. Qp.transform = null, Qp.needLocalTransform = function() {
  7902. return He(this.rotation) || He(this.position[0]) || He(this.position[1]) || He(this.scale[0] - 1) || He(
  7903. this.scale[1] - 1)
  7904. };
  7905. var Jp = [];
  7906. Qp.updateTransform = function() {
  7907. var t = this.parent,
  7908. e = t && t.transform,
  7909. n = this.needLocalTransform(),
  7910. i = this.transform;
  7911. if (!n && !e) return void(i && qp(i));
  7912. i = i || Le(), n ? this.getLocalTransform(i) : qp(i), e && (n ? Be(i, t.transform, i) : Ee(i, t
  7913. .transform)), this.transform = i;
  7914. var r = this.globalScaleRatio;
  7915. if (null != r && 1 !== r) {
  7916. this.getGlobalScale(Jp);
  7917. var o = Jp[0] < 0 ? -1 : 1,
  7918. a = Jp[1] < 0 ? -1 : 1,
  7919. s = ((Jp[0] - o) * r + o) / Jp[0] || 0,
  7920. l = ((Jp[1] - a) * r + a) / Jp[1] || 0;
  7921. i[0] *= s, i[1] *= s, i[2] *= l, i[3] *= l
  7922. }
  7923. this.invTransform = this.invTransform || Le(), Ve(this.invTransform, i)
  7924. }, Qp.getLocalTransform = function(t) {
  7925. return $p.getLocalTransform(this, t)
  7926. }, Qp.setTransform = function(t) {
  7927. var e = this.transform,
  7928. n = t.dpr || 1;
  7929. e ? t.setTransform(n * e[0], n * e[1], n * e[2], n * e[3], n * e[4], n * e[5]) : t.setTransform(n, 0, 0,
  7930. n, 0, 0)
  7931. }, Qp.restoreTransform = function(t) {
  7932. var e = t.dpr || 1;
  7933. t.setTransform(e, 0, 0, e, 0, 0)
  7934. };
  7935. var tg = [],
  7936. eg = Le();
  7937. Qp.setLocalTransform = function(t) {
  7938. if (t) {
  7939. var e = t[0] * t[0] + t[1] * t[1],
  7940. n = t[2] * t[2] + t[3] * t[3],
  7941. i = this.position,
  7942. r = this.scale;
  7943. He(e - 1) && (e = Math.sqrt(e)), He(n - 1) && (n = Math.sqrt(n)), t[0] < 0 && (e = -e), t[3] < 0 &&
  7944. (n = -n), i[0] = t[4], i[1] = t[5], r[0] = e, r[1] = n, this.rotation = Math.atan2(-t[1] / n, t[
  7945. 0] / e)
  7946. }
  7947. }, Qp.decomposeTransform = function() {
  7948. if (this.transform) {
  7949. var t = this.parent,
  7950. e = this.transform;
  7951. t && t.transform && (Be(tg, t.invTransform, e), e = tg);
  7952. var n = this.origin;
  7953. n && (n[0] || n[1]) && (eg[4] = n[0], eg[5] = n[1], Be(tg, e, eg), tg[4] -= n[0], tg[5] -= n[1], e =
  7954. tg), this.setLocalTransform(e)
  7955. }
  7956. }, Qp.getGlobalScale = function(t) {
  7957. var e = this.transform;
  7958. 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[
  7959. 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)
  7960. }, Qp.transformCoordToLocal = function(t, e) {
  7961. var n = [t, e],
  7962. i = this.invTransform;
  7963. return i && oe(n, n, i), n
  7964. }, Qp.transformCoordToGlobal = function(t, e) {
  7965. var n = [t, e],
  7966. i = this.transform;
  7967. return i && oe(n, n, i), n
  7968. }, $p.getLocalTransform = function(t, e) {
  7969. e = e || [], qp(e);
  7970. var n = t.origin,
  7971. i = t.scale || [1, 1],
  7972. r = t.rotation || 0,
  7973. o = t.position || [0, 0];
  7974. return n && (e[4] -= n[0], e[5] -= n[1]), Fe(e, e, i), r && Ne(e, e, r), n && (e[4] += n[0], e[5] += n[
  7975. 1]), e[4] += o[0], e[5] += o[1], e
  7976. };
  7977. var ng = {
  7978. linear: function(t) {
  7979. return t
  7980. },
  7981. quadraticIn: function(t) {
  7982. return t * t
  7983. },
  7984. quadraticOut: function(t) {
  7985. return t * (2 - t)
  7986. },
  7987. quadraticInOut: function(t) {
  7988. return (t *= 2) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1)
  7989. },
  7990. cubicIn: function(t) {
  7991. return t * t * t
  7992. },
  7993. cubicOut: function(t) {
  7994. return --t * t * t + 1
  7995. },
  7996. cubicInOut: function(t) {
  7997. return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2)
  7998. },
  7999. quarticIn: function(t) {
  8000. return t * t * t * t
  8001. },
  8002. quarticOut: function(t) {
  8003. return 1 - --t * t * t * t
  8004. },
  8005. quarticInOut: function(t) {
  8006. return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2)
  8007. },
  8008. quinticIn: function(t) {
  8009. return t * t * t * t * t
  8010. },
  8011. quinticOut: function(t) {
  8012. return --t * t * t * t * t + 1
  8013. },
  8014. quinticInOut: function(t) {
  8015. return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2)
  8016. },
  8017. sinusoidalIn: function(t) {
  8018. return 1 - Math.cos(t * Math.PI / 2)
  8019. },
  8020. sinusoidalOut: function(t) {
  8021. return Math.sin(t * Math.PI / 2)
  8022. },
  8023. sinusoidalInOut: function(t) {
  8024. return .5 * (1 - Math.cos(Math.PI * t))
  8025. },
  8026. exponentialIn: function(t) {
  8027. return 0 === t ? 0 : Math.pow(1024, t - 1)
  8028. },
  8029. exponentialOut: function(t) {
  8030. return 1 === t ? 1 : 1 - Math.pow(2, -10 * t)
  8031. },
  8032. exponentialInOut: function(t) {
  8033. return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? .5 * Math.pow(1024, t - 1) : .5 * (-Math.pow(
  8034. 2, -10 * (t - 1)) + 2)
  8035. },
  8036. circularIn: function(t) {
  8037. return 1 - Math.sqrt(1 - t * t)
  8038. },
  8039. circularOut: function(t) {
  8040. return Math.sqrt(1 - --t * t)
  8041. },
  8042. circularInOut: function(t) {
  8043. return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1)
  8044. },
  8045. elasticIn: function(t) {
  8046. var e, n = .1,
  8047. i = .4;
  8048. return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 /
  8049. n) / (2 * Math.PI), -(n * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI /
  8050. i)))
  8051. },
  8052. elasticOut: function(t) {
  8053. var e, n = .1,
  8054. i = .4;
  8055. return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 /
  8056. n) / (2 * Math.PI), n * Math.pow(2, -10 * t) * Math.sin(2 * (t - e) * Math.PI / i) + 1)
  8057. },
  8058. elasticInOut: function(t) {
  8059. var e, n = .1,
  8060. i = .4;
  8061. return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 /
  8062. n) / (2 * Math.PI), (t *= 2) < 1 ? -.5 * n * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (
  8063. t - e) * Math.PI / i) : n * Math.pow(2, -10 * (t -= 1)) * Math.sin(2 * (t - e) *
  8064. Math.PI / i) * .5 + 1)
  8065. },
  8066. backIn: function(t) {
  8067. var e = 1.70158;
  8068. return t * t * ((e + 1) * t - e)
  8069. },
  8070. backOut: function(t) {
  8071. var e = 1.70158;
  8072. return --t * t * ((e + 1) * t + e) + 1
  8073. },
  8074. backInOut: function(t) {
  8075. var e = 2.5949095;
  8076. return (t *= 2) < 1 ? .5 * t * t * ((e + 1) * t - e) : .5 * ((t -= 2) * t * ((e + 1) * t + e) +
  8077. 2)
  8078. },
  8079. bounceIn: function(t) {
  8080. return 1 - ng.bounceOut(1 - t)
  8081. },
  8082. bounceOut: function(t) {
  8083. return 1 / 2.75 > t ? 7.5625 * t * t : 2 / 2.75 > t ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 :
  8084. 2.5 / 2.75 > t ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) *
  8085. t + .984375
  8086. },
  8087. bounceInOut: function(t) {
  8088. return .5 > t ? .5 * ng.bounceIn(2 * t) : .5 * ng.bounceOut(2 * t - 1) + .5
  8089. }
  8090. };
  8091. Ge.prototype = {
  8092. constructor: Ge,
  8093. step: function(t, e) {
  8094. if (this._initialized || (this._startTime = t + this._delay, this._initialized = !0), this
  8095. ._paused) return void(this._pausedTime += e);
  8096. var n = (t - this._startTime - this._pausedTime) / this._life;
  8097. if (!(0 > n)) {
  8098. n = Math.min(n, 1);
  8099. var i = this.easing,
  8100. r = "string" == typeof i ? ng[i] : i,
  8101. o = "function" == typeof r ? r(n) : n;
  8102. return this.fire("frame", o), 1 === n ? this.loop ? (this.restart(t), "restart") : (this
  8103. ._needsRemove = !0, "destroy") : null
  8104. }
  8105. },
  8106. restart: function(t) {
  8107. var e = (t - this._startTime - this._pausedTime) % this._life;
  8108. this._startTime = t - e + this.gap, this._pausedTime = 0, this._needsRemove = !1
  8109. },
  8110. fire: function(t, e) {
  8111. t = "on" + t, this[t] && this[t](this._target, e)
  8112. },
  8113. pause: function() {
  8114. this._paused = !0
  8115. },
  8116. resume: function() {
  8117. this._paused = !1
  8118. }
  8119. };
  8120. var ig = function() {
  8121. this.head = null, this.tail = null, this._len = 0
  8122. },
  8123. rg = ig.prototype;
  8124. rg.insert = function(t) {
  8125. var e = new og(t);
  8126. return this.insertEntry(e), e
  8127. }, rg.insertEntry = function(t) {
  8128. this.head ? (this.tail.next = t, t.prev = this.tail, t.next = null, this.tail = t) : this.head = this
  8129. .tail = t, this._len++
  8130. }, rg.remove = function(t) {
  8131. var e = t.prev,
  8132. n = t.next;
  8133. e ? e.next = n : this.head = n, n ? n.prev = e : this.tail = e, t.next = t.prev = null, this._len--
  8134. }, rg.len = function() {
  8135. return this._len
  8136. }, rg.clear = function() {
  8137. this.head = this.tail = null, this._len = 0
  8138. };
  8139. var og = function(t) {
  8140. this.value = t, this.next, this.prev
  8141. },
  8142. ag = function(t) {
  8143. this._list = new ig, this._map = {}, this._maxSize = t || 10, this._lastRemovedEntry = null
  8144. },
  8145. sg = ag.prototype;
  8146. sg.put = function(t, e) {
  8147. var n = this._list,
  8148. i = this._map,
  8149. r = null;
  8150. if (null == i[t]) {
  8151. var o = n.len(),
  8152. a = this._lastRemovedEntry;
  8153. if (o >= this._maxSize && o > 0) {
  8154. var s = n.head;
  8155. n.remove(s), delete i[s.key], r = s.value, this._lastRemovedEntry = s
  8156. }
  8157. a ? a.value = e : a = new og(e), a.key = t, n.insertEntry(a), i[t] = a
  8158. }
  8159. return r
  8160. }, sg.get = function(t) {
  8161. var e = this._map[t],
  8162. n = this._list;
  8163. return null != e ? (e !== n.tail && (n.remove(e), n.insertEntry(e)), e.value) : void 0
  8164. }, sg.clear = function() {
  8165. this._list.clear(), this._map = {}
  8166. };
  8167. var lg = {
  8168. transparent: [0, 0, 0, 0],
  8169. aliceblue: [240, 248, 255, 1],
  8170. antiquewhite: [250, 235, 215, 1],
  8171. aqua: [0, 255, 255, 1],
  8172. aquamarine: [127, 255, 212, 1],
  8173. azure: [240, 255, 255, 1],
  8174. beige: [245, 245, 220, 1],
  8175. bisque: [255, 228, 196, 1],
  8176. black: [0, 0, 0, 1],
  8177. blanchedalmond: [255, 235, 205, 1],
  8178. blue: [0, 0, 255, 1],
  8179. blueviolet: [138, 43, 226, 1],
  8180. brown: [165, 42, 42, 1],
  8181. burlywood: [222, 184, 135, 1],
  8182. cadetblue: [95, 158, 160, 1],
  8183. chartreuse: [127, 255, 0, 1],
  8184. chocolate: [210, 105, 30, 1],
  8185. coral: [255, 127, 80, 1],
  8186. cornflowerblue: [100, 149, 237, 1],
  8187. cornsilk: [255, 248, 220, 1],
  8188. crimson: [220, 20, 60, 1],
  8189. cyan: [0, 255, 255, 1],
  8190. darkblue: [0, 0, 139, 1],
  8191. darkcyan: [0, 139, 139, 1],
  8192. darkgoldenrod: [184, 134, 11, 1],
  8193. darkgray: [169, 169, 169, 1],
  8194. darkgreen: [0, 100, 0, 1],
  8195. darkgrey: [169, 169, 169, 1],
  8196. darkkhaki: [189, 183, 107, 1],
  8197. darkmagenta: [139, 0, 139, 1],
  8198. darkolivegreen: [85, 107, 47, 1],
  8199. darkorange: [255, 140, 0, 1],
  8200. darkorchid: [153, 50, 204, 1],
  8201. darkred: [139, 0, 0, 1],
  8202. darksalmon: [233, 150, 122, 1],
  8203. darkseagreen: [143, 188, 143, 1],
  8204. darkslateblue: [72, 61, 139, 1],
  8205. darkslategray: [47, 79, 79, 1],
  8206. darkslategrey: [47, 79, 79, 1],
  8207. darkturquoise: [0, 206, 209, 1],
  8208. darkviolet: [148, 0, 211, 1],
  8209. deeppink: [255, 20, 147, 1],
  8210. deepskyblue: [0, 191, 255, 1],
  8211. dimgray: [105, 105, 105, 1],
  8212. dimgrey: [105, 105, 105, 1],
  8213. dodgerblue: [30, 144, 255, 1],
  8214. firebrick: [178, 34, 34, 1],
  8215. floralwhite: [255, 250, 240, 1],
  8216. forestgreen: [34, 139, 34, 1],
  8217. fuchsia: [255, 0, 255, 1],
  8218. gainsboro: [220, 220, 220, 1],
  8219. ghostwhite: [248, 248, 255, 1],
  8220. gold: [255, 215, 0, 1],
  8221. goldenrod: [218, 165, 32, 1],
  8222. gray: [128, 128, 128, 1],
  8223. green: [0, 128, 0, 1],
  8224. greenyellow: [173, 255, 47, 1],
  8225. grey: [128, 128, 128, 1],
  8226. honeydew: [240, 255, 240, 1],
  8227. hotpink: [255, 105, 180, 1],
  8228. indianred: [205, 92, 92, 1],
  8229. indigo: [75, 0, 130, 1],
  8230. ivory: [255, 255, 240, 1],
  8231. khaki: [240, 230, 140, 1],
  8232. lavender: [230, 230, 250, 1],
  8233. lavenderblush: [255, 240, 245, 1],
  8234. lawngreen: [124, 252, 0, 1],
  8235. lemonchiffon: [255, 250, 205, 1],
  8236. lightblue: [173, 216, 230, 1],
  8237. lightcoral: [240, 128, 128, 1],
  8238. lightcyan: [224, 255, 255, 1],
  8239. lightgoldenrodyellow: [250, 250, 210, 1],
  8240. lightgray: [211, 211, 211, 1],
  8241. lightgreen: [144, 238, 144, 1],
  8242. lightgrey: [211, 211, 211, 1],
  8243. lightpink: [255, 182, 193, 1],
  8244. lightsalmon: [255, 160, 122, 1],
  8245. lightseagreen: [32, 178, 170, 1],
  8246. lightskyblue: [135, 206, 250, 1],
  8247. lightslategray: [119, 136, 153, 1],
  8248. lightslategrey: [119, 136, 153, 1],
  8249. lightsteelblue: [176, 196, 222, 1],
  8250. lightyellow: [255, 255, 224, 1],
  8251. lime: [0, 255, 0, 1],
  8252. limegreen: [50, 205, 50, 1],
  8253. linen: [250, 240, 230, 1],
  8254. magenta: [255, 0, 255, 1],
  8255. maroon: [128, 0, 0, 1],
  8256. mediumaquamarine: [102, 205, 170, 1],
  8257. mediumblue: [0, 0, 205, 1],
  8258. mediumorchid: [186, 85, 211, 1],
  8259. mediumpurple: [147, 112, 219, 1],
  8260. mediumseagreen: [60, 179, 113, 1],
  8261. mediumslateblue: [123, 104, 238, 1],
  8262. mediumspringgreen: [0, 250, 154, 1],
  8263. mediumturquoise: [72, 209, 204, 1],
  8264. mediumvioletred: [199, 21, 133, 1],
  8265. midnightblue: [25, 25, 112, 1],
  8266. mintcream: [245, 255, 250, 1],
  8267. mistyrose: [255, 228, 225, 1],
  8268. moccasin: [255, 228, 181, 1],
  8269. navajowhite: [255, 222, 173, 1],
  8270. navy: [0, 0, 128, 1],
  8271. oldlace: [253, 245, 230, 1],
  8272. olive: [128, 128, 0, 1],
  8273. olivedrab: [107, 142, 35, 1],
  8274. orange: [255, 165, 0, 1],
  8275. orangered: [255, 69, 0, 1],
  8276. orchid: [218, 112, 214, 1],
  8277. palegoldenrod: [238, 232, 170, 1],
  8278. palegreen: [152, 251, 152, 1],
  8279. paleturquoise: [175, 238, 238, 1],
  8280. palevioletred: [219, 112, 147, 1],
  8281. papayawhip: [255, 239, 213, 1],
  8282. peachpuff: [255, 218, 185, 1],
  8283. peru: [205, 133, 63, 1],
  8284. pink: [255, 192, 203, 1],
  8285. plum: [221, 160, 221, 1],
  8286. powderblue: [176, 224, 230, 1],
  8287. purple: [128, 0, 128, 1],
  8288. red: [255, 0, 0, 1],
  8289. rosybrown: [188, 143, 143, 1],
  8290. royalblue: [65, 105, 225, 1],
  8291. saddlebrown: [139, 69, 19, 1],
  8292. salmon: [250, 128, 114, 1],
  8293. sandybrown: [244, 164, 96, 1],
  8294. seagreen: [46, 139, 87, 1],
  8295. seashell: [255, 245, 238, 1],
  8296. sienna: [160, 82, 45, 1],
  8297. silver: [192, 192, 192, 1],
  8298. skyblue: [135, 206, 235, 1],
  8299. slateblue: [106, 90, 205, 1],
  8300. slategray: [112, 128, 144, 1],
  8301. slategrey: [112, 128, 144, 1],
  8302. snow: [255, 250, 250, 1],
  8303. springgreen: [0, 255, 127, 1],
  8304. steelblue: [70, 130, 180, 1],
  8305. tan: [210, 180, 140, 1],
  8306. teal: [0, 128, 128, 1],
  8307. thistle: [216, 191, 216, 1],
  8308. tomato: [255, 99, 71, 1],
  8309. turquoise: [64, 224, 208, 1],
  8310. violet: [238, 130, 238, 1],
  8311. wheat: [245, 222, 179, 1],
  8312. white: [255, 255, 255, 1],
  8313. whitesmoke: [245, 245, 245, 1],
  8314. yellow: [255, 255, 0, 1],
  8315. yellowgreen: [154, 205, 50, 1]
  8316. },
  8317. ug = new ag(20),
  8318. hg = null,
  8319. cg = an,
  8320. dg = sn,
  8321. fg = (Object.freeze || Object)({
  8322. parse: tn,
  8323. lift: rn,
  8324. toHex: on,
  8325. fastLerp: an,
  8326. fastMapToColor: cg,
  8327. lerp: sn,
  8328. mapToColor: dg,
  8329. modifyHSL: ln,
  8330. modifyAlpha: un,
  8331. stringify: hn
  8332. }),
  8333. pg = Array.prototype.slice,
  8334. gg = function(t, e, n, i) {
  8335. this._tracks = {}, this._target = t, this._loop = e || !1, this._getter = n || cn, this._setter = i ||
  8336. dn, this._clipCount = 0, this._delay = 0, this._doneList = [], this._onframeList = [], this
  8337. ._clipList = []
  8338. };
  8339. gg.prototype = {
  8340. when: function(t, e) {
  8341. var n = this._tracks;
  8342. for (var i in e)
  8343. if (e.hasOwnProperty(i)) {
  8344. if (!n[i]) {
  8345. n[i] = [];
  8346. var r = this._getter(this._target, i);
  8347. if (null == r) continue;
  8348. 0 !== t && n[i].push({
  8349. time: 0,
  8350. value: _n(r)
  8351. })
  8352. }
  8353. n[i].push({
  8354. time: t,
  8355. value: e[i]
  8356. })
  8357. } return this
  8358. },
  8359. during: function(t) {
  8360. return this._onframeList.push(t), this
  8361. },
  8362. pause: function() {
  8363. for (var t = 0; t < this._clipList.length; t++) this._clipList[t].pause();
  8364. this._paused = !0
  8365. },
  8366. resume: function() {
  8367. for (var t = 0; t < this._clipList.length; t++) this._clipList[t].resume();
  8368. this._paused = !1
  8369. },
  8370. isPaused: function() {
  8371. return !!this._paused
  8372. },
  8373. _doneCallback: function() {
  8374. this._tracks = {}, this._clipList.length = 0;
  8375. for (var t = this._doneList, e = t.length, n = 0; e > n; n++) t[n].call(this)
  8376. },
  8377. start: function(t, e) {
  8378. var n, i = this,
  8379. r = 0,
  8380. o = function() {
  8381. r--, r || i._doneCallback()
  8382. };
  8383. for (var a in this._tracks)
  8384. if (this._tracks.hasOwnProperty(a)) {
  8385. var s = Sn(this, t, o, this._tracks[a], a, e);
  8386. s && (this._clipList.push(s), r++, this.animation && this.animation.addClip(s), n = s)
  8387. } if (n) {
  8388. var l = n.onframe;
  8389. n.onframe = function(t, e) {
  8390. l(t, e);
  8391. for (var n = 0; n < i._onframeList.length; n++) i._onframeList[n](t, e)
  8392. }
  8393. }
  8394. return r || this._doneCallback(), this
  8395. },
  8396. stop: function(t) {
  8397. for (var e = this._clipList, n = this.animation, i = 0; i < e.length; i++) {
  8398. var r = e[i];
  8399. t && r.onframe(this._target, 1), n && n.removeClip(r)
  8400. }
  8401. e.length = 0
  8402. },
  8403. delay: function(t) {
  8404. return this._delay = t, this
  8405. },
  8406. done: function(t) {
  8407. return t && this._doneList.push(t), this
  8408. },
  8409. getClips: function() {
  8410. return this._clipList
  8411. }
  8412. };
  8413. var vg = 1;
  8414. "undefined" != typeof window && (vg = Math.max(window.devicePixelRatio || 1, 1));
  8415. var mg = 0,
  8416. yg = vg,
  8417. xg = function() {};
  8418. 1 === mg && (xg = console.error);
  8419. var _g = xg,
  8420. wg = function() {
  8421. this.animators = []
  8422. };
  8423. wg.prototype = {
  8424. constructor: wg,
  8425. animate: function(t, e) {
  8426. var n, i = !1,
  8427. r = this,
  8428. o = this.__zr;
  8429. if (t) {
  8430. var a = t.split("."),
  8431. s = r;
  8432. i = "shape" === a[0];
  8433. for (var l = 0, h = a.length; h > l; l++) s && (s = s[a[l]]);
  8434. s && (n = s)
  8435. } else n = r;
  8436. if (!n) return void _g('Property "' + t + '" is not existed in element ' + r.id);
  8437. var c = r.animators,
  8438. d = new gg(n, e);
  8439. return d.during(function() {
  8440. r.dirty(i)
  8441. }).done(function() {
  8442. c.splice(u(c, d), 1)
  8443. }), c.push(d), o && o.animation.addAnimator(d), d
  8444. },
  8445. stopAnimation: function(t) {
  8446. for (var e = this.animators, n = e.length, i = 0; n > i; i++) e[i].stop(t);
  8447. return e.length = 0, this
  8448. },
  8449. animateTo: function(t, e, n, i, r, o) {
  8450. Mn(this, t, e, n, i, r, o)
  8451. },
  8452. animateFrom: function(t, e, n, i, r, o) {
  8453. Mn(this, t, e, n, i, r, o, !0)
  8454. }
  8455. };
  8456. var bg = function(t) {
  8457. $p.call(this, t), zp.call(this, t), wg.call(this, t), this.id = t.id || hp()
  8458. };
  8459. bg.prototype = {
  8460. type: "element",
  8461. name: "",
  8462. __zr: null,
  8463. ignore: !1,
  8464. clipPath: null,
  8465. isGroup: !1,
  8466. drift: function(t, e) {
  8467. switch (this.draggable) {
  8468. case "horizontal":
  8469. e = 0;
  8470. break;
  8471. case "vertical":
  8472. t = 0
  8473. }
  8474. var n = this.transform;
  8475. n || (n = this.transform = [1, 0, 0, 1, 0, 0]), n[4] += t, n[5] += e, this.decomposeTransform(),
  8476. this.dirty(!1)
  8477. },
  8478. beforeUpdate: function() {},
  8479. afterUpdate: function() {},
  8480. update: function() {
  8481. this.updateTransform()
  8482. },
  8483. traverse: function() {},
  8484. attrKV: function(t, e) {
  8485. if ("position" === t || "scale" === t || "origin" === t) {
  8486. if (e) {
  8487. var n = this[t];
  8488. n || (n = this[t] = []), n[0] = e[0], n[1] = e[1]
  8489. }
  8490. } else this[t] = e
  8491. },
  8492. hide: function() {
  8493. this.ignore = !0, this.__zr && this.__zr.refresh()
  8494. },
  8495. show: function() {
  8496. this.ignore = !1, this.__zr && this.__zr.refresh()
  8497. },
  8498. attr: function(t, e) {
  8499. if ("string" == typeof t) this.attrKV(t, e);
  8500. else if (S(t))
  8501. for (var n in t) t.hasOwnProperty(n) && this.attrKV(n, t[n]);
  8502. return this.dirty(!1), this
  8503. },
  8504. setClipPath: function(t) {
  8505. var e = this.__zr;
  8506. e && t.addSelfToZr(e), this.clipPath && this.clipPath !== t && this.removeClipPath(), this
  8507. .clipPath = t, t.__zr = e, t.__clipTarget = this, this.dirty(!1)
  8508. },
  8509. removeClipPath: function() {
  8510. var t = this.clipPath;
  8511. t && (t.__zr && t.removeSelfFromZr(t.__zr), t.__zr = null, t.__clipTarget = null, this
  8512. .clipPath = null, this.dirty(!1))
  8513. },
  8514. addSelfToZr: function(t) {
  8515. this.__zr = t;
  8516. var e = this.animators;
  8517. if (e)
  8518. for (var n = 0; n < e.length; n++) t.animation.addAnimator(e[n]);
  8519. this.clipPath && this.clipPath.addSelfToZr(t)
  8520. },
  8521. removeSelfFromZr: function(t) {
  8522. this.__zr = null;
  8523. var e = this.animators;
  8524. if (e)
  8525. for (var n = 0; n < e.length; n++) t.animation.removeAnimator(e[n]);
  8526. this.clipPath && this.clipPath.removeSelfFromZr(t)
  8527. }
  8528. }, c(bg, wg), c(bg, $p), c(bg, zp);
  8529. var Sg = oe,
  8530. Mg = Math.min,
  8531. Ig = Math.max;
  8532. Tn.prototype = {
  8533. constructor: Tn,
  8534. union: function(t) {
  8535. var e = Mg(t.x, this.x),
  8536. n = Mg(t.y, this.y);
  8537. this.width = Ig(t.x + t.width, this.x + this.width) - e, this.height = Ig(t.y + t.height, this
  8538. .y + this.height) - n, this.x = e, this.y = n
  8539. },
  8540. applyTransform: function() {
  8541. var t = [],
  8542. e = [],
  8543. n = [],
  8544. i = [];
  8545. return function(r) {
  8546. if (r) {
  8547. t[0] = n[0] = this.x, t[1] = i[1] = this.y, e[0] = i[0] = this.x + this.width, e[
  8548. 1] = n[1] = this.y + this.height, Sg(t, t, r), Sg(e, e, r), Sg(n, n, r), Sg(i,
  8549. i, r), this.x = Mg(t[0], e[0], n[0], i[0]), this.y = Mg(t[1], e[1], n[1], i[
  8550. 1]);
  8551. var o = Ig(t[0], e[0], n[0], i[0]),
  8552. a = Ig(t[1], e[1], n[1], i[1]);
  8553. this.width = o - this.x, this.height = a - this.y
  8554. }
  8555. }
  8556. }(),
  8557. calculateTransform: function(t) {
  8558. var e = this,
  8559. n = t.width / e.width,
  8560. i = t.height / e.height,
  8561. r = Le();
  8562. return Re(r, r, [-e.x, -e.y]), Fe(r, r, [n, i]), Re(r, r, [t.x, t.y]), r
  8563. },
  8564. intersect: function(t) {
  8565. if (!t) return !1;
  8566. t instanceof Tn || (t = Tn.create(t));
  8567. var e = this,
  8568. n = e.x,
  8569. i = e.x + e.width,
  8570. r = e.y,
  8571. o = e.y + e.height,
  8572. a = t.x,
  8573. s = t.x + t.width,
  8574. l = t.y,
  8575. u = t.y + t.height;
  8576. return !(a > i || n > s || l > o || r > u)
  8577. },
  8578. contain: function(t, e) {
  8579. var n = this;
  8580. return t >= n.x && t <= n.x + n.width && e >= n.y && e <= n.y + n.height
  8581. },
  8582. clone: function() {
  8583. return new Tn(this.x, this.y, this.width, this.height)
  8584. },
  8585. copy: function(t) {
  8586. this.x = t.x, this.y = t.y, this.width = t.width, this.height = t.height
  8587. },
  8588. plain: function() {
  8589. return {
  8590. x: this.x,
  8591. y: this.y,
  8592. width: this.width,
  8593. height: this.height
  8594. }
  8595. }
  8596. }, Tn.create = function(t) {
  8597. return new Tn(t.x, t.y, t.width, t.height)
  8598. };
  8599. var Cg = function(t) {
  8600. t = t || {}, bg.call(this, t);
  8601. for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]);
  8602. this._children = [], this.__storage = null, this.__dirty = !0
  8603. };
  8604. Cg.prototype = {
  8605. constructor: Cg,
  8606. isGroup: !0,
  8607. type: "group",
  8608. silent: !1,
  8609. children: function() {
  8610. return this._children.slice()
  8611. },
  8612. childAt: function(t) {
  8613. return this._children[t]
  8614. },
  8615. childOfName: function(t) {
  8616. for (var e = this._children, n = 0; n < e.length; n++)
  8617. if (e[n].name === t) return e[n]
  8618. },
  8619. childCount: function() {
  8620. return this._children.length
  8621. },
  8622. add: function(t) {
  8623. return t && t !== this && t.parent !== this && (this._children.push(t), this._doAdd(t)), this
  8624. },
  8625. addBefore: function(t, e) {
  8626. if (t && t !== this && t.parent !== this && e && e.parent === this) {
  8627. var n = this._children,
  8628. i = n.indexOf(e);
  8629. i >= 0 && (n.splice(i, 0, t), this._doAdd(t))
  8630. }
  8631. return this
  8632. },
  8633. _doAdd: function(t) {
  8634. t.parent && t.parent.remove(t), t.parent = this;
  8635. var e = this.__storage,
  8636. n = this.__zr;
  8637. e && e !== t.__storage && (e.addToStorage(t), t instanceof Cg && t.addChildrenToStorage(e)),
  8638. n && n.refresh()
  8639. },
  8640. remove: function(t) {
  8641. var e = this.__zr,
  8642. n = this.__storage,
  8643. i = this._children,
  8644. r = u(i, t);
  8645. return 0 > r ? this : (i.splice(r, 1), t.parent = null, n && (n.delFromStorage(t),
  8646. t instanceof Cg && t.delChildrenFromStorage(n)), e && e.refresh(), this)
  8647. },
  8648. removeAll: function() {
  8649. var t, e, n = this._children,
  8650. i = this.__storage;
  8651. for (e = 0; e < n.length; e++) t = n[e], i && (i.delFromStorage(t), t instanceof Cg && t
  8652. .delChildrenFromStorage(i)), t.parent = null;
  8653. return n.length = 0, this
  8654. },
  8655. eachChild: function(t, e) {
  8656. for (var n = this._children, i = 0; i < n.length; i++) {
  8657. var r = n[i];
  8658. t.call(e, r, i)
  8659. }
  8660. return this
  8661. },
  8662. traverse: function(t, e) {
  8663. for (var n = 0; n < this._children.length; n++) {
  8664. var i = this._children[n];
  8665. t.call(e, i), "group" === i.type && i.traverse(t, e)
  8666. }
  8667. return this
  8668. },
  8669. addChildrenToStorage: function(t) {
  8670. for (var e = 0; e < this._children.length; e++) {
  8671. var n = this._children[e];
  8672. t.addToStorage(n), n instanceof Cg && n.addChildrenToStorage(t)
  8673. }
  8674. },
  8675. delChildrenFromStorage: function(t) {
  8676. for (var e = 0; e < this._children.length; e++) {
  8677. var n = this._children[e];
  8678. t.delFromStorage(n), n instanceof Cg && n.delChildrenFromStorage(t)
  8679. }
  8680. },
  8681. dirty: function() {
  8682. return this.__dirty = !0, this.__zr && this.__zr.refresh(), this
  8683. },
  8684. getBoundingRect: function(t) {
  8685. for (var e = null, n = new Tn(0, 0, 0, 0), i = t || this._children, r = [], o = 0; o < i
  8686. .length; o++) {
  8687. var a = i[o];
  8688. if (!a.ignore && !a.invisible) {
  8689. var s = a.getBoundingRect(),
  8690. l = a.getLocalTransform(r);
  8691. l ? (n.copy(s), n.applyTransform(l), e = e || n.clone(), e.union(n)) : (e = e || s
  8692. .clone(), e.union(s))
  8693. }
  8694. }
  8695. return e || n
  8696. }
  8697. }, h(Cg, bg);
  8698. var Tg = 32,
  8699. Ag = 7,
  8700. Dg = function() {
  8701. this._roots = [], this._displayList = [], this._displayListLen = 0
  8702. };
  8703. Dg.prototype = {
  8704. constructor: Dg,
  8705. traverse: function(t, e) {
  8706. for (var n = 0; n < this._roots.length; n++) this._roots[n].traverse(t, e)
  8707. },
  8708. getDisplayList: function(t, e) {
  8709. return e = e || !1, t && this.updateDisplayList(e), this._displayList
  8710. },
  8711. updateDisplayList: function(t) {
  8712. this._displayListLen = 0;
  8713. for (var e = this._roots, n = this._displayList, i = 0, r = e.length; r > i; i++) this
  8714. ._updateAndAddDisplayable(e[i], null, t);
  8715. n.length = this._displayListLen, dp.canvasSupported && En(n, Bn)
  8716. },
  8717. _updateAndAddDisplayable: function(t, e, n) {
  8718. if (!t.ignore || n) {
  8719. t.beforeUpdate(), t.__dirty && t.update(), t.afterUpdate();
  8720. var i = t.clipPath;
  8721. if (i) {
  8722. e = e ? e.slice() : [];
  8723. for (var r = i, o = t; r;) r.parent = o, r.updateTransform(), e.push(r), o = r, r = r
  8724. .clipPath
  8725. }
  8726. if (t.isGroup) {
  8727. for (var a = t._children, s = 0; s < a.length; s++) {
  8728. var l = a[s];
  8729. t.__dirty && (l.__dirty = !0), this._updateAndAddDisplayable(l, e, n)
  8730. }
  8731. t.__dirty = !1
  8732. } else t.__clipPaths = e, this._displayList[this._displayListLen++] = t
  8733. }
  8734. },
  8735. addRoot: function(t) {
  8736. t.__storage !== this && (t instanceof Cg && t.addChildrenToStorage(this), this.addToStorage(t),
  8737. this._roots.push(t))
  8738. },
  8739. delRoot: function(t) {
  8740. if (null == t) {
  8741. for (var e = 0; e < this._roots.length; e++) {
  8742. var n = this._roots[e];
  8743. n instanceof Cg && n.delChildrenFromStorage(this)
  8744. }
  8745. return this._roots = [], this._displayList = [], void(this._displayListLen = 0)
  8746. }
  8747. if (t instanceof Array)
  8748. for (var e = 0, i = t.length; i > e; e++) this.delRoot(t[e]);
  8749. else {
  8750. var r = u(this._roots, t);
  8751. r >= 0 && (this.delFromStorage(t), this._roots.splice(r, 1), t instanceof Cg && t
  8752. .delChildrenFromStorage(this))
  8753. }
  8754. },
  8755. addToStorage: function(t) {
  8756. return t && (t.__storage = this, t.dirty(!1)), this
  8757. },
  8758. delFromStorage: function(t) {
  8759. return t && (t.__storage = null), this
  8760. },
  8761. dispose: function() {
  8762. this._renderList = this._roots = null
  8763. },
  8764. displayableSortFunc: Bn
  8765. };
  8766. var kg = {
  8767. shadowBlur: 1,
  8768. shadowOffsetX: 1,
  8769. shadowOffsetY: 1,
  8770. textShadowBlur: 1,
  8771. textShadowOffsetX: 1,
  8772. textShadowOffsetY: 1,
  8773. textBoxShadowBlur: 1,
  8774. textBoxShadowOffsetX: 1,
  8775. textBoxShadowOffsetY: 1
  8776. },
  8777. Pg = function(t, e, n) {
  8778. return kg.hasOwnProperty(e) ? n *= t.dpr : n
  8779. },
  8780. Og = {
  8781. NONE: 0,
  8782. STYLE_BIND: 1,
  8783. PLAIN_TEXT: 2
  8784. },
  8785. Lg = 9,
  8786. zg = [
  8787. ["shadowBlur", 0],
  8788. ["shadowOffsetX", 0],
  8789. ["shadowOffsetY", 0],
  8790. ["shadowColor", "#000"],
  8791. ["lineCap", "butt"],
  8792. ["lineJoin", "miter"],
  8793. ["miterLimit", 10]
  8794. ],
  8795. Eg = function(t) {
  8796. this.extendFrom(t, !1)
  8797. };
  8798. Eg.prototype = {
  8799. constructor: Eg,
  8800. fill: "#000",
  8801. stroke: null,
  8802. opacity: 1,
  8803. fillOpacity: null,
  8804. strokeOpacity: null,
  8805. lineDash: null,
  8806. lineDashOffset: 0,
  8807. shadowBlur: 0,
  8808. shadowOffsetX: 0,
  8809. shadowOffsetY: 0,
  8810. lineWidth: 1,
  8811. strokeNoScale: !1,
  8812. text: null,
  8813. font: null,
  8814. textFont: null,
  8815. fontStyle: null,
  8816. fontWeight: null,
  8817. fontSize: null,
  8818. fontFamily: null,
  8819. textTag: null,
  8820. textFill: "#000",
  8821. textStroke: null,
  8822. textWidth: null,
  8823. textHeight: null,
  8824. textStrokeWidth: 0,
  8825. textLineHeight: null,
  8826. textPosition: "inside",
  8827. textRect: null,
  8828. textOffset: null,
  8829. textAlign: null,
  8830. textVerticalAlign: null,
  8831. textDistance: 5,
  8832. textShadowColor: "transparent",
  8833. textShadowBlur: 0,
  8834. textShadowOffsetX: 0,
  8835. textShadowOffsetY: 0,
  8836. textBoxShadowColor: "transparent",
  8837. textBoxShadowBlur: 0,
  8838. textBoxShadowOffsetX: 0,
  8839. textBoxShadowOffsetY: 0,
  8840. transformText: !1,
  8841. textRotation: 0,
  8842. textOrigin: null,
  8843. textBackgroundColor: null,
  8844. textBorderColor: null,
  8845. textBorderWidth: 0,
  8846. textBorderRadius: 0,
  8847. textPadding: null,
  8848. rich: null,
  8849. truncate: null,
  8850. blend: null,
  8851. bind: function(t, e, n) {
  8852. var i = this,
  8853. r = n && n.style,
  8854. o = !r || t.__attrCachedBy !== Og.STYLE_BIND;
  8855. t.__attrCachedBy = Og.STYLE_BIND;
  8856. for (var a = 0; a < zg.length; a++) {
  8857. var s = zg[a],
  8858. l = s[0];
  8859. (o || i[l] !== r[l]) && (t[l] = Pg(t, l, i[l] || s[1]))
  8860. }
  8861. if ((o || i.fill !== r.fill) && (t.fillStyle = i.fill), (o || i.stroke !== r.stroke) && (t
  8862. .strokeStyle = i.stroke), (o || i.opacity !== r.opacity) && (t.globalAlpha = null == i
  8863. .opacity ? 1 : i.opacity), (o || i.blend !== r.blend) && (t.globalCompositeOperation = i
  8864. .blend || "source-over"), this.hasStroke()) {
  8865. var u = i.lineWidth;
  8866. t.lineWidth = u / (this.strokeNoScale && e && e.getLineScale ? e.getLineScale() : 1)
  8867. }
  8868. },
  8869. hasFill: function() {
  8870. var t = this.fill;
  8871. return null != t && "none" !== t
  8872. },
  8873. hasStroke: function() {
  8874. var t = this.stroke;
  8875. return null != t && "none" !== t && this.lineWidth > 0
  8876. },
  8877. extendFrom: function(t, e) {
  8878. if (t)
  8879. for (var n in t) !t.hasOwnProperty(n) || e !== !0 && (e === !1 ? this.hasOwnProperty(n) :
  8880. null == t[n]) || (this[n] = t[n])
  8881. },
  8882. set: function(t, e) {
  8883. "string" == typeof t ? this[t] = e : this.extendFrom(t, !0)
  8884. },
  8885. clone: function() {
  8886. var t = new this.constructor;
  8887. return t.extendFrom(this, !0), t
  8888. },
  8889. getGradient: function(t, e, n) {
  8890. for (var i = "radial" === e.type ? Nn : Rn, r = i(t, e, n), o = e.colorStops, a = 0; a < o
  8891. .length; a++) r.addColorStop(o[a].offset, o[a].color);
  8892. return r
  8893. }
  8894. };
  8895. for (var Bg = Eg.prototype, Rg = 0; Rg < zg.length; Rg++) {
  8896. var Ng = zg[Rg];
  8897. Ng[0] in Bg || (Bg[Ng[0]] = Ng[1])
  8898. }
  8899. Eg.getGradient = Bg.getGradient;
  8900. var Fg = function(t, e) {
  8901. this.image = t, this.repeat = e, this.type = "pattern"
  8902. };
  8903. Fg.prototype.getCanvasPattern = function(t) {
  8904. return t.createPattern(this.image, this.repeat || "repeat")
  8905. };
  8906. var Vg = function(t, e, n) {
  8907. var i;
  8908. n = n || yg, "string" == typeof t ? i = Vn(t, e, n) : S(t) && (i = t, t = i.id), this.id = t, this.dom =
  8909. i;
  8910. var r = i.style;
  8911. r && (i.onselectstart = Fn, r["-webkit-user-select"] = "none", r["user-select"] = "none", r[
  8912. "-webkit-touch-callout"] = "none", r["-webkit-tap-highlight-color"] = "rgba(0,0,0,0)", r
  8913. .padding = 0, r.margin = 0, r["border-width"] = 0), this.domBack = null, this.ctxBack = null,
  8914. this.painter = e, this.config = null, this.clearColor = 0, this.motionBlur = !1, this
  8915. .lastFrameAlpha = .7, this.dpr = n
  8916. };
  8917. Vg.prototype = {
  8918. constructor: Vg,
  8919. __dirty: !0,
  8920. __used: !1,
  8921. __drawIndex: 0,
  8922. __startIndex: 0,
  8923. __endIndex: 0,
  8924. incremental: !1,
  8925. getElementCount: function() {
  8926. return this.__endIndex - this.__startIndex
  8927. },
  8928. initContext: function() {
  8929. this.ctx = this.dom.getContext("2d"), this.ctx.dpr = this.dpr
  8930. },
  8931. createBackBuffer: function() {
  8932. var t = this.dpr;
  8933. this.domBack = Vn("back-" + this.id, this.painter, t), this.ctxBack = this.domBack.getContext(
  8934. "2d"), 1 !== t && this.ctxBack.scale(t, t)
  8935. },
  8936. resize: function(t, e) {
  8937. var n = this.dpr,
  8938. i = this.dom,
  8939. r = i.style,
  8940. o = this.domBack;
  8941. r && (r.width = t + "px", r.height = e + "px"), i.width = t * n, i.height = e * n, o && (o
  8942. .width = t * n, o.height = e * n, 1 !== n && this.ctxBack.scale(n, n))
  8943. },
  8944. clear: function(t, e) {
  8945. var n = this.dom,
  8946. i = this.ctx,
  8947. r = n.width,
  8948. o = n.height,
  8949. e = e || this.clearColor,
  8950. a = this.motionBlur && !t,
  8951. s = this.lastFrameAlpha,
  8952. l = this.dpr;
  8953. if (a && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation =
  8954. "copy", this.ctxBack.drawImage(n, 0, 0, r / l, o / l)), i.clearRect(0, 0, r, o), e &&
  8955. "transparent" !== e) {
  8956. var u;
  8957. e.colorStops ? (u = e.__canvasGradient || Eg.getGradient(i, e, {
  8958. x: 0,
  8959. y: 0,
  8960. width: r,
  8961. height: o
  8962. }), e.__canvasGradient = u) : e.image && (u = Fg.prototype.getCanvasPattern.call(e, i)),
  8963. i.save(), i.fillStyle = u || e, i.fillRect(0, 0, r, o), i.restore()
  8964. }
  8965. if (a) {
  8966. var h = this.domBack;
  8967. i.save(), i.globalAlpha = s, i.drawImage(h, 0, 0, r, o), i.restore()
  8968. }
  8969. }
  8970. };
  8971. var Wg = "undefined" != typeof window && (window.requestAnimationFrame && window.requestAnimationFrame.bind(
  8972. window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window
  8973. .mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function(t) {
  8974. setTimeout(t, 16)
  8975. },
  8976. Hg = new ag(50),
  8977. Gg = {},
  8978. Zg = 0,
  8979. Xg = 5e3,
  8980. Yg = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g,
  8981. Ug = "12px sans-serif",
  8982. jg = {};
  8983. jg.measureText = function(t, e) {
  8984. var n = l();
  8985. return n.font = e || Ug, n.measureText(t)
  8986. };
  8987. var qg = Ug,
  8988. Kg = {
  8989. left: 1,
  8990. right: 1,
  8991. center: 1
  8992. },
  8993. $g = {
  8994. top: 1,
  8995. bottom: 1,
  8996. middle: 1
  8997. },
  8998. Qg = [
  8999. ["textShadowBlur", "shadowBlur", 0],
  9000. ["textShadowOffsetX", "shadowOffsetX", 0],
  9001. ["textShadowOffsetY", "shadowOffsetY", 0],
  9002. ["textShadowColor", "shadowColor", "transparent"]
  9003. ],
  9004. Jg = {},
  9005. tv = {},
  9006. ev = new Tn,
  9007. nv = function() {};
  9008. nv.prototype = {
  9009. constructor: nv,
  9010. drawRectText: function(t, e) {
  9011. var n = this.style;
  9012. e = n.textRect || e, this.__dirty && ui(n, !0);
  9013. var i = n.text;
  9014. if (null != i && (i += ""), Ci(i, n)) {
  9015. t.save();
  9016. var r = this.transform;
  9017. n.transformText ? this.setTransform(t) : r && (ev.copy(e), ev.applyTransform(r), e = ev),
  9018. ci(this, t, i, n, e, Lg), t.restore()
  9019. }
  9020. }
  9021. }, Ti.prototype = {
  9022. constructor: Ti,
  9023. type: "displayable",
  9024. __dirty: !0,
  9025. invisible: !1,
  9026. z: 0,
  9027. z2: 0,
  9028. zlevel: 0,
  9029. draggable: !1,
  9030. dragging: !1,
  9031. silent: !1,
  9032. culling: !1,
  9033. cursor: "pointer",
  9034. rectHover: !1,
  9035. progressive: !1,
  9036. incremental: !1,
  9037. globalScaleRatio: 1,
  9038. beforeBrush: function() {},
  9039. afterBrush: function() {},
  9040. brush: function() {},
  9041. getBoundingRect: function() {},
  9042. contain: function(t, e) {
  9043. return this.rectContain(t, e)
  9044. },
  9045. traverse: function(t, e) {
  9046. t.call(e, this)
  9047. },
  9048. rectContain: function(t, e) {
  9049. var n = this.transformCoordToLocal(t, e),
  9050. i = this.getBoundingRect();
  9051. return i.contain(n[0], n[1])
  9052. },
  9053. dirty: function() {
  9054. this.__dirty = this.__dirtyText = !0, this._rect = null, this.__zr && this.__zr.refresh()
  9055. },
  9056. animateStyle: function(t) {
  9057. return this.animate("style", t)
  9058. },
  9059. attrKV: function(t, e) {
  9060. "style" !== t ? bg.prototype.attrKV.call(this, t, e) : this.style.set(e)
  9061. },
  9062. setStyle: function(t, e) {
  9063. return this.style.set(t, e), this.dirty(!1), this
  9064. },
  9065. useStyle: function(t) {
  9066. return this.style = new Eg(t, this), this.dirty(!1), this
  9067. },
  9068. calculateTextPosition: null
  9069. }, h(Ti, bg), c(Ti, nv), Ai.prototype = {
  9070. constructor: Ai,
  9071. type: "image",
  9072. brush: function(t, e) {
  9073. var n = this.style,
  9074. i = n.image;
  9075. n.bind(t, this, e);
  9076. var r = this._image = Hn(i, this._image, this, this.onload);
  9077. if (r && Zn(r)) {
  9078. var o = n.x || 0,
  9079. a = n.y || 0,
  9080. s = n.width,
  9081. l = n.height,
  9082. u = r.width / r.height;
  9083. if (null == s && null != l ? s = l * u : null == l && null != s ? l = s / u : null == s &&
  9084. null == l && (s = r.width, l = r.height), this.setTransform(t), n.sWidth && n.sHeight) {
  9085. var h = n.sx || 0,
  9086. c = n.sy || 0;
  9087. t.drawImage(r, h, c, n.sWidth, n.sHeight, o, a, s, l)
  9088. } else if (n.sx && n.sy) {
  9089. var h = n.sx,
  9090. c = n.sy,
  9091. d = s - h,
  9092. f = l - c;
  9093. t.drawImage(r, h, c, d, f, o, a, s, l)
  9094. } else t.drawImage(r, o, a, s, l);
  9095. null != n.text && (this.restoreTransform(t), this.drawRectText(t, this.getBoundingRect()))
  9096. }
  9097. },
  9098. getBoundingRect: function() {
  9099. var t = this.style;
  9100. return this._rect || (this._rect = new Tn(t.x || 0, t.y || 0, t.width || 0, t.height || 0)),
  9101. this._rect
  9102. }
  9103. }, h(Ai, Ti);
  9104. var iv = 1e5,
  9105. rv = 314159,
  9106. ov = .01,
  9107. av = .001,
  9108. sv = new Tn(0, 0, 0, 0),
  9109. lv = new Tn(0, 0, 0, 0),
  9110. uv = function(t, e, n) {
  9111. this.type = "canvas";
  9112. var i = !t.nodeName || "CANVAS" === t.nodeName.toUpperCase();
  9113. this._opts = n = a({}, n || {}), this.dpr = n.devicePixelRatio || yg, this._singleCanvas = i, this
  9114. .root = t;
  9115. var r = t.style;
  9116. r && (r["-webkit-tap-highlight-color"] = "transparent", r["-webkit-user-select"] = r["user-select"] = r[
  9117. "-webkit-touch-callout"] = "none", t.innerHTML = ""), this.storage = e;
  9118. var o = this._zlevelList = [],
  9119. s = this._layers = {};
  9120. if (this._layerConfig = {}, this._needsManuallyCompositing = !1, i) {
  9121. var l = t.width,
  9122. u = t.height;
  9123. null != n.width && (l = n.width), null != n.height && (u = n.height), this.dpr = n
  9124. .devicePixelRatio || 1, t.width = l * this.dpr, t.height = u * this.dpr, this._width = l, this
  9125. ._height = u;
  9126. var h = new Vg(t, this, this.dpr);
  9127. h.__builtin__ = !0, h.initContext(), s[rv] = h, h.zlevel = rv, o.push(rv), this._domRoot = t
  9128. } else {
  9129. this._width = this._getSize(0), this._height = this._getSize(1);
  9130. var c = this._domRoot = zi(this._width, this._height);
  9131. t.appendChild(c)
  9132. }
  9133. this._hoverlayer = null, this._hoverElements = []
  9134. };
  9135. uv.prototype = {
  9136. constructor: uv,
  9137. getType: function() {
  9138. return "canvas"
  9139. },
  9140. isSingleCanvas: function() {
  9141. return this._singleCanvas
  9142. },
  9143. getViewportRoot: function() {
  9144. return this._domRoot
  9145. },
  9146. getViewportRootOffset: function() {
  9147. var t = this.getViewportRoot();
  9148. return t ? {
  9149. offsetLeft: t.offsetLeft || 0,
  9150. offsetTop: t.offsetTop || 0
  9151. } : void 0
  9152. },
  9153. refresh: function(t) {
  9154. var e = this.storage.getDisplayList(!0),
  9155. n = this._zlevelList;
  9156. this._redrawId = Math.random(), this._paintList(e, t, this._redrawId);
  9157. for (var i = 0; i < n.length; i++) {
  9158. var r = n[i],
  9159. o = this._layers[r];
  9160. if (!o.__builtin__ && o.refresh) {
  9161. var a = 0 === i ? this._backgroundColor : null;
  9162. o.refresh(a)
  9163. }
  9164. }
  9165. return this.refreshHover(), this
  9166. },
  9167. addHover: function(t, e) {
  9168. if (!t.__hoverMir) {
  9169. var n = new t.constructor({
  9170. style: t.style,
  9171. shape: t.shape,
  9172. z: t.z,
  9173. z2: t.z2,
  9174. silent: t.silent
  9175. });
  9176. return n.__from = t, t.__hoverMir = n, e && n.setStyle(e), this._hoverElements.push(n), n
  9177. }
  9178. },
  9179. removeHover: function(t) {
  9180. var e = t.__hoverMir,
  9181. n = this._hoverElements,
  9182. i = u(n, e);
  9183. i >= 0 && n.splice(i, 1), t.__hoverMir = null
  9184. },
  9185. clearHover: function() {
  9186. for (var t = this._hoverElements, e = 0; e < t.length; e++) {
  9187. var n = t[e].__from;
  9188. n && (n.__hoverMir = null)
  9189. }
  9190. t.length = 0
  9191. },
  9192. refreshHover: function() {
  9193. var t = this._hoverElements,
  9194. e = t.length,
  9195. n = this._hoverlayer;
  9196. if (n && n.clear(), e) {
  9197. En(t, this.storage.displayableSortFunc), n || (n = this._hoverlayer = this.getLayer(iv));
  9198. var i = {};
  9199. n.ctx.save();
  9200. for (var r = 0; e > r;) {
  9201. var o = t[r],
  9202. a = o.__from;
  9203. a && a.__zr ? (r++, a.invisible || (o.transform = a.transform, o.invTransform = a
  9204. .invTransform, o.__clipPaths = a.__clipPaths, this._doPaintEl(o, n, !0, i))) : (
  9205. t.splice(r, 1), a.__hoverMir = null, e--)
  9206. }
  9207. n.ctx.restore()
  9208. }
  9209. },
  9210. getHoverLayer: function() {
  9211. return this.getLayer(iv)
  9212. },
  9213. _paintList: function(t, e, n) {
  9214. if (this._redrawId === n) {
  9215. e = e || !1, this._updateLayerStatus(t);
  9216. var i = this._doPaintList(t, e);
  9217. if (this._needsManuallyCompositing && this._compositeManually(), !i) {
  9218. var r = this;
  9219. Wg(function() {
  9220. r._paintList(t, e, n)
  9221. })
  9222. }
  9223. }
  9224. },
  9225. _compositeManually: function() {
  9226. var t = this.getLayer(rv).ctx,
  9227. e = this._domRoot.width,
  9228. n = this._domRoot.height;
  9229. t.clearRect(0, 0, e, n), this.eachBuiltinLayer(function(i) {
  9230. i.virtual && t.drawImage(i.dom, 0, 0, e, n)
  9231. })
  9232. },
  9233. _doPaintList: function(t, e) {
  9234. for (var n = [], i = 0; i < this._zlevelList.length; i++) {
  9235. var r = this._zlevelList[i],
  9236. o = this._layers[r];
  9237. o.__builtin__ && o !== this._hoverlayer && (o.__dirty || e) && n.push(o)
  9238. }
  9239. for (var a = !0, s = 0; s < n.length; s++) {
  9240. var o = n[s],
  9241. l = o.ctx,
  9242. u = {};
  9243. l.save();
  9244. var h = e ? o.__startIndex : o.__drawIndex,
  9245. c = !e && o.incremental && Date.now,
  9246. d = c && Date.now(),
  9247. p = o.zlevel === this._zlevelList[0] ? this._backgroundColor : null;
  9248. if (o.__startIndex === o.__endIndex) o.clear(!1, p);
  9249. else if (h === o.__startIndex) {
  9250. var g = t[h];
  9251. g.incremental && g.notClear && !e || o.clear(!1, p)
  9252. } - 1 === h && (console.error("For some unknown reason. drawIndex is -1"), h = o
  9253. .__startIndex);
  9254. for (var v = h; v < o.__endIndex; v++) {
  9255. var m = t[v];
  9256. if (this._doPaintEl(m, o, e, u), m.__dirty = m.__dirtyText = !1, c) {
  9257. var y = Date.now() - d;
  9258. if (y > 15) break
  9259. }
  9260. }
  9261. o.__drawIndex = v, o.__drawIndex < o.__endIndex && (a = !1), u.prevElClipPaths && l
  9262. .restore(), l.restore()
  9263. }
  9264. return dp.wxa && f(this._layers, function(t) {
  9265. t && t.ctx && t.ctx.draw && t.ctx.draw()
  9266. }), a
  9267. },
  9268. _doPaintEl: function(t, e, n, i) {
  9269. var r = e.ctx,
  9270. o = t.transform;
  9271. if (!(!e.__dirty && !n || t.invisible || 0 === t.style.opacity || o && !o[0] && !o[3] || t
  9272. .culling && Pi(t, this._width, this._height))) {
  9273. var a = t.__clipPaths,
  9274. s = i.prevElClipPaths;
  9275. (!s || Oi(a, s)) && (s && (r.restore(), i.prevElClipPaths = null, i.prevEl = null), a && (r
  9276. .save(), Li(a, r), i.prevElClipPaths = a)), t.beforeBrush && t.beforeBrush(r), t.brush(
  9277. r, i.prevEl || null), i.prevEl = t, t.afterBrush && t.afterBrush(r)
  9278. }
  9279. },
  9280. getLayer: function(t, e) {
  9281. this._singleCanvas && !this._needsManuallyCompositing && (t = rv);
  9282. var n = this._layers[t];
  9283. return n || (n = new Vg("zr_" + t, this, this.dpr), n.zlevel = t, n.__builtin__ = !0, this
  9284. ._layerConfig[t] ? r(n, this._layerConfig[t], !0) : this._layerConfig[t - ov] && r(n,
  9285. this._layerConfig[t - ov], !0), e && (n.virtual = e), this.insertLayer(t, n), n
  9286. .initContext()), n
  9287. },
  9288. insertLayer: function(t, e) {
  9289. var n = this._layers,
  9290. i = this._zlevelList,
  9291. r = i.length,
  9292. o = null,
  9293. a = -1,
  9294. s = this._domRoot;
  9295. if (n[t]) return void _g("ZLevel " + t + " has been used already");
  9296. if (!ki(e)) return void _g("Layer of zlevel " + t + " is not valid");
  9297. if (r > 0 && t > i[0]) {
  9298. for (a = 0; r - 1 > a && !(i[a] < t && i[a + 1] > t); a++);
  9299. o = n[i[a]]
  9300. }
  9301. if (i.splice(a + 1, 0, t), n[t] = e, !e.virtual)
  9302. if (o) {
  9303. var l = o.dom;
  9304. l.nextSibling ? s.insertBefore(e.dom, l.nextSibling) : s.appendChild(e.dom)
  9305. } else s.firstChild ? s.insertBefore(e.dom, s.firstChild) : s.appendChild(e.dom)
  9306. },
  9307. eachLayer: function(t, e) {
  9308. var n, i, r = this._zlevelList;
  9309. for (i = 0; i < r.length; i++) n = r[i], t.call(e, this._layers[n], n)
  9310. },
  9311. eachBuiltinLayer: function(t, e) {
  9312. var n, i, r, o = this._zlevelList;
  9313. for (r = 0; r < o.length; r++) i = o[r], n = this._layers[i], n.__builtin__ && t.call(e, n, i)
  9314. },
  9315. eachOtherLayer: function(t, e) {
  9316. var n, i, r, o = this._zlevelList;
  9317. for (r = 0; r < o.length; r++) i = o[r], n = this._layers[i], n.__builtin__ || t.call(e, n, i)
  9318. },
  9319. getLayers: function() {
  9320. return this._layers
  9321. },
  9322. _updateLayerStatus: function(t) {
  9323. function e(t) {
  9324. o && (o.__endIndex !== t && (o.__dirty = !0), o.__endIndex = t)
  9325. }
  9326. if (this.eachBuiltinLayer(function(t) {
  9327. t.__dirty = t.__used = !1
  9328. }), this._singleCanvas)
  9329. for (var n = 1; n < t.length; n++) {
  9330. var i = t[n];
  9331. if (i.zlevel !== t[n - 1].zlevel || i.incremental) {
  9332. this._needsManuallyCompositing = !0;
  9333. break
  9334. }
  9335. }
  9336. for (var r, o = null, a = 0, n = 0; n < t.length; n++) {
  9337. var s, i = t[n],
  9338. l = i.zlevel;
  9339. r !== l && (r = l, a = 0), i.incremental ? (s = this.getLayer(l + av, this
  9340. ._needsManuallyCompositing), s.incremental = !0, a = 1) : s = this.getLayer(l + (a >
  9341. 0 ? ov : 0), this._needsManuallyCompositing), s.__builtin__ || _g("ZLevel " + l +
  9342. " has been used by unkown layer " + s.id), s !== o && (s.__used = !0, s
  9343. .__startIndex !== n && (s.__dirty = !0), s.__startIndex = n, s.__drawIndex = s
  9344. .incremental ? -1 : n, e(n), o = s), i.__dirty && (s.__dirty = !0, s.incremental &&
  9345. s.__drawIndex < 0 && (s.__drawIndex = n))
  9346. }
  9347. e(n), this.eachBuiltinLayer(function(t) {
  9348. !t.__used && t.getElementCount() > 0 && (t.__dirty = !0, t.__startIndex = t
  9349. .__endIndex = t.__drawIndex = 0), t.__dirty && t.__drawIndex < 0 && (t
  9350. .__drawIndex = t.__startIndex)
  9351. })
  9352. },
  9353. clear: function() {
  9354. return this.eachBuiltinLayer(this._clearLayer), this
  9355. },
  9356. _clearLayer: function(t) {
  9357. t.clear()
  9358. },
  9359. setBackgroundColor: function(t) {
  9360. this._backgroundColor = t
  9361. },
  9362. configLayer: function(t, e) {
  9363. if (e) {
  9364. var n = this._layerConfig;
  9365. n[t] ? r(n[t], e, !0) : n[t] = e;
  9366. for (var i = 0; i < this._zlevelList.length; i++) {
  9367. var o = this._zlevelList[i];
  9368. if (o === t || o === t + ov) {
  9369. var a = this._layers[o];
  9370. r(a, n[t], !0)
  9371. }
  9372. }
  9373. }
  9374. },
  9375. delLayer: function(t) {
  9376. var e = this._layers,
  9377. n = this._zlevelList,
  9378. i = e[t];
  9379. i && (i.dom.parentNode.removeChild(i.dom), delete e[t], n.splice(u(n, t), 1))
  9380. },
  9381. resize: function(t, e) {
  9382. if (this._domRoot.style) {
  9383. var n = this._domRoot;
  9384. n.style.display = "none";
  9385. var i = this._opts;
  9386. if (null != t && (i.width = t), null != e && (i.height = e), t = this._getSize(0), e = this
  9387. ._getSize(1), n.style.display = "", this._width !== t || e !== this._height) {
  9388. n.style.width = t + "px", n.style.height = e + "px";
  9389. for (var r in this._layers) this._layers.hasOwnProperty(r) && this._layers[r].resize(t,
  9390. e);
  9391. f(this._progressiveLayers, function(n) {
  9392. n.resize(t, e)
  9393. }), this.refresh(!0)
  9394. }
  9395. this._width = t, this._height = e
  9396. } else {
  9397. if (null == t || null == e) return;
  9398. this._width = t, this._height = e, this.getLayer(rv).resize(t, e)
  9399. }
  9400. return this
  9401. },
  9402. clearLayer: function(t) {
  9403. var e = this._layers[t];
  9404. e && e.clear()
  9405. },
  9406. dispose: function() {
  9407. this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null
  9408. },
  9409. getRenderedCanvas: function(t) {
  9410. if (t = t || {}, this._singleCanvas && !this._compositeManually) return this._layers[rv].dom;
  9411. var e = new Vg("image", this, t.pixelRatio || this.dpr);
  9412. if (e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor), t.pixelRatio <=
  9413. this.dpr) {
  9414. this.refresh();
  9415. var n = e.dom.width,
  9416. i = e.dom.height,
  9417. r = e.ctx;
  9418. this.eachLayer(function(t) {
  9419. t.__builtin__ ? r.drawImage(t.dom, 0, 0, n, i) : t.renderToCanvas && (e.ctx
  9420. .save(), t.renderToCanvas(e.ctx), e.ctx.restore())
  9421. })
  9422. } else
  9423. for (var o = {}, a = this.storage.getDisplayList(!0), s = 0; s < a.length; s++) {
  9424. var l = a[s];
  9425. this._doPaintEl(l, e, !0, o)
  9426. }
  9427. return e.dom
  9428. },
  9429. getWidth: function() {
  9430. return this._width
  9431. },
  9432. getHeight: function() {
  9433. return this._height
  9434. },
  9435. _getSize: function(t) {
  9436. var e = this._opts,
  9437. n = ["width", "height"][t],
  9438. i = ["clientWidth", "clientHeight"][t],
  9439. r = ["paddingLeft", "paddingTop"][t],
  9440. o = ["paddingRight", "paddingBottom"][t];
  9441. if (null != e[n] && "auto" !== e[n]) return parseFloat(e[n]);
  9442. var a = this.root,
  9443. s = document.defaultView.getComputedStyle(a);
  9444. return (a[i] || Di(s[n]) || Di(a.style[n])) - (Di(s[r]) || 0) - (Di(s[o]) || 0) | 0
  9445. },
  9446. pathToImage: function(t, e) {
  9447. e = e || this.dpr;
  9448. var n = document.createElement("canvas"),
  9449. i = n.getContext("2d"),
  9450. r = t.getBoundingRect(),
  9451. o = t.style,
  9452. a = o.shadowBlur * e,
  9453. s = o.shadowOffsetX * e,
  9454. l = o.shadowOffsetY * e,
  9455. u = o.hasStroke() ? o.lineWidth : 0,
  9456. h = Math.max(u / 2, -s + a),
  9457. c = Math.max(u / 2, s + a),
  9458. d = Math.max(u / 2, -l + a),
  9459. f = Math.max(u / 2, l + a),
  9460. p = r.width + h + c,
  9461. g = r.height + d + f;
  9462. n.width = p * e, n.height = g * e, i.scale(e, e), i.clearRect(0, 0, p, g), i.dpr = e;
  9463. var v = {
  9464. position: t.position,
  9465. rotation: t.rotation,
  9466. scale: t.scale
  9467. };
  9468. t.position = [h - r.x, d - r.y], t.rotation = 0, t.scale = [1, 1], t.updateTransform(), t && t
  9469. .brush(i);
  9470. var m = Ai,
  9471. y = new m({
  9472. style: {
  9473. x: 0,
  9474. y: 0,
  9475. image: n
  9476. }
  9477. });
  9478. return null != v.position && (y.position = t.position = v.position), null != v.rotation && (y
  9479. .rotation = t.rotation = v.rotation), null != v.scale && (y.scale = t.scale = v.scale),
  9480. y
  9481. }
  9482. };
  9483. var hv = function(t) {
  9484. t = t || {}, this.stage = t.stage || {}, this.onframe = t.onframe || function() {}, this._clips = [],
  9485. this._running = !1, this._time, this._pausedTime, this._pauseStart, this._paused = !1, zp.call(this)
  9486. };
  9487. hv.prototype = {
  9488. constructor: hv,
  9489. addClip: function(t) {
  9490. this._clips.push(t)
  9491. },
  9492. addAnimator: function(t) {
  9493. t.animation = this;
  9494. for (var e = t.getClips(), n = 0; n < e.length; n++) this.addClip(e[n])
  9495. },
  9496. removeClip: function(t) {
  9497. var e = u(this._clips, t);
  9498. e >= 0 && this._clips.splice(e, 1)
  9499. },
  9500. removeAnimator: function(t) {
  9501. for (var e = t.getClips(), n = 0; n < e.length; n++) this.removeClip(e[n]);
  9502. t.animation = null
  9503. },
  9504. _update: function() {
  9505. for (var t = (new Date).getTime() - this._pausedTime, e = t - this._time, n = this._clips, i = n
  9506. .length, r = [], o = [], a = 0; i > a; a++) {
  9507. var s = n[a],
  9508. l = s.step(t, e);
  9509. l && (r.push(l), o.push(s))
  9510. }
  9511. for (var a = 0; i > a;) n[a]._needsRemove ? (n[a] = n[i - 1], n.pop(), i--) : a++;
  9512. i = r.length;
  9513. for (var a = 0; i > a; a++) o[a].fire(r[a]);
  9514. this._time = t, this.onframe(e), this.trigger("frame", e), this.stage.update && this.stage
  9515. .update()
  9516. },
  9517. _startLoop: function() {
  9518. function t() {
  9519. e._running && (Wg(t), !e._paused && e._update())
  9520. }
  9521. var e = this;
  9522. this._running = !0, Wg(t)
  9523. },
  9524. start: function() {
  9525. this._time = (new Date).getTime(), this._pausedTime = 0, this._startLoop()
  9526. },
  9527. stop: function() {
  9528. this._running = !1
  9529. },
  9530. pause: function() {
  9531. this._paused || (this._pauseStart = (new Date).getTime(), this._paused = !0)
  9532. },
  9533. resume: function() {
  9534. this._paused && (this._pausedTime += (new Date).getTime() - this._pauseStart, this._paused = !1)
  9535. },
  9536. clear: function() {
  9537. this._clips = []
  9538. },
  9539. isFinished: function() {
  9540. return !this._clips.length
  9541. },
  9542. animate: function(t, e) {
  9543. e = e || {};
  9544. var n = new gg(t, e.loop, e.getter, e.setter);
  9545. return this.addAnimator(n), n
  9546. }
  9547. }, c(hv, zp);
  9548. var cv = 300,
  9549. dv = dp.domSupported,
  9550. fv = function() {
  9551. var t = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove",
  9552. "contextmenu"
  9553. ],
  9554. e = ["touchstart", "touchend", "touchmove"],
  9555. n = {
  9556. pointerdown: 1,
  9557. pointerup: 1,
  9558. pointermove: 1,
  9559. pointerout: 1
  9560. },
  9561. i = p(t, function(t) {
  9562. var e = t.replace("mouse", "pointer");
  9563. return n.hasOwnProperty(e) ? e : t
  9564. });
  9565. return {
  9566. mouse: t,
  9567. touch: e,
  9568. pointer: i
  9569. }
  9570. }(),
  9571. pv = {
  9572. mouse: ["mousemove", "mouseup"],
  9573. pointer: ["pointermove", "pointerup"]
  9574. },
  9575. gv = Wi.prototype;
  9576. gv.stopPropagation = gv.stopImmediatePropagation = gv.preventDefault = V;
  9577. var vv = {
  9578. mousedown: function(t) {
  9579. t = be(this.dom, t), this._mayPointerCapture = [t.zrX, t.zrY], this.trigger("mousedown", t)
  9580. },
  9581. mousemove: function(t) {
  9582. t = be(this.dom, t);
  9583. var e = this._mayPointerCapture;
  9584. !e || t.zrX === e[0] && t.zrY === e[1] || Yi(this, !0), this.trigger("mousemove", t)
  9585. },
  9586. mouseup: function(t) {
  9587. t = be(this.dom, t), Yi(this, !1), this.trigger("mouseup", t)
  9588. },
  9589. mouseout: function(t) {
  9590. t = be(this.dom, t), this._pointerCapturing && (t.zrEventControl = "no_globalout");
  9591. var e = t.toElement || t.relatedTarget;
  9592. t.zrIsToLocalDOM = Vi(this, e), this.trigger("mouseout", t)
  9593. },
  9594. touchstart: function(t) {
  9595. t = be(this.dom, t), Ni(t), this._lastTouchMoment = new Date, this.handler.processGesture(t,
  9596. "start"), vv.mousemove.call(this, t), vv.mousedown.call(this, t)
  9597. },
  9598. touchmove: function(t) {
  9599. t = be(this.dom, t), Ni(t), this.handler.processGesture(t, "change"), vv.mousemove.call(this, t)
  9600. },
  9601. touchend: function(t) {
  9602. t = be(this.dom, t), Ni(t), this.handler.processGesture(t, "end"), vv.mouseup.call(this, t), +
  9603. new Date - this._lastTouchMoment < cv && vv.click.call(this, t)
  9604. },
  9605. pointerdown: function(t) {
  9606. vv.mousedown.call(this, t)
  9607. },
  9608. pointermove: function(t) {
  9609. Bi(t) || vv.mousemove.call(this, t)
  9610. },
  9611. pointerup: function(t) {
  9612. vv.mouseup.call(this, t)
  9613. },
  9614. pointerout: function(t) {
  9615. Bi(t) || vv.mouseout.call(this, t)
  9616. }
  9617. };
  9618. f(["click", "mousewheel", "dblclick", "contextmenu"], function(t) {
  9619. vv[t] = function(e) {
  9620. e = be(this.dom, e), this.trigger(t, e)
  9621. }
  9622. });
  9623. var mv = {
  9624. pointermove: function(t) {
  9625. Bi(t) || mv.mousemove.call(this, t)
  9626. },
  9627. pointerup: function(t) {
  9628. mv.mouseup.call(this, t)
  9629. },
  9630. mousemove: function(t) {
  9631. this.trigger("mousemove", t)
  9632. },
  9633. mouseup: function(t) {
  9634. var e = this._pointerCapturing;
  9635. Yi(this, !1), this.trigger("mouseup", t), e && (t.zrEventControl = "only_globalout", this
  9636. .trigger("mouseout", t))
  9637. }
  9638. },
  9639. yv = ji.prototype;
  9640. yv.dispose = function() {
  9641. Xi(this._localHandlerScope), dv && Xi(this._globalHandlerScope)
  9642. }, yv.setCursor = function(t) {
  9643. this.dom.style && (this.dom.style.cursor = t || "default")
  9644. }, c(ji, zp);
  9645. var xv = !dp.canvasSupported,
  9646. _v = {
  9647. canvas: uv
  9648. },
  9649. wv = {},
  9650. bv = "4.3.1",
  9651. Sv = function(t, e, n) {
  9652. n = n || {}, this.dom = e, this.id = t;
  9653. var i = this,
  9654. r = new Dg,
  9655. o = n.renderer;
  9656. if (xv) {
  9657. if (!_v.vml) throw new Error("You need to require 'zrender/vml/vml' to support IE8");
  9658. o = "vml"
  9659. } else o && _v[o] || (o = "canvas");
  9660. var a = new _v[o](e, r, n, t);
  9661. this.storage = r, this.painter = a;
  9662. var s = dp.node || dp.worker ? null : new ji(a.getViewportRoot(), a.root);
  9663. this.handler = new Yp(r, a, s, a.root), this.animation = new hv({
  9664. stage: {
  9665. update: y(this.flush, this)
  9666. }
  9667. }), this.animation.start(), this._needsRefresh;
  9668. var l = r.delFromStorage,
  9669. u = r.addToStorage;
  9670. r.delFromStorage = function(t) {
  9671. l.call(r, t), t && t.removeSelfFromZr(i)
  9672. }, r.addToStorage = function(t) {
  9673. u.call(r, t), t.addSelfToZr(i)
  9674. }
  9675. };
  9676. Sv.prototype = {
  9677. constructor: Sv,
  9678. getId: function() {
  9679. return this.id
  9680. },
  9681. add: function(t) {
  9682. this.storage.addRoot(t), this._needsRefresh = !0
  9683. },
  9684. remove: function(t) {
  9685. this.storage.delRoot(t), this._needsRefresh = !0
  9686. },
  9687. configLayer: function(t, e) {
  9688. this.painter.configLayer && this.painter.configLayer(t, e), this._needsRefresh = !0
  9689. },
  9690. setBackgroundColor: function(t) {
  9691. this.painter.setBackgroundColor && this.painter.setBackgroundColor(t), this._needsRefresh = !0
  9692. },
  9693. refreshImmediately: function() {
  9694. this._needsRefresh = this._needsRefreshHover = !1, this.painter.refresh(), this._needsRefresh =
  9695. this._needsRefreshHover = !1
  9696. },
  9697. refresh: function() {
  9698. this._needsRefresh = !0
  9699. },
  9700. flush: function() {
  9701. var t;
  9702. this._needsRefresh && (t = !0, this.refreshImmediately()), this._needsRefreshHover && (t = !0,
  9703. this.refreshHoverImmediately()), t && this.trigger("rendered")
  9704. },
  9705. addHover: function(t, e) {
  9706. if (this.painter.addHover) {
  9707. var n = this.painter.addHover(t, e);
  9708. return this.refreshHover(), n
  9709. }
  9710. },
  9711. removeHover: function(t) {
  9712. this.painter.removeHover && (this.painter.removeHover(t), this.refreshHover())
  9713. },
  9714. clearHover: function() {
  9715. this.painter.clearHover && (this.painter.clearHover(), this.refreshHover())
  9716. },
  9717. refreshHover: function() {
  9718. this._needsRefreshHover = !0
  9719. },
  9720. refreshHoverImmediately: function() {
  9721. this._needsRefreshHover = !1, this.painter.refreshHover && this.painter.refreshHover()
  9722. },
  9723. resize: function(t) {
  9724. t = t || {}, this.painter.resize(t.width, t.height), this.handler.resize()
  9725. },
  9726. clearAnimation: function() {
  9727. this.animation.clear()
  9728. },
  9729. getWidth: function() {
  9730. return this.painter.getWidth()
  9731. },
  9732. getHeight: function() {
  9733. return this.painter.getHeight()
  9734. },
  9735. pathToImage: function(t, e) {
  9736. return this.painter.pathToImage(t, e)
  9737. },
  9738. setCursorStyle: function(t) {
  9739. this.handler.setCursorStyle(t)
  9740. },
  9741. findHover: function(t, e) {
  9742. return this.handler.findHover(t, e)
  9743. },
  9744. on: function(t, e, n) {
  9745. this.handler.on(t, e, n)
  9746. },
  9747. off: function(t, e) {
  9748. this.handler.off(t, e)
  9749. },
  9750. trigger: function(t, e) {
  9751. this.handler.trigger(t, e)
  9752. },
  9753. clear: function() {
  9754. this.storage.delRoot(), this.painter.clear()
  9755. },
  9756. dispose: function() {
  9757. this.animation.stop(), this.clear(), this.storage.dispose(), this.painter.dispose(), this
  9758. .handler.dispose(), this.animation = this.storage = this.painter = this.handler = null, Ji(
  9759. this.id)
  9760. }
  9761. };
  9762. var Mv = (Object.freeze || Object)({
  9763. version: bv,
  9764. init: qi,
  9765. dispose: Ki,
  9766. getInstance: $i,
  9767. registerPainter: Qi
  9768. }),
  9769. Iv = f,
  9770. Cv = S,
  9771. Tv = _,
  9772. Av = "series\x00",
  9773. Dv = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "rich", "tag", "color", "textBorderColor",
  9774. "textBorderWidth", "width", "height", "lineHeight", "align", "verticalAlign", "baseline", "shadowColor",
  9775. "shadowBlur", "shadowOffsetX", "shadowOffsetY", "textShadowColor", "textShadowBlur",
  9776. "textShadowOffsetX", "textShadowOffsetY", "backgroundColor", "borderColor", "borderWidth",
  9777. "borderRadius", "padding"
  9778. ],
  9779. kv = 0,
  9780. Pv = ".",
  9781. Ov = "___EC__COMPONENT__CONTAINER___",
  9782. Lv = 0,
  9783. zv = function(t) {
  9784. for (var e = 0; e < t.length; e++) t[e][1] || (t[e][1] = t[e][0]);
  9785. return function(e, n, i) {
  9786. for (var r = {}, o = 0; o < t.length; o++) {
  9787. var a = t[o][1];
  9788. if (!(n && u(n, a) >= 0 || i && u(i, a) < 0)) {
  9789. var s = e.getShallow(a);
  9790. null != s && (r[t[o][0]] = s)
  9791. }
  9792. }
  9793. return r
  9794. }
  9795. },
  9796. Ev = zv([
  9797. ["lineWidth", "width"],
  9798. ["stroke", "color"],
  9799. ["opacity"],
  9800. ["shadowBlur"],
  9801. ["shadowOffsetX"],
  9802. ["shadowOffsetY"],
  9803. ["shadowColor"]
  9804. ]),
  9805. Bv = {
  9806. getLineStyle: function(t) {
  9807. var e = Ev(this, t);
  9808. return e.lineDash = this.getLineDash(e.lineWidth), e
  9809. },
  9810. getLineDash: function(t) {
  9811. null == t && (t = 1);
  9812. var e = this.get("type"),
  9813. n = Math.max(t, 2),
  9814. i = 4 * t;
  9815. return "solid" === e || null == e ? !1 : "dashed" === e ? [i, i] : [n, n]
  9816. }
  9817. },
  9818. Rv = zv([
  9819. ["fill", "color"],
  9820. ["shadowBlur"],
  9821. ["shadowOffsetX"],
  9822. ["shadowOffsetY"],
  9823. ["opacity"],
  9824. ["shadowColor"]
  9825. ]),
  9826. Nv = {
  9827. getAreaStyle: function(t, e) {
  9828. return Rv(this, t, e)
  9829. }
  9830. },
  9831. Fv = Math.pow,
  9832. Vv = Math.sqrt,
  9833. Wv = 1e-8,
  9834. Hv = 1e-4,
  9835. Gv = Vv(3),
  9836. Zv = 1 / 3,
  9837. Xv = W(),
  9838. Yv = W(),
  9839. Uv = W(),
  9840. jv = Math.min,
  9841. qv = Math.max,
  9842. Kv = Math.sin,
  9843. $v = Math.cos,
  9844. Qv = 2 * Math.PI,
  9845. Jv = W(),
  9846. tm = W(),
  9847. em = W(),
  9848. nm = [],
  9849. im = [],
  9850. rm = {
  9851. M: 1,
  9852. L: 2,
  9853. C: 3,
  9854. Q: 4,
  9855. A: 5,
  9856. Z: 6,
  9857. R: 7
  9858. },
  9859. om = [],
  9860. am = [],
  9861. sm = [],
  9862. lm = [],
  9863. um = Math.min,
  9864. hm = Math.max,
  9865. cm = Math.cos,
  9866. dm = Math.sin,
  9867. fm = Math.sqrt,
  9868. pm = Math.abs,
  9869. gm = "undefined" != typeof Float32Array,
  9870. vm = function(t) {
  9871. this._saveData = !t, this._saveData && (this.data = []), this._ctx = null
  9872. };
  9873. vm.prototype = {
  9874. constructor: vm,
  9875. _xi: 0,
  9876. _yi: 0,
  9877. _x0: 0,
  9878. _y0: 0,
  9879. _ux: 0,
  9880. _uy: 0,
  9881. _len: 0,
  9882. _lineDash: null,
  9883. _dashOffset: 0,
  9884. _dashIdx: 0,
  9885. _dashSum: 0,
  9886. setScale: function(t, e, n) {
  9887. n = n || 0, this._ux = pm(n / yg / t) || 0, this._uy = pm(n / yg / e) || 0
  9888. },
  9889. getContext: function() {
  9890. return this._ctx
  9891. },
  9892. beginPath: function(t) {
  9893. return this._ctx = t, t && t.beginPath(), t && (this.dpr = t.dpr), this._saveData && (this
  9894. ._len = 0), this._lineDash && (this._lineDash = null, this._dashOffset = 0), this
  9895. },
  9896. moveTo: function(t, e) {
  9897. return this.addData(rm.M, t, e), this._ctx && this._ctx.moveTo(t, e), this._x0 = t, this._y0 =
  9898. e, this._xi = t, this._yi = e, this
  9899. },
  9900. lineTo: function(t, e) {
  9901. var n = pm(t - this._xi) > this._ux || pm(e - this._yi) > this._uy || this._len < 5;
  9902. return this.addData(rm.L, t, e), this._ctx && n && (this._needsDash() ? this._dashedLineTo(t,
  9903. e) : this._ctx.lineTo(t, e)), n && (this._xi = t, this._yi = e), this
  9904. },
  9905. bezierCurveTo: function(t, e, n, i, r, o) {
  9906. return this.addData(rm.C, t, e, n, i, r, o), this._ctx && (this._needsDash() ? this
  9907. ._dashedBezierTo(t, e, n, i, r, o) : this._ctx.bezierCurveTo(t, e, n, i, r, o)), this
  9908. ._xi = r, this._yi = o, this
  9909. },
  9910. quadraticCurveTo: function(t, e, n, i) {
  9911. return this.addData(rm.Q, t, e, n, i), this._ctx && (this._needsDash() ? this
  9912. ._dashedQuadraticTo(t, e, n, i) : this._ctx.quadraticCurveTo(t, e, n, i)), this._xi = n,
  9913. this._yi = i, this
  9914. },
  9915. arc: function(t, e, n, i, r, o) {
  9916. return this.addData(rm.A, t, e, n, n, i, r - i, 0, o ? 0 : 1), this._ctx && this._ctx.arc(t, e,
  9917. n, i, r, o), this._xi = cm(r) * n + t, this._yi = dm(r) * n + e, this
  9918. },
  9919. arcTo: function(t, e, n, i, r) {
  9920. return this._ctx && this._ctx.arcTo(t, e, n, i, r), this
  9921. },
  9922. rect: function(t, e, n, i) {
  9923. return this._ctx && this._ctx.rect(t, e, n, i), this.addData(rm.R, t, e, n, i), this
  9924. },
  9925. closePath: function() {
  9926. this.addData(rm.Z);
  9927. var t = this._ctx,
  9928. e = this._x0,
  9929. n = this._y0;
  9930. return t && (this._needsDash() && this._dashedLineTo(e, n), t.closePath()), this._xi = e, this
  9931. ._yi = n, this
  9932. },
  9933. fill: function(t) {
  9934. t && t.fill(), this.toStatic()
  9935. },
  9936. stroke: function(t) {
  9937. t && t.stroke(), this.toStatic()
  9938. },
  9939. setLineDash: function(t) {
  9940. if (t instanceof Array) {
  9941. this._lineDash = t, this._dashIdx = 0;
  9942. for (var e = 0, n = 0; n < t.length; n++) e += t[n];
  9943. this._dashSum = e
  9944. }
  9945. return this
  9946. },
  9947. setLineDashOffset: function(t) {
  9948. return this._dashOffset = t, this
  9949. },
  9950. len: function() {
  9951. return this._len
  9952. },
  9953. setData: function(t) {
  9954. var e = t.length;
  9955. this.data && this.data.length === e || !gm || (this.data = new Float32Array(e));
  9956. for (var n = 0; e > n; n++) this.data[n] = t[n];
  9957. this._len = e
  9958. },
  9959. appendPath: function(t) {
  9960. t instanceof Array || (t = [t]);
  9961. for (var e = t.length, n = 0, i = this._len, r = 0; e > r; r++) n += t[r].len();
  9962. gm && this.data instanceof Float32Array && (this.data = new Float32Array(i + n));
  9963. for (var r = 0; e > r; r++)
  9964. for (var o = t[r].data, a = 0; a < o.length; a++) this.data[i++] = o[a];
  9965. this._len = i
  9966. },
  9967. addData: function(t) {
  9968. if (this._saveData) {
  9969. var e = this.data;
  9970. this._len + arguments.length > e.length && (this._expandData(), e = this.data);
  9971. for (var n = 0; n < arguments.length; n++) e[this._len++] = arguments[n];
  9972. this._prevCmd = t
  9973. }
  9974. },
  9975. _expandData: function() {
  9976. if (!(this.data instanceof Array)) {
  9977. for (var t = [], e = 0; e < this._len; e++) t[e] = this.data[e];
  9978. this.data = t
  9979. }
  9980. },
  9981. _needsDash: function() {
  9982. return this._lineDash
  9983. },
  9984. _dashedLineTo: function(t, e) {
  9985. var n, i, r = this._dashSum,
  9986. o = this._dashOffset,
  9987. a = this._lineDash,
  9988. s = this._ctx,
  9989. l = this._xi,
  9990. u = this._yi,
  9991. h = t - l,
  9992. c = e - u,
  9993. d = fm(h * h + c * c),
  9994. f = l,
  9995. p = u,
  9996. g = a.length;
  9997. for (h /= d, c /= d, 0 > o && (o = r + o), o %= r, f -= o * h, p -= o * c; h > 0 && t >= f ||
  9998. 0 > h && f >= t || 0 === h && (c > 0 && e >= p || 0 > c && p >= e);) i = this._dashIdx, n =
  9999. a[i], f += h * n, p += c * n, this._dashIdx = (i + 1) % g, h > 0 && l > f || 0 > h && f >
  10000. l || c > 0 && u > p || 0 > c && p > u || s[i % 2 ? "moveTo" : "lineTo"](h >= 0 ? um(f, t) :
  10001. hm(f, t), c >= 0 ? um(p, e) : hm(p, e));
  10002. h = f - t, c = p - e, this._dashOffset = -fm(h * h + c * c)
  10003. },
  10004. _dashedBezierTo: function(t, e, n, i, r, o) {
  10005. var a, s, l, u, h, c = this._dashSum,
  10006. d = this._dashOffset,
  10007. f = this._lineDash,
  10008. p = this._ctx,
  10009. g = this._xi,
  10010. v = this._yi,
  10011. m = Mr,
  10012. y = 0,
  10013. x = this._dashIdx,
  10014. _ = f.length,
  10015. w = 0;
  10016. for (0 > d && (d = c + d), d %= c, a = 0; 1 > a; a += .1) s = m(g, t, n, r, a + .1) - m(g, t, n,
  10017. r, a), l = m(v, e, i, o, a + .1) - m(v, e, i, o, a), y += fm(s * s + l * l);
  10018. for (; _ > x && (w += f[x], !(w > d)); x++);
  10019. for (a = (w - d) / y; 1 >= a;) u = m(g, t, n, r, a), h = m(v, e, i, o, a), x % 2 ? p.moveTo(u,
  10020. h) : p.lineTo(u, h), a += f[x] / y, x = (x + 1) % _;
  10021. x % 2 !== 0 && p.lineTo(r, o), s = r - u, l = o - h, this._dashOffset = -fm(s * s + l * l)
  10022. },
  10023. _dashedQuadraticTo: function(t, e, n, i) {
  10024. var r = n,
  10025. o = i;
  10026. n = (n + 2 * t) / 3, i = (i + 2 * e) / 3, t = (this._xi + 2 * t) / 3, e = (this._yi + 2 * e) /
  10027. 3, this._dashedBezierTo(t, e, n, i, r, o)
  10028. },
  10029. toStatic: function() {
  10030. var t = this.data;
  10031. t instanceof Array && (t.length = this._len, gm && (this.data = new Float32Array(t)))
  10032. },
  10033. getBoundingRect: function() {
  10034. om[0] = om[1] = sm[0] = sm[1] = Number.MAX_VALUE, am[0] = am[1] = lm[0] = lm[1] = -Number
  10035. .MAX_VALUE;
  10036. for (var t = this.data, e = 0, n = 0, i = 0, r = 0, o = 0; o < t.length;) {
  10037. var a = t[o++];
  10038. switch (1 === o && (e = t[o], n = t[o + 1], i = e, r = n), a) {
  10039. case rm.M:
  10040. i = t[o++], r = t[o++], e = i, n = r, sm[0] = i, sm[1] = r, lm[0] = i, lm[1] = r;
  10041. break;
  10042. case rm.L:
  10043. Rr(e, n, t[o], t[o + 1], sm, lm), e = t[o++], n = t[o++];
  10044. break;
  10045. case rm.C:
  10046. Nr(e, n, t[o++], t[o++], t[o++], t[o++], t[o], t[o + 1], sm, lm), e = t[o++], n = t[
  10047. o++];
  10048. break;
  10049. case rm.Q:
  10050. Fr(e, n, t[o++], t[o++], t[o], t[o + 1], sm, lm), e = t[o++], n = t[o++];
  10051. break;
  10052. case rm.A:
  10053. var s = t[o++],
  10054. l = t[o++],
  10055. u = t[o++],
  10056. h = t[o++],
  10057. c = t[o++],
  10058. d = t[o++] + c;
  10059. o += 1;
  10060. var f = 1 - t[o++];
  10061. 1 === o && (i = cm(c) * u + s, r = dm(c) * h + l), Vr(s, l, u, h, c, d, f, sm, lm),
  10062. e = cm(d) * u + s, n = dm(d) * h + l;
  10063. break;
  10064. case rm.R:
  10065. i = e = t[o++], r = n = t[o++];
  10066. var p = t[o++],
  10067. g = t[o++];
  10068. Rr(i, r, i + p, r + g, sm, lm);
  10069. break;
  10070. case rm.Z:
  10071. e = i, n = r
  10072. }
  10073. ae(om, om, sm), se(am, am, lm)
  10074. }
  10075. return 0 === o && (om[0] = om[1] = am[0] = am[1] = 0), new Tn(om[0], om[1], am[0] - om[0], am[
  10076. 1] - om[1])
  10077. },
  10078. rebuildPath: function(t) {
  10079. for (var e, n, i, r, o, a, s = this.data, l = this._ux, u = this._uy, h = this._len, c = 0; h >
  10080. c;) {
  10081. var d = s[c++];
  10082. switch (1 === c && (i = s[c], r = s[c + 1], e = i, n = r), d) {
  10083. case rm.M:
  10084. e = i = s[c++], n = r = s[c++], t.moveTo(i, r);
  10085. break;
  10086. case rm.L:
  10087. o = s[c++], a = s[c++], (pm(o - i) > l || pm(a - r) > u || c === h - 1) && (t
  10088. .lineTo(o, a), i = o, r = a);
  10089. break;
  10090. case rm.C:
  10091. t.bezierCurveTo(s[c++], s[c++], s[c++], s[c++], s[c++], s[c++]), i = s[c - 2], r =
  10092. s[c - 1];
  10093. break;
  10094. case rm.Q:
  10095. t.quadraticCurveTo(s[c++], s[c++], s[c++], s[c++]), i = s[c - 2], r = s[c - 1];
  10096. break;
  10097. case rm.A:
  10098. var f = s[c++],
  10099. p = s[c++],
  10100. g = s[c++],
  10101. v = s[c++],
  10102. m = s[c++],
  10103. y = s[c++],
  10104. x = s[c++],
  10105. _ = s[c++],
  10106. w = g > v ? g : v,
  10107. b = g > v ? 1 : g / v,
  10108. S = g > v ? v / g : 1,
  10109. M = Math.abs(g - v) > .001,
  10110. I = m + y;
  10111. M ? (t.translate(f, p), t.rotate(x), t.scale(b, S), t.arc(0, 0, w, m, I, 1 - _), t
  10112. .scale(1 / b, 1 / S), t.rotate(-x), t.translate(-f, -p)) : t.arc(f, p, w, m,
  10113. I, 1 - _), 1 === c && (e = cm(m) * g + f, n = dm(m) * v + p), i = cm(I) *
  10114. g + f, r = dm(I) * v + p;
  10115. break;
  10116. case rm.R:
  10117. e = i = s[c], n = r = s[c + 1], t.rect(s[c++], s[c++], s[c++], s[c++]);
  10118. break;
  10119. case rm.Z:
  10120. t.closePath(), i = e, r = n
  10121. }
  10122. }
  10123. }
  10124. }, vm.CMD = rm;
  10125. var mm = 2 * Math.PI,
  10126. ym = 2 * Math.PI,
  10127. xm = vm.CMD,
  10128. _m = 2 * Math.PI,
  10129. wm = 1e-4,
  10130. bm = [-1, -1, -1],
  10131. Sm = [-1, -1],
  10132. Mm = Fg.prototype.getCanvasPattern,
  10133. Im = Math.abs,
  10134. Cm = new vm(!0);
  10135. eo.prototype = {
  10136. constructor: eo,
  10137. type: "path",
  10138. __dirtyPath: !0,
  10139. strokeContainThreshold: 5,
  10140. segmentIgnoreThreshold: 0,
  10141. subPixelOptimize: !1,
  10142. brush: function(t, e) {
  10143. var n = this.style,
  10144. i = this.path || Cm,
  10145. r = n.hasStroke(),
  10146. o = n.hasFill(),
  10147. a = n.fill,
  10148. s = n.stroke,
  10149. l = o && !!a.colorStops,
  10150. u = r && !!s.colorStops,
  10151. h = o && !!a.image,
  10152. c = r && !!s.image;
  10153. if (n.bind(t, this, e), this.setTransform(t), this.__dirty) {
  10154. var d;
  10155. l && (d = d || this.getBoundingRect(), this._fillGradient = n.getGradient(t, a, d)), u && (
  10156. d = d || this.getBoundingRect(), this._strokeGradient = n.getGradient(t, s, d))
  10157. }
  10158. l ? t.fillStyle = this._fillGradient : h && (t.fillStyle = Mm.call(a, t)), u ? t.strokeStyle =
  10159. this._strokeGradient : c && (t.strokeStyle = Mm.call(s, t));
  10160. var f = n.lineDash,
  10161. p = n.lineDashOffset,
  10162. g = !!t.setLineDash,
  10163. v = this.getGlobalScale();
  10164. if (i.setScale(v[0], v[1], this.segmentIgnoreThreshold), this.__dirtyPath || f && !g && r ? (i
  10165. .beginPath(t), f && !g && (i.setLineDash(f), i.setLineDashOffset(p)), this.buildPath(i,
  10166. this.shape, !1), this.path && (this.__dirtyPath = !1)) : (t.beginPath(), this.path
  10167. .rebuildPath(t)), o)
  10168. if (null != n.fillOpacity) {
  10169. var m = t.globalAlpha;
  10170. t.globalAlpha = n.fillOpacity * n.opacity, i.fill(t), t.globalAlpha = m
  10171. } else i.fill(t);
  10172. if (f && g && (t.setLineDash(f), t.lineDashOffset = p), r)
  10173. if (null != n.strokeOpacity) {
  10174. var m = t.globalAlpha;
  10175. t.globalAlpha = n.strokeOpacity * n.opacity, i.stroke(t), t.globalAlpha = m
  10176. } else i.stroke(t);
  10177. f && g && t.setLineDash([]), null != n.text && (this.restoreTransform(t), this.drawRectText(t,
  10178. this.getBoundingRect()))
  10179. },
  10180. buildPath: function() {},
  10181. createPathProxy: function() {
  10182. this.path = new vm
  10183. },
  10184. getBoundingRect: function() {
  10185. var t = this._rect,
  10186. e = this.style,
  10187. n = !t;
  10188. if (n) {
  10189. var i = this.path;
  10190. i || (i = this.path = new vm), this.__dirtyPath && (i.beginPath(), this.buildPath(i, this
  10191. .shape, !1)), t = i.getBoundingRect()
  10192. }
  10193. if (this._rect = t, e.hasStroke()) {
  10194. var r = this._rectWithStroke || (this._rectWithStroke = t.clone());
  10195. if (this.__dirty || n) {
  10196. r.copy(t);
  10197. var o = e.lineWidth,
  10198. a = e.strokeNoScale ? this.getLineScale() : 1;
  10199. e.hasFill() || (o = Math.max(o, this.strokeContainThreshold || 4)), a > 1e-10 && (r
  10200. .width += o / a, r.height += o / a, r.x -= o / a / 2, r.y -= o / a / 2)
  10201. }
  10202. return r
  10203. }
  10204. return t
  10205. },
  10206. contain: function(t, e) {
  10207. var n = this.transformCoordToLocal(t, e),
  10208. i = this.getBoundingRect(),
  10209. r = this.style;
  10210. if (t = n[0], e = n[1], i.contain(t, e)) {
  10211. var o = this.path.data;
  10212. if (r.hasStroke()) {
  10213. var a = r.lineWidth,
  10214. s = r.strokeNoScale ? this.getLineScale() : 1;
  10215. if (s > 1e-10 && (r.hasFill() || (a = Math.max(a, this.strokeContainThreshold)), to(o,
  10216. a / s, t, e))) return !0
  10217. }
  10218. if (r.hasFill()) return Jr(o, t, e)
  10219. }
  10220. return !1
  10221. },
  10222. dirty: function(t) {
  10223. null == t && (t = !0), t && (this.__dirtyPath = t, this._rect = null), this.__dirty = this
  10224. .__dirtyText = !0, this.__zr && this.__zr.refresh(), this.__clipTarget && this.__clipTarget
  10225. .dirty()
  10226. },
  10227. animateShape: function(t) {
  10228. return this.animate("shape", t)
  10229. },
  10230. attrKV: function(t, e) {
  10231. "shape" === t ? (this.setShape(e), this.__dirtyPath = !0, this._rect = null) : Ti.prototype
  10232. .attrKV.call(this, t, e)
  10233. },
  10234. setShape: function(t, e) {
  10235. var n = this.shape;
  10236. if (n) {
  10237. if (S(t))
  10238. for (var i in t) t.hasOwnProperty(i) && (n[i] = t[i]);
  10239. else n[t] = e;
  10240. this.dirty(!0)
  10241. }
  10242. return this
  10243. },
  10244. getLineScale: function() {
  10245. var t = this.transform;
  10246. return t && Im(t[0] - 1) > 1e-10 && Im(t[3] - 1) > 1e-10 ? Math.sqrt(Im(t[0] * t[3] - t[2] * t[
  10247. 1])) : 1
  10248. }
  10249. }, eo.extend = function(t) {
  10250. var e = function(e) {
  10251. eo.call(this, e), t.style && this.style.extendFrom(t.style, !1);
  10252. var n = t.shape;
  10253. if (n) {
  10254. this.shape = this.shape || {};
  10255. var i = this.shape;
  10256. for (var r in n) !i.hasOwnProperty(r) && n.hasOwnProperty(r) && (i[r] = n[r])
  10257. }
  10258. t.init && t.init.call(this, e)
  10259. };
  10260. h(e, eo);
  10261. for (var n in t) "style" !== n && "shape" !== n && (e.prototype[n] = t[n]);
  10262. return e
  10263. }, h(eo, Ti);
  10264. var Tm = vm.CMD,
  10265. Am = [
  10266. [],
  10267. [],
  10268. []
  10269. ],
  10270. Dm = Math.sqrt,
  10271. km = Math.atan2,
  10272. Pm = function(t, e) {
  10273. var n, i, r, o, a, s, l = t.data,
  10274. u = Tm.M,
  10275. h = Tm.C,
  10276. c = Tm.L,
  10277. d = Tm.R,
  10278. f = Tm.A,
  10279. p = Tm.Q;
  10280. for (r = 0, o = 0; r < l.length;) {
  10281. switch (n = l[r++], o = r, i = 0, n) {
  10282. case u:
  10283. i = 1;
  10284. break;
  10285. case c:
  10286. i = 1;
  10287. break;
  10288. case h:
  10289. i = 3;
  10290. break;
  10291. case p:
  10292. i = 2;
  10293. break;
  10294. case f:
  10295. var g = e[4],
  10296. v = e[5],
  10297. m = Dm(e[0] * e[0] + e[1] * e[1]),
  10298. y = Dm(e[2] * e[2] + e[3] * e[3]),
  10299. x = km(-e[1] / y, e[0] / m);
  10300. l[r] *= m, l[r++] += g, l[r] *= y, l[r++] += v, l[r++] *= m, l[r++] *= y, l[r++] += x, l[
  10301. r++] += x, r += 2, o = r;
  10302. break;
  10303. case d:
  10304. s[0] = l[r++], s[1] = l[r++], oe(s, s, e), l[o++] = s[0], l[o++] = s[1], s[0] += l[r++], s[
  10305. 1] += l[r++], oe(s, s, e), l[o++] = s[0], l[o++] = s[1]
  10306. }
  10307. for (a = 0; i > a; a++) {
  10308. var s = Am[a];
  10309. s[0] = l[r++], s[1] = l[r++], oe(s, s, e), l[o++] = s[0], l[o++] = s[1]
  10310. }
  10311. }
  10312. },
  10313. Om = Math.sqrt,
  10314. Lm = Math.sin,
  10315. zm = Math.cos,
  10316. Em = Math.PI,
  10317. Bm = function(t) {
  10318. return Math.sqrt(t[0] * t[0] + t[1] * t[1])
  10319. },
  10320. Rm = function(t, e) {
  10321. return (t[0] * e[0] + t[1] * e[1]) / (Bm(t) * Bm(e))
  10322. },
  10323. Nm = function(t, e) {
  10324. return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos(Rm(t, e))
  10325. },
  10326. Fm = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,
  10327. Vm = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g,
  10328. Wm = function(t) {
  10329. Ti.call(this, t)
  10330. };
  10331. Wm.prototype = {
  10332. constructor: Wm,
  10333. type: "text",
  10334. brush: function(t, e) {
  10335. var n = this.style;
  10336. this.__dirty && ui(n, !0), n.fill = n.stroke = n.shadowBlur = n.shadowColor = n.shadowOffsetX =
  10337. n.shadowOffsetY = null;
  10338. var i = n.text;
  10339. return null != i && (i += ""), Ci(i, n) ? (this.setTransform(t), ci(this, t, i, n, null, e),
  10340. void this.restoreTransform(t)) : void(t.__attrCachedBy = Og.NONE)
  10341. },
  10342. getBoundingRect: function() {
  10343. var t = this.style;
  10344. if (this.__dirty && ui(t, !0), !this._rect) {
  10345. var e = t.text;
  10346. null != e ? e += "" : e = "";
  10347. var n = Yn(t.text + "", t.font, t.textAlign, t.textVerticalAlign, t.textPadding, t
  10348. .textLineHeight, t.rich);
  10349. if (n.x += t.x || 0, n.y += t.y || 0, bi(t.textStroke, t.textStrokeWidth)) {
  10350. var i = t.textStrokeWidth;
  10351. n.x -= i / 2, n.y -= i / 2, n.width += i, n.height += i
  10352. }
  10353. this._rect = n
  10354. }
  10355. return this._rect
  10356. }
  10357. }, h(Wm, Ti);
  10358. var Hm = eo.extend({
  10359. type: "circle",
  10360. shape: {
  10361. cx: 0,
  10362. cy: 0,
  10363. r: 0
  10364. },
  10365. buildPath: function(t, e, n) {
  10366. n && t.moveTo(e.cx + e.r, e.cy), t.arc(e.cx, e.cy, e.r, 0, 2 * Math.PI, !0)
  10367. }
  10368. }),
  10369. Gm = [
  10370. ["shadowBlur", 0],
  10371. ["shadowColor", "#000"],
  10372. ["shadowOffsetX", 0],
  10373. ["shadowOffsetY", 0]
  10374. ],
  10375. Zm = function(t) {
  10376. return dp.browser.ie && dp.browser.version >= 11 ? function() {
  10377. var e, n = this.__clipPaths,
  10378. i = this.style;
  10379. if (n)
  10380. for (var r = 0; r < n.length; r++) {
  10381. var o = n[r],
  10382. a = o && o.shape,
  10383. s = o && o.type;
  10384. if (a && ("sector" === s && a.startAngle === a.endAngle || "rect" === s && (!a.width ||
  10385. !a.height))) {
  10386. for (var l = 0; l < Gm.length; l++) Gm[l][2] = i[Gm[l][0]], i[Gm[l][0]] = Gm[l][1];
  10387. e = !0;
  10388. break
  10389. }
  10390. }
  10391. if (t.apply(this, arguments), e)
  10392. for (var l = 0; l < Gm.length; l++) i[Gm[l][0]] = Gm[l][2]
  10393. } : t
  10394. },
  10395. Xm = eo.extend({
  10396. type: "sector",
  10397. shape: {
  10398. cx: 0,
  10399. cy: 0,
  10400. r0: 0,
  10401. r: 0,
  10402. startAngle: 0,
  10403. endAngle: 2 * Math.PI,
  10404. clockwise: !0
  10405. },
  10406. brush: Zm(eo.prototype.brush),
  10407. buildPath: function(t, e) {
  10408. var n = e.cx,
  10409. i = e.cy,
  10410. r = Math.max(e.r0 || 0, 0),
  10411. o = Math.max(e.r, 0),
  10412. a = e.startAngle,
  10413. s = e.endAngle,
  10414. l = e.clockwise,
  10415. u = Math.cos(a),
  10416. h = Math.sin(a);
  10417. t.moveTo(u * r + n, h * r + i), t.lineTo(u * o + n, h * o + i), t.arc(n, i, o, a, s, !l), t
  10418. .lineTo(Math.cos(s) * r + n, Math.sin(s) * r + i), 0 !== r && t.arc(n, i, r, s, a, l), t
  10419. .closePath()
  10420. }
  10421. }),
  10422. Ym = eo.extend({
  10423. type: "ring",
  10424. shape: {
  10425. cx: 0,
  10426. cy: 0,
  10427. r: 0,
  10428. r0: 0
  10429. },
  10430. buildPath: function(t, e) {
  10431. var n = e.cx,
  10432. i = e.cy,
  10433. r = 2 * Math.PI;
  10434. t.moveTo(n + e.r, i), t.arc(n, i, e.r, 0, r, !1), t.moveTo(n + e.r0, i), t.arc(n, i, e.r0,
  10435. 0, r, !0)
  10436. }
  10437. }),
  10438. Um = function(t, e) {
  10439. for (var n = t.length, i = [], r = 0, o = 1; n > o; o++) r += ee(t[o - 1], t[o]);
  10440. var a = r / 2;
  10441. a = n > a ? n : a;
  10442. for (var o = 0; a > o; o++) {
  10443. var s, l, u, h = o / (a - 1) * (e ? n : n - 1),
  10444. c = Math.floor(h),
  10445. d = h - c,
  10446. f = t[c % n];
  10447. e ? (s = t[(c - 1 + n) % n], l = t[(c + 1) % n], u = t[(c + 2) % n]) : (s = t[0 === c ? c : c - 1],
  10448. l = t[c > n - 2 ? n - 1 : c + 1], u = t[c > n - 3 ? n - 1 : c + 2]);
  10449. var p = d * d,
  10450. g = d * p;
  10451. i.push([lo(s[0], f[0], l[0], u[0], d, p, g), lo(s[1], f[1], l[1], u[1], d, p, g)])
  10452. }
  10453. return i
  10454. },
  10455. jm = function(t, e, n, i) {
  10456. var r, o, a, s, l = [],
  10457. u = [],
  10458. h = [],
  10459. c = [];
  10460. if (i) {
  10461. a = [1 / 0, 1 / 0], s = [-1 / 0, -1 / 0];
  10462. for (var d = 0, f = t.length; f > d; d++) ae(a, a, t[d]), se(s, s, t[d]);
  10463. ae(a, a, i[0]), se(s, s, i[1])
  10464. }
  10465. for (var d = 0, f = t.length; f > d; d++) {
  10466. var p = t[d];
  10467. if (n) r = t[d ? d - 1 : f - 1], o = t[(d + 1) % f];
  10468. else {
  10469. if (0 === d || d === f - 1) {
  10470. l.push(G(t[d]));
  10471. continue
  10472. }
  10473. r = t[d - 1], o = t[d + 1]
  10474. }
  10475. U(u, o, r), J(u, u, e);
  10476. var g = ee(p, r),
  10477. v = ee(p, o),
  10478. m = g + v;
  10479. 0 !== m && (g /= m, v /= m), J(h, u, -g), J(c, u, v);
  10480. var y = X([], p, h),
  10481. x = X([], p, c);
  10482. i && (se(y, y, a), ae(y, y, s), se(x, x, a), ae(x, x, s)), l.push(y), l.push(x)
  10483. }
  10484. return n && l.push(l.shift()), l
  10485. },
  10486. qm = eo.extend({
  10487. type: "polygon",
  10488. shape: {
  10489. points: null,
  10490. smooth: !1,
  10491. smoothConstraint: null
  10492. },
  10493. buildPath: function(t, e) {
  10494. uo(t, e, !0)
  10495. }
  10496. }),
  10497. Km = eo.extend({
  10498. type: "polyline",
  10499. shape: {
  10500. points: null,
  10501. smooth: !1,
  10502. smoothConstraint: null
  10503. },
  10504. style: {
  10505. stroke: "#000",
  10506. fill: null
  10507. },
  10508. buildPath: function(t, e) {
  10509. uo(t, e, !1)
  10510. }
  10511. }),
  10512. $m = Math.round,
  10513. Qm = {},
  10514. Jm = eo.extend({
  10515. type: "rect",
  10516. shape: {
  10517. r: 0,
  10518. x: 0,
  10519. y: 0,
  10520. width: 0,
  10521. height: 0
  10522. },
  10523. buildPath: function(t, e) {
  10524. var n, i, r, o;
  10525. this.subPixelOptimize ? (co(Qm, e, this.style), n = Qm.x, i = Qm.y, r = Qm.width, o = Qm
  10526. .height, Qm.r = e.r, e = Qm) : (n = e.x, i = e.y, r = e.width, o = e.height), e.r ?
  10527. li(t, e) : t.rect(n, i, r, o), t.closePath()
  10528. }
  10529. }),
  10530. ty = {},
  10531. ey = eo.extend({
  10532. type: "line",
  10533. shape: {
  10534. x1: 0,
  10535. y1: 0,
  10536. x2: 0,
  10537. y2: 0,
  10538. percent: 1
  10539. },
  10540. style: {
  10541. stroke: "#000",
  10542. fill: null
  10543. },
  10544. buildPath: function(t, e) {
  10545. var n, i, r, o;
  10546. this.subPixelOptimize ? (ho(ty, e, this.style), n = ty.x1, i = ty.y1, r = ty.x2, o = ty
  10547. .y2) : (n = e.x1, i = e.y1, r = e.x2, o = e.y2);
  10548. var a = e.percent;
  10549. 0 !== a && (t.moveTo(n, i), 1 > a && (r = n * (1 - a) + r * a, o = i * (1 - a) + o * a), t
  10550. .lineTo(r, o))
  10551. },
  10552. pointAt: function(t) {
  10553. var e = this.shape;
  10554. return [e.x1 * (1 - t) + e.x2 * t, e.y1 * (1 - t) + e.y2 * t]
  10555. }
  10556. }),
  10557. ny = [],
  10558. iy = eo.extend({
  10559. type: "bezier-curve",
  10560. shape: {
  10561. x1: 0,
  10562. y1: 0,
  10563. x2: 0,
  10564. y2: 0,
  10565. cpx1: 0,
  10566. cpy1: 0,
  10567. percent: 1
  10568. },
  10569. style: {
  10570. stroke: "#000",
  10571. fill: null
  10572. },
  10573. buildPath: function(t, e) {
  10574. var n = e.x1,
  10575. i = e.y1,
  10576. r = e.x2,
  10577. o = e.y2,
  10578. a = e.cpx1,
  10579. s = e.cpy1,
  10580. l = e.cpx2,
  10581. u = e.cpy2,
  10582. h = e.percent;
  10583. 0 !== h && (t.moveTo(n, i), null == l || null == u ? (1 > h && (zr(n, a, r, h, ny), a = ny[
  10584. 1], r = ny[2], zr(i, s, o, h, ny), s = ny[1], o = ny[2]), t
  10585. .quadraticCurveTo(a, s, r, o)) : (1 > h && (Ar(n, a, l, r, h, ny), a = ny[1],
  10586. l = ny[2], r = ny[3], Ar(i, s, u, o, h, ny), s = ny[1], u = ny[2], o = ny[3]
  10587. ), t.bezierCurveTo(a, s, l, u, r, o)))
  10588. },
  10589. pointAt: function(t) {
  10590. return po(this.shape, t, !1)
  10591. },
  10592. tangentAt: function(t) {
  10593. var e = po(this.shape, t, !0);
  10594. return te(e, e)
  10595. }
  10596. }),
  10597. ry = eo.extend({
  10598. type: "arc",
  10599. shape: {
  10600. cx: 0,
  10601. cy: 0,
  10602. r: 0,
  10603. startAngle: 0,
  10604. endAngle: 2 * Math.PI,
  10605. clockwise: !0
  10606. },
  10607. style: {
  10608. stroke: "#000",
  10609. fill: null
  10610. },
  10611. buildPath: function(t, e) {
  10612. var n = e.cx,
  10613. i = e.cy,
  10614. r = Math.max(e.r, 0),
  10615. o = e.startAngle,
  10616. a = e.endAngle,
  10617. s = e.clockwise,
  10618. l = Math.cos(o),
  10619. u = Math.sin(o);
  10620. t.moveTo(l * r + n, u * r + i), t.arc(n, i, r, o, a, !s)
  10621. }
  10622. }),
  10623. oy = eo.extend({
  10624. type: "compound",
  10625. shape: {
  10626. paths: null
  10627. },
  10628. _updatePathDirty: function() {
  10629. for (var t = this.__dirtyPath, e = this.shape.paths, n = 0; n < e.length; n++) t = t || e[n]
  10630. .__dirtyPath;
  10631. this.__dirtyPath = t, this.__dirty = this.__dirty || t
  10632. },
  10633. beforeBrush: function() {
  10634. this._updatePathDirty();
  10635. for (var t = this.shape.paths || [], e = this.getGlobalScale(), n = 0; n < t.length; n++) t[
  10636. n].path || t[n].createPathProxy(), t[n].path.setScale(e[0], e[1], t[n]
  10637. .segmentIgnoreThreshold)
  10638. },
  10639. buildPath: function(t, e) {
  10640. for (var n = e.paths || [], i = 0; i < n.length; i++) n[i].buildPath(t, n[i].shape, !0)
  10641. },
  10642. afterBrush: function() {
  10643. for (var t = this.shape.paths || [], e = 0; e < t.length; e++) t[e].__dirtyPath = !1
  10644. },
  10645. getBoundingRect: function() {
  10646. return this._updatePathDirty(), eo.prototype.getBoundingRect.call(this)
  10647. }
  10648. }),
  10649. ay = function(t) {
  10650. this.colorStops = t || []
  10651. };
  10652. ay.prototype = {
  10653. constructor: ay,
  10654. addColorStop: function(t, e) {
  10655. this.colorStops.push({
  10656. offset: t,
  10657. color: e
  10658. })
  10659. }
  10660. };
  10661. var sy = function(t, e, n, i, r, o) {
  10662. this.x = null == t ? 0 : t, this.y = null == e ? 0 : e, this.x2 = null == n ? 1 : n, this.y2 = null ==
  10663. i ? 0 : i, this.type = "linear", this.global = o || !1, ay.call(this, r)
  10664. };
  10665. sy.prototype = {
  10666. constructor: sy
  10667. }, h(sy, ay);
  10668. var ly = function(t, e, n, i, r) {
  10669. this.x = null == t ? .5 : t, this.y = null == e ? .5 : e, this.r = null == n ? .5 : n, this.type =
  10670. "radial", this.global = r || !1, ay.call(this, i)
  10671. };
  10672. ly.prototype = {
  10673. constructor: ly
  10674. }, h(ly, ay), go.prototype.incremental = !0, go.prototype.clearDisplaybles = function() {
  10675. this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.dirty(), this
  10676. .notClear = !1
  10677. }, go.prototype.addDisplayable = function(t, e) {
  10678. e ? this._temporaryDisplayables.push(t) : this._displayables.push(t), this.dirty()
  10679. }, go.prototype.addDisplayables = function(t, e) {
  10680. e = e || !1;
  10681. for (var n = 0; n < t.length; n++) this.addDisplayable(t[n], e)
  10682. }, go.prototype.eachPendingDisplayable = function(t) {
  10683. for (var e = this._cursor; e < this._displayables.length; e++) t && t(this._displayables[e]);
  10684. for (var e = 0; e < this._temporaryDisplayables.length; e++) t && t(this._temporaryDisplayables[e])
  10685. }, go.prototype.update = function() {
  10686. this.updateTransform();
  10687. for (var t = this._cursor; t < this._displayables.length; t++) {
  10688. var e = this._displayables[t];
  10689. e.parent = this, e.update(), e.parent = null
  10690. }
  10691. for (var t = 0; t < this._temporaryDisplayables.length; t++) {
  10692. var e = this._temporaryDisplayables[t];
  10693. e.parent = this, e.update(), e.parent = null
  10694. }
  10695. }, go.prototype.brush = function(t) {
  10696. for (var e = this._cursor; e < this._displayables.length; e++) {
  10697. var n = this._displayables[e];
  10698. n.beforeBrush && n.beforeBrush(t), n.brush(t, e === this._cursor ? null : this._displayables[e -
  10699. 1]), n.afterBrush && n.afterBrush(t)
  10700. }
  10701. this._cursor = e;
  10702. for (var e = 0; e < this._temporaryDisplayables.length; e++) {
  10703. var n = this._temporaryDisplayables[e];
  10704. n.beforeBrush && n.beforeBrush(t), n.brush(t, 0 === e ? null : this._temporaryDisplayables[e - 1]),
  10705. n.afterBrush && n.afterBrush(t)
  10706. }
  10707. this._temporaryDisplayables = [], this.notClear = !0
  10708. };
  10709. var uy = [];
  10710. go.prototype.getBoundingRect = function() {
  10711. if (!this._rect) {
  10712. for (var t = new Tn(1 / 0, 1 / 0, -1 / 0, -1 / 0), e = 0; e < this._displayables.length; e++) {
  10713. var n = this._displayables[e],
  10714. i = n.getBoundingRect().clone();
  10715. n.needLocalTransform() && i.applyTransform(n.getLocalTransform(uy)), t.union(i)
  10716. }
  10717. this._rect = t
  10718. }
  10719. return this._rect
  10720. }, go.prototype.contain = function(t, e) {
  10721. var n = this.transformCoordToLocal(t, e),
  10722. i = this.getBoundingRect();
  10723. if (i.contain(n[0], n[1]))
  10724. for (var r = 0; r < this._displayables.length; r++) {
  10725. var o = this._displayables[r];
  10726. if (o.contain(t, e)) return !0
  10727. }
  10728. return !1
  10729. }, h(go, Ti);
  10730. var hy = Math.max,
  10731. cy = Math.min,
  10732. dy = {},
  10733. fy = 1,
  10734. py = {
  10735. color: "textFill",
  10736. textBorderColor: "textStroke",
  10737. textBorderWidth: "textStrokeWidth"
  10738. },
  10739. gy = "emphasis",
  10740. vy = "normal",
  10741. my = 1,
  10742. yy = {},
  10743. xy = {},
  10744. _y = so,
  10745. wy = fo,
  10746. by = N(),
  10747. Sy = 0;
  10748. yo("circle", Hm), yo("sector", Xm), yo("ring", Ym), yo("polygon", qm), yo("polyline", Km), yo("rect", Jm), yo(
  10749. "line", ey), yo("bezierCurve", iy), yo("arc", ry);
  10750. var My = (Object.freeze || Object)({
  10751. Z2_EMPHASIS_LIFT: fy,
  10752. CACHED_LABEL_STYLE_PROPERTIES: py,
  10753. extendShape: vo,
  10754. extendPath: mo,
  10755. registerShape: yo,
  10756. getShapeClass: xo,
  10757. makePath: _o,
  10758. makeImage: wo,
  10759. mergePath: _y,
  10760. resizePath: So,
  10761. subPixelOptimizeLine: Mo,
  10762. subPixelOptimizeRect: Io,
  10763. subPixelOptimize: wy,
  10764. setElementHoverStyle: Lo,
  10765. setHoverStyle: Fo,
  10766. setAsHighDownDispatcher: Vo,
  10767. isHighDownDispatcher: Wo,
  10768. getHighlightDigit: Ho,
  10769. setLabelStyle: Go,
  10770. modifyLabelStyle: Zo,
  10771. setTextStyle: Xo,
  10772. setText: Yo,
  10773. getFont: Jo,
  10774. updateProps: ea,
  10775. initProps: na,
  10776. getTransform: ia,
  10777. applyTransform: ra,
  10778. transformDirection: oa,
  10779. groupTransition: aa,
  10780. clipPointsByRect: sa,
  10781. clipRectByRect: la,
  10782. createIcon: ua,
  10783. linePolygonIntersect: ha,
  10784. lineLineIntersect: ca,
  10785. Group: Cg,
  10786. Image: Ai,
  10787. Text: Wm,
  10788. Circle: Hm,
  10789. Sector: Xm,
  10790. Ring: Ym,
  10791. Polygon: qm,
  10792. Polyline: Km,
  10793. Rect: Jm,
  10794. Line: ey,
  10795. BezierCurve: iy,
  10796. Arc: ry,
  10797. IncrementalDisplayable: go,
  10798. CompoundPath: oy,
  10799. LinearGradient: sy,
  10800. RadialGradient: ly,
  10801. BoundingRect: Tn
  10802. }),
  10803. Iy = ["textStyle", "color"],
  10804. Cy = {
  10805. getTextColor: function(t) {
  10806. var e = this.ecModel;
  10807. return this.getShallow("color") || (!t && e ? e.get(Iy) : null)
  10808. },
  10809. getFont: function() {
  10810. return Jo({
  10811. fontStyle: this.getShallow("fontStyle"),
  10812. fontWeight: this.getShallow("fontWeight"),
  10813. fontSize: this.getShallow("fontSize"),
  10814. fontFamily: this.getShallow("fontFamily")
  10815. }, this.ecModel)
  10816. },
  10817. getTextRect: function(t) {
  10818. return Yn(t, this.getFont(), this.getShallow("align"), this.getShallow("verticalAlign") || this
  10819. .getShallow("baseline"), this.getShallow("padding"), this.getShallow("lineHeight"), this
  10820. .getShallow("rich"), this.getShallow("truncateText"))
  10821. }
  10822. },
  10823. Ty = zv([
  10824. ["fill", "color"],
  10825. ["stroke", "borderColor"],
  10826. ["lineWidth", "borderWidth"],
  10827. ["opacity"],
  10828. ["shadowBlur"],
  10829. ["shadowOffsetX"],
  10830. ["shadowOffsetY"],
  10831. ["shadowColor"],
  10832. ["textPosition"],
  10833. ["textAlign"]
  10834. ]),
  10835. Ay = {
  10836. getItemStyle: function(t, e) {
  10837. var n = Ty(this, t, e),
  10838. i = this.getBorderLineDash();
  10839. return i && (n.lineDash = i), n
  10840. },
  10841. getBorderLineDash: function() {
  10842. var t = this.get("borderType");
  10843. return "solid" === t || null == t ? null : "dashed" === t ? [5, 5] : [1, 1]
  10844. }
  10845. },
  10846. Dy = c,
  10847. ky = ur();
  10848. pa.prototype = {
  10849. constructor: pa,
  10850. init: null,
  10851. mergeOption: function(t) {
  10852. r(this.option, t, !0)
  10853. },
  10854. get: function(t, e) {
  10855. return null == t ? this.option : ga(this.option, this.parsePath(t), !e && va(this, t))
  10856. },
  10857. getShallow: function(t, e) {
  10858. var n = this.option,
  10859. i = null == n ? n : n[t],
  10860. r = !e && va(this, t);
  10861. return null == i && r && (i = r.getShallow(t)), i
  10862. },
  10863. getModel: function(t, e) {
  10864. var n, i = null == t ? this.option : ga(this.option, t = this.parsePath(t));
  10865. return e = e || (n = va(this, t)) && n.getModel(t), new pa(i, e, this.ecModel)
  10866. },
  10867. isEmpty: function() {
  10868. return null == this.option
  10869. },
  10870. restoreData: function() {},
  10871. clone: function() {
  10872. var t = this.constructor;
  10873. return new t(i(this.option))
  10874. },
  10875. setReadOnly: function() {},
  10876. parsePath: function(t) {
  10877. return "string" == typeof t && (t = t.split(".")), t
  10878. },
  10879. customizeGetParent: function(t) {
  10880. ky(this).getParent = t
  10881. },
  10882. isAnimationEnabled: function() {
  10883. if (!dp.node) {
  10884. if (null != this.option.animation) return !!this.option.animation;
  10885. if (this.parentModel) return this.parentModel.isAnimationEnabled()
  10886. }
  10887. }
  10888. }, mr(pa), yr(pa), Dy(pa, Bv), Dy(pa, Nv), Dy(pa, Cy), Dy(pa, Ay);
  10889. var Py = 0,
  10890. Oy = 1e-4,
  10891. Ly = 9007199254740991,
  10892. zy =
  10893. /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/,
  10894. Ey = (Object.freeze || Object)({
  10895. linearMap: wa,
  10896. parsePercent: ba,
  10897. round: Sa,
  10898. asc: Ma,
  10899. getPrecision: Ia,
  10900. getPrecisionSafe: Ca,
  10901. getPixelPrecision: Ta,
  10902. getPercentWithPrecision: Aa,
  10903. MAX_SAFE_INTEGER: Ly,
  10904. remRadian: Da,
  10905. isRadianAroundZero: ka,
  10906. parseDate: Pa,
  10907. quantity: Oa,
  10908. quantityExponent: La,
  10909. nice: za,
  10910. quantile: Ea,
  10911. reformIntervals: Ba,
  10912. isNumeric: Ra
  10913. }),
  10914. By = O,
  10915. Ry = /([&<>"'])/g,
  10916. Ny = {
  10917. "&": "&amp;",
  10918. "<": "&lt;",
  10919. ">": "&gt;",
  10920. '"': "&quot;",
  10921. "'": "&#39;"
  10922. },
  10923. Fy = ["a", "b", "c", "d", "e", "f", "g"],
  10924. Vy = function(t, e) {
  10925. return "{" + t + (null == e ? "" : e) + "}"
  10926. },
  10927. Wy = Qn,
  10928. Hy = (Object.freeze || Object)({
  10929. addCommas: Na,
  10930. toCamelCase: Fa,
  10931. normalizeCssArray: By,
  10932. encodeHTML: Va,
  10933. formatTpl: Wa,
  10934. formatTplSimple: Ha,
  10935. getTooltipMarker: Ga,
  10936. formatTime: Xa,
  10937. capitalFirst: Ya,
  10938. truncateText: Wy,
  10939. getTextBoundingRect: Ua,
  10940. getTextRect: ja,
  10941. windowOpen: qa
  10942. }),
  10943. Gy = f,
  10944. Zy = ["left", "right", "top", "bottom", "width", "height"],
  10945. Xy = [
  10946. ["width", "left", "right"],
  10947. ["height", "top", "bottom"]
  10948. ],
  10949. Yy = Ka,
  10950. Uy = (x(Ka, "vertical"), x(Ka, "horizontal"), {
  10951. getBoxLayoutParams: function() {
  10952. return {
  10953. left: this.get("left"),
  10954. top: this.get("top"),
  10955. right: this.get("right"),
  10956. bottom: this.get("bottom"),
  10957. width: this.get("width"),
  10958. height: this.get("height")
  10959. }
  10960. }
  10961. }),
  10962. jy = ur(),
  10963. qy = pa.extend({
  10964. type: "component",
  10965. id: "",
  10966. name: "",
  10967. mainType: "",
  10968. subType: "",
  10969. componentIndex: 0,
  10970. defaultOption: null,
  10971. ecModel: null,
  10972. dependentModels: [],
  10973. uid: null,
  10974. layoutMode: null,
  10975. $constructor: function(t, e, n, i) {
  10976. pa.call(this, t, e, n, i), this.uid = ma("ec_cpt_model")
  10977. },
  10978. init: function(t, e, n) {
  10979. this.mergeDefaultAndTheme(t, n)
  10980. },
  10981. mergeDefaultAndTheme: function(t, e) {
  10982. var n = this.layoutMode,
  10983. i = n ? Ja(t) : {},
  10984. o = e.getTheme();
  10985. r(t, o.get(this.mainType)), r(t, this.getDefaultOption()), n && Qa(t, i, n)
  10986. },
  10987. mergeOption: function(t) {
  10988. r(this.option, t, !0);
  10989. var e = this.layoutMode;
  10990. e && Qa(this.option, t, e)
  10991. },
  10992. optionUpdated: function() {},
  10993. getDefaultOption: function() {
  10994. var t = jy(this);
  10995. if (!t.defaultOption) {
  10996. for (var e = [], n = this.constructor; n;) {
  10997. var i = n.prototype.defaultOption;
  10998. i && e.push(i), n = n.superClass
  10999. }
  11000. for (var o = {}, a = e.length - 1; a >= 0; a--) o = r(o, e[a], !0);
  11001. t.defaultOption = o
  11002. }
  11003. return t.defaultOption
  11004. },
  11005. getReferringComponents: function(t) {
  11006. return this.ecModel.queryComponents({
  11007. mainType: t,
  11008. index: this.get(t + "Index", !0),
  11009. id: this.get(t + "Id", !0)
  11010. })
  11011. }
  11012. });
  11013. wr(qy, {
  11014. registerWhenExtend: !0
  11015. }), ya(qy), xa(qy, es), c(qy, Uy);
  11016. var Ky = "";
  11017. "undefined" != typeof navigator && (Ky = navigator.platform || "");
  11018. var $y = {
  11019. color: ["#c23531", "#2f4554", "#61a0a8", "#d48265", "#91c7ae", "#749f83", "#ca8622", "#bda29a",
  11020. "#6e7074", "#546570", "#c4ccd3"
  11021. ],
  11022. gradientColor: ["#f6efa6", "#d88273", "#bf444c"],
  11023. textStyle: {
  11024. fontFamily: Ky.match(/^Win/) ? "Microsoft YaHei" : "sans-serif",
  11025. fontSize: 12,
  11026. fontStyle: "normal",
  11027. fontWeight: "normal"
  11028. },
  11029. blendMode: null,
  11030. animation: "auto",
  11031. animationDuration: 1e3,
  11032. animationDurationUpdate: 300,
  11033. animationEasing: "exponentialOut",
  11034. animationEasingUpdate: "cubicOut",
  11035. animationThreshold: 2e3,
  11036. progressiveThreshold: 3e3,
  11037. progressive: 400,
  11038. hoverLayerThreshold: 3e3,
  11039. useUTC: !1
  11040. },
  11041. Qy = ur(),
  11042. Jy = {
  11043. clearColorPalette: function() {
  11044. Qy(this).colorIdx = 0, Qy(this).colorNameMap = {}
  11045. },
  11046. getColorFromPalette: function(t, e, n) {
  11047. e = e || this;
  11048. var i = Qy(e),
  11049. r = i.colorIdx || 0,
  11050. o = i.colorNameMap = i.colorNameMap || {};
  11051. if (o.hasOwnProperty(t)) return o[t];
  11052. var a = tr(this.get("color", !0)),
  11053. s = this.get("colorLayer", !0),
  11054. l = null != n && s ? ns(s, n) : a;
  11055. if (l = l || a, l && l.length) {
  11056. var u = l[r];
  11057. return t && (o[t] = u), i.colorIdx = (r + 1) % l.length, u
  11058. }
  11059. }
  11060. },
  11061. tx = "original",
  11062. ex = "arrayRows",
  11063. nx = "objectRows",
  11064. ix = "keyedColumns",
  11065. rx = "unknown",
  11066. ox = "typedArray",
  11067. ax = "column",
  11068. sx = "row";
  11069. is.seriesDataToSource = function(t) {
  11070. return new is({
  11071. data: t,
  11072. sourceFormat: I(t) ? ox : tx,
  11073. fromDataset: !1
  11074. })
  11075. }, yr(is);
  11076. var lx = {
  11077. Must: 1,
  11078. Might: 2,
  11079. Not: 3
  11080. },
  11081. ux = ur(),
  11082. hx = "\x00_ec_inner",
  11083. cx = pa.extend({
  11084. init: function(t, e, n, i) {
  11085. n = n || {}, this.option = null, this._theme = new pa(n), this._optionManager = i
  11086. },
  11087. setOption: function(t, e) {
  11088. L(!(hx in t), "please use chart.getOption()"), this._optionManager.setOption(t, e), this
  11089. .resetOption(null)
  11090. },
  11091. resetOption: function(t) {
  11092. var e = !1,
  11093. n = this._optionManager;
  11094. if (!t || "recreate" === t) {
  11095. var i = n.mountOption("recreate" === t);
  11096. this.option && "recreate" !== t ? (this.restoreData(), this.mergeOption(i)) : ys.call(
  11097. this, i), e = !0
  11098. }
  11099. if (("timeline" === t || "media" === t) && this.restoreData(), !t || "recreate" === t ||
  11100. "timeline" === t) {
  11101. var r = n.getTimelineOption(this);
  11102. r && (this.mergeOption(r), e = !0)
  11103. }
  11104. if (!t || "recreate" === t || "media" === t) {
  11105. var o = n.getMediaOption(this, this._api);
  11106. o.length && f(o, function(t) {
  11107. this.mergeOption(t, e = !0)
  11108. }, this)
  11109. }
  11110. return e
  11111. },
  11112. mergeOption: function(t) {
  11113. function e(e, i) {
  11114. var r = tr(t[e]),
  11115. s = rr(o.get(e), r);
  11116. or(s), f(s, function(t) {
  11117. var n = t.option;
  11118. S(n) && (t.keyInfo.mainType = e, t.keyInfo.subType = _s(e, n, t.exist))
  11119. });
  11120. var l = xs(o, i);
  11121. n[e] = [], o.set(e, []), f(s, function(t, i) {
  11122. var r = t.exist,
  11123. s = t.option;
  11124. if (L(S(s) || r, "Empty component definition"), s) {
  11125. var u = qy.getClass(e, t.keyInfo.subType, !0);
  11126. if (r && r.constructor === u) r.name = t.keyInfo.name, r.mergeOption(s,
  11127. this), r.optionUpdated(s, !1);
  11128. else {
  11129. var h = a({
  11130. dependentModels: l,
  11131. componentIndex: i
  11132. }, t.keyInfo);
  11133. r = new u(s, this, this, h), a(r, h), r.init(s, this, this, h), r
  11134. .optionUpdated(null, !0)
  11135. }
  11136. } else r.mergeOption({}, this), r.optionUpdated({}, !1);
  11137. o.get(e)[i] = r, n[e][i] = r.option
  11138. }, this), "series" === e && ws(this, o.get("series"))
  11139. }
  11140. var n = this.option,
  11141. o = this._componentsMap,
  11142. s = [];
  11143. as(this), f(t, function(t, e) {
  11144. null != t && (qy.hasClass(e) ? e && s.push(e) : n[e] = null == n[e] ? i(t) : r(
  11145. n[e], t, !0))
  11146. }), qy.topologicalTravel(s, qy.getAllClassMainTypes(), e, this), this
  11147. ._seriesIndicesMap = N(this._seriesIndices = this._seriesIndices || [])
  11148. },
  11149. getOption: function() {
  11150. var t = i(this.option);
  11151. return f(t, function(e, n) {
  11152. if (qy.hasClass(n)) {
  11153. for (var e = tr(e), i = e.length - 1; i >= 0; i--) sr(e[i]) && e.splice(i,
  11154. 1);
  11155. t[n] = e
  11156. }
  11157. }), delete t[hx], t
  11158. },
  11159. getTheme: function() {
  11160. return this._theme
  11161. },
  11162. getComponent: function(t, e) {
  11163. var n = this._componentsMap.get(t);
  11164. return n ? n[e || 0] : void 0
  11165. },
  11166. queryComponents: function(t) {
  11167. var e = t.mainType;
  11168. if (!e) return [];
  11169. var n = t.index,
  11170. i = t.id,
  11171. r = t.name,
  11172. o = this._componentsMap.get(e);
  11173. if (!o || !o.length) return [];
  11174. var a;
  11175. if (null != n) _(n) || (n = [n]), a = v(p(n, function(t) {
  11176. return o[t]
  11177. }), function(t) {
  11178. return !!t
  11179. });
  11180. else if (null != i) {
  11181. var s = _(i);
  11182. a = v(o, function(t) {
  11183. return s && u(i, t.id) >= 0 || !s && t.id === i
  11184. })
  11185. } else if (null != r) {
  11186. var l = _(r);
  11187. a = v(o, function(t) {
  11188. return l && u(r, t.name) >= 0 || !l && t.name === r
  11189. })
  11190. } else a = o.slice();
  11191. return bs(a, t)
  11192. },
  11193. findComponents: function(t) {
  11194. function e(t) {
  11195. var e = r + "Index",
  11196. n = r + "Id",
  11197. i = r + "Name";
  11198. return !t || null == t[e] && null == t[n] && null == t[i] ? null : {
  11199. mainType: r,
  11200. index: t[e],
  11201. id: t[n],
  11202. name: t[i]
  11203. }
  11204. }
  11205. function n(e) {
  11206. return t.filter ? v(e, t.filter) : e
  11207. }
  11208. var i = t.query,
  11209. r = t.mainType,
  11210. o = e(i),
  11211. a = o ? this.queryComponents(o) : this._componentsMap.get(r);
  11212. return n(bs(a, t))
  11213. },
  11214. eachComponent: function(t, e, n) {
  11215. var i = this._componentsMap;
  11216. if ("function" == typeof t) n = e, e = t, i.each(function(t, i) {
  11217. f(t, function(t, r) {
  11218. e.call(n, i, t, r)
  11219. })
  11220. });
  11221. else if (b(t)) f(i.get(t), e, n);
  11222. else if (S(t)) {
  11223. var r = this.findComponents(t);
  11224. f(r, e, n)
  11225. }
  11226. },
  11227. getSeriesByName: function(t) {
  11228. var e = this._componentsMap.get("series");
  11229. return v(e, function(e) {
  11230. return e.name === t
  11231. })
  11232. },
  11233. getSeriesByIndex: function(t) {
  11234. return this._componentsMap.get("series")[t]
  11235. },
  11236. getSeriesByType: function(t) {
  11237. var e = this._componentsMap.get("series");
  11238. return v(e, function(e) {
  11239. return e.subType === t
  11240. })
  11241. },
  11242. getSeries: function() {
  11243. return this._componentsMap.get("series").slice()
  11244. },
  11245. getSeriesCount: function() {
  11246. return this._componentsMap.get("series").length
  11247. },
  11248. eachSeries: function(t, e) {
  11249. Ss(this), f(this._seriesIndices, function(n) {
  11250. var i = this._componentsMap.get("series")[n];
  11251. t.call(e, i, n)
  11252. }, this)
  11253. },
  11254. eachRawSeries: function(t, e) {
  11255. f(this._componentsMap.get("series"), t, e)
  11256. },
  11257. eachSeriesByType: function(t, e, n) {
  11258. Ss(this), f(this._seriesIndices, function(i) {
  11259. var r = this._componentsMap.get("series")[i];
  11260. r.subType === t && e.call(n, r, i)
  11261. }, this)
  11262. },
  11263. eachRawSeriesByType: function(t, e, n) {
  11264. return f(this.getSeriesByType(t), e, n)
  11265. },
  11266. isSeriesFiltered: function(t) {
  11267. return Ss(this), null == this._seriesIndicesMap.get(t.componentIndex)
  11268. },
  11269. getCurrentSeriesIndices: function() {
  11270. return (this._seriesIndices || []).slice()
  11271. },
  11272. filterSeries: function(t, e) {
  11273. Ss(this);
  11274. var n = v(this._componentsMap.get("series"), t, e);
  11275. ws(this, n)
  11276. },
  11277. restoreData: function(t) {
  11278. var e = this._componentsMap;
  11279. ws(this, e.get("series"));
  11280. var n = [];
  11281. e.each(function(t, e) {
  11282. n.push(e)
  11283. }), qy.topologicalTravel(n, qy.getAllClassMainTypes(), function(n) {
  11284. f(e.get(n), function(e) {
  11285. ("series" !== n || !vs(e, t)) && e.restoreData()
  11286. })
  11287. })
  11288. }
  11289. });
  11290. c(cx, Jy);
  11291. var dx = ["getDom", "getZr", "getWidth", "getHeight", "getDevicePixelRatio", "dispatchAction", "isDisposed",
  11292. "on", "off", "getDataURL", "getConnectedDataURL", "getModel", "getOption", "getViewOfComponentModel",
  11293. "getViewOfSeriesModel"
  11294. ],
  11295. fx = {};
  11296. Is.prototype = {
  11297. constructor: Is,
  11298. create: function(t, e) {
  11299. var n = [];
  11300. f(fx, function(i) {
  11301. var r = i.create(t, e);
  11302. n = n.concat(r || [])
  11303. }), this._coordinateSystems = n
  11304. },
  11305. update: function(t, e) {
  11306. f(this._coordinateSystems, function(n) {
  11307. n.update && n.update(t, e)
  11308. })
  11309. },
  11310. getCoordinateSystems: function() {
  11311. return this._coordinateSystems.slice()
  11312. }
  11313. }, Is.register = function(t, e) {
  11314. fx[t] = e
  11315. }, Is.get = function(t) {
  11316. return fx[t]
  11317. };
  11318. var px = f,
  11319. gx = i,
  11320. vx = p,
  11321. mx = r,
  11322. yx = /^(min|max)?(.+)$/;
  11323. Cs.prototype = {
  11324. constructor: Cs,
  11325. setOption: function(t, e) {
  11326. t && f(tr(t.series), function(t) {
  11327. t && t.data && I(t.data) && E(t.data)
  11328. }), t = gx(t);
  11329. var n = this._optionBackup,
  11330. i = Ts.call(this, t, e, !n);
  11331. this._newBaseOption = i.baseOption, n ? (Ps(n.baseOption, i.baseOption), i.timelineOptions
  11332. .length && (n.timelineOptions = i.timelineOptions), i.mediaList.length && (n.mediaList =
  11333. i.mediaList), i.mediaDefault && (n.mediaDefault = i.mediaDefault)) : this
  11334. ._optionBackup = i
  11335. },
  11336. mountOption: function(t) {
  11337. var e = this._optionBackup;
  11338. return this._timelineOptions = vx(e.timelineOptions, gx), this._mediaList = vx(e.mediaList, gx),
  11339. this._mediaDefault = gx(e.mediaDefault), this._currentMediaIndices = [], gx(t ? e
  11340. .baseOption : this._newBaseOption)
  11341. },
  11342. getTimelineOption: function(t) {
  11343. var e, n = this._timelineOptions;
  11344. if (n.length) {
  11345. var i = t.getComponent("timeline");
  11346. i && (e = gx(n[i.getCurrentIndex()], !0))
  11347. }
  11348. return e
  11349. },
  11350. getMediaOption: function() {
  11351. var t = this._api.getWidth(),
  11352. e = this._api.getHeight(),
  11353. n = this._mediaList,
  11354. i = this._mediaDefault,
  11355. r = [],
  11356. o = [];
  11357. if (!n.length && !i) return o;
  11358. for (var a = 0, s = n.length; s > a; a++) As(n[a].query, t, e) && r.push(a);
  11359. return !r.length && i && (r = [-1]), r.length && !ks(r, this._currentMediaIndices) && (o = vx(r,
  11360. function(t) {
  11361. return gx(-1 === t ? i.option : n[t].option)
  11362. })), this._currentMediaIndices = r, o
  11363. }
  11364. };
  11365. var xx = f,
  11366. _x = S,
  11367. bx = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"],
  11368. Sx = function(t, e) {
  11369. xx(Ns(t.series), function(t) {
  11370. _x(t) && Rs(t)
  11371. });
  11372. var n = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"];
  11373. e && n.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"), xx(n, function(e) {
  11374. xx(Ns(t[e]), function(t) {
  11375. t && (Es(t, "axisLabel"), Es(t.axisPointer, "label"))
  11376. })
  11377. }), xx(Ns(t.parallel), function(t) {
  11378. var e = t && t.parallelAxisDefault;
  11379. Es(e, "axisLabel"), Es(e && e.axisPointer, "label")
  11380. }), xx(Ns(t.calendar), function(t) {
  11381. Ls(t, "itemStyle"), Es(t, "dayLabel"), Es(t, "monthLabel"), Es(t, "yearLabel")
  11382. }), xx(Ns(t.radar), function(t) {
  11383. Es(t, "name")
  11384. }), xx(Ns(t.geo), function(t) {
  11385. _x(t) && (Bs(t), xx(Ns(t.regions), function(t) {
  11386. Bs(t)
  11387. }))
  11388. }), xx(Ns(t.timeline), function(t) {
  11389. Bs(t), Ls(t, "label"), Ls(t, "itemStyle"), Ls(t, "controlStyle", !0);
  11390. var e = t.data;
  11391. _(e) && f(e, function(t) {
  11392. S(t) && (Ls(t, "label"), Ls(t, "itemStyle"))
  11393. })
  11394. }), xx(Ns(t.toolbox), function(t) {
  11395. Ls(t, "iconStyle"), xx(t.feature, function(t) {
  11396. Ls(t, "iconStyle")
  11397. })
  11398. }), Es(Fs(t.axisPointer), "label"), Es(Fs(t.tooltip).axisPointer, "label")
  11399. },
  11400. Mx = [
  11401. ["x", "left"],
  11402. ["y", "top"],
  11403. ["x2", "right"],
  11404. ["y2", "bottom"]
  11405. ],
  11406. Ix = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"],
  11407. Cx = function(t, e) {
  11408. Sx(t, e), t.series = tr(t.series), f(t.series, function(t) {
  11409. if (S(t)) {
  11410. var e = t.type;
  11411. if ("line" === e) null != t.clipOverflow && (t.clip = t.clipOverflow);
  11412. else if ("pie" === e || "gauge" === e) null != t.clockWise && (t.clockwise = t
  11413. .clockWise);
  11414. else if ("gauge" === e) {
  11415. var n = Vs(t, "pointer.color");
  11416. null != n && Ws(t, "itemStyle.color", n)
  11417. }
  11418. Hs(t)
  11419. }
  11420. }), t.dataRange && (t.visualMap = t.dataRange), f(Ix, function(e) {
  11421. var n = t[e];
  11422. n && (_(n) || (n = [n]), f(n, function(t) {
  11423. Hs(t)
  11424. }))
  11425. })
  11426. },
  11427. Tx = function(t) {
  11428. var e = N();
  11429. t.eachSeries(function(t) {
  11430. var n = t.get("stack");
  11431. if (n) {
  11432. var i = e.get(n) || e.set(n, []),
  11433. r = t.getData(),
  11434. o = {
  11435. stackResultDimension: r.getCalculationInfo("stackResultDimension"),
  11436. stackedOverDimension: r.getCalculationInfo("stackedOverDimension"),
  11437. stackedDimension: r.getCalculationInfo("stackedDimension"),
  11438. stackedByDimension: r.getCalculationInfo("stackedByDimension"),
  11439. isStackedByIndex: r.getCalculationInfo("isStackedByIndex"),
  11440. data: r,
  11441. seriesModel: t
  11442. };
  11443. if (!o.stackedDimension || !o.isStackedByIndex && !o.stackedByDimension) return;
  11444. i.length && r.setCalculationInfo("stackedOnSeries", i[i.length - 1].seriesModel), i
  11445. .push(o)
  11446. }
  11447. }), e.each(Gs)
  11448. },
  11449. Ax = Zs.prototype;
  11450. Ax.pure = !1, Ax.persistent = !0, Ax.getSource = function() {
  11451. return this._source
  11452. };
  11453. var Dx = {
  11454. arrayRows_column: {
  11455. pure: !0,
  11456. count: function() {
  11457. return Math.max(0, this._data.length - this._source.startIndex)
  11458. },
  11459. getItem: function(t) {
  11460. return this._data[t + this._source.startIndex]
  11461. },
  11462. appendData: Us
  11463. },
  11464. arrayRows_row: {
  11465. pure: !0,
  11466. count: function() {
  11467. var t = this._data[0];
  11468. return t ? Math.max(0, t.length - this._source.startIndex) : 0
  11469. },
  11470. getItem: function(t) {
  11471. t += this._source.startIndex;
  11472. for (var e = [], n = this._data, i = 0; i < n.length; i++) {
  11473. var r = n[i];
  11474. e.push(r ? r[t] : null)
  11475. }
  11476. return e
  11477. },
  11478. appendData: function() {
  11479. throw new Error('Do not support appendData when set seriesLayoutBy: "row".')
  11480. }
  11481. },
  11482. objectRows: {
  11483. pure: !0,
  11484. count: Xs,
  11485. getItem: Ys,
  11486. appendData: Us
  11487. },
  11488. keyedColumns: {
  11489. pure: !0,
  11490. count: function() {
  11491. var t = this._source.dimensionsDefine[0].name,
  11492. e = this._data[t];
  11493. return e ? e.length : 0
  11494. },
  11495. getItem: function(t) {
  11496. for (var e = [], n = this._source.dimensionsDefine, i = 0; i < n.length; i++) {
  11497. var r = this._data[n[i].name];
  11498. e.push(r ? r[t] : null)
  11499. }
  11500. return e
  11501. },
  11502. appendData: function(t) {
  11503. var e = this._data;
  11504. f(t, function(t, n) {
  11505. for (var i = e[n] || (e[n] = []), r = 0; r < (t || []).length; r++) i.push(t[r])
  11506. })
  11507. }
  11508. },
  11509. original: {
  11510. count: Xs,
  11511. getItem: Ys,
  11512. appendData: Us
  11513. },
  11514. typedArray: {
  11515. persistent: !1,
  11516. pure: !0,
  11517. count: function() {
  11518. return this._data ? this._data.length / this._dimSize : 0
  11519. },
  11520. getItem: function(t, e) {
  11521. t -= this._offset, e = e || [];
  11522. for (var n = this._dimSize * t, i = 0; i < this._dimSize; i++) e[i] = this._data[n + i];
  11523. return e
  11524. },
  11525. appendData: function(t) {
  11526. lp && L(I(t), "Added data must be TypedArray if data in initialization is TypedArray"), this
  11527. ._data = t
  11528. },
  11529. clean: function() {
  11530. this._offset += this.count(), this._data = null
  11531. }
  11532. }
  11533. },
  11534. kx = {
  11535. arrayRows: js,
  11536. objectRows: function(t, e, n, i) {
  11537. return null != n ? t[i] : t
  11538. },
  11539. keyedColumns: js,
  11540. original: function(t, e, n) {
  11541. var i = nr(t);
  11542. return null != n && i instanceof Array ? i[n] : i
  11543. },
  11544. typedArray: js
  11545. },
  11546. Px = {
  11547. arrayRows: qs,
  11548. objectRows: function(t, e) {
  11549. return Ks(t[e], this._dimensionInfos[e])
  11550. },
  11551. keyedColumns: qs,
  11552. original: function(t, e, n, i) {
  11553. var r = t && (null == t.value ? t : t.value);
  11554. return !this._rawData.pure && ir(t) && (this.hasItemOption = !0), Ks(r instanceof Array ? r[i] :
  11555. r, this._dimensionInfos[e])
  11556. },
  11557. typedArray: function(t, e, n, i) {
  11558. return t[i]
  11559. }
  11560. },
  11561. Ox = /\{@(.+?)\}/g,
  11562. Lx = {
  11563. getDataParams: function(t, e) {
  11564. var n = this.getData(e),
  11565. i = this.getRawValue(t, e),
  11566. r = n.getRawIndex(t),
  11567. o = n.getName(t),
  11568. a = n.getRawDataItem(t),
  11569. s = n.getItemVisual(t, "color"),
  11570. l = n.getItemVisual(t, "borderColor"),
  11571. u = this.ecModel.getComponent("tooltip"),
  11572. h = u && u.get("renderMode"),
  11573. c = pr(h),
  11574. d = this.mainType,
  11575. f = "series" === d,
  11576. p = n.userOutput;
  11577. return {
  11578. componentType: d,
  11579. componentSubType: this.subType,
  11580. componentIndex: this.componentIndex,
  11581. seriesType: f ? this.subType : null,
  11582. seriesIndex: this.seriesIndex,
  11583. seriesId: f ? this.id : null,
  11584. seriesName: f ? this.name : null,
  11585. name: o,
  11586. dataIndex: r,
  11587. data: a,
  11588. dataType: e,
  11589. value: i,
  11590. color: s,
  11591. borderColor: l,
  11592. dimensionNames: p ? p.dimensionNames : null,
  11593. encode: p ? p.encode : null,
  11594. marker: Ga({
  11595. color: s,
  11596. renderMode: c
  11597. }),
  11598. $vars: ["seriesName", "name", "value"]
  11599. }
  11600. },
  11601. getFormattedLabel: function(t, e, n, i, r) {
  11602. e = e || "normal";
  11603. var o = this.getData(n),
  11604. a = o.getItemModel(t),
  11605. s = this.getDataParams(t, n);
  11606. null != i && s.value instanceof Array && (s.value = s.value[i]);
  11607. var l = a.get("normal" === e ? [r || "label", "formatter"] : [e, r || "label", "formatter"]);
  11608. if ("function" == typeof l) return s.status = e, s.dimensionIndex = i, l(s);
  11609. if ("string" == typeof l) {
  11610. var u = Wa(l, s);
  11611. return u.replace(Ox, function(e, n) {
  11612. var i = n.length;
  11613. return "[" === n.charAt(0) && "]" === n.charAt(i - 1) && (n = +n.slice(1, i -
  11614. 1)), $s(o, t, n)
  11615. })
  11616. }
  11617. },
  11618. getRawValue: function(t, e) {
  11619. return $s(this.getData(e), t)
  11620. },
  11621. formatTooltip: function() {}
  11622. },
  11623. zx = Js.prototype;
  11624. zx.perform = function(t) {
  11625. function e(t) {
  11626. return !(t >= 1) && (t = 1), t
  11627. }
  11628. var n = this._upstream,
  11629. i = t && t.skip;
  11630. if (this._dirty && n) {
  11631. var r = this.context;
  11632. r.data = r.outputData = n.context.outputData
  11633. }
  11634. this.__pipeline && (this.__pipeline.currentTask = this);
  11635. var o;
  11636. this._plan && !i && (o = this._plan(this.context));
  11637. var a = e(this._modBy),
  11638. s = this._modDataCount || 0,
  11639. l = e(t && t.modBy),
  11640. u = t && t.modDataCount || 0;
  11641. (a !== l || s !== u) && (o = "reset");
  11642. var h;
  11643. (this._dirty || "reset" === o) && (this._dirty = !1, h = el(this, i)), this._modBy = l, this
  11644. ._modDataCount = u;
  11645. var c = t && t.step;
  11646. if (n ? (lp && L(null != n._outputDueEnd), this._dueEnd = n._outputDueEnd) : (lp && L(!this._progress ||
  11647. this._count), this._dueEnd = this._count ? this._count(this.context) : 1 / 0), this._progress) {
  11648. var d = this._dueIndex,
  11649. f = Math.min(null != c ? this._dueIndex + c : 1 / 0, this._dueEnd);
  11650. if (!i && (h || f > d)) {
  11651. var p = this._progress;
  11652. if (_(p))
  11653. for (var g = 0; g < p.length; g++) tl(this, p[g], d, f, l, u);
  11654. else tl(this, p, d, f, l, u)
  11655. }
  11656. this._dueIndex = f;
  11657. var v = null != this._settedOutputEnd ? this._settedOutputEnd : f;
  11658. lp && L(v >= this._outputDueEnd), this._outputDueEnd = v
  11659. } else this._dueIndex = this._outputDueEnd = null != this._settedOutputEnd ? this._settedOutputEnd :
  11660. this._dueEnd;
  11661. return this.unfinished()
  11662. };
  11663. var Ex = function() {
  11664. function t() {
  11665. return n > i ? i++ : null
  11666. }
  11667. function e() {
  11668. var t = i % a * r + Math.ceil(i / a),
  11669. e = i >= n ? null : o > t ? t : i;
  11670. return i++, e
  11671. }
  11672. var n, i, r, o, a, s = {
  11673. reset: function(l, u, h, c) {
  11674. i = l, n = u, r = h, o = c, a = Math.ceil(o / r), s.next = r > 1 && o > 0 ? e : t
  11675. }
  11676. };
  11677. return s
  11678. }();
  11679. zx.dirty = function() {
  11680. this._dirty = !0, this._onDirty && this._onDirty(this.context)
  11681. }, zx.unfinished = function() {
  11682. return this._progress && this._dueIndex < this._dueEnd
  11683. }, zx.pipe = function(t) {
  11684. lp && L(t && !t._disposed && t !== this), (this._downstream !== t || this._dirty) && (this._downstream =
  11685. t, t._upstream = this, t.dirty())
  11686. }, zx.dispose = function() {
  11687. this._disposed || (this._upstream && (this._upstream._downstream = null), this._downstream && (this
  11688. ._downstream._upstream = null), this._dirty = !1, this._disposed = !0)
  11689. }, zx.getUpstream = function() {
  11690. return this._upstream
  11691. }, zx.getDownstream = function() {
  11692. return this._downstream
  11693. }, zx.setOutputEnd = function(t) {
  11694. this._outputDueEnd = this._settedOutputEnd = t
  11695. };
  11696. var Bx = ur(),
  11697. Rx = qy.extend({
  11698. type: "series.__base__",
  11699. seriesIndex: 0,
  11700. coordinateSystem: null,
  11701. defaultOption: null,
  11702. legendVisualProvider: null,
  11703. visualColorAccessPath: "itemStyle.color",
  11704. visualBorderColorAccessPath: "itemStyle.borderColor",
  11705. layoutMode: null,
  11706. init: function(t, e, n) {
  11707. this.seriesIndex = this.componentIndex, this.dataTask = Qs({
  11708. count: rl,
  11709. reset: ol
  11710. }), this.dataTask.context = {
  11711. model: this
  11712. }, this.mergeDefaultAndTheme(t, n), ss(this);
  11713. var i = this.getInitialData(t, n);
  11714. sl(i, this), this.dataTask.context.data = i, lp && L(i,
  11715. "getInitialData returned invalid data."), Bx(this).dataBeforeProcessed = i, nl(this)
  11716. },
  11717. mergeDefaultAndTheme: function(t, e) {
  11718. var n = this.layoutMode,
  11719. i = n ? Ja(t) : {},
  11720. o = this.subType;
  11721. qy.hasClass(o) && (o += "Series"), r(t, e.getTheme().get(this.subType)), r(t, this
  11722. .getDefaultOption()), er(t, "label", ["show"]), this.fillDataTextStyle(t.data), n &&
  11723. Qa(t, i, n)
  11724. },
  11725. mergeOption: function(t, e) {
  11726. t = r(this.option, t, !0), this.fillDataTextStyle(t.data);
  11727. var n = this.layoutMode;
  11728. n && Qa(this.option, t, n), ss(this);
  11729. var i = this.getInitialData(t, e);
  11730. sl(i, this), this.dataTask.dirty(), this.dataTask.context.data = i, Bx(this)
  11731. .dataBeforeProcessed = i, nl(this)
  11732. },
  11733. fillDataTextStyle: function(t) {
  11734. if (t && !I(t))
  11735. for (var e = ["show"], n = 0; n < t.length; n++) t[n] && t[n].label && er(t[n], "label",
  11736. e)
  11737. },
  11738. getInitialData: function() {},
  11739. appendData: function(t) {
  11740. var e = this.getRawData();
  11741. e.appendData(t.data)
  11742. },
  11743. getData: function(t) {
  11744. var e = ul(this);
  11745. if (e) {
  11746. var n = e.context.data;
  11747. return null == t ? n : n.getLinkedData(t)
  11748. }
  11749. return Bx(this).data
  11750. },
  11751. setData: function(t) {
  11752. var e = ul(this);
  11753. if (e) {
  11754. var n = e.context;
  11755. n.data !== t && e.modifyOutputEnd && e.setOutputEnd(t.count()), n.outputData = t, e !==
  11756. this.dataTask && (n.data = t)
  11757. }
  11758. Bx(this).data = t
  11759. },
  11760. getSource: function() {
  11761. return os(this)
  11762. },
  11763. getRawData: function() {
  11764. return Bx(this).dataBeforeProcessed
  11765. },
  11766. getBaseAxis: function() {
  11767. var t = this.coordinateSystem;
  11768. return t && t.getBaseAxis && t.getBaseAxis()
  11769. },
  11770. formatTooltip: function(t, e, n, i) {
  11771. function r(n) {
  11772. function r(t, n) {
  11773. var r = c.getDimensionInfo(n);
  11774. if (r && r.otherDims.tooltip !== !1) {
  11775. var d = r.type,
  11776. f = "sub" + a.seriesIndex + "at" + h,
  11777. p = Ga({
  11778. color: y,
  11779. type: "subItem",
  11780. renderMode: i,
  11781. markerId: f
  11782. }),
  11783. g = "string" == typeof p ? p : p.content,
  11784. v = (o ? g + Va(r.displayName || "-") + ": " : "") + Va("ordinal" === d ?
  11785. t + "" : "time" === d ? e ? "" : Xa("yyyy/MM/dd hh:mm:ss", t) : Na(t));
  11786. v && s.push(v), l && (u[f] = y, ++h)
  11787. }
  11788. }
  11789. var o = g(n, function(t, e, n) {
  11790. var i = c.getDimensionInfo(n);
  11791. return t |= i && i.tooltip !== !1 && null != i.displayName
  11792. }, 0),
  11793. s = [];
  11794. d.length ? f(d, function(e) {
  11795. r($s(c, t, e), e)
  11796. }) : f(n, r);
  11797. var p = o ? l ? "\n" : "<br/>" : "",
  11798. v = p + s.join(p || ", ");
  11799. return {
  11800. renderMode: i,
  11801. content: v,
  11802. style: u
  11803. }
  11804. }
  11805. function o(t) {
  11806. return {
  11807. renderMode: i,
  11808. content: Va(Na(t)),
  11809. style: u
  11810. }
  11811. }
  11812. var a = this;
  11813. i = i || "html";
  11814. var s = "html" === i ? "<br/>" : "\n",
  11815. l = "richText" === i,
  11816. u = {},
  11817. h = 0,
  11818. c = this.getData(),
  11819. d = c.mapDimension("defaultedTooltip", !0),
  11820. p = d.length,
  11821. v = this.getRawValue(t),
  11822. m = _(v),
  11823. y = c.getItemVisual(t, "color");
  11824. S(y) && y.colorStops && (y = (y.colorStops[0] || {}).color), y = y || "transparent";
  11825. var x = p > 1 || m && !p ? r(v) : o(p ? $s(c, t, d[0]) : m ? v[0] : v),
  11826. w = x.content,
  11827. b = a.seriesIndex + "at" + h,
  11828. M = Ga({
  11829. color: y,
  11830. type: "item",
  11831. renderMode: i,
  11832. markerId: b
  11833. });
  11834. u[b] = y, ++h;
  11835. var I = c.getName(t),
  11836. C = this.name;
  11837. ar(this) || (C = ""), C = C ? Va(C) + (e ? ": " : s) : "";
  11838. var T = "string" == typeof M ? M : M.content,
  11839. A = e ? T + C + w : C + T + (I ? Va(I) + ": " + w : w);
  11840. return {
  11841. html: A,
  11842. markers: u
  11843. }
  11844. },
  11845. isAnimationEnabled: function() {
  11846. if (dp.node) return !1;
  11847. var t = this.getShallow("animation");
  11848. return t && this.getData().count() > this.getShallow("animationThreshold") && (t = !1), t
  11849. },
  11850. restoreData: function() {
  11851. this.dataTask.dirty()
  11852. },
  11853. getColorFromPalette: function(t, e, n) {
  11854. var i = this.ecModel,
  11855. r = Jy.getColorFromPalette.call(this, t, e, n);
  11856. return r || (r = i.getColorFromPalette(t, e, n)), r
  11857. },
  11858. coordDimToDataDim: function(t) {
  11859. return this.getRawData().mapDimension(t, !0)
  11860. },
  11861. getProgressive: function() {
  11862. return this.get("progressive")
  11863. },
  11864. getProgressiveThreshold: function() {
  11865. return this.get("progressiveThreshold")
  11866. },
  11867. getAxisTooltipData: null,
  11868. getTooltipPosition: null,
  11869. pipeTask: null,
  11870. preventIncremental: null,
  11871. pipelineContext: null
  11872. });
  11873. c(Rx, Lx), c(Rx, Jy);
  11874. var Nx = function() {
  11875. this.group = new Cg, this.uid = ma("viewComponent")
  11876. };
  11877. Nx.prototype = {
  11878. constructor: Nx,
  11879. init: function() {},
  11880. render: function() {},
  11881. dispose: function() {},
  11882. filterForExposedEvent: null
  11883. };
  11884. var Fx = Nx.prototype;
  11885. Fx.updateView = Fx.updateLayout = Fx.updateVisual = function() {}, mr(Nx), wr(Nx, {
  11886. registerWhenExtend: !0
  11887. });
  11888. var Vx = function() {
  11889. var t = ur();
  11890. return function(e) {
  11891. var n = t(e),
  11892. i = e.pipelineContext,
  11893. r = n.large,
  11894. o = n.progressiveRender,
  11895. a = n.large = i && i.large,
  11896. s = n.progressiveRender = i && i.progressiveRender;
  11897. return !!(r ^ a || o ^ s) && "reset"
  11898. }
  11899. },
  11900. Wx = ur(),
  11901. Hx = Vx();
  11902. hl.prototype = {
  11903. type: "chart",
  11904. init: function() {},
  11905. render: function() {},
  11906. highlight: function(t, e, n, i) {
  11907. dl(t.getData(), i, "emphasis")
  11908. },
  11909. downplay: function(t, e, n, i) {
  11910. dl(t.getData(), i, "normal")
  11911. },
  11912. remove: function() {
  11913. this.group.removeAll()
  11914. },
  11915. dispose: function() {},
  11916. incrementalPrepareRender: null,
  11917. incrementalRender: null,
  11918. updateTransform: null,
  11919. filterForExposedEvent: null
  11920. };
  11921. var Gx = hl.prototype;
  11922. Gx.updateView = Gx.updateLayout = Gx.updateVisual = function(t, e, n, i) {
  11923. this.render(t, e, n, i)
  11924. }, mr(hl, ["dispose"]), wr(hl, {
  11925. registerWhenExtend: !0
  11926. }), hl.markUpdateMethod = function(t, e) {
  11927. Wx(t).updateMethod = e
  11928. };
  11929. var Zx = {
  11930. incrementalPrepareRender: {
  11931. progress: function(t, e) {
  11932. e.view.incrementalRender(t, e.model, e.ecModel, e.api, e.payload)
  11933. }
  11934. },
  11935. render: {
  11936. forceFirstProgress: !0,
  11937. progress: function(t, e) {
  11938. e.view.render(e.model, e.ecModel, e.api, e.payload)
  11939. }
  11940. }
  11941. },
  11942. Xx = "\x00__throttleOriginMethod",
  11943. Yx = "\x00__throttleRate",
  11944. Ux = "\x00__throttleType",
  11945. jx = {
  11946. createOnAllSeries: !0,
  11947. performRawSeries: !0,
  11948. reset: function(t, e) {
  11949. var n = t.getData(),
  11950. i = (t.visualColorAccessPath || "itemStyle.color").split("."),
  11951. r = t.get(i),
  11952. o = !w(r) || r instanceof ay ? null : r;
  11953. (!r || o) && (r = t.getColorFromPalette(t.name, null, e.getSeriesCount())), n.setVisual("color",
  11954. r);
  11955. var a = (t.visualBorderColorAccessPath || "itemStyle.borderColor").split("."),
  11956. s = t.get(a);
  11957. if (n.setVisual("borderColor", s), !e.isSeriesFiltered(t)) {
  11958. o && n.each(function(e) {
  11959. n.setItemVisual(e, "color", o(t.getDataParams(e)))
  11960. });
  11961. var l = function(t, e) {
  11962. var n = t.getItemModel(e),
  11963. r = n.get(i, !0),
  11964. o = n.get(a, !0);
  11965. null != r && t.setItemVisual(e, "color", r), null != o && t.setItemVisual(e,
  11966. "borderColor", o)
  11967. };
  11968. return {
  11969. dataEach: n.hasItemOption ? l : null
  11970. }
  11971. }
  11972. }
  11973. },
  11974. qx = {
  11975. legend: {
  11976. selector: {
  11977. all: "全选",
  11978. inverse: "反选"
  11979. }
  11980. },
  11981. toolbox: {
  11982. brush: {
  11983. title: {
  11984. rect: "矩形选择",
  11985. polygon: "圈选",
  11986. lineX: "横向选择",
  11987. lineY: "纵向选择",
  11988. keep: "保持选择",
  11989. clear: "清除选择"
  11990. }
  11991. },
  11992. dataView: {
  11993. title: "数据视图",
  11994. lang: ["数据视图", "关闭", "刷新"]
  11995. },
  11996. dataZoom: {
  11997. title: {
  11998. zoom: "区域缩放",
  11999. back: "区域缩放还原"
  12000. }
  12001. },
  12002. magicType: {
  12003. title: {
  12004. line: "切换为折线图",
  12005. bar: "切换为柱状图",
  12006. stack: "切换为堆叠",
  12007. tiled: "切换为平铺"
  12008. }
  12009. },
  12010. restore: {
  12011. title: "还原"
  12012. },
  12013. saveAsImage: {
  12014. title: "保存为图片",
  12015. lang: ["右键另存为图片"]
  12016. }
  12017. },
  12018. series: {
  12019. typeNames: {
  12020. pie: "饼图",
  12021. bar: "柱状图",
  12022. line: "折线图",
  12023. scatter: "散点图",
  12024. effectScatter: "涟漪散点图",
  12025. radar: "雷达图",
  12026. tree: "树图",
  12027. treemap: "矩形树图",
  12028. boxplot: "箱型图",
  12029. candlestick: "K线图",
  12030. k: "K线图",
  12031. heatmap: "热力图",
  12032. map: "地图",
  12033. parallel: "平行坐标图",
  12034. lines: "线图",
  12035. graph: "关系图",
  12036. sankey: "桑基图",
  12037. funnel: "漏斗图",
  12038. gauge: "仪表盘图",
  12039. pictorialBar: "象形柱图",
  12040. themeRiver: "主题河流图",
  12041. sunburst: "旭日图"
  12042. }
  12043. },
  12044. aria: {
  12045. general: {
  12046. withTitle: "这是一个关于“{title}”的图表。",
  12047. withoutTitle: "这是一个图表,"
  12048. },
  12049. series: {
  12050. single: {
  12051. prefix: "",
  12052. withName: "图表类型是{seriesType},表示{seriesName}。",
  12053. withoutName: "图表类型是{seriesType}。"
  12054. },
  12055. multiple: {
  12056. prefix: "它由{seriesCount}个图表系列组成。",
  12057. withName: "第{seriesId}个系列是一个表示{seriesName}的{seriesType},",
  12058. withoutName: "第{seriesId}个系列是一个{seriesType},",
  12059. separator: {
  12060. middle: ";",
  12061. end: "。"
  12062. }
  12063. }
  12064. },
  12065. data: {
  12066. allData: "其数据是——",
  12067. partialData: "其中,前{displayCnt}项是——",
  12068. withName: "{name}的数据是{value}",
  12069. withoutName: "{value}",
  12070. separator: {
  12071. middle: ",",
  12072. end: ""
  12073. }
  12074. }
  12075. }
  12076. },
  12077. Kx = function(t, e) {
  12078. function n(t, e) {
  12079. if ("string" != typeof t) return t;
  12080. var n = t;
  12081. return f(e, function(t, e) {
  12082. n = n.replace(new RegExp("\\{\\s*" + e + "\\s*\\}", "g"), t)
  12083. }), n
  12084. }
  12085. function i(t) {
  12086. var e = a.get(t);
  12087. if (null == e) {
  12088. for (var n = t.split("."), i = qx.aria, r = 0; r < n.length; ++r) i = i[n[r]];
  12089. return i
  12090. }
  12091. return e
  12092. }
  12093. function r() {
  12094. var t = e.getModel("title").option;
  12095. return t && t.length && (t = t[0]), t && t.text
  12096. }
  12097. function o(t) {
  12098. return qx.series.typeNames[t] || "自定义图"
  12099. }
  12100. var a = e.getModel("aria");
  12101. if (a.get("show")) {
  12102. if (a.get("description")) return void t.setAttribute("aria-label", a.get("description"));
  12103. var s = 0;
  12104. e.eachSeries(function() {
  12105. ++s
  12106. }, this);
  12107. var l, u = a.get("data.maxCount") || 10,
  12108. h = a.get("series.maxCount") || 10,
  12109. c = Math.min(s, h);
  12110. if (!(1 > s)) {
  12111. var d = r();
  12112. l = d ? n(i("general.withTitle"), {
  12113. title: d
  12114. }) : i("general.withoutTitle");
  12115. var p = [],
  12116. g = s > 1 ? "series.multiple.prefix" : "series.single.prefix";
  12117. l += n(i(g), {
  12118. seriesCount: s
  12119. }), e.eachSeries(function(t, e) {
  12120. if (c > e) {
  12121. var r, a = t.get("name"),
  12122. l = "series." + (s > 1 ? "multiple" : "single") + ".";
  12123. r = i(a ? l + "withName" : l + "withoutName"), r = n(r, {
  12124. seriesId: t.seriesIndex,
  12125. seriesName: t.get("name"),
  12126. seriesType: o(t.subType)
  12127. });
  12128. var h = t.getData();
  12129. window.data = h, r += h.count() > u ? n(i("data.partialData"), {
  12130. displayCnt: u
  12131. }) : i("data.allData");
  12132. for (var d = [], f = 0; f < h.count(); f++)
  12133. if (u > f) {
  12134. var g = h.getName(f),
  12135. v = $s(h, f);
  12136. d.push(n(i(g ? "data.withName" : "data.withoutName"), {
  12137. name: g,
  12138. value: v
  12139. }))
  12140. } r += d.join(i("data.separator.middle")) + i("data.separator.end"), p.push(
  12141. r)
  12142. }
  12143. }), l += p.join(i("series.multiple.separator.middle")) + i("series.multiple.separator.end"),
  12144. t.setAttribute("aria-label", l)
  12145. }
  12146. }
  12147. },
  12148. $x = Math.PI,
  12149. Qx = function(t, e) {
  12150. e = e || {}, s(e, {
  12151. text: "loading",
  12152. textColor: "#000",
  12153. fontSize: "12px",
  12154. maskColor: "rgba(255, 255, 255, 0.8)",
  12155. showSpinner: !0,
  12156. color: "#c23531",
  12157. spinnerRadius: 10,
  12158. lineWidth: 5,
  12159. zlevel: 0
  12160. });
  12161. var n = new Cg,
  12162. i = new Jm({
  12163. style: {
  12164. fill: e.maskColor
  12165. },
  12166. zlevel: e.zlevel,
  12167. z: 1e4
  12168. });
  12169. n.add(i);
  12170. var r = e.fontSize + " sans-serif",
  12171. o = new Jm({
  12172. style: {
  12173. fill: "none",
  12174. text: e.text,
  12175. font: r,
  12176. textPosition: "right",
  12177. textDistance: 10,
  12178. textFill: e.textColor
  12179. },
  12180. zlevel: e.zlevel,
  12181. z: 10001
  12182. });
  12183. if (n.add(o), e.showSpinner) {
  12184. var a = new ry({
  12185. shape: {
  12186. startAngle: -$x / 2,
  12187. endAngle: -$x / 2 + .1,
  12188. r: e.spinnerRadius
  12189. },
  12190. style: {
  12191. stroke: e.color,
  12192. lineCap: "round",
  12193. lineWidth: e.lineWidth
  12194. },
  12195. zlevel: e.zlevel,
  12196. z: 10001
  12197. });
  12198. a.animateShape(!0).when(1e3, {
  12199. endAngle: 3 * $x / 2
  12200. }).start("circularInOut"), a.animateShape(!0).when(1e3, {
  12201. startAngle: 3 * $x / 2
  12202. }).delay(300).start("circularInOut"), n.add(a)
  12203. }
  12204. return n.resize = function() {
  12205. var n = Xn(e.text, r),
  12206. s = e.showSpinner ? e.spinnerRadius : 0,
  12207. l = (t.getWidth() - 2 * s - (e.showSpinner && n ? 10 : 0) - n) / 2 - (e.showSpinner ? 0 :
  12208. n / 2),
  12209. u = t.getHeight() / 2;
  12210. e.showSpinner && a.setShape({
  12211. cx: l,
  12212. cy: u
  12213. }), o.setShape({
  12214. x: l - s,
  12215. y: u - s,
  12216. width: 2 * s,
  12217. height: 2 * s
  12218. }), i.setShape({
  12219. x: 0,
  12220. y: 0,
  12221. width: t.getWidth(),
  12222. height: t.getHeight()
  12223. })
  12224. }, n.resize(), n
  12225. },
  12226. Jx = yl.prototype;
  12227. Jx.restoreData = function(t, e) {
  12228. t.restoreData(e), this._stageTaskMap.each(function(t) {
  12229. var e = t.overallTask;
  12230. e && e.dirty()
  12231. })
  12232. }, Jx.getPerformArgs = function(t, e) {
  12233. if (t.__pipeline) {
  12234. var n = this._pipelineMap.get(t.__pipeline.id),
  12235. i = n.context,
  12236. r = !e && n.progressiveEnabled && (!i || i.progressiveRender) && t.__idxInPipeline > n
  12237. .blockIndex,
  12238. o = r ? n.step : null,
  12239. a = i && i.modDataCount,
  12240. s = null != a ? Math.ceil(a / o) : null;
  12241. return {
  12242. step: o,
  12243. modBy: s,
  12244. modDataCount: a
  12245. }
  12246. }
  12247. }, Jx.getPipeline = function(t) {
  12248. return this._pipelineMap.get(t)
  12249. }, Jx.updateStreamModes = function(t, e) {
  12250. var n = this._pipelineMap.get(t.uid),
  12251. i = t.getData(),
  12252. r = i.count(),
  12253. o = n.progressiveEnabled && e.incrementalPrepareRender && r >= n.threshold,
  12254. a = t.get("large") && r >= t.get("largeThreshold"),
  12255. s = "mod" === t.get("progressiveChunkMode") ? r : null;
  12256. t.pipelineContext = n.context = {
  12257. progressiveRender: o,
  12258. modDataCount: s,
  12259. large: a
  12260. }
  12261. }, Jx.restorePipelines = function(t) {
  12262. var e = this,
  12263. n = e._pipelineMap = N();
  12264. t.eachSeries(function(t) {
  12265. var i = t.getProgressive(),
  12266. r = t.uid;
  12267. n.set(r, {
  12268. id: r,
  12269. head: null,
  12270. tail: null,
  12271. threshold: t.getProgressiveThreshold(),
  12272. progressiveEnabled: i && !(t.preventIncremental && t.preventIncremental()),
  12273. blockIndex: -1,
  12274. step: Math.round(i || 700),
  12275. count: 0
  12276. }), kl(e, t, t.dataTask)
  12277. })
  12278. }, Jx.prepareStageTasks = function() {
  12279. var t = this._stageTaskMap,
  12280. e = this.ecInstance.getModel(),
  12281. n = this.api;
  12282. f(this._allHandlers, function(i) {
  12283. var r = t.get(i.uid) || t.set(i.uid, []);
  12284. i.reset && _l(this, i, r, e, n), i.overallReset && wl(this, i, r, e, n)
  12285. }, this)
  12286. }, Jx.prepareView = function(t, e, n, i) {
  12287. var r = t.renderTask,
  12288. o = r.context;
  12289. o.model = e, o.ecModel = n, o.api = i, r.__block = !t.incrementalPrepareRender, kl(this, e, r)
  12290. }, Jx.performDataProcessorTasks = function(t, e) {
  12291. xl(this, this._dataProcessorHandlers, t, e, {
  12292. block: !0
  12293. })
  12294. }, Jx.performVisualTasks = function(t, e, n) {
  12295. xl(this, this._visualHandlers, t, e, n)
  12296. }, Jx.performSeriesTasks = function(t) {
  12297. var e;
  12298. t.eachSeries(function(t) {
  12299. e |= t.dataTask.perform()
  12300. }), this.unfinished |= e
  12301. }, Jx.plan = function() {
  12302. this._pipelineMap.each(function(t) {
  12303. var e = t.tail;
  12304. do {
  12305. if (e.__block) {
  12306. t.blockIndex = e.__idxInPipeline;
  12307. break
  12308. }
  12309. e = e.getUpstream()
  12310. } while (e)
  12311. })
  12312. };
  12313. var t_ = Jx.updatePayload = function(t, e) {
  12314. "remain" !== e && (t.context.payload = e)
  12315. },
  12316. e_ = Al(0);
  12317. yl.wrapStageHandler = function(t, e) {
  12318. return w(t) && (t = {
  12319. overallReset: t,
  12320. seriesType: Pl(t)
  12321. }), t.uid = ma("stageHandler"), e && (t.visualType = e), t
  12322. };
  12323. var n_, i_ = {},
  12324. r_ = {};
  12325. Ol(i_, cx), Ol(r_, Ms), i_.eachSeriesByType = i_.eachRawSeriesByType = function(t) {
  12326. n_ = t
  12327. }, i_.eachComponent = function(t) {
  12328. "series" === t.mainType && t.subType && (n_ = t.subType)
  12329. };
  12330. var o_ = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1",
  12331. "#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"
  12332. ],
  12333. a_ = {
  12334. color: o_,
  12335. colorLayer: [
  12336. ["#37A2DA", "#ffd85c", "#fd7b5f"],
  12337. ["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"],
  12338. ["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA",
  12339. "#96BFFF"
  12340. ], o_
  12341. ]
  12342. },
  12343. s_ = "#eee",
  12344. l_ = function() {
  12345. return {
  12346. axisLine: {
  12347. lineStyle: {
  12348. color: s_
  12349. }
  12350. },
  12351. axisTick: {
  12352. lineStyle: {
  12353. color: s_
  12354. }
  12355. },
  12356. axisLabel: {
  12357. textStyle: {
  12358. color: s_
  12359. }
  12360. },
  12361. splitLine: {
  12362. lineStyle: {
  12363. type: "dashed",
  12364. color: "#aaa"
  12365. }
  12366. },
  12367. splitArea: {
  12368. areaStyle: {
  12369. color: s_
  12370. }
  12371. }
  12372. }
  12373. },
  12374. u_ = ["#dd6b66", "#759aa0", "#e69d87", "#8dc1a9", "#ea7e53", "#eedd78", "#73a373", "#73b9bc", "#7289ab",
  12375. "#91ca8c", "#f49f42"
  12376. ],
  12377. h_ = {
  12378. color: u_,
  12379. backgroundColor: "#333",
  12380. tooltip: {
  12381. axisPointer: {
  12382. lineStyle: {
  12383. color: s_
  12384. },
  12385. crossStyle: {
  12386. color: s_
  12387. },
  12388. label: {
  12389. color: "#000"
  12390. }
  12391. }
  12392. },
  12393. legend: {
  12394. textStyle: {
  12395. color: s_
  12396. }
  12397. },
  12398. textStyle: {
  12399. color: s_
  12400. },
  12401. title: {
  12402. textStyle: {
  12403. color: s_
  12404. }
  12405. },
  12406. toolbox: {
  12407. iconStyle: {
  12408. normal: {
  12409. borderColor: s_
  12410. }
  12411. }
  12412. },
  12413. dataZoom: {
  12414. textStyle: {
  12415. color: s_
  12416. }
  12417. },
  12418. visualMap: {
  12419. textStyle: {
  12420. color: s_
  12421. }
  12422. },
  12423. timeline: {
  12424. lineStyle: {
  12425. color: s_
  12426. },
  12427. itemStyle: {
  12428. normal: {
  12429. color: u_[1]
  12430. }
  12431. },
  12432. label: {
  12433. normal: {
  12434. textStyle: {
  12435. color: s_
  12436. }
  12437. }
  12438. },
  12439. controlStyle: {
  12440. normal: {
  12441. color: s_,
  12442. borderColor: s_
  12443. }
  12444. }
  12445. },
  12446. timeAxis: l_(),
  12447. logAxis: l_(),
  12448. valueAxis: l_(),
  12449. categoryAxis: l_(),
  12450. line: {
  12451. symbol: "circle"
  12452. },
  12453. graph: {
  12454. color: u_
  12455. },
  12456. gauge: {
  12457. title: {
  12458. textStyle: {
  12459. color: s_
  12460. }
  12461. }
  12462. },
  12463. candlestick: {
  12464. itemStyle: {
  12465. normal: {
  12466. color: "#FD1050",
  12467. color0: "#0CF49B",
  12468. borderColor: "#FD1050",
  12469. borderColor0: "#0CF49B"
  12470. }
  12471. }
  12472. }
  12473. };
  12474. h_.categoryAxis.splitLine.show = !1, qy.extend({
  12475. type: "dataset",
  12476. defaultOption: {
  12477. seriesLayoutBy: ax,
  12478. sourceHeader: null,
  12479. dimensions: null,
  12480. source: null
  12481. },
  12482. optionUpdated: function() {
  12483. rs(this)
  12484. }
  12485. }), Nx.extend({
  12486. type: "dataset"
  12487. });
  12488. var c_ = eo.extend({
  12489. type: "ellipse",
  12490. shape: {
  12491. cx: 0,
  12492. cy: 0,
  12493. rx: 0,
  12494. ry: 0
  12495. },
  12496. buildPath: function(t, e) {
  12497. var n = .5522848,
  12498. i = e.cx,
  12499. r = e.cy,
  12500. o = e.rx,
  12501. a = e.ry,
  12502. s = o * n,
  12503. l = a * n;
  12504. t.moveTo(i - o, r), t.bezierCurveTo(i - o, r - l, i - s, r - a, i, r - a), t.bezierCurveTo(
  12505. i + s, r - a, i + o, r - l, i + o, r), t.bezierCurveTo(i + o, r + l, i + s, r + a,
  12506. i, r + a), t.bezierCurveTo(i - s, r + a, i - o, r + l, i - o, r), t.closePath()
  12507. }
  12508. }),
  12509. d_ = /[\s,]+/;
  12510. zl.prototype.parse = function(t, e) {
  12511. e = e || {};
  12512. var n = Ll(t);
  12513. if (!n) throw new Error("Illegal svg");
  12514. var i = new Cg;
  12515. this._root = i;
  12516. var r = n.getAttribute("viewBox") || "",
  12517. o = parseFloat(n.getAttribute("width") || e.width),
  12518. a = parseFloat(n.getAttribute("height") || e.height);
  12519. isNaN(o) && (o = null), isNaN(a) && (a = null), Nl(n, i, null, !0);
  12520. for (var s = n.firstChild; s;) this._parseNode(s, i), s = s.nextSibling;
  12521. var l, u;
  12522. if (r) {
  12523. var h = z(r).split(d_);
  12524. h.length >= 4 && (l = {
  12525. x: parseFloat(h[0] || 0),
  12526. y: parseFloat(h[1] || 0),
  12527. width: parseFloat(h[2]),
  12528. height: parseFloat(h[3])
  12529. })
  12530. }
  12531. if (l && null != o && null != a && (u = Hl(l, o, a), !e.ignoreViewBox)) {
  12532. var c = i;
  12533. i = new Cg, i.add(c), c.scale = u.scale.slice(), c.position = u.position.slice()
  12534. }
  12535. return e.ignoreRootClip || null == o || null == a || i.setClipPath(new Jm({
  12536. shape: {
  12537. x: 0,
  12538. y: 0,
  12539. width: o,
  12540. height: a
  12541. }
  12542. })), {
  12543. root: i,
  12544. width: o,
  12545. height: a,
  12546. viewBoxRect: l,
  12547. viewBoxTransform: u
  12548. }
  12549. }, zl.prototype._parseNode = function(t, e) {
  12550. var n = t.nodeName.toLowerCase();
  12551. "defs" === n ? this._isDefine = !0 : "text" === n && (this._isText = !0);
  12552. var i;
  12553. if (this._isDefine) {
  12554. var r = p_[n];
  12555. if (r) {
  12556. var o = r.call(this, t),
  12557. a = t.getAttribute("id");
  12558. a && (this._defs[a] = o)
  12559. }
  12560. } else {
  12561. var r = f_[n];
  12562. r && (i = r.call(this, t, e), e.add(i))
  12563. }
  12564. for (var s = t.firstChild; s;) 1 === s.nodeType && this._parseNode(s, i), 3 === s.nodeType && this
  12565. ._isText && this._parseText(s, i), s = s.nextSibling;
  12566. "defs" === n ? this._isDefine = !1 : "text" === n && (this._isText = !1)
  12567. }, zl.prototype._parseText = function(t, e) {
  12568. if (1 === t.nodeType) {
  12569. var n = t.getAttribute("dx") || 0,
  12570. i = t.getAttribute("dy") || 0;
  12571. this._textX += parseFloat(n), this._textY += parseFloat(i)
  12572. }
  12573. var r = new Wm({
  12574. style: {
  12575. text: t.textContent,
  12576. transformText: !0
  12577. },
  12578. position: [this._textX || 0, this._textY || 0]
  12579. });
  12580. Bl(e, r), Nl(t, r, this._defs);
  12581. var o = r.style.fontSize;
  12582. o && 9 > o && (r.style.fontSize = 9, r.scale = r.scale || [1, 1], r.scale[0] *= o / 9, r.scale[1] *= o /
  12583. 9);
  12584. var a = r.getBoundingRect();
  12585. return this._textX += a.width, e.add(r), r
  12586. };
  12587. var f_ = {
  12588. g: function(t, e) {
  12589. var n = new Cg;
  12590. return Bl(e, n), Nl(t, n, this._defs), n
  12591. },
  12592. rect: function(t, e) {
  12593. var n = new Jm;
  12594. return Bl(e, n), Nl(t, n, this._defs), n.setShape({
  12595. x: parseFloat(t.getAttribute("x") || 0),
  12596. y: parseFloat(t.getAttribute("y") || 0),
  12597. width: parseFloat(t.getAttribute("width") || 0),
  12598. height: parseFloat(t.getAttribute("height") || 0)
  12599. }), n
  12600. },
  12601. circle: function(t, e) {
  12602. var n = new Hm;
  12603. return Bl(e, n), Nl(t, n, this._defs), n.setShape({
  12604. cx: parseFloat(t.getAttribute("cx") || 0),
  12605. cy: parseFloat(t.getAttribute("cy") || 0),
  12606. r: parseFloat(t.getAttribute("r") || 0)
  12607. }), n
  12608. },
  12609. line: function(t, e) {
  12610. var n = new ey;
  12611. return Bl(e, n), Nl(t, n, this._defs), n.setShape({
  12612. x1: parseFloat(t.getAttribute("x1") || 0),
  12613. y1: parseFloat(t.getAttribute("y1") || 0),
  12614. x2: parseFloat(t.getAttribute("x2") || 0),
  12615. y2: parseFloat(t.getAttribute("y2") || 0)
  12616. }), n
  12617. },
  12618. ellipse: function(t, e) {
  12619. var n = new c_;
  12620. return Bl(e, n), Nl(t, n, this._defs), n.setShape({
  12621. cx: parseFloat(t.getAttribute("cx") || 0),
  12622. cy: parseFloat(t.getAttribute("cy") || 0),
  12623. rx: parseFloat(t.getAttribute("rx") || 0),
  12624. ry: parseFloat(t.getAttribute("ry") || 0)
  12625. }), n
  12626. },
  12627. polygon: function(t, e) {
  12628. var n = t.getAttribute("points");
  12629. n && (n = Rl(n));
  12630. var i = new qm({
  12631. shape: {
  12632. points: n || []
  12633. }
  12634. });
  12635. return Bl(e, i), Nl(t, i, this._defs), i
  12636. },
  12637. polyline: function(t, e) {
  12638. var n = new eo;
  12639. Bl(e, n), Nl(t, n, this._defs);
  12640. var i = t.getAttribute("points");
  12641. i && (i = Rl(i));
  12642. var r = new Km({
  12643. shape: {
  12644. points: i || []
  12645. }
  12646. });
  12647. return r
  12648. },
  12649. image: function(t, e) {
  12650. var n = new Ai;
  12651. return Bl(e, n), Nl(t, n, this._defs), n.setStyle({
  12652. image: t.getAttribute("xlink:href"),
  12653. x: t.getAttribute("x"),
  12654. y: t.getAttribute("y"),
  12655. width: t.getAttribute("width"),
  12656. height: t.getAttribute("height")
  12657. }), n
  12658. },
  12659. text: function(t, e) {
  12660. var n = t.getAttribute("x") || 0,
  12661. i = t.getAttribute("y") || 0,
  12662. r = t.getAttribute("dx") || 0,
  12663. o = t.getAttribute("dy") || 0;
  12664. this._textX = parseFloat(n) + parseFloat(r), this._textY = parseFloat(i) + parseFloat(o);
  12665. var a = new Cg;
  12666. return Bl(e, a), Nl(t, a, this._defs), a
  12667. },
  12668. tspan: function(t, e) {
  12669. var n = t.getAttribute("x"),
  12670. i = t.getAttribute("y");
  12671. null != n && (this._textX = parseFloat(n)), null != i && (this._textY = parseFloat(i));
  12672. var r = t.getAttribute("dx") || 0,
  12673. o = t.getAttribute("dy") || 0,
  12674. a = new Cg;
  12675. return Bl(e, a), Nl(t, a, this._defs), this._textX += r, this._textY += o, a
  12676. },
  12677. path: function(t, e) {
  12678. var n = t.getAttribute("d") || "",
  12679. i = oo(n);
  12680. return Bl(e, i), Nl(t, i, this._defs), i
  12681. }
  12682. },
  12683. p_ = {
  12684. lineargradient: function(t) {
  12685. var e = parseInt(t.getAttribute("x1") || 0, 10),
  12686. n = parseInt(t.getAttribute("y1") || 0, 10),
  12687. i = parseInt(t.getAttribute("x2") || 10, 10),
  12688. r = parseInt(t.getAttribute("y2") || 0, 10),
  12689. o = new sy(e, n, i, r);
  12690. return El(t, o), o
  12691. },
  12692. radialgradient: function() {}
  12693. },
  12694. g_ = {
  12695. fill: "fill",
  12696. stroke: "stroke",
  12697. "stroke-width": "lineWidth",
  12698. opacity: "opacity",
  12699. "fill-opacity": "fillOpacity",
  12700. "stroke-opacity": "strokeOpacity",
  12701. "stroke-dasharray": "lineDash",
  12702. "stroke-dashoffset": "lineDashOffset",
  12703. "stroke-linecap": "lineCap",
  12704. "stroke-linejoin": "lineJoin",
  12705. "stroke-miterlimit": "miterLimit",
  12706. "font-family": "fontFamily",
  12707. "font-size": "fontSize",
  12708. "font-style": "fontStyle",
  12709. "font-weight": "fontWeight",
  12710. "text-align": "textAlign",
  12711. "alignment-baseline": "textBaseline"
  12712. },
  12713. v_ = /url\(\s*#(.*?)\)/,
  12714. m_ = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g,
  12715. y_ = /([^\s:;]+)\s*:\s*([^:;]+)/g,
  12716. x_ = N(),
  12717. __ = {
  12718. registerMap: function(t, e, n) {
  12719. var i;
  12720. return _(e) ? i = e : e.svg ? i = [{
  12721. type: "svg",
  12722. source: e.svg,
  12723. specialAreas: e.specialAreas
  12724. }] : (e.geoJson && !e.features && (n = e.specialAreas, e = e.geoJson), i = [{
  12725. type: "geoJSON",
  12726. source: e,
  12727. specialAreas: n
  12728. }]), f(i, function(t) {
  12729. var e = t.type;
  12730. "geoJson" === e && (e = t.type = "geoJSON");
  12731. var n = w_[e];
  12732. lp && L(n, "Illegal map type: " + e), n(t)
  12733. }), x_.set(t, i)
  12734. },
  12735. retrieveMap: function(t) {
  12736. return x_.get(t)
  12737. }
  12738. },
  12739. w_ = {
  12740. geoJSON: function(t) {
  12741. var e = t.source;
  12742. t.geoJSON = b(e) ? "undefined" != typeof JSON && JSON.parse ? JSON.parse(e) : new Function(
  12743. "return (" + e + ");")() : e
  12744. },
  12745. svg: function(t) {
  12746. t.svgXML = Ll(t.source)
  12747. }
  12748. },
  12749. b_ = L,
  12750. S_ = f,
  12751. M_ = w,
  12752. I_ = S,
  12753. C_ = qy.parseClassType,
  12754. T_ = "4.8.0",
  12755. A_ = {
  12756. zrender: "4.3.1"
  12757. },
  12758. D_ = 1,
  12759. k_ = 1e3,
  12760. P_ = 800,
  12761. O_ = 900,
  12762. L_ = 5e3,
  12763. z_ = 1e3,
  12764. E_ = 1100,
  12765. B_ = 2e3,
  12766. R_ = 3e3,
  12767. N_ = 3500,
  12768. F_ = 4e3,
  12769. V_ = 5e3,
  12770. W_ = {
  12771. PROCESSOR: {
  12772. FILTER: k_,
  12773. SERIES_FILTER: P_,
  12774. STATISTIC: L_
  12775. },
  12776. VISUAL: {
  12777. LAYOUT: z_,
  12778. PROGRESSIVE_LAYOUT: E_,
  12779. GLOBAL: B_,
  12780. CHART: R_,
  12781. POST_CHART_LAYOUT: N_,
  12782. COMPONENT: F_,
  12783. BRUSH: V_
  12784. }
  12785. },
  12786. H_ = "__flagInMainProcess",
  12787. G_ = "__optionUpdated",
  12788. Z_ = /^[a-zA-Z0-9_]+$/;
  12789. Zl.prototype.on = Gl("on", !0), Zl.prototype.off = Gl("off", !0), Zl.prototype.one = Gl("one", !0), c(Zl, zp);
  12790. var X_ = Xl.prototype;
  12791. X_._onframe = function() {
  12792. if (!this._disposed) {
  12793. var t = this._scheduler;
  12794. if (this[G_]) {
  12795. var e = this[G_].silent;
  12796. this[H_] = !0, Ul(this), Y_.update.call(this), this[H_] = !1, this[G_] = !1, $l.call(this, e),
  12797. Ql.call(this, e)
  12798. } else if (t.unfinished) {
  12799. var n = D_,
  12800. i = this._model,
  12801. r = this._api;
  12802. t.unfinished = !1;
  12803. do {
  12804. var o = +new Date;
  12805. t.performSeriesTasks(i), t.performDataProcessorTasks(i), ql(this, i), t.performVisualTasks(
  12806. i), ru(this, this._model, r, "remain"), n -= +new Date - o
  12807. } while (n > 0 && t.unfinished);
  12808. t.unfinished || this._zr.flush()
  12809. }
  12810. }
  12811. }, X_.getDom = function() {
  12812. return this._dom
  12813. }, X_.getZr = function() {
  12814. return this._zr
  12815. }, X_.setOption = function(t, e, n) {
  12816. if (lp && b_(!this[H_], "`setOption` should not be called during main process."), this._disposed)
  12817. return void au(this.id);
  12818. var i;
  12819. if (I_(e) && (n = e.lazyUpdate, i = e.silent, e = e.notMerge), this[H_] = !0, !this._model || e) {
  12820. var r = new Cs(this._api),
  12821. o = this._theme,
  12822. a = this._model = new cx;
  12823. a.scheduler = this._scheduler, a.init(null, null, o, r)
  12824. }
  12825. this._model.setOption(t, $_), n ? (this[G_] = {
  12826. silent: i
  12827. }, this[H_] = !1) : (Ul(this), Y_.update.call(this), this._zr.flush(), this[G_] = !1, this[H_] = !1,
  12828. $l.call(this, i), Ql.call(this, i))
  12829. }, X_.setTheme = function() {
  12830. console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")
  12831. }, X_.getModel = function() {
  12832. return this._model
  12833. }, X_.getOption = function() {
  12834. return this._model && this._model.getOption()
  12835. }, X_.getWidth = function() {
  12836. return this._zr.getWidth()
  12837. }, X_.getHeight = function() {
  12838. return this._zr.getHeight()
  12839. }, X_.getDevicePixelRatio = function() {
  12840. return this._zr.painter.dpr || window.devicePixelRatio || 1
  12841. }, X_.getRenderedCanvas = function(t) {
  12842. if (dp.canvasSupported) {
  12843. t = t || {}, t.pixelRatio = t.pixelRatio || 1, t.backgroundColor = t.backgroundColor || this._model
  12844. .get("backgroundColor");
  12845. var e = this._zr;
  12846. return e.painter.getRenderedCanvas(t)
  12847. }
  12848. }, X_.getSvgDataURL = function() {
  12849. if (dp.svgSupported) {
  12850. var t = this._zr,
  12851. e = t.storage.getDisplayList();
  12852. return f(e, function(t) {
  12853. t.stopAnimation(!0)
  12854. }), t.painter.toDataURL()
  12855. }
  12856. }, X_.getDataURL = function(t) {
  12857. if (this._disposed) return void au(this.id);
  12858. t = t || {};
  12859. var e = t.excludeComponents,
  12860. n = this._model,
  12861. i = [],
  12862. r = this;
  12863. S_(e, function(t) {
  12864. n.eachComponent({
  12865. mainType: t
  12866. }, function(t) {
  12867. var e = r._componentsMap[t.__viewId];
  12868. e.group.ignore || (i.push(e), e.group.ignore = !0)
  12869. })
  12870. });
  12871. var o = "svg" === this._zr.painter.getType() ? this.getSvgDataURL() : this.getRenderedCanvas(t)
  12872. .toDataURL("image/" + (t && t.type || "png"));
  12873. return S_(i, function(t) {
  12874. t.group.ignore = !1
  12875. }), o
  12876. }, X_.getConnectedDataURL = function(t) {
  12877. if (this._disposed) return void au(this.id);
  12878. if (dp.canvasSupported) {
  12879. var e = "svg" === t.type,
  12880. n = this.group,
  12881. r = Math.min,
  12882. o = Math.max,
  12883. a = 1 / 0;
  12884. if (iw[n]) {
  12885. var s = a,
  12886. l = a,
  12887. u = -a,
  12888. h = -a,
  12889. c = [],
  12890. d = t && t.pixelRatio || 1;
  12891. f(nw, function(a) {
  12892. if (a.group === n) {
  12893. var d = e ? a.getZr().painter.getSvgDom().innerHTML : a.getRenderedCanvas(i(t)),
  12894. f = a.getDom().getBoundingClientRect();
  12895. s = r(f.left, s), l = r(f.top, l), u = o(f.right, u), h = o(f.bottom, h), c
  12896. .push({
  12897. dom: d,
  12898. left: f.left,
  12899. top: f.top
  12900. })
  12901. }
  12902. }), s *= d, l *= d, u *= d, h *= d;
  12903. var p = u - s,
  12904. g = h - l,
  12905. v = Sp(),
  12906. m = qi(v, {
  12907. renderer: e ? "svg" : "canvas"
  12908. });
  12909. if (m.resize({
  12910. width: p,
  12911. height: g
  12912. }), e) {
  12913. var y = "";
  12914. return S_(c, function(t) {
  12915. var e = t.left - s,
  12916. n = t.top - l;
  12917. y += '<g transform="translate(' + e + "," + n + ')">' + t.dom + "</g>"
  12918. }), m.painter.getSvgRoot().innerHTML = y, t.connectedBackgroundColor && m.painter
  12919. .setBackgroundColor(t.connectedBackgroundColor), m.refreshImmediately(), m.painter
  12920. .toDataURL()
  12921. }
  12922. return t.connectedBackgroundColor && m.add(new Jm({
  12923. shape: {
  12924. x: 0,
  12925. y: 0,
  12926. width: p,
  12927. height: g
  12928. },
  12929. style: {
  12930. fill: t.connectedBackgroundColor
  12931. }
  12932. })), S_(c, function(t) {
  12933. var e = new Ai({
  12934. style: {
  12935. x: t.left * d - s,
  12936. y: t.top * d - l,
  12937. image: t.dom
  12938. }
  12939. });
  12940. m.add(e)
  12941. }), m.refreshImmediately(), v.toDataURL("image/" + (t && t.type || "png"))
  12942. }
  12943. return this.getDataURL(t)
  12944. }
  12945. }, X_.convertToPixel = x(Yl, "convertToPixel"), X_.convertFromPixel = x(Yl, "convertFromPixel"), X_
  12946. .containPixel = function(t, e) {
  12947. if (this._disposed) return void au(this.id);
  12948. var n, i = this._model;
  12949. return t = hr(i, t), f(t, function(t, i) {
  12950. i.indexOf("Models") >= 0 && f(t, function(t) {
  12951. var r = t.coordinateSystem;
  12952. if (r && r.containPoint) n |= !!r.containPoint(e);
  12953. else if ("seriesModels" === i) {
  12954. var o = this._chartsMap[t.__viewId];
  12955. o && o.containPoint ? n |= o.containPoint(e, t) : lp && console.warn(i +
  12956. ": " + (o ? "The found component do not support containPoint." :
  12957. "No view mapping to the found component."))
  12958. } else lp && console.warn(i + ": containPoint is not supported")
  12959. }, this)
  12960. }, this), !!n
  12961. }, X_.getVisual = function(t, e) {
  12962. var n = this._model;
  12963. t = hr(n, t, {
  12964. defaultMainType: "series"
  12965. });
  12966. var i = t.seriesModel;
  12967. lp && (i || console.warn("There is no specified seires model"));
  12968. var r = i.getData(),
  12969. o = t.hasOwnProperty("dataIndexInside") ? t.dataIndexInside : t.hasOwnProperty("dataIndex") ? r
  12970. .indexOfRawIndex(t.dataIndex) : null;
  12971. return null != o ? r.getItemVisual(o, e) : r.getVisual(e)
  12972. }, X_.getViewOfComponentModel = function(t) {
  12973. return this._componentsMap[t.__viewId]
  12974. }, X_.getViewOfSeriesModel = function(t) {
  12975. return this._chartsMap[t.__viewId]
  12976. };
  12977. var Y_ = {
  12978. prepareAndUpdate: function(t) {
  12979. Ul(this), Y_.update.call(this, t)
  12980. },
  12981. update: function(t) {
  12982. var e = this._model,
  12983. n = this._api,
  12984. i = this._zr,
  12985. r = this._coordSysMgr,
  12986. o = this._scheduler;
  12987. if (e) {
  12988. o.restoreData(e, t), o.performSeriesTasks(e), r.create(e, n), o.performDataProcessorTasks(e,
  12989. t), ql(this, e), r.update(e, n), eu(e), o.performVisualTasks(e, t), nu(this, e, n,
  12990. t);
  12991. var a = e.get("backgroundColor") || "transparent";
  12992. if (dp.canvasSupported) i.setBackgroundColor(a);
  12993. else {
  12994. var s = tn(a);
  12995. a = hn(s, "rgb"), 0 === s[3] && (a = "transparent")
  12996. }
  12997. ou(e, n)
  12998. }
  12999. },
  13000. updateTransform: function(t) {
  13001. var e = this._model,
  13002. n = this,
  13003. i = this._api;
  13004. if (e) {
  13005. var r = [];
  13006. e.eachComponent(function(o, a) {
  13007. var s = n.getViewOfComponentModel(a);
  13008. if (s && s.__alive)
  13009. if (s.updateTransform) {
  13010. var l = s.updateTransform(a, e, i, t);
  13011. l && l.update && r.push(s)
  13012. } else r.push(s)
  13013. });
  13014. var o = N();
  13015. e.eachSeries(function(r) {
  13016. var a = n._chartsMap[r.__viewId];
  13017. if (a.updateTransform) {
  13018. var s = a.updateTransform(r, e, i, t);
  13019. s && s.update && o.set(r.uid, 1)
  13020. } else o.set(r.uid, 1)
  13021. }), eu(e), this._scheduler.performVisualTasks(e, t, {
  13022. setDirty: !0,
  13023. dirtyMap: o
  13024. }), ru(n, e, i, t, o), ou(e, this._api)
  13025. }
  13026. },
  13027. updateView: function(t) {
  13028. var e = this._model;
  13029. e && (hl.markUpdateMethod(t, "updateView"), eu(e), this._scheduler.performVisualTasks(e, t, {
  13030. setDirty: !0
  13031. }), nu(this, this._model, this._api, t), ou(e, this._api))
  13032. },
  13033. updateVisual: function(t) {
  13034. Y_.update.call(this, t)
  13035. },
  13036. updateLayout: function(t) {
  13037. Y_.update.call(this, t)
  13038. }
  13039. };
  13040. X_.resize = function(t) {
  13041. if (lp && b_(!this[H_], "`resize` should not be called during main process."), this._disposed)
  13042. return void au(this.id);
  13043. this._zr.resize(t);
  13044. var e = this._model;
  13045. if (this._loadingFX && this._loadingFX.resize(), e) {
  13046. var n = e.resetOption("media"),
  13047. i = t && t.silent;
  13048. this[H_] = !0, n && Ul(this), Y_.update.call(this), this[H_] = !1, $l.call(this, i), Ql.call(this,
  13049. i)
  13050. }
  13051. }, X_.showLoading = function(t, e) {
  13052. if (this._disposed) return void au(this.id);
  13053. if (I_(t) && (e = t, t = ""), t = t || "default", this.hideLoading(), !ew[t]) return void(lp && console
  13054. .warn("Loading effects " + t + " not exists."));
  13055. var n = ew[t](this._api, e),
  13056. i = this._zr;
  13057. this._loadingFX = n, i.add(n)
  13058. }, X_.hideLoading = function() {
  13059. return this._disposed ? void au(this.id) : (this._loadingFX && this._zr.remove(this._loadingFX), void(
  13060. this._loadingFX = null))
  13061. }, X_.makeActionFromEvent = function(t) {
  13062. var e = a({}, t);
  13063. return e.type = q_[t.type], e
  13064. }, X_.dispatchAction = function(t, e) {
  13065. if (this._disposed) return void au(this.id);
  13066. if (I_(e) || (e = {
  13067. silent: !!e
  13068. }), j_[t.type] && this._model) {
  13069. if (this[H_]) return void this._pendingActions.push(t);
  13070. Kl.call(this, t, e.silent), e.flush ? this._zr.flush(!0) : e.flush !== !1 && dp.browser.weChat &&
  13071. this._throttledZrFlush(), $l.call(this, e.silent), Ql.call(this, e.silent)
  13072. }
  13073. }, X_.appendData = function(t) {
  13074. if (this._disposed) return void au(this.id);
  13075. var e = t.seriesIndex,
  13076. n = this.getModel(),
  13077. i = n.getSeriesByIndex(e);
  13078. lp && b_(t.data && i), i.appendData(t), this._scheduler.unfinished = !0
  13079. }, X_.on = Gl("on", !1), X_.off = Gl("off", !1), X_.one = Gl("one", !1);
  13080. var U_ = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout",
  13081. "contextmenu"
  13082. ];
  13083. X_._initEvents = function() {
  13084. S_(U_, function(t) {
  13085. var e = function(e) {
  13086. var n, i = this.getModel(),
  13087. r = e.target,
  13088. o = "globalout" === t;
  13089. if (o) n = {};
  13090. else if (r && null != r.dataIndex) {
  13091. var s = r.dataModel || i.getSeriesByIndex(r.seriesIndex);
  13092. n = s && s.getDataParams(r.dataIndex, r.dataType, r) || {}
  13093. } else r && r.eventData && (n = a({}, r.eventData));
  13094. if (n) {
  13095. var l = n.componentType,
  13096. u = n.componentIndex;
  13097. ("markLine" === l || "markPoint" === l || "markArea" === l) && (l = "series",
  13098. u = n.seriesIndex);
  13099. var h = l && null != u && i.getComponent(l, u),
  13100. c = h && this["series" === h.mainType ? "_chartsMap" : "_componentsMap"][h
  13101. .__viewId
  13102. ];
  13103. lp && (o || h && c || console.warn("model or view can not be found by params")),
  13104. n.event = e, n.type = t, this._ecEventProcessor.eventInfo = {
  13105. targetEl: r,
  13106. packedEvent: n,
  13107. model: h,
  13108. view: c
  13109. }, this.trigger(t, n)
  13110. }
  13111. };
  13112. e.zrEventfulCallAtLast = !0, this._zr.on(t, e, this)
  13113. }, this), S_(q_, function(t, e) {
  13114. this._messageCenter.on(e, function(t) {
  13115. this.trigger(e, t)
  13116. }, this)
  13117. }, this)
  13118. }, X_.isDisposed = function() {
  13119. return this._disposed
  13120. }, X_.clear = function() {
  13121. return this._disposed ? void au(this.id) : void this.setOption({
  13122. series: []
  13123. }, !0)
  13124. }, X_.dispose = function() {
  13125. if (this._disposed) return void au(this.id);
  13126. this._disposed = !0, dr(this.getDom(), aw, "");
  13127. var t = this._api,
  13128. e = this._model;
  13129. S_(this._componentsViews, function(n) {
  13130. n.dispose(e, t)
  13131. }), S_(this._chartsViews, function(n) {
  13132. n.dispose(e, t)
  13133. }), this._zr.dispose(), delete nw[this.id]
  13134. }, c(Xl, zp), cu.prototype = {
  13135. constructor: cu,
  13136. normalizeQuery: function(t) {
  13137. var e = {},
  13138. n = {},
  13139. i = {};
  13140. if (b(t)) {
  13141. var r = C_(t);
  13142. e.mainType = r.main || null, e.subType = r.sub || null
  13143. } else {
  13144. var o = ["Index", "Name", "Id"],
  13145. a = {
  13146. name: 1,
  13147. dataIndex: 1,
  13148. dataType: 1
  13149. };
  13150. f(t, function(t, r) {
  13151. for (var s = !1, l = 0; l < o.length; l++) {
  13152. var u = o[l],
  13153. h = r.lastIndexOf(u);
  13154. if (h > 0 && h === r.length - u.length) {
  13155. var c = r.slice(0, h);
  13156. "data" !== c && (e.mainType = c, e[u.toLowerCase()] = t, s = !0)
  13157. }
  13158. }
  13159. a.hasOwnProperty(r) && (n[r] = t, s = !0), s || (i[r] = t)
  13160. })
  13161. }
  13162. return {
  13163. cptQuery: e,
  13164. dataQuery: n,
  13165. otherQuery: i
  13166. }
  13167. },
  13168. filter: function(t, e) {
  13169. function n(t, e, n, i) {
  13170. return null == t[n] || e[i || n] === t[n]
  13171. }
  13172. var i = this.eventInfo;
  13173. if (!i) return !0;
  13174. var r = i.targetEl,
  13175. o = i.packedEvent,
  13176. a = i.model,
  13177. s = i.view;
  13178. if (!a || !s) return !0;
  13179. var l = e.cptQuery,
  13180. u = e.dataQuery;
  13181. return n(l, a, "mainType") && n(l, a, "subType") && n(l, a, "index", "componentIndex") && n(l,
  13182. a, "name") && n(l, a, "id") && n(u, o, "name") && n(u, o, "dataIndex") && n(u, o,
  13183. "dataType") && (!s.filterForExposedEvent || s.filterForExposedEvent(t, e.otherQuery, r,
  13184. o))
  13185. },
  13186. afterTrigger: function() {
  13187. this.eventInfo = null
  13188. }
  13189. };
  13190. var j_ = {},
  13191. q_ = {},
  13192. K_ = [],
  13193. $_ = [],
  13194. Q_ = [],
  13195. J_ = [],
  13196. tw = {},
  13197. ew = {},
  13198. nw = {},
  13199. iw = {},
  13200. rw = new Date - 0,
  13201. ow = new Date - 0,
  13202. aw = "_echarts_instance_",
  13203. sw = gu;
  13204. Tu(B_, jx), _u(Cx), wu(O_, Tx), Du("default", Qx), Su({
  13205. type: "highlight",
  13206. event: "highlight",
  13207. update: "highlight"
  13208. }, V), Su({
  13209. type: "downplay",
  13210. event: "downplay",
  13211. update: "downplay"
  13212. }, V), xu("light", a_), xu("dark", h_);
  13213. var lw = {};
  13214. Nu.prototype = {
  13215. constructor: Nu,
  13216. add: function(t) {
  13217. return this._add = t, this
  13218. },
  13219. update: function(t) {
  13220. return this._update = t, this
  13221. },
  13222. remove: function(t) {
  13223. return this._remove = t, this
  13224. },
  13225. execute: function() {
  13226. var t, e = this._old,
  13227. n = this._new,
  13228. i = {},
  13229. r = {},
  13230. o = [],
  13231. a = [];
  13232. for (Fu(e, i, o, "_oldKeyGetter", this), Fu(n, r, a, "_newKeyGetter", this), t = 0; t < e
  13233. .length; t++) {
  13234. var s = o[t],
  13235. l = r[s];
  13236. if (null != l) {
  13237. var u = l.length;
  13238. u ? (1 === u && (r[s] = null), l = l.shift()) : r[s] = null, this._update && this
  13239. ._update(l, t)
  13240. } else this._remove && this._remove(t)
  13241. }
  13242. for (var t = 0; t < a.length; t++) {
  13243. var s = a[t];
  13244. if (r.hasOwnProperty(s)) {
  13245. var l = r[s];
  13246. if (null == l) continue;
  13247. if (l.length)
  13248. for (var h = 0, u = l.length; u > h; h++) this._add && this._add(l[h]);
  13249. else this._add && this._add(l)
  13250. }
  13251. }
  13252. }
  13253. };
  13254. var uw = N(["tooltip", "label", "itemName", "itemId", "seriesName"]),
  13255. hw = S,
  13256. cw = "undefined",
  13257. dw = -1,
  13258. fw = "e\x00\x00",
  13259. pw = {
  13260. "float": typeof Float64Array === cw ? Array : Float64Array,
  13261. "int": typeof Int32Array === cw ? Array : Int32Array,
  13262. ordinal: Array,
  13263. number: Array,
  13264. time: Array
  13265. },
  13266. gw = typeof Uint32Array === cw ? Array : Uint32Array,
  13267. vw = typeof Int32Array === cw ? Array : Int32Array,
  13268. mw = typeof Uint16Array === cw ? Array : Uint16Array,
  13269. yw = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_rawData", "_chunkSize",
  13270. "_chunkCount", "_dimValueGetter", "_count", "_rawCount", "_nameDimIdx", "_idDimIdx"
  13271. ],
  13272. xw = ["_extent", "_approximateExtent", "_rawExtent"],
  13273. _w = function(t, e) {
  13274. t = t || ["x", "y"];
  13275. for (var n = {}, i = [], r = {}, o = 0; o < t.length; o++) {
  13276. var a = t[o];
  13277. b(a) ? a = new Zu({
  13278. name: a
  13279. }) : a instanceof Zu || (a = new Zu(a));
  13280. var s = a.name;
  13281. a.type = a.type || "float", a.coordDim || (a.coordDim = s, a.coordDimIndex = 0), a.otherDims = a
  13282. .otherDims || {}, i.push(s), n[s] = a, a.index = o, a.createInvertedIndices && (r[s] = [])
  13283. }
  13284. this.dimensions = i, this._dimensionInfos = n, this.hostModel = e, this.dataType, this._indices = null,
  13285. this._count = 0, this._rawCount = 0, this._storage = {}, this._nameList = [], this._idList = [],
  13286. this._optionModels = [], this._visual = {}, this._layout = {}, this._itemVisuals = [], this
  13287. .hasItemVisual = {}, this._itemLayouts = [], this._graphicEls = [], this._chunkSize = 1e5, this
  13288. ._chunkCount = 0, this._rawData, this._rawExtent = {}, this._extent = {}, this
  13289. ._approximateExtent = {}, this._dimensionsSummary = Vu(this), this._invertedIndicesMap = r, this
  13290. ._calculationInfo = {}, this.userOutput = this._dimensionsSummary.userOutput
  13291. },
  13292. ww = _w.prototype;
  13293. ww.type = "list", ww.hasItemOption = !0, ww.getDimension = function(t) {
  13294. return ("number" == typeof t || !isNaN(t) && !this._dimensionInfos.hasOwnProperty(t)) && (t = this
  13295. .dimensions[t]), t
  13296. }, ww.getDimensionInfo = function(t) {
  13297. return this._dimensionInfos[this.getDimension(t)]
  13298. }, ww.getDimensionsOnCoord = function() {
  13299. return this._dimensionsSummary.dataDimsOnCoord.slice()
  13300. }, ww.mapDimension = function(t, e) {
  13301. var n = this._dimensionsSummary;
  13302. if (null == e) return n.encodeFirstDimNotExtra[t];
  13303. var i = n.encode[t];
  13304. return e === !0 ? (i || []).slice() : i && i[e]
  13305. }, ww.initData = function(t, e, n) {
  13306. var i = is.isInstance(t) || d(t);
  13307. if (i && (t = new Zs(t, this.dimensions.length)), lp && !i && ("function" != typeof t.getItem ||
  13308. "function" != typeof t.count)) throw new Error("Inavlid data provider.");
  13309. this._rawData = t, this._storage = {}, this._indices = null, this._nameList = e || [], this
  13310. ._idList = [], this._nameRepeatCount = {}, n || (this.hasItemOption = !1), this.defaultDimValueGetter =
  13311. Px[this._rawData.getSource().sourceFormat], this._dimValueGetter = n = n || this
  13312. .defaultDimValueGetter, this._dimValueGetterArrayRows = Px.arrayRows, this._rawExtent = {}, this
  13313. ._initDataFromProvider(0, t.count()), t.pure && (this.hasItemOption = !1)
  13314. }, ww.getProvider = function() {
  13315. return this._rawData
  13316. }, ww.appendData = function(t) {
  13317. lp && L(!this._indices, "appendData can only be called on raw data.");
  13318. var e = this._rawData,
  13319. n = this.count();
  13320. e.appendData(t);
  13321. var i = e.count();
  13322. e.persistent || (i += n), this._initDataFromProvider(n, i)
  13323. }, ww.appendValues = function(t, e) {
  13324. for (var n = this._chunkSize, i = this._storage, r = this.dimensions, o = r.length, a = this._rawExtent,
  13325. s = this.count(), l = s + Math.max(t.length, e ? e.length : 0), u = this._chunkCount, h = 0; o >
  13326. h; h++) {
  13327. var c = r[h];
  13328. a[c] || (a[c] = rh()), i[c] || (i[c] = []), ju(i, this._dimensionInfos[c], n, u, l), this
  13329. ._chunkCount = i[c].length
  13330. }
  13331. for (var d = new Array(o), f = s; l > f; f++) {
  13332. for (var p = f - s, g = Math.floor(f / n), v = f % n, m = 0; o > m; m++) {
  13333. var c = r[m],
  13334. y = this._dimValueGetterArrayRows(t[p] || d, c, p, m);
  13335. i[c][g][v] = y;
  13336. var x = a[c];
  13337. y < x[0] && (x[0] = y), y > x[1] && (x[1] = y)
  13338. }
  13339. e && (this._nameList[f] = e[p])
  13340. }
  13341. this._rawCount = this._count = l, this._extent = {}, qu(this)
  13342. }, ww._initDataFromProvider = function(t, e) {
  13343. if (!(t >= e)) {
  13344. for (var n, i = this._chunkSize, r = this._rawData, o = this._storage, a = this.dimensions, s = a
  13345. .length, l = this._dimensionInfos, u = this._nameList, h = this._idList, c = this
  13346. ._rawExtent, d = this._nameRepeatCount = {}, f = this._chunkCount, p = 0; s > p; p++) {
  13347. var g = a[p];
  13348. c[g] || (c[g] = rh());
  13349. var v = l[g];
  13350. 0 === v.otherDims.itemName && (n = this._nameDimIdx = p), 0 === v.otherDims.itemId && (this
  13351. ._idDimIdx = p), o[g] || (o[g] = []), ju(o, v, i, f, e), this._chunkCount = o[g].length
  13352. }
  13353. for (var m = new Array(s), y = t; e > y; y++) {
  13354. m = r.getItem(y, m);
  13355. for (var x = Math.floor(y / i), _ = y % i, w = 0; s > w; w++) {
  13356. var g = a[w],
  13357. b = o[g][x],
  13358. S = this._dimValueGetter(m, g, y, w);
  13359. b[_] = S;
  13360. var M = c[g];
  13361. S < M[0] && (M[0] = S), S > M[1] && (M[1] = S)
  13362. }
  13363. if (!r.pure) {
  13364. var I = u[y];
  13365. if (m && null == I)
  13366. if (null != m.name) u[y] = I = m.name;
  13367. else if (null != n) {
  13368. var C = a[n],
  13369. T = o[C][x];
  13370. if (T) {
  13371. I = T[_];
  13372. var A = l[C].ordinalMeta;
  13373. A && A.categories.length && (I = A.categories[I])
  13374. }
  13375. }
  13376. var D = null == m ? null : m.id;
  13377. null == D && null != I && (d[I] = d[I] || 0, D = I, d[I] > 0 && (D += "__ec__" + d[I]), d[
  13378. I]++), null != D && (h[y] = D)
  13379. }
  13380. }!r.persistent && r.clean && r.clean(), this._rawCount = this._count = e, this._extent = {}, qu(
  13381. this)
  13382. }
  13383. }, ww.count = function() {
  13384. return this._count
  13385. }, ww.getIndices = function() {
  13386. var t, e = this._indices;
  13387. if (e) {
  13388. var n = e.constructor,
  13389. i = this._count;
  13390. if (n === Array) {
  13391. t = new n(i);
  13392. for (var r = 0; i > r; r++) t[r] = e[r]
  13393. } else t = new n(e.buffer, 0, i)
  13394. } else
  13395. for (var n = Xu(this), t = new n(this.count()), r = 0; r < t.length; r++) t[r] = r;
  13396. return t
  13397. }, ww.get = function(t, e) {
  13398. if (!(e >= 0 && e < this._count)) return 0 / 0;
  13399. var n = this._storage;
  13400. if (!n[t]) return 0 / 0;
  13401. e = this.getRawIndex(e);
  13402. var i = Math.floor(e / this._chunkSize),
  13403. r = e % this._chunkSize,
  13404. o = n[t][i],
  13405. a = o[r];
  13406. return a
  13407. }, ww.getByRawIndex = function(t, e) {
  13408. if (!(e >= 0 && e < this._rawCount)) return 0 / 0;
  13409. var n = this._storage[t];
  13410. if (!n) return 0 / 0;
  13411. var i = Math.floor(e / this._chunkSize),
  13412. r = e % this._chunkSize,
  13413. o = n[i];
  13414. return o[r]
  13415. }, ww._getFast = function(t, e) {
  13416. var n = Math.floor(e / this._chunkSize),
  13417. i = e % this._chunkSize,
  13418. r = this._storage[t][n];
  13419. return r[i]
  13420. }, ww.getValues = function(t, e) {
  13421. var n = [];
  13422. _(t) || (e = t, t = this.dimensions);
  13423. for (var i = 0, r = t.length; r > i; i++) n.push(this.get(t[i], e));
  13424. return n
  13425. }, ww.hasValue = function(t) {
  13426. for (var e = this._dimensionsSummary.dataDimsOnCoord, n = 0, i = e.length; i > n; n++)
  13427. if (isNaN(this.get(e[n], t))) return !1;
  13428. return !0
  13429. }, ww.getDataExtent = function(t) {
  13430. t = this.getDimension(t);
  13431. var e = this._storage[t],
  13432. n = rh();
  13433. if (!e) return n;
  13434. var i, r = this.count(),
  13435. o = !this._indices;
  13436. if (o) return this._rawExtent[t].slice();
  13437. if (i = this._extent[t]) return i.slice();
  13438. i = n;
  13439. for (var a = i[0], s = i[1], l = 0; r > l; l++) {
  13440. var u = this._getFast(t, this.getRawIndex(l));
  13441. a > u && (a = u), u > s && (s = u)
  13442. }
  13443. return i = [a, s], this._extent[t] = i, i
  13444. }, ww.getApproximateExtent = function(t) {
  13445. return t = this.getDimension(t), this._approximateExtent[t] || this.getDataExtent(t)
  13446. }, ww.setApproximateExtent = function(t, e) {
  13447. e = this.getDimension(e), this._approximateExtent[e] = t.slice()
  13448. }, ww.getCalculationInfo = function(t) {
  13449. return this._calculationInfo[t]
  13450. }, ww.setCalculationInfo = function(t, e) {
  13451. hw(t) ? a(this._calculationInfo, t) : this._calculationInfo[t] = e
  13452. }, ww.getSum = function(t) {
  13453. var e = this._storage[t],
  13454. n = 0;
  13455. if (e)
  13456. for (var i = 0, r = this.count(); r > i; i++) {
  13457. var o = this.get(t, i);
  13458. isNaN(o) || (n += o)
  13459. }
  13460. return n
  13461. }, ww.getMedian = function(t) {
  13462. var e = [];
  13463. this.each(t, function(t) {
  13464. isNaN(t) || e.push(t)
  13465. });
  13466. var n = [].concat(e).sort(function(t, e) {
  13467. return t - e
  13468. }),
  13469. i = this.count();
  13470. return 0 === i ? 0 : i % 2 === 1 ? n[(i - 1) / 2] : (n[i / 2] + n[i / 2 - 1]) / 2
  13471. }, ww.rawIndexOf = function(t, e) {
  13472. var n = t && this._invertedIndicesMap[t];
  13473. if (lp && !n) throw new Error("Do not supported yet");
  13474. var i = n[e];
  13475. return null == i || isNaN(i) ? dw : i
  13476. }, ww.indexOfName = function(t) {
  13477. for (var e = 0, n = this.count(); n > e; e++)
  13478. if (this.getName(e) === t) return e;
  13479. return -1
  13480. }, ww.indexOfRawIndex = function(t) {
  13481. if (t >= this._rawCount || 0 > t) return -1;
  13482. if (!this._indices) return t;
  13483. var e = this._indices,
  13484. n = e[t];
  13485. if (null != n && n < this._count && n === t) return t;
  13486. for (var i = 0, r = this._count - 1; r >= i;) {
  13487. var o = (i + r) / 2 | 0;
  13488. if (e[o] < t) i = o + 1;
  13489. else {
  13490. if (!(e[o] > t)) return o;
  13491. r = o - 1
  13492. }
  13493. }
  13494. return -1
  13495. }, ww.indicesOfNearest = function(t, e, n) {
  13496. var i = this._storage,
  13497. r = i[t],
  13498. o = [];
  13499. if (!r) return o;
  13500. null == n && (n = 1 / 0);
  13501. for (var a = 1 / 0, s = -1, l = 0, u = 0, h = this.count(); h > u; u++) {
  13502. var c = e - this.get(t, u),
  13503. d = Math.abs(c);
  13504. n >= d && ((a > d || d === a && c >= 0 && 0 > s) && (a = d, s = c, l = 0), c === s && (o[l++] = u))
  13505. }
  13506. return o.length = l, o
  13507. }, ww.getRawIndex = $u, ww.getRawDataItem = function(t) {
  13508. if (this._rawData.persistent) return this._rawData.getItem(this.getRawIndex(t));
  13509. for (var e = [], n = 0; n < this.dimensions.length; n++) {
  13510. var i = this.dimensions[n];
  13511. e.push(this.get(i, t))
  13512. }
  13513. return e
  13514. }, ww.getName = function(t) {
  13515. var e = this.getRawIndex(t);
  13516. return this._nameList[e] || Ku(this, this._nameDimIdx, e) || ""
  13517. }, ww.getId = function(t) {
  13518. return Ju(this, this.getRawIndex(t))
  13519. }, ww.each = function(t, e, n, i) {
  13520. if (this._count) {
  13521. "function" == typeof t && (i = n, n = e, e = t, t = []), n = n || i || this, t = p(th(t), this
  13522. .getDimension, this), lp && eh(this, t);
  13523. for (var r = t.length, o = 0; o < this.count(); o++) switch (r) {
  13524. case 0:
  13525. e.call(n, o);
  13526. break;
  13527. case 1:
  13528. e.call(n, this.get(t[0], o), o);
  13529. break;
  13530. case 2:
  13531. e.call(n, this.get(t[0], o), this.get(t[1], o), o);
  13532. break;
  13533. default:
  13534. for (var a = 0, s = []; r > a; a++) s[a] = this.get(t[a], o);
  13535. s[a] = o, e.apply(n, s)
  13536. }
  13537. }
  13538. }, ww.filterSelf = function(t, e, n, i) {
  13539. if (this._count) {
  13540. "function" == typeof t && (i = n, n = e, e = t, t = []), n = n || i || this, t = p(th(t), this
  13541. .getDimension, this), lp && eh(this, t);
  13542. for (var r = this.count(), o = Xu(this), a = new o(r), s = [], l = t.length, u = 0, h = t[0], c =
  13543. 0; r > c; c++) {
  13544. var d, f = this.getRawIndex(c);
  13545. if (0 === l) d = e.call(n, c);
  13546. else if (1 === l) {
  13547. var g = this._getFast(h, f);
  13548. d = e.call(n, g, c)
  13549. } else {
  13550. for (var v = 0; l > v; v++) s[v] = this._getFast(h, f);
  13551. s[v] = c, d = e.apply(n, s)
  13552. }
  13553. d && (a[u++] = f)
  13554. }
  13555. return r > u && (this._indices = a), this._count = u, this._extent = {}, this.getRawIndex = this
  13556. ._indices ? Qu : $u, this
  13557. }
  13558. }, ww.selectRange = function(t) {
  13559. if (this._count) {
  13560. var e = [];
  13561. for (var n in t) t.hasOwnProperty(n) && e.push(n);
  13562. lp && eh(this, e);
  13563. var i = e.length;
  13564. if (i) {
  13565. var r = this.count(),
  13566. o = Xu(this),
  13567. a = new o(r),
  13568. s = 0,
  13569. l = e[0],
  13570. u = t[l][0],
  13571. h = t[l][1],
  13572. c = !1;
  13573. if (!this._indices) {
  13574. var d = 0;
  13575. if (1 === i) {
  13576. for (var f = this._storage[e[0]], p = 0; p < this._chunkCount; p++)
  13577. for (var g = f[p], v = Math.min(this._count - p * this._chunkSize, this._chunkSize),
  13578. m = 0; v > m; m++) {
  13579. var y = g[m];
  13580. (y >= u && h >= y || isNaN(y)) && (a[s++] = d), d++
  13581. }
  13582. c = !0
  13583. } else if (2 === i) {
  13584. for (var f = this._storage[l], x = this._storage[e[1]], _ = t[e[1]][0], w = t[e[1]][1],
  13585. p = 0; p < this._chunkCount; p++)
  13586. for (var g = f[p], b = x[p], v = Math.min(this._count - p * this._chunkSize, this
  13587. ._chunkSize), m = 0; v > m; m++) {
  13588. var y = g[m],
  13589. S = b[m];
  13590. (y >= u && h >= y || isNaN(y)) && (S >= _ && w >= S || isNaN(S)) && (a[s++] =
  13591. d), d++
  13592. }
  13593. c = !0
  13594. }
  13595. }
  13596. if (!c)
  13597. if (1 === i)
  13598. for (var m = 0; r > m; m++) {
  13599. var M = this.getRawIndex(m),
  13600. y = this._getFast(l, M);
  13601. (y >= u && h >= y || isNaN(y)) && (a[s++] = M)
  13602. } else
  13603. for (var m = 0; r > m; m++) {
  13604. for (var I = !0, M = this.getRawIndex(m), p = 0; i > p; p++) {
  13605. var C = e[p],
  13606. y = this._getFast(n, M);
  13607. (y < t[C][0] || y > t[C][1]) && (I = !1)
  13608. }
  13609. I && (a[s++] = this.getRawIndex(m))
  13610. }
  13611. return r > s && (this._indices = a), this._count = s, this._extent = {}, this.getRawIndex = this
  13612. ._indices ? Qu : $u, this
  13613. }
  13614. }
  13615. }, ww.mapArray = function(t, e, n, i) {
  13616. "function" == typeof t && (i = n, n = e, e = t, t = []), n = n || i || this;
  13617. var r = [];
  13618. return this.each(t, function() {
  13619. r.push(e && e.apply(this, arguments))
  13620. }, n), r
  13621. }, ww.map = function(t, e, n, i) {
  13622. n = n || i || this, t = p(th(t), this.getDimension, this), lp && eh(this, t);
  13623. var r = nh(this, t);
  13624. r._indices = this._indices, r.getRawIndex = r._indices ? Qu : $u;
  13625. for (var o = r._storage, a = [], s = this._chunkSize, l = t.length, u = this.count(), h = [], c = r
  13626. ._rawExtent, d = 0; u > d; d++) {
  13627. for (var f = 0; l > f; f++) h[f] = this.get(t[f], d);
  13628. h[l] = d;
  13629. var g = e && e.apply(n, h);
  13630. if (null != g) {
  13631. "object" != typeof g && (a[0] = g, g = a);
  13632. for (var v = this.getRawIndex(d), m = Math.floor(v / s), y = v % s, x = 0; x < g.length; x++) {
  13633. var _ = t[x],
  13634. w = g[x],
  13635. b = c[_],
  13636. S = o[_];
  13637. S && (S[m][y] = w), w < b[0] && (b[0] = w), w > b[1] && (b[1] = w)
  13638. }
  13639. }
  13640. }
  13641. return r
  13642. }, ww.downSample = function(t, e, n, i) {
  13643. for (var r = nh(this, [t]), o = r._storage, a = [], s = Math.floor(1 / e), l = o[t], u = this.count(),
  13644. h = this._chunkSize, c = r._rawExtent[t], d = new(Xu(this))(u), f = 0, p = 0; u > p; p += s) {
  13645. s > u - p && (s = u - p, a.length = s);
  13646. for (var g = 0; s > g; g++) {
  13647. var v = this.getRawIndex(p + g),
  13648. m = Math.floor(v / h),
  13649. y = v % h;
  13650. a[g] = l[m][y]
  13651. }
  13652. var x = n(a),
  13653. _ = this.getRawIndex(Math.min(p + i(a, x) || 0, u - 1)),
  13654. w = Math.floor(_ / h),
  13655. b = _ % h;
  13656. l[w][b] = x, x < c[0] && (c[0] = x), x > c[1] && (c[1] = x), d[f++] = _
  13657. }
  13658. return r._count = f, r._indices = d, r.getRawIndex = Qu, r
  13659. }, ww.getItemModel = function(t) {
  13660. var e = this.hostModel;
  13661. return new pa(this.getRawDataItem(t), e, e && e.ecModel)
  13662. }, ww.diff = function(t) {
  13663. var e = this;
  13664. return new Nu(t ? t.getIndices() : [], this.getIndices(), function(e) {
  13665. return Ju(t, e)
  13666. }, function(t) {
  13667. return Ju(e, t)
  13668. })
  13669. }, ww.getVisual = function(t) {
  13670. var e = this._visual;
  13671. return e && e[t]
  13672. }, ww.setVisual = function(t, e) {
  13673. if (hw(t))
  13674. for (var n in t) t.hasOwnProperty(n) && this.setVisual(n, t[n]);
  13675. else this._visual = this._visual || {}, this._visual[t] = e
  13676. }, ww.setLayout = function(t, e) {
  13677. if (hw(t))
  13678. for (var n in t) t.hasOwnProperty(n) && this.setLayout(n, t[n]);
  13679. else this._layout[t] = e
  13680. }, ww.getLayout = function(t) {
  13681. return this._layout[t]
  13682. }, ww.getItemLayout = function(t) {
  13683. return this._itemLayouts[t]
  13684. }, ww.setItemLayout = function(t, e, n) {
  13685. this._itemLayouts[t] = n ? a(this._itemLayouts[t] || {}, e) : e
  13686. }, ww.clearItemLayouts = function() {
  13687. this._itemLayouts.length = 0
  13688. }, ww.getItemVisual = function(t, e, n) {
  13689. var i = this._itemVisuals[t],
  13690. r = i && i[e];
  13691. return null != r || n ? r : this.getVisual(e)
  13692. }, ww.setItemVisual = function(t, e, n) {
  13693. var i = this._itemVisuals[t] || {},
  13694. r = this.hasItemVisual;
  13695. if (this._itemVisuals[t] = i, hw(e))
  13696. for (var o in e) e.hasOwnProperty(o) && (i[o] = e[o], r[o] = !0);
  13697. else i[e] = n, r[e] = !0
  13698. }, ww.clearAllVisual = function() {
  13699. this._visual = {}, this._itemVisuals = [], this.hasItemVisual = {}
  13700. };
  13701. var bw = function(t) {
  13702. t.seriesIndex = this.seriesIndex, t.dataIndex = this.dataIndex, t.dataType = this.dataType
  13703. };
  13704. ww.setItemGraphicEl = function(t, e) {
  13705. var n = this.hostModel;
  13706. e && (e.dataIndex = t, e.dataType = this.dataType, e.seriesIndex = n && n.seriesIndex, "group" === e
  13707. .type && e.traverse(bw, e)), this._graphicEls[t] = e
  13708. }, ww.getItemGraphicEl = function(t) {
  13709. return this._graphicEls[t]
  13710. }, ww.eachItemGraphicEl = function(t, e) {
  13711. f(this._graphicEls, function(n, i) {
  13712. n && t && t.call(e, n, i)
  13713. })
  13714. }, ww.cloneShallow = function(t) {
  13715. if (!t) {
  13716. var e = p(this.dimensions, this.getDimensionInfo, this);
  13717. t = new _w(e, this.hostModel)
  13718. }
  13719. if (t._storage = this._storage, Uu(t, this), this._indices) {
  13720. var n = this._indices.constructor;
  13721. t._indices = new n(this._indices)
  13722. } else t._indices = null;
  13723. return t.getRawIndex = t._indices ? Qu : $u, t
  13724. }, ww.wrapMethod = function(t, e) {
  13725. var n = this[t];
  13726. "function" == typeof n && (this.__wrappedMethods = this.__wrappedMethods || [], this.__wrappedMethods
  13727. .push(t), this[t] = function() {
  13728. var t = n.apply(this, arguments);
  13729. return e.apply(this, [t].concat(P(arguments)))
  13730. })
  13731. }, ww.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "map"], ww.CHANGABLE_METHODS = ["filterSelf",
  13732. "selectRange"
  13733. ];
  13734. var Sw = function(t, e) {
  13735. return e = e || {}, oh(e.coordDimensions || [], t, {
  13736. dimsDef: e.dimensionsDefine || t.dimensionsDefine,
  13737. encodeDef: e.encodeDefine || t.encodeDefine,
  13738. dimCount: e.dimensionsCount,
  13739. encodeDefaulter: e.encodeDefaulter,
  13740. generateCoord: e.generateCoord,
  13741. generateCoordCount: e.generateCoordCount
  13742. })
  13743. },
  13744. Mw = {
  13745. cartesian2d: function(t, e, n, i) {
  13746. var r = t.getReferringComponents("xAxis")[0],
  13747. o = t.getReferringComponents("yAxis")[0];
  13748. if (lp) {
  13749. if (!r) throw new Error('xAxis "' + A(t.get("xAxisIndex"), t.get("xAxisId"), 0) +
  13750. '" not found');
  13751. if (!o) throw new Error('yAxis "' + A(t.get("xAxisIndex"), t.get("yAxisId"), 0) +
  13752. '" not found')
  13753. }
  13754. e.coordSysDims = ["x", "y"], n.set("x", r), n.set("y", o), hh(r) && (i.set("x", r), e
  13755. .firstCategoryDimIndex = 0), hh(o) && (i.set("y", o), null == e.firstCategoryDimIndex &
  13756. (e.firstCategoryDimIndex = 1))
  13757. },
  13758. singleAxis: function(t, e, n, i) {
  13759. var r = t.getReferringComponents("singleAxis")[0];
  13760. if (lp && !r) throw new Error("singleAxis should be specified.");
  13761. e.coordSysDims = ["single"], n.set("single", r), hh(r) && (i.set("single", r), e
  13762. .firstCategoryDimIndex = 0)
  13763. },
  13764. polar: function(t, e, n, i) {
  13765. var r = t.getReferringComponents("polar")[0],
  13766. o = r.findAxisModel("radiusAxis"),
  13767. a = r.findAxisModel("angleAxis");
  13768. if (lp) {
  13769. if (!a) throw new Error("angleAxis option not found");
  13770. if (!o) throw new Error("radiusAxis option not found")
  13771. }
  13772. e.coordSysDims = ["radius", "angle"], n.set("radius", o), n.set("angle", a), hh(o) && (i.set(
  13773. "radius", o), e.firstCategoryDimIndex = 0), hh(a) && (i.set("angle", a), null == e
  13774. .firstCategoryDimIndex && (e.firstCategoryDimIndex = 1))
  13775. },
  13776. geo: function(t, e) {
  13777. e.coordSysDims = ["lng", "lat"]
  13778. },
  13779. parallel: function(t, e, n, i) {
  13780. var r = t.ecModel,
  13781. o = r.getComponent("parallel", t.get("parallelIndex")),
  13782. a = e.coordSysDims = o.dimensions.slice();
  13783. f(o.parallelAxisIndex, function(t, o) {
  13784. var s = r.getComponent("parallelAxis", t),
  13785. l = a[o];
  13786. n.set(l, s), hh(s) && null == e.firstCategoryDimIndex && (i.set(l, s), e
  13787. .firstCategoryDimIndex = o)
  13788. })
  13789. }
  13790. };
  13791. mh.prototype.parse = function(t) {
  13792. return t
  13793. }, mh.prototype.getSetting = function(t) {
  13794. return this._setting[t]
  13795. }, mh.prototype.contain = function(t) {
  13796. var e = this._extent;
  13797. return t >= e[0] && t <= e[1]
  13798. }, mh.prototype.normalize = function(t) {
  13799. var e = this._extent;
  13800. return e[1] === e[0] ? .5 : (t - e[0]) / (e[1] - e[0])
  13801. }, mh.prototype.scale = function(t) {
  13802. var e = this._extent;
  13803. return t * (e[1] - e[0]) + e[0]
  13804. }, mh.prototype.unionExtent = function(t) {
  13805. var e = this._extent;
  13806. t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1])
  13807. }, mh.prototype.unionExtentFromData = function(t, e) {
  13808. this.unionExtent(t.getApproximateExtent(e))
  13809. }, mh.prototype.getExtent = function() {
  13810. return this._extent.slice()
  13811. }, mh.prototype.setExtent = function(t, e) {
  13812. var n = this._extent;
  13813. isNaN(t) || (n[0] = t), isNaN(e) || (n[1] = e)
  13814. }, mh.prototype.isBlank = function() {
  13815. return this._isBlank
  13816. }, mh.prototype.setBlank = function(t) {
  13817. this._isBlank = t
  13818. }, mh.prototype.getLabel = null, mr(mh), wr(mh, {
  13819. registerWhenExtend: !0
  13820. }), yh.createByAxisModel = function(t) {
  13821. var e = t.option,
  13822. n = e.data,
  13823. i = n && p(n, _h);
  13824. return new yh({
  13825. categories: i,
  13826. needCollect: !i,
  13827. deduplication: e.dedplication !== !1
  13828. })
  13829. };
  13830. var Iw = yh.prototype;
  13831. Iw.getOrdinal = function(t) {
  13832. return xh(this).get(t)
  13833. }, Iw.parseAndCollect = function(t) {
  13834. var e, n = this._needCollect;
  13835. if ("string" != typeof t && !n) return t;
  13836. if (n && !this._deduplication) return e = this.categories.length, this.categories[e] = t, e;
  13837. var i = xh(this);
  13838. return e = i.get(t), null == e && (n ? (e = this.categories.length, this.categories[e] = t, i.set(t,
  13839. e)) : e = 0 / 0), e
  13840. };
  13841. var Cw = mh.prototype,
  13842. Tw = mh.extend({
  13843. type: "ordinal",
  13844. init: function(t, e) {
  13845. (!t || _(t)) && (t = new yh({
  13846. categories: t
  13847. })), this._ordinalMeta = t, this._extent = e || [0, t.categories.length - 1]
  13848. },
  13849. parse: function(t) {
  13850. return "string" == typeof t ? this._ordinalMeta.getOrdinal(t) : Math.round(t)
  13851. },
  13852. contain: function(t) {
  13853. return t = this.parse(t), Cw.contain.call(this, t) && null != this._ordinalMeta.categories[
  13854. t]
  13855. },
  13856. normalize: function(t) {
  13857. return Cw.normalize.call(this, this.parse(t))
  13858. },
  13859. scale: function(t) {
  13860. return Math.round(Cw.scale.call(this, t))
  13861. },
  13862. getTicks: function() {
  13863. for (var t = [], e = this._extent, n = e[0]; n <= e[1];) t.push(n), n++;
  13864. return t
  13865. },
  13866. getLabel: function(t) {
  13867. return this.isBlank() ? void 0 : this._ordinalMeta.categories[t]
  13868. },
  13869. count: function() {
  13870. return this._extent[1] - this._extent[0] + 1
  13871. },
  13872. unionExtentFromData: function(t, e) {
  13873. this.unionExtent(t.getApproximateExtent(e))
  13874. },
  13875. getOrdinalMeta: function() {
  13876. return this._ordinalMeta
  13877. },
  13878. niceTicks: V,
  13879. niceExtent: V
  13880. });
  13881. Tw.create = function() {
  13882. return new Tw
  13883. };
  13884. var Aw = Sa,
  13885. Dw = Sa,
  13886. kw = mh.extend({
  13887. type: "interval",
  13888. _interval: 0,
  13889. _intervalPrecision: 2,
  13890. setExtent: function(t, e) {
  13891. var n = this._extent;
  13892. isNaN(t) || (n[0] = parseFloat(t)), isNaN(e) || (n[1] = parseFloat(e))
  13893. },
  13894. unionExtent: function(t) {
  13895. var e = this._extent;
  13896. t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]), kw.prototype.setExtent.call(
  13897. this, e[0], e[1])
  13898. },
  13899. getInterval: function() {
  13900. return this._interval
  13901. },
  13902. setInterval: function(t) {
  13903. this._interval = t, this._niceExtent = this._extent.slice(), this._intervalPrecision = bh(t)
  13904. },
  13905. getTicks: function(t) {
  13906. var e = this._interval,
  13907. n = this._extent,
  13908. i = this._niceExtent,
  13909. r = this._intervalPrecision,
  13910. o = [];
  13911. if (!e) return o;
  13912. var a = 1e4;
  13913. n[0] < i[0] && o.push(t ? Dw(i[0] - e, r) : n[0]);
  13914. for (var s = i[0]; s <= i[1] && (o.push(s), s = Dw(s + e, r), s !== o[o.length - 1]);)
  13915. if (o.length > a) return [];
  13916. var l = o.length ? o[o.length - 1] : i[1];
  13917. return n[1] > l && o.push(t ? Dw(l + e, r) : n[1]), o
  13918. },
  13919. getMinorTicks: function(t) {
  13920. for (var e = this.getTicks(!0), n = [], i = this.getExtent(), r = 1; r < e.length; r++) {
  13921. for (var o = e[r], a = e[r - 1], s = 0, l = [], u = o - a, h = u / t; t - 1 > s;) {
  13922. var c = Sa(a + (s + 1) * h);
  13923. c > i[0] && c < i[1] && l.push(c), s++
  13924. }
  13925. n.push(l)
  13926. }
  13927. return n
  13928. },
  13929. getLabel: function(t, e) {
  13930. if (null == t) return "";
  13931. var n = e && e.precision;
  13932. return null == n ? n = Ca(t) || 0 : "auto" === n && (n = this._intervalPrecision), t = Dw(t,
  13933. n, !0), Na(t)
  13934. },
  13935. niceTicks: function(t, e, n) {
  13936. t = t || 5;
  13937. var i = this._extent,
  13938. r = i[1] - i[0];
  13939. if (isFinite(r)) {
  13940. 0 > r && (r = -r, i.reverse());
  13941. var o = wh(i, t, e, n);
  13942. this._intervalPrecision = o.intervalPrecision, this._interval = o.interval, this
  13943. ._niceExtent = o.niceTickExtent
  13944. }
  13945. },
  13946. niceExtent: function(t) {
  13947. var e = this._extent;
  13948. if (e[0] === e[1])
  13949. if (0 !== e[0]) {
  13950. var n = e[0];
  13951. t.fixMax ? e[0] -= n / 2 : (e[1] += n / 2, e[0] -= n / 2)
  13952. } else e[1] = 1;
  13953. var i = e[1] - e[0];
  13954. isFinite(i) || (e[0] = 0, e[1] = 1), this.niceTicks(t.splitNumber, t.minInterval, t
  13955. .maxInterval);
  13956. var r = this._interval;
  13957. t.fixMin || (e[0] = Dw(Math.floor(e[0] / r) * r)), t.fixMax || (e[1] = Dw(Math.ceil(e[1] /
  13958. r) * r))
  13959. }
  13960. });
  13961. kw.create = function() {
  13962. return new kw
  13963. };
  13964. var Pw = "__ec_stack_",
  13965. Ow = .5,
  13966. Lw = "undefined" != typeof Float32Array ? Float32Array : Array,
  13967. zw = ({
  13968. seriesType: "bar",
  13969. plan: Vx(),
  13970. reset: function(t) {
  13971. function e(t, e) {
  13972. for (var n, d = t.count, f = new Lw(2 * d), p = new Lw(2 * d), g = new Lw(d), v = [],
  13973. m = [], y = 0, x = 0; null != (n = t.next());) m[h] = e.get(s, n), m[1 - h] = e
  13974. .get(l, n), v = i.dataToPoint(m, null, v), p[y] = u ? r.x + r.width : v[0], f[y++] =
  13975. v[0], p[y] = u ? v[1] : r.y + r.height, f[y++] = v[1], g[x++] = n;
  13976. e.setLayout({
  13977. largePoints: f,
  13978. largeDataIndices: g,
  13979. largeBackgroundPoints: p,
  13980. barWidth: c,
  13981. valueAxisStart: zh(o, a, !1),
  13982. backgroundStart: u ? r.x : r.y,
  13983. valueAxisHorizontal: u
  13984. })
  13985. }
  13986. if (Oh(t) && Lh(t)) {
  13987. var n = t.getData(),
  13988. i = t.coordinateSystem,
  13989. r = i.grid.getRect(),
  13990. o = i.getBaseAxis(),
  13991. a = i.getOtherAxis(o),
  13992. s = n.mapDimension(a.dim),
  13993. l = n.mapDimension(o.dim),
  13994. u = a.isHorizontal(),
  13995. h = u ? 0 : 1,
  13996. c = Ph(Dh([t]), o, t).width;
  13997. return c > Ow || (c = Ow), {
  13998. progress: e
  13999. }
  14000. }
  14001. }
  14002. }, kw.prototype),
  14003. Ew = Math.ceil,
  14004. Bw = Math.floor,
  14005. Rw = 1e3,
  14006. Nw = 60 * Rw,
  14007. Fw = 60 * Nw,
  14008. Vw = 24 * Fw,
  14009. Ww = function(t, e, n, i) {
  14010. for (; i > n;) {
  14011. var r = n + i >>> 1;
  14012. t[r][1] < e ? n = r + 1 : i = r
  14013. }
  14014. return n
  14015. },
  14016. Hw = kw.extend({
  14017. type: "time",
  14018. getLabel: function(t) {
  14019. var e = this._stepLvl,
  14020. n = new Date(t);
  14021. return Xa(e[0], n, this.getSetting("useUTC"))
  14022. },
  14023. niceExtent: function(t) {
  14024. var e = this._extent;
  14025. if (e[0] === e[1] && (e[0] -= Vw, e[1] += Vw), e[1] === -1 / 0 && 1 / 0 === e[0]) {
  14026. var n = new Date;
  14027. e[1] = +new Date(n.getFullYear(), n.getMonth(), n.getDate()), e[0] = e[1] - Vw
  14028. }
  14029. this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval);
  14030. var i = this._interval;
  14031. t.fixMin || (e[0] = Sa(Bw(e[0] / i) * i)), t.fixMax || (e[1] = Sa(Ew(e[1] / i) * i))
  14032. },
  14033. niceTicks: function(t, e, n) {
  14034. t = t || 10;
  14035. var i = this._extent,
  14036. r = i[1] - i[0],
  14037. o = r / t;
  14038. null != e && e > o && (o = e), null != n && o > n && (o = n);
  14039. var a = Gw.length,
  14040. s = Ww(Gw, o, 0, a),
  14041. l = Gw[Math.min(s, a - 1)],
  14042. u = l[1];
  14043. if ("year" === l[0]) {
  14044. var h = r / u,
  14045. c = za(h / t, !0);
  14046. u *= c
  14047. }
  14048. var d = this.getSetting("useUTC") ? 0 : 60 * new Date(+i[0] || +i[1]).getTimezoneOffset() *
  14049. 1e3,
  14050. f = [Math.round(Ew((i[0] - d) / u) * u + d), Math.round(Bw((i[1] - d) / u) * u + d)];
  14051. Mh(f, i), this._stepLvl = l, this._interval = u, this._niceExtent = f
  14052. },
  14053. parse: function(t) {
  14054. return +Pa(t)
  14055. }
  14056. });
  14057. f(["contain", "normalize"], function(t) {
  14058. Hw.prototype[t] = function(e) {
  14059. return zw[t].call(this, this.parse(e))
  14060. }
  14061. });
  14062. var Gw = [
  14063. ["hh:mm:ss", Rw],
  14064. ["hh:mm:ss", 5 * Rw],
  14065. ["hh:mm:ss", 10 * Rw],
  14066. ["hh:mm:ss", 15 * Rw],
  14067. ["hh:mm:ss", 30 * Rw],
  14068. ["hh:mm\nMM-dd", Nw],
  14069. ["hh:mm\nMM-dd", 5 * Nw],
  14070. ["hh:mm\nMM-dd", 10 * Nw],
  14071. ["hh:mm\nMM-dd", 15 * Nw],
  14072. ["hh:mm\nMM-dd", 30 * Nw],
  14073. ["hh:mm\nMM-dd", Fw],
  14074. ["hh:mm\nMM-dd", 2 * Fw],
  14075. ["hh:mm\nMM-dd", 6 * Fw],
  14076. ["hh:mm\nMM-dd", 12 * Fw],
  14077. ["MM-dd\nyyyy", Vw],
  14078. ["MM-dd\nyyyy", 2 * Vw],
  14079. ["MM-dd\nyyyy", 3 * Vw],
  14080. ["MM-dd\nyyyy", 4 * Vw],
  14081. ["MM-dd\nyyyy", 5 * Vw],
  14082. ["MM-dd\nyyyy", 6 * Vw],
  14083. ["week", 7 * Vw],
  14084. ["MM-dd\nyyyy", 10 * Vw],
  14085. ["week", 14 * Vw],
  14086. ["week", 21 * Vw],
  14087. ["month", 31 * Vw],
  14088. ["week", 42 * Vw],
  14089. ["month", 62 * Vw],
  14090. ["week", 70 * Vw],
  14091. ["quarter", 95 * Vw],
  14092. ["month", 31 * Vw * 4],
  14093. ["month", 31 * Vw * 5],
  14094. ["half-year", 380 * Vw / 2],
  14095. ["month", 31 * Vw * 8],
  14096. ["month", 31 * Vw * 10],
  14097. ["year", 380 * Vw]
  14098. ];
  14099. Hw.create = function(t) {
  14100. return new Hw({
  14101. useUTC: t.ecModel.get("useUTC")
  14102. })
  14103. };
  14104. var Zw = mh.prototype,
  14105. Xw = kw.prototype,
  14106. Yw = Ca,
  14107. Uw = Sa,
  14108. jw = Math.floor,
  14109. qw = Math.ceil,
  14110. Kw = Math.pow,
  14111. $w = Math.log,
  14112. Qw = mh.extend({
  14113. type: "log",
  14114. base: 10,
  14115. $constructor: function() {
  14116. mh.apply(this, arguments), this._originalScale = new kw
  14117. },
  14118. getTicks: function(t) {
  14119. var e = this._originalScale,
  14120. n = this._extent,
  14121. i = e.getExtent();
  14122. return p(Xw.getTicks.call(this, t), function(t) {
  14123. var r = Sa(Kw(this.base, t));
  14124. return r = t === n[0] && e.__fixMin ? Eh(r, i[0]) : r, r = t === n[1] && e
  14125. .__fixMax ? Eh(r, i[1]) : r
  14126. }, this)
  14127. },
  14128. getMinorTicks: Xw.getMinorTicks,
  14129. getLabel: Xw.getLabel,
  14130. scale: function(t) {
  14131. return t = Zw.scale.call(this, t), Kw(this.base, t)
  14132. },
  14133. setExtent: function(t, e) {
  14134. var n = this.base;
  14135. t = $w(t) / $w(n), e = $w(e) / $w(n), Xw.setExtent.call(this, t, e)
  14136. },
  14137. getExtent: function() {
  14138. var t = this.base,
  14139. e = Zw.getExtent.call(this);
  14140. e[0] = Kw(t, e[0]), e[1] = Kw(t, e[1]);
  14141. var n = this._originalScale,
  14142. i = n.getExtent();
  14143. return n.__fixMin && (e[0] = Eh(e[0], i[0])), n.__fixMax && (e[1] = Eh(e[1], i[1])), e
  14144. },
  14145. unionExtent: function(t) {
  14146. this._originalScale.unionExtent(t);
  14147. var e = this.base;
  14148. t[0] = $w(t[0]) / $w(e), t[1] = $w(t[1]) / $w(e), Zw.unionExtent.call(this, t)
  14149. },
  14150. unionExtentFromData: function(t, e) {
  14151. this.unionExtent(t.getApproximateExtent(e))
  14152. },
  14153. niceTicks: function(t) {
  14154. t = t || 10;
  14155. var e = this._extent,
  14156. n = e[1] - e[0];
  14157. if (!(1 / 0 === n || 0 >= n)) {
  14158. var i = Oa(n),
  14159. r = t / n * i;
  14160. for (.5 >= r && (i *= 10); !isNaN(i) && Math.abs(i) < 1 && Math.abs(i) > 0;) i *= 10;
  14161. var o = [Sa(qw(e[0] / i) * i), Sa(jw(e[1] / i) * i)];
  14162. this._interval = i, this._niceExtent = o
  14163. }
  14164. },
  14165. niceExtent: function(t) {
  14166. Xw.niceExtent.call(this, t);
  14167. var e = this._originalScale;
  14168. e.__fixMin = t.fixMin, e.__fixMax = t.fixMax
  14169. }
  14170. });
  14171. f(["contain", "normalize"], function(t) {
  14172. Qw.prototype[t] = function(e) {
  14173. return e = $w(e) / $w(this.base), Zw[t].call(this, e)
  14174. }
  14175. }), Qw.create = function() {
  14176. return new Qw
  14177. };
  14178. var Jw = {
  14179. getMin: function(t) {
  14180. var e = this.option,
  14181. n = t || null == e.rangeStart ? e.min : e.rangeStart;
  14182. return this.axis && null != n && "dataMin" !== n && "function" != typeof n && !T(n) && (n = this
  14183. .axis.scale.parse(n)), n
  14184. },
  14185. getMax: function(t) {
  14186. var e = this.option,
  14187. n = t || null == e.rangeEnd ? e.max : e.rangeEnd;
  14188. return this.axis && null != n && "dataMax" !== n && "function" != typeof n && !T(n) && (n = this
  14189. .axis.scale.parse(n)), n
  14190. },
  14191. getNeedCrossZero: function() {
  14192. var t = this.option;
  14193. return null != t.rangeStart || null != t.rangeEnd ? !1 : !t.scale
  14194. },
  14195. getCoordSysModel: V,
  14196. setRange: function(t, e) {
  14197. this.option.rangeStart = t, this.option.rangeEnd = e
  14198. },
  14199. resetRange: function() {
  14200. this.option.rangeStart = this.option.rangeEnd = null
  14201. }
  14202. },
  14203. tb = vo({
  14204. type: "triangle",
  14205. shape: {
  14206. cx: 0,
  14207. cy: 0,
  14208. width: 0,
  14209. height: 0
  14210. },
  14211. buildPath: function(t, e) {
  14212. var n = e.cx,
  14213. i = e.cy,
  14214. r = e.width / 2,
  14215. o = e.height / 2;
  14216. t.moveTo(n, i - o), t.lineTo(n + r, i + o), t.lineTo(n - r, i + o), t.closePath()
  14217. }
  14218. }),
  14219. eb = vo({
  14220. type: "diamond",
  14221. shape: {
  14222. cx: 0,
  14223. cy: 0,
  14224. width: 0,
  14225. height: 0
  14226. },
  14227. buildPath: function(t, e) {
  14228. var n = e.cx,
  14229. i = e.cy,
  14230. r = e.width / 2,
  14231. o = e.height / 2;
  14232. t.moveTo(n, i - o), t.lineTo(n + r, i), t.lineTo(n, i + o), t.lineTo(n - r, i), t
  14233. .closePath()
  14234. }
  14235. }),
  14236. nb = vo({
  14237. type: "pin",
  14238. shape: {
  14239. x: 0,
  14240. y: 0,
  14241. width: 0,
  14242. height: 0
  14243. },
  14244. buildPath: function(t, e) {
  14245. var n = e.x,
  14246. i = e.y,
  14247. r = e.width / 5 * 3,
  14248. o = Math.max(r, e.height),
  14249. a = r / 2,
  14250. s = a * a / (o - a),
  14251. l = i - o + a + s,
  14252. u = Math.asin(s / a),
  14253. h = Math.cos(u) * a,
  14254. c = Math.sin(u),
  14255. d = Math.cos(u),
  14256. f = .6 * a,
  14257. p = .7 * a;
  14258. t.moveTo(n - h, l + s), t.arc(n, l, a, Math.PI - u, 2 * Math.PI + u), t.bezierCurveTo(n +
  14259. h - c * f, l + s + d * f, n, i - p, n, i), t.bezierCurveTo(n, i - p, n - h + c * f,
  14260. l + s + d * f, n - h, l + s), t.closePath()
  14261. }
  14262. }),
  14263. ib = vo({
  14264. type: "arrow",
  14265. shape: {
  14266. x: 0,
  14267. y: 0,
  14268. width: 0,
  14269. height: 0
  14270. },
  14271. buildPath: function(t, e) {
  14272. var n = e.height,
  14273. i = e.width,
  14274. r = e.x,
  14275. o = e.y,
  14276. a = i / 3 * 2;
  14277. t.moveTo(r, o), t.lineTo(r + a, o + n), t.lineTo(r, o + n / 4 * 3), t.lineTo(r - a, o + n),
  14278. t.lineTo(r, o), t.closePath()
  14279. }
  14280. }),
  14281. rb = {
  14282. line: ey,
  14283. rect: Jm,
  14284. roundRect: Jm,
  14285. square: Jm,
  14286. circle: Hm,
  14287. diamond: eb,
  14288. pin: nb,
  14289. arrow: ib,
  14290. triangle: tb
  14291. },
  14292. ob = {
  14293. line: function(t, e, n, i, r) {
  14294. r.x1 = t, r.y1 = e + i / 2, r.x2 = t + n, r.y2 = e + i / 2
  14295. },
  14296. rect: function(t, e, n, i, r) {
  14297. r.x = t, r.y = e, r.width = n, r.height = i
  14298. },
  14299. roundRect: function(t, e, n, i, r) {
  14300. r.x = t, r.y = e, r.width = n, r.height = i, r.r = Math.min(n, i) / 4
  14301. },
  14302. square: function(t, e, n, i, r) {
  14303. var o = Math.min(n, i);
  14304. r.x = t, r.y = e, r.width = o, r.height = o
  14305. },
  14306. circle: function(t, e, n, i, r) {
  14307. r.cx = t + n / 2, r.cy = e + i / 2, r.r = Math.min(n, i) / 2
  14308. },
  14309. diamond: function(t, e, n, i, r) {
  14310. r.cx = t + n / 2, r.cy = e + i / 2, r.width = n, r.height = i
  14311. },
  14312. pin: function(t, e, n, i, r) {
  14313. r.x = t + n / 2, r.y = e + i / 2, r.width = n, r.height = i
  14314. },
  14315. arrow: function(t, e, n, i, r) {
  14316. r.x = t + n / 2, r.y = e + i / 2, r.width = n, r.height = i
  14317. },
  14318. triangle: function(t, e, n, i, r) {
  14319. r.cx = t + n / 2, r.cy = e + i / 2, r.width = n, r.height = i
  14320. }
  14321. },
  14322. ab = {};
  14323. f(rb, function(t, e) {
  14324. ab[e] = new t
  14325. });
  14326. var sb = vo({
  14327. type: "symbol",
  14328. shape: {
  14329. symbolType: "",
  14330. x: 0,
  14331. y: 0,
  14332. width: 0,
  14333. height: 0
  14334. },
  14335. calculateTextPosition: function(t, e, n) {
  14336. var i = $n(t, e, n),
  14337. r = this.shape;
  14338. return r && "pin" === r.symbolType && "inside" === e.textPosition && (i.y = n.y + .4 * n
  14339. .height), i
  14340. },
  14341. buildPath: function(t, e, n) {
  14342. var i = e.symbolType;
  14343. if ("none" !== i) {
  14344. var r = ab[i];
  14345. r || (i = "rect", r = ab[i]), ob[i](e.x, e.y, e.width, e.height, r.shape), r.buildPath(
  14346. t, r.shape, n)
  14347. }
  14348. }
  14349. }),
  14350. lb = {
  14351. isDimensionStacked: dh,
  14352. enableDataStack: ch,
  14353. getStackedDimension: fh
  14354. },
  14355. ub = (Object.freeze || Object)({
  14356. createList: qh,
  14357. getLayoutRect: $a,
  14358. dataStack: lb,
  14359. createScale: Kh,
  14360. mixinAxisModelCommonMethods: $h,
  14361. completeDimensions: oh,
  14362. createDimensions: Sw,
  14363. createSymbol: jh
  14364. }),
  14365. hb = 1e-8;
  14366. tc.prototype = {
  14367. constructor: tc,
  14368. properties: null,
  14369. getBoundingRect: function() {
  14370. var t = this._rect;
  14371. if (t) return t;
  14372. for (var e = Number.MAX_VALUE, n = [e, e], i = [-e, -e], r = [], o = [], a = this.geometries,
  14373. s = 0; s < a.length; s++)
  14374. if ("polygon" === a[s].type) {
  14375. var l = a[s].exterior;
  14376. Br(l, r, o), ae(n, n, r), se(i, i, o)
  14377. } return 0 === s && (n[0] = n[1] = i[0] = i[1] = 0), this._rect = new Tn(n[0], n[1], i[0] -
  14378. n[0], i[1] - n[1])
  14379. },
  14380. contain: function(t) {
  14381. var e = this.getBoundingRect(),
  14382. n = this.geometries;
  14383. if (!e.contain(t[0], t[1])) return !1;
  14384. t: for (var i = 0, r = n.length; r > i; i++)
  14385. if ("polygon" === n[i].type) {
  14386. var o = n[i].exterior,
  14387. a = n[i].interiors;
  14388. if (Jh(o, t[0], t[1])) {
  14389. for (var s = 0; s < (a ? a.length : 0); s++)
  14390. if (Jh(a[s])) continue t;
  14391. return !0
  14392. }
  14393. }
  14394. return !1
  14395. },
  14396. transformTo: function(t, e, n, i) {
  14397. var r = this.getBoundingRect(),
  14398. o = r.width / r.height;
  14399. n ? i || (i = n / o) : n = o * i;
  14400. for (var a = new Tn(t, e, n, i), s = r.calculateTransform(a), l = this.geometries, u = 0; u < l
  14401. .length; u++)
  14402. if ("polygon" === l[u].type) {
  14403. for (var h = l[u].exterior, c = l[u].interiors, d = 0; d < h.length; d++) oe(h[d], h[d],
  14404. s);
  14405. for (var f = 0; f < (c ? c.length : 0); f++)
  14406. for (var d = 0; d < c[f].length; d++) oe(c[f][d], c[f][d], s)
  14407. } r = this._rect, r.copy(a), this.center = [r.x + r.width / 2, r.y + r.height / 2]
  14408. },
  14409. cloneShallow: function(t) {
  14410. null == t && (t = this.name);
  14411. var e = new tc(t, this.geometries, this.center);
  14412. return e._rect = this._rect, e.transformTo = null, e
  14413. }
  14414. };
  14415. var cb = function(t, e) {
  14416. return ec(t), p(v(t.features, function(t) {
  14417. return t.geometry && t.properties && t.geometry.coordinates.length > 0
  14418. }), function(t) {
  14419. var n = t.properties,
  14420. i = t.geometry,
  14421. r = i.coordinates,
  14422. o = [];
  14423. "Polygon" === i.type && o.push({
  14424. type: "polygon",
  14425. exterior: r[0],
  14426. interiors: r.slice(1)
  14427. }), "MultiPolygon" === i.type && f(r, function(t) {
  14428. t[0] && o.push({
  14429. type: "polygon",
  14430. exterior: t[0],
  14431. interiors: t.slice(1)
  14432. })
  14433. });
  14434. var a = new tc(n[e || "name"], o, n.cp);
  14435. return a.properties = n, a
  14436. })
  14437. },
  14438. db = ur(),
  14439. fb = [0, 1],
  14440. pb = function(t, e, n) {
  14441. this.dim = t, this.scale = e, this._extent = n || [0, 0], this.inverse = !1, this.onBand = !1
  14442. };
  14443. pb.prototype = {
  14444. constructor: pb,
  14445. contain: function(t) {
  14446. var e = this._extent,
  14447. n = Math.min(e[0], e[1]),
  14448. i = Math.max(e[0], e[1]);
  14449. return t >= n && i >= t
  14450. },
  14451. containData: function(t) {
  14452. return this.scale.contain(t)
  14453. },
  14454. getExtent: function() {
  14455. return this._extent.slice()
  14456. },
  14457. getPixelPrecision: function(t) {
  14458. return Ta(t || this.scale.getExtent(), this._extent)
  14459. },
  14460. setExtent: function(t, e) {
  14461. var n = this._extent;
  14462. n[0] = t, n[1] = e
  14463. },
  14464. dataToCoord: function(t, e) {
  14465. var n = this._extent,
  14466. i = this.scale;
  14467. return t = i.normalize(t), this.onBand && "ordinal" === i.type && (n = n.slice(), mc(n, i
  14468. .count())), wa(t, fb, n, e)
  14469. },
  14470. coordToData: function(t, e) {
  14471. var n = this._extent,
  14472. i = this.scale;
  14473. this.onBand && "ordinal" === i.type && (n = n.slice(), mc(n, i.count()));
  14474. var r = wa(t, n, fb, e);
  14475. return this.scale.scale(r)
  14476. },
  14477. pointToData: function() {},
  14478. getTicksCoords: function(t) {
  14479. t = t || {};
  14480. var e = t.tickModel || this.getTickModel(),
  14481. n = rc(this, e),
  14482. i = n.ticks,
  14483. r = p(i, function(t) {
  14484. return {
  14485. coord: this.dataToCoord(t),
  14486. tickValue: t
  14487. }
  14488. }, this),
  14489. o = e.get("alignWithLabel");
  14490. return yc(this, r, o, t.clamp), r
  14491. },
  14492. getMinorTicksCoords: function() {
  14493. if ("ordinal" === this.scale.type) return [];
  14494. var t = this.model.getModel("minorTick"),
  14495. e = t.get("splitNumber");
  14496. e > 0 && 100 > e || (e = 5);
  14497. var n = this.scale.getMinorTicks(e),
  14498. i = p(n, function(t) {
  14499. return p(t, function(t) {
  14500. return {
  14501. coord: this.dataToCoord(t),
  14502. tickValue: t
  14503. }
  14504. }, this)
  14505. }, this);
  14506. return i
  14507. },
  14508. getViewLabels: function() {
  14509. return ic(this).labels
  14510. },
  14511. getLabelModel: function() {
  14512. return this.model.getModel("axisLabel")
  14513. },
  14514. getTickModel: function() {
  14515. return this.model.getModel("axisTick")
  14516. },
  14517. getBandWidth: function() {
  14518. var t = this._extent,
  14519. e = this.scale.getExtent(),
  14520. n = e[1] - e[0] + (this.onBand ? 1 : 0);
  14521. 0 === n && (n = 1);
  14522. var i = Math.abs(t[1] - t[0]);
  14523. return Math.abs(i) / n
  14524. },
  14525. isHorizontal: null,
  14526. getRotate: null,
  14527. calculateCategoryInterval: function() {
  14528. return fc(this)
  14529. }
  14530. };
  14531. var gb = cb,
  14532. vb = {};
  14533. f(["map", "each", "filter", "indexOf", "inherits", "reduce", "filter", "bind", "curry", "isArray", "isString",
  14534. "isObject", "isFunction", "extend", "defaults", "clone", "merge"
  14535. ], function(t) {
  14536. vb[t] = Cp[t]
  14537. });
  14538. var mb = {};
  14539. f(["extendShape", "extendPath", "makePath", "makeImage", "mergePath", "resizePath", "createIcon",
  14540. "setHoverStyle", "setLabelStyle", "setTextStyle", "setText", "getFont", "updateProps", "initProps",
  14541. "getTransform", "clipPointsByRect", "clipRectByRect", "registerShape", "getShapeClass", "Group",
  14542. "Image", "Text", "Circle", "Sector", "Ring", "Polygon", "Polyline", "Rect", "Line", "BezierCurve",
  14543. "Arc", "IncrementalDisplayable", "CompoundPath", "LinearGradient", "RadialGradient", "BoundingRect"
  14544. ], function(t) {
  14545. mb[t] = My[t]
  14546. }), Rx.extend({
  14547. type: "series.line",
  14548. dependencies: ["grid", "polar"],
  14549. getInitialData: function(t) {
  14550. if (lp) {
  14551. var e = t.coordinateSystem;
  14552. if ("polar" !== e && "cartesian2d" !== e) throw new Error(
  14553. "Line not support coordinateSystem besides cartesian and polar")
  14554. }
  14555. return ph(this.getSource(), this, {
  14556. useEncodeDefaulter: !0
  14557. })
  14558. },
  14559. defaultOption: {
  14560. zlevel: 0,
  14561. z: 2,
  14562. coordinateSystem: "cartesian2d",
  14563. legendHoverLink: !0,
  14564. hoverAnimation: !0,
  14565. clip: !0,
  14566. label: {
  14567. position: "top"
  14568. },
  14569. lineStyle: {
  14570. width: 2,
  14571. type: "solid"
  14572. },
  14573. step: !1,
  14574. smooth: !1,
  14575. smoothMonotone: null,
  14576. symbol: "emptyCircle",
  14577. symbolSize: 4,
  14578. symbolRotate: null,
  14579. showSymbol: !0,
  14580. showAllSymbol: "auto",
  14581. connectNulls: !1,
  14582. sampling: "none",
  14583. animationEasing: "linear",
  14584. progressive: 0,
  14585. hoverLayerThreshold: 1 / 0
  14586. }
  14587. });
  14588. var yb = _c.prototype,
  14589. xb = _c.getSymbolSize = function(t, e) {
  14590. var n = t.getItemVisual(e, "symbolSize");
  14591. return n instanceof Array ? n.slice() : [+n, +n]
  14592. };
  14593. yb._createSymbol = function(t, e, n, i, r) {
  14594. this.removeAll();
  14595. var o = e.getItemVisual(n, "color"),
  14596. a = jh(t, -1, -1, 2, 2, o, r);
  14597. a.attr({
  14598. z2: 100,
  14599. culling: !0,
  14600. scale: wc(i)
  14601. }), a.drift = bc, this._symbolType = t, this.add(a)
  14602. }, yb.stopSymbolAnimation = function(t) {
  14603. this.childAt(0).stopAnimation(t)
  14604. }, yb.getSymbolPath = function() {
  14605. return this.childAt(0)
  14606. }, yb.getScale = function() {
  14607. return this.childAt(0).scale
  14608. }, yb.highlight = function() {
  14609. this.childAt(0).trigger("emphasis")
  14610. }, yb.downplay = function() {
  14611. this.childAt(0).trigger("normal")
  14612. }, yb.setZ = function(t, e) {
  14613. var n = this.childAt(0);
  14614. n.zlevel = t, n.z = e
  14615. }, yb.setDraggable = function(t) {
  14616. var e = this.childAt(0);
  14617. e.draggable = t, e.cursor = t ? "move" : e.cursor
  14618. }, yb.updateData = function(t, e, n) {
  14619. this.silent = !1;
  14620. var i = t.getItemVisual(e, "symbol") || "circle",
  14621. r = t.hostModel,
  14622. o = xb(t, e),
  14623. a = i !== this._symbolType;
  14624. if (a) {
  14625. var s = t.getItemVisual(e, "symbolKeepAspect");
  14626. this._createSymbol(i, t, e, o, s)
  14627. } else {
  14628. var l = this.childAt(0);
  14629. l.silent = !1, ea(l, {
  14630. scale: wc(o)
  14631. }, r, e)
  14632. }
  14633. if (this._updateCommon(t, e, o, n), a) {
  14634. var l = this.childAt(0),
  14635. u = n && n.fadeIn,
  14636. h = {
  14637. scale: l.scale.slice()
  14638. };
  14639. u && (h.style = {
  14640. opacity: l.style.opacity
  14641. }), l.scale = [0, 0], u && (l.style.opacity = 0), na(l, h, r, e)
  14642. }
  14643. this._seriesModel = r
  14644. };
  14645. var _b = ["itemStyle"],
  14646. wb = ["emphasis", "itemStyle"],
  14647. bb = ["label"],
  14648. Sb = ["emphasis", "label"];
  14649. yb._updateCommon = function(t, e, n, i) {
  14650. function r(e) {
  14651. return b ? t.getName(e) : xc(t, e)
  14652. }
  14653. var o = this.childAt(0),
  14654. s = t.hostModel,
  14655. l = t.getItemVisual(e, "color");
  14656. "image" !== o.type ? o.useStyle({
  14657. strokeNoScale: !0
  14658. }) : o.setStyle({
  14659. opacity: null,
  14660. shadowBlur: null,
  14661. shadowOffsetX: null,
  14662. shadowOffsetY: null,
  14663. shadowColor: null
  14664. });
  14665. var u = i && i.itemStyle,
  14666. h = i && i.hoverItemStyle,
  14667. c = i && i.symbolOffset,
  14668. d = i && i.labelModel,
  14669. f = i && i.hoverLabelModel,
  14670. p = i && i.hoverAnimation,
  14671. g = i && i.cursorStyle;
  14672. if (!i || t.hasItemOption) {
  14673. var v = i && i.itemModel ? i.itemModel : t.getItemModel(e);
  14674. u = v.getModel(_b).getItemStyle(["color"]), h = v.getModel(wb).getItemStyle(), c = v.getShallow(
  14675. "symbolOffset"), d = v.getModel(bb), f = v.getModel(Sb), p = v.getShallow("hoverAnimation"),
  14676. g = v.getShallow("cursor")
  14677. } else h = a({}, h);
  14678. var m = o.style,
  14679. y = t.getItemVisual(e, "symbolRotate");
  14680. o.attr("rotation", (y || 0) * Math.PI / 180 || 0), c && o.attr("position", [ba(c[0], n[0]), ba(c[1], n[
  14681. 1])]), g && o.attr("cursor", g), o.setColor(l, i && i.symbolInnerColor), o.setStyle(u);
  14682. var x = t.getItemVisual(e, "opacity");
  14683. null != x && (m.opacity = x);
  14684. var _ = t.getItemVisual(e, "liftZ"),
  14685. w = o.__z2Origin;
  14686. null != _ ? null == w && (o.__z2Origin = o.z2, o.z2 += _) : null != w && (o.z2 = w, o.__z2Origin =
  14687. null);
  14688. var b = i && i.useNameLabel;
  14689. Go(m, h, d, f, {
  14690. labelFetcher: s,
  14691. labelDataIndex: e,
  14692. defaultText: r,
  14693. isRectText: !0,
  14694. autoColor: l
  14695. }), o.__symbolOriginalScale = wc(n), o.hoverStyle = h, o.highDownOnUpdate = p && s
  14696. .isAnimationEnabled() ? Sc : null, Fo(o)
  14697. }, yb.fadeOut = function(t, e) {
  14698. var n = this.childAt(0);
  14699. this.silent = n.silent = !0, !(e && e.keepLabel) && (n.style.text = null), ea(n, {
  14700. style: {
  14701. opacity: 0
  14702. },
  14703. scale: [0, 0]
  14704. }, this._seriesModel, this.dataIndex, t)
  14705. }, h(_c, Cg);
  14706. var Mb = Mc.prototype;
  14707. Mb.updateData = function(t, e) {
  14708. e = Cc(e);
  14709. var n = this.group,
  14710. i = t.hostModel,
  14711. r = this._data,
  14712. o = this._symbolCtor,
  14713. a = Tc(t);
  14714. r || n.removeAll(), t.diff(r).add(function(i) {
  14715. var r = t.getItemLayout(i);
  14716. if (Ic(t, r, i, e)) {
  14717. var s = new o(t, i, a);
  14718. s.attr("position", r), t.setItemGraphicEl(i, s), n.add(s)
  14719. }
  14720. }).update(function(s, l) {
  14721. var u = r.getItemGraphicEl(l),
  14722. h = t.getItemLayout(s);
  14723. return Ic(t, h, s, e) ? (u ? (u.updateData(t, s, a), ea(u, {
  14724. position: h
  14725. }, i)) : (u = new o(t, s), u.attr("position", h)), n.add(u), void t
  14726. .setItemGraphicEl(s, u)) : void n.remove(u)
  14727. }).remove(function(t) {
  14728. var e = r.getItemGraphicEl(t);
  14729. e && e.fadeOut(function() {
  14730. n.remove(e)
  14731. })
  14732. }).execute(), this._data = t
  14733. }, Mb.isPersistent = function() {
  14734. return !0
  14735. }, Mb.updateLayout = function() {
  14736. var t = this._data;
  14737. t && t.eachItemGraphicEl(function(e, n) {
  14738. var i = t.getItemLayout(n);
  14739. e.attr("position", i)
  14740. })
  14741. }, Mb.incrementalPrepareUpdate = function(t) {
  14742. this._seriesScope = Tc(t), this._data = null, this.group.removeAll()
  14743. }, Mb.incrementalUpdate = function(t, e, n) {
  14744. function i(t) {
  14745. t.isGroup || (t.incremental = t.useHoverLayer = !0)
  14746. }
  14747. n = Cc(n);
  14748. for (var r = t.start; r < t.end; r++) {
  14749. var o = e.getItemLayout(r);
  14750. if (Ic(e, o, r, n)) {
  14751. var a = new this._symbolCtor(e, r, this._seriesScope);
  14752. a.traverse(i), a.attr("position", o), this.group.add(a), e.setItemGraphicEl(r, a)
  14753. }
  14754. }
  14755. }, Mb.remove = function(t) {
  14756. var e = this.group,
  14757. n = this._data;
  14758. n && t ? n.eachItemGraphicEl(function(t) {
  14759. t.fadeOut(function() {
  14760. e.remove(t)
  14761. })
  14762. }) : e.removeAll()
  14763. };
  14764. var Ib = function(t, e, n, i, r, o, a, s) {
  14765. for (var l = Pc(t, e), u = [], h = [], c = [], d = [], f = [], p = [], g = [], v = Ac(r, e, a), m = Ac(
  14766. o, t, s), y = 0; y < l.length; y++) {
  14767. var x = l[y],
  14768. _ = !0;
  14769. switch (x.cmd) {
  14770. case "=":
  14771. var w = t.getItemLayout(x.idx),
  14772. b = e.getItemLayout(x.idx1);
  14773. (isNaN(w[0]) || isNaN(w[1])) && (w = b.slice()), u.push(w), h.push(b), c.push(n[x.idx]), d
  14774. .push(i[x.idx1]), g.push(e.getRawIndex(x.idx1));
  14775. break;
  14776. case "+":
  14777. var S = x.idx;
  14778. u.push(r.dataToPoint([e.get(v.dataDimsForPoint[0], S), e.get(v.dataDimsForPoint[1], S)])), h
  14779. .push(e.getItemLayout(S).slice()), c.push(kc(v, r, e, S)), d.push(i[S]), g.push(e
  14780. .getRawIndex(S));
  14781. break;
  14782. case "-":
  14783. var S = x.idx,
  14784. M = t.getRawIndex(S);
  14785. M !== S ? (u.push(t.getItemLayout(S)), h.push(o.dataToPoint([t.get(m.dataDimsForPoint[0],
  14786. S), t.get(m.dataDimsForPoint[1], S)
  14787. ])), c.push(n[S]), d.push(kc(m, o, t, S)), g.push(M)) : _ = !1
  14788. }
  14789. _ && (f.push(x), p.push(p.length))
  14790. }
  14791. p.sort(function(t, e) {
  14792. return g[t] - g[e]
  14793. });
  14794. for (var I = [], C = [], T = [], A = [], D = [], y = 0; y < p.length; y++) {
  14795. var S = p[y];
  14796. I[y] = u[S], C[y] = h[S], T[y] = c[S], A[y] = d[S], D[y] = f[S]
  14797. }
  14798. return {
  14799. current: I,
  14800. next: C,
  14801. stackedOnCurrent: T,
  14802. stackedOnNext: A,
  14803. status: D
  14804. }
  14805. },
  14806. Cb = ae,
  14807. Tb = se,
  14808. Ab = Y,
  14809. Db = H,
  14810. kb = [],
  14811. Pb = [],
  14812. Ob = [],
  14813. Lb = eo.extend({
  14814. type: "ec-polyline",
  14815. shape: {
  14816. points: [],
  14817. smooth: 0,
  14818. smoothConstraint: !0,
  14819. smoothMonotone: null,
  14820. connectNulls: !1
  14821. },
  14822. style: {
  14823. fill: null,
  14824. stroke: "#000"
  14825. },
  14826. brush: Zm(eo.prototype.brush),
  14827. buildPath: function(t, e) {
  14828. var n = e.points,
  14829. i = 0,
  14830. r = n.length,
  14831. o = Bc(n, e.smoothConstraint);
  14832. if (e.connectNulls) {
  14833. for (; r > 0 && Oc(n[r - 1]); r--);
  14834. for (; r > i && Oc(n[i]); i++);
  14835. }
  14836. for (; r > i;) i += Lc(t, n, i, r, r, 1, o.min, o.max, e.smooth, e.smoothMonotone, e
  14837. .connectNulls) + 1
  14838. }
  14839. }),
  14840. zb = eo.extend({
  14841. type: "ec-polygon",
  14842. shape: {
  14843. points: [],
  14844. stackedOnPoints: [],
  14845. smooth: 0,
  14846. stackedOnSmooth: 0,
  14847. smoothConstraint: !0,
  14848. smoothMonotone: null,
  14849. connectNulls: !1
  14850. },
  14851. brush: Zm(eo.prototype.brush),
  14852. buildPath: function(t, e) {
  14853. var n = e.points,
  14854. i = e.stackedOnPoints,
  14855. r = 0,
  14856. o = n.length,
  14857. a = e.smoothMonotone,
  14858. s = Bc(n, e.smoothConstraint),
  14859. l = Bc(i, e.smoothConstraint);
  14860. if (e.connectNulls) {
  14861. for (; o > 0 && Oc(n[o - 1]); o--);
  14862. for (; o > r && Oc(n[r]); r++);
  14863. }
  14864. for (; o > r;) {
  14865. var u = Lc(t, n, r, o, o, 1, s.min, s.max, e.smooth, a, e.connectNulls);
  14866. Lc(t, i, r + u - 1, u, o, -1, l.min, l.max, e.stackedOnSmooth, a, e.connectNulls), r +=
  14867. u + 1, t.closePath()
  14868. }
  14869. }
  14870. });
  14871. hl.extend({
  14872. type: "line",
  14873. init: function() {
  14874. var t = new Cg,
  14875. e = new Mc;
  14876. this.group.add(e.group), this._symbolDraw = e, this._lineGroup = t
  14877. },
  14878. render: function(t, e, n) {
  14879. var i = t.coordinateSystem,
  14880. r = this.group,
  14881. o = t.getData(),
  14882. a = t.getModel("lineStyle"),
  14883. l = t.getModel("areaStyle"),
  14884. u = o.mapArray(o.getItemLayout),
  14885. h = "polar" === i.type,
  14886. c = this._coordSys,
  14887. d = this._symbolDraw,
  14888. f = this._polyline,
  14889. p = this._polygon,
  14890. g = this._lineGroup,
  14891. v = t.get("animation"),
  14892. m = !l.isEmpty(),
  14893. y = l.get("origin"),
  14894. x = Ac(i, o, y),
  14895. _ = Hc(i, o, x),
  14896. w = t.get("showSymbol"),
  14897. b = w && !h && Xc(t, o, i),
  14898. S = this._data;
  14899. S && S.eachItemGraphicEl(function(t, e) {
  14900. t.__temp && (r.remove(t), S.setItemGraphicEl(e, null))
  14901. }), w || d.remove(), r.add(g);
  14902. var M, I = !h && t.get("step");
  14903. i && i.getArea && t.get("clip", !0) && (M = i.getArea(), null != M.width ? (M.x -= .1, M
  14904. .y -= .1, M.width += .2, M.height += .2) : M.r0 && (M.r0 -= .5, M.r1 += .5)), this
  14905. ._clipShapeForSymbol = M, f && c.type === i.type && I === this._step ? (m && !p ? p =
  14906. this._newPolygon(u, _, i, v) : p && !m && (g.remove(p), p = this._polygon = null), g
  14907. .setClipPath(Uc(i, !1, t)), w && d.updateData(o, {
  14908. isIgnore: b,
  14909. clipShape: M
  14910. }), o.eachItemGraphicEl(function(t) {
  14911. t.stopAnimation(!0)
  14912. }), Fc(this._stackedOnPoints, _) && Fc(this._points, u) || (v ? this
  14913. ._updateAnimation(o, _, i, n, I, y) : (I && (u = Gc(u, i, I), _ = Gc(_, i, I)),
  14914. f.setShape({
  14915. points: u
  14916. }), p && p.setShape({
  14917. points: u,
  14918. stackedOnPoints: _
  14919. })))) : (w && d.updateData(o, {
  14920. isIgnore: b,
  14921. clipShape: M
  14922. }), I && (u = Gc(u, i, I), _ = Gc(_, i, I)), f = this._newPolyline(u, i, v), m && (
  14923. p = this._newPolygon(u, _, i, v)), g.setClipPath(Uc(i, !0, t)));
  14924. var C = Zc(o, i) || o.getVisual("color");
  14925. f.useStyle(s(a.getLineStyle(), {
  14926. fill: "none",
  14927. stroke: C,
  14928. lineJoin: "bevel"
  14929. }));
  14930. var T = t.get("smooth");
  14931. if (T = Wc(t.get("smooth")), f.setShape({
  14932. smooth: T,
  14933. smoothMonotone: t.get("smoothMonotone"),
  14934. connectNulls: t.get("connectNulls")
  14935. }), p) {
  14936. var A = o.getCalculationInfo("stackedOnSeries"),
  14937. D = 0;
  14938. p.useStyle(s(l.getAreaStyle(), {
  14939. fill: C,
  14940. opacity: .7,
  14941. lineJoin: "bevel"
  14942. })), A && (D = Wc(A.get("smooth"))), p.setShape({
  14943. smooth: T,
  14944. stackedOnSmooth: D,
  14945. smoothMonotone: t.get("smoothMonotone"),
  14946. connectNulls: t.get("connectNulls")
  14947. })
  14948. }
  14949. this._data = o, this._coordSys = i, this._stackedOnPoints = _, this._points = u, this
  14950. ._step = I, this._valueOrigin = y
  14951. },
  14952. dispose: function() {},
  14953. highlight: function(t, e, n, i) {
  14954. var r = t.getData(),
  14955. o = lr(r, i);
  14956. if (!(o instanceof Array) && null != o && o >= 0) {
  14957. var a = r.getItemGraphicEl(o);
  14958. if (!a) {
  14959. var s = r.getItemLayout(o);
  14960. if (!s) return;
  14961. if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(s[0], s[1]))
  14962. return;
  14963. a = new _c(r, o), a.position = s, a.setZ(t.get("zlevel"), t.get("z")), a.ignore =
  14964. isNaN(s[0]) || isNaN(s[1]), a.__temp = !0, r.setItemGraphicEl(o, a), a
  14965. .stopSymbolAnimation(!0), this.group.add(a)
  14966. }
  14967. a.highlight()
  14968. } else hl.prototype.highlight.call(this, t, e, n, i)
  14969. },
  14970. downplay: function(t, e, n, i) {
  14971. var r = t.getData(),
  14972. o = lr(r, i);
  14973. if (null != o && o >= 0) {
  14974. var a = r.getItemGraphicEl(o);
  14975. a && (a.__temp ? (r.setItemGraphicEl(o, null), this.group.remove(a)) : a.downplay())
  14976. } else hl.prototype.downplay.call(this, t, e, n, i)
  14977. },
  14978. _newPolyline: function(t) {
  14979. var e = this._polyline;
  14980. return e && this._lineGroup.remove(e), e = new Lb({
  14981. shape: {
  14982. points: t
  14983. },
  14984. silent: !0,
  14985. z2: 10
  14986. }), this._lineGroup.add(e), this._polyline = e, e
  14987. },
  14988. _newPolygon: function(t, e) {
  14989. var n = this._polygon;
  14990. return n && this._lineGroup.remove(n), n = new zb({
  14991. shape: {
  14992. points: t,
  14993. stackedOnPoints: e
  14994. },
  14995. silent: !0
  14996. }), this._lineGroup.add(n), this._polygon = n, n
  14997. },
  14998. _updateAnimation: function(t, e, n, i, r, o) {
  14999. var a = this._polyline,
  15000. s = this._polygon,
  15001. l = t.hostModel,
  15002. u = Ib(this._data, t, this._stackedOnPoints, e, this._coordSys, n, this._valueOrigin,
  15003. o),
  15004. h = u.current,
  15005. c = u.stackedOnCurrent,
  15006. d = u.next,
  15007. f = u.stackedOnNext;
  15008. if (r && (h = Gc(u.current, n, r), c = Gc(u.stackedOnCurrent, n, r), d = Gc(u.next, n, r),
  15009. f = Gc(u.stackedOnNext, n, r)), Vc(h, d) > 3e3 || s && Vc(c, f) > 3e3) return a
  15010. .setShape({
  15011. points: d
  15012. }), void(s && s.setShape({
  15013. points: d,
  15014. stackedOnPoints: f
  15015. }));
  15016. a.shape.__points = u.current, a.shape.points = h, ea(a, {
  15017. shape: {
  15018. points: d
  15019. }
  15020. }, l), s && (s.setShape({
  15021. points: h,
  15022. stackedOnPoints: c
  15023. }), ea(s, {
  15024. shape: {
  15025. points: d,
  15026. stackedOnPoints: f
  15027. }
  15028. }, l));
  15029. for (var p = [], g = u.status, v = 0; v < g.length; v++) {
  15030. var m = g[v].cmd;
  15031. if ("=" === m) {
  15032. var y = t.getItemGraphicEl(g[v].idx1);
  15033. y && p.push({
  15034. el: y,
  15035. ptIdx: v
  15036. })
  15037. }
  15038. }
  15039. a.animators && a.animators.length && a.animators[0].during(function() {
  15040. for (var t = 0; t < p.length; t++) {
  15041. var e = p[t].el;
  15042. e.attr("position", a.shape.__points[p[t].ptIdx])
  15043. }
  15044. })
  15045. },
  15046. remove: function() {
  15047. var t = this.group,
  15048. e = this._data;
  15049. this._lineGroup.removeAll(), this._symbolDraw.remove(!0), e && e.eachItemGraphicEl(function(
  15050. n, i) {
  15051. n.__temp && (t.remove(n), e.setItemGraphicEl(i, null))
  15052. }), this._polyline = this._polygon = this._coordSys = this._points = this
  15053. ._stackedOnPoints = this._data = null
  15054. }
  15055. });
  15056. var Eb = function(t, e, n) {
  15057. return {
  15058. seriesType: t,
  15059. performRawSeries: !0,
  15060. reset: function(t, i) {
  15061. function r(e, n) {
  15062. if (f) {
  15063. var i = t.getRawValue(n),
  15064. r = t.getDataParams(n);
  15065. h && e.setItemVisual(n, "symbol", a(i, r)), c && e.setItemVisual(n, "symbolSize", s(
  15066. i, r)), d && e.setItemVisual(n, "symbolRotate", u(i, r))
  15067. }
  15068. if (e.hasItemOption) {
  15069. var o = e.getItemModel(n),
  15070. l = o.getShallow("symbol", !0),
  15071. p = o.getShallow("symbolSize", !0),
  15072. g = o.getShallow("symbolRotate", !0),
  15073. v = o.getShallow("symbolKeepAspect", !0);
  15074. null != l && e.setItemVisual(n, "symbol", l), null != p && e.setItemVisual(n,
  15075. "symbolSize", p), null != g && e.setItemVisual(n, "symbolRotate", g),
  15076. null != v && e.setItemVisual(n, "symbolKeepAspect", v)
  15077. }
  15078. }
  15079. var o = t.getData(),
  15080. a = t.get("symbol"),
  15081. s = t.get("symbolSize"),
  15082. l = t.get("symbolKeepAspect"),
  15083. u = t.get("symbolRotate"),
  15084. h = w(a),
  15085. c = w(s),
  15086. d = w(u),
  15087. f = h || c || d,
  15088. p = !h && a ? a : e,
  15089. g = c ? null : s;
  15090. return o.setVisual({
  15091. legendSymbol: n || p,
  15092. symbol: p,
  15093. symbolSize: g,
  15094. symbolKeepAspect: l,
  15095. symbolRotate: u
  15096. }), i.isSeriesFiltered(t) ? void 0 : {
  15097. dataEach: o.hasItemOption || f ? r : null
  15098. }
  15099. }
  15100. }
  15101. },
  15102. Bb = function(t) {
  15103. return {
  15104. seriesType: t,
  15105. plan: Vx(),
  15106. reset: function(t) {
  15107. function e(t, e) {
  15108. for (var n = t.end - t.start, r = o && new Float32Array(n * s), l = t.start, u = 0,
  15109. h = [], c = []; l < t.end; l++) {
  15110. var d;
  15111. if (1 === s) {
  15112. var f = e.get(a[0], l);
  15113. d = !isNaN(f) && i.dataToPoint(f, null, c)
  15114. } else {
  15115. var f = h[0] = e.get(a[0], l),
  15116. p = h[1] = e.get(a[1], l);
  15117. d = !isNaN(f) && !isNaN(p) && i.dataToPoint(h, null, c)
  15118. }
  15119. o ? (r[u++] = d ? d[0] : 0 / 0, r[u++] = d ? d[1] : 0 / 0) : e.setItemLayout(l, d &&
  15120. d.slice() || [0 / 0, 0 / 0])
  15121. }
  15122. o && e.setLayout("symbolPoints", r)
  15123. }
  15124. var n = t.getData(),
  15125. i = t.coordinateSystem,
  15126. r = t.pipelineContext,
  15127. o = r.large;
  15128. if (i) {
  15129. var a = p(i.dimensions, function(t) {
  15130. return n.mapDimension(t)
  15131. }).slice(0, 2),
  15132. s = a.length,
  15133. l = n.getCalculationInfo("stackResultDimension");
  15134. return dh(n, a[0]) && (a[0] = l), dh(n, a[1]) && (a[1] = l), s && {
  15135. progress: e
  15136. }
  15137. }
  15138. }
  15139. }
  15140. },
  15141. Rb = {
  15142. average: function(t) {
  15143. for (var e = 0, n = 0, i = 0; i < t.length; i++) isNaN(t[i]) || (e += t[i], n++);
  15144. return 0 === n ? 0 / 0 : e / n
  15145. },
  15146. sum: function(t) {
  15147. for (var e = 0, n = 0; n < t.length; n++) e += t[n] || 0;
  15148. return e
  15149. },
  15150. max: function(t) {
  15151. for (var e = -1 / 0, n = 0; n < t.length; n++) t[n] > e && (e = t[n]);
  15152. return isFinite(e) ? e : 0 / 0
  15153. },
  15154. min: function(t) {
  15155. for (var e = 1 / 0, n = 0; n < t.length; n++) t[n] < e && (e = t[n]);
  15156. return isFinite(e) ? e : 0 / 0
  15157. },
  15158. nearest: function(t) {
  15159. return t[0]
  15160. }
  15161. },
  15162. Nb = function(t) {
  15163. return Math.round(t.length / 2)
  15164. },
  15165. Fb = function(t) {
  15166. return {
  15167. seriesType: t,
  15168. modifyOutputEnd: !0,
  15169. reset: function(t) {
  15170. var e = t.getData(),
  15171. n = t.get("sampling"),
  15172. i = t.coordinateSystem;
  15173. if ("cartesian2d" === i.type && n) {
  15174. var r = i.getBaseAxis(),
  15175. o = i.getOtherAxis(r),
  15176. a = r.getExtent(),
  15177. s = a[1] - a[0],
  15178. l = Math.round(e.count() / s);
  15179. if (l > 1) {
  15180. var u;
  15181. "string" == typeof n ? u = Rb[n] : "function" == typeof n && (u = n), u && t
  15182. .setData(e.downSample(e.mapDimension(o.dim), 1 / l, u, Nb))
  15183. }
  15184. }
  15185. }
  15186. }
  15187. },
  15188. Vb = function(t) {
  15189. this._axes = {}, this._dimList = [], this.name = t || ""
  15190. };
  15191. Vb.prototype = {
  15192. constructor: Vb,
  15193. type: "cartesian",
  15194. getAxis: function(t) {
  15195. return this._axes[t]
  15196. },
  15197. getAxes: function() {
  15198. return p(this._dimList, jc, this)
  15199. },
  15200. getAxesByScale: function(t) {
  15201. return t = t.toLowerCase(), v(this.getAxes(), function(e) {
  15202. return e.scale.type === t
  15203. })
  15204. },
  15205. addAxis: function(t) {
  15206. var e = t.dim;
  15207. this._axes[e] = t, this._dimList.push(e)
  15208. },
  15209. dataToCoord: function(t) {
  15210. return this._dataCoordConvert(t, "dataToCoord")
  15211. },
  15212. coordToData: function(t) {
  15213. return this._dataCoordConvert(t, "coordToData")
  15214. },
  15215. _dataCoordConvert: function(t, e) {
  15216. for (var n = this._dimList, i = t instanceof Array ? [] : {}, r = 0; r < n.length; r++) {
  15217. var o = n[r],
  15218. a = this._axes[o];
  15219. i[o] = a[e](t[o])
  15220. }
  15221. return i
  15222. }
  15223. }, qc.prototype = {
  15224. constructor: qc,
  15225. type: "cartesian2d",
  15226. dimensions: ["x", "y"],
  15227. getBaseAxis: function() {
  15228. return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAxis("x")
  15229. },
  15230. containPoint: function(t) {
  15231. var e = this.getAxis("x"),
  15232. n = this.getAxis("y");
  15233. return e.contain(e.toLocalCoord(t[0])) && n.contain(n.toLocalCoord(t[1]))
  15234. },
  15235. containData: function(t) {
  15236. return this.getAxis("x").containData(t[0]) && this.getAxis("y").containData(t[1])
  15237. },
  15238. dataToPoint: function(t, e, n) {
  15239. var i = this.getAxis("x"),
  15240. r = this.getAxis("y");
  15241. return n = n || [], n[0] = i.toGlobalCoord(i.dataToCoord(t[0])), n[1] = r.toGlobalCoord(r
  15242. .dataToCoord(t[1])), n
  15243. },
  15244. clampData: function(t, e) {
  15245. var n = this.getAxis("x").scale,
  15246. i = this.getAxis("y").scale,
  15247. r = n.getExtent(),
  15248. o = i.getExtent(),
  15249. a = n.parse(t[0]),
  15250. s = i.parse(t[1]);
  15251. return e = e || [], e[0] = Math.min(Math.max(Math.min(r[0], r[1]), a), Math.max(r[0], r[1])), e[
  15252. 1] = Math.min(Math.max(Math.min(o[0], o[1]), s), Math.max(o[0], o[1])), e
  15253. },
  15254. pointToData: function(t, e) {
  15255. var n = this.getAxis("x"),
  15256. i = this.getAxis("y");
  15257. return e = e || [], e[0] = n.coordToData(n.toLocalCoord(t[0])), e[1] = i.coordToData(i
  15258. .toLocalCoord(t[1])), e
  15259. },
  15260. getOtherAxis: function(t) {
  15261. return this.getAxis("x" === t.dim ? "y" : "x")
  15262. },
  15263. getArea: function() {
  15264. var t = this.getAxis("x").getGlobalExtent(),
  15265. e = this.getAxis("y").getGlobalExtent(),
  15266. n = Math.min(t[0], t[1]),
  15267. i = Math.min(e[0], e[1]),
  15268. r = Math.max(t[0], t[1]) - n,
  15269. o = Math.max(e[0], e[1]) - i,
  15270. a = new Tn(n, i, r, o);
  15271. return a
  15272. }
  15273. }, h(qc, Vb);
  15274. var Wb = function(t, e, n, i, r) {
  15275. pb.call(this, t, e, n), this.type = i || "value", this.position = r || "bottom"
  15276. };
  15277. Wb.prototype = {
  15278. constructor: Wb,
  15279. index: 0,
  15280. getAxesOnZeroOf: null,
  15281. model: null,
  15282. isHorizontal: function() {
  15283. var t = this.position;
  15284. return "top" === t || "bottom" === t
  15285. },
  15286. getGlobalExtent: function(t) {
  15287. var e = this.getExtent();
  15288. return e[0] = this.toGlobalCoord(e[0]), e[1] = this.toGlobalCoord(e[1]), t && e[0] > e[1] && e
  15289. .reverse(), e
  15290. },
  15291. getOtherAxis: function() {
  15292. this.grid.getOtherAxis()
  15293. },
  15294. pointToData: function(t, e) {
  15295. return this.coordToData(this.toLocalCoord(t["x" === this.dim ? 0 : 1]), e)
  15296. },
  15297. toLocalCoord: null,
  15298. toGlobalCoord: null
  15299. }, h(Wb, pb);
  15300. var Hb = {
  15301. show: !0,
  15302. zlevel: 0,
  15303. z: 0,
  15304. inverse: !1,
  15305. name: "",
  15306. nameLocation: "end",
  15307. nameRotate: null,
  15308. nameTruncate: {
  15309. maxWidth: null,
  15310. ellipsis: "...",
  15311. placeholder: "."
  15312. },
  15313. nameTextStyle: {},
  15314. nameGap: 15,
  15315. silent: !1,
  15316. triggerEvent: !1,
  15317. tooltip: {
  15318. show: !1
  15319. },
  15320. axisPointer: {},
  15321. axisLine: {
  15322. show: !0,
  15323. onZero: !0,
  15324. onZeroAxisIndex: null,
  15325. lineStyle: {
  15326. color: "#333",
  15327. width: 1,
  15328. type: "solid"
  15329. },
  15330. symbol: ["none", "none"],
  15331. symbolSize: [10, 15]
  15332. },
  15333. axisTick: {
  15334. show: !0,
  15335. inside: !1,
  15336. length: 5,
  15337. lineStyle: {
  15338. width: 1
  15339. }
  15340. },
  15341. axisLabel: {
  15342. show: !0,
  15343. inside: !1,
  15344. rotate: 0,
  15345. showMinLabel: null,
  15346. showMaxLabel: null,
  15347. margin: 8,
  15348. fontSize: 12
  15349. },
  15350. splitLine: {
  15351. show: !0,
  15352. lineStyle: {
  15353. color: ["#ccc"],
  15354. width: 1,
  15355. type: "solid"
  15356. }
  15357. },
  15358. splitArea: {
  15359. show: !1,
  15360. areaStyle: {
  15361. color: ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"]
  15362. }
  15363. }
  15364. },
  15365. Gb = {};
  15366. Gb.categoryAxis = r({
  15367. boundaryGap: !0,
  15368. deduplication: null,
  15369. splitLine: {
  15370. show: !1
  15371. },
  15372. axisTick: {
  15373. alignWithLabel: !1,
  15374. interval: "auto"
  15375. },
  15376. axisLabel: {
  15377. interval: "auto"
  15378. }
  15379. }, Hb), Gb.valueAxis = r({
  15380. boundaryGap: [0, 0],
  15381. splitNumber: 5,
  15382. minorTick: {
  15383. show: !1,
  15384. splitNumber: 5,
  15385. length: 3,
  15386. lineStyle: {}
  15387. },
  15388. minorSplitLine: {
  15389. show: !1,
  15390. lineStyle: {
  15391. color: "#eee",
  15392. width: 1
  15393. }
  15394. }
  15395. }, Hb), Gb.timeAxis = s({
  15396. scale: !0,
  15397. min: "dataMin",
  15398. max: "dataMax"
  15399. }, Gb.valueAxis), Gb.logAxis = s({
  15400. scale: !0,
  15401. logBase: 10
  15402. }, Gb.valueAxis);
  15403. var Zb = ["value", "category", "time", "log"],
  15404. Xb = function(t, e, n, i) {
  15405. f(Zb, function(a) {
  15406. e.extend({
  15407. type: t + "Axis." + a,
  15408. mergeDefaultAndTheme: function(e, i) {
  15409. var o = this.layoutMode,
  15410. s = o ? Ja(e) : {},
  15411. l = i.getTheme();
  15412. r(e, l.get(a + "Axis")), r(e, this.getDefaultOption()), e.type = n(t,
  15413. e), o && Qa(e, s, o)
  15414. },
  15415. optionUpdated: function() {
  15416. var t = this.option;
  15417. "category" === t.type && (this.__ordinalMeta = yh.createByAxisModel(
  15418. this))
  15419. },
  15420. getCategories: function(t) {
  15421. var e = this.option;
  15422. return "category" === e.type ? t ? e.data : this.__ordinalMeta
  15423. .categories : void 0
  15424. },
  15425. getOrdinalMeta: function() {
  15426. return this.__ordinalMeta
  15427. },
  15428. defaultOption: o([{}, Gb[a + "Axis"], i], !0)
  15429. })
  15430. }), qy.registerSubTypeDefaulter(t + "Axis", x(n, t))
  15431. },
  15432. Yb = qy.extend({
  15433. type: "cartesian2dAxis",
  15434. axis: null,
  15435. init: function() {
  15436. Yb.superApply(this, "init", arguments), this.resetRange()
  15437. },
  15438. mergeOption: function() {
  15439. Yb.superApply(this, "mergeOption", arguments), this.resetRange()
  15440. },
  15441. restoreData: function() {
  15442. Yb.superApply(this, "restoreData", arguments), this.resetRange()
  15443. },
  15444. getCoordSysModel: function() {
  15445. return this.ecModel.queryComponents({
  15446. mainType: "grid",
  15447. index: this.option.gridIndex,
  15448. id: this.option.gridId
  15449. })[0]
  15450. }
  15451. });
  15452. r(Yb.prototype, Jw);
  15453. var Ub = {
  15454. offset: 0
  15455. };
  15456. Xb("x", Yb, Kc, Ub), Xb("y", Yb, Kc, Ub), qy.extend({
  15457. type: "grid",
  15458. dependencies: ["xAxis", "yAxis"],
  15459. layoutMode: "box",
  15460. coordinateSystem: null,
  15461. defaultOption: {
  15462. show: !1,
  15463. zlevel: 0,
  15464. z: 0,
  15465. left: "10%",
  15466. top: 60,
  15467. right: "10%",
  15468. bottom: 60,
  15469. containLabel: !1,
  15470. backgroundColor: "rgba(0,0,0,0)",
  15471. borderWidth: 1,
  15472. borderColor: "#ccc"
  15473. }
  15474. });
  15475. var jb = Qc.prototype;
  15476. jb.type = "grid", jb.axisPointerEnabled = !0, jb.getRect = function() {
  15477. return this._rect
  15478. }, jb.update = function(t, e) {
  15479. var n = this._axesMap;
  15480. this._updateScale(t, this.model), f(n.x, function(t) {
  15481. Nh(t.scale, t.model)
  15482. }), f(n.y, function(t) {
  15483. Nh(t.scale, t.model)
  15484. });
  15485. var i = {};
  15486. f(n.x, function(t) {
  15487. Jc(n, "y", t, i)
  15488. }), f(n.y, function(t) {
  15489. Jc(n, "x", t, i)
  15490. }), this.resize(this.model, e)
  15491. }, jb.resize = function(t, e, n) {
  15492. function i() {
  15493. f(o, function(t) {
  15494. var e = t.isHorizontal(),
  15495. n = e ? [0, r.width] : [0, r.height],
  15496. i = t.inverse ? 1 : 0;
  15497. t.setExtent(n[i], n[1 - i]), ed(t, e ? r.x : r.y)
  15498. })
  15499. }
  15500. var r = $a(t.getBoxLayoutParams(), {
  15501. width: e.getWidth(),
  15502. height: e.getHeight()
  15503. });
  15504. this._rect = r;
  15505. var o = this._axesList;
  15506. i(), !n && t.get("containLabel") && (f(o, function(t) {
  15507. if (!t.model.get("axisLabel.inside")) {
  15508. var e = Gh(t);
  15509. if (e) {
  15510. var n = t.isHorizontal() ? "height" : "width",
  15511. i = t.model.get("axisLabel.margin");
  15512. r[n] -= e[n] + i, "top" === t.position ? r.y += e.height + i : "left" === t
  15513. .position && (r.x += e.width + i)
  15514. }
  15515. }
  15516. }), i())
  15517. }, jb.getAxis = function(t, e) {
  15518. var n = this._axesMap[t];
  15519. if (null != n) {
  15520. if (null == e)
  15521. for (var i in n)
  15522. if (n.hasOwnProperty(i)) return n[i];
  15523. return n[e]
  15524. }
  15525. }, jb.getAxes = function() {
  15526. return this._axesList.slice()
  15527. }, jb.getCartesian = function(t, e) {
  15528. if (null != t && null != e) {
  15529. var n = "x" + t + "y" + e;
  15530. return this._coordsMap[n]
  15531. }
  15532. S(t) && (e = t.yAxisIndex, t = t.xAxisIndex);
  15533. for (var i = 0, r = this._coordsList; i < r.length; i++)
  15534. if (r[i].getAxis("x").index === t || r[i].getAxis("y").index === e) return r[i]
  15535. }, jb.getCartesians = function() {
  15536. return this._coordsList.slice()
  15537. }, jb.convertToPixel = function(t, e, n) {
  15538. var i = this._findConvertTarget(t, e);
  15539. return i.cartesian ? i.cartesian.dataToPoint(n) : i.axis ? i.axis.toGlobalCoord(i.axis.dataToCoord(n)) :
  15540. null
  15541. }, jb.convertFromPixel = function(t, e, n) {
  15542. var i = this._findConvertTarget(t, e);
  15543. return i.cartesian ? i.cartesian.pointToData(n) : i.axis ? i.axis.coordToData(i.axis.toLocalCoord(n)) :
  15544. null
  15545. }, jb._findConvertTarget = function(t, e) {
  15546. var n, i, r = e.seriesModel,
  15547. o = e.xAxisModel || r && r.getReferringComponents("xAxis")[0],
  15548. a = e.yAxisModel || r && r.getReferringComponents("yAxis")[0],
  15549. s = e.gridModel,
  15550. l = this._coordsList;
  15551. if (r) n = r.coordinateSystem, u(l, n) < 0 && (n = null);
  15552. else if (o && a) n = this.getCartesian(o.componentIndex, a.componentIndex);
  15553. else if (o) i = this.getAxis("x", o.componentIndex);
  15554. else if (a) i = this.getAxis("y", a.componentIndex);
  15555. else if (s) {
  15556. var h = s.coordinateSystem;
  15557. h === this && (n = this._coordsList[0])
  15558. }
  15559. return {
  15560. cartesian: n,
  15561. axis: i
  15562. }
  15563. }, jb.containPoint = function(t) {
  15564. var e = this._coordsList[0];
  15565. return e ? e.containPoint(t) : void 0
  15566. }, jb._initCartesian = function(t, e) {
  15567. function n(n) {
  15568. return function(a, s) {
  15569. if ($c(a, t, e)) {
  15570. var l = a.get("position");
  15571. "x" === n ? "top" !== l && "bottom" !== l && (l = i.bottom ? "top" : "bottom") :
  15572. "left" !== l && "right" !== l && (l = i.left ? "right" : "left"), i[l] = !0;
  15573. var u = new Wb(n, Fh(a), [0, 0], a.get("type"), l),
  15574. h = "category" === u.type;
  15575. u.onBand = h && a.get("boundaryGap"), u.inverse = a.get("inverse"), a.axis = u, u
  15576. .model = a, u.grid = this, u.index = s, this._axesList.push(u), r[n][s] = u, o[n]++
  15577. }
  15578. }
  15579. }
  15580. var i = {
  15581. left: !1,
  15582. right: !1,
  15583. top: !1,
  15584. bottom: !1
  15585. },
  15586. r = {
  15587. x: {},
  15588. y: {}
  15589. },
  15590. o = {
  15591. x: 0,
  15592. y: 0
  15593. };
  15594. return e.eachComponent("xAxis", n("x"), this), e.eachComponent("yAxis", n("y"), this), o.x && o.y ? (
  15595. this._axesMap = r, void f(r.x, function(e, n) {
  15596. f(r.y, function(i, r) {
  15597. var o = "x" + n + "y" + r,
  15598. a = new qc(o);
  15599. a.grid = this, a.model = t, this._coordsMap[o] = a, this._coordsList.push(
  15600. a), a.addAxis(e), a.addAxis(i)
  15601. }, this)
  15602. }, this)) : (this._axesMap = {}, void(this._axesList = []))
  15603. }, jb._updateScale = function(t, e) {
  15604. function n(t, e) {
  15605. f(t.mapDimension(e.dim, !0), function(n) {
  15606. e.scale.unionExtentFromData(t, fh(t, n))
  15607. })
  15608. }
  15609. f(this._axesList, function(t) {
  15610. t.scale.setExtent(1 / 0, -1 / 0)
  15611. }), t.eachSeries(function(i) {
  15612. if (id(i)) {
  15613. var r = nd(i, t),
  15614. o = r[0],
  15615. a = r[1];
  15616. if (!$c(o, e, t) || !$c(a, e, t)) return;
  15617. var s = this.getCartesian(o.componentIndex, a.componentIndex),
  15618. l = i.getData(),
  15619. u = s.getAxis("x"),
  15620. h = s.getAxis("y");
  15621. "list" === l.type && (n(l, u, i), n(l, h, i))
  15622. }
  15623. }, this)
  15624. }, jb.getTooltipAxes = function(t) {
  15625. var e = [],
  15626. n = [];
  15627. return f(this.getCartesians(), function(i) {
  15628. var r = null != t && "auto" !== t ? i.getAxis(t) : i.getBaseAxis(),
  15629. o = i.getOtherAxis(r);
  15630. u(e, r) < 0 && e.push(r), u(n, o) < 0 && n.push(o)
  15631. }), {
  15632. baseAxes: e,
  15633. otherAxes: n
  15634. }
  15635. };
  15636. var qb = ["xAxis", "yAxis"];
  15637. Qc.create = function(t, e) {
  15638. var n = [];
  15639. return t.eachComponent("grid", function(i, r) {
  15640. var o = new Qc(i, t, e);
  15641. o.name = "grid_" + r, o.resize(i, e, !0), i.coordinateSystem = o, n.push(o)
  15642. }), t.eachSeries(function(e) {
  15643. if (id(e)) {
  15644. var n = nd(e, t),
  15645. i = n[0],
  15646. r = n[1],
  15647. o = i.getCoordSysModel();
  15648. if (lp) {
  15649. if (!o) throw new Error('Grid "' + A(i.get("gridIndex"), i.get("gridId"), 0) +
  15650. '" not found');
  15651. if (i.getCoordSysModel() !== r.getCoordSysModel()) throw new Error(
  15652. "xAxis and yAxis must use the same grid")
  15653. }
  15654. var a = o.coordinateSystem;
  15655. e.coordinateSystem = a.getCartesian(i.componentIndex, r.componentIndex)
  15656. }
  15657. }), n
  15658. }, Qc.dimensions = Qc.prototype.dimensions = qc.prototype.dimensions, Is.register("cartesian2d", Qc);
  15659. var Kb = Math.PI,
  15660. $b = function(t, e) {
  15661. this.opt = e, this.axisModel = t, s(e, {
  15662. labelOffset: 0,
  15663. nameDirection: 1,
  15664. tickDirection: 1,
  15665. labelDirection: 1,
  15666. silent: !0
  15667. }), this.group = new Cg;
  15668. var n = new Cg({
  15669. position: e.position.slice(),
  15670. rotation: e.rotation
  15671. });
  15672. n.updateTransform(), this._transform = n.transform, this._dumbGroup = n
  15673. };
  15674. $b.prototype = {
  15675. constructor: $b,
  15676. hasBuilder: function(t) {
  15677. return !!Qb[t]
  15678. },
  15679. add: function(t) {
  15680. Qb[t].call(this)
  15681. },
  15682. getGroup: function() {
  15683. return this.group
  15684. }
  15685. };
  15686. var Qb = {
  15687. axisLine: function() {
  15688. var t = this.opt,
  15689. e = this.axisModel;
  15690. if (e.get("axisLine.show")) {
  15691. var n = this.axisModel.axis.getExtent(),
  15692. i = this._transform,
  15693. r = [n[0], 0],
  15694. o = [n[1], 0];
  15695. i && (oe(r, r, i), oe(o, o, i));
  15696. var s = a({
  15697. lineCap: "round"
  15698. }, e.getModel("axisLine.lineStyle").getLineStyle());
  15699. this.group.add(new ey({
  15700. anid: "line",
  15701. subPixelOptimize: !0,
  15702. shape: {
  15703. x1: r[0],
  15704. y1: r[1],
  15705. x2: o[0],
  15706. y2: o[1]
  15707. },
  15708. style: s,
  15709. strokeContainThreshold: t.strokeContainThreshold || 5,
  15710. silent: !0,
  15711. z2: 1
  15712. }));
  15713. var l = e.get("axisLine.symbol"),
  15714. u = e.get("axisLine.symbolSize"),
  15715. h = e.get("axisLine.symbolOffset") || 0;
  15716. if ("number" == typeof h && (h = [h, h]), null != l) {
  15717. "string" == typeof l && (l = [l, l]), ("string" == typeof u || "number" == typeof u) &&
  15718. (u = [u, u]);
  15719. var c = u[0],
  15720. d = u[1];
  15721. f([{
  15722. rotate: t.rotation + Math.PI / 2,
  15723. offset: h[0],
  15724. r: 0
  15725. }, {
  15726. rotate: t.rotation - Math.PI / 2,
  15727. offset: h[1],
  15728. r: Math.sqrt((r[0] - o[0]) * (r[0] - o[0]) + (r[1] - o[1]) * (r[1] - o[
  15729. 1]))
  15730. }], function(e, n) {
  15731. if ("none" !== l[n] && null != l[n]) {
  15732. var i = jh(l[n], -c / 2, -d / 2, c, d, s.stroke, !0),
  15733. o = e.r + e.offset,
  15734. a = [r[0] + o * Math.cos(t.rotation), r[1] - o * Math.sin(t
  15735. .rotation)];
  15736. i.attr({
  15737. rotation: e.rotate,
  15738. position: a,
  15739. silent: !0,
  15740. z2: 11
  15741. }), this.group.add(i)
  15742. }
  15743. }, this)
  15744. }
  15745. }
  15746. },
  15747. axisTickLabel: function() {
  15748. var t = this.axisModel,
  15749. e = this.opt,
  15750. n = hd(this, t, e),
  15751. i = dd(this, t, e);
  15752. od(t, i, n), cd(this, t, e)
  15753. },
  15754. axisName: function() {
  15755. var t = this.opt,
  15756. e = this.axisModel,
  15757. n = A(t.axisName, e.get("name"));
  15758. if (n) {
  15759. var i, r = e.get("nameLocation"),
  15760. o = t.nameDirection,
  15761. s = e.getModel("nameTextStyle"),
  15762. l = e.get("nameGap") || 0,
  15763. u = this.axisModel.axis.getExtent(),
  15764. h = u[0] > u[1] ? -1 : 1,
  15765. c = ["start" === r ? u[0] - h * l : "end" === r ? u[1] + h * l : (u[0] + u[1]) / 2, ld(
  15766. r) ? t.labelOffset + o * l : 0],
  15767. d = e.get("nameRotate");
  15768. null != d && (d = d * Kb / 180);
  15769. var f;
  15770. ld(r) ? i = tS(t.rotation, null != d ? d : t.rotation, o) : (i = rd(t, r, d || 0, u), f = t
  15771. .axisNameAvailableWidth, null != f && (f = Math.abs(f / Math.sin(i.rotation)), !
  15772. isFinite(f) && (f = null)));
  15773. var p = s.getFont(),
  15774. g = e.get("nameTruncate", !0) || {},
  15775. v = g.ellipsis,
  15776. m = A(t.nameTruncateMaxWidth, g.maxWidth, f),
  15777. y = null != v && null != m ? Wy(n, m, p, v, {
  15778. minChar: 2,
  15779. placeholder: g.placeholder
  15780. }) : n,
  15781. x = e.get("tooltip", !0),
  15782. _ = e.mainType,
  15783. w = {
  15784. componentType: _,
  15785. name: n,
  15786. $vars: ["name"]
  15787. };
  15788. w[_ + "Index"] = e.componentIndex;
  15789. var b = new Wm({
  15790. anid: "name",
  15791. __fullText: n,
  15792. __truncatedText: y,
  15793. position: c,
  15794. rotation: i.rotation,
  15795. silent: eS(e),
  15796. z2: 1,
  15797. tooltip: x && x.show ? a({
  15798. content: n,
  15799. formatter: function() {
  15800. return n
  15801. },
  15802. formatterParams: w
  15803. }, x) : null
  15804. });
  15805. Xo(b.style, s, {
  15806. text: y,
  15807. textFont: p,
  15808. textFill: s.getTextColor() || e.get("axisLine.lineStyle.color"),
  15809. textAlign: s.get("align") || i.textAlign,
  15810. textVerticalAlign: s.get("verticalAlign") || i.textVerticalAlign
  15811. }), e.get("triggerEvent") && (b.eventData = Jb(e), b.eventData.targetType = "axisName",
  15812. b.eventData.name = n), this._dumbGroup.add(b), b.updateTransform(), this.group.add(
  15813. b), b.decomposeTransform()
  15814. }
  15815. }
  15816. },
  15817. Jb = $b.makeAxisEventDataBase = function(t) {
  15818. var e = {
  15819. componentType: t.mainType,
  15820. componentIndex: t.componentIndex
  15821. };
  15822. return e[t.mainType + "Index"] = t.componentIndex, e
  15823. },
  15824. tS = $b.innerTextLayout = function(t, e, n) {
  15825. var i, r, o = Da(e - t);
  15826. return ka(o) ? (r = n > 0 ? "top" : "bottom", i = "center") : ka(o - Kb) ? (r = n > 0 ? "bottom" :
  15827. "top", i = "center") : (r = "middle", i = o > 0 && Kb > o ? n > 0 ? "right" : "left" : n > 0 ?
  15828. "left" : "right"), {
  15829. rotation: o,
  15830. textAlign: i,
  15831. textVerticalAlign: r
  15832. }
  15833. },
  15834. eS = $b.isLabelSilent = function(t) {
  15835. var e = t.get("tooltip");
  15836. return t.get("silent") || !(t.get("triggerEvent") || e && e.show)
  15837. },
  15838. nS = f,
  15839. iS = x,
  15840. rS = Pu({
  15841. type: "axis",
  15842. _axisPointer: null,
  15843. axisPointerClass: null,
  15844. render: function(t, e, n, i) {
  15845. this.axisPointerClass && xd(t), rS.superApply(this, "render", arguments), Md(this, t, e, n,
  15846. i, !0)
  15847. },
  15848. updateAxisPointer: function(t, e, n, i) {
  15849. Md(this, t, e, n, i, !1)
  15850. },
  15851. remove: function(t, e) {
  15852. var n = this._axisPointer;
  15853. n && n.remove(e), rS.superApply(this, "remove", arguments)
  15854. },
  15855. dispose: function(t, e) {
  15856. Id(this, e), rS.superApply(this, "dispose", arguments)
  15857. }
  15858. }),
  15859. oS = [];
  15860. rS.registerAxisPointerClass = function(t, e) {
  15861. if (lp && oS[t]) throw new Error("axisPointer " + t + " exists");
  15862. oS[t] = e
  15863. }, rS.getAxisPointerClass = function(t) {
  15864. return t && oS[t]
  15865. };
  15866. var aS = ["axisLine", "axisTickLabel", "axisName"],
  15867. sS = ["splitArea", "splitLine", "minorSplitLine"],
  15868. lS = rS.extend({
  15869. type: "cartesianAxis",
  15870. axisPointerClass: "CartesianAxisPointer",
  15871. render: function(t, e, n, i) {
  15872. this.group.removeAll();
  15873. var r = this._axisGroup;
  15874. if (this._axisGroup = new Cg, this.group.add(this._axisGroup), t.get("show")) {
  15875. var o = t.getCoordSysModel(),
  15876. a = Cd(o, t),
  15877. s = new $b(t, a);
  15878. f(aS, s.add, s), this._axisGroup.add(s.getGroup()), f(sS, function(e) {
  15879. t.get(e + ".show") && this["_" + e](t, o)
  15880. }, this), aa(r, this._axisGroup, t), lS.superCall(this, "render", t, e, n, i)
  15881. }
  15882. },
  15883. remove: function() {
  15884. Ad(this)
  15885. },
  15886. _splitLine: function(t, e) {
  15887. var n = t.axis;
  15888. if (!n.scale.isBlank()) {
  15889. var i = t.getModel("splitLine"),
  15890. r = i.getModel("lineStyle"),
  15891. o = r.get("color");
  15892. o = _(o) ? o : [o];
  15893. for (var a = e.coordinateSystem.getRect(), l = n.isHorizontal(), u = 0, h = n
  15894. .getTicksCoords({
  15895. tickModel: i
  15896. }), c = [], d = [], f = r.getLineStyle(), p = 0; p < h.length; p++) {
  15897. var g = n.toGlobalCoord(h[p].coord);
  15898. l ? (c[0] = g, c[1] = a.y, d[0] = g, d[1] = a.y + a.height) : (c[0] = a.x, c[1] = g,
  15899. d[0] = a.x + a.width, d[1] = g);
  15900. var v = u++ % o.length,
  15901. m = h[p].tickValue;
  15902. this._axisGroup.add(new ey({
  15903. anid: null != m ? "line_" + h[p].tickValue : null,
  15904. subPixelOptimize: !0,
  15905. shape: {
  15906. x1: c[0],
  15907. y1: c[1],
  15908. x2: d[0],
  15909. y2: d[1]
  15910. },
  15911. style: s({
  15912. stroke: o[v]
  15913. }, f),
  15914. silent: !0
  15915. }))
  15916. }
  15917. }
  15918. },
  15919. _minorSplitLine: function(t, e) {
  15920. var n = t.axis,
  15921. i = t.getModel("minorSplitLine"),
  15922. r = i.getModel("lineStyle"),
  15923. o = e.coordinateSystem.getRect(),
  15924. a = n.isHorizontal(),
  15925. s = n.getMinorTicksCoords();
  15926. if (s.length)
  15927. for (var l = [], u = [], h = r.getLineStyle(), c = 0; c < s.length; c++)
  15928. for (var d = 0; d < s[c].length; d++) {
  15929. var f = n.toGlobalCoord(s[c][d].coord);
  15930. a ? (l[0] = f, l[1] = o.y, u[0] = f, u[1] = o.y + o.height) : (l[0] = o.x, l[
  15931. 1] = f, u[0] = o.x + o.width, u[1] = f), this._axisGroup.add(new ey({
  15932. anid: "minor_line_" + s[c][d].tickValue,
  15933. subPixelOptimize: !0,
  15934. shape: {
  15935. x1: l[0],
  15936. y1: l[1],
  15937. x2: u[0],
  15938. y2: u[1]
  15939. },
  15940. style: h,
  15941. silent: !0
  15942. }))
  15943. }
  15944. },
  15945. _splitArea: function(t, e) {
  15946. Td(this, this._axisGroup, t, e)
  15947. }
  15948. });
  15949. lS.extend({
  15950. type: "xAxis"
  15951. }), lS.extend({
  15952. type: "yAxis"
  15953. }), Pu({
  15954. type: "grid",
  15955. render: function(t) {
  15956. this.group.removeAll(), t.get("show") && this.group.add(new Jm({
  15957. shape: t.coordinateSystem.getRect(),
  15958. style: s({
  15959. fill: t.get("backgroundColor")
  15960. }, t.getItemStyle()),
  15961. silent: !0,
  15962. z2: -1
  15963. }))
  15964. }
  15965. }), _u(function(t) {
  15966. t.xAxis && t.yAxis && !t.grid && (t.grid = {})
  15967. }), Tu(Eb("line", "circle", "line")), Cu(Bb("line")), wu(W_.PROCESSOR.STATISTIC, Fb("line")), ku({
  15968. type: "title",
  15969. layoutMode: {
  15970. type: "box",
  15971. ignoreSize: !0
  15972. },
  15973. defaultOption: {
  15974. zlevel: 0,
  15975. z: 6,
  15976. show: !0,
  15977. text: "",
  15978. target: "blank",
  15979. subtext: "",
  15980. subtarget: "blank",
  15981. left: 0,
  15982. top: 0,
  15983. backgroundColor: "rgba(0,0,0,0)",
  15984. borderColor: "#ccc",
  15985. borderWidth: 0,
  15986. padding: 5,
  15987. itemGap: 10,
  15988. textStyle: {
  15989. fontSize: 18,
  15990. fontWeight: "bolder",
  15991. color: "#333"
  15992. },
  15993. subtextStyle: {
  15994. color: "#aaa"
  15995. }
  15996. }
  15997. }), Pu({
  15998. type: "title",
  15999. render: function(t, e, n) {
  16000. if (this.group.removeAll(), t.get("show")) {
  16001. var i = this.group,
  16002. r = t.getModel("textStyle"),
  16003. o = t.getModel("subtextStyle"),
  16004. a = t.get("textAlign"),
  16005. s = D(t.get("textBaseline"), t.get("textVerticalAlign")),
  16006. l = new Wm({
  16007. style: Xo({}, r, {
  16008. text: t.get("text"),
  16009. textFill: r.getTextColor()
  16010. }, {
  16011. disableBox: !0
  16012. }),
  16013. z2: 10
  16014. }),
  16015. u = l.getBoundingRect(),
  16016. h = t.get("subtext"),
  16017. c = new Wm({
  16018. style: Xo({}, o, {
  16019. text: h,
  16020. textFill: o.getTextColor(),
  16021. y: u.height + t.get("itemGap"),
  16022. textVerticalAlign: "top"
  16023. }, {
  16024. disableBox: !0
  16025. }),
  16026. z2: 10
  16027. }),
  16028. d = t.get("link"),
  16029. f = t.get("sublink"),
  16030. p = t.get("triggerEvent", !0);
  16031. l.silent = !d && !p, c.silent = !f && !p, d && l.on("click", function() {
  16032. qa(d, "_" + t.get("target"))
  16033. }), f && c.on("click", function() {
  16034. qa(d, "_" + t.get("subtarget"))
  16035. }), l.eventData = c.eventData = p ? {
  16036. componentType: "title",
  16037. componentIndex: t.componentIndex
  16038. } : null, i.add(l), h && i.add(c);
  16039. var g = i.getBoundingRect(),
  16040. v = t.getBoxLayoutParams();
  16041. v.width = g.width, v.height = g.height;
  16042. var m = $a(v, {
  16043. width: n.getWidth(),
  16044. height: n.getHeight()
  16045. }, t.get("padding"));
  16046. a || (a = t.get("left") || t.get("right"), "middle" === a && (a = "center"), "right" ===
  16047. a ? m.x += m.width : "center" === a && (m.x += m.width / 2)), s || (s = t.get(
  16048. "top") || t.get("bottom"), "center" === s && (s = "middle"), "bottom" ===
  16049. s ? m.y += m.height : "middle" === s && (m.y += m.height / 2), s = s || "top"),
  16050. i.attr("position", [m.x, m.y]);
  16051. var y = {
  16052. textAlign: a,
  16053. textVerticalAlign: s
  16054. };
  16055. l.setStyle(y), c.setStyle(y), g = i.getBoundingRect();
  16056. var x = m.margin,
  16057. _ = t.getItemStyle(["color", "opacity"]);
  16058. _.fill = t.get("backgroundColor");
  16059. var w = new Jm({
  16060. shape: {
  16061. x: g.x - x[3],
  16062. y: g.y - x[0],
  16063. width: g.width + x[1] + x[3],
  16064. height: g.height + x[0] + x[2],
  16065. r: t.get("borderRadius")
  16066. },
  16067. style: _,
  16068. subPixelOptimize: !0,
  16069. silent: !0
  16070. });
  16071. i.add(w)
  16072. }
  16073. }
  16074. });
  16075. var uS = qx.legend.selector,
  16076. hS = {
  16077. all: {
  16078. type: "all",
  16079. title: i(uS.all)
  16080. },
  16081. inverse: {
  16082. type: "inverse",
  16083. title: i(uS.inverse)
  16084. }
  16085. },
  16086. cS = ku({
  16087. type: "legend.plain",
  16088. dependencies: ["series"],
  16089. layoutMode: {
  16090. type: "box",
  16091. ignoreSize: !0
  16092. },
  16093. init: function(t, e, n) {
  16094. this.mergeDefaultAndTheme(t, n), t.selected = t.selected || {}, this._updateSelector(t)
  16095. },
  16096. mergeOption: function(t) {
  16097. cS.superCall(this, "mergeOption", t), this._updateSelector(t)
  16098. },
  16099. _updateSelector: function(t) {
  16100. var e = t.selector;
  16101. e === !0 && (e = t.selector = ["all", "inverse"]), _(e) && f(e, function(t, n) {
  16102. b(t) && (t = {
  16103. type: t
  16104. }), e[n] = r(t, hS[t.type])
  16105. })
  16106. },
  16107. optionUpdated: function() {
  16108. this._updateData(this.ecModel);
  16109. var t = this._data;
  16110. if (t[0] && "single" === this.get("selectedMode")) {
  16111. for (var e = !1, n = 0; n < t.length; n++) {
  16112. var i = t[n].get("name");
  16113. if (this.isSelected(i)) {
  16114. this.select(i), e = !0;
  16115. break
  16116. }
  16117. }!e && this.select(t[0].get("name"))
  16118. }
  16119. },
  16120. _updateData: function(t) {
  16121. var e = [],
  16122. n = [];
  16123. t.eachRawSeries(function(i) {
  16124. var r = i.name;
  16125. n.push(r);
  16126. var o;
  16127. if (i.legendVisualProvider) {
  16128. var a = i.legendVisualProvider,
  16129. s = a.getAllNames();
  16130. t.isSeriesFiltered(i) || (n = n.concat(s)), s.length ? e = e.concat(s) :
  16131. o = !0
  16132. } else o = !0;
  16133. o && ar(i) && e.push(i.name)
  16134. }), this._availableNames = n;
  16135. var i = this.get("data") || e,
  16136. r = p(i, function(t) {
  16137. return ("string" == typeof t || "number" == typeof t) && (t = {
  16138. name: t
  16139. }), new pa(t, this, this.ecModel)
  16140. }, this);
  16141. this._data = r
  16142. },
  16143. getData: function() {
  16144. return this._data
  16145. },
  16146. select: function(t) {
  16147. var e = this.option.selected,
  16148. n = this.get("selectedMode");
  16149. if ("single" === n) {
  16150. var i = this._data;
  16151. f(i, function(t) {
  16152. e[t.get("name")] = !1
  16153. })
  16154. }
  16155. e[t] = !0
  16156. },
  16157. unSelect: function(t) {
  16158. "single" !== this.get("selectedMode") && (this.option.selected[t] = !1)
  16159. },
  16160. toggleSelected: function(t) {
  16161. var e = this.option.selected;
  16162. e.hasOwnProperty(t) || (e[t] = !0), this[e[t] ? "unSelect" : "select"](t)
  16163. },
  16164. allSelect: function() {
  16165. var t = this._data,
  16166. e = this.option.selected;
  16167. f(t, function(t) {
  16168. e[t.get("name", !0)] = !0
  16169. })
  16170. },
  16171. inverseSelect: function() {
  16172. var t = this._data,
  16173. e = this.option.selected;
  16174. f(t, function(t) {
  16175. var n = t.get("name", !0);
  16176. e.hasOwnProperty(n) || (e[n] = !0), e[n] = !e[n]
  16177. })
  16178. },
  16179. isSelected: function(t) {
  16180. var e = this.option.selected;
  16181. return !(e.hasOwnProperty(t) && !e[t]) && u(this._availableNames, t) >= 0
  16182. },
  16183. getOrient: function() {
  16184. return "vertical" === this.get("orient") ? {
  16185. index: 1,
  16186. name: "vertical"
  16187. } : {
  16188. index: 0,
  16189. name: "horizontal"
  16190. }
  16191. },
  16192. defaultOption: {
  16193. zlevel: 0,
  16194. z: 4,
  16195. show: !0,
  16196. orient: "horizontal",
  16197. left: "center",
  16198. top: 0,
  16199. align: "auto",
  16200. backgroundColor: "rgba(0,0,0,0)",
  16201. borderColor: "#ccc",
  16202. borderRadius: 0,
  16203. borderWidth: 0,
  16204. padding: 5,
  16205. itemGap: 10,
  16206. itemWidth: 25,
  16207. itemHeight: 14,
  16208. inactiveColor: "#ccc",
  16209. inactiveBorderColor: "#ccc",
  16210. itemStyle: {
  16211. borderWidth: 0
  16212. },
  16213. textStyle: {
  16214. color: "#333"
  16215. },
  16216. selectedMode: !0,
  16217. selector: !1,
  16218. selectorLabel: {
  16219. show: !0,
  16220. borderRadius: 10,
  16221. padding: [3, 5, 3, 5],
  16222. fontSize: 12,
  16223. fontFamily: " sans-serif",
  16224. color: "#666",
  16225. borderWidth: 1,
  16226. borderColor: "#666"
  16227. },
  16228. emphasis: {
  16229. selectorLabel: {
  16230. show: !0,
  16231. color: "#eee",
  16232. backgroundColor: "#666"
  16233. }
  16234. },
  16235. selectorPosition: "auto",
  16236. selectorItemGap: 7,
  16237. selectorButtonGap: 10,
  16238. tooltip: {
  16239. show: !1
  16240. }
  16241. }
  16242. });
  16243. Su("legendToggleSelect", "legendselectchanged", x(Dd, "toggleSelected")), Su("legendAllSelect",
  16244. "legendselectall", x(Dd, "allSelect")), Su("legendInverseSelect", "legendinverseselect", x(Dd,
  16245. "inverseSelect")), Su("legendSelect", "legendselected", x(Dd, "select")), Su("legendUnSelect",
  16246. "legendunselected", x(Dd, "unSelect"));
  16247. var dS = x,
  16248. fS = f,
  16249. pS = Cg,
  16250. gS = Pu({
  16251. type: "legend.plain",
  16252. newlineDisabled: !1,
  16253. init: function() {
  16254. this.group.add(this._contentGroup = new pS), this._backgroundEl, this.group.add(this
  16255. ._selectorGroup = new pS), this._isFirstRender = !0
  16256. },
  16257. getContentGroup: function() {
  16258. return this._contentGroup
  16259. },
  16260. getSelectorGroup: function() {
  16261. return this._selectorGroup
  16262. },
  16263. render: function(t, e, n) {
  16264. var i = this._isFirstRender;
  16265. if (this._isFirstRender = !1, this.resetInner(), t.get("show", !0)) {
  16266. var r = t.get("align"),
  16267. o = t.get("orient");
  16268. r && "auto" !== r || (r = "right" === t.get("left") && "vertical" === o ? "right" :
  16269. "left");
  16270. var a = t.get("selector", !0),
  16271. l = t.get("selectorPosition", !0);
  16272. !a || l && "auto" !== l || (l = "horizontal" === o ? "end" : "start"), this.renderInner(
  16273. r, t, e, n, a, o, l);
  16274. var u = t.getBoxLayoutParams(),
  16275. h = {
  16276. width: n.getWidth(),
  16277. height: n.getHeight()
  16278. },
  16279. c = t.get("padding"),
  16280. d = $a(u, h, c),
  16281. f = this.layoutInner(t, r, d, i, a, l),
  16282. p = $a(s({
  16283. width: f.width,
  16284. height: f.height
  16285. }, u), h, c);
  16286. this.group.attr("position", [p.x - f.x, p.y - f.y]), this.group.add(this._backgroundEl =
  16287. kd(f, t))
  16288. }
  16289. },
  16290. resetInner: function() {
  16291. this.getContentGroup().removeAll(), this._backgroundEl && this.group.remove(this
  16292. ._backgroundEl), this.getSelectorGroup().removeAll()
  16293. },
  16294. renderInner: function(t, e, n, i, r, o, a) {
  16295. var s = this.getContentGroup(),
  16296. l = N(),
  16297. u = e.get("selectedMode"),
  16298. h = [];
  16299. n.eachRawSeries(function(t) {
  16300. !t.get("legendHoverLink") && h.push(t.id)
  16301. }), fS(e.getData(), function(r, o) {
  16302. var a = r.get("name");
  16303. if (!this.newlineDisabled && ("" === a || "\n" === a)) return void s.add(
  16304. new pS({
  16305. newline: !0
  16306. }));
  16307. var c = n.getSeriesByName(a)[0];
  16308. if (!l.get(a)) {
  16309. if (c) {
  16310. var d = c.getData(),
  16311. f = d.getVisual("color"),
  16312. p = d.getVisual("borderColor");
  16313. "function" == typeof f && (f = f(c.getDataParams(0))), "function" ==
  16314. typeof p && (p = p(c.getDataParams(0)));
  16315. var g = d.getVisual("legendSymbol") || "roundRect",
  16316. v = d.getVisual("symbol"),
  16317. m = this._createItem(a, o, r, e, g, v, t, f, p, u);
  16318. m.on("click", dS(Od, a, null, i, h)).on("mouseover", dS(Ld, c.name,
  16319. null, i, h)).on("mouseout", dS(zd, c.name, null, i, h)), l.set(
  16320. a, !0)
  16321. } else n.eachRawSeries(function(n) {
  16322. if (!l.get(a) && n.legendVisualProvider) {
  16323. var s = n.legendVisualProvider;
  16324. if (!s.containName(a)) return;
  16325. var c = s.indexOfName(a),
  16326. d = s.getItemVisual(c, "color"),
  16327. f = s.getItemVisual(c, "borderColor"),
  16328. p = "roundRect",
  16329. g = this._createItem(a, o, r, e, p, null, t, d, f, u);
  16330. g.on("click", dS(Od, null, a, i, h)).on("mouseover", dS(Ld,
  16331. null, a, i, h)).on("mouseout", dS(zd, null, a, i,
  16332. h)), l.set(a, !0)
  16333. }
  16334. }, this);
  16335. lp && (l.get(a) || console.warn(a +
  16336. " series not exists. Legend data should be same with series name or data name."
  16337. ))
  16338. }
  16339. }, this), r && this._createSelector(r, e, i, o, a)
  16340. },
  16341. _createSelector: function(t, e, n) {
  16342. function i(t) {
  16343. var i = t.type,
  16344. o = new Wm({
  16345. style: {
  16346. x: 0,
  16347. y: 0,
  16348. align: "center",
  16349. verticalAlign: "middle"
  16350. },
  16351. onclick: function() {
  16352. n.dispatchAction({
  16353. type: "all" === i ? "legendAllSelect" :
  16354. "legendInverseSelect"
  16355. })
  16356. }
  16357. });
  16358. r.add(o);
  16359. var a = e.getModel("selectorLabel"),
  16360. s = e.getModel("emphasis.selectorLabel");
  16361. Go(o.style, o.hoverStyle = {}, a, s, {
  16362. defaultText: t.title,
  16363. isRectText: !1
  16364. }), Fo(o)
  16365. }
  16366. var r = this.getSelectorGroup();
  16367. fS(t, function(t) {
  16368. i(t)
  16369. })
  16370. },
  16371. _createItem: function(t, e, n, i, r, o, s, l, u, h) {
  16372. var c = i.get("itemWidth"),
  16373. d = i.get("itemHeight"),
  16374. f = i.get("inactiveColor"),
  16375. p = i.get("inactiveBorderColor"),
  16376. g = i.get("symbolKeepAspect"),
  16377. v = i.getModel("itemStyle"),
  16378. m = i.isSelected(t),
  16379. y = new pS,
  16380. x = n.getModel("textStyle"),
  16381. _ = n.get("icon"),
  16382. w = n.getModel("tooltip"),
  16383. b = w.parentModel;
  16384. r = _ || r;
  16385. var S = jh(r, 0, 0, c, d, m ? l : f, null == g ? !0 : g);
  16386. if (y.add(Pd(S, r, v, u, p, m)), !_ && o && (o !== r || "none" === o)) {
  16387. var M = .8 * d;
  16388. "none" === o && (o = "circle");
  16389. var I = jh(o, (c - M) / 2, (d - M) / 2, M, M, m ? l : f, null == g ? !0 : g);
  16390. y.add(Pd(I, o, v, u, p, m))
  16391. }
  16392. var C = "left" === s ? c + 5 : -5,
  16393. T = s,
  16394. A = i.get("formatter"),
  16395. D = t;
  16396. "string" == typeof A && A ? D = A.replace("{name}", null != t ? t : "") : "function" ==
  16397. typeof A && (D = A(t)), y.add(new Wm({
  16398. style: Xo({}, x, {
  16399. text: D,
  16400. x: C,
  16401. y: d / 2,
  16402. textFill: m ? x.getTextColor() : f,
  16403. textAlign: T,
  16404. textVerticalAlign: "middle"
  16405. })
  16406. }));
  16407. var k = new Jm({
  16408. shape: y.getBoundingRect(),
  16409. invisible: !0,
  16410. tooltip: w.get("show") ? a({
  16411. content: t,
  16412. formatter: b.get("formatter", !0) || function() {
  16413. return t
  16414. },
  16415. formatterParams: {
  16416. componentType: "legend",
  16417. legendIndex: i.componentIndex,
  16418. name: t,
  16419. $vars: ["name"]
  16420. }
  16421. }, w.option) : null
  16422. });
  16423. return y.add(k), y.eachChild(function(t) {
  16424. t.silent = !0
  16425. }), k.silent = !h, this.getContentGroup().add(y), Fo(y), y.__legendDataIndex = e, y
  16426. },
  16427. layoutInner: function(t, e, n, i, r, o) {
  16428. var a = this.getContentGroup(),
  16429. s = this.getSelectorGroup();
  16430. Yy(t.get("orient"), a, t.get("itemGap"), n.width, n.height);
  16431. var l = a.getBoundingRect(),
  16432. u = [-l.x, -l.y];
  16433. if (r) {
  16434. Yy("horizontal", s, t.get("selectorItemGap", !0));
  16435. var h = s.getBoundingRect(),
  16436. c = [-h.x, -h.y],
  16437. d = t.get("selectorButtonGap", !0),
  16438. f = t.getOrient().index,
  16439. p = 0 === f ? "width" : "height",
  16440. g = 0 === f ? "height" : "width",
  16441. v = 0 === f ? "y" : "x";
  16442. "end" === o ? c[f] += l[p] + d : u[f] += h[p] + d, c[1 - f] += l[g] / 2 - h[g] / 2, s
  16443. .attr("position", c), a.attr("position", u);
  16444. var m = {
  16445. x: 0,
  16446. y: 0
  16447. };
  16448. return m[p] = l[p] + d + h[p], m[g] = Math.max(l[g], h[g]), m[v] = Math.min(0, h[v] + c[
  16449. 1 - f]), m
  16450. }
  16451. return a.attr("position", u), this.group.getBoundingRect()
  16452. },
  16453. remove: function() {
  16454. this.getContentGroup().removeAll(), this._isFirstRender = !0
  16455. }
  16456. }),
  16457. vS = function(t) {
  16458. var e = t.findComponents({
  16459. mainType: "legend"
  16460. });
  16461. e && e.length && t.filterSeries(function(t) {
  16462. for (var n = 0; n < e.length; n++)
  16463. if (!e[n].isSelected(t.name)) return !1;
  16464. return !0
  16465. })
  16466. };
  16467. wu(W_.PROCESSOR.SERIES_FILTER, vS), qy.registerSubTypeDefaulter("legend", function() {
  16468. return "plain"
  16469. });
  16470. var mS = cS.extend({
  16471. type: "legend.scroll",
  16472. setScrollDataIndex: function(t) {
  16473. this.option.scrollDataIndex = t
  16474. },
  16475. defaultOption: {
  16476. scrollDataIndex: 0,
  16477. pageButtonItemGap: 5,
  16478. pageButtonGap: null,
  16479. pageButtonPosition: "end",
  16480. pageFormatter: "{current}/{total}",
  16481. pageIcons: {
  16482. horizontal: ["M0,0L12,-10L12,10z", "M0,0L-12,-10L-12,10z"],
  16483. vertical: ["M0,0L20,0L10,-20z", "M0,0L20,0L10,20z"]
  16484. },
  16485. pageIconColor: "#2f4554",
  16486. pageIconInactiveColor: "#aaa",
  16487. pageIconSize: 15,
  16488. pageTextStyle: {
  16489. color: "#333"
  16490. },
  16491. animationDurationUpdate: 800
  16492. },
  16493. init: function(t, e, n, i) {
  16494. var r = Ja(t);
  16495. mS.superCall(this, "init", t, e, n, i), Ed(this, t, r)
  16496. },
  16497. mergeOption: function(t, e) {
  16498. mS.superCall(this, "mergeOption", t, e), Ed(this, this.option, t)
  16499. }
  16500. }),
  16501. yS = Cg,
  16502. xS = ["width", "height"],
  16503. _S = ["x", "y"],
  16504. wS = gS.extend({
  16505. type: "legend.scroll",
  16506. newlineDisabled: !0,
  16507. init: function() {
  16508. wS.superCall(this, "init"), this._currentIndex = 0, this.group.add(this._containerGroup =
  16509. new yS), this._containerGroup.add(this.getContentGroup()), this.group.add(this
  16510. ._controllerGroup = new yS), this._showController
  16511. },
  16512. resetInner: function() {
  16513. wS.superCall(this, "resetInner"), this._controllerGroup.removeAll(), this._containerGroup
  16514. .removeClipPath(), this._containerGroup.__rectSize = null
  16515. },
  16516. renderInner: function(t, e, n, i, r, o, a) {
  16517. function s(t, n) {
  16518. var r = t + "DataIndex",
  16519. o = ua(e.get("pageIcons", !0)[e.getOrient().name][n], {
  16520. onclick: y(l._pageGo, l, r, e, i)
  16521. }, {
  16522. x: -h[0] / 2,
  16523. y: -h[1] / 2,
  16524. width: h[0],
  16525. height: h[1]
  16526. });
  16527. o.name = t, u.add(o)
  16528. }
  16529. var l = this;
  16530. wS.superCall(this, "renderInner", t, e, n, i, r, o, a);
  16531. var u = this._controllerGroup,
  16532. h = e.get("pageIconSize", !0);
  16533. _(h) || (h = [h, h]), s("pagePrev", 0);
  16534. var c = e.getModel("pageTextStyle");
  16535. u.add(new Wm({
  16536. name: "pageText",
  16537. style: {
  16538. textFill: c.getTextColor(),
  16539. font: c.getFont(),
  16540. textVerticalAlign: "middle",
  16541. textAlign: "center"
  16542. },
  16543. silent: !0
  16544. })), s("pageNext", 1)
  16545. },
  16546. layoutInner: function(t, e, n, r, o, a) {
  16547. var s = this.getSelectorGroup(),
  16548. l = t.getOrient().index,
  16549. u = xS[l],
  16550. h = _S[l],
  16551. c = xS[1 - l],
  16552. d = _S[1 - l];
  16553. o && Yy("horizontal", s, t.get("selectorItemGap", !0));
  16554. var f = t.get("selectorButtonGap", !0),
  16555. p = s.getBoundingRect(),
  16556. g = [-p.x, -p.y],
  16557. v = i(n);
  16558. o && (v[u] = n[u] - p[u] - f);
  16559. var m = this._layoutContentAndController(t, r, v, l, u, c, d);
  16560. if (o) {
  16561. if ("end" === a) g[l] += m[u] + f;
  16562. else {
  16563. var y = p[u] + f;
  16564. g[l] -= y, m[h] -= y
  16565. }
  16566. m[u] += p[u] + f, g[1 - l] += m[d] + m[c] / 2 - p[c] / 2, m[c] = Math.max(m[c], p[c]),
  16567. m[d] = Math.min(m[d], p[d] + g[1 - l]), s.attr("position", g)
  16568. }
  16569. return m
  16570. },
  16571. _layoutContentAndController: function(t, e, n, i, r, o, a) {
  16572. var s = this.getContentGroup(),
  16573. l = this._containerGroup,
  16574. u = this._controllerGroup;
  16575. Yy(t.get("orient"), s, t.get("itemGap"), i ? n.width : null, i ? null : n.height), Yy(
  16576. "horizontal", u, t.get("pageButtonItemGap", !0));
  16577. var h = s.getBoundingRect(),
  16578. c = u.getBoundingRect(),
  16579. d = this._showController = h[r] > n[r],
  16580. f = [-h.x, -h.y];
  16581. e || (f[i] = s.position[i]);
  16582. var p = [0, 0],
  16583. g = [-c.x, -c.y],
  16584. v = D(t.get("pageButtonGap", !0), t.get("itemGap", !0));
  16585. if (d) {
  16586. var m = t.get("pageButtonPosition", !0);
  16587. "end" === m ? g[i] += n[r] - c[r] : p[i] += c[r] + v
  16588. }
  16589. g[1 - i] += h[o] / 2 - c[o] / 2, s.attr("position", f), l.attr("position", p), u.attr(
  16590. "position", g);
  16591. var y = {
  16592. x: 0,
  16593. y: 0
  16594. };
  16595. if (y[r] = d ? n[r] : h[r], y[o] = Math.max(h[o], c[o]), y[a] = Math.min(0, c[a] + g[1 -
  16596. i]), l.__rectSize = n[r], d) {
  16597. var x = {
  16598. x: 0,
  16599. y: 0
  16600. };
  16601. x[r] = Math.max(n[r] - c[r] - v, 0), x[o] = y[o], l.setClipPath(new Jm({
  16602. shape: x
  16603. })), l.__rectSize = x[r]
  16604. } else u.eachChild(function(t) {
  16605. t.attr({
  16606. invisible: !0,
  16607. silent: !0
  16608. })
  16609. });
  16610. var _ = this._getPageInfo(t);
  16611. return null != _.pageIndex && ea(s, {
  16612. position: _.contentPosition
  16613. }, d ? t : !1), this._updatePageInfoView(t, _), y
  16614. },
  16615. _pageGo: function(t, e, n) {
  16616. var i = this._getPageInfo(e)[t];
  16617. null != i && n.dispatchAction({
  16618. type: "legendScroll",
  16619. scrollDataIndex: i,
  16620. legendId: e.id
  16621. })
  16622. },
  16623. _updatePageInfoView: function(t, e) {
  16624. var n = this._controllerGroup;
  16625. f(["pagePrev", "pageNext"], function(i) {
  16626. var r = null != e[i + "DataIndex"],
  16627. o = n.childOfName(i);
  16628. o && (o.setStyle("fill", r ? t.get("pageIconColor", !0) : t.get(
  16629. "pageIconInactiveColor", !0)), o.cursor = r ? "pointer" : "default")
  16630. });
  16631. var i = n.childOfName("pageText"),
  16632. r = t.get("pageFormatter"),
  16633. o = e.pageIndex,
  16634. a = null != o ? o + 1 : 0,
  16635. s = e.pageCount;
  16636. i && r && i.setStyle("text", b(r) ? r.replace("{current}", a).replace("{total}", s) : r({
  16637. current: a,
  16638. total: s
  16639. }))
  16640. },
  16641. _getPageInfo: function(t) {
  16642. function e(t) {
  16643. if (t) {
  16644. var e = t.getBoundingRect(),
  16645. n = e[l] + t.position[a];
  16646. return {
  16647. s: n,
  16648. e: n + e[s],
  16649. i: t.__legendDataIndex
  16650. }
  16651. }
  16652. }
  16653. function n(t, e) {
  16654. return t.e >= e && t.s <= e + o
  16655. }
  16656. var i = t.get("scrollDataIndex", !0),
  16657. r = this.getContentGroup(),
  16658. o = this._containerGroup.__rectSize,
  16659. a = t.getOrient().index,
  16660. s = xS[a],
  16661. l = _S[a],
  16662. u = this._findTargetItemIndex(i),
  16663. h = r.children(),
  16664. c = h[u],
  16665. d = h.length,
  16666. f = d ? 1 : 0,
  16667. p = {
  16668. contentPosition: r.position.slice(),
  16669. pageCount: f,
  16670. pageIndex: f - 1,
  16671. pagePrevDataIndex: null,
  16672. pageNextDataIndex: null
  16673. };
  16674. if (!c) return p;
  16675. var g = e(c);
  16676. p.contentPosition[a] = -g.s;
  16677. for (var v = u + 1, m = g, y = g, x = null; d >= v; ++v) x = e(h[v]), (!x && y.e > m.s +
  16678. o || x && !n(x, m.s)) && (m = y.i > m.i ? y : x, m && (null == p
  16679. .pageNextDataIndex && (p.pageNextDataIndex = m.i), ++p.pageCount)), y = x;
  16680. for (var v = u - 1, m = g, y = g, x = null; v >= -1; --v) x = e(h[v]), x && n(y, x.s) || !(m
  16681. .i < y.i) || (y = m, null == p.pagePrevDataIndex && (p.pagePrevDataIndex = m.i), ++p
  16682. .pageCount, ++p.pageIndex), m = x;
  16683. return p
  16684. },
  16685. _findTargetItemIndex: function(t) {
  16686. if (!this._showController) return 0;
  16687. var e, n, i = this.getContentGroup();
  16688. return i.eachChild(function(i, r) {
  16689. var o = i.__legendDataIndex;
  16690. null == n && null != o && (n = r), o === t && (e = r)
  16691. }), null != e ? e : n
  16692. }
  16693. });
  16694. Su("legendScroll", "legendscroll", function(t, e) {
  16695. var n = t.scrollDataIndex;
  16696. null != n && e.eachComponent({
  16697. mainType: "legend",
  16698. subType: "scroll",
  16699. query: t
  16700. }, function(t) {
  16701. t.setScrollDataIndex(n)
  16702. })
  16703. });
  16704. var bS = function(t, e) {
  16705. var n, i = [],
  16706. r = t.seriesIndex;
  16707. if (null == r || !(n = e.getSeriesByIndex(r))) return {
  16708. point: []
  16709. };
  16710. var o = n.getData(),
  16711. a = lr(o, t);
  16712. if (null == a || 0 > a || _(a)) return {
  16713. point: []
  16714. };
  16715. var s = o.getItemGraphicEl(a),
  16716. l = n.coordinateSystem;
  16717. if (n.getTooltipPosition) i = n.getTooltipPosition(a) || [];
  16718. else if (l && l.dataToPoint) i = l.dataToPoint(o.getValues(p(l.dimensions, function(t) {
  16719. return o.mapDimension(t)
  16720. }), a, !0)) || [];
  16721. else if (s) {
  16722. var u = s.getBoundingRect().clone();
  16723. u.applyTransform(s.transform), i = [u.x + u.width / 2, u.y + u.height / 2]
  16724. }
  16725. return {
  16726. point: i,
  16727. el: s
  16728. }
  16729. },
  16730. SS = f,
  16731. MS = x,
  16732. IS = ur(),
  16733. CS = function(t, e, n) {
  16734. var i = t.currTrigger,
  16735. r = [t.x, t.y],
  16736. o = t,
  16737. a = t.dispatchAction || y(n.dispatchAction, n),
  16738. s = e.getComponent("axisPointer").coordSysAxesInfo;
  16739. if (s) {
  16740. Xd(r) && (r = bS({
  16741. seriesIndex: o.seriesIndex,
  16742. dataIndex: o.dataIndex
  16743. }, e).point);
  16744. var l = Xd(r),
  16745. u = o.axesInfo,
  16746. h = s.axesInfo,
  16747. c = "leave" === i || Xd(r),
  16748. d = {},
  16749. f = {},
  16750. p = {
  16751. list: [],
  16752. map: {}
  16753. },
  16754. g = {
  16755. showPointer: MS(Nd, f),
  16756. showTooltip: MS(Fd, p)
  16757. };
  16758. SS(s.coordSysMap, function(t, e) {
  16759. var n = l || t.containPoint(r);
  16760. SS(s.coordSysAxesInfo[e], function(t) {
  16761. var e = t.axis,
  16762. i = Gd(u, t);
  16763. if (!c && n && (!u || i)) {
  16764. var o = i && i.value;
  16765. null != o || l || (o = e.pointToData(r)), null != o && Bd(t, o, g, !1,
  16766. d)
  16767. }
  16768. })
  16769. });
  16770. var v = {};
  16771. return SS(h, function(t, e) {
  16772. var n = t.linkGroup;
  16773. n && !f[e] && SS(n.axesInfo, function(e, i) {
  16774. var r = f[i];
  16775. if (e !== t && r) {
  16776. var o = r.value;
  16777. n.mapper && (o = t.axis.scale.parse(n.mapper(o, Zd(e), Zd(t)))), v[t
  16778. .key] = o
  16779. }
  16780. })
  16781. }), SS(v, function(t, e) {
  16782. Bd(h[e], t, g, !0, d)
  16783. }), Vd(f, h, d), Wd(p, r, t, a), Hd(h, a, n), d
  16784. }
  16785. },
  16786. TS = (ku({
  16787. type: "axisPointer",
  16788. coordSysAxesInfo: null,
  16789. defaultOption: {
  16790. show: "auto",
  16791. triggerOn: null,
  16792. zlevel: 0,
  16793. z: 50,
  16794. type: "line",
  16795. snap: !1,
  16796. triggerTooltip: !0,
  16797. value: null,
  16798. status: null,
  16799. link: [],
  16800. animation: null,
  16801. animationDurationUpdate: 200,
  16802. lineStyle: {
  16803. color: "#aaa",
  16804. width: 1,
  16805. type: "solid"
  16806. },
  16807. shadowStyle: {
  16808. color: "rgba(150,150,150,0.3)"
  16809. },
  16810. label: {
  16811. show: !0,
  16812. formatter: null,
  16813. precision: "auto",
  16814. margin: 3,
  16815. color: "#fff",
  16816. padding: [5, 7, 5, 7],
  16817. backgroundColor: "auto",
  16818. borderColor: null,
  16819. borderWidth: 0,
  16820. shadowBlur: 3,
  16821. shadowColor: "#aaa"
  16822. },
  16823. handle: {
  16824. show: !1,
  16825. 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",
  16826. size: 45,
  16827. margin: 50,
  16828. color: "#333",
  16829. shadowBlur: 3,
  16830. shadowColor: "#aaa",
  16831. shadowOffsetX: 0,
  16832. shadowOffsetY: 2,
  16833. throttle: 40
  16834. }
  16835. }
  16836. }), ur()),
  16837. AS = f,
  16838. DS = Pu({
  16839. type: "axisPointer",
  16840. render: function(t, e, n) {
  16841. var i = e.getComponent("tooltip"),
  16842. r = t.get("triggerOn") || i && i.get("triggerOn") || "mousemove|click";
  16843. Yd("axisPointer", n, function(t, e, n) {
  16844. "none" !== r && ("leave" === t || r.indexOf(t) >= 0) && n({
  16845. type: "updateAxisPointer",
  16846. currTrigger: t,
  16847. x: e && e.offsetX,
  16848. y: e && e.offsetY
  16849. })
  16850. })
  16851. },
  16852. remove: function(t, e) {
  16853. Qd(e.getZr(), "axisPointer"), DS.superApply(this._model, "remove", arguments)
  16854. },
  16855. dispose: function(t, e) {
  16856. Qd("axisPointer", e), DS.superApply(this._model, "dispose", arguments)
  16857. }
  16858. }),
  16859. kS = ur(),
  16860. PS = i,
  16861. OS = y;
  16862. Jd.prototype = {
  16863. _group: null,
  16864. _lastGraphicKey: null,
  16865. _handle: null,
  16866. _dragging: !1,
  16867. _lastValue: null,
  16868. _lastStatus: null,
  16869. _payloadInfo: null,
  16870. animationThreshold: 15,
  16871. render: function(t, e, n, i) {
  16872. var r = e.get("value"),
  16873. o = e.get("status");
  16874. if (this._axisModel = t, this._axisPointerModel = e, this._api = n, i || this._lastValue !==
  16875. r || this._lastStatus !== o) {
  16876. this._lastValue = r, this._lastStatus = o;
  16877. var a = this._group,
  16878. s = this._handle;
  16879. if (!o || "hide" === o) return a && a.hide(), void(s && s.hide());
  16880. a && a.show(), s && s.show();
  16881. var l = {};
  16882. this.makeElOption(l, r, t, e, n);
  16883. var u = l.graphicKey;
  16884. u !== this._lastGraphicKey && this.clear(n), this._lastGraphicKey = u;
  16885. var h = this._moveAnimation = this.determineAnimation(t, e);
  16886. if (a) {
  16887. var c = x(tf, e, h);
  16888. this.updatePointerEl(a, l, c, e), this.updateLabelEl(a, l, c, e)
  16889. } else a = this._group = new Cg, this.createPointerEl(a, l, t, e), this.createLabelEl(a, l,
  16890. t, e), n.getZr().add(a);
  16891. of(a, e, !0), this._renderHandle(r)
  16892. }
  16893. },
  16894. remove: function(t) {
  16895. this.clear(t)
  16896. },
  16897. dispose: function(t) {
  16898. this.clear(t)
  16899. },
  16900. determineAnimation: function(t, e) {
  16901. var n = e.get("animation"),
  16902. i = t.axis,
  16903. r = "category" === i.type,
  16904. o = e.get("snap");
  16905. if (!o && !r) return !1;
  16906. if ("auto" === n || null == n) {
  16907. var a = this.animationThreshold;
  16908. if (r && i.getBandWidth() > a) return !0;
  16909. if (o) {
  16910. var s = _d(t).seriesDataCount,
  16911. l = i.getExtent();
  16912. return Math.abs(l[0] - l[1]) / s > a
  16913. }
  16914. return !1
  16915. }
  16916. return n === !0
  16917. },
  16918. makeElOption: function() {},
  16919. createPointerEl: function(t, e) {
  16920. var n = e.pointer;
  16921. if (n) {
  16922. var i = kS(t).pointerEl = new My[n.type](PS(e.pointer));
  16923. t.add(i)
  16924. }
  16925. },
  16926. createLabelEl: function(t, e, n, i) {
  16927. if (e.label) {
  16928. var r = kS(t).labelEl = new Jm(PS(e.label));
  16929. t.add(r), nf(r, i)
  16930. }
  16931. },
  16932. updatePointerEl: function(t, e, n) {
  16933. var i = kS(t).pointerEl;
  16934. i && e.pointer && (i.setStyle(e.pointer.style), n(i, {
  16935. shape: e.pointer.shape
  16936. }))
  16937. },
  16938. updateLabelEl: function(t, e, n, i) {
  16939. var r = kS(t).labelEl;
  16940. r && (r.setStyle(e.label.style), n(r, {
  16941. shape: e.label.shape,
  16942. position: e.label.position
  16943. }), nf(r, i))
  16944. },
  16945. _renderHandle: function(t) {
  16946. if (!this._dragging && this.updateHandleTransform) {
  16947. var e = this._axisPointerModel,
  16948. n = this._api.getZr(),
  16949. i = this._handle,
  16950. r = e.getModel("handle"),
  16951. o = e.get("status");
  16952. if (!r.get("show") || !o || "hide" === o) return i && n.remove(i), void(this._handle =
  16953. null);
  16954. var a;
  16955. this._handle || (a = !0, i = this._handle = ua(r.get("icon"), {
  16956. cursor: "move",
  16957. draggable: !0,
  16958. onmousemove: function(t) {
  16959. Wp(t.event)
  16960. },
  16961. onmousedown: OS(this._onHandleDragMove, this, 0, 0),
  16962. drift: OS(this._onHandleDragMove, this),
  16963. ondragend: OS(this._onHandleDragEnd, this)
  16964. }), n.add(i)), of(i, e, !1);
  16965. var s = ["color", "borderColor", "borderWidth", "opacity", "shadowColor", "shadowBlur",
  16966. "shadowOffsetX", "shadowOffsetY"
  16967. ];
  16968. i.setStyle(r.getItemStyle(null, s));
  16969. var l = r.get("size");
  16970. _(l) || (l = [l, l]), i.attr("scale", [l[0] / 2, l[1] / 2]), vl(this,
  16971. "_doDispatchAxisPointer", r.get("throttle") || 0, "fixRate"), this
  16972. ._moveHandleToValue(t, a)
  16973. }
  16974. },
  16975. _moveHandleToValue: function(t, e) {
  16976. tf(this._axisPointerModel, !e && this._moveAnimation, this._handle, rf(this.getHandleTransform(
  16977. t, this._axisModel, this._axisPointerModel)))
  16978. },
  16979. _onHandleDragMove: function(t, e) {
  16980. var n = this._handle;
  16981. if (n) {
  16982. this._dragging = !0;
  16983. var i = this.updateHandleTransform(rf(n), [t, e], this._axisModel, this._axisPointerModel);
  16984. this._payloadInfo = i, n.stopAnimation(), n.attr(rf(i)), kS(n).lastProp = null, this
  16985. ._doDispatchAxisPointer()
  16986. }
  16987. },
  16988. _doDispatchAxisPointer: function() {
  16989. var t = this._handle;
  16990. if (t) {
  16991. var e = this._payloadInfo,
  16992. n = this._axisModel;
  16993. this._api.dispatchAction({
  16994. type: "updateAxisPointer",
  16995. x: e.cursorPoint[0],
  16996. y: e.cursorPoint[1],
  16997. tooltipOption: e.tooltipOption,
  16998. axesInfo: [{
  16999. axisDim: n.axis.dim,
  17000. axisIndex: n.componentIndex
  17001. }]
  17002. })
  17003. }
  17004. },
  17005. _onHandleDragEnd: function() {
  17006. this._dragging = !1;
  17007. var t = this._handle;
  17008. if (t) {
  17009. var e = this._axisPointerModel.get("value");
  17010. this._moveHandleToValue(e), this._api.dispatchAction({
  17011. type: "hideTip"
  17012. })
  17013. }
  17014. },
  17015. getHandleTransform: null,
  17016. updateHandleTransform: null,
  17017. clear: function(t) {
  17018. this._lastValue = null, this._lastStatus = null;
  17019. var e = t.getZr(),
  17020. n = this._group,
  17021. i = this._handle;
  17022. e && n && (this._lastGraphicKey = null, n && e.remove(n), i && e.remove(i), this._group = null,
  17023. this._handle = null, this._payloadInfo = null)
  17024. },
  17025. doClear: function() {},
  17026. buildLabel: function(t, e, n) {
  17027. return n = n || 0, {
  17028. x: t[n],
  17029. y: t[1 - n],
  17030. width: e[n],
  17031. height: e[1 - n]
  17032. }
  17033. }
  17034. }, Jd.prototype.constructor = Jd, mr(Jd);
  17035. var LS = Jd.extend({
  17036. makeElOption: function(t, e, n, i, r) {
  17037. var o = n.axis,
  17038. a = o.grid,
  17039. s = i.get("type"),
  17040. l = pf(a, o).getOtherAxis(o).getGlobalExtent(),
  17041. u = o.toGlobalCoord(o.dataToCoord(e, !0));
  17042. if (s && "none" !== s) {
  17043. var h = af(i),
  17044. c = zS[s](o, u, l);
  17045. c.style = h, t.graphicKey = c.type, t.pointer = c
  17046. }
  17047. var d = Cd(a.model, n);
  17048. cf(e, t, d, n, i, r)
  17049. },
  17050. getHandleTransform: function(t, e, n) {
  17051. var i = Cd(e.axis.grid.model, e, {
  17052. labelInside: !1
  17053. });
  17054. return i.labelMargin = n.get("handle.margin"), {
  17055. position: hf(e.axis, t, i),
  17056. rotation: i.rotation + (i.labelDirection < 0 ? Math.PI : 0)
  17057. }
  17058. },
  17059. updateHandleTransform: function(t, e, n) {
  17060. var i = n.axis,
  17061. r = i.grid,
  17062. o = i.getGlobalExtent(!0),
  17063. a = pf(r, i).getOtherAxis(i).getGlobalExtent(),
  17064. s = "x" === i.dim ? 0 : 1,
  17065. l = t.position;
  17066. l[s] += e[s], l[s] = Math.min(o[1], l[s]), l[s] = Math.max(o[0], l[s]);
  17067. var u = (a[1] + a[0]) / 2,
  17068. h = [u, u];
  17069. h[s] = l[s];
  17070. var c = [{
  17071. verticalAlign: "middle"
  17072. }, {
  17073. align: "center"
  17074. }];
  17075. return {
  17076. position: l,
  17077. rotation: t.rotation,
  17078. cursorPoint: h,
  17079. tooltipOption: c[s]
  17080. }
  17081. }
  17082. }),
  17083. zS = {
  17084. line: function(t, e, n) {
  17085. var i = df([e, n[0]], [e, n[1]], gf(t));
  17086. return {
  17087. type: "Line",
  17088. subPixelOptimize: !0,
  17089. shape: i
  17090. }
  17091. },
  17092. shadow: function(t, e, n) {
  17093. var i = Math.max(1, t.getBandWidth()),
  17094. r = n[1] - n[0];
  17095. return {
  17096. type: "Rect",
  17097. shape: ff([e - i / 2, n[0]], [i, r], gf(t))
  17098. }
  17099. }
  17100. };
  17101. rS.registerAxisPointerClass("CartesianAxisPointer", LS), _u(function(t) {
  17102. if (t) {
  17103. (!t.axisPointer || 0 === t.axisPointer.length) && (t.axisPointer = {});
  17104. var e = t.axisPointer.link;
  17105. e && !_(e) && (t.axisPointer.link = [e])
  17106. }
  17107. }), wu(W_.PROCESSOR.STATISTIC, function(t, e) {
  17108. t.getComponent("axisPointer").coordSysAxesInfo = fd(t, e)
  17109. }), Su({
  17110. type: "updateAxisPointer",
  17111. event: "updateAxisPointer",
  17112. update: ":updateAxisPointer"
  17113. }, CS), ku({
  17114. type: "tooltip",
  17115. dependencies: ["axisPointer"],
  17116. defaultOption: {
  17117. zlevel: 0,
  17118. z: 60,
  17119. show: !0,
  17120. showContent: !0,
  17121. trigger: "item",
  17122. triggerOn: "mousemove|click",
  17123. alwaysShowContent: !1,
  17124. displayMode: "single",
  17125. renderMode: "auto",
  17126. confine: !1,
  17127. showDelay: 0,
  17128. hideDelay: 100,
  17129. transitionDuration: .4,
  17130. enterable: !1,
  17131. backgroundColor: "rgba(50,50,50,0.7)",
  17132. borderColor: "#333",
  17133. borderRadius: 4,
  17134. borderWidth: 0,
  17135. padding: 5,
  17136. extraCssText: "",
  17137. axisPointer: {
  17138. type: "line",
  17139. axis: "auto",
  17140. animation: "auto",
  17141. animationDurationUpdate: 200,
  17142. animationEasingUpdate: "exponentialOut",
  17143. crossStyle: {
  17144. color: "#999",
  17145. width: 1,
  17146. type: "dashed",
  17147. textStyle: {}
  17148. }
  17149. },
  17150. textStyle: {
  17151. color: "#fff",
  17152. fontSize: 14
  17153. }
  17154. }
  17155. });
  17156. var ES = f,
  17157. BS = Fa,
  17158. RS = ["", "-webkit-", "-moz-", "-o-"],
  17159. NS = "position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;";
  17160. _f.prototype = {
  17161. constructor: _f,
  17162. _enterable: !0,
  17163. update: function() {
  17164. var t = this._container,
  17165. e = t.currentStyle || document.defaultView.getComputedStyle(t),
  17166. n = t.style;
  17167. "absolute" !== n.position && "absolute" !== e.position && (n.position = "relative")
  17168. },
  17169. show: function(t) {
  17170. clearTimeout(this._hideTimeout);
  17171. var e = this.el,
  17172. n = this._styleCoord;
  17173. e.style.cssText = NS + yf(t) + ";left:" + n[0] + "px;top:" + n[1] + "px;" + (t.get(
  17174. "extraCssText") || ""), e.style.display = e.innerHTML ? "block" : "none", e.style
  17175. .pointerEvents = this._enterable ? "auto" : "none", this._show = !0
  17176. },
  17177. setContent: function(t) {
  17178. this.el.innerHTML = null == t ? "" : t
  17179. },
  17180. setEnterable: function(t) {
  17181. this._enterable = t
  17182. },
  17183. getSize: function() {
  17184. var t = this.el;
  17185. return [t.clientWidth, t.clientHeight]
  17186. },
  17187. moveTo: function(t, e) {
  17188. var n = this._styleCoord;
  17189. xf(n, this._zr, this._appendToBody, t, e);
  17190. var i = this.el.style;
  17191. i.left = n[0] + "px", i.top = n[1] + "px"
  17192. },
  17193. hide: function() {
  17194. this.el.style.display = "none", this._show = !1
  17195. },
  17196. hideLater: function(t) {
  17197. !this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1,
  17198. this._hideTimeout = setTimeout(y(this.hide, this), t)) : this.hide())
  17199. },
  17200. isShow: function() {
  17201. return this._show
  17202. },
  17203. dispose: function() {
  17204. this.el.parentNode.removeChild(this.el)
  17205. },
  17206. getOuterSize: function() {
  17207. var t = this.el.clientWidth,
  17208. e = this.el.clientHeight;
  17209. if (document.defaultView && document.defaultView.getComputedStyle) {
  17210. var n = document.defaultView.getComputedStyle(this.el);
  17211. n && (t += parseInt(n.borderLeftWidth, 10) + parseInt(n.borderRightWidth, 10), e +=
  17212. parseInt(n.borderTopWidth, 10) + parseInt(n.borderBottomWidth, 10))
  17213. }
  17214. return {
  17215. width: t,
  17216. height: e
  17217. }
  17218. }
  17219. }, wf.prototype = {
  17220. constructor: wf,
  17221. _enterable: !0,
  17222. update: function() {},
  17223. show: function() {
  17224. this._hideTimeout && clearTimeout(this._hideTimeout), this.el.attr("show", !0), this._show = !0
  17225. },
  17226. setContent: function(t, e, n) {
  17227. this.el && this._zr.remove(this.el);
  17228. for (var i = {}, r = t, o = "{marker", a = "|}", s = r.indexOf(o); s >= 0;) {
  17229. var l = r.indexOf(a),
  17230. u = r.substr(s + o.length, l - s - o.length);
  17231. i["marker" + u] = u.indexOf("sub") > -1 ? {
  17232. textWidth: 4,
  17233. textHeight: 4,
  17234. textBorderRadius: 2,
  17235. textBackgroundColor: e[u],
  17236. textOffset: [3, 0]
  17237. } : {
  17238. textWidth: 10,
  17239. textHeight: 10,
  17240. textBorderRadius: 5,
  17241. textBackgroundColor: e[u]
  17242. }, r = r.substr(l + 1), s = r.indexOf("{marker")
  17243. }
  17244. this.el = new Wm({
  17245. style: {
  17246. rich: i,
  17247. text: t,
  17248. textLineHeight: 20,
  17249. textBackgroundColor: n.get("backgroundColor"),
  17250. textBorderRadius: n.get("borderRadius"),
  17251. textFill: n.get("textStyle.color"),
  17252. textPadding: n.get("padding")
  17253. },
  17254. z: n.get("z")
  17255. }), this._zr.add(this.el);
  17256. var h = this;
  17257. this.el.on("mouseover", function() {
  17258. h._enterable && (clearTimeout(h._hideTimeout), h._show = !0), h._inContent = !0
  17259. }), this.el.on("mouseout", function() {
  17260. h._enterable && h._show && h.hideLater(h._hideDelay), h._inContent = !1
  17261. })
  17262. },
  17263. setEnterable: function(t) {
  17264. this._enterable = t
  17265. },
  17266. getSize: function() {
  17267. var t = this.el.getBoundingRect();
  17268. return [t.width, t.height]
  17269. },
  17270. moveTo: function(t, e) {
  17271. this.el && this.el.attr("position", [t, e])
  17272. },
  17273. hide: function() {
  17274. this.el && this.el.hide(), this._show = !1
  17275. },
  17276. hideLater: function(t) {
  17277. !this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1,
  17278. this._hideTimeout = setTimeout(y(this.hide, this), t)) : this.hide())
  17279. },
  17280. isShow: function() {
  17281. return this._show
  17282. },
  17283. getOuterSize: function() {
  17284. var t = this.getSize();
  17285. return {
  17286. width: t[0],
  17287. height: t[1]
  17288. }
  17289. }
  17290. };
  17291. var FS = y,
  17292. VS = f,
  17293. WS = ba,
  17294. HS = new Jm({
  17295. shape: {
  17296. x: -1,
  17297. y: -1,
  17298. width: 2,
  17299. height: 2
  17300. }
  17301. });
  17302. Pu({
  17303. type: "tooltip",
  17304. init: function(t, e) {
  17305. if (!dp.node) {
  17306. var n = t.getComponent("tooltip"),
  17307. i = n.get("renderMode");
  17308. this._renderMode = pr(i);
  17309. var r;
  17310. "html" === this._renderMode ? (r = new _f(e.getDom(), e, {
  17311. appendToBody: n.get("appendToBody", !0)
  17312. }), this._newLine = "<br/>") : (r = new wf(e), this._newLine = "\n"), this
  17313. ._tooltipContent = r
  17314. }
  17315. },
  17316. render: function(t, e, n) {
  17317. if (!dp.node) {
  17318. this.group.removeAll(), this._tooltipModel = t, this._ecModel = e, this._api = n, this
  17319. ._lastDataByCoordSys = null, this._alwaysShowContent = t.get("alwaysShowContent");
  17320. var i = this._tooltipContent;
  17321. i.update(), i.setEnterable(t.get("enterable")), this._initGlobalListener(), this
  17322. ._keepShow()
  17323. }
  17324. },
  17325. _initGlobalListener: function() {
  17326. var t = this._tooltipModel,
  17327. e = t.get("triggerOn");
  17328. Yd("itemTooltip", this._api, FS(function(t, n, i) {
  17329. "none" !== e && (e.indexOf(t) >= 0 ? this._tryShow(n, i) : "leave" === t &&
  17330. this._hide(i))
  17331. }, this))
  17332. },
  17333. _keepShow: function() {
  17334. var t = this._tooltipModel,
  17335. e = this._ecModel,
  17336. n = this._api;
  17337. if (null != this._lastX && null != this._lastY && "none" !== t.get("triggerOn")) {
  17338. var i = this;
  17339. clearTimeout(this._refreshUpdateTimeout), this._refreshUpdateTimeout = setTimeout(
  17340. function() {
  17341. !n.isDisposed() && i.manuallyShowTip(t, e, n, {
  17342. x: i._lastX,
  17343. y: i._lastY
  17344. })
  17345. })
  17346. }
  17347. },
  17348. manuallyShowTip: function(t, e, n, i) {
  17349. if (i.from !== this.uid && !dp.node) {
  17350. var r = Sf(i, n);
  17351. this._ticket = "";
  17352. var o = i.dataByCoordSys;
  17353. if (i.tooltip && null != i.x && null != i.y) {
  17354. var a = HS;
  17355. a.position = [i.x, i.y], a.update(), a.tooltip = i.tooltip, this._tryShow({
  17356. offsetX: i.x,
  17357. offsetY: i.y,
  17358. target: a
  17359. }, r)
  17360. } else if (o) this._tryShow({
  17361. offsetX: i.x,
  17362. offsetY: i.y,
  17363. position: i.position,
  17364. dataByCoordSys: i.dataByCoordSys,
  17365. tooltipOption: i.tooltipOption
  17366. }, r);
  17367. else if (null != i.seriesIndex) {
  17368. if (this._manuallyAxisShowTip(t, e, n, i)) return;
  17369. var s = bS(i, e),
  17370. l = s.point[0],
  17371. u = s.point[1];
  17372. null != l && null != u && this._tryShow({
  17373. offsetX: l,
  17374. offsetY: u,
  17375. position: i.position,
  17376. target: s.el
  17377. }, r)
  17378. } else null != i.x && null != i.y && (n.dispatchAction({
  17379. type: "updateAxisPointer",
  17380. x: i.x,
  17381. y: i.y
  17382. }), this._tryShow({
  17383. offsetX: i.x,
  17384. offsetY: i.y,
  17385. position: i.position,
  17386. target: n.getZr().findHover(i.x, i.y).target
  17387. }, r))
  17388. }
  17389. },
  17390. manuallyHideTip: function(t, e, n, i) {
  17391. var r = this._tooltipContent;
  17392. !this._alwaysShowContent && this._tooltipModel && r.hideLater(this._tooltipModel.get(
  17393. "hideDelay")), this._lastX = this._lastY = null, i.from !== this.uid && this._hide(
  17394. Sf(i, n))
  17395. },
  17396. _manuallyAxisShowTip: function(t, e, n, i) {
  17397. var r = i.seriesIndex,
  17398. o = i.dataIndex,
  17399. a = e.getComponent("axisPointer").coordSysAxesInfo;
  17400. if (null != r && null != o && null != a) {
  17401. var s = e.getSeriesByIndex(r);
  17402. if (s) {
  17403. var l = s.getData(),
  17404. t = bf([l.getItemModel(o), s, (s.coordinateSystem || {}).model, t]);
  17405. if ("axis" === t.get("trigger")) return n.dispatchAction({
  17406. type: "updateAxisPointer",
  17407. seriesIndex: r,
  17408. dataIndex: o,
  17409. position: i.position
  17410. }), !0
  17411. }
  17412. }
  17413. },
  17414. _tryShow: function(t, e) {
  17415. var n = t.target,
  17416. i = this._tooltipModel;
  17417. if (i) {
  17418. this._lastX = t.offsetX, this._lastY = t.offsetY;
  17419. var r = t.dataByCoordSys;
  17420. r && r.length ? this._showAxisTooltip(r, t) : n && null != n.dataIndex ? (this
  17421. ._lastDataByCoordSys = null, this._showSeriesItemTooltip(t, n, e)) : n && n
  17422. .tooltip ? (this._lastDataByCoordSys = null, this._showComponentItemTooltip(t, n,
  17423. e)) : (this._lastDataByCoordSys = null, this._hide(e))
  17424. }
  17425. },
  17426. _showOrMove: function(t, e) {
  17427. var n = t.get("showDelay");
  17428. e = y(e, this), clearTimeout(this._showTimout), n > 0 ? this._showTimout = setTimeout(e,
  17429. n) : e()
  17430. },
  17431. _showAxisTooltip: function(t, e) {
  17432. var n = this._ecModel,
  17433. i = this._tooltipModel,
  17434. o = [e.offsetX, e.offsetY],
  17435. a = [],
  17436. s = [],
  17437. l = bf([e.tooltipOption, i]),
  17438. u = this._renderMode,
  17439. h = this._newLine,
  17440. c = {};
  17441. VS(t, function(t) {
  17442. VS(t.dataByAxis, function(t) {
  17443. var e = n.getComponent(t.axisDim + "Axis", t.axisIndex),
  17444. i = t.value,
  17445. o = [];
  17446. if (e && null != i) {
  17447. var l = uf(i, e.axis, n, t.seriesDataIndices, t.valueLabelOpt);
  17448. f(t.seriesDataIndices, function(a) {
  17449. var h = n.getSeriesByIndex(a.seriesIndex),
  17450. d = a.dataIndexInside,
  17451. f = h && h.getDataParams(d);
  17452. if (f.axisDim = t.axisDim, f.axisIndex = t
  17453. .axisIndex, f.axisType = t.axisType, f.axisId =
  17454. t.axisId, f.axisValue = Hh(e.axis, i), f
  17455. .axisValueLabel = l, f) {
  17456. s.push(f);
  17457. var p, g = h.formatTooltip(d, !0, null, u);
  17458. if (S(g)) {
  17459. p = g.html;
  17460. var v = g.markers;
  17461. r(c, v)
  17462. } else p = g;
  17463. o.push(p)
  17464. }
  17465. });
  17466. var d = l;
  17467. a.push("html" !== u ? o.join(h) : (d ? Va(d) + h : "") + o.join(
  17468. h))
  17469. }
  17470. })
  17471. }, this), a.reverse(), a = a.join(this._newLine + this._newLine);
  17472. var d = e.position;
  17473. this._showOrMove(l, function() {
  17474. this._updateContentNotChangedOnAxis(t) ? this._updatePosition(l, d, o[0], o[1],
  17475. this._tooltipContent, s) : this._showTooltipContent(l, a, s, Math
  17476. .random(), o[0], o[1], d, void 0, c)
  17477. })
  17478. },
  17479. _showSeriesItemTooltip: function(t, e, n) {
  17480. var i = this._ecModel,
  17481. r = e.seriesIndex,
  17482. o = i.getSeriesByIndex(r),
  17483. a = e.dataModel || o,
  17484. s = e.dataIndex,
  17485. l = e.dataType,
  17486. u = a.getData(l),
  17487. h = bf([u.getItemModel(s), a, o && (o.coordinateSystem || {}).model, this
  17488. ._tooltipModel]),
  17489. c = h.get("trigger");
  17490. if (null == c || "item" === c) {
  17491. var d, f, p = a.getDataParams(s, l),
  17492. g = a.formatTooltip(s, !1, l, this._renderMode);
  17493. S(g) ? (d = g.html, f = g.markers) : (d = g, f = null);
  17494. var v = "item_" + a.name + "_" + s;
  17495. this._showOrMove(h, function() {
  17496. this._showTooltipContent(h, d, p, v, t.offsetX, t.offsetY, t.position, t
  17497. .target, f)
  17498. }), n({
  17499. type: "showTip",
  17500. dataIndexInside: s,
  17501. dataIndex: u.getRawIndex(s),
  17502. seriesIndex: r,
  17503. from: this.uid
  17504. })
  17505. }
  17506. },
  17507. _showComponentItemTooltip: function(t, e, n) {
  17508. var i = e.tooltip;
  17509. if ("string" == typeof i) {
  17510. var r = i;
  17511. i = {
  17512. content: r,
  17513. formatter: r
  17514. }
  17515. }
  17516. var o = new pa(i, this._tooltipModel, this._ecModel),
  17517. a = o.get("content"),
  17518. s = Math.random();
  17519. this._showOrMove(o, function() {
  17520. this._showTooltipContent(o, a, o.get("formatterParams") || {}, s, t.offsetX, t
  17521. .offsetY, t.position, e)
  17522. }), n({
  17523. type: "showTip",
  17524. from: this.uid
  17525. })
  17526. },
  17527. _showTooltipContent: function(t, e, n, i, r, o, a, s, l) {
  17528. if (this._ticket = "", t.get("showContent") && t.get("show")) {
  17529. var u = this._tooltipContent,
  17530. h = t.get("formatter");
  17531. a = a || t.get("position");
  17532. var c = e;
  17533. if (h && "string" == typeof h) c = Wa(h, n, !0);
  17534. else if ("function" == typeof h) {
  17535. var d = FS(function(e, i) {
  17536. e === this._ticket && (u.setContent(i, l, t), this._updatePosition(t, a,
  17537. r, o, u, n, s))
  17538. }, this);
  17539. this._ticket = i, c = h(n, i, d)
  17540. }
  17541. u.setContent(c, l, t), u.show(t), this._updatePosition(t, a, r, o, u, n, s)
  17542. }
  17543. },
  17544. _updatePosition: function(t, e, n, i, r, o, a) {
  17545. var s = this._api.getWidth(),
  17546. l = this._api.getHeight();
  17547. e = e || t.get("position");
  17548. var u = r.getSize(),
  17549. h = t.get("align"),
  17550. c = t.get("verticalAlign"),
  17551. d = a && a.getBoundingRect().clone();
  17552. if (a && d.applyTransform(a.transform), "function" == typeof e && (e = e([n, i], o, r.el,
  17553. d, {
  17554. viewSize: [s, l],
  17555. contentSize: u.slice()
  17556. })), _(e)) n = WS(e[0], s), i = WS(e[1], l);
  17557. else if (S(e)) {
  17558. e.width = u[0], e.height = u[1];
  17559. var f = $a(e, {
  17560. width: s,
  17561. height: l
  17562. });
  17563. n = f.x, i = f.y, h = null, c = null
  17564. } else if ("string" == typeof e && a) {
  17565. var p = Cf(e, d, u);
  17566. n = p[0], i = p[1]
  17567. } else {
  17568. var p = Mf(n, i, r, s, l, h ? null : 20, c ? null : 20);
  17569. n = p[0], i = p[1]
  17570. }
  17571. if (h && (n -= Tf(h) ? u[0] / 2 : "right" === h ? u[0] : 0), c && (i -= Tf(c) ? u[1] / 2 :
  17572. "bottom" === c ? u[1] : 0), t.get("confine")) {
  17573. var p = If(n, i, r, s, l);
  17574. n = p[0], i = p[1]
  17575. }
  17576. r.moveTo(n, i)
  17577. },
  17578. _updateContentNotChangedOnAxis: function(t) {
  17579. var e = this._lastDataByCoordSys,
  17580. n = !!e && e.length === t.length;
  17581. return n && VS(e, function(e, i) {
  17582. var r = e.dataByAxis || {},
  17583. o = t[i] || {},
  17584. a = o.dataByAxis || [];
  17585. n &= r.length === a.length, n && VS(r, function(t, e) {
  17586. var i = a[e] || {},
  17587. r = t.seriesDataIndices || [],
  17588. o = i.seriesDataIndices || [];
  17589. n &= t.value === i.value && t.axisType === i.axisType && t
  17590. .axisId === i.axisId && r.length === o.length, n && VS(r,
  17591. function(t, e) {
  17592. var i = o[e];
  17593. n &= t.seriesIndex === i.seriesIndex && t.dataIndex ===
  17594. i.dataIndex
  17595. })
  17596. })
  17597. }), this._lastDataByCoordSys = t, !!n
  17598. },
  17599. _hide: function(t) {
  17600. this._lastDataByCoordSys = null, t({
  17601. type: "hideTip",
  17602. from: this.uid
  17603. })
  17604. },
  17605. dispose: function(t, e) {
  17606. dp.node || (this._tooltipContent.dispose(), Qd("itemTooltip", e))
  17607. }
  17608. }), Su({
  17609. type: "showTip",
  17610. event: "showTip",
  17611. update: "tooltip:manuallyShowTip"
  17612. }, function() {}), Su({
  17613. type: "hideTip",
  17614. event: "hideTip",
  17615. update: "tooltip:manuallyHideTip"
  17616. }, function() {}), qy.registerSubTypeDefaulter("dataZoom", function() {
  17617. return "slider"
  17618. });
  17619. var GS = ["x", "y", "z", "radius", "angle", "single"],
  17620. ZS = ["cartesian2d", "polar", "singleAxis"],
  17621. XS = Df(GS, ["axisIndex", "axis", "index", "id"]),
  17622. YS = function(t, e, n, i, r, o) {
  17623. t = t || 0;
  17624. var a = n[1] - n[0];
  17625. if (null != r && (r = Of(r, [0, a])), null != o && (o = Math.max(o, null != r ? r : 0)), "all" === i) {
  17626. var s = Math.abs(e[1] - e[0]);
  17627. s = Of(s, [0, a]), r = o = Of(s, [r, o]), i = 0
  17628. }
  17629. e[0] = Of(e[0], n), e[1] = Of(e[1], n);
  17630. var l = Pf(e, i);
  17631. e[i] += t;
  17632. var u = r || 0,
  17633. h = n.slice();
  17634. l.sign < 0 ? h[0] += u : h[1] -= u, e[i] = Of(e[i], h);
  17635. var c = Pf(e, i);
  17636. null != r && (c.sign !== l.sign || c.span < r) && (e[1 - i] = e[i] + l.sign * r);
  17637. var c = Pf(e, i);
  17638. return null != o && c.span > o && (e[1 - i] = e[i] + c.sign * o), e
  17639. },
  17640. US = f,
  17641. jS = Ma,
  17642. qS = function(t, e, n, i) {
  17643. this._dimName = t, this._axisIndex = e, this._valueWindow, this._percentWindow, this._dataExtent, this
  17644. ._minMaxSpan, this.ecModel = i, this._dataZoomModel = n
  17645. };
  17646. qS.prototype = {
  17647. constructor: qS,
  17648. hostedBy: function(t) {
  17649. return this._dataZoomModel === t
  17650. },
  17651. getDataValueWindow: function() {
  17652. return this._valueWindow.slice()
  17653. },
  17654. getDataPercentWindow: function() {
  17655. return this._percentWindow.slice()
  17656. },
  17657. getTargetSeriesModels: function() {
  17658. var t = [],
  17659. e = this.ecModel;
  17660. return e.eachSeries(function(n) {
  17661. if (Af(n.get("coordinateSystem"))) {
  17662. var i = this._dimName,
  17663. r = e.queryComponents({
  17664. mainType: i + "Axis",
  17665. index: n.get(i + "AxisIndex"),
  17666. id: n.get(i + "AxisId")
  17667. })[0];
  17668. this._axisIndex === (r && r.componentIndex) && t.push(n)
  17669. }
  17670. }, this), t
  17671. },
  17672. getAxisModel: function() {
  17673. return this.ecModel.getComponent(this._dimName + "Axis", this._axisIndex)
  17674. },
  17675. getOtherAxisModel: function() {
  17676. var t, e, n = this._dimName,
  17677. i = this.ecModel,
  17678. r = this.getAxisModel(),
  17679. o = "x" === n || "y" === n;
  17680. o ? (e = "gridIndex", t = "x" === n ? "y" : "x") : (e = "polarIndex", t = "angle" === n ?
  17681. "radius" : "angle");
  17682. var a;
  17683. return i.eachComponent(t + "Axis", function(t) {
  17684. (t.get(e) || 0) === (r.get(e) || 0) && (a = t)
  17685. }), a
  17686. },
  17687. getMinMaxSpan: function() {
  17688. return i(this._minMaxSpan)
  17689. },
  17690. calculateDataWindow: function(t) {
  17691. function e(t, e, n, i, r) {
  17692. var a = r ? "Span" : "ValueSpan";
  17693. YS(0, t, n, "all", h["min" + a], h["max" + a]);
  17694. for (var s = 0; 2 > s; s++) e[s] = wa(t[s], n, i, !0), r && (e[s] = o.parse(e[s]))
  17695. }
  17696. var n, i = this._dataExtent,
  17697. r = this.getAxisModel(),
  17698. o = r.axis.scale,
  17699. a = this._dataZoomModel.getRangePropMode(),
  17700. s = [0, 100],
  17701. l = [],
  17702. u = [];
  17703. US(["start", "end"], function(e, r) {
  17704. var h = t[e],
  17705. c = t[e + "Value"];
  17706. "percent" === a[r] ? (null == h && (h = s[r]), c = o.parse(wa(h, s, i))) : (n = !0,
  17707. c = null == c ? i[r] : o.parse(c), h = wa(c, i, s)), u[r] = c, l[r] = h
  17708. }), jS(u), jS(l);
  17709. var h = this._minMaxSpan;
  17710. return n ? e(u, l, i, s, !1) : e(l, u, s, i, !0), {
  17711. valueWindow: u,
  17712. percentWindow: l
  17713. }
  17714. },
  17715. reset: function(t) {
  17716. if (t === this._dataZoomModel) {
  17717. var e = this.getTargetSeriesModels();
  17718. this._dataExtent = Lf(this, this._dimName, e), Bf(this);
  17719. var n = this.calculateDataWindow(t.settledOption);
  17720. this._valueWindow = n.valueWindow, this._percentWindow = n.percentWindow, Ef(this)
  17721. }
  17722. },
  17723. restore: function(t) {
  17724. t === this._dataZoomModel && (this._valueWindow = this._percentWindow = null, Ef(this, !0))
  17725. },
  17726. filterData: function(t) {
  17727. function e(t) {
  17728. return t >= o[0] && t <= o[1]
  17729. }
  17730. if (t === this._dataZoomModel) {
  17731. var n = this._dimName,
  17732. i = this.getTargetSeriesModels(),
  17733. r = t.get("filterMode"),
  17734. o = this._valueWindow;
  17735. "none" !== r && US(i, function(t) {
  17736. var i = t.getData(),
  17737. a = i.mapDimension(n, !0);
  17738. a.length && ("weakFilter" === r ? i.filterSelf(function(t) {
  17739. for (var e, n, r, s = 0; s < a.length; s++) {
  17740. var l = i.get(a[s], t),
  17741. u = !isNaN(l),
  17742. h = l < o[0],
  17743. c = l > o[1];
  17744. if (u && !h && !c) return !0;
  17745. u && (r = !0), h && (e = !0), c && (n = !0)
  17746. }
  17747. return r && e && n
  17748. }) : US(a, function(n) {
  17749. if ("empty" === r) t.setData(i = i.map(n, function(t) {
  17750. return e(t) ? t : 0 / 0
  17751. }));
  17752. else {
  17753. var a = {};
  17754. a[n] = o, i.selectRange(a)
  17755. }
  17756. }), US(a, function(t) {
  17757. i.setApproximateExtent(o, t)
  17758. }))
  17759. })
  17760. }
  17761. }
  17762. };
  17763. var KS = f,
  17764. $S = XS,
  17765. QS = ku({
  17766. type: "dataZoom",
  17767. dependencies: ["xAxis", "yAxis", "zAxis", "radiusAxis", "angleAxis", "singleAxis", "series"],
  17768. defaultOption: {
  17769. zlevel: 0,
  17770. z: 4,
  17771. orient: null,
  17772. xAxisIndex: null,
  17773. yAxisIndex: null,
  17774. filterMode: "filter",
  17775. throttle: null,
  17776. start: 0,
  17777. end: 100,
  17778. startValue: null,
  17779. endValue: null,
  17780. minSpan: null,
  17781. maxSpan: null,
  17782. minValueSpan: null,
  17783. maxValueSpan: null,
  17784. rangeMode: null
  17785. },
  17786. init: function(t, e, n) {
  17787. this._dataIntervalByAxis = {}, this._dataInfo = {}, this._axisProxies = {}, this
  17788. .textStyleModel, this._autoThrottle = !0, this._rangePropMode = ["percent", "percent"];
  17789. var i = Rf(t);
  17790. this.settledOption = i, this.mergeDefaultAndTheme(t, n), this.doInit(i)
  17791. },
  17792. mergeOption: function(t) {
  17793. var e = Rf(t);
  17794. r(this.option, t, !0), r(this.settledOption, e, !0), this.doInit(e)
  17795. },
  17796. doInit: function(t) {
  17797. var e = this.option;
  17798. dp.canvasSupported || (e.realtime = !1), this._setDefaultThrottle(t), Nf(this, t);
  17799. var n = this.settledOption;
  17800. KS([
  17801. ["start", "startValue"],
  17802. ["end", "endValue"]
  17803. ], function(t, i) {
  17804. "value" === this._rangePropMode[i] && (e[t[0]] = n[t[0]] = null)
  17805. }, this), this.textStyleModel = this.getModel("textStyle"), this._resetTarget(), this
  17806. ._giveAxisProxies()
  17807. },
  17808. _giveAxisProxies: function() {
  17809. var t = this._axisProxies;
  17810. this.eachTargetAxis(function(e, n, i, r) {
  17811. var o = this.dependentModels[e.axis][n],
  17812. a = o.__dzAxisProxy || (o.__dzAxisProxy = new qS(e.name, n, this, r));
  17813. t[e.name + "_" + n] = a
  17814. }, this)
  17815. },
  17816. _resetTarget: function() {
  17817. var t = this.option,
  17818. e = this._judgeAutoMode();
  17819. $S(function(e) {
  17820. var n = e.axisIndex;
  17821. t[n] = tr(t[n])
  17822. }, this), "axisIndex" === e ? this._autoSetAxisIndex() : "orient" === e && this
  17823. ._autoSetOrient()
  17824. },
  17825. _judgeAutoMode: function() {
  17826. var t = this.option,
  17827. e = !1;
  17828. $S(function(n) {
  17829. null != t[n.axisIndex] && (e = !0)
  17830. }, this);
  17831. var n = t.orient;
  17832. return null == n && e ? "orient" : e ? void 0 : (null == n && (t.orient = "horizontal"),
  17833. "axisIndex")
  17834. },
  17835. _autoSetAxisIndex: function() {
  17836. var t = !0,
  17837. e = this.get("orient", !0),
  17838. n = this.option,
  17839. i = this.dependentModels;
  17840. if (t) {
  17841. var r = "vertical" === e ? "y" : "x";
  17842. i[r + "Axis"].length ? (n[r + "AxisIndex"] = [0], t = !1) : KS(i.singleAxis, function(
  17843. i) {
  17844. t && i.get("orient", !0) === e && (n.singleAxisIndex = [i.componentIndex],
  17845. t = !1)
  17846. })
  17847. }
  17848. t && $S(function(e) {
  17849. if (t) {
  17850. var i = [],
  17851. r = this.dependentModels[e.axis];
  17852. if (r.length && !i.length)
  17853. for (var o = 0, a = r.length; a > o; o++) "category" === r[o].get(
  17854. "type") && i.push(o);
  17855. n[e.axisIndex] = i, i.length && (t = !1)
  17856. }
  17857. }, this), t && this.ecModel.eachSeries(function(t) {
  17858. this._isSeriesHasAllAxesTypeOf(t, "value") && $S(function(e) {
  17859. var i = n[e.axisIndex],
  17860. r = t.get(e.axisIndex),
  17861. o = t.get(e.axisId),
  17862. a = t.ecModel.queryComponents({
  17863. mainType: e.axis,
  17864. index: r,
  17865. id: o
  17866. })[0];
  17867. if (lp && !a) throw new Error(e.axis + ' "' + A(r, o, 0) +
  17868. '" not found');
  17869. r = a.componentIndex, u(i, r) < 0 && i.push(r)
  17870. })
  17871. }, this)
  17872. },
  17873. _autoSetOrient: function() {
  17874. var t;
  17875. this.eachTargetAxis(function(e) {
  17876. !t && (t = e.name)
  17877. }, this), this.option.orient = "y" === t ? "vertical" : "horizontal"
  17878. },
  17879. _isSeriesHasAllAxesTypeOf: function(t, e) {
  17880. var n = !0;
  17881. return $S(function(i) {
  17882. var r = t.get(i.axisIndex),
  17883. o = this.dependentModels[i.axis][r];
  17884. o && o.get("type") === e || (n = !1)
  17885. }, this), n
  17886. },
  17887. _setDefaultThrottle: function(t) {
  17888. if (t.hasOwnProperty("throttle") && (this._autoThrottle = !1), this._autoThrottle) {
  17889. var e = this.ecModel.option;
  17890. this.option.throttle = e.animation && e.animationDurationUpdate > 0 ? 100 : 20
  17891. }
  17892. },
  17893. getFirstTargetAxisModel: function() {
  17894. var t;
  17895. return $S(function(e) {
  17896. if (null == t) {
  17897. var n = this.get(e.axisIndex);
  17898. n.length && (t = this.dependentModels[e.axis][n[0]])
  17899. }
  17900. }, this), t
  17901. },
  17902. eachTargetAxis: function(t, e) {
  17903. var n = this.ecModel;
  17904. $S(function(i) {
  17905. KS(this.get(i.axisIndex), function(r) {
  17906. t.call(e, i, r, this, n)
  17907. }, this)
  17908. }, this)
  17909. },
  17910. getAxisProxy: function(t, e) {
  17911. return this._axisProxies[t + "_" + e]
  17912. },
  17913. getAxisModel: function(t, e) {
  17914. var n = this.getAxisProxy(t, e);
  17915. return n && n.getAxisModel()
  17916. },
  17917. setRawRange: function(t) {
  17918. var e = this.option,
  17919. n = this.settledOption;
  17920. KS([
  17921. ["start", "startValue"],
  17922. ["end", "endValue"]
  17923. ], function(i) {
  17924. (null != t[i[0]] || null != t[i[1]]) && (e[i[0]] = n[i[0]] = t[i[0]], e[i[1]] =
  17925. n[i[1]] = t[i[1]])
  17926. }, this), Nf(this, t)
  17927. },
  17928. setCalculatedRange: function(t) {
  17929. var e = this.option;
  17930. KS(["start", "startValue", "end", "endValue"], function(n) {
  17931. e[n] = t[n]
  17932. })
  17933. },
  17934. getPercentRange: function() {
  17935. var t = this.findRepresentativeAxisProxy();
  17936. return t ? t.getDataPercentWindow() : void 0
  17937. },
  17938. getValueRange: function(t, e) {
  17939. if (null != t || null != e) return this.getAxisProxy(t, e).getDataValueWindow();
  17940. var n = this.findRepresentativeAxisProxy();
  17941. return n ? n.getDataValueWindow() : void 0
  17942. },
  17943. findRepresentativeAxisProxy: function(t) {
  17944. if (t) return t.__dzAxisProxy;
  17945. var e = this._axisProxies;
  17946. for (var n in e)
  17947. if (e.hasOwnProperty(n) && e[n].hostedBy(this)) return e[n];
  17948. for (var n in e)
  17949. if (e.hasOwnProperty(n) && !e[n].hostedBy(this)) return e[n]
  17950. },
  17951. getRangePropMode: function() {
  17952. return this._rangePropMode.slice()
  17953. }
  17954. }),
  17955. JS = Nx.extend({
  17956. type: "dataZoom",
  17957. render: function(t, e, n) {
  17958. this.dataZoomModel = t, this.ecModel = e, this.api = n
  17959. },
  17960. getTargetCoordInfo: function() {
  17961. function t(t, e, n, i) {
  17962. for (var r, o = 0; o < n.length; o++)
  17963. if (n[o].model === t) {
  17964. r = n[o];
  17965. break
  17966. } r || n.push(r = {
  17967. model: t,
  17968. axisModels: [],
  17969. coordIndex: i
  17970. }), r.axisModels.push(e)
  17971. }
  17972. var e = this.dataZoomModel,
  17973. n = this.ecModel,
  17974. i = {};
  17975. return e.eachTargetAxis(function(e, r) {
  17976. var o = n.getComponent(e.axis, r);
  17977. if (o) {
  17978. var a = o.getCoordSysModel();
  17979. a && t(a, o, i[a.mainType] || (i[a.mainType] = []), a.componentIndex)
  17980. }
  17981. }, this), i
  17982. }
  17983. }),
  17984. tM = (QS.extend({
  17985. type: "dataZoom.slider",
  17986. layoutMode: "box",
  17987. defaultOption: {
  17988. show: !0,
  17989. right: "ph",
  17990. top: "ph",
  17991. width: "ph",
  17992. height: "ph",
  17993. left: null,
  17994. bottom: null,
  17995. backgroundColor: "rgba(47,69,84,0)",
  17996. dataBackground: {
  17997. lineStyle: {
  17998. color: "#2f4554",
  17999. width: .5,
  18000. opacity: .3
  18001. },
  18002. areaStyle: {
  18003. color: "rgba(47,69,84,0.3)",
  18004. opacity: .3
  18005. }
  18006. },
  18007. borderColor: "#ddd",
  18008. fillerColor: "rgba(167,183,204,0.4)",
  18009. 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",
  18010. handleSize: "100%",
  18011. handleStyle: {
  18012. color: "#a7b7cc"
  18013. },
  18014. labelPrecision: null,
  18015. labelFormatter: null,
  18016. showDetail: !0,
  18017. showDataShadow: "auto",
  18018. realtime: !0,
  18019. zoomLock: !1,
  18020. textStyle: {
  18021. color: "#333"
  18022. }
  18023. }
  18024. }), Jm),
  18025. eM = wa,
  18026. nM = Ma,
  18027. iM = y,
  18028. rM = f,
  18029. oM = 7,
  18030. aM = 1,
  18031. sM = 30,
  18032. lM = "horizontal",
  18033. uM = "vertical",
  18034. hM = 5,
  18035. cM = ["line", "bar", "candlestick", "scatter"],
  18036. dM = JS.extend({
  18037. type: "dataZoom.slider",
  18038. init: function(t, e) {
  18039. this._displayables = {}, this._orient, this._range, this._handleEnds, this._size, this
  18040. ._handleWidth, this._handleHeight, this._location, this._dragging, this._dataShadowInfo,
  18041. this.api = e
  18042. },
  18043. render: function(t, e, n, i) {
  18044. return dM.superApply(this, "render", arguments), vl(this, "_dispatchZoomAction", this
  18045. .dataZoomModel.get("throttle"), "fixRate"), this._orient = t.get("orient"), this
  18046. .dataZoomModel.get("show") === !1 ? void this.group.removeAll() : (i && "dataZoom" === i
  18047. .type && i.from === this.uid || this._buildView(), void this._updateView())
  18048. },
  18049. remove: function() {
  18050. dM.superApply(this, "remove", arguments), ml(this, "_dispatchZoomAction")
  18051. },
  18052. dispose: function() {
  18053. dM.superApply(this, "dispose", arguments), ml(this, "_dispatchZoomAction")
  18054. },
  18055. _buildView: function() {
  18056. var t = this.group;
  18057. t.removeAll(), this._resetLocation(), this._resetInterval();
  18058. var e = this._displayables.barGroup = new Cg;
  18059. this._renderBackground(), this._renderHandle(), this._renderDataShadow(), t.add(e), this
  18060. ._positionGroup()
  18061. },
  18062. _resetLocation: function() {
  18063. var t = this.dataZoomModel,
  18064. e = this.api,
  18065. n = this._findCoordRect(),
  18066. i = {
  18067. width: e.getWidth(),
  18068. height: e.getHeight()
  18069. },
  18070. r = this._orient === lM ? {
  18071. right: i.width - n.x - n.width,
  18072. top: i.height - sM - oM,
  18073. width: n.width,
  18074. height: sM
  18075. } : {
  18076. right: oM,
  18077. top: n.y,
  18078. width: sM,
  18079. height: n.height
  18080. },
  18081. o = Ja(t.option);
  18082. f(["right", "top", "width", "height"], function(t) {
  18083. "ph" === o[t] && (o[t] = r[t])
  18084. });
  18085. var a = $a(o, i, t.padding);
  18086. this._location = {
  18087. x: a.x,
  18088. y: a.y
  18089. }, this._size = [a.width, a.height], this._orient === uM && this._size.reverse()
  18090. },
  18091. _positionGroup: function() {
  18092. var t = this.group,
  18093. e = this._location,
  18094. n = this._orient,
  18095. i = this.dataZoomModel.getFirstTargetAxisModel(),
  18096. r = i && i.get("inverse"),
  18097. o = this._displayables.barGroup,
  18098. a = (this._dataShadowInfo || {}).otherAxisInverse;
  18099. o.attr(n !== lM || r ? n === lM && r ? {
  18100. scale: a ? [-1, 1] : [-1, -1]
  18101. } : n !== uM || r ? {
  18102. scale: a ? [-1, -1] : [-1, 1],
  18103. rotation: Math.PI / 2
  18104. } : {
  18105. scale: a ? [1, -1] : [1, 1],
  18106. rotation: Math.PI / 2
  18107. } : {
  18108. scale: a ? [1, 1] : [1, -1]
  18109. });
  18110. var s = t.getBoundingRect([o]);
  18111. t.attr("position", [e.x - s.x, e.y - s.y])
  18112. },
  18113. _getViewExtent: function() {
  18114. return [0, this._size[0]]
  18115. },
  18116. _renderBackground: function() {
  18117. var t = this.dataZoomModel,
  18118. e = this._size,
  18119. n = this._displayables.barGroup;
  18120. n.add(new tM({
  18121. silent: !0,
  18122. shape: {
  18123. x: 0,
  18124. y: 0,
  18125. width: e[0],
  18126. height: e[1]
  18127. },
  18128. style: {
  18129. fill: t.get("backgroundColor")
  18130. },
  18131. z2: -40
  18132. })), n.add(new tM({
  18133. shape: {
  18134. x: 0,
  18135. y: 0,
  18136. width: e[0],
  18137. height: e[1]
  18138. },
  18139. style: {
  18140. fill: "transparent"
  18141. },
  18142. z2: 0,
  18143. onclick: y(this._onClickPanelClick, this)
  18144. }))
  18145. },
  18146. _renderDataShadow: function() {
  18147. var t = this._dataShadowInfo = this._prepareDataShadowInfo();
  18148. if (t) {
  18149. var e = this._size,
  18150. n = t.series,
  18151. i = n.getRawData(),
  18152. r = n.getShadowDim ? n.getShadowDim() : t.otherDim;
  18153. if (null != r) {
  18154. var o = i.getDataExtent(r),
  18155. a = .3 * (o[1] - o[0]);
  18156. o = [o[0] - a, o[1] + a];
  18157. var l, u = [0, e[1]],
  18158. h = [0, e[0]],
  18159. c = [
  18160. [e[0], 0],
  18161. [0, 0]
  18162. ],
  18163. d = [],
  18164. f = h[1] / (i.count() - 1),
  18165. p = 0,
  18166. g = Math.round(i.count() / e[0]);
  18167. i.each([r], function(t, e) {
  18168. if (g > 0 && e % g) return void(p += f);
  18169. var n = null == t || isNaN(t) || "" === t,
  18170. i = n ? 0 : eM(t, o, u, !0);
  18171. n && !l && e ? (c.push([c[c.length - 1][0], 0]), d.push([d[d.length - 1]
  18172. [0], 0
  18173. ])) : !n && l && (c.push([p, 0]), d.push([p, 0])), c.push([p, i]), d
  18174. .push([p, i]), p += f, l = n
  18175. });
  18176. var v = this.dataZoomModel;
  18177. this._displayables.barGroup.add(new qm({
  18178. shape: {
  18179. points: c
  18180. },
  18181. style: s({
  18182. fill: v.get("dataBackgroundColor")
  18183. }, v.getModel("dataBackground.areaStyle").getAreaStyle()),
  18184. silent: !0,
  18185. z2: -20
  18186. })), this._displayables.barGroup.add(new Km({
  18187. shape: {
  18188. points: d
  18189. },
  18190. style: v.getModel("dataBackground.lineStyle").getLineStyle(),
  18191. silent: !0,
  18192. z2: -19
  18193. }))
  18194. }
  18195. }
  18196. },
  18197. _prepareDataShadowInfo: function() {
  18198. var t = this.dataZoomModel,
  18199. e = t.get("showDataShadow");
  18200. if (e !== !1) {
  18201. var n, i = this.ecModel;
  18202. return t.eachTargetAxis(function(r, o) {
  18203. var a = t.getAxisProxy(r.name, o).getTargetSeriesModels();
  18204. f(a, function(t) {
  18205. if (!(n || e !== !0 && u(cM, t.get("type")) < 0)) {
  18206. var a, s = i.getComponent(r.axis, o).axis,
  18207. l = Ff(r.name),
  18208. h = t.coordinateSystem;
  18209. null != l && h.getOtherAxis && (a = h.getOtherAxis(s)
  18210. .inverse), l = t.getData().mapDimension(l), n = {
  18211. thisAxis: s,
  18212. series: t,
  18213. thisDim: r.name,
  18214. otherDim: l,
  18215. otherAxisInverse: a
  18216. }
  18217. }
  18218. }, this)
  18219. }, this), n
  18220. }
  18221. },
  18222. _renderHandle: function() {
  18223. var t = this._displayables,
  18224. e = t.handles = [],
  18225. n = t.handleLabels = [],
  18226. i = this._displayables.barGroup,
  18227. r = this._size,
  18228. o = this.dataZoomModel;
  18229. i.add(t.filler = new tM({
  18230. draggable: !0,
  18231. cursor: Vf(this._orient),
  18232. drift: iM(this._onDragMove, this, "all"),
  18233. ondragstart: iM(this._showDataInfo, this, !0),
  18234. ondragend: iM(this._onDragEnd, this),
  18235. onmouseover: iM(this._showDataInfo, this, !0),
  18236. onmouseout: iM(this._showDataInfo, this, !1),
  18237. style: {
  18238. fill: o.get("fillerColor"),
  18239. textPosition: "inside"
  18240. }
  18241. })), i.add(new tM({
  18242. silent: !0,
  18243. subPixelOptimize: !0,
  18244. shape: {
  18245. x: 0,
  18246. y: 0,
  18247. width: r[0],
  18248. height: r[1]
  18249. },
  18250. style: {
  18251. stroke: o.get("dataBackgroundColor") || o.get("borderColor"),
  18252. lineWidth: aM,
  18253. fill: "rgba(0,0,0,0)"
  18254. }
  18255. })), rM([0, 1], function(t) {
  18256. var r = ua(o.get("handleIcon"), {
  18257. cursor: Vf(this._orient),
  18258. draggable: !0,
  18259. drift: iM(this._onDragMove, this, t),
  18260. ondragend: iM(this._onDragEnd, this),
  18261. onmouseover: iM(this._showDataInfo, this, !0),
  18262. onmouseout: iM(this._showDataInfo, this, !1)
  18263. }, {
  18264. x: -1,
  18265. y: 0,
  18266. width: 2,
  18267. height: 2
  18268. }),
  18269. a = r.getBoundingRect();
  18270. this._handleHeight = ba(o.get("handleSize"), this._size[1]), this._handleWidth =
  18271. a.width / a.height * this._handleHeight, r.setStyle(o.getModel(
  18272. "handleStyle").getItemStyle());
  18273. var s = o.get("handleColor");
  18274. null != s && (r.style.fill = s), i.add(e[t] = r);
  18275. var l = o.textStyleModel;
  18276. this.group.add(n[t] = new Wm({
  18277. silent: !0,
  18278. invisible: !0,
  18279. style: {
  18280. x: 0,
  18281. y: 0,
  18282. text: "",
  18283. textVerticalAlign: "middle",
  18284. textAlign: "center",
  18285. textFill: l.getTextColor(),
  18286. textFont: l.getFont()
  18287. },
  18288. z2: 10
  18289. }))
  18290. }, this)
  18291. },
  18292. _resetInterval: function() {
  18293. var t = this._range = this.dataZoomModel.getPercentRange(),
  18294. e = this._getViewExtent();
  18295. this._handleEnds = [eM(t[0], [0, 100], e, !0), eM(t[1], [0, 100], e, !0)]
  18296. },
  18297. _updateInterval: function(t, e) {
  18298. var n = this.dataZoomModel,
  18299. i = this._handleEnds,
  18300. r = this._getViewExtent(),
  18301. o = n.findRepresentativeAxisProxy().getMinMaxSpan(),
  18302. a = [0, 100];
  18303. YS(e, i, r, n.get("zoomLock") ? "all" : t, null != o.minSpan ? eM(o.minSpan, a, r, !0) :
  18304. null, null != o.maxSpan ? eM(o.maxSpan, a, r, !0) : null);
  18305. var s = this._range,
  18306. l = this._range = nM([eM(i[0], r, a, !0), eM(i[1], r, a, !0)]);
  18307. return !s || s[0] !== l[0] || s[1] !== l[1]
  18308. },
  18309. _updateView: function(t) {
  18310. var e = this._displayables,
  18311. n = this._handleEnds,
  18312. i = nM(n.slice()),
  18313. r = this._size;
  18314. rM([0, 1], function(t) {
  18315. var i = e.handles[t],
  18316. o = this._handleHeight;
  18317. i.attr({
  18318. scale: [o / 2, o / 2],
  18319. position: [n[t], r[1] / 2 - o / 2]
  18320. })
  18321. }, this), e.filler.setShape({
  18322. x: i[0],
  18323. y: 0,
  18324. width: i[1] - i[0],
  18325. height: r[1]
  18326. }), this._updateDataInfo(t)
  18327. },
  18328. _updateDataInfo: function(t) {
  18329. function e(t) {
  18330. var e = ia(i.handles[t].parent, this.group),
  18331. n = oa(0 === t ? "right" : "left", e),
  18332. s = this._handleWidth / 2 + hM,
  18333. l = ra([c[t] + (0 === t ? -s : s), this._size[1] / 2], e);
  18334. r[t].setStyle({
  18335. x: l[0],
  18336. y: l[1],
  18337. textVerticalAlign: o === lM ? "middle" : n,
  18338. textAlign: o === lM ? n : "center",
  18339. text: a[t]
  18340. })
  18341. }
  18342. var n = this.dataZoomModel,
  18343. i = this._displayables,
  18344. r = i.handleLabels,
  18345. o = this._orient,
  18346. a = ["", ""];
  18347. if (n.get("showDetail")) {
  18348. var s = n.findRepresentativeAxisProxy();
  18349. if (s) {
  18350. var l = s.getAxisModel().axis,
  18351. u = this._range,
  18352. h = t ? s.calculateDataWindow({
  18353. start: u[0],
  18354. end: u[1]
  18355. }).valueWindow : s.getDataValueWindow();
  18356. a = [this._formatLabel(h[0], l), this._formatLabel(h[1], l)]
  18357. }
  18358. }
  18359. var c = nM(this._handleEnds.slice());
  18360. e.call(this, 0), e.call(this, 1)
  18361. },
  18362. _formatLabel: function(t, e) {
  18363. var n = this.dataZoomModel,
  18364. i = n.get("labelFormatter"),
  18365. r = n.get("labelPrecision");
  18366. (null == r || "auto" === r) && (r = e.getPixelPrecision());
  18367. var o = null == t || isNaN(t) ? "" : "category" === e.type || "time" === e.type ? e.scale
  18368. .getLabel(Math.round(t)) : t.toFixed(Math.min(r, 20));
  18369. return w(i) ? i(t, o) : b(i) ? i.replace("{value}", o) : o
  18370. },
  18371. _showDataInfo: function(t) {
  18372. t = this._dragging || t;
  18373. var e = this._displayables.handleLabels;
  18374. e[0].attr("invisible", !t), e[1].attr("invisible", !t)
  18375. },
  18376. _onDragMove: function(t, e, n, i) {
  18377. this._dragging = !0, Wp(i.event);
  18378. var r = this._displayables.barGroup.getLocalTransform(),
  18379. o = ra([e, n], r, !0),
  18380. a = this._updateInterval(t, o[0]),
  18381. s = this.dataZoomModel.get("realtime");
  18382. this._updateView(!s), a && s && this._dispatchZoomAction()
  18383. },
  18384. _onDragEnd: function() {
  18385. this._dragging = !1, this._showDataInfo(!1);
  18386. var t = this.dataZoomModel.get("realtime");
  18387. !t && this._dispatchZoomAction()
  18388. },
  18389. _onClickPanelClick: function(t) {
  18390. var e = this._size,
  18391. n = this._displayables.barGroup.transformCoordToLocal(t.offsetX, t.offsetY);
  18392. if (!(n[0] < 0 || n[0] > e[0] || n[1] < 0 || n[1] > e[1])) {
  18393. var i = this._handleEnds,
  18394. r = (i[0] + i[1]) / 2,
  18395. o = this._updateInterval("all", n[0] - r);
  18396. this._updateView(), o && this._dispatchZoomAction()
  18397. }
  18398. },
  18399. _dispatchZoomAction: function() {
  18400. var t = this._range;
  18401. this.api.dispatchAction({
  18402. type: "dataZoom",
  18403. from: this.uid,
  18404. dataZoomId: this.dataZoomModel.id,
  18405. start: t[0],
  18406. end: t[1]
  18407. })
  18408. },
  18409. _findCoordRect: function() {
  18410. var t;
  18411. if (rM(this.getTargetCoordInfo(), function(e) {
  18412. if (!t && e.length) {
  18413. var n = e[0].model.coordinateSystem;
  18414. t = n.getRect && n.getRect()
  18415. }
  18416. }), !t) {
  18417. var e = this.api.getWidth(),
  18418. n = this.api.getHeight();
  18419. t = {
  18420. x: .2 * e,
  18421. y: .2 * n,
  18422. width: .6 * e,
  18423. height: .6 * n
  18424. }
  18425. }
  18426. return t
  18427. }
  18428. });
  18429. wu({
  18430. getTargetSeries: function(t) {
  18431. var e = N();
  18432. return t.eachComponent("dataZoom", function(t) {
  18433. t.eachTargetAxis(function(t, n, i) {
  18434. var r = i.getAxisProxy(t.name, n);
  18435. f(r.getTargetSeriesModels(), function(t) {
  18436. e.set(t.uid, t)
  18437. })
  18438. })
  18439. }), e
  18440. },
  18441. modifyOutputEnd: !0,
  18442. overallReset: function(t, e) {
  18443. t.eachComponent("dataZoom", function(t) {
  18444. t.eachTargetAxis(function(t, n, i) {
  18445. i.getAxisProxy(t.name, n).reset(i, e)
  18446. }), t.eachTargetAxis(function(t, n, i) {
  18447. i.getAxisProxy(t.name, n).filterData(i, e)
  18448. })
  18449. }), t.eachComponent("dataZoom", function(t) {
  18450. var e = t.findRepresentativeAxisProxy(),
  18451. n = e.getDataPercentWindow(),
  18452. i = e.getDataValueWindow();
  18453. t.setCalculatedRange({
  18454. start: n[0],
  18455. end: n[1],
  18456. startValue: i[0],
  18457. endValue: i[1]
  18458. })
  18459. })
  18460. }
  18461. }), Su("dataZoom", function(t, e) {
  18462. var n = kf(y(e.eachComponent, e, "dataZoom"), XS, function(t, e) {
  18463. return t.get(e.axisIndex)
  18464. }),
  18465. i = [];
  18466. e.eachComponent({
  18467. mainType: "dataZoom",
  18468. query: t
  18469. }, function(t) {
  18470. i.push.apply(i, n(t).nodes)
  18471. }), f(i, function(e) {
  18472. e.setRawRange({
  18473. start: t.start,
  18474. end: t.end,
  18475. startValue: t.startValue,
  18476. endValue: t.endValue
  18477. })
  18478. })
  18479. }), QS.extend({
  18480. type: "dataZoom.inside",
  18481. defaultOption: {
  18482. disabled: !1,
  18483. zoomLock: !1,
  18484. zoomOnMouseWheel: !0,
  18485. moveOnMouseMove: !0,
  18486. moveOnMouseWheel: !1,
  18487. preventDefaultMouseMove: !0
  18488. }
  18489. });
  18490. var fM = "\x00_ec_interaction_mutex";
  18491. Su({
  18492. type: "takeGlobalCursor",
  18493. event: "globalCursorTaken",
  18494. update: "update"
  18495. }, function() {}), c(Gf, zp);
  18496. var pM = "\x00_ec_dataZoom_roams",
  18497. gM = y,
  18498. vM = JS.extend({
  18499. type: "dataZoom.inside",
  18500. init: function() {
  18501. this._range
  18502. },
  18503. render: function(t, e, n) {
  18504. vM.superApply(this, "render", arguments), this._range = t.getPercentRange(), f(this
  18505. .getTargetCoordInfo(),
  18506. function(e, i) {
  18507. var r = p(e, function(t) {
  18508. return tp(t.model)
  18509. });
  18510. f(e, function(e) {
  18511. var o = e.model,
  18512. a = {};
  18513. f(["pan", "zoom", "scrollMove"], function(t) {
  18514. a[t] = gM(mM[t], this, e, i)
  18515. }, this), Qf(n, {
  18516. coordId: tp(o),
  18517. allCoordIds: r,
  18518. containsPoint: function(t, e, n) {
  18519. return o.coordinateSystem.containPoint([e, n])
  18520. },
  18521. dataZoomId: t.id,
  18522. dataZoomModel: t,
  18523. getRange: a
  18524. })
  18525. }, this)
  18526. }, this)
  18527. },
  18528. dispose: function() {
  18529. Jf(this.api, this.dataZoomModel.id), vM.superApply(this, "dispose", arguments), this
  18530. ._range = null
  18531. }
  18532. }),
  18533. mM = {
  18534. zoom: function(t, e, n, i) {
  18535. var r = this._range,
  18536. o = r.slice(),
  18537. a = t.axisModels[0];
  18538. if (a) {
  18539. var s = yM[e](null, [i.originX, i.originY], a, n, t),
  18540. l = (s.signal > 0 ? s.pixelStart + s.pixelLength - s.pixel : s.pixel - s.pixelStart) / s
  18541. .pixelLength * (o[1] - o[0]) + o[0],
  18542. u = Math.max(1 / i.scale, 0);
  18543. o[0] = (o[0] - l) * u + l, o[1] = (o[1] - l) * u + l;
  18544. var h = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();
  18545. return YS(0, o, [0, 100], 0, h.minSpan, h.maxSpan), this._range = o, r[0] !== o[0] || r[
  18546. 1] !== o[1] ? o : void 0
  18547. }
  18548. },
  18549. pan: ap(function(t, e, n, i, r, o) {
  18550. var a = yM[i]([o.oldX, o.oldY], [o.newX, o.newY], e, r, n);
  18551. return a.signal * (t[1] - t[0]) * a.pixel / a.pixelLength
  18552. }),
  18553. scrollMove: ap(function(t, e, n, i, r, o) {
  18554. var a = yM[i]([0, 0], [o.scrollDelta, o.scrollDelta], e, r, n);
  18555. return a.signal * (t[1] - t[0]) * o.scrollDelta
  18556. })
  18557. },
  18558. yM = {
  18559. grid: function(t, e, n, i, r) {
  18560. var o = n.axis,
  18561. a = {},
  18562. s = r.model.coordinateSystem.getRect();
  18563. return t = t || [0, 0], "x" === o.dim ? (a.pixel = e[0] - t[0], a.pixelLength = s.width, a
  18564. .pixelStart = s.x, a.signal = o.inverse ? 1 : -1) : (a.pixel = e[1] - t[1], a
  18565. .pixelLength = s.height, a.pixelStart = s.y, a.signal = o.inverse ? -1 : 1), a
  18566. },
  18567. polar: function(t, e, n, i, r) {
  18568. var o = n.axis,
  18569. a = {},
  18570. s = r.model.coordinateSystem,
  18571. l = s.getRadiusAxis().getExtent(),
  18572. u = s.getAngleAxis().getExtent();
  18573. return t = t ? s.pointToCoord(t) : [0, 0], e = s.pointToCoord(e), "radiusAxis" === n.mainType ?
  18574. (a.pixel = e[0] - t[0], a.pixelLength = l[1] - l[0], a.pixelStart = l[0], a.signal = o
  18575. .inverse ? 1 : -1) : (a.pixel = e[1] - t[1], a.pixelLength = u[1] - u[0], a.pixelStart =
  18576. u[0], a.signal = o.inverse ? -1 : 1), a
  18577. },
  18578. singleAxis: function(t, e, n, i, r) {
  18579. var o = n.axis,
  18580. a = r.model.coordinateSystem.getRect(),
  18581. s = {};
  18582. return t = t || [0, 0], "horizontal" === o.orient ? (s.pixel = e[0] - t[0], s.pixelLength = a
  18583. .width, s.pixelStart = a.x, s.signal = o.inverse ? 1 : -1) : (s.pixel = e[1] - t[1], s
  18584. .pixelLength = a.height, s.pixelStart = a.y, s.signal = o.inverse ? -1 : 1), s
  18585. }
  18586. };
  18587. t.version = T_, t.dependencies = A_, t.PRIORITY = W_, t.init = fu, t.connect = pu, t.disConnect = gu, t
  18588. .disconnect = sw, t.dispose = vu, t.getInstanceByDom = mu, t.getInstanceById = yu, t.registerTheme = xu, t
  18589. .registerPreprocessor = _u, t.registerProcessor = wu, t.registerPostUpdate = bu, t.registerAction = Su, t
  18590. .registerCoordinateSystem = Mu, t.getCoordinateSystemDimensions = Iu, t.registerLayout = Cu, t
  18591. .registerVisual = Tu, t.registerLoading = Du, t.extendComponentModel = ku, t.extendComponentView = Pu, t
  18592. .extendSeriesModel = Ou, t.extendChartView = Lu, t.setCanvasCreator = zu, t.registerMap = Eu, t.getMap = Bu,
  18593. t.dataTool = lw, t.zrender = Mv, t.number = Ey, t.format = Hy, t.throttle = gl, t.helper = ub, t.matrix =
  18594. jp, t.vector = Op, t.color = fg, t.parseGeoJSON = cb, t.parseGeoJson = gb, t.util = vb, t.graphic = mb, t
  18595. .List = _w, t.Model = pa, t.Axis = pb, t.env = dp
  18596. });