123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907 |
- import {
- LineDraw_default,
- Line_default as Line_default2,
- MapDraw_default,
- RoamController_default,
- SymbolDraw_default,
- Symbol_default,
- View_default,
- VisualMapping_default,
- applyKeyframeAnimation,
- applyLeaveTransition,
- applyUpdateTransition,
- convertFromEC4CompatibleStyle,
- convertToEC4StyleForCustomSerise,
- geoSourceManager_default,
- getDefaultInterpolatedLabel,
- getDefaultLabel,
- install,
- install2,
- install3,
- install4,
- isCoordinateSystemType,
- isEC4CompatibleStyle,
- onIrrelevantElement,
- stopPreviousKeyframeAnimationAndRestore,
- updateCenterAndZoom,
- updateViewOnPan,
- updateViewOnZoom,
- warnDeprecated
- } from "./chunk-O6ZB44ZF.js";
- import {
- createSeriesData_default,
- getLabelLineStatesModels,
- limitSurfaceAngle,
- limitTurnAngle,
- prepareSeriesDataSchema,
- setLabelLineStyle
- } from "./chunk-F35ET5C4.js";
- import {
- BezierCurve_default,
- Chart_default,
- Circle_default,
- CoordinateSystem_default,
- DISPLAY_STATES,
- DataDiffer_default,
- HOVER_STATE_BLUR,
- Line_default,
- LinearGradient_default,
- MAX_SAFE_INTEGER,
- Model_default,
- Polygon_default,
- Polyline_default,
- SINGLE_REFERRING,
- SOURCE_FORMAT_ARRAY_ROWS,
- SPECIAL_STATES,
- Sector_default,
- SeriesData_default,
- Series_default,
- Z2_EMPHASIS_LIFT,
- __extends,
- animateLabelValue,
- asc,
- convertOptionIdName,
- convertToColorString,
- createFloat32Array,
- createLegacyDataSelectAction,
- createOrUpdatePatternFromDecal,
- createProgressiveLayout,
- createRenderPlanner,
- createSymbol,
- createTextConfig,
- createTextStyle,
- createTooltipMarkup,
- defaultEmphasis,
- defaultSeriesFormatTooltip,
- deprecateReplaceLog,
- enableHoverFocus,
- enterEmphasis,
- error,
- getAvailableSize,
- getDecalFromPalette,
- getDimensionTypeByAxis,
- getECData,
- getFont,
- getLabelStatesModels,
- getLayoutOnAxis,
- getLayoutRect,
- getPercentSeats,
- getShapeClass,
- graphic_exports,
- groupData,
- inheritDefaultOption,
- initProps,
- interpolateRawValues,
- isDimensionStacked,
- isHighDownDispatcher,
- isNumeric,
- isRadianAroundZero,
- labelInner,
- layout,
- leaveEmphasis,
- linearMap,
- makeInner,
- makePath,
- makePrintable,
- makeSeriesEncodeForAxisCoordSys,
- makeSeriesEncodeForNameBased,
- makeStyleMapper,
- normalizeSymbolOffset,
- normalizeSymbolSize,
- normalizeToArray,
- numericToNumber,
- parsePercent as parsePercent2,
- positionElement,
- quantile,
- queryDataIndex,
- removeElement,
- removeElementWithFadeOut,
- retrieveVisualColorForTooltipMarker,
- round,
- saveOldStyle,
- setAsHighDownDispatcher,
- setCommonECData,
- setDefaultStateProxy,
- setLabelStyle,
- setLabelValueAnimation,
- setStatesFlag,
- setStatesStylesFromModel,
- shiftLayoutOnY,
- subPixelOptimize,
- throttle,
- throwError,
- toggleHoverEmphasis,
- traverseElements,
- updateProps,
- use,
- warn,
- windowOpen
- } from "./chunk-PRJRDRZN.js";
- import {
- BoundingRect_default,
- Displayable_default,
- Group_default,
- Image_default,
- PathProxy_default,
- Path_default,
- Point_default,
- Rect_default,
- Text_default,
- assert,
- bind,
- calculateTextPosition,
- clone,
- clone2,
- clone3,
- concatArray,
- containStroke,
- containStroke2,
- copy,
- create,
- create2,
- createHashMap,
- cubicAt,
- cubicRootAt,
- curry,
- defaults,
- dist,
- distSquare,
- each,
- eqNaN,
- extend,
- filter,
- find,
- fromPoints,
- hasOwn,
- indexOf,
- isArray,
- isFunction,
- isNumber,
- isObject,
- isString,
- keys,
- len,
- lerp2 as lerp,
- lift,
- map,
- mergeAll,
- mixin,
- modifyAlpha,
- modifyHSL,
- noop,
- normalize,
- normalizeArcAngles,
- normalizeCssArray,
- normalizeRadian,
- parsePercent,
- platformApi,
- quadraticAt,
- quadraticDerivativeAt,
- quadraticSubdivide,
- retrieve,
- retrieve2,
- retrieve3,
- scale,
- scale2,
- scaleAndAdd,
- set,
- sub,
- translate
- } from "./chunk-7YIZLZUW.js";
- import "./chunk-HM4MQYWN.js";
- // node_modules/echarts/lib/chart/line/LineSeries.js
- var LineSeriesModel = (
- /** @class */
- function(_super) {
- __extends(LineSeriesModel2, _super);
- function LineSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = LineSeriesModel2.type;
- _this.hasSymbolVisual = true;
- return _this;
- }
- LineSeriesModel2.prototype.getInitialData = function(option) {
- if (true) {
- var coordSys = option.coordinateSystem;
- if (coordSys !== "polar" && coordSys !== "cartesian2d") {
- throw new Error("Line not support coordinateSystem besides cartesian and polar");
- }
- }
- return createSeriesData_default(null, this, {
- useEncodeDefaulter: true
- });
- };
- LineSeriesModel2.prototype.getLegendIcon = function(opt) {
- var group = new Group_default();
- var line = createSymbol("line", 0, opt.itemHeight / 2, opt.itemWidth, 0, opt.lineStyle.stroke, false);
- group.add(line);
- line.setStyle(opt.lineStyle);
- var visualType = this.getData().getVisual("symbol");
- var visualRotate = this.getData().getVisual("symbolRotate");
- var symbolType = visualType === "none" ? "circle" : visualType;
- var size = opt.itemHeight * 0.8;
- var symbol = createSymbol(symbolType, (opt.itemWidth - size) / 2, (opt.itemHeight - size) / 2, size, size, opt.itemStyle.fill);
- group.add(symbol);
- symbol.setStyle(opt.itemStyle);
- var symbolRotate = opt.iconRotate === "inherit" ? visualRotate : opt.iconRotate || 0;
- symbol.rotation = symbolRotate * Math.PI / 180;
- symbol.setOrigin([opt.itemWidth / 2, opt.itemHeight / 2]);
- if (symbolType.indexOf("empty") > -1) {
- symbol.style.stroke = symbol.style.fill;
- symbol.style.fill = "#fff";
- symbol.style.lineWidth = 2;
- }
- return group;
- };
- LineSeriesModel2.type = "series.line";
- LineSeriesModel2.dependencies = ["grid", "polar"];
- LineSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 3,
- coordinateSystem: "cartesian2d",
- legendHoverLink: true,
- clip: true,
- label: {
- position: "top"
- },
- // itemStyle: {
- // },
- endLabel: {
- show: false,
- valueAnimation: true,
- distance: 8
- },
- lineStyle: {
- width: 2,
- type: "solid"
- },
- emphasis: {
- scale: true
- },
- // areaStyle: {
- // origin of areaStyle. Valid values:
- // `'auto'/null/undefined`: from axisLine to data
- // `'start'`: from min to data
- // `'end'`: from data to max
- // origin: 'auto'
- // },
- // false, 'start', 'end', 'middle'
- step: false,
- // Disabled if step is true
- smooth: false,
- smoothMonotone: null,
- symbol: "emptyCircle",
- symbolSize: 4,
- symbolRotate: null,
- showSymbol: true,
- // `false`: follow the label interval strategy.
- // `true`: show all symbols.
- // `'auto'`: If possible, show all symbols, otherwise
- // follow the label interval strategy.
- showAllSymbol: "auto",
- // Whether to connect break point.
- connectNulls: false,
- // Sampling for large data. Can be: 'average', 'max', 'min', 'sum', 'lttb'.
- sampling: "none",
- animationEasing: "linear",
- // Disable progressive
- progressive: 0,
- hoverLayerThreshold: Infinity,
- universalTransition: {
- divideShape: "clone"
- },
- triggerLineEvent: false
- };
- return LineSeriesModel2;
- }(Series_default)
- );
- var LineSeries_default = LineSeriesModel;
- // node_modules/echarts/lib/chart/line/helper.js
- function prepareDataCoordInfo(coordSys, data, valueOrigin) {
- var baseAxis = coordSys.getBaseAxis();
- var valueAxis = coordSys.getOtherAxis(baseAxis);
- var valueStart = getValueStart(valueAxis, valueOrigin);
- var baseAxisDim = baseAxis.dim;
- var valueAxisDim = valueAxis.dim;
- var valueDim = data.mapDimension(valueAxisDim);
- var baseDim = data.mapDimension(baseAxisDim);
- var baseDataOffset = valueAxisDim === "x" || valueAxisDim === "radius" ? 1 : 0;
- var dims = map(coordSys.dimensions, function(coordDim) {
- return data.mapDimension(coordDim);
- });
- var stacked = false;
- var stackResultDim = data.getCalculationInfo("stackResultDimension");
- if (isDimensionStacked(
- data,
- dims[0]
- /* , dims[1] */
- )) {
- stacked = true;
- dims[0] = stackResultDim;
- }
- if (isDimensionStacked(
- data,
- dims[1]
- /* , dims[0] */
- )) {
- stacked = true;
- dims[1] = stackResultDim;
- }
- return {
- dataDimsForPoint: dims,
- valueStart,
- valueAxisDim,
- baseAxisDim,
- stacked: !!stacked,
- valueDim,
- baseDim,
- baseDataOffset,
- stackedOverDimension: data.getCalculationInfo("stackedOverDimension")
- };
- }
- function getValueStart(valueAxis, valueOrigin) {
- var valueStart = 0;
- var extent = valueAxis.scale.getExtent();
- if (valueOrigin === "start") {
- valueStart = extent[0];
- } else if (valueOrigin === "end") {
- valueStart = extent[1];
- } else if (isNumber(valueOrigin) && !isNaN(valueOrigin)) {
- valueStart = valueOrigin;
- } else {
- if (extent[0] > 0) {
- valueStart = extent[0];
- } else if (extent[1] < 0) {
- valueStart = extent[1];
- }
- }
- return valueStart;
- }
- function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {
- var value = NaN;
- if (dataCoordInfo.stacked) {
- value = data.get(data.getCalculationInfo("stackedOverDimension"), idx);
- }
- if (isNaN(value)) {
- value = dataCoordInfo.valueStart;
- }
- var baseDataOffset = dataCoordInfo.baseDataOffset;
- var stackedData = [];
- stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);
- stackedData[1 - baseDataOffset] = value;
- return coordSys.dataToPoint(stackedData);
- }
- // node_modules/echarts/lib/chart/line/lineAnimationDiff.js
- function diffData(oldData, newData) {
- var diffResult = [];
- newData.diff(oldData).add(function(idx) {
- diffResult.push({
- cmd: "+",
- idx
- });
- }).update(function(newIdx, oldIdx) {
- diffResult.push({
- cmd: "=",
- idx: oldIdx,
- idx1: newIdx
- });
- }).remove(function(idx) {
- diffResult.push({
- cmd: "-",
- idx
- });
- }).execute();
- return diffResult;
- }
- function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {
- var diff = diffData(oldData, newData);
- var currPoints = [];
- var nextPoints = [];
- var currStackedPoints = [];
- var nextStackedPoints = [];
- var status = [];
- var sortedIndices = [];
- var rawIndices = [];
- var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);
- var oldPoints = oldData.getLayout("points") || [];
- var newPoints = newData.getLayout("points") || [];
- for (var i = 0; i < diff.length; i++) {
- var diffItem = diff[i];
- var pointAdded = true;
- var oldIdx2 = void 0;
- var newIdx2 = void 0;
- switch (diffItem.cmd) {
- case "=":
- oldIdx2 = diffItem.idx * 2;
- newIdx2 = diffItem.idx1 * 2;
- var currentX = oldPoints[oldIdx2];
- var currentY = oldPoints[oldIdx2 + 1];
- var nextX = newPoints[newIdx2];
- var nextY = newPoints[newIdx2 + 1];
- if (isNaN(currentX) || isNaN(currentY)) {
- currentX = nextX;
- currentY = nextY;
- }
- currPoints.push(currentX, currentY);
- nextPoints.push(nextX, nextY);
- currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);
- nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);
- rawIndices.push(newData.getRawIndex(diffItem.idx1));
- break;
- case "+":
- var newIdx = diffItem.idx;
- var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;
- var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);
- newIdx2 = newIdx * 2;
- currPoints.push(oldPt[0], oldPt[1]);
- nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);
- var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);
- currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);
- nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);
- rawIndices.push(newData.getRawIndex(newIdx));
- break;
- case "-":
- pointAdded = false;
- }
- if (pointAdded) {
- status.push(diffItem);
- sortedIndices.push(sortedIndices.length);
- }
- }
- sortedIndices.sort(function(a, b) {
- return rawIndices[a] - rawIndices[b];
- });
- var len2 = currPoints.length;
- var sortedCurrPoints = createFloat32Array(len2);
- var sortedNextPoints = createFloat32Array(len2);
- var sortedCurrStackedPoints = createFloat32Array(len2);
- var sortedNextStackedPoints = createFloat32Array(len2);
- var sortedStatus = [];
- for (var i = 0; i < sortedIndices.length; i++) {
- var idx = sortedIndices[i];
- var i2 = i * 2;
- var idx2 = idx * 2;
- sortedCurrPoints[i2] = currPoints[idx2];
- sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];
- sortedNextPoints[i2] = nextPoints[idx2];
- sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];
- sortedCurrStackedPoints[i2] = currStackedPoints[idx2];
- sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];
- sortedNextStackedPoints[i2] = nextStackedPoints[idx2];
- sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];
- sortedStatus[i] = status[idx];
- }
- return {
- current: sortedCurrPoints,
- next: sortedNextPoints,
- stackedOnCurrent: sortedCurrStackedPoints,
- stackedOnNext: sortedNextStackedPoints,
- status: sortedStatus
- };
- }
- // node_modules/echarts/lib/chart/line/poly.js
- var mathMin = Math.min;
- var mathMax = Math.max;
- function isPointNull(x, y) {
- return isNaN(x) || isNaN(y);
- }
- function drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {
- var prevX;
- var prevY;
- var cpx0;
- var cpy0;
- var cpx1;
- var cpy1;
- var idx = start;
- var k = 0;
- for (; k < segLen; k++) {
- var x = points[idx * 2];
- var y = points[idx * 2 + 1];
- if (idx >= allLen || idx < 0) {
- break;
- }
- if (isPointNull(x, y)) {
- if (connectNulls) {
- idx += dir;
- continue;
- }
- break;
- }
- if (idx === start) {
- ctx[dir > 0 ? "moveTo" : "lineTo"](x, y);
- cpx0 = x;
- cpy0 = y;
- } else {
- var dx = x - prevX;
- var dy = y - prevY;
- if (dx * dx + dy * dy < 0.5) {
- idx += dir;
- continue;
- }
- if (smooth > 0) {
- var nextIdx = idx + dir;
- var nextX = points[nextIdx * 2];
- var nextY = points[nextIdx * 2 + 1];
- while (nextX === x && nextY === y && k < segLen) {
- k++;
- nextIdx += dir;
- idx += dir;
- nextX = points[nextIdx * 2];
- nextY = points[nextIdx * 2 + 1];
- x = points[idx * 2];
- y = points[idx * 2 + 1];
- dx = x - prevX;
- dy = y - prevY;
- }
- var tmpK = k + 1;
- if (connectNulls) {
- while (isPointNull(nextX, nextY) && tmpK < segLen) {
- tmpK++;
- nextIdx += dir;
- nextX = points[nextIdx * 2];
- nextY = points[nextIdx * 2 + 1];
- }
- }
- var ratioNextSeg = 0.5;
- var vx = 0;
- var vy = 0;
- var nextCpx0 = void 0;
- var nextCpy0 = void 0;
- if (tmpK >= segLen || isPointNull(nextX, nextY)) {
- cpx1 = x;
- cpy1 = y;
- } else {
- vx = nextX - prevX;
- vy = nextY - prevY;
- var dx0 = x - prevX;
- var dx1 = nextX - x;
- var dy0 = y - prevY;
- var dy1 = nextY - y;
- var lenPrevSeg = void 0;
- var lenNextSeg = void 0;
- if (smoothMonotone === "x") {
- lenPrevSeg = Math.abs(dx0);
- lenNextSeg = Math.abs(dx1);
- var dir_1 = vx > 0 ? 1 : -1;
- cpx1 = x - dir_1 * lenPrevSeg * smooth;
- cpy1 = y;
- nextCpx0 = x + dir_1 * lenNextSeg * smooth;
- nextCpy0 = y;
- } else if (smoothMonotone === "y") {
- lenPrevSeg = Math.abs(dy0);
- lenNextSeg = Math.abs(dy1);
- var dir_2 = vy > 0 ? 1 : -1;
- cpx1 = x;
- cpy1 = y - dir_2 * lenPrevSeg * smooth;
- nextCpx0 = x;
- nextCpy0 = y + dir_2 * lenNextSeg * smooth;
- } else {
- lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);
- lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);
- ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);
- cpx1 = x - vx * smooth * (1 - ratioNextSeg);
- cpy1 = y - vy * smooth * (1 - ratioNextSeg);
- nextCpx0 = x + vx * smooth * ratioNextSeg;
- nextCpy0 = y + vy * smooth * ratioNextSeg;
- nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));
- nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));
- nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));
- nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));
- vx = nextCpx0 - x;
- vy = nextCpy0 - y;
- cpx1 = x - vx * lenPrevSeg / lenNextSeg;
- cpy1 = y - vy * lenPrevSeg / lenNextSeg;
- cpx1 = mathMin(cpx1, mathMax(prevX, x));
- cpy1 = mathMin(cpy1, mathMax(prevY, y));
- cpx1 = mathMax(cpx1, mathMin(prevX, x));
- cpy1 = mathMax(cpy1, mathMin(prevY, y));
- vx = x - cpx1;
- vy = y - cpy1;
- nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;
- nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;
- }
- }
- ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);
- cpx0 = nextCpx0;
- cpy0 = nextCpy0;
- } else {
- ctx.lineTo(x, y);
- }
- }
- prevX = x;
- prevY = y;
- idx += dir;
- }
- return k;
- }
- var ECPolylineShape = (
- /** @class */
- function() {
- function ECPolylineShape2() {
- this.smooth = 0;
- this.smoothConstraint = true;
- }
- return ECPolylineShape2;
- }()
- );
- var ECPolyline = (
- /** @class */
- function(_super) {
- __extends(ECPolyline2, _super);
- function ECPolyline2(opts) {
- var _this = _super.call(this, opts) || this;
- _this.type = "ec-polyline";
- return _this;
- }
- ECPolyline2.prototype.getDefaultStyle = function() {
- return {
- stroke: "#000",
- fill: null
- };
- };
- ECPolyline2.prototype.getDefaultShape = function() {
- return new ECPolylineShape();
- };
- ECPolyline2.prototype.buildPath = function(ctx, shape) {
- var points = shape.points;
- var i = 0;
- var len2 = points.length / 2;
- if (shape.connectNulls) {
- for (; len2 > 0; len2--) {
- if (!isPointNull(points[len2 * 2 - 2], points[len2 * 2 - 1])) {
- break;
- }
- }
- for (; i < len2; i++) {
- if (!isPointNull(points[i * 2], points[i * 2 + 1])) {
- break;
- }
- }
- }
- while (i < len2) {
- i += drawSegment(ctx, points, i, len2, len2, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;
- }
- };
- ECPolyline2.prototype.getPointOn = function(xOrY, dim) {
- if (!this.path) {
- this.createPathProxy();
- this.buildPath(this.path, this.shape);
- }
- var path = this.path;
- var data = path.data;
- var CMD = PathProxy_default.CMD;
- var x0;
- var y0;
- var isDimX = dim === "x";
- var roots = [];
- for (var i = 0; i < data.length; ) {
- var cmd = data[i++];
- var x = void 0;
- var y = void 0;
- var x2 = void 0;
- var y2 = void 0;
- var x3 = void 0;
- var y3 = void 0;
- var t = void 0;
- switch (cmd) {
- case CMD.M:
- x0 = data[i++];
- y0 = data[i++];
- break;
- case CMD.L:
- x = data[i++];
- y = data[i++];
- t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);
- if (t <= 1 && t >= 0) {
- var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;
- return isDimX ? [xOrY, val] : [val, xOrY];
- }
- x0 = x;
- y0 = y;
- break;
- case CMD.C:
- x = data[i++];
- y = data[i++];
- x2 = data[i++];
- y2 = data[i++];
- x3 = data[i++];
- y3 = data[i++];
- var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);
- if (nRoot > 0) {
- for (var i_1 = 0; i_1 < nRoot; i_1++) {
- var t_1 = roots[i_1];
- if (t_1 <= 1 && t_1 >= 0) {
- var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);
- return isDimX ? [xOrY, val] : [val, xOrY];
- }
- }
- }
- x0 = x3;
- y0 = y3;
- break;
- }
- }
- };
- return ECPolyline2;
- }(Path_default)
- );
- var ECPolygonShape = (
- /** @class */
- function(_super) {
- __extends(ECPolygonShape2, _super);
- function ECPolygonShape2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return ECPolygonShape2;
- }(ECPolylineShape)
- );
- var ECPolygon = (
- /** @class */
- function(_super) {
- __extends(ECPolygon2, _super);
- function ECPolygon2(opts) {
- var _this = _super.call(this, opts) || this;
- _this.type = "ec-polygon";
- return _this;
- }
- ECPolygon2.prototype.getDefaultShape = function() {
- return new ECPolygonShape();
- };
- ECPolygon2.prototype.buildPath = function(ctx, shape) {
- var points = shape.points;
- var stackedOnPoints = shape.stackedOnPoints;
- var i = 0;
- var len2 = points.length / 2;
- var smoothMonotone = shape.smoothMonotone;
- if (shape.connectNulls) {
- for (; len2 > 0; len2--) {
- if (!isPointNull(points[len2 * 2 - 2], points[len2 * 2 - 1])) {
- break;
- }
- }
- for (; i < len2; i++) {
- if (!isPointNull(points[i * 2], points[i * 2 + 1])) {
- break;
- }
- }
- }
- while (i < len2) {
- var k = drawSegment(ctx, points, i, len2, len2, 1, shape.smooth, smoothMonotone, shape.connectNulls);
- drawSegment(ctx, stackedOnPoints, i + k - 1, k, len2, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);
- i += k + 1;
- ctx.closePath();
- }
- };
- return ECPolygon2;
- }(Path_default)
- );
- // node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js
- function createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {
- var rect = cartesian.getArea();
- var x = rect.x;
- var y = rect.y;
- var width = rect.width;
- var height = rect.height;
- var lineWidth = seriesModel.get(["lineStyle", "width"]) || 2;
- x -= lineWidth / 2;
- y -= lineWidth / 2;
- width += lineWidth;
- height += lineWidth;
- width = Math.ceil(width);
- if (x !== Math.floor(x)) {
- x = Math.floor(x);
- width++;
- }
- var clipPath = new Rect_default({
- shape: {
- x,
- y,
- width,
- height
- }
- });
- if (hasAnimation) {
- var baseAxis = cartesian.getBaseAxis();
- var isHorizontal = baseAxis.isHorizontal();
- var isAxisInversed = baseAxis.inverse;
- if (isHorizontal) {
- if (isAxisInversed) {
- clipPath.shape.x += width;
- }
- clipPath.shape.width = 0;
- } else {
- if (!isAxisInversed) {
- clipPath.shape.y += height;
- }
- clipPath.shape.height = 0;
- }
- var duringCb = isFunction(during) ? function(percent) {
- during(percent, clipPath);
- } : null;
- initProps(clipPath, {
- shape: {
- width,
- height,
- x,
- y
- }
- }, seriesModel, null, done, duringCb);
- }
- return clipPath;
- }
- function createPolarClipPath(polar, hasAnimation, seriesModel) {
- var sectorArea = polar.getArea();
- var r0 = round(sectorArea.r0, 1);
- var r = round(sectorArea.r, 1);
- var clipPath = new Sector_default({
- shape: {
- cx: round(polar.cx, 1),
- cy: round(polar.cy, 1),
- r0,
- r,
- startAngle: sectorArea.startAngle,
- endAngle: sectorArea.endAngle,
- clockwise: sectorArea.clockwise
- }
- });
- if (hasAnimation) {
- var isRadial = polar.getBaseAxis().dim === "angle";
- if (isRadial) {
- clipPath.shape.endAngle = sectorArea.startAngle;
- } else {
- clipPath.shape.r = r0;
- }
- initProps(clipPath, {
- shape: {
- endAngle: sectorArea.endAngle,
- r
- }
- }, seriesModel);
- }
- return clipPath;
- }
- function createClipPath(coordSys, hasAnimation, seriesModel, done, during) {
- if (!coordSys) {
- return null;
- } else if (coordSys.type === "polar") {
- return createPolarClipPath(coordSys, hasAnimation, seriesModel);
- } else if (coordSys.type === "cartesian2d") {
- return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);
- }
- return null;
- }
- // node_modules/echarts/lib/chart/line/LineView.js
- function isPointsSame(points1, points2) {
- if (points1.length !== points2.length) {
- return;
- }
- for (var i = 0; i < points1.length; i++) {
- if (points1[i] !== points2[i]) {
- return;
- }
- }
- return true;
- }
- function bboxFromPoints(points) {
- var minX = Infinity;
- var minY = Infinity;
- var maxX = -Infinity;
- var maxY = -Infinity;
- for (var i = 0; i < points.length; ) {
- var x = points[i++];
- var y = points[i++];
- if (!isNaN(x)) {
- minX = Math.min(x, minX);
- maxX = Math.max(x, maxX);
- }
- if (!isNaN(y)) {
- minY = Math.min(y, minY);
- maxY = Math.max(y, maxY);
- }
- }
- return [[minX, minY], [maxX, maxY]];
- }
- function getBoundingDiff(points1, points2) {
- var _a = bboxFromPoints(points1), min1 = _a[0], max1 = _a[1];
- var _b = bboxFromPoints(points2), min2 = _b[0], max2 = _b[1];
- return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));
- }
- function getSmooth(smooth) {
- return isNumber(smooth) ? smooth : smooth ? 0.5 : 0;
- }
- function getStackedOnPoints(coordSys, data, dataCoordInfo) {
- if (!dataCoordInfo.valueDim) {
- return [];
- }
- var len2 = data.count();
- var points = createFloat32Array(len2 * 2);
- for (var idx = 0; idx < len2; idx++) {
- var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);
- points[idx * 2] = pt[0];
- points[idx * 2 + 1] = pt[1];
- }
- return points;
- }
- function turnPointsIntoStep(points, coordSys, stepTurnAt, connectNulls) {
- var baseAxis = coordSys.getBaseAxis();
- var baseIndex = baseAxis.dim === "x" || baseAxis.dim === "radius" ? 0 : 1;
- var stepPoints = [];
- var i = 0;
- var stepPt = [];
- var pt = [];
- var nextPt = [];
- var filteredPoints = [];
- if (connectNulls) {
- for (i = 0; i < points.length; i += 2) {
- if (!isNaN(points[i]) && !isNaN(points[i + 1])) {
- filteredPoints.push(points[i], points[i + 1]);
- }
- }
- points = filteredPoints;
- }
- for (i = 0; i < points.length - 2; i += 2) {
- nextPt[0] = points[i + 2];
- nextPt[1] = points[i + 3];
- pt[0] = points[i];
- pt[1] = points[i + 1];
- stepPoints.push(pt[0], pt[1]);
- switch (stepTurnAt) {
- case "end":
- stepPt[baseIndex] = nextPt[baseIndex];
- stepPt[1 - baseIndex] = pt[1 - baseIndex];
- stepPoints.push(stepPt[0], stepPt[1]);
- break;
- case "middle":
- var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;
- var stepPt2 = [];
- stepPt[baseIndex] = stepPt2[baseIndex] = middle;
- stepPt[1 - baseIndex] = pt[1 - baseIndex];
- stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];
- stepPoints.push(stepPt[0], stepPt[1]);
- stepPoints.push(stepPt2[0], stepPt2[1]);
- break;
- default:
- stepPt[baseIndex] = pt[baseIndex];
- stepPt[1 - baseIndex] = nextPt[1 - baseIndex];
- stepPoints.push(stepPt[0], stepPt[1]);
- }
- }
- stepPoints.push(points[i++], points[i++]);
- return stepPoints;
- }
- function clipColorStops(colorStops, maxSize) {
- var newColorStops = [];
- var len2 = colorStops.length;
- var prevOutOfRangeColorStop;
- var prevInRangeColorStop;
- function lerpStop(stop0, stop1, clippedCoord) {
- var coord0 = stop0.coord;
- var p = (clippedCoord - coord0) / (stop1.coord - coord0);
- var color = lerp(p, [stop0.color, stop1.color]);
- return {
- coord: clippedCoord,
- color
- };
- }
- for (var i = 0; i < len2; i++) {
- var stop_1 = colorStops[i];
- var coord = stop_1.coord;
- if (coord < 0) {
- prevOutOfRangeColorStop = stop_1;
- } else if (coord > maxSize) {
- if (prevInRangeColorStop) {
- newColorStops.push(lerpStop(prevInRangeColorStop, stop_1, maxSize));
- } else if (prevOutOfRangeColorStop) {
- newColorStops.push(lerpStop(prevOutOfRangeColorStop, stop_1, 0), lerpStop(prevOutOfRangeColorStop, stop_1, maxSize));
- }
- break;
- } else {
- if (prevOutOfRangeColorStop) {
- newColorStops.push(lerpStop(prevOutOfRangeColorStop, stop_1, 0));
- prevOutOfRangeColorStop = null;
- }
- newColorStops.push(stop_1);
- prevInRangeColorStop = stop_1;
- }
- }
- return newColorStops;
- }
- function getVisualGradient(data, coordSys, api) {
- var visualMetaList = data.getVisual("visualMeta");
- if (!visualMetaList || !visualMetaList.length || !data.count()) {
- return;
- }
- if (coordSys.type !== "cartesian2d") {
- if (true) {
- console.warn("Visual map on line style is only supported on cartesian2d.");
- }
- return;
- }
- var coordDim;
- var visualMeta;
- for (var i = visualMetaList.length - 1; i >= 0; i--) {
- var dimInfo = data.getDimensionInfo(visualMetaList[i].dimension);
- coordDim = dimInfo && dimInfo.coordDim;
- if (coordDim === "x" || coordDim === "y") {
- visualMeta = visualMetaList[i];
- break;
- }
- }
- if (!visualMeta) {
- if (true) {
- console.warn("Visual map on line style only support x or y dimension.");
- }
- return;
- }
- var axis = coordSys.getAxis(coordDim);
- var colorStops = map(visualMeta.stops, function(stop) {
- return {
- coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),
- color: stop.color
- };
- });
- var stopLen = colorStops.length;
- var outerColors = visualMeta.outerColors.slice();
- if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {
- colorStops.reverse();
- outerColors.reverse();
- }
- var colorStopsInRange = clipColorStops(colorStops, coordDim === "x" ? api.getWidth() : api.getHeight());
- var inRangeStopLen = colorStopsInRange.length;
- if (!inRangeStopLen && stopLen) {
- return colorStops[0].coord < 0 ? outerColors[1] ? outerColors[1] : colorStops[stopLen - 1].color : outerColors[0] ? outerColors[0] : colorStops[0].color;
- }
- var tinyExtent = 10;
- var minCoord = colorStopsInRange[0].coord - tinyExtent;
- var maxCoord = colorStopsInRange[inRangeStopLen - 1].coord + tinyExtent;
- var coordSpan = maxCoord - minCoord;
- if (coordSpan < 1e-3) {
- return "transparent";
- }
- each(colorStopsInRange, function(stop) {
- stop.offset = (stop.coord - minCoord) / coordSpan;
- });
- colorStopsInRange.push({
- // NOTE: inRangeStopLen may still be 0 if stoplen is zero.
- offset: inRangeStopLen ? colorStopsInRange[inRangeStopLen - 1].offset : 0.5,
- color: outerColors[1] || "transparent"
- });
- colorStopsInRange.unshift({
- offset: inRangeStopLen ? colorStopsInRange[0].offset : 0.5,
- color: outerColors[0] || "transparent"
- });
- var gradient = new LinearGradient_default(0, 0, 0, 0, colorStopsInRange, true);
- gradient[coordDim] = minCoord;
- gradient[coordDim + "2"] = maxCoord;
- return gradient;
- }
- function getIsIgnoreFunc(seriesModel, data, coordSys) {
- var showAllSymbol = seriesModel.get("showAllSymbol");
- var isAuto = showAllSymbol === "auto";
- if (showAllSymbol && !isAuto) {
- return;
- }
- var categoryAxis = coordSys.getAxesByScale("ordinal")[0];
- if (!categoryAxis) {
- return;
- }
- if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {
- return;
- }
- var categoryDataDim = data.mapDimension(categoryAxis.dim);
- var labelMap = {};
- each(categoryAxis.getViewLabels(), function(labelItem) {
- var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);
- labelMap[ordinalNumber] = 1;
- });
- return function(dataIndex) {
- return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));
- };
- }
- function canShowAllSymbolForCategory(categoryAxis, data) {
- var axisExtent = categoryAxis.getExtent();
- var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();
- isNaN(availSize) && (availSize = 0);
- var dataLen = data.count();
- var step = Math.max(1, Math.round(dataLen / 5));
- for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {
- if (Symbol_default.getSymbolSize(
- data,
- dataIndex
- // Only for cartesian, where `isHorizontal` exists.
- )[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {
- return false;
- }
- }
- return true;
- }
- function isPointNull2(x, y) {
- return isNaN(x) || isNaN(y);
- }
- function getLastIndexNotNull(points) {
- var len2 = points.length / 2;
- for (; len2 > 0; len2--) {
- if (!isPointNull2(points[len2 * 2 - 2], points[len2 * 2 - 1])) {
- break;
- }
- }
- return len2 - 1;
- }
- function getPointAtIndex(points, idx) {
- return [points[idx * 2], points[idx * 2 + 1]];
- }
- function getIndexRange(points, xOrY, dim) {
- var len2 = points.length / 2;
- var dimIdx = dim === "x" ? 0 : 1;
- var a;
- var b;
- var prevIndex = 0;
- var nextIndex = -1;
- for (var i = 0; i < len2; i++) {
- b = points[i * 2 + dimIdx];
- if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {
- continue;
- }
- if (i === 0) {
- a = b;
- continue;
- }
- if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {
- nextIndex = i;
- break;
- }
- prevIndex = i;
- a = b;
- }
- return {
- range: [prevIndex, nextIndex],
- t: (xOrY - a) / (b - a)
- };
- }
- function anyStateShowEndLabel(seriesModel) {
- if (seriesModel.get(["endLabel", "show"])) {
- return true;
- }
- for (var i = 0; i < SPECIAL_STATES.length; i++) {
- if (seriesModel.get([SPECIAL_STATES[i], "endLabel", "show"])) {
- return true;
- }
- }
- return false;
- }
- function createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {
- if (isCoordinateSystemType(coordSys, "cartesian2d")) {
- var endLabelModel_1 = seriesModel.getModel("endLabel");
- var valueAnimation_1 = endLabelModel_1.get("valueAnimation");
- var data_1 = seriesModel.getData();
- var labelAnimationRecord_1 = {
- lastFrameIndex: 0
- };
- var during = anyStateShowEndLabel(seriesModel) ? function(percent, clipRect) {
- lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);
- } : null;
- var isHorizontal = coordSys.getBaseAxis().isHorizontal();
- var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function() {
- var endLabel = lineView._endLabel;
- if (endLabel && hasAnimation) {
- if (labelAnimationRecord_1.originalX != null) {
- endLabel.attr({
- x: labelAnimationRecord_1.originalX,
- y: labelAnimationRecord_1.originalY
- });
- }
- }
- }, during);
- if (!seriesModel.get("clip", true)) {
- var rectShape = clipPath.shape;
- var expandSize = Math.max(rectShape.width, rectShape.height);
- if (isHorizontal) {
- rectShape.y -= expandSize;
- rectShape.height += expandSize * 2;
- } else {
- rectShape.x -= expandSize;
- rectShape.width += expandSize * 2;
- }
- }
- if (during) {
- during(1, clipPath);
- }
- return clipPath;
- } else {
- if (true) {
- if (seriesModel.get(["endLabel", "show"])) {
- console.warn("endLabel is not supported for lines in polar systems.");
- }
- }
- return createPolarClipPath(coordSys, hasAnimation, seriesModel);
- }
- }
- function getEndLabelStateSpecified(endLabelModel, coordSys) {
- var baseAxis = coordSys.getBaseAxis();
- var isHorizontal = baseAxis.isHorizontal();
- var isBaseInversed = baseAxis.inverse;
- var align = isHorizontal ? isBaseInversed ? "right" : "left" : "center";
- var verticalAlign = isHorizontal ? "middle" : isBaseInversed ? "top" : "bottom";
- return {
- normal: {
- align: endLabelModel.get("align") || align,
- verticalAlign: endLabelModel.get("verticalAlign") || verticalAlign
- }
- };
- }
- var LineView = (
- /** @class */
- function(_super) {
- __extends(LineView2, _super);
- function LineView2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- LineView2.prototype.init = function() {
- var lineGroup = new Group_default();
- var symbolDraw = new SymbolDraw_default();
- this.group.add(symbolDraw.group);
- this._symbolDraw = symbolDraw;
- this._lineGroup = lineGroup;
- };
- LineView2.prototype.render = function(seriesModel, ecModel, api) {
- var _this = this;
- var coordSys = seriesModel.coordinateSystem;
- var group = this.group;
- var data = seriesModel.getData();
- var lineStyleModel = seriesModel.getModel("lineStyle");
- var areaStyleModel = seriesModel.getModel("areaStyle");
- var points = data.getLayout("points") || [];
- var isCoordSysPolar = coordSys.type === "polar";
- var prevCoordSys = this._coordSys;
- var symbolDraw = this._symbolDraw;
- var polyline = this._polyline;
- var polygon = this._polygon;
- var lineGroup = this._lineGroup;
- var hasAnimation = !ecModel.ssr && seriesModel.get("animation");
- var isAreaChart = !areaStyleModel.isEmpty();
- var valueOrigin = areaStyleModel.get("origin");
- var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);
- var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);
- var showSymbol = seriesModel.get("showSymbol");
- var connectNulls = seriesModel.get("connectNulls");
- var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);
- var oldData = this._data;
- oldData && oldData.eachItemGraphicEl(function(el, idx) {
- if (el.__temp) {
- group.remove(el);
- oldData.setItemGraphicEl(idx, null);
- }
- });
- if (!showSymbol) {
- symbolDraw.remove();
- }
- group.add(lineGroup);
- var step = !isCoordSysPolar ? seriesModel.get("step") : false;
- var clipShapeForSymbol;
- if (coordSys && coordSys.getArea && seriesModel.get("clip", true)) {
- clipShapeForSymbol = coordSys.getArea();
- if (clipShapeForSymbol.width != null) {
- clipShapeForSymbol.x -= 0.1;
- clipShapeForSymbol.y -= 0.1;
- clipShapeForSymbol.width += 0.2;
- clipShapeForSymbol.height += 0.2;
- } else if (clipShapeForSymbol.r0) {
- clipShapeForSymbol.r0 -= 0.5;
- clipShapeForSymbol.r += 0.5;
- }
- }
- this._clipShapeForSymbol = clipShapeForSymbol;
- var visualColor = getVisualGradient(data, coordSys, api) || data.getVisual("style")[data.getVisual("drawType")];
- if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {
- showSymbol && symbolDraw.updateData(data, {
- isIgnore: isIgnoreFunc,
- clipShape: clipShapeForSymbol,
- disableAnimation: true,
- getSymbolPoint: function(idx) {
- return [points[idx * 2], points[idx * 2 + 1]];
- }
- });
- hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);
- if (step) {
- points = turnPointsIntoStep(points, coordSys, step, connectNulls);
- if (stackedOnPoints) {
- stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step, connectNulls);
- }
- }
- polyline = this._newPolyline(points);
- if (isAreaChart) {
- polygon = this._newPolygon(points, stackedOnPoints);
- } else if (polygon) {
- lineGroup.remove(polygon);
- polygon = this._polygon = null;
- }
- if (!isCoordSysPolar) {
- this._initOrUpdateEndLabel(seriesModel, coordSys, convertToColorString(visualColor));
- }
- lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));
- } else {
- if (isAreaChart && !polygon) {
- polygon = this._newPolygon(points, stackedOnPoints);
- } else if (polygon && !isAreaChart) {
- lineGroup.remove(polygon);
- polygon = this._polygon = null;
- }
- if (!isCoordSysPolar) {
- this._initOrUpdateEndLabel(seriesModel, coordSys, convertToColorString(visualColor));
- }
- var oldClipPath = lineGroup.getClipPath();
- if (oldClipPath) {
- var newClipPath = createLineClipPath(this, coordSys, false, seriesModel);
- initProps(oldClipPath, {
- shape: newClipPath.shape
- }, seriesModel);
- } else {
- lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));
- }
- showSymbol && symbolDraw.updateData(data, {
- isIgnore: isIgnoreFunc,
- clipShape: clipShapeForSymbol,
- disableAnimation: true,
- getSymbolPoint: function(idx) {
- return [points[idx * 2], points[idx * 2 + 1]];
- }
- });
- if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {
- if (hasAnimation) {
- this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin, connectNulls);
- } else {
- if (step) {
- points = turnPointsIntoStep(points, coordSys, step, connectNulls);
- if (stackedOnPoints) {
- stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step, connectNulls);
- }
- }
- polyline.setShape({
- points
- });
- polygon && polygon.setShape({
- points,
- stackedOnPoints
- });
- }
- }
- }
- var emphasisModel = seriesModel.getModel("emphasis");
- var focus = emphasisModel.get("focus");
- var blurScope = emphasisModel.get("blurScope");
- var emphasisDisabled = emphasisModel.get("disabled");
- polyline.useStyle(defaults(
- // Use color in lineStyle first
- lineStyleModel.getLineStyle(),
- {
- fill: "none",
- stroke: visualColor,
- lineJoin: "bevel"
- }
- ));
- setStatesStylesFromModel(polyline, seriesModel, "lineStyle");
- if (polyline.style.lineWidth > 0 && seriesModel.get(["emphasis", "lineStyle", "width"]) === "bolder") {
- var emphasisLineStyle = polyline.getState("emphasis").style;
- emphasisLineStyle.lineWidth = +polyline.style.lineWidth + 1;
- }
- getECData(polyline).seriesIndex = seriesModel.seriesIndex;
- toggleHoverEmphasis(polyline, focus, blurScope, emphasisDisabled);
- var smooth = getSmooth(seriesModel.get("smooth"));
- var smoothMonotone = seriesModel.get("smoothMonotone");
- polyline.setShape({
- smooth,
- smoothMonotone,
- connectNulls
- });
- if (polygon) {
- var stackedOnSeries = data.getCalculationInfo("stackedOnSeries");
- var stackedOnSmooth = 0;
- polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {
- fill: visualColor,
- opacity: 0.7,
- lineJoin: "bevel",
- decal: data.getVisual("style").decal
- }));
- if (stackedOnSeries) {
- stackedOnSmooth = getSmooth(stackedOnSeries.get("smooth"));
- }
- polygon.setShape({
- smooth,
- stackedOnSmooth,
- smoothMonotone,
- connectNulls
- });
- setStatesStylesFromModel(polygon, seriesModel, "areaStyle");
- getECData(polygon).seriesIndex = seriesModel.seriesIndex;
- toggleHoverEmphasis(polygon, focus, blurScope, emphasisDisabled);
- }
- var changePolyState = function(toState) {
- _this._changePolyState(toState);
- };
- data.eachItemGraphicEl(function(el) {
- el && (el.onHoverStateChange = changePolyState);
- });
- this._polyline.onHoverStateChange = changePolyState;
- this._data = data;
- this._coordSys = coordSys;
- this._stackedOnPoints = stackedOnPoints;
- this._points = points;
- this._step = step;
- this._valueOrigin = valueOrigin;
- if (seriesModel.get("triggerLineEvent")) {
- this.packEventData(seriesModel, polyline);
- polygon && this.packEventData(seriesModel, polygon);
- }
- };
- LineView2.prototype.packEventData = function(seriesModel, el) {
- getECData(el).eventData = {
- componentType: "series",
- componentSubType: "line",
- componentIndex: seriesModel.componentIndex,
- seriesIndex: seriesModel.seriesIndex,
- seriesName: seriesModel.name,
- seriesType: "line"
- };
- };
- LineView2.prototype.highlight = function(seriesModel, ecModel, api, payload) {
- var data = seriesModel.getData();
- var dataIndex = queryDataIndex(data, payload);
- this._changePolyState("emphasis");
- if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {
- var points = data.getLayout("points");
- var symbol = data.getItemGraphicEl(dataIndex);
- if (!symbol) {
- var x = points[dataIndex * 2];
- var y = points[dataIndex * 2 + 1];
- if (isNaN(x) || isNaN(y)) {
- return;
- }
- if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {
- return;
- }
- var zlevel = seriesModel.get("zlevel") || 0;
- var z = seriesModel.get("z") || 0;
- symbol = new Symbol_default(data, dataIndex);
- symbol.x = x;
- symbol.y = y;
- symbol.setZ(zlevel, z);
- var symbolLabel = symbol.getSymbolPath().getTextContent();
- if (symbolLabel) {
- symbolLabel.zlevel = zlevel;
- symbolLabel.z = z;
- symbolLabel.z2 = this._polyline.z2 + 1;
- }
- symbol.__temp = true;
- data.setItemGraphicEl(dataIndex, symbol);
- symbol.stopSymbolAnimation(true);
- this.group.add(symbol);
- }
- symbol.highlight();
- } else {
- Chart_default.prototype.highlight.call(this, seriesModel, ecModel, api, payload);
- }
- };
- LineView2.prototype.downplay = function(seriesModel, ecModel, api, payload) {
- var data = seriesModel.getData();
- var dataIndex = queryDataIndex(data, payload);
- this._changePolyState("normal");
- if (dataIndex != null && dataIndex >= 0) {
- var symbol = data.getItemGraphicEl(dataIndex);
- if (symbol) {
- if (symbol.__temp) {
- data.setItemGraphicEl(dataIndex, null);
- this.group.remove(symbol);
- } else {
- symbol.downplay();
- }
- }
- } else {
- Chart_default.prototype.downplay.call(this, seriesModel, ecModel, api, payload);
- }
- };
- LineView2.prototype._changePolyState = function(toState) {
- var polygon = this._polygon;
- setStatesFlag(this._polyline, toState);
- polygon && setStatesFlag(polygon, toState);
- };
- LineView2.prototype._newPolyline = function(points) {
- var polyline = this._polyline;
- if (polyline) {
- this._lineGroup.remove(polyline);
- }
- polyline = new ECPolyline({
- shape: {
- points
- },
- segmentIgnoreThreshold: 2,
- z2: 10
- });
- this._lineGroup.add(polyline);
- this._polyline = polyline;
- return polyline;
- };
- LineView2.prototype._newPolygon = function(points, stackedOnPoints) {
- var polygon = this._polygon;
- if (polygon) {
- this._lineGroup.remove(polygon);
- }
- polygon = new ECPolygon({
- shape: {
- points,
- stackedOnPoints
- },
- segmentIgnoreThreshold: 2
- });
- this._lineGroup.add(polygon);
- this._polygon = polygon;
- return polygon;
- };
- LineView2.prototype._initSymbolLabelAnimation = function(data, coordSys, clipShape) {
- var isHorizontalOrRadial;
- var isCoordSysPolar;
- var baseAxis = coordSys.getBaseAxis();
- var isAxisInverse = baseAxis.inverse;
- if (coordSys.type === "cartesian2d") {
- isHorizontalOrRadial = baseAxis.isHorizontal();
- isCoordSysPolar = false;
- } else if (coordSys.type === "polar") {
- isHorizontalOrRadial = baseAxis.dim === "angle";
- isCoordSysPolar = true;
- }
- var seriesModel = data.hostModel;
- var seriesDuration = seriesModel.get("animationDuration");
- if (isFunction(seriesDuration)) {
- seriesDuration = seriesDuration(null);
- }
- var seriesDelay = seriesModel.get("animationDelay") || 0;
- var seriesDelayValue = isFunction(seriesDelay) ? seriesDelay(null) : seriesDelay;
- data.eachItemGraphicEl(function(symbol, idx) {
- var el = symbol;
- if (el) {
- var point = [symbol.x, symbol.y];
- var start = void 0;
- var end = void 0;
- var current = void 0;
- if (clipShape) {
- if (isCoordSysPolar) {
- var polarClip = clipShape;
- var coord = coordSys.pointToCoord(point);
- if (isHorizontalOrRadial) {
- start = polarClip.startAngle;
- end = polarClip.endAngle;
- current = -coord[1] / 180 * Math.PI;
- } else {
- start = polarClip.r0;
- end = polarClip.r;
- current = coord[0];
- }
- } else {
- var gridClip = clipShape;
- if (isHorizontalOrRadial) {
- start = gridClip.x;
- end = gridClip.x + gridClip.width;
- current = symbol.x;
- } else {
- start = gridClip.y + gridClip.height;
- end = gridClip.y;
- current = symbol.y;
- }
- }
- }
- var ratio = end === start ? 0 : (current - start) / (end - start);
- if (isAxisInverse) {
- ratio = 1 - ratio;
- }
- var delay = isFunction(seriesDelay) ? seriesDelay(idx) : seriesDuration * ratio + seriesDelayValue;
- var symbolPath = el.getSymbolPath();
- var text = symbolPath.getTextContent();
- el.attr({
- scaleX: 0,
- scaleY: 0
- });
- el.animateTo({
- scaleX: 1,
- scaleY: 1
- }, {
- duration: 200,
- setToFinal: true,
- delay
- });
- if (text) {
- text.animateFrom({
- style: {
- opacity: 0
- }
- }, {
- duration: 300,
- delay
- });
- }
- symbolPath.disableLabelAnimation = true;
- }
- });
- };
- LineView2.prototype._initOrUpdateEndLabel = function(seriesModel, coordSys, inheritColor) {
- var endLabelModel = seriesModel.getModel("endLabel");
- if (anyStateShowEndLabel(seriesModel)) {
- var data_2 = seriesModel.getData();
- var polyline = this._polyline;
- var points = data_2.getLayout("points");
- if (!points) {
- polyline.removeTextContent();
- this._endLabel = null;
- return;
- }
- var endLabel = this._endLabel;
- if (!endLabel) {
- endLabel = this._endLabel = new Text_default({
- z2: 200
- // should be higher than item symbol
- });
- endLabel.ignoreClip = true;
- polyline.setTextContent(this._endLabel);
- polyline.disableLabelAnimation = true;
- }
- var dataIndex = getLastIndexNotNull(points);
- if (dataIndex >= 0) {
- setLabelStyle(polyline, getLabelStatesModels(seriesModel, "endLabel"), {
- inheritColor,
- labelFetcher: seriesModel,
- labelDataIndex: dataIndex,
- defaultText: function(dataIndex2, opt, interpolatedValue) {
- return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex2);
- },
- enableTextSetter: true
- }, getEndLabelStateSpecified(endLabelModel, coordSys));
- polyline.textConfig.position = null;
- }
- } else if (this._endLabel) {
- this._polyline.removeTextContent();
- this._endLabel = null;
- }
- };
- LineView2.prototype._endLabelOnDuring = function(percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {
- var endLabel = this._endLabel;
- var polyline = this._polyline;
- if (endLabel) {
- if (percent < 1 && animationRecord.originalX == null) {
- animationRecord.originalX = endLabel.x;
- animationRecord.originalY = endLabel.y;
- }
- var points = data.getLayout("points");
- var seriesModel = data.hostModel;
- var connectNulls = seriesModel.get("connectNulls");
- var precision = endLabelModel.get("precision");
- var distance = endLabelModel.get("distance") || 0;
- var baseAxis = coordSys.getBaseAxis();
- var isHorizontal = baseAxis.isHorizontal();
- var isBaseInversed = baseAxis.inverse;
- var clipShape = clipRect.shape;
- var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;
- var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);
- var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);
- var dim = isHorizontal ? "x" : "y";
- var dataIndexRange = getIndexRange(points, xOrY, dim);
- var indices = dataIndexRange.range;
- var diff = indices[1] - indices[0];
- var value = void 0;
- if (diff >= 1) {
- if (diff > 1 && !connectNulls) {
- var pt = getPointAtIndex(points, indices[0]);
- endLabel.attr({
- x: pt[0] + distanceX,
- y: pt[1] + distanceY
- });
- valueAnimation && (value = seriesModel.getRawValue(indices[0]));
- } else {
- var pt = polyline.getPointOn(xOrY, dim);
- pt && endLabel.attr({
- x: pt[0] + distanceX,
- y: pt[1] + distanceY
- });
- var startValue = seriesModel.getRawValue(indices[0]);
- var endValue = seriesModel.getRawValue(indices[1]);
- valueAnimation && (value = interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));
- }
- animationRecord.lastFrameIndex = indices[0];
- } else {
- var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;
- var pt = getPointAtIndex(points, idx);
- valueAnimation && (value = seriesModel.getRawValue(idx));
- endLabel.attr({
- x: pt[0] + distanceX,
- y: pt[1] + distanceY
- });
- }
- if (valueAnimation) {
- var inner4 = labelInner(endLabel);
- if (typeof inner4.setLabelText === "function") {
- inner4.setLabelText(value);
- }
- }
- }
- };
- LineView2.prototype._doUpdateAnimation = function(data, stackedOnPoints, coordSys, api, step, valueOrigin, connectNulls) {
- var polyline = this._polyline;
- var polygon = this._polygon;
- var seriesModel = data.hostModel;
- var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);
- var current = diff.current;
- var stackedOnCurrent = diff.stackedOnCurrent;
- var next = diff.next;
- var stackedOnNext = diff.stackedOnNext;
- if (step) {
- current = turnPointsIntoStep(diff.current, coordSys, step, connectNulls);
- stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step, connectNulls);
- next = turnPointsIntoStep(diff.next, coordSys, step, connectNulls);
- stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step, connectNulls);
- }
- if (getBoundingDiff(current, next) > 3e3 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3e3) {
- polyline.stopAnimation();
- polyline.setShape({
- points: next
- });
- if (polygon) {
- polygon.stopAnimation();
- polygon.setShape({
- points: next,
- stackedOnPoints: stackedOnNext
- });
- }
- return;
- }
- polyline.shape.__points = diff.current;
- polyline.shape.points = current;
- var target = {
- shape: {
- points: next
- }
- };
- if (diff.current !== current) {
- target.shape.__points = diff.next;
- }
- polyline.stopAnimation();
- updateProps(polyline, target, seriesModel);
- if (polygon) {
- polygon.setShape({
- // Reuse the points with polyline.
- points: current,
- stackedOnPoints: stackedOnCurrent
- });
- polygon.stopAnimation();
- updateProps(polygon, {
- shape: {
- stackedOnPoints: stackedOnNext
- }
- }, seriesModel);
- if (polyline.shape.points !== polygon.shape.points) {
- polygon.shape.points = polyline.shape.points;
- }
- }
- var updatedDataInfo = [];
- var diffStatus = diff.status;
- for (var i = 0; i < diffStatus.length; i++) {
- var cmd = diffStatus[i].cmd;
- if (cmd === "=") {
- var el = data.getItemGraphicEl(diffStatus[i].idx1);
- if (el) {
- updatedDataInfo.push({
- el,
- ptIdx: i
- // Index of points
- });
- }
- }
- }
- if (polyline.animators && polyline.animators.length) {
- polyline.animators[0].during(function() {
- polygon && polygon.dirtyShape();
- var points = polyline.shape.__points;
- for (var i2 = 0; i2 < updatedDataInfo.length; i2++) {
- var el2 = updatedDataInfo[i2].el;
- var offset = updatedDataInfo[i2].ptIdx * 2;
- el2.x = points[offset];
- el2.y = points[offset + 1];
- el2.markRedraw();
- }
- });
- }
- };
- LineView2.prototype.remove = function(ecModel) {
- var group = this.group;
- var oldData = this._data;
- this._lineGroup.removeAll();
- this._symbolDraw.remove(true);
- oldData && oldData.eachItemGraphicEl(function(el, idx) {
- if (el.__temp) {
- group.remove(el);
- oldData.setItemGraphicEl(idx, null);
- }
- });
- this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;
- };
- LineView2.type = "line";
- return LineView2;
- }(Chart_default)
- );
- var LineView_default = LineView;
- // node_modules/echarts/lib/layout/points.js
- function pointsLayout(seriesType, forceStoreInTypedArray) {
- return {
- seriesType,
- plan: createRenderPlanner(),
- reset: function(seriesModel) {
- var data = seriesModel.getData();
- var coordSys = seriesModel.coordinateSystem;
- var pipelineContext = seriesModel.pipelineContext;
- var useTypedArray = forceStoreInTypedArray || pipelineContext.large;
- if (!coordSys) {
- return;
- }
- var dims = map(coordSys.dimensions, function(dim) {
- return data.mapDimension(dim);
- }).slice(0, 2);
- var dimLen = dims.length;
- var stackResultDim = data.getCalculationInfo("stackResultDimension");
- if (isDimensionStacked(data, dims[0])) {
- dims[0] = stackResultDim;
- }
- if (isDimensionStacked(data, dims[1])) {
- dims[1] = stackResultDim;
- }
- var store = data.getStore();
- var dimIdx0 = data.getDimensionIndex(dims[0]);
- var dimIdx1 = data.getDimensionIndex(dims[1]);
- return dimLen && {
- progress: function(params, data2) {
- var segCount = params.end - params.start;
- var points = useTypedArray && createFloat32Array(segCount * dimLen);
- var tmpIn = [];
- var tmpOut = [];
- for (var i = params.start, offset = 0; i < params.end; i++) {
- var point = void 0;
- if (dimLen === 1) {
- var x = store.get(dimIdx0, i);
- point = coordSys.dataToPoint(x, null, tmpOut);
- } else {
- tmpIn[0] = store.get(dimIdx0, i);
- tmpIn[1] = store.get(dimIdx1, i);
- point = coordSys.dataToPoint(tmpIn, null, tmpOut);
- }
- if (useTypedArray) {
- points[offset++] = point[0];
- points[offset++] = point[1];
- } else {
- data2.setItemLayout(i, point.slice());
- }
- }
- useTypedArray && data2.setLayout("points", points);
- }
- };
- }
- };
- }
- // node_modules/echarts/lib/processor/dataSample.js
- var samplers = {
- average: function(frame) {
- var sum2 = 0;
- var count = 0;
- for (var i = 0; i < frame.length; i++) {
- if (!isNaN(frame[i])) {
- sum2 += frame[i];
- count++;
- }
- }
- return count === 0 ? NaN : sum2 / count;
- },
- sum: function(frame) {
- var sum2 = 0;
- for (var i = 0; i < frame.length; i++) {
- sum2 += frame[i] || 0;
- }
- return sum2;
- },
- max: function(frame) {
- var max = -Infinity;
- for (var i = 0; i < frame.length; i++) {
- frame[i] > max && (max = frame[i]);
- }
- return isFinite(max) ? max : NaN;
- },
- min: function(frame) {
- var min = Infinity;
- for (var i = 0; i < frame.length; i++) {
- frame[i] < min && (min = frame[i]);
- }
- return isFinite(min) ? min : NaN;
- },
- minmax: function(frame) {
- var turningPointAbsoluteValue = -Infinity;
- var turningPointOriginalValue = -Infinity;
- for (var i = 0; i < frame.length; i++) {
- var originalValue = frame[i];
- var absoluteValue = Math.abs(originalValue);
- if (absoluteValue > turningPointAbsoluteValue) {
- turningPointAbsoluteValue = absoluteValue;
- turningPointOriginalValue = originalValue;
- }
- }
- return isFinite(turningPointOriginalValue) ? turningPointOriginalValue : NaN;
- },
- // TODO
- // Median
- nearest: function(frame) {
- return frame[0];
- }
- };
- var indexSampler = function(frame) {
- return Math.round(frame.length / 2);
- };
- function dataSample(seriesType) {
- return {
- seriesType,
- // FIXME:TS never used, so comment it
- // modifyOutputEnd: true,
- reset: function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var sampling = seriesModel.get("sampling");
- var coordSys = seriesModel.coordinateSystem;
- var count = data.count();
- if (count > 10 && coordSys.type === "cartesian2d" && sampling) {
- var baseAxis = coordSys.getBaseAxis();
- var valueAxis = coordSys.getOtherAxis(baseAxis);
- var extent = baseAxis.getExtent();
- var dpr = api.getDevicePixelRatio();
- var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);
- var rate = Math.round(count / size);
- if (isFinite(rate) && rate > 1) {
- if (sampling === "lttb") {
- seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));
- }
- var sampler = void 0;
- if (isString(sampling)) {
- sampler = samplers[sampling];
- } else if (isFunction(sampling)) {
- sampler = sampling;
- }
- if (sampler) {
- seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));
- }
- }
- }
- }
- };
- }
- // node_modules/echarts/lib/chart/line/install.js
- function install5(registers) {
- registers.registerChartView(LineView_default);
- registers.registerSeriesModel(LineSeries_default);
- registers.registerLayout(pointsLayout("line", true));
- registers.registerVisual({
- seriesType: "line",
- reset: function(seriesModel) {
- var data = seriesModel.getData();
- var lineStyle = seriesModel.getModel("lineStyle").getLineStyle();
- if (lineStyle && !lineStyle.stroke) {
- lineStyle.stroke = data.getVisual("style").fill;
- }
- data.setVisual("legendLineStyle", lineStyle);
- }
- });
- registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample("line"));
- }
- // node_modules/echarts/lib/chart/bar/BaseBarSeries.js
- var BaseBarSeriesModel = (
- /** @class */
- function(_super) {
- __extends(BaseBarSeriesModel2, _super);
- function BaseBarSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = BaseBarSeriesModel2.type;
- return _this;
- }
- BaseBarSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- return createSeriesData_default(null, this, {
- useEncodeDefaulter: true
- });
- };
- BaseBarSeriesModel2.prototype.getMarkerPosition = function(value, dims, startingAtTick) {
- var coordSys = this.coordinateSystem;
- if (coordSys && coordSys.clampData) {
- var clampData_1 = coordSys.clampData(value);
- var pt_1 = coordSys.dataToPoint(clampData_1);
- if (startingAtTick) {
- each(coordSys.getAxes(), function(axis, idx) {
- if (axis.type === "category" && dims != null) {
- var tickCoords = axis.getTicksCoords();
- var alignTicksWithLabel = axis.getTickModel().get("alignWithLabel");
- var targetTickId = clampData_1[idx];
- var isEnd = dims[idx] === "x1" || dims[idx] === "y1";
- if (isEnd && !alignTicksWithLabel) {
- targetTickId += 1;
- }
- if (tickCoords.length < 2) {
- return;
- } else if (tickCoords.length === 2) {
- pt_1[idx] = axis.toGlobalCoord(axis.getExtent()[isEnd ? 1 : 0]);
- return;
- }
- var leftCoord = void 0;
- var coord = void 0;
- var stepTickValue = 1;
- for (var i = 0; i < tickCoords.length; i++) {
- var tickCoord = tickCoords[i].coord;
- var tickValue = i === tickCoords.length - 1 ? tickCoords[i - 1].tickValue + stepTickValue : tickCoords[i].tickValue;
- if (tickValue === targetTickId) {
- coord = tickCoord;
- break;
- } else if (tickValue < targetTickId) {
- leftCoord = tickCoord;
- } else if (leftCoord != null && tickValue > targetTickId) {
- coord = (tickCoord + leftCoord) / 2;
- break;
- }
- if (i === 1) {
- stepTickValue = tickValue - tickCoords[0].tickValue;
- }
- }
- if (coord == null) {
- if (!leftCoord) {
- coord = tickCoords[0].coord;
- } else if (leftCoord) {
- coord = tickCoords[tickCoords.length - 1].coord;
- }
- }
- pt_1[idx] = axis.toGlobalCoord(coord);
- }
- });
- } else {
- var data = this.getData();
- var offset = data.getLayout("offset");
- var size = data.getLayout("size");
- var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;
- pt_1[offsetIndex] += offset + size / 2;
- }
- return pt_1;
- }
- return [NaN, NaN];
- };
- BaseBarSeriesModel2.type = "series.__base_bar__";
- BaseBarSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- coordinateSystem: "cartesian2d",
- legendHoverLink: true,
- // stack: null
- // Cartesian coordinate system
- // xAxisIndex: 0,
- // yAxisIndex: 0,
- barMinHeight: 0,
- barMinAngle: 0,
- // cursor: null,
- large: false,
- largeThreshold: 400,
- progressive: 3e3,
- progressiveChunkMode: "mod"
- };
- return BaseBarSeriesModel2;
- }(Series_default)
- );
- Series_default.registerClass(BaseBarSeriesModel);
- var BaseBarSeries_default = BaseBarSeriesModel;
- // node_modules/echarts/lib/chart/bar/BarSeries.js
- var BarSeriesModel = (
- /** @class */
- function(_super) {
- __extends(BarSeriesModel2, _super);
- function BarSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = BarSeriesModel2.type;
- return _this;
- }
- BarSeriesModel2.prototype.getInitialData = function() {
- return createSeriesData_default(null, this, {
- useEncodeDefaulter: true,
- createInvertedIndices: !!this.get("realtimeSort", true) || null
- });
- };
- BarSeriesModel2.prototype.getProgressive = function() {
- return this.get("large") ? this.get("progressive") : false;
- };
- BarSeriesModel2.prototype.getProgressiveThreshold = function() {
- var progressiveThreshold = this.get("progressiveThreshold");
- var largeThreshold = this.get("largeThreshold");
- if (largeThreshold > progressiveThreshold) {
- progressiveThreshold = largeThreshold;
- }
- return progressiveThreshold;
- };
- BarSeriesModel2.prototype.brushSelector = function(dataIndex, data, selectors) {
- return selectors.rect(data.getItemLayout(dataIndex));
- };
- BarSeriesModel2.type = "series.bar";
- BarSeriesModel2.dependencies = ["grid", "polar"];
- BarSeriesModel2.defaultOption = inheritDefaultOption(BaseBarSeries_default.defaultOption, {
- // If clipped
- // Only available on cartesian2d
- clip: true,
- roundCap: false,
- showBackground: false,
- backgroundStyle: {
- color: "rgba(180, 180, 180, 0.2)",
- borderColor: null,
- borderWidth: 0,
- borderType: "solid",
- borderRadius: 0,
- shadowBlur: 0,
- shadowColor: null,
- shadowOffsetX: 0,
- shadowOffsetY: 0,
- opacity: 1
- },
- select: {
- itemStyle: {
- borderColor: "#212121"
- }
- },
- realtimeSort: false
- });
- return BarSeriesModel2;
- }(BaseBarSeries_default)
- );
- var BarSeries_default = BarSeriesModel;
- // node_modules/echarts/lib/util/shape/sausage.js
- var SausageShape = (
- /** @class */
- function() {
- function SausageShape2() {
- this.cx = 0;
- this.cy = 0;
- this.r0 = 0;
- this.r = 0;
- this.startAngle = 0;
- this.endAngle = Math.PI * 2;
- this.clockwise = true;
- }
- return SausageShape2;
- }()
- );
- var SausagePath = (
- /** @class */
- function(_super) {
- __extends(SausagePath2, _super);
- function SausagePath2(opts) {
- var _this = _super.call(this, opts) || this;
- _this.type = "sausage";
- return _this;
- }
- SausagePath2.prototype.getDefaultShape = function() {
- return new SausageShape();
- };
- SausagePath2.prototype.buildPath = function(ctx, shape) {
- var cx = shape.cx;
- var cy = shape.cy;
- var r0 = Math.max(shape.r0 || 0, 0);
- var r = Math.max(shape.r, 0);
- var dr = (r - r0) * 0.5;
- var rCenter = r0 + dr;
- var startAngle = shape.startAngle;
- var endAngle = shape.endAngle;
- var clockwise = shape.clockwise;
- var PI22 = Math.PI * 2;
- var lessThanCircle = clockwise ? endAngle - startAngle < PI22 : startAngle - endAngle < PI22;
- if (!lessThanCircle) {
- startAngle = endAngle - (clockwise ? PI22 : -PI22);
- }
- var unitStartX = Math.cos(startAngle);
- var unitStartY = Math.sin(startAngle);
- var unitEndX = Math.cos(endAngle);
- var unitEndY = Math.sin(endAngle);
- if (lessThanCircle) {
- ctx.moveTo(unitStartX * r0 + cx, unitStartY * r0 + cy);
- ctx.arc(unitStartX * rCenter + cx, unitStartY * rCenter + cy, dr, -Math.PI + startAngle, startAngle, !clockwise);
- } else {
- ctx.moveTo(unitStartX * r + cx, unitStartY * r + cy);
- }
- ctx.arc(cx, cy, r, startAngle, endAngle, !clockwise);
- ctx.arc(unitEndX * rCenter + cx, unitEndY * rCenter + cy, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);
- if (r0 !== 0) {
- ctx.arc(cx, cy, r0, endAngle, startAngle, clockwise);
- }
- };
- return SausagePath2;
- }(Path_default)
- );
- var sausage_default = SausagePath;
- // node_modules/echarts/lib/label/sectorLabel.js
- function createSectorCalculateTextPosition(positionMapping, opts) {
- opts = opts || {};
- var isRoundCap = opts.isRoundCap;
- return function(out, opts2, boundingRect) {
- var textPosition = opts2.position;
- if (!textPosition || textPosition instanceof Array) {
- return calculateTextPosition(out, opts2, boundingRect);
- }
- var mappedSectorPosition = positionMapping(textPosition);
- var distance = opts2.distance != null ? opts2.distance : 5;
- var sector = this.shape;
- var cx = sector.cx;
- var cy = sector.cy;
- var r = sector.r;
- var r0 = sector.r0;
- var middleR = (r + r0) / 2;
- var startAngle = sector.startAngle;
- var endAngle = sector.endAngle;
- var middleAngle = (startAngle + endAngle) / 2;
- var extraDist = isRoundCap ? Math.abs(r - r0) / 2 : 0;
- var mathCos = Math.cos;
- var mathSin = Math.sin;
- var x = cx + r * mathCos(startAngle);
- var y = cy + r * mathSin(startAngle);
- var textAlign = "left";
- var textVerticalAlign = "top";
- switch (mappedSectorPosition) {
- case "startArc":
- x = cx + (r0 - distance) * mathCos(middleAngle);
- y = cy + (r0 - distance) * mathSin(middleAngle);
- textAlign = "center";
- textVerticalAlign = "top";
- break;
- case "insideStartArc":
- x = cx + (r0 + distance) * mathCos(middleAngle);
- y = cy + (r0 + distance) * mathSin(middleAngle);
- textAlign = "center";
- textVerticalAlign = "bottom";
- break;
- case "startAngle":
- x = cx + middleR * mathCos(startAngle) + adjustAngleDistanceX(startAngle, distance + extraDist, false);
- y = cy + middleR * mathSin(startAngle) + adjustAngleDistanceY(startAngle, distance + extraDist, false);
- textAlign = "right";
- textVerticalAlign = "middle";
- break;
- case "insideStartAngle":
- x = cx + middleR * mathCos(startAngle) + adjustAngleDistanceX(startAngle, -distance + extraDist, false);
- y = cy + middleR * mathSin(startAngle) + adjustAngleDistanceY(startAngle, -distance + extraDist, false);
- textAlign = "left";
- textVerticalAlign = "middle";
- break;
- case "middle":
- x = cx + middleR * mathCos(middleAngle);
- y = cy + middleR * mathSin(middleAngle);
- textAlign = "center";
- textVerticalAlign = "middle";
- break;
- case "endArc":
- x = cx + (r + distance) * mathCos(middleAngle);
- y = cy + (r + distance) * mathSin(middleAngle);
- textAlign = "center";
- textVerticalAlign = "bottom";
- break;
- case "insideEndArc":
- x = cx + (r - distance) * mathCos(middleAngle);
- y = cy + (r - distance) * mathSin(middleAngle);
- textAlign = "center";
- textVerticalAlign = "top";
- break;
- case "endAngle":
- x = cx + middleR * mathCos(endAngle) + adjustAngleDistanceX(endAngle, distance + extraDist, true);
- y = cy + middleR * mathSin(endAngle) + adjustAngleDistanceY(endAngle, distance + extraDist, true);
- textAlign = "left";
- textVerticalAlign = "middle";
- break;
- case "insideEndAngle":
- x = cx + middleR * mathCos(endAngle) + adjustAngleDistanceX(endAngle, -distance + extraDist, true);
- y = cy + middleR * mathSin(endAngle) + adjustAngleDistanceY(endAngle, -distance + extraDist, true);
- textAlign = "right";
- textVerticalAlign = "middle";
- break;
- default:
- return calculateTextPosition(out, opts2, boundingRect);
- }
- out = out || {};
- out.x = x;
- out.y = y;
- out.align = textAlign;
- out.verticalAlign = textVerticalAlign;
- return out;
- };
- }
- function setSectorTextRotation(sector, textPosition, positionMapping, rotateType) {
- if (isNumber(rotateType)) {
- sector.setTextConfig({
- rotation: rotateType
- });
- return;
- } else if (isArray(textPosition)) {
- sector.setTextConfig({
- rotation: 0
- });
- return;
- }
- var shape = sector.shape;
- var startAngle = shape.clockwise ? shape.startAngle : shape.endAngle;
- var endAngle = shape.clockwise ? shape.endAngle : shape.startAngle;
- var middleAngle = (startAngle + endAngle) / 2;
- var anchorAngle;
- var mappedSectorPosition = positionMapping(textPosition);
- switch (mappedSectorPosition) {
- case "startArc":
- case "insideStartArc":
- case "middle":
- case "insideEndArc":
- case "endArc":
- anchorAngle = middleAngle;
- break;
- case "startAngle":
- case "insideStartAngle":
- anchorAngle = startAngle;
- break;
- case "endAngle":
- case "insideEndAngle":
- anchorAngle = endAngle;
- break;
- default:
- sector.setTextConfig({
- rotation: 0
- });
- return;
- }
- var rotate = Math.PI * 1.5 - anchorAngle;
- if (mappedSectorPosition === "middle" && rotate > Math.PI / 2 && rotate < Math.PI * 1.5) {
- rotate -= Math.PI;
- }
- sector.setTextConfig({
- rotation: rotate
- });
- }
- function adjustAngleDistanceX(angle, distance, isEnd) {
- return distance * Math.sin(angle) * (isEnd ? -1 : 1);
- }
- function adjustAngleDistanceY(angle, distance, isEnd) {
- return distance * Math.cos(angle) * (isEnd ? 1 : -1);
- }
- // node_modules/echarts/lib/chart/helper/sectorHelper.js
- function getSectorCornerRadius(model, shape, zeroIfNull) {
- var cornerRadius = model.get("borderRadius");
- if (cornerRadius == null) {
- return zeroIfNull ? {
- cornerRadius: 0
- } : null;
- }
- if (!isArray(cornerRadius)) {
- cornerRadius = [cornerRadius, cornerRadius, cornerRadius, cornerRadius];
- }
- var dr = Math.abs(shape.r || 0 - shape.r0 || 0);
- return {
- cornerRadius: map(cornerRadius, function(cr) {
- return parsePercent(cr, dr);
- })
- };
- }
- // node_modules/echarts/lib/chart/bar/BarView.js
- var mathMax2 = Math.max;
- var mathMin2 = Math.min;
- function getClipArea(coord, data) {
- var coordSysClipArea = coord.getArea && coord.getArea();
- if (isCoordinateSystemType(coord, "cartesian2d")) {
- var baseAxis = coord.getBaseAxis();
- if (baseAxis.type !== "category" || !baseAxis.onBand) {
- var expandWidth = data.getLayout("bandWidth");
- if (baseAxis.isHorizontal()) {
- coordSysClipArea.x -= expandWidth;
- coordSysClipArea.width += expandWidth * 2;
- } else {
- coordSysClipArea.y -= expandWidth;
- coordSysClipArea.height += expandWidth * 2;
- }
- }
- }
- return coordSysClipArea;
- }
- var BarView = (
- /** @class */
- function(_super) {
- __extends(BarView2, _super);
- function BarView2() {
- var _this = _super.call(this) || this;
- _this.type = BarView2.type;
- _this._isFirstFrame = true;
- return _this;
- }
- BarView2.prototype.render = function(seriesModel, ecModel, api, payload) {
- this._model = seriesModel;
- this._removeOnRenderedListener(api);
- this._updateDrawMode(seriesModel);
- var coordinateSystemType = seriesModel.get("coordinateSystem");
- if (coordinateSystemType === "cartesian2d" || coordinateSystemType === "polar") {
- this._progressiveEls = null;
- this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);
- } else if (true) {
- warn("Only cartesian2d and polar supported for bar.");
- }
- };
- BarView2.prototype.incrementalPrepareRender = function(seriesModel) {
- this._clear();
- this._updateDrawMode(seriesModel);
- this._updateLargeClip(seriesModel);
- };
- BarView2.prototype.incrementalRender = function(params, seriesModel) {
- this._progressiveEls = [];
- this._incrementalRenderLarge(params, seriesModel);
- };
- BarView2.prototype.eachRendered = function(cb) {
- traverseElements(this._progressiveEls || this.group, cb);
- };
- BarView2.prototype._updateDrawMode = function(seriesModel) {
- var isLargeDraw = seriesModel.pipelineContext.large;
- if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {
- this._isLargeDraw = isLargeDraw;
- this._clear();
- }
- };
- BarView2.prototype._renderNormal = function(seriesModel, ecModel, api, payload) {
- var group = this.group;
- var data = seriesModel.getData();
- var oldData = this._data;
- var coord = seriesModel.coordinateSystem;
- var baseAxis = coord.getBaseAxis();
- var isHorizontalOrRadial;
- if (coord.type === "cartesian2d") {
- isHorizontalOrRadial = baseAxis.isHorizontal();
- } else if (coord.type === "polar") {
- isHorizontalOrRadial = baseAxis.dim === "angle";
- }
- var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;
- var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);
- if (realtimeSortCfg) {
- this._enableRealtimeSort(realtimeSortCfg, data, api);
- }
- var needsClip = seriesModel.get("clip", true) || realtimeSortCfg;
- var coordSysClipArea = getClipArea(coord, data);
- group.removeClipPath();
- var roundCap = seriesModel.get("roundCap", true);
- var drawBackground = seriesModel.get("showBackground", true);
- var backgroundModel = seriesModel.getModel("backgroundStyle");
- var barBorderRadius = backgroundModel.get("borderRadius") || 0;
- var bgEls = [];
- var oldBgEls = this._backgroundEls;
- var isInitSort = payload && payload.isInitSort;
- var isChangeOrder = payload && payload.type === "changeAxisOrder";
- function createBackground(dataIndex) {
- var bgLayout = getLayout[coord.type](data, dataIndex);
- var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);
- bgEl.useStyle(backgroundModel.getItemStyle());
- if (coord.type === "cartesian2d") {
- bgEl.setShape("r", barBorderRadius);
- } else {
- bgEl.setShape("cornerRadius", barBorderRadius);
- }
- bgEls[dataIndex] = bgEl;
- return bgEl;
- }
- ;
- data.diff(oldData).add(function(dataIndex) {
- var itemModel = data.getItemModel(dataIndex);
- var layout2 = getLayout[coord.type](data, dataIndex, itemModel);
- if (drawBackground) {
- createBackground(dataIndex);
- }
- if (!data.hasValue(dataIndex) || !isValidLayout[coord.type](layout2)) {
- return;
- }
- var isClipped = false;
- if (needsClip) {
- isClipped = clip[coord.type](coordSysClipArea, layout2);
- }
- var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout2, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);
- if (realtimeSortCfg) {
- el.forceLabelAnimation = true;
- }
- updateStyle(el, data, dataIndex, itemModel, layout2, seriesModel, isHorizontalOrRadial, coord.type === "polar");
- if (isInitSort) {
- el.attr({
- shape: layout2
- });
- } else if (realtimeSortCfg) {
- updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout2, dataIndex, isHorizontalOrRadial, false, false);
- } else {
- initProps(el, {
- shape: layout2
- }, seriesModel, dataIndex);
- }
- data.setItemGraphicEl(dataIndex, el);
- group.add(el);
- el.ignore = isClipped;
- }).update(function(newIndex, oldIndex) {
- var itemModel = data.getItemModel(newIndex);
- var layout2 = getLayout[coord.type](data, newIndex, itemModel);
- if (drawBackground) {
- var bgEl = void 0;
- if (oldBgEls.length === 0) {
- bgEl = createBackground(oldIndex);
- } else {
- bgEl = oldBgEls[oldIndex];
- bgEl.useStyle(backgroundModel.getItemStyle());
- if (coord.type === "cartesian2d") {
- bgEl.setShape("r", barBorderRadius);
- } else {
- bgEl.setShape("cornerRadius", barBorderRadius);
- }
- bgEls[newIndex] = bgEl;
- }
- var bgLayout = getLayout[coord.type](data, newIndex);
- var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);
- updateProps(bgEl, {
- shape
- }, animationModel, newIndex);
- }
- var el = oldData.getItemGraphicEl(oldIndex);
- if (!data.hasValue(newIndex) || !isValidLayout[coord.type](layout2)) {
- group.remove(el);
- return;
- }
- var isClipped = false;
- if (needsClip) {
- isClipped = clip[coord.type](coordSysClipArea, layout2);
- if (isClipped) {
- group.remove(el);
- }
- }
- if (!el) {
- el = elementCreator[coord.type](seriesModel, data, newIndex, layout2, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);
- } else {
- saveOldStyle(el);
- }
- if (realtimeSortCfg) {
- el.forceLabelAnimation = true;
- }
- if (isChangeOrder) {
- var textEl = el.getTextContent();
- if (textEl) {
- var labelInnerStore = labelInner(textEl);
- if (labelInnerStore.prevValue != null) {
- labelInnerStore.prevValue = labelInnerStore.value;
- }
- }
- } else {
- updateStyle(el, data, newIndex, itemModel, layout2, seriesModel, isHorizontalOrRadial, coord.type === "polar");
- }
- if (isInitSort) {
- el.attr({
- shape: layout2
- });
- } else if (realtimeSortCfg) {
- updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout2, newIndex, isHorizontalOrRadial, true, isChangeOrder);
- } else {
- updateProps(el, {
- shape: layout2
- }, seriesModel, newIndex, null);
- }
- data.setItemGraphicEl(newIndex, el);
- el.ignore = isClipped;
- group.add(el);
- }).remove(function(dataIndex) {
- var el = oldData.getItemGraphicEl(dataIndex);
- el && removeElementWithFadeOut(el, seriesModel, dataIndex);
- }).execute();
- var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group_default());
- bgGroup.removeAll();
- for (var i = 0; i < bgEls.length; ++i) {
- bgGroup.add(bgEls[i]);
- }
- group.add(bgGroup);
- this._backgroundEls = bgEls;
- this._data = data;
- };
- BarView2.prototype._renderLarge = function(seriesModel, ecModel, api) {
- this._clear();
- createLarge(seriesModel, this.group);
- this._updateLargeClip(seriesModel);
- };
- BarView2.prototype._incrementalRenderLarge = function(params, seriesModel) {
- this._removeBackground();
- createLarge(seriesModel, this.group, this._progressiveEls, true);
- };
- BarView2.prototype._updateLargeClip = function(seriesModel) {
- var clipPath = seriesModel.get("clip", true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);
- var group = this.group;
- if (clipPath) {
- group.setClipPath(clipPath);
- } else {
- group.removeClipPath();
- }
- };
- BarView2.prototype._enableRealtimeSort = function(realtimeSortCfg, data, api) {
- var _this = this;
- if (!data.count()) {
- return;
- }
- var baseAxis = realtimeSortCfg.baseAxis;
- if (this._isFirstFrame) {
- this._dispatchInitSort(data, realtimeSortCfg, api);
- this._isFirstFrame = false;
- } else {
- var orderMapping_1 = function(idx) {
- var el = data.getItemGraphicEl(idx);
- var shape = el && el.shape;
- return shape && // The result should be consistent with the initial sort by data value.
- // Do not support the case that both positive and negative exist.
- Math.abs(baseAxis.isHorizontal() ? shape.height : shape.width) || 0;
- };
- this._onRendered = function() {
- _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);
- };
- api.getZr().on("rendered", this._onRendered);
- }
- };
- BarView2.prototype._dataSort = function(data, baseAxis, orderMapping) {
- var info = [];
- data.each(data.mapDimension(baseAxis.dim), function(ordinalNumber, dataIdx) {
- var mappedValue = orderMapping(dataIdx);
- mappedValue = mappedValue == null ? NaN : mappedValue;
- info.push({
- dataIndex: dataIdx,
- mappedValue,
- ordinalNumber
- });
- });
- info.sort(function(a, b) {
- return b.mappedValue - a.mappedValue;
- });
- return {
- ordinalNumbers: map(info, function(item) {
- return item.ordinalNumber;
- })
- };
- };
- BarView2.prototype._isOrderChangedWithinSameData = function(data, orderMapping, baseAxis) {
- var scale3 = baseAxis.scale;
- var ordinalDataDim = data.mapDimension(baseAxis.dim);
- var lastValue = Number.MAX_VALUE;
- for (var tickNum = 0, len2 = scale3.getOrdinalMeta().categories.length; tickNum < len2; ++tickNum) {
- var rawIdx = data.rawIndexOf(ordinalDataDim, scale3.getRawOrdinalNumber(tickNum));
- var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));
- if (value > lastValue) {
- return true;
- }
- lastValue = value;
- }
- return false;
- };
- BarView2.prototype._isOrderDifferentInView = function(orderInfo, baseAxis) {
- var scale3 = baseAxis.scale;
- var extent = scale3.getExtent();
- var tickNum = Math.max(0, extent[0]);
- var tickMax = Math.min(extent[1], scale3.getOrdinalMeta().categories.length - 1);
- for (; tickNum <= tickMax; ++tickNum) {
- if (orderInfo.ordinalNumbers[tickNum] !== scale3.getRawOrdinalNumber(tickNum)) {
- return true;
- }
- }
- };
- BarView2.prototype._updateSortWithinSameData = function(data, orderMapping, baseAxis, api) {
- if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {
- return;
- }
- var sortInfo = this._dataSort(data, baseAxis, orderMapping);
- if (this._isOrderDifferentInView(sortInfo, baseAxis)) {
- this._removeOnRenderedListener(api);
- api.dispatchAction({
- type: "changeAxisOrder",
- componentType: baseAxis.dim + "Axis",
- axisId: baseAxis.index,
- sortInfo
- });
- }
- };
- BarView2.prototype._dispatchInitSort = function(data, realtimeSortCfg, api) {
- var baseAxis = realtimeSortCfg.baseAxis;
- var sortResult = this._dataSort(data, baseAxis, function(dataIdx) {
- return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);
- });
- api.dispatchAction({
- type: "changeAxisOrder",
- componentType: baseAxis.dim + "Axis",
- isInitSort: true,
- axisId: baseAxis.index,
- sortInfo: sortResult
- });
- };
- BarView2.prototype.remove = function(ecModel, api) {
- this._clear(this._model);
- this._removeOnRenderedListener(api);
- };
- BarView2.prototype.dispose = function(ecModel, api) {
- this._removeOnRenderedListener(api);
- };
- BarView2.prototype._removeOnRenderedListener = function(api) {
- if (this._onRendered) {
- api.getZr().off("rendered", this._onRendered);
- this._onRendered = null;
- }
- };
- BarView2.prototype._clear = function(model) {
- var group = this.group;
- var data = this._data;
- if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {
- this._removeBackground();
- this._backgroundEls = [];
- data.eachItemGraphicEl(function(el) {
- removeElementWithFadeOut(el, model, getECData(el).dataIndex);
- });
- } else {
- group.removeAll();
- }
- this._data = null;
- this._isFirstFrame = true;
- };
- BarView2.prototype._removeBackground = function() {
- this.group.remove(this._backgroundGroup);
- this._backgroundGroup = null;
- };
- BarView2.type = "bar";
- return BarView2;
- }(Chart_default)
- );
- var clip = {
- cartesian2d: function(coordSysBoundingRect, layout2) {
- var signWidth = layout2.width < 0 ? -1 : 1;
- var signHeight = layout2.height < 0 ? -1 : 1;
- if (signWidth < 0) {
- layout2.x += layout2.width;
- layout2.width = -layout2.width;
- }
- if (signHeight < 0) {
- layout2.y += layout2.height;
- layout2.height = -layout2.height;
- }
- var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;
- var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;
- var x = mathMax2(layout2.x, coordSysBoundingRect.x);
- var x2 = mathMin2(layout2.x + layout2.width, coordSysX2);
- var y = mathMax2(layout2.y, coordSysBoundingRect.y);
- var y2 = mathMin2(layout2.y + layout2.height, coordSysY2);
- var xClipped = x2 < x;
- var yClipped = y2 < y;
- layout2.x = xClipped && x > coordSysX2 ? x2 : x;
- layout2.y = yClipped && y > coordSysY2 ? y2 : y;
- layout2.width = xClipped ? 0 : x2 - x;
- layout2.height = yClipped ? 0 : y2 - y;
- if (signWidth < 0) {
- layout2.x += layout2.width;
- layout2.width = -layout2.width;
- }
- if (signHeight < 0) {
- layout2.y += layout2.height;
- layout2.height = -layout2.height;
- }
- return xClipped || yClipped;
- },
- polar: function(coordSysClipArea, layout2) {
- var signR = layout2.r0 <= layout2.r ? 1 : -1;
- if (signR < 0) {
- var tmp = layout2.r;
- layout2.r = layout2.r0;
- layout2.r0 = tmp;
- }
- var r = mathMin2(layout2.r, coordSysClipArea.r);
- var r0 = mathMax2(layout2.r0, coordSysClipArea.r0);
- layout2.r = r;
- layout2.r0 = r0;
- var clipped = r - r0 < 0;
- if (signR < 0) {
- var tmp = layout2.r;
- layout2.r = layout2.r0;
- layout2.r0 = tmp;
- }
- return clipped;
- }
- };
- var elementCreator = {
- cartesian2d: function(seriesModel, data, newIndex, layout2, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {
- var rect = new Rect_default({
- shape: extend({}, layout2),
- z2: 1
- });
- rect.__dataIndex = newIndex;
- rect.name = "item";
- if (animationModel) {
- var rectShape = rect.shape;
- var animateProperty = isHorizontal ? "height" : "width";
- rectShape[animateProperty] = 0;
- }
- return rect;
- },
- polar: function(seriesModel, data, newIndex, layout2, isRadial, animationModel, axisModel, isUpdate, roundCap) {
- var ShapeClass = !isRadial && roundCap ? sausage_default : Sector_default;
- var sector = new ShapeClass({
- shape: layout2,
- z2: 1
- });
- sector.name = "item";
- var positionMap = createPolarPositionMapping(isRadial);
- sector.calculateTextPosition = createSectorCalculateTextPosition(positionMap, {
- isRoundCap: ShapeClass === sausage_default
- });
- if (animationModel) {
- var sectorShape = sector.shape;
- var animateProperty = isRadial ? "r" : "endAngle";
- var animateTarget = {};
- sectorShape[animateProperty] = isRadial ? layout2.r0 : layout2.startAngle;
- animateTarget[animateProperty] = layout2[animateProperty];
- (isUpdate ? updateProps : initProps)(sector, {
- shape: animateTarget
- // __value: typeof dataValue === 'string' ? parseInt(dataValue, 10) : dataValue
- }, animationModel);
- }
- return sector;
- }
- };
- function shouldRealtimeSort(seriesModel, coordSys) {
- var realtimeSortOption = seriesModel.get("realtimeSort", true);
- var baseAxis = coordSys.getBaseAxis();
- if (true) {
- if (realtimeSortOption) {
- if (baseAxis.type !== "category") {
- warn("`realtimeSort` will not work because this bar series is not based on a category axis.");
- }
- if (coordSys.type !== "cartesian2d") {
- warn("`realtimeSort` will not work because this bar series is not on cartesian2d.");
- }
- }
- }
- if (realtimeSortOption && baseAxis.type === "category" && coordSys.type === "cartesian2d") {
- return {
- baseAxis,
- otherAxis: coordSys.getOtherAxis(baseAxis)
- };
- }
- }
- function updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout2, newIndex, isHorizontal, isUpdate, isChangeOrder) {
- var seriesTarget;
- var axisTarget;
- if (isHorizontal) {
- axisTarget = {
- x: layout2.x,
- width: layout2.width
- };
- seriesTarget = {
- y: layout2.y,
- height: layout2.height
- };
- } else {
- axisTarget = {
- y: layout2.y,
- height: layout2.height
- };
- seriesTarget = {
- x: layout2.x,
- width: layout2.width
- };
- }
- if (!isChangeOrder) {
- (isUpdate ? updateProps : initProps)(el, {
- shape: seriesTarget
- }, seriesAnimationModel, newIndex, null);
- }
- var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;
- (isUpdate ? updateProps : initProps)(el, {
- shape: axisTarget
- }, axisAnimationModel, newIndex);
- }
- function checkPropertiesNotValid(obj, props) {
- for (var i = 0; i < props.length; i++) {
- if (!isFinite(obj[props[i]])) {
- return true;
- }
- }
- return false;
- }
- var rectPropties = ["x", "y", "width", "height"];
- var polarPropties = ["cx", "cy", "r", "startAngle", "endAngle"];
- var isValidLayout = {
- cartesian2d: function(layout2) {
- return !checkPropertiesNotValid(layout2, rectPropties);
- },
- polar: function(layout2) {
- return !checkPropertiesNotValid(layout2, polarPropties);
- }
- };
- var getLayout = {
- // itemModel is only used to get borderWidth, which is not needed
- // when calculating bar background layout.
- cartesian2d: function(data, dataIndex, itemModel) {
- var layout2 = data.getItemLayout(dataIndex);
- var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout2) : 0;
- var signX = layout2.width > 0 ? 1 : -1;
- var signY = layout2.height > 0 ? 1 : -1;
- return {
- x: layout2.x + signX * fixedLineWidth / 2,
- y: layout2.y + signY * fixedLineWidth / 2,
- width: layout2.width - signX * fixedLineWidth,
- height: layout2.height - signY * fixedLineWidth
- };
- },
- polar: function(data, dataIndex, itemModel) {
- var layout2 = data.getItemLayout(dataIndex);
- return {
- cx: layout2.cx,
- cy: layout2.cy,
- r0: layout2.r0,
- r: layout2.r,
- startAngle: layout2.startAngle,
- endAngle: layout2.endAngle,
- clockwise: layout2.clockwise
- };
- }
- };
- function isZeroOnPolar(layout2) {
- return layout2.startAngle != null && layout2.endAngle != null && layout2.startAngle === layout2.endAngle;
- }
- function createPolarPositionMapping(isRadial) {
- return function(isRadial2) {
- var arcOrAngle = isRadial2 ? "Arc" : "Angle";
- return function(position2) {
- switch (position2) {
- case "start":
- case "insideStart":
- case "end":
- case "insideEnd":
- return position2 + arcOrAngle;
- default:
- return position2;
- }
- };
- }(isRadial);
- }
- function updateStyle(el, data, dataIndex, itemModel, layout2, seriesModel, isHorizontalOrRadial, isPolar) {
- var style = data.getItemVisual(dataIndex, "style");
- if (!isPolar) {
- var borderRadius = itemModel.get(["itemStyle", "borderRadius"]) || 0;
- el.setShape("r", borderRadius);
- } else if (!seriesModel.get("roundCap")) {
- var sectorShape = el.shape;
- var cornerRadius = getSectorCornerRadius(itemModel.getModel("itemStyle"), sectorShape, true);
- extend(sectorShape, cornerRadius);
- el.setShape(sectorShape);
- }
- el.useStyle(style);
- var cursorStyle = itemModel.getShallow("cursor");
- cursorStyle && el.attr("cursor", cursorStyle);
- var labelPositionOutside = isPolar ? isHorizontalOrRadial ? layout2.r >= layout2.r0 ? "endArc" : "startArc" : layout2.endAngle >= layout2.startAngle ? "endAngle" : "startAngle" : isHorizontalOrRadial ? layout2.height >= 0 ? "bottom" : "top" : layout2.width >= 0 ? "right" : "left";
- var labelStatesModels = getLabelStatesModels(itemModel);
- setLabelStyle(el, labelStatesModels, {
- labelFetcher: seriesModel,
- labelDataIndex: dataIndex,
- defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),
- inheritColor: style.fill,
- defaultOpacity: style.opacity,
- defaultOutsidePosition: labelPositionOutside
- });
- var label = el.getTextContent();
- if (isPolar && label) {
- var position2 = itemModel.get(["label", "position"]);
- el.textConfig.inside = position2 === "middle" ? true : null;
- setSectorTextRotation(el, position2 === "outside" ? labelPositionOutside : position2, createPolarPositionMapping(isHorizontalOrRadial), itemModel.get(["label", "rotate"]));
- }
- setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function(value) {
- return getDefaultInterpolatedLabel(data, value);
- });
- var emphasisModel = itemModel.getModel(["emphasis"]);
- toggleHoverEmphasis(el, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- setStatesStylesFromModel(el, itemModel);
- if (isZeroOnPolar(layout2)) {
- el.style.fill = "none";
- el.style.stroke = "none";
- each(el.states, function(state) {
- if (state.style) {
- state.style.fill = state.style.stroke = "none";
- }
- });
- }
- }
- function getLineWidth(itemModel, rawLayout) {
- var borderColor = itemModel.get(["itemStyle", "borderColor"]);
- if (!borderColor || borderColor === "none") {
- return 0;
- }
- var lineWidth = itemModel.get(["itemStyle", "borderWidth"]) || 0;
- var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);
- var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);
- return Math.min(lineWidth, width, height);
- }
- var LagePathShape = (
- /** @class */
- function() {
- function LagePathShape2() {
- }
- return LagePathShape2;
- }()
- );
- var LargePath = (
- /** @class */
- function(_super) {
- __extends(LargePath2, _super);
- function LargePath2(opts) {
- var _this = _super.call(this, opts) || this;
- _this.type = "largeBar";
- return _this;
- }
- LargePath2.prototype.getDefaultShape = function() {
- return new LagePathShape();
- };
- LargePath2.prototype.buildPath = function(ctx, shape) {
- var points = shape.points;
- var baseDimIdx = this.baseDimIdx;
- var valueDimIdx = 1 - this.baseDimIdx;
- var startPoint = [];
- var size = [];
- var barWidth = this.barWidth;
- for (var i = 0; i < points.length; i += 3) {
- size[baseDimIdx] = barWidth;
- size[valueDimIdx] = points[i + 2];
- startPoint[baseDimIdx] = points[i + baseDimIdx];
- startPoint[valueDimIdx] = points[i + valueDimIdx];
- ctx.rect(startPoint[0], startPoint[1], size[0], size[1]);
- }
- };
- return LargePath2;
- }(Path_default)
- );
- function createLarge(seriesModel, group, progressiveEls, incremental) {
- var data = seriesModel.getData();
- var baseDimIdx = data.getLayout("valueAxisHorizontal") ? 1 : 0;
- var largeDataIndices = data.getLayout("largeDataIndices");
- var barWidth = data.getLayout("size");
- var backgroundModel = seriesModel.getModel("backgroundStyle");
- var bgPoints = data.getLayout("largeBackgroundPoints");
- if (bgPoints) {
- var bgEl = new LargePath({
- shape: {
- points: bgPoints
- },
- incremental: !!incremental,
- silent: true,
- z2: 0
- });
- bgEl.baseDimIdx = baseDimIdx;
- bgEl.largeDataIndices = largeDataIndices;
- bgEl.barWidth = barWidth;
- bgEl.useStyle(backgroundModel.getItemStyle());
- group.add(bgEl);
- progressiveEls && progressiveEls.push(bgEl);
- }
- var el = new LargePath({
- shape: {
- points: data.getLayout("largePoints")
- },
- incremental: !!incremental,
- ignoreCoarsePointer: true,
- z2: 1
- });
- el.baseDimIdx = baseDimIdx;
- el.largeDataIndices = largeDataIndices;
- el.barWidth = barWidth;
- group.add(el);
- el.useStyle(data.getVisual("style"));
- getECData(el).seriesIndex = seriesModel.seriesIndex;
- if (!seriesModel.get("silent")) {
- el.on("mousedown", largePathUpdateDataIndex);
- el.on("mousemove", largePathUpdateDataIndex);
- }
- progressiveEls && progressiveEls.push(el);
- }
- var largePathUpdateDataIndex = throttle(function(event) {
- var largePath = this;
- var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);
- getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;
- }, 30, false);
- function largePathFindDataIndex(largePath, x, y) {
- var baseDimIdx = largePath.baseDimIdx;
- var valueDimIdx = 1 - baseDimIdx;
- var points = largePath.shape.points;
- var largeDataIndices = largePath.largeDataIndices;
- var startPoint = [];
- var size = [];
- var barWidth = largePath.barWidth;
- for (var i = 0, len2 = points.length / 3; i < len2; i++) {
- var ii = i * 3;
- size[baseDimIdx] = barWidth;
- size[valueDimIdx] = points[ii + 2];
- startPoint[baseDimIdx] = points[ii + baseDimIdx];
- startPoint[valueDimIdx] = points[ii + valueDimIdx];
- if (size[valueDimIdx] < 0) {
- startPoint[valueDimIdx] += size[valueDimIdx];
- size[valueDimIdx] = -size[valueDimIdx];
- }
- if (x >= startPoint[0] && x <= startPoint[0] + size[0] && y >= startPoint[1] && y <= startPoint[1] + size[1]) {
- return largeDataIndices[i];
- }
- }
- return -1;
- }
- function createBackgroundShape(isHorizontalOrRadial, layout2, coord) {
- if (isCoordinateSystemType(coord, "cartesian2d")) {
- var rectShape = layout2;
- var coordLayout = coord.getArea();
- return {
- x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,
- y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,
- width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,
- height: isHorizontalOrRadial ? coordLayout.height : rectShape.height
- };
- } else {
- var coordLayout = coord.getArea();
- var sectorShape = layout2;
- return {
- cx: coordLayout.cx,
- cy: coordLayout.cy,
- r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,
- r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,
- startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,
- endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2
- };
- }
- }
- function createBackgroundEl(coord, isHorizontalOrRadial, layout2) {
- var ElementClz = coord.type === "polar" ? Sector_default : Rect_default;
- return new ElementClz({
- shape: createBackgroundShape(isHorizontalOrRadial, layout2, coord),
- silent: true,
- z2: 0
- });
- }
- var BarView_default = BarView;
- // node_modules/echarts/lib/chart/bar/install.js
- function install6(registers) {
- registers.registerChartView(BarView_default);
- registers.registerSeriesModel(BarSeries_default);
- registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, curry(layout, "bar"));
- registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, createProgressiveLayout("bar"));
- registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample("bar"));
- registers.registerAction({
- type: "changeAxisOrder",
- event: "changeAxisOrder",
- update: "update"
- }, function(payload, ecModel) {
- var componentType = payload.componentType || "series";
- ecModel.eachComponent({
- mainType: componentType,
- query: payload
- }, function(componentModel) {
- if (payload.sortInfo) {
- componentModel.axis.setCategorySortInfo(payload.sortInfo);
- }
- });
- });
- }
- // node_modules/echarts/lib/chart/pie/pieLayout.js
- var PI2 = Math.PI * 2;
- var RADIAN = Math.PI / 180;
- function getViewRect(seriesModel, api) {
- return getLayoutRect(seriesModel.getBoxLayoutParams(), {
- width: api.getWidth(),
- height: api.getHeight()
- });
- }
- function getBasicPieLayout(seriesModel, api) {
- var viewRect = getViewRect(seriesModel, api);
- var center2 = seriesModel.get("center");
- var radius = seriesModel.get("radius");
- if (!isArray(radius)) {
- radius = [0, radius];
- }
- var width = parsePercent2(viewRect.width, api.getWidth());
- var height = parsePercent2(viewRect.height, api.getHeight());
- var size = Math.min(width, height);
- var r0 = parsePercent2(radius[0], size / 2);
- var r = parsePercent2(radius[1], size / 2);
- var cx;
- var cy;
- var coordSys = seriesModel.coordinateSystem;
- if (coordSys) {
- var point = coordSys.dataToPoint(center2);
- cx = point[0] || 0;
- cy = point[1] || 0;
- } else {
- if (!isArray(center2)) {
- center2 = [center2, center2];
- }
- cx = parsePercent2(center2[0], width) + viewRect.x;
- cy = parsePercent2(center2[1], height) + viewRect.y;
- }
- return {
- cx,
- cy,
- r0,
- r
- };
- }
- function pieLayout(seriesType, ecModel, api) {
- ecModel.eachSeriesByType(seriesType, function(seriesModel) {
- var data = seriesModel.getData();
- var valueDim = data.mapDimension("value");
- var viewRect = getViewRect(seriesModel, api);
- var _a = getBasicPieLayout(seriesModel, api), cx = _a.cx, cy = _a.cy, r = _a.r, r0 = _a.r0;
- var startAngle = -seriesModel.get("startAngle") * RADIAN;
- var endAngle = seriesModel.get("endAngle");
- var padAngle = seriesModel.get("padAngle") * RADIAN;
- endAngle = endAngle === "auto" ? startAngle - PI2 : -endAngle * RADIAN;
- var minAngle = seriesModel.get("minAngle") * RADIAN;
- var minAndPadAngle = minAngle + padAngle;
- var validDataCount = 0;
- data.each(valueDim, function(value) {
- !isNaN(value) && validDataCount++;
- });
- var sum2 = data.getSum(valueDim);
- var unitRadian = Math.PI / (sum2 || validDataCount) * 2;
- var clockwise = seriesModel.get("clockwise");
- var roseType = seriesModel.get("roseType");
- var stillShowZeroSum = seriesModel.get("stillShowZeroSum");
- var extent = data.getDataExtent(valueDim);
- extent[0] = 0;
- var dir = clockwise ? 1 : -1;
- var angles = [startAngle, endAngle];
- var halfPadAngle = dir * padAngle / 2;
- normalizeArcAngles(angles, !clockwise);
- startAngle = angles[0], endAngle = angles[1];
- var angleRange = Math.abs(endAngle - startAngle);
- var restAngle = angleRange;
- var valueSumLargerThanMinAngle = 0;
- var currentAngle = startAngle;
- data.setLayout({
- viewRect,
- r
- });
- data.each(valueDim, function(value, idx) {
- var angle;
- if (isNaN(value)) {
- data.setItemLayout(idx, {
- angle: NaN,
- startAngle: NaN,
- endAngle: NaN,
- clockwise,
- cx,
- cy,
- r0,
- r: roseType ? NaN : r
- });
- return;
- }
- if (roseType !== "area") {
- angle = sum2 === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;
- } else {
- angle = angleRange / validDataCount;
- }
- if (angle < minAndPadAngle) {
- angle = minAndPadAngle;
- restAngle -= minAndPadAngle;
- } else {
- valueSumLargerThanMinAngle += value;
- }
- var endAngle2 = currentAngle + dir * angle;
- var actualStartAngle = 0;
- var actualEndAngle = 0;
- if (padAngle > angle) {
- actualStartAngle = currentAngle + dir * angle / 2;
- actualEndAngle = actualStartAngle;
- } else {
- actualStartAngle = currentAngle + halfPadAngle;
- actualEndAngle = endAngle2 - halfPadAngle;
- }
- data.setItemLayout(idx, {
- angle,
- startAngle: actualStartAngle,
- endAngle: actualEndAngle,
- clockwise,
- cx,
- cy,
- r0,
- r: roseType ? linearMap(value, extent, [r0, r]) : r
- });
- currentAngle = endAngle2;
- });
- if (restAngle < PI2 && validDataCount) {
- if (restAngle <= 1e-3) {
- var angle_1 = angleRange / validDataCount;
- data.each(valueDim, function(value, idx) {
- if (!isNaN(value)) {
- var layout_1 = data.getItemLayout(idx);
- layout_1.angle = angle_1;
- var actualStartAngle = 0;
- var actualEndAngle = 0;
- if (angle_1 < padAngle) {
- actualStartAngle = startAngle + dir * (idx + 1 / 2) * angle_1;
- actualEndAngle = actualStartAngle;
- } else {
- actualStartAngle = startAngle + dir * idx * angle_1 + halfPadAngle;
- actualEndAngle = startAngle + dir * (idx + 1) * angle_1 - halfPadAngle;
- }
- layout_1.startAngle = actualStartAngle;
- layout_1.endAngle = actualEndAngle;
- }
- });
- } else {
- unitRadian = restAngle / valueSumLargerThanMinAngle;
- currentAngle = startAngle;
- data.each(valueDim, function(value, idx) {
- if (!isNaN(value)) {
- var layout_2 = data.getItemLayout(idx);
- var angle = layout_2.angle === minAndPadAngle ? minAndPadAngle : value * unitRadian;
- var actualStartAngle = 0;
- var actualEndAngle = 0;
- if (angle < padAngle) {
- actualStartAngle = currentAngle + dir * angle / 2;
- actualEndAngle = actualStartAngle;
- } else {
- actualStartAngle = currentAngle + halfPadAngle;
- actualEndAngle = currentAngle + dir * angle - halfPadAngle;
- }
- layout_2.startAngle = actualStartAngle;
- layout_2.endAngle = actualEndAngle;
- currentAngle += dir * angle;
- }
- });
- }
- }
- });
- }
- // node_modules/echarts/lib/processor/dataFilter.js
- function dataFilter(seriesType) {
- return {
- seriesType,
- reset: function(seriesModel, ecModel) {
- var legendModels = ecModel.findComponents({
- mainType: "legend"
- });
- if (!legendModels || !legendModels.length) {
- return;
- }
- var data = seriesModel.getData();
- data.filterSelf(function(idx) {
- var name = data.getName(idx);
- for (var i = 0; i < legendModels.length; i++) {
- if (!legendModels[i].isSelected(name)) {
- return false;
- }
- }
- return true;
- });
- }
- };
- }
- // node_modules/echarts/lib/chart/pie/labelLayout.js
- var RADIAN2 = Math.PI / 180;
- function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {
- if (list.length < 2) {
- return;
- }
- ;
- function recalculateXOnSemiToAlignOnEllipseCurve(semi) {
- var rB = semi.rB;
- var rB2 = rB * rB;
- for (var i2 = 0; i2 < semi.list.length; i2++) {
- var item = semi.list[i2];
- var dy = Math.abs(item.label.y - cy);
- var rA = r + item.len;
- var rA2 = rA * rA;
- var dx2 = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);
- var newX = cx + (dx2 + item.len2) * dir;
- var deltaX = newX - item.label.x;
- var newTargetWidth = item.targetTextWidth - deltaX * dir;
- constrainTextWidth(item, newTargetWidth, true);
- item.label.x = newX;
- }
- }
- function recalculateX(items) {
- var topSemi = {
- list: [],
- maxY: 0
- };
- var bottomSemi = {
- list: [],
- maxY: 0
- };
- for (var i2 = 0; i2 < items.length; i2++) {
- if (items[i2].labelAlignTo !== "none") {
- continue;
- }
- var item = items[i2];
- var semi = item.label.y > cy ? bottomSemi : topSemi;
- var dy = Math.abs(item.label.y - cy);
- if (dy >= semi.maxY) {
- var dx2 = item.label.x - cx - item.len2 * dir;
- var rA = r + item.len;
- var rB = Math.abs(dx2) < rA ? Math.sqrt(dy * dy / (1 - dx2 * dx2 / rA / rA)) : rA;
- semi.rB = rB;
- semi.maxY = dy;
- }
- semi.list.push(item);
- }
- recalculateXOnSemiToAlignOnEllipseCurve(topSemi);
- recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);
- }
- var len2 = list.length;
- for (var i = 0; i < len2; i++) {
- if (list[i].position === "outer" && list[i].labelAlignTo === "labelLine") {
- var dx = list[i].label.x - farthestX;
- list[i].linePoints[1][0] += dx;
- list[i].label.x = farthestX;
- }
- }
- if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {
- recalculateX(list);
- }
- }
- function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {
- var leftList = [];
- var rightList = [];
- var leftmostX = Number.MAX_VALUE;
- var rightmostX = -Number.MAX_VALUE;
- for (var i = 0; i < labelLayoutList.length; i++) {
- var label = labelLayoutList[i].label;
- if (isPositionCenter(labelLayoutList[i])) {
- continue;
- }
- if (label.x < cx) {
- leftmostX = Math.min(leftmostX, label.x);
- leftList.push(labelLayoutList[i]);
- } else {
- rightmostX = Math.max(rightmostX, label.x);
- rightList.push(labelLayoutList[i]);
- }
- }
- for (var i = 0; i < labelLayoutList.length; i++) {
- var layout2 = labelLayoutList[i];
- if (!isPositionCenter(layout2) && layout2.linePoints) {
- if (layout2.labelStyleWidth != null) {
- continue;
- }
- var label = layout2.label;
- var linePoints = layout2.linePoints;
- var targetTextWidth = void 0;
- if (layout2.labelAlignTo === "edge") {
- if (label.x < cx) {
- targetTextWidth = linePoints[2][0] - layout2.labelDistance - viewLeft - layout2.edgeDistance;
- } else {
- targetTextWidth = viewLeft + viewWidth - layout2.edgeDistance - linePoints[2][0] - layout2.labelDistance;
- }
- } else if (layout2.labelAlignTo === "labelLine") {
- if (label.x < cx) {
- targetTextWidth = leftmostX - viewLeft - layout2.bleedMargin;
- } else {
- targetTextWidth = viewLeft + viewWidth - rightmostX - layout2.bleedMargin;
- }
- } else {
- if (label.x < cx) {
- targetTextWidth = label.x - viewLeft - layout2.bleedMargin;
- } else {
- targetTextWidth = viewLeft + viewWidth - label.x - layout2.bleedMargin;
- }
- }
- layout2.targetTextWidth = targetTextWidth;
- constrainTextWidth(layout2, targetTextWidth);
- }
- }
- adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);
- adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);
- for (var i = 0; i < labelLayoutList.length; i++) {
- var layout2 = labelLayoutList[i];
- if (!isPositionCenter(layout2) && layout2.linePoints) {
- var label = layout2.label;
- var linePoints = layout2.linePoints;
- var isAlignToEdge = layout2.labelAlignTo === "edge";
- var padding = label.style.padding;
- var paddingH = padding ? padding[1] + padding[3] : 0;
- var extraPaddingH = label.style.backgroundColor ? 0 : paddingH;
- var realTextWidth = layout2.rect.width + extraPaddingH;
- var dist2 = linePoints[1][0] - linePoints[2][0];
- if (isAlignToEdge) {
- if (label.x < cx) {
- linePoints[2][0] = viewLeft + layout2.edgeDistance + realTextWidth + layout2.labelDistance;
- } else {
- linePoints[2][0] = viewLeft + viewWidth - layout2.edgeDistance - realTextWidth - layout2.labelDistance;
- }
- } else {
- if (label.x < cx) {
- linePoints[2][0] = label.x + layout2.labelDistance;
- } else {
- linePoints[2][0] = label.x - layout2.labelDistance;
- }
- linePoints[1][0] = linePoints[2][0] + dist2;
- }
- linePoints[1][1] = linePoints[2][1] = label.y;
- }
- }
- }
- function constrainTextWidth(layout2, availableWidth, forceRecalculate) {
- if (forceRecalculate === void 0) {
- forceRecalculate = false;
- }
- if (layout2.labelStyleWidth != null) {
- return;
- }
- var label = layout2.label;
- var style = label.style;
- var textRect = layout2.rect;
- var bgColor = style.backgroundColor;
- var padding = style.padding;
- var paddingH = padding ? padding[1] + padding[3] : 0;
- var overflow = style.overflow;
- var oldOuterWidth = textRect.width + (bgColor ? 0 : paddingH);
- if (availableWidth < oldOuterWidth || forceRecalculate) {
- var oldHeight = textRect.height;
- if (overflow && overflow.match("break")) {
- label.setStyle("backgroundColor", null);
- label.setStyle("width", availableWidth - paddingH);
- var innerRect = label.getBoundingRect();
- label.setStyle("width", Math.ceil(innerRect.width));
- label.setStyle("backgroundColor", bgColor);
- } else {
- var availableInnerWidth = availableWidth - paddingH;
- var newWidth = availableWidth < oldOuterWidth ? availableInnerWidth : (
- // Current available width is enough, but the text may have
- // already been wrapped with a smaller available width.
- forceRecalculate ? availableInnerWidth > layout2.unconstrainedWidth ? null : availableInnerWidth : null
- );
- label.setStyle("width", newWidth);
- }
- var newRect = label.getBoundingRect();
- textRect.width = newRect.width;
- var margin = (label.style.margin || 0) + 2.1;
- textRect.height = newRect.height + margin;
- textRect.y -= (textRect.height - oldHeight) / 2;
- }
- }
- function isPositionCenter(sectorShape) {
- return sectorShape.position === "center";
- }
- function pieLabelLayout(seriesModel) {
- var data = seriesModel.getData();
- var labelLayoutList = [];
- var cx;
- var cy;
- var hasLabelRotate = false;
- var minShowLabelRadian = (seriesModel.get("minShowLabelAngle") || 0) * RADIAN2;
- var viewRect = data.getLayout("viewRect");
- var r = data.getLayout("r");
- var viewWidth = viewRect.width;
- var viewLeft = viewRect.x;
- var viewTop = viewRect.y;
- var viewHeight = viewRect.height;
- function setNotShow(el) {
- el.ignore = true;
- }
- function isLabelShown(label2) {
- if (!label2.ignore) {
- return true;
- }
- for (var key in label2.states) {
- if (label2.states[key].ignore === false) {
- return true;
- }
- }
- return false;
- }
- data.each(function(idx) {
- var sector = data.getItemGraphicEl(idx);
- var sectorShape = sector.shape;
- var label2 = sector.getTextContent();
- var labelLine2 = sector.getTextGuideLine();
- var itemModel = data.getItemModel(idx);
- var labelModel = itemModel.getModel("label");
- var labelPosition = labelModel.get("position") || itemModel.get(["emphasis", "label", "position"]);
- var labelDistance = labelModel.get("distanceToLabelLine");
- var labelAlignTo = labelModel.get("alignTo");
- var edgeDistance = parsePercent2(labelModel.get("edgeDistance"), viewWidth);
- var bleedMargin = labelModel.get("bleedMargin");
- var labelLineModel = itemModel.getModel("labelLine");
- var labelLineLen = labelLineModel.get("length");
- labelLineLen = parsePercent2(labelLineLen, viewWidth);
- var labelLineLen2 = labelLineModel.get("length2");
- labelLineLen2 = parsePercent2(labelLineLen2, viewWidth);
- if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {
- each(label2.states, setNotShow);
- label2.ignore = true;
- if (labelLine2) {
- each(labelLine2.states, setNotShow);
- labelLine2.ignore = true;
- }
- return;
- }
- if (!isLabelShown(label2)) {
- return;
- }
- var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;
- var nx = Math.cos(midAngle);
- var ny = Math.sin(midAngle);
- var textX;
- var textY;
- var linePoints2;
- var textAlign;
- cx = sectorShape.cx;
- cy = sectorShape.cy;
- var isLabelInside = labelPosition === "inside" || labelPosition === "inner";
- if (labelPosition === "center") {
- textX = sectorShape.cx;
- textY = sectorShape.cy;
- textAlign = "center";
- } else {
- var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;
- var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;
- textX = x1 + nx * 3;
- textY = y1 + ny * 3;
- if (!isLabelInside) {
- var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);
- var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);
- var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;
- var y3 = y2;
- if (labelAlignTo === "edge") {
- textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;
- } else {
- textX = x3 + (nx < 0 ? -labelDistance : labelDistance);
- }
- textY = y3;
- linePoints2 = [[x1, y1], [x2, y2], [x3, y3]];
- }
- textAlign = isLabelInside ? "center" : labelAlignTo === "edge" ? nx > 0 ? "right" : "left" : nx > 0 ? "left" : "right";
- }
- var PI3 = Math.PI;
- var labelRotate = 0;
- var rotate = labelModel.get("rotate");
- if (isNumber(rotate)) {
- labelRotate = rotate * (PI3 / 180);
- } else if (labelPosition === "center") {
- labelRotate = 0;
- } else if (rotate === "radial" || rotate === true) {
- var radialAngle = nx < 0 ? -midAngle + PI3 : -midAngle;
- labelRotate = radialAngle;
- } else if (rotate === "tangential" && labelPosition !== "outside" && labelPosition !== "outer") {
- var rad = Math.atan2(nx, ny);
- if (rad < 0) {
- rad = PI3 * 2 + rad;
- }
- var isDown = ny > 0;
- if (isDown) {
- rad = PI3 + rad;
- }
- labelRotate = rad - PI3;
- }
- hasLabelRotate = !!labelRotate;
- label2.x = textX;
- label2.y = textY;
- label2.rotation = labelRotate;
- label2.setStyle({
- verticalAlign: "middle"
- });
- if (!isLabelInside) {
- var textRect = label2.getBoundingRect().clone();
- textRect.applyTransform(label2.getComputedTransform());
- var margin = (label2.style.margin || 0) + 2.1;
- textRect.y -= margin / 2;
- textRect.height += margin;
- labelLayoutList.push({
- label: label2,
- labelLine: labelLine2,
- position: labelPosition,
- len: labelLineLen,
- len2: labelLineLen2,
- minTurnAngle: labelLineModel.get("minTurnAngle"),
- maxSurfaceAngle: labelLineModel.get("maxSurfaceAngle"),
- surfaceNormal: new Point_default(nx, ny),
- linePoints: linePoints2,
- textAlign,
- labelDistance,
- labelAlignTo,
- edgeDistance,
- bleedMargin,
- rect: textRect,
- unconstrainedWidth: textRect.width,
- labelStyleWidth: label2.style.width
- });
- } else {
- label2.setStyle({
- align: textAlign
- });
- var selectState2 = label2.states.select;
- if (selectState2) {
- selectState2.x += label2.x;
- selectState2.y += label2.y;
- }
- }
- sector.setTextConfig({
- inside: isLabelInside
- });
- });
- if (!hasLabelRotate && seriesModel.get("avoidLabelOverlap")) {
- avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);
- }
- for (var i = 0; i < labelLayoutList.length; i++) {
- var layout2 = labelLayoutList[i];
- var label = layout2.label;
- var labelLine = layout2.labelLine;
- var notShowLabel = isNaN(label.x) || isNaN(label.y);
- if (label) {
- label.setStyle({
- align: layout2.textAlign
- });
- if (notShowLabel) {
- each(label.states, setNotShow);
- label.ignore = true;
- }
- var selectState = label.states.select;
- if (selectState) {
- selectState.x += label.x;
- selectState.y += label.y;
- }
- }
- if (labelLine) {
- var linePoints = layout2.linePoints;
- if (notShowLabel || !linePoints) {
- each(labelLine.states, setNotShow);
- labelLine.ignore = true;
- } else {
- limitTurnAngle(linePoints, layout2.minTurnAngle);
- limitSurfaceAngle(linePoints, layout2.surfaceNormal, layout2.maxSurfaceAngle);
- labelLine.setShape({
- points: linePoints
- });
- label.__hostTarget.textGuideLineConfig = {
- anchor: new Point_default(linePoints[0][0], linePoints[0][1])
- };
- }
- }
- }
- }
- // node_modules/echarts/lib/chart/pie/PieView.js
- var PiePiece = (
- /** @class */
- function(_super) {
- __extends(PiePiece2, _super);
- function PiePiece2(data, idx, startAngle) {
- var _this = _super.call(this) || this;
- _this.z2 = 2;
- var text = new Text_default();
- _this.setTextContent(text);
- _this.updateData(data, idx, startAngle, true);
- return _this;
- }
- PiePiece2.prototype.updateData = function(data, idx, startAngle, firstCreate) {
- var sector = this;
- var seriesModel = data.hostModel;
- var itemModel = data.getItemModel(idx);
- var emphasisModel = itemModel.getModel("emphasis");
- var layout2 = data.getItemLayout(idx);
- var sectorShape = extend(getSectorCornerRadius(itemModel.getModel("itemStyle"), layout2, true), layout2);
- if (isNaN(sectorShape.startAngle)) {
- sector.setShape(sectorShape);
- return;
- }
- if (firstCreate) {
- sector.setShape(sectorShape);
- var animationType = seriesModel.getShallow("animationType");
- if (seriesModel.ecModel.ssr) {
- initProps(sector, {
- scaleX: 0,
- scaleY: 0
- }, seriesModel, {
- dataIndex: idx,
- isFrom: true
- });
- sector.originX = sectorShape.cx;
- sector.originY = sectorShape.cy;
- } else if (animationType === "scale") {
- sector.shape.r = layout2.r0;
- initProps(sector, {
- shape: {
- r: layout2.r
- }
- }, seriesModel, idx);
- } else {
- if (startAngle != null) {
- sector.setShape({
- startAngle,
- endAngle: startAngle
- });
- initProps(sector, {
- shape: {
- startAngle: layout2.startAngle,
- endAngle: layout2.endAngle
- }
- }, seriesModel, idx);
- } else {
- sector.shape.endAngle = layout2.startAngle;
- updateProps(sector, {
- shape: {
- endAngle: layout2.endAngle
- }
- }, seriesModel, idx);
- }
- }
- } else {
- saveOldStyle(sector);
- updateProps(sector, {
- shape: sectorShape
- }, seriesModel, idx);
- }
- sector.useStyle(data.getItemVisual(idx, "style"));
- setStatesStylesFromModel(sector, itemModel);
- var midAngle = (layout2.startAngle + layout2.endAngle) / 2;
- var offset = seriesModel.get("selectedOffset");
- var dx = Math.cos(midAngle) * offset;
- var dy = Math.sin(midAngle) * offset;
- var cursorStyle = itemModel.getShallow("cursor");
- cursorStyle && sector.attr("cursor", cursorStyle);
- this._updateLabel(seriesModel, data, idx);
- sector.ensureState("emphasis").shape = extend({
- r: layout2.r + (emphasisModel.get("scale") ? emphasisModel.get("scaleSize") || 0 : 0)
- }, getSectorCornerRadius(emphasisModel.getModel("itemStyle"), layout2));
- extend(sector.ensureState("select"), {
- x: dx,
- y: dy,
- shape: getSectorCornerRadius(itemModel.getModel(["select", "itemStyle"]), layout2)
- });
- extend(sector.ensureState("blur"), {
- shape: getSectorCornerRadius(itemModel.getModel(["blur", "itemStyle"]), layout2)
- });
- var labelLine = sector.getTextGuideLine();
- var labelText = sector.getTextContent();
- labelLine && extend(labelLine.ensureState("select"), {
- x: dx,
- y: dy
- });
- extend(labelText.ensureState("select"), {
- x: dx,
- y: dy
- });
- toggleHoverEmphasis(this, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- };
- PiePiece2.prototype._updateLabel = function(seriesModel, data, idx) {
- var sector = this;
- var itemModel = data.getItemModel(idx);
- var labelLineModel = itemModel.getModel("labelLine");
- var style = data.getItemVisual(idx, "style");
- var visualColor = style && style.fill;
- var visualOpacity = style && style.opacity;
- setLabelStyle(sector, getLabelStatesModels(itemModel), {
- labelFetcher: data.hostModel,
- labelDataIndex: idx,
- inheritColor: visualColor,
- defaultOpacity: visualOpacity,
- defaultText: seriesModel.getFormattedLabel(idx, "normal") || data.getName(idx)
- });
- var labelText = sector.getTextContent();
- sector.setTextConfig({
- // reset position, rotation
- position: null,
- rotation: null
- });
- labelText.attr({
- z2: 10
- });
- var labelPosition = seriesModel.get(["label", "position"]);
- if (labelPosition !== "outside" && labelPosition !== "outer") {
- sector.removeTextGuideLine();
- } else {
- var polyline = this.getTextGuideLine();
- if (!polyline) {
- polyline = new Polyline_default();
- this.setTextGuideLine(polyline);
- }
- setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {
- stroke: visualColor,
- opacity: retrieve3(labelLineModel.get(["lineStyle", "opacity"]), visualOpacity, 1)
- });
- }
- };
- return PiePiece2;
- }(Sector_default)
- );
- var PieView = (
- /** @class */
- function(_super) {
- __extends(PieView2, _super);
- function PieView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.ignoreLabelLineUpdate = true;
- return _this;
- }
- PieView2.prototype.render = function(seriesModel, ecModel, api, payload) {
- var data = seriesModel.getData();
- var oldData = this._data;
- var group = this.group;
- var startAngle;
- if (!oldData && data.count() > 0) {
- var shape = data.getItemLayout(0);
- for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {
- shape = data.getItemLayout(s);
- }
- if (shape) {
- startAngle = shape.startAngle;
- }
- }
- if (this._emptyCircleSector) {
- group.remove(this._emptyCircleSector);
- }
- if (data.count() === 0 && seriesModel.get("showEmptyCircle")) {
- var sector = new Sector_default({
- shape: getBasicPieLayout(seriesModel, api)
- });
- sector.useStyle(seriesModel.getModel("emptyCircleStyle").getItemStyle());
- this._emptyCircleSector = sector;
- group.add(sector);
- }
- data.diff(oldData).add(function(idx) {
- var piePiece = new PiePiece(data, idx, startAngle);
- data.setItemGraphicEl(idx, piePiece);
- group.add(piePiece);
- }).update(function(newIdx, oldIdx) {
- var piePiece = oldData.getItemGraphicEl(oldIdx);
- piePiece.updateData(data, newIdx, startAngle);
- piePiece.off("click");
- group.add(piePiece);
- data.setItemGraphicEl(newIdx, piePiece);
- }).remove(function(idx) {
- var piePiece = oldData.getItemGraphicEl(idx);
- removeElementWithFadeOut(piePiece, seriesModel, idx);
- }).execute();
- pieLabelLayout(seriesModel);
- if (seriesModel.get("animationTypeUpdate") !== "expansion") {
- this._data = data;
- }
- };
- PieView2.prototype.dispose = function() {
- };
- PieView2.prototype.containPoint = function(point, seriesModel) {
- var data = seriesModel.getData();
- var itemLayout = data.getItemLayout(0);
- if (itemLayout) {
- var dx = point[0] - itemLayout.cx;
- var dy = point[1] - itemLayout.cy;
- var radius = Math.sqrt(dx * dx + dy * dy);
- return radius <= itemLayout.r && radius >= itemLayout.r0;
- }
- };
- PieView2.type = "pie";
- return PieView2;
- }(Chart_default)
- );
- var PieView_default = PieView;
- // node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js
- function createSeriesDataSimply(seriesModel, opt, nameList) {
- opt = isArray(opt) && {
- coordDimensions: opt
- } || extend({
- encodeDefine: seriesModel.getEncode()
- }, opt);
- var source = seriesModel.getSource();
- var dimensions = prepareSeriesDataSchema(source, opt).dimensions;
- var list = new SeriesData_default(dimensions, seriesModel);
- list.initData(source, nameList);
- return list;
- }
- // node_modules/echarts/lib/visual/LegendVisualProvider.js
- var LegendVisualProvider = (
- /** @class */
- function() {
- function LegendVisualProvider2(getDataWithEncodedVisual, getRawData) {
- this._getDataWithEncodedVisual = getDataWithEncodedVisual;
- this._getRawData = getRawData;
- }
- LegendVisualProvider2.prototype.getAllNames = function() {
- var rawData = this._getRawData();
- return rawData.mapArray(rawData.getName);
- };
- LegendVisualProvider2.prototype.containName = function(name) {
- var rawData = this._getRawData();
- return rawData.indexOfName(name) >= 0;
- };
- LegendVisualProvider2.prototype.indexOfName = function(name) {
- var dataWithEncodedVisual = this._getDataWithEncodedVisual();
- return dataWithEncodedVisual.indexOfName(name);
- };
- LegendVisualProvider2.prototype.getItemVisual = function(dataIndex, key) {
- var dataWithEncodedVisual = this._getDataWithEncodedVisual();
- return dataWithEncodedVisual.getItemVisual(dataIndex, key);
- };
- return LegendVisualProvider2;
- }()
- );
- var LegendVisualProvider_default = LegendVisualProvider;
- // node_modules/echarts/lib/chart/pie/PieSeries.js
- var innerData = makeInner();
- var PieSeriesModel = (
- /** @class */
- function(_super) {
- __extends(PieSeriesModel2, _super);
- function PieSeriesModel2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- PieSeriesModel2.prototype.init = function(option) {
- _super.prototype.init.apply(this, arguments);
- this.legendVisualProvider = new LegendVisualProvider_default(bind(this.getData, this), bind(this.getRawData, this));
- this._defaultLabelLine(option);
- };
- PieSeriesModel2.prototype.mergeOption = function() {
- _super.prototype.mergeOption.apply(this, arguments);
- };
- PieSeriesModel2.prototype.getInitialData = function() {
- return createSeriesDataSimply(this, {
- coordDimensions: ["value"],
- encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)
- });
- };
- PieSeriesModel2.prototype.getDataParams = function(dataIndex) {
- var data = this.getData();
- var dataInner = innerData(data);
- var seats = dataInner.seats;
- if (!seats) {
- var valueList_1 = [];
- data.each(data.mapDimension("value"), function(value) {
- valueList_1.push(value);
- });
- seats = dataInner.seats = getPercentSeats(valueList_1, data.hostModel.get("percentPrecision"));
- }
- var params = _super.prototype.getDataParams.call(this, dataIndex);
- params.percent = seats[dataIndex] || 0;
- params.$vars.push("percent");
- return params;
- };
- PieSeriesModel2.prototype._defaultLabelLine = function(option) {
- defaultEmphasis(option, "labelLine", ["show"]);
- var labelLineNormalOpt = option.labelLine;
- var labelLineEmphasisOpt = option.emphasis.labelLine;
- labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;
- labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;
- };
- PieSeriesModel2.type = "series.pie";
- PieSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- legendHoverLink: true,
- colorBy: "data",
- // 默认全局居中
- center: ["50%", "50%"],
- radius: [0, "75%"],
- // 默认顺时针
- clockwise: true,
- startAngle: 90,
- endAngle: "auto",
- padAngle: 0,
- // 最小角度改为0
- minAngle: 0,
- // If the angle of a sector less than `minShowLabelAngle`,
- // the label will not be displayed.
- minShowLabelAngle: 0,
- // 选中时扇区偏移量
- selectedOffset: 10,
- // 选择模式,默认关闭,可选single,multiple
- // selectedMode: false,
- // 南丁格尔玫瑰图模式,'radius'(半径) | 'area'(面积)
- // roseType: null,
- percentPrecision: 2,
- // If still show when all data zero.
- stillShowZeroSum: true,
- // cursor: null,
- left: 0,
- top: 0,
- right: 0,
- bottom: 0,
- width: null,
- height: null,
- label: {
- // color: 'inherit',
- // If rotate around circle
- rotate: 0,
- show: true,
- overflow: "truncate",
- // 'outer', 'inside', 'center'
- position: "outer",
- // 'none', 'labelLine', 'edge'. Works only when position is 'outer'
- alignTo: "none",
- // Closest distance between label and chart edge.
- // Works only position is 'outer' and alignTo is 'edge'.
- edgeDistance: "25%",
- // Works only position is 'outer' and alignTo is not 'edge'.
- bleedMargin: 10,
- // Distance between text and label line.
- distanceToLabelLine: 5
- // formatter: 标签文本格式器,同 tooltip.formatter,不支持异步回调
- // 默认使用全局文本样式,详见 textStyle
- // distance: 当position为inner时有效,为label位置到圆心的距离与圆半径(环状图为内外半径和)的比例系数
- },
- // Enabled when label.normal.position is 'outer'
- labelLine: {
- show: true,
- // 引导线两段中的第一段长度
- length: 15,
- // 引导线两段中的第二段长度
- length2: 15,
- smooth: false,
- minTurnAngle: 90,
- maxSurfaceAngle: 90,
- lineStyle: {
- // color: 各异,
- width: 1,
- type: "solid"
- }
- },
- itemStyle: {
- borderWidth: 1,
- borderJoin: "round"
- },
- showEmptyCircle: true,
- emptyCircleStyle: {
- color: "lightgray",
- opacity: 1
- },
- labelLayout: {
- // Hide the overlapped label.
- hideOverlap: true
- },
- emphasis: {
- scale: true,
- scaleSize: 5
- },
- // If use strategy to avoid label overlapping
- avoidLabelOverlap: true,
- // Animation type. Valid values: expansion, scale
- animationType: "expansion",
- animationDuration: 1e3,
- // Animation type when update. Valid values: transition, expansion
- animationTypeUpdate: "transition",
- animationEasingUpdate: "cubicInOut",
- animationDurationUpdate: 500,
- animationEasing: "cubicInOut"
- };
- return PieSeriesModel2;
- }(Series_default)
- );
- var PieSeries_default = PieSeriesModel;
- // node_modules/echarts/lib/processor/negativeDataFilter.js
- function negativeDataFilter(seriesType) {
- return {
- seriesType,
- reset: function(seriesModel, ecModel) {
- var data = seriesModel.getData();
- data.filterSelf(function(idx) {
- var valueDim = data.mapDimension("value");
- var curValue = data.get(valueDim, idx);
- if (isNumber(curValue) && !isNaN(curValue) && curValue < 0) {
- return false;
- }
- return true;
- });
- }
- };
- }
- // node_modules/echarts/lib/chart/pie/install.js
- function install7(registers) {
- registers.registerChartView(PieView_default);
- registers.registerSeriesModel(PieSeries_default);
- createLegacyDataSelectAction("pie", registers.registerAction);
- registers.registerLayout(curry(pieLayout, "pie"));
- registers.registerProcessor(dataFilter("pie"));
- registers.registerProcessor(negativeDataFilter("pie"));
- }
- // node_modules/echarts/lib/chart/scatter/ScatterSeries.js
- var ScatterSeriesModel = (
- /** @class */
- function(_super) {
- __extends(ScatterSeriesModel2, _super);
- function ScatterSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = ScatterSeriesModel2.type;
- _this.hasSymbolVisual = true;
- return _this;
- }
- ScatterSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- return createSeriesData_default(null, this, {
- useEncodeDefaulter: true
- });
- };
- ScatterSeriesModel2.prototype.getProgressive = function() {
- var progressive = this.option.progressive;
- if (progressive == null) {
- return this.option.large ? 5e3 : this.get("progressive");
- }
- return progressive;
- };
- ScatterSeriesModel2.prototype.getProgressiveThreshold = function() {
- var progressiveThreshold = this.option.progressiveThreshold;
- if (progressiveThreshold == null) {
- return this.option.large ? 1e4 : this.get("progressiveThreshold");
- }
- return progressiveThreshold;
- };
- ScatterSeriesModel2.prototype.brushSelector = function(dataIndex, data, selectors) {
- return selectors.point(data.getItemLayout(dataIndex));
- };
- ScatterSeriesModel2.prototype.getZLevelKey = function() {
- return this.getData().count() > this.getProgressiveThreshold() ? this.id : "";
- };
- ScatterSeriesModel2.type = "series.scatter";
- ScatterSeriesModel2.dependencies = ["grid", "polar", "geo", "singleAxis", "calendar"];
- ScatterSeriesModel2.defaultOption = {
- coordinateSystem: "cartesian2d",
- // zlevel: 0,
- z: 2,
- legendHoverLink: true,
- symbolSize: 10,
- // symbolRotate: null, // 图形旋转控制
- large: false,
- // Available when large is true
- largeThreshold: 2e3,
- // cursor: null,
- itemStyle: {
- opacity: 0.8
- // color: 各异
- },
- emphasis: {
- scale: true
- },
- // If clip the overflow graphics
- // Works on cartesian / polar series
- clip: true,
- select: {
- itemStyle: {
- borderColor: "#212121"
- }
- },
- universalTransition: {
- divideShape: "clone"
- }
- // progressive: null
- };
- return ScatterSeriesModel2;
- }(Series_default)
- );
- var ScatterSeries_default = ScatterSeriesModel;
- // node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js
- var BOOST_SIZE_THRESHOLD = 4;
- var LargeSymbolPathShape = (
- /** @class */
- function() {
- function LargeSymbolPathShape2() {
- }
- return LargeSymbolPathShape2;
- }()
- );
- var LargeSymbolPath = (
- /** @class */
- function(_super) {
- __extends(LargeSymbolPath2, _super);
- function LargeSymbolPath2(opts) {
- var _this = _super.call(this, opts) || this;
- _this._off = 0;
- _this.hoverDataIdx = -1;
- return _this;
- }
- LargeSymbolPath2.prototype.getDefaultShape = function() {
- return new LargeSymbolPathShape();
- };
- LargeSymbolPath2.prototype.reset = function() {
- this.notClear = false;
- this._off = 0;
- };
- LargeSymbolPath2.prototype.buildPath = function(path, shape) {
- var points = shape.points;
- var size = shape.size;
- var symbolProxy = this.symbolProxy;
- var symbolProxyShape = symbolProxy.shape;
- var ctx = path.getContext ? path.getContext() : path;
- var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;
- var softClipShape = this.softClipShape;
- var i;
- if (canBoost) {
- this._ctx = ctx;
- return;
- }
- this._ctx = null;
- for (i = this._off; i < points.length; ) {
- var x = points[i++];
- var y = points[i++];
- if (isNaN(x) || isNaN(y)) {
- continue;
- }
- if (softClipShape && !softClipShape.contain(x, y)) {
- continue;
- }
- symbolProxyShape.x = x - size[0] / 2;
- symbolProxyShape.y = y - size[1] / 2;
- symbolProxyShape.width = size[0];
- symbolProxyShape.height = size[1];
- symbolProxy.buildPath(path, symbolProxyShape, true);
- }
- if (this.incremental) {
- this._off = i;
- this.notClear = true;
- }
- };
- LargeSymbolPath2.prototype.afterBrush = function() {
- var shape = this.shape;
- var points = shape.points;
- var size = shape.size;
- var ctx = this._ctx;
- var softClipShape = this.softClipShape;
- var i;
- if (!ctx) {
- return;
- }
- for (i = this._off; i < points.length; ) {
- var x = points[i++];
- var y = points[i++];
- if (isNaN(x) || isNaN(y)) {
- continue;
- }
- if (softClipShape && !softClipShape.contain(x, y)) {
- continue;
- }
- ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);
- }
- if (this.incremental) {
- this._off = i;
- this.notClear = true;
- }
- };
- LargeSymbolPath2.prototype.findDataIndex = function(x, y) {
- var shape = this.shape;
- var points = shape.points;
- var size = shape.size;
- var w = Math.max(size[0], 4);
- var h = Math.max(size[1], 4);
- for (var idx = points.length / 2 - 1; idx >= 0; idx--) {
- var i = idx * 2;
- var x0 = points[i] - w / 2;
- var y0 = points[i + 1] - h / 2;
- if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {
- return idx;
- }
- }
- return -1;
- };
- LargeSymbolPath2.prototype.contain = function(x, y) {
- var localPos = this.transformCoordToLocal(x, y);
- var rect = this.getBoundingRect();
- x = localPos[0];
- y = localPos[1];
- if (rect.contain(x, y)) {
- var dataIdx = this.hoverDataIdx = this.findDataIndex(x, y);
- return dataIdx >= 0;
- }
- this.hoverDataIdx = -1;
- return false;
- };
- LargeSymbolPath2.prototype.getBoundingRect = function() {
- var rect = this._rect;
- if (!rect) {
- var shape = this.shape;
- var points = shape.points;
- var size = shape.size;
- var w = size[0];
- var h = size[1];
- var minX = Infinity;
- var minY = Infinity;
- var maxX = -Infinity;
- var maxY = -Infinity;
- for (var i = 0; i < points.length; ) {
- var x = points[i++];
- var y = points[i++];
- minX = Math.min(x, minX);
- maxX = Math.max(x, maxX);
- minY = Math.min(y, minY);
- maxY = Math.max(y, maxY);
- }
- rect = this._rect = new BoundingRect_default(minX - w / 2, minY - h / 2, maxX - minX + w, maxY - minY + h);
- }
- return rect;
- };
- return LargeSymbolPath2;
- }(Path_default)
- );
- var LargeSymbolDraw = (
- /** @class */
- function() {
- function LargeSymbolDraw2() {
- this.group = new Group_default();
- }
- LargeSymbolDraw2.prototype.updateData = function(data, opt) {
- this._clear();
- var symbolEl = this._create();
- symbolEl.setShape({
- points: data.getLayout("points")
- });
- this._setCommon(symbolEl, data, opt);
- };
- LargeSymbolDraw2.prototype.updateLayout = function(data) {
- var points = data.getLayout("points");
- this.group.eachChild(function(child) {
- if (child.startIndex != null) {
- var len2 = (child.endIndex - child.startIndex) * 2;
- var byteOffset = child.startIndex * 4 * 2;
- points = new Float32Array(points.buffer, byteOffset, len2);
- }
- child.setShape("points", points);
- child.reset();
- });
- };
- LargeSymbolDraw2.prototype.incrementalPrepareUpdate = function(data) {
- this._clear();
- };
- LargeSymbolDraw2.prototype.incrementalUpdate = function(taskParams, data, opt) {
- var lastAdded = this._newAdded[0];
- var points = data.getLayout("points");
- var oldPoints = lastAdded && lastAdded.shape.points;
- if (oldPoints && oldPoints.length < 2e4) {
- var oldLen = oldPoints.length;
- var newPoints = new Float32Array(oldLen + points.length);
- newPoints.set(oldPoints);
- newPoints.set(points, oldLen);
- lastAdded.endIndex = taskParams.end;
- lastAdded.setShape({
- points: newPoints
- });
- } else {
- this._newAdded = [];
- var symbolEl = this._create();
- symbolEl.startIndex = taskParams.start;
- symbolEl.endIndex = taskParams.end;
- symbolEl.incremental = true;
- symbolEl.setShape({
- points
- });
- this._setCommon(symbolEl, data, opt);
- }
- };
- LargeSymbolDraw2.prototype.eachRendered = function(cb) {
- this._newAdded[0] && cb(this._newAdded[0]);
- };
- LargeSymbolDraw2.prototype._create = function() {
- var symbolEl = new LargeSymbolPath({
- cursor: "default"
- });
- symbolEl.ignoreCoarsePointer = true;
- this.group.add(symbolEl);
- this._newAdded.push(symbolEl);
- return symbolEl;
- };
- LargeSymbolDraw2.prototype._setCommon = function(symbolEl, data, opt) {
- var hostModel = data.hostModel;
- opt = opt || {};
- var size = data.getVisual("symbolSize");
- symbolEl.setShape("size", size instanceof Array ? size : [size, size]);
- symbolEl.softClipShape = opt.clipShape || null;
- symbolEl.symbolProxy = createSymbol(data.getVisual("symbol"), 0, 0, 0, 0);
- symbolEl.setColor = symbolEl.symbolProxy.setColor;
- var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;
- symbolEl.useStyle(
- // Draw shadow when doing fillRect is extremely slow.
- hostModel.getModel("itemStyle").getItemStyle(extrudeShadow ? ["color", "shadowBlur", "shadowColor"] : ["color"])
- );
- var globalStyle = data.getVisual("style");
- var visualColor = globalStyle && globalStyle.fill;
- if (visualColor) {
- symbolEl.setColor(visualColor);
- }
- var ecData = getECData(symbolEl);
- ecData.seriesIndex = hostModel.seriesIndex;
- symbolEl.on("mousemove", function(e) {
- ecData.dataIndex = null;
- var dataIndex = symbolEl.hoverDataIdx;
- if (dataIndex >= 0) {
- ecData.dataIndex = dataIndex + (symbolEl.startIndex || 0);
- }
- });
- };
- LargeSymbolDraw2.prototype.remove = function() {
- this._clear();
- };
- LargeSymbolDraw2.prototype._clear = function() {
- this._newAdded = [];
- this.group.removeAll();
- };
- return LargeSymbolDraw2;
- }()
- );
- var LargeSymbolDraw_default = LargeSymbolDraw;
- // node_modules/echarts/lib/chart/scatter/ScatterView.js
- var ScatterView = (
- /** @class */
- function(_super) {
- __extends(ScatterView2, _super);
- function ScatterView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = ScatterView2.type;
- return _this;
- }
- ScatterView2.prototype.render = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var symbolDraw = this._updateSymbolDraw(data, seriesModel);
- symbolDraw.updateData(data, {
- // TODO
- // If this parameter should be a shape or a bounding volume
- // shape will be more general.
- // But bounding volume like bounding rect will be much faster in the contain calculation
- clipShape: this._getClipShape(seriesModel)
- });
- this._finished = true;
- };
- ScatterView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var symbolDraw = this._updateSymbolDraw(data, seriesModel);
- symbolDraw.incrementalPrepareUpdate(data);
- this._finished = false;
- };
- ScatterView2.prototype.incrementalRender = function(taskParams, seriesModel, ecModel) {
- this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {
- clipShape: this._getClipShape(seriesModel)
- });
- this._finished = taskParams.end === seriesModel.getData().count();
- };
- ScatterView2.prototype.updateTransform = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- this.group.dirty();
- if (!this._finished || data.count() > 1e4) {
- return {
- update: true
- };
- } else {
- var res = pointsLayout("").reset(seriesModel, ecModel, api);
- if (res.progress) {
- res.progress({
- start: 0,
- end: data.count(),
- count: data.count()
- }, data);
- }
- this._symbolDraw.updateLayout(data);
- }
- };
- ScatterView2.prototype.eachRendered = function(cb) {
- this._symbolDraw && this._symbolDraw.eachRendered(cb);
- };
- ScatterView2.prototype._getClipShape = function(seriesModel) {
- if (!seriesModel.get("clip", true)) {
- return;
- }
- var coordSys = seriesModel.coordinateSystem;
- return coordSys && coordSys.getArea && coordSys.getArea(0.1);
- };
- ScatterView2.prototype._updateSymbolDraw = function(data, seriesModel) {
- var symbolDraw = this._symbolDraw;
- var pipelineContext = seriesModel.pipelineContext;
- var isLargeDraw = pipelineContext.large;
- if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {
- symbolDraw && symbolDraw.remove();
- symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw_default() : new SymbolDraw_default();
- this._isLargeDraw = isLargeDraw;
- this.group.removeAll();
- }
- this.group.add(symbolDraw.group);
- return symbolDraw;
- };
- ScatterView2.prototype.remove = function(ecModel, api) {
- this._symbolDraw && this._symbolDraw.remove(true);
- this._symbolDraw = null;
- };
- ScatterView2.prototype.dispose = function() {
- };
- ScatterView2.type = "scatter";
- return ScatterView2;
- }(Chart_default)
- );
- var ScatterView_default = ScatterView;
- // node_modules/echarts/lib/chart/scatter/install.js
- function install8(registers) {
- use(install);
- registers.registerSeriesModel(ScatterSeries_default);
- registers.registerChartView(ScatterView_default);
- registers.registerLayout(pointsLayout("scatter"));
- }
- // node_modules/echarts/lib/chart/radar/radarLayout.js
- function radarLayout(ecModel) {
- ecModel.eachSeriesByType("radar", function(seriesModel) {
- var data = seriesModel.getData();
- var points = [];
- var coordSys = seriesModel.coordinateSystem;
- if (!coordSys) {
- return;
- }
- var axes = coordSys.getIndicatorAxes();
- each(axes, function(axis, axisIndex) {
- data.each(data.mapDimension(axes[axisIndex].dim), function(val, dataIndex) {
- points[dataIndex] = points[dataIndex] || [];
- var point = coordSys.dataToPoint(val, axisIndex);
- points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys);
- });
- });
- data.each(function(idx) {
- var firstPoint = find(points[idx], function(point) {
- return isValidPoint(point);
- }) || getValueMissingPoint(coordSys);
- points[idx].push(firstPoint.slice());
- data.setItemLayout(idx, points[idx]);
- });
- });
- }
- function isValidPoint(point) {
- return !isNaN(point[0]) && !isNaN(point[1]);
- }
- function getValueMissingPoint(coordSys) {
- return [coordSys.cx, coordSys.cy];
- }
- // node_modules/echarts/lib/chart/radar/backwardCompat.js
- function radarBackwardCompat(option) {
- var polarOptArr = option.polar;
- if (polarOptArr) {
- if (!isArray(polarOptArr)) {
- polarOptArr = [polarOptArr];
- }
- var polarNotRadar_1 = [];
- each(polarOptArr, function(polarOpt, idx) {
- if (polarOpt.indicator) {
- if (polarOpt.type && !polarOpt.shape) {
- polarOpt.shape = polarOpt.type;
- }
- option.radar = option.radar || [];
- if (!isArray(option.radar)) {
- option.radar = [option.radar];
- }
- option.radar.push(polarOpt);
- } else {
- polarNotRadar_1.push(polarOpt);
- }
- });
- option.polar = polarNotRadar_1;
- }
- each(option.series, function(seriesOpt) {
- if (seriesOpt && seriesOpt.type === "radar" && seriesOpt.polarIndex) {
- seriesOpt.radarIndex = seriesOpt.polarIndex;
- }
- });
- }
- // node_modules/echarts/lib/chart/radar/RadarView.js
- var RadarView = (
- /** @class */
- function(_super) {
- __extends(RadarView2, _super);
- function RadarView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = RadarView2.type;
- return _this;
- }
- RadarView2.prototype.render = function(seriesModel, ecModel, api) {
- var polar = seriesModel.coordinateSystem;
- var group = this.group;
- var data = seriesModel.getData();
- var oldData = this._data;
- function createSymbol2(data2, idx) {
- var symbolType = data2.getItemVisual(idx, "symbol") || "circle";
- if (symbolType === "none") {
- return;
- }
- var symbolSize = normalizeSymbolSize(data2.getItemVisual(idx, "symbolSize"));
- var symbolPath = createSymbol(symbolType, -1, -1, 2, 2);
- var symbolRotate = data2.getItemVisual(idx, "symbolRotate") || 0;
- symbolPath.attr({
- style: {
- strokeNoScale: true
- },
- z2: 100,
- scaleX: symbolSize[0] / 2,
- scaleY: symbolSize[1] / 2,
- rotation: symbolRotate * Math.PI / 180 || 0
- });
- return symbolPath;
- }
- function updateSymbols(oldPoints, newPoints, symbolGroup, data2, idx, isInit) {
- symbolGroup.removeAll();
- for (var i = 0; i < newPoints.length - 1; i++) {
- var symbolPath = createSymbol2(data2, idx);
- if (symbolPath) {
- symbolPath.__dimIdx = i;
- if (oldPoints[i]) {
- symbolPath.setPosition(oldPoints[i]);
- graphic_exports[isInit ? "initProps" : "updateProps"](symbolPath, {
- x: newPoints[i][0],
- y: newPoints[i][1]
- }, seriesModel, idx);
- } else {
- symbolPath.setPosition(newPoints[i]);
- }
- symbolGroup.add(symbolPath);
- }
- }
- }
- function getInitialPoints(points) {
- return map(points, function(pt) {
- return [polar.cx, polar.cy];
- });
- }
- data.diff(oldData).add(function(idx) {
- var points = data.getItemLayout(idx);
- if (!points) {
- return;
- }
- var polygon = new Polygon_default();
- var polyline = new Polyline_default();
- var target = {
- shape: {
- points
- }
- };
- polygon.shape.points = getInitialPoints(points);
- polyline.shape.points = getInitialPoints(points);
- initProps(polygon, target, seriesModel, idx);
- initProps(polyline, target, seriesModel, idx);
- var itemGroup = new Group_default();
- var symbolGroup = new Group_default();
- itemGroup.add(polyline);
- itemGroup.add(polygon);
- itemGroup.add(symbolGroup);
- updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);
- data.setItemGraphicEl(idx, itemGroup);
- }).update(function(newIdx, oldIdx) {
- var itemGroup = oldData.getItemGraphicEl(oldIdx);
- var polyline = itemGroup.childAt(0);
- var polygon = itemGroup.childAt(1);
- var symbolGroup = itemGroup.childAt(2);
- var target = {
- shape: {
- points: data.getItemLayout(newIdx)
- }
- };
- if (!target.shape.points) {
- return;
- }
- updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);
- saveOldStyle(polygon);
- saveOldStyle(polyline);
- updateProps(polyline, target, seriesModel);
- updateProps(polygon, target, seriesModel);
- data.setItemGraphicEl(newIdx, itemGroup);
- }).remove(function(idx) {
- group.remove(oldData.getItemGraphicEl(idx));
- }).execute();
- data.eachItemGraphicEl(function(itemGroup, idx) {
- var itemModel = data.getItemModel(idx);
- var polyline = itemGroup.childAt(0);
- var polygon = itemGroup.childAt(1);
- var symbolGroup = itemGroup.childAt(2);
- var itemStyle = data.getItemVisual(idx, "style");
- var color = itemStyle.fill;
- group.add(itemGroup);
- polyline.useStyle(defaults(itemModel.getModel("lineStyle").getLineStyle(), {
- fill: "none",
- stroke: color
- }));
- setStatesStylesFromModel(polyline, itemModel, "lineStyle");
- setStatesStylesFromModel(polygon, itemModel, "areaStyle");
- var areaStyleModel = itemModel.getModel("areaStyle");
- var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();
- polygon.ignore = polygonIgnore;
- each(["emphasis", "select", "blur"], function(stateName) {
- var stateModel = itemModel.getModel([stateName, "areaStyle"]);
- var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty();
- polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;
- });
- polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {
- fill: color,
- opacity: 0.7,
- decal: itemStyle.decal
- }));
- var emphasisModel = itemModel.getModel("emphasis");
- var itemHoverStyle = emphasisModel.getModel("itemStyle").getItemStyle();
- symbolGroup.eachChild(function(symbolPath) {
- if (symbolPath instanceof Image_default) {
- var pathStyle = symbolPath.style;
- symbolPath.useStyle(extend({
- // TODO other properties like x, y ?
- image: pathStyle.image,
- x: pathStyle.x,
- y: pathStyle.y,
- width: pathStyle.width,
- height: pathStyle.height
- }, itemStyle));
- } else {
- symbolPath.useStyle(itemStyle);
- symbolPath.setColor(color);
- symbolPath.style.strokeNoScale = true;
- }
- var pathEmphasisState = symbolPath.ensureState("emphasis");
- pathEmphasisState.style = clone(itemHoverStyle);
- var defaultText = data.getStore().get(data.getDimensionIndex(symbolPath.__dimIdx), idx);
- (defaultText == null || isNaN(defaultText)) && (defaultText = "");
- setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {
- labelFetcher: data.hostModel,
- labelDataIndex: idx,
- labelDimIndex: symbolPath.__dimIdx,
- defaultText,
- inheritColor: color,
- defaultOpacity: itemStyle.opacity
- });
- });
- toggleHoverEmphasis(itemGroup, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- });
- this._data = data;
- };
- RadarView2.prototype.remove = function() {
- this.group.removeAll();
- this._data = null;
- };
- RadarView2.type = "radar";
- return RadarView2;
- }(Chart_default)
- );
- var RadarView_default = RadarView;
- // node_modules/echarts/lib/chart/radar/RadarSeries.js
- var RadarSeriesModel = (
- /** @class */
- function(_super) {
- __extends(RadarSeriesModel2, _super);
- function RadarSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = RadarSeriesModel2.type;
- _this.hasSymbolVisual = true;
- return _this;
- }
- RadarSeriesModel2.prototype.init = function(option) {
- _super.prototype.init.apply(this, arguments);
- this.legendVisualProvider = new LegendVisualProvider_default(bind(this.getData, this), bind(this.getRawData, this));
- };
- RadarSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- return createSeriesDataSimply(this, {
- generateCoord: "indicator_",
- generateCoordCount: Infinity
- });
- };
- RadarSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) {
- var data = this.getData();
- var coordSys = this.coordinateSystem;
- var indicatorAxes = coordSys.getIndicatorAxes();
- var name = this.getData().getName(dataIndex);
- var nameToDisplay = name === "" ? this.name : name;
- var markerColor = retrieveVisualColorForTooltipMarker(this, dataIndex);
- return createTooltipMarkup("section", {
- header: nameToDisplay,
- sortBlocks: true,
- blocks: map(indicatorAxes, function(axis) {
- var val = data.get(data.mapDimension(axis.dim), dataIndex);
- return createTooltipMarkup("nameValue", {
- markerType: "subItem",
- markerColor,
- name: axis.name,
- value: val,
- sortParam: val
- });
- })
- });
- };
- RadarSeriesModel2.prototype.getTooltipPosition = function(dataIndex) {
- if (dataIndex != null) {
- var data_1 = this.getData();
- var coordSys = this.coordinateSystem;
- var values = data_1.getValues(map(coordSys.dimensions, function(dim) {
- return data_1.mapDimension(dim);
- }), dataIndex);
- for (var i = 0, len2 = values.length; i < len2; i++) {
- if (!isNaN(values[i])) {
- var indicatorAxes = coordSys.getIndicatorAxes();
- return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);
- }
- }
- }
- };
- RadarSeriesModel2.type = "series.radar";
- RadarSeriesModel2.dependencies = ["radar"];
- RadarSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- colorBy: "data",
- coordinateSystem: "radar",
- legendHoverLink: true,
- radarIndex: 0,
- lineStyle: {
- width: 2,
- type: "solid",
- join: "round"
- },
- label: {
- position: "top"
- },
- // areaStyle: {
- // },
- // itemStyle: {}
- symbolSize: 8
- // symbolRotate: null
- };
- return RadarSeriesModel2;
- }(Series_default)
- );
- var RadarSeries_default = RadarSeriesModel;
- // node_modules/echarts/lib/chart/radar/install.js
- function install9(registers) {
- use(install2);
- registers.registerChartView(RadarView_default);
- registers.registerSeriesModel(RadarSeries_default);
- registers.registerLayout(radarLayout);
- registers.registerProcessor(dataFilter("radar"));
- registers.registerPreprocessor(radarBackwardCompat);
- }
- // node_modules/echarts/lib/chart/map/MapView.js
- var MapView = (
- /** @class */
- function(_super) {
- __extends(MapView2, _super);
- function MapView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = MapView2.type;
- return _this;
- }
- MapView2.prototype.render = function(mapModel, ecModel, api, payload) {
- if (payload && payload.type === "mapToggleSelect" && payload.from === this.uid) {
- return;
- }
- var group = this.group;
- group.removeAll();
- if (mapModel.getHostGeoModel()) {
- return;
- }
- if (this._mapDraw && payload && payload.type === "geoRoam") {
- this._mapDraw.resetForLabelLayout();
- }
- if (!(payload && payload.type === "geoRoam" && payload.componentType === "series" && payload.seriesId === mapModel.id)) {
- if (mapModel.needsDrawMap) {
- var mapDraw = this._mapDraw || new MapDraw_default(api);
- group.add(mapDraw.group);
- mapDraw.draw(mapModel, ecModel, api, this, payload);
- this._mapDraw = mapDraw;
- } else {
- this._mapDraw && this._mapDraw.remove();
- this._mapDraw = null;
- }
- } else {
- var mapDraw = this._mapDraw;
- mapDraw && group.add(mapDraw.group);
- }
- mapModel.get("showLegendSymbol") && ecModel.getComponent("legend") && this._renderSymbols(mapModel, ecModel, api);
- };
- MapView2.prototype.remove = function() {
- this._mapDraw && this._mapDraw.remove();
- this._mapDraw = null;
- this.group.removeAll();
- };
- MapView2.prototype.dispose = function() {
- this._mapDraw && this._mapDraw.remove();
- this._mapDraw = null;
- };
- MapView2.prototype._renderSymbols = function(mapModel, ecModel, api) {
- var originalData = mapModel.originalData;
- var group = this.group;
- originalData.each(originalData.mapDimension("value"), function(value, originalDataIndex) {
- if (isNaN(value)) {
- return;
- }
- var layout2 = originalData.getItemLayout(originalDataIndex);
- if (!layout2 || !layout2.point) {
- return;
- }
- var point = layout2.point;
- var offset = layout2.offset;
- var circle = new Circle_default({
- style: {
- // Because the special of map draw.
- // Which needs statistic of multiple series and draw on one map.
- // And each series also need a symbol with legend color
- //
- // Layout and visual are put one the different data
- // TODO
- fill: mapModel.getData().getVisual("style").fill
- },
- shape: {
- cx: point[0] + offset * 9,
- cy: point[1],
- r: 3
- },
- silent: true,
- // Do not overlap the first series, on which labels are displayed.
- z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)
- });
- if (!offset) {
- var fullData = mapModel.mainSeries.getData();
- var name_1 = originalData.getName(originalDataIndex);
- var fullIndex_1 = fullData.indexOfName(name_1);
- var itemModel = originalData.getItemModel(originalDataIndex);
- var labelModel = itemModel.getModel("label");
- var regionGroup = fullData.getItemGraphicEl(fullIndex_1);
- setLabelStyle(circle, getLabelStatesModels(itemModel), {
- labelFetcher: {
- getFormattedLabel: function(idx, state) {
- return mapModel.getFormattedLabel(fullIndex_1, state);
- }
- },
- defaultText: name_1
- });
- circle.disableLabelAnimation = true;
- if (!labelModel.get("position")) {
- circle.setTextConfig({
- position: "bottom"
- });
- }
- regionGroup.onHoverStateChange = function(toState) {
- setStatesFlag(circle, toState);
- };
- }
- group.add(circle);
- });
- };
- MapView2.type = "map";
- return MapView2;
- }(Chart_default)
- );
- var MapView_default = MapView;
- // node_modules/echarts/lib/chart/map/MapSeries.js
- var MapSeries = (
- /** @class */
- function(_super) {
- __extends(MapSeries2, _super);
- function MapSeries2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = MapSeries2.type;
- _this.needsDrawMap = false;
- _this.seriesGroup = [];
- _this.getTooltipPosition = function(dataIndex) {
- if (dataIndex != null) {
- var name_1 = this.getData().getName(dataIndex);
- var geo = this.coordinateSystem;
- var region = geo.getRegion(name_1);
- return region && geo.dataToPoint(region.getCenter());
- }
- };
- return _this;
- }
- MapSeries2.prototype.getInitialData = function(option) {
- var data = createSeriesDataSimply(this, {
- coordDimensions: ["value"],
- encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)
- });
- var dataNameMap = createHashMap();
- var toAppendNames = [];
- for (var i = 0, len2 = data.count(); i < len2; i++) {
- var name_2 = data.getName(i);
- dataNameMap.set(name_2, true);
- }
- var geoSource = geoSourceManager_default.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);
- each(geoSource.regions, function(region) {
- var name = region.name;
- if (!dataNameMap.get(name)) {
- toAppendNames.push(name);
- }
- });
- data.appendValues([], toAppendNames);
- return data;
- };
- MapSeries2.prototype.getHostGeoModel = function() {
- var geoIndex = this.option.geoIndex;
- return geoIndex != null ? this.ecModel.getComponent("geo", geoIndex) : null;
- };
- MapSeries2.prototype.getMapType = function() {
- return (this.getHostGeoModel() || this).option.map;
- };
- MapSeries2.prototype.getRawValue = function(dataIndex) {
- var data = this.getData();
- return data.get(data.mapDimension("value"), dataIndex);
- };
- MapSeries2.prototype.getRegionModel = function(regionName) {
- var data = this.getData();
- return data.getItemModel(data.indexOfName(regionName));
- };
- MapSeries2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) {
- var data = this.getData();
- var value = this.getRawValue(dataIndex);
- var name = data.getName(dataIndex);
- var seriesGroup = this.seriesGroup;
- var seriesNames = [];
- for (var i = 0; i < seriesGroup.length; i++) {
- var otherIndex = seriesGroup[i].originalData.indexOfName(name);
- var valueDim = data.mapDimension("value");
- if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {
- seriesNames.push(seriesGroup[i].name);
- }
- }
- return createTooltipMarkup("section", {
- header: seriesNames.join(", "),
- noHeader: !seriesNames.length,
- blocks: [createTooltipMarkup("nameValue", {
- name,
- value
- })]
- });
- };
- MapSeries2.prototype.setZoom = function(zoom) {
- this.option.zoom = zoom;
- };
- MapSeries2.prototype.setCenter = function(center2) {
- this.option.center = center2;
- };
- MapSeries2.prototype.getLegendIcon = function(opt) {
- var iconType = opt.icon || "roundRect";
- var icon = createSymbol(iconType, 0, 0, opt.itemWidth, opt.itemHeight, opt.itemStyle.fill);
- icon.setStyle(opt.itemStyle);
- icon.style.stroke = "none";
- if (iconType.indexOf("empty") > -1) {
- icon.style.stroke = icon.style.fill;
- icon.style.fill = "#fff";
- icon.style.lineWidth = 2;
- }
- return icon;
- };
- MapSeries2.type = "series.map";
- MapSeries2.dependencies = ["geo"];
- MapSeries2.layoutMode = "box";
- MapSeries2.defaultOption = {
- // 一级层叠
- // zlevel: 0,
- // 二级层叠
- z: 2,
- coordinateSystem: "geo",
- // map should be explicitly specified since ec3.
- map: "",
- // If `geoIndex` is not specified, a exclusive geo will be
- // created. Otherwise use the specified geo component, and
- // `map` and `mapType` are ignored.
- // geoIndex: 0,
- // 'center' | 'left' | 'right' | 'x%' | {number}
- left: "center",
- // 'center' | 'top' | 'bottom' | 'x%' | {number}
- top: "center",
- // right
- // bottom
- // width:
- // height
- // Aspect is width / height. Inited to be geoJson bbox aspect
- // This parameter is used for scale this aspect
- // Default value:
- // for geoSVG source: 1,
- // for geoJSON source: 0.75.
- aspectScale: null,
- // Layout with center and size
- // If you want to put map in a fixed size box with right aspect ratio
- // This two properties may be more convenient.
- // layoutCenter: [50%, 50%]
- // layoutSize: 100
- showLegendSymbol: true,
- // Define left-top, right-bottom coords to control view
- // For example, [ [180, 90], [-180, -90] ],
- // higher priority than center and zoom
- boundingCoords: null,
- // Default on center of map
- center: null,
- zoom: 1,
- scaleLimit: null,
- selectedMode: true,
- label: {
- show: false,
- color: "#000"
- },
- // scaleLimit: null,
- itemStyle: {
- borderWidth: 0.5,
- borderColor: "#444",
- areaColor: "#eee"
- },
- emphasis: {
- label: {
- show: true,
- color: "rgb(100,0,0)"
- },
- itemStyle: {
- areaColor: "rgba(255,215,0,0.8)"
- }
- },
- select: {
- label: {
- show: true,
- color: "rgb(100,0,0)"
- },
- itemStyle: {
- color: "rgba(255,215,0,0.8)"
- }
- },
- nameProperty: "name"
- };
- return MapSeries2;
- }(Series_default)
- );
- var MapSeries_default = MapSeries;
- // node_modules/echarts/lib/chart/map/mapDataStatistic.js
- function dataStatistics(datas, statisticType) {
- var dataNameMap = {};
- each(datas, function(data) {
- data.each(data.mapDimension("value"), function(value, idx) {
- var mapKey = "ec-" + data.getName(idx);
- dataNameMap[mapKey] = dataNameMap[mapKey] || [];
- if (!isNaN(value)) {
- dataNameMap[mapKey].push(value);
- }
- });
- });
- return datas[0].map(datas[0].mapDimension("value"), function(value, idx) {
- var mapKey = "ec-" + datas[0].getName(idx);
- var sum2 = 0;
- var min = Infinity;
- var max = -Infinity;
- var len2 = dataNameMap[mapKey].length;
- for (var i = 0; i < len2; i++) {
- min = Math.min(min, dataNameMap[mapKey][i]);
- max = Math.max(max, dataNameMap[mapKey][i]);
- sum2 += dataNameMap[mapKey][i];
- }
- var result;
- if (statisticType === "min") {
- result = min;
- } else if (statisticType === "max") {
- result = max;
- } else if (statisticType === "average") {
- result = sum2 / len2;
- } else {
- result = sum2;
- }
- return len2 === 0 ? NaN : result;
- });
- }
- function mapDataStatistic(ecModel) {
- var seriesGroups = {};
- ecModel.eachSeriesByType("map", function(seriesModel) {
- var hostGeoModel = seriesModel.getHostGeoModel();
- var key = hostGeoModel ? "o" + hostGeoModel.id : "i" + seriesModel.getMapType();
- (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);
- });
- each(seriesGroups, function(seriesList, key) {
- var data = dataStatistics(map(seriesList, function(seriesModel) {
- return seriesModel.getData();
- }), seriesList[0].get("mapValueCalculation"));
- for (var i = 0; i < seriesList.length; i++) {
- seriesList[i].originalData = seriesList[i].getData();
- }
- for (var i = 0; i < seriesList.length; i++) {
- seriesList[i].seriesGroup = seriesList;
- seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();
- seriesList[i].setData(data.cloneShallow());
- seriesList[i].mainSeries = seriesList[0];
- }
- });
- }
- // node_modules/echarts/lib/chart/map/mapSymbolLayout.js
- function mapSymbolLayout(ecModel) {
- var processedMapType = {};
- ecModel.eachSeriesByType("map", function(mapSeries) {
- var mapType = mapSeries.getMapType();
- if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {
- return;
- }
- var mapSymbolOffsets = {};
- each(mapSeries.seriesGroup, function(subMapSeries) {
- var geo = subMapSeries.coordinateSystem;
- var data2 = subMapSeries.originalData;
- if (subMapSeries.get("showLegendSymbol") && ecModel.getComponent("legend")) {
- data2.each(data2.mapDimension("value"), function(value, idx) {
- var name = data2.getName(idx);
- var region = geo.getRegion(name);
- if (!region || isNaN(value)) {
- return;
- }
- var offset = mapSymbolOffsets[name] || 0;
- var point = geo.dataToPoint(region.getCenter());
- mapSymbolOffsets[name] = offset + 1;
- data2.setItemLayout(idx, {
- point,
- offset
- });
- });
- }
- });
- var data = mapSeries.getData();
- data.each(function(idx) {
- var name = data.getName(idx);
- var layout2 = data.getItemLayout(idx) || {};
- layout2.showLabel = !mapSymbolOffsets[name];
- data.setItemLayout(idx, layout2);
- });
- processedMapType[mapType] = true;
- });
- }
- // node_modules/echarts/lib/chart/map/install.js
- function install10(registers) {
- use(install3);
- registers.registerChartView(MapView_default);
- registers.registerSeriesModel(MapSeries_default);
- registers.registerLayout(mapSymbolLayout);
- registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);
- createLegacyDataSelectAction("map", registers.registerAction);
- }
- // node_modules/echarts/lib/chart/tree/layoutHelper.js
- function init(inRoot) {
- var root = inRoot;
- root.hierNode = {
- defaultAncestor: null,
- ancestor: root,
- prelim: 0,
- modifier: 0,
- change: 0,
- shift: 0,
- i: 0,
- thread: null
- };
- var nodes = [root];
- var node;
- var children;
- while (node = nodes.pop()) {
- children = node.children;
- if (node.isExpand && children.length) {
- var n = children.length;
- for (var i = n - 1; i >= 0; i--) {
- var child = children[i];
- child.hierNode = {
- defaultAncestor: null,
- ancestor: child,
- prelim: 0,
- modifier: 0,
- change: 0,
- shift: 0,
- i,
- thread: null
- };
- nodes.push(child);
- }
- }
- }
- }
- function firstWalk(node, separation2) {
- var children = node.isExpand ? node.children : [];
- var siblings = node.parentNode.children;
- var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;
- if (children.length) {
- executeShifts(node);
- var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;
- if (subtreeW) {
- node.hierNode.prelim = subtreeW.hierNode.prelim + separation2(node, subtreeW);
- node.hierNode.modifier = node.hierNode.prelim - midPoint;
- } else {
- node.hierNode.prelim = midPoint;
- }
- } else if (subtreeW) {
- node.hierNode.prelim = subtreeW.hierNode.prelim + separation2(node, subtreeW);
- }
- node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation2);
- }
- function secondWalk(node) {
- var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;
- node.setLayout({
- x: nodeX
- }, true);
- node.hierNode.modifier += node.parentNode.hierNode.modifier;
- }
- function separation(cb) {
- return arguments.length ? cb : defaultSeparation;
- }
- function radialCoordinate(rad, r) {
- rad -= Math.PI / 2;
- return {
- x: r * Math.cos(rad),
- y: r * Math.sin(rad)
- };
- }
- function getViewRect2(seriesModel, api) {
- return getLayoutRect(seriesModel.getBoxLayoutParams(), {
- width: api.getWidth(),
- height: api.getHeight()
- });
- }
- function executeShifts(node) {
- var children = node.children;
- var n = children.length;
- var shift = 0;
- var change = 0;
- while (--n >= 0) {
- var child = children[n];
- child.hierNode.prelim += shift;
- child.hierNode.modifier += shift;
- change += child.hierNode.change;
- shift += child.hierNode.shift + change;
- }
- }
- function apportion(subtreeV, subtreeW, ancestor, separation2) {
- if (subtreeW) {
- var nodeOutRight = subtreeV;
- var nodeInRight = subtreeV;
- var nodeOutLeft = nodeInRight.parentNode.children[0];
- var nodeInLeft = subtreeW;
- var sumOutRight = nodeOutRight.hierNode.modifier;
- var sumInRight = nodeInRight.hierNode.modifier;
- var sumOutLeft = nodeOutLeft.hierNode.modifier;
- var sumInLeft = nodeInLeft.hierNode.modifier;
- while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {
- nodeOutRight = nextRight(nodeOutRight);
- nodeOutLeft = nextLeft(nodeOutLeft);
- nodeOutRight.hierNode.ancestor = subtreeV;
- var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation2(nodeInLeft, nodeInRight);
- if (shift > 0) {
- moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);
- sumInRight += shift;
- sumOutRight += shift;
- }
- sumInLeft += nodeInLeft.hierNode.modifier;
- sumInRight += nodeInRight.hierNode.modifier;
- sumOutRight += nodeOutRight.hierNode.modifier;
- sumOutLeft += nodeOutLeft.hierNode.modifier;
- }
- if (nodeInLeft && !nextRight(nodeOutRight)) {
- nodeOutRight.hierNode.thread = nodeInLeft;
- nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;
- }
- if (nodeInRight && !nextLeft(nodeOutLeft)) {
- nodeOutLeft.hierNode.thread = nodeInRight;
- nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;
- ancestor = subtreeV;
- }
- }
- return ancestor;
- }
- function nextRight(node) {
- var children = node.children;
- return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;
- }
- function nextLeft(node) {
- var children = node.children;
- return children.length && node.isExpand ? children[0] : node.hierNode.thread;
- }
- function nextAncestor(nodeInLeft, node, ancestor) {
- return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;
- }
- function moveSubtree(wl, wr, shift) {
- var change = shift / (wr.hierNode.i - wl.hierNode.i);
- wr.hierNode.change -= change;
- wr.hierNode.shift += shift;
- wr.hierNode.modifier += shift;
- wr.hierNode.prelim += shift;
- wl.hierNode.change += change;
- }
- function defaultSeparation(node1, node2) {
- return node1.parentNode === node2.parentNode ? 1 : 2;
- }
- // node_modules/echarts/lib/chart/tree/TreeView.js
- var TreeEdgeShape = (
- /** @class */
- function() {
- function TreeEdgeShape2() {
- this.parentPoint = [];
- this.childPoints = [];
- }
- return TreeEdgeShape2;
- }()
- );
- var TreePath = (
- /** @class */
- function(_super) {
- __extends(TreePath2, _super);
- function TreePath2(opts) {
- return _super.call(this, opts) || this;
- }
- TreePath2.prototype.getDefaultStyle = function() {
- return {
- stroke: "#000",
- fill: null
- };
- };
- TreePath2.prototype.getDefaultShape = function() {
- return new TreeEdgeShape();
- };
- TreePath2.prototype.buildPath = function(ctx, shape) {
- var childPoints = shape.childPoints;
- var childLen = childPoints.length;
- var parentPoint = shape.parentPoint;
- var firstChildPos = childPoints[0];
- var lastChildPos = childPoints[childLen - 1];
- if (childLen === 1) {
- ctx.moveTo(parentPoint[0], parentPoint[1]);
- ctx.lineTo(firstChildPos[0], firstChildPos[1]);
- return;
- }
- var orient = shape.orient;
- var forkDim = orient === "TB" || orient === "BT" ? 0 : 1;
- var otherDim = 1 - forkDim;
- var forkPosition = parsePercent2(shape.forkPosition, 1);
- var tmpPoint = [];
- tmpPoint[forkDim] = parentPoint[forkDim];
- tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;
- ctx.moveTo(parentPoint[0], parentPoint[1]);
- ctx.lineTo(tmpPoint[0], tmpPoint[1]);
- ctx.moveTo(firstChildPos[0], firstChildPos[1]);
- tmpPoint[forkDim] = firstChildPos[forkDim];
- ctx.lineTo(tmpPoint[0], tmpPoint[1]);
- tmpPoint[forkDim] = lastChildPos[forkDim];
- ctx.lineTo(tmpPoint[0], tmpPoint[1]);
- ctx.lineTo(lastChildPos[0], lastChildPos[1]);
- for (var i = 1; i < childLen - 1; i++) {
- var point = childPoints[i];
- ctx.moveTo(point[0], point[1]);
- tmpPoint[forkDim] = point[forkDim];
- ctx.lineTo(tmpPoint[0], tmpPoint[1]);
- }
- };
- return TreePath2;
- }(Path_default)
- );
- var TreeView = (
- /** @class */
- function(_super) {
- __extends(TreeView2, _super);
- function TreeView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = TreeView2.type;
- _this._mainGroup = new Group_default();
- return _this;
- }
- TreeView2.prototype.init = function(ecModel, api) {
- this._controller = new RoamController_default(api.getZr());
- this._controllerHost = {
- target: this.group
- };
- this.group.add(this._mainGroup);
- };
- TreeView2.prototype.render = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var layoutInfo = seriesModel.layoutInfo;
- var group = this._mainGroup;
- var layout2 = seriesModel.get("layout");
- if (layout2 === "radial") {
- group.x = layoutInfo.x + layoutInfo.width / 2;
- group.y = layoutInfo.y + layoutInfo.height / 2;
- } else {
- group.x = layoutInfo.x;
- group.y = layoutInfo.y;
- }
- this._updateViewCoordSys(seriesModel, api);
- this._updateController(seriesModel, ecModel, api);
- var oldData = this._data;
- data.diff(oldData).add(function(newIdx) {
- if (symbolNeedsDraw(data, newIdx)) {
- updateNode(data, newIdx, null, group, seriesModel);
- }
- }).update(function(newIdx, oldIdx) {
- var symbolEl = oldData.getItemGraphicEl(oldIdx);
- if (!symbolNeedsDraw(data, newIdx)) {
- symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);
- return;
- }
- updateNode(data, newIdx, symbolEl, group, seriesModel);
- }).remove(function(oldIdx) {
- var symbolEl = oldData.getItemGraphicEl(oldIdx);
- if (symbolEl) {
- removeNode(oldData, oldIdx, symbolEl, group, seriesModel);
- }
- }).execute();
- this._nodeScaleRatio = seriesModel.get("nodeScaleRatio");
- this._updateNodeAndLinkScale(seriesModel);
- if (seriesModel.get("expandAndCollapse") === true) {
- data.eachItemGraphicEl(function(el, dataIndex) {
- el.off("click").on("click", function() {
- api.dispatchAction({
- type: "treeExpandAndCollapse",
- seriesId: seriesModel.id,
- dataIndex
- });
- });
- });
- }
- this._data = data;
- };
- TreeView2.prototype._updateViewCoordSys = function(seriesModel, api) {
- var data = seriesModel.getData();
- var points = [];
- data.each(function(idx) {
- var layout2 = data.getItemLayout(idx);
- if (layout2 && !isNaN(layout2.x) && !isNaN(layout2.y)) {
- points.push([+layout2.x, +layout2.y]);
- }
- });
- var min = [];
- var max = [];
- fromPoints(points, min, max);
- var oldMin = this._min;
- var oldMax = this._max;
- if (max[0] - min[0] === 0) {
- min[0] = oldMin ? oldMin[0] : min[0] - 1;
- max[0] = oldMax ? oldMax[0] : max[0] + 1;
- }
- if (max[1] - min[1] === 0) {
- min[1] = oldMin ? oldMin[1] : min[1] - 1;
- max[1] = oldMax ? oldMax[1] : max[1] + 1;
- }
- var viewCoordSys = seriesModel.coordinateSystem = new View_default();
- viewCoordSys.zoomLimit = seriesModel.get("scaleLimit");
- viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);
- viewCoordSys.setCenter(seriesModel.get("center"), api);
- viewCoordSys.setZoom(seriesModel.get("zoom"));
- this.group.attr({
- x: viewCoordSys.x,
- y: viewCoordSys.y,
- scaleX: viewCoordSys.scaleX,
- scaleY: viewCoordSys.scaleY
- });
- this._min = min;
- this._max = max;
- };
- TreeView2.prototype._updateController = function(seriesModel, ecModel, api) {
- var _this = this;
- var controller = this._controller;
- var controllerHost = this._controllerHost;
- var group = this.group;
- controller.setPointerChecker(function(e, x, y) {
- var rect = group.getBoundingRect();
- rect.applyTransform(group.transform);
- return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);
- });
- controller.enable(seriesModel.get("roam"));
- controllerHost.zoomLimit = seriesModel.get("scaleLimit");
- controllerHost.zoom = seriesModel.coordinateSystem.getZoom();
- controller.off("pan").off("zoom").on("pan", function(e) {
- updateViewOnPan(controllerHost, e.dx, e.dy);
- api.dispatchAction({
- seriesId: seriesModel.id,
- type: "treeRoam",
- dx: e.dx,
- dy: e.dy
- });
- }).on("zoom", function(e) {
- updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);
- api.dispatchAction({
- seriesId: seriesModel.id,
- type: "treeRoam",
- zoom: e.scale,
- originX: e.originX,
- originY: e.originY
- });
- _this._updateNodeAndLinkScale(seriesModel);
- api.updateLabelLayout();
- });
- };
- TreeView2.prototype._updateNodeAndLinkScale = function(seriesModel) {
- var data = seriesModel.getData();
- var nodeScale = this._getNodeGlobalScale(seriesModel);
- data.eachItemGraphicEl(function(el, idx) {
- el.setSymbolScale(nodeScale);
- });
- };
- TreeView2.prototype._getNodeGlobalScale = function(seriesModel) {
- var coordSys = seriesModel.coordinateSystem;
- if (coordSys.type !== "view") {
- return 1;
- }
- var nodeScaleRatio = this._nodeScaleRatio;
- var groupZoom = coordSys.scaleX || 1;
- var roamZoom = coordSys.getZoom();
- var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;
- return nodeScale / groupZoom;
- };
- TreeView2.prototype.dispose = function() {
- this._controller && this._controller.dispose();
- this._controllerHost = null;
- };
- TreeView2.prototype.remove = function() {
- this._mainGroup.removeAll();
- this._data = null;
- };
- TreeView2.type = "tree";
- return TreeView2;
- }(Chart_default)
- );
- function symbolNeedsDraw(data, dataIndex) {
- var layout2 = data.getItemLayout(dataIndex);
- return layout2 && !isNaN(layout2.x) && !isNaN(layout2.y);
- }
- function updateNode(data, dataIndex, symbolEl, group, seriesModel) {
- var isInit = !symbolEl;
- var node = data.tree.getNodeByDataIndex(dataIndex);
- var itemModel = node.getModel();
- var visualColor = node.getVisual("style").fill;
- var symbolInnerColor = node.isExpand === false && node.children.length !== 0 ? visualColor : "#fff";
- var virtualRoot = data.tree.root;
- var source = node.parentNode === virtualRoot ? node : node.parentNode || node;
- var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);
- var sourceLayout = source.getLayout();
- var sourceOldLayout = sourceSymbolEl ? {
- x: sourceSymbolEl.__oldX,
- y: sourceSymbolEl.__oldY,
- rawX: sourceSymbolEl.__radialOldRawX,
- rawY: sourceSymbolEl.__radialOldRawY
- } : sourceLayout;
- var targetLayout = node.getLayout();
- if (isInit) {
- symbolEl = new Symbol_default(data, dataIndex, null, {
- symbolInnerColor,
- useNameLabel: true
- });
- symbolEl.x = sourceOldLayout.x;
- symbolEl.y = sourceOldLayout.y;
- } else {
- symbolEl.updateData(data, dataIndex, null, {
- symbolInnerColor,
- useNameLabel: true
- });
- }
- symbolEl.__radialOldRawX = symbolEl.__radialRawX;
- symbolEl.__radialOldRawY = symbolEl.__radialRawY;
- symbolEl.__radialRawX = targetLayout.rawX;
- symbolEl.__radialRawY = targetLayout.rawY;
- group.add(symbolEl);
- data.setItemGraphicEl(dataIndex, symbolEl);
- symbolEl.__oldX = symbolEl.x;
- symbolEl.__oldY = symbolEl.y;
- updateProps(symbolEl, {
- x: targetLayout.x,
- y: targetLayout.y
- }, seriesModel);
- var symbolPath = symbolEl.getSymbolPath();
- if (seriesModel.get("layout") === "radial") {
- var realRoot = virtualRoot.children[0];
- var rootLayout = realRoot.getLayout();
- var length_1 = realRoot.children.length;
- var rad = void 0;
- var isLeft = void 0;
- if (targetLayout.x === rootLayout.x && node.isExpand === true && realRoot.children.length) {
- var center2 = {
- x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,
- y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2
- };
- rad = Math.atan2(center2.y - rootLayout.y, center2.x - rootLayout.x);
- if (rad < 0) {
- rad = Math.PI * 2 + rad;
- }
- isLeft = center2.x < rootLayout.x;
- if (isLeft) {
- rad = rad - Math.PI;
- }
- } else {
- rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);
- if (rad < 0) {
- rad = Math.PI * 2 + rad;
- }
- if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) {
- isLeft = targetLayout.x < rootLayout.x;
- if (isLeft) {
- rad = rad - Math.PI;
- }
- } else {
- isLeft = targetLayout.x > rootLayout.x;
- if (!isLeft) {
- rad = rad - Math.PI;
- }
- }
- }
- var textPosition = isLeft ? "left" : "right";
- var normalLabelModel = itemModel.getModel("label");
- var rotate = normalLabelModel.get("rotate");
- var labelRotateRadian = rotate * (Math.PI / 180);
- var textContent = symbolPath.getTextContent();
- if (textContent) {
- symbolPath.setTextConfig({
- position: normalLabelModel.get("position") || textPosition,
- rotation: rotate == null ? -rad : labelRotateRadian,
- origin: "center"
- });
- textContent.setStyle("verticalAlign", "middle");
- }
- }
- var focus = itemModel.get(["emphasis", "focus"]);
- var focusDataIndices = focus === "relative" ? concatArray(node.getAncestorsIndices(), node.getDescendantIndices()) : focus === "ancestor" ? node.getAncestorsIndices() : focus === "descendant" ? node.getDescendantIndices() : null;
- if (focusDataIndices) {
- getECData(symbolEl).focus = focusDataIndices;
- }
- drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);
- if (symbolEl.__edge) {
- symbolEl.onHoverStateChange = function(toState) {
- if (toState !== "blur") {
- var parentEl = node.parentNode && data.getItemGraphicEl(node.parentNode.dataIndex);
- if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {
- setStatesFlag(symbolEl.__edge, toState);
- }
- }
- };
- }
- }
- function drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {
- var itemModel = node.getModel();
- var edgeShape = seriesModel.get("edgeShape");
- var layout2 = seriesModel.get("layout");
- var orient = seriesModel.getOrient();
- var curvature = seriesModel.get(["lineStyle", "curveness"]);
- var edgeForkPosition = seriesModel.get("edgeForkPosition");
- var lineStyle = itemModel.getModel("lineStyle").getLineStyle();
- var edge = symbolEl.__edge;
- if (edgeShape === "curve") {
- if (node.parentNode && node.parentNode !== virtualRoot) {
- if (!edge) {
- edge = symbolEl.__edge = new BezierCurve_default({
- shape: getEdgeShape(layout2, orient, curvature, sourceOldLayout, sourceOldLayout)
- });
- }
- updateProps(edge, {
- shape: getEdgeShape(layout2, orient, curvature, sourceLayout, targetLayout)
- }, seriesModel);
- }
- } else if (edgeShape === "polyline") {
- if (layout2 === "orthogonal") {
- if (node !== virtualRoot && node.children && node.children.length !== 0 && node.isExpand === true) {
- var children = node.children;
- var childPoints = [];
- for (var i = 0; i < children.length; i++) {
- var childLayout = children[i].getLayout();
- childPoints.push([childLayout.x, childLayout.y]);
- }
- if (!edge) {
- edge = symbolEl.__edge = new TreePath({
- shape: {
- parentPoint: [targetLayout.x, targetLayout.y],
- childPoints: [[targetLayout.x, targetLayout.y]],
- orient,
- forkPosition: edgeForkPosition
- }
- });
- }
- updateProps(edge, {
- shape: {
- parentPoint: [targetLayout.x, targetLayout.y],
- childPoints
- }
- }, seriesModel);
- }
- } else {
- if (true) {
- throw new Error("The polyline edgeShape can only be used in orthogonal layout");
- }
- }
- }
- if (edge && !(edgeShape === "polyline" && !node.isExpand)) {
- edge.useStyle(defaults({
- strokeNoScale: true,
- fill: null
- }, lineStyle));
- setStatesStylesFromModel(edge, itemModel, "lineStyle");
- setDefaultStateProxy(edge);
- group.add(edge);
- }
- }
- function removeNodeEdge(node, data, group, seriesModel, removeAnimationOpt) {
- var virtualRoot = data.tree.root;
- var _a = getSourceNode(virtualRoot, node), source = _a.source, sourceLayout = _a.sourceLayout;
- var symbolEl = data.getItemGraphicEl(node.dataIndex);
- if (!symbolEl) {
- return;
- }
- var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);
- var sourceEdge = sourceSymbolEl.__edge;
- var edge = symbolEl.__edge || (source.isExpand === false || source.children.length === 1 ? sourceEdge : void 0);
- var edgeShape = seriesModel.get("edgeShape");
- var layoutOpt = seriesModel.get("layout");
- var orient = seriesModel.get("orient");
- var curvature = seriesModel.get(["lineStyle", "curveness"]);
- if (edge) {
- if (edgeShape === "curve") {
- removeElement(edge, {
- shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),
- style: {
- opacity: 0
- }
- }, seriesModel, {
- cb: function() {
- group.remove(edge);
- },
- removeOpt: removeAnimationOpt
- });
- } else if (edgeShape === "polyline" && seriesModel.get("layout") === "orthogonal") {
- removeElement(edge, {
- shape: {
- parentPoint: [sourceLayout.x, sourceLayout.y],
- childPoints: [[sourceLayout.x, sourceLayout.y]]
- },
- style: {
- opacity: 0
- }
- }, seriesModel, {
- cb: function() {
- group.remove(edge);
- },
- removeOpt: removeAnimationOpt
- });
- }
- }
- }
- function getSourceNode(virtualRoot, node) {
- var source = node.parentNode === virtualRoot ? node : node.parentNode || node;
- var sourceLayout;
- while (sourceLayout = source.getLayout(), sourceLayout == null) {
- source = source.parentNode === virtualRoot ? source : source.parentNode || source;
- }
- return {
- source,
- sourceLayout
- };
- }
- function removeNode(data, dataIndex, symbolEl, group, seriesModel) {
- var node = data.tree.getNodeByDataIndex(dataIndex);
- var virtualRoot = data.tree.root;
- var sourceLayout = getSourceNode(virtualRoot, node).sourceLayout;
- var removeAnimationOpt = {
- duration: seriesModel.get("animationDurationUpdate"),
- easing: seriesModel.get("animationEasingUpdate")
- };
- removeElement(symbolEl, {
- x: sourceLayout.x + 1,
- y: sourceLayout.y + 1
- }, seriesModel, {
- cb: function() {
- group.remove(symbolEl);
- data.setItemGraphicEl(dataIndex, null);
- },
- removeOpt: removeAnimationOpt
- });
- symbolEl.fadeOut(null, data.hostModel, {
- fadeLabel: true,
- animation: removeAnimationOpt
- });
- node.children.forEach(function(childNode) {
- removeNodeEdge(childNode, data, group, seriesModel, removeAnimationOpt);
- });
- removeNodeEdge(node, data, group, seriesModel, removeAnimationOpt);
- }
- function getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {
- var cpx1;
- var cpy1;
- var cpx2;
- var cpy2;
- var x1;
- var x2;
- var y1;
- var y2;
- if (layoutOpt === "radial") {
- x1 = sourceLayout.rawX;
- y1 = sourceLayout.rawY;
- x2 = targetLayout.rawX;
- y2 = targetLayout.rawY;
- var radialCoor1 = radialCoordinate(x1, y1);
- var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);
- var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);
- var radialCoor4 = radialCoordinate(x2, y2);
- return {
- x1: radialCoor1.x || 0,
- y1: radialCoor1.y || 0,
- x2: radialCoor4.x || 0,
- y2: radialCoor4.y || 0,
- cpx1: radialCoor2.x || 0,
- cpy1: radialCoor2.y || 0,
- cpx2: radialCoor3.x || 0,
- cpy2: radialCoor3.y || 0
- };
- } else {
- x1 = sourceLayout.x;
- y1 = sourceLayout.y;
- x2 = targetLayout.x;
- y2 = targetLayout.y;
- if (orient === "LR" || orient === "RL") {
- cpx1 = x1 + (x2 - x1) * curvature;
- cpy1 = y1;
- cpx2 = x2 + (x1 - x2) * curvature;
- cpy2 = y2;
- }
- if (orient === "TB" || orient === "BT") {
- cpx1 = x1;
- cpy1 = y1 + (y2 - y1) * curvature;
- cpx2 = x2;
- cpy2 = y2 + (y1 - y2) * curvature;
- }
- }
- return {
- x1,
- y1,
- x2,
- y2,
- cpx1,
- cpy1,
- cpx2,
- cpy2
- };
- }
- var TreeView_default = TreeView;
- // node_modules/echarts/lib/data/helper/linkSeriesData.js
- var inner = makeInner();
- function linkSeriesData(opt) {
- var mainData = opt.mainData;
- var datas = opt.datas;
- if (!datas) {
- datas = {
- main: mainData
- };
- opt.datasAttr = {
- main: "data"
- };
- }
- opt.datas = opt.mainData = null;
- linkAll(mainData, datas, opt);
- each(datas, function(data) {
- each(mainData.TRANSFERABLE_METHODS, function(methodName) {
- data.wrapMethod(methodName, curry(transferInjection, opt));
- });
- });
- mainData.wrapMethod("cloneShallow", curry(cloneShallowInjection, opt));
- each(mainData.CHANGABLE_METHODS, function(methodName) {
- mainData.wrapMethod(methodName, curry(changeInjection, opt));
- });
- assert(datas[mainData.dataType] === mainData);
- }
- function transferInjection(opt, res) {
- if (isMainData(this)) {
- var datas = extend({}, inner(this).datas);
- datas[this.dataType] = res;
- linkAll(res, datas, opt);
- } else {
- linkSingle(res, this.dataType, inner(this).mainData, opt);
- }
- return res;
- }
- function changeInjection(opt, res) {
- opt.struct && opt.struct.update();
- return res;
- }
- function cloneShallowInjection(opt, res) {
- each(inner(res).datas, function(data, dataType) {
- data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);
- });
- return res;
- }
- function getLinkedData(dataType) {
- var mainData = inner(this).mainData;
- return dataType == null || mainData == null ? mainData : inner(mainData).datas[dataType];
- }
- function getLinkedDataAll() {
- var mainData = inner(this).mainData;
- return mainData == null ? [{
- data: mainData
- }] : map(keys(inner(mainData).datas), function(type) {
- return {
- type,
- data: inner(mainData).datas[type]
- };
- });
- }
- function isMainData(data) {
- return inner(data).mainData === data;
- }
- function linkAll(mainData, datas, opt) {
- inner(mainData).datas = {};
- each(datas, function(data, dataType) {
- linkSingle(data, dataType, mainData, opt);
- });
- }
- function linkSingle(data, dataType, mainData, opt) {
- inner(mainData).datas[dataType] = data;
- inner(data).mainData = mainData;
- data.dataType = dataType;
- if (opt.struct) {
- data[opt.structAttr] = opt.struct;
- opt.struct[opt.datasAttr[dataType]] = data;
- }
- data.getLinkedData = getLinkedData;
- data.getLinkedDataAll = getLinkedDataAll;
- }
- var linkSeriesData_default = linkSeriesData;
- // node_modules/echarts/lib/data/Tree.js
- var TreeNode = (
- /** @class */
- function() {
- function TreeNode2(name, hostTree) {
- this.depth = 0;
- this.height = 0;
- this.dataIndex = -1;
- this.children = [];
- this.viewChildren = [];
- this.isExpand = false;
- this.name = name || "";
- this.hostTree = hostTree;
- }
- TreeNode2.prototype.isRemoved = function() {
- return this.dataIndex < 0;
- };
- TreeNode2.prototype.eachNode = function(options, cb, context) {
- if (isFunction(options)) {
- context = cb;
- cb = options;
- options = null;
- }
- options = options || {};
- if (isString(options)) {
- options = {
- order: options
- };
- }
- var order = options.order || "preorder";
- var children = this[options.attr || "children"];
- var suppressVisitSub;
- order === "preorder" && (suppressVisitSub = cb.call(context, this));
- for (var i = 0; !suppressVisitSub && i < children.length; i++) {
- children[i].eachNode(options, cb, context);
- }
- order === "postorder" && cb.call(context, this);
- };
- TreeNode2.prototype.updateDepthAndHeight = function(depth) {
- var height = 0;
- this.depth = depth;
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i];
- child.updateDepthAndHeight(depth + 1);
- if (child.height > height) {
- height = child.height;
- }
- }
- this.height = height + 1;
- };
- TreeNode2.prototype.getNodeById = function(id) {
- if (this.getId() === id) {
- return this;
- }
- for (var i = 0, children = this.children, len2 = children.length; i < len2; i++) {
- var res = children[i].getNodeById(id);
- if (res) {
- return res;
- }
- }
- };
- TreeNode2.prototype.contains = function(node) {
- if (node === this) {
- return true;
- }
- for (var i = 0, children = this.children, len2 = children.length; i < len2; i++) {
- var res = children[i].contains(node);
- if (res) {
- return res;
- }
- }
- };
- TreeNode2.prototype.getAncestors = function(includeSelf) {
- var ancestors = [];
- var node = includeSelf ? this : this.parentNode;
- while (node) {
- ancestors.push(node);
- node = node.parentNode;
- }
- ancestors.reverse();
- return ancestors;
- };
- TreeNode2.prototype.getAncestorsIndices = function() {
- var indices = [];
- var currNode = this;
- while (currNode) {
- indices.push(currNode.dataIndex);
- currNode = currNode.parentNode;
- }
- indices.reverse();
- return indices;
- };
- TreeNode2.prototype.getDescendantIndices = function() {
- var indices = [];
- this.eachNode(function(childNode) {
- indices.push(childNode.dataIndex);
- });
- return indices;
- };
- TreeNode2.prototype.getValue = function(dimension) {
- var data = this.hostTree.data;
- return data.getStore().get(data.getDimensionIndex(dimension || "value"), this.dataIndex);
- };
- TreeNode2.prototype.setLayout = function(layout2, merge) {
- this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout2, merge);
- };
- TreeNode2.prototype.getLayout = function() {
- return this.hostTree.data.getItemLayout(this.dataIndex);
- };
- TreeNode2.prototype.getModel = function(path) {
- if (this.dataIndex < 0) {
- return;
- }
- var hostTree = this.hostTree;
- var itemModel = hostTree.data.getItemModel(this.dataIndex);
- return itemModel.getModel(path);
- };
- TreeNode2.prototype.getLevelModel = function() {
- return (this.hostTree.levelModels || [])[this.depth];
- };
- TreeNode2.prototype.setVisual = function(key, value) {
- this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);
- };
- TreeNode2.prototype.getVisual = function(key) {
- return this.hostTree.data.getItemVisual(this.dataIndex, key);
- };
- TreeNode2.prototype.getRawIndex = function() {
- return this.hostTree.data.getRawIndex(this.dataIndex);
- };
- TreeNode2.prototype.getId = function() {
- return this.hostTree.data.getId(this.dataIndex);
- };
- TreeNode2.prototype.getChildIndex = function() {
- if (this.parentNode) {
- var children = this.parentNode.children;
- for (var i = 0; i < children.length; ++i) {
- if (children[i] === this) {
- return i;
- }
- }
- return -1;
- }
- return -1;
- };
- TreeNode2.prototype.isAncestorOf = function(node) {
- var parent = node.parentNode;
- while (parent) {
- if (parent === this) {
- return true;
- }
- parent = parent.parentNode;
- }
- return false;
- };
- TreeNode2.prototype.isDescendantOf = function(node) {
- return node !== this && node.isAncestorOf(this);
- };
- return TreeNode2;
- }()
- );
- var Tree = (
- /** @class */
- function() {
- function Tree2(hostModel) {
- this.type = "tree";
- this._nodes = [];
- this.hostModel = hostModel;
- }
- Tree2.prototype.eachNode = function(options, cb, context) {
- this.root.eachNode(options, cb, context);
- };
- Tree2.prototype.getNodeByDataIndex = function(dataIndex) {
- var rawIndex = this.data.getRawIndex(dataIndex);
- return this._nodes[rawIndex];
- };
- Tree2.prototype.getNodeById = function(name) {
- return this.root.getNodeById(name);
- };
- Tree2.prototype.update = function() {
- var data = this.data;
- var nodes = this._nodes;
- for (var i = 0, len2 = nodes.length; i < len2; i++) {
- nodes[i].dataIndex = -1;
- }
- for (var i = 0, len2 = data.count(); i < len2; i++) {
- nodes[data.getRawIndex(i)].dataIndex = i;
- }
- };
- Tree2.prototype.clearLayouts = function() {
- this.data.clearItemLayouts();
- };
- Tree2.createTree = function(dataRoot, hostModel, beforeLink) {
- var tree = new Tree2(hostModel);
- var listData = [];
- var dimMax = 1;
- buildHierarchy(dataRoot);
- function buildHierarchy(dataNode, parentNode) {
- var value = dataNode.value;
- dimMax = Math.max(dimMax, isArray(value) ? value.length : 1);
- listData.push(dataNode);
- var node = new TreeNode(convertOptionIdName(dataNode.name, ""), tree);
- parentNode ? addChild(node, parentNode) : tree.root = node;
- tree._nodes.push(node);
- var children = dataNode.children;
- if (children) {
- for (var i = 0; i < children.length; i++) {
- buildHierarchy(children[i], node);
- }
- }
- }
- tree.root.updateDepthAndHeight(0);
- var dimensions = prepareSeriesDataSchema(listData, {
- coordDimensions: ["value"],
- dimensionsCount: dimMax
- }).dimensions;
- var list = new SeriesData_default(dimensions, hostModel);
- list.initData(listData);
- beforeLink && beforeLink(list);
- linkSeriesData_default({
- mainData: list,
- struct: tree,
- structAttr: "tree"
- });
- tree.update();
- return tree;
- };
- return Tree2;
- }()
- );
- function addChild(child, node) {
- var children = node.children;
- if (child.parentNode === node) {
- return;
- }
- children.push(child);
- child.parentNode = node;
- }
- var Tree_default = Tree;
- // node_modules/echarts/lib/chart/helper/treeHelper.js
- function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {
- if (payload && indexOf(validPayloadTypes, payload.type) >= 0) {
- var root = seriesModel.getData().tree.root;
- var targetNode = payload.targetNode;
- if (isString(targetNode)) {
- targetNode = root.getNodeById(targetNode);
- }
- if (targetNode && root.contains(targetNode)) {
- return {
- node: targetNode
- };
- }
- var targetNodeId = payload.targetNodeId;
- if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {
- return {
- node: targetNode
- };
- }
- }
- }
- function getPathToRoot(node) {
- var path = [];
- while (node) {
- node = node.parentNode;
- node && path.push(node);
- }
- return path.reverse();
- }
- function aboveViewRoot(viewRoot, node) {
- var viewPath = getPathToRoot(viewRoot);
- return indexOf(viewPath, node) >= 0;
- }
- function wrapTreePathInfo(node, seriesModel) {
- var treePathInfo = [];
- while (node) {
- var nodeDataIndex = node.dataIndex;
- treePathInfo.push({
- name: node.name,
- dataIndex: nodeDataIndex,
- value: seriesModel.getRawValue(nodeDataIndex)
- });
- node = node.parentNode;
- }
- treePathInfo.reverse();
- return treePathInfo;
- }
- // node_modules/echarts/lib/chart/tree/TreeSeries.js
- var TreeSeriesModel = (
- /** @class */
- function(_super) {
- __extends(TreeSeriesModel2, _super);
- function TreeSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.hasSymbolVisual = true;
- _this.ignoreStyleOnData = true;
- return _this;
- }
- TreeSeriesModel2.prototype.getInitialData = function(option) {
- var root = {
- name: option.name,
- children: option.data
- };
- var leaves = option.leaves || {};
- var leavesModel = new Model_default(leaves, this, this.ecModel);
- var tree = Tree_default.createTree(root, this, beforeLink);
- function beforeLink(nodeData) {
- nodeData.wrapMethod("getItemModel", function(model, idx) {
- var node = tree.getNodeByDataIndex(idx);
- if (!(node && node.children.length && node.isExpand)) {
- model.parentModel = leavesModel;
- }
- return model;
- });
- }
- var treeDepth = 0;
- tree.eachNode("preorder", function(node) {
- if (node.depth > treeDepth) {
- treeDepth = node.depth;
- }
- });
- var expandAndCollapse = option.expandAndCollapse;
- var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;
- tree.root.eachNode("preorder", function(node) {
- var item = node.hostTree.data.getRawDataItem(node.dataIndex);
- node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;
- });
- return tree.data;
- };
- TreeSeriesModel2.prototype.getOrient = function() {
- var orient = this.get("orient");
- if (orient === "horizontal") {
- orient = "LR";
- } else if (orient === "vertical") {
- orient = "TB";
- }
- return orient;
- };
- TreeSeriesModel2.prototype.setZoom = function(zoom) {
- this.option.zoom = zoom;
- };
- TreeSeriesModel2.prototype.setCenter = function(center2) {
- this.option.center = center2;
- };
- TreeSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) {
- var tree = this.getData().tree;
- var realRoot = tree.root.children[0];
- var node = tree.getNodeByDataIndex(dataIndex);
- var value = node.getValue();
- var name = node.name;
- while (node && node !== realRoot) {
- name = node.parentNode.name + "." + name;
- node = node.parentNode;
- }
- return createTooltipMarkup("nameValue", {
- name,
- value,
- noValue: isNaN(value) || value == null
- });
- };
- TreeSeriesModel2.prototype.getDataParams = function(dataIndex) {
- var params = _super.prototype.getDataParams.apply(this, arguments);
- var node = this.getData().tree.getNodeByDataIndex(dataIndex);
- params.treeAncestors = wrapTreePathInfo(node, this);
- params.collapsed = !node.isExpand;
- return params;
- };
- TreeSeriesModel2.type = "series.tree";
- TreeSeriesModel2.layoutMode = "box";
- TreeSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- coordinateSystem: "view",
- // the position of the whole view
- left: "12%",
- top: "12%",
- right: "12%",
- bottom: "12%",
- // the layout of the tree, two value can be selected, 'orthogonal' or 'radial'
- layout: "orthogonal",
- // value can be 'polyline'
- edgeShape: "curve",
- edgeForkPosition: "50%",
- // true | false | 'move' | 'scale', see module:component/helper/RoamController.
- roam: false,
- // Symbol size scale ratio in roam
- nodeScaleRatio: 0.4,
- // Default on center of graph
- center: null,
- zoom: 1,
- orient: "LR",
- symbol: "emptyCircle",
- symbolSize: 7,
- expandAndCollapse: true,
- initialTreeDepth: 2,
- lineStyle: {
- color: "#ccc",
- width: 1.5,
- curveness: 0.5
- },
- itemStyle: {
- color: "lightsteelblue",
- // borderColor: '#c23531',
- borderWidth: 1.5
- },
- label: {
- show: true
- },
- animationEasing: "linear",
- animationDuration: 700,
- animationDurationUpdate: 500
- };
- return TreeSeriesModel2;
- }(Series_default)
- );
- var TreeSeries_default = TreeSeriesModel;
- // node_modules/echarts/lib/chart/tree/traversalHelper.js
- function eachAfter(root, callback, separation2) {
- var nodes = [root];
- var next = [];
- var node;
- while (node = nodes.pop()) {
- next.push(node);
- if (node.isExpand) {
- var children = node.children;
- if (children.length) {
- for (var i = 0; i < children.length; i++) {
- nodes.push(children[i]);
- }
- }
- }
- }
- while (node = next.pop()) {
- callback(node, separation2);
- }
- }
- function eachBefore(root, callback) {
- var nodes = [root];
- var node;
- while (node = nodes.pop()) {
- callback(node);
- if (node.isExpand) {
- var children = node.children;
- if (children.length) {
- for (var i = children.length - 1; i >= 0; i--) {
- nodes.push(children[i]);
- }
- }
- }
- }
- }
- // node_modules/echarts/lib/chart/tree/treeLayout.js
- function treeLayout(ecModel, api) {
- ecModel.eachSeriesByType("tree", function(seriesModel) {
- commonLayout(seriesModel, api);
- });
- }
- function commonLayout(seriesModel, api) {
- var layoutInfo = getViewRect2(seriesModel, api);
- seriesModel.layoutInfo = layoutInfo;
- var layout2 = seriesModel.get("layout");
- var width = 0;
- var height = 0;
- var separation2 = null;
- if (layout2 === "radial") {
- width = 2 * Math.PI;
- height = Math.min(layoutInfo.height, layoutInfo.width) / 2;
- separation2 = separation(function(node1, node2) {
- return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;
- });
- } else {
- width = layoutInfo.width;
- height = layoutInfo.height;
- separation2 = separation();
- }
- var virtualRoot = seriesModel.getData().tree.root;
- var realRoot = virtualRoot.children[0];
- if (realRoot) {
- init(virtualRoot);
- eachAfter(realRoot, firstWalk, separation2);
- virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;
- eachBefore(realRoot, secondWalk);
- var left_1 = realRoot;
- var right_1 = realRoot;
- var bottom_1 = realRoot;
- eachBefore(realRoot, function(node) {
- var x = node.getLayout().x;
- if (x < left_1.getLayout().x) {
- left_1 = node;
- }
- if (x > right_1.getLayout().x) {
- right_1 = node;
- }
- if (node.depth > bottom_1.depth) {
- bottom_1 = node;
- }
- });
- var delta = left_1 === right_1 ? 1 : separation2(left_1, right_1) / 2;
- var tx_1 = delta - left_1.getLayout().x;
- var kx_1 = 0;
- var ky_1 = 0;
- var coorX_1 = 0;
- var coorY_1 = 0;
- if (layout2 === "radial") {
- kx_1 = width / (right_1.getLayout().x + delta + tx_1);
- ky_1 = height / (bottom_1.depth - 1 || 1);
- eachBefore(realRoot, function(node) {
- coorX_1 = (node.getLayout().x + tx_1) * kx_1;
- coorY_1 = (node.depth - 1) * ky_1;
- var finalCoor = radialCoordinate(coorX_1, coorY_1);
- node.setLayout({
- x: finalCoor.x,
- y: finalCoor.y,
- rawX: coorX_1,
- rawY: coorY_1
- }, true);
- });
- } else {
- var orient_1 = seriesModel.getOrient();
- if (orient_1 === "RL" || orient_1 === "LR") {
- ky_1 = height / (right_1.getLayout().x + delta + tx_1);
- kx_1 = width / (bottom_1.depth - 1 || 1);
- eachBefore(realRoot, function(node) {
- coorY_1 = (node.getLayout().x + tx_1) * ky_1;
- coorX_1 = orient_1 === "LR" ? (node.depth - 1) * kx_1 : width - (node.depth - 1) * kx_1;
- node.setLayout({
- x: coorX_1,
- y: coorY_1
- }, true);
- });
- } else if (orient_1 === "TB" || orient_1 === "BT") {
- kx_1 = width / (right_1.getLayout().x + delta + tx_1);
- ky_1 = height / (bottom_1.depth - 1 || 1);
- eachBefore(realRoot, function(node) {
- coorX_1 = (node.getLayout().x + tx_1) * kx_1;
- coorY_1 = orient_1 === "TB" ? (node.depth - 1) * ky_1 : height - (node.depth - 1) * ky_1;
- node.setLayout({
- x: coorX_1,
- y: coorY_1
- }, true);
- });
- }
- }
- }
- }
- // node_modules/echarts/lib/chart/tree/treeVisual.js
- function treeVisual(ecModel) {
- ecModel.eachSeriesByType("tree", function(seriesModel) {
- var data = seriesModel.getData();
- var tree = data.tree;
- tree.eachNode(function(node) {
- var model = node.getModel();
- var style = model.getModel("itemStyle").getItemStyle();
- var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, "style");
- extend(existsStyle, style);
- });
- });
- }
- // node_modules/echarts/lib/chart/tree/treeAction.js
- function installTreeAction(registers) {
- registers.registerAction({
- type: "treeExpandAndCollapse",
- event: "treeExpandAndCollapse",
- update: "update"
- }, function(payload, ecModel) {
- ecModel.eachComponent({
- mainType: "series",
- subType: "tree",
- query: payload
- }, function(seriesModel) {
- var dataIndex = payload.dataIndex;
- var tree = seriesModel.getData().tree;
- var node = tree.getNodeByDataIndex(dataIndex);
- node.isExpand = !node.isExpand;
- });
- });
- registers.registerAction({
- type: "treeRoam",
- event: "treeRoam",
- // Here we set 'none' instead of 'update', because roam action
- // just need to update the transform matrix without having to recalculate
- // the layout. So don't need to go through the whole update process, such
- // as 'dataPrcocess', 'coordSystemUpdate', 'layout' and so on.
- update: "none"
- }, function(payload, ecModel, api) {
- ecModel.eachComponent({
- mainType: "series",
- subType: "tree",
- query: payload
- }, function(seriesModel) {
- var coordSys = seriesModel.coordinateSystem;
- var res = updateCenterAndZoom(coordSys, payload, void 0, api);
- seriesModel.setCenter && seriesModel.setCenter(res.center);
- seriesModel.setZoom && seriesModel.setZoom(res.zoom);
- });
- });
- }
- // node_modules/echarts/lib/chart/tree/install.js
- function install11(registers) {
- registers.registerChartView(TreeView_default);
- registers.registerSeriesModel(TreeSeries_default);
- registers.registerLayout(treeLayout);
- registers.registerVisual(treeVisual);
- installTreeAction(registers);
- }
- // node_modules/echarts/lib/chart/treemap/treemapAction.js
- var actionTypes = ["treemapZoomToNode", "treemapRender", "treemapMove"];
- function installTreemapAction(registers) {
- for (var i = 0; i < actionTypes.length; i++) {
- registers.registerAction({
- type: actionTypes[i],
- update: "updateView"
- }, noop);
- }
- registers.registerAction({
- type: "treemapRootToNode",
- update: "updateView"
- }, function(payload, ecModel) {
- ecModel.eachComponent({
- mainType: "series",
- subType: "treemap",
- query: payload
- }, handleRootToNode);
- function handleRootToNode(model, index) {
- var types = ["treemapZoomToNode", "treemapRootToNode"];
- var targetInfo = retrieveTargetInfo(payload, types, model);
- if (targetInfo) {
- var originViewRoot = model.getViewRoot();
- if (originViewRoot) {
- payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? "rollUp" : "drillDown";
- }
- model.resetViewRoot(targetInfo.node);
- }
- }
- });
- }
- // node_modules/echarts/lib/chart/helper/enableAriaDecalForTree.js
- function enableAriaDecalForTree(seriesModel) {
- var data = seriesModel.getData();
- var tree = data.tree;
- var decalPaletteScope = {};
- tree.eachNode(function(node) {
- var current = node;
- while (current && current.depth > 1) {
- current = current.parentNode;
- }
- var decal = getDecalFromPalette(seriesModel.ecModel, current.name || current.dataIndex + "", decalPaletteScope);
- node.setVisual("decal", decal);
- });
- }
- // node_modules/echarts/lib/chart/treemap/TreemapSeries.js
- var TreemapSeriesModel = (
- /** @class */
- function(_super) {
- __extends(TreemapSeriesModel2, _super);
- function TreemapSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = TreemapSeriesModel2.type;
- _this.preventUsingHoverLayer = true;
- return _this;
- }
- TreemapSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- var root = {
- name: option.name,
- children: option.data
- };
- completeTreeValue(root);
- var levels = option.levels || [];
- var designatedVisualItemStyle = this.designatedVisualItemStyle = {};
- var designatedVisualModel = new Model_default({
- itemStyle: designatedVisualItemStyle
- }, this, ecModel);
- levels = option.levels = setDefault(levels, ecModel);
- var levelModels = map(levels || [], function(levelDefine) {
- return new Model_default(levelDefine, designatedVisualModel, ecModel);
- }, this);
- var tree = Tree_default.createTree(root, this, beforeLink);
- function beforeLink(nodeData) {
- nodeData.wrapMethod("getItemModel", function(model, idx) {
- var node = tree.getNodeByDataIndex(idx);
- var levelModel = node ? levelModels[node.depth] : null;
- model.parentModel = levelModel || designatedVisualModel;
- return model;
- });
- }
- return tree.data;
- };
- TreemapSeriesModel2.prototype.optionUpdated = function() {
- this.resetViewRoot();
- };
- TreemapSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) {
- var data = this.getData();
- var value = this.getRawValue(dataIndex);
- var name = data.getName(dataIndex);
- return createTooltipMarkup("nameValue", {
- name,
- value
- });
- };
- TreemapSeriesModel2.prototype.getDataParams = function(dataIndex) {
- var params = _super.prototype.getDataParams.apply(this, arguments);
- var node = this.getData().tree.getNodeByDataIndex(dataIndex);
- params.treeAncestors = wrapTreePathInfo(node, this);
- params.treePathInfo = params.treeAncestors;
- return params;
- };
- TreemapSeriesModel2.prototype.setLayoutInfo = function(layoutInfo) {
- this.layoutInfo = this.layoutInfo || {};
- extend(this.layoutInfo, layoutInfo);
- };
- TreemapSeriesModel2.prototype.mapIdToIndex = function(id) {
- var idIndexMap = this._idIndexMap;
- if (!idIndexMap) {
- idIndexMap = this._idIndexMap = createHashMap();
- this._idIndexMapCount = 0;
- }
- var index = idIndexMap.get(id);
- if (index == null) {
- idIndexMap.set(id, index = this._idIndexMapCount++);
- }
- return index;
- };
- TreemapSeriesModel2.prototype.getViewRoot = function() {
- return this._viewRoot;
- };
- TreemapSeriesModel2.prototype.resetViewRoot = function(viewRoot) {
- viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;
- var root = this.getRawData().tree.root;
- if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {
- this._viewRoot = root;
- }
- };
- TreemapSeriesModel2.prototype.enableAriaDecal = function() {
- enableAriaDecalForTree(this);
- };
- TreemapSeriesModel2.type = "series.treemap";
- TreemapSeriesModel2.layoutMode = "box";
- TreemapSeriesModel2.defaultOption = {
- // Disable progressive rendering
- progressive: 0,
- // size: ['80%', '80%'], // deprecated, compatible with ec2.
- left: "center",
- top: "middle",
- width: "80%",
- height: "80%",
- sort: true,
- clipWindow: "origin",
- squareRatio: 0.5 * (1 + Math.sqrt(5)),
- leafDepth: null,
- drillDownIcon: "▶",
- // to align specialized icon. ▷▶❒❐▼✚
- zoomToNodeRatio: 0.32 * 0.32,
- roam: true,
- nodeClick: "zoomToNode",
- animation: true,
- animationDurationUpdate: 900,
- animationEasing: "quinticInOut",
- breadcrumb: {
- show: true,
- height: 22,
- left: "center",
- top: "bottom",
- // right
- // bottom
- emptyItemWidth: 25,
- itemStyle: {
- color: "rgba(0,0,0,0.7)",
- textStyle: {
- color: "#fff"
- }
- },
- emphasis: {
- itemStyle: {
- color: "rgba(0,0,0,0.9)"
- // '#5793f3',
- }
- }
- },
- label: {
- show: true,
- // Do not use textDistance, for ellipsis rect just the same as treemap node rect.
- distance: 0,
- padding: 5,
- position: "inside",
- // formatter: null,
- color: "#fff",
- overflow: "truncate"
- // align
- // verticalAlign
- },
- upperLabel: {
- show: false,
- position: [0, "50%"],
- height: 20,
- // formatter: null,
- // color: '#fff',
- overflow: "truncate",
- // align: null,
- verticalAlign: "middle"
- },
- itemStyle: {
- color: null,
- colorAlpha: null,
- colorSaturation: null,
- borderWidth: 0,
- gapWidth: 0,
- borderColor: "#fff",
- borderColorSaturation: null
- // If specified, borderColor will be ineffective, and the
- // border color is evaluated by color of current node and
- // borderColorSaturation.
- },
- emphasis: {
- upperLabel: {
- show: true,
- position: [0, "50%"],
- overflow: "truncate",
- verticalAlign: "middle"
- }
- },
- visualDimension: 0,
- visualMin: null,
- visualMax: null,
- color: [],
- // level[n].color (if necessary).
- // + Specify color list of each level. level[0].color would be global
- // color list if not specified. (see method `setDefault`).
- // + But set as a empty array to forbid fetch color from global palette
- // when using nodeModel.get('color'), otherwise nodes on deep level
- // will always has color palette set and are not able to inherit color
- // from parent node.
- // + TreemapSeries.color can not be set as 'none', otherwise effect
- // legend color fetching (see seriesColor.js).
- colorAlpha: null,
- colorSaturation: null,
- colorMappingBy: "index",
- visibleMin: 10,
- // be rendered. Only works when sort is 'asc' or 'desc'.
- childrenVisibleMin: null,
- // grandchildren will not show.
- // Why grandchildren? If not grandchildren but children,
- // some siblings show children and some not,
- // the appearance may be mess and not consistent,
- levels: []
- // Each item: {
- // visibleMin, itemStyle, visualDimension, label
- // }
- };
- return TreemapSeriesModel2;
- }(Series_default)
- );
- function completeTreeValue(dataNode) {
- var sum2 = 0;
- each(dataNode.children, function(child) {
- completeTreeValue(child);
- var childValue = child.value;
- isArray(childValue) && (childValue = childValue[0]);
- sum2 += childValue;
- });
- var thisValue = dataNode.value;
- if (isArray(thisValue)) {
- thisValue = thisValue[0];
- }
- if (thisValue == null || isNaN(thisValue)) {
- thisValue = sum2;
- }
- if (thisValue < 0) {
- thisValue = 0;
- }
- isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;
- }
- function setDefault(levels, ecModel) {
- var globalColorList = normalizeToArray(ecModel.get("color"));
- var globalDecalList = normalizeToArray(ecModel.get(["aria", "decal", "decals"]));
- if (!globalColorList) {
- return;
- }
- levels = levels || [];
- var hasColorDefine;
- var hasDecalDefine;
- each(levels, function(levelDefine) {
- var model = new Model_default(levelDefine);
- var modelColor = model.get("color");
- var modelDecal = model.get("decal");
- if (model.get(["itemStyle", "color"]) || modelColor && modelColor !== "none") {
- hasColorDefine = true;
- }
- if (model.get(["itemStyle", "decal"]) || modelDecal && modelDecal !== "none") {
- hasDecalDefine = true;
- }
- });
- var level0 = levels[0] || (levels[0] = {});
- if (!hasColorDefine) {
- level0.color = globalColorList.slice();
- }
- if (!hasDecalDefine && globalDecalList) {
- level0.decal = globalDecalList.slice();
- }
- return levels;
- }
- var TreemapSeries_default = TreemapSeriesModel;
- // node_modules/echarts/lib/chart/treemap/Breadcrumb.js
- var TEXT_PADDING = 8;
- var ITEM_GAP = 8;
- var ARRAY_LENGTH = 5;
- var Breadcrumb = (
- /** @class */
- function() {
- function Breadcrumb2(containerGroup) {
- this.group = new Group_default();
- containerGroup.add(this.group);
- }
- Breadcrumb2.prototype.render = function(seriesModel, api, targetNode, onSelect) {
- var model = seriesModel.getModel("breadcrumb");
- var thisGroup = this.group;
- thisGroup.removeAll();
- if (!model.get("show") || !targetNode) {
- return;
- }
- var normalStyleModel = model.getModel("itemStyle");
- var emphasisModel = model.getModel("emphasis");
- var textStyleModel = normalStyleModel.getModel("textStyle");
- var emphasisTextStyleModel = emphasisModel.getModel(["itemStyle", "textStyle"]);
- var layoutParam = {
- pos: {
- left: model.get("left"),
- right: model.get("right"),
- top: model.get("top"),
- bottom: model.get("bottom")
- },
- box: {
- width: api.getWidth(),
- height: api.getHeight()
- },
- emptyItemWidth: model.get("emptyItemWidth"),
- totalWidth: 0,
- renderList: []
- };
- this._prepare(targetNode, layoutParam, textStyleModel);
- this._renderContent(seriesModel, layoutParam, normalStyleModel, emphasisModel, textStyleModel, emphasisTextStyleModel, onSelect);
- positionElement(thisGroup, layoutParam.pos, layoutParam.box);
- };
- Breadcrumb2.prototype._prepare = function(targetNode, layoutParam, textStyleModel) {
- for (var node = targetNode; node; node = node.parentNode) {
- var text = convertOptionIdName(node.getModel().get("name"), "");
- var textRect = textStyleModel.getTextRect(text);
- var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);
- layoutParam.totalWidth += itemWidth + ITEM_GAP;
- layoutParam.renderList.push({
- node,
- text,
- width: itemWidth
- });
- }
- };
- Breadcrumb2.prototype._renderContent = function(seriesModel, layoutParam, normalStyleModel, emphasisModel, textStyleModel, emphasisTextStyleModel, onSelect) {
- var lastX = 0;
- var emptyItemWidth = layoutParam.emptyItemWidth;
- var height = seriesModel.get(["breadcrumb", "height"]);
- var availableSize = getAvailableSize(layoutParam.pos, layoutParam.box);
- var totalWidth = layoutParam.totalWidth;
- var renderList = layoutParam.renderList;
- var emphasisItemStyle = emphasisModel.getModel("itemStyle").getItemStyle();
- for (var i = renderList.length - 1; i >= 0; i--) {
- var item = renderList[i];
- var itemNode = item.node;
- var itemWidth = item.width;
- var text = item.text;
- if (totalWidth > availableSize.width) {
- totalWidth -= itemWidth - emptyItemWidth;
- itemWidth = emptyItemWidth;
- text = null;
- }
- var el = new Polygon_default({
- shape: {
- points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)
- },
- style: defaults(normalStyleModel.getItemStyle(), {
- lineJoin: "bevel"
- }),
- textContent: new Text_default({
- style: createTextStyle(textStyleModel, {
- text
- })
- }),
- textConfig: {
- position: "inside"
- },
- z2: Z2_EMPHASIS_LIFT * 1e4,
- onclick: curry(onSelect, itemNode)
- });
- el.disableLabelAnimation = true;
- el.getTextContent().ensureState("emphasis").style = createTextStyle(emphasisTextStyleModel, {
- text
- });
- el.ensureState("emphasis").style = emphasisItemStyle;
- toggleHoverEmphasis(el, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- this.group.add(el);
- packEventData(el, seriesModel, itemNode);
- lastX += itemWidth + ITEM_GAP;
- }
- };
- Breadcrumb2.prototype.remove = function() {
- this.group.removeAll();
- };
- return Breadcrumb2;
- }()
- );
- function makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {
- var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];
- !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);
- !head && points.push([x, y + itemHeight / 2]);
- return points;
- }
- function packEventData(el, seriesModel, itemNode) {
- getECData(el).eventData = {
- componentType: "series",
- componentSubType: "treemap",
- componentIndex: seriesModel.componentIndex,
- seriesIndex: seriesModel.seriesIndex,
- seriesName: seriesModel.name,
- seriesType: "treemap",
- selfType: "breadcrumb",
- nodeData: {
- dataIndex: itemNode && itemNode.dataIndex,
- name: itemNode && itemNode.name
- },
- treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)
- };
- }
- var Breadcrumb_default = Breadcrumb;
- // node_modules/echarts/lib/util/animation.js
- var AnimationWrap = (
- /** @class */
- function() {
- function AnimationWrap2() {
- this._storage = [];
- this._elExistsMap = {};
- }
- AnimationWrap2.prototype.add = function(el, target, duration, delay, easing) {
- if (this._elExistsMap[el.id]) {
- return false;
- }
- this._elExistsMap[el.id] = true;
- this._storage.push({
- el,
- target,
- duration,
- delay,
- easing
- });
- return true;
- };
- AnimationWrap2.prototype.finished = function(callback) {
- this._finishedCallback = callback;
- return this;
- };
- AnimationWrap2.prototype.start = function() {
- var _this = this;
- var count = this._storage.length;
- var checkTerminate = function() {
- count--;
- if (count <= 0) {
- _this._storage.length = 0;
- _this._elExistsMap = {};
- _this._finishedCallback && _this._finishedCallback();
- }
- };
- for (var i = 0, len2 = this._storage.length; i < len2; i++) {
- var item = this._storage[i];
- item.el.animateTo(item.target, {
- duration: item.duration,
- delay: item.delay,
- easing: item.easing,
- setToFinal: true,
- done: checkTerminate,
- aborted: checkTerminate
- });
- }
- return this;
- };
- return AnimationWrap2;
- }()
- );
- function createWrap() {
- return new AnimationWrap();
- }
- // node_modules/echarts/lib/chart/treemap/TreemapView.js
- var Group = Group_default;
- var Rect = Rect_default;
- var DRAG_THRESHOLD = 3;
- var PATH_LABEL_NOAMAL = "label";
- var PATH_UPPERLABEL_NORMAL = "upperLabel";
- var Z2_BASE = Z2_EMPHASIS_LIFT * 10;
- var Z2_BG = Z2_EMPHASIS_LIFT * 2;
- var Z2_CONTENT = Z2_EMPHASIS_LIFT * 3;
- var getStateItemStyle = makeStyleMapper([
- ["fill", "color"],
- // `borderColor` and `borderWidth` has been occupied,
- // so use `stroke` to indicate the stroke of the rect.
- ["stroke", "strokeColor"],
- ["lineWidth", "strokeWidth"],
- ["shadowBlur"],
- ["shadowOffsetX"],
- ["shadowOffsetY"],
- ["shadowColor"]
- // Option decal is in `DecalObject` but style.decal is in `PatternObject`.
- // So do not transfer decal directly.
- ]);
- var getItemStyleNormal = function(model) {
- var itemStyle = getStateItemStyle(model);
- itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;
- return itemStyle;
- };
- var inner2 = makeInner();
- var TreemapView = (
- /** @class */
- function(_super) {
- __extends(TreemapView2, _super);
- function TreemapView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = TreemapView2.type;
- _this._state = "ready";
- _this._storage = createStorage();
- return _this;
- }
- TreemapView2.prototype.render = function(seriesModel, ecModel, api, payload) {
- var models = ecModel.findComponents({
- mainType: "series",
- subType: "treemap",
- query: payload
- });
- if (indexOf(models, seriesModel) < 0) {
- return;
- }
- this.seriesModel = seriesModel;
- this.api = api;
- this.ecModel = ecModel;
- var types = ["treemapZoomToNode", "treemapRootToNode"];
- var targetInfo = retrieveTargetInfo(payload, types, seriesModel);
- var payloadType = payload && payload.type;
- var layoutInfo = seriesModel.layoutInfo;
- var isInit = !this._oldTree;
- var thisStorage = this._storage;
- var reRoot = payloadType === "treemapRootToNode" && targetInfo && thisStorage ? {
- rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],
- direction: payload.direction
- } : null;
- var containerGroup = this._giveContainerGroup(layoutInfo);
- var hasAnimation = seriesModel.get("animation");
- var renderResult = this._doRender(containerGroup, seriesModel, reRoot);
- hasAnimation && !isInit && (!payloadType || payloadType === "treemapZoomToNode" || payloadType === "treemapRootToNode") ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally();
- this._resetController(api);
- this._renderBreadcrumb(seriesModel, api, targetInfo);
- };
- TreemapView2.prototype._giveContainerGroup = function(layoutInfo) {
- var containerGroup = this._containerGroup;
- if (!containerGroup) {
- containerGroup = this._containerGroup = new Group();
- this._initEvents(containerGroup);
- this.group.add(containerGroup);
- }
- containerGroup.x = layoutInfo.x;
- containerGroup.y = layoutInfo.y;
- return containerGroup;
- };
- TreemapView2.prototype._doRender = function(containerGroup, seriesModel, reRoot) {
- var thisTree = seriesModel.getData().tree;
- var oldTree = this._oldTree;
- var lastsForAnimation = createStorage();
- var thisStorage = createStorage();
- var oldStorage = this._storage;
- var willInvisibleEls = [];
- function doRenderNode(thisNode, oldNode, parentGroup, depth) {
- return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);
- }
- dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0);
- var willDeleteEls = clearStorage(oldStorage);
- this._oldTree = thisTree;
- this._storage = thisStorage;
- return {
- lastsForAnimation,
- willDeleteEls,
- renderFinally
- };
- function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {
- if (sameTree) {
- oldViewChildren = thisViewChildren;
- each(thisViewChildren, function(child, index) {
- !child.isRemoved() && processNode(index, index);
- });
- } else {
- new DataDiffer_default(oldViewChildren, thisViewChildren, getKey2, getKey2).add(processNode).update(processNode).remove(curry(processNode, null)).execute();
- }
- function getKey2(node) {
- return node.getId();
- }
- function processNode(newIndex, oldIndex) {
- var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;
- var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;
- var group = doRenderNode(thisNode, oldNode, parentGroup, depth);
- group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);
- }
- }
- function clearStorage(storage) {
- var willDeleteEls2 = createStorage();
- storage && each(storage, function(store, storageName) {
- var delEls = willDeleteEls2[storageName];
- each(store, function(el) {
- el && (delEls.push(el), inner2(el).willDelete = true);
- });
- });
- return willDeleteEls2;
- }
- function renderFinally() {
- each(willDeleteEls, function(els) {
- each(els, function(el) {
- el.parent && el.parent.remove(el);
- });
- });
- each(willInvisibleEls, function(el) {
- el.invisible = true;
- el.dirty();
- });
- }
- };
- TreemapView2.prototype._doAnimation = function(containerGroup, renderResult, seriesModel, reRoot) {
- var durationOption = seriesModel.get("animationDurationUpdate");
- var easingOption = seriesModel.get("animationEasing");
- var duration = (isFunction(durationOption) ? 0 : durationOption) || 0;
- var easing = (isFunction(easingOption) ? null : easingOption) || "cubicOut";
- var animationWrap = createWrap();
- each(renderResult.willDeleteEls, function(store, storageName) {
- each(store, function(el, rawIndex) {
- if (el.invisible) {
- return;
- }
- var parent = el.parent;
- var target;
- var innerStore = inner2(parent);
- if (reRoot && reRoot.direction === "drillDown") {
- target = parent === reRoot.rootNodeGroup ? {
- shape: {
- x: 0,
- y: 0,
- width: innerStore.nodeWidth,
- height: innerStore.nodeHeight
- },
- style: {
- opacity: 0
- }
- } : {
- style: {
- opacity: 0
- }
- };
- } else {
- var targetX = 0;
- var targetY = 0;
- if (!innerStore.willDelete) {
- targetX = innerStore.nodeWidth / 2;
- targetY = innerStore.nodeHeight / 2;
- }
- target = storageName === "nodeGroup" ? {
- x: targetX,
- y: targetY,
- style: {
- opacity: 0
- }
- } : {
- shape: {
- x: targetX,
- y: targetY,
- width: 0,
- height: 0
- },
- style: {
- opacity: 0
- }
- };
- }
- target && animationWrap.add(el, target, duration, 0, easing);
- });
- });
- each(this._storage, function(store, storageName) {
- each(store, function(el, rawIndex) {
- var last = renderResult.lastsForAnimation[storageName][rawIndex];
- var target = {};
- if (!last) {
- return;
- }
- if (el instanceof Group_default) {
- if (last.oldX != null) {
- target.x = el.x;
- target.y = el.y;
- el.x = last.oldX;
- el.y = last.oldY;
- }
- } else {
- if (last.oldShape) {
- target.shape = extend({}, el.shape);
- el.setShape(last.oldShape);
- }
- if (last.fadein) {
- el.setStyle("opacity", 0);
- target.style = {
- opacity: 1
- };
- } else if (el.style.opacity !== 1) {
- target.style = {
- opacity: 1
- };
- }
- }
- animationWrap.add(el, target, duration, 0, easing);
- });
- }, this);
- this._state = "animating";
- animationWrap.finished(bind(function() {
- this._state = "ready";
- renderResult.renderFinally();
- }, this)).start();
- };
- TreemapView2.prototype._resetController = function(api) {
- var controller = this._controller;
- if (!controller) {
- controller = this._controller = new RoamController_default(api.getZr());
- controller.enable(this.seriesModel.get("roam"));
- controller.on("pan", bind(this._onPan, this));
- controller.on("zoom", bind(this._onZoom, this));
- }
- var rect = new BoundingRect_default(0, 0, api.getWidth(), api.getHeight());
- controller.setPointerChecker(function(e, x, y) {
- return rect.contain(x, y);
- });
- };
- TreemapView2.prototype._clearController = function() {
- var controller = this._controller;
- if (controller) {
- controller.dispose();
- controller = null;
- }
- };
- TreemapView2.prototype._onPan = function(e) {
- if (this._state !== "animating" && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {
- var root = this.seriesModel.getData().tree.root;
- if (!root) {
- return;
- }
- var rootLayout = root.getLayout();
- if (!rootLayout) {
- return;
- }
- this.api.dispatchAction({
- type: "treemapMove",
- from: this.uid,
- seriesId: this.seriesModel.id,
- rootRect: {
- x: rootLayout.x + e.dx,
- y: rootLayout.y + e.dy,
- width: rootLayout.width,
- height: rootLayout.height
- }
- });
- }
- };
- TreemapView2.prototype._onZoom = function(e) {
- var mouseX = e.originX;
- var mouseY = e.originY;
- if (this._state !== "animating") {
- var root = this.seriesModel.getData().tree.root;
- if (!root) {
- return;
- }
- var rootLayout = root.getLayout();
- if (!rootLayout) {
- return;
- }
- var rect = new BoundingRect_default(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);
- var layoutInfo = this.seriesModel.layoutInfo;
- mouseX -= layoutInfo.x;
- mouseY -= layoutInfo.y;
- var m = create2();
- translate(m, m, [-mouseX, -mouseY]);
- scale2(m, m, [e.scale, e.scale]);
- translate(m, m, [mouseX, mouseY]);
- rect.applyTransform(m);
- this.api.dispatchAction({
- type: "treemapRender",
- from: this.uid,
- seriesId: this.seriesModel.id,
- rootRect: {
- x: rect.x,
- y: rect.y,
- width: rect.width,
- height: rect.height
- }
- });
- }
- };
- TreemapView2.prototype._initEvents = function(containerGroup) {
- var _this = this;
- containerGroup.on("click", function(e) {
- if (_this._state !== "ready") {
- return;
- }
- var nodeClick = _this.seriesModel.get("nodeClick", true);
- if (!nodeClick) {
- return;
- }
- var targetInfo = _this.findTarget(e.offsetX, e.offsetY);
- if (!targetInfo) {
- return;
- }
- var node = targetInfo.node;
- if (node.getLayout().isLeafRoot) {
- _this._rootToNode(targetInfo);
- } else {
- if (nodeClick === "zoomToNode") {
- _this._zoomToNode(targetInfo);
- } else if (nodeClick === "link") {
- var itemModel = node.hostTree.data.getItemModel(node.dataIndex);
- var link = itemModel.get("link", true);
- var linkTarget = itemModel.get("target", true) || "blank";
- link && windowOpen(link, linkTarget);
- }
- }
- }, this);
- };
- TreemapView2.prototype._renderBreadcrumb = function(seriesModel, api, targetInfo) {
- var _this = this;
- if (!targetInfo) {
- targetInfo = seriesModel.get("leafDepth", true) != null ? {
- node: seriesModel.getViewRoot()
- } : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);
- if (!targetInfo) {
- targetInfo = {
- node: seriesModel.getData().tree.root
- };
- }
- }
- (this._breadcrumb || (this._breadcrumb = new Breadcrumb_default(this.group))).render(seriesModel, api, targetInfo.node, function(node) {
- if (_this._state !== "animating") {
- aboveViewRoot(seriesModel.getViewRoot(), node) ? _this._rootToNode({
- node
- }) : _this._zoomToNode({
- node
- });
- }
- });
- };
- TreemapView2.prototype.remove = function() {
- this._clearController();
- this._containerGroup && this._containerGroup.removeAll();
- this._storage = createStorage();
- this._state = "ready";
- this._breadcrumb && this._breadcrumb.remove();
- };
- TreemapView2.prototype.dispose = function() {
- this._clearController();
- };
- TreemapView2.prototype._zoomToNode = function(targetInfo) {
- this.api.dispatchAction({
- type: "treemapZoomToNode",
- from: this.uid,
- seriesId: this.seriesModel.id,
- targetNode: targetInfo.node
- });
- };
- TreemapView2.prototype._rootToNode = function(targetInfo) {
- this.api.dispatchAction({
- type: "treemapRootToNode",
- from: this.uid,
- seriesId: this.seriesModel.id,
- targetNode: targetInfo.node
- });
- };
- TreemapView2.prototype.findTarget = function(x, y) {
- var targetInfo;
- var viewRoot = this.seriesModel.getViewRoot();
- viewRoot.eachNode({
- attr: "viewChildren",
- order: "preorder"
- }, function(node) {
- var bgEl = this._storage.background[node.getRawIndex()];
- if (bgEl) {
- var point = bgEl.transformCoordToLocal(x, y);
- var shape = bgEl.shape;
- if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) {
- targetInfo = {
- node,
- offsetX: point[0],
- offsetY: point[1]
- };
- } else {
- return false;
- }
- }
- }, this);
- return targetInfo;
- };
- TreemapView2.type = "treemap";
- return TreemapView2;
- }(Chart_default)
- );
- function createStorage() {
- return {
- nodeGroup: [],
- background: [],
- content: []
- };
- }
- function renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {
- if (!thisNode) {
- return;
- }
- var thisLayout = thisNode.getLayout();
- var data = seriesModel.getData();
- var nodeModel = thisNode.getModel();
- data.setItemGraphicEl(thisNode.dataIndex, null);
- if (!thisLayout || !thisLayout.isInView) {
- return;
- }
- var thisWidth = thisLayout.width;
- var thisHeight = thisLayout.height;
- var borderWidth = thisLayout.borderWidth;
- var thisInvisible = thisLayout.invisible;
- var thisRawIndex = thisNode.getRawIndex();
- var oldRawIndex = oldNode && oldNode.getRawIndex();
- var thisViewChildren = thisNode.viewChildren;
- var upperHeight = thisLayout.upperHeight;
- var isParent = thisViewChildren && thisViewChildren.length;
- var itemStyleNormalModel = nodeModel.getModel("itemStyle");
- var itemStyleEmphasisModel = nodeModel.getModel(["emphasis", "itemStyle"]);
- var itemStyleBlurModel = nodeModel.getModel(["blur", "itemStyle"]);
- var itemStyleSelectModel = nodeModel.getModel(["select", "itemStyle"]);
- var borderRadius = itemStyleNormalModel.get("borderRadius") || 0;
- var group = giveGraphic("nodeGroup", Group);
- if (!group) {
- return;
- }
- parentGroup.add(group);
- group.x = thisLayout.x || 0;
- group.y = thisLayout.y || 0;
- group.markRedraw();
- inner2(group).nodeWidth = thisWidth;
- inner2(group).nodeHeight = thisHeight;
- if (thisLayout.isAboveViewRoot) {
- return group;
- }
- var bg = giveGraphic("background", Rect, depth, Z2_BG);
- bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);
- var emphasisModel = nodeModel.getModel("emphasis");
- var focus = emphasisModel.get("focus");
- var blurScope = emphasisModel.get("blurScope");
- var isDisabled = emphasisModel.get("disabled");
- var focusOrIndices = focus === "ancestor" ? thisNode.getAncestorsIndices() : focus === "descendant" ? thisNode.getDescendantIndices() : focus;
- if (isParent) {
- if (isHighDownDispatcher(group)) {
- setAsHighDownDispatcher(group, false);
- }
- if (bg) {
- setAsHighDownDispatcher(bg, !isDisabled);
- data.setItemGraphicEl(thisNode.dataIndex, bg);
- enableHoverFocus(bg, focusOrIndices, blurScope);
- }
- } else {
- var content = giveGraphic("content", Rect, depth, Z2_CONTENT);
- content && renderContent(group, content);
- bg.disableMorphing = true;
- if (bg && isHighDownDispatcher(bg)) {
- setAsHighDownDispatcher(bg, false);
- }
- setAsHighDownDispatcher(group, !isDisabled);
- data.setItemGraphicEl(thisNode.dataIndex, group);
- enableHoverFocus(group, focusOrIndices, blurScope);
- }
- return group;
- function renderBackground(group2, bg2, useUpperLabel) {
- var ecData = getECData(bg2);
- ecData.dataIndex = thisNode.dataIndex;
- ecData.seriesIndex = seriesModel.seriesIndex;
- bg2.setShape({
- x: 0,
- y: 0,
- width: thisWidth,
- height: thisHeight,
- r: borderRadius
- });
- if (thisInvisible) {
- processInvisible(bg2);
- } else {
- bg2.invisible = false;
- var style = thisNode.getVisual("style");
- var visualBorderColor = style.stroke;
- var normalStyle = getItemStyleNormal(itemStyleNormalModel);
- normalStyle.fill = visualBorderColor;
- var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);
- emphasisStyle.fill = itemStyleEmphasisModel.get("borderColor");
- var blurStyle = getStateItemStyle(itemStyleBlurModel);
- blurStyle.fill = itemStyleBlurModel.get("borderColor");
- var selectStyle = getStateItemStyle(itemStyleSelectModel);
- selectStyle.fill = itemStyleSelectModel.get("borderColor");
- if (useUpperLabel) {
- var upperLabelWidth = thisWidth - 2 * borderWidth;
- prepareText(
- // PENDING: convert ZRColor to ColorString for text.
- bg2,
- visualBorderColor,
- style.opacity,
- {
- x: borderWidth,
- y: 0,
- width: upperLabelWidth,
- height: upperHeight
- }
- );
- } else {
- bg2.removeTextContent();
- }
- bg2.setStyle(normalStyle);
- bg2.ensureState("emphasis").style = emphasisStyle;
- bg2.ensureState("blur").style = blurStyle;
- bg2.ensureState("select").style = selectStyle;
- setDefaultStateProxy(bg2);
- }
- group2.add(bg2);
- }
- function renderContent(group2, content2) {
- var ecData = getECData(content2);
- ecData.dataIndex = thisNode.dataIndex;
- ecData.seriesIndex = seriesModel.seriesIndex;
- var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);
- var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);
- content2.culling = true;
- content2.setShape({
- x: borderWidth,
- y: borderWidth,
- width: contentWidth,
- height: contentHeight,
- r: borderRadius
- });
- if (thisInvisible) {
- processInvisible(content2);
- } else {
- content2.invisible = false;
- var nodeStyle = thisNode.getVisual("style");
- var visualColor = nodeStyle.fill;
- var normalStyle = getItemStyleNormal(itemStyleNormalModel);
- normalStyle.fill = visualColor;
- normalStyle.decal = nodeStyle.decal;
- var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);
- var blurStyle = getStateItemStyle(itemStyleBlurModel);
- var selectStyle = getStateItemStyle(itemStyleSelectModel);
- prepareText(content2, visualColor, nodeStyle.opacity, null);
- content2.setStyle(normalStyle);
- content2.ensureState("emphasis").style = emphasisStyle;
- content2.ensureState("blur").style = blurStyle;
- content2.ensureState("select").style = selectStyle;
- setDefaultStateProxy(content2);
- }
- group2.add(content2);
- }
- function processInvisible(element) {
- !element.invisible && willInvisibleEls.push(element);
- }
- function prepareText(rectEl, visualColor, visualOpacity, upperLabelRect) {
- var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);
- var defaultText = convertOptionIdName(nodeModel.get("name"), null);
- var isShow = normalLabelModel.getShallow("show");
- setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {
- defaultText: isShow ? defaultText : null,
- inheritColor: visualColor,
- defaultOpacity: visualOpacity,
- labelFetcher: seriesModel,
- labelDataIndex: thisNode.dataIndex
- });
- var textEl = rectEl.getTextContent();
- if (!textEl) {
- return;
- }
- var textStyle = textEl.style;
- var textPadding = normalizeCssArray(textStyle.padding || 0);
- if (upperLabelRect) {
- rectEl.setTextConfig({
- layoutRect: upperLabelRect
- });
- textEl.disableLabelLayout = true;
- }
- textEl.beforeUpdate = function() {
- var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);
- var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);
- if (textStyle.width !== width || textStyle.height !== height) {
- textEl.setStyle({
- width,
- height
- });
- }
- };
- textStyle.truncateMinChar = 2;
- textStyle.lineOverflow = "truncate";
- addDrillDownIcon(textStyle, upperLabelRect, thisLayout);
- var textEmphasisState = textEl.getState("emphasis");
- addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);
- }
- function addDrillDownIcon(style, upperLabelRect, thisLayout2) {
- var text = style ? style.text : null;
- if (!upperLabelRect && thisLayout2.isLeafRoot && text != null) {
- var iconChar = seriesModel.get("drillDownIcon", true);
- style.text = iconChar ? iconChar + " " + text : text;
- }
- }
- function giveGraphic(storageName, Ctor, depth2, z) {
- var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];
- var lasts = lastsForAnimation[storageName];
- if (element) {
- oldStorage[storageName][oldRawIndex] = null;
- prepareAnimationWhenHasOld(lasts, element);
- } else if (!thisInvisible) {
- element = new Ctor();
- if (element instanceof Displayable_default) {
- element.z2 = calculateZ2(depth2, z);
- }
- prepareAnimationWhenNoOld(lasts, element);
- }
- return thisStorage[storageName][thisRawIndex] = element;
- }
- function prepareAnimationWhenHasOld(lasts, element) {
- var lastCfg = lasts[thisRawIndex] = {};
- if (element instanceof Group) {
- lastCfg.oldX = element.x;
- lastCfg.oldY = element.y;
- } else {
- lastCfg.oldShape = extend({}, element.shape);
- }
- }
- function prepareAnimationWhenNoOld(lasts, element) {
- var lastCfg = lasts[thisRawIndex] = {};
- var parentNode = thisNode.parentNode;
- var isGroup = element instanceof Group_default;
- if (parentNode && (!reRoot || reRoot.direction === "drillDown")) {
- var parentOldX = 0;
- var parentOldY = 0;
- var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];
- if (!reRoot && parentOldBg && parentOldBg.oldShape) {
- parentOldX = parentOldBg.oldShape.width;
- parentOldY = parentOldBg.oldShape.height;
- }
- if (isGroup) {
- lastCfg.oldX = 0;
- lastCfg.oldY = parentOldY;
- } else {
- lastCfg.oldShape = {
- x: parentOldX,
- y: parentOldY,
- width: 0,
- height: 0
- };
- }
- }
- lastCfg.fadein = !isGroup;
- }
- }
- function calculateZ2(depth, z2InLevel) {
- return depth * Z2_BASE + z2InLevel;
- }
- var TreemapView_default = TreemapView;
- // node_modules/echarts/lib/chart/treemap/treemapVisual.js
- var ITEM_STYLE_NORMAL = "itemStyle";
- var inner3 = makeInner();
- var treemapVisual_default = {
- seriesType: "treemap",
- reset: function(seriesModel) {
- var tree = seriesModel.getData().tree;
- var root = tree.root;
- if (root.isRemoved()) {
- return;
- }
- travelTree(
- root,
- // Visual should calculate from tree root but not view root.
- {},
- seriesModel.getViewRoot().getAncestors(),
- seriesModel
- );
- }
- };
- function travelTree(node, designatedVisual, viewRootAncestors, seriesModel) {
- var nodeModel = node.getModel();
- var nodeLayout = node.getLayout();
- var data = node.hostTree.data;
- if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {
- return;
- }
- var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);
- var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel);
- var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, "style");
- var borderColor = nodeItemStyleModel.get("borderColor");
- var borderColorSaturation = nodeItemStyleModel.get("borderColorSaturation");
- var thisNodeColor;
- if (borderColorSaturation != null) {
- thisNodeColor = calculateColor(visuals);
- borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);
- }
- existsStyle.stroke = borderColor;
- var viewChildren = node.viewChildren;
- if (!viewChildren || !viewChildren.length) {
- thisNodeColor = calculateColor(visuals);
- existsStyle.fill = thisNodeColor;
- } else {
- var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren);
- each(viewChildren, function(child, index) {
- if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) {
- var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);
- travelTree(child, childVisual, viewRootAncestors, seriesModel);
- }
- });
- }
- }
- function buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) {
- var visuals = extend({}, designatedVisual);
- var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle;
- each(["color", "colorAlpha", "colorSaturation"], function(visualName) {
- designatedVisualItemStyle[visualName] = designatedVisual[visualName];
- var val = nodeItemStyleModel.get(visualName);
- designatedVisualItemStyle[visualName] = null;
- val != null && (visuals[visualName] = val);
- });
- return visuals;
- }
- function calculateColor(visuals) {
- var color = getValueVisualDefine(visuals, "color");
- if (color) {
- var colorAlpha = getValueVisualDefine(visuals, "colorAlpha");
- var colorSaturation = getValueVisualDefine(visuals, "colorSaturation");
- if (colorSaturation) {
- color = modifyHSL(color, null, null, colorSaturation);
- }
- if (colorAlpha) {
- color = modifyAlpha(color, colorAlpha);
- }
- return color;
- }
- }
- function calculateBorderColor(borderColorSaturation, thisNodeColor) {
- return thisNodeColor != null ? modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null;
- }
- function getValueVisualDefine(visuals, name) {
- var value = visuals[name];
- if (value != null && value !== "none") {
- return value;
- }
- }
- function buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {
- if (!viewChildren || !viewChildren.length) {
- return;
- }
- var rangeVisual = getRangeVisual(nodeModel, "color") || visuals.color != null && visuals.color !== "none" && (getRangeVisual(nodeModel, "colorAlpha") || getRangeVisual(nodeModel, "colorSaturation"));
- if (!rangeVisual) {
- return;
- }
- var visualMin = nodeModel.get("visualMin");
- var visualMax = nodeModel.get("visualMax");
- var dataExtent = nodeLayout.dataExtent.slice();
- visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);
- visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);
- var colorMappingBy = nodeModel.get("colorMappingBy");
- var opt = {
- type: rangeVisual.name,
- dataExtent,
- visual: rangeVisual.range
- };
- if (opt.type === "color" && (colorMappingBy === "index" || colorMappingBy === "id")) {
- opt.mappingMethod = "category";
- opt.loop = true;
- } else {
- opt.mappingMethod = "linear";
- }
- var mapping = new VisualMapping_default(opt);
- inner3(mapping).drColorMappingBy = colorMappingBy;
- return mapping;
- }
- function getRangeVisual(nodeModel, name) {
- var range = nodeModel.get(name);
- return isArray(range) && range.length ? {
- name,
- range
- } : null;
- }
- function mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {
- var childVisuals = extend({}, visuals);
- if (mapping) {
- var mappingType = mapping.type;
- var colorMappingBy = mappingType === "color" && inner3(mapping).drColorMappingBy;
- var value = colorMappingBy === "index" ? index : colorMappingBy === "id" ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get("visualDimension"));
- childVisuals[mappingType] = mapping.mapValueToVisual(value);
- }
- return childVisuals;
- }
- // node_modules/echarts/lib/chart/treemap/treemapLayout.js
- var mathMax3 = Math.max;
- var mathMin3 = Math.min;
- var retrieveValue = retrieve;
- var each2 = each;
- var PATH_BORDER_WIDTH = ["itemStyle", "borderWidth"];
- var PATH_GAP_WIDTH = ["itemStyle", "gapWidth"];
- var PATH_UPPER_LABEL_SHOW = ["upperLabel", "show"];
- var PATH_UPPER_LABEL_HEIGHT = ["upperLabel", "height"];
- var treemapLayout_default = {
- seriesType: "treemap",
- reset: function(seriesModel, ecModel, api, payload) {
- var ecWidth = api.getWidth();
- var ecHeight = api.getHeight();
- var seriesOption = seriesModel.option;
- var layoutInfo = getLayoutRect(seriesModel.getBoxLayoutParams(), {
- width: api.getWidth(),
- height: api.getHeight()
- });
- var size = seriesOption.size || [];
- var containerWidth = parsePercent2(retrieveValue(layoutInfo.width, size[0]), ecWidth);
- var containerHeight = parsePercent2(retrieveValue(layoutInfo.height, size[1]), ecHeight);
- var payloadType = payload && payload.type;
- var types = ["treemapZoomToNode", "treemapRootToNode"];
- var targetInfo = retrieveTargetInfo(payload, types, seriesModel);
- var rootRect = payloadType === "treemapRender" || payloadType === "treemapMove" ? payload.rootRect : null;
- var viewRoot = seriesModel.getViewRoot();
- var viewAbovePath = getPathToRoot(viewRoot);
- if (payloadType !== "treemapMove") {
- var rootSize = payloadType === "treemapZoomToNode" ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight];
- var sort_1 = seriesOption.sort;
- if (sort_1 && sort_1 !== "asc" && sort_1 !== "desc") {
- sort_1 = "desc";
- }
- var options = {
- squareRatio: seriesOption.squareRatio,
- sort: sort_1,
- leafDepth: seriesOption.leafDepth
- };
- viewRoot.hostTree.clearLayouts();
- var viewRootLayout_1 = {
- x: 0,
- y: 0,
- width: rootSize[0],
- height: rootSize[1],
- area: rootSize[0] * rootSize[1]
- };
- viewRoot.setLayout(viewRootLayout_1);
- squarify(viewRoot, options, false, 0);
- viewRootLayout_1 = viewRoot.getLayout();
- each2(viewAbovePath, function(node, index) {
- var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();
- node.setLayout(extend({
- dataExtent: [childValue, childValue],
- borderWidth: 0,
- upperHeight: 0
- }, viewRootLayout_1));
- });
- }
- var treeRoot = seriesModel.getData().tree.root;
- treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);
- seriesModel.setLayoutInfo(layoutInfo);
- prunning(
- treeRoot,
- // Transform to base element coordinate system.
- new BoundingRect_default(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight),
- viewAbovePath,
- viewRoot,
- 0
- );
- }
- };
- function squarify(node, options, hideChildren, depth) {
- var width;
- var height;
- if (node.isRemoved()) {
- return;
- }
- var thisLayout = node.getLayout();
- width = thisLayout.width;
- height = thisLayout.height;
- var nodeModel = node.getModel();
- var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);
- var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;
- var upperLabelHeight = getUpperLabelHeight(nodeModel);
- var upperHeight = Math.max(borderWidth, upperLabelHeight);
- var layoutOffset = borderWidth - halfGapWidth;
- var layoutOffsetUpper = upperHeight - halfGapWidth;
- node.setLayout({
- borderWidth,
- upperHeight,
- upperLabelHeight
- }, true);
- width = mathMax3(width - 2 * layoutOffset, 0);
- height = mathMax3(height - layoutOffset - layoutOffsetUpper, 0);
- var totalArea = width * height;
- var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);
- if (!viewChildren.length) {
- return;
- }
- var rect = {
- x: layoutOffset,
- y: layoutOffsetUpper,
- width,
- height
- };
- var rowFixedLength = mathMin3(width, height);
- var best = Infinity;
- var row = [];
- row.area = 0;
- for (var i = 0, len2 = viewChildren.length; i < len2; ) {
- var child = viewChildren[i];
- row.push(child);
- row.area += child.getLayout().area;
- var score = worst(row, rowFixedLength, options.squareRatio);
- if (score <= best) {
- i++;
- best = score;
- } else {
- row.area -= row.pop().getLayout().area;
- position(row, rowFixedLength, rect, halfGapWidth, false);
- rowFixedLength = mathMin3(rect.width, rect.height);
- row.length = row.area = 0;
- best = Infinity;
- }
- }
- if (row.length) {
- position(row, rowFixedLength, rect, halfGapWidth, true);
- }
- if (!hideChildren) {
- var childrenVisibleMin = nodeModel.get("childrenVisibleMin");
- if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {
- hideChildren = true;
- }
- }
- for (var i = 0, len2 = viewChildren.length; i < len2; i++) {
- squarify(viewChildren[i], options, hideChildren, depth + 1);
- }
- }
- function initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {
- var viewChildren = node.children || [];
- var orderBy = options.sort;
- orderBy !== "asc" && orderBy !== "desc" && (orderBy = null);
- var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth;
- if (hideChildren && !overLeafDepth) {
- return node.viewChildren = [];
- }
- viewChildren = filter(viewChildren, function(child) {
- return !child.isRemoved();
- });
- sort(viewChildren, orderBy);
- var info = statistic(nodeModel, viewChildren, orderBy);
- if (info.sum === 0) {
- return node.viewChildren = [];
- }
- info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);
- if (info.sum === 0) {
- return node.viewChildren = [];
- }
- for (var i = 0, len2 = viewChildren.length; i < len2; i++) {
- var area = viewChildren[i].getValue() / info.sum * totalArea;
- viewChildren[i].setLayout({
- area
- });
- }
- if (overLeafDepth) {
- viewChildren.length && node.setLayout({
- isLeafRoot: true
- }, true);
- viewChildren.length = 0;
- }
- node.viewChildren = viewChildren;
- node.setLayout({
- dataExtent: info.dataExtent
- }, true);
- return viewChildren;
- }
- function filterByThreshold(nodeModel, totalArea, sum2, orderBy, orderedChildren) {
- if (!orderBy) {
- return sum2;
- }
- var visibleMin = nodeModel.get("visibleMin");
- var len2 = orderedChildren.length;
- var deletePoint = len2;
- for (var i = len2 - 1; i >= 0; i--) {
- var value = orderedChildren[orderBy === "asc" ? len2 - i - 1 : i].getValue();
- if (value / sum2 * totalArea < visibleMin) {
- deletePoint = i;
- sum2 -= value;
- }
- }
- orderBy === "asc" ? orderedChildren.splice(0, len2 - deletePoint) : orderedChildren.splice(deletePoint, len2 - deletePoint);
- return sum2;
- }
- function sort(viewChildren, orderBy) {
- if (orderBy) {
- viewChildren.sort(function(a, b) {
- var diff = orderBy === "asc" ? a.getValue() - b.getValue() : b.getValue() - a.getValue();
- return diff === 0 ? orderBy === "asc" ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff;
- });
- }
- return viewChildren;
- }
- function statistic(nodeModel, children, orderBy) {
- var sum2 = 0;
- for (var i = 0, len2 = children.length; i < len2; i++) {
- sum2 += children[i].getValue();
- }
- var dimension = nodeModel.get("visualDimension");
- var dataExtent;
- if (!children || !children.length) {
- dataExtent = [NaN, NaN];
- } else if (dimension === "value" && orderBy) {
- dataExtent = [children[children.length - 1].getValue(), children[0].getValue()];
- orderBy === "asc" && dataExtent.reverse();
- } else {
- dataExtent = [Infinity, -Infinity];
- each2(children, function(child) {
- var value = child.getValue(dimension);
- value < dataExtent[0] && (dataExtent[0] = value);
- value > dataExtent[1] && (dataExtent[1] = value);
- });
- }
- return {
- sum: sum2,
- dataExtent
- };
- }
- function worst(row, rowFixedLength, ratio) {
- var areaMax = 0;
- var areaMin = Infinity;
- for (var i = 0, area = void 0, len2 = row.length; i < len2; i++) {
- area = row[i].getLayout().area;
- if (area) {
- area < areaMin && (areaMin = area);
- area > areaMax && (areaMax = area);
- }
- }
- var squareArea = row.area * row.area;
- var f = rowFixedLength * rowFixedLength * ratio;
- return squareArea ? mathMax3(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity;
- }
- function position(row, rowFixedLength, rect, halfGapWidth, flush) {
- var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;
- var idx1WhenH = 1 - idx0WhenH;
- var xy = ["x", "y"];
- var wh = ["width", "height"];
- var last = rect[xy[idx0WhenH]];
- var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0;
- if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {
- rowOtherLength = rect[wh[idx1WhenH]];
- }
- for (var i = 0, rowLen = row.length; i < rowLen; i++) {
- var node = row[i];
- var nodeLayout = {};
- var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0;
- var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax3(rowOtherLength - 2 * halfGapWidth, 0);
- var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;
- var modWH = i === rowLen - 1 || remain < step ? remain : step;
- var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax3(modWH - 2 * halfGapWidth, 0);
- nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin3(halfGapWidth, wh1 / 2);
- nodeLayout[xy[idx0WhenH]] = last + mathMin3(halfGapWidth, wh0 / 2);
- last += modWH;
- node.setLayout(nodeLayout, true);
- }
- rect[xy[idx1WhenH]] += rowOtherLength;
- rect[wh[idx1WhenH]] -= rowOtherLength;
- }
- function estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {
- var currNode = (targetInfo || {}).node;
- var defaultSize = [containerWidth, containerHeight];
- if (!currNode || currNode === viewRoot) {
- return defaultSize;
- }
- var parent;
- var viewArea = containerWidth * containerHeight;
- var area = viewArea * seriesModel.option.zoomToNodeRatio;
- while (parent = currNode.parentNode) {
- var sum2 = 0;
- var siblings = parent.children;
- for (var i = 0, len2 = siblings.length; i < len2; i++) {
- sum2 += siblings[i].getValue();
- }
- var currNodeValue = currNode.getValue();
- if (currNodeValue === 0) {
- return defaultSize;
- }
- area *= sum2 / currNodeValue;
- var parentModel = parent.getModel();
- var borderWidth = parentModel.get(PATH_BORDER_WIDTH);
- var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));
- area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);
- area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);
- currNode = parent;
- }
- area < viewArea && (area = viewArea);
- var scale3 = Math.pow(area / viewArea, 0.5);
- return [containerWidth * scale3, containerHeight * scale3];
- }
- function calculateRootPosition(layoutInfo, rootRect, targetInfo) {
- if (rootRect) {
- return {
- x: rootRect.x,
- y: rootRect.y
- };
- }
- var defaultPosition = {
- x: 0,
- y: 0
- };
- if (!targetInfo) {
- return defaultPosition;
- }
- var targetNode = targetInfo.node;
- var layout2 = targetNode.getLayout();
- if (!layout2) {
- return defaultPosition;
- }
- var targetCenter = [layout2.width / 2, layout2.height / 2];
- var node = targetNode;
- while (node) {
- var nodeLayout = node.getLayout();
- targetCenter[0] += nodeLayout.x;
- targetCenter[1] += nodeLayout.y;
- node = node.parentNode;
- }
- return {
- x: layoutInfo.width / 2 - targetCenter[0],
- y: layoutInfo.height / 2 - targetCenter[1]
- };
- }
- function prunning(node, clipRect, viewAbovePath, viewRoot, depth) {
- var nodeLayout = node.getLayout();
- var nodeInViewAbovePath = viewAbovePath[depth];
- var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;
- if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) {
- return;
- }
- node.setLayout({
- // isInView means: viewRoot sub tree + viewAbovePath
- isInView: true,
- // invisible only means: outside view clip so that the node can not
- // see but still layout for animation preparation but not render.
- invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),
- isAboveViewRoot
- }, true);
- var childClipRect = new BoundingRect_default(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);
- each2(node.viewChildren || [], function(child) {
- prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);
- });
- }
- function getUpperLabelHeight(model) {
- return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;
- }
- // node_modules/echarts/lib/chart/treemap/install.js
- function install12(registers) {
- registers.registerSeriesModel(TreemapSeries_default);
- registers.registerChartView(TreemapView_default);
- registers.registerVisual(treemapVisual_default);
- registers.registerLayout(treemapLayout_default);
- installTreemapAction(registers);
- }
- // node_modules/echarts/lib/chart/graph/categoryFilter.js
- function categoryFilter(ecModel) {
- var legendModels = ecModel.findComponents({
- mainType: "legend"
- });
- if (!legendModels || !legendModels.length) {
- return;
- }
- ecModel.eachSeriesByType("graph", function(graphSeries) {
- var categoriesData = graphSeries.getCategoriesData();
- var graph = graphSeries.getGraph();
- var data = graph.data;
- var categoryNames = categoriesData.mapArray(categoriesData.getName);
- data.filterSelf(function(idx) {
- var model = data.getItemModel(idx);
- var category = model.getShallow("category");
- if (category != null) {
- if (isNumber(category)) {
- category = categoryNames[category];
- }
- for (var i = 0; i < legendModels.length; i++) {
- if (!legendModels[i].isSelected(category)) {
- return false;
- }
- }
- }
- return true;
- });
- });
- }
- // node_modules/echarts/lib/chart/graph/categoryVisual.js
- function categoryVisual(ecModel) {
- var paletteScope = {};
- ecModel.eachSeriesByType("graph", function(seriesModel) {
- var categoriesData = seriesModel.getCategoriesData();
- var data = seriesModel.getData();
- var categoryNameIdxMap = {};
- categoriesData.each(function(idx) {
- var name = categoriesData.getName(idx);
- categoryNameIdxMap["ec-" + name] = idx;
- var itemModel = categoriesData.getItemModel(idx);
- var style = itemModel.getModel("itemStyle").getItemStyle();
- if (!style.fill) {
- style.fill = seriesModel.getColorFromPalette(name, paletteScope);
- }
- categoriesData.setItemVisual(idx, "style", style);
- var symbolVisualList = ["symbol", "symbolSize", "symbolKeepAspect"];
- for (var i = 0; i < symbolVisualList.length; i++) {
- var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);
- if (symbolVisual != null) {
- categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);
- }
- }
- });
- if (categoriesData.count()) {
- data.each(function(idx) {
- var model = data.getItemModel(idx);
- var categoryIdx = model.getShallow("category");
- if (categoryIdx != null) {
- if (isString(categoryIdx)) {
- categoryIdx = categoryNameIdxMap["ec-" + categoryIdx];
- }
- var categoryStyle = categoriesData.getItemVisual(categoryIdx, "style");
- var style = data.ensureUniqueItemVisual(idx, "style");
- extend(style, categoryStyle);
- var visualList = ["symbol", "symbolSize", "symbolKeepAspect"];
- for (var i = 0; i < visualList.length; i++) {
- data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));
- }
- }
- });
- }
- });
- }
- // node_modules/echarts/lib/chart/graph/edgeVisual.js
- function normalize2(a) {
- if (!(a instanceof Array)) {
- a = [a, a];
- }
- return a;
- }
- function graphEdgeVisual(ecModel) {
- ecModel.eachSeriesByType("graph", function(seriesModel) {
- var graph = seriesModel.getGraph();
- var edgeData = seriesModel.getEdgeData();
- var symbolType = normalize2(seriesModel.get("edgeSymbol"));
- var symbolSize = normalize2(seriesModel.get("edgeSymbolSize"));
- edgeData.setVisual("fromSymbol", symbolType && symbolType[0]);
- edgeData.setVisual("toSymbol", symbolType && symbolType[1]);
- edgeData.setVisual("fromSymbolSize", symbolSize && symbolSize[0]);
- edgeData.setVisual("toSymbolSize", symbolSize && symbolSize[1]);
- edgeData.setVisual("style", seriesModel.getModel("lineStyle").getLineStyle());
- edgeData.each(function(idx) {
- var itemModel = edgeData.getItemModel(idx);
- var edge = graph.getEdgeByIndex(idx);
- var symbolType2 = normalize2(itemModel.getShallow("symbol", true));
- var symbolSize2 = normalize2(itemModel.getShallow("symbolSize", true));
- var style = itemModel.getModel("lineStyle").getLineStyle();
- var existsStyle = edgeData.ensureUniqueItemVisual(idx, "style");
- extend(existsStyle, style);
- switch (existsStyle.stroke) {
- case "source": {
- var nodeStyle = edge.node1.getVisual("style");
- existsStyle.stroke = nodeStyle && nodeStyle.fill;
- break;
- }
- case "target": {
- var nodeStyle = edge.node2.getVisual("style");
- existsStyle.stroke = nodeStyle && nodeStyle.fill;
- break;
- }
- }
- symbolType2[0] && edge.setVisual("fromSymbol", symbolType2[0]);
- symbolType2[1] && edge.setVisual("toSymbol", symbolType2[1]);
- symbolSize2[0] && edge.setVisual("fromSymbolSize", symbolSize2[0]);
- symbolSize2[1] && edge.setVisual("toSymbolSize", symbolSize2[1]);
- });
- });
- }
- // node_modules/echarts/lib/chart/helper/multipleGraphEdgeHelper.js
- var KEY_DELIMITER = "-->";
- var getAutoCurvenessParams = function(seriesModel) {
- return seriesModel.get("autoCurveness") || null;
- };
- var createCurveness = function(seriesModel, appendLength) {
- var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);
- var length = 20;
- var curvenessList = [];
- if (isNumber(autoCurvenessParmas)) {
- length = autoCurvenessParmas;
- } else if (isArray(autoCurvenessParmas)) {
- seriesModel.__curvenessList = autoCurvenessParmas;
- return;
- }
- if (appendLength > length) {
- length = appendLength;
- }
- var len2 = length % 2 ? length + 2 : length + 3;
- curvenessList = [];
- for (var i = 0; i < len2; i++) {
- curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));
- }
- seriesModel.__curvenessList = curvenessList;
- };
- var getKeyOfEdges = function(n1, n2, seriesModel) {
- var source = [n1.id, n1.dataIndex].join(".");
- var target = [n2.id, n2.dataIndex].join(".");
- return [seriesModel.uid, source, target].join(KEY_DELIMITER);
- };
- var getOppositeKey = function(key) {
- var keys2 = key.split(KEY_DELIMITER);
- return [keys2[0], keys2[2], keys2[1]].join(KEY_DELIMITER);
- };
- var getEdgeFromMap = function(edge, seriesModel) {
- var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);
- return seriesModel.__edgeMap[key];
- };
- var getTotalLengthBetweenNodes = function(edge, seriesModel) {
- var len2 = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);
- var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);
- return len2 + lenV;
- };
- var getEdgeMapLengthWithKey = function(key, seriesModel) {
- var edgeMap = seriesModel.__edgeMap;
- return edgeMap[key] ? edgeMap[key].length : 0;
- };
- function initCurvenessList(seriesModel) {
- if (!getAutoCurvenessParams(seriesModel)) {
- return;
- }
- seriesModel.__curvenessList = [];
- seriesModel.__edgeMap = {};
- createCurveness(seriesModel);
- }
- function createEdgeMapForCurveness(n1, n2, seriesModel, index) {
- if (!getAutoCurvenessParams(seriesModel)) {
- return;
- }
- var key = getKeyOfEdges(n1, n2, seriesModel);
- var edgeMap = seriesModel.__edgeMap;
- var oppositeEdges = edgeMap[getOppositeKey(key)];
- if (edgeMap[key] && !oppositeEdges) {
- edgeMap[key].isForward = true;
- } else if (oppositeEdges && edgeMap[key]) {
- oppositeEdges.isForward = true;
- edgeMap[key].isForward = false;
- }
- edgeMap[key] = edgeMap[key] || [];
- edgeMap[key].push(index);
- }
- function getCurvenessForEdge(edge, seriesModel, index, needReverse) {
- var autoCurvenessParams = getAutoCurvenessParams(seriesModel);
- var isArrayParam = isArray(autoCurvenessParams);
- if (!autoCurvenessParams) {
- return null;
- }
- var edgeArray = getEdgeFromMap(edge, seriesModel);
- if (!edgeArray) {
- return null;
- }
- var edgeIndex = -1;
- for (var i = 0; i < edgeArray.length; i++) {
- if (edgeArray[i] === index) {
- edgeIndex = i;
- break;
- }
- }
- var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);
- createCurveness(seriesModel, totalLen);
- edge.lineStyle = edge.lineStyle || {};
- var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);
- var curvenessList = seriesModel.__curvenessList;
- var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;
- if (!edgeArray.isForward) {
- var oppositeKey = getOppositeKey(curKey);
- var len2 = getEdgeMapLengthWithKey(oppositeKey, seriesModel);
- var resValue = curvenessList[edgeIndex + len2 + parityCorrection];
- if (needReverse) {
- if (isArrayParam) {
- if (autoCurvenessParams && autoCurvenessParams[0] === 0) {
- return (len2 + parityCorrection) % 2 ? resValue : -resValue;
- } else {
- return ((len2 % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;
- }
- } else {
- return (len2 + parityCorrection) % 2 ? resValue : -resValue;
- }
- } else {
- return curvenessList[edgeIndex + len2 + parityCorrection];
- }
- } else {
- return curvenessList[parityCorrection + edgeIndex];
- }
- }
- // node_modules/echarts/lib/chart/graph/simpleLayoutHelper.js
- function simpleLayout(seriesModel) {
- var coordSys = seriesModel.coordinateSystem;
- if (coordSys && coordSys.type !== "view") {
- return;
- }
- var graph = seriesModel.getGraph();
- graph.eachNode(function(node) {
- var model = node.getModel();
- node.setLayout([+model.get("x"), +model.get("y")]);
- });
- simpleLayoutEdge(graph, seriesModel);
- }
- function simpleLayoutEdge(graph, seriesModel) {
- graph.eachEdge(function(edge, index) {
- var curveness = retrieve3(edge.getModel().get(["lineStyle", "curveness"]), -getCurvenessForEdge(edge, seriesModel, index, true), 0);
- var p1 = clone2(edge.node1.getLayout());
- var p2 = clone2(edge.node2.getLayout());
- var points = [p1, p2];
- if (+curveness) {
- points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);
- }
- edge.setLayout(points);
- });
- }
- // node_modules/echarts/lib/chart/graph/simpleLayout.js
- function graphSimpleLayout(ecModel, api) {
- ecModel.eachSeriesByType("graph", function(seriesModel) {
- var layout2 = seriesModel.get("layout");
- var coordSys = seriesModel.coordinateSystem;
- if (coordSys && coordSys.type !== "view") {
- var data_1 = seriesModel.getData();
- var dimensions_1 = [];
- each(coordSys.dimensions, function(coordDim) {
- dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));
- });
- for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {
- var value = [];
- var hasValue = false;
- for (var i = 0; i < dimensions_1.length; i++) {
- var val = data_1.get(dimensions_1[i], dataIndex);
- if (!isNaN(val)) {
- hasValue = true;
- }
- value.push(val);
- }
- if (hasValue) {
- data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));
- } else {
- data_1.setItemLayout(dataIndex, [NaN, NaN]);
- }
- }
- simpleLayoutEdge(data_1.graph, seriesModel);
- } else if (!layout2 || layout2 === "none") {
- simpleLayout(seriesModel);
- }
- });
- }
- // node_modules/echarts/lib/chart/graph/graphHelper.js
- function getNodeGlobalScale(seriesModel) {
- var coordSys = seriesModel.coordinateSystem;
- if (coordSys.type !== "view") {
- return 1;
- }
- var nodeScaleRatio = seriesModel.option.nodeScaleRatio;
- var groupZoom = coordSys.scaleX;
- var roamZoom = coordSys.getZoom();
- var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;
- return nodeScale / groupZoom;
- }
- function getSymbolSize(node) {
- var symbolSize = node.getVisual("symbolSize");
- if (symbolSize instanceof Array) {
- symbolSize = (symbolSize[0] + symbolSize[1]) / 2;
- }
- return +symbolSize;
- }
- // node_modules/echarts/lib/chart/graph/circularLayoutHelper.js
- var PI = Math.PI;
- var _symbolRadiansHalf = [];
- function circularLayout(seriesModel, basedOn, draggingNode, pointer) {
- var coordSys = seriesModel.coordinateSystem;
- if (coordSys && coordSys.type !== "view") {
- return;
- }
- var rect = coordSys.getBoundingRect();
- var nodeData = seriesModel.getData();
- var graph = nodeData.graph;
- var cx = rect.width / 2 + rect.x;
- var cy = rect.height / 2 + rect.y;
- var r = Math.min(rect.width, rect.height) / 2;
- var count = nodeData.count();
- nodeData.setLayout({
- cx,
- cy
- });
- if (!count) {
- return;
- }
- if (draggingNode) {
- var _a = coordSys.pointToData(pointer), tempX = _a[0], tempY = _a[1];
- var v = [tempX - cx, tempY - cy];
- normalize(v, v);
- scale(v, v, r);
- draggingNode.setLayout([cx + v[0], cy + v[1]], true);
- var circularRotateLabel = seriesModel.get(["circular", "rotateLabel"]);
- rotateNodeLabel(draggingNode, circularRotateLabel, cx, cy);
- }
- _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);
- graph.eachEdge(function(edge, index) {
- var curveness = retrieve3(edge.getModel().get(["lineStyle", "curveness"]), getCurvenessForEdge(edge, seriesModel, index), 0);
- var p1 = clone2(edge.node1.getLayout());
- var p2 = clone2(edge.node2.getLayout());
- var cp1;
- var x12 = (p1[0] + p2[0]) / 2;
- var y12 = (p1[1] + p2[1]) / 2;
- if (+curveness) {
- curveness *= 3;
- cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];
- }
- edge.setLayout([p1, p2, cp1]);
- });
- }
- var _layoutNodesBasedOn = {
- value: function(seriesModel, graph, nodeData, r, cx, cy, count) {
- var angle = 0;
- var sum2 = nodeData.getSum("value");
- var unitAngle = Math.PI * 2 / (sum2 || count);
- graph.eachNode(function(node) {
- var value = node.getValue("value");
- var radianHalf = unitAngle * (sum2 ? value : 1) / 2;
- angle += radianHalf;
- node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);
- angle += radianHalf;
- });
- },
- symbolSize: function(seriesModel, graph, nodeData, r, cx, cy, count) {
- var sumRadian = 0;
- _symbolRadiansHalf.length = count;
- var nodeScale = getNodeGlobalScale(seriesModel);
- graph.eachNode(function(node) {
- var symbolSize = getSymbolSize(node);
- isNaN(symbolSize) && (symbolSize = 2);
- symbolSize < 0 && (symbolSize = 0);
- symbolSize *= nodeScale;
- var symbolRadianHalf = Math.asin(symbolSize / 2 / r);
- isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2);
- _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;
- sumRadian += symbolRadianHalf * 2;
- });
- var halfRemainRadian = (2 * PI - sumRadian) / count / 2;
- var angle = 0;
- graph.eachNode(function(node) {
- var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];
- angle += radianHalf;
- (!node.getLayout() || !node.getLayout().fixed) && node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);
- angle += radianHalf;
- });
- }
- };
- function rotateNodeLabel(node, circularRotateLabel, cx, cy) {
- var el = node.getGraphicEl();
- if (!el) {
- return;
- }
- var nodeModel = node.getModel();
- var labelRotate = nodeModel.get(["label", "rotate"]) || 0;
- var symbolPath = el.getSymbolPath();
- if (circularRotateLabel) {
- var pos = node.getLayout();
- var rad = Math.atan2(pos[1] - cy, pos[0] - cx);
- if (rad < 0) {
- rad = Math.PI * 2 + rad;
- }
- var isLeft = pos[0] < cx;
- if (isLeft) {
- rad = rad - Math.PI;
- }
- var textPosition = isLeft ? "left" : "right";
- symbolPath.setTextConfig({
- rotation: -rad,
- position: textPosition,
- origin: "center"
- });
- var emphasisState = symbolPath.ensureState("emphasis");
- extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {
- position: textPosition
- });
- } else {
- symbolPath.setTextConfig({
- rotation: labelRotate *= Math.PI / 180
- });
- }
- }
- // node_modules/echarts/lib/chart/graph/circularLayout.js
- function graphCircularLayout(ecModel) {
- ecModel.eachSeriesByType("graph", function(seriesModel) {
- if (seriesModel.get("layout") === "circular") {
- circularLayout(seriesModel, "symbolSize");
- }
- });
- }
- // node_modules/echarts/lib/chart/graph/forceHelper.js
- var scaleAndAdd2 = scaleAndAdd;
- function forceLayout(inNodes, inEdges, opts) {
- var nodes = inNodes;
- var edges = inEdges;
- var rect = opts.rect;
- var width = rect.width;
- var height = rect.height;
- var center2 = [rect.x + width / 2, rect.y + height / 2];
- var gravity = opts.gravity == null ? 0.1 : opts.gravity;
- for (var i = 0; i < nodes.length; i++) {
- var n = nodes[i];
- if (!n.p) {
- n.p = create(width * (Math.random() - 0.5) + center2[0], height * (Math.random() - 0.5) + center2[1]);
- }
- n.pp = clone2(n.p);
- n.edges = null;
- }
- var initialFriction = opts.friction == null ? 0.6 : opts.friction;
- var friction = initialFriction;
- var beforeStepCallback;
- var afterStepCallback;
- return {
- warmUp: function() {
- friction = initialFriction * 0.8;
- },
- setFixed: function(idx) {
- nodes[idx].fixed = true;
- },
- setUnfixed: function(idx) {
- nodes[idx].fixed = false;
- },
- /**
- * Before step hook
- */
- beforeStep: function(cb) {
- beforeStepCallback = cb;
- },
- /**
- * After step hook
- */
- afterStep: function(cb) {
- afterStepCallback = cb;
- },
- /**
- * Some formulas were originally copied from "d3.js"
- * https://github.com/d3/d3/blob/b516d77fb8566b576088e73410437494717ada26/src/layout/force.js
- * with some modifications made for this project.
- * See the license statement at the head of this file.
- */
- step: function(cb) {
- beforeStepCallback && beforeStepCallback(nodes, edges);
- var v12 = [];
- var nLen = nodes.length;
- for (var i2 = 0; i2 < edges.length; i2++) {
- var e = edges[i2];
- if (e.ignoreForceLayout) {
- continue;
- }
- var n1 = e.n1;
- var n2 = e.n2;
- sub(v12, n2.p, n1.p);
- var d = len(v12) - e.d;
- var w = n2.w / (n1.w + n2.w);
- if (isNaN(w)) {
- w = 0;
- }
- normalize(v12, v12);
- !n1.fixed && scaleAndAdd2(n1.p, n1.p, v12, w * d * friction);
- !n2.fixed && scaleAndAdd2(n2.p, n2.p, v12, -(1 - w) * d * friction);
- }
- for (var i2 = 0; i2 < nLen; i2++) {
- var n3 = nodes[i2];
- if (!n3.fixed) {
- sub(v12, center2, n3.p);
- scaleAndAdd2(n3.p, n3.p, v12, gravity * friction);
- }
- }
- for (var i2 = 0; i2 < nLen; i2++) {
- var n1 = nodes[i2];
- for (var j = i2 + 1; j < nLen; j++) {
- var n2 = nodes[j];
- sub(v12, n2.p, n1.p);
- var d = len(v12);
- if (d === 0) {
- set(v12, Math.random() - 0.5, Math.random() - 0.5);
- d = 1;
- }
- var repFact = (n1.rep + n2.rep) / d / d;
- !n1.fixed && scaleAndAdd2(n1.pp, n1.pp, v12, repFact);
- !n2.fixed && scaleAndAdd2(n2.pp, n2.pp, v12, -repFact);
- }
- }
- var v = [];
- for (var i2 = 0; i2 < nLen; i2++) {
- var n3 = nodes[i2];
- if (!n3.fixed) {
- sub(v, n3.p, n3.pp);
- scaleAndAdd2(n3.p, n3.p, v, friction);
- copy(n3.pp, n3.p);
- }
- }
- friction = friction * 0.992;
- var finished = friction < 0.01;
- afterStepCallback && afterStepCallback(nodes, edges, finished);
- cb && cb(finished);
- }
- };
- }
- // node_modules/echarts/lib/chart/graph/forceLayout.js
- function graphForceLayout(ecModel) {
- ecModel.eachSeriesByType("graph", function(graphSeries) {
- var coordSys = graphSeries.coordinateSystem;
- if (coordSys && coordSys.type !== "view") {
- return;
- }
- if (graphSeries.get("layout") === "force") {
- var preservedPoints_1 = graphSeries.preservedPoints || {};
- var graph_1 = graphSeries.getGraph();
- var nodeData_1 = graph_1.data;
- var edgeData = graph_1.edgeData;
- var forceModel = graphSeries.getModel("force");
- var initLayout = forceModel.get("initLayout");
- if (graphSeries.preservedPoints) {
- nodeData_1.each(function(idx) {
- var id = nodeData_1.getId(idx);
- nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);
- });
- } else if (!initLayout || initLayout === "none") {
- simpleLayout(graphSeries);
- } else if (initLayout === "circular") {
- circularLayout(graphSeries, "value");
- }
- var nodeDataExtent_1 = nodeData_1.getDataExtent("value");
- var edgeDataExtent_1 = edgeData.getDataExtent("value");
- var repulsion = forceModel.get("repulsion");
- var edgeLength = forceModel.get("edgeLength");
- var repulsionArr_1 = isArray(repulsion) ? repulsion : [repulsion, repulsion];
- var edgeLengthArr_1 = isArray(edgeLength) ? edgeLength : [edgeLength, edgeLength];
- edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];
- var nodes_1 = nodeData_1.mapArray("value", function(value, idx) {
- var point = nodeData_1.getItemLayout(idx);
- var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);
- if (isNaN(rep)) {
- rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;
- }
- return {
- w: rep,
- rep,
- fixed: nodeData_1.getItemModel(idx).get("fixed"),
- p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point
- };
- });
- var edges = edgeData.mapArray("value", function(value, idx) {
- var edge = graph_1.getEdgeByIndex(idx);
- var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);
- if (isNaN(d)) {
- d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;
- }
- var edgeModel = edge.getModel();
- var curveness = retrieve3(edge.getModel().get(["lineStyle", "curveness"]), -getCurvenessForEdge(edge, graphSeries, idx, true), 0);
- return {
- n1: nodes_1[edge.node1.dataIndex],
- n2: nodes_1[edge.node2.dataIndex],
- d,
- curveness,
- ignoreForceLayout: edgeModel.get("ignoreForceLayout")
- };
- });
- var rect = coordSys.getBoundingRect();
- var forceInstance = forceLayout(nodes_1, edges, {
- rect,
- gravity: forceModel.get("gravity"),
- friction: forceModel.get("friction")
- });
- forceInstance.beforeStep(function(nodes, edges2) {
- for (var i = 0, l = nodes.length; i < l; i++) {
- if (nodes[i].fixed) {
- copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());
- }
- }
- });
- forceInstance.afterStep(function(nodes, edges2, stopped) {
- for (var i = 0, l = nodes.length; i < l; i++) {
- if (!nodes[i].fixed) {
- graph_1.getNodeByIndex(i).setLayout(nodes[i].p);
- }
- preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;
- }
- for (var i = 0, l = edges2.length; i < l; i++) {
- var e = edges2[i];
- var edge = graph_1.getEdgeByIndex(i);
- var p1 = e.n1.p;
- var p2 = e.n2.p;
- var points = edge.getLayout();
- points = points ? points.slice() : [];
- points[0] = points[0] || [];
- points[1] = points[1] || [];
- copy(points[0], p1);
- copy(points[1], p2);
- if (+e.curveness) {
- points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness];
- }
- edge.setLayout(points);
- }
- });
- graphSeries.forceLayout = forceInstance;
- graphSeries.preservedPoints = preservedPoints_1;
- forceInstance.step();
- } else {
- graphSeries.forceLayout = null;
- }
- });
- }
- // node_modules/echarts/lib/chart/graph/createView.js
- function getViewRect3(seriesModel, api, aspect) {
- var option = extend(seriesModel.getBoxLayoutParams(), {
- aspect
- });
- return getLayoutRect(option, {
- width: api.getWidth(),
- height: api.getHeight()
- });
- }
- function createViewCoordSys(ecModel, api) {
- var viewList = [];
- ecModel.eachSeriesByType("graph", function(seriesModel) {
- var coordSysType = seriesModel.get("coordinateSystem");
- if (!coordSysType || coordSysType === "view") {
- var data_1 = seriesModel.getData();
- var positions = data_1.mapArray(function(idx) {
- var itemModel = data_1.getItemModel(idx);
- return [+itemModel.get("x"), +itemModel.get("y")];
- });
- var min = [];
- var max = [];
- fromPoints(positions, min, max);
- if (max[0] - min[0] === 0) {
- max[0] += 1;
- min[0] -= 1;
- }
- if (max[1] - min[1] === 0) {
- max[1] += 1;
- min[1] -= 1;
- }
- var aspect = (max[0] - min[0]) / (max[1] - min[1]);
- var viewRect = getViewRect3(seriesModel, api, aspect);
- if (isNaN(aspect)) {
- min = [viewRect.x, viewRect.y];
- max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];
- }
- var bbWidth = max[0] - min[0];
- var bbHeight = max[1] - min[1];
- var viewWidth = viewRect.width;
- var viewHeight = viewRect.height;
- var viewCoordSys = seriesModel.coordinateSystem = new View_default();
- viewCoordSys.zoomLimit = seriesModel.get("scaleLimit");
- viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);
- viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight);
- viewCoordSys.setCenter(seriesModel.get("center"), api);
- viewCoordSys.setZoom(seriesModel.get("zoom"));
- viewList.push(viewCoordSys);
- }
- });
- return viewList;
- }
- // node_modules/echarts/lib/chart/graph/adjustEdge.js
- var v1 = [];
- var v2 = [];
- var v3 = [];
- var quadraticAt2 = quadraticAt;
- var v2DistSquare = distSquare;
- var mathAbs = Math.abs;
- function intersectCurveCircle(curvePoints, center2, radius) {
- var p0 = curvePoints[0];
- var p1 = curvePoints[1];
- var p2 = curvePoints[2];
- var d = Infinity;
- var t;
- var radiusSquare = radius * radius;
- var interval = 0.1;
- for (var _t = 0.1; _t <= 0.9; _t += 0.1) {
- v1[0] = quadraticAt2(p0[0], p1[0], p2[0], _t);
- v1[1] = quadraticAt2(p0[1], p1[1], p2[1], _t);
- var diff = mathAbs(v2DistSquare(v1, center2) - radiusSquare);
- if (diff < d) {
- d = diff;
- t = _t;
- }
- }
- for (var i = 0; i < 32; i++) {
- var next = t + interval;
- v2[0] = quadraticAt2(p0[0], p1[0], p2[0], t);
- v2[1] = quadraticAt2(p0[1], p1[1], p2[1], t);
- v3[0] = quadraticAt2(p0[0], p1[0], p2[0], next);
- v3[1] = quadraticAt2(p0[1], p1[1], p2[1], next);
- var diff = v2DistSquare(v2, center2) - radiusSquare;
- if (mathAbs(diff) < 0.01) {
- break;
- }
- var nextDiff = v2DistSquare(v3, center2) - radiusSquare;
- interval /= 2;
- if (diff < 0) {
- if (nextDiff >= 0) {
- t = t + interval;
- } else {
- t = t - interval;
- }
- } else {
- if (nextDiff >= 0) {
- t = t - interval;
- } else {
- t = t + interval;
- }
- }
- }
- return t;
- }
- function adjustEdge(graph, scale3) {
- var tmp0 = [];
- var quadraticSubdivide2 = quadraticSubdivide;
- var pts = [[], [], []];
- var pts2 = [[], []];
- var v = [];
- scale3 /= 2;
- graph.eachEdge(function(edge, idx) {
- var linePoints = edge.getLayout();
- var fromSymbol = edge.getVisual("fromSymbol");
- var toSymbol = edge.getVisual("toSymbol");
- if (!linePoints.__original) {
- linePoints.__original = [clone2(linePoints[0]), clone2(linePoints[1])];
- if (linePoints[2]) {
- linePoints.__original.push(clone2(linePoints[2]));
- }
- }
- var originalPoints = linePoints.__original;
- if (linePoints[2] != null) {
- copy(pts[0], originalPoints[0]);
- copy(pts[1], originalPoints[2]);
- copy(pts[2], originalPoints[1]);
- if (fromSymbol && fromSymbol !== "none") {
- var symbolSize = getSymbolSize(edge.node1);
- var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale3);
- quadraticSubdivide2(pts[0][0], pts[1][0], pts[2][0], t, tmp0);
- pts[0][0] = tmp0[3];
- pts[1][0] = tmp0[4];
- quadraticSubdivide2(pts[0][1], pts[1][1], pts[2][1], t, tmp0);
- pts[0][1] = tmp0[3];
- pts[1][1] = tmp0[4];
- }
- if (toSymbol && toSymbol !== "none") {
- var symbolSize = getSymbolSize(edge.node2);
- var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale3);
- quadraticSubdivide2(pts[0][0], pts[1][0], pts[2][0], t, tmp0);
- pts[1][0] = tmp0[1];
- pts[2][0] = tmp0[2];
- quadraticSubdivide2(pts[0][1], pts[1][1], pts[2][1], t, tmp0);
- pts[1][1] = tmp0[1];
- pts[2][1] = tmp0[2];
- }
- copy(linePoints[0], pts[0]);
- copy(linePoints[1], pts[2]);
- copy(linePoints[2], pts[1]);
- } else {
- copy(pts2[0], originalPoints[0]);
- copy(pts2[1], originalPoints[1]);
- sub(v, pts2[1], pts2[0]);
- normalize(v, v);
- if (fromSymbol && fromSymbol !== "none") {
- var symbolSize = getSymbolSize(edge.node1);
- scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale3);
- }
- if (toSymbol && toSymbol !== "none") {
- var symbolSize = getSymbolSize(edge.node2);
- scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale3);
- }
- copy(linePoints[0], pts2[0]);
- copy(linePoints[1], pts2[1]);
- }
- });
- }
- // node_modules/echarts/lib/chart/graph/GraphView.js
- function isViewCoordSys(coordSys) {
- return coordSys.type === "view";
- }
- var GraphView = (
- /** @class */
- function(_super) {
- __extends(GraphView2, _super);
- function GraphView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = GraphView2.type;
- return _this;
- }
- GraphView2.prototype.init = function(ecModel, api) {
- var symbolDraw = new SymbolDraw_default();
- var lineDraw = new LineDraw_default();
- var group = this.group;
- this._controller = new RoamController_default(api.getZr());
- this._controllerHost = {
- target: group
- };
- group.add(symbolDraw.group);
- group.add(lineDraw.group);
- this._symbolDraw = symbolDraw;
- this._lineDraw = lineDraw;
- this._firstRender = true;
- };
- GraphView2.prototype.render = function(seriesModel, ecModel, api) {
- var _this = this;
- var coordSys = seriesModel.coordinateSystem;
- this._model = seriesModel;
- var symbolDraw = this._symbolDraw;
- var lineDraw = this._lineDraw;
- var group = this.group;
- if (isViewCoordSys(coordSys)) {
- var groupNewProp = {
- x: coordSys.x,
- y: coordSys.y,
- scaleX: coordSys.scaleX,
- scaleY: coordSys.scaleY
- };
- if (this._firstRender) {
- group.attr(groupNewProp);
- } else {
- updateProps(group, groupNewProp, seriesModel);
- }
- }
- adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));
- var data = seriesModel.getData();
- symbolDraw.updateData(data);
- var edgeData = seriesModel.getEdgeData();
- lineDraw.updateData(edgeData);
- this._updateNodeAndLinkScale();
- this._updateController(seriesModel, ecModel, api);
- clearTimeout(this._layoutTimeout);
- var forceLayout2 = seriesModel.forceLayout;
- var layoutAnimation = seriesModel.get(["force", "layoutAnimation"]);
- if (forceLayout2) {
- this._startForceLayoutIteration(forceLayout2, layoutAnimation);
- }
- var layout2 = seriesModel.get("layout");
- data.graph.eachNode(function(node) {
- var idx = node.dataIndex;
- var el = node.getGraphicEl();
- var itemModel = node.getModel();
- if (!el) {
- return;
- }
- el.off("drag").off("dragend");
- var draggable = itemModel.get("draggable");
- if (draggable) {
- el.on("drag", function(e) {
- switch (layout2) {
- case "force":
- forceLayout2.warmUp();
- !_this._layouting && _this._startForceLayoutIteration(forceLayout2, layoutAnimation);
- forceLayout2.setFixed(idx);
- data.setItemLayout(idx, [el.x, el.y]);
- break;
- case "circular":
- data.setItemLayout(idx, [el.x, el.y]);
- node.setLayout({
- fixed: true
- }, true);
- circularLayout(seriesModel, "symbolSize", node, [e.offsetX, e.offsetY]);
- _this.updateLayout(seriesModel);
- break;
- case "none":
- default:
- data.setItemLayout(idx, [el.x, el.y]);
- simpleLayoutEdge(seriesModel.getGraph(), seriesModel);
- _this.updateLayout(seriesModel);
- break;
- }
- }).on("dragend", function() {
- if (forceLayout2) {
- forceLayout2.setUnfixed(idx);
- }
- });
- }
- el.setDraggable(draggable, !!itemModel.get("cursor"));
- var focus = itemModel.get(["emphasis", "focus"]);
- if (focus === "adjacency") {
- getECData(el).focus = node.getAdjacentDataIndices();
- }
- });
- data.graph.eachEdge(function(edge) {
- var el = edge.getGraphicEl();
- var focus = edge.getModel().get(["emphasis", "focus"]);
- if (!el) {
- return;
- }
- if (focus === "adjacency") {
- getECData(el).focus = {
- edge: [edge.dataIndex],
- node: [edge.node1.dataIndex, edge.node2.dataIndex]
- };
- }
- });
- var circularRotateLabel = seriesModel.get("layout") === "circular" && seriesModel.get(["circular", "rotateLabel"]);
- var cx = data.getLayout("cx");
- var cy = data.getLayout("cy");
- data.graph.eachNode(function(node) {
- rotateNodeLabel(node, circularRotateLabel, cx, cy);
- });
- this._firstRender = false;
- };
- GraphView2.prototype.dispose = function() {
- this.remove();
- this._controller && this._controller.dispose();
- this._controllerHost = null;
- };
- GraphView2.prototype._startForceLayoutIteration = function(forceLayout2, layoutAnimation) {
- var self = this;
- (function step() {
- forceLayout2.step(function(stopped) {
- self.updateLayout(self._model);
- (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());
- });
- })();
- };
- GraphView2.prototype._updateController = function(seriesModel, ecModel, api) {
- var _this = this;
- var controller = this._controller;
- var controllerHost = this._controllerHost;
- var group = this.group;
- controller.setPointerChecker(function(e, x, y) {
- var rect = group.getBoundingRect();
- rect.applyTransform(group.transform);
- return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);
- });
- if (!isViewCoordSys(seriesModel.coordinateSystem)) {
- controller.disable();
- return;
- }
- controller.enable(seriesModel.get("roam"));
- controllerHost.zoomLimit = seriesModel.get("scaleLimit");
- controllerHost.zoom = seriesModel.coordinateSystem.getZoom();
- controller.off("pan").off("zoom").on("pan", function(e) {
- updateViewOnPan(controllerHost, e.dx, e.dy);
- api.dispatchAction({
- seriesId: seriesModel.id,
- type: "graphRoam",
- dx: e.dx,
- dy: e.dy
- });
- }).on("zoom", function(e) {
- updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);
- api.dispatchAction({
- seriesId: seriesModel.id,
- type: "graphRoam",
- zoom: e.scale,
- originX: e.originX,
- originY: e.originY
- });
- _this._updateNodeAndLinkScale();
- adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));
- _this._lineDraw.updateLayout();
- api.updateLabelLayout();
- });
- };
- GraphView2.prototype._updateNodeAndLinkScale = function() {
- var seriesModel = this._model;
- var data = seriesModel.getData();
- var nodeScale = getNodeGlobalScale(seriesModel);
- data.eachItemGraphicEl(function(el, idx) {
- el && el.setSymbolScale(nodeScale);
- });
- };
- GraphView2.prototype.updateLayout = function(seriesModel) {
- adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));
- this._symbolDraw.updateLayout();
- this._lineDraw.updateLayout();
- };
- GraphView2.prototype.remove = function() {
- clearTimeout(this._layoutTimeout);
- this._layouting = false;
- this._layoutTimeout = null;
- this._symbolDraw && this._symbolDraw.remove();
- this._lineDraw && this._lineDraw.remove();
- };
- GraphView2.type = "graph";
- return GraphView2;
- }(Chart_default)
- );
- var GraphView_default = GraphView;
- // node_modules/echarts/lib/data/Graph.js
- function generateNodeKey(id) {
- return "_EC_" + id;
- }
- var Graph = (
- /** @class */
- function() {
- function Graph2(directed) {
- this.type = "graph";
- this.nodes = [];
- this.edges = [];
- this._nodesMap = {};
- this._edgesMap = {};
- this._directed = directed || false;
- }
- Graph2.prototype.isDirected = function() {
- return this._directed;
- };
- ;
- Graph2.prototype.addNode = function(id, dataIndex) {
- id = id == null ? "" + dataIndex : "" + id;
- var nodesMap = this._nodesMap;
- if (nodesMap[generateNodeKey(id)]) {
- if (true) {
- console.error("Graph nodes have duplicate name or id");
- }
- return;
- }
- var node = new GraphNode(id, dataIndex);
- node.hostGraph = this;
- this.nodes.push(node);
- nodesMap[generateNodeKey(id)] = node;
- return node;
- };
- ;
- Graph2.prototype.getNodeByIndex = function(dataIndex) {
- var rawIdx = this.data.getRawIndex(dataIndex);
- return this.nodes[rawIdx];
- };
- ;
- Graph2.prototype.getNodeById = function(id) {
- return this._nodesMap[generateNodeKey(id)];
- };
- ;
- Graph2.prototype.addEdge = function(n1, n2, dataIndex) {
- var nodesMap = this._nodesMap;
- var edgesMap = this._edgesMap;
- if (isNumber(n1)) {
- n1 = this.nodes[n1];
- }
- if (isNumber(n2)) {
- n2 = this.nodes[n2];
- }
- if (!(n1 instanceof GraphNode)) {
- n1 = nodesMap[generateNodeKey(n1)];
- }
- if (!(n2 instanceof GraphNode)) {
- n2 = nodesMap[generateNodeKey(n2)];
- }
- if (!n1 || !n2) {
- return;
- }
- var key = n1.id + "-" + n2.id;
- var edge = new GraphEdge(n1, n2, dataIndex);
- edge.hostGraph = this;
- if (this._directed) {
- n1.outEdges.push(edge);
- n2.inEdges.push(edge);
- }
- n1.edges.push(edge);
- if (n1 !== n2) {
- n2.edges.push(edge);
- }
- this.edges.push(edge);
- edgesMap[key] = edge;
- return edge;
- };
- ;
- Graph2.prototype.getEdgeByIndex = function(dataIndex) {
- var rawIdx = this.edgeData.getRawIndex(dataIndex);
- return this.edges[rawIdx];
- };
- ;
- Graph2.prototype.getEdge = function(n1, n2) {
- if (n1 instanceof GraphNode) {
- n1 = n1.id;
- }
- if (n2 instanceof GraphNode) {
- n2 = n2.id;
- }
- var edgesMap = this._edgesMap;
- if (this._directed) {
- return edgesMap[n1 + "-" + n2];
- } else {
- return edgesMap[n1 + "-" + n2] || edgesMap[n2 + "-" + n1];
- }
- };
- ;
- Graph2.prototype.eachNode = function(cb, context) {
- var nodes = this.nodes;
- var len2 = nodes.length;
- for (var i = 0; i < len2; i++) {
- if (nodes[i].dataIndex >= 0) {
- cb.call(context, nodes[i], i);
- }
- }
- };
- ;
- Graph2.prototype.eachEdge = function(cb, context) {
- var edges = this.edges;
- var len2 = edges.length;
- for (var i = 0; i < len2; i++) {
- if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) {
- cb.call(context, edges[i], i);
- }
- }
- };
- ;
- Graph2.prototype.breadthFirstTraverse = function(cb, startNode, direction, context) {
- if (!(startNode instanceof GraphNode)) {
- startNode = this._nodesMap[generateNodeKey(startNode)];
- }
- if (!startNode) {
- return;
- }
- var edgeType = direction === "out" ? "outEdges" : direction === "in" ? "inEdges" : "edges";
- for (var i = 0; i < this.nodes.length; i++) {
- this.nodes[i].__visited = false;
- }
- if (cb.call(context, startNode, null)) {
- return;
- }
- var queue = [startNode];
- while (queue.length) {
- var currentNode = queue.shift();
- var edges = currentNode[edgeType];
- for (var i = 0; i < edges.length; i++) {
- var e = edges[i];
- var otherNode = e.node1 === currentNode ? e.node2 : e.node1;
- if (!otherNode.__visited) {
- if (cb.call(context, otherNode, currentNode)) {
- return;
- }
- queue.push(otherNode);
- otherNode.__visited = true;
- }
- }
- }
- };
- ;
- Graph2.prototype.update = function() {
- var data = this.data;
- var edgeData = this.edgeData;
- var nodes = this.nodes;
- var edges = this.edges;
- for (var i = 0, len2 = nodes.length; i < len2; i++) {
- nodes[i].dataIndex = -1;
- }
- for (var i = 0, len2 = data.count(); i < len2; i++) {
- nodes[data.getRawIndex(i)].dataIndex = i;
- }
- edgeData.filterSelf(function(idx) {
- var edge = edges[edgeData.getRawIndex(idx)];
- return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;
- });
- for (var i = 0, len2 = edges.length; i < len2; i++) {
- edges[i].dataIndex = -1;
- }
- for (var i = 0, len2 = edgeData.count(); i < len2; i++) {
- edges[edgeData.getRawIndex(i)].dataIndex = i;
- }
- };
- ;
- Graph2.prototype.clone = function() {
- var graph = new Graph2(this._directed);
- var nodes = this.nodes;
- var edges = this.edges;
- for (var i = 0; i < nodes.length; i++) {
- graph.addNode(nodes[i].id, nodes[i].dataIndex);
- }
- for (var i = 0; i < edges.length; i++) {
- var e = edges[i];
- graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);
- }
- return graph;
- };
- ;
- return Graph2;
- }()
- );
- var GraphNode = (
- /** @class */
- function() {
- function GraphNode2(id, dataIndex) {
- this.inEdges = [];
- this.outEdges = [];
- this.edges = [];
- this.dataIndex = -1;
- this.id = id == null ? "" : id;
- this.dataIndex = dataIndex == null ? -1 : dataIndex;
- }
- GraphNode2.prototype.degree = function() {
- return this.edges.length;
- };
- GraphNode2.prototype.inDegree = function() {
- return this.inEdges.length;
- };
- GraphNode2.prototype.outDegree = function() {
- return this.outEdges.length;
- };
- GraphNode2.prototype.getModel = function(path) {
- if (this.dataIndex < 0) {
- return;
- }
- var graph = this.hostGraph;
- var itemModel = graph.data.getItemModel(this.dataIndex);
- return itemModel.getModel(path);
- };
- GraphNode2.prototype.getAdjacentDataIndices = function() {
- var dataIndices = {
- edge: [],
- node: []
- };
- for (var i = 0; i < this.edges.length; i++) {
- var adjacentEdge = this.edges[i];
- if (adjacentEdge.dataIndex < 0) {
- continue;
- }
- dataIndices.edge.push(adjacentEdge.dataIndex);
- dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);
- }
- return dataIndices;
- };
- GraphNode2.prototype.getTrajectoryDataIndices = function() {
- var connectedEdgesMap = createHashMap();
- var connectedNodesMap = createHashMap();
- for (var i = 0; i < this.edges.length; i++) {
- var adjacentEdge = this.edges[i];
- if (adjacentEdge.dataIndex < 0) {
- continue;
- }
- connectedEdgesMap.set(adjacentEdge.dataIndex, true);
- var sourceNodesQueue = [adjacentEdge.node1];
- var targetNodesQueue = [adjacentEdge.node2];
- var nodeIteratorIndex = 0;
- while (nodeIteratorIndex < sourceNodesQueue.length) {
- var sourceNode = sourceNodesQueue[nodeIteratorIndex];
- nodeIteratorIndex++;
- connectedNodesMap.set(sourceNode.dataIndex, true);
- for (var j = 0; j < sourceNode.inEdges.length; j++) {
- connectedEdgesMap.set(sourceNode.inEdges[j].dataIndex, true);
- sourceNodesQueue.push(sourceNode.inEdges[j].node1);
- }
- }
- nodeIteratorIndex = 0;
- while (nodeIteratorIndex < targetNodesQueue.length) {
- var targetNode = targetNodesQueue[nodeIteratorIndex];
- nodeIteratorIndex++;
- connectedNodesMap.set(targetNode.dataIndex, true);
- for (var j = 0; j < targetNode.outEdges.length; j++) {
- connectedEdgesMap.set(targetNode.outEdges[j].dataIndex, true);
- targetNodesQueue.push(targetNode.outEdges[j].node2);
- }
- }
- }
- return {
- edge: connectedEdgesMap.keys(),
- node: connectedNodesMap.keys()
- };
- };
- return GraphNode2;
- }()
- );
- var GraphEdge = (
- /** @class */
- function() {
- function GraphEdge2(n1, n2, dataIndex) {
- this.dataIndex = -1;
- this.node1 = n1;
- this.node2 = n2;
- this.dataIndex = dataIndex == null ? -1 : dataIndex;
- }
- GraphEdge2.prototype.getModel = function(path) {
- if (this.dataIndex < 0) {
- return;
- }
- var graph = this.hostGraph;
- var itemModel = graph.edgeData.getItemModel(this.dataIndex);
- return itemModel.getModel(path);
- };
- GraphEdge2.prototype.getAdjacentDataIndices = function() {
- return {
- edge: [this.dataIndex],
- node: [this.node1.dataIndex, this.node2.dataIndex]
- };
- };
- GraphEdge2.prototype.getTrajectoryDataIndices = function() {
- var connectedEdgesMap = createHashMap();
- var connectedNodesMap = createHashMap();
- connectedEdgesMap.set(this.dataIndex, true);
- var sourceNodes = [this.node1];
- var targetNodes = [this.node2];
- var nodeIteratorIndex = 0;
- while (nodeIteratorIndex < sourceNodes.length) {
- var sourceNode = sourceNodes[nodeIteratorIndex];
- nodeIteratorIndex++;
- connectedNodesMap.set(sourceNode.dataIndex, true);
- for (var j = 0; j < sourceNode.inEdges.length; j++) {
- connectedEdgesMap.set(sourceNode.inEdges[j].dataIndex, true);
- sourceNodes.push(sourceNode.inEdges[j].node1);
- }
- }
- nodeIteratorIndex = 0;
- while (nodeIteratorIndex < targetNodes.length) {
- var targetNode = targetNodes[nodeIteratorIndex];
- nodeIteratorIndex++;
- connectedNodesMap.set(targetNode.dataIndex, true);
- for (var j = 0; j < targetNode.outEdges.length; j++) {
- connectedEdgesMap.set(targetNode.outEdges[j].dataIndex, true);
- targetNodes.push(targetNode.outEdges[j].node2);
- }
- }
- return {
- edge: connectedEdgesMap.keys(),
- node: connectedNodesMap.keys()
- };
- };
- return GraphEdge2;
- }()
- );
- function createGraphDataProxyMixin(hostName, dataName) {
- return {
- /**
- * @param Default 'value'. can be 'a', 'b', 'c', 'd', 'e'.
- */
- getValue: function(dimension) {
- var data = this[hostName][dataName];
- return data.getStore().get(data.getDimensionIndex(dimension || "value"), this.dataIndex);
- },
- // TODO: TYPE stricter type.
- setVisual: function(key, value) {
- this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);
- },
- getVisual: function(key) {
- return this[hostName][dataName].getItemVisual(this.dataIndex, key);
- },
- setLayout: function(layout2, merge) {
- this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout2, merge);
- },
- getLayout: function() {
- return this[hostName][dataName].getItemLayout(this.dataIndex);
- },
- getGraphicEl: function() {
- return this[hostName][dataName].getItemGraphicEl(this.dataIndex);
- },
- getRawIndex: function() {
- return this[hostName][dataName].getRawIndex(this.dataIndex);
- }
- };
- }
- mixin(GraphNode, createGraphDataProxyMixin("hostGraph", "data"));
- mixin(GraphEdge, createGraphDataProxyMixin("hostGraph", "edgeData"));
- var Graph_default = Graph;
- // node_modules/echarts/lib/chart/helper/createGraphFromNodeEdge.js
- function createGraphFromNodeEdge(nodes, edges, seriesModel, directed, beforeLink) {
- var graph = new Graph_default(directed);
- for (var i = 0; i < nodes.length; i++) {
- graph.addNode(retrieve(
- // Id, name, dataIndex
- nodes[i].id,
- nodes[i].name,
- i
- ), i);
- }
- var linkNameList = [];
- var validEdges = [];
- var linkCount = 0;
- for (var i = 0; i < edges.length; i++) {
- var link = edges[i];
- var source = link.source;
- var target = link.target;
- if (graph.addEdge(source, target, linkCount)) {
- validEdges.push(link);
- linkNameList.push(retrieve(convertOptionIdName(link.id, null), source + " > " + target));
- linkCount++;
- }
- }
- var coordSys = seriesModel.get("coordinateSystem");
- var nodeData;
- if (coordSys === "cartesian2d" || coordSys === "polar") {
- nodeData = createSeriesData_default(nodes, seriesModel);
- } else {
- var coordSysCtor = CoordinateSystem_default.get(coordSys);
- var coordDimensions = coordSysCtor ? coordSysCtor.dimensions || [] : [];
- if (indexOf(coordDimensions, "value") < 0) {
- coordDimensions.concat(["value"]);
- }
- var dimensions = prepareSeriesDataSchema(nodes, {
- coordDimensions,
- encodeDefine: seriesModel.getEncode()
- }).dimensions;
- nodeData = new SeriesData_default(dimensions, seriesModel);
- nodeData.initData(nodes);
- }
- var edgeData = new SeriesData_default(["value"], seriesModel);
- edgeData.initData(validEdges, linkNameList);
- beforeLink && beforeLink(nodeData, edgeData);
- linkSeriesData_default({
- mainData: nodeData,
- struct: graph,
- structAttr: "graph",
- datas: {
- node: nodeData,
- edge: edgeData
- },
- datasAttr: {
- node: "data",
- edge: "edgeData"
- }
- });
- graph.update();
- return graph;
- }
- // node_modules/echarts/lib/chart/graph/GraphSeries.js
- var GraphSeriesModel = (
- /** @class */
- function(_super) {
- __extends(GraphSeriesModel2, _super);
- function GraphSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = GraphSeriesModel2.type;
- _this.hasSymbolVisual = true;
- return _this;
- }
- GraphSeriesModel2.prototype.init = function(option) {
- _super.prototype.init.apply(this, arguments);
- var self = this;
- function getCategoriesData() {
- return self._categoriesData;
- }
- this.legendVisualProvider = new LegendVisualProvider_default(getCategoriesData, getCategoriesData);
- this.fillDataTextStyle(option.edges || option.links);
- this._updateCategoriesData();
- };
- GraphSeriesModel2.prototype.mergeOption = function(option) {
- _super.prototype.mergeOption.apply(this, arguments);
- this.fillDataTextStyle(option.edges || option.links);
- this._updateCategoriesData();
- };
- GraphSeriesModel2.prototype.mergeDefaultAndTheme = function(option) {
- _super.prototype.mergeDefaultAndTheme.apply(this, arguments);
- defaultEmphasis(option, "edgeLabel", ["show"]);
- };
- GraphSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- var edges = option.edges || option.links || [];
- var nodes = option.data || option.nodes || [];
- var self = this;
- if (nodes && edges) {
- initCurvenessList(this);
- var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink);
- each(graph.edges, function(edge) {
- createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex);
- }, this);
- return graph.data;
- }
- function beforeLink(nodeData, edgeData) {
- nodeData.wrapMethod("getItemModel", function(model) {
- var categoriesModels = self._categoriesModels;
- var categoryIdx = model.getShallow("category");
- var categoryModel = categoriesModels[categoryIdx];
- if (categoryModel) {
- categoryModel.parentModel = model.parentModel;
- model.parentModel = categoryModel;
- }
- return model;
- });
- var oldGetModel = Model_default.prototype.getModel;
- function newGetModel(path, parentModel) {
- var model = oldGetModel.call(this, path, parentModel);
- model.resolveParentPath = resolveParentPath;
- return model;
- }
- edgeData.wrapMethod("getItemModel", function(model) {
- model.resolveParentPath = resolveParentPath;
- model.getModel = newGetModel;
- return model;
- });
- function resolveParentPath(pathArr) {
- if (pathArr && (pathArr[0] === "label" || pathArr[1] === "label")) {
- var newPathArr = pathArr.slice();
- if (pathArr[0] === "label") {
- newPathArr[0] = "edgeLabel";
- } else if (pathArr[1] === "label") {
- newPathArr[1] = "edgeLabel";
- }
- return newPathArr;
- }
- return pathArr;
- }
- }
- };
- GraphSeriesModel2.prototype.getGraph = function() {
- return this.getData().graph;
- };
- GraphSeriesModel2.prototype.getEdgeData = function() {
- return this.getGraph().edgeData;
- };
- GraphSeriesModel2.prototype.getCategoriesData = function() {
- return this._categoriesData;
- };
- GraphSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) {
- if (dataType === "edge") {
- var nodeData = this.getData();
- var params = this.getDataParams(dataIndex, dataType);
- var edge = nodeData.graph.getEdgeByIndex(dataIndex);
- var sourceName = nodeData.getName(edge.node1.dataIndex);
- var targetName = nodeData.getName(edge.node2.dataIndex);
- var nameArr = [];
- sourceName != null && nameArr.push(sourceName);
- targetName != null && nameArr.push(targetName);
- return createTooltipMarkup("nameValue", {
- name: nameArr.join(" > "),
- value: params.value,
- noValue: params.value == null
- });
- }
- var nodeMarkup = defaultSeriesFormatTooltip({
- series: this,
- dataIndex,
- multipleSeries
- });
- return nodeMarkup;
- };
- GraphSeriesModel2.prototype._updateCategoriesData = function() {
- var categories = map(this.option.categories || [], function(category) {
- return category.value != null ? category : extend({
- value: 0
- }, category);
- });
- var categoriesData = new SeriesData_default(["value"], this);
- categoriesData.initData(categories);
- this._categoriesData = categoriesData;
- this._categoriesModels = categoriesData.mapArray(function(idx) {
- return categoriesData.getItemModel(idx);
- });
- };
- GraphSeriesModel2.prototype.setZoom = function(zoom) {
- this.option.zoom = zoom;
- };
- GraphSeriesModel2.prototype.setCenter = function(center2) {
- this.option.center = center2;
- };
- GraphSeriesModel2.prototype.isAnimationEnabled = function() {
- return _super.prototype.isAnimationEnabled.call(this) && !(this.get("layout") === "force" && this.get(["force", "layoutAnimation"]));
- };
- GraphSeriesModel2.type = "series.graph";
- GraphSeriesModel2.dependencies = ["grid", "polar", "geo", "singleAxis", "calendar"];
- GraphSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- coordinateSystem: "view",
- // Default option for all coordinate systems
- // xAxisIndex: 0,
- // yAxisIndex: 0,
- // polarIndex: 0,
- // geoIndex: 0,
- legendHoverLink: true,
- layout: null,
- // Configuration of circular layout
- circular: {
- rotateLabel: false
- },
- // Configuration of force directed layout
- force: {
- initLayout: null,
- // Node repulsion. Can be an array to represent range.
- repulsion: [0, 50],
- gravity: 0.1,
- // Initial friction
- friction: 0.6,
- // Edge length. Can be an array to represent range.
- edgeLength: 30,
- layoutAnimation: true
- },
- left: "center",
- top: "center",
- // right: null,
- // bottom: null,
- // width: '80%',
- // height: '80%',
- symbol: "circle",
- symbolSize: 10,
- edgeSymbol: ["none", "none"],
- edgeSymbolSize: 10,
- edgeLabel: {
- position: "middle",
- distance: 5
- },
- draggable: false,
- roam: false,
- // Default on center of graph
- center: null,
- zoom: 1,
- // Symbol size scale ratio in roam
- nodeScaleRatio: 0.6,
- // cursor: null,
- // categories: [],
- // data: []
- // Or
- // nodes: []
- //
- // links: []
- // Or
- // edges: []
- label: {
- show: false,
- formatter: "{b}"
- },
- itemStyle: {},
- lineStyle: {
- color: "#aaa",
- width: 1,
- opacity: 0.5
- },
- emphasis: {
- scale: true,
- label: {
- show: true
- }
- },
- select: {
- itemStyle: {
- borderColor: "#212121"
- }
- }
- };
- return GraphSeriesModel2;
- }(Series_default)
- );
- var GraphSeries_default = GraphSeriesModel;
- // node_modules/echarts/lib/chart/graph/install.js
- var actionInfo = {
- type: "graphRoam",
- event: "graphRoam",
- update: "none"
- };
- function install13(registers) {
- registers.registerChartView(GraphView_default);
- registers.registerSeriesModel(GraphSeries_default);
- registers.registerProcessor(categoryFilter);
- registers.registerVisual(categoryVisual);
- registers.registerVisual(graphEdgeVisual);
- registers.registerLayout(graphSimpleLayout);
- registers.registerLayout(registers.PRIORITY.VISUAL.POST_CHART_LAYOUT, graphCircularLayout);
- registers.registerLayout(graphForceLayout);
- registers.registerCoordinateSystem("graphView", {
- dimensions: View_default.dimensions,
- create: createViewCoordSys
- });
- registers.registerAction({
- type: "focusNodeAdjacency",
- event: "focusNodeAdjacency",
- update: "series:focusNodeAdjacency"
- }, noop);
- registers.registerAction({
- type: "unfocusNodeAdjacency",
- event: "unfocusNodeAdjacency",
- update: "series:unfocusNodeAdjacency"
- }, noop);
- registers.registerAction(actionInfo, function(payload, ecModel, api) {
- ecModel.eachComponent({
- mainType: "series",
- query: payload
- }, function(seriesModel) {
- var coordSys = seriesModel.coordinateSystem;
- var res = updateCenterAndZoom(coordSys, payload, void 0, api);
- seriesModel.setCenter && seriesModel.setCenter(res.center);
- seriesModel.setZoom && seriesModel.setZoom(res.zoom);
- });
- });
- }
- // node_modules/echarts/lib/chart/gauge/PointerPath.js
- var PointerShape = (
- /** @class */
- function() {
- function PointerShape2() {
- this.angle = 0;
- this.width = 10;
- this.r = 10;
- this.x = 0;
- this.y = 0;
- }
- return PointerShape2;
- }()
- );
- var PointerPath = (
- /** @class */
- function(_super) {
- __extends(PointerPath2, _super);
- function PointerPath2(opts) {
- var _this = _super.call(this, opts) || this;
- _this.type = "pointer";
- return _this;
- }
- PointerPath2.prototype.getDefaultShape = function() {
- return new PointerShape();
- };
- PointerPath2.prototype.buildPath = function(ctx, shape) {
- var mathCos = Math.cos;
- var mathSin = Math.sin;
- var r = shape.r;
- var width = shape.width;
- var angle = shape.angle;
- var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);
- var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);
- angle = shape.angle - Math.PI / 2;
- ctx.moveTo(x, y);
- ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);
- ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);
- ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);
- ctx.lineTo(x, y);
- };
- return PointerPath2;
- }(Path_default)
- );
- var PointerPath_default = PointerPath;
- // node_modules/echarts/lib/chart/gauge/GaugeView.js
- function parsePosition(seriesModel, api) {
- var center2 = seriesModel.get("center");
- var width = api.getWidth();
- var height = api.getHeight();
- var size = Math.min(width, height);
- var cx = parsePercent2(center2[0], api.getWidth());
- var cy = parsePercent2(center2[1], api.getHeight());
- var r = parsePercent2(seriesModel.get("radius"), size / 2);
- return {
- cx,
- cy,
- r
- };
- }
- function formatLabel(value, labelFormatter) {
- var label = value == null ? "" : value + "";
- if (labelFormatter) {
- if (isString(labelFormatter)) {
- label = labelFormatter.replace("{value}", label);
- } else if (isFunction(labelFormatter)) {
- label = labelFormatter(value);
- }
- }
- return label;
- }
- var GaugeView = (
- /** @class */
- function(_super) {
- __extends(GaugeView2, _super);
- function GaugeView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = GaugeView2.type;
- return _this;
- }
- GaugeView2.prototype.render = function(seriesModel, ecModel, api) {
- this.group.removeAll();
- var colorList = seriesModel.get(["axisLine", "lineStyle", "color"]);
- var posInfo = parsePosition(seriesModel, api);
- this._renderMain(seriesModel, ecModel, api, colorList, posInfo);
- this._data = seriesModel.getData();
- };
- GaugeView2.prototype.dispose = function() {
- };
- GaugeView2.prototype._renderMain = function(seriesModel, ecModel, api, colorList, posInfo) {
- var group = this.group;
- var clockwise = seriesModel.get("clockwise");
- var startAngle = -seriesModel.get("startAngle") / 180 * Math.PI;
- var endAngle = -seriesModel.get("endAngle") / 180 * Math.PI;
- var axisLineModel = seriesModel.getModel("axisLine");
- var roundCap = axisLineModel.get("roundCap");
- var MainPath = roundCap ? sausage_default : Sector_default;
- var showAxis = axisLineModel.get("show");
- var lineStyleModel = axisLineModel.getModel("lineStyle");
- var axisLineWidth = lineStyleModel.get("width");
- var angles = [startAngle, endAngle];
- normalizeArcAngles(angles, !clockwise);
- startAngle = angles[0];
- endAngle = angles[1];
- var angleRangeSpan = endAngle - startAngle;
- var prevEndAngle = startAngle;
- var sectors = [];
- for (var i = 0; showAxis && i < colorList.length; i++) {
- var percent = Math.min(Math.max(colorList[i][0], 0), 1);
- endAngle = startAngle + angleRangeSpan * percent;
- var sector = new MainPath({
- shape: {
- startAngle: prevEndAngle,
- endAngle,
- cx: posInfo.cx,
- cy: posInfo.cy,
- clockwise,
- r0: posInfo.r - axisLineWidth,
- r: posInfo.r
- },
- silent: true
- });
- sector.setStyle({
- fill: colorList[i][1]
- });
- sector.setStyle(lineStyleModel.getLineStyle(
- // Because we use sector to simulate arc
- // so the properties for stroking are useless
- ["color", "width"]
- ));
- sectors.push(sector);
- prevEndAngle = endAngle;
- }
- sectors.reverse();
- each(sectors, function(sector2) {
- return group.add(sector2);
- });
- var getColor = function(percent2) {
- if (percent2 <= 0) {
- return colorList[0][1];
- }
- var i2;
- for (i2 = 0; i2 < colorList.length; i2++) {
- if (colorList[i2][0] >= percent2 && (i2 === 0 ? 0 : colorList[i2 - 1][0]) < percent2) {
- return colorList[i2][1];
- }
- }
- return colorList[i2 - 1][1];
- };
- this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);
- this._renderTitleAndDetail(seriesModel, ecModel, api, getColor, posInfo);
- this._renderAnchor(seriesModel, posInfo);
- this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);
- };
- GaugeView2.prototype._renderTicks = function(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {
- var group = this.group;
- var cx = posInfo.cx;
- var cy = posInfo.cy;
- var r = posInfo.r;
- var minVal = +seriesModel.get("min");
- var maxVal = +seriesModel.get("max");
- var splitLineModel = seriesModel.getModel("splitLine");
- var tickModel = seriesModel.getModel("axisTick");
- var labelModel = seriesModel.getModel("axisLabel");
- var splitNumber = seriesModel.get("splitNumber");
- var subSplitNumber = tickModel.get("splitNumber");
- var splitLineLen = parsePercent2(splitLineModel.get("length"), r);
- var tickLen = parsePercent2(tickModel.get("length"), r);
- var angle = startAngle;
- var step = (endAngle - startAngle) / splitNumber;
- var subStep = step / subSplitNumber;
- var splitLineStyle = splitLineModel.getModel("lineStyle").getLineStyle();
- var tickLineStyle = tickModel.getModel("lineStyle").getLineStyle();
- var splitLineDistance = splitLineModel.get("distance");
- var unitX;
- var unitY;
- for (var i = 0; i <= splitNumber; i++) {
- unitX = Math.cos(angle);
- unitY = Math.sin(angle);
- if (splitLineModel.get("show")) {
- var distance = splitLineDistance ? splitLineDistance + axisLineWidth : axisLineWidth;
- var splitLine = new Line_default({
- shape: {
- x1: unitX * (r - distance) + cx,
- y1: unitY * (r - distance) + cy,
- x2: unitX * (r - splitLineLen - distance) + cx,
- y2: unitY * (r - splitLineLen - distance) + cy
- },
- style: splitLineStyle,
- silent: true
- });
- if (splitLineStyle.stroke === "auto") {
- splitLine.setStyle({
- stroke: getColor(i / splitNumber)
- });
- }
- group.add(splitLine);
- }
- if (labelModel.get("show")) {
- var distance = labelModel.get("distance") + splitLineDistance;
- var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get("formatter"));
- var autoColor = getColor(i / splitNumber);
- var textStyleX = unitX * (r - splitLineLen - distance) + cx;
- var textStyleY = unitY * (r - splitLineLen - distance) + cy;
- var rotateType = labelModel.get("rotate");
- var rotate = 0;
- if (rotateType === "radial") {
- rotate = -angle + 2 * Math.PI;
- if (rotate > Math.PI / 2) {
- rotate += Math.PI;
- }
- } else if (rotateType === "tangential") {
- rotate = -angle - Math.PI / 2;
- } else if (isNumber(rotateType)) {
- rotate = rotateType * Math.PI / 180;
- }
- if (rotate === 0) {
- group.add(new Text_default({
- style: createTextStyle(labelModel, {
- text: label,
- x: textStyleX,
- y: textStyleY,
- verticalAlign: unitY < -0.8 ? "top" : unitY > 0.8 ? "bottom" : "middle",
- align: unitX < -0.4 ? "left" : unitX > 0.4 ? "right" : "center"
- }, {
- inheritColor: autoColor
- }),
- silent: true
- }));
- } else {
- group.add(new Text_default({
- style: createTextStyle(labelModel, {
- text: label,
- x: textStyleX,
- y: textStyleY,
- verticalAlign: "middle",
- align: "center"
- }, {
- inheritColor: autoColor
- }),
- silent: true,
- originX: textStyleX,
- originY: textStyleY,
- rotation: rotate
- }));
- }
- }
- if (tickModel.get("show") && i !== splitNumber) {
- var distance = tickModel.get("distance");
- distance = distance ? distance + axisLineWidth : axisLineWidth;
- for (var j = 0; j <= subSplitNumber; j++) {
- unitX = Math.cos(angle);
- unitY = Math.sin(angle);
- var tickLine = new Line_default({
- shape: {
- x1: unitX * (r - distance) + cx,
- y1: unitY * (r - distance) + cy,
- x2: unitX * (r - tickLen - distance) + cx,
- y2: unitY * (r - tickLen - distance) + cy
- },
- silent: true,
- style: tickLineStyle
- });
- if (tickLineStyle.stroke === "auto") {
- tickLine.setStyle({
- stroke: getColor((i + j / subSplitNumber) / splitNumber)
- });
- }
- group.add(tickLine);
- angle += subStep;
- }
- angle -= subStep;
- } else {
- angle += step;
- }
- }
- };
- GaugeView2.prototype._renderPointer = function(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {
- var group = this.group;
- var oldData = this._data;
- var oldProgressData = this._progressEls;
- var progressList = [];
- var showPointer = seriesModel.get(["pointer", "show"]);
- var progressModel = seriesModel.getModel("progress");
- var showProgress = progressModel.get("show");
- var data = seriesModel.getData();
- var valueDim = data.mapDimension("value");
- var minVal = +seriesModel.get("min");
- var maxVal = +seriesModel.get("max");
- var valueExtent = [minVal, maxVal];
- var angleExtent = [startAngle, endAngle];
- function createPointer(idx, angle) {
- var itemModel = data.getItemModel(idx);
- var pointerModel = itemModel.getModel("pointer");
- var pointerWidth = parsePercent2(pointerModel.get("width"), posInfo.r);
- var pointerLength = parsePercent2(pointerModel.get("length"), posInfo.r);
- var pointerStr = seriesModel.get(["pointer", "icon"]);
- var pointerOffset = pointerModel.get("offsetCenter");
- var pointerOffsetX = parsePercent2(pointerOffset[0], posInfo.r);
- var pointerOffsetY = parsePercent2(pointerOffset[1], posInfo.r);
- var pointerKeepAspect = pointerModel.get("keepAspect");
- var pointer;
- if (pointerStr) {
- pointer = createSymbol(pointerStr, pointerOffsetX - pointerWidth / 2, pointerOffsetY - pointerLength, pointerWidth, pointerLength, null, pointerKeepAspect);
- } else {
- pointer = new PointerPath_default({
- shape: {
- angle: -Math.PI / 2,
- width: pointerWidth,
- r: pointerLength,
- x: pointerOffsetX,
- y: pointerOffsetY
- }
- });
- }
- pointer.rotation = -(angle + Math.PI / 2);
- pointer.x = posInfo.cx;
- pointer.y = posInfo.cy;
- return pointer;
- }
- function createProgress(idx, endAngle2) {
- var roundCap = progressModel.get("roundCap");
- var ProgressPath = roundCap ? sausage_default : Sector_default;
- var isOverlap = progressModel.get("overlap");
- var progressWidth = isOverlap ? progressModel.get("width") : axisLineWidth / data.count();
- var r0 = isOverlap ? posInfo.r - progressWidth : posInfo.r - (idx + 1) * progressWidth;
- var r = isOverlap ? posInfo.r : posInfo.r - idx * progressWidth;
- var progress = new ProgressPath({
- shape: {
- startAngle,
- endAngle: endAngle2,
- cx: posInfo.cx,
- cy: posInfo.cy,
- clockwise,
- r0,
- r
- }
- });
- isOverlap && (progress.z2 = maxVal - data.get(valueDim, idx) % maxVal);
- return progress;
- }
- if (showProgress || showPointer) {
- data.diff(oldData).add(function(idx) {
- var val = data.get(valueDim, idx);
- if (showPointer) {
- var pointer = createPointer(idx, startAngle);
- initProps(pointer, {
- rotation: -((isNaN(+val) ? angleExtent[0] : linearMap(val, valueExtent, angleExtent, true)) + Math.PI / 2)
- }, seriesModel);
- group.add(pointer);
- data.setItemGraphicEl(idx, pointer);
- }
- if (showProgress) {
- var progress = createProgress(idx, startAngle);
- var isClip = progressModel.get("clip");
- initProps(progress, {
- shape: {
- endAngle: linearMap(val, valueExtent, angleExtent, isClip)
- }
- }, seriesModel);
- group.add(progress);
- setCommonECData(seriesModel.seriesIndex, data.dataType, idx, progress);
- progressList[idx] = progress;
- }
- }).update(function(newIdx, oldIdx) {
- var val = data.get(valueDim, newIdx);
- if (showPointer) {
- var previousPointer = oldData.getItemGraphicEl(oldIdx);
- var previousRotate = previousPointer ? previousPointer.rotation : startAngle;
- var pointer = createPointer(newIdx, previousRotate);
- pointer.rotation = previousRotate;
- updateProps(pointer, {
- rotation: -((isNaN(+val) ? angleExtent[0] : linearMap(val, valueExtent, angleExtent, true)) + Math.PI / 2)
- }, seriesModel);
- group.add(pointer);
- data.setItemGraphicEl(newIdx, pointer);
- }
- if (showProgress) {
- var previousProgress = oldProgressData[oldIdx];
- var previousEndAngle = previousProgress ? previousProgress.shape.endAngle : startAngle;
- var progress = createProgress(newIdx, previousEndAngle);
- var isClip = progressModel.get("clip");
- updateProps(progress, {
- shape: {
- endAngle: linearMap(val, valueExtent, angleExtent, isClip)
- }
- }, seriesModel);
- group.add(progress);
- setCommonECData(seriesModel.seriesIndex, data.dataType, newIdx, progress);
- progressList[newIdx] = progress;
- }
- }).execute();
- data.each(function(idx) {
- var itemModel = data.getItemModel(idx);
- var emphasisModel = itemModel.getModel("emphasis");
- var focus = emphasisModel.get("focus");
- var blurScope = emphasisModel.get("blurScope");
- var emphasisDisabled = emphasisModel.get("disabled");
- if (showPointer) {
- var pointer = data.getItemGraphicEl(idx);
- var symbolStyle = data.getItemVisual(idx, "style");
- var visualColor = symbolStyle.fill;
- if (pointer instanceof Image_default) {
- var pathStyle = pointer.style;
- pointer.useStyle(extend({
- image: pathStyle.image,
- x: pathStyle.x,
- y: pathStyle.y,
- width: pathStyle.width,
- height: pathStyle.height
- }, symbolStyle));
- } else {
- pointer.useStyle(symbolStyle);
- pointer.type !== "pointer" && pointer.setColor(visualColor);
- }
- pointer.setStyle(itemModel.getModel(["pointer", "itemStyle"]).getItemStyle());
- if (pointer.style.fill === "auto") {
- pointer.setStyle("fill", getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));
- }
- pointer.z2EmphasisLift = 0;
- setStatesStylesFromModel(pointer, itemModel);
- toggleHoverEmphasis(pointer, focus, blurScope, emphasisDisabled);
- }
- if (showProgress) {
- var progress = progressList[idx];
- progress.useStyle(data.getItemVisual(idx, "style"));
- progress.setStyle(itemModel.getModel(["progress", "itemStyle"]).getItemStyle());
- progress.z2EmphasisLift = 0;
- setStatesStylesFromModel(progress, itemModel);
- toggleHoverEmphasis(progress, focus, blurScope, emphasisDisabled);
- }
- });
- this._progressEls = progressList;
- }
- };
- GaugeView2.prototype._renderAnchor = function(seriesModel, posInfo) {
- var anchorModel = seriesModel.getModel("anchor");
- var showAnchor = anchorModel.get("show");
- if (showAnchor) {
- var anchorSize = anchorModel.get("size");
- var anchorType = anchorModel.get("icon");
- var offsetCenter = anchorModel.get("offsetCenter");
- var anchorKeepAspect = anchorModel.get("keepAspect");
- var anchor = createSymbol(anchorType, posInfo.cx - anchorSize / 2 + parsePercent2(offsetCenter[0], posInfo.r), posInfo.cy - anchorSize / 2 + parsePercent2(offsetCenter[1], posInfo.r), anchorSize, anchorSize, null, anchorKeepAspect);
- anchor.z2 = anchorModel.get("showAbove") ? 1 : 0;
- anchor.setStyle(anchorModel.getModel("itemStyle").getItemStyle());
- this.group.add(anchor);
- }
- };
- GaugeView2.prototype._renderTitleAndDetail = function(seriesModel, ecModel, api, getColor, posInfo) {
- var _this = this;
- var data = seriesModel.getData();
- var valueDim = data.mapDimension("value");
- var minVal = +seriesModel.get("min");
- var maxVal = +seriesModel.get("max");
- var contentGroup = new Group_default();
- var newTitleEls = [];
- var newDetailEls = [];
- var hasAnimation = seriesModel.isAnimationEnabled();
- var showPointerAbove = seriesModel.get(["pointer", "showAbove"]);
- data.diff(this._data).add(function(idx) {
- newTitleEls[idx] = new Text_default({
- silent: true
- });
- newDetailEls[idx] = new Text_default({
- silent: true
- });
- }).update(function(idx, oldIdx) {
- newTitleEls[idx] = _this._titleEls[oldIdx];
- newDetailEls[idx] = _this._detailEls[oldIdx];
- }).execute();
- data.each(function(idx) {
- var itemModel = data.getItemModel(idx);
- var value = data.get(valueDim, idx);
- var itemGroup = new Group_default();
- var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));
- var itemTitleModel = itemModel.getModel("title");
- if (itemTitleModel.get("show")) {
- var titleOffsetCenter = itemTitleModel.get("offsetCenter");
- var titleX = posInfo.cx + parsePercent2(titleOffsetCenter[0], posInfo.r);
- var titleY = posInfo.cy + parsePercent2(titleOffsetCenter[1], posInfo.r);
- var labelEl = newTitleEls[idx];
- labelEl.attr({
- z2: showPointerAbove ? 0 : 2,
- style: createTextStyle(itemTitleModel, {
- x: titleX,
- y: titleY,
- text: data.getName(idx),
- align: "center",
- verticalAlign: "middle"
- }, {
- inheritColor: autoColor
- })
- });
- itemGroup.add(labelEl);
- }
- var itemDetailModel = itemModel.getModel("detail");
- if (itemDetailModel.get("show")) {
- var detailOffsetCenter = itemDetailModel.get("offsetCenter");
- var detailX = posInfo.cx + parsePercent2(detailOffsetCenter[0], posInfo.r);
- var detailY = posInfo.cy + parsePercent2(detailOffsetCenter[1], posInfo.r);
- var width = parsePercent2(itemDetailModel.get("width"), posInfo.r);
- var height = parsePercent2(itemDetailModel.get("height"), posInfo.r);
- var detailColor = seriesModel.get(["progress", "show"]) ? data.getItemVisual(idx, "style").fill : autoColor;
- var labelEl = newDetailEls[idx];
- var formatter_1 = itemDetailModel.get("formatter");
- labelEl.attr({
- z2: showPointerAbove ? 0 : 2,
- style: createTextStyle(itemDetailModel, {
- x: detailX,
- y: detailY,
- text: formatLabel(value, formatter_1),
- width: isNaN(width) ? null : width,
- height: isNaN(height) ? null : height,
- align: "center",
- verticalAlign: "middle"
- }, {
- inheritColor: detailColor
- })
- });
- setLabelValueAnimation(labelEl, {
- normal: itemDetailModel
- }, value, function(value2) {
- return formatLabel(value2, formatter_1);
- });
- hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel, {
- getFormattedLabel: function(labelDataIndex, status, dataType, labelDimIndex, fmt, extendParams) {
- return formatLabel(extendParams ? extendParams.interpolatedValue : value, formatter_1);
- }
- });
- itemGroup.add(labelEl);
- }
- contentGroup.add(itemGroup);
- });
- this.group.add(contentGroup);
- this._titleEls = newTitleEls;
- this._detailEls = newDetailEls;
- };
- GaugeView2.type = "gauge";
- return GaugeView2;
- }(Chart_default)
- );
- var GaugeView_default = GaugeView;
- // node_modules/echarts/lib/chart/gauge/GaugeSeries.js
- var GaugeSeriesModel = (
- /** @class */
- function(_super) {
- __extends(GaugeSeriesModel2, _super);
- function GaugeSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = GaugeSeriesModel2.type;
- _this.visualStyleAccessPath = "itemStyle";
- return _this;
- }
- GaugeSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- return createSeriesDataSimply(this, ["value"]);
- };
- GaugeSeriesModel2.type = "series.gauge";
- GaugeSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- colorBy: "data",
- // 默认全局居中
- center: ["50%", "50%"],
- legendHoverLink: true,
- radius: "75%",
- startAngle: 225,
- endAngle: -45,
- clockwise: true,
- // 最小值
- min: 0,
- // 最大值
- max: 100,
- // 分割段数,默认为10
- splitNumber: 10,
- // 坐标轴线
- axisLine: {
- // 默认显示,属性show控制显示与否
- show: true,
- roundCap: false,
- lineStyle: {
- color: [[1, "#E6EBF8"]],
- width: 10
- }
- },
- // 坐标轴线
- progress: {
- // 默认显示,属性show控制显示与否
- show: false,
- overlap: true,
- width: 10,
- roundCap: false,
- clip: true
- },
- // 分隔线
- splitLine: {
- // 默认显示,属性show控制显示与否
- show: true,
- // 属性length控制线长
- length: 10,
- distance: 10,
- // 属性lineStyle(详见lineStyle)控制线条样式
- lineStyle: {
- color: "#63677A",
- width: 3,
- type: "solid"
- }
- },
- // 坐标轴小标记
- axisTick: {
- // 属性show控制显示与否,默认不显示
- show: true,
- // 每份split细分多少段
- splitNumber: 5,
- // 属性length控制线长
- length: 6,
- distance: 10,
- // 属性lineStyle控制线条样式
- lineStyle: {
- color: "#63677A",
- width: 1,
- type: "solid"
- }
- },
- axisLabel: {
- show: true,
- distance: 15,
- // formatter: null,
- color: "#464646",
- fontSize: 12,
- rotate: 0
- },
- pointer: {
- icon: null,
- offsetCenter: [0, 0],
- show: true,
- showAbove: true,
- length: "60%",
- width: 6,
- keepAspect: false
- },
- anchor: {
- show: false,
- showAbove: false,
- size: 6,
- icon: "circle",
- offsetCenter: [0, 0],
- keepAspect: false,
- itemStyle: {
- color: "#fff",
- borderWidth: 0,
- borderColor: "#5470c6"
- }
- },
- title: {
- show: true,
- // x, y,单位px
- offsetCenter: [0, "20%"],
- // 其余属性默认使用全局文本样式,详见TEXTSTYLE
- color: "#464646",
- fontSize: 16,
- valueAnimation: false
- },
- detail: {
- show: true,
- backgroundColor: "rgba(0,0,0,0)",
- borderWidth: 0,
- borderColor: "#ccc",
- width: 100,
- height: null,
- padding: [5, 10],
- // x, y,单位px
- offsetCenter: [0, "40%"],
- // formatter: null,
- // 其余属性默认使用全局文本样式,详见TEXTSTYLE
- color: "#464646",
- fontSize: 30,
- fontWeight: "bold",
- lineHeight: 30,
- valueAnimation: false
- }
- };
- return GaugeSeriesModel2;
- }(Series_default)
- );
- var GaugeSeries_default = GaugeSeriesModel;
- // node_modules/echarts/lib/chart/gauge/install.js
- function install14(registers) {
- registers.registerChartView(GaugeView_default);
- registers.registerSeriesModel(GaugeSeries_default);
- }
- // node_modules/echarts/lib/chart/funnel/FunnelView.js
- var opacityAccessPath = ["itemStyle", "opacity"];
- var FunnelPiece = (
- /** @class */
- function(_super) {
- __extends(FunnelPiece2, _super);
- function FunnelPiece2(data, idx) {
- var _this = _super.call(this) || this;
- var polygon = _this;
- var labelLine = new Polyline_default();
- var text = new Text_default();
- polygon.setTextContent(text);
- _this.setTextGuideLine(labelLine);
- _this.updateData(data, idx, true);
- return _this;
- }
- FunnelPiece2.prototype.updateData = function(data, idx, firstCreate) {
- var polygon = this;
- var seriesModel = data.hostModel;
- var itemModel = data.getItemModel(idx);
- var layout2 = data.getItemLayout(idx);
- var emphasisModel = itemModel.getModel("emphasis");
- var opacity = itemModel.get(opacityAccessPath);
- opacity = opacity == null ? 1 : opacity;
- if (!firstCreate) {
- saveOldStyle(polygon);
- }
- polygon.useStyle(data.getItemVisual(idx, "style"));
- polygon.style.lineJoin = "round";
- if (firstCreate) {
- polygon.setShape({
- points: layout2.points
- });
- polygon.style.opacity = 0;
- initProps(polygon, {
- style: {
- opacity
- }
- }, seriesModel, idx);
- } else {
- updateProps(polygon, {
- style: {
- opacity
- },
- shape: {
- points: layout2.points
- }
- }, seriesModel, idx);
- }
- setStatesStylesFromModel(polygon, itemModel);
- this._updateLabel(data, idx);
- toggleHoverEmphasis(this, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- };
- FunnelPiece2.prototype._updateLabel = function(data, idx) {
- var polygon = this;
- var labelLine = this.getTextGuideLine();
- var labelText = polygon.getTextContent();
- var seriesModel = data.hostModel;
- var itemModel = data.getItemModel(idx);
- var layout2 = data.getItemLayout(idx);
- var labelLayout2 = layout2.label;
- var style = data.getItemVisual(idx, "style");
- var visualColor = style.fill;
- setLabelStyle(
- // position will not be used in setLabelStyle
- labelText,
- getLabelStatesModels(itemModel),
- {
- labelFetcher: data.hostModel,
- labelDataIndex: idx,
- defaultOpacity: style.opacity,
- defaultText: data.getName(idx)
- },
- {
- normal: {
- align: labelLayout2.textAlign,
- verticalAlign: labelLayout2.verticalAlign
- }
- }
- );
- polygon.setTextConfig({
- local: true,
- inside: !!labelLayout2.inside,
- insideStroke: visualColor,
- // insideFill: 'auto',
- outsideFill: visualColor
- });
- var linePoints = labelLayout2.linePoints;
- labelLine.setShape({
- points: linePoints
- });
- polygon.textGuideLineConfig = {
- anchor: linePoints ? new Point_default(linePoints[0][0], linePoints[0][1]) : null
- };
- updateProps(labelText, {
- style: {
- x: labelLayout2.x,
- y: labelLayout2.y
- }
- }, seriesModel, idx);
- labelText.attr({
- rotation: labelLayout2.rotation,
- originX: labelLayout2.x,
- originY: labelLayout2.y,
- z2: 10
- });
- setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {
- // Default use item visual color
- stroke: visualColor
- });
- };
- return FunnelPiece2;
- }(Polygon_default)
- );
- var FunnelView = (
- /** @class */
- function(_super) {
- __extends(FunnelView2, _super);
- function FunnelView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = FunnelView2.type;
- _this.ignoreLabelLineUpdate = true;
- return _this;
- }
- FunnelView2.prototype.render = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var oldData = this._data;
- var group = this.group;
- data.diff(oldData).add(function(idx) {
- var funnelPiece = new FunnelPiece(data, idx);
- data.setItemGraphicEl(idx, funnelPiece);
- group.add(funnelPiece);
- }).update(function(newIdx, oldIdx) {
- var piece = oldData.getItemGraphicEl(oldIdx);
- piece.updateData(data, newIdx);
- group.add(piece);
- data.setItemGraphicEl(newIdx, piece);
- }).remove(function(idx) {
- var piece = oldData.getItemGraphicEl(idx);
- removeElementWithFadeOut(piece, seriesModel, idx);
- }).execute();
- this._data = data;
- };
- FunnelView2.prototype.remove = function() {
- this.group.removeAll();
- this._data = null;
- };
- FunnelView2.prototype.dispose = function() {
- };
- FunnelView2.type = "funnel";
- return FunnelView2;
- }(Chart_default)
- );
- var FunnelView_default = FunnelView;
- // node_modules/echarts/lib/chart/funnel/FunnelSeries.js
- var FunnelSeriesModel = (
- /** @class */
- function(_super) {
- __extends(FunnelSeriesModel2, _super);
- function FunnelSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = FunnelSeriesModel2.type;
- return _this;
- }
- FunnelSeriesModel2.prototype.init = function(option) {
- _super.prototype.init.apply(this, arguments);
- this.legendVisualProvider = new LegendVisualProvider_default(bind(this.getData, this), bind(this.getRawData, this));
- this._defaultLabelLine(option);
- };
- FunnelSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- return createSeriesDataSimply(this, {
- coordDimensions: ["value"],
- encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)
- });
- };
- FunnelSeriesModel2.prototype._defaultLabelLine = function(option) {
- defaultEmphasis(option, "labelLine", ["show"]);
- var labelLineNormalOpt = option.labelLine;
- var labelLineEmphasisOpt = option.emphasis.labelLine;
- labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;
- labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;
- };
- FunnelSeriesModel2.prototype.getDataParams = function(dataIndex) {
- var data = this.getData();
- var params = _super.prototype.getDataParams.call(this, dataIndex);
- var valueDim = data.mapDimension("value");
- var sum2 = data.getSum(valueDim);
- params.percent = !sum2 ? 0 : +(data.get(valueDim, dataIndex) / sum2 * 100).toFixed(2);
- params.$vars.push("percent");
- return params;
- };
- FunnelSeriesModel2.type = "series.funnel";
- FunnelSeriesModel2.defaultOption = {
- // zlevel: 0, // 一级层叠
- z: 2,
- legendHoverLink: true,
- colorBy: "data",
- left: 80,
- top: 60,
- right: 80,
- bottom: 60,
- // width: {totalWidth} - left - right,
- // height: {totalHeight} - top - bottom,
- // 默认取数据最小最大值
- // min: 0,
- // max: 100,
- minSize: "0%",
- maxSize: "100%",
- sort: "descending",
- orient: "vertical",
- gap: 0,
- funnelAlign: "center",
- label: {
- show: true,
- position: "outer"
- // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调
- },
- labelLine: {
- show: true,
- length: 20,
- lineStyle: {
- // color: 各异,
- width: 1
- }
- },
- itemStyle: {
- // color: 各异,
- borderColor: "#fff",
- borderWidth: 1
- },
- emphasis: {
- label: {
- show: true
- }
- },
- select: {
- itemStyle: {
- borderColor: "#212121"
- }
- }
- };
- return FunnelSeriesModel2;
- }(Series_default)
- );
- var FunnelSeries_default = FunnelSeriesModel;
- // node_modules/echarts/lib/chart/funnel/funnelLayout.js
- function getViewRect4(seriesModel, api) {
- return getLayoutRect(seriesModel.getBoxLayoutParams(), {
- width: api.getWidth(),
- height: api.getHeight()
- });
- }
- function getSortedIndices(data, sort3) {
- var valueDim = data.mapDimension("value");
- var valueArr = data.mapArray(valueDim, function(val) {
- return val;
- });
- var indices = [];
- var isAscending = sort3 === "ascending";
- for (var i = 0, len2 = data.count(); i < len2; i++) {
- indices[i] = i;
- }
- if (isFunction(sort3)) {
- indices.sort(sort3);
- } else if (sort3 !== "none") {
- indices.sort(function(a, b) {
- return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];
- });
- }
- return indices;
- }
- function labelLayout(data) {
- var seriesModel = data.hostModel;
- var orient = seriesModel.get("orient");
- data.each(function(idx) {
- var itemModel = data.getItemModel(idx);
- var labelModel = itemModel.getModel("label");
- var labelPosition = labelModel.get("position");
- var labelLineModel = itemModel.getModel("labelLine");
- var layout2 = data.getItemLayout(idx);
- var points = layout2.points;
- var isLabelInside = labelPosition === "inner" || labelPosition === "inside" || labelPosition === "center" || labelPosition === "insideLeft" || labelPosition === "insideRight";
- var textAlign;
- var textX;
- var textY;
- var linePoints;
- if (isLabelInside) {
- if (labelPosition === "insideLeft") {
- textX = (points[0][0] + points[3][0]) / 2 + 5;
- textY = (points[0][1] + points[3][1]) / 2;
- textAlign = "left";
- } else if (labelPosition === "insideRight") {
- textX = (points[1][0] + points[2][0]) / 2 - 5;
- textY = (points[1][1] + points[2][1]) / 2;
- textAlign = "right";
- } else {
- textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;
- textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;
- textAlign = "center";
- }
- linePoints = [[textX, textY], [textX, textY]];
- } else {
- var x1 = void 0;
- var y1 = void 0;
- var x2 = void 0;
- var y2 = void 0;
- var labelLineLen = labelLineModel.get("length");
- if (true) {
- if (orient === "vertical" && ["top", "bottom"].indexOf(labelPosition) > -1) {
- labelPosition = "left";
- console.warn("Position error: Funnel chart on vertical orient dose not support top and bottom.");
- }
- if (orient === "horizontal" && ["left", "right"].indexOf(labelPosition) > -1) {
- labelPosition = "bottom";
- console.warn("Position error: Funnel chart on horizontal orient dose not support left and right.");
- }
- }
- if (labelPosition === "left") {
- x1 = (points[3][0] + points[0][0]) / 2;
- y1 = (points[3][1] + points[0][1]) / 2;
- x2 = x1 - labelLineLen;
- textX = x2 - 5;
- textAlign = "right";
- } else if (labelPosition === "right") {
- x1 = (points[1][0] + points[2][0]) / 2;
- y1 = (points[1][1] + points[2][1]) / 2;
- x2 = x1 + labelLineLen;
- textX = x2 + 5;
- textAlign = "left";
- } else if (labelPosition === "top") {
- x1 = (points[3][0] + points[0][0]) / 2;
- y1 = (points[3][1] + points[0][1]) / 2;
- y2 = y1 - labelLineLen;
- textY = y2 - 5;
- textAlign = "center";
- } else if (labelPosition === "bottom") {
- x1 = (points[1][0] + points[2][0]) / 2;
- y1 = (points[1][1] + points[2][1]) / 2;
- y2 = y1 + labelLineLen;
- textY = y2 + 5;
- textAlign = "center";
- } else if (labelPosition === "rightTop") {
- x1 = orient === "horizontal" ? points[3][0] : points[1][0];
- y1 = orient === "horizontal" ? points[3][1] : points[1][1];
- if (orient === "horizontal") {
- y2 = y1 - labelLineLen;
- textY = y2 - 5;
- textAlign = "center";
- } else {
- x2 = x1 + labelLineLen;
- textX = x2 + 5;
- textAlign = "top";
- }
- } else if (labelPosition === "rightBottom") {
- x1 = points[2][0];
- y1 = points[2][1];
- if (orient === "horizontal") {
- y2 = y1 + labelLineLen;
- textY = y2 + 5;
- textAlign = "center";
- } else {
- x2 = x1 + labelLineLen;
- textX = x2 + 5;
- textAlign = "bottom";
- }
- } else if (labelPosition === "leftTop") {
- x1 = points[0][0];
- y1 = orient === "horizontal" ? points[0][1] : points[1][1];
- if (orient === "horizontal") {
- y2 = y1 - labelLineLen;
- textY = y2 - 5;
- textAlign = "center";
- } else {
- x2 = x1 - labelLineLen;
- textX = x2 - 5;
- textAlign = "right";
- }
- } else if (labelPosition === "leftBottom") {
- x1 = orient === "horizontal" ? points[1][0] : points[3][0];
- y1 = orient === "horizontal" ? points[1][1] : points[2][1];
- if (orient === "horizontal") {
- y2 = y1 + labelLineLen;
- textY = y2 + 5;
- textAlign = "center";
- } else {
- x2 = x1 - labelLineLen;
- textX = x2 - 5;
- textAlign = "right";
- }
- } else {
- x1 = (points[1][0] + points[2][0]) / 2;
- y1 = (points[1][1] + points[2][1]) / 2;
- if (orient === "horizontal") {
- y2 = y1 + labelLineLen;
- textY = y2 + 5;
- textAlign = "center";
- } else {
- x2 = x1 + labelLineLen;
- textX = x2 + 5;
- textAlign = "left";
- }
- }
- if (orient === "horizontal") {
- x2 = x1;
- textX = x2;
- } else {
- y2 = y1;
- textY = y2;
- }
- linePoints = [[x1, y1], [x2, y2]];
- }
- layout2.label = {
- linePoints,
- x: textX,
- y: textY,
- verticalAlign: "middle",
- textAlign,
- inside: isLabelInside
- };
- });
- }
- function funnelLayout(ecModel, api) {
- ecModel.eachSeriesByType("funnel", function(seriesModel) {
- var data = seriesModel.getData();
- var valueDim = data.mapDimension("value");
- var sort3 = seriesModel.get("sort");
- var viewRect = getViewRect4(seriesModel, api);
- var orient = seriesModel.get("orient");
- var viewWidth = viewRect.width;
- var viewHeight = viewRect.height;
- var indices = getSortedIndices(data, sort3);
- var x = viewRect.x;
- var y = viewRect.y;
- var sizeExtent = orient === "horizontal" ? [parsePercent2(seriesModel.get("minSize"), viewHeight), parsePercent2(seriesModel.get("maxSize"), viewHeight)] : [parsePercent2(seriesModel.get("minSize"), viewWidth), parsePercent2(seriesModel.get("maxSize"), viewWidth)];
- var dataExtent = data.getDataExtent(valueDim);
- var min = seriesModel.get("min");
- var max = seriesModel.get("max");
- if (min == null) {
- min = Math.min(dataExtent[0], 0);
- }
- if (max == null) {
- max = dataExtent[1];
- }
- var funnelAlign = seriesModel.get("funnelAlign");
- var gap = seriesModel.get("gap");
- var viewSize = orient === "horizontal" ? viewWidth : viewHeight;
- var itemSize = (viewSize - gap * (data.count() - 1)) / data.count();
- var getLinePoints = function(idx2, offset) {
- if (orient === "horizontal") {
- var val_1 = data.get(valueDim, idx2) || 0;
- var itemHeight = linearMap(val_1, [min, max], sizeExtent, true);
- var y0 = void 0;
- switch (funnelAlign) {
- case "top":
- y0 = y;
- break;
- case "center":
- y0 = y + (viewHeight - itemHeight) / 2;
- break;
- case "bottom":
- y0 = y + (viewHeight - itemHeight);
- break;
- }
- return [[offset, y0], [offset, y0 + itemHeight]];
- }
- var val = data.get(valueDim, idx2) || 0;
- var itemWidth = linearMap(val, [min, max], sizeExtent, true);
- var x0;
- switch (funnelAlign) {
- case "left":
- x0 = x;
- break;
- case "center":
- x0 = x + (viewWidth - itemWidth) / 2;
- break;
- case "right":
- x0 = x + viewWidth - itemWidth;
- break;
- }
- return [[x0, offset], [x0 + itemWidth, offset]];
- };
- if (sort3 === "ascending") {
- itemSize = -itemSize;
- gap = -gap;
- if (orient === "horizontal") {
- x += viewWidth;
- } else {
- y += viewHeight;
- }
- indices = indices.reverse();
- }
- for (var i = 0; i < indices.length; i++) {
- var idx = indices[i];
- var nextIdx = indices[i + 1];
- var itemModel = data.getItemModel(idx);
- if (orient === "horizontal") {
- var width = itemModel.get(["itemStyle", "width"]);
- if (width == null) {
- width = itemSize;
- } else {
- width = parsePercent2(width, viewWidth);
- if (sort3 === "ascending") {
- width = -width;
- }
- }
- var start = getLinePoints(idx, x);
- var end = getLinePoints(nextIdx, x + width);
- x += width + gap;
- data.setItemLayout(idx, {
- points: start.concat(end.slice().reverse())
- });
- } else {
- var height = itemModel.get(["itemStyle", "height"]);
- if (height == null) {
- height = itemSize;
- } else {
- height = parsePercent2(height, viewHeight);
- if (sort3 === "ascending") {
- height = -height;
- }
- }
- var start = getLinePoints(idx, y);
- var end = getLinePoints(nextIdx, y + height);
- y += height + gap;
- data.setItemLayout(idx, {
- points: start.concat(end.slice().reverse())
- });
- }
- }
- labelLayout(data);
- });
- }
- // node_modules/echarts/lib/chart/funnel/install.js
- function install15(registers) {
- registers.registerChartView(FunnelView_default);
- registers.registerSeriesModel(FunnelSeries_default);
- registers.registerLayout(funnelLayout);
- registers.registerProcessor(dataFilter("funnel"));
- }
- // node_modules/echarts/lib/chart/parallel/ParallelView.js
- var DEFAULT_SMOOTH = 0.3;
- var ParallelView = (
- /** @class */
- function(_super) {
- __extends(ParallelView2, _super);
- function ParallelView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = ParallelView2.type;
- _this._dataGroup = new Group_default();
- _this._initialized = false;
- return _this;
- }
- ParallelView2.prototype.init = function() {
- this.group.add(this._dataGroup);
- };
- ParallelView2.prototype.render = function(seriesModel, ecModel, api, payload) {
- this._progressiveEls = null;
- var dataGroup = this._dataGroup;
- var data = seriesModel.getData();
- var oldData = this._data;
- var coordSys = seriesModel.coordinateSystem;
- var dimensions = coordSys.dimensions;
- var seriesScope = makeSeriesScope(seriesModel);
- data.diff(oldData).add(add).update(update).remove(remove).execute();
- function add(newDataIndex) {
- var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);
- updateElCommon(line, data, newDataIndex, seriesScope);
- }
- function update(newDataIndex, oldDataIndex) {
- var line = oldData.getItemGraphicEl(oldDataIndex);
- var points = createLinePoints(data, newDataIndex, dimensions, coordSys);
- data.setItemGraphicEl(newDataIndex, line);
- updateProps(line, {
- shape: {
- points
- }
- }, seriesModel, newDataIndex);
- saveOldStyle(line);
- updateElCommon(line, data, newDataIndex, seriesScope);
- }
- function remove(oldDataIndex) {
- var line = oldData.getItemGraphicEl(oldDataIndex);
- dataGroup.remove(line);
- }
- if (!this._initialized) {
- this._initialized = true;
- var clipPath = createGridClipShape(coordSys, seriesModel, function() {
- setTimeout(function() {
- dataGroup.removeClipPath();
- });
- });
- dataGroup.setClipPath(clipPath);
- }
- this._data = data;
- };
- ParallelView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) {
- this._initialized = true;
- this._data = null;
- this._dataGroup.removeAll();
- };
- ParallelView2.prototype.incrementalRender = function(taskParams, seriesModel, ecModel) {
- var data = seriesModel.getData();
- var coordSys = seriesModel.coordinateSystem;
- var dimensions = coordSys.dimensions;
- var seriesScope = makeSeriesScope(seriesModel);
- var progressiveEls = this._progressiveEls = [];
- for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {
- var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);
- line.incremental = true;
- updateElCommon(line, data, dataIndex, seriesScope);
- progressiveEls.push(line);
- }
- };
- ParallelView2.prototype.remove = function() {
- this._dataGroup && this._dataGroup.removeAll();
- this._data = null;
- };
- ParallelView2.type = "parallel";
- return ParallelView2;
- }(Chart_default)
- );
- function createGridClipShape(coordSys, seriesModel, cb) {
- var parallelModel = coordSys.model;
- var rect = coordSys.getRect();
- var rectEl = new Rect_default({
- shape: {
- x: rect.x,
- y: rect.y,
- width: rect.width,
- height: rect.height
- }
- });
- var dim = parallelModel.get("layout") === "horizontal" ? "width" : "height";
- rectEl.setShape(dim, 0);
- initProps(rectEl, {
- shape: {
- width: rect.width,
- height: rect.height
- }
- }, seriesModel, cb);
- return rectEl;
- }
- function createLinePoints(data, dataIndex, dimensions, coordSys) {
- var points = [];
- for (var i = 0; i < dimensions.length; i++) {
- var dimName = dimensions[i];
- var value = data.get(data.mapDimension(dimName), dataIndex);
- if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {
- points.push(coordSys.dataToPoint(value, dimName));
- }
- }
- return points;
- }
- function addEl(data, dataGroup, dataIndex, dimensions, coordSys) {
- var points = createLinePoints(data, dataIndex, dimensions, coordSys);
- var line = new Polyline_default({
- shape: {
- points
- },
- // silent: true,
- z2: 10
- });
- dataGroup.add(line);
- data.setItemGraphicEl(dataIndex, line);
- return line;
- }
- function makeSeriesScope(seriesModel) {
- var smooth = seriesModel.get("smooth", true);
- smooth === true && (smooth = DEFAULT_SMOOTH);
- smooth = numericToNumber(smooth);
- eqNaN(smooth) && (smooth = 0);
- return {
- smooth
- };
- }
- function updateElCommon(el, data, dataIndex, seriesScope) {
- el.useStyle(data.getItemVisual(dataIndex, "style"));
- el.style.fill = null;
- el.setShape("smooth", seriesScope.smooth);
- var itemModel = data.getItemModel(dataIndex);
- var emphasisModel = itemModel.getModel("emphasis");
- setStatesStylesFromModel(el, itemModel, "lineStyle");
- toggleHoverEmphasis(el, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- }
- function isEmptyValue(val, axisType) {
- return axisType === "category" ? val == null : val == null || isNaN(val);
- }
- var ParallelView_default = ParallelView;
- // node_modules/echarts/lib/chart/parallel/ParallelSeries.js
- var ParallelSeriesModel = (
- /** @class */
- function(_super) {
- __extends(ParallelSeriesModel2, _super);
- function ParallelSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = ParallelSeriesModel2.type;
- _this.visualStyleAccessPath = "lineStyle";
- _this.visualDrawType = "stroke";
- return _this;
- }
- ParallelSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- return createSeriesData_default(null, this, {
- useEncodeDefaulter: bind(makeDefaultEncode, null, this)
- });
- };
- ParallelSeriesModel2.prototype.getRawIndicesByActiveState = function(activeState) {
- var coordSys = this.coordinateSystem;
- var data = this.getData();
- var indices = [];
- coordSys.eachActiveState(data, function(theActiveState, dataIndex) {
- if (activeState === theActiveState) {
- indices.push(data.getRawIndex(dataIndex));
- }
- });
- return indices;
- };
- ParallelSeriesModel2.type = "series.parallel";
- ParallelSeriesModel2.dependencies = ["parallel"];
- ParallelSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- coordinateSystem: "parallel",
- parallelIndex: 0,
- label: {
- show: false
- },
- inactiveOpacity: 0.05,
- activeOpacity: 1,
- lineStyle: {
- width: 1,
- opacity: 0.45,
- type: "solid"
- },
- emphasis: {
- label: {
- show: false
- }
- },
- progressive: 500,
- smooth: false,
- animationEasing: "linear"
- };
- return ParallelSeriesModel2;
- }(Series_default)
- );
- function makeDefaultEncode(seriesModel) {
- var parallelModel = seriesModel.ecModel.getComponent("parallel", seriesModel.get("parallelIndex"));
- if (!parallelModel) {
- return;
- }
- var encodeDefine = {};
- each(parallelModel.dimensions, function(axisDim) {
- var dataDimIndex = convertDimNameToNumber(axisDim);
- encodeDefine[axisDim] = dataDimIndex;
- });
- return encodeDefine;
- }
- function convertDimNameToNumber(dimName) {
- return +dimName.replace("dim", "");
- }
- var ParallelSeries_default = ParallelSeriesModel;
- // node_modules/echarts/lib/chart/parallel/parallelVisual.js
- var opacityAccessPath2 = ["lineStyle", "opacity"];
- var parallelVisual = {
- seriesType: "parallel",
- reset: function(seriesModel, ecModel) {
- var coordSys = seriesModel.coordinateSystem;
- var opacityMap = {
- normal: seriesModel.get(["lineStyle", "opacity"]),
- active: seriesModel.get("activeOpacity"),
- inactive: seriesModel.get("inactiveOpacity")
- };
- return {
- progress: function(params, data) {
- coordSys.eachActiveState(data, function(activeState, dataIndex) {
- var opacity = opacityMap[activeState];
- if (activeState === "normal" && data.hasItemOption) {
- var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath2, true);
- itemOpacity != null && (opacity = itemOpacity);
- }
- var existsStyle = data.ensureUniqueItemVisual(dataIndex, "style");
- existsStyle.opacity = opacity;
- }, params.start, params.end);
- }
- };
- }
- };
- var parallelVisual_default = parallelVisual;
- // node_modules/echarts/lib/chart/parallel/install.js
- function install16(registers) {
- use(install4);
- registers.registerChartView(ParallelView_default);
- registers.registerSeriesModel(ParallelSeries_default);
- registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, parallelVisual_default);
- }
- // node_modules/echarts/lib/chart/sankey/SankeyView.js
- var SankeyPathShape = (
- /** @class */
- function() {
- function SankeyPathShape2() {
- this.x1 = 0;
- this.y1 = 0;
- this.x2 = 0;
- this.y2 = 0;
- this.cpx1 = 0;
- this.cpy1 = 0;
- this.cpx2 = 0;
- this.cpy2 = 0;
- this.extent = 0;
- }
- return SankeyPathShape2;
- }()
- );
- var SankeyPath = (
- /** @class */
- function(_super) {
- __extends(SankeyPath2, _super);
- function SankeyPath2(opts) {
- return _super.call(this, opts) || this;
- }
- SankeyPath2.prototype.getDefaultShape = function() {
- return new SankeyPathShape();
- };
- SankeyPath2.prototype.buildPath = function(ctx, shape) {
- var extent = shape.extent;
- ctx.moveTo(shape.x1, shape.y1);
- ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);
- if (shape.orient === "vertical") {
- ctx.lineTo(shape.x2 + extent, shape.y2);
- ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);
- } else {
- ctx.lineTo(shape.x2, shape.y2 + extent);
- ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);
- }
- ctx.closePath();
- };
- SankeyPath2.prototype.highlight = function() {
- enterEmphasis(this);
- };
- SankeyPath2.prototype.downplay = function() {
- leaveEmphasis(this);
- };
- return SankeyPath2;
- }(Path_default)
- );
- var SankeyView = (
- /** @class */
- function(_super) {
- __extends(SankeyView2, _super);
- function SankeyView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = SankeyView2.type;
- _this._focusAdjacencyDisabled = false;
- return _this;
- }
- SankeyView2.prototype.render = function(seriesModel, ecModel, api) {
- var sankeyView = this;
- var graph = seriesModel.getGraph();
- var group = this.group;
- var layoutInfo = seriesModel.layoutInfo;
- var width = layoutInfo.width;
- var height = layoutInfo.height;
- var nodeData = seriesModel.getData();
- var edgeData = seriesModel.getData("edge");
- var orient = seriesModel.get("orient");
- this._model = seriesModel;
- group.removeAll();
- group.x = layoutInfo.x;
- group.y = layoutInfo.y;
- graph.eachEdge(function(edge) {
- var curve = new SankeyPath();
- var ecData = getECData(curve);
- ecData.dataIndex = edge.dataIndex;
- ecData.seriesIndex = seriesModel.seriesIndex;
- ecData.dataType = "edge";
- var edgeModel = edge.getModel();
- var lineStyleModel = edgeModel.getModel("lineStyle");
- var curvature = lineStyleModel.get("curveness");
- var n1Layout = edge.node1.getLayout();
- var node1Model = edge.node1.getModel();
- var dragX1 = node1Model.get("localX");
- var dragY1 = node1Model.get("localY");
- var n2Layout = edge.node2.getLayout();
- var node2Model = edge.node2.getModel();
- var dragX2 = node2Model.get("localX");
- var dragY2 = node2Model.get("localY");
- var edgeLayout = edge.getLayout();
- var x1;
- var y1;
- var x2;
- var y2;
- var cpx1;
- var cpy1;
- var cpx2;
- var cpy2;
- curve.shape.extent = Math.max(1, edgeLayout.dy);
- curve.shape.orient = orient;
- if (orient === "vertical") {
- x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;
- y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;
- x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;
- y2 = dragY2 != null ? dragY2 * height : n2Layout.y;
- cpx1 = x1;
- cpy1 = y1 * (1 - curvature) + y2 * curvature;
- cpx2 = x2;
- cpy2 = y1 * curvature + y2 * (1 - curvature);
- } else {
- x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;
- y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;
- x2 = dragX2 != null ? dragX2 * width : n2Layout.x;
- y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;
- cpx1 = x1 * (1 - curvature) + x2 * curvature;
- cpy1 = y1;
- cpx2 = x1 * curvature + x2 * (1 - curvature);
- cpy2 = y2;
- }
- curve.setShape({
- x1,
- y1,
- x2,
- y2,
- cpx1,
- cpy1,
- cpx2,
- cpy2
- });
- curve.useStyle(lineStyleModel.getItemStyle());
- applyCurveStyle(curve.style, orient, edge);
- var defaultEdgeLabelText = "" + edgeModel.get("value");
- var edgeLabelStateModels = getLabelStatesModels(edgeModel, "edgeLabel");
- setLabelStyle(curve, edgeLabelStateModels, {
- labelFetcher: {
- getFormattedLabel: function(dataIndex, stateName, dataType, labelDimIndex, formatter, extendParams) {
- return seriesModel.getFormattedLabel(
- dataIndex,
- stateName,
- "edge",
- labelDimIndex,
- // ensure edgeLabel formatter is provided
- // to prevent the inheritance from `label.formatter` of the series
- retrieve3(formatter, edgeLabelStateModels.normal && edgeLabelStateModels.normal.get("formatter"), defaultEdgeLabelText),
- extendParams
- );
- }
- },
- labelDataIndex: edge.dataIndex,
- defaultText: defaultEdgeLabelText
- });
- curve.setTextConfig({
- position: "inside"
- });
- var emphasisModel = edgeModel.getModel("emphasis");
- setStatesStylesFromModel(curve, edgeModel, "lineStyle", function(model) {
- var style = model.getItemStyle();
- applyCurveStyle(style, orient, edge);
- return style;
- });
- group.add(curve);
- edgeData.setItemGraphicEl(edge.dataIndex, curve);
- var focus = emphasisModel.get("focus");
- toggleHoverEmphasis(curve, focus === "adjacency" ? edge.getAdjacentDataIndices() : focus === "trajectory" ? edge.getTrajectoryDataIndices() : focus, emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- });
- graph.eachNode(function(node) {
- var layout2 = node.getLayout();
- var itemModel = node.getModel();
- var dragX = itemModel.get("localX");
- var dragY = itemModel.get("localY");
- var emphasisModel = itemModel.getModel("emphasis");
- var rect = new Rect_default({
- shape: {
- x: dragX != null ? dragX * width : layout2.x,
- y: dragY != null ? dragY * height : layout2.y,
- width: layout2.dx,
- height: layout2.dy
- },
- style: itemModel.getModel("itemStyle").getItemStyle(),
- z2: 10
- });
- setLabelStyle(rect, getLabelStatesModels(itemModel), {
- labelFetcher: {
- getFormattedLabel: function(dataIndex, stateName) {
- return seriesModel.getFormattedLabel(dataIndex, stateName, "node");
- }
- },
- labelDataIndex: node.dataIndex,
- defaultText: node.id
- });
- rect.disableLabelAnimation = true;
- rect.setStyle("fill", node.getVisual("color"));
- rect.setStyle("decal", node.getVisual("style").decal);
- setStatesStylesFromModel(rect, itemModel);
- group.add(rect);
- nodeData.setItemGraphicEl(node.dataIndex, rect);
- getECData(rect).dataType = "node";
- var focus = emphasisModel.get("focus");
- toggleHoverEmphasis(rect, focus === "adjacency" ? node.getAdjacentDataIndices() : focus === "trajectory" ? node.getTrajectoryDataIndices() : focus, emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- });
- nodeData.eachItemGraphicEl(function(el, dataIndex) {
- var itemModel = nodeData.getItemModel(dataIndex);
- if (itemModel.get("draggable")) {
- el.drift = function(dx, dy) {
- sankeyView._focusAdjacencyDisabled = true;
- this.shape.x += dx;
- this.shape.y += dy;
- this.dirty();
- api.dispatchAction({
- type: "dragNode",
- seriesId: seriesModel.id,
- dataIndex: nodeData.getRawIndex(dataIndex),
- localX: this.shape.x / width,
- localY: this.shape.y / height
- });
- };
- el.ondragend = function() {
- sankeyView._focusAdjacencyDisabled = false;
- };
- el.draggable = true;
- el.cursor = "move";
- }
- });
- if (!this._data && seriesModel.isAnimationEnabled()) {
- group.setClipPath(createGridClipShape2(group.getBoundingRect(), seriesModel, function() {
- group.removeClipPath();
- }));
- }
- this._data = seriesModel.getData();
- };
- SankeyView2.prototype.dispose = function() {
- };
- SankeyView2.type = "sankey";
- return SankeyView2;
- }(Chart_default)
- );
- function applyCurveStyle(curveProps, orient, edge) {
- switch (curveProps.fill) {
- case "source":
- curveProps.fill = edge.node1.getVisual("color");
- curveProps.decal = edge.node1.getVisual("style").decal;
- break;
- case "target":
- curveProps.fill = edge.node2.getVisual("color");
- curveProps.decal = edge.node2.getVisual("style").decal;
- break;
- case "gradient":
- var sourceColor = edge.node1.getVisual("color");
- var targetColor = edge.node2.getVisual("color");
- if (isString(sourceColor) && isString(targetColor)) {
- curveProps.fill = new LinearGradient_default(0, 0, +(orient === "horizontal"), +(orient === "vertical"), [{
- color: sourceColor,
- offset: 0
- }, {
- color: targetColor,
- offset: 1
- }]);
- }
- }
- }
- function createGridClipShape2(rect, seriesModel, cb) {
- var rectEl = new Rect_default({
- shape: {
- x: rect.x - 10,
- y: rect.y - 10,
- width: 0,
- height: rect.height + 20
- }
- });
- initProps(rectEl, {
- shape: {
- width: rect.width + 20
- }
- }, seriesModel, cb);
- return rectEl;
- }
- var SankeyView_default = SankeyView;
- // node_modules/echarts/lib/chart/sankey/SankeySeries.js
- var SankeySeriesModel = (
- /** @class */
- function(_super) {
- __extends(SankeySeriesModel2, _super);
- function SankeySeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = SankeySeriesModel2.type;
- return _this;
- }
- SankeySeriesModel2.prototype.getInitialData = function(option, ecModel) {
- var links = option.edges || option.links;
- var nodes = option.data || option.nodes;
- var levels = option.levels;
- this.levelModels = [];
- var levelModels = this.levelModels;
- for (var i = 0; i < levels.length; i++) {
- if (levels[i].depth != null && levels[i].depth >= 0) {
- levelModels[levels[i].depth] = new Model_default(levels[i], this, ecModel);
- } else {
- if (true) {
- throw new Error("levels[i].depth is mandatory and should be natural number");
- }
- }
- }
- if (nodes && links) {
- var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);
- return graph.data;
- }
- function beforeLink(nodeData, edgeData) {
- nodeData.wrapMethod("getItemModel", function(model, idx) {
- var seriesModel = model.parentModel;
- var layout2 = seriesModel.getData().getItemLayout(idx);
- if (layout2) {
- var nodeDepth = layout2.depth;
- var levelModel = seriesModel.levelModels[nodeDepth];
- if (levelModel) {
- model.parentModel = levelModel;
- }
- }
- return model;
- });
- edgeData.wrapMethod("getItemModel", function(model, idx) {
- var seriesModel = model.parentModel;
- var edge = seriesModel.getGraph().getEdgeByIndex(idx);
- var layout2 = edge.node1.getLayout();
- if (layout2) {
- var depth = layout2.depth;
- var levelModel = seriesModel.levelModels[depth];
- if (levelModel) {
- model.parentModel = levelModel;
- }
- }
- return model;
- });
- }
- };
- SankeySeriesModel2.prototype.setNodePosition = function(dataIndex, localPosition) {
- var nodes = this.option.data || this.option.nodes;
- var dataItem = nodes[dataIndex];
- dataItem.localX = localPosition[0];
- dataItem.localY = localPosition[1];
- };
- SankeySeriesModel2.prototype.getGraph = function() {
- return this.getData().graph;
- };
- SankeySeriesModel2.prototype.getEdgeData = function() {
- return this.getGraph().edgeData;
- };
- SankeySeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) {
- function noValue(val) {
- return isNaN(val) || val == null;
- }
- if (dataType === "edge") {
- var params = this.getDataParams(dataIndex, dataType);
- var rawDataOpt = params.data;
- var edgeValue = params.value;
- var edgeName = rawDataOpt.source + " -- " + rawDataOpt.target;
- return createTooltipMarkup("nameValue", {
- name: edgeName,
- value: edgeValue,
- noValue: noValue(edgeValue)
- });
- } else {
- var node = this.getGraph().getNodeByIndex(dataIndex);
- var value = node.getLayout().value;
- var name_1 = this.getDataParams(dataIndex, dataType).data.name;
- return createTooltipMarkup("nameValue", {
- name: name_1 != null ? name_1 + "" : null,
- value,
- noValue: noValue(value)
- });
- }
- };
- SankeySeriesModel2.prototype.optionUpdated = function() {
- };
- SankeySeriesModel2.prototype.getDataParams = function(dataIndex, dataType) {
- var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);
- if (params.value == null && dataType === "node") {
- var node = this.getGraph().getNodeByIndex(dataIndex);
- var nodeValue = node.getLayout().value;
- params.value = nodeValue;
- }
- return params;
- };
- SankeySeriesModel2.type = "series.sankey";
- SankeySeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- coordinateSystem: "view",
- left: "5%",
- top: "5%",
- right: "20%",
- bottom: "5%",
- orient: "horizontal",
- nodeWidth: 20,
- nodeGap: 8,
- draggable: true,
- layoutIterations: 32,
- label: {
- show: true,
- position: "right",
- fontSize: 12
- },
- edgeLabel: {
- show: false,
- fontSize: 12
- },
- levels: [],
- nodeAlign: "justify",
- lineStyle: {
- color: "#314656",
- opacity: 0.2,
- curveness: 0.5
- },
- emphasis: {
- label: {
- show: true
- },
- lineStyle: {
- opacity: 0.5
- }
- },
- select: {
- itemStyle: {
- borderColor: "#212121"
- }
- },
- animationEasing: "linear",
- animationDuration: 1e3
- };
- return SankeySeriesModel2;
- }(Series_default)
- );
- var SankeySeries_default = SankeySeriesModel;
- // node_modules/echarts/lib/chart/sankey/sankeyLayout.js
- function sankeyLayout(ecModel, api) {
- ecModel.eachSeriesByType("sankey", function(seriesModel) {
- var nodeWidth = seriesModel.get("nodeWidth");
- var nodeGap = seriesModel.get("nodeGap");
- var layoutInfo = getViewRect5(seriesModel, api);
- seriesModel.layoutInfo = layoutInfo;
- var width = layoutInfo.width;
- var height = layoutInfo.height;
- var graph = seriesModel.getGraph();
- var nodes = graph.nodes;
- var edges = graph.edges;
- computeNodeValues(nodes);
- var filteredNodes = filter(nodes, function(node) {
- return node.getLayout().value === 0;
- });
- var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get("layoutIterations");
- var orient = seriesModel.get("orient");
- var nodeAlign = seriesModel.get("nodeAlign");
- layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);
- });
- }
- function getViewRect5(seriesModel, api) {
- return getLayoutRect(seriesModel.getBoxLayoutParams(), {
- width: api.getWidth(),
- height: api.getHeight()
- });
- }
- function layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {
- computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);
- computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);
- computeEdgeDepths(nodes, orient);
- }
- function computeNodeValues(nodes) {
- each(nodes, function(node) {
- var value1 = sum(node.outEdges, getEdgeValue);
- var value2 = sum(node.inEdges, getEdgeValue);
- var nodeRawValue = node.getValue() || 0;
- var value = Math.max(value1, value2, nodeRawValue);
- node.setLayout({
- value
- }, true);
- });
- }
- function computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {
- var remainEdges = [];
- var indegreeArr = [];
- var zeroIndegrees = [];
- var nextTargetNode = [];
- var x = 0;
- for (var i = 0; i < edges.length; i++) {
- remainEdges[i] = 1;
- }
- for (var i = 0; i < nodes.length; i++) {
- indegreeArr[i] = nodes[i].inEdges.length;
- if (indegreeArr[i] === 0) {
- zeroIndegrees.push(nodes[i]);
- }
- }
- var maxNodeDepth = -1;
- while (zeroIndegrees.length) {
- for (var idx = 0; idx < zeroIndegrees.length; idx++) {
- var node = zeroIndegrees[idx];
- var item = node.hostGraph.data.getRawDataItem(node.dataIndex);
- var isItemDepth = item.depth != null && item.depth >= 0;
- if (isItemDepth && item.depth > maxNodeDepth) {
- maxNodeDepth = item.depth;
- }
- node.setLayout({
- depth: isItemDepth ? item.depth : x
- }, true);
- orient === "vertical" ? node.setLayout({
- dy: nodeWidth
- }, true) : node.setLayout({
- dx: nodeWidth
- }, true);
- for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {
- var edge = node.outEdges[edgeIdx];
- var indexEdge = edges.indexOf(edge);
- remainEdges[indexEdge] = 0;
- var targetNode = edge.node2;
- var nodeIndex = nodes.indexOf(targetNode);
- if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {
- nextTargetNode.push(targetNode);
- }
- }
- }
- ++x;
- zeroIndegrees = nextTargetNode;
- nextTargetNode = [];
- }
- for (var i = 0; i < remainEdges.length; i++) {
- if (remainEdges[i] === 1) {
- throw new Error("Sankey is a DAG, the original data has cycle!");
- }
- }
- var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;
- if (nodeAlign && nodeAlign !== "left") {
- adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);
- }
- var kx = orient === "vertical" ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth;
- scaleNodeBreadths(nodes, kx, orient);
- }
- function isNodeDepth(node) {
- var item = node.hostGraph.data.getRawDataItem(node.dataIndex);
- return item.depth != null && item.depth >= 0;
- }
- function adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {
- if (nodeAlign === "right") {
- var nextSourceNode = [];
- var remainNodes = nodes;
- var nodeHeight = 0;
- while (remainNodes.length) {
- for (var i = 0; i < remainNodes.length; i++) {
- var node = remainNodes[i];
- node.setLayout({
- skNodeHeight: nodeHeight
- }, true);
- for (var j = 0; j < node.inEdges.length; j++) {
- var edge = node.inEdges[j];
- if (nextSourceNode.indexOf(edge.node1) < 0) {
- nextSourceNode.push(edge.node1);
- }
- }
- }
- remainNodes = nextSourceNode;
- nextSourceNode = [];
- ++nodeHeight;
- }
- each(nodes, function(node2) {
- if (!isNodeDepth(node2)) {
- node2.setLayout({
- depth: Math.max(0, maxDepth - node2.getLayout().skNodeHeight)
- }, true);
- }
- });
- } else if (nodeAlign === "justify") {
- moveSinksRight(nodes, maxDepth);
- }
- }
- function moveSinksRight(nodes, maxDepth) {
- each(nodes, function(node) {
- if (!isNodeDepth(node) && !node.outEdges.length) {
- node.setLayout({
- depth: maxDepth
- }, true);
- }
- });
- }
- function scaleNodeBreadths(nodes, kx, orient) {
- each(nodes, function(node) {
- var nodeDepth = node.getLayout().depth * kx;
- orient === "vertical" ? node.setLayout({
- y: nodeDepth
- }, true) : node.setLayout({
- x: nodeDepth
- }, true);
- });
- }
- function computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {
- var nodesByBreadth = prepareNodesByBreadth(nodes, orient);
- initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);
- resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);
- for (var alpha = 1; iterations > 0; iterations--) {
- alpha *= 0.99;
- relaxRightToLeft(nodesByBreadth, alpha, orient);
- resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);
- relaxLeftToRight(nodesByBreadth, alpha, orient);
- resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);
- }
- }
- function prepareNodesByBreadth(nodes, orient) {
- var nodesByBreadth = [];
- var keyAttr = orient === "vertical" ? "y" : "x";
- var groupResult = groupData(nodes, function(node) {
- return node.getLayout()[keyAttr];
- });
- groupResult.keys.sort(function(a, b) {
- return a - b;
- });
- each(groupResult.keys, function(key) {
- nodesByBreadth.push(groupResult.buckets.get(key));
- });
- return nodesByBreadth;
- }
- function initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {
- var minKy = Infinity;
- each(nodesByBreadth, function(nodes) {
- var n = nodes.length;
- var sum2 = 0;
- each(nodes, function(node) {
- sum2 += node.getLayout().value;
- });
- var ky = orient === "vertical" ? (width - (n - 1) * nodeGap) / sum2 : (height - (n - 1) * nodeGap) / sum2;
- if (ky < minKy) {
- minKy = ky;
- }
- });
- each(nodesByBreadth, function(nodes) {
- each(nodes, function(node, i) {
- var nodeDy = node.getLayout().value * minKy;
- if (orient === "vertical") {
- node.setLayout({
- x: i
- }, true);
- node.setLayout({
- dx: nodeDy
- }, true);
- } else {
- node.setLayout({
- y: i
- }, true);
- node.setLayout({
- dy: nodeDy
- }, true);
- }
- });
- });
- each(edges, function(edge) {
- var edgeDy = +edge.getValue() * minKy;
- edge.setLayout({
- dy: edgeDy
- }, true);
- });
- }
- function resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {
- var keyAttr = orient === "vertical" ? "x" : "y";
- each(nodesByBreadth, function(nodes) {
- nodes.sort(function(a, b) {
- return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];
- });
- var nodeX;
- var node;
- var dy;
- var y0 = 0;
- var n = nodes.length;
- var nodeDyAttr = orient === "vertical" ? "dx" : "dy";
- for (var i = 0; i < n; i++) {
- node = nodes[i];
- dy = y0 - node.getLayout()[keyAttr];
- if (dy > 0) {
- nodeX = node.getLayout()[keyAttr] + dy;
- orient === "vertical" ? node.setLayout({
- x: nodeX
- }, true) : node.setLayout({
- y: nodeX
- }, true);
- }
- y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;
- }
- var viewWidth = orient === "vertical" ? width : height;
- dy = y0 - nodeGap - viewWidth;
- if (dy > 0) {
- nodeX = node.getLayout()[keyAttr] - dy;
- orient === "vertical" ? node.setLayout({
- x: nodeX
- }, true) : node.setLayout({
- y: nodeX
- }, true);
- y0 = nodeX;
- for (var i = n - 2; i >= 0; --i) {
- node = nodes[i];
- dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;
- if (dy > 0) {
- nodeX = node.getLayout()[keyAttr] - dy;
- orient === "vertical" ? node.setLayout({
- x: nodeX
- }, true) : node.setLayout({
- y: nodeX
- }, true);
- }
- y0 = node.getLayout()[keyAttr];
- }
- }
- });
- }
- function relaxRightToLeft(nodesByBreadth, alpha, orient) {
- each(nodesByBreadth.slice().reverse(), function(nodes) {
- each(nodes, function(node) {
- if (node.outEdges.length) {
- var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue);
- if (isNaN(y)) {
- var len2 = node.outEdges.length;
- y = len2 ? sum(node.outEdges, centerTarget, orient) / len2 : 0;
- }
- if (orient === "vertical") {
- var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;
- node.setLayout({
- x: nodeX
- }, true);
- } else {
- var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;
- node.setLayout({
- y: nodeY
- }, true);
- }
- }
- });
- });
- }
- function weightedTarget(edge, orient) {
- return center(edge.node2, orient) * edge.getValue();
- }
- function centerTarget(edge, orient) {
- return center(edge.node2, orient);
- }
- function weightedSource(edge, orient) {
- return center(edge.node1, orient) * edge.getValue();
- }
- function centerSource(edge, orient) {
- return center(edge.node1, orient);
- }
- function center(node, orient) {
- return orient === "vertical" ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2;
- }
- function getEdgeValue(edge) {
- return edge.getValue();
- }
- function sum(array, cb, orient) {
- var sum2 = 0;
- var len2 = array.length;
- var i = -1;
- while (++i < len2) {
- var value = +cb(array[i], orient);
- if (!isNaN(value)) {
- sum2 += value;
- }
- }
- return sum2;
- }
- function relaxLeftToRight(nodesByBreadth, alpha, orient) {
- each(nodesByBreadth, function(nodes) {
- each(nodes, function(node) {
- if (node.inEdges.length) {
- var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue);
- if (isNaN(y)) {
- var len2 = node.inEdges.length;
- y = len2 ? sum(node.inEdges, centerSource, orient) / len2 : 0;
- }
- if (orient === "vertical") {
- var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;
- node.setLayout({
- x: nodeX
- }, true);
- } else {
- var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;
- node.setLayout({
- y: nodeY
- }, true);
- }
- }
- });
- });
- }
- function computeEdgeDepths(nodes, orient) {
- var keyAttr = orient === "vertical" ? "x" : "y";
- each(nodes, function(node) {
- node.outEdges.sort(function(a, b) {
- return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];
- });
- node.inEdges.sort(function(a, b) {
- return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];
- });
- });
- each(nodes, function(node) {
- var sy = 0;
- var ty = 0;
- each(node.outEdges, function(edge) {
- edge.setLayout({
- sy
- }, true);
- sy += edge.getLayout().dy;
- });
- each(node.inEdges, function(edge) {
- edge.setLayout({
- ty
- }, true);
- ty += edge.getLayout().dy;
- });
- });
- }
- // node_modules/echarts/lib/chart/sankey/sankeyVisual.js
- function sankeyVisual(ecModel) {
- ecModel.eachSeriesByType("sankey", function(seriesModel) {
- var graph = seriesModel.getGraph();
- var nodes = graph.nodes;
- var edges = graph.edges;
- if (nodes.length) {
- var minValue_1 = Infinity;
- var maxValue_1 = -Infinity;
- each(nodes, function(node) {
- var nodeValue = node.getLayout().value;
- if (nodeValue < minValue_1) {
- minValue_1 = nodeValue;
- }
- if (nodeValue > maxValue_1) {
- maxValue_1 = nodeValue;
- }
- });
- each(nodes, function(node) {
- var mapping = new VisualMapping_default({
- type: "color",
- mappingMethod: "linear",
- dataExtent: [minValue_1, maxValue_1],
- visual: seriesModel.get("color")
- });
- var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);
- var customColor = node.getModel().get(["itemStyle", "color"]);
- if (customColor != null) {
- node.setVisual("color", customColor);
- node.setVisual("style", {
- fill: customColor
- });
- } else {
- node.setVisual("color", mapValueToColor);
- node.setVisual("style", {
- fill: mapValueToColor
- });
- }
- });
- }
- if (edges.length) {
- each(edges, function(edge) {
- var edgeStyle = edge.getModel().get("lineStyle");
- edge.setVisual("style", edgeStyle);
- });
- }
- });
- }
- // node_modules/echarts/lib/chart/sankey/install.js
- function install17(registers) {
- registers.registerChartView(SankeyView_default);
- registers.registerSeriesModel(SankeySeries_default);
- registers.registerLayout(sankeyLayout);
- registers.registerVisual(sankeyVisual);
- registers.registerAction({
- type: "dragNode",
- event: "dragnode",
- // here can only use 'update' now, other value is not support in echarts.
- update: "update"
- }, function(payload, ecModel) {
- ecModel.eachComponent({
- mainType: "series",
- subType: "sankey",
- query: payload
- }, function(seriesModel) {
- seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);
- });
- });
- }
- // node_modules/echarts/lib/chart/helper/whiskerBoxCommon.js
- var WhiskerBoxCommonMixin = (
- /** @class */
- function() {
- function WhiskerBoxCommonMixin2() {
- }
- WhiskerBoxCommonMixin2.prototype.getInitialData = function(option, ecModel) {
- var ordinalMeta;
- var xAxisModel = ecModel.getComponent("xAxis", this.get("xAxisIndex"));
- var yAxisModel = ecModel.getComponent("yAxis", this.get("yAxisIndex"));
- var xAxisType = xAxisModel.get("type");
- var yAxisType = yAxisModel.get("type");
- var addOrdinal;
- if (xAxisType === "category") {
- option.layout = "horizontal";
- ordinalMeta = xAxisModel.getOrdinalMeta();
- addOrdinal = true;
- } else if (yAxisType === "category") {
- option.layout = "vertical";
- ordinalMeta = yAxisModel.getOrdinalMeta();
- addOrdinal = true;
- } else {
- option.layout = option.layout || "horizontal";
- }
- var coordDims = ["x", "y"];
- var baseAxisDimIndex = option.layout === "horizontal" ? 0 : 1;
- var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];
- var otherAxisDim = coordDims[1 - baseAxisDimIndex];
- var axisModels = [xAxisModel, yAxisModel];
- var baseAxisType = axisModels[baseAxisDimIndex].get("type");
- var otherAxisType = axisModels[1 - baseAxisDimIndex].get("type");
- var data = option.data;
- if (data && addOrdinal) {
- var newOptionData_1 = [];
- each(data, function(item, index) {
- var newItem;
- if (isArray(item)) {
- newItem = item.slice();
- item.unshift(index);
- } else if (isArray(item.value)) {
- newItem = extend({}, item);
- newItem.value = newItem.value.slice();
- item.value.unshift(index);
- } else {
- newItem = item;
- }
- newOptionData_1.push(newItem);
- });
- option.data = newOptionData_1;
- }
- var defaultValueDimensions = this.defaultValueDimensions;
- var coordDimensions = [{
- name: baseAxisDim,
- type: getDimensionTypeByAxis(baseAxisType),
- ordinalMeta,
- otherDims: {
- tooltip: false,
- itemName: 0
- },
- dimsDef: ["base"]
- }, {
- name: otherAxisDim,
- type: getDimensionTypeByAxis(otherAxisType),
- dimsDef: defaultValueDimensions.slice()
- }];
- return createSeriesDataSimply(this, {
- coordDimensions,
- dimensionsCount: defaultValueDimensions.length + 1,
- encodeDefaulter: curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)
- });
- };
- WhiskerBoxCommonMixin2.prototype.getBaseAxis = function() {
- var dim = this._baseAxisDim;
- return this.ecModel.getComponent(dim + "Axis", this.get(dim + "AxisIndex")).axis;
- };
- return WhiskerBoxCommonMixin2;
- }()
- );
- // node_modules/echarts/lib/chart/boxplot/BoxplotSeries.js
- var BoxplotSeriesModel = (
- /** @class */
- function(_super) {
- __extends(BoxplotSeriesModel2, _super);
- function BoxplotSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = BoxplotSeriesModel2.type;
- _this.defaultValueDimensions = [{
- name: "min",
- defaultTooltip: true
- }, {
- name: "Q1",
- defaultTooltip: true
- }, {
- name: "median",
- defaultTooltip: true
- }, {
- name: "Q3",
- defaultTooltip: true
- }, {
- name: "max",
- defaultTooltip: true
- }];
- _this.visualDrawType = "stroke";
- return _this;
- }
- BoxplotSeriesModel2.type = "series.boxplot";
- BoxplotSeriesModel2.dependencies = ["xAxis", "yAxis", "grid"];
- BoxplotSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- coordinateSystem: "cartesian2d",
- legendHoverLink: true,
- layout: null,
- boxWidth: [7, 50],
- itemStyle: {
- color: "#fff",
- borderWidth: 1
- },
- emphasis: {
- scale: true,
- itemStyle: {
- borderWidth: 2,
- shadowBlur: 5,
- shadowOffsetX: 1,
- shadowOffsetY: 1,
- shadowColor: "rgba(0,0,0,0.2)"
- }
- },
- animationDuration: 800
- };
- return BoxplotSeriesModel2;
- }(Series_default)
- );
- mixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);
- var BoxplotSeries_default = BoxplotSeriesModel;
- // node_modules/echarts/lib/chart/boxplot/BoxplotView.js
- var BoxplotView = (
- /** @class */
- function(_super) {
- __extends(BoxplotView2, _super);
- function BoxplotView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = BoxplotView2.type;
- return _this;
- }
- BoxplotView2.prototype.render = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var group = this.group;
- var oldData = this._data;
- if (!this._data) {
- group.removeAll();
- }
- var constDim = seriesModel.get("layout") === "horizontal" ? 1 : 0;
- data.diff(oldData).add(function(newIdx) {
- if (data.hasValue(newIdx)) {
- var itemLayout = data.getItemLayout(newIdx);
- var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);
- data.setItemGraphicEl(newIdx, symbolEl);
- group.add(symbolEl);
- }
- }).update(function(newIdx, oldIdx) {
- var symbolEl = oldData.getItemGraphicEl(oldIdx);
- if (!data.hasValue(newIdx)) {
- group.remove(symbolEl);
- return;
- }
- var itemLayout = data.getItemLayout(newIdx);
- if (!symbolEl) {
- symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);
- } else {
- saveOldStyle(symbolEl);
- updateNormalBoxData(itemLayout, symbolEl, data, newIdx);
- }
- group.add(symbolEl);
- data.setItemGraphicEl(newIdx, symbolEl);
- }).remove(function(oldIdx) {
- var el = oldData.getItemGraphicEl(oldIdx);
- el && group.remove(el);
- }).execute();
- this._data = data;
- };
- BoxplotView2.prototype.remove = function(ecModel) {
- var group = this.group;
- var data = this._data;
- this._data = null;
- data && data.eachItemGraphicEl(function(el) {
- el && group.remove(el);
- });
- };
- BoxplotView2.type = "boxplot";
- return BoxplotView2;
- }(Chart_default)
- );
- var BoxPathShape = (
- /** @class */
- function() {
- function BoxPathShape2() {
- }
- return BoxPathShape2;
- }()
- );
- var BoxPath = (
- /** @class */
- function(_super) {
- __extends(BoxPath2, _super);
- function BoxPath2(opts) {
- var _this = _super.call(this, opts) || this;
- _this.type = "boxplotBoxPath";
- return _this;
- }
- BoxPath2.prototype.getDefaultShape = function() {
- return new BoxPathShape();
- };
- BoxPath2.prototype.buildPath = function(ctx, shape) {
- var ends = shape.points;
- var i = 0;
- ctx.moveTo(ends[i][0], ends[i][1]);
- i++;
- for (; i < 4; i++) {
- ctx.lineTo(ends[i][0], ends[i][1]);
- }
- ctx.closePath();
- for (; i < ends.length; i++) {
- ctx.moveTo(ends[i][0], ends[i][1]);
- i++;
- ctx.lineTo(ends[i][0], ends[i][1]);
- }
- };
- return BoxPath2;
- }(Path_default)
- );
- function createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {
- var ends = itemLayout.ends;
- var el = new BoxPath({
- shape: {
- points: isInit ? transInit(ends, constDim, itemLayout) : ends
- }
- });
- updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);
- return el;
- }
- function updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {
- var seriesModel = data.hostModel;
- var updateMethod = graphic_exports[isInit ? "initProps" : "updateProps"];
- updateMethod(el, {
- shape: {
- points: itemLayout.ends
- }
- }, seriesModel, dataIndex);
- el.useStyle(data.getItemVisual(dataIndex, "style"));
- el.style.strokeNoScale = true;
- el.z2 = 100;
- var itemModel = data.getItemModel(dataIndex);
- var emphasisModel = itemModel.getModel("emphasis");
- setStatesStylesFromModel(el, itemModel);
- toggleHoverEmphasis(el, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- }
- function transInit(points, dim, itemLayout) {
- return map(points, function(point) {
- point = point.slice();
- point[dim] = itemLayout.initBaseline;
- return point;
- });
- }
- var BoxplotView_default = BoxplotView;
- // node_modules/echarts/lib/chart/boxplot/boxplotLayout.js
- var each3 = each;
- function boxplotLayout(ecModel) {
- var groupResult = groupSeriesByAxis(ecModel);
- each3(groupResult, function(groupItem) {
- var seriesModels = groupItem.seriesModels;
- if (!seriesModels.length) {
- return;
- }
- calculateBase(groupItem);
- each3(seriesModels, function(seriesModel, idx) {
- layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);
- });
- });
- }
- function groupSeriesByAxis(ecModel) {
- var result = [];
- var axisList = [];
- ecModel.eachSeriesByType("boxplot", function(seriesModel) {
- var baseAxis = seriesModel.getBaseAxis();
- var idx = indexOf(axisList, baseAxis);
- if (idx < 0) {
- idx = axisList.length;
- axisList[idx] = baseAxis;
- result[idx] = {
- axis: baseAxis,
- seriesModels: []
- };
- }
- result[idx].seriesModels.push(seriesModel);
- });
- return result;
- }
- function calculateBase(groupItem) {
- var baseAxis = groupItem.axis;
- var seriesModels = groupItem.seriesModels;
- var seriesCount = seriesModels.length;
- var boxWidthList = groupItem.boxWidthList = [];
- var boxOffsetList = groupItem.boxOffsetList = [];
- var boundList = [];
- var bandWidth;
- if (baseAxis.type === "category") {
- bandWidth = baseAxis.getBandWidth();
- } else {
- var maxDataCount_1 = 0;
- each3(seriesModels, function(seriesModel) {
- maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());
- });
- var extent = baseAxis.getExtent();
- bandWidth = Math.abs(extent[1] - extent[0]) / maxDataCount_1;
- }
- each3(seriesModels, function(seriesModel) {
- var boxWidthBound = seriesModel.get("boxWidth");
- if (!isArray(boxWidthBound)) {
- boxWidthBound = [boxWidthBound, boxWidthBound];
- }
- boundList.push([parsePercent2(boxWidthBound[0], bandWidth) || 0, parsePercent2(boxWidthBound[1], bandWidth) || 0]);
- });
- var availableWidth = bandWidth * 0.8 - 2;
- var boxGap = availableWidth / seriesCount * 0.3;
- var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;
- var base = boxWidth / 2 - availableWidth / 2;
- each3(seriesModels, function(seriesModel, idx) {
- boxOffsetList.push(base);
- base += boxGap + boxWidth;
- boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));
- });
- }
- function layoutSingleSeries(seriesModel, offset, boxWidth) {
- var coordSys = seriesModel.coordinateSystem;
- var data = seriesModel.getData();
- var halfWidth = boxWidth / 2;
- var cDimIdx = seriesModel.get("layout") === "horizontal" ? 0 : 1;
- var vDimIdx = 1 - cDimIdx;
- var coordDims = ["x", "y"];
- var cDim = data.mapDimension(coordDims[cDimIdx]);
- var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);
- if (cDim == null || vDims.length < 5) {
- return;
- }
- for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {
- var axisDimVal = data.get(cDim, dataIndex);
- var median = getPoint(axisDimVal, vDims[2], dataIndex);
- var end1 = getPoint(axisDimVal, vDims[0], dataIndex);
- var end2 = getPoint(axisDimVal, vDims[1], dataIndex);
- var end4 = getPoint(axisDimVal, vDims[3], dataIndex);
- var end5 = getPoint(axisDimVal, vDims[4], dataIndex);
- var ends = [];
- addBodyEnd(ends, end2, false);
- addBodyEnd(ends, end4, true);
- ends.push(end1, end2, end5, end4);
- layEndLine(ends, end1);
- layEndLine(ends, end5);
- layEndLine(ends, median);
- data.setItemLayout(dataIndex, {
- initBaseline: median[vDimIdx],
- ends
- });
- }
- function getPoint(axisDimVal2, dim, dataIndex2) {
- var val = data.get(dim, dataIndex2);
- var p = [];
- p[cDimIdx] = axisDimVal2;
- p[vDimIdx] = val;
- var point;
- if (isNaN(axisDimVal2) || isNaN(val)) {
- point = [NaN, NaN];
- } else {
- point = coordSys.dataToPoint(p);
- point[cDimIdx] += offset;
- }
- return point;
- }
- function addBodyEnd(ends2, point, start) {
- var point1 = point.slice();
- var point2 = point.slice();
- point1[cDimIdx] += halfWidth;
- point2[cDimIdx] -= halfWidth;
- start ? ends2.push(point1, point2) : ends2.push(point2, point1);
- }
- function layEndLine(ends2, endCenter) {
- var from = endCenter.slice();
- var to = endCenter.slice();
- from[cDimIdx] -= halfWidth;
- to[cDimIdx] += halfWidth;
- ends2.push(from, to);
- }
- }
- // node_modules/echarts/lib/chart/boxplot/prepareBoxplotData.js
- function prepareBoxplotData(rawData, opt) {
- opt = opt || {};
- var boxData = [];
- var outliers = [];
- var boundIQR = opt.boundIQR;
- var useExtreme = boundIQR === "none" || boundIQR === 0;
- for (var i = 0; i < rawData.length; i++) {
- var ascList = asc(rawData[i].slice());
- var Q1 = quantile(ascList, 0.25);
- var Q2 = quantile(ascList, 0.5);
- var Q3 = quantile(ascList, 0.75);
- var min = ascList[0];
- var max = ascList[ascList.length - 1];
- var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);
- var low = useExtreme ? min : Math.max(min, Q1 - bound);
- var high = useExtreme ? max : Math.min(max, Q3 + bound);
- var itemNameFormatter = opt.itemNameFormatter;
- var itemName = isFunction(itemNameFormatter) ? itemNameFormatter({
- value: i
- }) : isString(itemNameFormatter) ? itemNameFormatter.replace("{value}", i + "") : i + "";
- boxData.push([itemName, low, Q1, Q2, Q3, high]);
- for (var j = 0; j < ascList.length; j++) {
- var dataItem = ascList[j];
- if (dataItem < low || dataItem > high) {
- var outlier = [itemName, dataItem];
- outliers.push(outlier);
- }
- }
- }
- return {
- boxData,
- outliers
- };
- }
- // node_modules/echarts/lib/chart/boxplot/boxplotTransform.js
- var boxplotTransform = {
- type: "echarts:boxplot",
- transform: function transform(params) {
- var upstream = params.upstream;
- if (upstream.sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS) {
- var errMsg = "";
- if (true) {
- errMsg = makePrintable("source data is not applicable for this boxplot transform. Expect number[][].");
- }
- throwError(errMsg);
- }
- var result = prepareBoxplotData(upstream.getRawData(), params.config);
- return [{
- dimensions: ["ItemName", "Low", "Q1", "Q2", "Q3", "High"],
- data: result.boxData
- }, {
- data: result.outliers
- }];
- }
- };
- // node_modules/echarts/lib/chart/boxplot/install.js
- function install18(registers) {
- registers.registerSeriesModel(BoxplotSeries_default);
- registers.registerChartView(BoxplotView_default);
- registers.registerLayout(boxplotLayout);
- registers.registerTransform(boxplotTransform);
- }
- // node_modules/echarts/lib/chart/candlestick/CandlestickView.js
- var SKIP_PROPS = ["color", "borderColor"];
- var CandlestickView = (
- /** @class */
- function(_super) {
- __extends(CandlestickView2, _super);
- function CandlestickView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = CandlestickView2.type;
- return _this;
- }
- CandlestickView2.prototype.render = function(seriesModel, ecModel, api) {
- this.group.removeClipPath();
- this._progressiveEls = null;
- this._updateDrawMode(seriesModel);
- this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);
- };
- CandlestickView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) {
- this._clear();
- this._updateDrawMode(seriesModel);
- };
- CandlestickView2.prototype.incrementalRender = function(params, seriesModel, ecModel, api) {
- this._progressiveEls = [];
- this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);
- };
- CandlestickView2.prototype.eachRendered = function(cb) {
- traverseElements(this._progressiveEls || this.group, cb);
- };
- CandlestickView2.prototype._updateDrawMode = function(seriesModel) {
- var isLargeDraw = seriesModel.pipelineContext.large;
- if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {
- this._isLargeDraw = isLargeDraw;
- this._clear();
- }
- };
- CandlestickView2.prototype._renderNormal = function(seriesModel) {
- var data = seriesModel.getData();
- var oldData = this._data;
- var group = this.group;
- var isSimpleBox = data.getLayout("isSimpleBox");
- var needsClip = seriesModel.get("clip", true);
- var coord = seriesModel.coordinateSystem;
- var clipArea = coord.getArea && coord.getArea();
- if (!this._data) {
- group.removeAll();
- }
- data.diff(oldData).add(function(newIdx) {
- if (data.hasValue(newIdx)) {
- var itemLayout = data.getItemLayout(newIdx);
- if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {
- return;
- }
- var el = createNormalBox2(itemLayout, newIdx, true);
- initProps(el, {
- shape: {
- points: itemLayout.ends
- }
- }, seriesModel, newIdx);
- setBoxCommon(el, data, newIdx, isSimpleBox);
- group.add(el);
- data.setItemGraphicEl(newIdx, el);
- }
- }).update(function(newIdx, oldIdx) {
- var el = oldData.getItemGraphicEl(oldIdx);
- if (!data.hasValue(newIdx)) {
- group.remove(el);
- return;
- }
- var itemLayout = data.getItemLayout(newIdx);
- if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {
- group.remove(el);
- return;
- }
- if (!el) {
- el = createNormalBox2(itemLayout, newIdx);
- } else {
- updateProps(el, {
- shape: {
- points: itemLayout.ends
- }
- }, seriesModel, newIdx);
- saveOldStyle(el);
- }
- setBoxCommon(el, data, newIdx, isSimpleBox);
- group.add(el);
- data.setItemGraphicEl(newIdx, el);
- }).remove(function(oldIdx) {
- var el = oldData.getItemGraphicEl(oldIdx);
- el && group.remove(el);
- }).execute();
- this._data = data;
- };
- CandlestickView2.prototype._renderLarge = function(seriesModel) {
- this._clear();
- createLarge2(seriesModel, this.group);
- var clipPath = seriesModel.get("clip", true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;
- if (clipPath) {
- this.group.setClipPath(clipPath);
- } else {
- this.group.removeClipPath();
- }
- };
- CandlestickView2.prototype._incrementalRenderNormal = function(params, seriesModel) {
- var data = seriesModel.getData();
- var isSimpleBox = data.getLayout("isSimpleBox");
- var dataIndex;
- while ((dataIndex = params.next()) != null) {
- var itemLayout = data.getItemLayout(dataIndex);
- var el = createNormalBox2(itemLayout, dataIndex);
- setBoxCommon(el, data, dataIndex, isSimpleBox);
- el.incremental = true;
- this.group.add(el);
- this._progressiveEls.push(el);
- }
- };
- CandlestickView2.prototype._incrementalRenderLarge = function(params, seriesModel) {
- createLarge2(seriesModel, this.group, this._progressiveEls, true);
- };
- CandlestickView2.prototype.remove = function(ecModel) {
- this._clear();
- };
- CandlestickView2.prototype._clear = function() {
- this.group.removeAll();
- this._data = null;
- };
- CandlestickView2.type = "candlestick";
- return CandlestickView2;
- }(Chart_default)
- );
- var NormalBoxPathShape = (
- /** @class */
- function() {
- function NormalBoxPathShape2() {
- }
- return NormalBoxPathShape2;
- }()
- );
- var NormalBoxPath = (
- /** @class */
- function(_super) {
- __extends(NormalBoxPath2, _super);
- function NormalBoxPath2(opts) {
- var _this = _super.call(this, opts) || this;
- _this.type = "normalCandlestickBox";
- return _this;
- }
- NormalBoxPath2.prototype.getDefaultShape = function() {
- return new NormalBoxPathShape();
- };
- NormalBoxPath2.prototype.buildPath = function(ctx, shape) {
- var ends = shape.points;
- if (this.__simpleBox) {
- ctx.moveTo(ends[4][0], ends[4][1]);
- ctx.lineTo(ends[6][0], ends[6][1]);
- } else {
- ctx.moveTo(ends[0][0], ends[0][1]);
- ctx.lineTo(ends[1][0], ends[1][1]);
- ctx.lineTo(ends[2][0], ends[2][1]);
- ctx.lineTo(ends[3][0], ends[3][1]);
- ctx.closePath();
- ctx.moveTo(ends[4][0], ends[4][1]);
- ctx.lineTo(ends[5][0], ends[5][1]);
- ctx.moveTo(ends[6][0], ends[6][1]);
- ctx.lineTo(ends[7][0], ends[7][1]);
- }
- };
- return NormalBoxPath2;
- }(Path_default)
- );
- function createNormalBox2(itemLayout, dataIndex, isInit) {
- var ends = itemLayout.ends;
- return new NormalBoxPath({
- shape: {
- points: isInit ? transInit2(ends, itemLayout) : ends
- },
- z2: 100
- });
- }
- function isNormalBoxClipped(clipArea, itemLayout) {
- var clipped = true;
- for (var i = 0; i < itemLayout.ends.length; i++) {
- if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {
- clipped = false;
- break;
- }
- }
- return clipped;
- }
- function setBoxCommon(el, data, dataIndex, isSimpleBox) {
- var itemModel = data.getItemModel(dataIndex);
- el.useStyle(data.getItemVisual(dataIndex, "style"));
- el.style.strokeNoScale = true;
- el.__simpleBox = isSimpleBox;
- setStatesStylesFromModel(el, itemModel);
- }
- function transInit2(points, itemLayout) {
- return map(points, function(point) {
- point = point.slice();
- point[1] = itemLayout.initBaseline;
- return point;
- });
- }
- var LargeBoxPathShape = (
- /** @class */
- function() {
- function LargeBoxPathShape2() {
- }
- return LargeBoxPathShape2;
- }()
- );
- var LargeBoxPath = (
- /** @class */
- function(_super) {
- __extends(LargeBoxPath2, _super);
- function LargeBoxPath2(opts) {
- var _this = _super.call(this, opts) || this;
- _this.type = "largeCandlestickBox";
- return _this;
- }
- LargeBoxPath2.prototype.getDefaultShape = function() {
- return new LargeBoxPathShape();
- };
- LargeBoxPath2.prototype.buildPath = function(ctx, shape) {
- var points = shape.points;
- for (var i = 0; i < points.length; ) {
- if (this.__sign === points[i++]) {
- var x = points[i++];
- ctx.moveTo(x, points[i++]);
- ctx.lineTo(x, points[i++]);
- } else {
- i += 3;
- }
- }
- };
- return LargeBoxPath2;
- }(Path_default)
- );
- function createLarge2(seriesModel, group, progressiveEls, incremental) {
- var data = seriesModel.getData();
- var largePoints = data.getLayout("largePoints");
- var elP = new LargeBoxPath({
- shape: {
- points: largePoints
- },
- __sign: 1,
- ignoreCoarsePointer: true
- });
- group.add(elP);
- var elN = new LargeBoxPath({
- shape: {
- points: largePoints
- },
- __sign: -1,
- ignoreCoarsePointer: true
- });
- group.add(elN);
- var elDoji = new LargeBoxPath({
- shape: {
- points: largePoints
- },
- __sign: 0,
- ignoreCoarsePointer: true
- });
- group.add(elDoji);
- setLargeStyle(1, elP, seriesModel, data);
- setLargeStyle(-1, elN, seriesModel, data);
- setLargeStyle(0, elDoji, seriesModel, data);
- if (incremental) {
- elP.incremental = true;
- elN.incremental = true;
- }
- if (progressiveEls) {
- progressiveEls.push(elP, elN);
- }
- }
- function setLargeStyle(sign, el, seriesModel, data) {
- var borderColor = seriesModel.get(["itemStyle", sign > 0 ? "borderColor" : "borderColor0"]) || seriesModel.get(["itemStyle", sign > 0 ? "color" : "color0"]);
- if (sign === 0) {
- borderColor = seriesModel.get(["itemStyle", "borderColorDoji"]);
- }
- var itemStyle = seriesModel.getModel("itemStyle").getItemStyle(SKIP_PROPS);
- el.useStyle(itemStyle);
- el.style.fill = null;
- el.style.stroke = borderColor;
- }
- var CandlestickView_default = CandlestickView;
- // node_modules/echarts/lib/chart/candlestick/CandlestickSeries.js
- var CandlestickSeriesModel = (
- /** @class */
- function(_super) {
- __extends(CandlestickSeriesModel2, _super);
- function CandlestickSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = CandlestickSeriesModel2.type;
- _this.defaultValueDimensions = [{
- name: "open",
- defaultTooltip: true
- }, {
- name: "close",
- defaultTooltip: true
- }, {
- name: "lowest",
- defaultTooltip: true
- }, {
- name: "highest",
- defaultTooltip: true
- }];
- return _this;
- }
- CandlestickSeriesModel2.prototype.getShadowDim = function() {
- return "open";
- };
- CandlestickSeriesModel2.prototype.brushSelector = function(dataIndex, data, selectors) {
- var itemLayout = data.getItemLayout(dataIndex);
- return itemLayout && selectors.rect(itemLayout.brushRect);
- };
- CandlestickSeriesModel2.type = "series.candlestick";
- CandlestickSeriesModel2.dependencies = ["xAxis", "yAxis", "grid"];
- CandlestickSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- coordinateSystem: "cartesian2d",
- legendHoverLink: true,
- // xAxisIndex: 0,
- // yAxisIndex: 0,
- layout: null,
- clip: true,
- itemStyle: {
- color: "#eb5454",
- color0: "#47b262",
- borderColor: "#eb5454",
- borderColor0: "#47b262",
- borderColorDoji: null,
- // borderColor: '#d24040',
- // borderColor0: '#398f4f',
- borderWidth: 1
- },
- emphasis: {
- scale: true,
- itemStyle: {
- borderWidth: 2
- }
- },
- barMaxWidth: null,
- barMinWidth: null,
- barWidth: null,
- large: true,
- largeThreshold: 600,
- progressive: 3e3,
- progressiveThreshold: 1e4,
- progressiveChunkMode: "mod",
- animationEasing: "linear",
- animationDuration: 300
- };
- return CandlestickSeriesModel2;
- }(Series_default)
- );
- mixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);
- var CandlestickSeries_default = CandlestickSeriesModel;
- // node_modules/echarts/lib/chart/candlestick/preprocessor.js
- function candlestickPreprocessor(option) {
- if (!option || !isArray(option.series)) {
- return;
- }
- each(option.series, function(seriesItem) {
- if (isObject(seriesItem) && seriesItem.type === "k") {
- seriesItem.type = "candlestick";
- }
- });
- }
- // node_modules/echarts/lib/chart/candlestick/candlestickVisual.js
- var positiveBorderColorQuery = ["itemStyle", "borderColor"];
- var negativeBorderColorQuery = ["itemStyle", "borderColor0"];
- var dojiBorderColorQuery = ["itemStyle", "borderColorDoji"];
- var positiveColorQuery = ["itemStyle", "color"];
- var negativeColorQuery = ["itemStyle", "color0"];
- var candlestickVisual = {
- seriesType: "candlestick",
- plan: createRenderPlanner(),
- // For legend.
- performRawSeries: true,
- reset: function(seriesModel, ecModel) {
- function getColor(sign, model) {
- return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);
- }
- function getBorderColor(sign, model) {
- return model.get(sign === 0 ? dojiBorderColorQuery : sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);
- }
- if (ecModel.isSeriesFiltered(seriesModel)) {
- return;
- }
- var isLargeRender = seriesModel.pipelineContext.large;
- return !isLargeRender && {
- progress: function(params, data) {
- var dataIndex;
- while ((dataIndex = params.next()) != null) {
- var itemModel = data.getItemModel(dataIndex);
- var sign = data.getItemLayout(dataIndex).sign;
- var style = itemModel.getItemStyle();
- style.fill = getColor(sign, itemModel);
- style.stroke = getBorderColor(sign, itemModel) || style.fill;
- var existsStyle = data.ensureUniqueItemVisual(dataIndex, "style");
- extend(existsStyle, style);
- }
- }
- };
- }
- };
- var candlestickVisual_default = candlestickVisual;
- // node_modules/echarts/lib/chart/candlestick/candlestickLayout.js
- var candlestickLayout = {
- seriesType: "candlestick",
- plan: createRenderPlanner(),
- reset: function(seriesModel) {
- var coordSys = seriesModel.coordinateSystem;
- var data = seriesModel.getData();
- var candleWidth = calculateCandleWidth(seriesModel, data);
- var cDimIdx = 0;
- var vDimIdx = 1;
- var coordDims = ["x", "y"];
- var cDimI = data.getDimensionIndex(data.mapDimension(coordDims[cDimIdx]));
- var vDimsI = map(data.mapDimensionsAll(coordDims[vDimIdx]), data.getDimensionIndex, data);
- var openDimI = vDimsI[0];
- var closeDimI = vDimsI[1];
- var lowestDimI = vDimsI[2];
- var highestDimI = vDimsI[3];
- data.setLayout({
- candleWidth,
- // The value is experimented visually.
- isSimpleBox: candleWidth <= 1.3
- });
- if (cDimI < 0 || vDimsI.length < 4) {
- return;
- }
- return {
- progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress
- };
- function normalProgress(params, data2) {
- var dataIndex;
- var store = data2.getStore();
- while ((dataIndex = params.next()) != null) {
- var axisDimVal = store.get(cDimI, dataIndex);
- var openVal = store.get(openDimI, dataIndex);
- var closeVal = store.get(closeDimI, dataIndex);
- var lowestVal = store.get(lowestDimI, dataIndex);
- var highestVal = store.get(highestDimI, dataIndex);
- var ocLow = Math.min(openVal, closeVal);
- var ocHigh = Math.max(openVal, closeVal);
- var ocLowPoint = getPoint(ocLow, axisDimVal);
- var ocHighPoint = getPoint(ocHigh, axisDimVal);
- var lowestPoint = getPoint(lowestVal, axisDimVal);
- var highestPoint = getPoint(highestVal, axisDimVal);
- var ends = [];
- addBodyEnd(ends, ocHighPoint, 0);
- addBodyEnd(ends, ocLowPoint, 1);
- ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));
- var itemModel = data2.getItemModel(dataIndex);
- var hasDojiColor = !!itemModel.get(["itemStyle", "borderColorDoji"]);
- data2.setItemLayout(dataIndex, {
- sign: getSign(store, dataIndex, openVal, closeVal, closeDimI, hasDojiColor),
- initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],
- ends,
- brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)
- });
- }
- function getPoint(val, axisDimVal2) {
- var p = [];
- p[cDimIdx] = axisDimVal2;
- p[vDimIdx] = val;
- return isNaN(axisDimVal2) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);
- }
- function addBodyEnd(ends2, point, start) {
- var point1 = point.slice();
- var point2 = point.slice();
- point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);
- point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);
- start ? ends2.push(point1, point2) : ends2.push(point2, point1);
- }
- function makeBrushRect(lowestVal2, highestVal2, axisDimVal2) {
- var pmin = getPoint(lowestVal2, axisDimVal2);
- var pmax = getPoint(highestVal2, axisDimVal2);
- pmin[cDimIdx] -= candleWidth / 2;
- pmax[cDimIdx] -= candleWidth / 2;
- return {
- x: pmin[0],
- y: pmin[1],
- width: vDimIdx ? candleWidth : pmax[0] - pmin[0],
- height: vDimIdx ? pmax[1] - pmin[1] : candleWidth
- };
- }
- function subPixelOptimizePoint(point) {
- point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);
- return point;
- }
- }
- function largeProgress(params, data2) {
- var points = createFloat32Array(params.count * 4);
- var offset = 0;
- var point;
- var tmpIn = [];
- var tmpOut = [];
- var dataIndex;
- var store = data2.getStore();
- var hasDojiColor = !!seriesModel.get(["itemStyle", "borderColorDoji"]);
- while ((dataIndex = params.next()) != null) {
- var axisDimVal = store.get(cDimI, dataIndex);
- var openVal = store.get(openDimI, dataIndex);
- var closeVal = store.get(closeDimI, dataIndex);
- var lowestVal = store.get(lowestDimI, dataIndex);
- var highestVal = store.get(highestDimI, dataIndex);
- if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {
- points[offset++] = NaN;
- offset += 3;
- continue;
- }
- points[offset++] = getSign(store, dataIndex, openVal, closeVal, closeDimI, hasDojiColor);
- tmpIn[cDimIdx] = axisDimVal;
- tmpIn[vDimIdx] = lowestVal;
- point = coordSys.dataToPoint(tmpIn, null, tmpOut);
- points[offset++] = point ? point[0] : NaN;
- points[offset++] = point ? point[1] : NaN;
- tmpIn[vDimIdx] = highestVal;
- point = coordSys.dataToPoint(tmpIn, null, tmpOut);
- points[offset++] = point ? point[1] : NaN;
- }
- data2.setLayout("largePoints", points);
- }
- }
- };
- function getSign(store, dataIndex, openVal, closeVal, closeDimI, hasDojiColor) {
- var sign;
- if (openVal > closeVal) {
- sign = -1;
- } else if (openVal < closeVal) {
- sign = 1;
- } else {
- sign = hasDojiColor ? 0 : dataIndex > 0 ? store.get(closeDimI, dataIndex - 1) <= closeVal ? 1 : -1 : 1;
- }
- return sign;
- }
- function calculateCandleWidth(seriesModel, data) {
- var baseAxis = seriesModel.getBaseAxis();
- var extent;
- var bandWidth = baseAxis.type === "category" ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());
- var barMaxWidth = parsePercent2(retrieve2(seriesModel.get("barMaxWidth"), bandWidth), bandWidth);
- var barMinWidth = parsePercent2(retrieve2(seriesModel.get("barMinWidth"), 1), bandWidth);
- var barWidth = seriesModel.get("barWidth");
- return barWidth != null ? parsePercent2(barWidth, bandWidth) : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);
- }
- var candlestickLayout_default = candlestickLayout;
- // node_modules/echarts/lib/chart/candlestick/install.js
- function install19(registers) {
- registers.registerChartView(CandlestickView_default);
- registers.registerSeriesModel(CandlestickSeries_default);
- registers.registerPreprocessor(candlestickPreprocessor);
- registers.registerVisual(candlestickVisual_default);
- registers.registerLayout(candlestickLayout_default);
- }
- // node_modules/echarts/lib/chart/helper/EffectSymbol.js
- function updateRipplePath(rippleGroup, effectCfg) {
- var color = effectCfg.rippleEffectColor || effectCfg.color;
- rippleGroup.eachChild(function(ripplePath) {
- ripplePath.attr({
- z: effectCfg.z,
- zlevel: effectCfg.zlevel,
- style: {
- stroke: effectCfg.brushType === "stroke" ? color : null,
- fill: effectCfg.brushType === "fill" ? color : null
- }
- });
- });
- }
- var EffectSymbol = (
- /** @class */
- function(_super) {
- __extends(EffectSymbol2, _super);
- function EffectSymbol2(data, idx) {
- var _this = _super.call(this) || this;
- var symbol = new Symbol_default(data, idx);
- var rippleGroup = new Group_default();
- _this.add(symbol);
- _this.add(rippleGroup);
- _this.updateData(data, idx);
- return _this;
- }
- EffectSymbol2.prototype.stopEffectAnimation = function() {
- this.childAt(1).removeAll();
- };
- EffectSymbol2.prototype.startEffectAnimation = function(effectCfg) {
- var symbolType = effectCfg.symbolType;
- var color = effectCfg.color;
- var rippleNumber = effectCfg.rippleNumber;
- var rippleGroup = this.childAt(1);
- for (var i = 0; i < rippleNumber; i++) {
- var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);
- ripplePath.attr({
- style: {
- strokeNoScale: true
- },
- z2: 99,
- silent: true,
- scaleX: 0.5,
- scaleY: 0.5
- });
- var delay = -i / rippleNumber * effectCfg.period + effectCfg.effectOffset;
- ripplePath.animate("", true).when(effectCfg.period, {
- scaleX: effectCfg.rippleScale / 2,
- scaleY: effectCfg.rippleScale / 2
- }).delay(delay).start();
- ripplePath.animateStyle(true).when(effectCfg.period, {
- opacity: 0
- }).delay(delay).start();
- rippleGroup.add(ripplePath);
- }
- updateRipplePath(rippleGroup, effectCfg);
- };
- EffectSymbol2.prototype.updateEffectAnimation = function(effectCfg) {
- var oldEffectCfg = this._effectCfg;
- var rippleGroup = this.childAt(1);
- var DIFFICULT_PROPS = ["symbolType", "period", "rippleScale", "rippleNumber"];
- for (var i = 0; i < DIFFICULT_PROPS.length; i++) {
- var propName = DIFFICULT_PROPS[i];
- if (oldEffectCfg[propName] !== effectCfg[propName]) {
- this.stopEffectAnimation();
- this.startEffectAnimation(effectCfg);
- return;
- }
- }
- updateRipplePath(rippleGroup, effectCfg);
- };
- EffectSymbol2.prototype.highlight = function() {
- enterEmphasis(this);
- };
- EffectSymbol2.prototype.downplay = function() {
- leaveEmphasis(this);
- };
- EffectSymbol2.prototype.getSymbolType = function() {
- var symbol = this.childAt(0);
- return symbol && symbol.getSymbolType();
- };
- EffectSymbol2.prototype.updateData = function(data, idx) {
- var _this = this;
- var seriesModel = data.hostModel;
- this.childAt(0).updateData(data, idx);
- var rippleGroup = this.childAt(1);
- var itemModel = data.getItemModel(idx);
- var symbolType = data.getItemVisual(idx, "symbol");
- var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, "symbolSize"));
- var symbolStyle = data.getItemVisual(idx, "style");
- var color = symbolStyle && symbolStyle.fill;
- var emphasisModel = itemModel.getModel("emphasis");
- rippleGroup.setScale(symbolSize);
- rippleGroup.traverse(function(ripplePath) {
- ripplePath.setStyle("fill", color);
- });
- var symbolOffset = normalizeSymbolOffset(data.getItemVisual(idx, "symbolOffset"), symbolSize);
- if (symbolOffset) {
- rippleGroup.x = symbolOffset[0];
- rippleGroup.y = symbolOffset[1];
- }
- var symbolRotate = data.getItemVisual(idx, "symbolRotate");
- rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;
- var effectCfg = {};
- effectCfg.showEffectOn = seriesModel.get("showEffectOn");
- effectCfg.rippleScale = itemModel.get(["rippleEffect", "scale"]);
- effectCfg.brushType = itemModel.get(["rippleEffect", "brushType"]);
- effectCfg.period = itemModel.get(["rippleEffect", "period"]) * 1e3;
- effectCfg.effectOffset = idx / data.count();
- effectCfg.z = seriesModel.getShallow("z") || 0;
- effectCfg.zlevel = seriesModel.getShallow("zlevel") || 0;
- effectCfg.symbolType = symbolType;
- effectCfg.color = color;
- effectCfg.rippleEffectColor = itemModel.get(["rippleEffect", "color"]);
- effectCfg.rippleNumber = itemModel.get(["rippleEffect", "number"]);
- if (effectCfg.showEffectOn === "render") {
- this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg);
- this._effectCfg = effectCfg;
- } else {
- this._effectCfg = null;
- this.stopEffectAnimation();
- this.onHoverStateChange = function(toState) {
- if (toState === "emphasis") {
- if (effectCfg.showEffectOn !== "render") {
- _this.startEffectAnimation(effectCfg);
- }
- } else if (toState === "normal") {
- if (effectCfg.showEffectOn !== "render") {
- _this.stopEffectAnimation();
- }
- }
- };
- }
- this._effectCfg = effectCfg;
- toggleHoverEmphasis(this, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- };
- ;
- EffectSymbol2.prototype.fadeOut = function(cb) {
- cb && cb();
- };
- ;
- return EffectSymbol2;
- }(Group_default)
- );
- var EffectSymbol_default = EffectSymbol;
- // node_modules/echarts/lib/chart/effectScatter/EffectScatterView.js
- var EffectScatterView = (
- /** @class */
- function(_super) {
- __extends(EffectScatterView2, _super);
- function EffectScatterView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = EffectScatterView2.type;
- return _this;
- }
- EffectScatterView2.prototype.init = function() {
- this._symbolDraw = new SymbolDraw_default(EffectSymbol_default);
- };
- EffectScatterView2.prototype.render = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var effectSymbolDraw = this._symbolDraw;
- effectSymbolDraw.updateData(data, {
- clipShape: this._getClipShape(seriesModel)
- });
- this.group.add(effectSymbolDraw.group);
- };
- EffectScatterView2.prototype._getClipShape = function(seriesModel) {
- var coordSys = seriesModel.coordinateSystem;
- var clipArea = coordSys && coordSys.getArea && coordSys.getArea();
- return seriesModel.get("clip", true) ? clipArea : null;
- };
- EffectScatterView2.prototype.updateTransform = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- this.group.dirty();
- var res = pointsLayout("").reset(seriesModel, ecModel, api);
- if (res.progress) {
- res.progress({
- start: 0,
- end: data.count(),
- count: data.count()
- }, data);
- }
- this._symbolDraw.updateLayout();
- };
- EffectScatterView2.prototype._updateGroupTransform = function(seriesModel) {
- var coordSys = seriesModel.coordinateSystem;
- if (coordSys && coordSys.getRoamTransform) {
- this.group.transform = clone3(coordSys.getRoamTransform());
- this.group.decomposeTransform();
- }
- };
- EffectScatterView2.prototype.remove = function(ecModel, api) {
- this._symbolDraw && this._symbolDraw.remove(true);
- };
- EffectScatterView2.type = "effectScatter";
- return EffectScatterView2;
- }(Chart_default)
- );
- var EffectScatterView_default = EffectScatterView;
- // node_modules/echarts/lib/chart/effectScatter/EffectScatterSeries.js
- var EffectScatterSeriesModel = (
- /** @class */
- function(_super) {
- __extends(EffectScatterSeriesModel2, _super);
- function EffectScatterSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = EffectScatterSeriesModel2.type;
- _this.hasSymbolVisual = true;
- return _this;
- }
- EffectScatterSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- return createSeriesData_default(null, this, {
- useEncodeDefaulter: true
- });
- };
- EffectScatterSeriesModel2.prototype.brushSelector = function(dataIndex, data, selectors) {
- return selectors.point(data.getItemLayout(dataIndex));
- };
- EffectScatterSeriesModel2.type = "series.effectScatter";
- EffectScatterSeriesModel2.dependencies = ["grid", "polar"];
- EffectScatterSeriesModel2.defaultOption = {
- coordinateSystem: "cartesian2d",
- // zlevel: 0,
- z: 2,
- legendHoverLink: true,
- effectType: "ripple",
- progressive: 0,
- // When to show the effect, option: 'render'|'emphasis'
- showEffectOn: "render",
- clip: true,
- // Ripple effect config
- rippleEffect: {
- period: 4,
- // Scale of ripple
- scale: 2.5,
- // Brush type can be fill or stroke
- brushType: "fill",
- // Ripple number
- number: 3
- },
- universalTransition: {
- divideShape: "clone"
- },
- // Cartesian coordinate system
- // xAxisIndex: 0,
- // yAxisIndex: 0,
- // Polar coordinate system
- // polarIndex: 0,
- // Geo coordinate system
- // geoIndex: 0,
- // symbol: null, // 图形类型
- symbolSize: 10
- // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2
- // symbolRotate: null, // 图形旋转控制
- // itemStyle: {
- // opacity: 1
- // }
- };
- return EffectScatterSeriesModel2;
- }(Series_default)
- );
- var EffectScatterSeries_default = EffectScatterSeriesModel;
- // node_modules/echarts/lib/chart/effectScatter/install.js
- function install20(registers) {
- registers.registerChartView(EffectScatterView_default);
- registers.registerSeriesModel(EffectScatterSeries_default);
- registers.registerLayout(pointsLayout("effectScatter"));
- }
- // node_modules/echarts/lib/chart/helper/EffectLine.js
- var EffectLine = (
- /** @class */
- function(_super) {
- __extends(EffectLine2, _super);
- function EffectLine2(lineData, idx, seriesScope) {
- var _this = _super.call(this) || this;
- _this.add(_this.createLine(lineData, idx, seriesScope));
- _this._updateEffectSymbol(lineData, idx);
- return _this;
- }
- EffectLine2.prototype.createLine = function(lineData, idx, seriesScope) {
- return new Line_default2(lineData, idx, seriesScope);
- };
- EffectLine2.prototype._updateEffectSymbol = function(lineData, idx) {
- var itemModel = lineData.getItemModel(idx);
- var effectModel = itemModel.getModel("effect");
- var size = effectModel.get("symbolSize");
- var symbolType = effectModel.get("symbol");
- if (!isArray(size)) {
- size = [size, size];
- }
- var lineStyle = lineData.getItemVisual(idx, "style");
- var color = effectModel.get("color") || lineStyle && lineStyle.stroke;
- var symbol = this.childAt(1);
- if (this._symbolType !== symbolType) {
- this.remove(symbol);
- symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);
- symbol.z2 = 100;
- symbol.culling = true;
- this.add(symbol);
- }
- if (!symbol) {
- return;
- }
- symbol.setStyle("shadowColor", color);
- symbol.setStyle(effectModel.getItemStyle(["color"]));
- symbol.scaleX = size[0];
- symbol.scaleY = size[1];
- symbol.setColor(color);
- this._symbolType = symbolType;
- this._symbolScale = size;
- this._updateEffectAnimation(lineData, effectModel, idx);
- };
- EffectLine2.prototype._updateEffectAnimation = function(lineData, effectModel, idx) {
- var symbol = this.childAt(1);
- if (!symbol) {
- return;
- }
- var points = lineData.getItemLayout(idx);
- var period = effectModel.get("period") * 1e3;
- var loop = effectModel.get("loop");
- var roundTrip = effectModel.get("roundTrip");
- var constantSpeed = effectModel.get("constantSpeed");
- var delayExpr = retrieve(effectModel.get("delay"), function(idx2) {
- return idx2 / lineData.count() * period / 3;
- });
- symbol.ignore = true;
- this._updateAnimationPoints(symbol, points);
- if (constantSpeed > 0) {
- period = this._getLineLength(symbol) / constantSpeed * 1e3;
- }
- if (period !== this._period || loop !== this._loop || roundTrip !== this._roundTrip) {
- symbol.stopAnimation();
- var delayNum = void 0;
- if (isFunction(delayExpr)) {
- delayNum = delayExpr(idx);
- } else {
- delayNum = delayExpr;
- }
- if (symbol.__t > 0) {
- delayNum = -period * symbol.__t;
- }
- this._animateSymbol(symbol, period, delayNum, loop, roundTrip);
- }
- this._period = period;
- this._loop = loop;
- this._roundTrip = roundTrip;
- };
- EffectLine2.prototype._animateSymbol = function(symbol, period, delayNum, loop, roundTrip) {
- if (period > 0) {
- symbol.__t = 0;
- var self_1 = this;
- var animator = symbol.animate("", loop).when(roundTrip ? period * 2 : period, {
- __t: roundTrip ? 2 : 1
- }).delay(delayNum).during(function() {
- self_1._updateSymbolPosition(symbol);
- });
- if (!loop) {
- animator.done(function() {
- self_1.remove(symbol);
- });
- }
- animator.start();
- }
- };
- EffectLine2.prototype._getLineLength = function(symbol) {
- return dist(symbol.__p1, symbol.__cp1) + dist(symbol.__cp1, symbol.__p2);
- };
- EffectLine2.prototype._updateAnimationPoints = function(symbol, points) {
- symbol.__p1 = points[0];
- symbol.__p2 = points[1];
- symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];
- };
- EffectLine2.prototype.updateData = function(lineData, idx, seriesScope) {
- this.childAt(0).updateData(lineData, idx, seriesScope);
- this._updateEffectSymbol(lineData, idx);
- };
- EffectLine2.prototype._updateSymbolPosition = function(symbol) {
- var p1 = symbol.__p1;
- var p2 = symbol.__p2;
- var cp1 = symbol.__cp1;
- var t = symbol.__t < 1 ? symbol.__t : 2 - symbol.__t;
- var pos = [symbol.x, symbol.y];
- var lastPos = pos.slice();
- var quadraticAt3 = quadraticAt;
- var quadraticDerivativeAt2 = quadraticDerivativeAt;
- pos[0] = quadraticAt3(p1[0], cp1[0], p2[0], t);
- pos[1] = quadraticAt3(p1[1], cp1[1], p2[1], t);
- var tx = symbol.__t < 1 ? quadraticDerivativeAt2(p1[0], cp1[0], p2[0], t) : quadraticDerivativeAt2(p2[0], cp1[0], p1[0], 1 - t);
- var ty = symbol.__t < 1 ? quadraticDerivativeAt2(p1[1], cp1[1], p2[1], t) : quadraticDerivativeAt2(p2[1], cp1[1], p1[1], 1 - t);
- symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;
- if (this._symbolType === "line" || this._symbolType === "rect" || this._symbolType === "roundRect") {
- if (symbol.__lastT !== void 0 && symbol.__lastT < symbol.__t) {
- symbol.scaleY = dist(lastPos, pos) * 1.05;
- if (t === 1) {
- pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;
- pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;
- }
- } else if (symbol.__lastT === 1) {
- symbol.scaleY = 2 * dist(p1, pos);
- } else {
- symbol.scaleY = this._symbolScale[1];
- }
- }
- symbol.__lastT = symbol.__t;
- symbol.ignore = false;
- symbol.x = pos[0];
- symbol.y = pos[1];
- };
- EffectLine2.prototype.updateLayout = function(lineData, idx) {
- this.childAt(0).updateLayout(lineData, idx);
- var effectModel = lineData.getItemModel(idx).getModel("effect");
- this._updateEffectAnimation(lineData, effectModel, idx);
- };
- return EffectLine2;
- }(Group_default)
- );
- var EffectLine_default = EffectLine;
- // node_modules/echarts/lib/chart/helper/Polyline.js
- var Polyline = (
- /** @class */
- function(_super) {
- __extends(Polyline2, _super);
- function Polyline2(lineData, idx, seriesScope) {
- var _this = _super.call(this) || this;
- _this._createPolyline(lineData, idx, seriesScope);
- return _this;
- }
- Polyline2.prototype._createPolyline = function(lineData, idx, seriesScope) {
- var points = lineData.getItemLayout(idx);
- var line = new Polyline_default({
- shape: {
- points
- }
- });
- this.add(line);
- this._updateCommonStl(lineData, idx, seriesScope);
- };
- ;
- Polyline2.prototype.updateData = function(lineData, idx, seriesScope) {
- var seriesModel = lineData.hostModel;
- var line = this.childAt(0);
- var target = {
- shape: {
- points: lineData.getItemLayout(idx)
- }
- };
- updateProps(line, target, seriesModel, idx);
- this._updateCommonStl(lineData, idx, seriesScope);
- };
- ;
- Polyline2.prototype._updateCommonStl = function(lineData, idx, seriesScope) {
- var line = this.childAt(0);
- var itemModel = lineData.getItemModel(idx);
- var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;
- var focus = seriesScope && seriesScope.focus;
- var blurScope = seriesScope && seriesScope.blurScope;
- var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled;
- if (!seriesScope || lineData.hasItemOption) {
- var emphasisModel = itemModel.getModel("emphasis");
- emphasisLineStyle = emphasisModel.getModel("lineStyle").getLineStyle();
- emphasisDisabled = emphasisModel.get("disabled");
- focus = emphasisModel.get("focus");
- blurScope = emphasisModel.get("blurScope");
- }
- line.useStyle(lineData.getItemVisual(idx, "style"));
- line.style.fill = null;
- line.style.strokeNoScale = true;
- var lineEmphasisState = line.ensureState("emphasis");
- lineEmphasisState.style = emphasisLineStyle;
- toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);
- };
- ;
- Polyline2.prototype.updateLayout = function(lineData, idx) {
- var polyline = this.childAt(0);
- polyline.setShape("points", lineData.getItemLayout(idx));
- };
- ;
- return Polyline2;
- }(Group_default)
- );
- var Polyline_default2 = Polyline;
- // node_modules/echarts/lib/chart/helper/EffectPolyline.js
- var EffectPolyline = (
- /** @class */
- function(_super) {
- __extends(EffectPolyline2, _super);
- function EffectPolyline2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this._lastFrame = 0;
- _this._lastFramePercent = 0;
- return _this;
- }
- EffectPolyline2.prototype.createLine = function(lineData, idx, seriesScope) {
- return new Polyline_default2(lineData, idx, seriesScope);
- };
- ;
- EffectPolyline2.prototype._updateAnimationPoints = function(symbol, points) {
- this._points = points;
- var accLenArr = [0];
- var len2 = 0;
- for (var i = 1; i < points.length; i++) {
- var p1 = points[i - 1];
- var p2 = points[i];
- len2 += dist(p1, p2);
- accLenArr.push(len2);
- }
- if (len2 === 0) {
- this._length = 0;
- return;
- }
- for (var i = 0; i < accLenArr.length; i++) {
- accLenArr[i] /= len2;
- }
- this._offsets = accLenArr;
- this._length = len2;
- };
- ;
- EffectPolyline2.prototype._getLineLength = function() {
- return this._length;
- };
- ;
- EffectPolyline2.prototype._updateSymbolPosition = function(symbol) {
- var t = symbol.__t < 1 ? symbol.__t : 2 - symbol.__t;
- var points = this._points;
- var offsets = this._offsets;
- var len2 = points.length;
- if (!offsets) {
- return;
- }
- var lastFrame = this._lastFrame;
- var frame;
- if (t < this._lastFramePercent) {
- var start = Math.min(lastFrame + 1, len2 - 1);
- for (frame = start; frame >= 0; frame--) {
- if (offsets[frame] <= t) {
- break;
- }
- }
- frame = Math.min(frame, len2 - 2);
- } else {
- for (frame = lastFrame; frame < len2; frame++) {
- if (offsets[frame] > t) {
- break;
- }
- }
- frame = Math.min(frame - 1, len2 - 2);
- }
- var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);
- var p0 = points[frame];
- var p1 = points[frame + 1];
- symbol.x = p0[0] * (1 - p) + p * p1[0];
- symbol.y = p0[1] * (1 - p) + p * p1[1];
- var tx = symbol.__t < 1 ? p1[0] - p0[0] : p0[0] - p1[0];
- var ty = symbol.__t < 1 ? p1[1] - p0[1] : p0[1] - p1[1];
- symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;
- this._lastFrame = frame;
- this._lastFramePercent = t;
- symbol.ignore = false;
- };
- ;
- return EffectPolyline2;
- }(EffectLine_default)
- );
- var EffectPolyline_default = EffectPolyline;
- // node_modules/echarts/lib/chart/helper/LargeLineDraw.js
- var LargeLinesPathShape = (
- /** @class */
- function() {
- function LargeLinesPathShape2() {
- this.polyline = false;
- this.curveness = 0;
- this.segs = [];
- }
- return LargeLinesPathShape2;
- }()
- );
- var LargeLinesPath = (
- /** @class */
- function(_super) {
- __extends(LargeLinesPath2, _super);
- function LargeLinesPath2(opts) {
- var _this = _super.call(this, opts) || this;
- _this._off = 0;
- _this.hoverDataIdx = -1;
- return _this;
- }
- LargeLinesPath2.prototype.reset = function() {
- this.notClear = false;
- this._off = 0;
- };
- LargeLinesPath2.prototype.getDefaultStyle = function() {
- return {
- stroke: "#000",
- fill: null
- };
- };
- LargeLinesPath2.prototype.getDefaultShape = function() {
- return new LargeLinesPathShape();
- };
- LargeLinesPath2.prototype.buildPath = function(ctx, shape) {
- var segs = shape.segs;
- var curveness = shape.curveness;
- var i;
- if (shape.polyline) {
- for (i = this._off; i < segs.length; ) {
- var count = segs[i++];
- if (count > 0) {
- ctx.moveTo(segs[i++], segs[i++]);
- for (var k = 1; k < count; k++) {
- ctx.lineTo(segs[i++], segs[i++]);
- }
- }
- }
- } else {
- for (i = this._off; i < segs.length; ) {
- var x0 = segs[i++];
- var y0 = segs[i++];
- var x1 = segs[i++];
- var y1 = segs[i++];
- ctx.moveTo(x0, y0);
- if (curveness > 0) {
- var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;
- var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;
- ctx.quadraticCurveTo(x2, y2, x1, y1);
- } else {
- ctx.lineTo(x1, y1);
- }
- }
- }
- if (this.incremental) {
- this._off = i;
- this.notClear = true;
- }
- };
- LargeLinesPath2.prototype.findDataIndex = function(x, y) {
- var shape = this.shape;
- var segs = shape.segs;
- var curveness = shape.curveness;
- var lineWidth = this.style.lineWidth;
- if (shape.polyline) {
- var dataIndex = 0;
- for (var i = 0; i < segs.length; ) {
- var count = segs[i++];
- if (count > 0) {
- var x0 = segs[i++];
- var y0 = segs[i++];
- for (var k = 1; k < count; k++) {
- var x1 = segs[i++];
- var y1 = segs[i++];
- if (containStroke(x0, y0, x1, y1, lineWidth, x, y)) {
- return dataIndex;
- }
- }
- }
- dataIndex++;
- }
- } else {
- var dataIndex = 0;
- for (var i = 0; i < segs.length; ) {
- var x0 = segs[i++];
- var y0 = segs[i++];
- var x1 = segs[i++];
- var y1 = segs[i++];
- if (curveness > 0) {
- var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;
- var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;
- if (containStroke2(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {
- return dataIndex;
- }
- } else {
- if (containStroke(x0, y0, x1, y1, lineWidth, x, y)) {
- return dataIndex;
- }
- }
- dataIndex++;
- }
- }
- return -1;
- };
- LargeLinesPath2.prototype.contain = function(x, y) {
- var localPos = this.transformCoordToLocal(x, y);
- var rect = this.getBoundingRect();
- x = localPos[0];
- y = localPos[1];
- if (rect.contain(x, y)) {
- var dataIdx = this.hoverDataIdx = this.findDataIndex(x, y);
- return dataIdx >= 0;
- }
- this.hoverDataIdx = -1;
- return false;
- };
- LargeLinesPath2.prototype.getBoundingRect = function() {
- var rect = this._rect;
- if (!rect) {
- var shape = this.shape;
- var points = shape.segs;
- var minX = Infinity;
- var minY = Infinity;
- var maxX = -Infinity;
- var maxY = -Infinity;
- for (var i = 0; i < points.length; ) {
- var x = points[i++];
- var y = points[i++];
- minX = Math.min(x, minX);
- maxX = Math.max(x, maxX);
- minY = Math.min(y, minY);
- maxY = Math.max(y, maxY);
- }
- rect = this._rect = new BoundingRect_default(minX, minY, maxX, maxY);
- }
- return rect;
- };
- return LargeLinesPath2;
- }(Path_default)
- );
- var LargeLineDraw = (
- /** @class */
- function() {
- function LargeLineDraw2() {
- this.group = new Group_default();
- }
- LargeLineDraw2.prototype.updateData = function(data) {
- this._clear();
- var lineEl = this._create();
- lineEl.setShape({
- segs: data.getLayout("linesPoints")
- });
- this._setCommon(lineEl, data);
- };
- ;
- LargeLineDraw2.prototype.incrementalPrepareUpdate = function(data) {
- this.group.removeAll();
- this._clear();
- };
- ;
- LargeLineDraw2.prototype.incrementalUpdate = function(taskParams, data) {
- var lastAdded = this._newAdded[0];
- var linePoints = data.getLayout("linesPoints");
- var oldSegs = lastAdded && lastAdded.shape.segs;
- if (oldSegs && oldSegs.length < 2e4) {
- var oldLen = oldSegs.length;
- var newSegs = new Float32Array(oldLen + linePoints.length);
- newSegs.set(oldSegs);
- newSegs.set(linePoints, oldLen);
- lastAdded.setShape({
- segs: newSegs
- });
- } else {
- this._newAdded = [];
- var lineEl = this._create();
- lineEl.incremental = true;
- lineEl.setShape({
- segs: linePoints
- });
- this._setCommon(lineEl, data);
- lineEl.__startIndex = taskParams.start;
- }
- };
- LargeLineDraw2.prototype.remove = function() {
- this._clear();
- };
- LargeLineDraw2.prototype.eachRendered = function(cb) {
- this._newAdded[0] && cb(this._newAdded[0]);
- };
- LargeLineDraw2.prototype._create = function() {
- var lineEl = new LargeLinesPath({
- cursor: "default",
- ignoreCoarsePointer: true
- });
- this._newAdded.push(lineEl);
- this.group.add(lineEl);
- return lineEl;
- };
- LargeLineDraw2.prototype._setCommon = function(lineEl, data, isIncremental) {
- var hostModel = data.hostModel;
- lineEl.setShape({
- polyline: hostModel.get("polyline"),
- curveness: hostModel.get(["lineStyle", "curveness"])
- });
- lineEl.useStyle(hostModel.getModel("lineStyle").getLineStyle());
- lineEl.style.strokeNoScale = true;
- var style = data.getVisual("style");
- if (style && style.stroke) {
- lineEl.setStyle("stroke", style.stroke);
- }
- lineEl.setStyle("fill", null);
- var ecData = getECData(lineEl);
- ecData.seriesIndex = hostModel.seriesIndex;
- lineEl.on("mousemove", function(e) {
- ecData.dataIndex = null;
- var dataIndex = lineEl.hoverDataIdx;
- if (dataIndex > 0) {
- ecData.dataIndex = dataIndex + lineEl.__startIndex;
- }
- });
- };
- ;
- LargeLineDraw2.prototype._clear = function() {
- this._newAdded = [];
- this.group.removeAll();
- };
- ;
- return LargeLineDraw2;
- }()
- );
- var LargeLineDraw_default = LargeLineDraw;
- // node_modules/echarts/lib/chart/lines/linesLayout.js
- var linesLayout = {
- seriesType: "lines",
- plan: createRenderPlanner(),
- reset: function(seriesModel) {
- var coordSys = seriesModel.coordinateSystem;
- if (!coordSys) {
- if (true) {
- error("The lines series must have a coordinate system.");
- }
- return;
- }
- var isPolyline = seriesModel.get("polyline");
- var isLarge = seriesModel.pipelineContext.large;
- return {
- progress: function(params, lineData) {
- var lineCoords = [];
- if (isLarge) {
- var points = void 0;
- var segCount = params.end - params.start;
- if (isPolyline) {
- var totalCoordsCount = 0;
- for (var i = params.start; i < params.end; i++) {
- totalCoordsCount += seriesModel.getLineCoordsCount(i);
- }
- points = new Float32Array(segCount + totalCoordsCount * 2);
- } else {
- points = new Float32Array(segCount * 4);
- }
- var offset = 0;
- var pt = [];
- for (var i = params.start; i < params.end; i++) {
- var len2 = seriesModel.getLineCoords(i, lineCoords);
- if (isPolyline) {
- points[offset++] = len2;
- }
- for (var k = 0; k < len2; k++) {
- pt = coordSys.dataToPoint(lineCoords[k], false, pt);
- points[offset++] = pt[0];
- points[offset++] = pt[1];
- }
- }
- lineData.setLayout("linesPoints", points);
- } else {
- for (var i = params.start; i < params.end; i++) {
- var itemModel = lineData.getItemModel(i);
- var len2 = seriesModel.getLineCoords(i, lineCoords);
- var pts = [];
- if (isPolyline) {
- for (var j = 0; j < len2; j++) {
- pts.push(coordSys.dataToPoint(lineCoords[j]));
- }
- } else {
- pts[0] = coordSys.dataToPoint(lineCoords[0]);
- pts[1] = coordSys.dataToPoint(lineCoords[1]);
- var curveness = itemModel.get(["lineStyle", "curveness"]);
- if (+curveness) {
- pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness];
- }
- }
- lineData.setItemLayout(i, pts);
- }
- }
- }
- };
- }
- };
- var linesLayout_default = linesLayout;
- // node_modules/echarts/lib/chart/lines/LinesView.js
- var LinesView = (
- /** @class */
- function(_super) {
- __extends(LinesView2, _super);
- function LinesView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = LinesView2.type;
- return _this;
- }
- LinesView2.prototype.render = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var lineDraw = this._updateLineDraw(data, seriesModel);
- var zlevel = seriesModel.get("zlevel");
- var trailLength = seriesModel.get(["effect", "trailLength"]);
- var zr = api.getZr();
- var isSvg = zr.painter.getType() === "svg";
- if (!isSvg) {
- zr.painter.getLayer(zlevel).clear(true);
- }
- if (this._lastZlevel != null && !isSvg) {
- zr.configLayer(this._lastZlevel, {
- motionBlur: false
- });
- }
- if (this._showEffect(seriesModel) && trailLength > 0) {
- if (!isSvg) {
- zr.configLayer(zlevel, {
- motionBlur: true,
- lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)
- });
- } else if (true) {
- console.warn("SVG render mode doesn't support lines with trail effect");
- }
- }
- lineDraw.updateData(data);
- var clipPath = seriesModel.get("clip", true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);
- if (clipPath) {
- this.group.setClipPath(clipPath);
- } else {
- this.group.removeClipPath();
- }
- this._lastZlevel = zlevel;
- this._finished = true;
- };
- LinesView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var lineDraw = this._updateLineDraw(data, seriesModel);
- lineDraw.incrementalPrepareUpdate(data);
- this._clearLayer(api);
- this._finished = false;
- };
- LinesView2.prototype.incrementalRender = function(taskParams, seriesModel, ecModel) {
- this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());
- this._finished = taskParams.end === seriesModel.getData().count();
- };
- LinesView2.prototype.eachRendered = function(cb) {
- this._lineDraw && this._lineDraw.eachRendered(cb);
- };
- LinesView2.prototype.updateTransform = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var pipelineContext = seriesModel.pipelineContext;
- if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {
- return {
- update: true
- };
- } else {
- var res = linesLayout_default.reset(seriesModel, ecModel, api);
- if (res.progress) {
- res.progress({
- start: 0,
- end: data.count(),
- count: data.count()
- }, data);
- }
- this._lineDraw.updateLayout();
- this._clearLayer(api);
- }
- };
- LinesView2.prototype._updateLineDraw = function(data, seriesModel) {
- var lineDraw = this._lineDraw;
- var hasEffect = this._showEffect(seriesModel);
- var isPolyline = !!seriesModel.get("polyline");
- var pipelineContext = seriesModel.pipelineContext;
- var isLargeDraw = pipelineContext.large;
- if (true) {
- if (hasEffect && isLargeDraw) {
- console.warn("Large lines not support effect");
- }
- }
- if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) {
- if (lineDraw) {
- lineDraw.remove();
- }
- lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw_default() : new LineDraw_default(isPolyline ? hasEffect ? EffectPolyline_default : Polyline_default2 : hasEffect ? EffectLine_default : Line_default2);
- this._hasEffet = hasEffect;
- this._isPolyline = isPolyline;
- this._isLargeDraw = isLargeDraw;
- }
- this.group.add(lineDraw.group);
- return lineDraw;
- };
- LinesView2.prototype._showEffect = function(seriesModel) {
- return !!seriesModel.get(["effect", "show"]);
- };
- LinesView2.prototype._clearLayer = function(api) {
- var zr = api.getZr();
- var isSvg = zr.painter.getType() === "svg";
- if (!isSvg && this._lastZlevel != null) {
- zr.painter.getLayer(this._lastZlevel).clear(true);
- }
- };
- LinesView2.prototype.remove = function(ecModel, api) {
- this._lineDraw && this._lineDraw.remove();
- this._lineDraw = null;
- this._clearLayer(api);
- };
- LinesView2.prototype.dispose = function(ecModel, api) {
- this.remove(ecModel, api);
- };
- LinesView2.type = "lines";
- return LinesView2;
- }(Chart_default)
- );
- var LinesView_default = LinesView;
- // node_modules/echarts/lib/chart/lines/LinesSeries.js
- var Uint32Arr = typeof Uint32Array === "undefined" ? Array : Uint32Array;
- var Float64Arr = typeof Float64Array === "undefined" ? Array : Float64Array;
- function compatEc2(seriesOpt) {
- var data = seriesOpt.data;
- if (data && data[0] && data[0][0] && data[0][0].coord) {
- if (true) {
- console.warn("Lines data configuration has been changed to { coords:[[1,2],[2,3]] }");
- }
- seriesOpt.data = map(data, function(itemOpt) {
- var coords = [itemOpt[0].coord, itemOpt[1].coord];
- var target = {
- coords
- };
- if (itemOpt[0].name) {
- target.fromName = itemOpt[0].name;
- }
- if (itemOpt[1].name) {
- target.toName = itemOpt[1].name;
- }
- return mergeAll([target, itemOpt[0], itemOpt[1]]);
- });
- }
- }
- var LinesSeriesModel = (
- /** @class */
- function(_super) {
- __extends(LinesSeriesModel2, _super);
- function LinesSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = LinesSeriesModel2.type;
- _this.visualStyleAccessPath = "lineStyle";
- _this.visualDrawType = "stroke";
- return _this;
- }
- LinesSeriesModel2.prototype.init = function(option) {
- option.data = option.data || [];
- compatEc2(option);
- var result = this._processFlatCoordsArray(option.data);
- this._flatCoords = result.flatCoords;
- this._flatCoordsOffset = result.flatCoordsOffset;
- if (result.flatCoords) {
- option.data = new Float32Array(result.count);
- }
- _super.prototype.init.apply(this, arguments);
- };
- LinesSeriesModel2.prototype.mergeOption = function(option) {
- compatEc2(option);
- if (option.data) {
- var result = this._processFlatCoordsArray(option.data);
- this._flatCoords = result.flatCoords;
- this._flatCoordsOffset = result.flatCoordsOffset;
- if (result.flatCoords) {
- option.data = new Float32Array(result.count);
- }
- }
- _super.prototype.mergeOption.apply(this, arguments);
- };
- LinesSeriesModel2.prototype.appendData = function(params) {
- var result = this._processFlatCoordsArray(params.data);
- if (result.flatCoords) {
- if (!this._flatCoords) {
- this._flatCoords = result.flatCoords;
- this._flatCoordsOffset = result.flatCoordsOffset;
- } else {
- this._flatCoords = concatArray(this._flatCoords, result.flatCoords);
- this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);
- }
- params.data = new Float32Array(result.count);
- }
- this.getRawData().appendData(params.data);
- };
- LinesSeriesModel2.prototype._getCoordsFromItemModel = function(idx) {
- var itemModel = this.getData().getItemModel(idx);
- var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow("coords");
- if (true) {
- if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {
- throw new Error("Invalid coords " + JSON.stringify(coords) + ". Lines must have 2d coords array in data item.");
- }
- }
- return coords;
- };
- LinesSeriesModel2.prototype.getLineCoordsCount = function(idx) {
- if (this._flatCoordsOffset) {
- return this._flatCoordsOffset[idx * 2 + 1];
- } else {
- return this._getCoordsFromItemModel(idx).length;
- }
- };
- LinesSeriesModel2.prototype.getLineCoords = function(idx, out) {
- if (this._flatCoordsOffset) {
- var offset = this._flatCoordsOffset[idx * 2];
- var len2 = this._flatCoordsOffset[idx * 2 + 1];
- for (var i = 0; i < len2; i++) {
- out[i] = out[i] || [];
- out[i][0] = this._flatCoords[offset + i * 2];
- out[i][1] = this._flatCoords[offset + i * 2 + 1];
- }
- return len2;
- } else {
- var coords = this._getCoordsFromItemModel(idx);
- for (var i = 0; i < coords.length; i++) {
- out[i] = out[i] || [];
- out[i][0] = coords[i][0];
- out[i][1] = coords[i][1];
- }
- return coords.length;
- }
- };
- LinesSeriesModel2.prototype._processFlatCoordsArray = function(data) {
- var startOffset = 0;
- if (this._flatCoords) {
- startOffset = this._flatCoords.length;
- }
- if (isNumber(data[0])) {
- var len2 = data.length;
- var coordsOffsetAndLenStorage = new Uint32Arr(len2);
- var coordsStorage = new Float64Arr(len2);
- var coordsCursor = 0;
- var offsetCursor = 0;
- var dataCount = 0;
- for (var i = 0; i < len2; ) {
- dataCount++;
- var count = data[i++];
- coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset;
- coordsOffsetAndLenStorage[offsetCursor++] = count;
- for (var k = 0; k < count; k++) {
- var x = data[i++];
- var y = data[i++];
- coordsStorage[coordsCursor++] = x;
- coordsStorage[coordsCursor++] = y;
- if (i > len2) {
- if (true) {
- throw new Error("Invalid data format.");
- }
- }
- }
- }
- return {
- flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),
- flatCoords: coordsStorage,
- count: dataCount
- };
- }
- return {
- flatCoordsOffset: null,
- flatCoords: null,
- count: data.length
- };
- };
- LinesSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- if (true) {
- var CoordSys = CoordinateSystem_default.get(option.coordinateSystem);
- if (!CoordSys) {
- throw new Error("Unknown coordinate system " + option.coordinateSystem);
- }
- }
- var lineData = new SeriesData_default(["value"], this);
- lineData.hasItemOption = false;
- lineData.initData(option.data, [], function(dataItem, dimName, dataIndex, dimIndex) {
- if (dataItem instanceof Array) {
- return NaN;
- } else {
- lineData.hasItemOption = true;
- var value = dataItem.value;
- if (value != null) {
- return value instanceof Array ? value[dimIndex] : value;
- }
- }
- });
- return lineData;
- };
- LinesSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) {
- var data = this.getData();
- var itemModel = data.getItemModel(dataIndex);
- var name = itemModel.get("name");
- if (name) {
- return name;
- }
- var fromName = itemModel.get("fromName");
- var toName = itemModel.get("toName");
- var nameArr = [];
- fromName != null && nameArr.push(fromName);
- toName != null && nameArr.push(toName);
- return createTooltipMarkup("nameValue", {
- name: nameArr.join(" > ")
- });
- };
- LinesSeriesModel2.prototype.preventIncremental = function() {
- return !!this.get(["effect", "show"]);
- };
- LinesSeriesModel2.prototype.getProgressive = function() {
- var progressive = this.option.progressive;
- if (progressive == null) {
- return this.option.large ? 1e4 : this.get("progressive");
- }
- return progressive;
- };
- LinesSeriesModel2.prototype.getProgressiveThreshold = function() {
- var progressiveThreshold = this.option.progressiveThreshold;
- if (progressiveThreshold == null) {
- return this.option.large ? 2e4 : this.get("progressiveThreshold");
- }
- return progressiveThreshold;
- };
- LinesSeriesModel2.prototype.getZLevelKey = function() {
- var effectModel = this.getModel("effect");
- var trailLength = effectModel.get("trailLength");
- return this.getData().count() > this.getProgressiveThreshold() ? this.id : effectModel.get("show") && trailLength > 0 ? trailLength + "" : "";
- };
- LinesSeriesModel2.type = "series.lines";
- LinesSeriesModel2.dependencies = ["grid", "polar", "geo", "calendar"];
- LinesSeriesModel2.defaultOption = {
- coordinateSystem: "geo",
- // zlevel: 0,
- z: 2,
- legendHoverLink: true,
- // Cartesian coordinate system
- xAxisIndex: 0,
- yAxisIndex: 0,
- symbol: ["none", "none"],
- symbolSize: [10, 10],
- // Geo coordinate system
- geoIndex: 0,
- effect: {
- show: false,
- period: 4,
- constantSpeed: 0,
- symbol: "circle",
- symbolSize: 3,
- loop: true,
- trailLength: 0.2
- },
- large: false,
- // Available when large is true
- largeThreshold: 2e3,
- polyline: false,
- clip: true,
- label: {
- show: false,
- position: "end"
- // distance: 5,
- // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调
- },
- lineStyle: {
- opacity: 0.5
- }
- };
- return LinesSeriesModel2;
- }(Series_default)
- );
- var LinesSeries_default = LinesSeriesModel;
- // node_modules/echarts/lib/chart/lines/linesVisual.js
- function normalize3(a) {
- if (!(a instanceof Array)) {
- a = [a, a];
- }
- return a;
- }
- var linesVisual = {
- seriesType: "lines",
- reset: function(seriesModel) {
- var symbolType = normalize3(seriesModel.get("symbol"));
- var symbolSize = normalize3(seriesModel.get("symbolSize"));
- var data = seriesModel.getData();
- data.setVisual("fromSymbol", symbolType && symbolType[0]);
- data.setVisual("toSymbol", symbolType && symbolType[1]);
- data.setVisual("fromSymbolSize", symbolSize && symbolSize[0]);
- data.setVisual("toSymbolSize", symbolSize && symbolSize[1]);
- function dataEach(data2, idx) {
- var itemModel = data2.getItemModel(idx);
- var symbolType2 = normalize3(itemModel.getShallow("symbol", true));
- var symbolSize2 = normalize3(itemModel.getShallow("symbolSize", true));
- symbolType2[0] && data2.setItemVisual(idx, "fromSymbol", symbolType2[0]);
- symbolType2[1] && data2.setItemVisual(idx, "toSymbol", symbolType2[1]);
- symbolSize2[0] && data2.setItemVisual(idx, "fromSymbolSize", symbolSize2[0]);
- symbolSize2[1] && data2.setItemVisual(idx, "toSymbolSize", symbolSize2[1]);
- }
- return {
- dataEach: data.hasItemOption ? dataEach : null
- };
- }
- };
- var linesVisual_default = linesVisual;
- // node_modules/echarts/lib/chart/lines/install.js
- function install21(registers) {
- registers.registerChartView(LinesView_default);
- registers.registerSeriesModel(LinesSeries_default);
- registers.registerLayout(linesLayout_default);
- registers.registerVisual(linesVisual_default);
- }
- // node_modules/echarts/lib/chart/heatmap/HeatmapLayer.js
- var GRADIENT_LEVELS = 256;
- var HeatmapLayer = (
- /** @class */
- function() {
- function HeatmapLayer2() {
- this.blurSize = 30;
- this.pointSize = 20;
- this.maxOpacity = 1;
- this.minOpacity = 0;
- this._gradientPixels = {
- inRange: null,
- outOfRange: null
- };
- var canvas = platformApi.createCanvas();
- this.canvas = canvas;
- }
- HeatmapLayer2.prototype.update = function(data, width, height, normalize4, colorFunc, isInRange) {
- var brush = this._getBrush();
- var gradientInRange = this._getGradient(colorFunc, "inRange");
- var gradientOutOfRange = this._getGradient(colorFunc, "outOfRange");
- var r = this.pointSize + this.blurSize;
- var canvas = this.canvas;
- var ctx = canvas.getContext("2d");
- var len2 = data.length;
- canvas.width = width;
- canvas.height = height;
- for (var i = 0; i < len2; ++i) {
- var p = data[i];
- var x = p[0];
- var y = p[1];
- var value = p[2];
- var alpha = normalize4(value);
- ctx.globalAlpha = alpha;
- ctx.drawImage(brush, x - r, y - r);
- }
- if (!canvas.width || !canvas.height) {
- return canvas;
- }
- var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
- var pixels = imageData.data;
- var offset = 0;
- var pixelLen = pixels.length;
- var minOpacity = this.minOpacity;
- var maxOpacity = this.maxOpacity;
- var diffOpacity = maxOpacity - minOpacity;
- while (offset < pixelLen) {
- var alpha = pixels[offset + 3] / 256;
- var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4;
- if (alpha > 0) {
- var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange;
- alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);
- pixels[offset++] = gradient[gradientOffset];
- pixels[offset++] = gradient[gradientOffset + 1];
- pixels[offset++] = gradient[gradientOffset + 2];
- pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;
- } else {
- offset += 4;
- }
- }
- ctx.putImageData(imageData, 0, 0);
- return canvas;
- };
- HeatmapLayer2.prototype._getBrush = function() {
- var brushCanvas = this._brushCanvas || (this._brushCanvas = platformApi.createCanvas());
- var r = this.pointSize + this.blurSize;
- var d = r * 2;
- brushCanvas.width = d;
- brushCanvas.height = d;
- var ctx = brushCanvas.getContext("2d");
- ctx.clearRect(0, 0, d, d);
- ctx.shadowOffsetX = d;
- ctx.shadowBlur = this.blurSize;
- ctx.shadowColor = "#000";
- ctx.beginPath();
- ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);
- ctx.closePath();
- ctx.fill();
- return brushCanvas;
- };
- HeatmapLayer2.prototype._getGradient = function(colorFunc, state) {
- var gradientPixels = this._gradientPixels;
- var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));
- var color = [0, 0, 0, 0];
- var off = 0;
- for (var i = 0; i < 256; i++) {
- colorFunc[state](i / 255, true, color);
- pixelsSingleState[off++] = color[0];
- pixelsSingleState[off++] = color[1];
- pixelsSingleState[off++] = color[2];
- pixelsSingleState[off++] = color[3];
- }
- return pixelsSingleState;
- };
- return HeatmapLayer2;
- }()
- );
- var HeatmapLayer_default = HeatmapLayer;
- // node_modules/echarts/lib/chart/heatmap/HeatmapView.js
- function getIsInPiecewiseRange(dataExtent, pieceList, selected) {
- var dataSpan = dataExtent[1] - dataExtent[0];
- pieceList = map(pieceList, function(piece) {
- return {
- interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan]
- };
- });
- var len2 = pieceList.length;
- var lastIndex = 0;
- return function(val) {
- var i;
- for (i = lastIndex; i < len2; i++) {
- var interval = pieceList[i].interval;
- if (interval[0] <= val && val <= interval[1]) {
- lastIndex = i;
- break;
- }
- }
- if (i === len2) {
- for (i = lastIndex - 1; i >= 0; i--) {
- var interval = pieceList[i].interval;
- if (interval[0] <= val && val <= interval[1]) {
- lastIndex = i;
- break;
- }
- }
- }
- return i >= 0 && i < len2 && selected[i];
- };
- }
- function getIsInContinuousRange(dataExtent, range) {
- var dataSpan = dataExtent[1] - dataExtent[0];
- range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan];
- return function(val) {
- return val >= range[0] && val <= range[1];
- };
- }
- function isGeoCoordSys(coordSys) {
- var dimensions = coordSys.dimensions;
- return dimensions[0] === "lng" && dimensions[1] === "lat";
- }
- var HeatmapView = (
- /** @class */
- function(_super) {
- __extends(HeatmapView2, _super);
- function HeatmapView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = HeatmapView2.type;
- return _this;
- }
- HeatmapView2.prototype.render = function(seriesModel, ecModel, api) {
- var visualMapOfThisSeries;
- ecModel.eachComponent("visualMap", function(visualMap) {
- visualMap.eachTargetSeries(function(targetSeries) {
- if (targetSeries === seriesModel) {
- visualMapOfThisSeries = visualMap;
- }
- });
- });
- if (true) {
- if (!visualMapOfThisSeries) {
- throw new Error("Heatmap must use with visualMap");
- }
- }
- this._progressiveEls = null;
- this.group.removeAll();
- var coordSys = seriesModel.coordinateSystem;
- if (coordSys.type === "cartesian2d" || coordSys.type === "calendar") {
- this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());
- } else if (isGeoCoordSys(coordSys)) {
- this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);
- }
- };
- HeatmapView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) {
- this.group.removeAll();
- };
- HeatmapView2.prototype.incrementalRender = function(params, seriesModel, ecModel, api) {
- var coordSys = seriesModel.coordinateSystem;
- if (coordSys) {
- if (isGeoCoordSys(coordSys)) {
- this.render(seriesModel, ecModel, api);
- } else {
- this._progressiveEls = [];
- this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);
- }
- }
- };
- HeatmapView2.prototype.eachRendered = function(cb) {
- traverseElements(this._progressiveEls || this.group, cb);
- };
- HeatmapView2.prototype._renderOnCartesianAndCalendar = function(seriesModel, api, start, end, incremental) {
- var coordSys = seriesModel.coordinateSystem;
- var isCartesian2d = isCoordinateSystemType(coordSys, "cartesian2d");
- var width;
- var height;
- var xAxisExtent;
- var yAxisExtent;
- if (isCartesian2d) {
- var xAxis = coordSys.getAxis("x");
- var yAxis = coordSys.getAxis("y");
- if (true) {
- if (!(xAxis.type === "category" && yAxis.type === "category")) {
- throw new Error("Heatmap on cartesian must have two category axes");
- }
- if (!(xAxis.onBand && yAxis.onBand)) {
- throw new Error("Heatmap on cartesian must have two axes with boundaryGap true");
- }
- }
- width = xAxis.getBandWidth() + 0.5;
- height = yAxis.getBandWidth() + 0.5;
- xAxisExtent = xAxis.scale.getExtent();
- yAxisExtent = yAxis.scale.getExtent();
- }
- var group = this.group;
- var data = seriesModel.getData();
- var emphasisStyle = seriesModel.getModel(["emphasis", "itemStyle"]).getItemStyle();
- var blurStyle = seriesModel.getModel(["blur", "itemStyle"]).getItemStyle();
- var selectStyle = seriesModel.getModel(["select", "itemStyle"]).getItemStyle();
- var borderRadius = seriesModel.get(["itemStyle", "borderRadius"]);
- var labelStatesModels = getLabelStatesModels(seriesModel);
- var emphasisModel = seriesModel.getModel("emphasis");
- var focus = emphasisModel.get("focus");
- var blurScope = emphasisModel.get("blurScope");
- var emphasisDisabled = emphasisModel.get("disabled");
- var dataDims = isCartesian2d ? [data.mapDimension("x"), data.mapDimension("y"), data.mapDimension("value")] : [data.mapDimension("time"), data.mapDimension("value")];
- for (var idx = start; idx < end; idx++) {
- var rect = void 0;
- var style = data.getItemVisual(idx, "style");
- if (isCartesian2d) {
- var dataDimX = data.get(dataDims[0], idx);
- var dataDimY = data.get(dataDims[1], idx);
- if (isNaN(data.get(dataDims[2], idx)) || isNaN(dataDimX) || isNaN(dataDimY) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1] || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) {
- continue;
- }
- var point = coordSys.dataToPoint([dataDimX, dataDimY]);
- rect = new Rect_default({
- shape: {
- x: point[0] - width / 2,
- y: point[1] - height / 2,
- width,
- height
- },
- style
- });
- } else {
- if (isNaN(data.get(dataDims[1], idx))) {
- continue;
- }
- rect = new Rect_default({
- z2: 1,
- shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,
- style
- });
- }
- if (data.hasItemOption) {
- var itemModel = data.getItemModel(idx);
- var emphasisModel_1 = itemModel.getModel("emphasis");
- emphasisStyle = emphasisModel_1.getModel("itemStyle").getItemStyle();
- blurStyle = itemModel.getModel(["blur", "itemStyle"]).getItemStyle();
- selectStyle = itemModel.getModel(["select", "itemStyle"]).getItemStyle();
- borderRadius = itemModel.get(["itemStyle", "borderRadius"]);
- focus = emphasisModel_1.get("focus");
- blurScope = emphasisModel_1.get("blurScope");
- emphasisDisabled = emphasisModel_1.get("disabled");
- labelStatesModels = getLabelStatesModels(itemModel);
- }
- rect.shape.r = borderRadius;
- var rawValue = seriesModel.getRawValue(idx);
- var defaultText = "-";
- if (rawValue && rawValue[2] != null) {
- defaultText = rawValue[2] + "";
- }
- setLabelStyle(rect, labelStatesModels, {
- labelFetcher: seriesModel,
- labelDataIndex: idx,
- defaultOpacity: style.opacity,
- defaultText
- });
- rect.ensureState("emphasis").style = emphasisStyle;
- rect.ensureState("blur").style = blurStyle;
- rect.ensureState("select").style = selectStyle;
- toggleHoverEmphasis(rect, focus, blurScope, emphasisDisabled);
- rect.incremental = incremental;
- if (incremental) {
- rect.states.emphasis.hoverLayer = true;
- }
- group.add(rect);
- data.setItemGraphicEl(idx, rect);
- if (this._progressiveEls) {
- this._progressiveEls.push(rect);
- }
- }
- };
- HeatmapView2.prototype._renderOnGeo = function(geo, seriesModel, visualMapModel, api) {
- var inRangeVisuals = visualMapModel.targetVisuals.inRange;
- var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange;
- var data = seriesModel.getData();
- var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer_default();
- hmLayer.blurSize = seriesModel.get("blurSize");
- hmLayer.pointSize = seriesModel.get("pointSize");
- hmLayer.minOpacity = seriesModel.get("minOpacity");
- hmLayer.maxOpacity = seriesModel.get("maxOpacity");
- var rect = geo.getViewRect().clone();
- var roamTransform = geo.getRoamTransform();
- rect.applyTransform(roamTransform);
- var x = Math.max(rect.x, 0);
- var y = Math.max(rect.y, 0);
- var x2 = Math.min(rect.width + rect.x, api.getWidth());
- var y2 = Math.min(rect.height + rect.y, api.getHeight());
- var width = x2 - x;
- var height = y2 - y;
- var dims = [data.mapDimension("lng"), data.mapDimension("lat"), data.mapDimension("value")];
- var points = data.mapArray(dims, function(lng, lat, value) {
- var pt = geo.dataToPoint([lng, lat]);
- pt[0] -= x;
- pt[1] -= y;
- pt.push(value);
- return pt;
- });
- var dataExtent = visualMapModel.getExtent();
- var isInRange = visualMapModel.type === "visualMap.continuous" ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);
- hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {
- inRange: inRangeVisuals.color.getColorMapper(),
- outOfRange: outOfRangeVisuals.color.getColorMapper()
- }, isInRange);
- var img = new Image_default({
- style: {
- width,
- height,
- x,
- y,
- image: hmLayer.canvas
- },
- silent: true
- });
- this.group.add(img);
- };
- HeatmapView2.type = "heatmap";
- return HeatmapView2;
- }(Chart_default)
- );
- var HeatmapView_default = HeatmapView;
- // node_modules/echarts/lib/chart/heatmap/HeatmapSeries.js
- var HeatmapSeriesModel = (
- /** @class */
- function(_super) {
- __extends(HeatmapSeriesModel2, _super);
- function HeatmapSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = HeatmapSeriesModel2.type;
- return _this;
- }
- HeatmapSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- return createSeriesData_default(null, this, {
- generateCoord: "value"
- });
- };
- HeatmapSeriesModel2.prototype.preventIncremental = function() {
- var coordSysCreator = CoordinateSystem_default.get(this.get("coordinateSystem"));
- if (coordSysCreator && coordSysCreator.dimensions) {
- return coordSysCreator.dimensions[0] === "lng" && coordSysCreator.dimensions[1] === "lat";
- }
- };
- HeatmapSeriesModel2.type = "series.heatmap";
- HeatmapSeriesModel2.dependencies = ["grid", "geo", "calendar"];
- HeatmapSeriesModel2.defaultOption = {
- coordinateSystem: "cartesian2d",
- // zlevel: 0,
- z: 2,
- // Cartesian coordinate system
- // xAxisIndex: 0,
- // yAxisIndex: 0,
- // Geo coordinate system
- geoIndex: 0,
- blurSize: 30,
- pointSize: 20,
- maxOpacity: 1,
- minOpacity: 0,
- select: {
- itemStyle: {
- borderColor: "#212121"
- }
- }
- };
- return HeatmapSeriesModel2;
- }(Series_default)
- );
- var HeatmapSeries_default = HeatmapSeriesModel;
- // node_modules/echarts/lib/chart/heatmap/install.js
- function install22(registers) {
- registers.registerChartView(HeatmapView_default);
- registers.registerSeriesModel(HeatmapSeries_default);
- }
- // node_modules/echarts/lib/chart/bar/PictorialBarView.js
- var BAR_BORDER_WIDTH_QUERY = ["itemStyle", "borderWidth"];
- var LAYOUT_ATTRS = [{
- xy: "x",
- wh: "width",
- index: 0,
- posDesc: ["left", "right"]
- }, {
- xy: "y",
- wh: "height",
- index: 1,
- posDesc: ["top", "bottom"]
- }];
- var pathForLineWidth = new Circle_default();
- var PictorialBarView = (
- /** @class */
- function(_super) {
- __extends(PictorialBarView2, _super);
- function PictorialBarView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = PictorialBarView2.type;
- return _this;
- }
- PictorialBarView2.prototype.render = function(seriesModel, ecModel, api) {
- var group = this.group;
- var data = seriesModel.getData();
- var oldData = this._data;
- var cartesian = seriesModel.coordinateSystem;
- var baseAxis = cartesian.getBaseAxis();
- var isHorizontal = baseAxis.isHorizontal();
- var coordSysRect = cartesian.master.getRect();
- var opt = {
- ecSize: {
- width: api.getWidth(),
- height: api.getHeight()
- },
- seriesModel,
- coordSys: cartesian,
- coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],
- isHorizontal,
- valueDim: LAYOUT_ATTRS[+isHorizontal],
- categoryDim: LAYOUT_ATTRS[1 - +isHorizontal]
- };
- data.diff(oldData).add(function(dataIndex) {
- if (!data.hasValue(dataIndex)) {
- return;
- }
- var itemModel = getItemModel(data, dataIndex);
- var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);
- var bar = createBar(data, opt, symbolMeta);
- data.setItemGraphicEl(dataIndex, bar);
- group.add(bar);
- updateCommon(bar, opt, symbolMeta);
- }).update(function(newIndex, oldIndex) {
- var bar = oldData.getItemGraphicEl(oldIndex);
- if (!data.hasValue(newIndex)) {
- group.remove(bar);
- return;
- }
- var itemModel = getItemModel(data, newIndex);
- var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);
- var pictorialShapeStr = getShapeStr(data, symbolMeta);
- if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {
- group.remove(bar);
- data.setItemGraphicEl(newIndex, null);
- bar = null;
- }
- if (bar) {
- updateBar(bar, opt, symbolMeta);
- } else {
- bar = createBar(data, opt, symbolMeta, true);
- }
- data.setItemGraphicEl(newIndex, bar);
- bar.__pictorialSymbolMeta = symbolMeta;
- group.add(bar);
- updateCommon(bar, opt, symbolMeta);
- }).remove(function(dataIndex) {
- var bar = oldData.getItemGraphicEl(dataIndex);
- bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);
- }).execute();
- var clipPath = seriesModel.get("clip", true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;
- if (clipPath) {
- group.setClipPath(clipPath);
- } else {
- group.removeClipPath();
- }
- this._data = data;
- return this.group;
- };
- PictorialBarView2.prototype.remove = function(ecModel, api) {
- var group = this.group;
- var data = this._data;
- if (ecModel.get("animation")) {
- if (data) {
- data.eachItemGraphicEl(function(bar) {
- removeBar(data, getECData(bar).dataIndex, ecModel, bar);
- });
- }
- } else {
- group.removeAll();
- }
- };
- PictorialBarView2.type = "pictorialBar";
- return PictorialBarView2;
- }(Chart_default)
- );
- function getSymbolMeta(data, dataIndex, itemModel, opt) {
- var layout2 = data.getItemLayout(dataIndex);
- var symbolRepeat = itemModel.get("symbolRepeat");
- var symbolClip = itemModel.get("symbolClip");
- var symbolPosition = itemModel.get("symbolPosition") || "start";
- var symbolRotate = itemModel.get("symbolRotate");
- var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;
- var symbolPatternSize = itemModel.get("symbolPatternSize") || 2;
- var isAnimationEnabled2 = itemModel.isAnimationEnabled();
- var symbolMeta = {
- dataIndex,
- layout: layout2,
- itemModel,
- symbolType: data.getItemVisual(dataIndex, "symbol") || "circle",
- style: data.getItemVisual(dataIndex, "style"),
- symbolClip,
- symbolRepeat,
- symbolRepeatDirection: itemModel.get("symbolRepeatDirection"),
- symbolPatternSize,
- rotation,
- animationModel: isAnimationEnabled2 ? itemModel : null,
- hoverScale: isAnimationEnabled2 && itemModel.get(["emphasis", "scale"]),
- z2: itemModel.getShallow("z", true) || 0
- };
- prepareBarLength(itemModel, symbolRepeat, layout2, opt, symbolMeta);
- prepareSymbolSize(data, dataIndex, layout2, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);
- prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);
- var symbolSize = symbolMeta.symbolSize;
- var symbolOffset = normalizeSymbolOffset(itemModel.get("symbolOffset"), symbolSize);
- prepareLayoutInfo(itemModel, symbolSize, layout2, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);
- return symbolMeta;
- }
- function prepareBarLength(itemModel, symbolRepeat, layout2, opt, outputSymbolMeta) {
- var valueDim = opt.valueDim;
- var symbolBoundingData = itemModel.get("symbolBoundingData");
- var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());
- var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));
- var pxSignIdx = 1 - +(layout2[valueDim.wh] <= 0);
- var boundingLength;
- if (isArray(symbolBoundingData)) {
- var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];
- symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();
- boundingLength = symbolBoundingExtent[pxSignIdx];
- } else if (symbolBoundingData != null) {
- boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;
- } else if (symbolRepeat) {
- boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;
- } else {
- boundingLength = layout2[valueDim.wh];
- }
- outputSymbolMeta.boundingLength = boundingLength;
- if (symbolRepeat) {
- outputSymbolMeta.repeatCutLength = layout2[valueDim.wh];
- }
- outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : -1;
- }
- function convertToCoordOnAxis(axis, value) {
- return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));
- }
- function prepareSymbolSize(data, dataIndex, layout2, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {
- var valueDim = opt.valueDim;
- var categoryDim = opt.categoryDim;
- var categorySize = Math.abs(layout2[categoryDim.wh]);
- var symbolSize = data.getItemVisual(dataIndex, "symbolSize");
- var parsedSymbolSize;
- if (isArray(symbolSize)) {
- parsedSymbolSize = symbolSize.slice();
- } else {
- if (symbolSize == null) {
- parsedSymbolSize = ["100%", "100%"];
- } else {
- parsedSymbolSize = [symbolSize, symbolSize];
- }
- }
- parsedSymbolSize[categoryDim.index] = parsePercent2(parsedSymbolSize[categoryDim.index], categorySize);
- parsedSymbolSize[valueDim.index] = parsePercent2(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));
- outputSymbolMeta.symbolSize = parsedSymbolSize;
- var symbolScale = outputSymbolMeta.symbolScale = [parsedSymbolSize[0] / symbolPatternSize, parsedSymbolSize[1] / symbolPatternSize];
- symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;
- }
- function prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {
- var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;
- if (valueLineWidth) {
- pathForLineWidth.attr({
- scaleX: symbolScale[0],
- scaleY: symbolScale[1],
- rotation
- });
- pathForLineWidth.updateTransform();
- valueLineWidth /= pathForLineWidth.getLineScale();
- valueLineWidth *= symbolScale[opt.valueDim.index];
- }
- outputSymbolMeta.valueLineWidth = valueLineWidth || 0;
- }
- function prepareLayoutInfo(itemModel, symbolSize, layout2, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {
- var categoryDim = opt.categoryDim;
- var valueDim = opt.valueDim;
- var pxSign = outputSymbolMeta.pxSign;
- var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);
- var pathLen = unitLength;
- if (symbolRepeat) {
- var absBoundingLength = Math.abs(boundingLength);
- var symbolMargin = retrieve(itemModel.get("symbolMargin"), "15%") + "";
- var hasEndGap = false;
- if (symbolMargin.lastIndexOf("!") === symbolMargin.length - 1) {
- hasEndGap = true;
- symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);
- }
- var symbolMarginNumeric = parsePercent2(symbolMargin, symbolSize[valueDim.index]);
- var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0);
- var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;
- var repeatSpecified = isNumeric(symbolRepeat);
- var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin);
- var mDiff = absBoundingLength - repeatTimes * unitLength;
- symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : Math.max(repeatTimes - 1, 1));
- uLenWithMargin = unitLength + symbolMarginNumeric * 2;
- endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;
- if (!repeatSpecified && symbolRepeat !== "fixed") {
- repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;
- }
- pathLen = repeatTimes * uLenWithMargin - endFix;
- outputSymbolMeta.repeatTimes = repeatTimes;
- outputSymbolMeta.symbolMargin = symbolMarginNumeric;
- }
- var sizeFix = pxSign * (pathLen / 2);
- var pathPosition = outputSymbolMeta.pathPosition = [];
- pathPosition[categoryDim.index] = layout2[categoryDim.wh] / 2;
- pathPosition[valueDim.index] = symbolPosition === "start" ? sizeFix : symbolPosition === "end" ? boundingLength - sizeFix : boundingLength / 2;
- if (symbolOffset) {
- pathPosition[0] += symbolOffset[0];
- pathPosition[1] += symbolOffset[1];
- }
- var bundlePosition = outputSymbolMeta.bundlePosition = [];
- bundlePosition[categoryDim.index] = layout2[categoryDim.xy];
- bundlePosition[valueDim.index] = layout2[valueDim.xy];
- var barRectShape = outputSymbolMeta.barRectShape = extend({}, layout2);
- barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout2[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));
- barRectShape[categoryDim.wh] = layout2[categoryDim.wh];
- var clipShape = outputSymbolMeta.clipShape = {};
- clipShape[categoryDim.xy] = -layout2[categoryDim.xy];
- clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];
- clipShape[valueDim.xy] = 0;
- clipShape[valueDim.wh] = layout2[valueDim.wh];
- }
- function createPath(symbolMeta) {
- var symbolPatternSize = symbolMeta.symbolPatternSize;
- var path = createSymbol(
- // Consider texture img, make a big size.
- symbolMeta.symbolType,
- -symbolPatternSize / 2,
- -symbolPatternSize / 2,
- symbolPatternSize,
- symbolPatternSize
- );
- path.attr({
- culling: true
- });
- path.type !== "image" && path.setStyle({
- strokeNoScale: true
- });
- return path;
- }
- function createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {
- var bundle = bar.__pictorialBundle;
- var symbolSize = symbolMeta.symbolSize;
- var valueLineWidth = symbolMeta.valueLineWidth;
- var pathPosition = symbolMeta.pathPosition;
- var valueDim = opt.valueDim;
- var repeatTimes = symbolMeta.repeatTimes || 0;
- var index = 0;
- var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;
- eachPath(bar, function(path2) {
- path2.__pictorialAnimationIndex = index;
- path2.__pictorialRepeatTimes = repeatTimes;
- if (index < repeatTimes) {
- updateAttr(path2, null, makeTarget(index), symbolMeta, isUpdate);
- } else {
- updateAttr(path2, null, {
- scaleX: 0,
- scaleY: 0
- }, symbolMeta, isUpdate, function() {
- bundle.remove(path2);
- });
- }
- index++;
- });
- for (; index < repeatTimes; index++) {
- var path = createPath(symbolMeta);
- path.__pictorialAnimationIndex = index;
- path.__pictorialRepeatTimes = repeatTimes;
- bundle.add(path);
- var target = makeTarget(index);
- updateAttr(path, {
- x: target.x,
- y: target.y,
- scaleX: 0,
- scaleY: 0
- }, {
- scaleX: target.scaleX,
- scaleY: target.scaleY,
- rotation: target.rotation
- }, symbolMeta, isUpdate);
- }
- function makeTarget(index2) {
- var position2 = pathPosition.slice();
- var pxSign = symbolMeta.pxSign;
- var i = index2;
- if (symbolMeta.symbolRepeatDirection === "start" ? pxSign > 0 : pxSign < 0) {
- i = repeatTimes - 1 - index2;
- }
- position2[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];
- return {
- x: position2[0],
- y: position2[1],
- scaleX: symbolMeta.symbolScale[0],
- scaleY: symbolMeta.symbolScale[1],
- rotation: symbolMeta.rotation
- };
- }
- }
- function createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {
- var bundle = bar.__pictorialBundle;
- var mainPath = bar.__pictorialMainPath;
- if (!mainPath) {
- mainPath = bar.__pictorialMainPath = createPath(symbolMeta);
- bundle.add(mainPath);
- updateAttr(mainPath, {
- x: symbolMeta.pathPosition[0],
- y: symbolMeta.pathPosition[1],
- scaleX: 0,
- scaleY: 0,
- rotation: symbolMeta.rotation
- }, {
- scaleX: symbolMeta.symbolScale[0],
- scaleY: symbolMeta.symbolScale[1]
- }, symbolMeta, isUpdate);
- } else {
- updateAttr(mainPath, null, {
- x: symbolMeta.pathPosition[0],
- y: symbolMeta.pathPosition[1],
- scaleX: symbolMeta.symbolScale[0],
- scaleY: symbolMeta.symbolScale[1],
- rotation: symbolMeta.rotation
- }, symbolMeta, isUpdate);
- }
- }
- function createOrUpdateBarRect(bar, symbolMeta, isUpdate) {
- var rectShape = extend({}, symbolMeta.barRectShape);
- var barRect = bar.__pictorialBarRect;
- if (!barRect) {
- barRect = bar.__pictorialBarRect = new Rect_default({
- z2: 2,
- shape: rectShape,
- silent: true,
- style: {
- stroke: "transparent",
- fill: "transparent",
- lineWidth: 0
- }
- });
- barRect.disableMorphing = true;
- bar.add(barRect);
- } else {
- updateAttr(barRect, null, {
- shape: rectShape
- }, symbolMeta, isUpdate);
- }
- }
- function createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {
- if (symbolMeta.symbolClip) {
- var clipPath = bar.__pictorialClipPath;
- var clipShape = extend({}, symbolMeta.clipShape);
- var valueDim = opt.valueDim;
- var animationModel = symbolMeta.animationModel;
- var dataIndex = symbolMeta.dataIndex;
- if (clipPath) {
- updateProps(clipPath, {
- shape: clipShape
- }, animationModel, dataIndex);
- } else {
- clipShape[valueDim.wh] = 0;
- clipPath = new Rect_default({
- shape: clipShape
- });
- bar.__pictorialBundle.setClipPath(clipPath);
- bar.__pictorialClipPath = clipPath;
- var target = {};
- target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];
- graphic_exports[isUpdate ? "updateProps" : "initProps"](clipPath, {
- shape: target
- }, animationModel, dataIndex);
- }
- }
- }
- function getItemModel(data, dataIndex) {
- var itemModel = data.getItemModel(dataIndex);
- itemModel.getAnimationDelayParams = getAnimationDelayParams;
- itemModel.isAnimationEnabled = isAnimationEnabled;
- return itemModel;
- }
- function getAnimationDelayParams(path) {
- return {
- index: path.__pictorialAnimationIndex,
- count: path.__pictorialRepeatTimes
- };
- }
- function isAnimationEnabled() {
- return this.parentModel.isAnimationEnabled() && !!this.getShallow("animation");
- }
- function createBar(data, opt, symbolMeta, isUpdate) {
- var bar = new Group_default();
- var bundle = new Group_default();
- bar.add(bundle);
- bar.__pictorialBundle = bundle;
- bundle.x = symbolMeta.bundlePosition[0];
- bundle.y = symbolMeta.bundlePosition[1];
- if (symbolMeta.symbolRepeat) {
- createOrUpdateRepeatSymbols(bar, opt, symbolMeta);
- } else {
- createOrUpdateSingleSymbol(bar, opt, symbolMeta);
- }
- createOrUpdateBarRect(bar, symbolMeta, isUpdate);
- createOrUpdateClip(bar, opt, symbolMeta, isUpdate);
- bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);
- bar.__pictorialSymbolMeta = symbolMeta;
- return bar;
- }
- function updateBar(bar, opt, symbolMeta) {
- var animationModel = symbolMeta.animationModel;
- var dataIndex = symbolMeta.dataIndex;
- var bundle = bar.__pictorialBundle;
- updateProps(bundle, {
- x: symbolMeta.bundlePosition[0],
- y: symbolMeta.bundlePosition[1]
- }, animationModel, dataIndex);
- if (symbolMeta.symbolRepeat) {
- createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);
- } else {
- createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);
- }
- createOrUpdateBarRect(bar, symbolMeta, true);
- createOrUpdateClip(bar, opt, symbolMeta, true);
- }
- function removeBar(data, dataIndex, animationModel, bar) {
- var labelRect = bar.__pictorialBarRect;
- labelRect && labelRect.removeTextContent();
- var paths = [];
- eachPath(bar, function(path) {
- paths.push(path);
- });
- bar.__pictorialMainPath && paths.push(bar.__pictorialMainPath);
- bar.__pictorialClipPath && (animationModel = null);
- each(paths, function(path) {
- removeElement(path, {
- scaleX: 0,
- scaleY: 0
- }, animationModel, dataIndex, function() {
- bar.parent && bar.parent.remove(bar);
- });
- });
- data.setItemGraphicEl(dataIndex, null);
- }
- function getShapeStr(data, symbolMeta) {
- return [data.getItemVisual(symbolMeta.dataIndex, "symbol") || "none", !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(":");
- }
- function eachPath(bar, cb, context) {
- each(bar.__pictorialBundle.children(), function(el) {
- el !== bar.__pictorialBarRect && cb.call(context, el);
- });
- }
- function updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {
- immediateAttrs && el.attr(immediateAttrs);
- if (symbolMeta.symbolClip && !isUpdate) {
- animationAttrs && el.attr(animationAttrs);
- } else {
- animationAttrs && graphic_exports[isUpdate ? "updateProps" : "initProps"](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);
- }
- }
- function updateCommon(bar, opt, symbolMeta) {
- var dataIndex = symbolMeta.dataIndex;
- var itemModel = symbolMeta.itemModel;
- var emphasisModel = itemModel.getModel("emphasis");
- var emphasisStyle = emphasisModel.getModel("itemStyle").getItemStyle();
- var blurStyle = itemModel.getModel(["blur", "itemStyle"]).getItemStyle();
- var selectStyle = itemModel.getModel(["select", "itemStyle"]).getItemStyle();
- var cursorStyle = itemModel.getShallow("cursor");
- var focus = emphasisModel.get("focus");
- var blurScope = emphasisModel.get("blurScope");
- var hoverScale = emphasisModel.get("scale");
- eachPath(bar, function(path) {
- if (path instanceof Image_default) {
- var pathStyle = path.style;
- path.useStyle(extend({
- // TODO other properties like dx, dy ?
- image: pathStyle.image,
- x: pathStyle.x,
- y: pathStyle.y,
- width: pathStyle.width,
- height: pathStyle.height
- }, symbolMeta.style));
- } else {
- path.useStyle(symbolMeta.style);
- }
- var emphasisState = path.ensureState("emphasis");
- emphasisState.style = emphasisStyle;
- if (hoverScale) {
- emphasisState.scaleX = path.scaleX * 1.1;
- emphasisState.scaleY = path.scaleY * 1.1;
- }
- path.ensureState("blur").style = blurStyle;
- path.ensureState("select").style = selectStyle;
- cursorStyle && (path.cursor = cursorStyle);
- path.z2 = symbolMeta.z2;
- });
- var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];
- var barRect = bar.__pictorialBarRect;
- barRect.ignoreClip = true;
- setLabelStyle(barRect, getLabelStatesModels(itemModel), {
- labelFetcher: opt.seriesModel,
- labelDataIndex: dataIndex,
- defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),
- inheritColor: symbolMeta.style.fill,
- defaultOpacity: symbolMeta.style.opacity,
- defaultOutsidePosition: barPositionOutside
- });
- toggleHoverEmphasis(bar, focus, blurScope, emphasisModel.get("disabled"));
- }
- function toIntTimes(times) {
- var roundedTimes = Math.round(times);
- return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);
- }
- var PictorialBarView_default = PictorialBarView;
- // node_modules/echarts/lib/chart/bar/PictorialBarSeries.js
- var PictorialBarSeriesModel = (
- /** @class */
- function(_super) {
- __extends(PictorialBarSeriesModel2, _super);
- function PictorialBarSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = PictorialBarSeriesModel2.type;
- _this.hasSymbolVisual = true;
- _this.defaultSymbol = "roundRect";
- return _this;
- }
- PictorialBarSeriesModel2.prototype.getInitialData = function(option) {
- option.stack = null;
- return _super.prototype.getInitialData.apply(this, arguments);
- };
- PictorialBarSeriesModel2.type = "series.pictorialBar";
- PictorialBarSeriesModel2.dependencies = ["grid"];
- PictorialBarSeriesModel2.defaultOption = inheritDefaultOption(BaseBarSeries_default.defaultOption, {
- symbol: "circle",
- symbolSize: null,
- symbolRotate: null,
- symbolPosition: null,
- symbolOffset: null,
- symbolMargin: null,
- symbolRepeat: false,
- symbolRepeatDirection: "end",
- symbolClip: false,
- symbolBoundingData: null,
- symbolPatternSize: 400,
- barGap: "-100%",
- // Pictorial bar do not clip by default because in many cases
- // xAxis and yAxis are not displayed and it's expected not to clip
- clip: false,
- // z can be set in data item, which is z2 actually.
- // Disable progressive
- progressive: 0,
- emphasis: {
- // By default pictorialBar do not hover scale. Hover scale is not suitable
- // for the case that both has foreground and background.
- scale: false
- },
- select: {
- itemStyle: {
- borderColor: "#212121"
- }
- }
- });
- return PictorialBarSeriesModel2;
- }(BaseBarSeries_default)
- );
- var PictorialBarSeries_default = PictorialBarSeriesModel;
- // node_modules/echarts/lib/chart/bar/installPictorialBar.js
- function install23(registers) {
- registers.registerChartView(PictorialBarView_default);
- registers.registerSeriesModel(PictorialBarSeries_default);
- registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, curry(layout, "pictorialBar"));
- registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, createProgressiveLayout("pictorialBar"));
- }
- // node_modules/echarts/lib/chart/themeRiver/ThemeRiverView.js
- var ThemeRiverView = (
- /** @class */
- function(_super) {
- __extends(ThemeRiverView2, _super);
- function ThemeRiverView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = ThemeRiverView2.type;
- _this._layers = [];
- return _this;
- }
- ThemeRiverView2.prototype.render = function(seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var self = this;
- var group = this.group;
- var layersSeries = seriesModel.getLayerSeries();
- var layoutInfo = data.getLayout("layoutInfo");
- var rect = layoutInfo.rect;
- var boundaryGap = layoutInfo.boundaryGap;
- group.x = 0;
- group.y = rect.y + boundaryGap[0];
- function keyGetter(item) {
- return item.name;
- }
- var dataDiffer = new DataDiffer_default(this._layersSeries || [], layersSeries, keyGetter, keyGetter);
- var newLayersGroups = [];
- dataDiffer.add(bind(process2, this, "add")).update(bind(process2, this, "update")).remove(bind(process2, this, "remove")).execute();
- function process2(status, idx, oldIdx) {
- var oldLayersGroups = self._layers;
- if (status === "remove") {
- group.remove(oldLayersGroups[idx]);
- return;
- }
- var points0 = [];
- var points1 = [];
- var style;
- var indices = layersSeries[idx].indices;
- var j = 0;
- for (; j < indices.length; j++) {
- var layout2 = data.getItemLayout(indices[j]);
- var x = layout2.x;
- var y0 = layout2.y0;
- var y = layout2.y;
- points0.push(x, y0);
- points1.push(x, y0 + y);
- style = data.getItemVisual(indices[j], "style");
- }
- var polygon;
- var textLayout = data.getItemLayout(indices[0]);
- var labelModel = seriesModel.getModel("label");
- var margin = labelModel.get("margin");
- var emphasisModel = seriesModel.getModel("emphasis");
- if (status === "add") {
- var layerGroup = newLayersGroups[idx] = new Group_default();
- polygon = new ECPolygon({
- shape: {
- points: points0,
- stackedOnPoints: points1,
- smooth: 0.4,
- stackedOnSmooth: 0.4,
- smoothConstraint: false
- },
- z2: 0
- });
- layerGroup.add(polygon);
- group.add(layerGroup);
- if (seriesModel.isAnimationEnabled()) {
- polygon.setClipPath(createGridClipShape3(polygon.getBoundingRect(), seriesModel, function() {
- polygon.removeClipPath();
- }));
- }
- } else {
- var layerGroup = oldLayersGroups[oldIdx];
- polygon = layerGroup.childAt(0);
- group.add(layerGroup);
- newLayersGroups[idx] = layerGroup;
- updateProps(polygon, {
- shape: {
- points: points0,
- stackedOnPoints: points1
- }
- }, seriesModel);
- saveOldStyle(polygon);
- }
- setLabelStyle(polygon, getLabelStatesModels(seriesModel), {
- labelDataIndex: indices[j - 1],
- defaultText: data.getName(indices[j - 1]),
- inheritColor: style.fill
- }, {
- normal: {
- verticalAlign: "middle"
- // align: 'right'
- }
- });
- polygon.setTextConfig({
- position: null,
- local: true
- });
- var labelEl = polygon.getTextContent();
- if (labelEl) {
- labelEl.x = textLayout.x - margin;
- labelEl.y = textLayout.y0 + textLayout.y / 2;
- }
- polygon.useStyle(style);
- data.setItemGraphicEl(idx, polygon);
- setStatesStylesFromModel(polygon, seriesModel);
- toggleHoverEmphasis(polygon, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- }
- this._layersSeries = layersSeries;
- this._layers = newLayersGroups;
- };
- ThemeRiverView2.type = "themeRiver";
- return ThemeRiverView2;
- }(Chart_default)
- );
- function createGridClipShape3(rect, seriesModel, cb) {
- var rectEl = new Rect_default({
- shape: {
- x: rect.x - 10,
- y: rect.y - 10,
- width: 0,
- height: rect.height + 20
- }
- });
- initProps(rectEl, {
- shape: {
- x: rect.x - 50,
- width: rect.width + 100,
- height: rect.height + 20
- }
- }, seriesModel, cb);
- return rectEl;
- }
- var ThemeRiverView_default = ThemeRiverView;
- // node_modules/echarts/lib/chart/themeRiver/ThemeRiverSeries.js
- var DATA_NAME_INDEX = 2;
- var ThemeRiverSeriesModel = (
- /** @class */
- function(_super) {
- __extends(ThemeRiverSeriesModel2, _super);
- function ThemeRiverSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = ThemeRiverSeriesModel2.type;
- return _this;
- }
- ThemeRiverSeriesModel2.prototype.init = function(option) {
- _super.prototype.init.apply(this, arguments);
- this.legendVisualProvider = new LegendVisualProvider_default(bind(this.getData, this), bind(this.getRawData, this));
- };
- ThemeRiverSeriesModel2.prototype.fixData = function(data) {
- var rawDataLength = data.length;
- var timeValueKeys = {};
- var groupResult = groupData(data, function(item) {
- if (!timeValueKeys.hasOwnProperty(item[0] + "")) {
- timeValueKeys[item[0] + ""] = -1;
- }
- return item[2];
- });
- var layerData = [];
- groupResult.buckets.each(function(items, key) {
- layerData.push({
- name: key,
- dataList: items
- });
- });
- var layerNum = layerData.length;
- for (var k = 0; k < layerNum; ++k) {
- var name_1 = layerData[k].name;
- for (var j = 0; j < layerData[k].dataList.length; ++j) {
- var timeValue = layerData[k].dataList[j][0] + "";
- timeValueKeys[timeValue] = k;
- }
- for (var timeValue in timeValueKeys) {
- if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {
- timeValueKeys[timeValue] = k;
- data[rawDataLength] = [timeValue, 0, name_1];
- rawDataLength++;
- }
- }
- }
- return data;
- };
- ThemeRiverSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- var singleAxisModel = this.getReferringComponents("singleAxis", SINGLE_REFERRING).models[0];
- var axisType = singleAxisModel.get("type");
- var filterData = filter(option.data, function(dataItem) {
- return dataItem[2] !== void 0;
- });
- var data = this.fixData(filterData || []);
- var nameList = [];
- var nameMap = this.nameMap = createHashMap();
- var count = 0;
- for (var i = 0; i < data.length; ++i) {
- nameList.push(data[i][DATA_NAME_INDEX]);
- if (!nameMap.get(data[i][DATA_NAME_INDEX])) {
- nameMap.set(data[i][DATA_NAME_INDEX], count);
- count++;
- }
- }
- var dimensions = prepareSeriesDataSchema(data, {
- coordDimensions: ["single"],
- dimensionsDefine: [{
- name: "time",
- type: getDimensionTypeByAxis(axisType)
- }, {
- name: "value",
- type: "float"
- }, {
- name: "name",
- type: "ordinal"
- }],
- encodeDefine: {
- single: 0,
- value: 1,
- itemName: 2
- }
- }).dimensions;
- var list = new SeriesData_default(dimensions, this);
- list.initData(data);
- return list;
- };
- ThemeRiverSeriesModel2.prototype.getLayerSeries = function() {
- var data = this.getData();
- var lenCount = data.count();
- var indexArr = [];
- for (var i = 0; i < lenCount; ++i) {
- indexArr[i] = i;
- }
- var timeDim = data.mapDimension("single");
- var groupResult = groupData(indexArr, function(index) {
- return data.get("name", index);
- });
- var layerSeries = [];
- groupResult.buckets.each(function(items, key) {
- items.sort(function(index1, index2) {
- return data.get(timeDim, index1) - data.get(timeDim, index2);
- });
- layerSeries.push({
- name: key,
- indices: items
- });
- });
- return layerSeries;
- };
- ThemeRiverSeriesModel2.prototype.getAxisTooltipData = function(dim, value, baseAxis) {
- if (!isArray(dim)) {
- dim = dim ? [dim] : [];
- }
- var data = this.getData();
- var layerSeries = this.getLayerSeries();
- var indices = [];
- var layerNum = layerSeries.length;
- var nestestValue;
- for (var i = 0; i < layerNum; ++i) {
- var minDist = Number.MAX_VALUE;
- var nearestIdx = -1;
- var pointNum = layerSeries[i].indices.length;
- for (var j = 0; j < pointNum; ++j) {
- var theValue = data.get(dim[0], layerSeries[i].indices[j]);
- var dist2 = Math.abs(theValue - value);
- if (dist2 <= minDist) {
- nestestValue = theValue;
- minDist = dist2;
- nearestIdx = layerSeries[i].indices[j];
- }
- }
- indices.push(nearestIdx);
- }
- return {
- dataIndices: indices,
- nestestValue
- };
- };
- ThemeRiverSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) {
- var data = this.getData();
- var name = data.getName(dataIndex);
- var value = data.get(data.mapDimension("value"), dataIndex);
- return createTooltipMarkup("nameValue", {
- name,
- value
- });
- };
- ThemeRiverSeriesModel2.type = "series.themeRiver";
- ThemeRiverSeriesModel2.dependencies = ["singleAxis"];
- ThemeRiverSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- colorBy: "data",
- coordinateSystem: "singleAxis",
- // gap in axis's orthogonal orientation
- boundaryGap: ["10%", "10%"],
- // legendHoverLink: true,
- singleAxisIndex: 0,
- animationEasing: "linear",
- label: {
- margin: 4,
- show: true,
- position: "left",
- fontSize: 11
- },
- emphasis: {
- label: {
- show: true
- }
- }
- };
- return ThemeRiverSeriesModel2;
- }(Series_default)
- );
- var ThemeRiverSeries_default = ThemeRiverSeriesModel;
- // node_modules/echarts/lib/chart/themeRiver/themeRiverLayout.js
- function themeRiverLayout(ecModel, api) {
- ecModel.eachSeriesByType("themeRiver", function(seriesModel) {
- var data = seriesModel.getData();
- var single = seriesModel.coordinateSystem;
- var layoutInfo = {};
- var rect = single.getRect();
- layoutInfo.rect = rect;
- var boundaryGap = seriesModel.get("boundaryGap");
- var axis = single.getAxis();
- layoutInfo.boundaryGap = boundaryGap;
- if (axis.orient === "horizontal") {
- boundaryGap[0] = parsePercent2(boundaryGap[0], rect.height);
- boundaryGap[1] = parsePercent2(boundaryGap[1], rect.height);
- var height = rect.height - boundaryGap[0] - boundaryGap[1];
- doThemeRiverLayout(data, seriesModel, height);
- } else {
- boundaryGap[0] = parsePercent2(boundaryGap[0], rect.width);
- boundaryGap[1] = parsePercent2(boundaryGap[1], rect.width);
- var width = rect.width - boundaryGap[0] - boundaryGap[1];
- doThemeRiverLayout(data, seriesModel, width);
- }
- data.setLayout("layoutInfo", layoutInfo);
- });
- }
- function doThemeRiverLayout(data, seriesModel, height) {
- if (!data.count()) {
- return;
- }
- var coordSys = seriesModel.coordinateSystem;
- var layerSeries = seriesModel.getLayerSeries();
- var timeDim = data.mapDimension("single");
- var valueDim = data.mapDimension("value");
- var layerPoints = map(layerSeries, function(singleLayer) {
- return map(singleLayer.indices, function(idx) {
- var pt = coordSys.dataToPoint(data.get(timeDim, idx));
- pt[1] = data.get(valueDim, idx);
- return pt;
- });
- });
- var base = computeBaseline(layerPoints);
- var baseLine = base.y0;
- var ky = height / base.max;
- var n = layerSeries.length;
- var m = layerSeries[0].indices.length;
- var baseY0;
- for (var j = 0; j < m; ++j) {
- baseY0 = baseLine[j] * ky;
- data.setItemLayout(layerSeries[0].indices[j], {
- layerIndex: 0,
- x: layerPoints[0][j][0],
- y0: baseY0,
- y: layerPoints[0][j][1] * ky
- });
- for (var i = 1; i < n; ++i) {
- baseY0 += layerPoints[i - 1][j][1] * ky;
- data.setItemLayout(layerSeries[i].indices[j], {
- layerIndex: i,
- x: layerPoints[i][j][0],
- y0: baseY0,
- y: layerPoints[i][j][1] * ky
- });
- }
- }
- }
- function computeBaseline(data) {
- var layerNum = data.length;
- var pointNum = data[0].length;
- var sums = [];
- var y0 = [];
- var max = 0;
- for (var i = 0; i < pointNum; ++i) {
- var temp = 0;
- for (var j = 0; j < layerNum; ++j) {
- temp += data[j][i][1];
- }
- if (temp > max) {
- max = temp;
- }
- sums.push(temp);
- }
- for (var k = 0; k < pointNum; ++k) {
- y0[k] = (max - sums[k]) / 2;
- }
- max = 0;
- for (var l = 0; l < pointNum; ++l) {
- var sum2 = sums[l] + y0[l];
- if (sum2 > max) {
- max = sum2;
- }
- }
- return {
- y0,
- max
- };
- }
- // node_modules/echarts/lib/chart/themeRiver/install.js
- function install24(registers) {
- registers.registerChartView(ThemeRiverView_default);
- registers.registerSeriesModel(ThemeRiverSeries_default);
- registers.registerLayout(themeRiverLayout);
- registers.registerProcessor(dataFilter("themeRiver"));
- }
- // node_modules/echarts/lib/chart/sunburst/SunburstPiece.js
- var DEFAULT_SECTOR_Z = 2;
- var DEFAULT_TEXT_Z = 4;
- var SunburstPiece = (
- /** @class */
- function(_super) {
- __extends(SunburstPiece2, _super);
- function SunburstPiece2(node, seriesModel, ecModel, api) {
- var _this = _super.call(this) || this;
- _this.z2 = DEFAULT_SECTOR_Z;
- _this.textConfig = {
- inside: true
- };
- getECData(_this).seriesIndex = seriesModel.seriesIndex;
- var text = new Text_default({
- z2: DEFAULT_TEXT_Z,
- silent: node.getModel().get(["label", "silent"])
- });
- _this.setTextContent(text);
- _this.updateData(true, node, seriesModel, ecModel, api);
- return _this;
- }
- SunburstPiece2.prototype.updateData = function(firstCreate, node, seriesModel, ecModel, api) {
- this.node = node;
- node.piece = this;
- seriesModel = seriesModel || this._seriesModel;
- ecModel = ecModel || this._ecModel;
- var sector = this;
- getECData(sector).dataIndex = node.dataIndex;
- var itemModel = node.getModel();
- var emphasisModel = itemModel.getModel("emphasis");
- var layout2 = node.getLayout();
- var sectorShape = extend({}, layout2);
- sectorShape.label = null;
- var normalStyle = node.getVisual("style");
- normalStyle.lineJoin = "bevel";
- var decal = node.getVisual("decal");
- if (decal) {
- normalStyle.decal = createOrUpdatePatternFromDecal(decal, api);
- }
- var cornerRadius = getSectorCornerRadius(itemModel.getModel("itemStyle"), sectorShape, true);
- extend(sectorShape, cornerRadius);
- each(SPECIAL_STATES, function(stateName) {
- var state = sector.ensureState(stateName);
- var itemStyleModel = itemModel.getModel([stateName, "itemStyle"]);
- state.style = itemStyleModel.getItemStyle();
- var cornerRadius2 = getSectorCornerRadius(itemStyleModel, sectorShape);
- if (cornerRadius2) {
- state.shape = cornerRadius2;
- }
- });
- if (firstCreate) {
- sector.setShape(sectorShape);
- sector.shape.r = layout2.r0;
- initProps(sector, {
- shape: {
- r: layout2.r
- }
- }, seriesModel, node.dataIndex);
- } else {
- updateProps(sector, {
- shape: sectorShape
- }, seriesModel);
- saveOldStyle(sector);
- }
- sector.useStyle(normalStyle);
- this._updateLabel(seriesModel);
- var cursorStyle = itemModel.getShallow("cursor");
- cursorStyle && sector.attr("cursor", cursorStyle);
- this._seriesModel = seriesModel || this._seriesModel;
- this._ecModel = ecModel || this._ecModel;
- var focus = emphasisModel.get("focus");
- var focusOrIndices = focus === "ancestor" ? node.getAncestorsIndices() : focus === "descendant" ? node.getDescendantIndices() : focus;
- toggleHoverEmphasis(this, focusOrIndices, emphasisModel.get("blurScope"), emphasisModel.get("disabled"));
- };
- SunburstPiece2.prototype._updateLabel = function(seriesModel) {
- var _this = this;
- var itemModel = this.node.getModel();
- var normalLabelModel = itemModel.getModel("label");
- var layout2 = this.node.getLayout();
- var angle = layout2.endAngle - layout2.startAngle;
- var midAngle = (layout2.startAngle + layout2.endAngle) / 2;
- var dx = Math.cos(midAngle);
- var dy = Math.sin(midAngle);
- var sector = this;
- var label = sector.getTextContent();
- var dataIndex = this.node.dataIndex;
- var labelMinAngle = normalLabelModel.get("minAngle") / 180 * Math.PI;
- var isNormalShown = normalLabelModel.get("show") && !(labelMinAngle != null && Math.abs(angle) < labelMinAngle);
- label.ignore = !isNormalShown;
- each(DISPLAY_STATES, function(stateName) {
- var labelStateModel = stateName === "normal" ? itemModel.getModel("label") : itemModel.getModel([stateName, "label"]);
- var isNormal = stateName === "normal";
- var state = isNormal ? label : label.ensureState(stateName);
- var text = seriesModel.getFormattedLabel(dataIndex, stateName);
- if (isNormal) {
- text = text || _this.node.name;
- }
- state.style = createTextStyle(labelStateModel, {}, null, stateName !== "normal", true);
- if (text) {
- state.style.text = text;
- }
- var isShown = labelStateModel.get("show");
- if (isShown != null && !isNormal) {
- state.ignore = !isShown;
- }
- var labelPosition = getLabelAttr(labelStateModel, "position");
- var sectorState = isNormal ? sector : sector.states[stateName];
- var labelColor = sectorState.style.fill;
- sectorState.textConfig = {
- outsideFill: labelStateModel.get("color") === "inherit" ? labelColor : null,
- inside: labelPosition !== "outside"
- };
- var r;
- var labelPadding = getLabelAttr(labelStateModel, "distance") || 0;
- var textAlign = getLabelAttr(labelStateModel, "align");
- var rotateType = getLabelAttr(labelStateModel, "rotate");
- var flipStartAngle = Math.PI * 0.5;
- var flipEndAngle = Math.PI * 1.5;
- var midAngleNormal = normalizeRadian(rotateType === "tangential" ? Math.PI / 2 - midAngle : midAngle);
- var needsFlip = midAngleNormal > flipStartAngle && !isRadianAroundZero(midAngleNormal - flipStartAngle) && midAngleNormal < flipEndAngle;
- if (labelPosition === "outside") {
- r = layout2.r + labelPadding;
- textAlign = needsFlip ? "right" : "left";
- } else {
- if (!textAlign || textAlign === "center") {
- if (angle === 2 * Math.PI && layout2.r0 === 0) {
- r = 0;
- } else {
- r = (layout2.r + layout2.r0) / 2;
- }
- textAlign = "center";
- } else if (textAlign === "left") {
- r = layout2.r0 + labelPadding;
- textAlign = needsFlip ? "right" : "left";
- } else if (textAlign === "right") {
- r = layout2.r - labelPadding;
- textAlign = needsFlip ? "left" : "right";
- }
- }
- state.style.align = textAlign;
- state.style.verticalAlign = getLabelAttr(labelStateModel, "verticalAlign") || "middle";
- state.x = r * dx + layout2.cx;
- state.y = r * dy + layout2.cy;
- var rotate = 0;
- if (rotateType === "radial") {
- rotate = normalizeRadian(-midAngle) + (needsFlip ? Math.PI : 0);
- } else if (rotateType === "tangential") {
- rotate = normalizeRadian(Math.PI / 2 - midAngle) + (needsFlip ? Math.PI : 0);
- } else if (isNumber(rotateType)) {
- rotate = rotateType * Math.PI / 180;
- }
- state.rotation = normalizeRadian(rotate);
- });
- function getLabelAttr(model, name) {
- var stateAttr = model.get(name);
- if (stateAttr == null) {
- return normalLabelModel.get(name);
- }
- return stateAttr;
- }
- label.dirtyStyle();
- };
- return SunburstPiece2;
- }(Sector_default)
- );
- var SunburstPiece_default = SunburstPiece;
- // node_modules/echarts/lib/chart/sunburst/sunburstAction.js
- var ROOT_TO_NODE_ACTION = "sunburstRootToNode";
- var HIGHLIGHT_ACTION = "sunburstHighlight";
- var UNHIGHLIGHT_ACTION = "sunburstUnhighlight";
- function installSunburstAction(registers) {
- registers.registerAction({
- type: ROOT_TO_NODE_ACTION,
- update: "updateView"
- }, function(payload, ecModel) {
- ecModel.eachComponent({
- mainType: "series",
- subType: "sunburst",
- query: payload
- }, handleRootToNode);
- function handleRootToNode(model, index) {
- var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);
- if (targetInfo) {
- var originViewRoot = model.getViewRoot();
- if (originViewRoot) {
- payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? "rollUp" : "drillDown";
- }
- model.resetViewRoot(targetInfo.node);
- }
- }
- });
- registers.registerAction({
- type: HIGHLIGHT_ACTION,
- update: "none"
- }, function(payload, ecModel, api) {
- payload = extend({}, payload);
- ecModel.eachComponent({
- mainType: "series",
- subType: "sunburst",
- query: payload
- }, handleHighlight);
- function handleHighlight(model) {
- var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);
- if (targetInfo) {
- payload.dataIndex = targetInfo.node.dataIndex;
- }
- }
- if (true) {
- deprecateReplaceLog("sunburstHighlight", "highlight");
- }
- api.dispatchAction(extend(payload, {
- type: "highlight"
- }));
- });
- registers.registerAction({
- type: UNHIGHLIGHT_ACTION,
- update: "updateView"
- }, function(payload, ecModel, api) {
- payload = extend({}, payload);
- if (true) {
- deprecateReplaceLog("sunburstUnhighlight", "downplay");
- }
- api.dispatchAction(extend(payload, {
- type: "downplay"
- }));
- });
- }
- // node_modules/echarts/lib/chart/sunburst/SunburstView.js
- var SunburstView = (
- /** @class */
- function(_super) {
- __extends(SunburstView2, _super);
- function SunburstView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = SunburstView2.type;
- return _this;
- }
- SunburstView2.prototype.render = function(seriesModel, ecModel, api, payload) {
- var self = this;
- this.seriesModel = seriesModel;
- this.api = api;
- this.ecModel = ecModel;
- var data = seriesModel.getData();
- var virtualRoot = data.tree.root;
- var newRoot = seriesModel.getViewRoot();
- var group = this.group;
- var renderLabelForZeroData = seriesModel.get("renderLabelForZeroData");
- var newChildren = [];
- newRoot.eachNode(function(node) {
- newChildren.push(node);
- });
- var oldChildren = this._oldChildren || [];
- dualTravel(newChildren, oldChildren);
- renderRollUp(virtualRoot, newRoot);
- this._initEvents();
- this._oldChildren = newChildren;
- function dualTravel(newChildren2, oldChildren2) {
- if (newChildren2.length === 0 && oldChildren2.length === 0) {
- return;
- }
- new DataDiffer_default(oldChildren2, newChildren2, getKey2, getKey2).add(processNode).update(processNode).remove(curry(processNode, null)).execute();
- function getKey2(node) {
- return node.getId();
- }
- function processNode(newIdx, oldIdx) {
- var newNode = newIdx == null ? null : newChildren2[newIdx];
- var oldNode = oldIdx == null ? null : oldChildren2[oldIdx];
- doRenderNode(newNode, oldNode);
- }
- }
- function doRenderNode(newNode, oldNode) {
- if (!renderLabelForZeroData && newNode && !newNode.getValue()) {
- newNode = null;
- }
- if (newNode !== virtualRoot && oldNode !== virtualRoot) {
- if (oldNode && oldNode.piece) {
- if (newNode) {
- oldNode.piece.updateData(false, newNode, seriesModel, ecModel, api);
- data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);
- } else {
- removeNode2(oldNode);
- }
- } else if (newNode) {
- var piece = new SunburstPiece_default(newNode, seriesModel, ecModel, api);
- group.add(piece);
- data.setItemGraphicEl(newNode.dataIndex, piece);
- }
- }
- }
- function removeNode2(node) {
- if (!node) {
- return;
- }
- if (node.piece) {
- group.remove(node.piece);
- node.piece = null;
- }
- }
- function renderRollUp(virtualRoot2, viewRoot) {
- if (viewRoot.depth > 0) {
- if (self.virtualPiece) {
- self.virtualPiece.updateData(false, virtualRoot2, seriesModel, ecModel, api);
- } else {
- self.virtualPiece = new SunburstPiece_default(virtualRoot2, seriesModel, ecModel, api);
- group.add(self.virtualPiece);
- }
- viewRoot.piece.off("click");
- self.virtualPiece.on("click", function(e) {
- self._rootToNode(viewRoot.parentNode);
- });
- } else if (self.virtualPiece) {
- group.remove(self.virtualPiece);
- self.virtualPiece = null;
- }
- }
- };
- SunburstView2.prototype._initEvents = function() {
- var _this = this;
- this.group.off("click");
- this.group.on("click", function(e) {
- var targetFound = false;
- var viewRoot = _this.seriesModel.getViewRoot();
- viewRoot.eachNode(function(node) {
- if (!targetFound && node.piece && node.piece === e.target) {
- var nodeClick = node.getModel().get("nodeClick");
- if (nodeClick === "rootToNode") {
- _this._rootToNode(node);
- } else if (nodeClick === "link") {
- var itemModel = node.getModel();
- var link = itemModel.get("link");
- if (link) {
- var linkTarget = itemModel.get("target", true) || "_blank";
- windowOpen(link, linkTarget);
- }
- }
- targetFound = true;
- }
- });
- });
- };
- SunburstView2.prototype._rootToNode = function(node) {
- if (node !== this.seriesModel.getViewRoot()) {
- this.api.dispatchAction({
- type: ROOT_TO_NODE_ACTION,
- from: this.uid,
- seriesId: this.seriesModel.id,
- targetNode: node
- });
- }
- };
- SunburstView2.prototype.containPoint = function(point, seriesModel) {
- var treeRoot = seriesModel.getData();
- var itemLayout = treeRoot.getItemLayout(0);
- if (itemLayout) {
- var dx = point[0] - itemLayout.cx;
- var dy = point[1] - itemLayout.cy;
- var radius = Math.sqrt(dx * dx + dy * dy);
- return radius <= itemLayout.r && radius >= itemLayout.r0;
- }
- };
- SunburstView2.type = "sunburst";
- return SunburstView2;
- }(Chart_default)
- );
- var SunburstView_default = SunburstView;
- // node_modules/echarts/lib/chart/sunburst/SunburstSeries.js
- var SunburstSeriesModel = (
- /** @class */
- function(_super) {
- __extends(SunburstSeriesModel2, _super);
- function SunburstSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = SunburstSeriesModel2.type;
- _this.ignoreStyleOnData = true;
- return _this;
- }
- SunburstSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- var root = {
- name: option.name,
- children: option.data
- };
- completeTreeValue2(root);
- var levelModels = this._levelModels = map(option.levels || [], function(levelDefine) {
- return new Model_default(levelDefine, this, ecModel);
- }, this);
- var tree = Tree_default.createTree(root, this, beforeLink);
- function beforeLink(nodeData) {
- nodeData.wrapMethod("getItemModel", function(model, idx) {
- var node = tree.getNodeByDataIndex(idx);
- var levelModel = levelModels[node.depth];
- levelModel && (model.parentModel = levelModel);
- return model;
- });
- }
- return tree.data;
- };
- SunburstSeriesModel2.prototype.optionUpdated = function() {
- this.resetViewRoot();
- };
- SunburstSeriesModel2.prototype.getDataParams = function(dataIndex) {
- var params = _super.prototype.getDataParams.apply(this, arguments);
- var node = this.getData().tree.getNodeByDataIndex(dataIndex);
- params.treePathInfo = wrapTreePathInfo(node, this);
- return params;
- };
- SunburstSeriesModel2.prototype.getLevelModel = function(node) {
- return this._levelModels && this._levelModels[node.depth];
- };
- SunburstSeriesModel2.prototype.getViewRoot = function() {
- return this._viewRoot;
- };
- SunburstSeriesModel2.prototype.resetViewRoot = function(viewRoot) {
- viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;
- var root = this.getRawData().tree.root;
- if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {
- this._viewRoot = root;
- }
- };
- SunburstSeriesModel2.prototype.enableAriaDecal = function() {
- enableAriaDecalForTree(this);
- };
- SunburstSeriesModel2.type = "series.sunburst";
- SunburstSeriesModel2.defaultOption = {
- // zlevel: 0,
- z: 2,
- // 默认全局居中
- center: ["50%", "50%"],
- radius: [0, "75%"],
- // 默认顺时针
- clockwise: true,
- startAngle: 90,
- // 最小角度改为0
- minAngle: 0,
- // If still show when all data zero.
- stillShowZeroSum: true,
- // 'rootToNode', 'link', or false
- nodeClick: "rootToNode",
- renderLabelForZeroData: false,
- label: {
- // could be: 'radial', 'tangential', or 'none'
- rotate: "radial",
- show: true,
- opacity: 1,
- // 'left' is for inner side of inside, and 'right' is for outer
- // side for inside
- align: "center",
- position: "inside",
- distance: 5,
- silent: true
- },
- itemStyle: {
- borderWidth: 1,
- borderColor: "white",
- borderType: "solid",
- shadowBlur: 0,
- shadowColor: "rgba(0, 0, 0, 0.2)",
- shadowOffsetX: 0,
- shadowOffsetY: 0,
- opacity: 1
- },
- emphasis: {
- focus: "descendant"
- },
- blur: {
- itemStyle: {
- opacity: 0.2
- },
- label: {
- opacity: 0.1
- }
- },
- // Animation type can be expansion, scale.
- animationType: "expansion",
- animationDuration: 1e3,
- animationDurationUpdate: 500,
- data: [],
- /**
- * Sort order.
- *
- * Valid values: 'desc', 'asc', null, or callback function.
- * 'desc' and 'asc' for descend and ascendant order;
- * null for not sorting;
- * example of callback function:
- * function(nodeA, nodeB) {
- * return nodeA.getValue() - nodeB.getValue();
- * }
- */
- sort: "desc"
- };
- return SunburstSeriesModel2;
- }(Series_default)
- );
- function completeTreeValue2(dataNode) {
- var sum2 = 0;
- each(dataNode.children, function(child) {
- completeTreeValue2(child);
- var childValue = child.value;
- isArray(childValue) && (childValue = childValue[0]);
- sum2 += childValue;
- });
- var thisValue = dataNode.value;
- if (isArray(thisValue)) {
- thisValue = thisValue[0];
- }
- if (thisValue == null || isNaN(thisValue)) {
- thisValue = sum2;
- }
- if (thisValue < 0) {
- thisValue = 0;
- }
- isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;
- }
- var SunburstSeries_default = SunburstSeriesModel;
- // node_modules/echarts/lib/chart/sunburst/sunburstLayout.js
- var RADIAN3 = Math.PI / 180;
- function sunburstLayout(seriesType, ecModel, api) {
- ecModel.eachSeriesByType(seriesType, function(seriesModel) {
- var center2 = seriesModel.get("center");
- var radius = seriesModel.get("radius");
- if (!isArray(radius)) {
- radius = [0, radius];
- }
- if (!isArray(center2)) {
- center2 = [center2, center2];
- }
- var width = api.getWidth();
- var height = api.getHeight();
- var size = Math.min(width, height);
- var cx = parsePercent2(center2[0], width);
- var cy = parsePercent2(center2[1], height);
- var r0 = parsePercent2(radius[0], size / 2);
- var r = parsePercent2(radius[1], size / 2);
- var startAngle = -seriesModel.get("startAngle") * RADIAN3;
- var minAngle = seriesModel.get("minAngle") * RADIAN3;
- var virtualRoot = seriesModel.getData().tree.root;
- var treeRoot = seriesModel.getViewRoot();
- var rootDepth = treeRoot.depth;
- var sort3 = seriesModel.get("sort");
- if (sort3 != null) {
- initChildren2(treeRoot, sort3);
- }
- var validDataCount = 0;
- each(treeRoot.children, function(child) {
- !isNaN(child.getValue()) && validDataCount++;
- });
- var sum2 = treeRoot.getValue();
- var unitRadian = Math.PI / (sum2 || validDataCount) * 2;
- var renderRollupNode = treeRoot.depth > 0;
- var levels = treeRoot.height - (renderRollupNode ? -1 : 1);
- var rPerLevel = (r - r0) / (levels || 1);
- var clockwise = seriesModel.get("clockwise");
- var stillShowZeroSum = seriesModel.get("stillShowZeroSum");
- var dir = clockwise ? 1 : -1;
- var renderNode2 = function(node, startAngle2) {
- if (!node) {
- return;
- }
- var endAngle = startAngle2;
- if (node !== virtualRoot) {
- var value = node.getValue();
- var angle2 = sum2 === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;
- if (angle2 < minAngle) {
- angle2 = minAngle;
- }
- endAngle = startAngle2 + dir * angle2;
- var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1);
- var rStart2 = r0 + rPerLevel * depth;
- var rEnd2 = r0 + rPerLevel * (depth + 1);
- var levelModel = seriesModel.getLevelModel(node);
- if (levelModel) {
- var r0_1 = levelModel.get("r0", true);
- var r_1 = levelModel.get("r", true);
- var radius_1 = levelModel.get("radius", true);
- if (radius_1 != null) {
- r0_1 = radius_1[0];
- r_1 = radius_1[1];
- }
- r0_1 != null && (rStart2 = parsePercent2(r0_1, size / 2));
- r_1 != null && (rEnd2 = parsePercent2(r_1, size / 2));
- }
- node.setLayout({
- angle: angle2,
- startAngle: startAngle2,
- endAngle,
- clockwise,
- cx,
- cy,
- r0: rStart2,
- r: rEnd2
- });
- }
- if (node.children && node.children.length) {
- var siblingAngle_1 = 0;
- each(node.children, function(node2) {
- siblingAngle_1 += renderNode2(node2, startAngle2 + siblingAngle_1);
- });
- }
- return endAngle - startAngle2;
- };
- if (renderRollupNode) {
- var rStart = r0;
- var rEnd = r0 + rPerLevel;
- var angle = Math.PI * 2;
- virtualRoot.setLayout({
- angle,
- startAngle,
- endAngle: startAngle + angle,
- clockwise,
- cx,
- cy,
- r0: rStart,
- r: rEnd
- });
- }
- renderNode2(treeRoot, startAngle);
- });
- }
- function initChildren2(node, sortOrder) {
- var children = node.children || [];
- node.children = sort2(children, sortOrder);
- if (children.length) {
- each(node.children, function(child) {
- initChildren2(child, sortOrder);
- });
- }
- }
- function sort2(children, sortOrder) {
- if (isFunction(sortOrder)) {
- var sortTargets = map(children, function(child, idx) {
- var value = child.getValue();
- return {
- params: {
- depth: child.depth,
- height: child.height,
- dataIndex: child.dataIndex,
- getValue: function() {
- return value;
- }
- },
- index: idx
- };
- });
- sortTargets.sort(function(a, b) {
- return sortOrder(a.params, b.params);
- });
- return map(sortTargets, function(target) {
- return children[target.index];
- });
- } else {
- var isAsc_1 = sortOrder === "asc";
- return children.sort(function(a, b) {
- var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);
- return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1) : diff;
- });
- }
- }
- // node_modules/echarts/lib/chart/sunburst/sunburstVisual.js
- function sunburstVisual(ecModel) {
- var paletteScope = {};
- function pickColor(node, seriesModel, treeHeight) {
- var current = node;
- while (current && current.depth > 1) {
- current = current.parentNode;
- }
- var color = seriesModel.getColorFromPalette(current.name || current.dataIndex + "", paletteScope);
- if (node.depth > 1 && isString(color)) {
- color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);
- }
- return color;
- }
- ecModel.eachSeriesByType("sunburst", function(seriesModel) {
- var data = seriesModel.getData();
- var tree = data.tree;
- tree.eachNode(function(node) {
- var model = node.getModel();
- var style = model.getModel("itemStyle").getItemStyle();
- if (!style.fill) {
- style.fill = pickColor(node, seriesModel, tree.root.height);
- }
- var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, "style");
- extend(existsStyle, style);
- });
- });
- }
- // node_modules/echarts/lib/chart/sunburst/install.js
- function install25(registers) {
- registers.registerChartView(SunburstView_default);
- registers.registerSeriesModel(SunburstSeries_default);
- registers.registerLayout(curry(sunburstLayout, "sunburst"));
- registers.registerProcessor(curry(dataFilter, "sunburst"));
- registers.registerVisual(sunburstVisual);
- installSunburstAction(registers);
- }
- // node_modules/echarts/lib/chart/custom/CustomSeries.js
- var STYLE_VISUAL_TYPE = {
- color: "fill",
- borderColor: "stroke"
- };
- var NON_STYLE_VISUAL_PROPS = {
- symbol: 1,
- symbolSize: 1,
- symbolKeepAspect: 1,
- legendIcon: 1,
- visualMeta: 1,
- liftZ: 1,
- decal: 1
- };
- var customInnerStore = makeInner();
- var CustomSeriesModel = (
- /** @class */
- function(_super) {
- __extends(CustomSeriesModel2, _super);
- function CustomSeriesModel2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = CustomSeriesModel2.type;
- return _this;
- }
- CustomSeriesModel2.prototype.optionUpdated = function() {
- this.currentZLevel = this.get("zlevel", true);
- this.currentZ = this.get("z", true);
- };
- CustomSeriesModel2.prototype.getInitialData = function(option, ecModel) {
- return createSeriesData_default(null, this);
- };
- CustomSeriesModel2.prototype.getDataParams = function(dataIndex, dataType, el) {
- var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);
- el && (params.info = customInnerStore(el).info);
- return params;
- };
- CustomSeriesModel2.type = "series.custom";
- CustomSeriesModel2.dependencies = ["grid", "polar", "geo", "singleAxis", "calendar"];
- CustomSeriesModel2.defaultOption = {
- coordinateSystem: "cartesian2d",
- // zlevel: 0,
- z: 2,
- legendHoverLink: true,
- // Custom series will not clip by default.
- // Some case will use custom series to draw label
- // For example https://echarts.apache.org/examples/en/editor.html?c=custom-gantt-flight
- clip: false
- // Cartesian coordinate system
- // xAxisIndex: 0,
- // yAxisIndex: 0,
- // Polar coordinate system
- // polarIndex: 0,
- // Geo coordinate system
- // geoIndex: 0,
- };
- return CustomSeriesModel2;
- }(Series_default)
- );
- var CustomSeries_default = CustomSeriesModel;
- // node_modules/echarts/lib/coord/cartesian/prepareCustom.js
- function dataToCoordSize(dataSize, dataItem) {
- dataItem = dataItem || [0, 0];
- return map(["x", "y"], function(dim, dimIdx) {
- var axis = this.getAxis(dim);
- var val = dataItem[dimIdx];
- var halfSize = dataSize[dimIdx] / 2;
- return axis.type === "category" ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));
- }, this);
- }
- function cartesianPrepareCustom(coordSys) {
- var rect = coordSys.master.getRect();
- return {
- coordSys: {
- // The name exposed to user is always 'cartesian2d' but not 'grid'.
- type: "cartesian2d",
- x: rect.x,
- y: rect.y,
- width: rect.width,
- height: rect.height
- },
- api: {
- coord: function(data) {
- return coordSys.dataToPoint(data);
- },
- size: bind(dataToCoordSize, coordSys)
- }
- };
- }
- // node_modules/echarts/lib/coord/geo/prepareCustom.js
- function dataToCoordSize2(dataSize, dataItem) {
- dataItem = dataItem || [0, 0];
- return map([0, 1], function(dimIdx) {
- var val = dataItem[dimIdx];
- var halfSize = dataSize[dimIdx] / 2;
- var p1 = [];
- var p2 = [];
- p1[dimIdx] = val - halfSize;
- p2[dimIdx] = val + halfSize;
- p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];
- return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);
- }, this);
- }
- function geoPrepareCustom(coordSys) {
- var rect = coordSys.getBoundingRect();
- return {
- coordSys: {
- type: "geo",
- x: rect.x,
- y: rect.y,
- width: rect.width,
- height: rect.height,
- zoom: coordSys.getZoom()
- },
- api: {
- coord: function(data) {
- return coordSys.dataToPoint(data);
- },
- size: bind(dataToCoordSize2, coordSys)
- }
- };
- }
- // node_modules/echarts/lib/coord/single/prepareCustom.js
- function dataToCoordSize3(dataSize, dataItem) {
- var axis = this.getAxis();
- var val = dataItem instanceof Array ? dataItem[0] : dataItem;
- var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;
- return axis.type === "category" ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));
- }
- function singlePrepareCustom(coordSys) {
- var rect = coordSys.getRect();
- return {
- coordSys: {
- type: "singleAxis",
- x: rect.x,
- y: rect.y,
- width: rect.width,
- height: rect.height
- },
- api: {
- coord: function(val) {
- return coordSys.dataToPoint(val);
- },
- size: bind(dataToCoordSize3, coordSys)
- }
- };
- }
- // node_modules/echarts/lib/coord/polar/prepareCustom.js
- function dataToCoordSize4(dataSize, dataItem) {
- dataItem = dataItem || [0, 0];
- return map(["Radius", "Angle"], function(dim, dimIdx) {
- var getterName = "get" + dim + "Axis";
- var axis = this[getterName]();
- var val = dataItem[dimIdx];
- var halfSize = dataSize[dimIdx] / 2;
- var result = axis.type === "category" ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));
- if (dim === "Angle") {
- result = result * Math.PI / 180;
- }
- return result;
- }, this);
- }
- function polarPrepareCustom(coordSys) {
- var radiusAxis = coordSys.getRadiusAxis();
- var angleAxis = coordSys.getAngleAxis();
- var radius = radiusAxis.getExtent();
- radius[0] > radius[1] && radius.reverse();
- return {
- coordSys: {
- type: "polar",
- cx: coordSys.cx,
- cy: coordSys.cy,
- r: radius[1],
- r0: radius[0]
- },
- api: {
- coord: function(data) {
- var radius2 = radiusAxis.dataToRadius(data[0]);
- var angle = angleAxis.dataToAngle(data[1]);
- var coord = coordSys.coordToPoint([radius2, angle]);
- coord.push(radius2, angle * Math.PI / 180);
- return coord;
- },
- size: bind(dataToCoordSize4, coordSys)
- }
- };
- }
- // node_modules/echarts/lib/coord/calendar/prepareCustom.js
- function calendarPrepareCustom(coordSys) {
- var rect = coordSys.getRect();
- var rangeInfo = coordSys.getRangeInfo();
- return {
- coordSys: {
- type: "calendar",
- x: rect.x,
- y: rect.y,
- width: rect.width,
- height: rect.height,
- cellWidth: coordSys.getCellWidth(),
- cellHeight: coordSys.getCellHeight(),
- rangeInfo: {
- start: rangeInfo.start,
- end: rangeInfo.end,
- weeks: rangeInfo.weeks,
- dayCount: rangeInfo.allDay
- }
- },
- api: {
- coord: function(data, clamp) {
- return coordSys.dataToPoint(data, clamp);
- }
- }
- };
- }
- // node_modules/echarts/lib/chart/custom/CustomView.js
- var EMPHASIS = "emphasis";
- var NORMAL = "normal";
- var BLUR = "blur";
- var SELECT = "select";
- var STATES = [NORMAL, EMPHASIS, BLUR, SELECT];
- var PATH_ITEM_STYLE = {
- normal: ["itemStyle"],
- emphasis: [EMPHASIS, "itemStyle"],
- blur: [BLUR, "itemStyle"],
- select: [SELECT, "itemStyle"]
- };
- var PATH_LABEL = {
- normal: ["label"],
- emphasis: [EMPHASIS, "label"],
- blur: [BLUR, "label"],
- select: [SELECT, "label"]
- };
- var DEFAULT_TRANSITION = ["x", "y"];
- var GROUP_DIFF_PREFIX = "e\0\0";
- var attachedTxInfoTmp = {
- normal: {},
- emphasis: {},
- blur: {},
- select: {}
- };
- var prepareCustoms = {
- cartesian2d: cartesianPrepareCustom,
- geo: geoPrepareCustom,
- single: singlePrepareCustom,
- polar: polarPrepareCustom,
- calendar: calendarPrepareCustom
- };
- function isPath(el) {
- return el instanceof Path_default;
- }
- function isDisplayable(el) {
- return el instanceof Displayable_default;
- }
- function copyElement(sourceEl, targetEl) {
- targetEl.copyTransform(sourceEl);
- if (isDisplayable(targetEl) && isDisplayable(sourceEl)) {
- targetEl.setStyle(sourceEl.style);
- targetEl.z = sourceEl.z;
- targetEl.z2 = sourceEl.z2;
- targetEl.zlevel = sourceEl.zlevel;
- targetEl.invisible = sourceEl.invisible;
- targetEl.ignore = sourceEl.ignore;
- if (isPath(targetEl) && isPath(sourceEl)) {
- targetEl.setShape(sourceEl.shape);
- }
- }
- }
- var CustomChartView = (
- /** @class */
- function(_super) {
- __extends(CustomChartView2, _super);
- function CustomChartView2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.type = CustomChartView2.type;
- return _this;
- }
- CustomChartView2.prototype.render = function(customSeries, ecModel, api, payload) {
- this._progressiveEls = null;
- var oldData = this._data;
- var data = customSeries.getData();
- var group = this.group;
- var renderItem = makeRenderItem(customSeries, data, ecModel, api);
- if (!oldData) {
- group.removeAll();
- }
- data.diff(oldData).add(function(newIdx) {
- createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data);
- }).remove(function(oldIdx) {
- var el = oldData.getItemGraphicEl(oldIdx);
- el && applyLeaveTransition(el, customInnerStore(el).option, customSeries);
- }).update(function(newIdx, oldIdx) {
- var oldEl = oldData.getItemGraphicEl(oldIdx);
- createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data);
- }).execute();
- var clipPath = customSeries.get("clip", true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null;
- if (clipPath) {
- group.setClipPath(clipPath);
- } else {
- group.removeClipPath();
- }
- this._data = data;
- };
- CustomChartView2.prototype.incrementalPrepareRender = function(customSeries, ecModel, api) {
- this.group.removeAll();
- this._data = null;
- };
- CustomChartView2.prototype.incrementalRender = function(params, customSeries, ecModel, api, payload) {
- var data = customSeries.getData();
- var renderItem = makeRenderItem(customSeries, data, ecModel, api);
- var progressiveEls = this._progressiveEls = [];
- function setIncrementalAndHoverLayer(el2) {
- if (!el2.isGroup) {
- el2.incremental = true;
- el2.ensureState("emphasis").hoverLayer = true;
- }
- }
- for (var idx = params.start; idx < params.end; idx++) {
- var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data);
- if (el) {
- el.traverse(setIncrementalAndHoverLayer);
- progressiveEls.push(el);
- }
- }
- };
- CustomChartView2.prototype.eachRendered = function(cb) {
- traverseElements(this._progressiveEls || this.group, cb);
- };
- CustomChartView2.prototype.filterForExposedEvent = function(eventType, query, targetEl, packedEvent) {
- var elementName = query.element;
- if (elementName == null || targetEl.name === elementName) {
- return true;
- }
- while ((targetEl = targetEl.__hostTarget || targetEl.parent) && targetEl !== this.group) {
- if (targetEl.name === elementName) {
- return true;
- }
- }
- return false;
- };
- CustomChartView2.type = "custom";
- return CustomChartView2;
- }(Chart_default)
- );
- var CustomView_default = CustomChartView;
- function createEl(elOption) {
- var graphicType = elOption.type;
- var el;
- if (graphicType === "path") {
- var shape = elOption.shape;
- var pathRect = shape.width != null && shape.height != null ? {
- x: shape.x || 0,
- y: shape.y || 0,
- width: shape.width,
- height: shape.height
- } : null;
- var pathData = getPathData(shape);
- el = makePath(pathData, null, pathRect, shape.layout || "center");
- customInnerStore(el).customPathData = pathData;
- } else if (graphicType === "image") {
- el = new Image_default({});
- customInnerStore(el).customImagePath = elOption.style.image;
- } else if (graphicType === "text") {
- el = new Text_default({});
- } else if (graphicType === "group") {
- el = new Group_default();
- } else if (graphicType === "compoundPath") {
- throw new Error('"compoundPath" is not supported yet.');
- } else {
- var Clz = getShapeClass(graphicType);
- if (!Clz) {
- var errMsg = "";
- if (true) {
- errMsg = 'graphic type "' + graphicType + '" can not be found.';
- }
- throwError(errMsg);
- }
- el = new Clz();
- }
- customInnerStore(el).customGraphicType = graphicType;
- el.name = elOption.name;
- el.z2EmphasisLift = 1;
- el.z2SelectLift = 1;
- return el;
- }
- function updateElNormal(api, el, dataIndex, elOption, attachedTxInfo, seriesModel, isInit) {
- stopPreviousKeyframeAnimationAndRestore(el);
- var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;
- if (txCfgOpt) {
- el.setTextConfig(txCfgOpt);
- }
- if (elOption && elOption.transition == null) {
- elOption.transition = DEFAULT_TRANSITION;
- }
- var styleOpt = elOption && elOption.style;
- if (styleOpt) {
- if (el.type === "text") {
- var textOptionStyle = styleOpt;
- hasOwn(textOptionStyle, "textFill") && (textOptionStyle.fill = textOptionStyle.textFill);
- hasOwn(textOptionStyle, "textStroke") && (textOptionStyle.stroke = textOptionStyle.textStroke);
- }
- var decalPattern = void 0;
- var decalObj = isPath(el) ? styleOpt.decal : null;
- if (api && decalObj) {
- decalObj.dirty = true;
- decalPattern = createOrUpdatePatternFromDecal(decalObj, api);
- }
- styleOpt.__decalPattern = decalPattern;
- }
- if (isDisplayable(el)) {
- if (styleOpt) {
- var decalPattern = styleOpt.__decalPattern;
- if (decalPattern) {
- styleOpt.decal = decalPattern;
- }
- }
- }
- applyUpdateTransition(el, elOption, seriesModel, {
- dataIndex,
- isInit,
- clearStyle: true
- });
- applyKeyframeAnimation(el, elOption.keyframeAnimation, seriesModel);
- }
- function updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo) {
- var elDisplayable = el.isGroup ? null : el;
- var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg;
- if (elDisplayable) {
- var stateObj = elDisplayable.ensureState(state);
- if (styleOpt === false) {
- var existingEmphasisState = elDisplayable.getState(state);
- if (existingEmphasisState) {
- existingEmphasisState.style = null;
- }
- } else {
- stateObj.style = styleOpt || null;
- }
- if (txCfgOpt) {
- stateObj.textConfig = txCfgOpt;
- }
- setDefaultStateProxy(elDisplayable);
- }
- }
- function updateZ(el, elOption, seriesModel) {
- if (el.isGroup) {
- return;
- }
- var elDisplayable = el;
- var currentZ = seriesModel.currentZ;
- var currentZLevel = seriesModel.currentZLevel;
- elDisplayable.z = currentZ;
- elDisplayable.zlevel = currentZLevel;
- var optZ2 = elOption.z2;
- optZ2 != null && (elDisplayable.z2 = optZ2 || 0);
- for (var i = 0; i < STATES.length; i++) {
- updateZForEachState(elDisplayable, elOption, STATES[i]);
- }
- }
- function updateZForEachState(elDisplayable, elOption, state) {
- var isNormal = state === NORMAL;
- var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);
- var optZ2 = elStateOpt ? elStateOpt.z2 : null;
- var stateObj;
- if (optZ2 != null) {
- stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);
- stateObj.z2 = optZ2 || 0;
- }
- }
- function makeRenderItem(customSeries, data, ecModel, api) {
- var renderItem = customSeries.get("renderItem");
- var coordSys = customSeries.coordinateSystem;
- var prepareResult = {};
- if (coordSys) {
- if (true) {
- assert(renderItem, "series.render is required.");
- assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], "This coordSys does not support custom series.");
- }
- prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms(coordSys) : prepareCustoms[coordSys.type](coordSys);
- }
- var userAPI = defaults({
- getWidth: api.getWidth,
- getHeight: api.getHeight,
- getZr: api.getZr,
- getDevicePixelRatio: api.getDevicePixelRatio,
- value,
- style,
- ordinalRawValue,
- styleEmphasis,
- visual,
- barLayout,
- currentSeriesIndices,
- font
- }, prepareResult.api || {});
- var userParams = {
- // The life cycle of context: current round of rendering.
- // The global life cycle is probably not necessary, because
- // user can store global status by themselves.
- context: {},
- seriesId: customSeries.id,
- seriesName: customSeries.name,
- seriesIndex: customSeries.seriesIndex,
- coordSys: prepareResult.coordSys,
- dataInsideLength: data.count(),
- encode: wrapEncodeDef(customSeries.getData())
- };
- var currDataIndexInside;
- var currItemModel;
- var currItemStyleModels = {};
- var currLabelModels = {};
- var seriesItemStyleModels = {};
- var seriesLabelModels = {};
- for (var i = 0; i < STATES.length; i++) {
- var stateName = STATES[i];
- seriesItemStyleModels[stateName] = customSeries.getModel(PATH_ITEM_STYLE[stateName]);
- seriesLabelModels[stateName] = customSeries.getModel(PATH_LABEL[stateName]);
- }
- function getItemModel2(dataIndexInside) {
- return dataIndexInside === currDataIndexInside ? currItemModel || (currItemModel = data.getItemModel(dataIndexInside)) : data.getItemModel(dataIndexInside);
- }
- function getItemStyleModel(dataIndexInside, state) {
- return !data.hasItemOption ? seriesItemStyleModels[state] : dataIndexInside === currDataIndexInside ? currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel2(dataIndexInside).getModel(PATH_ITEM_STYLE[state])) : getItemModel2(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);
- }
- function getLabelModel(dataIndexInside, state) {
- return !data.hasItemOption ? seriesLabelModels[state] : dataIndexInside === currDataIndexInside ? currLabelModels[state] || (currLabelModels[state] = getItemModel2(dataIndexInside).getModel(PATH_LABEL[state])) : getItemModel2(dataIndexInside).getModel(PATH_LABEL[state]);
- }
- return function(dataIndexInside, payload) {
- currDataIndexInside = dataIndexInside;
- currItemModel = null;
- currItemStyleModels = {};
- currLabelModels = {};
- return renderItem && renderItem(defaults({
- dataIndexInside,
- dataIndex: data.getRawIndex(dataIndexInside),
- // Can be used for optimization when zoom or roam.
- actionType: payload ? payload.type : null
- }, userParams), userAPI);
- };
- function value(dim, dataIndexInside) {
- dataIndexInside == null && (dataIndexInside = currDataIndexInside);
- return data.getStore().get(data.getDimensionIndex(dim || 0), dataIndexInside);
- }
- function ordinalRawValue(dim, dataIndexInside) {
- dataIndexInside == null && (dataIndexInside = currDataIndexInside);
- dim = dim || 0;
- var dimInfo = data.getDimensionInfo(dim);
- if (!dimInfo) {
- var dimIndex = data.getDimensionIndex(dim);
- return dimIndex >= 0 ? data.getStore().get(dimIndex, dataIndexInside) : void 0;
- }
- var val = data.get(dimInfo.name, dataIndexInside);
- var ordinalMeta = dimInfo && dimInfo.ordinalMeta;
- return ordinalMeta ? ordinalMeta.categories[val] : val;
- }
- function style(userProps, dataIndexInside) {
- if (true) {
- warnDeprecated("api.style", "Please write literal style directly instead.");
- }
- dataIndexInside == null && (dataIndexInside = currDataIndexInside);
- var style2 = data.getItemVisual(dataIndexInside, "style");
- var visualColor = style2 && style2.fill;
- var opacity = style2 && style2.opacity;
- var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();
- visualColor != null && (itemStyle.fill = visualColor);
- opacity != null && (itemStyle.opacity = opacity);
- var opt = {
- inheritColor: isString(visualColor) ? visualColor : "#000"
- };
- var labelModel = getLabelModel(dataIndexInside, NORMAL);
- var textStyle = createTextStyle(labelModel, null, opt, false, true);
- textStyle.text = labelModel.getShallow("show") ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;
- var textConfig = createTextConfig(labelModel, opt, false);
- preFetchFromExtra(userProps, itemStyle);
- itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);
- userProps && applyUserPropsAfter(itemStyle, userProps);
- itemStyle.legacy = true;
- return itemStyle;
- }
- function styleEmphasis(userProps, dataIndexInside) {
- if (true) {
- warnDeprecated("api.styleEmphasis", "Please write literal style directly instead.");
- }
- dataIndexInside == null && (dataIndexInside = currDataIndexInside);
- var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();
- var labelModel = getLabelModel(dataIndexInside, EMPHASIS);
- var textStyle = createTextStyle(labelModel, null, null, true, true);
- textStyle.text = labelModel.getShallow("show") ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;
- var textConfig = createTextConfig(labelModel, null, true);
- preFetchFromExtra(userProps, itemStyle);
- itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);
- userProps && applyUserPropsAfter(itemStyle, userProps);
- itemStyle.legacy = true;
- return itemStyle;
- }
- function applyUserPropsAfter(itemStyle, extra) {
- for (var key in extra) {
- if (hasOwn(extra, key)) {
- itemStyle[key] = extra[key];
- }
- }
- }
- function preFetchFromExtra(extra, itemStyle) {
- if (extra) {
- extra.textFill && (itemStyle.textFill = extra.textFill);
- extra.textPosition && (itemStyle.textPosition = extra.textPosition);
- }
- }
- function visual(visualType, dataIndexInside) {
- dataIndexInside == null && (dataIndexInside = currDataIndexInside);
- if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {
- var style_1 = data.getItemVisual(dataIndexInside, "style");
- return style_1 ? style_1[STYLE_VISUAL_TYPE[visualType]] : null;
- }
- if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) {
- return data.getItemVisual(dataIndexInside, visualType);
- }
- }
- function barLayout(opt) {
- if (coordSys.type === "cartesian2d") {
- var baseAxis = coordSys.getBaseAxis();
- return getLayoutOnAxis(defaults({
- axis: baseAxis
- }, opt));
- }
- }
- function currentSeriesIndices() {
- return ecModel.getCurrentSeriesIndices();
- }
- function font(opt) {
- return getFont(opt, ecModel);
- }
- }
- function wrapEncodeDef(data) {
- var encodeDef = {};
- each(data.dimensions, function(dimName) {
- var dimInfo = data.getDimensionInfo(dimName);
- if (!dimInfo.isExtraCoord) {
- var coordDim = dimInfo.coordDim;
- var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];
- dataDims[dimInfo.coordDimIndex] = data.getDimensionIndex(dimName);
- }
- });
- return encodeDef;
- }
- function createOrUpdateItem(api, existsEl, dataIndex, elOption, seriesModel, group, data) {
- if (!elOption) {
- group.remove(existsEl);
- return;
- }
- var el = doCreateOrUpdateEl(api, existsEl, dataIndex, elOption, seriesModel, group);
- el && data.setItemGraphicEl(dataIndex, el);
- el && toggleHoverEmphasis(el, elOption.focus, elOption.blurScope, elOption.emphasisDisabled);
- return el;
- }
- function doCreateOrUpdateEl(api, existsEl, dataIndex, elOption, seriesModel, group) {
- if (true) {
- assert(elOption, "should not have an null/undefined element setting");
- }
- var toBeReplacedIdx = -1;
- var oldEl = existsEl;
- if (existsEl && doesElNeedRecreate(existsEl, elOption, seriesModel)) {
- toBeReplacedIdx = indexOf(group.childrenRef(), existsEl);
- existsEl = null;
- }
- var isInit = !existsEl;
- var el = existsEl;
- if (!el) {
- el = createEl(elOption);
- if (oldEl) {
- copyElement(oldEl, el);
- }
- } else {
- el.clearStates();
- }
- if (elOption.morph === false) {
- el.disableMorphing = true;
- } else if (el.disableMorphing) {
- el.disableMorphing = false;
- }
- attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt = attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt = attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt = attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;
- attachedTxInfoTmp.isLegacy = false;
- doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);
- doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);
- updateElNormal(api, el, dataIndex, elOption, attachedTxInfoTmp, seriesModel, isInit);
- hasOwn(elOption, "info") && (customInnerStore(el).info = elOption.info);
- for (var i = 0; i < STATES.length; i++) {
- var stateName = STATES[i];
- if (stateName !== NORMAL) {
- var otherStateOpt = retrieveStateOption(elOption, stateName);
- var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);
- updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp);
- }
- }
- updateZ(el, elOption, seriesModel);
- if (elOption.type === "group") {
- mergeChildren(api, el, dataIndex, elOption, seriesModel);
- }
- if (toBeReplacedIdx >= 0) {
- group.replaceAt(el, toBeReplacedIdx);
- } else {
- group.add(el);
- }
- return el;
- }
- function doesElNeedRecreate(el, elOption, seriesModel) {
- var elInner = customInnerStore(el);
- var elOptionType = elOption.type;
- var elOptionShape = elOption.shape;
- var elOptionStyle = elOption.style;
- return (
- // Always create new if universal transition is enabled.
- // Because we do transition after render. It needs to know what old element is. Replacement will loose it.
- seriesModel.isUniversalTransitionEnabled() || elOptionType != null && elOptionType !== elInner.customGraphicType || elOptionType === "path" && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== elInner.customPathData || elOptionType === "image" && hasOwn(elOptionStyle, "image") && elOptionStyle.image !== elInner.customImagePath
- );
- }
- function doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {
- var clipPathOpt = elOption.clipPath;
- if (clipPathOpt === false) {
- if (el && el.getClipPath()) {
- el.removeClipPath();
- }
- } else if (clipPathOpt) {
- var clipPath = el.getClipPath();
- if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt, seriesModel)) {
- clipPath = null;
- }
- if (!clipPath) {
- clipPath = createEl(clipPathOpt);
- if (true) {
- assert(isPath(clipPath), "Only any type of `path` can be used in `clipPath`, rather than " + clipPath.type + ".");
- }
- el.setClipPath(clipPath);
- }
- updateElNormal(null, clipPath, dataIndex, clipPathOpt, null, seriesModel, isInit);
- }
- }
- function doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {
- if (el.isGroup) {
- return;
- }
- processTxInfo(elOption, null, attachedTxInfo);
- processTxInfo(elOption, EMPHASIS, attachedTxInfo);
- var txConOptNormal = attachedTxInfo.normal.conOpt;
- var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;
- var txConOptBlur = attachedTxInfo.blur.conOpt;
- var txConOptSelect = attachedTxInfo.select.conOpt;
- if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {
- var textContent = el.getTextContent();
- if (txConOptNormal === false) {
- textContent && el.removeTextContent();
- } else {
- txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || {
- type: "text"
- };
- if (!textContent) {
- textContent = createEl(txConOptNormal);
- el.setTextContent(textContent);
- } else {
- textContent.clearStates();
- }
- updateElNormal(null, textContent, dataIndex, txConOptNormal, null, seriesModel, isInit);
- var txConStlOptNormal = txConOptNormal && txConOptNormal.style;
- for (var i = 0; i < STATES.length; i++) {
- var stateName = STATES[i];
- if (stateName !== NORMAL) {
- var txConOptOtherState = attachedTxInfo[stateName].conOpt;
- updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null);
- }
- }
- txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();
- }
- }
- }
- function processTxInfo(elOption, state, attachedTxInfo) {
- var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);
- var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);
- var elType = elOption.type;
- var txCfg = stateOpt ? stateOpt.textConfig : null;
- var txConOptNormal = elOption.textContent;
- var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);
- if (styleOpt && // Because emphasis style has little info to detect legacy,
- // if normal is legacy, emphasis is trade as legacy.
- (attachedTxInfo.isLegacy || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {
- attachedTxInfo.isLegacy = true;
- var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state);
- if (!txCfg && convertResult.textConfig) {
- txCfg = convertResult.textConfig;
- }
- if (!txConOpt && convertResult.textContent) {
- txConOpt = convertResult.textContent;
- }
- }
- if (!state && txConOpt) {
- var txConOptNormal_1 = txConOpt;
- !txConOptNormal_1.type && (txConOptNormal_1.type = "text");
- if (true) {
- assert(txConOptNormal_1.type === "text", 'textContent.type must be "text"');
- }
- }
- var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];
- info.cfg = txCfg;
- info.conOpt = txConOpt;
- }
- function retrieveStateOption(elOption, state) {
- return !state ? elOption : elOption ? elOption[state] : null;
- }
- function retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {
- var style = stateOption && stateOption.style;
- if (style == null && state === EMPHASIS && stateOptionNormal) {
- style = stateOptionNormal.styleEmphasis;
- }
- return style;
- }
- function mergeChildren(api, el, dataIndex, elOption, seriesModel) {
- var newChildren = elOption.children;
- var newLen = newChildren ? newChildren.length : 0;
- var mergeChildren2 = elOption.$mergeChildren;
- var byName = mergeChildren2 === "byName" || elOption.diffChildrenByName;
- var notMerge = mergeChildren2 === false;
- if (!newLen && !byName && !notMerge) {
- return;
- }
- if (byName) {
- diffGroupChildren({
- api,
- oldChildren: el.children() || [],
- newChildren: newChildren || [],
- dataIndex,
- seriesModel,
- group: el
- });
- return;
- }
- notMerge && el.removeAll();
- var index = 0;
- for (; index < newLen; index++) {
- var newChild = newChildren[index];
- var oldChild = el.childAt(index);
- if (newChild) {
- if (newChild.ignore == null) {
- newChild.ignore = false;
- }
- doCreateOrUpdateEl(api, oldChild, dataIndex, newChild, seriesModel, el);
- } else {
- if (true) {
- assert(oldChild, "renderItem should not return a group containing elements as null/undefined/{} if they do not exist before.");
- }
- oldChild.ignore = true;
- }
- }
- for (var i = el.childCount() - 1; i >= index; i--) {
- var child = el.childAt(i);
- removeChildFromGroup(el, child, seriesModel);
- }
- }
- function removeChildFromGroup(group, child, seriesModel) {
- child && applyLeaveTransition(child, customInnerStore(group).option, seriesModel);
- }
- function diffGroupChildren(context) {
- new DataDiffer_default(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();
- }
- function getKey(item, idx) {
- var name = item && item.name;
- return name != null ? name : GROUP_DIFF_PREFIX + idx;
- }
- function processAddUpdate(newIndex, oldIndex) {
- var context = this.context;
- var childOption = newIndex != null ? context.newChildren[newIndex] : null;
- var child = oldIndex != null ? context.oldChildren[oldIndex] : null;
- doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group);
- }
- function processRemove(oldIndex) {
- var context = this.context;
- var child = context.oldChildren[oldIndex];
- child && applyLeaveTransition(child, customInnerStore(child).option, context.seriesModel);
- }
- function getPathData(shape) {
- return shape && (shape.pathData || shape.d);
- }
- function hasOwnPathData(shape) {
- return shape && (hasOwn(shape, "pathData") || hasOwn(shape, "d"));
- }
- // node_modules/echarts/lib/chart/custom/install.js
- function install26(registers) {
- registers.registerChartView(CustomView_default);
- registers.registerSeriesModel(CustomSeries_default);
- }
- export {
- install6 as BarChart,
- install18 as BoxplotChart,
- install19 as CandlestickChart,
- install26 as CustomChart,
- install20 as EffectScatterChart,
- install15 as FunnelChart,
- install14 as GaugeChart,
- install13 as GraphChart,
- install22 as HeatmapChart,
- install5 as LineChart,
- install21 as LinesChart,
- install10 as MapChart,
- install16 as ParallelChart,
- install23 as PictorialBarChart,
- install7 as PieChart,
- install9 as RadarChart,
- install17 as SankeyChart,
- install8 as ScatterChart,
- install25 as SunburstChart,
- install24 as ThemeRiverChart,
- install11 as TreeChart,
- install12 as TreemapChart
- };
- //# sourceMappingURL=echarts_charts.js.map
|