123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904 |
- import {
- __export,
- init_define_APP_INFO
- } from "./chunk-XY75H3MP.js";
- // node_modules/zrender/lib/core/platform.js
- init_define_APP_INFO();
- var DEFAULT_FONT_SIZE = 12;
- var DEFAULT_FONT_FAMILY = "sans-serif";
- var DEFAULT_FONT = DEFAULT_FONT_SIZE + "px " + DEFAULT_FONT_FAMILY;
- var OFFSET = 20;
- var SCALE = 100;
- var defaultWidthMapStr = "007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";
- function getTextWidthMap(mapStr) {
- var map2 = {};
- if (typeof JSON === "undefined") {
- return map2;
- }
- for (var i = 0; i < mapStr.length; i++) {
- var char = String.fromCharCode(i + 32);
- var size = (mapStr.charCodeAt(i) - OFFSET) / SCALE;
- map2[char] = size;
- }
- return map2;
- }
- var DEFAULT_TEXT_WIDTH_MAP = getTextWidthMap(defaultWidthMapStr);
- var platformApi = {
- createCanvas: function() {
- return typeof document !== "undefined" && document.createElement("canvas");
- },
- measureText: function() {
- var _ctx;
- var _cachedFont;
- return function(text, font) {
- if (!_ctx) {
- var canvas = platformApi.createCanvas();
- _ctx = canvas && canvas.getContext("2d");
- }
- if (_ctx) {
- if (_cachedFont !== font) {
- _cachedFont = _ctx.font = font || DEFAULT_FONT;
- }
- return _ctx.measureText(text);
- } else {
- text = text || "";
- font = font || DEFAULT_FONT;
- var res = /^([0-9]*?)px$/.exec(font);
- var fontSize = +(res && res[1]) || DEFAULT_FONT_SIZE;
- var width = 0;
- if (font.indexOf("mono") >= 0) {
- width = fontSize * text.length;
- } else {
- for (var i = 0; i < text.length; i++) {
- var preCalcWidth = DEFAULT_TEXT_WIDTH_MAP[text[i]];
- width += preCalcWidth == null ? fontSize : preCalcWidth * fontSize;
- }
- }
- return { width };
- }
- };
- }(),
- loadImage: function(src, onload, onerror) {
- var image = new Image();
- image.onload = onload;
- image.onerror = onerror;
- image.src = src;
- return image;
- }
- };
- function setPlatformAPI(newPlatformApis) {
- for (var key in platformApi) {
- if (newPlatformApis[key]) {
- platformApi[key] = newPlatformApis[key];
- }
- }
- }
- // node_modules/zrender/lib/core/util.js
- var util_exports = {};
- __export(util_exports, {
- HashMap: () => HashMap,
- RADIAN_TO_DEGREE: () => RADIAN_TO_DEGREE,
- assert: () => assert,
- bind: () => bind,
- clone: () => clone,
- concatArray: () => concatArray,
- createCanvas: () => createCanvas,
- createHashMap: () => createHashMap,
- createObject: () => createObject,
- curry: () => curry,
- defaults: () => defaults,
- disableUserSelect: () => disableUserSelect,
- each: () => each,
- eqNaN: () => eqNaN,
- extend: () => extend,
- filter: () => filter,
- find: () => find,
- guid: () => guid,
- hasOwn: () => hasOwn,
- indexOf: () => indexOf,
- inherits: () => inherits,
- isArray: () => isArray,
- isArrayLike: () => isArrayLike,
- isBuiltInObject: () => isBuiltInObject,
- isDom: () => isDom,
- isFunction: () => isFunction,
- isGradientObject: () => isGradientObject,
- isImagePatternObject: () => isImagePatternObject,
- isNumber: () => isNumber,
- isObject: () => isObject,
- isPrimitive: () => isPrimitive,
- isRegExp: () => isRegExp,
- isString: () => isString,
- isStringSafe: () => isStringSafe,
- isTypedArray: () => isTypedArray,
- keys: () => keys,
- logError: () => logError,
- map: () => map,
- merge: () => merge,
- mergeAll: () => mergeAll,
- mixin: () => mixin,
- noop: () => noop,
- normalizeCssArray: () => normalizeCssArray,
- reduce: () => reduce,
- retrieve: () => retrieve,
- retrieve2: () => retrieve2,
- retrieve3: () => retrieve3,
- setAsPrimitive: () => setAsPrimitive,
- slice: () => slice,
- trim: () => trim
- });
- init_define_APP_INFO();
- var BUILTIN_OBJECT = reduce([
- "Function",
- "RegExp",
- "Date",
- "Error",
- "CanvasGradient",
- "CanvasPattern",
- "Image",
- "Canvas"
- ], function(obj, val) {
- obj["[object " + val + "]"] = true;
- return obj;
- }, {});
- var TYPED_ARRAY = reduce([
- "Int8",
- "Uint8",
- "Uint8Clamped",
- "Int16",
- "Uint16",
- "Int32",
- "Uint32",
- "Float32",
- "Float64"
- ], function(obj, val) {
- obj["[object " + val + "Array]"] = true;
- return obj;
- }, {});
- var objToString = Object.prototype.toString;
- var arrayProto = Array.prototype;
- var nativeForEach = arrayProto.forEach;
- var nativeFilter = arrayProto.filter;
- var nativeSlice = arrayProto.slice;
- var nativeMap = arrayProto.map;
- var ctorFunction = function() {
- }.constructor;
- var protoFunction = ctorFunction ? ctorFunction.prototype : null;
- var protoKey = "__proto__";
- var idStart = 2311;
- function guid() {
- return idStart++;
- }
- function logError() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- if (typeof console !== "undefined") {
- console.error.apply(console, args);
- }
- }
- function clone(source) {
- if (source == null || typeof source !== "object") {
- return source;
- }
- var result = source;
- var typeStr = objToString.call(source);
- if (typeStr === "[object Array]") {
- if (!isPrimitive(source)) {
- result = [];
- for (var i = 0, len2 = source.length; i < len2; i++) {
- result[i] = clone(source[i]);
- }
- }
- } else if (TYPED_ARRAY[typeStr]) {
- if (!isPrimitive(source)) {
- var Ctor = source.constructor;
- if (Ctor.from) {
- result = Ctor.from(source);
- } else {
- result = new Ctor(source.length);
- for (var i = 0, len2 = source.length; i < len2; i++) {
- result[i] = source[i];
- }
- }
- }
- } else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {
- result = {};
- for (var key in source) {
- if (source.hasOwnProperty(key) && key !== protoKey) {
- result[key] = clone(source[key]);
- }
- }
- }
- return result;
- }
- function merge(target, source, overwrite) {
- if (!isObject(source) || !isObject(target)) {
- return overwrite ? clone(source) : target;
- }
- for (var key in source) {
- if (source.hasOwnProperty(key) && key !== protoKey) {
- var targetProp = target[key];
- var sourceProp = source[key];
- if (isObject(sourceProp) && isObject(targetProp) && !isArray(sourceProp) && !isArray(targetProp) && !isDom(sourceProp) && !isDom(targetProp) && !isBuiltInObject(sourceProp) && !isBuiltInObject(targetProp) && !isPrimitive(sourceProp) && !isPrimitive(targetProp)) {
- merge(targetProp, sourceProp, overwrite);
- } else if (overwrite || !(key in target)) {
- target[key] = clone(source[key]);
- }
- }
- }
- return target;
- }
- function mergeAll(targetAndSources, overwrite) {
- var result = targetAndSources[0];
- for (var i = 1, len2 = targetAndSources.length; i < len2; i++) {
- result = merge(result, targetAndSources[i], overwrite);
- }
- return result;
- }
- function extend(target, source) {
- if (Object.assign) {
- Object.assign(target, source);
- } else {
- for (var key in source) {
- if (source.hasOwnProperty(key) && key !== protoKey) {
- target[key] = source[key];
- }
- }
- }
- return target;
- }
- function defaults(target, source, overlay) {
- var keysArr = keys(source);
- for (var i = 0; i < keysArr.length; i++) {
- var key = keysArr[i];
- if (overlay ? source[key] != null : target[key] == null) {
- target[key] = source[key];
- }
- }
- return target;
- }
- var createCanvas = platformApi.createCanvas;
- function indexOf(array, value) {
- if (array) {
- if (array.indexOf) {
- return array.indexOf(value);
- }
- for (var i = 0, len2 = array.length; i < len2; i++) {
- if (array[i] === value) {
- return i;
- }
- }
- }
- return -1;
- }
- function inherits(clazz, baseClazz) {
- var clazzPrototype = clazz.prototype;
- function F() {
- }
- F.prototype = baseClazz.prototype;
- clazz.prototype = new F();
- for (var prop in clazzPrototype) {
- if (clazzPrototype.hasOwnProperty(prop)) {
- clazz.prototype[prop] = clazzPrototype[prop];
- }
- }
- clazz.prototype.constructor = clazz;
- clazz.superClass = baseClazz;
- }
- function mixin(target, source, override) {
- target = "prototype" in target ? target.prototype : target;
- source = "prototype" in source ? source.prototype : source;
- if (Object.getOwnPropertyNames) {
- var keyList = Object.getOwnPropertyNames(source);
- for (var i = 0; i < keyList.length; i++) {
- var key = keyList[i];
- if (key !== "constructor") {
- if (override ? source[key] != null : target[key] == null) {
- target[key] = source[key];
- }
- }
- }
- } else {
- defaults(target, source, override);
- }
- }
- function isArrayLike(data) {
- if (!data) {
- return false;
- }
- if (typeof data === "string") {
- return false;
- }
- return typeof data.length === "number";
- }
- function each(arr, cb, context) {
- if (!(arr && cb)) {
- return;
- }
- if (arr.forEach && arr.forEach === nativeForEach) {
- arr.forEach(cb, context);
- } else if (arr.length === +arr.length) {
- for (var i = 0, len2 = arr.length; i < len2; i++) {
- cb.call(context, arr[i], i, arr);
- }
- } else {
- for (var key in arr) {
- if (arr.hasOwnProperty(key)) {
- cb.call(context, arr[key], key, arr);
- }
- }
- }
- }
- function map(arr, cb, context) {
- if (!arr) {
- return [];
- }
- if (!cb) {
- return slice(arr);
- }
- if (arr.map && arr.map === nativeMap) {
- return arr.map(cb, context);
- } else {
- var result = [];
- for (var i = 0, len2 = arr.length; i < len2; i++) {
- result.push(cb.call(context, arr[i], i, arr));
- }
- return result;
- }
- }
- function reduce(arr, cb, memo, context) {
- if (!(arr && cb)) {
- return;
- }
- for (var i = 0, len2 = arr.length; i < len2; i++) {
- memo = cb.call(context, memo, arr[i], i, arr);
- }
- return memo;
- }
- function filter(arr, cb, context) {
- if (!arr) {
- return [];
- }
- if (!cb) {
- return slice(arr);
- }
- if (arr.filter && arr.filter === nativeFilter) {
- return arr.filter(cb, context);
- } else {
- var result = [];
- for (var i = 0, len2 = arr.length; i < len2; i++) {
- if (cb.call(context, arr[i], i, arr)) {
- result.push(arr[i]);
- }
- }
- return result;
- }
- }
- function find(arr, cb, context) {
- if (!(arr && cb)) {
- return;
- }
- for (var i = 0, len2 = arr.length; i < len2; i++) {
- if (cb.call(context, arr[i], i, arr)) {
- return arr[i];
- }
- }
- }
- function keys(obj) {
- if (!obj) {
- return [];
- }
- if (Object.keys) {
- return Object.keys(obj);
- }
- var keyList = [];
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- keyList.push(key);
- }
- }
- return keyList;
- }
- function bindPolyfill(func, context) {
- var args = [];
- for (var _i = 2; _i < arguments.length; _i++) {
- args[_i - 2] = arguments[_i];
- }
- return function() {
- return func.apply(context, args.concat(nativeSlice.call(arguments)));
- };
- }
- var bind = protoFunction && isFunction(protoFunction.bind) ? protoFunction.call.bind(protoFunction.bind) : bindPolyfill;
- function curry(func) {
- var args = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- args[_i - 1] = arguments[_i];
- }
- return function() {
- return func.apply(this, args.concat(nativeSlice.call(arguments)));
- };
- }
- function isArray(value) {
- if (Array.isArray) {
- return Array.isArray(value);
- }
- return objToString.call(value) === "[object Array]";
- }
- function isFunction(value) {
- return typeof value === "function";
- }
- function isString(value) {
- return typeof value === "string";
- }
- function isStringSafe(value) {
- return objToString.call(value) === "[object String]";
- }
- function isNumber(value) {
- return typeof value === "number";
- }
- function isObject(value) {
- var type = typeof value;
- return type === "function" || !!value && type === "object";
- }
- function isBuiltInObject(value) {
- return !!BUILTIN_OBJECT[objToString.call(value)];
- }
- function isTypedArray(value) {
- return !!TYPED_ARRAY[objToString.call(value)];
- }
- function isDom(value) {
- return typeof value === "object" && typeof value.nodeType === "number" && typeof value.ownerDocument === "object";
- }
- function isGradientObject(value) {
- return value.colorStops != null;
- }
- function isImagePatternObject(value) {
- return value.image != null;
- }
- function isRegExp(value) {
- return objToString.call(value) === "[object RegExp]";
- }
- function eqNaN(value) {
- return value !== value;
- }
- function retrieve() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- for (var i = 0, len2 = args.length; i < len2; i++) {
- if (args[i] != null) {
- return args[i];
- }
- }
- }
- function retrieve2(value0, value1) {
- return value0 != null ? value0 : value1;
- }
- function retrieve3(value0, value1, value2) {
- return value0 != null ? value0 : value1 != null ? value1 : value2;
- }
- function slice(arr) {
- var args = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- args[_i - 1] = arguments[_i];
- }
- return nativeSlice.apply(arr, args);
- }
- function normalizeCssArray(val) {
- if (typeof val === "number") {
- return [val, val, val, val];
- }
- var len2 = val.length;
- if (len2 === 2) {
- return [val[0], val[1], val[0], val[1]];
- } else if (len2 === 3) {
- return [val[0], val[1], val[2], val[1]];
- }
- return val;
- }
- function assert(condition, message) {
- if (!condition) {
- throw new Error(message);
- }
- }
- function trim(str) {
- if (str == null) {
- return null;
- } else if (typeof str.trim === "function") {
- return str.trim();
- } else {
- return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
- }
- }
- var primitiveKey = "__ec_primitive__";
- function setAsPrimitive(obj) {
- obj[primitiveKey] = true;
- }
- function isPrimitive(obj) {
- return obj[primitiveKey];
- }
- var HashMap = function() {
- function HashMap2(obj) {
- this.data = {};
- var isArr = isArray(obj);
- this.data = {};
- var thisMap = this;
- obj instanceof HashMap2 ? obj.each(visit) : obj && each(obj, visit);
- function visit(value, key) {
- isArr ? thisMap.set(value, key) : thisMap.set(key, value);
- }
- }
- HashMap2.prototype.get = function(key) {
- return this.data.hasOwnProperty(key) ? this.data[key] : null;
- };
- HashMap2.prototype.set = function(key, value) {
- return this.data[key] = value;
- };
- HashMap2.prototype.each = function(cb, context) {
- for (var key in this.data) {
- if (this.data.hasOwnProperty(key)) {
- cb.call(context, this.data[key], key);
- }
- }
- };
- HashMap2.prototype.keys = function() {
- return keys(this.data);
- };
- HashMap2.prototype.removeKey = function(key) {
- delete this.data[key];
- };
- return HashMap2;
- }();
- function createHashMap(obj) {
- return new HashMap(obj);
- }
- function concatArray(a, b) {
- var newArray = new a.constructor(a.length + b.length);
- for (var i = 0; i < a.length; i++) {
- newArray[i] = a[i];
- }
- var offset = a.length;
- for (var i = 0; i < b.length; i++) {
- newArray[i + offset] = b[i];
- }
- return newArray;
- }
- function createObject(proto, properties) {
- var obj;
- if (Object.create) {
- obj = Object.create(proto);
- } else {
- var StyleCtor = function() {
- };
- StyleCtor.prototype = proto;
- obj = new StyleCtor();
- }
- if (properties) {
- extend(obj, properties);
- }
- return obj;
- }
- function disableUserSelect(dom) {
- var domStyle = dom.style;
- domStyle.webkitUserSelect = "none";
- domStyle.userSelect = "none";
- domStyle.webkitTapHighlightColor = "rgba(0,0,0,0)";
- domStyle["-webkit-touch-callout"] = "none";
- }
- function hasOwn(own, prop) {
- return own.hasOwnProperty(prop);
- }
- function noop() {
- }
- var RADIAN_TO_DEGREE = 180 / Math.PI;
- // node_modules/zrender/lib/core/env.js
- init_define_APP_INFO();
- var Browser = function() {
- function Browser2() {
- this.firefox = false;
- this.ie = false;
- this.edge = false;
- this.newEdge = false;
- this.weChat = false;
- }
- return Browser2;
- }();
- var Env = function() {
- function Env2() {
- this.browser = new Browser();
- this.node = false;
- this.wxa = false;
- this.worker = false;
- this.svgSupported = false;
- this.touchEventsSupported = false;
- this.pointerEventsSupported = false;
- this.domSupported = false;
- this.transformSupported = false;
- this.transform3dSupported = false;
- this.hasGlobalWindow = typeof window !== "undefined";
- }
- return Env2;
- }();
- var env = new Env();
- if (typeof wx === "object" && typeof wx.getSystemInfoSync === "function") {
- env.wxa = true;
- env.touchEventsSupported = true;
- } else if (typeof document === "undefined" && typeof self !== "undefined") {
- env.worker = true;
- } else if (typeof navigator === "undefined") {
- env.node = true;
- env.svgSupported = true;
- } else {
- detect(navigator.userAgent, env);
- }
- function detect(ua, env2) {
- var browser = env2.browser;
- var firefox = ua.match(/Firefox\/([\d.]+)/);
- var ie = ua.match(/MSIE\s([\d.]+)/) || ua.match(/Trident\/.+?rv:(([\d.]+))/);
- var edge = ua.match(/Edge?\/([\d.]+)/);
- var weChat = /micromessenger/i.test(ua);
- if (firefox) {
- browser.firefox = true;
- browser.version = firefox[1];
- }
- if (ie) {
- browser.ie = true;
- browser.version = ie[1];
- }
- if (edge) {
- browser.edge = true;
- browser.version = edge[1];
- browser.newEdge = +edge[1].split(".")[0] > 18;
- }
- if (weChat) {
- browser.weChat = true;
- }
- env2.svgSupported = typeof SVGRect !== "undefined";
- env2.touchEventsSupported = "ontouchstart" in window && !browser.ie && !browser.edge;
- env2.pointerEventsSupported = "onpointerdown" in window && (browser.edge || browser.ie && +browser.version >= 11);
- env2.domSupported = typeof document !== "undefined";
- var style = document.documentElement.style;
- env2.transform3dSupported = (browser.ie && "transition" in style || browser.edge || "WebKitCSSMatrix" in window && "m11" in new WebKitCSSMatrix() || "MozPerspective" in style) && !("OTransition" in style);
- env2.transformSupported = env2.transform3dSupported || browser.ie && +browser.version >= 9;
- }
- var env_default = env;
- // node_modules/zrender/lib/core/matrix.js
- var matrix_exports = {};
- __export(matrix_exports, {
- clone: () => clone2,
- copy: () => copy,
- create: () => create,
- identity: () => identity,
- invert: () => invert,
- mul: () => mul,
- rotate: () => rotate,
- scale: () => scale,
- translate: () => translate
- });
- init_define_APP_INFO();
- function create() {
- return [1, 0, 0, 1, 0, 0];
- }
- function identity(out) {
- out[0] = 1;
- out[1] = 0;
- out[2] = 0;
- out[3] = 1;
- out[4] = 0;
- out[5] = 0;
- return out;
- }
- function copy(out, m) {
- out[0] = m[0];
- out[1] = m[1];
- out[2] = m[2];
- out[3] = m[3];
- out[4] = m[4];
- out[5] = m[5];
- return out;
- }
- function mul(out, m1, m2) {
- var out0 = m1[0] * m2[0] + m1[2] * m2[1];
- var out1 = m1[1] * m2[0] + m1[3] * m2[1];
- var out2 = m1[0] * m2[2] + m1[2] * m2[3];
- var out3 = m1[1] * m2[2] + m1[3] * m2[3];
- var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];
- var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];
- out[0] = out0;
- out[1] = out1;
- out[2] = out2;
- out[3] = out3;
- out[4] = out4;
- out[5] = out5;
- return out;
- }
- function translate(out, a, v) {
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- out[4] = a[4] + v[0];
- out[5] = a[5] + v[1];
- return out;
- }
- function rotate(out, a, rad) {
- var aa = a[0];
- var ac = a[2];
- var atx = a[4];
- var ab = a[1];
- var ad = a[3];
- var aty = a[5];
- var st = Math.sin(rad);
- var ct = Math.cos(rad);
- out[0] = aa * ct + ab * st;
- out[1] = -aa * st + ab * ct;
- out[2] = ac * ct + ad * st;
- out[3] = -ac * st + ct * ad;
- out[4] = ct * atx + st * aty;
- out[5] = ct * aty - st * atx;
- return out;
- }
- function scale(out, a, v) {
- var vx = v[0];
- var vy = v[1];
- out[0] = a[0] * vx;
- out[1] = a[1] * vy;
- out[2] = a[2] * vx;
- out[3] = a[3] * vy;
- out[4] = a[4] * vx;
- out[5] = a[5] * vy;
- return out;
- }
- function invert(out, a) {
- var aa = a[0];
- var ac = a[2];
- var atx = a[4];
- var ab = a[1];
- var ad = a[3];
- var aty = a[5];
- var det = aa * ad - ab * ac;
- if (!det) {
- return null;
- }
- det = 1 / det;
- out[0] = ad * det;
- out[1] = -ab * det;
- out[2] = -ac * det;
- out[3] = aa * det;
- out[4] = (ac * aty - ad * atx) * det;
- out[5] = (ab * atx - aa * aty) * det;
- return out;
- }
- function clone2(a) {
- var b = create();
- copy(b, a);
- return b;
- }
- // node_modules/zrender/lib/core/vector.js
- var vector_exports = {};
- __export(vector_exports, {
- add: () => add,
- applyTransform: () => applyTransform,
- clone: () => clone3,
- copy: () => copy2,
- create: () => create2,
- dist: () => dist,
- distSquare: () => distSquare,
- distance: () => distance,
- distanceSquare: () => distanceSquare,
- div: () => div,
- dot: () => dot,
- len: () => len,
- lenSquare: () => lenSquare,
- length: () => length,
- lengthSquare: () => lengthSquare,
- lerp: () => lerp,
- max: () => max,
- min: () => min,
- mul: () => mul2,
- negate: () => negate,
- normalize: () => normalize,
- scale: () => scale2,
- scaleAndAdd: () => scaleAndAdd,
- set: () => set,
- sub: () => sub
- });
- init_define_APP_INFO();
- function create2(x, y) {
- if (x == null) {
- x = 0;
- }
- if (y == null) {
- y = 0;
- }
- return [x, y];
- }
- function copy2(out, v) {
- out[0] = v[0];
- out[1] = v[1];
- return out;
- }
- function clone3(v) {
- return [v[0], v[1]];
- }
- function set(out, a, b) {
- out[0] = a;
- out[1] = b;
- return out;
- }
- function add(out, v1, v2) {
- out[0] = v1[0] + v2[0];
- out[1] = v1[1] + v2[1];
- return out;
- }
- function scaleAndAdd(out, v1, v2, a) {
- out[0] = v1[0] + v2[0] * a;
- out[1] = v1[1] + v2[1] * a;
- return out;
- }
- function sub(out, v1, v2) {
- out[0] = v1[0] - v2[0];
- out[1] = v1[1] - v2[1];
- return out;
- }
- function len(v) {
- return Math.sqrt(lenSquare(v));
- }
- var length = len;
- function lenSquare(v) {
- return v[0] * v[0] + v[1] * v[1];
- }
- var lengthSquare = lenSquare;
- function mul2(out, v1, v2) {
- out[0] = v1[0] * v2[0];
- out[1] = v1[1] * v2[1];
- return out;
- }
- function div(out, v1, v2) {
- out[0] = v1[0] / v2[0];
- out[1] = v1[1] / v2[1];
- return out;
- }
- function dot(v1, v2) {
- return v1[0] * v2[0] + v1[1] * v2[1];
- }
- function scale2(out, v, s) {
- out[0] = v[0] * s;
- out[1] = v[1] * s;
- return out;
- }
- function normalize(out, v) {
- var d = len(v);
- if (d === 0) {
- out[0] = 0;
- out[1] = 0;
- } else {
- out[0] = v[0] / d;
- out[1] = v[1] / d;
- }
- return out;
- }
- function distance(v1, v2) {
- return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]));
- }
- var dist = distance;
- function distanceSquare(v1, v2) {
- return (v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]);
- }
- var distSquare = distanceSquare;
- function negate(out, v) {
- out[0] = -v[0];
- out[1] = -v[1];
- return out;
- }
- function lerp(out, v1, v2, t) {
- out[0] = v1[0] + t * (v2[0] - v1[0]);
- out[1] = v1[1] + t * (v2[1] - v1[1]);
- return out;
- }
- function applyTransform(out, v, m) {
- var x = v[0];
- var y = v[1];
- out[0] = m[0] * x + m[2] * y + m[4];
- out[1] = m[1] * x + m[3] * y + m[5];
- return out;
- }
- function min(out, v1, v2) {
- out[0] = Math.min(v1[0], v2[0]);
- out[1] = Math.min(v1[1], v2[1]);
- return out;
- }
- function max(out, v1, v2) {
- out[0] = Math.max(v1[0], v2[0]);
- out[1] = Math.max(v1[1], v2[1]);
- return out;
- }
- // node_modules/zrender/lib/tool/color.js
- var color_exports = {};
- __export(color_exports, {
- fastLerp: () => fastLerp,
- fastMapToColor: () => fastMapToColor,
- lerp: () => lerp2,
- lift: () => lift,
- lum: () => lum,
- mapToColor: () => mapToColor,
- modifyAlpha: () => modifyAlpha,
- modifyHSL: () => modifyHSL,
- parse: () => parse,
- random: () => random,
- stringify: () => stringify,
- toHex: () => toHex
- });
- init_define_APP_INFO();
- // node_modules/zrender/lib/core/LRU.js
- init_define_APP_INFO();
- var Entry = function() {
- function Entry2(val) {
- this.value = val;
- }
- return Entry2;
- }();
- var LinkedList = function() {
- function LinkedList2() {
- this._len = 0;
- }
- LinkedList2.prototype.insert = function(val) {
- var entry = new Entry(val);
- this.insertEntry(entry);
- return entry;
- };
- LinkedList2.prototype.insertEntry = function(entry) {
- if (!this.head) {
- this.head = this.tail = entry;
- } else {
- this.tail.next = entry;
- entry.prev = this.tail;
- entry.next = null;
- this.tail = entry;
- }
- this._len++;
- };
- LinkedList2.prototype.remove = function(entry) {
- var prev = entry.prev;
- var next = entry.next;
- if (prev) {
- prev.next = next;
- } else {
- this.head = next;
- }
- if (next) {
- next.prev = prev;
- } else {
- this.tail = prev;
- }
- entry.next = entry.prev = null;
- this._len--;
- };
- LinkedList2.prototype.len = function() {
- return this._len;
- };
- LinkedList2.prototype.clear = function() {
- this.head = this.tail = null;
- this._len = 0;
- };
- return LinkedList2;
- }();
- var LRU = function() {
- function LRU2(maxSize) {
- this._list = new LinkedList();
- this._maxSize = 10;
- this._map = {};
- this._maxSize = maxSize;
- }
- LRU2.prototype.put = function(key, value) {
- var list = this._list;
- var map2 = this._map;
- var removed = null;
- if (map2[key] == null) {
- var len2 = list.len();
- var entry = this._lastRemovedEntry;
- if (len2 >= this._maxSize && len2 > 0) {
- var leastUsedEntry = list.head;
- list.remove(leastUsedEntry);
- delete map2[leastUsedEntry.key];
- removed = leastUsedEntry.value;
- this._lastRemovedEntry = leastUsedEntry;
- }
- if (entry) {
- entry.value = value;
- } else {
- entry = new Entry(value);
- }
- entry.key = key;
- list.insertEntry(entry);
- map2[key] = entry;
- }
- return removed;
- };
- LRU2.prototype.get = function(key) {
- var entry = this._map[key];
- var list = this._list;
- if (entry != null) {
- if (entry !== list.tail) {
- list.remove(entry);
- list.insertEntry(entry);
- }
- return entry.value;
- }
- };
- LRU2.prototype.clear = function() {
- this._list.clear();
- this._map = {};
- };
- LRU2.prototype.len = function() {
- return this._list.len();
- };
- return LRU2;
- }();
- var LRU_default = LRU;
- // node_modules/zrender/lib/tool/color.js
- var kCSSColorTable = {
- "transparent": [0, 0, 0, 0],
- "aliceblue": [240, 248, 255, 1],
- "antiquewhite": [250, 235, 215, 1],
- "aqua": [0, 255, 255, 1],
- "aquamarine": [127, 255, 212, 1],
- "azure": [240, 255, 255, 1],
- "beige": [245, 245, 220, 1],
- "bisque": [255, 228, 196, 1],
- "black": [0, 0, 0, 1],
- "blanchedalmond": [255, 235, 205, 1],
- "blue": [0, 0, 255, 1],
- "blueviolet": [138, 43, 226, 1],
- "brown": [165, 42, 42, 1],
- "burlywood": [222, 184, 135, 1],
- "cadetblue": [95, 158, 160, 1],
- "chartreuse": [127, 255, 0, 1],
- "chocolate": [210, 105, 30, 1],
- "coral": [255, 127, 80, 1],
- "cornflowerblue": [100, 149, 237, 1],
- "cornsilk": [255, 248, 220, 1],
- "crimson": [220, 20, 60, 1],
- "cyan": [0, 255, 255, 1],
- "darkblue": [0, 0, 139, 1],
- "darkcyan": [0, 139, 139, 1],
- "darkgoldenrod": [184, 134, 11, 1],
- "darkgray": [169, 169, 169, 1],
- "darkgreen": [0, 100, 0, 1],
- "darkgrey": [169, 169, 169, 1],
- "darkkhaki": [189, 183, 107, 1],
- "darkmagenta": [139, 0, 139, 1],
- "darkolivegreen": [85, 107, 47, 1],
- "darkorange": [255, 140, 0, 1],
- "darkorchid": [153, 50, 204, 1],
- "darkred": [139, 0, 0, 1],
- "darksalmon": [233, 150, 122, 1],
- "darkseagreen": [143, 188, 143, 1],
- "darkslateblue": [72, 61, 139, 1],
- "darkslategray": [47, 79, 79, 1],
- "darkslategrey": [47, 79, 79, 1],
- "darkturquoise": [0, 206, 209, 1],
- "darkviolet": [148, 0, 211, 1],
- "deeppink": [255, 20, 147, 1],
- "deepskyblue": [0, 191, 255, 1],
- "dimgray": [105, 105, 105, 1],
- "dimgrey": [105, 105, 105, 1],
- "dodgerblue": [30, 144, 255, 1],
- "firebrick": [178, 34, 34, 1],
- "floralwhite": [255, 250, 240, 1],
- "forestgreen": [34, 139, 34, 1],
- "fuchsia": [255, 0, 255, 1],
- "gainsboro": [220, 220, 220, 1],
- "ghostwhite": [248, 248, 255, 1],
- "gold": [255, 215, 0, 1],
- "goldenrod": [218, 165, 32, 1],
- "gray": [128, 128, 128, 1],
- "green": [0, 128, 0, 1],
- "greenyellow": [173, 255, 47, 1],
- "grey": [128, 128, 128, 1],
- "honeydew": [240, 255, 240, 1],
- "hotpink": [255, 105, 180, 1],
- "indianred": [205, 92, 92, 1],
- "indigo": [75, 0, 130, 1],
- "ivory": [255, 255, 240, 1],
- "khaki": [240, 230, 140, 1],
- "lavender": [230, 230, 250, 1],
- "lavenderblush": [255, 240, 245, 1],
- "lawngreen": [124, 252, 0, 1],
- "lemonchiffon": [255, 250, 205, 1],
- "lightblue": [173, 216, 230, 1],
- "lightcoral": [240, 128, 128, 1],
- "lightcyan": [224, 255, 255, 1],
- "lightgoldenrodyellow": [250, 250, 210, 1],
- "lightgray": [211, 211, 211, 1],
- "lightgreen": [144, 238, 144, 1],
- "lightgrey": [211, 211, 211, 1],
- "lightpink": [255, 182, 193, 1],
- "lightsalmon": [255, 160, 122, 1],
- "lightseagreen": [32, 178, 170, 1],
- "lightskyblue": [135, 206, 250, 1],
- "lightslategray": [119, 136, 153, 1],
- "lightslategrey": [119, 136, 153, 1],
- "lightsteelblue": [176, 196, 222, 1],
- "lightyellow": [255, 255, 224, 1],
- "lime": [0, 255, 0, 1],
- "limegreen": [50, 205, 50, 1],
- "linen": [250, 240, 230, 1],
- "magenta": [255, 0, 255, 1],
- "maroon": [128, 0, 0, 1],
- "mediumaquamarine": [102, 205, 170, 1],
- "mediumblue": [0, 0, 205, 1],
- "mediumorchid": [186, 85, 211, 1],
- "mediumpurple": [147, 112, 219, 1],
- "mediumseagreen": [60, 179, 113, 1],
- "mediumslateblue": [123, 104, 238, 1],
- "mediumspringgreen": [0, 250, 154, 1],
- "mediumturquoise": [72, 209, 204, 1],
- "mediumvioletred": [199, 21, 133, 1],
- "midnightblue": [25, 25, 112, 1],
- "mintcream": [245, 255, 250, 1],
- "mistyrose": [255, 228, 225, 1],
- "moccasin": [255, 228, 181, 1],
- "navajowhite": [255, 222, 173, 1],
- "navy": [0, 0, 128, 1],
- "oldlace": [253, 245, 230, 1],
- "olive": [128, 128, 0, 1],
- "olivedrab": [107, 142, 35, 1],
- "orange": [255, 165, 0, 1],
- "orangered": [255, 69, 0, 1],
- "orchid": [218, 112, 214, 1],
- "palegoldenrod": [238, 232, 170, 1],
- "palegreen": [152, 251, 152, 1],
- "paleturquoise": [175, 238, 238, 1],
- "palevioletred": [219, 112, 147, 1],
- "papayawhip": [255, 239, 213, 1],
- "peachpuff": [255, 218, 185, 1],
- "peru": [205, 133, 63, 1],
- "pink": [255, 192, 203, 1],
- "plum": [221, 160, 221, 1],
- "powderblue": [176, 224, 230, 1],
- "purple": [128, 0, 128, 1],
- "red": [255, 0, 0, 1],
- "rosybrown": [188, 143, 143, 1],
- "royalblue": [65, 105, 225, 1],
- "saddlebrown": [139, 69, 19, 1],
- "salmon": [250, 128, 114, 1],
- "sandybrown": [244, 164, 96, 1],
- "seagreen": [46, 139, 87, 1],
- "seashell": [255, 245, 238, 1],
- "sienna": [160, 82, 45, 1],
- "silver": [192, 192, 192, 1],
- "skyblue": [135, 206, 235, 1],
- "slateblue": [106, 90, 205, 1],
- "slategray": [112, 128, 144, 1],
- "slategrey": [112, 128, 144, 1],
- "snow": [255, 250, 250, 1],
- "springgreen": [0, 255, 127, 1],
- "steelblue": [70, 130, 180, 1],
- "tan": [210, 180, 140, 1],
- "teal": [0, 128, 128, 1],
- "thistle": [216, 191, 216, 1],
- "tomato": [255, 99, 71, 1],
- "turquoise": [64, 224, 208, 1],
- "violet": [238, 130, 238, 1],
- "wheat": [245, 222, 179, 1],
- "white": [255, 255, 255, 1],
- "whitesmoke": [245, 245, 245, 1],
- "yellow": [255, 255, 0, 1],
- "yellowgreen": [154, 205, 50, 1]
- };
- function clampCssByte(i) {
- i = Math.round(i);
- return i < 0 ? 0 : i > 255 ? 255 : i;
- }
- function clampCssAngle(i) {
- i = Math.round(i);
- return i < 0 ? 0 : i > 360 ? 360 : i;
- }
- function clampCssFloat(f) {
- return f < 0 ? 0 : f > 1 ? 1 : f;
- }
- function parseCssInt(val) {
- var str = val;
- if (str.length && str.charAt(str.length - 1) === "%") {
- return clampCssByte(parseFloat(str) / 100 * 255);
- }
- return clampCssByte(parseInt(str, 10));
- }
- function parseCssFloat(val) {
- var str = val;
- if (str.length && str.charAt(str.length - 1) === "%") {
- return clampCssFloat(parseFloat(str) / 100);
- }
- return clampCssFloat(parseFloat(str));
- }
- function cssHueToRgb(m1, m2, h) {
- if (h < 0) {
- h += 1;
- } else if (h > 1) {
- h -= 1;
- }
- if (h * 6 < 1) {
- return m1 + (m2 - m1) * h * 6;
- }
- if (h * 2 < 1) {
- return m2;
- }
- if (h * 3 < 2) {
- return m1 + (m2 - m1) * (2 / 3 - h) * 6;
- }
- return m1;
- }
- function lerpNumber(a, b, p) {
- return a + (b - a) * p;
- }
- function setRgba(out, r, g, b, a) {
- out[0] = r;
- out[1] = g;
- out[2] = b;
- out[3] = a;
- return out;
- }
- function copyRgba(out, a) {
- out[0] = a[0];
- out[1] = a[1];
- out[2] = a[2];
- out[3] = a[3];
- return out;
- }
- var colorCache = new LRU_default(20);
- var lastRemovedArr = null;
- function putToCache(colorStr, rgbaArr) {
- if (lastRemovedArr) {
- copyRgba(lastRemovedArr, rgbaArr);
- }
- lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || rgbaArr.slice());
- }
- function parse(colorStr, rgbaArr) {
- if (!colorStr) {
- return;
- }
- rgbaArr = rgbaArr || [];
- var cached = colorCache.get(colorStr);
- if (cached) {
- return copyRgba(rgbaArr, cached);
- }
- colorStr = colorStr + "";
- var str = colorStr.replace(/ /g, "").toLowerCase();
- if (str in kCSSColorTable) {
- copyRgba(rgbaArr, kCSSColorTable[str]);
- putToCache(colorStr, rgbaArr);
- return rgbaArr;
- }
- var strLen = str.length;
- if (str.charAt(0) === "#") {
- if (strLen === 4 || strLen === 5) {
- var iv = parseInt(str.slice(1, 4), 16);
- if (!(iv >= 0 && iv <= 4095)) {
- setRgba(rgbaArr, 0, 0, 0, 1);
- return;
- }
- setRgba(rgbaArr, (iv & 3840) >> 4 | (iv & 3840) >> 8, iv & 240 | (iv & 240) >> 4, iv & 15 | (iv & 15) << 4, strLen === 5 ? parseInt(str.slice(4), 16) / 15 : 1);
- putToCache(colorStr, rgbaArr);
- return rgbaArr;
- } else if (strLen === 7 || strLen === 9) {
- var iv = parseInt(str.slice(1, 7), 16);
- if (!(iv >= 0 && iv <= 16777215)) {
- setRgba(rgbaArr, 0, 0, 0, 1);
- return;
- }
- setRgba(rgbaArr, (iv & 16711680) >> 16, (iv & 65280) >> 8, iv & 255, strLen === 9 ? parseInt(str.slice(7), 16) / 255 : 1);
- putToCache(colorStr, rgbaArr);
- return rgbaArr;
- }
- return;
- }
- var op = str.indexOf("(");
- var ep = str.indexOf(")");
- if (op !== -1 && ep + 1 === strLen) {
- var fname = str.substr(0, op);
- var params = str.substr(op + 1, ep - (op + 1)).split(",");
- var alpha = 1;
- switch (fname) {
- case "rgba":
- if (params.length !== 4) {
- return params.length === 3 ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1) : setRgba(rgbaArr, 0, 0, 0, 1);
- }
- alpha = parseCssFloat(params.pop());
- case "rgb":
- if (params.length !== 3) {
- setRgba(rgbaArr, 0, 0, 0, 1);
- return;
- }
- setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);
- putToCache(colorStr, rgbaArr);
- return rgbaArr;
- case "hsla":
- if (params.length !== 4) {
- setRgba(rgbaArr, 0, 0, 0, 1);
- return;
- }
- params[3] = parseCssFloat(params[3]);
- hsla2rgba(params, rgbaArr);
- putToCache(colorStr, rgbaArr);
- return rgbaArr;
- case "hsl":
- if (params.length !== 3) {
- setRgba(rgbaArr, 0, 0, 0, 1);
- return;
- }
- hsla2rgba(params, rgbaArr);
- putToCache(colorStr, rgbaArr);
- return rgbaArr;
- default:
- return;
- }
- }
- setRgba(rgbaArr, 0, 0, 0, 1);
- return;
- }
- function hsla2rgba(hsla, rgba) {
- var h = (parseFloat(hsla[0]) % 360 + 360) % 360 / 360;
- var s = parseCssFloat(hsla[1]);
- var l = parseCssFloat(hsla[2]);
- var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;
- var m1 = l * 2 - m2;
- rgba = rgba || [];
- setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);
- if (hsla.length === 4) {
- rgba[3] = hsla[3];
- }
- return rgba;
- }
- function rgba2hsla(rgba) {
- if (!rgba) {
- return;
- }
- var R = rgba[0] / 255;
- var G = rgba[1] / 255;
- var B = rgba[2] / 255;
- var vMin = Math.min(R, G, B);
- var vMax = Math.max(R, G, B);
- var delta = vMax - vMin;
- var L = (vMax + vMin) / 2;
- var H;
- var S;
- if (delta === 0) {
- H = 0;
- S = 0;
- } else {
- if (L < 0.5) {
- S = delta / (vMax + vMin);
- } else {
- S = delta / (2 - vMax - vMin);
- }
- var deltaR = ((vMax - R) / 6 + delta / 2) / delta;
- var deltaG = ((vMax - G) / 6 + delta / 2) / delta;
- var deltaB = ((vMax - B) / 6 + delta / 2) / delta;
- if (R === vMax) {
- H = deltaB - deltaG;
- } else if (G === vMax) {
- H = 1 / 3 + deltaR - deltaB;
- } else if (B === vMax) {
- H = 2 / 3 + deltaG - deltaR;
- }
- if (H < 0) {
- H += 1;
- }
- if (H > 1) {
- H -= 1;
- }
- }
- var hsla = [H * 360, S, L];
- if (rgba[3] != null) {
- hsla.push(rgba[3]);
- }
- return hsla;
- }
- function lift(color, level) {
- var colorArr = parse(color);
- if (colorArr) {
- for (var i = 0; i < 3; i++) {
- if (level < 0) {
- colorArr[i] = colorArr[i] * (1 - level) | 0;
- } else {
- colorArr[i] = (255 - colorArr[i]) * level + colorArr[i] | 0;
- }
- if (colorArr[i] > 255) {
- colorArr[i] = 255;
- } else if (colorArr[i] < 0) {
- colorArr[i] = 0;
- }
- }
- return stringify(colorArr, colorArr.length === 4 ? "rgba" : "rgb");
- }
- }
- function toHex(color) {
- var colorArr = parse(color);
- if (colorArr) {
- return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + +colorArr[2]).toString(16).slice(1);
- }
- }
- function fastLerp(normalizedValue, colors, out) {
- if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) {
- return;
- }
- out = out || [];
- var value = normalizedValue * (colors.length - 1);
- var leftIndex = Math.floor(value);
- var rightIndex = Math.ceil(value);
- var leftColor = colors[leftIndex];
- var rightColor = colors[rightIndex];
- var dv = value - leftIndex;
- out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));
- out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));
- out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));
- out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));
- return out;
- }
- var fastMapToColor = fastLerp;
- function lerp2(normalizedValue, colors, fullOutput) {
- if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) {
- return;
- }
- var value = normalizedValue * (colors.length - 1);
- var leftIndex = Math.floor(value);
- var rightIndex = Math.ceil(value);
- var leftColor = parse(colors[leftIndex]);
- var rightColor = parse(colors[rightIndex]);
- var dv = value - leftIndex;
- var color = stringify([
- clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),
- clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),
- clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),
- clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))
- ], "rgba");
- return fullOutput ? {
- color,
- leftIndex,
- rightIndex,
- value
- } : color;
- }
- var mapToColor = lerp2;
- function modifyHSL(color, h, s, l) {
- var colorArr = parse(color);
- if (color) {
- colorArr = rgba2hsla(colorArr);
- h != null && (colorArr[0] = clampCssAngle(h));
- s != null && (colorArr[1] = parseCssFloat(s));
- l != null && (colorArr[2] = parseCssFloat(l));
- return stringify(hsla2rgba(colorArr), "rgba");
- }
- }
- function modifyAlpha(color, alpha) {
- var colorArr = parse(color);
- if (colorArr && alpha != null) {
- colorArr[3] = clampCssFloat(alpha);
- return stringify(colorArr, "rgba");
- }
- }
- function stringify(arrColor, type) {
- if (!arrColor || !arrColor.length) {
- return;
- }
- var colorStr = arrColor[0] + "," + arrColor[1] + "," + arrColor[2];
- if (type === "rgba" || type === "hsva" || type === "hsla") {
- colorStr += "," + arrColor[3];
- }
- return type + "(" + colorStr + ")";
- }
- function lum(color, backgroundLum) {
- var arr = parse(color);
- return arr ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255 + (1 - arr[3]) * backgroundLum : 0;
- }
- function random() {
- return stringify([
- Math.round(Math.random() * 255),
- Math.round(Math.random() * 255),
- Math.round(Math.random() * 255)
- ], "rgb");
- }
- // node_modules/zrender/lib/canvas/graphic.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/graphic/Displayable.js
- init_define_APP_INFO();
- // node_modules/zrender/node_modules/tslib/tslib.es6.js
- init_define_APP_INFO();
- var extendStatics = function(d, b) {
- extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
- d2.__proto__ = b2;
- } || function(d2, b2) {
- for (var p in b2)
- if (Object.prototype.hasOwnProperty.call(b2, p))
- d2[p] = b2[p];
- };
- return extendStatics(d, b);
- };
- function __extends(d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() {
- this.constructor = d;
- }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- }
- // node_modules/zrender/lib/Element.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/core/Transformable.js
- init_define_APP_INFO();
- var mIdentity = identity;
- var EPSILON = 5e-5;
- function isNotAroundZero(val) {
- return val > EPSILON || val < -EPSILON;
- }
- var scaleTmp = [];
- var tmpTransform = [];
- var originTransform = create();
- var abs = Math.abs;
- var Transformable = function() {
- function Transformable2() {
- }
- Transformable2.prototype.getLocalTransform = function(m) {
- return Transformable2.getLocalTransform(this, m);
- };
- Transformable2.prototype.setPosition = function(arr) {
- this.x = arr[0];
- this.y = arr[1];
- };
- Transformable2.prototype.setScale = function(arr) {
- this.scaleX = arr[0];
- this.scaleY = arr[1];
- };
- Transformable2.prototype.setSkew = function(arr) {
- this.skewX = arr[0];
- this.skewY = arr[1];
- };
- Transformable2.prototype.setOrigin = function(arr) {
- this.originX = arr[0];
- this.originY = arr[1];
- };
- Transformable2.prototype.needLocalTransform = function() {
- return isNotAroundZero(this.rotation) || isNotAroundZero(this.x) || isNotAroundZero(this.y) || isNotAroundZero(this.scaleX - 1) || isNotAroundZero(this.scaleY - 1) || isNotAroundZero(this.skewX) || isNotAroundZero(this.skewY);
- };
- Transformable2.prototype.updateTransform = function() {
- var parentTransform = this.parent && this.parent.transform;
- var needLocalTransform = this.needLocalTransform();
- var m = this.transform;
- if (!(needLocalTransform || parentTransform)) {
- m && mIdentity(m);
- return;
- }
- m = m || create();
- if (needLocalTransform) {
- this.getLocalTransform(m);
- } else {
- mIdentity(m);
- }
- if (parentTransform) {
- if (needLocalTransform) {
- mul(m, parentTransform, m);
- } else {
- copy(m, parentTransform);
- }
- }
- this.transform = m;
- this._resolveGlobalScaleRatio(m);
- };
- Transformable2.prototype._resolveGlobalScaleRatio = function(m) {
- var globalScaleRatio = this.globalScaleRatio;
- if (globalScaleRatio != null && globalScaleRatio !== 1) {
- this.getGlobalScale(scaleTmp);
- var relX = scaleTmp[0] < 0 ? -1 : 1;
- var relY = scaleTmp[1] < 0 ? -1 : 1;
- var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;
- var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;
- m[0] *= sx;
- m[1] *= sx;
- m[2] *= sy;
- m[3] *= sy;
- }
- this.invTransform = this.invTransform || create();
- invert(this.invTransform, m);
- };
- Transformable2.prototype.getComputedTransform = function() {
- var transformNode = this;
- var ancestors = [];
- while (transformNode) {
- ancestors.push(transformNode);
- transformNode = transformNode.parent;
- }
- while (transformNode = ancestors.pop()) {
- transformNode.updateTransform();
- }
- return this.transform;
- };
- Transformable2.prototype.setLocalTransform = function(m) {
- if (!m) {
- return;
- }
- var sx = m[0] * m[0] + m[1] * m[1];
- var sy = m[2] * m[2] + m[3] * m[3];
- var rotation = Math.atan2(m[1], m[0]);
- var shearX = Math.PI / 2 + rotation - Math.atan2(m[3], m[2]);
- sy = Math.sqrt(sy) * Math.cos(shearX);
- sx = Math.sqrt(sx);
- this.skewX = shearX;
- this.skewY = 0;
- this.rotation = -rotation;
- this.x = +m[4];
- this.y = +m[5];
- this.scaleX = sx;
- this.scaleY = sy;
- this.originX = 0;
- this.originY = 0;
- };
- Transformable2.prototype.decomposeTransform = function() {
- if (!this.transform) {
- return;
- }
- var parent = this.parent;
- var m = this.transform;
- if (parent && parent.transform) {
- mul(tmpTransform, parent.invTransform, m);
- m = tmpTransform;
- }
- var ox = this.originX;
- var oy = this.originY;
- if (ox || oy) {
- originTransform[4] = ox;
- originTransform[5] = oy;
- mul(tmpTransform, m, originTransform);
- tmpTransform[4] -= ox;
- tmpTransform[5] -= oy;
- m = tmpTransform;
- }
- this.setLocalTransform(m);
- };
- Transformable2.prototype.getGlobalScale = function(out) {
- var m = this.transform;
- out = out || [];
- if (!m) {
- out[0] = 1;
- out[1] = 1;
- return out;
- }
- out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);
- out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);
- if (m[0] < 0) {
- out[0] = -out[0];
- }
- if (m[3] < 0) {
- out[1] = -out[1];
- }
- return out;
- };
- Transformable2.prototype.transformCoordToLocal = function(x, y) {
- var v2 = [x, y];
- var invTransform = this.invTransform;
- if (invTransform) {
- applyTransform(v2, v2, invTransform);
- }
- return v2;
- };
- Transformable2.prototype.transformCoordToGlobal = function(x, y) {
- var v2 = [x, y];
- var transform = this.transform;
- if (transform) {
- applyTransform(v2, v2, transform);
- }
- return v2;
- };
- Transformable2.prototype.getLineScale = function() {
- var m = this.transform;
- return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10 ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1])) : 1;
- };
- Transformable2.prototype.copyTransform = function(source) {
- copyTransform(this, source);
- };
- Transformable2.getLocalTransform = function(target, m) {
- m = m || [];
- var ox = target.originX || 0;
- var oy = target.originY || 0;
- var sx = target.scaleX;
- var sy = target.scaleY;
- var ax = target.anchorX;
- var ay = target.anchorY;
- var rotation = target.rotation || 0;
- var x = target.x;
- var y = target.y;
- var skewX = target.skewX ? Math.tan(target.skewX) : 0;
- var skewY = target.skewY ? Math.tan(-target.skewY) : 0;
- if (ox || oy || ax || ay) {
- var dx = ox + ax;
- var dy = oy + ay;
- m[4] = -dx * sx - skewX * dy * sy;
- m[5] = -dy * sy - skewY * dx * sx;
- } else {
- m[4] = m[5] = 0;
- }
- m[0] = sx;
- m[3] = sy;
- m[1] = skewY * sx;
- m[2] = skewX * sy;
- rotation && rotate(m, m, rotation);
- m[4] += ox + x;
- m[5] += oy + y;
- return m;
- };
- Transformable2.initDefaultProps = function() {
- var proto = Transformable2.prototype;
- proto.scaleX = proto.scaleY = proto.globalScaleRatio = 1;
- proto.x = proto.y = proto.originX = proto.originY = proto.skewX = proto.skewY = proto.rotation = proto.anchorX = proto.anchorY = 0;
- }();
- return Transformable2;
- }();
- var TRANSFORMABLE_PROPS = [
- "x",
- "y",
- "originX",
- "originY",
- "anchorX",
- "anchorY",
- "rotation",
- "scaleX",
- "scaleY",
- "skewX",
- "skewY"
- ];
- function copyTransform(target, source) {
- for (var i = 0; i < TRANSFORMABLE_PROPS.length; i++) {
- var propName = TRANSFORMABLE_PROPS[i];
- target[propName] = source[propName];
- }
- }
- var Transformable_default = Transformable;
- // node_modules/zrender/lib/animation/Animator.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/animation/Clip.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/animation/easing.js
- init_define_APP_INFO();
- var easingFuncs = {
- linear: function(k) {
- return k;
- },
- quadraticIn: function(k) {
- return k * k;
- },
- quadraticOut: function(k) {
- return k * (2 - k);
- },
- quadraticInOut: function(k) {
- if ((k *= 2) < 1) {
- return 0.5 * k * k;
- }
- return -0.5 * (--k * (k - 2) - 1);
- },
- cubicIn: function(k) {
- return k * k * k;
- },
- cubicOut: function(k) {
- return --k * k * k + 1;
- },
- cubicInOut: function(k) {
- if ((k *= 2) < 1) {
- return 0.5 * k * k * k;
- }
- return 0.5 * ((k -= 2) * k * k + 2);
- },
- quarticIn: function(k) {
- return k * k * k * k;
- },
- quarticOut: function(k) {
- return 1 - --k * k * k * k;
- },
- quarticInOut: function(k) {
- if ((k *= 2) < 1) {
- return 0.5 * k * k * k * k;
- }
- return -0.5 * ((k -= 2) * k * k * k - 2);
- },
- quinticIn: function(k) {
- return k * k * k * k * k;
- },
- quinticOut: function(k) {
- return --k * k * k * k * k + 1;
- },
- quinticInOut: function(k) {
- if ((k *= 2) < 1) {
- return 0.5 * k * k * k * k * k;
- }
- return 0.5 * ((k -= 2) * k * k * k * k + 2);
- },
- sinusoidalIn: function(k) {
- return 1 - Math.cos(k * Math.PI / 2);
- },
- sinusoidalOut: function(k) {
- return Math.sin(k * Math.PI / 2);
- },
- sinusoidalInOut: function(k) {
- return 0.5 * (1 - Math.cos(Math.PI * k));
- },
- exponentialIn: function(k) {
- return k === 0 ? 0 : Math.pow(1024, k - 1);
- },
- exponentialOut: function(k) {
- return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);
- },
- exponentialInOut: function(k) {
- if (k === 0) {
- return 0;
- }
- if (k === 1) {
- return 1;
- }
- if ((k *= 2) < 1) {
- return 0.5 * Math.pow(1024, k - 1);
- }
- return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);
- },
- circularIn: function(k) {
- return 1 - Math.sqrt(1 - k * k);
- },
- circularOut: function(k) {
- return Math.sqrt(1 - --k * k);
- },
- circularInOut: function(k) {
- if ((k *= 2) < 1) {
- return -0.5 * (Math.sqrt(1 - k * k) - 1);
- }
- return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);
- },
- elasticIn: function(k) {
- var s;
- var a = 0.1;
- var p = 0.4;
- if (k === 0) {
- return 0;
- }
- if (k === 1) {
- return 1;
- }
- if (!a || a < 1) {
- a = 1;
- s = p / 4;
- } else {
- s = p * Math.asin(1 / a) / (2 * Math.PI);
- }
- return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
- },
- elasticOut: function(k) {
- var s;
- var a = 0.1;
- var p = 0.4;
- if (k === 0) {
- return 0;
- }
- if (k === 1) {
- return 1;
- }
- if (!a || a < 1) {
- a = 1;
- s = p / 4;
- } else {
- s = p * Math.asin(1 / a) / (2 * Math.PI);
- }
- return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1;
- },
- elasticInOut: function(k) {
- var s;
- var a = 0.1;
- var p = 0.4;
- if (k === 0) {
- return 0;
- }
- if (k === 1) {
- return 1;
- }
- if (!a || a < 1) {
- a = 1;
- s = p / 4;
- } else {
- s = p * Math.asin(1 / a) / (2 * Math.PI);
- }
- if ((k *= 2) < 1) {
- return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
- }
- return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;
- },
- backIn: function(k) {
- var s = 1.70158;
- return k * k * ((s + 1) * k - s);
- },
- backOut: function(k) {
- var s = 1.70158;
- return --k * k * ((s + 1) * k + s) + 1;
- },
- backInOut: function(k) {
- var s = 1.70158 * 1.525;
- if ((k *= 2) < 1) {
- return 0.5 * (k * k * ((s + 1) * k - s));
- }
- return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);
- },
- bounceIn: function(k) {
- return 1 - easingFuncs.bounceOut(1 - k);
- },
- bounceOut: function(k) {
- if (k < 1 / 2.75) {
- return 7.5625 * k * k;
- } else if (k < 2 / 2.75) {
- return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75;
- } else if (k < 2.5 / 2.75) {
- return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375;
- } else {
- return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375;
- }
- },
- bounceInOut: function(k) {
- if (k < 0.5) {
- return easingFuncs.bounceIn(k * 2) * 0.5;
- }
- return easingFuncs.bounceOut(k * 2 - 1) * 0.5 + 0.5;
- }
- };
- var easing_default = easingFuncs;
- // node_modules/zrender/lib/animation/cubicEasing.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/core/curve.js
- init_define_APP_INFO();
- var mathPow = Math.pow;
- var mathSqrt = Math.sqrt;
- var EPSILON2 = 1e-8;
- var EPSILON_NUMERIC = 1e-4;
- var THREE_SQRT = mathSqrt(3);
- var ONE_THIRD = 1 / 3;
- var _v0 = create2();
- var _v1 = create2();
- var _v2 = create2();
- function isAroundZero(val) {
- return val > -EPSILON2 && val < EPSILON2;
- }
- function isNotAroundZero2(val) {
- return val > EPSILON2 || val < -EPSILON2;
- }
- function cubicAt(p0, p1, p2, p3, t) {
- var onet = 1 - t;
- return onet * onet * (onet * p0 + 3 * t * p1) + t * t * (t * p3 + 3 * onet * p2);
- }
- function cubicDerivativeAt(p0, p1, p2, p3, t) {
- var onet = 1 - t;
- return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet + (p3 - p2) * t * t);
- }
- function cubicRootAt(p0, p1, p2, p3, val, roots2) {
- var a = p3 + 3 * (p1 - p2) - p0;
- var b = 3 * (p2 - p1 * 2 + p0);
- var c = 3 * (p1 - p0);
- var d = p0 - val;
- var A = b * b - 3 * a * c;
- var B = b * c - 9 * a * d;
- var C = c * c - 3 * b * d;
- var n = 0;
- if (isAroundZero(A) && isAroundZero(B)) {
- if (isAroundZero(b)) {
- roots2[0] = 0;
- } else {
- var t1 = -c / b;
- if (t1 >= 0 && t1 <= 1) {
- roots2[n++] = t1;
- }
- }
- } else {
- var disc = B * B - 4 * A * C;
- if (isAroundZero(disc)) {
- var K = B / A;
- var t1 = -b / a + K;
- var t2 = -K / 2;
- if (t1 >= 0 && t1 <= 1) {
- roots2[n++] = t1;
- }
- if (t2 >= 0 && t2 <= 1) {
- roots2[n++] = t2;
- }
- } else if (disc > 0) {
- var discSqrt = mathSqrt(disc);
- var Y1 = A * b + 1.5 * a * (-B + discSqrt);
- var Y2 = A * b + 1.5 * a * (-B - discSqrt);
- if (Y1 < 0) {
- Y1 = -mathPow(-Y1, ONE_THIRD);
- } else {
- Y1 = mathPow(Y1, ONE_THIRD);
- }
- if (Y2 < 0) {
- Y2 = -mathPow(-Y2, ONE_THIRD);
- } else {
- Y2 = mathPow(Y2, ONE_THIRD);
- }
- var t1 = (-b - (Y1 + Y2)) / (3 * a);
- if (t1 >= 0 && t1 <= 1) {
- roots2[n++] = t1;
- }
- } else {
- var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));
- var theta = Math.acos(T) / 3;
- var ASqrt = mathSqrt(A);
- var tmp = Math.cos(theta);
- var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);
- var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);
- var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);
- if (t1 >= 0 && t1 <= 1) {
- roots2[n++] = t1;
- }
- if (t2 >= 0 && t2 <= 1) {
- roots2[n++] = t2;
- }
- if (t3 >= 0 && t3 <= 1) {
- roots2[n++] = t3;
- }
- }
- }
- return n;
- }
- function cubicExtrema(p0, p1, p2, p3, extrema2) {
- var b = 6 * p2 - 12 * p1 + 6 * p0;
- var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;
- var c = 3 * p1 - 3 * p0;
- var n = 0;
- if (isAroundZero(a)) {
- if (isNotAroundZero2(b)) {
- var t1 = -c / b;
- if (t1 >= 0 && t1 <= 1) {
- extrema2[n++] = t1;
- }
- }
- } else {
- var disc = b * b - 4 * a * c;
- if (isAroundZero(disc)) {
- extrema2[0] = -b / (2 * a);
- } else if (disc > 0) {
- var discSqrt = mathSqrt(disc);
- var t1 = (-b + discSqrt) / (2 * a);
- var t2 = (-b - discSqrt) / (2 * a);
- if (t1 >= 0 && t1 <= 1) {
- extrema2[n++] = t1;
- }
- if (t2 >= 0 && t2 <= 1) {
- extrema2[n++] = t2;
- }
- }
- }
- return n;
- }
- function cubicSubdivide(p0, p1, p2, p3, t, out) {
- var p01 = (p1 - p0) * t + p0;
- var p12 = (p2 - p1) * t + p1;
- var p23 = (p3 - p2) * t + p2;
- var p012 = (p12 - p01) * t + p01;
- var p123 = (p23 - p12) * t + p12;
- var p0123 = (p123 - p012) * t + p012;
- out[0] = p0;
- out[1] = p01;
- out[2] = p012;
- out[3] = p0123;
- out[4] = p0123;
- out[5] = p123;
- out[6] = p23;
- out[7] = p3;
- }
- function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {
- var t;
- var interval = 5e-3;
- var d = Infinity;
- var prev;
- var next;
- var d1;
- var d2;
- _v0[0] = x;
- _v0[1] = y;
- for (var _t = 0; _t < 1; _t += 0.05) {
- _v1[0] = cubicAt(x0, x1, x2, x3, _t);
- _v1[1] = cubicAt(y0, y1, y2, y3, _t);
- d1 = distSquare(_v0, _v1);
- if (d1 < d) {
- t = _t;
- d = d1;
- }
- }
- d = Infinity;
- for (var i = 0; i < 32; i++) {
- if (interval < EPSILON_NUMERIC) {
- break;
- }
- prev = t - interval;
- next = t + interval;
- _v1[0] = cubicAt(x0, x1, x2, x3, prev);
- _v1[1] = cubicAt(y0, y1, y2, y3, prev);
- d1 = distSquare(_v1, _v0);
- if (prev >= 0 && d1 < d) {
- t = prev;
- d = d1;
- } else {
- _v2[0] = cubicAt(x0, x1, x2, x3, next);
- _v2[1] = cubicAt(y0, y1, y2, y3, next);
- d2 = distSquare(_v2, _v0);
- if (next <= 1 && d2 < d) {
- t = next;
- d = d2;
- } else {
- interval *= 0.5;
- }
- }
- }
- if (out) {
- out[0] = cubicAt(x0, x1, x2, x3, t);
- out[1] = cubicAt(y0, y1, y2, y3, t);
- }
- return mathSqrt(d);
- }
- function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {
- var px = x0;
- var py = y0;
- var d = 0;
- var step = 1 / iteration;
- for (var i = 1; i <= iteration; i++) {
- var t = i * step;
- var x = cubicAt(x0, x1, x2, x3, t);
- var y = cubicAt(y0, y1, y2, y3, t);
- var dx = x - px;
- var dy = y - py;
- d += Math.sqrt(dx * dx + dy * dy);
- px = x;
- py = y;
- }
- return d;
- }
- function quadraticAt(p0, p1, p2, t) {
- var onet = 1 - t;
- return onet * (onet * p0 + 2 * t * p1) + t * t * p2;
- }
- function quadraticDerivativeAt(p0, p1, p2, t) {
- return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));
- }
- function quadraticRootAt(p0, p1, p2, val, roots2) {
- var a = p0 - 2 * p1 + p2;
- var b = 2 * (p1 - p0);
- var c = p0 - val;
- var n = 0;
- if (isAroundZero(a)) {
- if (isNotAroundZero2(b)) {
- var t1 = -c / b;
- if (t1 >= 0 && t1 <= 1) {
- roots2[n++] = t1;
- }
- }
- } else {
- var disc = b * b - 4 * a * c;
- if (isAroundZero(disc)) {
- var t1 = -b / (2 * a);
- if (t1 >= 0 && t1 <= 1) {
- roots2[n++] = t1;
- }
- } else if (disc > 0) {
- var discSqrt = mathSqrt(disc);
- var t1 = (-b + discSqrt) / (2 * a);
- var t2 = (-b - discSqrt) / (2 * a);
- if (t1 >= 0 && t1 <= 1) {
- roots2[n++] = t1;
- }
- if (t2 >= 0 && t2 <= 1) {
- roots2[n++] = t2;
- }
- }
- }
- return n;
- }
- function quadraticExtremum(p0, p1, p2) {
- var divider = p0 + p2 - 2 * p1;
- if (divider === 0) {
- return 0.5;
- } else {
- return (p0 - p1) / divider;
- }
- }
- function quadraticSubdivide(p0, p1, p2, t, out) {
- var p01 = (p1 - p0) * t + p0;
- var p12 = (p2 - p1) * t + p1;
- var p012 = (p12 - p01) * t + p01;
- out[0] = p0;
- out[1] = p01;
- out[2] = p012;
- out[3] = p012;
- out[4] = p12;
- out[5] = p2;
- }
- function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {
- var t;
- var interval = 5e-3;
- var d = Infinity;
- _v0[0] = x;
- _v0[1] = y;
- for (var _t = 0; _t < 1; _t += 0.05) {
- _v1[0] = quadraticAt(x0, x1, x2, _t);
- _v1[1] = quadraticAt(y0, y1, y2, _t);
- var d1 = distSquare(_v0, _v1);
- if (d1 < d) {
- t = _t;
- d = d1;
- }
- }
- d = Infinity;
- for (var i = 0; i < 32; i++) {
- if (interval < EPSILON_NUMERIC) {
- break;
- }
- var prev = t - interval;
- var next = t + interval;
- _v1[0] = quadraticAt(x0, x1, x2, prev);
- _v1[1] = quadraticAt(y0, y1, y2, prev);
- var d1 = distSquare(_v1, _v0);
- if (prev >= 0 && d1 < d) {
- t = prev;
- d = d1;
- } else {
- _v2[0] = quadraticAt(x0, x1, x2, next);
- _v2[1] = quadraticAt(y0, y1, y2, next);
- var d2 = distSquare(_v2, _v0);
- if (next <= 1 && d2 < d) {
- t = next;
- d = d2;
- } else {
- interval *= 0.5;
- }
- }
- }
- if (out) {
- out[0] = quadraticAt(x0, x1, x2, t);
- out[1] = quadraticAt(y0, y1, y2, t);
- }
- return mathSqrt(d);
- }
- function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {
- var px = x0;
- var py = y0;
- var d = 0;
- var step = 1 / iteration;
- for (var i = 1; i <= iteration; i++) {
- var t = i * step;
- var x = quadraticAt(x0, x1, x2, t);
- var y = quadraticAt(y0, y1, y2, t);
- var dx = x - px;
- var dy = y - py;
- d += Math.sqrt(dx * dx + dy * dy);
- px = x;
- py = y;
- }
- return d;
- }
- // node_modules/zrender/lib/animation/cubicEasing.js
- var regexp = /cubic-bezier\(([0-9,\.e ]+)\)/;
- function createCubicEasingFunc(cubicEasingStr) {
- var cubic = cubicEasingStr && regexp.exec(cubicEasingStr);
- if (cubic) {
- var points = cubic[1].split(",");
- var a_1 = +trim(points[0]);
- var b_1 = +trim(points[1]);
- var c_1 = +trim(points[2]);
- var d_1 = +trim(points[3]);
- if (isNaN(a_1 + b_1 + c_1 + d_1)) {
- return;
- }
- var roots_1 = [];
- return function(p) {
- return p <= 0 ? 0 : p >= 1 ? 1 : cubicRootAt(0, a_1, c_1, 1, p, roots_1) && cubicAt(0, b_1, d_1, 1, roots_1[0]);
- };
- }
- }
- // node_modules/zrender/lib/animation/Clip.js
- var Clip = function() {
- function Clip2(opts) {
- this._inited = false;
- this._startTime = 0;
- this._pausedTime = 0;
- this._paused = false;
- this._life = opts.life || 1e3;
- this._delay = opts.delay || 0;
- this.loop = opts.loop || false;
- this.onframe = opts.onframe || noop;
- this.ondestroy = opts.ondestroy || noop;
- this.onrestart = opts.onrestart || noop;
- opts.easing && this.setEasing(opts.easing);
- }
- Clip2.prototype.step = function(globalTime, deltaTime) {
- if (!this._inited) {
- this._startTime = globalTime + this._delay;
- this._inited = true;
- }
- if (this._paused) {
- this._pausedTime += deltaTime;
- return;
- }
- var life = this._life;
- var elapsedTime = globalTime - this._startTime - this._pausedTime;
- var percent = elapsedTime / life;
- if (percent < 0) {
- percent = 0;
- }
- percent = Math.min(percent, 1);
- var easingFunc = this.easingFunc;
- var schedule = easingFunc ? easingFunc(percent) : percent;
- this.onframe(schedule);
- if (percent === 1) {
- if (this.loop) {
- var remainder = elapsedTime % life;
- this._startTime = globalTime - remainder;
- this._pausedTime = 0;
- this.onrestart();
- } else {
- return true;
- }
- }
- return false;
- };
- Clip2.prototype.pause = function() {
- this._paused = true;
- };
- Clip2.prototype.resume = function() {
- this._paused = false;
- };
- Clip2.prototype.setEasing = function(easing) {
- this.easing = easing;
- this.easingFunc = isFunction(easing) ? easing : easing_default[easing] || createCubicEasingFunc(easing);
- };
- return Clip2;
- }();
- var Clip_default = Clip;
- // node_modules/zrender/lib/svg/helper.js
- init_define_APP_INFO();
- var mathRound = Math.round;
- function normalizeColor(color) {
- var opacity;
- if (!color || color === "transparent") {
- color = "none";
- } else if (typeof color === "string" && color.indexOf("rgba") > -1) {
- var arr = parse(color);
- if (arr) {
- color = "rgb(" + arr[0] + "," + arr[1] + "," + arr[2] + ")";
- opacity = arr[3];
- }
- }
- return {
- color,
- opacity: opacity == null ? 1 : opacity
- };
- }
- var EPSILON3 = 1e-4;
- function isAroundZero2(transform) {
- return transform < EPSILON3 && transform > -EPSILON3;
- }
- function round3(transform) {
- return mathRound(transform * 1e3) / 1e3;
- }
- function round4(transform) {
- return mathRound(transform * 1e4) / 1e4;
- }
- function getMatrixStr(m) {
- return "matrix(" + round3(m[0]) + "," + round3(m[1]) + "," + round3(m[2]) + "," + round3(m[3]) + "," + round4(m[4]) + "," + round4(m[5]) + ")";
- }
- var TEXT_ALIGN_TO_ANCHOR = {
- left: "start",
- right: "end",
- center: "middle",
- middle: "middle"
- };
- function adjustTextY(y, lineHeight, textBaseline) {
- if (textBaseline === "top") {
- y += lineHeight / 2;
- } else if (textBaseline === "bottom") {
- y -= lineHeight / 2;
- }
- return y;
- }
- function hasShadow(style) {
- return style && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);
- }
- function getShadowKey(displayable) {
- var style = displayable.style;
- var globalScale = displayable.getGlobalScale();
- return [
- style.shadowColor,
- (style.shadowBlur || 0).toFixed(2),
- (style.shadowOffsetX || 0).toFixed(2),
- (style.shadowOffsetY || 0).toFixed(2),
- globalScale[0],
- globalScale[1]
- ].join(",");
- }
- function isImagePattern(val) {
- return val && !!val.image;
- }
- function isSVGPattern(val) {
- return val && !!val.svgElement;
- }
- function isPattern(val) {
- return isImagePattern(val) || isSVGPattern(val);
- }
- function isLinearGradient(val) {
- return val.type === "linear";
- }
- function isRadialGradient(val) {
- return val.type === "radial";
- }
- function isGradient(val) {
- return val && (val.type === "linear" || val.type === "radial");
- }
- function getIdURL(id) {
- return "url(#" + id + ")";
- }
- function getPathPrecision(el) {
- var scale3 = el.getGlobalScale();
- var size = Math.max(scale3[0], scale3[1]);
- return Math.max(Math.ceil(Math.log(size) / Math.log(10)), 1);
- }
- function getSRTTransformString(transform) {
- var x = transform.x || 0;
- var y = transform.y || 0;
- var rotation = (transform.rotation || 0) * RADIAN_TO_DEGREE;
- var scaleX = retrieve2(transform.scaleX, 1);
- var scaleY = retrieve2(transform.scaleY, 1);
- var skewX = transform.skewX || 0;
- var skewY = transform.skewY || 0;
- var res = [];
- if (x || y) {
- res.push("translate(" + x + "px," + y + "px)");
- }
- if (rotation) {
- res.push("rotate(" + rotation + ")");
- }
- if (scaleX !== 1 || scaleY !== 1) {
- res.push("scale(" + scaleX + "," + scaleY + ")");
- }
- if (skewX || skewY) {
- res.push("skew(" + mathRound(skewX * RADIAN_TO_DEGREE) + "deg, " + mathRound(skewY * RADIAN_TO_DEGREE) + "deg)");
- }
- return res.join(" ");
- }
- var encodeBase64 = function() {
- if (env_default.hasGlobalWindow && isFunction(window.btoa)) {
- return function(str) {
- return window.btoa(unescape(str));
- };
- }
- if (typeof Buffer !== "undefined") {
- return function(str) {
- return Buffer.from(str).toString("base64");
- };
- }
- return function(str) {
- if (true) {
- logError("Base64 isn't natively supported in the current environment.");
- }
- return null;
- };
- }();
- // node_modules/zrender/lib/animation/Animator.js
- var arraySlice = Array.prototype.slice;
- function interpolateNumber(p0, p1, percent) {
- return (p1 - p0) * percent + p0;
- }
- function interpolate1DArray(out, p0, p1, percent) {
- var len2 = p0.length;
- for (var i = 0; i < len2; i++) {
- out[i] = interpolateNumber(p0[i], p1[i], percent);
- }
- return out;
- }
- function interpolate2DArray(out, p0, p1, percent) {
- var len2 = p0.length;
- var len22 = len2 && p0[0].length;
- for (var i = 0; i < len2; i++) {
- if (!out[i]) {
- out[i] = [];
- }
- for (var j = 0; j < len22; j++) {
- out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);
- }
- }
- return out;
- }
- function add1DArray(out, p0, p1, sign) {
- var len2 = p0.length;
- for (var i = 0; i < len2; i++) {
- out[i] = p0[i] + p1[i] * sign;
- }
- return out;
- }
- function add2DArray(out, p0, p1, sign) {
- var len2 = p0.length;
- var len22 = len2 && p0[0].length;
- for (var i = 0; i < len2; i++) {
- if (!out[i]) {
- out[i] = [];
- }
- for (var j = 0; j < len22; j++) {
- out[i][j] = p0[i][j] + p1[i][j] * sign;
- }
- }
- return out;
- }
- function fillColorStops(val0, val1) {
- var len0 = val0.length;
- var len1 = val1.length;
- var shorterArr = len0 > len1 ? val1 : val0;
- var shorterLen = Math.min(len0, len1);
- var last = shorterArr[shorterLen - 1] || { color: [0, 0, 0, 0], offset: 0 };
- for (var i = shorterLen; i < Math.max(len0, len1); i++) {
- shorterArr.push({
- offset: last.offset,
- color: last.color.slice()
- });
- }
- }
- function fillArray(val0, val1, arrDim) {
- var arr0 = val0;
- var arr1 = val1;
- if (!arr0.push || !arr1.push) {
- return;
- }
- var arr0Len = arr0.length;
- var arr1Len = arr1.length;
- if (arr0Len !== arr1Len) {
- var isPreviousLarger = arr0Len > arr1Len;
- if (isPreviousLarger) {
- arr0.length = arr1Len;
- } else {
- for (var i = arr0Len; i < arr1Len; i++) {
- arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));
- }
- }
- }
- var len2 = arr0[0] && arr0[0].length;
- for (var i = 0; i < arr0.length; i++) {
- if (arrDim === 1) {
- if (isNaN(arr0[i])) {
- arr0[i] = arr1[i];
- }
- } else {
- for (var j = 0; j < len2; j++) {
- if (isNaN(arr0[i][j])) {
- arr0[i][j] = arr1[i][j];
- }
- }
- }
- }
- }
- function cloneValue(value) {
- if (isArrayLike(value)) {
- var len2 = value.length;
- if (isArrayLike(value[0])) {
- var ret = [];
- for (var i = 0; i < len2; i++) {
- ret.push(arraySlice.call(value[i]));
- }
- return ret;
- }
- return arraySlice.call(value);
- }
- return value;
- }
- function rgba2String(rgba) {
- rgba[0] = Math.floor(rgba[0]) || 0;
- rgba[1] = Math.floor(rgba[1]) || 0;
- rgba[2] = Math.floor(rgba[2]) || 0;
- rgba[3] = rgba[3] == null ? 1 : rgba[3];
- return "rgba(" + rgba.join(",") + ")";
- }
- function guessArrayDim(value) {
- return isArrayLike(value && value[0]) ? 2 : 1;
- }
- var VALUE_TYPE_NUMBER = 0;
- var VALUE_TYPE_1D_ARRAY = 1;
- var VALUE_TYPE_2D_ARRAY = 2;
- var VALUE_TYPE_COLOR = 3;
- var VALUE_TYPE_LINEAR_GRADIENT = 4;
- var VALUE_TYPE_RADIAL_GRADIENT = 5;
- var VALUE_TYPE_UNKOWN = 6;
- function isGradientValueType(valType) {
- return valType === VALUE_TYPE_LINEAR_GRADIENT || valType === VALUE_TYPE_RADIAL_GRADIENT;
- }
- function isArrayValueType(valType) {
- return valType === VALUE_TYPE_1D_ARRAY || valType === VALUE_TYPE_2D_ARRAY;
- }
- var tmpRgba = [0, 0, 0, 0];
- var Track = function() {
- function Track2(propName) {
- this.keyframes = [];
- this.discrete = false;
- this._invalid = false;
- this._needsSort = false;
- this._lastFr = 0;
- this._lastFrP = 0;
- this.propName = propName;
- }
- Track2.prototype.isFinished = function() {
- return this._finished;
- };
- Track2.prototype.setFinished = function() {
- this._finished = true;
- if (this._additiveTrack) {
- this._additiveTrack.setFinished();
- }
- };
- Track2.prototype.needsAnimate = function() {
- return this.keyframes.length >= 1;
- };
- Track2.prototype.getAdditiveTrack = function() {
- return this._additiveTrack;
- };
- Track2.prototype.addKeyframe = function(time, rawValue, easing) {
- this._needsSort = true;
- var keyframes = this.keyframes;
- var len2 = keyframes.length;
- var discrete = false;
- var valType = VALUE_TYPE_UNKOWN;
- var value = rawValue;
- if (isArrayLike(rawValue)) {
- var arrayDim = guessArrayDim(rawValue);
- valType = arrayDim;
- if (arrayDim === 1 && !isNumber(rawValue[0]) || arrayDim === 2 && !isNumber(rawValue[0][0])) {
- discrete = true;
- }
- } else {
- if (isNumber(rawValue) && !eqNaN(rawValue)) {
- valType = VALUE_TYPE_NUMBER;
- } else if (isString(rawValue)) {
- if (!isNaN(+rawValue)) {
- valType = VALUE_TYPE_NUMBER;
- } else {
- var colorArray = parse(rawValue);
- if (colorArray) {
- value = colorArray;
- valType = VALUE_TYPE_COLOR;
- }
- }
- } else if (isGradientObject(rawValue)) {
- var parsedGradient = extend({}, value);
- parsedGradient.colorStops = map(rawValue.colorStops, function(colorStop) {
- return {
- offset: colorStop.offset,
- color: parse(colorStop.color)
- };
- });
- if (isLinearGradient(rawValue)) {
- valType = VALUE_TYPE_LINEAR_GRADIENT;
- } else if (isRadialGradient(rawValue)) {
- valType = VALUE_TYPE_RADIAL_GRADIENT;
- }
- value = parsedGradient;
- }
- }
- if (len2 === 0) {
- this.valType = valType;
- } else if (valType !== this.valType || valType === VALUE_TYPE_UNKOWN) {
- discrete = true;
- }
- this.discrete = this.discrete || discrete;
- var kf = {
- time,
- value,
- rawValue,
- percent: 0
- };
- if (easing) {
- kf.easing = easing;
- kf.easingFunc = isFunction(easing) ? easing : easing_default[easing] || createCubicEasingFunc(easing);
- }
- keyframes.push(kf);
- return kf;
- };
- Track2.prototype.prepare = function(maxTime, additiveTrack) {
- var kfs = this.keyframes;
- if (this._needsSort) {
- kfs.sort(function(a, b) {
- return a.time - b.time;
- });
- }
- var valType = this.valType;
- var kfsLen = kfs.length;
- var lastKf = kfs[kfsLen - 1];
- var isDiscrete = this.discrete;
- var isArr = isArrayValueType(valType);
- var isGradient2 = isGradientValueType(valType);
- for (var i = 0; i < kfsLen; i++) {
- var kf = kfs[i];
- var value = kf.value;
- var lastValue = lastKf.value;
- kf.percent = kf.time / maxTime;
- if (!isDiscrete) {
- if (isArr && i !== kfsLen - 1) {
- fillArray(value, lastValue, valType);
- } else if (isGradient2) {
- fillColorStops(value.colorStops, lastValue.colorStops);
- }
- }
- }
- if (!isDiscrete && valType !== VALUE_TYPE_RADIAL_GRADIENT && additiveTrack && this.needsAnimate() && additiveTrack.needsAnimate() && valType === additiveTrack.valType && !additiveTrack._finished) {
- this._additiveTrack = additiveTrack;
- var startValue = kfs[0].value;
- for (var i = 0; i < kfsLen; i++) {
- if (valType === VALUE_TYPE_NUMBER) {
- kfs[i].additiveValue = kfs[i].value - startValue;
- } else if (valType === VALUE_TYPE_COLOR) {
- kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);
- } else if (isArrayValueType(valType)) {
- kfs[i].additiveValue = valType === VALUE_TYPE_1D_ARRAY ? add1DArray([], kfs[i].value, startValue, -1) : add2DArray([], kfs[i].value, startValue, -1);
- }
- }
- }
- };
- Track2.prototype.step = function(target, percent) {
- if (this._finished) {
- return;
- }
- if (this._additiveTrack && this._additiveTrack._finished) {
- this._additiveTrack = null;
- }
- var isAdditive = this._additiveTrack != null;
- var valueKey = isAdditive ? "additiveValue" : "value";
- var valType = this.valType;
- var keyframes = this.keyframes;
- var kfsNum = keyframes.length;
- var propName = this.propName;
- var isValueColor = valType === VALUE_TYPE_COLOR;
- var frameIdx;
- var lastFrame = this._lastFr;
- var mathMin4 = Math.min;
- var frame;
- var nextFrame;
- if (kfsNum === 1) {
- frame = nextFrame = keyframes[0];
- } else {
- if (percent < 0) {
- frameIdx = 0;
- } else if (percent < this._lastFrP) {
- var start2 = mathMin4(lastFrame + 1, kfsNum - 1);
- for (frameIdx = start2; frameIdx >= 0; frameIdx--) {
- if (keyframes[frameIdx].percent <= percent) {
- break;
- }
- }
- frameIdx = mathMin4(frameIdx, kfsNum - 2);
- } else {
- for (frameIdx = lastFrame; frameIdx < kfsNum; frameIdx++) {
- if (keyframes[frameIdx].percent > percent) {
- break;
- }
- }
- frameIdx = mathMin4(frameIdx - 1, kfsNum - 2);
- }
- nextFrame = keyframes[frameIdx + 1];
- frame = keyframes[frameIdx];
- }
- if (!(frame && nextFrame)) {
- return;
- }
- this._lastFr = frameIdx;
- this._lastFrP = percent;
- var interval = nextFrame.percent - frame.percent;
- var w = interval === 0 ? 1 : mathMin4((percent - frame.percent) / interval, 1);
- if (nextFrame.easingFunc) {
- w = nextFrame.easingFunc(w);
- }
- var targetArr = isAdditive ? this._additiveValue : isValueColor ? tmpRgba : target[propName];
- if ((isArrayValueType(valType) || isValueColor) && !targetArr) {
- targetArr = this._additiveValue = [];
- }
- if (this.discrete) {
- target[propName] = w < 1 ? frame.rawValue : nextFrame.rawValue;
- } else if (isArrayValueType(valType)) {
- valType === VALUE_TYPE_1D_ARRAY ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w) : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);
- } else if (isGradientValueType(valType)) {
- var val = frame[valueKey];
- var nextVal_1 = nextFrame[valueKey];
- var isLinearGradient_1 = valType === VALUE_TYPE_LINEAR_GRADIENT;
- target[propName] = {
- type: isLinearGradient_1 ? "linear" : "radial",
- x: interpolateNumber(val.x, nextVal_1.x, w),
- y: interpolateNumber(val.y, nextVal_1.y, w),
- colorStops: map(val.colorStops, function(colorStop, idx) {
- var nextColorStop = nextVal_1.colorStops[idx];
- return {
- offset: interpolateNumber(colorStop.offset, nextColorStop.offset, w),
- color: rgba2String(interpolate1DArray([], colorStop.color, nextColorStop.color, w))
- };
- }),
- global: nextVal_1.global
- };
- if (isLinearGradient_1) {
- target[propName].x2 = interpolateNumber(val.x2, nextVal_1.x2, w);
- target[propName].y2 = interpolateNumber(val.y2, nextVal_1.y2, w);
- } else {
- target[propName].r = interpolateNumber(val.r, nextVal_1.r, w);
- }
- } else if (isValueColor) {
- interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);
- if (!isAdditive) {
- target[propName] = rgba2String(targetArr);
- }
- } else {
- var value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);
- if (isAdditive) {
- this._additiveValue = value;
- } else {
- target[propName] = value;
- }
- }
- if (isAdditive) {
- this._addToTarget(target);
- }
- };
- Track2.prototype._addToTarget = function(target) {
- var valType = this.valType;
- var propName = this.propName;
- var additiveValue = this._additiveValue;
- if (valType === VALUE_TYPE_NUMBER) {
- target[propName] = target[propName] + additiveValue;
- } else if (valType === VALUE_TYPE_COLOR) {
- parse(target[propName], tmpRgba);
- add1DArray(tmpRgba, tmpRgba, additiveValue, 1);
- target[propName] = rgba2String(tmpRgba);
- } else if (valType === VALUE_TYPE_1D_ARRAY) {
- add1DArray(target[propName], target[propName], additiveValue, 1);
- } else if (valType === VALUE_TYPE_2D_ARRAY) {
- add2DArray(target[propName], target[propName], additiveValue, 1);
- }
- };
- return Track2;
- }();
- var Animator = function() {
- function Animator2(target, loop, allowDiscreteAnimation, additiveTo) {
- this._tracks = {};
- this._trackKeys = [];
- this._maxTime = 0;
- this._started = 0;
- this._clip = null;
- this._target = target;
- this._loop = loop;
- if (loop && additiveTo) {
- logError("Can' use additive animation on looped animation.");
- return;
- }
- this._additiveAnimators = additiveTo;
- this._allowDiscrete = allowDiscreteAnimation;
- }
- Animator2.prototype.getMaxTime = function() {
- return this._maxTime;
- };
- Animator2.prototype.getDelay = function() {
- return this._delay;
- };
- Animator2.prototype.getLoop = function() {
- return this._loop;
- };
- Animator2.prototype.getTarget = function() {
- return this._target;
- };
- Animator2.prototype.changeTarget = function(target) {
- this._target = target;
- };
- Animator2.prototype.when = function(time, props, easing) {
- return this.whenWithKeys(time, props, keys(props), easing);
- };
- Animator2.prototype.whenWithKeys = function(time, props, propNames, easing) {
- var tracks = this._tracks;
- for (var i = 0; i < propNames.length; i++) {
- var propName = propNames[i];
- var track = tracks[propName];
- if (!track) {
- track = tracks[propName] = new Track(propName);
- var initialValue = void 0;
- var additiveTrack = this._getAdditiveTrack(propName);
- if (additiveTrack) {
- var addtiveTrackKfs = additiveTrack.keyframes;
- var lastFinalKf = addtiveTrackKfs[addtiveTrackKfs.length - 1];
- initialValue = lastFinalKf && lastFinalKf.value;
- if (additiveTrack.valType === VALUE_TYPE_COLOR && initialValue) {
- initialValue = rgba2String(initialValue);
- }
- } else {
- initialValue = this._target[propName];
- }
- if (initialValue == null) {
- continue;
- }
- if (time > 0) {
- track.addKeyframe(0, cloneValue(initialValue), easing);
- }
- this._trackKeys.push(propName);
- }
- track.addKeyframe(time, cloneValue(props[propName]), easing);
- }
- this._maxTime = Math.max(this._maxTime, time);
- return this;
- };
- Animator2.prototype.pause = function() {
- this._clip.pause();
- this._paused = true;
- };
- Animator2.prototype.resume = function() {
- this._clip.resume();
- this._paused = false;
- };
- Animator2.prototype.isPaused = function() {
- return !!this._paused;
- };
- Animator2.prototype.duration = function(duration) {
- this._maxTime = duration;
- this._force = true;
- return this;
- };
- Animator2.prototype._doneCallback = function() {
- this._setTracksFinished();
- this._clip = null;
- var doneList = this._doneCbs;
- if (doneList) {
- var len2 = doneList.length;
- for (var i = 0; i < len2; i++) {
- doneList[i].call(this);
- }
- }
- };
- Animator2.prototype._abortedCallback = function() {
- this._setTracksFinished();
- var animation = this.animation;
- var abortedList = this._abortedCbs;
- if (animation) {
- animation.removeClip(this._clip);
- }
- this._clip = null;
- if (abortedList) {
- for (var i = 0; i < abortedList.length; i++) {
- abortedList[i].call(this);
- }
- }
- };
- Animator2.prototype._setTracksFinished = function() {
- var tracks = this._tracks;
- var tracksKeys = this._trackKeys;
- for (var i = 0; i < tracksKeys.length; i++) {
- tracks[tracksKeys[i]].setFinished();
- }
- };
- Animator2.prototype._getAdditiveTrack = function(trackName) {
- var additiveTrack;
- var additiveAnimators = this._additiveAnimators;
- if (additiveAnimators) {
- for (var i = 0; i < additiveAnimators.length; i++) {
- var track = additiveAnimators[i].getTrack(trackName);
- if (track) {
- additiveTrack = track;
- }
- }
- }
- return additiveTrack;
- };
- Animator2.prototype.start = function(easing) {
- if (this._started > 0) {
- return;
- }
- this._started = 1;
- var self2 = this;
- var tracks = [];
- var maxTime = this._maxTime || 0;
- for (var i = 0; i < this._trackKeys.length; i++) {
- var propName = this._trackKeys[i];
- var track = this._tracks[propName];
- var additiveTrack = this._getAdditiveTrack(propName);
- var kfs = track.keyframes;
- var kfsNum = kfs.length;
- track.prepare(maxTime, additiveTrack);
- if (track.needsAnimate()) {
- if (!this._allowDiscrete && track.discrete) {
- var lastKf = kfs[kfsNum - 1];
- if (lastKf) {
- self2._target[track.propName] = lastKf.rawValue;
- }
- track.setFinished();
- } else {
- tracks.push(track);
- }
- }
- }
- if (tracks.length || this._force) {
- var clip = new Clip_default({
- life: maxTime,
- loop: this._loop,
- delay: this._delay || 0,
- onframe: function(percent) {
- self2._started = 2;
- var additiveAnimators = self2._additiveAnimators;
- if (additiveAnimators) {
- var stillHasAdditiveAnimator = false;
- for (var i2 = 0; i2 < additiveAnimators.length; i2++) {
- if (additiveAnimators[i2]._clip) {
- stillHasAdditiveAnimator = true;
- break;
- }
- }
- if (!stillHasAdditiveAnimator) {
- self2._additiveAnimators = null;
- }
- }
- for (var i2 = 0; i2 < tracks.length; i2++) {
- tracks[i2].step(self2._target, percent);
- }
- var onframeList = self2._onframeCbs;
- if (onframeList) {
- for (var i2 = 0; i2 < onframeList.length; i2++) {
- onframeList[i2](self2._target, percent);
- }
- }
- },
- ondestroy: function() {
- self2._doneCallback();
- }
- });
- this._clip = clip;
- if (this.animation) {
- this.animation.addClip(clip);
- }
- if (easing) {
- clip.setEasing(easing);
- }
- } else {
- this._doneCallback();
- }
- return this;
- };
- Animator2.prototype.stop = function(forwardToLast) {
- if (!this._clip) {
- return;
- }
- var clip = this._clip;
- if (forwardToLast) {
- clip.onframe(1);
- }
- this._abortedCallback();
- };
- Animator2.prototype.delay = function(time) {
- this._delay = time;
- return this;
- };
- Animator2.prototype.during = function(cb) {
- if (cb) {
- if (!this._onframeCbs) {
- this._onframeCbs = [];
- }
- this._onframeCbs.push(cb);
- }
- return this;
- };
- Animator2.prototype.done = function(cb) {
- if (cb) {
- if (!this._doneCbs) {
- this._doneCbs = [];
- }
- this._doneCbs.push(cb);
- }
- return this;
- };
- Animator2.prototype.aborted = function(cb) {
- if (cb) {
- if (!this._abortedCbs) {
- this._abortedCbs = [];
- }
- this._abortedCbs.push(cb);
- }
- return this;
- };
- Animator2.prototype.getClip = function() {
- return this._clip;
- };
- Animator2.prototype.getTrack = function(propName) {
- return this._tracks[propName];
- };
- Animator2.prototype.getTracks = function() {
- var _this = this;
- return map(this._trackKeys, function(key) {
- return _this._tracks[key];
- });
- };
- Animator2.prototype.stopTracks = function(propNames, forwardToLast) {
- if (!propNames.length || !this._clip) {
- return true;
- }
- var tracks = this._tracks;
- var tracksKeys = this._trackKeys;
- for (var i = 0; i < propNames.length; i++) {
- var track = tracks[propNames[i]];
- if (track && !track.isFinished()) {
- if (forwardToLast) {
- track.step(this._target, 1);
- } else if (this._started === 1) {
- track.step(this._target, 0);
- }
- track.setFinished();
- }
- }
- var allAborted = true;
- for (var i = 0; i < tracksKeys.length; i++) {
- if (!tracks[tracksKeys[i]].isFinished()) {
- allAborted = false;
- break;
- }
- }
- if (allAborted) {
- this._abortedCallback();
- }
- return allAborted;
- };
- Animator2.prototype.saveTo = function(target, trackKeys, firstOrLast) {
- if (!target) {
- return;
- }
- trackKeys = trackKeys || this._trackKeys;
- for (var i = 0; i < trackKeys.length; i++) {
- var propName = trackKeys[i];
- var track = this._tracks[propName];
- if (!track || track.isFinished()) {
- continue;
- }
- var kfs = track.keyframes;
- var kf = kfs[firstOrLast ? 0 : kfs.length - 1];
- if (kf) {
- target[propName] = cloneValue(kf.rawValue);
- }
- }
- };
- Animator2.prototype.__changeFinalValue = function(finalProps, trackKeys) {
- trackKeys = trackKeys || keys(finalProps);
- for (var i = 0; i < trackKeys.length; i++) {
- var propName = trackKeys[i];
- var track = this._tracks[propName];
- if (!track) {
- continue;
- }
- var kfs = track.keyframes;
- if (kfs.length > 1) {
- var lastKf = kfs.pop();
- track.addKeyframe(lastKf.time, finalProps[propName]);
- track.prepare(this._maxTime, track.getAdditiveTrack());
- }
- }
- };
- return Animator2;
- }();
- var Animator_default = Animator;
- // node_modules/zrender/lib/core/BoundingRect.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/core/Point.js
- init_define_APP_INFO();
- var Point = function() {
- function Point2(x, y) {
- this.x = x || 0;
- this.y = y || 0;
- }
- Point2.prototype.copy = function(other) {
- this.x = other.x;
- this.y = other.y;
- return this;
- };
- Point2.prototype.clone = function() {
- return new Point2(this.x, this.y);
- };
- Point2.prototype.set = function(x, y) {
- this.x = x;
- this.y = y;
- return this;
- };
- Point2.prototype.equal = function(other) {
- return other.x === this.x && other.y === this.y;
- };
- Point2.prototype.add = function(other) {
- this.x += other.x;
- this.y += other.y;
- return this;
- };
- Point2.prototype.scale = function(scalar) {
- this.x *= scalar;
- this.y *= scalar;
- };
- Point2.prototype.scaleAndAdd = function(other, scalar) {
- this.x += other.x * scalar;
- this.y += other.y * scalar;
- };
- Point2.prototype.sub = function(other) {
- this.x -= other.x;
- this.y -= other.y;
- return this;
- };
- Point2.prototype.dot = function(other) {
- return this.x * other.x + this.y * other.y;
- };
- Point2.prototype.len = function() {
- return Math.sqrt(this.x * this.x + this.y * this.y);
- };
- Point2.prototype.lenSquare = function() {
- return this.x * this.x + this.y * this.y;
- };
- Point2.prototype.normalize = function() {
- var len2 = this.len();
- this.x /= len2;
- this.y /= len2;
- return this;
- };
- Point2.prototype.distance = function(other) {
- var dx = this.x - other.x;
- var dy = this.y - other.y;
- return Math.sqrt(dx * dx + dy * dy);
- };
- Point2.prototype.distanceSquare = function(other) {
- var dx = this.x - other.x;
- var dy = this.y - other.y;
- return dx * dx + dy * dy;
- };
- Point2.prototype.negate = function() {
- this.x = -this.x;
- this.y = -this.y;
- return this;
- };
- Point2.prototype.transform = function(m) {
- if (!m) {
- return;
- }
- var x = this.x;
- var y = this.y;
- this.x = m[0] * x + m[2] * y + m[4];
- this.y = m[1] * x + m[3] * y + m[5];
- return this;
- };
- Point2.prototype.toArray = function(out) {
- out[0] = this.x;
- out[1] = this.y;
- return out;
- };
- Point2.prototype.fromArray = function(input) {
- this.x = input[0];
- this.y = input[1];
- };
- Point2.set = function(p, x, y) {
- p.x = x;
- p.y = y;
- };
- Point2.copy = function(p, p2) {
- p.x = p2.x;
- p.y = p2.y;
- };
- Point2.len = function(p) {
- return Math.sqrt(p.x * p.x + p.y * p.y);
- };
- Point2.lenSquare = function(p) {
- return p.x * p.x + p.y * p.y;
- };
- Point2.dot = function(p0, p1) {
- return p0.x * p1.x + p0.y * p1.y;
- };
- Point2.add = function(out, p0, p1) {
- out.x = p0.x + p1.x;
- out.y = p0.y + p1.y;
- };
- Point2.sub = function(out, p0, p1) {
- out.x = p0.x - p1.x;
- out.y = p0.y - p1.y;
- };
- Point2.scale = function(out, p0, scalar) {
- out.x = p0.x * scalar;
- out.y = p0.y * scalar;
- };
- Point2.scaleAndAdd = function(out, p0, p1, scalar) {
- out.x = p0.x + p1.x * scalar;
- out.y = p0.y + p1.y * scalar;
- };
- Point2.lerp = function(out, p0, p1, t) {
- var onet = 1 - t;
- out.x = onet * p0.x + t * p1.x;
- out.y = onet * p0.y + t * p1.y;
- };
- return Point2;
- }();
- var Point_default = Point;
- // node_modules/zrender/lib/core/BoundingRect.js
- var mathMin = Math.min;
- var mathMax = Math.max;
- var lt = new Point_default();
- var rb = new Point_default();
- var lb = new Point_default();
- var rt = new Point_default();
- var minTv = new Point_default();
- var maxTv = new Point_default();
- var BoundingRect = function() {
- function BoundingRect2(x, y, width, height) {
- if (width < 0) {
- x = x + width;
- width = -width;
- }
- if (height < 0) {
- y = y + height;
- height = -height;
- }
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- }
- BoundingRect2.prototype.union = function(other) {
- var x = mathMin(other.x, this.x);
- var y = mathMin(other.y, this.y);
- if (isFinite(this.x) && isFinite(this.width)) {
- this.width = mathMax(other.x + other.width, this.x + this.width) - x;
- } else {
- this.width = other.width;
- }
- if (isFinite(this.y) && isFinite(this.height)) {
- this.height = mathMax(other.y + other.height, this.y + this.height) - y;
- } else {
- this.height = other.height;
- }
- this.x = x;
- this.y = y;
- };
- BoundingRect2.prototype.applyTransform = function(m) {
- BoundingRect2.applyTransform(this, this, m);
- };
- BoundingRect2.prototype.calculateTransform = function(b) {
- var a = this;
- var sx = b.width / a.width;
- var sy = b.height / a.height;
- var m = create();
- translate(m, m, [-a.x, -a.y]);
- scale(m, m, [sx, sy]);
- translate(m, m, [b.x, b.y]);
- return m;
- };
- BoundingRect2.prototype.intersect = function(b, mtv) {
- if (!b) {
- return false;
- }
- if (!(b instanceof BoundingRect2)) {
- b = BoundingRect2.create(b);
- }
- var a = this;
- var ax0 = a.x;
- var ax1 = a.x + a.width;
- var ay0 = a.y;
- var ay1 = a.y + a.height;
- var bx0 = b.x;
- var bx1 = b.x + b.width;
- var by0 = b.y;
- var by1 = b.y + b.height;
- var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);
- if (mtv) {
- var dMin = Infinity;
- var dMax = 0;
- var d0 = Math.abs(ax1 - bx0);
- var d1 = Math.abs(bx1 - ax0);
- var d2 = Math.abs(ay1 - by0);
- var d3 = Math.abs(by1 - ay0);
- var dx = Math.min(d0, d1);
- var dy = Math.min(d2, d3);
- if (ax1 < bx0 || bx1 < ax0) {
- if (dx > dMax) {
- dMax = dx;
- if (d0 < d1) {
- Point_default.set(maxTv, -d0, 0);
- } else {
- Point_default.set(maxTv, d1, 0);
- }
- }
- } else {
- if (dx < dMin) {
- dMin = dx;
- if (d0 < d1) {
- Point_default.set(minTv, d0, 0);
- } else {
- Point_default.set(minTv, -d1, 0);
- }
- }
- }
- if (ay1 < by0 || by1 < ay0) {
- if (dy > dMax) {
- dMax = dy;
- if (d2 < d3) {
- Point_default.set(maxTv, 0, -d2);
- } else {
- Point_default.set(maxTv, 0, d3);
- }
- }
- } else {
- if (dx < dMin) {
- dMin = dx;
- if (d2 < d3) {
- Point_default.set(minTv, 0, d2);
- } else {
- Point_default.set(minTv, 0, -d3);
- }
- }
- }
- }
- if (mtv) {
- Point_default.copy(mtv, overlap ? minTv : maxTv);
- }
- return overlap;
- };
- BoundingRect2.prototype.contain = function(x, y) {
- var rect = this;
- return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height;
- };
- BoundingRect2.prototype.clone = function() {
- return new BoundingRect2(this.x, this.y, this.width, this.height);
- };
- BoundingRect2.prototype.copy = function(other) {
- BoundingRect2.copy(this, other);
- };
- BoundingRect2.prototype.plain = function() {
- return {
- x: this.x,
- y: this.y,
- width: this.width,
- height: this.height
- };
- };
- BoundingRect2.prototype.isFinite = function() {
- return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height);
- };
- BoundingRect2.prototype.isZero = function() {
- return this.width === 0 || this.height === 0;
- };
- BoundingRect2.create = function(rect) {
- return new BoundingRect2(rect.x, rect.y, rect.width, rect.height);
- };
- BoundingRect2.copy = function(target, source) {
- target.x = source.x;
- target.y = source.y;
- target.width = source.width;
- target.height = source.height;
- };
- BoundingRect2.applyTransform = function(target, source, m) {
- if (!m) {
- if (target !== source) {
- BoundingRect2.copy(target, source);
- }
- return;
- }
- if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {
- var sx = m[0];
- var sy = m[3];
- var tx = m[4];
- var ty = m[5];
- target.x = source.x * sx + tx;
- target.y = source.y * sy + ty;
- target.width = source.width * sx;
- target.height = source.height * sy;
- if (target.width < 0) {
- target.x += target.width;
- target.width = -target.width;
- }
- if (target.height < 0) {
- target.y += target.height;
- target.height = -target.height;
- }
- return;
- }
- lt.x = lb.x = source.x;
- lt.y = rt.y = source.y;
- rb.x = rt.x = source.x + source.width;
- rb.y = lb.y = source.y + source.height;
- lt.transform(m);
- rt.transform(m);
- rb.transform(m);
- lb.transform(m);
- target.x = mathMin(lt.x, rb.x, lb.x, rt.x);
- target.y = mathMin(lt.y, rb.y, lb.y, rt.y);
- var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);
- var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);
- target.width = maxX - target.x;
- target.height = maxY - target.y;
- };
- return BoundingRect2;
- }();
- var BoundingRect_default = BoundingRect;
- // node_modules/zrender/lib/core/Eventful.js
- init_define_APP_INFO();
- var Eventful = function() {
- function Eventful2(eventProcessors) {
- if (eventProcessors) {
- this._$eventProcessor = eventProcessors;
- }
- }
- Eventful2.prototype.on = function(event, query, handler, context) {
- if (!this._$handlers) {
- this._$handlers = {};
- }
- var _h = this._$handlers;
- if (typeof query === "function") {
- context = handler;
- handler = query;
- query = null;
- }
- if (!handler || !event) {
- return this;
- }
- var eventProcessor = this._$eventProcessor;
- if (query != null && eventProcessor && eventProcessor.normalizeQuery) {
- query = eventProcessor.normalizeQuery(query);
- }
- if (!_h[event]) {
- _h[event] = [];
- }
- for (var i = 0; i < _h[event].length; i++) {
- if (_h[event][i].h === handler) {
- return this;
- }
- }
- var wrap = {
- h: handler,
- query,
- ctx: context || this,
- callAtLast: handler.zrEventfulCallAtLast
- };
- var lastIndex = _h[event].length - 1;
- var lastWrap = _h[event][lastIndex];
- lastWrap && lastWrap.callAtLast ? _h[event].splice(lastIndex, 0, wrap) : _h[event].push(wrap);
- return this;
- };
- Eventful2.prototype.isSilent = function(eventName) {
- var _h = this._$handlers;
- return !_h || !_h[eventName] || !_h[eventName].length;
- };
- Eventful2.prototype.off = function(eventType, handler) {
- var _h = this._$handlers;
- if (!_h) {
- return this;
- }
- if (!eventType) {
- this._$handlers = {};
- return this;
- }
- if (handler) {
- if (_h[eventType]) {
- var newList = [];
- for (var i = 0, l = _h[eventType].length; i < l; i++) {
- if (_h[eventType][i].h !== handler) {
- newList.push(_h[eventType][i]);
- }
- }
- _h[eventType] = newList;
- }
- if (_h[eventType] && _h[eventType].length === 0) {
- delete _h[eventType];
- }
- } else {
- delete _h[eventType];
- }
- return this;
- };
- Eventful2.prototype.trigger = function(eventType) {
- var args = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- args[_i - 1] = arguments[_i];
- }
- if (!this._$handlers) {
- return this;
- }
- var _h = this._$handlers[eventType];
- var eventProcessor = this._$eventProcessor;
- if (_h) {
- var argLen = args.length;
- var len2 = _h.length;
- for (var i = 0; i < len2; i++) {
- var hItem = _h[i];
- if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(eventType, hItem.query)) {
- continue;
- }
- switch (argLen) {
- case 0:
- hItem.h.call(hItem.ctx);
- break;
- case 1:
- hItem.h.call(hItem.ctx, args[0]);
- break;
- case 2:
- hItem.h.call(hItem.ctx, args[0], args[1]);
- break;
- default:
- hItem.h.apply(hItem.ctx, args);
- break;
- }
- }
- }
- eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(eventType);
- return this;
- };
- Eventful2.prototype.triggerWithContext = function(type) {
- var args = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- args[_i - 1] = arguments[_i];
- }
- if (!this._$handlers) {
- return this;
- }
- var _h = this._$handlers[type];
- var eventProcessor = this._$eventProcessor;
- if (_h) {
- var argLen = args.length;
- var ctx = args[argLen - 1];
- var len2 = _h.length;
- for (var i = 0; i < len2; i++) {
- var hItem = _h[i];
- if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) {
- continue;
- }
- switch (argLen) {
- case 0:
- hItem.h.call(ctx);
- break;
- case 1:
- hItem.h.call(ctx, args[0]);
- break;
- case 2:
- hItem.h.call(ctx, args[0], args[1]);
- break;
- default:
- hItem.h.apply(ctx, args.slice(1, argLen - 1));
- break;
- }
- }
- }
- eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type);
- return this;
- };
- return Eventful2;
- }();
- var Eventful_default = Eventful;
- // node_modules/zrender/lib/contain/text.js
- init_define_APP_INFO();
- var textWidthCache = {};
- function getWidth(text, font) {
- font = font || DEFAULT_FONT;
- var cacheOfFont = textWidthCache[font];
- if (!cacheOfFont) {
- cacheOfFont = textWidthCache[font] = new LRU_default(500);
- }
- var width = cacheOfFont.get(text);
- if (width == null) {
- width = platformApi.measureText(text, font).width;
- cacheOfFont.put(text, width);
- }
- return width;
- }
- function innerGetBoundingRect(text, font, textAlign, textBaseline) {
- var width = getWidth(text, font);
- var height = getLineHeight(font);
- var x = adjustTextX(0, width, textAlign);
- var y = adjustTextY2(0, height, textBaseline);
- var rect = new BoundingRect_default(x, y, width, height);
- return rect;
- }
- function getBoundingRect(text, font, textAlign, textBaseline) {
- var textLines = ((text || "") + "").split("\n");
- var len2 = textLines.length;
- if (len2 === 1) {
- return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);
- } else {
- var uniondRect = new BoundingRect_default(0, 0, 0, 0);
- for (var i = 0; i < textLines.length; i++) {
- var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);
- i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);
- }
- return uniondRect;
- }
- }
- function adjustTextX(x, width, textAlign) {
- if (textAlign === "right") {
- x -= width;
- } else if (textAlign === "center") {
- x -= width / 2;
- }
- return x;
- }
- function adjustTextY2(y, height, verticalAlign) {
- if (verticalAlign === "middle") {
- y -= height / 2;
- } else if (verticalAlign === "bottom") {
- y -= height;
- }
- return y;
- }
- function getLineHeight(font) {
- return getWidth("\u56FD", font);
- }
- function parsePercent(value, maxValue) {
- if (typeof value === "string") {
- if (value.lastIndexOf("%") >= 0) {
- return parseFloat(value) / 100 * maxValue;
- }
- return parseFloat(value);
- }
- return value;
- }
- function calculateTextPosition(out, opts, rect) {
- var textPosition = opts.position || "inside";
- var distance2 = opts.distance != null ? opts.distance : 5;
- var height = rect.height;
- var width = rect.width;
- var halfHeight = height / 2;
- var x = rect.x;
- var y = rect.y;
- var textAlign = "left";
- var textVerticalAlign = "top";
- if (textPosition instanceof Array) {
- x += parsePercent(textPosition[0], rect.width);
- y += parsePercent(textPosition[1], rect.height);
- textAlign = null;
- textVerticalAlign = null;
- } else {
- switch (textPosition) {
- case "left":
- x -= distance2;
- y += halfHeight;
- textAlign = "right";
- textVerticalAlign = "middle";
- break;
- case "right":
- x += distance2 + width;
- y += halfHeight;
- textVerticalAlign = "middle";
- break;
- case "top":
- x += width / 2;
- y -= distance2;
- textAlign = "center";
- textVerticalAlign = "bottom";
- break;
- case "bottom":
- x += width / 2;
- y += height + distance2;
- textAlign = "center";
- break;
- case "inside":
- x += width / 2;
- y += halfHeight;
- textAlign = "center";
- textVerticalAlign = "middle";
- break;
- case "insideLeft":
- x += distance2;
- y += halfHeight;
- textVerticalAlign = "middle";
- break;
- case "insideRight":
- x += width - distance2;
- y += halfHeight;
- textAlign = "right";
- textVerticalAlign = "middle";
- break;
- case "insideTop":
- x += width / 2;
- y += distance2;
- textAlign = "center";
- break;
- case "insideBottom":
- x += width / 2;
- y += height - distance2;
- textAlign = "center";
- textVerticalAlign = "bottom";
- break;
- case "insideTopLeft":
- x += distance2;
- y += distance2;
- break;
- case "insideTopRight":
- x += width - distance2;
- y += distance2;
- textAlign = "right";
- break;
- case "insideBottomLeft":
- x += distance2;
- y += height - distance2;
- textVerticalAlign = "bottom";
- break;
- case "insideBottomRight":
- x += width - distance2;
- y += height - distance2;
- textAlign = "right";
- textVerticalAlign = "bottom";
- break;
- }
- }
- out = out || {};
- out.x = x;
- out.y = y;
- out.align = textAlign;
- out.verticalAlign = textVerticalAlign;
- return out;
- }
- // node_modules/zrender/lib/config.js
- init_define_APP_INFO();
- var dpr = 1;
- if (env_default.hasGlobalWindow) {
- dpr = Math.max(window.devicePixelRatio || window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI || 1, 1);
- }
- var devicePixelRatio = dpr;
- var DARK_MODE_THRESHOLD = 0.4;
- var DARK_LABEL_COLOR = "#333";
- var LIGHT_LABEL_COLOR = "#ccc";
- var LIGHTER_LABEL_COLOR = "#eee";
- // node_modules/zrender/lib/graphic/constants.js
- init_define_APP_INFO();
- var REDRAW_BIT = 1;
- var STYLE_CHANGED_BIT = 2;
- var SHAPE_CHANGED_BIT = 4;
- // node_modules/zrender/lib/Element.js
- var PRESERVED_NORMAL_STATE = "__zr_normal__";
- var PRIMARY_STATES_KEYS = TRANSFORMABLE_PROPS.concat(["ignore"]);
- var DEFAULT_ANIMATABLE_MAP = reduce(TRANSFORMABLE_PROPS, function(obj, key) {
- obj[key] = true;
- return obj;
- }, { ignore: false });
- var tmpTextPosCalcRes = {};
- var tmpBoundingRect = new BoundingRect_default(0, 0, 0, 0);
- var Element = function() {
- function Element2(props) {
- this.id = guid();
- this.animators = [];
- this.currentStates = [];
- this.states = {};
- this._init(props);
- }
- Element2.prototype._init = function(props) {
- this.attr(props);
- };
- Element2.prototype.drift = function(dx, dy, e) {
- switch (this.draggable) {
- case "horizontal":
- dy = 0;
- break;
- case "vertical":
- dx = 0;
- break;
- }
- var m = this.transform;
- if (!m) {
- m = this.transform = [1, 0, 0, 1, 0, 0];
- }
- m[4] += dx;
- m[5] += dy;
- this.decomposeTransform();
- this.markRedraw();
- };
- Element2.prototype.beforeUpdate = function() {
- };
- Element2.prototype.afterUpdate = function() {
- };
- Element2.prototype.update = function() {
- this.updateTransform();
- if (this.__dirty) {
- this.updateInnerText();
- }
- };
- Element2.prototype.updateInnerText = function(forceUpdate) {
- var textEl = this._textContent;
- if (textEl && (!textEl.ignore || forceUpdate)) {
- if (!this.textConfig) {
- this.textConfig = {};
- }
- var textConfig = this.textConfig;
- var isLocal = textConfig.local;
- var innerTransformable = textEl.innerTransformable;
- var textAlign = void 0;
- var textVerticalAlign = void 0;
- var textStyleChanged = false;
- innerTransformable.parent = isLocal ? this : null;
- var innerOrigin = false;
- innerTransformable.copyTransform(textEl);
- if (textConfig.position != null) {
- var layoutRect = tmpBoundingRect;
- if (textConfig.layoutRect) {
- layoutRect.copy(textConfig.layoutRect);
- } else {
- layoutRect.copy(this.getBoundingRect());
- }
- if (!isLocal) {
- layoutRect.applyTransform(this.transform);
- }
- if (this.calculateTextPosition) {
- this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);
- } else {
- calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);
- }
- innerTransformable.x = tmpTextPosCalcRes.x;
- innerTransformable.y = tmpTextPosCalcRes.y;
- textAlign = tmpTextPosCalcRes.align;
- textVerticalAlign = tmpTextPosCalcRes.verticalAlign;
- var textOrigin = textConfig.origin;
- if (textOrigin && textConfig.rotation != null) {
- var relOriginX = void 0;
- var relOriginY = void 0;
- if (textOrigin === "center") {
- relOriginX = layoutRect.width * 0.5;
- relOriginY = layoutRect.height * 0.5;
- } else {
- relOriginX = parsePercent(textOrigin[0], layoutRect.width);
- relOriginY = parsePercent(textOrigin[1], layoutRect.height);
- }
- innerOrigin = true;
- innerTransformable.originX = -innerTransformable.x + relOriginX + (isLocal ? 0 : layoutRect.x);
- innerTransformable.originY = -innerTransformable.y + relOriginY + (isLocal ? 0 : layoutRect.y);
- }
- }
- if (textConfig.rotation != null) {
- innerTransformable.rotation = textConfig.rotation;
- }
- var textOffset = textConfig.offset;
- if (textOffset) {
- innerTransformable.x += textOffset[0];
- innerTransformable.y += textOffset[1];
- if (!innerOrigin) {
- innerTransformable.originX = -textOffset[0];
- innerTransformable.originY = -textOffset[1];
- }
- }
- var isInside = textConfig.inside == null ? typeof textConfig.position === "string" && textConfig.position.indexOf("inside") >= 0 : textConfig.inside;
- var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});
- var textFill = void 0;
- var textStroke = void 0;
- var autoStroke = void 0;
- if (isInside && this.canBeInsideText()) {
- textFill = textConfig.insideFill;
- textStroke = textConfig.insideStroke;
- if (textFill == null || textFill === "auto") {
- textFill = this.getInsideTextFill();
- }
- if (textStroke == null || textStroke === "auto") {
- textStroke = this.getInsideTextStroke(textFill);
- autoStroke = true;
- }
- } else {
- textFill = textConfig.outsideFill;
- textStroke = textConfig.outsideStroke;
- if (textFill == null || textFill === "auto") {
- textFill = this.getOutsideFill();
- }
- if (textStroke == null || textStroke === "auto") {
- textStroke = this.getOutsideStroke(textFill);
- autoStroke = true;
- }
- }
- textFill = textFill || "#000";
- if (textFill !== innerTextDefaultStyle.fill || textStroke !== innerTextDefaultStyle.stroke || autoStroke !== innerTextDefaultStyle.autoStroke || textAlign !== innerTextDefaultStyle.align || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {
- textStyleChanged = true;
- innerTextDefaultStyle.fill = textFill;
- innerTextDefaultStyle.stroke = textStroke;
- innerTextDefaultStyle.autoStroke = autoStroke;
- innerTextDefaultStyle.align = textAlign;
- innerTextDefaultStyle.verticalAlign = textVerticalAlign;
- textEl.setDefaultTextStyle(innerTextDefaultStyle);
- }
- textEl.__dirty |= REDRAW_BIT;
- if (textStyleChanged) {
- textEl.dirtyStyle(true);
- }
- }
- };
- Element2.prototype.canBeInsideText = function() {
- return true;
- };
- Element2.prototype.getInsideTextFill = function() {
- return "#fff";
- };
- Element2.prototype.getInsideTextStroke = function(textFill) {
- return "#000";
- };
- Element2.prototype.getOutsideFill = function() {
- return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;
- };
- Element2.prototype.getOutsideStroke = function(textFill) {
- var backgroundColor = this.__zr && this.__zr.getBackgroundColor();
- var colorArr = typeof backgroundColor === "string" && parse(backgroundColor);
- if (!colorArr) {
- colorArr = [255, 255, 255, 1];
- }
- var alpha = colorArr[3];
- var isDark = this.__zr.isDarkMode();
- for (var i = 0; i < 3; i++) {
- colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);
- }
- colorArr[3] = 1;
- return stringify(colorArr, "rgba");
- };
- Element2.prototype.traverse = function(cb, context) {
- };
- Element2.prototype.attrKV = function(key, value) {
- if (key === "textConfig") {
- this.setTextConfig(value);
- } else if (key === "textContent") {
- this.setTextContent(value);
- } else if (key === "clipPath") {
- this.setClipPath(value);
- } else if (key === "extra") {
- this.extra = this.extra || {};
- extend(this.extra, value);
- } else {
- this[key] = value;
- }
- };
- Element2.prototype.hide = function() {
- this.ignore = true;
- this.markRedraw();
- };
- Element2.prototype.show = function() {
- this.ignore = false;
- this.markRedraw();
- };
- Element2.prototype.attr = function(keyOrObj, value) {
- if (typeof keyOrObj === "string") {
- this.attrKV(keyOrObj, value);
- } else if (isObject(keyOrObj)) {
- var obj = keyOrObj;
- var keysArr = keys(obj);
- for (var i = 0; i < keysArr.length; i++) {
- var key = keysArr[i];
- this.attrKV(key, keyOrObj[key]);
- }
- }
- this.markRedraw();
- return this;
- };
- Element2.prototype.saveCurrentToNormalState = function(toState) {
- this._innerSaveToNormal(toState);
- var normalState = this._normalState;
- for (var i = 0; i < this.animators.length; i++) {
- var animator = this.animators[i];
- var fromStateTransition = animator.__fromStateTransition;
- if (animator.getLoop() || fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {
- continue;
- }
- var targetName = animator.targetName;
- var target = targetName ? normalState[targetName] : normalState;
- animator.saveTo(target);
- }
- };
- Element2.prototype._innerSaveToNormal = function(toState) {
- var normalState = this._normalState;
- if (!normalState) {
- normalState = this._normalState = {};
- }
- if (toState.textConfig && !normalState.textConfig) {
- normalState.textConfig = this.textConfig;
- }
- this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);
- };
- Element2.prototype._savePrimaryToNormal = function(toState, normalState, primaryKeys) {
- for (var i = 0; i < primaryKeys.length; i++) {
- var key = primaryKeys[i];
- if (toState[key] != null && !(key in normalState)) {
- normalState[key] = this[key];
- }
- }
- };
- Element2.prototype.hasState = function() {
- return this.currentStates.length > 0;
- };
- Element2.prototype.getState = function(name) {
- return this.states[name];
- };
- Element2.prototype.ensureState = function(name) {
- var states = this.states;
- if (!states[name]) {
- states[name] = {};
- }
- return states[name];
- };
- Element2.prototype.clearStates = function(noAnimation) {
- this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);
- };
- Element2.prototype.useState = function(stateName, keepCurrentStates, noAnimation, forceUseHoverLayer) {
- var toNormalState = stateName === PRESERVED_NORMAL_STATE;
- var hasStates = this.hasState();
- if (!hasStates && toNormalState) {
- return;
- }
- var currentStates = this.currentStates;
- var animationCfg = this.stateTransition;
- if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {
- return;
- }
- var state;
- if (this.stateProxy && !toNormalState) {
- state = this.stateProxy(stateName);
- }
- if (!state) {
- state = this.states && this.states[stateName];
- }
- if (!state && !toNormalState) {
- logError("State " + stateName + " not exists.");
- return;
- }
- if (!toNormalState) {
- this.saveCurrentToNormalState(state);
- }
- var useHoverLayer = !!(state && state.hoverLayer || forceUseHoverLayer);
- if (useHoverLayer) {
- this._toggleHoverLayerFlag(true);
- }
- this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);
- var textContent = this._textContent;
- var textGuide = this._textGuide;
- if (textContent) {
- textContent.useState(stateName, keepCurrentStates, noAnimation, useHoverLayer);
- }
- if (textGuide) {
- textGuide.useState(stateName, keepCurrentStates, noAnimation, useHoverLayer);
- }
- if (toNormalState) {
- this.currentStates = [];
- this._normalState = {};
- } else {
- if (!keepCurrentStates) {
- this.currentStates = [stateName];
- } else {
- this.currentStates.push(stateName);
- }
- }
- this._updateAnimationTargets();
- this.markRedraw();
- if (!useHoverLayer && this.__inHover) {
- this._toggleHoverLayerFlag(false);
- this.__dirty &= ~REDRAW_BIT;
- }
- return state;
- };
- Element2.prototype.useStates = function(states, noAnimation, forceUseHoverLayer) {
- if (!states.length) {
- this.clearStates();
- } else {
- var stateObjects = [];
- var currentStates = this.currentStates;
- var len2 = states.length;
- var notChange = len2 === currentStates.length;
- if (notChange) {
- for (var i = 0; i < len2; i++) {
- if (states[i] !== currentStates[i]) {
- notChange = false;
- break;
- }
- }
- }
- if (notChange) {
- return;
- }
- for (var i = 0; i < len2; i++) {
- var stateName = states[i];
- var stateObj = void 0;
- if (this.stateProxy) {
- stateObj = this.stateProxy(stateName, states);
- }
- if (!stateObj) {
- stateObj = this.states[stateName];
- }
- if (stateObj) {
- stateObjects.push(stateObj);
- }
- }
- var lastStateObj = stateObjects[len2 - 1];
- var useHoverLayer = !!(lastStateObj && lastStateObj.hoverLayer || forceUseHoverLayer);
- if (useHoverLayer) {
- this._toggleHoverLayerFlag(true);
- }
- var mergedState = this._mergeStates(stateObjects);
- var animationCfg = this.stateTransition;
- this.saveCurrentToNormalState(mergedState);
- this._applyStateObj(states.join(","), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);
- var textContent = this._textContent;
- var textGuide = this._textGuide;
- if (textContent) {
- textContent.useStates(states, noAnimation, useHoverLayer);
- }
- if (textGuide) {
- textGuide.useStates(states, noAnimation, useHoverLayer);
- }
- this._updateAnimationTargets();
- this.currentStates = states.slice();
- this.markRedraw();
- if (!useHoverLayer && this.__inHover) {
- this._toggleHoverLayerFlag(false);
- this.__dirty &= ~REDRAW_BIT;
- }
- }
- };
- Element2.prototype._updateAnimationTargets = function() {
- for (var i = 0; i < this.animators.length; i++) {
- var animator = this.animators[i];
- if (animator.targetName) {
- animator.changeTarget(this[animator.targetName]);
- }
- }
- };
- Element2.prototype.removeState = function(state) {
- var idx = indexOf(this.currentStates, state);
- if (idx >= 0) {
- var currentStates = this.currentStates.slice();
- currentStates.splice(idx, 1);
- this.useStates(currentStates);
- }
- };
- Element2.prototype.replaceState = function(oldState, newState, forceAdd) {
- var currentStates = this.currentStates.slice();
- var idx = indexOf(currentStates, oldState);
- var newStateExists = indexOf(currentStates, newState) >= 0;
- if (idx >= 0) {
- if (!newStateExists) {
- currentStates[idx] = newState;
- } else {
- currentStates.splice(idx, 1);
- }
- } else if (forceAdd && !newStateExists) {
- currentStates.push(newState);
- }
- this.useStates(currentStates);
- };
- Element2.prototype.toggleState = function(state, enable) {
- if (enable) {
- this.useState(state, true);
- } else {
- this.removeState(state);
- }
- };
- Element2.prototype._mergeStates = function(states) {
- var mergedState = {};
- var mergedTextConfig;
- for (var i = 0; i < states.length; i++) {
- var state = states[i];
- extend(mergedState, state);
- if (state.textConfig) {
- mergedTextConfig = mergedTextConfig || {};
- extend(mergedTextConfig, state.textConfig);
- }
- }
- if (mergedTextConfig) {
- mergedState.textConfig = mergedTextConfig;
- }
- return mergedState;
- };
- Element2.prototype._applyStateObj = function(stateName, state, normalState, keepCurrentStates, transition, animationCfg) {
- var needsRestoreToNormal = !(state && keepCurrentStates);
- if (state && state.textConfig) {
- this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);
- extend(this.textConfig, state.textConfig);
- } else if (needsRestoreToNormal) {
- if (normalState.textConfig) {
- this.textConfig = normalState.textConfig;
- }
- }
- var transitionTarget = {};
- var hasTransition = false;
- for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {
- var key = PRIMARY_STATES_KEYS[i];
- var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];
- if (state && state[key] != null) {
- if (propNeedsTransition) {
- hasTransition = true;
- transitionTarget[key] = state[key];
- } else {
- this[key] = state[key];
- }
- } else if (needsRestoreToNormal) {
- if (normalState[key] != null) {
- if (propNeedsTransition) {
- hasTransition = true;
- transitionTarget[key] = normalState[key];
- } else {
- this[key] = normalState[key];
- }
- }
- }
- }
- if (!transition) {
- for (var i = 0; i < this.animators.length; i++) {
- var animator = this.animators[i];
- var targetName = animator.targetName;
- if (!animator.getLoop()) {
- animator.__changeFinalValue(targetName ? (state || normalState)[targetName] : state || normalState);
- }
- }
- }
- if (hasTransition) {
- this._transitionState(stateName, transitionTarget, animationCfg);
- }
- };
- Element2.prototype._attachComponent = function(componentEl) {
- if (componentEl.__zr && !componentEl.__hostTarget) {
- if (true) {
- throw new Error("Text element has been added to zrender.");
- }
- return;
- }
- if (componentEl === this) {
- if (true) {
- throw new Error("Recursive component attachment.");
- }
- return;
- }
- var zr = this.__zr;
- if (zr) {
- componentEl.addSelfToZr(zr);
- }
- componentEl.__zr = zr;
- componentEl.__hostTarget = this;
- };
- Element2.prototype._detachComponent = function(componentEl) {
- if (componentEl.__zr) {
- componentEl.removeSelfFromZr(componentEl.__zr);
- }
- componentEl.__zr = null;
- componentEl.__hostTarget = null;
- };
- Element2.prototype.getClipPath = function() {
- return this._clipPath;
- };
- Element2.prototype.setClipPath = function(clipPath) {
- if (this._clipPath && this._clipPath !== clipPath) {
- this.removeClipPath();
- }
- this._attachComponent(clipPath);
- this._clipPath = clipPath;
- this.markRedraw();
- };
- Element2.prototype.removeClipPath = function() {
- var clipPath = this._clipPath;
- if (clipPath) {
- this._detachComponent(clipPath);
- this._clipPath = null;
- this.markRedraw();
- }
- };
- Element2.prototype.getTextContent = function() {
- return this._textContent;
- };
- Element2.prototype.setTextContent = function(textEl) {
- var previousTextContent = this._textContent;
- if (previousTextContent === textEl) {
- return;
- }
- if (previousTextContent && previousTextContent !== textEl) {
- this.removeTextContent();
- }
- if (true) {
- if (textEl.__zr && !textEl.__hostTarget) {
- throw new Error("Text element has been added to zrender.");
- }
- }
- textEl.innerTransformable = new Transformable_default();
- this._attachComponent(textEl);
- this._textContent = textEl;
- this.markRedraw();
- };
- Element2.prototype.setTextConfig = function(cfg) {
- if (!this.textConfig) {
- this.textConfig = {};
- }
- extend(this.textConfig, cfg);
- this.markRedraw();
- };
- Element2.prototype.removeTextConfig = function() {
- this.textConfig = null;
- this.markRedraw();
- };
- Element2.prototype.removeTextContent = function() {
- var textEl = this._textContent;
- if (textEl) {
- textEl.innerTransformable = null;
- this._detachComponent(textEl);
- this._textContent = null;
- this._innerTextDefaultStyle = null;
- this.markRedraw();
- }
- };
- Element2.prototype.getTextGuideLine = function() {
- return this._textGuide;
- };
- Element2.prototype.setTextGuideLine = function(guideLine) {
- if (this._textGuide && this._textGuide !== guideLine) {
- this.removeTextGuideLine();
- }
- this._attachComponent(guideLine);
- this._textGuide = guideLine;
- this.markRedraw();
- };
- Element2.prototype.removeTextGuideLine = function() {
- var textGuide = this._textGuide;
- if (textGuide) {
- this._detachComponent(textGuide);
- this._textGuide = null;
- this.markRedraw();
- }
- };
- Element2.prototype.markRedraw = function() {
- this.__dirty |= REDRAW_BIT;
- var zr = this.__zr;
- if (zr) {
- if (this.__inHover) {
- zr.refreshHover();
- } else {
- zr.refresh();
- }
- }
- if (this.__hostTarget) {
- this.__hostTarget.markRedraw();
- }
- };
- Element2.prototype.dirty = function() {
- this.markRedraw();
- };
- Element2.prototype._toggleHoverLayerFlag = function(inHover) {
- this.__inHover = inHover;
- var textContent = this._textContent;
- var textGuide = this._textGuide;
- if (textContent) {
- textContent.__inHover = inHover;
- }
- if (textGuide) {
- textGuide.__inHover = inHover;
- }
- };
- Element2.prototype.addSelfToZr = function(zr) {
- if (this.__zr === zr) {
- return;
- }
- this.__zr = zr;
- var animators = this.animators;
- if (animators) {
- for (var i = 0; i < animators.length; i++) {
- zr.animation.addAnimator(animators[i]);
- }
- }
- if (this._clipPath) {
- this._clipPath.addSelfToZr(zr);
- }
- if (this._textContent) {
- this._textContent.addSelfToZr(zr);
- }
- if (this._textGuide) {
- this._textGuide.addSelfToZr(zr);
- }
- };
- Element2.prototype.removeSelfFromZr = function(zr) {
- if (!this.__zr) {
- return;
- }
- this.__zr = null;
- var animators = this.animators;
- if (animators) {
- for (var i = 0; i < animators.length; i++) {
- zr.animation.removeAnimator(animators[i]);
- }
- }
- if (this._clipPath) {
- this._clipPath.removeSelfFromZr(zr);
- }
- if (this._textContent) {
- this._textContent.removeSelfFromZr(zr);
- }
- if (this._textGuide) {
- this._textGuide.removeSelfFromZr(zr);
- }
- };
- Element2.prototype.animate = function(key, loop, allowDiscreteAnimation) {
- var target = key ? this[key] : this;
- if (true) {
- if (!target) {
- logError('Property "' + key + '" is not existed in element ' + this.id);
- return;
- }
- }
- var animator = new Animator_default(target, loop, allowDiscreteAnimation);
- key && (animator.targetName = key);
- this.addAnimator(animator, key);
- return animator;
- };
- Element2.prototype.addAnimator = function(animator, key) {
- var zr = this.__zr;
- var el = this;
- animator.during(function() {
- el.updateDuringAnimation(key);
- }).done(function() {
- var animators = el.animators;
- var idx = indexOf(animators, animator);
- if (idx >= 0) {
- animators.splice(idx, 1);
- }
- });
- this.animators.push(animator);
- if (zr) {
- zr.animation.addAnimator(animator);
- }
- zr && zr.wakeUp();
- };
- Element2.prototype.updateDuringAnimation = function(key) {
- this.markRedraw();
- };
- Element2.prototype.stopAnimation = function(scope, forwardToLast) {
- var animators = this.animators;
- var len2 = animators.length;
- var leftAnimators = [];
- for (var i = 0; i < len2; i++) {
- var animator = animators[i];
- if (!scope || scope === animator.scope) {
- animator.stop(forwardToLast);
- } else {
- leftAnimators.push(animator);
- }
- }
- this.animators = leftAnimators;
- return this;
- };
- Element2.prototype.animateTo = function(target, cfg, animationProps) {
- animateTo(this, target, cfg, animationProps);
- };
- Element2.prototype.animateFrom = function(target, cfg, animationProps) {
- animateTo(this, target, cfg, animationProps, true);
- };
- Element2.prototype._transitionState = function(stateName, target, cfg, animationProps) {
- var animators = animateTo(this, target, cfg, animationProps);
- for (var i = 0; i < animators.length; i++) {
- animators[i].__fromStateTransition = stateName;
- }
- };
- Element2.prototype.getBoundingRect = function() {
- return null;
- };
- Element2.prototype.getPaintRect = function() {
- return null;
- };
- Element2.initDefaultProps = function() {
- var elProto = Element2.prototype;
- elProto.type = "element";
- elProto.name = "";
- elProto.ignore = elProto.silent = elProto.isGroup = elProto.draggable = elProto.dragging = elProto.ignoreClip = elProto.__inHover = false;
- elProto.__dirty = REDRAW_BIT;
- var logs = {};
- function logDeprecatedError(key, xKey, yKey) {
- if (!logs[key + xKey + yKey]) {
- console.warn("DEPRECATED: '" + key + "' has been deprecated. use '" + xKey + "', '" + yKey + "' instead");
- logs[key + xKey + yKey] = true;
- }
- }
- function createLegacyProperty(key, privateKey, xKey, yKey) {
- Object.defineProperty(elProto, key, {
- get: function() {
- if (true) {
- logDeprecatedError(key, xKey, yKey);
- }
- if (!this[privateKey]) {
- var pos = this[privateKey] = [];
- enhanceArray(this, pos);
- }
- return this[privateKey];
- },
- set: function(pos) {
- if (true) {
- logDeprecatedError(key, xKey, yKey);
- }
- this[xKey] = pos[0];
- this[yKey] = pos[1];
- this[privateKey] = pos;
- enhanceArray(this, pos);
- }
- });
- function enhanceArray(self2, pos) {
- Object.defineProperty(pos, 0, {
- get: function() {
- return self2[xKey];
- },
- set: function(val) {
- self2[xKey] = val;
- }
- });
- Object.defineProperty(pos, 1, {
- get: function() {
- return self2[yKey];
- },
- set: function(val) {
- self2[yKey] = val;
- }
- });
- }
- }
- if (Object.defineProperty) {
- createLegacyProperty("position", "_legacyPos", "x", "y");
- createLegacyProperty("scale", "_legacyScale", "scaleX", "scaleY");
- createLegacyProperty("origin", "_legacyOrigin", "originX", "originY");
- }
- }();
- return Element2;
- }();
- mixin(Element, Eventful_default);
- mixin(Element, Transformable_default);
- function animateTo(animatable, target, cfg, animationProps, reverse) {
- cfg = cfg || {};
- var animators = [];
- animateToShallow(animatable, "", animatable, target, cfg, animationProps, animators, reverse);
- var finishCount = animators.length;
- var doneHappened = false;
- var cfgDone = cfg.done;
- var cfgAborted = cfg.aborted;
- var doneCb = function() {
- doneHappened = true;
- finishCount--;
- if (finishCount <= 0) {
- doneHappened ? cfgDone && cfgDone() : cfgAborted && cfgAborted();
- }
- };
- var abortedCb = function() {
- finishCount--;
- if (finishCount <= 0) {
- doneHappened ? cfgDone && cfgDone() : cfgAborted && cfgAborted();
- }
- };
- if (!finishCount) {
- cfgDone && cfgDone();
- }
- if (animators.length > 0 && cfg.during) {
- animators[0].during(function(target2, percent) {
- cfg.during(percent);
- });
- }
- for (var i = 0; i < animators.length; i++) {
- var animator = animators[i];
- if (doneCb) {
- animator.done(doneCb);
- }
- if (abortedCb) {
- animator.aborted(abortedCb);
- }
- if (cfg.force) {
- animator.duration(cfg.duration);
- }
- animator.start(cfg.easing);
- }
- return animators;
- }
- function copyArrShallow(source, target, len2) {
- for (var i = 0; i < len2; i++) {
- source[i] = target[i];
- }
- }
- function is2DArray(value) {
- return isArrayLike(value[0]);
- }
- function copyValue(target, source, key) {
- if (isArrayLike(source[key])) {
- if (!isArrayLike(target[key])) {
- target[key] = [];
- }
- if (isTypedArray(source[key])) {
- var len2 = source[key].length;
- if (target[key].length !== len2) {
- target[key] = new source[key].constructor(len2);
- copyArrShallow(target[key], source[key], len2);
- }
- } else {
- var sourceArr = source[key];
- var targetArr = target[key];
- var len0 = sourceArr.length;
- if (is2DArray(sourceArr)) {
- var len1 = sourceArr[0].length;
- for (var i = 0; i < len0; i++) {
- if (!targetArr[i]) {
- targetArr[i] = Array.prototype.slice.call(sourceArr[i]);
- } else {
- copyArrShallow(targetArr[i], sourceArr[i], len1);
- }
- }
- } else {
- copyArrShallow(targetArr, sourceArr, len0);
- }
- targetArr.length = sourceArr.length;
- }
- } else {
- target[key] = source[key];
- }
- }
- function isValueSame(val1, val2) {
- return val1 === val2 || isArrayLike(val1) && isArrayLike(val2) && is1DArraySame(val1, val2);
- }
- function is1DArraySame(arr0, arr1) {
- var len2 = arr0.length;
- if (len2 !== arr1.length) {
- return false;
- }
- for (var i = 0; i < len2; i++) {
- if (arr0[i] !== arr1[i]) {
- return false;
- }
- }
- return true;
- }
- function animateToShallow(animatable, topKey, animateObj, target, cfg, animationProps, animators, reverse) {
- var targetKeys = keys(target);
- var duration = cfg.duration;
- var delay = cfg.delay;
- var additive = cfg.additive;
- var setToFinal = cfg.setToFinal;
- var animateAll = !isObject(animationProps);
- var existsAnimators = animatable.animators;
- var animationKeys = [];
- for (var k = 0; k < targetKeys.length; k++) {
- var innerKey = targetKeys[k];
- var targetVal = target[innerKey];
- if (targetVal != null && animateObj[innerKey] != null && (animateAll || animationProps[innerKey])) {
- if (isObject(targetVal) && !isArrayLike(targetVal) && !isGradientObject(targetVal)) {
- if (topKey) {
- if (!reverse) {
- animateObj[innerKey] = targetVal;
- animatable.updateDuringAnimation(topKey);
- }
- continue;
- }
- animateToShallow(animatable, innerKey, animateObj[innerKey], targetVal, cfg, animationProps && animationProps[innerKey], animators, reverse);
- } else {
- animationKeys.push(innerKey);
- }
- } else if (!reverse) {
- animateObj[innerKey] = targetVal;
- animatable.updateDuringAnimation(topKey);
- animationKeys.push(innerKey);
- }
- }
- var keyLen = animationKeys.length;
- if (!additive && keyLen) {
- for (var i = 0; i < existsAnimators.length; i++) {
- var animator = existsAnimators[i];
- if (animator.targetName === topKey) {
- var allAborted = animator.stopTracks(animationKeys);
- if (allAborted) {
- var idx = indexOf(existsAnimators, animator);
- existsAnimators.splice(idx, 1);
- }
- }
- }
- }
- if (!cfg.force) {
- animationKeys = filter(animationKeys, function(key) {
- return !isValueSame(target[key], animateObj[key]);
- });
- keyLen = animationKeys.length;
- }
- if (keyLen > 0 || cfg.force && !animators.length) {
- var revertedSource = void 0;
- var reversedTarget = void 0;
- var sourceClone = void 0;
- if (reverse) {
- reversedTarget = {};
- if (setToFinal) {
- revertedSource = {};
- }
- for (var i = 0; i < keyLen; i++) {
- var innerKey = animationKeys[i];
- reversedTarget[innerKey] = animateObj[innerKey];
- if (setToFinal) {
- revertedSource[innerKey] = target[innerKey];
- } else {
- animateObj[innerKey] = target[innerKey];
- }
- }
- } else if (setToFinal) {
- sourceClone = {};
- for (var i = 0; i < keyLen; i++) {
- var innerKey = animationKeys[i];
- sourceClone[innerKey] = cloneValue(animateObj[innerKey]);
- copyValue(animateObj, target, innerKey);
- }
- }
- var animator = new Animator_default(animateObj, false, false, additive ? filter(existsAnimators, function(animator2) {
- return animator2.targetName === topKey;
- }) : null);
- animator.targetName = topKey;
- if (cfg.scope) {
- animator.scope = cfg.scope;
- }
- if (setToFinal && revertedSource) {
- animator.whenWithKeys(0, revertedSource, animationKeys);
- }
- if (sourceClone) {
- animator.whenWithKeys(0, sourceClone, animationKeys);
- }
- animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animationKeys).delay(delay || 0);
- animatable.addAnimator(animator, topKey);
- animators.push(animator);
- }
- }
- var Element_default = Element;
- // node_modules/zrender/lib/graphic/Displayable.js
- var STYLE_MAGIC_KEY = "__zr_style_" + Math.round(Math.random() * 10);
- var DEFAULT_COMMON_STYLE = {
- shadowBlur: 0,
- shadowOffsetX: 0,
- shadowOffsetY: 0,
- shadowColor: "#000",
- opacity: 1,
- blend: "source-over"
- };
- var DEFAULT_COMMON_ANIMATION_PROPS = {
- style: {
- shadowBlur: true,
- shadowOffsetX: true,
- shadowOffsetY: true,
- shadowColor: true,
- opacity: true
- }
- };
- DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;
- var PRIMARY_STATES_KEYS2 = ["z", "z2", "invisible"];
- var PRIMARY_STATES_KEYS_IN_HOVER_LAYER = ["invisible"];
- var Displayable = function(_super) {
- __extends(Displayable2, _super);
- function Displayable2(props) {
- return _super.call(this, props) || this;
- }
- Displayable2.prototype._init = function(props) {
- var keysArr = keys(props);
- for (var i = 0; i < keysArr.length; i++) {
- var key = keysArr[i];
- if (key === "style") {
- this.useStyle(props[key]);
- } else {
- _super.prototype.attrKV.call(this, key, props[key]);
- }
- }
- if (!this.style) {
- this.useStyle({});
- }
- };
- Displayable2.prototype.beforeBrush = function() {
- };
- Displayable2.prototype.afterBrush = function() {
- };
- Displayable2.prototype.innerBeforeBrush = function() {
- };
- Displayable2.prototype.innerAfterBrush = function() {
- };
- Displayable2.prototype.shouldBePainted = function(viewWidth, viewHeight, considerClipPath, considerAncestors) {
- var m = this.transform;
- if (this.ignore || this.invisible || this.style.opacity === 0 || this.culling && isDisplayableCulled(this, viewWidth, viewHeight) || m && !m[0] && !m[3]) {
- return false;
- }
- if (considerClipPath && this.__clipPaths) {
- for (var i = 0; i < this.__clipPaths.length; ++i) {
- if (this.__clipPaths[i].isZeroArea()) {
- return false;
- }
- }
- }
- if (considerAncestors && this.parent) {
- var parent_1 = this.parent;
- while (parent_1) {
- if (parent_1.ignore) {
- return false;
- }
- parent_1 = parent_1.parent;
- }
- }
- return true;
- };
- Displayable2.prototype.contain = function(x, y) {
- return this.rectContain(x, y);
- };
- Displayable2.prototype.traverse = function(cb, context) {
- cb.call(context, this);
- };
- Displayable2.prototype.rectContain = function(x, y) {
- var coord = this.transformCoordToLocal(x, y);
- var rect = this.getBoundingRect();
- return rect.contain(coord[0], coord[1]);
- };
- Displayable2.prototype.getPaintRect = function() {
- var rect = this._paintRect;
- if (!this._paintRect || this.__dirty) {
- var transform = this.transform;
- var elRect = this.getBoundingRect();
- var style = this.style;
- var shadowSize = style.shadowBlur || 0;
- var shadowOffsetX = style.shadowOffsetX || 0;
- var shadowOffsetY = style.shadowOffsetY || 0;
- rect = this._paintRect || (this._paintRect = new BoundingRect_default(0, 0, 0, 0));
- if (transform) {
- BoundingRect_default.applyTransform(rect, elRect, transform);
- } else {
- rect.copy(elRect);
- }
- if (shadowSize || shadowOffsetX || shadowOffsetY) {
- rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);
- rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);
- rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);
- rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);
- }
- var tolerance = this.dirtyRectTolerance;
- if (!rect.isZero()) {
- rect.x = Math.floor(rect.x - tolerance);
- rect.y = Math.floor(rect.y - tolerance);
- rect.width = Math.ceil(rect.width + 1 + tolerance * 2);
- rect.height = Math.ceil(rect.height + 1 + tolerance * 2);
- }
- }
- return rect;
- };
- Displayable2.prototype.setPrevPaintRect = function(paintRect) {
- if (paintRect) {
- this._prevPaintRect = this._prevPaintRect || new BoundingRect_default(0, 0, 0, 0);
- this._prevPaintRect.copy(paintRect);
- } else {
- this._prevPaintRect = null;
- }
- };
- Displayable2.prototype.getPrevPaintRect = function() {
- return this._prevPaintRect;
- };
- Displayable2.prototype.animateStyle = function(loop) {
- return this.animate("style", loop);
- };
- Displayable2.prototype.updateDuringAnimation = function(targetKey) {
- if (targetKey === "style") {
- this.dirtyStyle();
- } else {
- this.markRedraw();
- }
- };
- Displayable2.prototype.attrKV = function(key, value) {
- if (key !== "style") {
- _super.prototype.attrKV.call(this, key, value);
- } else {
- if (!this.style) {
- this.useStyle(value);
- } else {
- this.setStyle(value);
- }
- }
- };
- Displayable2.prototype.setStyle = function(keyOrObj, value) {
- if (typeof keyOrObj === "string") {
- this.style[keyOrObj] = value;
- } else {
- extend(this.style, keyOrObj);
- }
- this.dirtyStyle();
- return this;
- };
- Displayable2.prototype.dirtyStyle = function(notRedraw) {
- if (!notRedraw) {
- this.markRedraw();
- }
- this.__dirty |= STYLE_CHANGED_BIT;
- if (this._rect) {
- this._rect = null;
- }
- };
- Displayable2.prototype.dirty = function() {
- this.dirtyStyle();
- };
- Displayable2.prototype.styleChanged = function() {
- return !!(this.__dirty & STYLE_CHANGED_BIT);
- };
- Displayable2.prototype.styleUpdated = function() {
- this.__dirty &= ~STYLE_CHANGED_BIT;
- };
- Displayable2.prototype.createStyle = function(obj) {
- return createObject(DEFAULT_COMMON_STYLE, obj);
- };
- Displayable2.prototype.useStyle = function(obj) {
- if (!obj[STYLE_MAGIC_KEY]) {
- obj = this.createStyle(obj);
- }
- if (this.__inHover) {
- this.__hoverStyle = obj;
- } else {
- this.style = obj;
- }
- this.dirtyStyle();
- };
- Displayable2.prototype.isStyleObject = function(obj) {
- return obj[STYLE_MAGIC_KEY];
- };
- Displayable2.prototype._innerSaveToNormal = function(toState) {
- _super.prototype._innerSaveToNormal.call(this, toState);
- var normalState = this._normalState;
- if (toState.style && !normalState.style) {
- normalState.style = this._mergeStyle(this.createStyle(), this.style);
- }
- this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS2);
- };
- Displayable2.prototype._applyStateObj = function(stateName, state, normalState, keepCurrentStates, transition, animationCfg) {
- _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);
- var needsRestoreToNormal = !(state && keepCurrentStates);
- var targetStyle;
- if (state && state.style) {
- if (transition) {
- if (keepCurrentStates) {
- targetStyle = state.style;
- } else {
- targetStyle = this._mergeStyle(this.createStyle(), normalState.style);
- this._mergeStyle(targetStyle, state.style);
- }
- } else {
- targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);
- this._mergeStyle(targetStyle, state.style);
- }
- } else if (needsRestoreToNormal) {
- targetStyle = normalState.style;
- }
- if (targetStyle) {
- if (transition) {
- var sourceStyle = this.style;
- this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);
- if (needsRestoreToNormal) {
- var changedKeys = keys(sourceStyle);
- for (var i = 0; i < changedKeys.length; i++) {
- var key = changedKeys[i];
- if (key in targetStyle) {
- targetStyle[key] = targetStyle[key];
- this.style[key] = sourceStyle[key];
- }
- }
- }
- var targetKeys = keys(targetStyle);
- for (var i = 0; i < targetKeys.length; i++) {
- var key = targetKeys[i];
- this.style[key] = this.style[key];
- }
- this._transitionState(stateName, {
- style: targetStyle
- }, animationCfg, this.getAnimationStyleProps());
- } else {
- this.useStyle(targetStyle);
- }
- }
- var statesKeys = this.__inHover ? PRIMARY_STATES_KEYS_IN_HOVER_LAYER : PRIMARY_STATES_KEYS2;
- for (var i = 0; i < statesKeys.length; i++) {
- var key = statesKeys[i];
- if (state && state[key] != null) {
- this[key] = state[key];
- } else if (needsRestoreToNormal) {
- if (normalState[key] != null) {
- this[key] = normalState[key];
- }
- }
- }
- };
- Displayable2.prototype._mergeStates = function(states) {
- var mergedState = _super.prototype._mergeStates.call(this, states);
- var mergedStyle;
- for (var i = 0; i < states.length; i++) {
- var state = states[i];
- if (state.style) {
- mergedStyle = mergedStyle || {};
- this._mergeStyle(mergedStyle, state.style);
- }
- }
- if (mergedStyle) {
- mergedState.style = mergedStyle;
- }
- return mergedState;
- };
- Displayable2.prototype._mergeStyle = function(targetStyle, sourceStyle) {
- extend(targetStyle, sourceStyle);
- return targetStyle;
- };
- Displayable2.prototype.getAnimationStyleProps = function() {
- return DEFAULT_COMMON_ANIMATION_PROPS;
- };
- Displayable2.initDefaultProps = function() {
- var dispProto = Displayable2.prototype;
- dispProto.type = "displayable";
- dispProto.invisible = false;
- dispProto.z = 0;
- dispProto.z2 = 0;
- dispProto.zlevel = 0;
- dispProto.culling = false;
- dispProto.cursor = "pointer";
- dispProto.rectHover = false;
- dispProto.incremental = false;
- dispProto._rect = null;
- dispProto.dirtyRectTolerance = 0;
- dispProto.__dirty = REDRAW_BIT | STYLE_CHANGED_BIT;
- }();
- return Displayable2;
- }(Element_default);
- var tmpRect = new BoundingRect_default(0, 0, 0, 0);
- var viewRect = new BoundingRect_default(0, 0, 0, 0);
- function isDisplayableCulled(el, width, height) {
- tmpRect.copy(el.getBoundingRect());
- if (el.transform) {
- tmpRect.applyTransform(el.transform);
- }
- viewRect.width = width;
- viewRect.height = height;
- return !tmpRect.intersect(viewRect);
- }
- var Displayable_default = Displayable;
- // node_modules/zrender/lib/core/PathProxy.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/core/bbox.js
- init_define_APP_INFO();
- var mathMin2 = Math.min;
- var mathMax2 = Math.max;
- var mathSin = Math.sin;
- var mathCos = Math.cos;
- var PI2 = Math.PI * 2;
- var start = create2();
- var end = create2();
- var extremity = create2();
- function fromPoints(points, min3, max3) {
- if (points.length === 0) {
- return;
- }
- var p = points[0];
- var left = p[0];
- var right = p[0];
- var top = p[1];
- var bottom = p[1];
- for (var i = 1; i < points.length; i++) {
- p = points[i];
- left = mathMin2(left, p[0]);
- right = mathMax2(right, p[0]);
- top = mathMin2(top, p[1]);
- bottom = mathMax2(bottom, p[1]);
- }
- min3[0] = left;
- min3[1] = top;
- max3[0] = right;
- max3[1] = bottom;
- }
- function fromLine(x0, y0, x1, y1, min3, max3) {
- min3[0] = mathMin2(x0, x1);
- min3[1] = mathMin2(y0, y1);
- max3[0] = mathMax2(x0, x1);
- max3[1] = mathMax2(y0, y1);
- }
- var xDim = [];
- var yDim = [];
- function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min3, max3) {
- var cubicExtrema2 = cubicExtrema;
- var cubicAt2 = cubicAt;
- var n = cubicExtrema2(x0, x1, x2, x3, xDim);
- min3[0] = Infinity;
- min3[1] = Infinity;
- max3[0] = -Infinity;
- max3[1] = -Infinity;
- for (var i = 0; i < n; i++) {
- var x = cubicAt2(x0, x1, x2, x3, xDim[i]);
- min3[0] = mathMin2(x, min3[0]);
- max3[0] = mathMax2(x, max3[0]);
- }
- n = cubicExtrema2(y0, y1, y2, y3, yDim);
- for (var i = 0; i < n; i++) {
- var y = cubicAt2(y0, y1, y2, y3, yDim[i]);
- min3[1] = mathMin2(y, min3[1]);
- max3[1] = mathMax2(y, max3[1]);
- }
- min3[0] = mathMin2(x0, min3[0]);
- max3[0] = mathMax2(x0, max3[0]);
- min3[0] = mathMin2(x3, min3[0]);
- max3[0] = mathMax2(x3, max3[0]);
- min3[1] = mathMin2(y0, min3[1]);
- max3[1] = mathMax2(y0, max3[1]);
- min3[1] = mathMin2(y3, min3[1]);
- max3[1] = mathMax2(y3, max3[1]);
- }
- function fromQuadratic(x0, y0, x1, y1, x2, y2, min3, max3) {
- var quadraticExtremum2 = quadraticExtremum;
- var quadraticAt2 = quadraticAt;
- var tx = mathMax2(mathMin2(quadraticExtremum2(x0, x1, x2), 1), 0);
- var ty = mathMax2(mathMin2(quadraticExtremum2(y0, y1, y2), 1), 0);
- var x = quadraticAt2(x0, x1, x2, tx);
- var y = quadraticAt2(y0, y1, y2, ty);
- min3[0] = mathMin2(x0, x2, x);
- min3[1] = mathMin2(y0, y2, y);
- max3[0] = mathMax2(x0, x2, x);
- max3[1] = mathMax2(y0, y2, y);
- }
- function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min3, max3) {
- var vec2Min = min;
- var vec2Max = max;
- var diff = Math.abs(startAngle - endAngle);
- if (diff % PI2 < 1e-4 && diff > 1e-4) {
- min3[0] = x - rx;
- min3[1] = y - ry;
- max3[0] = x + rx;
- max3[1] = y + ry;
- return;
- }
- start[0] = mathCos(startAngle) * rx + x;
- start[1] = mathSin(startAngle) * ry + y;
- end[0] = mathCos(endAngle) * rx + x;
- end[1] = mathSin(endAngle) * ry + y;
- vec2Min(min3, start, end);
- vec2Max(max3, start, end);
- startAngle = startAngle % PI2;
- if (startAngle < 0) {
- startAngle = startAngle + PI2;
- }
- endAngle = endAngle % PI2;
- if (endAngle < 0) {
- endAngle = endAngle + PI2;
- }
- if (startAngle > endAngle && !anticlockwise) {
- endAngle += PI2;
- } else if (startAngle < endAngle && anticlockwise) {
- startAngle += PI2;
- }
- if (anticlockwise) {
- var tmp = endAngle;
- endAngle = startAngle;
- startAngle = tmp;
- }
- for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {
- if (angle > startAngle) {
- extremity[0] = mathCos(angle) * rx + x;
- extremity[1] = mathSin(angle) * ry + y;
- vec2Min(min3, extremity, min3);
- vec2Max(max3, extremity, max3);
- }
- }
- }
- // node_modules/zrender/lib/core/PathProxy.js
- var CMD = {
- M: 1,
- L: 2,
- C: 3,
- Q: 4,
- A: 5,
- Z: 6,
- R: 7
- };
- var tmpOutX = [];
- var tmpOutY = [];
- var min2 = [];
- var max2 = [];
- var min22 = [];
- var max22 = [];
- var mathMin3 = Math.min;
- var mathMax3 = Math.max;
- var mathCos2 = Math.cos;
- var mathSin2 = Math.sin;
- var mathAbs = Math.abs;
- var PI = Math.PI;
- var PI22 = PI * 2;
- var hasTypedArray = typeof Float32Array !== "undefined";
- var tmpAngles = [];
- function modPI2(radian) {
- var n = Math.round(radian / PI * 1e8) / 1e8;
- return n % 2 * PI;
- }
- function normalizeArcAngles(angles, anticlockwise) {
- var newStartAngle = modPI2(angles[0]);
- if (newStartAngle < 0) {
- newStartAngle += PI22;
- }
- var delta = newStartAngle - angles[0];
- var newEndAngle = angles[1];
- newEndAngle += delta;
- if (!anticlockwise && newEndAngle - newStartAngle >= PI22) {
- newEndAngle = newStartAngle + PI22;
- } else if (anticlockwise && newStartAngle - newEndAngle >= PI22) {
- newEndAngle = newStartAngle - PI22;
- } else if (!anticlockwise && newStartAngle > newEndAngle) {
- newEndAngle = newStartAngle + (PI22 - modPI2(newStartAngle - newEndAngle));
- } else if (anticlockwise && newStartAngle < newEndAngle) {
- newEndAngle = newStartAngle - (PI22 - modPI2(newEndAngle - newStartAngle));
- }
- angles[0] = newStartAngle;
- angles[1] = newEndAngle;
- }
- var PathProxy = function() {
- function PathProxy2(notSaveData) {
- this.dpr = 1;
- this._xi = 0;
- this._yi = 0;
- this._x0 = 0;
- this._y0 = 0;
- this._len = 0;
- if (notSaveData) {
- this._saveData = false;
- }
- if (this._saveData) {
- this.data = [];
- }
- }
- PathProxy2.prototype.increaseVersion = function() {
- this._version++;
- };
- PathProxy2.prototype.getVersion = function() {
- return this._version;
- };
- PathProxy2.prototype.setScale = function(sx, sy, segmentIgnoreThreshold) {
- segmentIgnoreThreshold = segmentIgnoreThreshold || 0;
- if (segmentIgnoreThreshold > 0) {
- this._ux = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sx) || 0;
- this._uy = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sy) || 0;
- }
- };
- PathProxy2.prototype.setDPR = function(dpr2) {
- this.dpr = dpr2;
- };
- PathProxy2.prototype.setContext = function(ctx) {
- this._ctx = ctx;
- };
- PathProxy2.prototype.getContext = function() {
- return this._ctx;
- };
- PathProxy2.prototype.beginPath = function() {
- this._ctx && this._ctx.beginPath();
- this.reset();
- return this;
- };
- PathProxy2.prototype.reset = function() {
- if (this._saveData) {
- this._len = 0;
- }
- if (this._pathSegLen) {
- this._pathSegLen = null;
- this._pathLen = 0;
- }
- this._version++;
- };
- PathProxy2.prototype.moveTo = function(x, y) {
- this._drawPendingPt();
- this.addData(CMD.M, x, y);
- this._ctx && this._ctx.moveTo(x, y);
- this._x0 = x;
- this._y0 = y;
- this._xi = x;
- this._yi = y;
- return this;
- };
- PathProxy2.prototype.lineTo = function(x, y) {
- var dx = mathAbs(x - this._xi);
- var dy = mathAbs(y - this._yi);
- var exceedUnit = dx > this._ux || dy > this._uy;
- this.addData(CMD.L, x, y);
- if (this._ctx && exceedUnit) {
- this._ctx.lineTo(x, y);
- }
- if (exceedUnit) {
- this._xi = x;
- this._yi = y;
- this._pendingPtDist = 0;
- } else {
- var d2 = dx * dx + dy * dy;
- if (d2 > this._pendingPtDist) {
- this._pendingPtX = x;
- this._pendingPtY = y;
- this._pendingPtDist = d2;
- }
- }
- return this;
- };
- PathProxy2.prototype.bezierCurveTo = function(x1, y1, x2, y2, x3, y3) {
- this._drawPendingPt();
- this.addData(CMD.C, x1, y1, x2, y2, x3, y3);
- if (this._ctx) {
- this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);
- }
- this._xi = x3;
- this._yi = y3;
- return this;
- };
- PathProxy2.prototype.quadraticCurveTo = function(x1, y1, x2, y2) {
- this._drawPendingPt();
- this.addData(CMD.Q, x1, y1, x2, y2);
- if (this._ctx) {
- this._ctx.quadraticCurveTo(x1, y1, x2, y2);
- }
- this._xi = x2;
- this._yi = y2;
- return this;
- };
- PathProxy2.prototype.arc = function(cx, cy, r, startAngle, endAngle, anticlockwise) {
- this._drawPendingPt();
- tmpAngles[0] = startAngle;
- tmpAngles[1] = endAngle;
- normalizeArcAngles(tmpAngles, anticlockwise);
- startAngle = tmpAngles[0];
- endAngle = tmpAngles[1];
- var delta = endAngle - startAngle;
- this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);
- this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);
- this._xi = mathCos2(endAngle) * r + cx;
- this._yi = mathSin2(endAngle) * r + cy;
- return this;
- };
- PathProxy2.prototype.arcTo = function(x1, y1, x2, y2, radius) {
- this._drawPendingPt();
- if (this._ctx) {
- this._ctx.arcTo(x1, y1, x2, y2, radius);
- }
- return this;
- };
- PathProxy2.prototype.rect = function(x, y, w, h) {
- this._drawPendingPt();
- this._ctx && this._ctx.rect(x, y, w, h);
- this.addData(CMD.R, x, y, w, h);
- return this;
- };
- PathProxy2.prototype.closePath = function() {
- this._drawPendingPt();
- this.addData(CMD.Z);
- var ctx = this._ctx;
- var x0 = this._x0;
- var y0 = this._y0;
- if (ctx) {
- ctx.closePath();
- }
- this._xi = x0;
- this._yi = y0;
- return this;
- };
- PathProxy2.prototype.fill = function(ctx) {
- ctx && ctx.fill();
- this.toStatic();
- };
- PathProxy2.prototype.stroke = function(ctx) {
- ctx && ctx.stroke();
- this.toStatic();
- };
- PathProxy2.prototype.len = function() {
- return this._len;
- };
- PathProxy2.prototype.setData = function(data) {
- var len2 = data.length;
- if (!(this.data && this.data.length === len2) && hasTypedArray) {
- this.data = new Float32Array(len2);
- }
- for (var i = 0; i < len2; i++) {
- this.data[i] = data[i];
- }
- this._len = len2;
- };
- PathProxy2.prototype.appendPath = function(path) {
- if (!(path instanceof Array)) {
- path = [path];
- }
- var len2 = path.length;
- var appendSize = 0;
- var offset = this._len;
- for (var i = 0; i < len2; i++) {
- appendSize += path[i].len();
- }
- if (hasTypedArray && this.data instanceof Float32Array) {
- this.data = new Float32Array(offset + appendSize);
- }
- for (var i = 0; i < len2; i++) {
- var appendPathData = path[i].data;
- for (var k = 0; k < appendPathData.length; k++) {
- this.data[offset++] = appendPathData[k];
- }
- }
- this._len = offset;
- };
- PathProxy2.prototype.addData = function(cmd, a, b, c, d, e, f, g, h) {
- if (!this._saveData) {
- return;
- }
- var data = this.data;
- if (this._len + arguments.length > data.length) {
- this._expandData();
- data = this.data;
- }
- for (var i = 0; i < arguments.length; i++) {
- data[this._len++] = arguments[i];
- }
- };
- PathProxy2.prototype._drawPendingPt = function() {
- if (this._pendingPtDist > 0) {
- this._ctx && this._ctx.lineTo(this._pendingPtX, this._pendingPtY);
- this._pendingPtDist = 0;
- }
- };
- PathProxy2.prototype._expandData = function() {
- if (!(this.data instanceof Array)) {
- var newData = [];
- for (var i = 0; i < this._len; i++) {
- newData[i] = this.data[i];
- }
- this.data = newData;
- }
- };
- PathProxy2.prototype.toStatic = function() {
- if (!this._saveData) {
- return;
- }
- this._drawPendingPt();
- var data = this.data;
- if (data instanceof Array) {
- data.length = this._len;
- if (hasTypedArray && this._len > 11) {
- this.data = new Float32Array(data);
- }
- }
- };
- PathProxy2.prototype.getBoundingRect = function() {
- min2[0] = min2[1] = min22[0] = min22[1] = Number.MAX_VALUE;
- max2[0] = max2[1] = max22[0] = max22[1] = -Number.MAX_VALUE;
- var data = this.data;
- var xi = 0;
- var yi = 0;
- var x0 = 0;
- var y0 = 0;
- var i;
- for (i = 0; i < this._len; ) {
- var cmd = data[i++];
- var isFirst = i === 1;
- if (isFirst) {
- xi = data[i];
- yi = data[i + 1];
- x0 = xi;
- y0 = yi;
- }
- switch (cmd) {
- case CMD.M:
- xi = x0 = data[i++];
- yi = y0 = data[i++];
- min22[0] = x0;
- min22[1] = y0;
- max22[0] = x0;
- max22[1] = y0;
- break;
- case CMD.L:
- fromLine(xi, yi, data[i], data[i + 1], min22, max22);
- xi = data[i++];
- yi = data[i++];
- break;
- case CMD.C:
- fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min22, max22);
- xi = data[i++];
- yi = data[i++];
- break;
- case CMD.Q:
- fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min22, max22);
- xi = data[i++];
- yi = data[i++];
- break;
- case CMD.A:
- var cx = data[i++];
- var cy = data[i++];
- var rx = data[i++];
- var ry = data[i++];
- var startAngle = data[i++];
- var endAngle = data[i++] + startAngle;
- i += 1;
- var anticlockwise = !data[i++];
- if (isFirst) {
- x0 = mathCos2(startAngle) * rx + cx;
- y0 = mathSin2(startAngle) * ry + cy;
- }
- fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min22, max22);
- xi = mathCos2(endAngle) * rx + cx;
- yi = mathSin2(endAngle) * ry + cy;
- break;
- case CMD.R:
- x0 = xi = data[i++];
- y0 = yi = data[i++];
- var width = data[i++];
- var height = data[i++];
- fromLine(x0, y0, x0 + width, y0 + height, min22, max22);
- break;
- case CMD.Z:
- xi = x0;
- yi = y0;
- break;
- }
- min(min2, min2, min22);
- max(max2, max2, max22);
- }
- if (i === 0) {
- min2[0] = min2[1] = max2[0] = max2[1] = 0;
- }
- return new BoundingRect_default(min2[0], min2[1], max2[0] - min2[0], max2[1] - min2[1]);
- };
- PathProxy2.prototype._calculateLength = function() {
- var data = this.data;
- var len2 = this._len;
- var ux = this._ux;
- var uy = this._uy;
- var xi = 0;
- var yi = 0;
- var x0 = 0;
- var y0 = 0;
- if (!this._pathSegLen) {
- this._pathSegLen = [];
- }
- var pathSegLen = this._pathSegLen;
- var pathTotalLen = 0;
- var segCount = 0;
- for (var i = 0; i < len2; ) {
- var cmd = data[i++];
- var isFirst = i === 1;
- if (isFirst) {
- xi = data[i];
- yi = data[i + 1];
- x0 = xi;
- y0 = yi;
- }
- var l = -1;
- switch (cmd) {
- case CMD.M:
- xi = x0 = data[i++];
- yi = y0 = data[i++];
- break;
- case CMD.L: {
- var x2 = data[i++];
- var y2 = data[i++];
- var dx = x2 - xi;
- var dy = y2 - yi;
- if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len2 - 1) {
- l = Math.sqrt(dx * dx + dy * dy);
- xi = x2;
- yi = y2;
- }
- break;
- }
- case CMD.C: {
- var x1 = data[i++];
- var y1 = data[i++];
- var x2 = data[i++];
- var y2 = data[i++];
- var x3 = data[i++];
- var y3 = data[i++];
- l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);
- xi = x3;
- yi = y3;
- break;
- }
- case CMD.Q: {
- var x1 = data[i++];
- var y1 = data[i++];
- var x2 = data[i++];
- var y2 = data[i++];
- l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);
- xi = x2;
- yi = y2;
- break;
- }
- case CMD.A:
- var cx = data[i++];
- var cy = data[i++];
- var rx = data[i++];
- var ry = data[i++];
- var startAngle = data[i++];
- var delta = data[i++];
- var endAngle = delta + startAngle;
- i += 1;
- var anticlockwise = !data[i++];
- if (isFirst) {
- x0 = mathCos2(startAngle) * rx + cx;
- y0 = mathSin2(startAngle) * ry + cy;
- }
- l = mathMax3(rx, ry) * mathMin3(PI22, Math.abs(delta));
- xi = mathCos2(endAngle) * rx + cx;
- yi = mathSin2(endAngle) * ry + cy;
- break;
- case CMD.R: {
- x0 = xi = data[i++];
- y0 = yi = data[i++];
- var width = data[i++];
- var height = data[i++];
- l = width * 2 + height * 2;
- break;
- }
- case CMD.Z: {
- var dx = x0 - xi;
- var dy = y0 - yi;
- l = Math.sqrt(dx * dx + dy * dy);
- xi = x0;
- yi = y0;
- break;
- }
- }
- if (l >= 0) {
- pathSegLen[segCount++] = l;
- pathTotalLen += l;
- }
- }
- this._pathLen = pathTotalLen;
- return pathTotalLen;
- };
- PathProxy2.prototype.rebuildPath = function(ctx, percent) {
- var d = this.data;
- var ux = this._ux;
- var uy = this._uy;
- var len2 = this._len;
- var x0;
- var y0;
- var xi;
- var yi;
- var x;
- var y;
- var drawPart = percent < 1;
- var pathSegLen;
- var pathTotalLen;
- var accumLength = 0;
- var segCount = 0;
- var displayedLength;
- var pendingPtDist = 0;
- var pendingPtX;
- var pendingPtY;
- if (drawPart) {
- if (!this._pathSegLen) {
- this._calculateLength();
- }
- pathSegLen = this._pathSegLen;
- pathTotalLen = this._pathLen;
- displayedLength = percent * pathTotalLen;
- if (!displayedLength) {
- return;
- }
- }
- lo:
- for (var i = 0; i < len2; ) {
- var cmd = d[i++];
- var isFirst = i === 1;
- if (isFirst) {
- xi = d[i];
- yi = d[i + 1];
- x0 = xi;
- y0 = yi;
- }
- if (cmd !== CMD.L && pendingPtDist > 0) {
- ctx.lineTo(pendingPtX, pendingPtY);
- pendingPtDist = 0;
- }
- switch (cmd) {
- case CMD.M:
- x0 = xi = d[i++];
- y0 = yi = d[i++];
- ctx.moveTo(xi, yi);
- break;
- case CMD.L: {
- x = d[i++];
- y = d[i++];
- var dx = mathAbs(x - xi);
- var dy = mathAbs(y - yi);
- if (dx > ux || dy > uy) {
- if (drawPart) {
- var l = pathSegLen[segCount++];
- if (accumLength + l > displayedLength) {
- var t = (displayedLength - accumLength) / l;
- ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);
- break lo;
- }
- accumLength += l;
- }
- ctx.lineTo(x, y);
- xi = x;
- yi = y;
- pendingPtDist = 0;
- } else {
- var d2 = dx * dx + dy * dy;
- if (d2 > pendingPtDist) {
- pendingPtX = x;
- pendingPtY = y;
- pendingPtDist = d2;
- }
- }
- break;
- }
- case CMD.C: {
- var x1 = d[i++];
- var y1 = d[i++];
- var x2 = d[i++];
- var y2 = d[i++];
- var x3 = d[i++];
- var y3 = d[i++];
- if (drawPart) {
- var l = pathSegLen[segCount++];
- if (accumLength + l > displayedLength) {
- var t = (displayedLength - accumLength) / l;
- cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);
- cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);
- ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);
- break lo;
- }
- accumLength += l;
- }
- ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);
- xi = x3;
- yi = y3;
- break;
- }
- case CMD.Q: {
- var x1 = d[i++];
- var y1 = d[i++];
- var x2 = d[i++];
- var y2 = d[i++];
- if (drawPart) {
- var l = pathSegLen[segCount++];
- if (accumLength + l > displayedLength) {
- var t = (displayedLength - accumLength) / l;
- quadraticSubdivide(xi, x1, x2, t, tmpOutX);
- quadraticSubdivide(yi, y1, y2, t, tmpOutY);
- ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);
- break lo;
- }
- accumLength += l;
- }
- ctx.quadraticCurveTo(x1, y1, x2, y2);
- xi = x2;
- yi = y2;
- break;
- }
- case CMD.A:
- var cx = d[i++];
- var cy = d[i++];
- var rx = d[i++];
- var ry = d[i++];
- var startAngle = d[i++];
- var delta = d[i++];
- var psi = d[i++];
- var anticlockwise = !d[i++];
- var r = rx > ry ? rx : ry;
- var isEllipse = mathAbs(rx - ry) > 1e-3;
- var endAngle = startAngle + delta;
- var breakBuild = false;
- if (drawPart) {
- var l = pathSegLen[segCount++];
- if (accumLength + l > displayedLength) {
- endAngle = startAngle + delta * (displayedLength - accumLength) / l;
- breakBuild = true;
- }
- accumLength += l;
- }
- if (isEllipse && ctx.ellipse) {
- ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);
- } else {
- ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);
- }
- if (breakBuild) {
- break lo;
- }
- if (isFirst) {
- x0 = mathCos2(startAngle) * rx + cx;
- y0 = mathSin2(startAngle) * ry + cy;
- }
- xi = mathCos2(endAngle) * rx + cx;
- yi = mathSin2(endAngle) * ry + cy;
- break;
- case CMD.R:
- x0 = xi = d[i];
- y0 = yi = d[i + 1];
- x = d[i++];
- y = d[i++];
- var width = d[i++];
- var height = d[i++];
- if (drawPart) {
- var l = pathSegLen[segCount++];
- if (accumLength + l > displayedLength) {
- var d_1 = displayedLength - accumLength;
- ctx.moveTo(x, y);
- ctx.lineTo(x + mathMin3(d_1, width), y);
- d_1 -= width;
- if (d_1 > 0) {
- ctx.lineTo(x + width, y + mathMin3(d_1, height));
- }
- d_1 -= height;
- if (d_1 > 0) {
- ctx.lineTo(x + mathMax3(width - d_1, 0), y + height);
- }
- d_1 -= width;
- if (d_1 > 0) {
- ctx.lineTo(x, y + mathMax3(height - d_1, 0));
- }
- break lo;
- }
- accumLength += l;
- }
- ctx.rect(x, y, width, height);
- break;
- case CMD.Z:
- if (drawPart) {
- var l = pathSegLen[segCount++];
- if (accumLength + l > displayedLength) {
- var t = (displayedLength - accumLength) / l;
- ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);
- break lo;
- }
- accumLength += l;
- }
- ctx.closePath();
- xi = x0;
- yi = y0;
- }
- }
- };
- PathProxy2.prototype.clone = function() {
- var newProxy = new PathProxy2();
- var data = this.data;
- newProxy.data = data.slice ? data.slice() : Array.prototype.slice.call(data);
- newProxy._len = this._len;
- return newProxy;
- };
- PathProxy2.CMD = CMD;
- PathProxy2.initDefaultProps = function() {
- var proto = PathProxy2.prototype;
- proto._saveData = true;
- proto._ux = 0;
- proto._uy = 0;
- proto._pendingPtDist = 0;
- proto._version = 0;
- }();
- return PathProxy2;
- }();
- var PathProxy_default = PathProxy;
- // node_modules/zrender/lib/graphic/helper/image.js
- init_define_APP_INFO();
- var globalImageCache = new LRU_default(50);
- function findExistImage(newImageOrSrc) {
- if (typeof newImageOrSrc === "string") {
- var cachedImgObj = globalImageCache.get(newImageOrSrc);
- return cachedImgObj && cachedImgObj.image;
- } else {
- return newImageOrSrc;
- }
- }
- function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {
- if (!newImageOrSrc) {
- return image;
- } else if (typeof newImageOrSrc === "string") {
- if (image && image.__zrImageSrc === newImageOrSrc || !hostEl) {
- return image;
- }
- var cachedImgObj = globalImageCache.get(newImageOrSrc);
- var pendingWrap = { hostEl, cb: onload, cbPayload };
- if (cachedImgObj) {
- image = cachedImgObj.image;
- !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);
- } else {
- image = platformApi.loadImage(newImageOrSrc, imageOnLoad, imageOnLoad);
- image.__zrImageSrc = newImageOrSrc;
- globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {
- image,
- pending: [pendingWrap]
- });
- }
- return image;
- } else {
- return newImageOrSrc;
- }
- }
- function imageOnLoad() {
- var cachedImgObj = this.__cachedImgObj;
- this.onload = this.onerror = this.__cachedImgObj = null;
- for (var i = 0; i < cachedImgObj.pending.length; i++) {
- var pendingWrap = cachedImgObj.pending[i];
- var cb = pendingWrap.cb;
- cb && cb(this, pendingWrap.cbPayload);
- pendingWrap.hostEl.dirty();
- }
- cachedImgObj.pending.length = 0;
- }
- function isImageReady(image) {
- return image && image.width && image.height;
- }
- // node_modules/zrender/lib/canvas/helper.js
- init_define_APP_INFO();
- function isSafeNum(num) {
- return isFinite(num);
- }
- function createLinearGradient(ctx, obj, rect) {
- var x = obj.x == null ? 0 : obj.x;
- var x2 = obj.x2 == null ? 1 : obj.x2;
- var y = obj.y == null ? 0 : obj.y;
- var y2 = obj.y2 == null ? 0 : obj.y2;
- if (!obj.global) {
- x = x * rect.width + rect.x;
- x2 = x2 * rect.width + rect.x;
- y = y * rect.height + rect.y;
- y2 = y2 * rect.height + rect.y;
- }
- x = isSafeNum(x) ? x : 0;
- x2 = isSafeNum(x2) ? x2 : 1;
- y = isSafeNum(y) ? y : 0;
- y2 = isSafeNum(y2) ? y2 : 0;
- var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);
- return canvasGradient;
- }
- function createRadialGradient(ctx, obj, rect) {
- var width = rect.width;
- var height = rect.height;
- var min3 = Math.min(width, height);
- var x = obj.x == null ? 0.5 : obj.x;
- var y = obj.y == null ? 0.5 : obj.y;
- var r = obj.r == null ? 0.5 : obj.r;
- if (!obj.global) {
- x = x * width + rect.x;
- y = y * height + rect.y;
- r = r * min3;
- }
- x = isSafeNum(x) ? x : 0.5;
- y = isSafeNum(y) ? y : 0.5;
- r = r >= 0 && isSafeNum(r) ? r : 0.5;
- var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);
- return canvasGradient;
- }
- function getCanvasGradient(ctx, obj, rect) {
- var canvasGradient = obj.type === "radial" ? createRadialGradient(ctx, obj, rect) : createLinearGradient(ctx, obj, rect);
- var colorStops = obj.colorStops;
- for (var i = 0; i < colorStops.length; i++) {
- canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);
- }
- return canvasGradient;
- }
- function isClipPathChanged(clipPaths, prevClipPaths) {
- if (clipPaths === prevClipPaths || !clipPaths && !prevClipPaths) {
- return false;
- }
- if (!clipPaths || !prevClipPaths || clipPaths.length !== prevClipPaths.length) {
- return true;
- }
- for (var i = 0; i < clipPaths.length; i++) {
- if (clipPaths[i] !== prevClipPaths[i]) {
- return true;
- }
- }
- return false;
- }
- function parseInt10(val) {
- return parseInt(val, 10);
- }
- function getSize(root, whIdx, opts) {
- var wh = ["width", "height"][whIdx];
- var cwh = ["clientWidth", "clientHeight"][whIdx];
- var plt = ["paddingLeft", "paddingTop"][whIdx];
- var prb = ["paddingRight", "paddingBottom"][whIdx];
- if (opts[wh] != null && opts[wh] !== "auto") {
- return parseFloat(opts[wh]);
- }
- var stl = document.defaultView.getComputedStyle(root);
- return (root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh])) - (parseInt10(stl[plt]) || 0) - (parseInt10(stl[prb]) || 0) | 0;
- }
- // node_modules/zrender/lib/graphic/Path.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/contain/path.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/contain/line.js
- init_define_APP_INFO();
- function containStroke(x0, y0, x1, y1, lineWidth, x, y) {
- if (lineWidth === 0) {
- return false;
- }
- var _l = lineWidth;
- var _a = 0;
- var _b = x0;
- if (y > y0 + _l && y > y1 + _l || y < y0 - _l && y < y1 - _l || x > x0 + _l && x > x1 + _l || x < x0 - _l && x < x1 - _l) {
- return false;
- }
- if (x0 !== x1) {
- _a = (y0 - y1) / (x0 - x1);
- _b = (x0 * y1 - x1 * y0) / (x0 - x1);
- } else {
- return Math.abs(x - x0) <= _l / 2;
- }
- var tmp = _a * x - y + _b;
- var _s = tmp * tmp / (_a * _a + 1);
- return _s <= _l / 2 * _l / 2;
- }
- // node_modules/zrender/lib/contain/cubic.js
- init_define_APP_INFO();
- function containStroke2(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {
- if (lineWidth === 0) {
- return false;
- }
- var _l = lineWidth;
- if (y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l) {
- return false;
- }
- var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);
- return d <= _l / 2;
- }
- // node_modules/zrender/lib/contain/quadratic.js
- init_define_APP_INFO();
- function containStroke3(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {
- if (lineWidth === 0) {
- return false;
- }
- var _l = lineWidth;
- if (y > y0 + _l && y > y1 + _l && y > y2 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l) {
- return false;
- }
- var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);
- return d <= _l / 2;
- }
- // node_modules/zrender/lib/contain/arc.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/contain/util.js
- init_define_APP_INFO();
- var PI23 = Math.PI * 2;
- function normalizeRadian(angle) {
- angle %= PI23;
- if (angle < 0) {
- angle += PI23;
- }
- return angle;
- }
- // node_modules/zrender/lib/contain/arc.js
- var PI24 = Math.PI * 2;
- function containStroke4(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {
- if (lineWidth === 0) {
- return false;
- }
- var _l = lineWidth;
- x -= cx;
- y -= cy;
- var d = Math.sqrt(x * x + y * y);
- if (d - _l > r || d + _l < r) {
- return false;
- }
- if (Math.abs(startAngle - endAngle) % PI24 < 1e-4) {
- return true;
- }
- if (anticlockwise) {
- var tmp = startAngle;
- startAngle = normalizeRadian(endAngle);
- endAngle = normalizeRadian(tmp);
- } else {
- startAngle = normalizeRadian(startAngle);
- endAngle = normalizeRadian(endAngle);
- }
- if (startAngle > endAngle) {
- endAngle += PI24;
- }
- var angle = Math.atan2(y, x);
- if (angle < 0) {
- angle += PI24;
- }
- return angle >= startAngle && angle <= endAngle || angle + PI24 >= startAngle && angle + PI24 <= endAngle;
- }
- // node_modules/zrender/lib/contain/windingLine.js
- init_define_APP_INFO();
- function windingLine(x0, y0, x1, y1, x, y) {
- if (y > y0 && y > y1 || y < y0 && y < y1) {
- return 0;
- }
- if (y1 === y0) {
- return 0;
- }
- var t = (y - y0) / (y1 - y0);
- var dir = y1 < y0 ? 1 : -1;
- if (t === 1 || t === 0) {
- dir = y1 < y0 ? 0.5 : -0.5;
- }
- var x_ = t * (x1 - x0) + x0;
- return x_ === x ? Infinity : x_ > x ? dir : 0;
- }
- // node_modules/zrender/lib/contain/path.js
- var CMD2 = PathProxy_default.CMD;
- var PI25 = Math.PI * 2;
- var EPSILON4 = 1e-4;
- function isAroundEqual(a, b) {
- return Math.abs(a - b) < EPSILON4;
- }
- var roots = [-1, -1, -1];
- var extrema = [-1, -1];
- function swapExtrema() {
- var tmp = extrema[0];
- extrema[0] = extrema[1];
- extrema[1] = tmp;
- }
- function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {
- if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) {
- return 0;
- }
- var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots);
- if (nRoots === 0) {
- return 0;
- } else {
- var w = 0;
- var nExtrema = -1;
- var y0_ = void 0;
- var y1_ = void 0;
- for (var i = 0; i < nRoots; i++) {
- var t = roots[i];
- var unit = t === 0 || t === 1 ? 0.5 : 1;
- var x_ = cubicAt(x0, x1, x2, x3, t);
- if (x_ < x) {
- continue;
- }
- if (nExtrema < 0) {
- nExtrema = cubicExtrema(y0, y1, y2, y3, extrema);
- if (extrema[1] < extrema[0] && nExtrema > 1) {
- swapExtrema();
- }
- y0_ = cubicAt(y0, y1, y2, y3, extrema[0]);
- if (nExtrema > 1) {
- y1_ = cubicAt(y0, y1, y2, y3, extrema[1]);
- }
- }
- if (nExtrema === 2) {
- if (t < extrema[0]) {
- w += y0_ < y0 ? unit : -unit;
- } else if (t < extrema[1]) {
- w += y1_ < y0_ ? unit : -unit;
- } else {
- w += y3 < y1_ ? unit : -unit;
- }
- } else {
- if (t < extrema[0]) {
- w += y0_ < y0 ? unit : -unit;
- } else {
- w += y3 < y0_ ? unit : -unit;
- }
- }
- }
- return w;
- }
- }
- function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {
- if (y > y0 && y > y1 && y > y2 || y < y0 && y < y1 && y < y2) {
- return 0;
- }
- var nRoots = quadraticRootAt(y0, y1, y2, y, roots);
- if (nRoots === 0) {
- return 0;
- } else {
- var t = quadraticExtremum(y0, y1, y2);
- if (t >= 0 && t <= 1) {
- var w = 0;
- var y_ = quadraticAt(y0, y1, y2, t);
- for (var i = 0; i < nRoots; i++) {
- var unit = roots[i] === 0 || roots[i] === 1 ? 0.5 : 1;
- var x_ = quadraticAt(x0, x1, x2, roots[i]);
- if (x_ < x) {
- continue;
- }
- if (roots[i] < t) {
- w += y_ < y0 ? unit : -unit;
- } else {
- w += y2 < y_ ? unit : -unit;
- }
- }
- return w;
- } else {
- var unit = roots[0] === 0 || roots[0] === 1 ? 0.5 : 1;
- var x_ = quadraticAt(x0, x1, x2, roots[0]);
- if (x_ < x) {
- return 0;
- }
- return y2 < y0 ? unit : -unit;
- }
- }
- }
- function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {
- y -= cy;
- if (y > r || y < -r) {
- return 0;
- }
- var tmp = Math.sqrt(r * r - y * y);
- roots[0] = -tmp;
- roots[1] = tmp;
- var dTheta = Math.abs(startAngle - endAngle);
- if (dTheta < 1e-4) {
- return 0;
- }
- if (dTheta >= PI25 - 1e-4) {
- startAngle = 0;
- endAngle = PI25;
- var dir = anticlockwise ? 1 : -1;
- if (x >= roots[0] + cx && x <= roots[1] + cx) {
- return dir;
- } else {
- return 0;
- }
- }
- if (startAngle > endAngle) {
- var tmp_1 = startAngle;
- startAngle = endAngle;
- endAngle = tmp_1;
- }
- if (startAngle < 0) {
- startAngle += PI25;
- endAngle += PI25;
- }
- var w = 0;
- for (var i = 0; i < 2; i++) {
- var x_ = roots[i];
- if (x_ + cx > x) {
- var angle = Math.atan2(y, x_);
- var dir = anticlockwise ? 1 : -1;
- if (angle < 0) {
- angle = PI25 + angle;
- }
- if (angle >= startAngle && angle <= endAngle || angle + PI25 >= startAngle && angle + PI25 <= endAngle) {
- if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {
- dir = -dir;
- }
- w += dir;
- }
- }
- }
- return w;
- }
- function containPath(path, lineWidth, isStroke, x, y) {
- var data = path.data;
- var len2 = path.len();
- var w = 0;
- var xi = 0;
- var yi = 0;
- var x0 = 0;
- var y0 = 0;
- var x1;
- var y1;
- for (var i = 0; i < len2; ) {
- var cmd = data[i++];
- var isFirst = i === 1;
- if (cmd === CMD2.M && i > 1) {
- if (!isStroke) {
- w += windingLine(xi, yi, x0, y0, x, y);
- }
- }
- if (isFirst) {
- xi = data[i];
- yi = data[i + 1];
- x0 = xi;
- y0 = yi;
- }
- switch (cmd) {
- case CMD2.M:
- x0 = data[i++];
- y0 = data[i++];
- xi = x0;
- yi = y0;
- break;
- case CMD2.L:
- if (isStroke) {
- if (containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {
- return true;
- }
- } else {
- w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;
- }
- xi = data[i++];
- yi = data[i++];
- break;
- case CMD2.C:
- if (isStroke) {
- if (containStroke2(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {
- return true;
- }
- } else {
- w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;
- }
- xi = data[i++];
- yi = data[i++];
- break;
- case CMD2.Q:
- if (isStroke) {
- if (containStroke3(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {
- return true;
- }
- } else {
- w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;
- }
- xi = data[i++];
- yi = data[i++];
- break;
- case CMD2.A:
- var cx = data[i++];
- var cy = data[i++];
- var rx = data[i++];
- var ry = data[i++];
- var theta = data[i++];
- var dTheta = data[i++];
- i += 1;
- var anticlockwise = !!(1 - data[i++]);
- x1 = Math.cos(theta) * rx + cx;
- y1 = Math.sin(theta) * ry + cy;
- if (!isFirst) {
- w += windingLine(xi, yi, x1, y1, x, y);
- } else {
- x0 = x1;
- y0 = y1;
- }
- var _x = (x - cx) * ry / rx + cx;
- if (isStroke) {
- if (containStroke4(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {
- return true;
- }
- } else {
- w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);
- }
- xi = Math.cos(theta + dTheta) * rx + cx;
- yi = Math.sin(theta + dTheta) * ry + cy;
- break;
- case CMD2.R:
- x0 = xi = data[i++];
- y0 = yi = data[i++];
- var width = data[i++];
- var height = data[i++];
- x1 = x0 + width;
- y1 = y0 + height;
- if (isStroke) {
- if (containStroke(x0, y0, x1, y0, lineWidth, x, y) || containStroke(x1, y0, x1, y1, lineWidth, x, y) || containStroke(x1, y1, x0, y1, lineWidth, x, y) || containStroke(x0, y1, x0, y0, lineWidth, x, y)) {
- return true;
- }
- } else {
- w += windingLine(x1, y0, x1, y1, x, y);
- w += windingLine(x0, y1, x0, y0, x, y);
- }
- break;
- case CMD2.Z:
- if (isStroke) {
- if (containStroke(xi, yi, x0, y0, lineWidth, x, y)) {
- return true;
- }
- } else {
- w += windingLine(xi, yi, x0, y0, x, y);
- }
- xi = x0;
- yi = y0;
- break;
- }
- }
- if (!isStroke && !isAroundEqual(yi, y0)) {
- w += windingLine(xi, yi, x0, y0, x, y) || 0;
- }
- return w !== 0;
- }
- function contain(pathProxy, x, y) {
- return containPath(pathProxy, 0, false, x, y);
- }
- function containStroke5(pathProxy, lineWidth, x, y) {
- return containPath(pathProxy, lineWidth, true, x, y);
- }
- // node_modules/zrender/lib/graphic/Path.js
- var DEFAULT_PATH_STYLE = defaults({
- fill: "#000",
- stroke: null,
- strokePercent: 1,
- fillOpacity: 1,
- strokeOpacity: 1,
- lineDashOffset: 0,
- lineWidth: 1,
- lineCap: "butt",
- miterLimit: 10,
- strokeNoScale: false,
- strokeFirst: false
- }, DEFAULT_COMMON_STYLE);
- var DEFAULT_PATH_ANIMATION_PROPS = {
- style: defaults({
- fill: true,
- stroke: true,
- strokePercent: true,
- fillOpacity: true,
- strokeOpacity: true,
- lineDashOffset: true,
- lineWidth: true,
- miterLimit: true
- }, DEFAULT_COMMON_ANIMATION_PROPS.style)
- };
- var pathCopyParams = TRANSFORMABLE_PROPS.concat([
- "invisible",
- "culling",
- "z",
- "z2",
- "zlevel",
- "parent"
- ]);
- var Path = function(_super) {
- __extends(Path2, _super);
- function Path2(opts) {
- return _super.call(this, opts) || this;
- }
- Path2.prototype.update = function() {
- var _this = this;
- _super.prototype.update.call(this);
- var style = this.style;
- if (style.decal) {
- var decalEl = this._decalEl = this._decalEl || new Path2();
- if (decalEl.buildPath === Path2.prototype.buildPath) {
- decalEl.buildPath = function(ctx) {
- _this.buildPath(ctx, _this.shape);
- };
- }
- decalEl.silent = true;
- var decalElStyle = decalEl.style;
- for (var key in style) {
- if (decalElStyle[key] !== style[key]) {
- decalElStyle[key] = style[key];
- }
- }
- decalElStyle.fill = style.fill ? style.decal : null;
- decalElStyle.decal = null;
- decalElStyle.shadowColor = null;
- style.strokeFirst && (decalElStyle.stroke = null);
- for (var i = 0; i < pathCopyParams.length; ++i) {
- decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];
- }
- decalEl.__dirty |= REDRAW_BIT;
- } else if (this._decalEl) {
- this._decalEl = null;
- }
- };
- Path2.prototype.getDecalElement = function() {
- return this._decalEl;
- };
- Path2.prototype._init = function(props) {
- var keysArr = keys(props);
- this.shape = this.getDefaultShape();
- var defaultStyle = this.getDefaultStyle();
- if (defaultStyle) {
- this.useStyle(defaultStyle);
- }
- for (var i = 0; i < keysArr.length; i++) {
- var key = keysArr[i];
- var value = props[key];
- if (key === "style") {
- if (!this.style) {
- this.useStyle(value);
- } else {
- extend(this.style, value);
- }
- } else if (key === "shape") {
- extend(this.shape, value);
- } else {
- _super.prototype.attrKV.call(this, key, value);
- }
- }
- if (!this.style) {
- this.useStyle({});
- }
- };
- Path2.prototype.getDefaultStyle = function() {
- return null;
- };
- Path2.prototype.getDefaultShape = function() {
- return {};
- };
- Path2.prototype.canBeInsideText = function() {
- return this.hasFill();
- };
- Path2.prototype.getInsideTextFill = function() {
- var pathFill = this.style.fill;
- if (pathFill !== "none") {
- if (isString(pathFill)) {
- var fillLum = lum(pathFill, 0);
- if (fillLum > 0.5) {
- return DARK_LABEL_COLOR;
- } else if (fillLum > 0.2) {
- return LIGHTER_LABEL_COLOR;
- }
- return LIGHT_LABEL_COLOR;
- } else if (pathFill) {
- return LIGHT_LABEL_COLOR;
- }
- }
- return DARK_LABEL_COLOR;
- };
- Path2.prototype.getInsideTextStroke = function(textFill) {
- var pathFill = this.style.fill;
- if (isString(pathFill)) {
- var zr = this.__zr;
- var isDarkMode = !!(zr && zr.isDarkMode());
- var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;
- if (isDarkMode === isDarkLabel) {
- return pathFill;
- }
- }
- };
- Path2.prototype.buildPath = function(ctx, shapeCfg, inBatch) {
- };
- Path2.prototype.pathUpdated = function() {
- this.__dirty &= ~SHAPE_CHANGED_BIT;
- };
- Path2.prototype.getUpdatedPathProxy = function(inBatch) {
- !this.path && this.createPathProxy();
- this.path.beginPath();
- this.buildPath(this.path, this.shape, inBatch);
- return this.path;
- };
- Path2.prototype.createPathProxy = function() {
- this.path = new PathProxy_default(false);
- };
- Path2.prototype.hasStroke = function() {
- var style = this.style;
- var stroke = style.stroke;
- return !(stroke == null || stroke === "none" || !(style.lineWidth > 0));
- };
- Path2.prototype.hasFill = function() {
- var style = this.style;
- var fill = style.fill;
- return fill != null && fill !== "none";
- };
- Path2.prototype.getBoundingRect = function() {
- var rect = this._rect;
- var style = this.style;
- var needsUpdateRect = !rect;
- if (needsUpdateRect) {
- var firstInvoke = false;
- if (!this.path) {
- firstInvoke = true;
- this.createPathProxy();
- }
- var path = this.path;
- if (firstInvoke || this.__dirty & SHAPE_CHANGED_BIT) {
- path.beginPath();
- this.buildPath(path, this.shape, false);
- this.pathUpdated();
- }
- rect = path.getBoundingRect();
- }
- this._rect = rect;
- if (this.hasStroke() && this.path && this.path.len() > 0) {
- var rectStroke = this._rectStroke || (this._rectStroke = rect.clone());
- if (this.__dirty || needsUpdateRect) {
- rectStroke.copy(rect);
- var lineScale = style.strokeNoScale ? this.getLineScale() : 1;
- var w = style.lineWidth;
- if (!this.hasFill()) {
- var strokeContainThreshold = this.strokeContainThreshold;
- w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);
- }
- if (lineScale > 1e-10) {
- rectStroke.width += w / lineScale;
- rectStroke.height += w / lineScale;
- rectStroke.x -= w / lineScale / 2;
- rectStroke.y -= w / lineScale / 2;
- }
- }
- return rectStroke;
- }
- return rect;
- };
- Path2.prototype.contain = function(x, y) {
- var localPos = this.transformCoordToLocal(x, y);
- var rect = this.getBoundingRect();
- var style = this.style;
- x = localPos[0];
- y = localPos[1];
- if (rect.contain(x, y)) {
- var pathProxy = this.path;
- if (this.hasStroke()) {
- var lineWidth = style.lineWidth;
- var lineScale = style.strokeNoScale ? this.getLineScale() : 1;
- if (lineScale > 1e-10) {
- if (!this.hasFill()) {
- lineWidth = Math.max(lineWidth, this.strokeContainThreshold);
- }
- if (containStroke5(pathProxy, lineWidth / lineScale, x, y)) {
- return true;
- }
- }
- }
- if (this.hasFill()) {
- return contain(pathProxy, x, y);
- }
- }
- return false;
- };
- Path2.prototype.dirtyShape = function() {
- this.__dirty |= SHAPE_CHANGED_BIT;
- if (this._rect) {
- this._rect = null;
- }
- if (this._decalEl) {
- this._decalEl.dirtyShape();
- }
- this.markRedraw();
- };
- Path2.prototype.dirty = function() {
- this.dirtyStyle();
- this.dirtyShape();
- };
- Path2.prototype.animateShape = function(loop) {
- return this.animate("shape", loop);
- };
- Path2.prototype.updateDuringAnimation = function(targetKey) {
- if (targetKey === "style") {
- this.dirtyStyle();
- } else if (targetKey === "shape") {
- this.dirtyShape();
- } else {
- this.markRedraw();
- }
- };
- Path2.prototype.attrKV = function(key, value) {
- if (key === "shape") {
- this.setShape(value);
- } else {
- _super.prototype.attrKV.call(this, key, value);
- }
- };
- Path2.prototype.setShape = function(keyOrObj, value) {
- var shape = this.shape;
- if (!shape) {
- shape = this.shape = {};
- }
- if (typeof keyOrObj === "string") {
- shape[keyOrObj] = value;
- } else {
- extend(shape, keyOrObj);
- }
- this.dirtyShape();
- return this;
- };
- Path2.prototype.shapeChanged = function() {
- return !!(this.__dirty & SHAPE_CHANGED_BIT);
- };
- Path2.prototype.createStyle = function(obj) {
- return createObject(DEFAULT_PATH_STYLE, obj);
- };
- Path2.prototype._innerSaveToNormal = function(toState) {
- _super.prototype._innerSaveToNormal.call(this, toState);
- var normalState = this._normalState;
- if (toState.shape && !normalState.shape) {
- normalState.shape = extend({}, this.shape);
- }
- };
- Path2.prototype._applyStateObj = function(stateName, state, normalState, keepCurrentStates, transition, animationCfg) {
- _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);
- var needsRestoreToNormal = !(state && keepCurrentStates);
- var targetShape;
- if (state && state.shape) {
- if (transition) {
- if (keepCurrentStates) {
- targetShape = state.shape;
- } else {
- targetShape = extend({}, normalState.shape);
- extend(targetShape, state.shape);
- }
- } else {
- targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);
- extend(targetShape, state.shape);
- }
- } else if (needsRestoreToNormal) {
- targetShape = normalState.shape;
- }
- if (targetShape) {
- if (transition) {
- this.shape = extend({}, this.shape);
- var targetShapePrimaryProps = {};
- var shapeKeys = keys(targetShape);
- for (var i = 0; i < shapeKeys.length; i++) {
- var key = shapeKeys[i];
- if (typeof targetShape[key] === "object") {
- this.shape[key] = targetShape[key];
- } else {
- targetShapePrimaryProps[key] = targetShape[key];
- }
- }
- this._transitionState(stateName, {
- shape: targetShapePrimaryProps
- }, animationCfg);
- } else {
- this.shape = targetShape;
- this.dirtyShape();
- }
- }
- };
- Path2.prototype._mergeStates = function(states) {
- var mergedState = _super.prototype._mergeStates.call(this, states);
- var mergedShape;
- for (var i = 0; i < states.length; i++) {
- var state = states[i];
- if (state.shape) {
- mergedShape = mergedShape || {};
- this._mergeStyle(mergedShape, state.shape);
- }
- }
- if (mergedShape) {
- mergedState.shape = mergedShape;
- }
- return mergedState;
- };
- Path2.prototype.getAnimationStyleProps = function() {
- return DEFAULT_PATH_ANIMATION_PROPS;
- };
- Path2.prototype.isZeroArea = function() {
- return false;
- };
- Path2.extend = function(defaultProps) {
- var Sub = function(_super2) {
- __extends(Sub2, _super2);
- function Sub2(opts) {
- var _this = _super2.call(this, opts) || this;
- defaultProps.init && defaultProps.init.call(_this, opts);
- return _this;
- }
- Sub2.prototype.getDefaultStyle = function() {
- return clone(defaultProps.style);
- };
- Sub2.prototype.getDefaultShape = function() {
- return clone(defaultProps.shape);
- };
- return Sub2;
- }(Path2);
- for (var key in defaultProps) {
- if (typeof defaultProps[key] === "function") {
- Sub.prototype[key] = defaultProps[key];
- }
- }
- return Sub;
- };
- Path2.initDefaultProps = function() {
- var pathProto = Path2.prototype;
- pathProto.type = "path";
- pathProto.strokeContainThreshold = 5;
- pathProto.segmentIgnoreThreshold = 0;
- pathProto.subPixelOptimize = false;
- pathProto.autoBatch = false;
- pathProto.__dirty = REDRAW_BIT | STYLE_CHANGED_BIT | SHAPE_CHANGED_BIT;
- }();
- return Path2;
- }(Displayable_default);
- var Path_default = Path;
- // node_modules/zrender/lib/graphic/Image.js
- init_define_APP_INFO();
- var DEFAULT_IMAGE_STYLE = defaults({
- x: 0,
- y: 0
- }, DEFAULT_COMMON_STYLE);
- var DEFAULT_IMAGE_ANIMATION_PROPS = {
- style: defaults({
- x: true,
- y: true,
- width: true,
- height: true,
- sx: true,
- sy: true,
- sWidth: true,
- sHeight: true
- }, DEFAULT_COMMON_ANIMATION_PROPS.style)
- };
- function isImageLike(source) {
- return !!(source && typeof source !== "string" && source.width && source.height);
- }
- var ZRImage = function(_super) {
- __extends(ZRImage2, _super);
- function ZRImage2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- ZRImage2.prototype.createStyle = function(obj) {
- return createObject(DEFAULT_IMAGE_STYLE, obj);
- };
- ZRImage2.prototype._getSize = function(dim) {
- var style = this.style;
- var size = style[dim];
- if (size != null) {
- return size;
- }
- var imageSource = isImageLike(style.image) ? style.image : this.__image;
- if (!imageSource) {
- return 0;
- }
- var otherDim = dim === "width" ? "height" : "width";
- var otherDimSize = style[otherDim];
- if (otherDimSize == null) {
- return imageSource[dim];
- } else {
- return imageSource[dim] / imageSource[otherDim] * otherDimSize;
- }
- };
- ZRImage2.prototype.getWidth = function() {
- return this._getSize("width");
- };
- ZRImage2.prototype.getHeight = function() {
- return this._getSize("height");
- };
- ZRImage2.prototype.getAnimationStyleProps = function() {
- return DEFAULT_IMAGE_ANIMATION_PROPS;
- };
- ZRImage2.prototype.getBoundingRect = function() {
- var style = this.style;
- if (!this._rect) {
- this._rect = new BoundingRect_default(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());
- }
- return this._rect;
- };
- return ZRImage2;
- }(Displayable_default);
- ZRImage.prototype.type = "image";
- var Image_default = ZRImage;
- // node_modules/zrender/lib/graphic/TSpan.js
- init_define_APP_INFO();
- var DEFAULT_TSPAN_STYLE = defaults({
- strokeFirst: true,
- font: DEFAULT_FONT,
- x: 0,
- y: 0,
- textAlign: "left",
- textBaseline: "top",
- miterLimit: 2
- }, DEFAULT_PATH_STYLE);
- var TSpan = function(_super) {
- __extends(TSpan2, _super);
- function TSpan2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- TSpan2.prototype.hasStroke = function() {
- var style = this.style;
- var stroke = style.stroke;
- return stroke != null && stroke !== "none" && style.lineWidth > 0;
- };
- TSpan2.prototype.hasFill = function() {
- var style = this.style;
- var fill = style.fill;
- return fill != null && fill !== "none";
- };
- TSpan2.prototype.createStyle = function(obj) {
- return createObject(DEFAULT_TSPAN_STYLE, obj);
- };
- TSpan2.prototype.setBoundingRect = function(rect) {
- this._rect = rect;
- };
- TSpan2.prototype.getBoundingRect = function() {
- var style = this.style;
- if (!this._rect) {
- var text = style.text;
- text != null ? text += "" : text = "";
- var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);
- rect.x += style.x || 0;
- rect.y += style.y || 0;
- if (this.hasStroke()) {
- var w = style.lineWidth;
- rect.x -= w / 2;
- rect.y -= w / 2;
- rect.width += w;
- rect.height += w;
- }
- this._rect = rect;
- }
- return this._rect;
- };
- TSpan2.initDefaultProps = function() {
- var tspanProto = TSpan2.prototype;
- tspanProto.dirtyRectTolerance = 10;
- }();
- return TSpan2;
- }(Displayable_default);
- TSpan.prototype.type = "tspan";
- var TSpan_default = TSpan;
- // node_modules/zrender/lib/canvas/dashStyle.js
- init_define_APP_INFO();
- function normalizeLineDash(lineType, lineWidth) {
- if (!lineType || lineType === "solid" || !(lineWidth > 0)) {
- return null;
- }
- return lineType === "dashed" ? [4 * lineWidth, 2 * lineWidth] : lineType === "dotted" ? [lineWidth] : isNumber(lineType) ? [lineType] : isArray(lineType) ? lineType : null;
- }
- function getLineDash(el) {
- var style = el.style;
- var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);
- var lineDashOffset = style.lineDashOffset;
- if (lineDash) {
- var lineScale_1 = style.strokeNoScale && el.getLineScale ? el.getLineScale() : 1;
- if (lineScale_1 && lineScale_1 !== 1) {
- lineDash = map(lineDash, function(rawVal) {
- return rawVal / lineScale_1;
- });
- lineDashOffset /= lineScale_1;
- }
- }
- return [lineDash, lineDashOffset];
- }
- // node_modules/zrender/lib/canvas/graphic.js
- var pathProxyForDraw = new PathProxy_default(true);
- function styleHasStroke(style) {
- var stroke = style.stroke;
- return !(stroke == null || stroke === "none" || !(style.lineWidth > 0));
- }
- function isValidStrokeFillStyle(strokeOrFill) {
- return typeof strokeOrFill === "string" && strokeOrFill !== "none";
- }
- function styleHasFill(style) {
- var fill = style.fill;
- return fill != null && fill !== "none";
- }
- function doFillPath(ctx, style) {
- if (style.fillOpacity != null && style.fillOpacity !== 1) {
- var originalGlobalAlpha = ctx.globalAlpha;
- ctx.globalAlpha = style.fillOpacity * style.opacity;
- ctx.fill();
- ctx.globalAlpha = originalGlobalAlpha;
- } else {
- ctx.fill();
- }
- }
- function doStrokePath(ctx, style) {
- if (style.strokeOpacity != null && style.strokeOpacity !== 1) {
- var originalGlobalAlpha = ctx.globalAlpha;
- ctx.globalAlpha = style.strokeOpacity * style.opacity;
- ctx.stroke();
- ctx.globalAlpha = originalGlobalAlpha;
- } else {
- ctx.stroke();
- }
- }
- function createCanvasPattern(ctx, pattern, el) {
- var image = createOrUpdateImage(pattern.image, pattern.__image, el);
- if (isImageReady(image)) {
- var canvasPattern = ctx.createPattern(image, pattern.repeat || "repeat");
- if (typeof DOMMatrix === "function" && canvasPattern && canvasPattern.setTransform) {
- var matrix = new DOMMatrix();
- matrix.translateSelf(pattern.x || 0, pattern.y || 0);
- matrix.rotateSelf(0, 0, (pattern.rotation || 0) * RADIAN_TO_DEGREE);
- matrix.scaleSelf(pattern.scaleX || 1, pattern.scaleY || 1);
- canvasPattern.setTransform(matrix);
- }
- return canvasPattern;
- }
- }
- function brushPath(ctx, el, style, inBatch) {
- var _a;
- var hasStroke = styleHasStroke(style);
- var hasFill = styleHasFill(style);
- var strokePercent = style.strokePercent;
- var strokePart = strokePercent < 1;
- var firstDraw = !el.path;
- if ((!el.silent || strokePart) && firstDraw) {
- el.createPathProxy();
- }
- var path = el.path || pathProxyForDraw;
- var dirtyFlag = el.__dirty;
- if (!inBatch) {
- var fill = style.fill;
- var stroke = style.stroke;
- var hasFillGradient = hasFill && !!fill.colorStops;
- var hasStrokeGradient = hasStroke && !!stroke.colorStops;
- var hasFillPattern = hasFill && !!fill.image;
- var hasStrokePattern = hasStroke && !!stroke.image;
- var fillGradient = void 0;
- var strokeGradient = void 0;
- var fillPattern = void 0;
- var strokePattern = void 0;
- var rect = void 0;
- if (hasFillGradient || hasStrokeGradient) {
- rect = el.getBoundingRect();
- }
- if (hasFillGradient) {
- fillGradient = dirtyFlag ? getCanvasGradient(ctx, fill, rect) : el.__canvasFillGradient;
- el.__canvasFillGradient = fillGradient;
- }
- if (hasStrokeGradient) {
- strokeGradient = dirtyFlag ? getCanvasGradient(ctx, stroke, rect) : el.__canvasStrokeGradient;
- el.__canvasStrokeGradient = strokeGradient;
- }
- if (hasFillPattern) {
- fillPattern = dirtyFlag || !el.__canvasFillPattern ? createCanvasPattern(ctx, fill, el) : el.__canvasFillPattern;
- el.__canvasFillPattern = fillPattern;
- }
- if (hasStrokePattern) {
- strokePattern = dirtyFlag || !el.__canvasStrokePattern ? createCanvasPattern(ctx, stroke, el) : el.__canvasStrokePattern;
- el.__canvasStrokePattern = fillPattern;
- }
- if (hasFillGradient) {
- ctx.fillStyle = fillGradient;
- } else if (hasFillPattern) {
- if (fillPattern) {
- ctx.fillStyle = fillPattern;
- } else {
- hasFill = false;
- }
- }
- if (hasStrokeGradient) {
- ctx.strokeStyle = strokeGradient;
- } else if (hasStrokePattern) {
- if (strokePattern) {
- ctx.strokeStyle = strokePattern;
- } else {
- hasStroke = false;
- }
- }
- }
- var scale3 = el.getGlobalScale();
- path.setScale(scale3[0], scale3[1], el.segmentIgnoreThreshold);
- var lineDash;
- var lineDashOffset;
- if (ctx.setLineDash && style.lineDash) {
- _a = getLineDash(el), lineDash = _a[0], lineDashOffset = _a[1];
- }
- var needsRebuild = true;
- if (firstDraw || dirtyFlag & SHAPE_CHANGED_BIT) {
- path.setDPR(ctx.dpr);
- if (strokePart) {
- path.setContext(null);
- } else {
- path.setContext(ctx);
- needsRebuild = false;
- }
- path.reset();
- el.buildPath(path, el.shape, inBatch);
- path.toStatic();
- el.pathUpdated();
- }
- if (needsRebuild) {
- path.rebuildPath(ctx, strokePart ? strokePercent : 1);
- }
- if (lineDash) {
- ctx.setLineDash(lineDash);
- ctx.lineDashOffset = lineDashOffset;
- }
- if (!inBatch) {
- if (style.strokeFirst) {
- if (hasStroke) {
- doStrokePath(ctx, style);
- }
- if (hasFill) {
- doFillPath(ctx, style);
- }
- } else {
- if (hasFill) {
- doFillPath(ctx, style);
- }
- if (hasStroke) {
- doStrokePath(ctx, style);
- }
- }
- }
- if (lineDash) {
- ctx.setLineDash([]);
- }
- }
- function brushImage(ctx, el, style) {
- var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);
- if (!image || !isImageReady(image)) {
- return;
- }
- var x = style.x || 0;
- var y = style.y || 0;
- var width = el.getWidth();
- var height = el.getHeight();
- var aspect = image.width / image.height;
- if (width == null && height != null) {
- width = height * aspect;
- } else if (height == null && width != null) {
- height = width / aspect;
- } else if (width == null && height == null) {
- width = image.width;
- height = image.height;
- }
- if (style.sWidth && style.sHeight) {
- var sx = style.sx || 0;
- var sy = style.sy || 0;
- ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);
- } else if (style.sx && style.sy) {
- var sx = style.sx;
- var sy = style.sy;
- var sWidth = width - sx;
- var sHeight = height - sy;
- ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);
- } else {
- ctx.drawImage(image, x, y, width, height);
- }
- }
- function brushText(ctx, el, style) {
- var _a;
- var text = style.text;
- text != null && (text += "");
- if (text) {
- ctx.font = style.font || DEFAULT_FONT;
- ctx.textAlign = style.textAlign;
- ctx.textBaseline = style.textBaseline;
- var lineDash = void 0;
- var lineDashOffset = void 0;
- if (ctx.setLineDash && style.lineDash) {
- _a = getLineDash(el), lineDash = _a[0], lineDashOffset = _a[1];
- }
- if (lineDash) {
- ctx.setLineDash(lineDash);
- ctx.lineDashOffset = lineDashOffset;
- }
- if (style.strokeFirst) {
- if (styleHasStroke(style)) {
- ctx.strokeText(text, style.x, style.y);
- }
- if (styleHasFill(style)) {
- ctx.fillText(text, style.x, style.y);
- }
- } else {
- if (styleHasFill(style)) {
- ctx.fillText(text, style.x, style.y);
- }
- if (styleHasStroke(style)) {
- ctx.strokeText(text, style.x, style.y);
- }
- }
- if (lineDash) {
- ctx.setLineDash([]);
- }
- }
- }
- var SHADOW_NUMBER_PROPS = ["shadowBlur", "shadowOffsetX", "shadowOffsetY"];
- var STROKE_PROPS = [
- ["lineCap", "butt"],
- ["lineJoin", "miter"],
- ["miterLimit", 10]
- ];
- function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {
- var styleChanged = false;
- if (!forceSetAll) {
- prevStyle = prevStyle || {};
- if (style === prevStyle) {
- return false;
- }
- }
- if (forceSetAll || style.opacity !== prevStyle.opacity) {
- flushPathDrawn(ctx, scope);
- styleChanged = true;
- var opacity = Math.max(Math.min(style.opacity, 1), 0);
- ctx.globalAlpha = isNaN(opacity) ? DEFAULT_COMMON_STYLE.opacity : opacity;
- }
- if (forceSetAll || style.blend !== prevStyle.blend) {
- if (!styleChanged) {
- flushPathDrawn(ctx, scope);
- styleChanged = true;
- }
- ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;
- }
- for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {
- var propName = SHADOW_NUMBER_PROPS[i];
- if (forceSetAll || style[propName] !== prevStyle[propName]) {
- if (!styleChanged) {
- flushPathDrawn(ctx, scope);
- styleChanged = true;
- }
- ctx[propName] = ctx.dpr * (style[propName] || 0);
- }
- }
- if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {
- if (!styleChanged) {
- flushPathDrawn(ctx, scope);
- styleChanged = true;
- }
- ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;
- }
- return styleChanged;
- }
- function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {
- var style = getStyle(el, scope.inHover);
- var prevStyle = forceSetAll ? null : prevEl && getStyle(prevEl, scope.inHover) || {};
- if (style === prevStyle) {
- return false;
- }
- var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);
- if (forceSetAll || style.fill !== prevStyle.fill) {
- if (!styleChanged) {
- flushPathDrawn(ctx, scope);
- styleChanged = true;
- }
- isValidStrokeFillStyle(style.fill) && (ctx.fillStyle = style.fill);
- }
- if (forceSetAll || style.stroke !== prevStyle.stroke) {
- if (!styleChanged) {
- flushPathDrawn(ctx, scope);
- styleChanged = true;
- }
- isValidStrokeFillStyle(style.stroke) && (ctx.strokeStyle = style.stroke);
- }
- if (forceSetAll || style.opacity !== prevStyle.opacity) {
- if (!styleChanged) {
- flushPathDrawn(ctx, scope);
- styleChanged = true;
- }
- ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;
- }
- if (el.hasStroke()) {
- var lineWidth = style.lineWidth;
- var newLineWidth = lineWidth / (style.strokeNoScale && el.getLineScale ? el.getLineScale() : 1);
- if (ctx.lineWidth !== newLineWidth) {
- if (!styleChanged) {
- flushPathDrawn(ctx, scope);
- styleChanged = true;
- }
- ctx.lineWidth = newLineWidth;
- }
- }
- for (var i = 0; i < STROKE_PROPS.length; i++) {
- var prop = STROKE_PROPS[i];
- var propName = prop[0];
- if (forceSetAll || style[propName] !== prevStyle[propName]) {
- if (!styleChanged) {
- flushPathDrawn(ctx, scope);
- styleChanged = true;
- }
- ctx[propName] = style[propName] || prop[1];
- }
- }
- return styleChanged;
- }
- function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {
- return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);
- }
- function setContextTransform(ctx, el) {
- var m = el.transform;
- var dpr2 = ctx.dpr || 1;
- if (m) {
- ctx.setTransform(dpr2 * m[0], dpr2 * m[1], dpr2 * m[2], dpr2 * m[3], dpr2 * m[4], dpr2 * m[5]);
- } else {
- ctx.setTransform(dpr2, 0, 0, dpr2, 0, 0);
- }
- }
- function updateClipStatus(clipPaths, ctx, scope) {
- var allClipped = false;
- for (var i = 0; i < clipPaths.length; i++) {
- var clipPath = clipPaths[i];
- allClipped = allClipped || clipPath.isZeroArea();
- setContextTransform(ctx, clipPath);
- ctx.beginPath();
- clipPath.buildPath(ctx, clipPath.shape);
- ctx.clip();
- }
- scope.allClipped = allClipped;
- }
- function isTransformChanged(m0, m1) {
- if (m0 && m1) {
- return m0[0] !== m1[0] || m0[1] !== m1[1] || m0[2] !== m1[2] || m0[3] !== m1[3] || m0[4] !== m1[4] || m0[5] !== m1[5];
- } else if (!m0 && !m1) {
- return false;
- }
- return true;
- }
- var DRAW_TYPE_PATH = 1;
- var DRAW_TYPE_IMAGE = 2;
- var DRAW_TYPE_TEXT = 3;
- var DRAW_TYPE_INCREMENTAL = 4;
- function canPathBatch(style) {
- var hasFill = styleHasFill(style);
- var hasStroke = styleHasStroke(style);
- return !(style.lineDash || !(+hasFill ^ +hasStroke) || hasFill && typeof style.fill !== "string" || hasStroke && typeof style.stroke !== "string" || style.strokePercent < 1 || style.strokeOpacity < 1 || style.fillOpacity < 1);
- }
- function flushPathDrawn(ctx, scope) {
- scope.batchFill && ctx.fill();
- scope.batchStroke && ctx.stroke();
- scope.batchFill = "";
- scope.batchStroke = "";
- }
- function getStyle(el, inHover) {
- return inHover ? el.__hoverStyle || el.style : el.style;
- }
- function brushSingle(ctx, el) {
- brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);
- }
- function brush(ctx, el, scope, isLast) {
- var m = el.transform;
- if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {
- el.__dirty &= ~REDRAW_BIT;
- el.__isRendered = false;
- return;
- }
- var clipPaths = el.__clipPaths;
- var prevElClipPaths = scope.prevElClipPaths;
- var forceSetTransform = false;
- var forceSetStyle = false;
- if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {
- if (prevElClipPaths && prevElClipPaths.length) {
- flushPathDrawn(ctx, scope);
- ctx.restore();
- forceSetStyle = forceSetTransform = true;
- scope.prevElClipPaths = null;
- scope.allClipped = false;
- scope.prevEl = null;
- }
- if (clipPaths && clipPaths.length) {
- flushPathDrawn(ctx, scope);
- ctx.save();
- updateClipStatus(clipPaths, ctx, scope);
- forceSetTransform = true;
- }
- scope.prevElClipPaths = clipPaths;
- }
- if (scope.allClipped) {
- el.__isRendered = false;
- return;
- }
- el.beforeBrush && el.beforeBrush();
- el.innerBeforeBrush();
- var prevEl = scope.prevEl;
- if (!prevEl) {
- forceSetStyle = forceSetTransform = true;
- }
- var canBatchPath = el instanceof Path_default && el.autoBatch && canPathBatch(el.style);
- if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {
- flushPathDrawn(ctx, scope);
- setContextTransform(ctx, el);
- } else if (!canBatchPath) {
- flushPathDrawn(ctx, scope);
- }
- var style = getStyle(el, scope.inHover);
- if (el instanceof Path_default) {
- if (scope.lastDrawType !== DRAW_TYPE_PATH) {
- forceSetStyle = true;
- scope.lastDrawType = DRAW_TYPE_PATH;
- }
- bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);
- if (!canBatchPath || !scope.batchFill && !scope.batchStroke) {
- ctx.beginPath();
- }
- brushPath(ctx, el, style, canBatchPath);
- if (canBatchPath) {
- scope.batchFill = style.fill || "";
- scope.batchStroke = style.stroke || "";
- }
- } else {
- if (el instanceof TSpan_default) {
- if (scope.lastDrawType !== DRAW_TYPE_TEXT) {
- forceSetStyle = true;
- scope.lastDrawType = DRAW_TYPE_TEXT;
- }
- bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);
- brushText(ctx, el, style);
- } else if (el instanceof Image_default) {
- if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {
- forceSetStyle = true;
- scope.lastDrawType = DRAW_TYPE_IMAGE;
- }
- bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);
- brushImage(ctx, el, style);
- } else if (el.getTemporalDisplayables) {
- if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {
- forceSetStyle = true;
- scope.lastDrawType = DRAW_TYPE_INCREMENTAL;
- }
- brushIncremental(ctx, el, scope);
- }
- }
- if (canBatchPath && isLast) {
- flushPathDrawn(ctx, scope);
- }
- el.innerAfterBrush();
- el.afterBrush && el.afterBrush();
- scope.prevEl = el;
- el.__dirty = 0;
- el.__isRendered = true;
- }
- function brushIncremental(ctx, el, scope) {
- var displayables = el.getDisplayables();
- var temporalDisplayables = el.getTemporalDisplayables();
- ctx.save();
- var innerScope = {
- prevElClipPaths: null,
- prevEl: null,
- allClipped: false,
- viewWidth: scope.viewWidth,
- viewHeight: scope.viewHeight,
- inHover: scope.inHover
- };
- var i;
- var len2;
- for (i = el.getCursor(), len2 = displayables.length; i < len2; i++) {
- var displayable = displayables[i];
- displayable.beforeBrush && displayable.beforeBrush();
- displayable.innerBeforeBrush();
- brush(ctx, displayable, innerScope, i === len2 - 1);
- displayable.innerAfterBrush();
- displayable.afterBrush && displayable.afterBrush();
- innerScope.prevEl = displayable;
- }
- for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {
- var displayable = temporalDisplayables[i_1];
- displayable.beforeBrush && displayable.beforeBrush();
- displayable.innerBeforeBrush();
- brush(ctx, displayable, innerScope, i_1 === len_1 - 1);
- displayable.innerAfterBrush();
- displayable.afterBrush && displayable.afterBrush();
- innerScope.prevEl = displayable;
- }
- el.clearTemporalDisplayables();
- el.notClear = true;
- ctx.restore();
- }
- // node_modules/zrender/lib/graphic/helper/parseText.js
- init_define_APP_INFO();
- var STYLE_REG = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;
- function truncateText(text, containerWidth, font, ellipsis, options) {
- if (!containerWidth) {
- return "";
- }
- var textLines = (text + "").split("\n");
- options = prepareTruncateOptions(containerWidth, font, ellipsis, options);
- for (var i = 0, len2 = textLines.length; i < len2; i++) {
- textLines[i] = truncateSingleLine(textLines[i], options);
- }
- return textLines.join("\n");
- }
- function prepareTruncateOptions(containerWidth, font, ellipsis, options) {
- options = options || {};
- var preparedOpts = extend({}, options);
- preparedOpts.font = font;
- ellipsis = retrieve2(ellipsis, "...");
- preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);
- var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);
- preparedOpts.cnCharWidth = getWidth("\u56FD", font);
- var ascCharWidth = preparedOpts.ascCharWidth = getWidth("a", font);
- preparedOpts.placeholder = retrieve2(options.placeholder, "");
- var contentWidth = containerWidth = Math.max(0, containerWidth - 1);
- for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {
- contentWidth -= ascCharWidth;
- }
- var ellipsisWidth = getWidth(ellipsis, font);
- if (ellipsisWidth > contentWidth) {
- ellipsis = "";
- ellipsisWidth = 0;
- }
- contentWidth = containerWidth - ellipsisWidth;
- preparedOpts.ellipsis = ellipsis;
- preparedOpts.ellipsisWidth = ellipsisWidth;
- preparedOpts.contentWidth = contentWidth;
- preparedOpts.containerWidth = containerWidth;
- return preparedOpts;
- }
- function truncateSingleLine(textLine, options) {
- var containerWidth = options.containerWidth;
- var font = options.font;
- var contentWidth = options.contentWidth;
- if (!containerWidth) {
- return "";
- }
- var lineWidth = getWidth(textLine, font);
- if (lineWidth <= containerWidth) {
- return textLine;
- }
- for (var j = 0; ; j++) {
- if (lineWidth <= contentWidth || j >= options.maxIterations) {
- textLine += options.ellipsis;
- break;
- }
- var subLength = j === 0 ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth) : lineWidth > 0 ? Math.floor(textLine.length * contentWidth / lineWidth) : 0;
- textLine = textLine.substr(0, subLength);
- lineWidth = getWidth(textLine, font);
- }
- if (textLine === "") {
- textLine = options.placeholder;
- }
- return textLine;
- }
- function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {
- var width = 0;
- var i = 0;
- for (var len2 = text.length; i < len2 && width < contentWidth; i++) {
- var charCode = text.charCodeAt(i);
- width += 0 <= charCode && charCode <= 127 ? ascCharWidth : cnCharWidth;
- }
- return i;
- }
- function parsePlainText(text, style) {
- text != null && (text += "");
- var overflow = style.overflow;
- var padding = style.padding;
- var font = style.font;
- var truncate = overflow === "truncate";
- var calculatedLineHeight = getLineHeight(font);
- var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);
- var bgColorDrawn = !!style.backgroundColor;
- var truncateLineOverflow = style.lineOverflow === "truncate";
- var width = style.width;
- var lines;
- if (width != null && (overflow === "break" || overflow === "breakAll")) {
- lines = text ? wrapText(text, style.font, width, overflow === "breakAll", 0).lines : [];
- } else {
- lines = text ? text.split("\n") : [];
- }
- var contentHeight = lines.length * lineHeight;
- var height = retrieve2(style.height, contentHeight);
- if (contentHeight > height && truncateLineOverflow) {
- var lineCount = Math.floor(height / lineHeight);
- lines = lines.slice(0, lineCount);
- }
- if (text && truncate && width != null) {
- var options = prepareTruncateOptions(width, font, style.ellipsis, {
- minChar: style.truncateMinChar,
- placeholder: style.placeholder
- });
- for (var i = 0; i < lines.length; i++) {
- lines[i] = truncateSingleLine(lines[i], options);
- }
- }
- var outerHeight = height;
- var contentWidth = 0;
- for (var i = 0; i < lines.length; i++) {
- contentWidth = Math.max(getWidth(lines[i], font), contentWidth);
- }
- if (width == null) {
- width = contentWidth;
- }
- var outerWidth = contentWidth;
- if (padding) {
- outerHeight += padding[0] + padding[2];
- outerWidth += padding[1] + padding[3];
- width += padding[1] + padding[3];
- }
- if (bgColorDrawn) {
- outerWidth = width;
- }
- return {
- lines,
- height,
- outerWidth,
- outerHeight,
- lineHeight,
- calculatedLineHeight,
- contentWidth,
- contentHeight,
- width
- };
- }
- var RichTextToken = function() {
- function RichTextToken2() {
- }
- return RichTextToken2;
- }();
- var RichTextLine = function() {
- function RichTextLine2(tokens) {
- this.tokens = [];
- if (tokens) {
- this.tokens = tokens;
- }
- }
- return RichTextLine2;
- }();
- var RichTextContentBlock = function() {
- function RichTextContentBlock2() {
- this.width = 0;
- this.height = 0;
- this.contentWidth = 0;
- this.contentHeight = 0;
- this.outerWidth = 0;
- this.outerHeight = 0;
- this.lines = [];
- }
- return RichTextContentBlock2;
- }();
- function parseRichText(text, style) {
- var contentBlock = new RichTextContentBlock();
- text != null && (text += "");
- if (!text) {
- return contentBlock;
- }
- var topWidth = style.width;
- var topHeight = style.height;
- var overflow = style.overflow;
- var wrapInfo = (overflow === "break" || overflow === "breakAll") && topWidth != null ? { width: topWidth, accumWidth: 0, breakAll: overflow === "breakAll" } : null;
- var lastIndex = STYLE_REG.lastIndex = 0;
- var result;
- while ((result = STYLE_REG.exec(text)) != null) {
- var matchedIndex = result.index;
- if (matchedIndex > lastIndex) {
- pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);
- }
- pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);
- lastIndex = STYLE_REG.lastIndex;
- }
- if (lastIndex < text.length) {
- pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);
- }
- var pendingList = [];
- var calculatedHeight = 0;
- var calculatedWidth = 0;
- var stlPadding = style.padding;
- var truncate = overflow === "truncate";
- var truncateLine = style.lineOverflow === "truncate";
- function finishLine(line2, lineWidth2, lineHeight2) {
- line2.width = lineWidth2;
- line2.lineHeight = lineHeight2;
- calculatedHeight += lineHeight2;
- calculatedWidth = Math.max(calculatedWidth, lineWidth2);
- }
- outer:
- for (var i = 0; i < contentBlock.lines.length; i++) {
- var line = contentBlock.lines[i];
- var lineHeight = 0;
- var lineWidth = 0;
- for (var j = 0; j < line.tokens.length; j++) {
- var token = line.tokens[j];
- var tokenStyle = token.styleName && style.rich[token.styleName] || {};
- var textPadding = token.textPadding = tokenStyle.padding;
- var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;
- var font = token.font = tokenStyle.font || style.font;
- token.contentHeight = getLineHeight(font);
- var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);
- token.innerHeight = tokenHeight;
- textPadding && (tokenHeight += textPadding[0] + textPadding[2]);
- token.height = tokenHeight;
- token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);
- token.align = tokenStyle && tokenStyle.align || style.align;
- token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || "middle";
- if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {
- if (j > 0) {
- line.tokens = line.tokens.slice(0, j);
- finishLine(line, lineWidth, lineHeight);
- contentBlock.lines = contentBlock.lines.slice(0, i + 1);
- } else {
- contentBlock.lines = contentBlock.lines.slice(0, i);
- }
- break outer;
- }
- var styleTokenWidth = tokenStyle.width;
- var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === "auto";
- if (typeof styleTokenWidth === "string" && styleTokenWidth.charAt(styleTokenWidth.length - 1) === "%") {
- token.percentWidth = styleTokenWidth;
- pendingList.push(token);
- token.contentWidth = getWidth(token.text, font);
- } else {
- if (tokenWidthNotSpecified) {
- var textBackgroundColor = tokenStyle.backgroundColor;
- var bgImg = textBackgroundColor && textBackgroundColor.image;
- if (bgImg) {
- bgImg = findExistImage(bgImg);
- if (isImageReady(bgImg)) {
- token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);
- }
- }
- }
- var remainTruncWidth = truncate && topWidth != null ? topWidth - lineWidth : null;
- if (remainTruncWidth != null && remainTruncWidth < token.width) {
- if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {
- token.text = "";
- token.width = token.contentWidth = 0;
- } else {
- token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });
- token.width = token.contentWidth = getWidth(token.text, font);
- }
- } else {
- token.contentWidth = getWidth(token.text, font);
- }
- }
- token.width += paddingH;
- lineWidth += token.width;
- tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));
- }
- finishLine(line, lineWidth, lineHeight);
- }
- contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);
- contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);
- contentBlock.contentHeight = calculatedHeight;
- contentBlock.contentWidth = calculatedWidth;
- if (stlPadding) {
- contentBlock.outerWidth += stlPadding[1] + stlPadding[3];
- contentBlock.outerHeight += stlPadding[0] + stlPadding[2];
- }
- for (var i = 0; i < pendingList.length; i++) {
- var token = pendingList[i];
- var percentWidth = token.percentWidth;
- token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;
- }
- return contentBlock;
- }
- function pushTokens(block, str, style, wrapInfo, styleName) {
- var isEmptyStr = str === "";
- var tokenStyle = styleName && style.rich[styleName] || {};
- var lines = block.lines;
- var font = tokenStyle.font || style.font;
- var newLine = false;
- var strLines;
- var linesWidths;
- if (wrapInfo) {
- var tokenPadding = tokenStyle.padding;
- var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;
- if (tokenStyle.width != null && tokenStyle.width !== "auto") {
- var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;
- if (lines.length > 0) {
- if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {
- strLines = str.split("\n");
- newLine = true;
- }
- }
- wrapInfo.accumWidth = outerWidth_1;
- } else {
- var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);
- wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;
- linesWidths = res.linesWidths;
- strLines = res.lines;
- }
- } else {
- strLines = str.split("\n");
- }
- for (var i = 0; i < strLines.length; i++) {
- var text = strLines[i];
- var token = new RichTextToken();
- token.styleName = styleName;
- token.text = text;
- token.isLineHolder = !text && !isEmptyStr;
- if (typeof tokenStyle.width === "number") {
- token.width = tokenStyle.width;
- } else {
- token.width = linesWidths ? linesWidths[i] : getWidth(text, font);
- }
- if (!i && !newLine) {
- var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;
- var tokensLen = tokens.length;
- tokensLen === 1 && tokens[0].isLineHolder ? tokens[0] = token : (text || !tokensLen || isEmptyStr) && tokens.push(token);
- } else {
- lines.push(new RichTextLine([token]));
- }
- }
- }
- function isLatin(ch) {
- var code = ch.charCodeAt(0);
- return code >= 33 && code <= 383;
- }
- var breakCharMap = reduce(",&?/;] ".split(""), function(obj, ch) {
- obj[ch] = true;
- return obj;
- }, {});
- function isWordBreakChar(ch) {
- if (isLatin(ch)) {
- if (breakCharMap[ch]) {
- return true;
- }
- return false;
- }
- return true;
- }
- function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {
- var lines = [];
- var linesWidths = [];
- var line = "";
- var currentWord = "";
- var currentWordWidth = 0;
- var accumWidth = 0;
- for (var i = 0; i < text.length; i++) {
- var ch = text.charAt(i);
- if (ch === "\n") {
- if (currentWord) {
- line += currentWord;
- accumWidth += currentWordWidth;
- }
- lines.push(line);
- linesWidths.push(accumWidth);
- line = "";
- currentWord = "";
- currentWordWidth = 0;
- accumWidth = 0;
- continue;
- }
- var chWidth = getWidth(ch, font);
- var inWord = isBreakAll ? false : !isWordBreakChar(ch);
- if (!lines.length ? lastAccumWidth + accumWidth + chWidth > lineWidth : accumWidth + chWidth > lineWidth) {
- if (!accumWidth) {
- if (inWord) {
- lines.push(currentWord);
- linesWidths.push(currentWordWidth);
- currentWord = ch;
- currentWordWidth = chWidth;
- } else {
- lines.push(ch);
- linesWidths.push(chWidth);
- }
- } else if (line || currentWord) {
- if (inWord) {
- if (!line) {
- line = currentWord;
- currentWord = "";
- currentWordWidth = 0;
- accumWidth = currentWordWidth;
- }
- lines.push(line);
- linesWidths.push(accumWidth - currentWordWidth);
- currentWord += ch;
- currentWordWidth += chWidth;
- line = "";
- accumWidth = currentWordWidth;
- } else {
- if (currentWord) {
- line += currentWord;
- currentWord = "";
- currentWordWidth = 0;
- }
- lines.push(line);
- linesWidths.push(accumWidth);
- line = ch;
- accumWidth = chWidth;
- }
- }
- continue;
- }
- accumWidth += chWidth;
- if (inWord) {
- currentWord += ch;
- currentWordWidth += chWidth;
- } else {
- if (currentWord) {
- line += currentWord;
- currentWord = "";
- currentWordWidth = 0;
- }
- line += ch;
- }
- }
- if (!lines.length && !line) {
- line = text;
- currentWord = "";
- currentWordWidth = 0;
- }
- if (currentWord) {
- line += currentWord;
- }
- if (line) {
- lines.push(line);
- linesWidths.push(accumWidth);
- }
- if (lines.length === 1) {
- accumWidth += lastAccumWidth;
- }
- return {
- accumWidth,
- lines,
- linesWidths
- };
- }
- // node_modules/zrender/lib/graphic/shape/Rect.js
- init_define_APP_INFO();
- // node_modules/zrender/lib/graphic/helper/roundRect.js
- init_define_APP_INFO();
- function buildPath(ctx, shape) {
- var x = shape.x;
- var y = shape.y;
- var width = shape.width;
- var height = shape.height;
- var r = shape.r;
- var r1;
- var r2;
- var r3;
- var r4;
- if (width < 0) {
- x = x + width;
- width = -width;
- }
- if (height < 0) {
- y = y + height;
- height = -height;
- }
- if (typeof r === "number") {
- r1 = r2 = r3 = r4 = r;
- } else if (r instanceof Array) {
- if (r.length === 1) {
- r1 = r2 = r3 = r4 = r[0];
- } else if (r.length === 2) {
- r1 = r3 = r[0];
- r2 = r4 = r[1];
- } else if (r.length === 3) {
- r1 = r[0];
- r2 = r4 = r[1];
- r3 = r[2];
- } else {
- r1 = r[0];
- r2 = r[1];
- r3 = r[2];
- r4 = r[3];
- }
- } else {
- r1 = r2 = r3 = r4 = 0;
- }
- var total;
- if (r1 + r2 > width) {
- total = r1 + r2;
- r1 *= width / total;
- r2 *= width / total;
- }
- if (r3 + r4 > width) {
- total = r3 + r4;
- r3 *= width / total;
- r4 *= width / total;
- }
- if (r2 + r3 > height) {
- total = r2 + r3;
- r2 *= height / total;
- r3 *= height / total;
- }
- if (r1 + r4 > height) {
- total = r1 + r4;
- r1 *= height / total;
- r4 *= height / total;
- }
- ctx.moveTo(x + r1, y);
- ctx.lineTo(x + width - r2, y);
- r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);
- ctx.lineTo(x + width, y + height - r3);
- r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);
- ctx.lineTo(x + r4, y + height);
- r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);
- ctx.lineTo(x, y + r1);
- r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);
- }
- // node_modules/zrender/lib/graphic/helper/subPixelOptimize.js
- init_define_APP_INFO();
- var round = Math.round;
- function subPixelOptimizeLine(outputShape, inputShape, style) {
- if (!inputShape) {
- return;
- }
- var x1 = inputShape.x1;
- var x2 = inputShape.x2;
- var y1 = inputShape.y1;
- var y2 = inputShape.y2;
- outputShape.x1 = x1;
- outputShape.x2 = x2;
- outputShape.y1 = y1;
- outputShape.y2 = y2;
- var lineWidth = style && style.lineWidth;
- if (!lineWidth) {
- return outputShape;
- }
- if (round(x1 * 2) === round(x2 * 2)) {
- outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);
- }
- if (round(y1 * 2) === round(y2 * 2)) {
- outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);
- }
- return outputShape;
- }
- function subPixelOptimizeRect(outputShape, inputShape, style) {
- if (!inputShape) {
- return;
- }
- var originX = inputShape.x;
- var originY = inputShape.y;
- var originWidth = inputShape.width;
- var originHeight = inputShape.height;
- outputShape.x = originX;
- outputShape.y = originY;
- outputShape.width = originWidth;
- outputShape.height = originHeight;
- var lineWidth = style && style.lineWidth;
- if (!lineWidth) {
- return outputShape;
- }
- outputShape.x = subPixelOptimize(originX, lineWidth, true);
- outputShape.y = subPixelOptimize(originY, lineWidth, true);
- outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);
- outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);
- return outputShape;
- }
- function subPixelOptimize(position, lineWidth, positiveOrNegative) {
- if (!lineWidth) {
- return position;
- }
- var doubledPosition = round(position * 2);
- return (doubledPosition + round(lineWidth)) % 2 === 0 ? doubledPosition / 2 : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;
- }
- // node_modules/zrender/lib/graphic/shape/Rect.js
- var RectShape = function() {
- function RectShape2() {
- this.x = 0;
- this.y = 0;
- this.width = 0;
- this.height = 0;
- }
- return RectShape2;
- }();
- var subPixelOptimizeOutputShape = {};
- var Rect = function(_super) {
- __extends(Rect2, _super);
- function Rect2(opts) {
- return _super.call(this, opts) || this;
- }
- Rect2.prototype.getDefaultShape = function() {
- return new RectShape();
- };
- Rect2.prototype.buildPath = function(ctx, shape) {
- var x;
- var y;
- var width;
- var height;
- if (this.subPixelOptimize) {
- var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);
- x = optimizedShape.x;
- y = optimizedShape.y;
- width = optimizedShape.width;
- height = optimizedShape.height;
- optimizedShape.r = shape.r;
- shape = optimizedShape;
- } else {
- x = shape.x;
- y = shape.y;
- width = shape.width;
- height = shape.height;
- }
- if (!shape.r) {
- ctx.rect(x, y, width, height);
- } else {
- buildPath(ctx, shape);
- }
- };
- Rect2.prototype.isZeroArea = function() {
- return !this.shape.width || !this.shape.height;
- };
- return Rect2;
- }(Path_default);
- Rect.prototype.type = "rect";
- var Rect_default = Rect;
- // node_modules/zrender/lib/graphic/Text.js
- init_define_APP_INFO();
- var DEFAULT_RICH_TEXT_COLOR = {
- fill: "#000"
- };
- var DEFAULT_STROKE_LINE_WIDTH = 2;
- var DEFAULT_TEXT_ANIMATION_PROPS = {
- style: defaults({
- fill: true,
- stroke: true,
- fillOpacity: true,
- strokeOpacity: true,
- lineWidth: true,
- fontSize: true,
- lineHeight: true,
- width: true,
- height: true,
- textShadowColor: true,
- textShadowBlur: true,
- textShadowOffsetX: true,
- textShadowOffsetY: true,
- backgroundColor: true,
- padding: true,
- borderColor: true,
- borderWidth: true,
- borderRadius: true
- }, DEFAULT_COMMON_ANIMATION_PROPS.style)
- };
- var ZRText = function(_super) {
- __extends(ZRText2, _super);
- function ZRText2(opts) {
- var _this = _super.call(this) || this;
- _this.type = "text";
- _this._children = [];
- _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;
- _this.attr(opts);
- return _this;
- }
- ZRText2.prototype.childrenRef = function() {
- return this._children;
- };
- ZRText2.prototype.update = function() {
- _super.prototype.update.call(this);
- if (this.styleChanged()) {
- this._updateSubTexts();
- }
- for (var i = 0; i < this._children.length; i++) {
- var child = this._children[i];
- child.zlevel = this.zlevel;
- child.z = this.z;
- child.z2 = this.z2;
- child.culling = this.culling;
- child.cursor = this.cursor;
- child.invisible = this.invisible;
- }
- };
- ZRText2.prototype.updateTransform = function() {
- var innerTransformable = this.innerTransformable;
- if (innerTransformable) {
- innerTransformable.updateTransform();
- if (innerTransformable.transform) {
- this.transform = innerTransformable.transform;
- }
- } else {
- _super.prototype.updateTransform.call(this);
- }
- };
- ZRText2.prototype.getLocalTransform = function(m) {
- var innerTransformable = this.innerTransformable;
- return innerTransformable ? innerTransformable.getLocalTransform(m) : _super.prototype.getLocalTransform.call(this, m);
- };
- ZRText2.prototype.getComputedTransform = function() {
- if (this.__hostTarget) {
- this.__hostTarget.getComputedTransform();
- this.__hostTarget.updateInnerText(true);
- }
- return _super.prototype.getComputedTransform.call(this);
- };
- ZRText2.prototype._updateSubTexts = function() {
- this._childCursor = 0;
- normalizeTextStyle(this.style);
- this.style.rich ? this._updateRichTexts() : this._updatePlainTexts();
- this._children.length = this._childCursor;
- this.styleUpdated();
- };
- ZRText2.prototype.addSelfToZr = function(zr) {
- _super.prototype.addSelfToZr.call(this, zr);
- for (var i = 0; i < this._children.length; i++) {
- this._children[i].__zr = zr;
- }
- };
- ZRText2.prototype.removeSelfFromZr = function(zr) {
- _super.prototype.removeSelfFromZr.call(this, zr);
- for (var i = 0; i < this._children.length; i++) {
- this._children[i].__zr = null;
- }
- };
- ZRText2.prototype.getBoundingRect = function() {
- if (this.styleChanged()) {
- this._updateSubTexts();
- }
- if (!this._rect) {
- var tmpRect2 = new BoundingRect_default(0, 0, 0, 0);
- var children = this._children;
- var tmpMat = [];
- var rect = null;
- for (var i = 0; i < children.length; i++) {
- var child = children[i];
- var childRect = child.getBoundingRect();
- var transform = child.getLocalTransform(tmpMat);
- if (transform) {
- tmpRect2.copy(childRect);
- tmpRect2.applyTransform(transform);
- rect = rect || tmpRect2.clone();
- rect.union(tmpRect2);
- } else {
- rect = rect || childRect.clone();
- rect.union(childRect);
- }
- }
- this._rect = rect || tmpRect2;
- }
- return this._rect;
- };
- ZRText2.prototype.setDefaultTextStyle = function(defaultTextStyle) {
- this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;
- };
- ZRText2.prototype.setTextContent = function(textContent) {
- if (true) {
- throw new Error("Can't attach text on another text");
- }
- };
- ZRText2.prototype._mergeStyle = function(targetStyle, sourceStyle) {
- if (!sourceStyle) {
- return targetStyle;
- }
- var sourceRich = sourceStyle.rich;
- var targetRich = targetStyle.rich || sourceRich && {};
- extend(targetStyle, sourceStyle);
- if (sourceRich && targetRich) {
- this._mergeRich(targetRich, sourceRich);
- targetStyle.rich = targetRich;
- } else if (targetRich) {
- targetStyle.rich = targetRich;
- }
- return targetStyle;
- };
- ZRText2.prototype._mergeRich = function(targetRich, sourceRich) {
- var richNames = keys(sourceRich);
- for (var i = 0; i < richNames.length; i++) {
- var richName = richNames[i];
- targetRich[richName] = targetRich[richName] || {};
- extend(targetRich[richName], sourceRich[richName]);
- }
- };
- ZRText2.prototype.getAnimationStyleProps = function() {
- return DEFAULT_TEXT_ANIMATION_PROPS;
- };
- ZRText2.prototype._getOrCreateChild = function(Ctor) {
- var child = this._children[this._childCursor];
- if (!child || !(child instanceof Ctor)) {
- child = new Ctor();
- }
- this._children[this._childCursor++] = child;
- child.__zr = this.__zr;
- child.parent = this;
- return child;
- };
- ZRText2.prototype._updatePlainTexts = function() {
- var style = this.style;
- var textFont = style.font || DEFAULT_FONT;
- var textPadding = style.padding;
- var text = getStyleText(style);
- var contentBlock = parsePlainText(text, style);
- var needDrawBg = needDrawBackground(style);
- var bgColorDrawn = !!style.backgroundColor;
- var outerHeight = contentBlock.outerHeight;
- var outerWidth = contentBlock.outerWidth;
- var contentWidth = contentBlock.contentWidth;
- var textLines = contentBlock.lines;
- var lineHeight = contentBlock.lineHeight;
- var defaultStyle = this._defaultStyle;
- var baseX = style.x || 0;
- var baseY = style.y || 0;
- var textAlign = style.align || defaultStyle.align || "left";
- var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || "top";
- var textX = baseX;
- var textY = adjustTextY2(baseY, contentBlock.contentHeight, verticalAlign);
- if (needDrawBg || textPadding) {
- var boxX = adjustTextX(baseX, outerWidth, textAlign);
- var boxY = adjustTextY2(baseY, outerHeight, verticalAlign);
- needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);
- }
- textY += lineHeight / 2;
- if (textPadding) {
- textX = getTextXForPadding(baseX, textAlign, textPadding);
- if (verticalAlign === "top") {
- textY += textPadding[0];
- } else if (verticalAlign === "bottom") {
- textY -= textPadding[2];
- }
- }
- var defaultLineWidth = 0;
- var useDefaultFill = false;
- var textFill = getFill("fill" in style ? style.fill : (useDefaultFill = true, defaultStyle.fill));
- var textStroke = getStroke("stroke" in style ? style.stroke : !bgColorDrawn && (!defaultStyle.autoStroke || useDefaultFill) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke) : null);
- var hasShadow2 = style.textShadowBlur > 0;
- var fixedBoundingRect = style.width != null && (style.overflow === "truncate" || style.overflow === "break" || style.overflow === "breakAll");
- var calculatedLineHeight = contentBlock.calculatedLineHeight;
- for (var i = 0; i < textLines.length; i++) {
- var el = this._getOrCreateChild(TSpan_default);
- var subElStyle = el.createStyle();
- el.useStyle(subElStyle);
- subElStyle.text = textLines[i];
- subElStyle.x = textX;
- subElStyle.y = textY;
- if (textAlign) {
- subElStyle.textAlign = textAlign;
- }
- subElStyle.textBaseline = "middle";
- subElStyle.opacity = style.opacity;
- subElStyle.strokeFirst = true;
- if (hasShadow2) {
- subElStyle.shadowBlur = style.textShadowBlur || 0;
- subElStyle.shadowColor = style.textShadowColor || "transparent";
- subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;
- subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;
- }
- subElStyle.stroke = textStroke;
- subElStyle.fill = textFill;
- if (textStroke) {
- subElStyle.lineWidth = style.lineWidth || defaultLineWidth;
- subElStyle.lineDash = style.lineDash;
- subElStyle.lineDashOffset = style.lineDashOffset || 0;
- }
- subElStyle.font = textFont;
- setSeparateFont(subElStyle, style);
- textY += lineHeight;
- if (fixedBoundingRect) {
- el.setBoundingRect(new BoundingRect_default(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY2(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), contentWidth, calculatedLineHeight));
- }
- }
- };
- ZRText2.prototype._updateRichTexts = function() {
- var style = this.style;
- var text = getStyleText(style);
- var contentBlock = parseRichText(text, style);
- var contentWidth = contentBlock.width;
- var outerWidth = contentBlock.outerWidth;
- var outerHeight = contentBlock.outerHeight;
- var textPadding = style.padding;
- var baseX = style.x || 0;
- var baseY = style.y || 0;
- var defaultStyle = this._defaultStyle;
- var textAlign = style.align || defaultStyle.align;
- var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;
- var boxX = adjustTextX(baseX, outerWidth, textAlign);
- var boxY = adjustTextY2(baseY, outerHeight, verticalAlign);
- var xLeft = boxX;
- var lineTop = boxY;
- if (textPadding) {
- xLeft += textPadding[3];
- lineTop += textPadding[0];
- }
- var xRight = xLeft + contentWidth;
- if (needDrawBackground(style)) {
- this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);
- }
- var bgColorDrawn = !!style.backgroundColor;
- for (var i = 0; i < contentBlock.lines.length; i++) {
- var line = contentBlock.lines[i];
- var tokens = line.tokens;
- var tokenCount = tokens.length;
- var lineHeight = line.lineHeight;
- var remainedWidth = line.width;
- var leftIndex = 0;
- var lineXLeft = xLeft;
- var lineXRight = xRight;
- var rightIndex = tokenCount - 1;
- var token = void 0;
- while (leftIndex < tokenCount && (token = tokens[leftIndex], !token.align || token.align === "left")) {
- this._placeToken(token, style, lineHeight, lineTop, lineXLeft, "left", bgColorDrawn);
- remainedWidth -= token.width;
- lineXLeft += token.width;
- leftIndex++;
- }
- while (rightIndex >= 0 && (token = tokens[rightIndex], token.align === "right")) {
- this._placeToken(token, style, lineHeight, lineTop, lineXRight, "right", bgColorDrawn);
- remainedWidth -= token.width;
- lineXRight -= token.width;
- rightIndex--;
- }
- lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;
- while (leftIndex <= rightIndex) {
- token = tokens[leftIndex];
- this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, "center", bgColorDrawn);
- lineXLeft += token.width;
- leftIndex++;
- }
- lineTop += lineHeight;
- }
- };
- ZRText2.prototype._placeToken = function(token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {
- var tokenStyle = style.rich[token.styleName] || {};
- tokenStyle.text = token.text;
- var verticalAlign = token.verticalAlign;
- var y = lineTop + lineHeight / 2;
- if (verticalAlign === "top") {
- y = lineTop + token.height / 2;
- } else if (verticalAlign === "bottom") {
- y = lineTop + lineHeight - token.height / 2;
- }
- var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);
- needDrawBg && this._renderBackground(tokenStyle, style, textAlign === "right" ? x - token.width : textAlign === "center" ? x - token.width / 2 : x, y - token.height / 2, token.width, token.height);
- var bgColorDrawn = !!tokenStyle.backgroundColor;
- var textPadding = token.textPadding;
- if (textPadding) {
- x = getTextXForPadding(x, textAlign, textPadding);
- y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;
- }
- var el = this._getOrCreateChild(TSpan_default);
- var subElStyle = el.createStyle();
- el.useStyle(subElStyle);
- var defaultStyle = this._defaultStyle;
- var useDefaultFill = false;
- var defaultLineWidth = 0;
- var textFill = getFill("fill" in tokenStyle ? tokenStyle.fill : "fill" in style ? style.fill : (useDefaultFill = true, defaultStyle.fill));
- var textStroke = getStroke("stroke" in tokenStyle ? tokenStyle.stroke : "stroke" in style ? style.stroke : !bgColorDrawn && !parentBgColorDrawn && (!defaultStyle.autoStroke || useDefaultFill) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke) : null);
- var hasShadow2 = tokenStyle.textShadowBlur > 0 || style.textShadowBlur > 0;
- subElStyle.text = token.text;
- subElStyle.x = x;
- subElStyle.y = y;
- if (hasShadow2) {
- subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;
- subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || "transparent";
- subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;
- subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;
- }
- subElStyle.textAlign = textAlign;
- subElStyle.textBaseline = "middle";
- subElStyle.font = token.font || DEFAULT_FONT;
- subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);
- setSeparateFont(subElStyle, tokenStyle);
- if (textStroke) {
- subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);
- subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);
- subElStyle.lineDashOffset = style.lineDashOffset || 0;
- subElStyle.stroke = textStroke;
- }
- if (textFill) {
- subElStyle.fill = textFill;
- }
- var textWidth = token.contentWidth;
- var textHeight = token.contentHeight;
- el.setBoundingRect(new BoundingRect_default(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY2(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));
- };
- ZRText2.prototype._renderBackground = function(style, topStyle, x, y, width, height) {
- var textBackgroundColor = style.backgroundColor;
- var textBorderWidth = style.borderWidth;
- var textBorderColor = style.borderColor;
- var isImageBg = textBackgroundColor && textBackgroundColor.image;
- var isPlainOrGradientBg = textBackgroundColor && !isImageBg;
- var textBorderRadius = style.borderRadius;
- var self2 = this;
- var rectEl;
- var imgEl;
- if (isPlainOrGradientBg || style.lineHeight || textBorderWidth && textBorderColor) {
- rectEl = this._getOrCreateChild(Rect_default);
- rectEl.useStyle(rectEl.createStyle());
- rectEl.style.fill = null;
- var rectShape = rectEl.shape;
- rectShape.x = x;
- rectShape.y = y;
- rectShape.width = width;
- rectShape.height = height;
- rectShape.r = textBorderRadius;
- rectEl.dirtyShape();
- }
- if (isPlainOrGradientBg) {
- var rectStyle = rectEl.style;
- rectStyle.fill = textBackgroundColor || null;
- rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);
- } else if (isImageBg) {
- imgEl = this._getOrCreateChild(Image_default);
- imgEl.onload = function() {
- self2.dirtyStyle();
- };
- var imgStyle = imgEl.style;
- imgStyle.image = textBackgroundColor.image;
- imgStyle.x = x;
- imgStyle.y = y;
- imgStyle.width = width;
- imgStyle.height = height;
- }
- if (textBorderWidth && textBorderColor) {
- var rectStyle = rectEl.style;
- rectStyle.lineWidth = textBorderWidth;
- rectStyle.stroke = textBorderColor;
- rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);
- rectStyle.lineDash = style.borderDash;
- rectStyle.lineDashOffset = style.borderDashOffset || 0;
- rectEl.strokeContainThreshold = 0;
- if (rectEl.hasFill() && rectEl.hasStroke()) {
- rectStyle.strokeFirst = true;
- rectStyle.lineWidth *= 2;
- }
- }
- var commonStyle = (rectEl || imgEl).style;
- commonStyle.shadowBlur = style.shadowBlur || 0;
- commonStyle.shadowColor = style.shadowColor || "transparent";
- commonStyle.shadowOffsetX = style.shadowOffsetX || 0;
- commonStyle.shadowOffsetY = style.shadowOffsetY || 0;
- commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);
- };
- ZRText2.makeFont = function(style) {
- var font = "";
- if (hasSeparateFont(style)) {
- font = [
- style.fontStyle,
- style.fontWeight,
- parseFontSize(style.fontSize),
- style.fontFamily || "sans-serif"
- ].join(" ");
- }
- return font && trim(font) || style.textFont || style.font;
- };
- return ZRText2;
- }(Displayable_default);
- var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };
- var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };
- var FONT_PARTS = ["fontStyle", "fontWeight", "fontSize", "fontFamily"];
- function parseFontSize(fontSize) {
- if (typeof fontSize === "string" && (fontSize.indexOf("px") !== -1 || fontSize.indexOf("rem") !== -1 || fontSize.indexOf("em") !== -1)) {
- return fontSize;
- } else if (!isNaN(+fontSize)) {
- return fontSize + "px";
- } else {
- return DEFAULT_FONT_SIZE + "px";
- }
- }
- function setSeparateFont(targetStyle, sourceStyle) {
- for (var i = 0; i < FONT_PARTS.length; i++) {
- var fontProp = FONT_PARTS[i];
- var val = sourceStyle[fontProp];
- if (val != null) {
- targetStyle[fontProp] = val;
- }
- }
- }
- function hasSeparateFont(style) {
- return style.fontSize != null || style.fontFamily || style.fontWeight;
- }
- function normalizeTextStyle(style) {
- normalizeStyle(style);
- each(style.rich, normalizeStyle);
- return style;
- }
- function normalizeStyle(style) {
- if (style) {
- style.font = ZRText.makeFont(style);
- var textAlign = style.align;
- textAlign === "middle" && (textAlign = "center");
- style.align = textAlign == null || VALID_TEXT_ALIGN[textAlign] ? textAlign : "left";
- var verticalAlign = style.verticalAlign;
- verticalAlign === "center" && (verticalAlign = "middle");
- style.verticalAlign = verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign] ? verticalAlign : "top";
- var textPadding = style.padding;
- if (textPadding) {
- style.padding = normalizeCssArray(style.padding);
- }
- }
- }
- function getStroke(stroke, lineWidth) {
- return stroke == null || lineWidth <= 0 || stroke === "transparent" || stroke === "none" ? null : stroke.image || stroke.colorStops ? "#000" : stroke;
- }
- function getFill(fill) {
- return fill == null || fill === "none" ? null : fill.image || fill.colorStops ? "#000" : fill;
- }
- function getTextXForPadding(x, textAlign, textPadding) {
- return textAlign === "right" ? x - textPadding[1] : textAlign === "center" ? x + textPadding[3] / 2 - textPadding[1] / 2 : x + textPadding[3];
- }
- function getStyleText(style) {
- var text = style.text;
- text != null && (text += "");
- return text;
- }
- function needDrawBackground(style) {
- return !!(style.backgroundColor || style.lineHeight || style.borderWidth && style.borderColor);
- }
- var Text_default = ZRText;
- // node_modules/zrender/lib/graphic/CompoundPath.js
- init_define_APP_INFO();
- var CompoundPath = function(_super) {
- __extends(CompoundPath2, _super);
- function CompoundPath2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = "compound";
- return _this;
- }
- CompoundPath2.prototype._updatePathDirty = function() {
- var paths = this.shape.paths;
- var dirtyPath = this.shapeChanged();
- for (var i = 0; i < paths.length; i++) {
- dirtyPath = dirtyPath || paths[i].shapeChanged();
- }
- if (dirtyPath) {
- this.dirtyShape();
- }
- };
- CompoundPath2.prototype.beforeBrush = function() {
- this._updatePathDirty();
- var paths = this.shape.paths || [];
- var scale3 = this.getGlobalScale();
- for (var i = 0; i < paths.length; i++) {
- if (!paths[i].path) {
- paths[i].createPathProxy();
- }
- paths[i].path.setScale(scale3[0], scale3[1], paths[i].segmentIgnoreThreshold);
- }
- };
- CompoundPath2.prototype.buildPath = function(ctx, shape) {
- var paths = shape.paths || [];
- for (var i = 0; i < paths.length; i++) {
- paths[i].buildPath(ctx, paths[i].shape, true);
- }
- };
- CompoundPath2.prototype.afterBrush = function() {
- var paths = this.shape.paths || [];
- for (var i = 0; i < paths.length; i++) {
- paths[i].pathUpdated();
- }
- };
- CompoundPath2.prototype.getBoundingRect = function() {
- this._updatePathDirty.call(this);
- return Path_default.prototype.getBoundingRect.call(this);
- };
- return CompoundPath2;
- }(Path_default);
- var CompoundPath_default = CompoundPath;
- // node_modules/zrender/lib/animation/requestAnimationFrame.js
- init_define_APP_INFO();
- var requestAnimationFrame;
- requestAnimationFrame = env_default.hasGlobalWindow && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function(func) {
- return setTimeout(func, 16);
- };
- var requestAnimationFrame_default = requestAnimationFrame;
- export {
- DEFAULT_FONT_FAMILY,
- DEFAULT_FONT,
- platformApi,
- setPlatformAPI,
- guid,
- logError,
- clone,
- merge,
- mergeAll,
- extend,
- defaults,
- indexOf,
- inherits,
- mixin,
- isArrayLike,
- each,
- map,
- reduce,
- filter,
- find,
- keys,
- bind,
- curry,
- isArray,
- isFunction,
- isString,
- isStringSafe,
- isNumber,
- isObject,
- isTypedArray,
- isDom,
- isGradientObject,
- isImagePatternObject,
- isRegExp,
- eqNaN,
- retrieve,
- retrieve2,
- retrieve3,
- slice,
- normalizeCssArray,
- assert,
- trim,
- setAsPrimitive,
- createHashMap,
- concatArray,
- disableUserSelect,
- hasOwn,
- noop,
- util_exports,
- env_default,
- __extends,
- LRU_default,
- createOrUpdateImage,
- create,
- identity,
- copy,
- mul,
- translate,
- rotate,
- scale,
- invert,
- clone2,
- matrix_exports,
- Point_default,
- BoundingRect_default,
- getBoundingRect,
- getLineHeight,
- parsePercent,
- calculateTextPosition,
- truncateText,
- create2,
- copy2,
- clone3,
- set,
- add,
- scaleAndAdd,
- sub,
- len,
- scale2,
- normalize,
- distance,
- dist,
- distSquare,
- lerp,
- applyTransform,
- min,
- max,
- vector_exports,
- TRANSFORMABLE_PROPS,
- copyTransform,
- Transformable_default,
- cubicAt,
- cubicDerivativeAt,
- cubicRootAt,
- cubicSubdivide,
- cubicProjectPoint,
- quadraticAt,
- quadraticDerivativeAt,
- quadraticSubdivide,
- quadraticProjectPoint,
- createCubicEasingFunc,
- parse,
- lift,
- fastLerp,
- lerp2,
- modifyHSL,
- modifyAlpha,
- stringify,
- lum,
- color_exports,
- normalizeColor,
- isAroundZero2 as isAroundZero,
- round4,
- getMatrixStr,
- TEXT_ALIGN_TO_ANCHOR,
- adjustTextY,
- hasShadow,
- getShadowKey,
- isImagePattern,
- isPattern,
- isLinearGradient,
- isRadialGradient,
- isGradient,
- getIdURL,
- getPathPrecision,
- getSRTTransformString,
- encodeBase64,
- cloneValue,
- Animator_default,
- Eventful_default,
- devicePixelRatio,
- DARK_MODE_THRESHOLD,
- REDRAW_BIT,
- Element_default,
- Displayable_default,
- fromPoints,
- normalizeArcAngles,
- PathProxy_default,
- containStroke,
- containStroke3 as containStroke2,
- normalizeRadian,
- windingLine,
- DEFAULT_PATH_STYLE,
- Path_default,
- TSpan_default,
- Image_default,
- subPixelOptimizeLine,
- subPixelOptimizeRect,
- subPixelOptimize,
- Rect_default,
- parseFontSize,
- hasSeparateFont,
- Text_default,
- CompoundPath_default,
- requestAnimationFrame_default,
- getCanvasGradient,
- getSize,
- getLineDash,
- createCanvasPattern,
- brushSingle,
- brush
- };
- /*! *****************************************************************************
- Copyright (c) Microsoft Corporation.
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted.
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
- ***************************************************************************** */
- //# sourceMappingURL=chunk-NFL6MJ5K.js.map
|