12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731 |
- const emptyObject = Object.freeze({});
- const isArray = Array.isArray;
- function isUndef(v) {
- return v === undefined || v === null;
- }
- function isDef(v) {
- return v !== undefined && v !== null;
- }
- function isTrue(v) {
- return v === true;
- }
- function isFalse(v) {
- return v === false;
- }
- function isPrimitive(value) {
- return (typeof value === 'string' ||
- typeof value === 'number' ||
-
- typeof value === 'symbol' ||
- typeof value === 'boolean');
- }
- function isFunction(value) {
- return typeof value === 'function';
- }
- function isObject(obj) {
- return obj !== null && typeof obj === 'object';
- }
- const _toString = Object.prototype.toString;
- function toRawType(value) {
- return _toString.call(value).slice(8, -1);
- }
- function isPlainObject(obj) {
- return _toString.call(obj) === '[object Object]';
- }
- function isRegExp(v) {
- return _toString.call(v) === '[object RegExp]';
- }
- function isValidArrayIndex(val) {
- const n = parseFloat(String(val));
- return n >= 0 && Math.floor(n) === n && isFinite(val);
- }
- function isPromise(val) {
- return (isDef(val) &&
- typeof val.then === 'function' &&
- typeof val.catch === 'function');
- }
- function toString(val) {
- return val == null
- ? ''
- : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
- ? JSON.stringify(val, replacer, 2)
- : String(val);
- }
- function replacer(_key, val) {
-
- if (val && val.__v_isRef) {
- return val.value;
- }
- return val;
- }
- function toNumber(val) {
- const n = parseFloat(val);
- return isNaN(n) ? val : n;
- }
- function makeMap(str, expectsLowerCase) {
- const map = Object.create(null);
- const list = str.split(',');
- for (let i = 0; i < list.length; i++) {
- map[list[i]] = true;
- }
- return expectsLowerCase ? val => map[val.toLowerCase()] : val => map[val];
- }
- const isBuiltInTag = makeMap('slot,component', true);
- const isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
- function remove$2(arr, item) {
- const len = arr.length;
- if (len) {
-
- if (item === arr[len - 1]) {
- arr.length = len - 1;
- return;
- }
- const index = arr.indexOf(item);
- if (index > -1) {
- return arr.splice(index, 1);
- }
- }
- }
- const hasOwnProperty = Object.prototype.hasOwnProperty;
- function hasOwn(obj, key) {
- return hasOwnProperty.call(obj, key);
- }
- function cached(fn) {
- const cache = Object.create(null);
- return function cachedFn(str) {
- const hit = cache[str];
- return hit || (cache[str] = fn(str));
- };
- }
- const camelizeRE = /-(\w)/g;
- const camelize = cached((str) => {
- return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));
- });
- const capitalize = cached((str) => {
- return str.charAt(0).toUpperCase() + str.slice(1);
- });
- const hyphenateRE = /\B([A-Z])/g;
- const hyphenate = cached((str) => {
- return str.replace(hyphenateRE, '-$1').toLowerCase();
- });
- function polyfillBind(fn, ctx) {
- function boundFn(a) {
- const l = arguments.length;
- return l
- ? l > 1
- ? fn.apply(ctx, arguments)
- : fn.call(ctx, a)
- : fn.call(ctx);
- }
- boundFn._length = fn.length;
- return boundFn;
- }
- function nativeBind(fn, ctx) {
- return fn.bind(ctx);
- }
- const bind$1 = Function.prototype.bind ? nativeBind : polyfillBind;
- function toArray(list, start) {
- start = start || 0;
- let i = list.length - start;
- const ret = new Array(i);
- while (i--) {
- ret[i] = list[i + start];
- }
- return ret;
- }
- function extend(to, _from) {
- for (const key in _from) {
- to[key] = _from[key];
- }
- return to;
- }
- function toObject(arr) {
- const res = {};
- for (let i = 0; i < arr.length; i++) {
- if (arr[i]) {
- extend(res, arr[i]);
- }
- }
- return res;
- }
- function noop(a, b, c) { }
- const no = (a, b, c) => false;
- const identity = (_) => _;
- function genStaticKeys$1(modules) {
- return modules
- .reduce((keys, m) => keys.concat(m.staticKeys || []), [])
- .join(',');
- }
- function looseEqual(a, b) {
- if (a === b)
- return true;
- const isObjectA = isObject(a);
- const isObjectB = isObject(b);
- if (isObjectA && isObjectB) {
- try {
- const isArrayA = Array.isArray(a);
- const isArrayB = Array.isArray(b);
- if (isArrayA && isArrayB) {
- return (a.length === b.length &&
- a.every((e, i) => {
- return looseEqual(e, b[i]);
- }));
- }
- else if (a instanceof Date && b instanceof Date) {
- return a.getTime() === b.getTime();
- }
- else if (!isArrayA && !isArrayB) {
- const keysA = Object.keys(a);
- const keysB = Object.keys(b);
- return (keysA.length === keysB.length &&
- keysA.every(key => {
- return looseEqual(a[key], b[key]);
- }));
- }
- else {
-
- return false;
- }
- }
- catch (e) {
-
- return false;
- }
- }
- else if (!isObjectA && !isObjectB) {
- return String(a) === String(b);
- }
- else {
- return false;
- }
- }
- function looseIndexOf(arr, val) {
- for (let i = 0; i < arr.length; i++) {
- if (looseEqual(arr[i], val))
- return i;
- }
- return -1;
- }
- function once(fn) {
- let called = false;
- return function () {
- if (!called) {
- called = true;
- fn.apply(this, arguments);
- }
- };
- }
- function hasChanged(x, y) {
- if (x === y) {
- return x === 0 && 1 / x !== 1 / y;
- }
- else {
- return x === x || y === y;
- }
- }
- const SSR_ATTR = 'data-server-rendered';
- const ASSET_TYPES = ['component', 'directive', 'filter'];
- const LIFECYCLE_HOOKS = [
- 'beforeCreate',
- 'created',
- 'beforeMount',
- 'mounted',
- 'beforeUpdate',
- 'updated',
- 'beforeDestroy',
- 'destroyed',
- 'activated',
- 'deactivated',
- 'errorCaptured',
- 'serverPrefetch',
- 'renderTracked',
- 'renderTriggered'
- ];
- var config = {
-
-
- optionMergeStrategies: Object.create(null),
-
- silent: false,
-
- productionTip: true,
-
- devtools: true,
-
- performance: false,
-
- errorHandler: null,
-
- warnHandler: null,
-
- ignoredElements: [],
-
-
- keyCodes: Object.create(null),
-
- isReservedTag: no,
-
- isReservedAttr: no,
-
- isUnknownElement: no,
-
- getTagNamespace: noop,
-
- parsePlatformTagName: identity,
-
- mustUseProp: no,
-
- async: true,
-
- _lifecycleHooks: LIFECYCLE_HOOKS
- };
- const unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
- function isReserved(str) {
- const c = (str + '').charCodeAt(0);
- return c === 0x24 || c === 0x5f;
- }
- function def(obj, key, val, enumerable) {
- Object.defineProperty(obj, key, {
- value: val,
- enumerable: !!enumerable,
- writable: true,
- configurable: true
- });
- }
- const bailRE = new RegExp(`[^${unicodeRegExp.source}.$_\\d]`);
- function parsePath(path) {
- if (bailRE.test(path)) {
- return;
- }
- const segments = path.split('.');
- return function (obj) {
- for (let i = 0; i < segments.length; i++) {
- if (!obj)
- return;
- obj = obj[segments[i]];
- }
- return obj;
- };
- }
- const hasProto = '__proto__' in {};
- const inBrowser = typeof window !== 'undefined';
- const UA = inBrowser && window.navigator.userAgent.toLowerCase();
- const isIE = UA && /msie|trident/.test(UA);
- const isIE9 = UA && UA.indexOf('msie 9.0') > 0;
- const isEdge = UA && UA.indexOf('edge/') > 0;
- UA && UA.indexOf('android') > 0;
- const isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);
- UA && /chrome\/\d+/.test(UA) && !isEdge;
- UA && /phantomjs/.test(UA);
- const isFF = UA && UA.match(/firefox\/(\d+)/);
- const nativeWatch = {}.watch;
- let supportsPassive = false;
- if (inBrowser) {
- try {
- const opts = {};
- Object.defineProperty(opts, 'passive', {
- get() {
-
- supportsPassive = true;
- }
- });
- window.addEventListener('test-passive', null, opts);
- }
- catch (e) { }
- }
- let _isServer;
- const isServerRendering = () => {
- if (_isServer === undefined) {
-
- if (!inBrowser && typeof global !== 'undefined') {
-
-
- _isServer =
- global['process'] && global['process'].env.VUE_ENV === 'server';
- }
- else {
- _isServer = false;
- }
- }
- return _isServer;
- };
- const devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
- function isNative(Ctor) {
- return typeof Ctor === 'function' && /native code/.test(Ctor.toString());
- }
- const hasSymbol = typeof Symbol !== 'undefined' &&
- isNative(Symbol) &&
- typeof Reflect !== 'undefined' &&
- isNative(Reflect.ownKeys);
- let _Set;
- if (typeof Set !== 'undefined' && isNative(Set)) {
-
- _Set = Set;
- }
- else {
-
- _Set = class Set {
- constructor() {
- this.set = Object.create(null);
- }
- has(key) {
- return this.set[key] === true;
- }
- add(key) {
- this.set[key] = true;
- }
- clear() {
- this.set = Object.create(null);
- }
- };
- }
- let currentInstance = null;
- function getCurrentInstance() {
- return currentInstance && { proxy: currentInstance };
- }
- function setCurrentInstance(vm = null) {
- if (!vm)
- currentInstance && currentInstance._scope.off();
- currentInstance = vm;
- vm && vm._scope.on();
- }
- class VNode {
- constructor(tag, data, children, text, elm, context, componentOptions, asyncFactory) {
- this.tag = tag;
- this.data = data;
- this.children = children;
- this.text = text;
- this.elm = elm;
- this.ns = undefined;
- this.context = context;
- this.fnContext = undefined;
- this.fnOptions = undefined;
- this.fnScopeId = undefined;
- this.key = data && data.key;
- this.componentOptions = componentOptions;
- this.componentInstance = undefined;
- this.parent = undefined;
- this.raw = false;
- this.isStatic = false;
- this.isRootInsert = true;
- this.isComment = false;
- this.isCloned = false;
- this.isOnce = false;
- this.asyncFactory = asyncFactory;
- this.asyncMeta = undefined;
- this.isAsyncPlaceholder = false;
- }
-
-
- get child() {
- return this.componentInstance;
- }
- }
- const createEmptyVNode = (text = '') => {
- const node = new VNode();
- node.text = text;
- node.isComment = true;
- return node;
- };
- function createTextVNode(val) {
- return new VNode(undefined, undefined, undefined, String(val));
- }
- function cloneVNode(vnode) {
- const cloned = new VNode(vnode.tag, vnode.data,
-
-
-
- vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);
- cloned.ns = vnode.ns;
- cloned.isStatic = vnode.isStatic;
- cloned.key = vnode.key;
- cloned.isComment = vnode.isComment;
- cloned.fnContext = vnode.fnContext;
- cloned.fnOptions = vnode.fnOptions;
- cloned.fnScopeId = vnode.fnScopeId;
- cloned.asyncMeta = vnode.asyncMeta;
- cloned.isCloned = true;
- return cloned;
- }
- let initProxy;
- {
- const allowedGlobals = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +
- 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
- 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +
- 'require'
- );
- const warnNonPresent = (target, key) => {
- warn$2(`Property or method "${key}" is not defined on the instance but ` +
- 'referenced during render. Make sure that this property is reactive, ' +
- 'either in the data option, or for class-based components, by ' +
- 'initializing the property. ' +
- 'See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);
- };
- const warnReservedPrefix = (target, key) => {
- warn$2(`Property "${key}" must be accessed with "$data.${key}" because ` +
- 'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
- 'prevent conflicts with Vue internals. ' +
- 'See: https://v2.vuejs.org/v2/api/#data', target);
- };
- const hasProxy = typeof Proxy !== 'undefined' && isNative(Proxy);
- if (hasProxy) {
- const isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
- config.keyCodes = new Proxy(config.keyCodes, {
- set(target, key, value) {
- if (isBuiltInModifier(key)) {
- warn$2(`Avoid overwriting built-in modifier in config.keyCodes: .${key}`);
- return false;
- }
- else {
- target[key] = value;
- return true;
- }
- }
- });
- }
- const hasHandler = {
- has(target, key) {
- const has = key in target;
- const isAllowed = allowedGlobals(key) ||
- (typeof key === 'string' &&
- key.charAt(0) === '_' &&
- !(key in target.$data));
- if (!has && !isAllowed) {
- if (key in target.$data)
- warnReservedPrefix(target, key);
- else
- warnNonPresent(target, key);
- }
- return has || !isAllowed;
- }
- };
- const getHandler = {
- get(target, key) {
- if (typeof key === 'string' && !(key in target)) {
- if (key in target.$data)
- warnReservedPrefix(target, key);
- else
- warnNonPresent(target, key);
- }
- return target[key];
- }
- };
- initProxy = function initProxy(vm) {
- if (hasProxy) {
-
- const options = vm.$options;
- const handlers = options.render && options.render._withStripped ? getHandler : hasHandler;
- vm._renderProxy = new Proxy(vm, handlers);
- }
- else {
- vm._renderProxy = vm;
- }
- };
- }
- let uid$2 = 0;
- const pendingCleanupDeps = [];
- const cleanupDeps = () => {
- for (let i = 0; i < pendingCleanupDeps.length; i++) {
- const dep = pendingCleanupDeps[i];
- dep.subs = dep.subs.filter(s => s);
- dep._pending = false;
- }
- pendingCleanupDeps.length = 0;
- };
- class Dep {
- constructor() {
-
- this._pending = false;
- this.id = uid$2++;
- this.subs = [];
- }
- addSub(sub) {
- this.subs.push(sub);
- }
- removeSub(sub) {
-
-
-
-
- this.subs[this.subs.indexOf(sub)] = null;
- if (!this._pending) {
- this._pending = true;
- pendingCleanupDeps.push(this);
- }
- }
- depend(info) {
- if (Dep.target) {
- Dep.target.addDep(this);
- if (info && Dep.target.onTrack) {
- Dep.target.onTrack(Object.assign({ effect: Dep.target }, info));
- }
- }
- }
- notify(info) {
-
- const subs = this.subs.filter(s => s);
- if (!config.async) {
-
-
-
- subs.sort((a, b) => a.id - b.id);
- }
- for (let i = 0, l = subs.length; i < l; i++) {
- const sub = subs[i];
- if (info) {
- sub.onTrigger &&
- sub.onTrigger(Object.assign({ effect: subs[i] }, info));
- }
- sub.update();
- }
- }
- }
- Dep.target = null;
- const targetStack = [];
- function pushTarget(target) {
- targetStack.push(target);
- Dep.target = target;
- }
- function popTarget() {
- targetStack.pop();
- Dep.target = targetStack[targetStack.length - 1];
- }
- const arrayProto = Array.prototype;
- const arrayMethods = Object.create(arrayProto);
- const methodsToPatch = [
- 'push',
- 'pop',
- 'shift',
- 'unshift',
- 'splice',
- 'sort',
- 'reverse'
- ];
- methodsToPatch.forEach(function (method) {
-
- const original = arrayProto[method];
- def(arrayMethods, method, function mutator(...args) {
- const result = original.apply(this, args);
- const ob = this.__ob__;
- let inserted;
- switch (method) {
- case 'push':
- case 'unshift':
- inserted = args;
- break;
- case 'splice':
- inserted = args.slice(2);
- break;
- }
- if (inserted)
- ob.observeArray(inserted);
-
- {
- ob.dep.notify({
- type: "array mutation" ,
- target: this,
- key: method
- });
- }
- return result;
- });
- });
- const arrayKeys = Object.getOwnPropertyNames(arrayMethods);
- const NO_INITIAL_VALUE = {};
- let shouldObserve = true;
- function toggleObserving(value) {
- shouldObserve = value;
- }
- const mockDep = {
- notify: noop,
- depend: noop,
- addSub: noop,
- removeSub: noop
- };
- class Observer {
- constructor(value, shallow = false, mock = false) {
- this.value = value;
- this.shallow = shallow;
- this.mock = mock;
-
- this.dep = mock ? mockDep : new Dep();
- this.vmCount = 0;
- def(value, '__ob__', this);
- if (isArray(value)) {
- if (!mock) {
- if (hasProto) {
- value.__proto__ = arrayMethods;
-
- }
- else {
- for (let i = 0, l = arrayKeys.length; i < l; i++) {
- const key = arrayKeys[i];
- def(value, key, arrayMethods[key]);
- }
- }
- }
- if (!shallow) {
- this.observeArray(value);
- }
- }
- else {
-
- const keys = Object.keys(value);
- for (let i = 0; i < keys.length; i++) {
- const key = keys[i];
- defineReactive(value, key, NO_INITIAL_VALUE, undefined, shallow, mock);
- }
- }
- }
-
- observeArray(value) {
- for (let i = 0, l = value.length; i < l; i++) {
- observe(value[i], false, this.mock);
- }
- }
- }
- function observe(value, shallow, ssrMockReactivity) {
- if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
- return value.__ob__;
- }
- if (shouldObserve &&
- (ssrMockReactivity || !isServerRendering()) &&
- (isArray(value) || isPlainObject(value)) &&
- Object.isExtensible(value) &&
- !value.__v_skip &&
- !isRef(value) &&
- !(value instanceof VNode)) {
- return new Observer(value, shallow, ssrMockReactivity);
- }
- }
- function defineReactive(obj, key, val, customSetter, shallow, mock, observeEvenIfShallow = false) {
- const dep = new Dep();
- const property = Object.getOwnPropertyDescriptor(obj, key);
- if (property && property.configurable === false) {
- return;
- }
-
- const getter = property && property.get;
- const setter = property && property.set;
- if ((!getter || setter) &&
- (val === NO_INITIAL_VALUE || arguments.length === 2)) {
- val = obj[key];
- }
- let childOb = shallow ? val && val.__ob__ : observe(val, false, mock);
- Object.defineProperty(obj, key, {
- enumerable: true,
- configurable: true,
- get: function reactiveGetter() {
- const value = getter ? getter.call(obj) : val;
- if (Dep.target) {
- {
- dep.depend({
- target: obj,
- type: "get" ,
- key
- });
- }
- if (childOb) {
- childOb.dep.depend();
- if (isArray(value)) {
- dependArray(value);
- }
- }
- }
- return isRef(value) && !shallow ? value.value : value;
- },
- set: function reactiveSetter(newVal) {
- const value = getter ? getter.call(obj) : val;
- if (!hasChanged(value, newVal)) {
- return;
- }
- if (customSetter) {
- customSetter();
- }
- if (setter) {
- setter.call(obj, newVal);
- }
- else if (getter) {
-
- return;
- }
- else if (!shallow && isRef(value) && !isRef(newVal)) {
- value.value = newVal;
- return;
- }
- else {
- val = newVal;
- }
- childOb = shallow ? newVal && newVal.__ob__ : observe(newVal, false, mock);
- {
- dep.notify({
- type: "set" ,
- target: obj,
- key,
- newValue: newVal,
- oldValue: value
- });
- }
- }
- });
- return dep;
- }
- function set(target, key, val) {
- if ((isUndef(target) || isPrimitive(target))) {
- warn$2(`Cannot set reactive property on undefined, null, or primitive value: ${target}`);
- }
- if (isReadonly(target)) {
- warn$2(`Set operation on key "${key}" failed: target is readonly.`);
- return;
- }
- const ob = target.__ob__;
- if (isArray(target) && isValidArrayIndex(key)) {
- target.length = Math.max(target.length, key);
- target.splice(key, 1, val);
-
- if (ob && !ob.shallow && ob.mock) {
- observe(val, false, true);
- }
- return val;
- }
- if (key in target && !(key in Object.prototype)) {
- target[key] = val;
- return val;
- }
- if (target._isVue || (ob && ob.vmCount)) {
- warn$2('Avoid adding reactive properties to a Vue instance or its root $data ' +
- 'at runtime - declare it upfront in the data option.');
- return val;
- }
- if (!ob) {
- target[key] = val;
- return val;
- }
- defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);
- {
- ob.dep.notify({
- type: "add" ,
- target: target,
- key,
- newValue: val,
- oldValue: undefined
- });
- }
- return val;
- }
- function del(target, key) {
- if ((isUndef(target) || isPrimitive(target))) {
- warn$2(`Cannot delete reactive property on undefined, null, or primitive value: ${target}`);
- }
- if (isArray(target) && isValidArrayIndex(key)) {
- target.splice(key, 1);
- return;
- }
- const ob = target.__ob__;
- if (target._isVue || (ob && ob.vmCount)) {
- warn$2('Avoid deleting properties on a Vue instance or its root $data ' +
- '- just set it to null.');
- return;
- }
- if (isReadonly(target)) {
- warn$2(`Delete operation on key "${key}" failed: target is readonly.`);
- return;
- }
- if (!hasOwn(target, key)) {
- return;
- }
- delete target[key];
- if (!ob) {
- return;
- }
- {
- ob.dep.notify({
- type: "delete" ,
- target: target,
- key
- });
- }
- }
- function dependArray(value) {
- for (let e, i = 0, l = value.length; i < l; i++) {
- e = value[i];
- if (e && e.__ob__) {
- e.__ob__.dep.depend();
- }
- if (isArray(e)) {
- dependArray(e);
- }
- }
- }
- function reactive(target) {
- makeReactive(target, false);
- return target;
- }
- function shallowReactive(target) {
- makeReactive(target, true);
- def(target, "__v_isShallow" , true);
- return target;
- }
- function makeReactive(target, shallow) {
-
- if (!isReadonly(target)) {
- {
- if (isArray(target)) {
- warn$2(`Avoid using Array as root value for ${shallow ? `shallowReactive()` : `reactive()`} as it cannot be tracked in watch() or watchEffect(). Use ${shallow ? `shallowRef()` : `ref()`} instead. This is a Vue-2-only limitation.`);
- }
- const existingOb = target && target.__ob__;
- if (existingOb && existingOb.shallow !== shallow) {
- warn$2(`Target is already a ${existingOb.shallow ? `` : `non-`}shallow reactive object, and cannot be converted to ${shallow ? `` : `non-`}shallow.`);
- }
- }
- const ob = observe(target, shallow, isServerRendering() );
- if (!ob) {
- if (target == null || isPrimitive(target)) {
- warn$2(`value cannot be made reactive: ${String(target)}`);
- }
- if (isCollectionType(target)) {
- warn$2(`Vue 2 does not support reactive collection types such as Map or Set.`);
- }
- }
- }
- }
- function isReactive(value) {
- if (isReadonly(value)) {
- return isReactive(value["__v_raw" ]);
- }
- return !!(value && value.__ob__);
- }
- function isShallow(value) {
- return !!(value && value.__v_isShallow);
- }
- function isReadonly(value) {
- return !!(value && value.__v_isReadonly);
- }
- function isProxy(value) {
- return isReactive(value) || isReadonly(value);
- }
- function toRaw(observed) {
- const raw = observed && observed["__v_raw" ];
- return raw ? toRaw(raw) : observed;
- }
- function markRaw(value) {
-
- if (Object.isExtensible(value)) {
- def(value, "__v_skip" , true);
- }
- return value;
- }
- function isCollectionType(value) {
- const type = toRawType(value);
- return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');
- }
- const RefFlag = `__v_isRef`;
- function isRef(r) {
- return !!(r && r.__v_isRef === true);
- }
- function ref$1(value) {
- return createRef(value, false);
- }
- function shallowRef(value) {
- return createRef(value, true);
- }
- function createRef(rawValue, shallow) {
- if (isRef(rawValue)) {
- return rawValue;
- }
- const ref = {};
- def(ref, RefFlag, true);
- def(ref, "__v_isShallow" , shallow);
- def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));
- return ref;
- }
- function triggerRef(ref) {
- if (!ref.dep) {
- warn$2(`received object is not a triggerable ref.`);
- }
- {
- ref.dep &&
- ref.dep.notify({
- type: "set" ,
- target: ref,
- key: 'value'
- });
- }
- }
- function unref(ref) {
- return isRef(ref) ? ref.value : ref;
- }
- function proxyRefs(objectWithRefs) {
- if (isReactive(objectWithRefs)) {
- return objectWithRefs;
- }
- const proxy = {};
- const keys = Object.keys(objectWithRefs);
- for (let i = 0; i < keys.length; i++) {
- proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);
- }
- return proxy;
- }
- function proxyWithRefUnwrap(target, source, key) {
- Object.defineProperty(target, key, {
- enumerable: true,
- configurable: true,
- get: () => {
- const val = source[key];
- if (isRef(val)) {
- return val.value;
- }
- else {
- const ob = val && val.__ob__;
- if (ob)
- ob.dep.depend();
- return val;
- }
- },
- set: value => {
- const oldValue = source[key];
- if (isRef(oldValue) && !isRef(value)) {
- oldValue.value = value;
- }
- else {
- source[key] = value;
- }
- }
- });
- }
- function customRef(factory) {
- const dep = new Dep();
- const { get, set } = factory(() => {
- {
- dep.depend({
- target: ref,
- type: "get" ,
- key: 'value'
- });
- }
- }, () => {
- {
- dep.notify({
- target: ref,
- type: "set" ,
- key: 'value'
- });
- }
- });
- const ref = {
- get value() {
- return get();
- },
- set value(newVal) {
- set(newVal);
- }
- };
- def(ref, RefFlag, true);
- return ref;
- }
- function toRefs(object) {
- if (!isReactive(object)) {
- warn$2(`toRefs() expects a reactive object but received a plain one.`);
- }
- const ret = isArray(object) ? new Array(object.length) : {};
- for (const key in object) {
- ret[key] = toRef(object, key);
- }
- return ret;
- }
- function toRef(object, key, defaultValue) {
- const val = object[key];
- if (isRef(val)) {
- return val;
- }
- const ref = {
- get value() {
- const val = object[key];
- return val === undefined ? defaultValue : val;
- },
- set value(newVal) {
- object[key] = newVal;
- }
- };
- def(ref, RefFlag, true);
- return ref;
- }
- const rawToReadonlyFlag = `__v_rawToReadonly`;
- const rawToShallowReadonlyFlag = `__v_rawToShallowReadonly`;
- function readonly(target) {
- return createReadonly(target, false);
- }
- function createReadonly(target, shallow) {
- if (!isPlainObject(target)) {
- {
- if (isArray(target)) {
- warn$2(`Vue 2 does not support readonly arrays.`);
- }
- else if (isCollectionType(target)) {
- warn$2(`Vue 2 does not support readonly collection types such as Map or Set.`);
- }
- else {
- warn$2(`value cannot be made readonly: ${typeof target}`);
- }
- }
- return target;
- }
- if (!Object.isExtensible(target)) {
- warn$2(`Vue 2 does not support creating readonly proxy for non-extensible object.`);
- }
-
- if (isReadonly(target)) {
- return target;
- }
-
- const existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;
- const existingProxy = target[existingFlag];
- if (existingProxy) {
- return existingProxy;
- }
- const proxy = Object.create(Object.getPrototypeOf(target));
- def(target, existingFlag, proxy);
- def(proxy, "__v_isReadonly" , true);
- def(proxy, "__v_raw" , target);
- if (isRef(target)) {
- def(proxy, RefFlag, true);
- }
- if (shallow || isShallow(target)) {
- def(proxy, "__v_isShallow" , true);
- }
- const keys = Object.keys(target);
- for (let i = 0; i < keys.length; i++) {
- defineReadonlyProperty(proxy, target, keys[i], shallow);
- }
- return proxy;
- }
- function defineReadonlyProperty(proxy, target, key, shallow) {
- Object.defineProperty(proxy, key, {
- enumerable: true,
- configurable: true,
- get() {
- const val = target[key];
- return shallow || !isPlainObject(val) ? val : readonly(val);
- },
- set() {
- warn$2(`Set operation on key "${key}" failed: target is readonly.`);
- }
- });
- }
- function shallowReadonly(target) {
- return createReadonly(target, true);
- }
- function computed(getterOrOptions, debugOptions) {
- let getter;
- let setter;
- const onlyGetter = isFunction(getterOrOptions);
- if (onlyGetter) {
- getter = getterOrOptions;
- setter = () => {
- warn$2('Write operation failed: computed value is readonly');
- }
- ;
- }
- else {
- getter = getterOrOptions.get;
- setter = getterOrOptions.set;
- }
- const watcher = isServerRendering()
- ? null
- : new Watcher(currentInstance, getter, noop, { lazy: true });
- if (watcher && debugOptions) {
- watcher.onTrack = debugOptions.onTrack;
- watcher.onTrigger = debugOptions.onTrigger;
- }
- const ref = {
-
-
- effect: watcher,
- get value() {
- if (watcher) {
- if (watcher.dirty) {
- watcher.evaluate();
- }
- if (Dep.target) {
- if (Dep.target.onTrack) {
- Dep.target.onTrack({
- effect: Dep.target,
- target: ref,
- type: "get" ,
- key: 'value'
- });
- }
- watcher.depend();
- }
- return watcher.value;
- }
- else {
- return getter();
- }
- },
- set value(newVal) {
- setter(newVal);
- }
- };
- def(ref, RefFlag, true);
- def(ref, "__v_isReadonly" , onlyGetter);
- return ref;
- }
- let mark;
- let measure;
- {
- const perf = inBrowser && window.performance;
-
- if (perf &&
-
- perf.mark &&
-
- perf.measure &&
-
- perf.clearMarks &&
-
- perf.clearMeasures) {
- mark = tag => perf.mark(tag);
- measure = (name, startTag, endTag) => {
- perf.measure(name, startTag, endTag);
- perf.clearMarks(startTag);
- perf.clearMarks(endTag);
-
- };
- }
- }
- const normalizeEvent = cached((name) => {
- const passive = name.charAt(0) === '&';
- name = passive ? name.slice(1) : name;
- const once = name.charAt(0) === '~';
- name = once ? name.slice(1) : name;
- const capture = name.charAt(0) === '!';
- name = capture ? name.slice(1) : name;
- return {
- name,
- once,
- capture,
- passive
- };
- });
- function createFnInvoker(fns, vm) {
- function invoker() {
- const fns = invoker.fns;
- if (isArray(fns)) {
- const cloned = fns.slice();
- for (let i = 0; i < cloned.length; i++) {
- invokeWithErrorHandling(cloned[i], null, arguments, vm, `v-on handler`);
- }
- }
- else {
-
- return invokeWithErrorHandling(fns, null, arguments, vm, `v-on handler`);
- }
- }
- invoker.fns = fns;
- return invoker;
- }
- function updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {
- let name, cur, old, event;
- for (name in on) {
- cur = on[name];
- old = oldOn[name];
- event = normalizeEvent(name);
- if (isUndef(cur)) {
- warn$2(`Invalid handler for event "${event.name}": got ` + String(cur), vm);
- }
- else if (isUndef(old)) {
- if (isUndef(cur.fns)) {
- cur = on[name] = createFnInvoker(cur, vm);
- }
- if (isTrue(event.once)) {
- cur = on[name] = createOnceHandler(event.name, cur, event.capture);
- }
- add(event.name, cur, event.capture, event.passive, event.params);
- }
- else if (cur !== old) {
- old.fns = cur;
- on[name] = old;
- }
- }
- for (name in oldOn) {
- if (isUndef(on[name])) {
- event = normalizeEvent(name);
- remove(event.name, oldOn[name], event.capture);
- }
- }
- }
- function mergeVNodeHook(def, hookKey, hook) {
- if (def instanceof VNode) {
- def = def.data.hook || (def.data.hook = {});
- }
- let invoker;
- const oldHook = def[hookKey];
- function wrappedHook() {
- hook.apply(this, arguments);
-
-
- remove$2(invoker.fns, wrappedHook);
- }
- if (isUndef(oldHook)) {
-
- invoker = createFnInvoker([wrappedHook]);
- }
- else {
-
- if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
-
- invoker = oldHook;
- invoker.fns.push(wrappedHook);
- }
- else {
-
- invoker = createFnInvoker([oldHook, wrappedHook]);
- }
- }
- invoker.merged = true;
- def[hookKey] = invoker;
- }
- function extractPropsFromVNodeData(data, Ctor, tag) {
-
-
-
- const propOptions = Ctor.options.props;
- if (isUndef(propOptions)) {
- return;
- }
- const res = {};
- const { attrs, props } = data;
- if (isDef(attrs) || isDef(props)) {
- for (const key in propOptions) {
- const altKey = hyphenate(key);
- {
- const keyInLowerCase = key.toLowerCase();
- if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {
- tip(`Prop "${keyInLowerCase}" is passed to component ` +
- `${formatComponentName(
- // @ts-expect-error tag is string
- tag || Ctor)}, but the declared prop name is` +
- ` "${key}". ` +
- `Note that HTML attributes are case-insensitive and camelCased ` +
- `props need to use their kebab-case equivalents when using in-DOM ` +
- `templates. You should probably use "${altKey}" instead of "${key}".`);
- }
- }
- checkProp(res, props, key, altKey, true) ||
- checkProp(res, attrs, key, altKey, false);
- }
- }
- return res;
- }
- function checkProp(res, hash, key, altKey, preserve) {
- if (isDef(hash)) {
- if (hasOwn(hash, key)) {
- res[key] = hash[key];
- if (!preserve) {
- delete hash[key];
- }
- return true;
- }
- else if (hasOwn(hash, altKey)) {
- res[key] = hash[altKey];
- if (!preserve) {
- delete hash[altKey];
- }
- return true;
- }
- }
- return false;
- }
- function simpleNormalizeChildren(children) {
- for (let i = 0; i < children.length; i++) {
- if (isArray(children[i])) {
- return Array.prototype.concat.apply([], children);
- }
- }
- return children;
- }
- function normalizeChildren(children) {
- return isPrimitive(children)
- ? [createTextVNode(children)]
- : isArray(children)
- ? normalizeArrayChildren(children)
- : undefined;
- }
- function isTextNode(node) {
- return isDef(node) && isDef(node.text) && isFalse(node.isComment);
- }
- function normalizeArrayChildren(children, nestedIndex) {
- const res = [];
- let i, c, lastIndex, last;
- for (i = 0; i < children.length; i++) {
- c = children[i];
- if (isUndef(c) || typeof c === 'boolean')
- continue;
- lastIndex = res.length - 1;
- last = res[lastIndex];
-
- if (isArray(c)) {
- if (c.length > 0) {
- c = normalizeArrayChildren(c, `${nestedIndex || ''}_${i}`);
-
- if (isTextNode(c[0]) && isTextNode(last)) {
- res[lastIndex] = createTextVNode(last.text + c[0].text);
- c.shift();
- }
- res.push.apply(res, c);
- }
- }
- else if (isPrimitive(c)) {
- if (isTextNode(last)) {
-
-
-
- res[lastIndex] = createTextVNode(last.text + c);
- }
- else if (c !== '') {
-
- res.push(createTextVNode(c));
- }
- }
- else {
- if (isTextNode(c) && isTextNode(last)) {
-
- res[lastIndex] = createTextVNode(last.text + c.text);
- }
- else {
-
- if (isTrue(children._isVList) &&
- isDef(c.tag) &&
- isUndef(c.key) &&
- isDef(nestedIndex)) {
- c.key = `__vlist${nestedIndex}_${i}__`;
- }
- res.push(c);
- }
- }
- }
- return res;
- }
- const SIMPLE_NORMALIZE = 1;
- const ALWAYS_NORMALIZE = 2;
- function createElement$1(context, tag, data, children, normalizationType, alwaysNormalize) {
- if (isArray(data) || isPrimitive(data)) {
- normalizationType = children;
- children = data;
- data = undefined;
- }
- if (isTrue(alwaysNormalize)) {
- normalizationType = ALWAYS_NORMALIZE;
- }
- return _createElement(context, tag, data, children, normalizationType);
- }
- function _createElement(context, tag, data, children, normalizationType) {
- if (isDef(data) && isDef(data.__ob__)) {
- warn$2(`Avoid using observed data object as vnode data: ${JSON.stringify(data)}\n` + 'Always create fresh vnode data objects in each render!', context);
- return createEmptyVNode();
- }
-
- if (isDef(data) && isDef(data.is)) {
- tag = data.is;
- }
- if (!tag) {
-
- return createEmptyVNode();
- }
-
- if (isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {
- warn$2('Avoid using non-primitive value as key, ' +
- 'use string/number value instead.', context);
- }
-
- if (isArray(children) && isFunction(children[0])) {
- data = data || {};
- data.scopedSlots = { default: children[0] };
- children.length = 0;
- }
- if (normalizationType === ALWAYS_NORMALIZE) {
- children = normalizeChildren(children);
- }
- else if (normalizationType === SIMPLE_NORMALIZE) {
- children = simpleNormalizeChildren(children);
- }
- let vnode, ns;
- if (typeof tag === 'string') {
- let Ctor;
- ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
- if (config.isReservedTag(tag)) {
-
- if (isDef(data) &&
- isDef(data.nativeOn) &&
- data.tag !== 'component') {
- warn$2(`The .native modifier for v-on is only valid on components but it was used on <${tag}>.`, context);
- }
- vnode = new VNode(config.parsePlatformTagName(tag), data, children, undefined, undefined, context);
- }
- else if ((!data || !data.pre) &&
- isDef((Ctor = resolveAsset(context.$options, 'components', tag)))) {
-
- vnode = createComponent(Ctor, data, context, children, tag);
- }
- else {
-
-
-
- vnode = new VNode(tag, data, children, undefined, undefined, context);
- }
- }
- else {
-
- vnode = createComponent(tag, data, context, children);
- }
- if (isArray(vnode)) {
- return vnode;
- }
- else if (isDef(vnode)) {
- if (isDef(ns))
- applyNS(vnode, ns);
- if (isDef(data))
- registerDeepBindings(data);
- return vnode;
- }
- else {
- return createEmptyVNode();
- }
- }
- function applyNS(vnode, ns, force) {
- vnode.ns = ns;
- if (vnode.tag === 'foreignObject') {
-
- ns = undefined;
- force = true;
- }
- if (isDef(vnode.children)) {
- for (let i = 0, l = vnode.children.length; i < l; i++) {
- const child = vnode.children[i];
- if (isDef(child.tag) &&
- (isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
- applyNS(child, ns, force);
- }
- }
- }
- }
- function registerDeepBindings(data) {
- if (isObject(data.style)) {
- traverse(data.style);
- }
- if (isObject(data.class)) {
- traverse(data.class);
- }
- }
- function renderList(val, render) {
- let ret = null, i, l, keys, key;
- if (isArray(val) || typeof val === 'string') {
- ret = new Array(val.length);
- for (i = 0, l = val.length; i < l; i++) {
- ret[i] = render(val[i], i);
- }
- }
- else if (typeof val === 'number') {
- ret = new Array(val);
- for (i = 0; i < val; i++) {
- ret[i] = render(i + 1, i);
- }
- }
- else if (isObject(val)) {
- if (hasSymbol && val[Symbol.iterator]) {
- ret = [];
- const iterator = val[Symbol.iterator]();
- let result = iterator.next();
- while (!result.done) {
- ret.push(render(result.value, ret.length));
- result = iterator.next();
- }
- }
- else {
- keys = Object.keys(val);
- ret = new Array(keys.length);
- for (i = 0, l = keys.length; i < l; i++) {
- key = keys[i];
- ret[i] = render(val[key], key, i);
- }
- }
- }
- if (!isDef(ret)) {
- ret = [];
- }
- ret._isVList = true;
- return ret;
- }
- function renderSlot(name, fallbackRender, props, bindObject) {
- const scopedSlotFn = this.$scopedSlots[name];
- let nodes;
- if (scopedSlotFn) {
-
- props = props || {};
- if (bindObject) {
- if (!isObject(bindObject)) {
- warn$2('slot v-bind without argument expects an Object', this);
- }
- props = extend(extend({}, bindObject), props);
- }
- nodes =
- scopedSlotFn(props) ||
- (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);
- }
- else {
- nodes =
- this.$slots[name] ||
- (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);
- }
- const target = props && props.slot;
- if (target) {
- return this.$createElement('template', { slot: target }, nodes);
- }
- else {
- return nodes;
- }
- }
- function resolveFilter(id) {
- return resolveAsset(this.$options, 'filters', id, true) || identity;
- }
- function isKeyNotMatch(expect, actual) {
- if (isArray(expect)) {
- return expect.indexOf(actual) === -1;
- }
- else {
- return expect !== actual;
- }
- }
- function checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {
- const mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
- if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
- return isKeyNotMatch(builtInKeyName, eventKeyName);
- }
- else if (mappedKeyCode) {
- return isKeyNotMatch(mappedKeyCode, eventKeyCode);
- }
- else if (eventKeyName) {
- return hyphenate(eventKeyName) !== key;
- }
- return eventKeyCode === undefined;
- }
- function bindObjectProps(data, tag, value, asProp, isSync) {
- if (value) {
- if (!isObject(value)) {
- warn$2('v-bind without argument expects an Object or Array value', this);
- }
- else {
- if (isArray(value)) {
- value = toObject(value);
- }
- let hash;
- for (const key in value) {
- if (key === 'class' || key === 'style' || isReservedAttribute(key)) {
- hash = data;
- }
- else {
- const type = data.attrs && data.attrs.type;
- hash =
- asProp || config.mustUseProp(tag, type, key)
- ? data.domProps || (data.domProps = {})
- : data.attrs || (data.attrs = {});
- }
- const camelizedKey = camelize(key);
- const hyphenatedKey = hyphenate(key);
- if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
- hash[key] = value[key];
- if (isSync) {
- const on = data.on || (data.on = {});
- on[`update:${key}`] = function ($event) {
- value[key] = $event;
- };
- }
- }
- }
- }
- }
- return data;
- }
- function renderStatic(index, isInFor) {
- const cached = this._staticTrees || (this._staticTrees = []);
- let tree = cached[index];
-
-
- if (tree && !isInFor) {
- return tree;
- }
-
- tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this
- );
- markStatic$1(tree, `__static__${index}`, false);
- return tree;
- }
- function markOnce(tree, index, key) {
- markStatic$1(tree, `__once__${index}${key ? `_${key}` : ``}`, true);
- return tree;
- }
- function markStatic$1(tree, key, isOnce) {
- if (isArray(tree)) {
- for (let i = 0; i < tree.length; i++) {
- if (tree[i] && typeof tree[i] !== 'string') {
- markStaticNode(tree[i], `${key}_${i}`, isOnce);
- }
- }
- }
- else {
- markStaticNode(tree, key, isOnce);
- }
- }
- function markStaticNode(node, key, isOnce) {
- node.isStatic = true;
- node.key = key;
- node.isOnce = isOnce;
- }
- function bindObjectListeners(data, value) {
- if (value) {
- if (!isPlainObject(value)) {
- warn$2('v-on without argument expects an Object value', this);
- }
- else {
- const on = (data.on = data.on ? extend({}, data.on) : {});
- for (const key in value) {
- const existing = on[key];
- const ours = value[key];
- on[key] = existing ? [].concat(existing, ours) : ours;
- }
- }
- }
- return data;
- }
- function resolveScopedSlots(fns, res,
- // the following are added in 2.6
- hasDynamicKeys, contentHashKey) {
- res = res || { $stable: !hasDynamicKeys };
- for (let i = 0; i < fns.length; i++) {
- const slot = fns[i];
- if (isArray(slot)) {
- resolveScopedSlots(slot, res, hasDynamicKeys);
- }
- else if (slot) {
-
-
- if (slot.proxy) {
-
- slot.fn.proxy = true;
- }
- res[slot.key] = slot.fn;
- }
- }
- if (contentHashKey) {
- res.$key = contentHashKey;
- }
- return res;
- }
- function bindDynamicKeys(baseObj, values) {
- for (let i = 0; i < values.length; i += 2) {
- const key = values[i];
- if (typeof key === 'string' && key) {
- baseObj[values[i]] = values[i + 1];
- }
- else if (key !== '' && key !== null) {
-
- warn$2(`Invalid value for dynamic directive argument (expected string or null): ${key}`, this);
- }
- }
- return baseObj;
- }
- function prependModifier(value, symbol) {
- return typeof value === 'string' ? symbol + value : value;
- }
- function installRenderHelpers(target) {
- target._o = markOnce;
- target._n = toNumber;
- target._s = toString;
- target._l = renderList;
- target._t = renderSlot;
- target._q = looseEqual;
- target._i = looseIndexOf;
- target._m = renderStatic;
- target._f = resolveFilter;
- target._k = checkKeyCodes;
- target._b = bindObjectProps;
- target._v = createTextVNode;
- target._e = createEmptyVNode;
- target._u = resolveScopedSlots;
- target._g = bindObjectListeners;
- target._d = bindDynamicKeys;
- target._p = prependModifier;
- }
- function resolveSlots(children, context) {
- if (!children || !children.length) {
- return {};
- }
- const slots = {};
- for (let i = 0, l = children.length; i < l; i++) {
- const child = children[i];
- const data = child.data;
-
- if (data && data.attrs && data.attrs.slot) {
- delete data.attrs.slot;
- }
-
-
- if ((child.context === context || child.fnContext === context) &&
- data &&
- data.slot != null) {
- const name = data.slot;
- const slot = slots[name] || (slots[name] = []);
- if (child.tag === 'template') {
- slot.push.apply(slot, child.children || []);
- }
- else {
- slot.push(child);
- }
- }
- else {
- (slots.default || (slots.default = [])).push(child);
- }
- }
-
- for (const name in slots) {
- if (slots[name].every(isWhitespace)) {
- delete slots[name];
- }
- }
- return slots;
- }
- function isWhitespace(node) {
- return (node.isComment && !node.asyncFactory) || node.text === ' ';
- }
- function isAsyncPlaceholder(node) {
-
- return node.isComment && node.asyncFactory;
- }
- function normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) {
- let res;
- const hasNormalSlots = Object.keys(normalSlots).length > 0;
- const isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots;
- const key = scopedSlots && scopedSlots.$key;
- if (!scopedSlots) {
- res = {};
- }
- else if (scopedSlots._normalized) {
-
- return scopedSlots._normalized;
- }
- else if (isStable &&
- prevScopedSlots &&
- prevScopedSlots !== emptyObject &&
- key === prevScopedSlots.$key &&
- !hasNormalSlots &&
- !prevScopedSlots.$hasNormal) {
-
-
- return prevScopedSlots;
- }
- else {
- res = {};
- for (const key in scopedSlots) {
- if (scopedSlots[key] && key[0] !== '$') {
- res[key] = normalizeScopedSlot(ownerVm, normalSlots, key, scopedSlots[key]);
- }
- }
- }
-
- for (const key in normalSlots) {
- if (!(key in res)) {
- res[key] = proxyNormalSlot(normalSlots, key);
- }
- }
-
-
- if (scopedSlots && Object.isExtensible(scopedSlots)) {
- scopedSlots._normalized = res;
- }
- def(res, '$stable', isStable);
- def(res, '$key', key);
- def(res, '$hasNormal', hasNormalSlots);
- return res;
- }
- function normalizeScopedSlot(vm, normalSlots, key, fn) {
- const normalized = function () {
- const cur = currentInstance;
- setCurrentInstance(vm);
- let res = arguments.length ? fn.apply(null, arguments) : fn({});
- res =
- res && typeof res === 'object' && !isArray(res)
- ? [res]
- : normalizeChildren(res);
- const vnode = res && res[0];
- setCurrentInstance(cur);
- return res &&
- (!vnode ||
- (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode)))
- ? undefined
- : res;
- };
-
-
-
- if (fn.proxy) {
- Object.defineProperty(normalSlots, key, {
- get: normalized,
- enumerable: true,
- configurable: true
- });
- }
- return normalized;
- }
- function proxyNormalSlot(slots, key) {
- return () => slots[key];
- }
- function initSetup(vm) {
- const options = vm.$options;
- const setup = options.setup;
- if (setup) {
- const ctx = (vm._setupContext = createSetupContext(vm));
- setCurrentInstance(vm);
- pushTarget();
- const setupResult = invokeWithErrorHandling(setup, null, [vm._props || shallowReactive({}), ctx], vm, `setup`);
- popTarget();
- setCurrentInstance();
- if (isFunction(setupResult)) {
-
-
- options.render = setupResult;
- }
- else if (isObject(setupResult)) {
-
- if (setupResult instanceof VNode) {
- warn$2(`setup() should not return VNodes directly - ` +
- `return a render function instead.`);
- }
- vm._setupState = setupResult;
-
- if (!setupResult.__sfc) {
- for (const key in setupResult) {
- if (!isReserved(key)) {
- proxyWithRefUnwrap(vm, setupResult, key);
- }
- else {
- warn$2(`Avoid using variables that start with _ or $ in setup().`);
- }
- }
- }
- else {
-
- const proxy = (vm._setupProxy = {});
- for (const key in setupResult) {
- if (key !== '__sfc') {
- proxyWithRefUnwrap(proxy, setupResult, key);
- }
- }
- }
- }
- else if (setupResult !== undefined) {
- warn$2(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);
- }
- }
- }
- function createSetupContext(vm) {
- let exposeCalled = false;
- return {
- get attrs() {
- if (!vm._attrsProxy) {
- const proxy = (vm._attrsProxy = {});
- def(proxy, '_v_attr_proxy', true);
- syncSetupProxy(proxy, vm.$attrs, emptyObject, vm, '$attrs');
- }
- return vm._attrsProxy;
- },
- get listeners() {
- if (!vm._listenersProxy) {
- const proxy = (vm._listenersProxy = {});
- syncSetupProxy(proxy, vm.$listeners, emptyObject, vm, '$listeners');
- }
- return vm._listenersProxy;
- },
- get slots() {
- return initSlotsProxy(vm);
- },
- emit: bind$1(vm.$emit, vm),
- expose(exposed) {
- {
- if (exposeCalled) {
- warn$2(`expose() should be called only once per setup().`, vm);
- }
- exposeCalled = true;
- }
- if (exposed) {
- Object.keys(exposed).forEach(key => proxyWithRefUnwrap(vm, exposed, key));
- }
- }
- };
- }
- function syncSetupProxy(to, from, prev, instance, type) {
- let changed = false;
- for (const key in from) {
- if (!(key in to)) {
- changed = true;
- defineProxyAttr(to, key, instance, type);
- }
- else if (from[key] !== prev[key]) {
- changed = true;
- }
- }
- for (const key in to) {
- if (!(key in from)) {
- changed = true;
- delete to[key];
- }
- }
- return changed;
- }
- function defineProxyAttr(proxy, key, instance, type) {
- Object.defineProperty(proxy, key, {
- enumerable: true,
- configurable: true,
- get() {
- return instance[type][key];
- }
- });
- }
- function initSlotsProxy(vm) {
- if (!vm._slotsProxy) {
- syncSetupSlots((vm._slotsProxy = {}), vm.$scopedSlots);
- }
- return vm._slotsProxy;
- }
- function syncSetupSlots(to, from) {
- for (const key in from) {
- to[key] = from[key];
- }
- for (const key in to) {
- if (!(key in from)) {
- delete to[key];
- }
- }
- }
- function useSlots() {
- return getContext().slots;
- }
- function useAttrs() {
- return getContext().attrs;
- }
- function useListeners() {
- return getContext().listeners;
- }
- function getContext() {
- if (!currentInstance) {
- warn$2(`useContext() called without active instance.`);
- }
- const vm = currentInstance;
- return vm._setupContext || (vm._setupContext = createSetupContext(vm));
- }
- function mergeDefaults(raw, defaults) {
- const props = isArray(raw)
- ? raw.reduce((normalized, p) => ((normalized[p] = {}), normalized), {})
- : raw;
- for (const key in defaults) {
- const opt = props[key];
- if (opt) {
- if (isArray(opt) || isFunction(opt)) {
- props[key] = { type: opt, default: defaults[key] };
- }
- else {
- opt.default = defaults[key];
- }
- }
- else if (opt === null) {
- props[key] = { default: defaults[key] };
- }
- else {
- warn$2(`props default key "${key}" has no corresponding declaration.`);
- }
- }
- return props;
- }
- function initRender(vm) {
- vm._vnode = null;
- vm._staticTrees = null;
- const options = vm.$options;
- const parentVnode = (vm.$vnode = options._parentVnode);
- const renderContext = parentVnode && parentVnode.context;
- vm.$slots = resolveSlots(options._renderChildren, renderContext);
- vm.$scopedSlots = parentVnode
- ? normalizeScopedSlots(vm.$parent, parentVnode.data.scopedSlots, vm.$slots)
- : emptyObject;
-
-
-
-
-
- vm._c = (a, b, c, d) => createElement$1(vm, a, b, c, d, false);
-
-
-
- vm.$createElement = (a, b, c, d) => createElement$1(vm, a, b, c, d, true);
-
-
- const parentData = parentVnode && parentVnode.data;
-
- {
- defineReactive(vm, '$attrs', (parentData && parentData.attrs) || emptyObject, () => {
- !isUpdatingChildComponent && warn$2(`$attrs is readonly.`, vm);
- }, true);
- defineReactive(vm, '$listeners', options._parentListeners || emptyObject, () => {
- !isUpdatingChildComponent && warn$2(`$listeners is readonly.`, vm);
- }, true);
- }
- }
- let currentRenderingInstance = null;
- function renderMixin(Vue) {
-
- installRenderHelpers(Vue.prototype);
- Vue.prototype.$nextTick = function (fn) {
- return nextTick(fn, this);
- };
- Vue.prototype._render = function () {
- const vm = this;
- const { render, _parentVnode } = vm.$options;
- if (_parentVnode && vm._isMounted) {
- vm.$scopedSlots = normalizeScopedSlots(vm.$parent, _parentVnode.data.scopedSlots, vm.$slots, vm.$scopedSlots);
- if (vm._slotsProxy) {
- syncSetupSlots(vm._slotsProxy, vm.$scopedSlots);
- }
- }
-
-
- vm.$vnode = _parentVnode;
-
- const prevInst = currentInstance;
- const prevRenderInst = currentRenderingInstance;
- let vnode;
- try {
- setCurrentInstance(vm);
- currentRenderingInstance = vm;
- vnode = render.call(vm._renderProxy, vm.$createElement);
- }
- catch (e) {
- handleError(e, vm, `render`);
-
-
-
- if (vm.$options.renderError) {
- try {
- vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
- }
- catch (e) {
- handleError(e, vm, `renderError`);
- vnode = vm._vnode;
- }
- }
- else {
- vnode = vm._vnode;
- }
- }
- finally {
- currentRenderingInstance = prevRenderInst;
- setCurrentInstance(prevInst);
- }
-
- if (isArray(vnode) && vnode.length === 1) {
- vnode = vnode[0];
- }
-
- if (!(vnode instanceof VNode)) {
- if (isArray(vnode)) {
- warn$2('Multiple root nodes returned from render function. Render function ' +
- 'should return a single root node.', vm);
- }
- vnode = createEmptyVNode();
- }
-
- vnode.parent = _parentVnode;
- return vnode;
- };
- }
- function ensureCtor(comp, base) {
- if (comp.__esModule || (hasSymbol && comp[Symbol.toStringTag] === 'Module')) {
- comp = comp.default;
- }
- return isObject(comp) ? base.extend(comp) : comp;
- }
- function createAsyncPlaceholder(factory, data, context, children, tag) {
- const node = createEmptyVNode();
- node.asyncFactory = factory;
- node.asyncMeta = { data, context, children, tag };
- return node;
- }
- function resolveAsyncComponent(factory, baseCtor) {
- if (isTrue(factory.error) && isDef(factory.errorComp)) {
- return factory.errorComp;
- }
- if (isDef(factory.resolved)) {
- return factory.resolved;
- }
- const owner = currentRenderingInstance;
- if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
-
- factory.owners.push(owner);
- }
- if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
- return factory.loadingComp;
- }
- if (owner && !isDef(factory.owners)) {
- const owners = (factory.owners = [owner]);
- let sync = true;
- let timerLoading = null;
- let timerTimeout = null;
- owner.$on('hook:destroyed', () => remove$2(owners, owner));
- const forceRender = (renderCompleted) => {
- for (let i = 0, l = owners.length; i < l; i++) {
- owners[i].$forceUpdate();
- }
- if (renderCompleted) {
- owners.length = 0;
- if (timerLoading !== null) {
- clearTimeout(timerLoading);
- timerLoading = null;
- }
- if (timerTimeout !== null) {
- clearTimeout(timerTimeout);
- timerTimeout = null;
- }
- }
- };
- const resolve = once((res) => {
-
- factory.resolved = ensureCtor(res, baseCtor);
-
-
- if (!sync) {
- forceRender(true);
- }
- else {
- owners.length = 0;
- }
- });
- const reject = once(reason => {
- warn$2(`Failed to resolve async component: ${String(factory)}` +
- (reason ? `\nReason: ${reason}` : ''));
- if (isDef(factory.errorComp)) {
- factory.error = true;
- forceRender(true);
- }
- });
- const res = factory(resolve, reject);
- if (isObject(res)) {
- if (isPromise(res)) {
-
- if (isUndef(factory.resolved)) {
- res.then(resolve, reject);
- }
- }
- else if (isPromise(res.component)) {
- res.component.then(resolve, reject);
- if (isDef(res.error)) {
- factory.errorComp = ensureCtor(res.error, baseCtor);
- }
- if (isDef(res.loading)) {
- factory.loadingComp = ensureCtor(res.loading, baseCtor);
- if (res.delay === 0) {
- factory.loading = true;
- }
- else {
-
- timerLoading = setTimeout(() => {
- timerLoading = null;
- if (isUndef(factory.resolved) && isUndef(factory.error)) {
- factory.loading = true;
- forceRender(false);
- }
- }, res.delay || 200);
- }
- }
- if (isDef(res.timeout)) {
-
- timerTimeout = setTimeout(() => {
- timerTimeout = null;
- if (isUndef(factory.resolved)) {
- reject(`timeout (${res.timeout}ms)` );
- }
- }, res.timeout);
- }
- }
- }
- sync = false;
-
- return factory.loading ? factory.loadingComp : factory.resolved;
- }
- }
- function getFirstComponentChild(children) {
- if (isArray(children)) {
- for (let i = 0; i < children.length; i++) {
- const c = children[i];
- if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
- return c;
- }
- }
- }
- }
- function initEvents(vm) {
- vm._events = Object.create(null);
- vm._hasHookEvent = false;
-
- const listeners = vm.$options._parentListeners;
- if (listeners) {
- updateComponentListeners(vm, listeners);
- }
- }
- let target$1;
- function add$1(event, fn) {
- target$1.$on(event, fn);
- }
- function remove$1(event, fn) {
- target$1.$off(event, fn);
- }
- function createOnceHandler$1(event, fn) {
- const _target = target$1;
- return function onceHandler() {
- const res = fn.apply(null, arguments);
- if (res !== null) {
- _target.$off(event, onceHandler);
- }
- };
- }
- function updateComponentListeners(vm, listeners, oldListeners) {
- target$1 = vm;
- updateListeners(listeners, oldListeners || {}, add$1, remove$1, createOnceHandler$1, vm);
- target$1 = undefined;
- }
- function eventsMixin(Vue) {
- const hookRE = /^hook:/;
- Vue.prototype.$on = function (event, fn) {
- const vm = this;
- if (isArray(event)) {
- for (let i = 0, l = event.length; i < l; i++) {
- vm.$on(event[i], fn);
- }
- }
- else {
- (vm._events[event] || (vm._events[event] = [])).push(fn);
-
-
- if (hookRE.test(event)) {
- vm._hasHookEvent = true;
- }
- }
- return vm;
- };
- Vue.prototype.$once = function (event, fn) {
- const vm = this;
- function on() {
- vm.$off(event, on);
- fn.apply(vm, arguments);
- }
- on.fn = fn;
- vm.$on(event, on);
- return vm;
- };
- Vue.prototype.$off = function (event, fn) {
- const vm = this;
-
- if (!arguments.length) {
- vm._events = Object.create(null);
- return vm;
- }
-
- if (isArray(event)) {
- for (let i = 0, l = event.length; i < l; i++) {
- vm.$off(event[i], fn);
- }
- return vm;
- }
-
- const cbs = vm._events[event];
- if (!cbs) {
- return vm;
- }
- if (!fn) {
- vm._events[event] = null;
- return vm;
- }
-
- let cb;
- let i = cbs.length;
- while (i--) {
- cb = cbs[i];
- if (cb === fn || cb.fn === fn) {
- cbs.splice(i, 1);
- break;
- }
- }
- return vm;
- };
- Vue.prototype.$emit = function (event) {
- const vm = this;
- {
- const lowerCaseEvent = event.toLowerCase();
- if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
- tip(`Event "${lowerCaseEvent}" is emitted in component ` +
- `${formatComponentName(vm)} but the handler is registered for "${event}". ` +
- `Note that HTML attributes are case-insensitive and you cannot use ` +
- `v-on to listen to camelCase events when using in-DOM templates. ` +
- `You should probably use "${hyphenate(event)}" instead of "${event}".`);
- }
- }
- let cbs = vm._events[event];
- if (cbs) {
- cbs = cbs.length > 1 ? toArray(cbs) : cbs;
- const args = toArray(arguments, 1);
- const info = `event handler for "${event}"`;
- for (let i = 0, l = cbs.length; i < l; i++) {
- invokeWithErrorHandling(cbs[i], vm, args, vm, info);
- }
- }
- return vm;
- };
- }
- let activeEffectScope;
- class EffectScope {
- constructor(detached = false) {
- this.detached = detached;
-
- this.active = true;
-
- this.effects = [];
-
- this.cleanups = [];
- this.parent = activeEffectScope;
- if (!detached && activeEffectScope) {
- this.index =
- (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;
- }
- }
- run(fn) {
- if (this.active) {
- const currentEffectScope = activeEffectScope;
- try {
- activeEffectScope = this;
- return fn();
- }
- finally {
- activeEffectScope = currentEffectScope;
- }
- }
- else {
- warn$2(`cannot run an inactive effect scope.`);
- }
- }
-
- on() {
- activeEffectScope = this;
- }
-
- off() {
- activeEffectScope = this.parent;
- }
- stop(fromParent) {
- if (this.active) {
- let i, l;
- for (i = 0, l = this.effects.length; i < l; i++) {
- this.effects[i].teardown();
- }
- for (i = 0, l = this.cleanups.length; i < l; i++) {
- this.cleanups[i]();
- }
- if (this.scopes) {
- for (i = 0, l = this.scopes.length; i < l; i++) {
- this.scopes[i].stop(true);
- }
- }
-
- if (!this.detached && this.parent && !fromParent) {
-
- const last = this.parent.scopes.pop();
- if (last && last !== this) {
- this.parent.scopes[this.index] = last;
- last.index = this.index;
- }
- }
- this.parent = undefined;
- this.active = false;
- }
- }
- }
- function effectScope(detached) {
- return new EffectScope(detached);
- }
- function recordEffectScope(effect, scope = activeEffectScope) {
- if (scope && scope.active) {
- scope.effects.push(effect);
- }
- }
- function getCurrentScope() {
- return activeEffectScope;
- }
- function onScopeDispose(fn) {
- if (activeEffectScope) {
- activeEffectScope.cleanups.push(fn);
- }
- else {
- warn$2(`onScopeDispose() is called when there is no active effect scope` +
- ` to be associated with.`);
- }
- }
- let activeInstance = null;
- let isUpdatingChildComponent = false;
- function setActiveInstance(vm) {
- const prevActiveInstance = activeInstance;
- activeInstance = vm;
- return () => {
- activeInstance = prevActiveInstance;
- };
- }
- function initLifecycle(vm) {
- const options = vm.$options;
-
- let parent = options.parent;
- if (parent && !options.abstract) {
- while (parent.$options.abstract && parent.$parent) {
- parent = parent.$parent;
- }
- parent.$children.push(vm);
- }
- vm.$parent = parent;
- vm.$root = parent ? parent.$root : vm;
- vm.$children = [];
- vm.$refs = {};
- vm._provided = parent ? parent._provided : Object.create(null);
- vm._watcher = null;
- vm._inactive = null;
- vm._directInactive = false;
- vm._isMounted = false;
- vm._isDestroyed = false;
- vm._isBeingDestroyed = false;
- }
- function lifecycleMixin(Vue) {
- Vue.prototype._update = function (vnode, hydrating) {
- const vm = this;
- const prevEl = vm.$el;
- const prevVnode = vm._vnode;
- const restoreActiveInstance = setActiveInstance(vm);
- vm._vnode = vnode;
-
-
- if (!prevVnode) {
-
- vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false );
- }
- else {
-
- vm.$el = vm.__patch__(prevVnode, vnode);
- }
- restoreActiveInstance();
-
- if (prevEl) {
- prevEl.__vue__ = null;
- }
- if (vm.$el) {
- vm.$el.__vue__ = vm;
- }
-
- let wrapper = vm;
- while (wrapper &&
- wrapper.$vnode &&
- wrapper.$parent &&
- wrapper.$vnode === wrapper.$parent._vnode) {
- wrapper.$parent.$el = wrapper.$el;
- wrapper = wrapper.$parent;
- }
-
-
- };
- Vue.prototype.$forceUpdate = function () {
- const vm = this;
- if (vm._watcher) {
- vm._watcher.update();
- }
- };
- Vue.prototype.$destroy = function () {
- const vm = this;
- if (vm._isBeingDestroyed) {
- return;
- }
- callHook$1(vm, 'beforeDestroy');
- vm._isBeingDestroyed = true;
-
- const parent = vm.$parent;
- if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
- remove$2(parent.$children, vm);
- }
-
-
- vm._scope.stop();
-
-
- if (vm._data.__ob__) {
- vm._data.__ob__.vmCount--;
- }
-
- vm._isDestroyed = true;
-
- vm.__patch__(vm._vnode, null);
-
- callHook$1(vm, 'destroyed');
-
- vm.$off();
-
- if (vm.$el) {
- vm.$el.__vue__ = null;
- }
-
- if (vm.$vnode) {
- vm.$vnode.parent = null;
- }
- };
- }
- function mountComponent(vm, el, hydrating) {
- vm.$el = el;
- if (!vm.$options.render) {
-
- vm.$options.render = createEmptyVNode;
- {
-
- if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
- vm.$options.el ||
- el) {
- warn$2('You are using the runtime-only build of Vue where the template ' +
- 'compiler is not available. Either pre-compile the templates into ' +
- 'render functions, or use the compiler-included build.', vm);
- }
- else {
- warn$2('Failed to mount component: template or render function not defined.', vm);
- }
- }
- }
- callHook$1(vm, 'beforeMount');
- let updateComponent;
-
- if (config.performance && mark) {
- updateComponent = () => {
- const name = vm._name;
- const id = vm._uid;
- const startTag = `vue-perf-start:${id}`;
- const endTag = `vue-perf-end:${id}`;
- mark(startTag);
- const vnode = vm._render();
- mark(endTag);
- measure(`vue ${name} render`, startTag, endTag);
- mark(startTag);
- vm._update(vnode, hydrating);
- mark(endTag);
- measure(`vue ${name} patch`, startTag, endTag);
- };
- }
- else {
- updateComponent = () => {
- vm._update(vm._render(), hydrating);
- };
- }
- const watcherOptions = {
- before() {
- if (vm._isMounted && !vm._isDestroyed) {
- callHook$1(vm, 'beforeUpdate');
- }
- }
- };
- {
- watcherOptions.onTrack = e => callHook$1(vm, 'renderTracked', [e]);
- watcherOptions.onTrigger = e => callHook$1(vm, 'renderTriggered', [e]);
- }
-
-
-
- new Watcher(vm, updateComponent, noop, watcherOptions, true );
- hydrating = false;
-
- const preWatchers = vm._preWatchers;
- if (preWatchers) {
- for (let i = 0; i < preWatchers.length; i++) {
- preWatchers[i].run();
- }
- }
-
-
- if (vm.$vnode == null) {
- vm._isMounted = true;
- callHook$1(vm, 'mounted');
- }
- return vm;
- }
- function updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) {
- {
- isUpdatingChildComponent = true;
- }
-
-
-
-
-
- const newScopedSlots = parentVnode.data.scopedSlots;
- const oldScopedSlots = vm.$scopedSlots;
- const hasDynamicScopedSlot = !!((newScopedSlots && !newScopedSlots.$stable) ||
- (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||
- (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||
- (!newScopedSlots && vm.$scopedSlots.$key));
-
-
-
- let needsForceUpdate = !!(renderChildren ||
- vm.$options._renderChildren ||
- hasDynamicScopedSlot);
- const prevVNode = vm.$vnode;
- vm.$options._parentVnode = parentVnode;
- vm.$vnode = parentVnode;
- if (vm._vnode) {
-
- vm._vnode.parent = parentVnode;
- }
- vm.$options._renderChildren = renderChildren;
-
-
-
- const attrs = parentVnode.data.attrs || emptyObject;
- if (vm._attrsProxy) {
-
-
- if (syncSetupProxy(vm._attrsProxy, attrs, (prevVNode.data && prevVNode.data.attrs) || emptyObject, vm, '$attrs')) {
- needsForceUpdate = true;
- }
- }
- vm.$attrs = attrs;
-
- listeners = listeners || emptyObject;
- const prevListeners = vm.$options._parentListeners;
- if (vm._listenersProxy) {
- syncSetupProxy(vm._listenersProxy, listeners, prevListeners || emptyObject, vm, '$listeners');
- }
- vm.$listeners = vm.$options._parentListeners = listeners;
- updateComponentListeners(vm, listeners, prevListeners);
-
- if (propsData && vm.$options.props) {
- toggleObserving(false);
- const props = vm._props;
- const propKeys = vm.$options._propKeys || [];
- for (let i = 0; i < propKeys.length; i++) {
- const key = propKeys[i];
- const propOptions = vm.$options.props;
- props[key] = validateProp(key, propOptions, propsData, vm);
- }
- toggleObserving(true);
-
- vm.$options.propsData = propsData;
- }
-
- if (needsForceUpdate) {
- vm.$slots = resolveSlots(renderChildren, parentVnode.context);
- vm.$forceUpdate();
- }
- {
- isUpdatingChildComponent = false;
- }
- }
- function isInInactiveTree(vm) {
- while (vm && (vm = vm.$parent)) {
- if (vm._inactive)
- return true;
- }
- return false;
- }
- function activateChildComponent(vm, direct) {
- if (direct) {
- vm._directInactive = false;
- if (isInInactiveTree(vm)) {
- return;
- }
- }
- else if (vm._directInactive) {
- return;
- }
- if (vm._inactive || vm._inactive === null) {
- vm._inactive = false;
- for (let i = 0; i < vm.$children.length; i++) {
- activateChildComponent(vm.$children[i]);
- }
- callHook$1(vm, 'activated');
- }
- }
- function deactivateChildComponent(vm, direct) {
- if (direct) {
- vm._directInactive = true;
- if (isInInactiveTree(vm)) {
- return;
- }
- }
- if (!vm._inactive) {
- vm._inactive = true;
- for (let i = 0; i < vm.$children.length; i++) {
- deactivateChildComponent(vm.$children[i]);
- }
- callHook$1(vm, 'deactivated');
- }
- }
- function callHook$1(vm, hook, args, setContext = true) {
-
- pushTarget();
- const prevInst = currentInstance;
- const prevScope = getCurrentScope();
- setContext && setCurrentInstance(vm);
- const handlers = vm.$options[hook];
- const info = `${hook} hook`;
- if (handlers) {
- for (let i = 0, j = handlers.length; i < j; i++) {
- invokeWithErrorHandling(handlers[i], vm, args || null, vm, info);
- }
- }
- if (vm._hasHookEvent) {
- vm.$emit('hook:' + hook);
- }
- if (setContext) {
- setCurrentInstance(prevInst);
- prevScope && prevScope.on();
- }
- popTarget();
- }
- const MAX_UPDATE_COUNT = 100;
- const queue = [];
- const activatedChildren = [];
- let has = {};
- let circular = {};
- let waiting = false;
- let flushing = false;
- let index$1 = 0;
- function resetSchedulerState() {
- index$1 = queue.length = activatedChildren.length = 0;
- has = {};
- {
- circular = {};
- }
- waiting = flushing = false;
- }
- let currentFlushTimestamp = 0;
- let getNow = Date.now;
- if (inBrowser && !isIE) {
- const performance = window.performance;
- if (performance &&
- typeof performance.now === 'function' &&
- getNow() > document.createEvent('Event').timeStamp) {
-
-
-
-
- getNow = () => performance.now();
- }
- }
- const sortCompareFn = (a, b) => {
- if (a.post) {
- if (!b.post)
- return 1;
- }
- else if (b.post) {
- return -1;
- }
- return a.id - b.id;
- };
- function flushSchedulerQueue() {
- currentFlushTimestamp = getNow();
- flushing = true;
- let watcher, id;
-
-
-
-
-
-
-
-
- queue.sort(sortCompareFn);
-
-
- for (index$1 = 0; index$1 < queue.length; index$1++) {
- watcher = queue[index$1];
- if (watcher.before) {
- watcher.before();
- }
- id = watcher.id;
- has[id] = null;
- watcher.run();
-
- if (has[id] != null) {
- circular[id] = (circular[id] || 0) + 1;
- if (circular[id] > MAX_UPDATE_COUNT) {
- warn$2('You may have an infinite update loop ' +
- (watcher.user
- ? `in watcher with expression "${watcher.expression}"`
- : `in a component render function.`), watcher.vm);
- break;
- }
- }
- }
-
- const activatedQueue = activatedChildren.slice();
- const updatedQueue = queue.slice();
- resetSchedulerState();
-
- callActivatedHooks(activatedQueue);
- callUpdatedHooks(updatedQueue);
- cleanupDeps();
-
-
- if (devtools && config.devtools) {
- devtools.emit('flush');
- }
- }
- function callUpdatedHooks(queue) {
- let i = queue.length;
- while (i--) {
- const watcher = queue[i];
- const vm = watcher.vm;
- if (vm && vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
- callHook$1(vm, 'updated');
- }
- }
- }
- function queueActivatedComponent(vm) {
-
-
- vm._inactive = false;
- activatedChildren.push(vm);
- }
- function callActivatedHooks(queue) {
- for (let i = 0; i < queue.length; i++) {
- queue[i]._inactive = true;
- activateChildComponent(queue[i], true );
- }
- }
- function queueWatcher(watcher) {
- const id = watcher.id;
- if (has[id] != null) {
- return;
- }
- if (watcher === Dep.target && watcher.noRecurse) {
- return;
- }
- has[id] = true;
- if (!flushing) {
- queue.push(watcher);
- }
- else {
-
-
- let i = queue.length - 1;
- while (i > index$1 && queue[i].id > watcher.id) {
- i--;
- }
- queue.splice(i + 1, 0, watcher);
- }
-
- if (!waiting) {
- waiting = true;
- if (!config.async) {
- flushSchedulerQueue();
- return;
- }
- nextTick(flushSchedulerQueue);
- }
- }
- const WATCHER = `watcher`;
- const WATCHER_CB = `${WATCHER} callback`;
- const WATCHER_GETTER = `${WATCHER} getter`;
- const WATCHER_CLEANUP = `${WATCHER} cleanup`;
- function watchEffect(effect, options) {
- return doWatch(effect, null, options);
- }
- function watchPostEffect(effect, options) {
- return doWatch(effect, null, (Object.assign(Object.assign({}, options), { flush: 'post' }) ));
- }
- function watchSyncEffect(effect, options) {
- return doWatch(effect, null, (Object.assign(Object.assign({}, options), { flush: 'sync' }) ));
- }
- const INITIAL_WATCHER_VALUE = {};
- function watch(source, cb, options) {
- if (typeof cb !== 'function') {
- warn$2(`\`watch(fn, options?)\` signature has been moved to a separate API. ` +
- `Use \`watchEffect(fn, options?)\` instead. \`watch\` now only ` +
- `supports \`watch(source, cb, options?) signature.`);
- }
- return doWatch(source, cb, options);
- }
- function doWatch(source, cb, { immediate, deep, flush = 'pre', onTrack, onTrigger } = emptyObject) {
- if (!cb) {
- if (immediate !== undefined) {
- warn$2(`watch() "immediate" option is only respected when using the ` +
- `watch(source, callback, options?) signature.`);
- }
- if (deep !== undefined) {
- warn$2(`watch() "deep" option is only respected when using the ` +
- `watch(source, callback, options?) signature.`);
- }
- }
- const warnInvalidSource = (s) => {
- warn$2(`Invalid watch source: ${s}. A watch source can only be a getter/effect ` +
- `function, a ref, a reactive object, or an array of these types.`);
- };
- const instance = currentInstance;
- const call = (fn, type, args = null) => {
- const res = invokeWithErrorHandling(fn, null, args, instance, type);
- if (deep && res && res.__ob__)
- res.__ob__.dep.depend();
- return res;
- };
- let getter;
- let forceTrigger = false;
- let isMultiSource = false;
- if (isRef(source)) {
- getter = () => source.value;
- forceTrigger = isShallow(source);
- }
- else if (isReactive(source)) {
- getter = () => {
- source.__ob__.dep.depend();
- return source;
- };
- deep = true;
- }
- else if (isArray(source)) {
- isMultiSource = true;
- forceTrigger = source.some(s => isReactive(s) || isShallow(s));
- getter = () => source.map(s => {
- if (isRef(s)) {
- return s.value;
- }
- else if (isReactive(s)) {
- s.__ob__.dep.depend();
- return traverse(s);
- }
- else if (isFunction(s)) {
- return call(s, WATCHER_GETTER);
- }
- else {
- warnInvalidSource(s);
- }
- });
- }
- else if (isFunction(source)) {
- if (cb) {
-
- getter = () => call(source, WATCHER_GETTER);
- }
- else {
-
- getter = () => {
- if (instance && instance._isDestroyed) {
- return;
- }
- if (cleanup) {
- cleanup();
- }
- return call(source, WATCHER, [onCleanup]);
- };
- }
- }
- else {
- getter = noop;
- warnInvalidSource(source);
- }
- if (cb && deep) {
- const baseGetter = getter;
- getter = () => traverse(baseGetter());
- }
- let cleanup;
- let onCleanup = (fn) => {
- cleanup = watcher.onStop = () => {
- call(fn, WATCHER_CLEANUP);
- };
- };
-
-
- if (isServerRendering()) {
-
- onCleanup = noop;
- if (!cb) {
- getter();
- }
- else if (immediate) {
- call(cb, WATCHER_CB, [
- getter(),
- isMultiSource ? [] : undefined,
- onCleanup
- ]);
- }
- return noop;
- }
- const watcher = new Watcher(currentInstance, getter, noop, {
- lazy: true
- });
- watcher.noRecurse = !cb;
- let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;
-
- watcher.run = () => {
- if (!watcher.active) {
- return;
- }
- if (cb) {
-
- const newValue = watcher.get();
- if (deep ||
- forceTrigger ||
- (isMultiSource
- ? newValue.some((v, i) => hasChanged(v, oldValue[i]))
- : hasChanged(newValue, oldValue))) {
-
- if (cleanup) {
- cleanup();
- }
- call(cb, WATCHER_CB, [
- newValue,
-
- oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,
- onCleanup
- ]);
- oldValue = newValue;
- }
- }
- else {
-
- watcher.get();
- }
- };
- if (flush === 'sync') {
- watcher.update = watcher.run;
- }
- else if (flush === 'post') {
- watcher.post = true;
- watcher.update = () => queueWatcher(watcher);
- }
- else {
-
- watcher.update = () => {
- if (instance && instance === currentInstance && !instance._isMounted) {
-
- const buffer = instance._preWatchers || (instance._preWatchers = []);
- if (buffer.indexOf(watcher) < 0)
- buffer.push(watcher);
- }
- else {
- queueWatcher(watcher);
- }
- };
- }
- {
- watcher.onTrack = onTrack;
- watcher.onTrigger = onTrigger;
- }
-
- if (cb) {
- if (immediate) {
- watcher.run();
- }
- else {
- oldValue = watcher.get();
- }
- }
- else if (flush === 'post' && instance) {
- instance.$once('hook:mounted', () => watcher.get());
- }
- else {
- watcher.get();
- }
- return () => {
- watcher.teardown();
- };
- }
- function provide(key, value) {
- if (!currentInstance) {
- {
- warn$2(`provide() can only be used inside setup().`);
- }
- }
- else {
-
- resolveProvided(currentInstance)[key] = value;
- }
- }
- function resolveProvided(vm) {
-
-
-
-
-
- const existing = vm._provided;
- const parentProvides = vm.$parent && vm.$parent._provided;
- if (parentProvides === existing) {
- return (vm._provided = Object.create(parentProvides));
- }
- else {
- return existing;
- }
- }
- function inject(key, defaultValue, treatDefaultAsFactory = false) {
-
-
- const instance = currentInstance;
- if (instance) {
-
-
-
- const provides = instance.$parent && instance.$parent._provided;
- if (provides && key in provides) {
-
- return provides[key];
- }
- else if (arguments.length > 1) {
- return treatDefaultAsFactory && isFunction(defaultValue)
- ? defaultValue.call(instance)
- : defaultValue;
- }
- else {
- warn$2(`injection "${String(key)}" not found.`);
- }
- }
- else {
- warn$2(`inject() can only be used inside setup() or functional components.`);
- }
- }
- function h(type, props, children) {
- if (!currentInstance) {
- warn$2(`globally imported h() can only be invoked when there is an active ` +
- `component instance, e.g. synchronously in a component's render or setup function.`);
- }
- return createElement$1(currentInstance, type, props, children, 2, true);
- }
- function handleError(err, vm, info) {
-
-
- pushTarget();
- try {
- if (vm) {
- let cur = vm;
- while ((cur = cur.$parent)) {
- const hooks = cur.$options.errorCaptured;
- if (hooks) {
- for (let i = 0; i < hooks.length; i++) {
- try {
- const capture = hooks[i].call(cur, err, vm, info) === false;
- if (capture)
- return;
- }
- catch (e) {
- globalHandleError(e, cur, 'errorCaptured hook');
- }
- }
- }
- }
- }
- globalHandleError(err, vm, info);
- }
- finally {
- popTarget();
- }
- }
- function invokeWithErrorHandling(handler, context, args, vm, info) {
- let res;
- try {
- res = args ? handler.apply(context, args) : handler.call(context);
- if (res && !res._isVue && isPromise(res) && !res._handled) {
- res.catch(e => handleError(e, vm, info + ` (Promise/async)`));
- res._handled = true;
- }
- }
- catch (e) {
- handleError(e, vm, info);
- }
- return res;
- }
- function globalHandleError(err, vm, info) {
- if (config.errorHandler) {
- try {
- return config.errorHandler.call(null, err, vm, info);
- }
- catch (e) {
-
-
- if (e !== err) {
- logError(e, null, 'config.errorHandler');
- }
- }
- }
- logError(err, vm, info);
- }
- function logError(err, vm, info) {
- {
- warn$2(`Error in ${info}: "${err.toString()}"`, vm);
- }
-
- if (inBrowser && typeof console !== 'undefined') {
- console.error(err);
- }
- else {
- throw err;
- }
- }
- let isUsingMicroTask = false;
- const callbacks = [];
- let pending = false;
- function flushCallbacks() {
- pending = false;
- const copies = callbacks.slice(0);
- callbacks.length = 0;
- for (let i = 0; i < copies.length; i++) {
- copies[i]();
- }
- }
- let timerFunc;
- if (typeof Promise !== 'undefined' && isNative(Promise)) {
- const p = Promise.resolve();
- timerFunc = () => {
- p.then(flushCallbacks);
-
-
-
-
-
- if (isIOS)
- setTimeout(noop);
- };
- isUsingMicroTask = true;
- }
- else if (!isIE &&
- typeof MutationObserver !== 'undefined' &&
- (isNative(MutationObserver) ||
-
- MutationObserver.toString() === '[object MutationObserverConstructor]')) {
-
-
-
- let counter = 1;
- const observer = new MutationObserver(flushCallbacks);
- const textNode = document.createTextNode(String(counter));
- observer.observe(textNode, {
- characterData: true
- });
- timerFunc = () => {
- counter = (counter + 1) % 2;
- textNode.data = String(counter);
- };
- isUsingMicroTask = true;
- }
- else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
-
-
-
- timerFunc = () => {
- setImmediate(flushCallbacks);
- };
- }
- else {
-
- timerFunc = () => {
- setTimeout(flushCallbacks, 0);
- };
- }
- function nextTick(cb, ctx) {
- let _resolve;
- callbacks.push(() => {
- if (cb) {
- try {
- cb.call(ctx);
- }
- catch (e) {
- handleError(e, ctx, 'nextTick');
- }
- }
- else if (_resolve) {
- _resolve(ctx);
- }
- });
- if (!pending) {
- pending = true;
- timerFunc();
- }
-
- if (!cb && typeof Promise !== 'undefined') {
- return new Promise(resolve => {
- _resolve = resolve;
- });
- }
- }
- function useCssModule(name = '$style') {
-
- {
- {
- warn$2(`useCssModule() is not supported in the global build.`);
- }
- return emptyObject;
- }
- }
- function useCssVars(getter) {
- if (!inBrowser && !false)
- return;
- const instance = currentInstance;
- if (!instance) {
- warn$2(`useCssVars is called without current active component instance.`);
- return;
- }
- watchPostEffect(() => {
- const el = instance.$el;
- const vars = getter(instance, instance._setupProxy);
- if (el && el.nodeType === 1) {
- const style = el.style;
- for (const key in vars) {
- style.setProperty(`--${key}`, vars[key]);
- }
- }
- });
- }
- function defineAsyncComponent(source) {
- if (isFunction(source)) {
- source = { loader: source };
- }
- const { loader, loadingComponent, errorComponent, delay = 200, timeout,
- suspensible = false,
- onError: userOnError } = source;
- if (suspensible) {
- warn$2(`The suspensible option for async components is not supported in Vue2. It is ignored.`);
- }
- let pendingRequest = null;
- let retries = 0;
- const retry = () => {
- retries++;
- pendingRequest = null;
- return load();
- };
- const load = () => {
- let thisRequest;
- return (pendingRequest ||
- (thisRequest = pendingRequest =
- loader()
- .catch(err => {
- err = err instanceof Error ? err : new Error(String(err));
- if (userOnError) {
- return new Promise((resolve, reject) => {
- const userRetry = () => resolve(retry());
- const userFail = () => reject(err);
- userOnError(err, userRetry, userFail, retries + 1);
- });
- }
- else {
- throw err;
- }
- })
- .then((comp) => {
- if (thisRequest !== pendingRequest && pendingRequest) {
- return pendingRequest;
- }
- if (!comp) {
- warn$2(`Async component loader resolved to undefined. ` +
- `If you are using retry(), make sure to return its return value.`);
- }
-
- if (comp &&
- (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {
- comp = comp.default;
- }
- if (comp && !isObject(comp) && !isFunction(comp)) {
- throw new Error(`Invalid async component load result: ${comp}`);
- }
- return comp;
- })));
- };
- return () => {
- const component = load();
- return {
- component,
- delay,
- timeout,
- error: errorComponent,
- loading: loadingComponent
- };
- };
- }
- function createLifeCycle(hookName) {
- return (fn, target = currentInstance) => {
- if (!target) {
- warn$2(`${formatName(hookName)} is called when there is no active component instance to be ` +
- `associated with. ` +
- `Lifecycle injection APIs can only be used during execution of setup().`);
- return;
- }
- return injectHook(target, hookName, fn);
- };
- }
- function formatName(name) {
- if (name === 'beforeDestroy') {
- name = 'beforeUnmount';
- }
- else if (name === 'destroyed') {
- name = 'unmounted';
- }
- return `on${name[0].toUpperCase() + name.slice(1)}`;
- }
- function injectHook(instance, hookName, fn) {
- const options = instance.$options;
- options[hookName] = mergeLifecycleHook(options[hookName], fn);
- }
- const onBeforeMount = createLifeCycle('beforeMount');
- const onMounted = createLifeCycle('mounted');
- const onBeforeUpdate = createLifeCycle('beforeUpdate');
- const onUpdated = createLifeCycle('updated');
- const onBeforeUnmount = createLifeCycle('beforeDestroy');
- const onUnmounted = createLifeCycle('destroyed');
- const onActivated = createLifeCycle('activated');
- const onDeactivated = createLifeCycle('deactivated');
- const onServerPrefetch = createLifeCycle('serverPrefetch');
- const onRenderTracked = createLifeCycle('renderTracked');
- const onRenderTriggered = createLifeCycle('renderTriggered');
- const injectErrorCapturedHook = createLifeCycle('errorCaptured');
- function onErrorCaptured(hook, target = currentInstance) {
- injectErrorCapturedHook(hook, target);
- }
- const version = '2.7.16';
- function defineComponent(options) {
- return options;
- }
- const seenObjects = new _Set();
- function traverse(val) {
- _traverse(val, seenObjects);
- seenObjects.clear();
- return val;
- }
- function _traverse(val, seen) {
- let i, keys;
- const isA = isArray(val);
- if ((!isA && !isObject(val)) ||
- val.__v_skip ||
- Object.isFrozen(val) ||
- val instanceof VNode) {
- return;
- }
- if (val.__ob__) {
- const depId = val.__ob__.dep.id;
- if (seen.has(depId)) {
- return;
- }
- seen.add(depId);
- }
- if (isA) {
- i = val.length;
- while (i--)
- _traverse(val[i], seen);
- }
- else if (isRef(val)) {
- _traverse(val.value, seen);
- }
- else {
- keys = Object.keys(val);
- i = keys.length;
- while (i--)
- _traverse(val[keys[i]], seen);
- }
- }
- let uid$1 = 0;
- class Watcher {
- constructor(vm, expOrFn, cb, options, isRenderWatcher) {
- recordEffectScope(this,
-
-
- activeEffectScope && !activeEffectScope._vm
- ? activeEffectScope
- : vm
- ? vm._scope
- : undefined);
- if ((this.vm = vm) && isRenderWatcher) {
- vm._watcher = this;
- }
-
- if (options) {
- this.deep = !!options.deep;
- this.user = !!options.user;
- this.lazy = !!options.lazy;
- this.sync = !!options.sync;
- this.before = options.before;
- {
- this.onTrack = options.onTrack;
- this.onTrigger = options.onTrigger;
- }
- }
- else {
- this.deep = this.user = this.lazy = this.sync = false;
- }
- this.cb = cb;
- this.id = ++uid$1;
- this.active = true;
- this.post = false;
- this.dirty = this.lazy;
- this.deps = [];
- this.newDeps = [];
- this.depIds = new _Set();
- this.newDepIds = new _Set();
- this.expression = expOrFn.toString() ;
-
- if (isFunction(expOrFn)) {
- this.getter = expOrFn;
- }
- else {
- this.getter = parsePath(expOrFn);
- if (!this.getter) {
- this.getter = noop;
- warn$2(`Failed watching path: "${expOrFn}" ` +
- 'Watcher only accepts simple dot-delimited paths. ' +
- 'For full control, use a function instead.', vm);
- }
- }
- this.value = this.lazy ? undefined : this.get();
- }
-
- get() {
- pushTarget(this);
- let value;
- const vm = this.vm;
- try {
- value = this.getter.call(vm, vm);
- }
- catch (e) {
- if (this.user) {
- handleError(e, vm, `getter for watcher "${this.expression}"`);
- }
- else {
- throw e;
- }
- }
- finally {
-
-
- if (this.deep) {
- traverse(value);
- }
- popTarget();
- this.cleanupDeps();
- }
- return value;
- }
-
- addDep(dep) {
- const id = dep.id;
- if (!this.newDepIds.has(id)) {
- this.newDepIds.add(id);
- this.newDeps.push(dep);
- if (!this.depIds.has(id)) {
- dep.addSub(this);
- }
- }
- }
-
- cleanupDeps() {
- let i = this.deps.length;
- while (i--) {
- const dep = this.deps[i];
- if (!this.newDepIds.has(dep.id)) {
- dep.removeSub(this);
- }
- }
- let tmp = this.depIds;
- this.depIds = this.newDepIds;
- this.newDepIds = tmp;
- this.newDepIds.clear();
- tmp = this.deps;
- this.deps = this.newDeps;
- this.newDeps = tmp;
- this.newDeps.length = 0;
- }
-
- update() {
-
- if (this.lazy) {
- this.dirty = true;
- }
- else if (this.sync) {
- this.run();
- }
- else {
- queueWatcher(this);
- }
- }
-
- run() {
- if (this.active) {
- const value = this.get();
- if (value !== this.value ||
-
-
-
- isObject(value) ||
- this.deep) {
-
- const oldValue = this.value;
- this.value = value;
- if (this.user) {
- const info = `callback for watcher "${this.expression}"`;
- invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);
- }
- else {
- this.cb.call(this.vm, value, oldValue);
- }
- }
- }
- }
-
- evaluate() {
- this.value = this.get();
- this.dirty = false;
- }
-
- depend() {
- let i = this.deps.length;
- while (i--) {
- this.deps[i].depend();
- }
- }
-
- teardown() {
- if (this.vm && !this.vm._isBeingDestroyed) {
- remove$2(this.vm._scope.effects, this);
- }
- if (this.active) {
- let i = this.deps.length;
- while (i--) {
- this.deps[i].removeSub(this);
- }
- this.active = false;
- if (this.onStop) {
- this.onStop();
- }
- }
- }
- }
- const sharedPropertyDefinition = {
- enumerable: true,
- configurable: true,
- get: noop,
- set: noop
- };
- function proxy(target, sourceKey, key) {
- sharedPropertyDefinition.get = function proxyGetter() {
- return this[sourceKey][key];
- };
- sharedPropertyDefinition.set = function proxySetter(val) {
- this[sourceKey][key] = val;
- };
- Object.defineProperty(target, key, sharedPropertyDefinition);
- }
- function initState(vm) {
- const opts = vm.$options;
- if (opts.props)
- initProps$1(vm, opts.props);
-
- initSetup(vm);
- if (opts.methods)
- initMethods(vm, opts.methods);
- if (opts.data) {
- initData(vm);
- }
- else {
- const ob = observe((vm._data = {}));
- ob && ob.vmCount++;
- }
- if (opts.computed)
- initComputed$1(vm, opts.computed);
- if (opts.watch && opts.watch !== nativeWatch) {
- initWatch(vm, opts.watch);
- }
- }
- function initProps$1(vm, propsOptions) {
- const propsData = vm.$options.propsData || {};
- const props = (vm._props = shallowReactive({}));
-
-
- const keys = (vm.$options._propKeys = []);
- const isRoot = !vm.$parent;
-
- if (!isRoot) {
- toggleObserving(false);
- }
- for (const key in propsOptions) {
- keys.push(key);
- const value = validateProp(key, propsOptions, propsData, vm);
-
- {
- const hyphenatedKey = hyphenate(key);
- if (isReservedAttribute(hyphenatedKey) ||
- config.isReservedAttr(hyphenatedKey)) {
- warn$2(`"${hyphenatedKey}" is a reserved attribute and cannot be used as component prop.`, vm);
- }
- defineReactive(props, key, value, () => {
- if (!isRoot && !isUpdatingChildComponent) {
- warn$2(`Avoid mutating a prop directly since the value will be ` +
- `overwritten whenever the parent component re-renders. ` +
- `Instead, use a data or computed property based on the prop's ` +
- `value. Prop being mutated: "${key}"`, vm);
- }
- }, true );
- }
-
-
-
- if (!(key in vm)) {
- proxy(vm, `_props`, key);
- }
- }
- toggleObserving(true);
- }
- function initData(vm) {
- let data = vm.$options.data;
- data = vm._data = isFunction(data) ? getData(data, vm) : data || {};
- if (!isPlainObject(data)) {
- data = {};
- warn$2('data functions should return an object:\n' +
- 'https://v2.vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm);
- }
-
- const keys = Object.keys(data);
- const props = vm.$options.props;
- const methods = vm.$options.methods;
- let i = keys.length;
- while (i--) {
- const key = keys[i];
- {
- if (methods && hasOwn(methods, key)) {
- warn$2(`Method "${key}" has already been defined as a data property.`, vm);
- }
- }
- if (props && hasOwn(props, key)) {
- warn$2(`The data property "${key}" is already declared as a prop. ` +
- `Use prop default value instead.`, vm);
- }
- else if (!isReserved(key)) {
- proxy(vm, `_data`, key);
- }
- }
-
- const ob = observe(data);
- ob && ob.vmCount++;
- }
- function getData(data, vm) {
-
- pushTarget();
- try {
- return data.call(vm, vm);
- }
- catch (e) {
- handleError(e, vm, `data()`);
- return {};
- }
- finally {
- popTarget();
- }
- }
- const computedWatcherOptions = { lazy: true };
- function initComputed$1(vm, computed) {
-
- const watchers = (vm._computedWatchers = Object.create(null));
-
- const isSSR = isServerRendering();
- for (const key in computed) {
- const userDef = computed[key];
- const getter = isFunction(userDef) ? userDef : userDef.get;
- if (getter == null) {
- warn$2(`Getter is missing for computed property "${key}".`, vm);
- }
- if (!isSSR) {
-
- watchers[key] = new Watcher(vm, getter || noop, noop, computedWatcherOptions);
- }
-
-
-
- if (!(key in vm)) {
- defineComputed(vm, key, userDef);
- }
- else {
- if (key in vm.$data) {
- warn$2(`The computed property "${key}" is already defined in data.`, vm);
- }
- else if (vm.$options.props && key in vm.$options.props) {
- warn$2(`The computed property "${key}" is already defined as a prop.`, vm);
- }
- else if (vm.$options.methods && key in vm.$options.methods) {
- warn$2(`The computed property "${key}" is already defined as a method.`, vm);
- }
- }
- }
- }
- function defineComputed(target, key, userDef) {
- const shouldCache = !isServerRendering();
- if (isFunction(userDef)) {
- sharedPropertyDefinition.get = shouldCache
- ? createComputedGetter(key)
- : createGetterInvoker(userDef);
- sharedPropertyDefinition.set = noop;
- }
- else {
- sharedPropertyDefinition.get = userDef.get
- ? shouldCache && userDef.cache !== false
- ? createComputedGetter(key)
- : createGetterInvoker(userDef.get)
- : noop;
- sharedPropertyDefinition.set = userDef.set || noop;
- }
- if (sharedPropertyDefinition.set === noop) {
- sharedPropertyDefinition.set = function () {
- warn$2(`Computed property "${key}" was assigned to but it has no setter.`, this);
- };
- }
- Object.defineProperty(target, key, sharedPropertyDefinition);
- }
- function createComputedGetter(key) {
- return function computedGetter() {
- const watcher = this._computedWatchers && this._computedWatchers[key];
- if (watcher) {
- if (watcher.dirty) {
- watcher.evaluate();
- }
- if (Dep.target) {
- if (Dep.target.onTrack) {
- Dep.target.onTrack({
- effect: Dep.target,
- target: this,
- type: "get" ,
- key
- });
- }
- watcher.depend();
- }
- return watcher.value;
- }
- };
- }
- function createGetterInvoker(fn) {
- return function computedGetter() {
- return fn.call(this, this);
- };
- }
- function initMethods(vm, methods) {
- const props = vm.$options.props;
- for (const key in methods) {
- {
- if (typeof methods[key] !== 'function') {
- warn$2(`Method "${key}" has type "${typeof methods[key]}" in the component definition. ` +
- `Did you reference the function correctly?`, vm);
- }
- if (props && hasOwn(props, key)) {
- warn$2(`Method "${key}" has already been defined as a prop.`, vm);
- }
- if (key in vm && isReserved(key)) {
- warn$2(`Method "${key}" conflicts with an existing Vue instance method. ` +
- `Avoid defining component methods that start with _ or $.`);
- }
- }
- vm[key] = typeof methods[key] !== 'function' ? noop : bind$1(methods[key], vm);
- }
- }
- function initWatch(vm, watch) {
- for (const key in watch) {
- const handler = watch[key];
- if (isArray(handler)) {
- for (let i = 0; i < handler.length; i++) {
- createWatcher(vm, key, handler[i]);
- }
- }
- else {
- createWatcher(vm, key, handler);
- }
- }
- }
- function createWatcher(vm, expOrFn, handler, options) {
- if (isPlainObject(handler)) {
- options = handler;
- handler = handler.handler;
- }
- if (typeof handler === 'string') {
- handler = vm[handler];
- }
- return vm.$watch(expOrFn, handler, options);
- }
- function stateMixin(Vue) {
-
-
-
- const dataDef = {};
- dataDef.get = function () {
- return this._data;
- };
- const propsDef = {};
- propsDef.get = function () {
- return this._props;
- };
- {
- dataDef.set = function () {
- warn$2('Avoid replacing instance root $data. ' +
- 'Use nested data properties instead.', this);
- };
- propsDef.set = function () {
- warn$2(`$props is readonly.`, this);
- };
- }
- Object.defineProperty(Vue.prototype, '$data', dataDef);
- Object.defineProperty(Vue.prototype, '$props', propsDef);
- Vue.prototype.$set = set;
- Vue.prototype.$delete = del;
- Vue.prototype.$watch = function (expOrFn, cb, options) {
- const vm = this;
- if (isPlainObject(cb)) {
- return createWatcher(vm, expOrFn, cb, options);
- }
- options = options || {};
- options.user = true;
- const watcher = new Watcher(vm, expOrFn, cb, options);
- if (options.immediate) {
- const info = `callback for immediate watcher "${watcher.expression}"`;
- pushTarget();
- invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);
- popTarget();
- }
- return function unwatchFn() {
- watcher.teardown();
- };
- };
- }
- function initProvide(vm) {
- const provideOption = vm.$options.provide;
- if (provideOption) {
- const provided = isFunction(provideOption)
- ? provideOption.call(vm)
- : provideOption;
- if (!isObject(provided)) {
- return;
- }
- const source = resolveProvided(vm);
-
-
- const keys = hasSymbol ? Reflect.ownKeys(provided) : Object.keys(provided);
- for (let i = 0; i < keys.length; i++) {
- const key = keys[i];
- Object.defineProperty(source, key, Object.getOwnPropertyDescriptor(provided, key));
- }
- }
- }
- function initInjections(vm) {
- const result = resolveInject(vm.$options.inject, vm);
- if (result) {
- toggleObserving(false);
- Object.keys(result).forEach(key => {
-
- {
- defineReactive(vm, key, result[key], () => {
- warn$2(`Avoid mutating an injected value directly since the changes will be ` +
- `overwritten whenever the provided component re-renders. ` +
- `injection being mutated: "${key}"`, vm);
- });
- }
- });
- toggleObserving(true);
- }
- }
- function resolveInject(inject, vm) {
- if (inject) {
-
- const result = Object.create(null);
- const keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject);
- for (let i = 0; i < keys.length; i++) {
- const key = keys[i];
-
- if (key === '__ob__')
- continue;
- const provideKey = inject[key].from;
- if (provideKey in vm._provided) {
- result[key] = vm._provided[provideKey];
- }
- else if ('default' in inject[key]) {
- const provideDefault = inject[key].default;
- result[key] = isFunction(provideDefault)
- ? provideDefault.call(vm)
- : provideDefault;
- }
- else {
- warn$2(`Injection "${key}" not found`, vm);
- }
- }
- return result;
- }
- }
- let uid = 0;
- function initMixin$1(Vue) {
- Vue.prototype._init = function (options) {
- const vm = this;
-
- vm._uid = uid++;
- let startTag, endTag;
-
- if (config.performance && mark) {
- startTag = `vue-perf-start:${vm._uid}`;
- endTag = `vue-perf-end:${vm._uid}`;
- mark(startTag);
- }
-
-
- vm._isVue = true;
-
- vm.__v_skip = true;
-
- vm._scope = new EffectScope(true );
-
-
- vm._scope.parent = undefined;
- vm._scope._vm = true;
-
- if (options && options._isComponent) {
-
-
-
- initInternalComponent(vm, options);
- }
- else {
- vm.$options = mergeOptions(resolveConstructorOptions(vm.constructor), options || {}, vm);
- }
-
- {
- initProxy(vm);
- }
-
- vm._self = vm;
- initLifecycle(vm);
- initEvents(vm);
- initRender(vm);
- callHook$1(vm, 'beforeCreate', undefined, false );
- initInjections(vm);
- initState(vm);
- initProvide(vm);
- callHook$1(vm, 'created');
-
- if (config.performance && mark) {
- vm._name = formatComponentName(vm, false);
- mark(endTag);
- measure(`vue ${vm._name} init`, startTag, endTag);
- }
- if (vm.$options.el) {
- vm.$mount(vm.$options.el);
- }
- };
- }
- function initInternalComponent(vm, options) {
- const opts = (vm.$options = Object.create(vm.constructor.options));
-
- const parentVnode = options._parentVnode;
- opts.parent = options.parent;
- opts._parentVnode = parentVnode;
- const vnodeComponentOptions = parentVnode.componentOptions;
- opts.propsData = vnodeComponentOptions.propsData;
- opts._parentListeners = vnodeComponentOptions.listeners;
- opts._renderChildren = vnodeComponentOptions.children;
- opts._componentTag = vnodeComponentOptions.tag;
- if (options.render) {
- opts.render = options.render;
- opts.staticRenderFns = options.staticRenderFns;
- }
- }
- function resolveConstructorOptions(Ctor) {
- let options = Ctor.options;
- if (Ctor.super) {
- const superOptions = resolveConstructorOptions(Ctor.super);
- const cachedSuperOptions = Ctor.superOptions;
- if (superOptions !== cachedSuperOptions) {
-
-
- Ctor.superOptions = superOptions;
-
- const modifiedOptions = resolveModifiedOptions(Ctor);
-
- if (modifiedOptions) {
- extend(Ctor.extendOptions, modifiedOptions);
- }
- options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
- if (options.name) {
- options.components[options.name] = Ctor;
- }
- }
- }
- return options;
- }
- function resolveModifiedOptions(Ctor) {
- let modified;
- const latest = Ctor.options;
- const sealed = Ctor.sealedOptions;
- for (const key in latest) {
- if (latest[key] !== sealed[key]) {
- if (!modified)
- modified = {};
- modified[key] = latest[key];
- }
- }
- return modified;
- }
- function FunctionalRenderContext(data, props, children, parent, Ctor) {
- const options = Ctor.options;
-
-
- let contextVm;
- if (hasOwn(parent, '_uid')) {
- contextVm = Object.create(parent);
- contextVm._original = parent;
- }
- else {
-
-
-
- contextVm = parent;
-
- parent = parent._original;
- }
- const isCompiled = isTrue(options._compiled);
- const needNormalization = !isCompiled;
- this.data = data;
- this.props = props;
- this.children = children;
- this.parent = parent;
- this.listeners = data.on || emptyObject;
- this.injections = resolveInject(options.inject, parent);
- this.slots = () => {
- if (!this.$slots) {
- normalizeScopedSlots(parent, data.scopedSlots, (this.$slots = resolveSlots(children, parent)));
- }
- return this.$slots;
- };
- Object.defineProperty(this, 'scopedSlots', {
- enumerable: true,
- get() {
- return normalizeScopedSlots(parent, data.scopedSlots, this.slots());
- }
- });
-
- if (isCompiled) {
-
- this.$options = options;
-
- this.$slots = this.slots();
- this.$scopedSlots = normalizeScopedSlots(parent, data.scopedSlots, this.$slots);
- }
- if (options._scopeId) {
- this._c = (a, b, c, d) => {
- const vnode = createElement$1(contextVm, a, b, c, d, needNormalization);
- if (vnode && !isArray(vnode)) {
- vnode.fnScopeId = options._scopeId;
- vnode.fnContext = parent;
- }
- return vnode;
- };
- }
- else {
- this._c = (a, b, c, d) => createElement$1(contextVm, a, b, c, d, needNormalization);
- }
- }
- installRenderHelpers(FunctionalRenderContext.prototype);
- function createFunctionalComponent(Ctor, propsData, data, contextVm, children) {
- const options = Ctor.options;
- const props = {};
- const propOptions = options.props;
- if (isDef(propOptions)) {
- for (const key in propOptions) {
- props[key] = validateProp(key, propOptions, propsData || emptyObject);
- }
- }
- else {
- if (isDef(data.attrs))
- mergeProps(props, data.attrs);
- if (isDef(data.props))
- mergeProps(props, data.props);
- }
- const renderContext = new FunctionalRenderContext(data, props, children, contextVm, Ctor);
- const vnode = options.render.call(null, renderContext._c, renderContext);
- if (vnode instanceof VNode) {
- return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext);
- }
- else if (isArray(vnode)) {
- const vnodes = normalizeChildren(vnode) || [];
- const res = new Array(vnodes.length);
- for (let i = 0; i < vnodes.length; i++) {
- res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
- }
- return res;
- }
- }
- function cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {
-
-
-
- const clone = cloneVNode(vnode);
- clone.fnContext = contextVm;
- clone.fnOptions = options;
- {
- (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext =
- renderContext;
- }
- if (data.slot) {
- (clone.data || (clone.data = {})).slot = data.slot;
- }
- return clone;
- }
- function mergeProps(to, from) {
- for (const key in from) {
- to[camelize(key)] = from[key];
- }
- }
- function getComponentName(options) {
- return options.name || options.__name || options._componentTag;
- }
- const componentVNodeHooks = {
- init(vnode, hydrating) {
- if (vnode.componentInstance &&
- !vnode.componentInstance._isDestroyed &&
- vnode.data.keepAlive) {
-
- const mountedNode = vnode;
- componentVNodeHooks.prepatch(mountedNode, mountedNode);
- }
- else {
- const child = (vnode.componentInstance = createComponentInstanceForVnode(vnode, activeInstance));
- child.$mount(hydrating ? vnode.elm : undefined, hydrating);
- }
- },
- prepatch(oldVnode, vnode) {
- const options = vnode.componentOptions;
- const child = (vnode.componentInstance = oldVnode.componentInstance);
- updateChildComponent(child, options.propsData,
- options.listeners,
- vnode,
- options.children
- );
- },
- insert(vnode) {
- const { context, componentInstance } = vnode;
- if (!componentInstance._isMounted) {
- componentInstance._isMounted = true;
- callHook$1(componentInstance, 'mounted');
- }
- if (vnode.data.keepAlive) {
- if (context._isMounted) {
-
-
-
-
-
- queueActivatedComponent(componentInstance);
- }
- else {
- activateChildComponent(componentInstance, true );
- }
- }
- },
- destroy(vnode) {
- const { componentInstance } = vnode;
- if (!componentInstance._isDestroyed) {
- if (!vnode.data.keepAlive) {
- componentInstance.$destroy();
- }
- else {
- deactivateChildComponent(componentInstance, true );
- }
- }
- }
- };
- const hooksToMerge = Object.keys(componentVNodeHooks);
- function createComponent(Ctor, data, context, children, tag) {
- if (isUndef(Ctor)) {
- return;
- }
- const baseCtor = context.$options._base;
-
- if (isObject(Ctor)) {
- Ctor = baseCtor.extend(Ctor);
- }
-
-
- if (typeof Ctor !== 'function') {
- {
- warn$2(`Invalid Component definition: ${String(Ctor)}`, context);
- }
- return;
- }
-
- let asyncFactory;
-
- if (isUndef(Ctor.cid)) {
- asyncFactory = Ctor;
- Ctor = resolveAsyncComponent(asyncFactory, baseCtor);
- if (Ctor === undefined) {
-
-
-
- return createAsyncPlaceholder(asyncFactory, data, context, children, tag);
- }
- }
- data = data || {};
-
-
- resolveConstructorOptions(Ctor);
-
- if (isDef(data.model)) {
-
- transformModel(Ctor.options, data);
- }
-
-
- const propsData = extractPropsFromVNodeData(data, Ctor, tag);
-
-
- if (isTrue(Ctor.options.functional)) {
- return createFunctionalComponent(Ctor, propsData, data, context, children);
- }
-
-
- const listeners = data.on;
-
-
- data.on = data.nativeOn;
-
- if (isTrue(Ctor.options.abstract)) {
-
-
-
- const slot = data.slot;
- data = {};
- if (slot) {
- data.slot = slot;
- }
- }
-
- installComponentHooks(data);
-
-
- const name = getComponentName(Ctor.options) || tag;
- const vnode = new VNode(
-
- `vue-component-${Ctor.cid}${name ? `-${name}` : ''}`, data, undefined, undefined, undefined, context,
-
- { Ctor, propsData, listeners, tag, children }, asyncFactory);
- return vnode;
- }
- function createComponentInstanceForVnode(
- // we know it's MountedComponentVNode but flow doesn't
- vnode,
- // activeInstance in lifecycle state
- parent) {
- const options = {
- _isComponent: true,
- _parentVnode: vnode,
- parent
- };
-
- const inlineTemplate = vnode.data.inlineTemplate;
- if (isDef(inlineTemplate)) {
- options.render = inlineTemplate.render;
- options.staticRenderFns = inlineTemplate.staticRenderFns;
- }
- return new vnode.componentOptions.Ctor(options);
- }
- function installComponentHooks(data) {
- const hooks = data.hook || (data.hook = {});
- for (let i = 0; i < hooksToMerge.length; i++) {
- const key = hooksToMerge[i];
- const existing = hooks[key];
- const toMerge = componentVNodeHooks[key];
-
- if (existing !== toMerge && !(existing && existing._merged)) {
- hooks[key] = existing ? mergeHook(toMerge, existing) : toMerge;
- }
- }
- }
- function mergeHook(f1, f2) {
- const merged = (a, b) => {
-
- f1(a, b);
- f2(a, b);
- };
- merged._merged = true;
- return merged;
- }
- function transformModel(options, data) {
- const prop = (options.model && options.model.prop) || 'value';
- const event = (options.model && options.model.event) || 'input';
- (data.attrs || (data.attrs = {}))[prop] = data.model.value;
- const on = data.on || (data.on = {});
- const existing = on[event];
- const callback = data.model.callback;
- if (isDef(existing)) {
- if (isArray(existing)
- ? existing.indexOf(callback) === -1
- : existing !== callback) {
- on[event] = [callback].concat(existing);
- }
- }
- else {
- on[event] = callback;
- }
- }
- let warn$2 = noop;
- let tip = noop;
- let generateComponentTrace;
- let formatComponentName;
- {
- const hasConsole = typeof console !== 'undefined';
- const classifyRE = /(?:^|[-_])(\w)/g;
- const classify = str => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');
- warn$2 = (msg, vm = currentInstance) => {
- const trace = vm ? generateComponentTrace(vm) : '';
- if (config.warnHandler) {
- config.warnHandler.call(null, msg, vm, trace);
- }
- else if (hasConsole && !config.silent) {
- console.error(`[Vue warn]: ${msg}${trace}`);
- }
- };
- tip = (msg, vm) => {
- if (hasConsole && !config.silent) {
- console.warn(`[Vue tip]: ${msg}` + (vm ? generateComponentTrace(vm) : ''));
- }
- };
- formatComponentName = (vm, includeFile) => {
- if (vm.$root === vm) {
- return '<Root>';
- }
- const options = isFunction(vm) && vm.cid != null
- ? vm.options
- : vm._isVue
- ? vm.$options || vm.constructor.options
- : vm;
- let name = getComponentName(options);
- const file = options.__file;
- if (!name && file) {
- const match = file.match(/([^/\\]+)\.vue$/);
- name = match && match[1];
- }
- return ((name ? `<${classify(name)}>` : `<Anonymous>`) +
- (file && includeFile !== false ? ` at ${file}` : ''));
- };
- const repeat = (str, n) => {
- let res = '';
- while (n) {
- if (n % 2 === 1)
- res += str;
- if (n > 1)
- str += str;
- n >>= 1;
- }
- return res;
- };
- generateComponentTrace = (vm) => {
- if (vm._isVue && vm.$parent) {
- const tree = [];
- let currentRecursiveSequence = 0;
- while (vm) {
- if (tree.length > 0) {
- const last = tree[tree.length - 1];
- if (last.constructor === vm.constructor) {
- currentRecursiveSequence++;
- vm = vm.$parent;
- continue;
- }
- else if (currentRecursiveSequence > 0) {
- tree[tree.length - 1] = [last, currentRecursiveSequence];
- currentRecursiveSequence = 0;
- }
- }
- tree.push(vm);
- vm = vm.$parent;
- }
- return ('\n\nfound in\n\n' +
- tree
- .map((vm, i) => `${i === 0 ? '---> ' : repeat(' ', 5 + i * 2)}${isArray(vm)
- ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`
- : formatComponentName(vm)}`)
- .join('\n'));
- }
- else {
- return `\n\n(found in ${formatComponentName(vm)})`;
- }
- };
- }
- const strats = config.optionMergeStrategies;
- {
- strats.el = strats.propsData = function (parent, child, vm, key) {
- if (!vm) {
- warn$2(`option "${key}" can only be used during instance ` +
- 'creation with the `new` keyword.');
- }
- return defaultStrat(parent, child);
- };
- }
- function mergeData(to, from, recursive = true) {
- if (!from)
- return to;
- let key, toVal, fromVal;
- const keys = hasSymbol
- ? Reflect.ownKeys(from)
- : Object.keys(from);
- for (let i = 0; i < keys.length; i++) {
- key = keys[i];
-
- if (key === '__ob__')
- continue;
- toVal = to[key];
- fromVal = from[key];
- if (!recursive || !hasOwn(to, key)) {
- set(to, key, fromVal);
- }
- else if (toVal !== fromVal &&
- isPlainObject(toVal) &&
- isPlainObject(fromVal)) {
- mergeData(toVal, fromVal);
- }
- }
- return to;
- }
- function mergeDataOrFn(parentVal, childVal, vm) {
- if (!vm) {
-
- if (!childVal) {
- return parentVal;
- }
- if (!parentVal) {
- return childVal;
- }
-
-
-
-
-
- return function mergedDataFn() {
- return mergeData(isFunction(childVal) ? childVal.call(this, this) : childVal, isFunction(parentVal) ? parentVal.call(this, this) : parentVal);
- };
- }
- else {
- return function mergedInstanceDataFn() {
-
- const instanceData = isFunction(childVal)
- ? childVal.call(vm, vm)
- : childVal;
- const defaultData = isFunction(parentVal)
- ? parentVal.call(vm, vm)
- : parentVal;
- if (instanceData) {
- return mergeData(instanceData, defaultData);
- }
- else {
- return defaultData;
- }
- };
- }
- }
- strats.data = function (parentVal, childVal, vm) {
- if (!vm) {
- if (childVal && typeof childVal !== 'function') {
- warn$2('The "data" option should be a function ' +
- 'that returns a per-instance value in component ' +
- 'definitions.', vm);
- return parentVal;
- }
- return mergeDataOrFn(parentVal, childVal);
- }
- return mergeDataOrFn(parentVal, childVal, vm);
- };
- function mergeLifecycleHook(parentVal, childVal) {
- const res = childVal
- ? parentVal
- ? parentVal.concat(childVal)
- : isArray(childVal)
- ? childVal
- : [childVal]
- : parentVal;
- return res ? dedupeHooks(res) : res;
- }
- function dedupeHooks(hooks) {
- const res = [];
- for (let i = 0; i < hooks.length; i++) {
- if (res.indexOf(hooks[i]) === -1) {
- res.push(hooks[i]);
- }
- }
- return res;
- }
- LIFECYCLE_HOOKS.forEach(hook => {
- strats[hook] = mergeLifecycleHook;
- });
- function mergeAssets(parentVal, childVal, vm, key) {
- const res = Object.create(parentVal || null);
- if (childVal) {
- assertObjectType(key, childVal, vm);
- return extend(res, childVal);
- }
- else {
- return res;
- }
- }
- ASSET_TYPES.forEach(function (type) {
- strats[type + 's'] = mergeAssets;
- });
- strats.watch = function (parentVal, childVal, vm, key) {
-
-
- if (parentVal === nativeWatch)
- parentVal = undefined;
-
- if (childVal === nativeWatch)
- childVal = undefined;
-
- if (!childVal)
- return Object.create(parentVal || null);
- {
- assertObjectType(key, childVal, vm);
- }
- if (!parentVal)
- return childVal;
- const ret = {};
- extend(ret, parentVal);
- for (const key in childVal) {
- let parent = ret[key];
- const child = childVal[key];
- if (parent && !isArray(parent)) {
- parent = [parent];
- }
- ret[key] = parent ? parent.concat(child) : isArray(child) ? child : [child];
- }
- return ret;
- };
- strats.props =
- strats.methods =
- strats.inject =
- strats.computed =
- function (parentVal, childVal, vm, key) {
- if (childVal && true) {
- assertObjectType(key, childVal, vm);
- }
- if (!parentVal)
- return childVal;
- const ret = Object.create(null);
- extend(ret, parentVal);
- if (childVal)
- extend(ret, childVal);
- return ret;
- };
- strats.provide = function (parentVal, childVal) {
- if (!parentVal)
- return childVal;
- return function () {
- const ret = Object.create(null);
- mergeData(ret, isFunction(parentVal) ? parentVal.call(this) : parentVal);
- if (childVal) {
- mergeData(ret, isFunction(childVal) ? childVal.call(this) : childVal, false
- );
- }
- return ret;
- };
- };
- const defaultStrat = function (parentVal, childVal) {
- return childVal === undefined ? parentVal : childVal;
- };
- function checkComponents(options) {
- for (const key in options.components) {
- validateComponentName(key);
- }
- }
- function validateComponentName(name) {
- if (!new RegExp(`^[a-zA-Z][\\-\\.0-9_${unicodeRegExp.source}]*$`).test(name)) {
- warn$2('Invalid component name: "' +
- name +
- '". Component names ' +
- 'should conform to valid custom element name in html5 specification.');
- }
- if (isBuiltInTag(name) || config.isReservedTag(name)) {
- warn$2('Do not use built-in or reserved HTML elements as component ' +
- 'id: ' +
- name);
- }
- }
- function normalizeProps(options, vm) {
- const props = options.props;
- if (!props)
- return;
- const res = {};
- let i, val, name;
- if (isArray(props)) {
- i = props.length;
- while (i--) {
- val = props[i];
- if (typeof val === 'string') {
- name = camelize(val);
- res[name] = { type: null };
- }
- else {
- warn$2('props must be strings when using array syntax.');
- }
- }
- }
- else if (isPlainObject(props)) {
- for (const key in props) {
- val = props[key];
- name = camelize(key);
- res[name] = isPlainObject(val) ? val : { type: val };
- }
- }
- else {
- warn$2(`Invalid value for option "props": expected an Array or an Object, ` +
- `but got ${toRawType(props)}.`, vm);
- }
- options.props = res;
- }
- function normalizeInject(options, vm) {
- const inject = options.inject;
- if (!inject)
- return;
- const normalized = (options.inject = {});
- if (isArray(inject)) {
- for (let i = 0; i < inject.length; i++) {
- normalized[inject[i]] = { from: inject[i] };
- }
- }
- else if (isPlainObject(inject)) {
- for (const key in inject) {
- const val = inject[key];
- normalized[key] = isPlainObject(val)
- ? extend({ from: key }, val)
- : { from: val };
- }
- }
- else {
- warn$2(`Invalid value for option "inject": expected an Array or an Object, ` +
- `but got ${toRawType(inject)}.`, vm);
- }
- }
- function normalizeDirectives$1(options) {
- const dirs = options.directives;
- if (dirs) {
- for (const key in dirs) {
- const def = dirs[key];
- if (isFunction(def)) {
- dirs[key] = { bind: def, update: def };
- }
- }
- }
- }
- function assertObjectType(name, value, vm) {
- if (!isPlainObject(value)) {
- warn$2(`Invalid value for option "${name}": expected an Object, ` +
- `but got ${toRawType(value)}.`, vm);
- }
- }
- function mergeOptions(parent, child, vm) {
- {
- checkComponents(child);
- }
- if (isFunction(child)) {
-
- child = child.options;
- }
- normalizeProps(child, vm);
- normalizeInject(child, vm);
- normalizeDirectives$1(child);
-
-
-
-
- if (!child._base) {
- if (child.extends) {
- parent = mergeOptions(parent, child.extends, vm);
- }
- if (child.mixins) {
- for (let i = 0, l = child.mixins.length; i < l; i++) {
- parent = mergeOptions(parent, child.mixins[i], vm);
- }
- }
- }
- const options = {};
- let key;
- for (key in parent) {
- mergeField(key);
- }
- for (key in child) {
- if (!hasOwn(parent, key)) {
- mergeField(key);
- }
- }
- function mergeField(key) {
- const strat = strats[key] || defaultStrat;
- options[key] = strat(parent[key], child[key], vm, key);
- }
- return options;
- }
- function resolveAsset(options, type, id, warnMissing) {
-
- if (typeof id !== 'string') {
- return;
- }
- const assets = options[type];
-
- if (hasOwn(assets, id))
- return assets[id];
- const camelizedId = camelize(id);
- if (hasOwn(assets, camelizedId))
- return assets[camelizedId];
- const PascalCaseId = capitalize(camelizedId);
- if (hasOwn(assets, PascalCaseId))
- return assets[PascalCaseId];
-
- const res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
- if (warnMissing && !res) {
- warn$2('Failed to resolve ' + type.slice(0, -1) + ': ' + id);
- }
- return res;
- }
- function validateProp(key, propOptions, propsData, vm) {
- const prop = propOptions[key];
- const absent = !hasOwn(propsData, key);
- let value = propsData[key];
-
- const booleanIndex = getTypeIndex(Boolean, prop.type);
- if (booleanIndex > -1) {
- if (absent && !hasOwn(prop, 'default')) {
- value = false;
- }
- else if (value === '' || value === hyphenate(key)) {
-
-
- const stringIndex = getTypeIndex(String, prop.type);
- if (stringIndex < 0 || booleanIndex < stringIndex) {
- value = true;
- }
- }
- }
-
- if (value === undefined) {
- value = getPropDefaultValue(vm, prop, key);
-
-
- const prevShouldObserve = shouldObserve;
- toggleObserving(true);
- observe(value);
- toggleObserving(prevShouldObserve);
- }
- {
- assertProp(prop, key, value, vm, absent);
- }
- return value;
- }
- function getPropDefaultValue(vm, prop, key) {
-
- if (!hasOwn(prop, 'default')) {
- return undefined;
- }
- const def = prop.default;
-
- if (isObject(def)) {
- warn$2('Invalid default value for prop "' +
- key +
- '": ' +
- 'Props with type Object/Array must use a factory function ' +
- 'to return the default value.', vm);
- }
-
-
- if (vm &&
- vm.$options.propsData &&
- vm.$options.propsData[key] === undefined &&
- vm._props[key] !== undefined) {
- return vm._props[key];
- }
-
-
- return isFunction(def) && getType(prop.type) !== 'Function'
- ? def.call(vm)
- : def;
- }
- function assertProp(prop, name, value, vm, absent) {
- if (prop.required && absent) {
- warn$2('Missing required prop: "' + name + '"', vm);
- return;
- }
- if (value == null && !prop.required) {
- return;
- }
- let type = prop.type;
- let valid = !type || type === true;
- const expectedTypes = [];
- if (type) {
- if (!isArray(type)) {
- type = [type];
- }
- for (let i = 0; i < type.length && !valid; i++) {
- const assertedType = assertType(value, type[i], vm);
- expectedTypes.push(assertedType.expectedType || '');
- valid = assertedType.valid;
- }
- }
- const haveExpectedTypes = expectedTypes.some(t => t);
- if (!valid && haveExpectedTypes) {
- warn$2(getInvalidTypeMessage(name, value, expectedTypes), vm);
- return;
- }
- const validator = prop.validator;
- if (validator) {
- if (!validator(value)) {
- warn$2('Invalid prop: custom validator check failed for prop "' + name + '".', vm);
- }
- }
- }
- const simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;
- function assertType(value, type, vm) {
- let valid;
- const expectedType = getType(type);
- if (simpleCheckRE.test(expectedType)) {
- const t = typeof value;
- valid = t === expectedType.toLowerCase();
-
- if (!valid && t === 'object') {
- valid = value instanceof type;
- }
- }
- else if (expectedType === 'Object') {
- valid = isPlainObject(value);
- }
- else if (expectedType === 'Array') {
- valid = isArray(value);
- }
- else {
- try {
- valid = value instanceof type;
- }
- catch (e) {
- warn$2('Invalid prop type: "' + String(type) + '" is not a constructor', vm);
- valid = false;
- }
- }
- return {
- valid,
- expectedType
- };
- }
- const functionTypeCheckRE = /^\s*function (\w+)/;
- function getType(fn) {
- const match = fn && fn.toString().match(functionTypeCheckRE);
- return match ? match[1] : '';
- }
- function isSameType(a, b) {
- return getType(a) === getType(b);
- }
- function getTypeIndex(type, expectedTypes) {
- if (!isArray(expectedTypes)) {
- return isSameType(expectedTypes, type) ? 0 : -1;
- }
- for (let i = 0, len = expectedTypes.length; i < len; i++) {
- if (isSameType(expectedTypes[i], type)) {
- return i;
- }
- }
- return -1;
- }
- function getInvalidTypeMessage(name, value, expectedTypes) {
- let message = `Invalid prop: type check failed for prop "${name}".` +
- ` Expected ${expectedTypes.map(capitalize).join(', ')}`;
- const expectedType = expectedTypes[0];
- const receivedType = toRawType(value);
-
- if (expectedTypes.length === 1 &&
- isExplicable(expectedType) &&
- isExplicable(typeof value) &&
- !isBoolean(expectedType, receivedType)) {
- message += ` with value ${styleValue(value, expectedType)}`;
- }
- message += `, got ${receivedType} `;
-
- if (isExplicable(receivedType)) {
- message += `with value ${styleValue(value, receivedType)}.`;
- }
- return message;
- }
- function styleValue(value, type) {
- if (type === 'String') {
- return `"${value}"`;
- }
- else if (type === 'Number') {
- return `${Number(value)}`;
- }
- else {
- return `${value}`;
- }
- }
- const EXPLICABLE_TYPES = ['string', 'number', 'boolean'];
- function isExplicable(value) {
- return EXPLICABLE_TYPES.some(elem => value.toLowerCase() === elem);
- }
- function isBoolean(...args) {
- return args.some(elem => elem.toLowerCase() === 'boolean');
- }
- function Vue(options) {
- if (!(this instanceof Vue)) {
- warn$2('Vue is a constructor and should be called with the `new` keyword');
- }
- this._init(options);
- }
- initMixin$1(Vue);
- stateMixin(Vue);
- eventsMixin(Vue);
- lifecycleMixin(Vue);
- renderMixin(Vue);
- function initUse(Vue) {
- Vue.use = function (plugin) {
- const installedPlugins = this._installedPlugins || (this._installedPlugins = []);
- if (installedPlugins.indexOf(plugin) > -1) {
- return this;
- }
-
- const args = toArray(arguments, 1);
- args.unshift(this);
- if (isFunction(plugin.install)) {
- plugin.install.apply(plugin, args);
- }
- else if (isFunction(plugin)) {
- plugin.apply(null, args);
- }
- installedPlugins.push(plugin);
- return this;
- };
- }
- function initMixin(Vue) {
- Vue.mixin = function (mixin) {
- this.options = mergeOptions(this.options, mixin);
- return this;
- };
- }
- function initExtend(Vue) {
-
- Vue.cid = 0;
- let cid = 1;
-
- Vue.extend = function (extendOptions) {
- extendOptions = extendOptions || {};
- const Super = this;
- const SuperId = Super.cid;
- const cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
- if (cachedCtors[SuperId]) {
- return cachedCtors[SuperId];
- }
- const name = getComponentName(extendOptions) || getComponentName(Super.options);
- if (name) {
- validateComponentName(name);
- }
- const Sub = function VueComponent(options) {
- this._init(options);
- };
- Sub.prototype = Object.create(Super.prototype);
- Sub.prototype.constructor = Sub;
- Sub.cid = cid++;
- Sub.options = mergeOptions(Super.options, extendOptions);
- Sub['super'] = Super;
-
-
-
- if (Sub.options.props) {
- initProps(Sub);
- }
- if (Sub.options.computed) {
- initComputed(Sub);
- }
-
- Sub.extend = Super.extend;
- Sub.mixin = Super.mixin;
- Sub.use = Super.use;
-
-
- ASSET_TYPES.forEach(function (type) {
- Sub[type] = Super[type];
- });
-
- if (name) {
- Sub.options.components[name] = Sub;
- }
-
-
-
- Sub.superOptions = Super.options;
- Sub.extendOptions = extendOptions;
- Sub.sealedOptions = extend({}, Sub.options);
-
- cachedCtors[SuperId] = Sub;
- return Sub;
- };
- }
- function initProps(Comp) {
- const props = Comp.options.props;
- for (const key in props) {
- proxy(Comp.prototype, `_props`, key);
- }
- }
- function initComputed(Comp) {
- const computed = Comp.options.computed;
- for (const key in computed) {
- defineComputed(Comp.prototype, key, computed[key]);
- }
- }
- function initAssetRegisters(Vue) {
-
- ASSET_TYPES.forEach(type => {
-
- Vue[type] = function (id, definition) {
- if (!definition) {
- return this.options[type + 's'][id];
- }
- else {
-
- if (type === 'component') {
- validateComponentName(id);
- }
- if (type === 'component' && isPlainObject(definition)) {
-
- definition.name = definition.name || id;
- definition = this.options._base.extend(definition);
- }
- if (type === 'directive' && isFunction(definition)) {
- definition = { bind: definition, update: definition };
- }
- this.options[type + 's'][id] = definition;
- return definition;
- }
- };
- });
- }
- function _getComponentName(opts) {
- return opts && (getComponentName(opts.Ctor.options) || opts.tag);
- }
- function matches(pattern, name) {
- if (isArray(pattern)) {
- return pattern.indexOf(name) > -1;
- }
- else if (typeof pattern === 'string') {
- return pattern.split(',').indexOf(name) > -1;
- }
- else if (isRegExp(pattern)) {
- return pattern.test(name);
- }
-
- return false;
- }
- function pruneCache(keepAliveInstance, filter) {
- const { cache, keys, _vnode, $vnode } = keepAliveInstance;
- for (const key in cache) {
- const entry = cache[key];
- if (entry) {
- const name = entry.name;
- if (name && !filter(name)) {
- pruneCacheEntry(cache, key, keys, _vnode);
- }
- }
- }
- $vnode.componentOptions.children = undefined;
- }
- function pruneCacheEntry(cache, key, keys, current) {
- const entry = cache[key];
- if (entry && (!current || entry.tag !== current.tag)) {
-
- entry.componentInstance.$destroy();
- }
- cache[key] = null;
- remove$2(keys, key);
- }
- const patternTypes = [String, RegExp, Array];
- var KeepAlive = {
- name: 'keep-alive',
- abstract: true,
- props: {
- include: patternTypes,
- exclude: patternTypes,
- max: [String, Number]
- },
- methods: {
- cacheVNode() {
- const { cache, keys, vnodeToCache, keyToCache } = this;
- if (vnodeToCache) {
- const { tag, componentInstance, componentOptions } = vnodeToCache;
- cache[keyToCache] = {
- name: _getComponentName(componentOptions),
- tag,
- componentInstance
- };
- keys.push(keyToCache);
-
- if (this.max && keys.length > parseInt(this.max)) {
- pruneCacheEntry(cache, keys[0], keys, this._vnode);
- }
- this.vnodeToCache = null;
- }
- }
- },
- created() {
- this.cache = Object.create(null);
- this.keys = [];
- },
- destroyed() {
- for (const key in this.cache) {
- pruneCacheEntry(this.cache, key, this.keys);
- }
- },
- mounted() {
- this.cacheVNode();
- this.$watch('include', val => {
- pruneCache(this, name => matches(val, name));
- });
- this.$watch('exclude', val => {
- pruneCache(this, name => !matches(val, name));
- });
- },
- updated() {
- this.cacheVNode();
- },
- render() {
- const slot = this.$slots.default;
- const vnode = getFirstComponentChild(slot);
- const componentOptions = vnode && vnode.componentOptions;
- if (componentOptions) {
-
- const name = _getComponentName(componentOptions);
- const { include, exclude } = this;
- if (
-
- (include && (!name || !matches(include, name))) ||
-
- (exclude && name && matches(exclude, name))) {
- return vnode;
- }
- const { cache, keys } = this;
- const key = vnode.key == null
- ?
-
- componentOptions.Ctor.cid +
- (componentOptions.tag ? `::${componentOptions.tag}` : '')
- : vnode.key;
- if (cache[key]) {
- vnode.componentInstance = cache[key].componentInstance;
-
- remove$2(keys, key);
- keys.push(key);
- }
- else {
-
- this.vnodeToCache = vnode;
- this.keyToCache = key;
- }
-
- vnode.data.keepAlive = true;
- }
- return vnode || (slot && slot[0]);
- }
- };
- var builtInComponents = {
- KeepAlive
- };
- function initGlobalAPI(Vue) {
-
- const configDef = {};
- configDef.get = () => config;
- {
- configDef.set = () => {
- warn$2('Do not replace the Vue.config object, set individual fields instead.');
- };
- }
- Object.defineProperty(Vue, 'config', configDef);
-
-
-
- Vue.util = {
- warn: warn$2,
- extend,
- mergeOptions,
- defineReactive
- };
- Vue.set = set;
- Vue.delete = del;
- Vue.nextTick = nextTick;
- // 2.6 explicit observable API
- Vue.observable = (obj) => {
- observe(obj);
- return obj;
- };
- Vue.options = Object.create(null);
- ASSET_TYPES.forEach(type => {
- Vue.options[type + 's'] = Object.create(null);
- });
-
-
- Vue.options._base = Vue;
- extend(Vue.options.components, builtInComponents);
- initUse(Vue);
- initMixin(Vue);
- initExtend(Vue);
- initAssetRegisters(Vue);
- }
- initGlobalAPI(Vue);
- Object.defineProperty(Vue.prototype, '$isServer', {
- get: isServerRendering
- });
- Object.defineProperty(Vue.prototype, '$ssrContext', {
- get() {
-
- return this.$vnode && this.$vnode.ssrContext;
- }
- });
- Object.defineProperty(Vue, 'FunctionalRenderContext', {
- value: FunctionalRenderContext
- });
- Vue.version = version;
- const isReservedAttr = makeMap('style,class');
- const acceptValue = makeMap('input,textarea,option,select,progress');
- const mustUseProp = (tag, type, attr) => {
- return ((attr === 'value' && acceptValue(tag) && type !== 'button') ||
- (attr === 'selected' && tag === 'option') ||
- (attr === 'checked' && tag === 'input') ||
- (attr === 'muted' && tag === 'video'));
- };
- const isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
- const isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');
- const convertEnumeratedValue = (key, value) => {
- return isFalsyAttrValue(value) || value === 'false'
- ? 'false'
- :
- key === 'contenteditable' && isValidContentEditableValue(value)
- ? value
- : 'true';
- };
- const isBooleanAttr = makeMap('allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
- 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
- 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
- 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
- 'required,reversed,scoped,seamless,selected,sortable,' +
- 'truespeed,typemustmatch,visible');
- const xlinkNS = 'http://www.w3.org/1999/xlink';
- const isXlink = (name) => {
- return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink';
- };
- const getXlinkProp = (name) => {
- return isXlink(name) ? name.slice(6, name.length) : '';
- };
- const isFalsyAttrValue = (val) => {
- return val == null || val === false;
- };
- function genClassForVnode(vnode) {
- let data = vnode.data;
- let parentNode = vnode;
- let childNode = vnode;
- while (isDef(childNode.componentInstance)) {
- childNode = childNode.componentInstance._vnode;
- if (childNode && childNode.data) {
- data = mergeClassData(childNode.data, data);
- }
- }
-
- while (isDef((parentNode = parentNode.parent))) {
- if (parentNode && parentNode.data) {
- data = mergeClassData(data, parentNode.data);
- }
- }
- return renderClass(data.staticClass, data.class);
- }
- function mergeClassData(child, parent) {
- return {
- staticClass: concat(child.staticClass, parent.staticClass),
- class: isDef(child.class) ? [child.class, parent.class] : parent.class
- };
- }
- function renderClass(staticClass, dynamicClass) {
- if (isDef(staticClass) || isDef(dynamicClass)) {
- return concat(staticClass, stringifyClass(dynamicClass));
- }
-
- return '';
- }
- function concat(a, b) {
- return a ? (b ? a + ' ' + b : a) : b || '';
- }
- function stringifyClass(value) {
- if (Array.isArray(value)) {
- return stringifyArray(value);
- }
- if (isObject(value)) {
- return stringifyObject(value);
- }
- if (typeof value === 'string') {
- return value;
- }
-
- return '';
- }
- function stringifyArray(value) {
- let res = '';
- let stringified;
- for (let i = 0, l = value.length; i < l; i++) {
- if (isDef((stringified = stringifyClass(value[i]))) && stringified !== '') {
- if (res)
- res += ' ';
- res += stringified;
- }
- }
- return res;
- }
- function stringifyObject(value) {
- let res = '';
- for (const key in value) {
- if (value[key]) {
- if (res)
- res += ' ';
- res += key;
- }
- }
- return res;
- }
- const namespaceMap = {
- svg: 'http://www.w3.org/2000/svg',
- math: 'http://www.w3.org/1998/Math/MathML'
- };
- const isHTMLTag = makeMap('html,body,base,head,link,meta,style,title,' +
- 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
- 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
- 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
- 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
- 'embed,object,param,source,canvas,script,noscript,del,ins,' +
- 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
- 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
- 'output,progress,select,textarea,' +
- 'details,dialog,menu,menuitem,summary,' +
- 'content,element,shadow,template,blockquote,iframe,tfoot');
- const isSVG = makeMap('svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
- 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
- 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true);
- const isPreTag = (tag) => tag === 'pre';
- const isReservedTag = (tag) => {
- return isHTMLTag(tag) || isSVG(tag);
- };
- function getTagNamespace(tag) {
- if (isSVG(tag)) {
- return 'svg';
- }
-
-
- if (tag === 'math') {
- return 'math';
- }
- }
- const unknownElementCache = Object.create(null);
- function isUnknownElement(tag) {
-
- if (!inBrowser) {
- return true;
- }
- if (isReservedTag(tag)) {
- return false;
- }
- tag = tag.toLowerCase();
-
- if (unknownElementCache[tag] != null) {
- return unknownElementCache[tag];
- }
- const el = document.createElement(tag);
- if (tag.indexOf('-') > -1) {
-
- return (unknownElementCache[tag] =
- el.constructor === window.HTMLUnknownElement ||
- el.constructor === window.HTMLElement);
- }
- else {
- return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()));
- }
- }
- const isTextInputType = makeMap('text,number,password,search,email,tel,url');
- function query(el) {
- if (typeof el === 'string') {
- const selected = document.querySelector(el);
- if (!selected) {
- warn$2('Cannot find element: ' + el);
- return document.createElement('div');
- }
- return selected;
- }
- else {
- return el;
- }
- }
- function createElement(tagName, vnode) {
- const elm = document.createElement(tagName);
- if (tagName !== 'select') {
- return elm;
- }
-
- if (vnode.data &&
- vnode.data.attrs &&
- vnode.data.attrs.multiple !== undefined) {
- elm.setAttribute('multiple', 'multiple');
- }
- return elm;
- }
- function createElementNS(namespace, tagName) {
- return document.createElementNS(namespaceMap[namespace], tagName);
- }
- function createTextNode(text) {
- return document.createTextNode(text);
- }
- function createComment(text) {
- return document.createComment(text);
- }
- function insertBefore(parentNode, newNode, referenceNode) {
- parentNode.insertBefore(newNode, referenceNode);
- }
- function removeChild(node, child) {
- node.removeChild(child);
- }
- function appendChild(node, child) {
- node.appendChild(child);
- }
- function parentNode(node) {
- return node.parentNode;
- }
- function nextSibling(node) {
- return node.nextSibling;
- }
- function tagName(node) {
- return node.tagName;
- }
- function setTextContent(node, text) {
- node.textContent = text;
- }
- function setStyleScope(node, scopeId) {
- node.setAttribute(scopeId, '');
- }
- var nodeOps = Object.freeze({
- __proto__: null,
- createElement: createElement,
- createElementNS: createElementNS,
- createTextNode: createTextNode,
- createComment: createComment,
- insertBefore: insertBefore,
- removeChild: removeChild,
- appendChild: appendChild,
- parentNode: parentNode,
- nextSibling: nextSibling,
- tagName: tagName,
- setTextContent: setTextContent,
- setStyleScope: setStyleScope
- });
- var ref = {
- create(_, vnode) {
- registerRef(vnode);
- },
- update(oldVnode, vnode) {
- if (oldVnode.data.ref !== vnode.data.ref) {
- registerRef(oldVnode, true);
- registerRef(vnode);
- }
- },
- destroy(vnode) {
- registerRef(vnode, true);
- }
- };
- function registerRef(vnode, isRemoval) {
- const ref = vnode.data.ref;
- if (!isDef(ref))
- return;
- const vm = vnode.context;
- const refValue = vnode.componentInstance || vnode.elm;
- const value = isRemoval ? null : refValue;
- const $refsValue = isRemoval ? undefined : refValue;
- if (isFunction(ref)) {
- invokeWithErrorHandling(ref, vm, [value], vm, `template ref function`);
- return;
- }
- const isFor = vnode.data.refInFor;
- const _isString = typeof ref === 'string' || typeof ref === 'number';
- const _isRef = isRef(ref);
- const refs = vm.$refs;
- if (_isString || _isRef) {
- if (isFor) {
- const existing = _isString ? refs[ref] : ref.value;
- if (isRemoval) {
- isArray(existing) && remove$2(existing, refValue);
- }
- else {
- if (!isArray(existing)) {
- if (_isString) {
- refs[ref] = [refValue];
- setSetupRef(vm, ref, refs[ref]);
- }
- else {
- ref.value = [refValue];
- }
- }
- else if (!existing.includes(refValue)) {
- existing.push(refValue);
- }
- }
- }
- else if (_isString) {
- if (isRemoval && refs[ref] !== refValue) {
- return;
- }
- refs[ref] = $refsValue;
- setSetupRef(vm, ref, value);
- }
- else if (_isRef) {
- if (isRemoval && ref.value !== refValue) {
- return;
- }
- ref.value = value;
- }
- else {
- warn$2(`Invalid template ref type: ${typeof ref}`);
- }
- }
- }
- function setSetupRef({ _setupState }, key, val) {
- if (_setupState && hasOwn(_setupState, key)) {
- if (isRef(_setupState[key])) {
- _setupState[key].value = val;
- }
- else {
- _setupState[key] = val;
- }
- }
- }
- const emptyNode = new VNode('', {}, []);
- const hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
- function sameVnode(a, b) {
- return (a.key === b.key &&
- a.asyncFactory === b.asyncFactory &&
- ((a.tag === b.tag &&
- a.isComment === b.isComment &&
- isDef(a.data) === isDef(b.data) &&
- sameInputType(a, b)) ||
- (isTrue(a.isAsyncPlaceholder) && isUndef(b.asyncFactory.error))));
- }
- function sameInputType(a, b) {
- if (a.tag !== 'input')
- return true;
- let i;
- const typeA = isDef((i = a.data)) && isDef((i = i.attrs)) && i.type;
- const typeB = isDef((i = b.data)) && isDef((i = i.attrs)) && i.type;
- return typeA === typeB || (isTextInputType(typeA) && isTextInputType(typeB));
- }
- function createKeyToOldIdx(children, beginIdx, endIdx) {
- let i, key;
- const map = {};
- for (i = beginIdx; i <= endIdx; ++i) {
- key = children[i].key;
- if (isDef(key))
- map[key] = i;
- }
- return map;
- }
- function createPatchFunction(backend) {
- let i, j;
- const cbs = {};
- const { modules, nodeOps } = backend;
- for (i = 0; i < hooks.length; ++i) {
- cbs[hooks[i]] = [];
- for (j = 0; j < modules.length; ++j) {
- if (isDef(modules[j][hooks[i]])) {
- cbs[hooks[i]].push(modules[j][hooks[i]]);
- }
- }
- }
- function emptyNodeAt(elm) {
- return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm);
- }
- function createRmCb(childElm, listeners) {
- function remove() {
- if (--remove.listeners === 0) {
- removeNode(childElm);
- }
- }
- remove.listeners = listeners;
- return remove;
- }
- function removeNode(el) {
- const parent = nodeOps.parentNode(el);
-
- if (isDef(parent)) {
- nodeOps.removeChild(parent, el);
- }
- }
- function isUnknownElement(vnode, inVPre) {
- return (!inVPre &&
- !vnode.ns &&
- !(config.ignoredElements.length &&
- config.ignoredElements.some(ignore => {
- return isRegExp(ignore)
- ? ignore.test(vnode.tag)
- : ignore === vnode.tag;
- })) &&
- config.isUnknownElement(vnode.tag));
- }
- let creatingElmInVPre = 0;
- function createElm(vnode, insertedVnodeQueue, parentElm, refElm, nested, ownerArray, index) {
- if (isDef(vnode.elm) && isDef(ownerArray)) {
-
-
-
-
-
- vnode = ownerArray[index] = cloneVNode(vnode);
- }
- vnode.isRootInsert = !nested;
- if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
- return;
- }
- const data = vnode.data;
- const children = vnode.children;
- const tag = vnode.tag;
- if (isDef(tag)) {
- {
- if (data && data.pre) {
- creatingElmInVPre++;
- }
- if (isUnknownElement(vnode, creatingElmInVPre)) {
- warn$2('Unknown custom element: <' +
- tag +
- '> - did you ' +
- 'register the component correctly? For recursive components, ' +
- 'make sure to provide the "name" option.', vnode.context);
- }
- }
- vnode.elm = vnode.ns
- ? nodeOps.createElementNS(vnode.ns, tag)
- : nodeOps.createElement(tag, vnode);
- setScope(vnode);
- createChildren(vnode, children, insertedVnodeQueue);
- if (isDef(data)) {
- invokeCreateHooks(vnode, insertedVnodeQueue);
- }
- insert(parentElm, vnode.elm, refElm);
- if (data && data.pre) {
- creatingElmInVPre--;
- }
- }
- else if (isTrue(vnode.isComment)) {
- vnode.elm = nodeOps.createComment(vnode.text);
- insert(parentElm, vnode.elm, refElm);
- }
- else {
- vnode.elm = nodeOps.createTextNode(vnode.text);
- insert(parentElm, vnode.elm, refElm);
- }
- }
- function createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {
- let i = vnode.data;
- if (isDef(i)) {
- const isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
- if (isDef((i = i.hook)) && isDef((i = i.init))) {
- i(vnode, false );
- }
-
-
-
-
- if (isDef(vnode.componentInstance)) {
- initComponent(vnode, insertedVnodeQueue);
- insert(parentElm, vnode.elm, refElm);
- if (isTrue(isReactivated)) {
- reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
- }
- return true;
- }
- }
- }
- function initComponent(vnode, insertedVnodeQueue) {
- if (isDef(vnode.data.pendingInsert)) {
- insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
- vnode.data.pendingInsert = null;
- }
- vnode.elm = vnode.componentInstance.$el;
- if (isPatchable(vnode)) {
- invokeCreateHooks(vnode, insertedVnodeQueue);
- setScope(vnode);
- }
- else {
-
-
- registerRef(vnode);
-
- insertedVnodeQueue.push(vnode);
- }
- }
- function reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {
- let i;
-
-
-
-
- let innerNode = vnode;
- while (innerNode.componentInstance) {
- innerNode = innerNode.componentInstance._vnode;
- if (isDef((i = innerNode.data)) && isDef((i = i.transition))) {
- for (i = 0; i < cbs.activate.length; ++i) {
- cbs.activate[i](emptyNode, innerNode);
- }
- insertedVnodeQueue.push(innerNode);
- break;
- }
- }
-
-
- insert(parentElm, vnode.elm, refElm);
- }
- function insert(parent, elm, ref) {
- if (isDef(parent)) {
- if (isDef(ref)) {
- if (nodeOps.parentNode(ref) === parent) {
- nodeOps.insertBefore(parent, elm, ref);
- }
- }
- else {
- nodeOps.appendChild(parent, elm);
- }
- }
- }
- function createChildren(vnode, children, insertedVnodeQueue) {
- if (isArray(children)) {
- {
- checkDuplicateKeys(children);
- }
- for (let i = 0; i < children.length; ++i) {
- createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);
- }
- }
- else if (isPrimitive(vnode.text)) {
- nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
- }
- }
- function isPatchable(vnode) {
- while (vnode.componentInstance) {
- vnode = vnode.componentInstance._vnode;
- }
- return isDef(vnode.tag);
- }
- function invokeCreateHooks(vnode, insertedVnodeQueue) {
- for (let i = 0; i < cbs.create.length; ++i) {
- cbs.create[i](emptyNode, vnode);
- }
- i = vnode.data.hook;
- if (isDef(i)) {
- if (isDef(i.create))
- i.create(emptyNode, vnode);
- if (isDef(i.insert))
- insertedVnodeQueue.push(vnode);
- }
- }
-
-
-
- function setScope(vnode) {
- let i;
- if (isDef((i = vnode.fnScopeId))) {
- nodeOps.setStyleScope(vnode.elm, i);
- }
- else {
- let ancestor = vnode;
- while (ancestor) {
- if (isDef((i = ancestor.context)) && isDef((i = i.$options._scopeId))) {
- nodeOps.setStyleScope(vnode.elm, i);
- }
- ancestor = ancestor.parent;
- }
- }
-
- if (isDef((i = activeInstance)) &&
- i !== vnode.context &&
- i !== vnode.fnContext &&
- isDef((i = i.$options._scopeId))) {
- nodeOps.setStyleScope(vnode.elm, i);
- }
- }
- function addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
- for (; startIdx <= endIdx; ++startIdx) {
- createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
- }
- }
- function invokeDestroyHook(vnode) {
- let i, j;
- const data = vnode.data;
- if (isDef(data)) {
- if (isDef((i = data.hook)) && isDef((i = i.destroy)))
- i(vnode);
- for (i = 0; i < cbs.destroy.length; ++i)
- cbs.destroy[i](vnode);
- }
- if (isDef((i = vnode.children))) {
- for (j = 0; j < vnode.children.length; ++j) {
- invokeDestroyHook(vnode.children[j]);
- }
- }
- }
- function removeVnodes(vnodes, startIdx, endIdx) {
- for (; startIdx <= endIdx; ++startIdx) {
- const ch = vnodes[startIdx];
- if (isDef(ch)) {
- if (isDef(ch.tag)) {
- removeAndInvokeRemoveHook(ch);
- invokeDestroyHook(ch);
- }
- else {
-
- removeNode(ch.elm);
- }
- }
- }
- }
- function removeAndInvokeRemoveHook(vnode, rm) {
- if (isDef(rm) || isDef(vnode.data)) {
- let i;
- const listeners = cbs.remove.length + 1;
- if (isDef(rm)) {
-
-
- rm.listeners += listeners;
- }
- else {
-
- rm = createRmCb(vnode.elm, listeners);
- }
-
- if (isDef((i = vnode.componentInstance)) &&
- isDef((i = i._vnode)) &&
- isDef(i.data)) {
- removeAndInvokeRemoveHook(i, rm);
- }
- for (i = 0; i < cbs.remove.length; ++i) {
- cbs.remove[i](vnode, rm);
- }
- if (isDef((i = vnode.data.hook)) && isDef((i = i.remove))) {
- i(vnode, rm);
- }
- else {
- rm();
- }
- }
- else {
- removeNode(vnode.elm);
- }
- }
- function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
- let oldStartIdx = 0;
- let newStartIdx = 0;
- let oldEndIdx = oldCh.length - 1;
- let oldStartVnode = oldCh[0];
- let oldEndVnode = oldCh[oldEndIdx];
- let newEndIdx = newCh.length - 1;
- let newStartVnode = newCh[0];
- let newEndVnode = newCh[newEndIdx];
- let oldKeyToIdx, idxInOld, vnodeToMove, refElm;
-
-
-
- const canMove = !removeOnly;
- {
- checkDuplicateKeys(newCh);
- }
- while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
- if (isUndef(oldStartVnode)) {
- oldStartVnode = oldCh[++oldStartIdx];
- }
- else if (isUndef(oldEndVnode)) {
- oldEndVnode = oldCh[--oldEndIdx];
- }
- else if (sameVnode(oldStartVnode, newStartVnode)) {
- patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
- oldStartVnode = oldCh[++oldStartIdx];
- newStartVnode = newCh[++newStartIdx];
- }
- else if (sameVnode(oldEndVnode, newEndVnode)) {
- patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
- oldEndVnode = oldCh[--oldEndIdx];
- newEndVnode = newCh[--newEndIdx];
- }
- else if (sameVnode(oldStartVnode, newEndVnode)) {
-
- patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
- canMove &&
- nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
- oldStartVnode = oldCh[++oldStartIdx];
- newEndVnode = newCh[--newEndIdx];
- }
- else if (sameVnode(oldEndVnode, newStartVnode)) {
-
- patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
- canMove &&
- nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
- oldEndVnode = oldCh[--oldEndIdx];
- newStartVnode = newCh[++newStartIdx];
- }
- else {
- if (isUndef(oldKeyToIdx))
- oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);
- idxInOld = isDef(newStartVnode.key)
- ? oldKeyToIdx[newStartVnode.key]
- : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
- if (isUndef(idxInOld)) {
-
- createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
- }
- else {
- vnodeToMove = oldCh[idxInOld];
- if (sameVnode(vnodeToMove, newStartVnode)) {
- patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
- oldCh[idxInOld] = undefined;
- canMove &&
- nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
- }
- else {
-
- createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
- }
- }
- newStartVnode = newCh[++newStartIdx];
- }
- }
- if (oldStartIdx > oldEndIdx) {
- refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
- addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
- }
- else if (newStartIdx > newEndIdx) {
- removeVnodes(oldCh, oldStartIdx, oldEndIdx);
- }
- }
- function checkDuplicateKeys(children) {
- const seenKeys = {};
- for (let i = 0; i < children.length; i++) {
- const vnode = children[i];
- const key = vnode.key;
- if (isDef(key)) {
- if (seenKeys[key]) {
- warn$2(`Duplicate keys detected: '${key}'. This may cause an update error.`, vnode.context);
- }
- else {
- seenKeys[key] = true;
- }
- }
- }
- }
- function findIdxInOld(node, oldCh, start, end) {
- for (let i = start; i < end; i++) {
- const c = oldCh[i];
- if (isDef(c) && sameVnode(node, c))
- return i;
- }
- }
- function patchVnode(oldVnode, vnode, insertedVnodeQueue, ownerArray, index, removeOnly) {
- if (oldVnode === vnode) {
- return;
- }
- if (isDef(vnode.elm) && isDef(ownerArray)) {
-
- vnode = ownerArray[index] = cloneVNode(vnode);
- }
- const elm = (vnode.elm = oldVnode.elm);
- if (isTrue(oldVnode.isAsyncPlaceholder)) {
- if (isDef(vnode.asyncFactory.resolved)) {
- hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
- }
- else {
- vnode.isAsyncPlaceholder = true;
- }
- return;
- }
-
-
-
-
- if (isTrue(vnode.isStatic) &&
- isTrue(oldVnode.isStatic) &&
- vnode.key === oldVnode.key &&
- (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))) {
- vnode.componentInstance = oldVnode.componentInstance;
- return;
- }
- let i;
- const data = vnode.data;
- if (isDef(data) && isDef((i = data.hook)) && isDef((i = i.prepatch))) {
- i(oldVnode, vnode);
- }
- const oldCh = oldVnode.children;
- const ch = vnode.children;
- if (isDef(data) && isPatchable(vnode)) {
- for (i = 0; i < cbs.update.length; ++i)
- cbs.update[i](oldVnode, vnode);
- if (isDef((i = data.hook)) && isDef((i = i.update)))
- i(oldVnode, vnode);
- }
- if (isUndef(vnode.text)) {
- if (isDef(oldCh) && isDef(ch)) {
- if (oldCh !== ch)
- updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly);
- }
- else if (isDef(ch)) {
- {
- checkDuplicateKeys(ch);
- }
- if (isDef(oldVnode.text))
- nodeOps.setTextContent(elm, '');
- addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
- }
- else if (isDef(oldCh)) {
- removeVnodes(oldCh, 0, oldCh.length - 1);
- }
- else if (isDef(oldVnode.text)) {
- nodeOps.setTextContent(elm, '');
- }
- }
- else if (oldVnode.text !== vnode.text) {
- nodeOps.setTextContent(elm, vnode.text);
- }
- if (isDef(data)) {
- if (isDef((i = data.hook)) && isDef((i = i.postpatch)))
- i(oldVnode, vnode);
- }
- }
- function invokeInsertHook(vnode, queue, initial) {
-
-
- if (isTrue(initial) && isDef(vnode.parent)) {
- vnode.parent.data.pendingInsert = queue;
- }
- else {
- for (let i = 0; i < queue.length; ++i) {
- queue[i].data.hook.insert(queue[i]);
- }
- }
- }
- let hydrationBailed = false;
-
-
-
-
- const isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');
-
- function hydrate(elm, vnode, insertedVnodeQueue, inVPre) {
- let i;
- const { tag, data, children } = vnode;
- inVPre = inVPre || (data && data.pre);
- vnode.elm = elm;
- if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
- vnode.isAsyncPlaceholder = true;
- return true;
- }
-
- {
- if (!assertNodeMatch(elm, vnode, inVPre)) {
- return false;
- }
- }
- if (isDef(data)) {
- if (isDef((i = data.hook)) && isDef((i = i.init)))
- i(vnode, true );
- if (isDef((i = vnode.componentInstance))) {
-
- initComponent(vnode, insertedVnodeQueue);
- return true;
- }
- }
- if (isDef(tag)) {
- if (isDef(children)) {
-
- if (!elm.hasChildNodes()) {
- createChildren(vnode, children, insertedVnodeQueue);
- }
- else {
-
- if (isDef((i = data)) &&
- isDef((i = i.domProps)) &&
- isDef((i = i.innerHTML))) {
- if (i !== elm.innerHTML) {
-
- if (typeof console !== 'undefined' &&
- !hydrationBailed) {
- hydrationBailed = true;
- console.warn('Parent: ', elm);
- console.warn('server innerHTML: ', i);
- console.warn('client innerHTML: ', elm.innerHTML);
- }
- return false;
- }
- }
- else {
-
- let childrenMatch = true;
- let childNode = elm.firstChild;
- for (let i = 0; i < children.length; i++) {
- if (!childNode ||
- !hydrate(childNode, children[i], insertedVnodeQueue, inVPre)) {
- childrenMatch = false;
- break;
- }
- childNode = childNode.nextSibling;
- }
-
-
- if (!childrenMatch || childNode) {
-
- if (typeof console !== 'undefined' &&
- !hydrationBailed) {
- hydrationBailed = true;
- console.warn('Parent: ', elm);
- console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
- }
- return false;
- }
- }
- }
- }
- if (isDef(data)) {
- let fullInvoke = false;
- for (const key in data) {
- if (!isRenderedModule(key)) {
- fullInvoke = true;
- invokeCreateHooks(vnode, insertedVnodeQueue);
- break;
- }
- }
- if (!fullInvoke && data['class']) {
-
- traverse(data['class']);
- }
- }
- }
- else if (elm.data !== vnode.text) {
- elm.data = vnode.text;
- }
- return true;
- }
- function assertNodeMatch(node, vnode, inVPre) {
- if (isDef(vnode.tag)) {
- return (vnode.tag.indexOf('vue-component') === 0 ||
- (!isUnknownElement(vnode, inVPre) &&
- vnode.tag.toLowerCase() ===
- (node.tagName && node.tagName.toLowerCase())));
- }
- else {
- return node.nodeType === (vnode.isComment ? 8 : 3);
- }
- }
- return function patch(oldVnode, vnode, hydrating, removeOnly) {
- if (isUndef(vnode)) {
- if (isDef(oldVnode))
- invokeDestroyHook(oldVnode);
- return;
- }
- let isInitialPatch = false;
- const insertedVnodeQueue = [];
- if (isUndef(oldVnode)) {
-
- isInitialPatch = true;
- createElm(vnode, insertedVnodeQueue);
- }
- else {
- const isRealElement = isDef(oldVnode.nodeType);
- if (!isRealElement && sameVnode(oldVnode, vnode)) {
-
- patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);
- }
- else {
- if (isRealElement) {
-
-
-
- if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
- oldVnode.removeAttribute(SSR_ATTR);
- hydrating = true;
- }
- if (isTrue(hydrating)) {
- if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
- invokeInsertHook(vnode, insertedVnodeQueue, true);
- return oldVnode;
- }
- else {
- warn$2('The client-side rendered virtual DOM tree is not matching ' +
- 'server-rendered content. This is likely caused by incorrect ' +
- 'HTML markup, for example nesting block-level elements inside ' +
- '<p>, or missing <tbody>. Bailing hydration and performing ' +
- 'full client-side render.');
- }
- }
-
-
- oldVnode = emptyNodeAt(oldVnode);
- }
-
- const oldElm = oldVnode.elm;
- const parentElm = nodeOps.parentNode(oldElm);
-
- createElm(vnode, insertedVnodeQueue,
-
-
-
- oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm));
-
- if (isDef(vnode.parent)) {
- let ancestor = vnode.parent;
- const patchable = isPatchable(vnode);
- while (ancestor) {
- for (let i = 0; i < cbs.destroy.length; ++i) {
- cbs.destroy[i](ancestor);
- }
- ancestor.elm = vnode.elm;
- if (patchable) {
- for (let i = 0; i < cbs.create.length; ++i) {
- cbs.create[i](emptyNode, ancestor);
- }
-
-
-
- const insert = ancestor.data.hook.insert;
- if (insert.merged) {
-
-
-
- const cloned = insert.fns.slice(1);
- for (let i = 0; i < cloned.length; i++) {
- cloned[i]();
- }
- }
- }
- else {
- registerRef(ancestor);
- }
- ancestor = ancestor.parent;
- }
- }
-
- if (isDef(parentElm)) {
- removeVnodes([oldVnode], 0, 0);
- }
- else if (isDef(oldVnode.tag)) {
- invokeDestroyHook(oldVnode);
- }
- }
- }
- invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
- return vnode.elm;
- };
- }
- var directives$1 = {
- create: updateDirectives,
- update: updateDirectives,
- destroy: function unbindDirectives(vnode) {
-
- updateDirectives(vnode, emptyNode);
- }
- };
- function updateDirectives(oldVnode, vnode) {
- if (oldVnode.data.directives || vnode.data.directives) {
- _update(oldVnode, vnode);
- }
- }
- function _update(oldVnode, vnode) {
- const isCreate = oldVnode === emptyNode;
- const isDestroy = vnode === emptyNode;
- const oldDirs = normalizeDirectives(oldVnode.data.directives, oldVnode.context);
- const newDirs = normalizeDirectives(vnode.data.directives, vnode.context);
- const dirsWithInsert = [];
- const dirsWithPostpatch = [];
- let key, oldDir, dir;
- for (key in newDirs) {
- oldDir = oldDirs[key];
- dir = newDirs[key];
- if (!oldDir) {
-
- callHook(dir, 'bind', vnode, oldVnode);
- if (dir.def && dir.def.inserted) {
- dirsWithInsert.push(dir);
- }
- }
- else {
-
- dir.oldValue = oldDir.value;
- dir.oldArg = oldDir.arg;
- callHook(dir, 'update', vnode, oldVnode);
- if (dir.def && dir.def.componentUpdated) {
- dirsWithPostpatch.push(dir);
- }
- }
- }
- if (dirsWithInsert.length) {
- const callInsert = () => {
- for (let i = 0; i < dirsWithInsert.length; i++) {
- callHook(dirsWithInsert[i], 'inserted', vnode, oldVnode);
- }
- };
- if (isCreate) {
- mergeVNodeHook(vnode, 'insert', callInsert);
- }
- else {
- callInsert();
- }
- }
- if (dirsWithPostpatch.length) {
- mergeVNodeHook(vnode, 'postpatch', () => {
- for (let i = 0; i < dirsWithPostpatch.length; i++) {
- callHook(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
- }
- });
- }
- if (!isCreate) {
- for (key in oldDirs) {
- if (!newDirs[key]) {
-
- callHook(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
- }
- }
- }
- }
- const emptyModifiers = Object.create(null);
- function normalizeDirectives(dirs, vm) {
- const res = Object.create(null);
- if (!dirs) {
-
- return res;
- }
- let i, dir;
- for (i = 0; i < dirs.length; i++) {
- dir = dirs[i];
- if (!dir.modifiers) {
-
- dir.modifiers = emptyModifiers;
- }
- res[getRawDirName(dir)] = dir;
- if (vm._setupState && vm._setupState.__sfc) {
- const setupDef = dir.def || resolveAsset(vm, '_setupState', 'v-' + dir.name);
- if (typeof setupDef === 'function') {
- dir.def = {
- bind: setupDef,
- update: setupDef,
- };
- }
- else {
- dir.def = setupDef;
- }
- }
- dir.def = dir.def || resolveAsset(vm.$options, 'directives', dir.name, true);
- }
-
- return res;
- }
- function getRawDirName(dir) {
- return (dir.rawName || `${dir.name}.${Object.keys(dir.modifiers || {}).join('.')}`);
- }
- function callHook(dir, hook, vnode, oldVnode, isDestroy) {
- const fn = dir.def && dir.def[hook];
- if (fn) {
- try {
- fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
- }
- catch (e) {
- handleError(e, vnode.context, `directive ${dir.name} ${hook} hook`);
- }
- }
- }
- var baseModules = [ref, directives$1];
- function updateAttrs(oldVnode, vnode) {
- const opts = vnode.componentOptions;
- if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
- return;
- }
- if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
- return;
- }
- let key, cur, old;
- const elm = vnode.elm;
- const oldAttrs = oldVnode.data.attrs || {};
- let attrs = vnode.data.attrs || {};
-
- if (isDef(attrs.__ob__) || isTrue(attrs._v_attr_proxy)) {
- attrs = vnode.data.attrs = extend({}, attrs);
- }
- for (key in attrs) {
- cur = attrs[key];
- old = oldAttrs[key];
- if (old !== cur) {
- setAttr(elm, key, cur, vnode.data.pre);
- }
- }
-
-
-
- if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
- setAttr(elm, 'value', attrs.value);
- }
- for (key in oldAttrs) {
- if (isUndef(attrs[key])) {
- if (isXlink(key)) {
- elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
- }
- else if (!isEnumeratedAttr(key)) {
- elm.removeAttribute(key);
- }
- }
- }
- }
- function setAttr(el, key, value, isInPre) {
- if (isInPre || el.tagName.indexOf('-') > -1) {
- baseSetAttr(el, key, value);
- }
- else if (isBooleanAttr(key)) {
-
-
- if (isFalsyAttrValue(value)) {
- el.removeAttribute(key);
- }
- else {
-
-
- value = key === 'allowfullscreen' && el.tagName === 'EMBED' ? 'true' : key;
- el.setAttribute(key, value);
- }
- }
- else if (isEnumeratedAttr(key)) {
- el.setAttribute(key, convertEnumeratedValue(key, value));
- }
- else if (isXlink(key)) {
- if (isFalsyAttrValue(value)) {
- el.removeAttributeNS(xlinkNS, getXlinkProp(key));
- }
- else {
- el.setAttributeNS(xlinkNS, key, value);
- }
- }
- else {
- baseSetAttr(el, key, value);
- }
- }
- function baseSetAttr(el, key, value) {
- if (isFalsyAttrValue(value)) {
- el.removeAttribute(key);
- }
- else {
-
-
-
-
- if (isIE &&
- !isIE9 &&
- el.tagName === 'TEXTAREA' &&
- key === 'placeholder' &&
- value !== '' &&
- !el.__ieph) {
- const blocker = e => {
- e.stopImmediatePropagation();
- el.removeEventListener('input', blocker);
- };
- el.addEventListener('input', blocker);
-
- el.__ieph = true;
- }
- el.setAttribute(key, value);
- }
- }
- var attrs = {
- create: updateAttrs,
- update: updateAttrs
- };
- function updateClass(oldVnode, vnode) {
- const el = vnode.elm;
- const data = vnode.data;
- const oldData = oldVnode.data;
- if (isUndef(data.staticClass) &&
- isUndef(data.class) &&
- (isUndef(oldData) ||
- (isUndef(oldData.staticClass) && isUndef(oldData.class)))) {
- return;
- }
- let cls = genClassForVnode(vnode);
-
- const transitionClass = el._transitionClasses;
- if (isDef(transitionClass)) {
- cls = concat(cls, stringifyClass(transitionClass));
- }
-
- if (cls !== el._prevClass) {
- el.setAttribute('class', cls);
- el._prevClass = cls;
- }
- }
- var klass$1 = {
- create: updateClass,
- update: updateClass
- };
- const validDivisionCharRE = /[\w).+\-_$\]]/;
- function parseFilters(exp) {
- let inSingle = false;
- let inDouble = false;
- let inTemplateString = false;
- let inRegex = false;
- let curly = 0;
- let square = 0;
- let paren = 0;
- let lastFilterIndex = 0;
- let c, prev, i, expression, filters;
- for (i = 0; i < exp.length; i++) {
- prev = c;
- c = exp.charCodeAt(i);
- if (inSingle) {
- if (c === 0x27 && prev !== 0x5c)
- inSingle = false;
- }
- else if (inDouble) {
- if (c === 0x22 && prev !== 0x5c)
- inDouble = false;
- }
- else if (inTemplateString) {
- if (c === 0x60 && prev !== 0x5c)
- inTemplateString = false;
- }
- else if (inRegex) {
- if (c === 0x2f && prev !== 0x5c)
- inRegex = false;
- }
- else if (c === 0x7c &&
- exp.charCodeAt(i + 1) !== 0x7c &&
- exp.charCodeAt(i - 1) !== 0x7c &&
- !curly &&
- !square &&
- !paren) {
- if (expression === undefined) {
-
- lastFilterIndex = i + 1;
- expression = exp.slice(0, i).trim();
- }
- else {
- pushFilter();
- }
- }
- else {
- switch (c) {
- case 0x22:
- inDouble = true;
- break;
- case 0x27:
- inSingle = true;
- break;
- case 0x60:
- inTemplateString = true;
- break;
- case 0x28:
- paren++;
- break;
- case 0x29:
- paren--;
- break;
- case 0x5b:
- square++;
- break;
- case 0x5d:
- square--;
- break;
- case 0x7b:
- curly++;
- break;
- case 0x7d:
- curly--;
- break;
- }
- if (c === 0x2f) {
-
- let j = i - 1;
- let p;
-
- for (; j >= 0; j--) {
- p = exp.charAt(j);
- if (p !== ' ')
- break;
- }
- if (!p || !validDivisionCharRE.test(p)) {
- inRegex = true;
- }
- }
- }
- }
- if (expression === undefined) {
- expression = exp.slice(0, i).trim();
- }
- else if (lastFilterIndex !== 0) {
- pushFilter();
- }
- function pushFilter() {
- (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
- lastFilterIndex = i + 1;
- }
- if (filters) {
- for (i = 0; i < filters.length; i++) {
- expression = wrapFilter(expression, filters[i]);
- }
- }
- return expression;
- }
- function wrapFilter(exp, filter) {
- const i = filter.indexOf('(');
- if (i < 0) {
-
- return `_f("${filter}")(${exp})`;
- }
- else {
- const name = filter.slice(0, i);
- const args = filter.slice(i + 1);
- return `_f("${name}")(${exp}${args !== ')' ? ',' + args : args}`;
- }
- }
- function baseWarn(msg, range) {
- console.error(`[Vue compiler]: ${msg}`);
- }
- function pluckModuleFunction(modules, key) {
- return modules ? modules.map(m => m[key]).filter(_ => _) : [];
- }
- function addProp(el, name, value, range, dynamic) {
- (el.props || (el.props = [])).push(rangeSetItem({ name, value, dynamic }, range));
- el.plain = false;
- }
- function addAttr(el, name, value, range, dynamic) {
- const attrs = dynamic
- ? el.dynamicAttrs || (el.dynamicAttrs = [])
- : el.attrs || (el.attrs = []);
- attrs.push(rangeSetItem({ name, value, dynamic }, range));
- el.plain = false;
- }
- function addRawAttr(el, name, value, range) {
- el.attrsMap[name] = value;
- el.attrsList.push(rangeSetItem({ name, value }, range));
- }
- function addDirective(el, name, rawName, value, arg, isDynamicArg, modifiers, range) {
- (el.directives || (el.directives = [])).push(rangeSetItem({
- name,
- rawName,
- value,
- arg,
- isDynamicArg,
- modifiers
- }, range));
- el.plain = false;
- }
- function prependModifierMarker(symbol, name, dynamic) {
- return dynamic ? `_p(${name},"${symbol}")` : symbol + name;
- }
- function addHandler(el, name, value, modifiers, important, warn, range, dynamic) {
- modifiers = modifiers || emptyObject;
-
-
- if (warn && modifiers.prevent && modifiers.passive) {
- warn("passive and prevent can't be used together. " +
- "Passive handler can't prevent default event.", range);
- }
-
-
-
- if (modifiers.right) {
- if (dynamic) {
- name = `(${name})==='click'?'contextmenu':(${name})`;
- }
- else if (name === 'click') {
- name = 'contextmenu';
- delete modifiers.right;
- }
- }
- else if (modifiers.middle) {
- if (dynamic) {
- name = `(${name})==='click'?'mouseup':(${name})`;
- }
- else if (name === 'click') {
- name = 'mouseup';
- }
- }
-
- if (modifiers.capture) {
- delete modifiers.capture;
- name = prependModifierMarker('!', name, dynamic);
- }
- if (modifiers.once) {
- delete modifiers.once;
- name = prependModifierMarker('~', name, dynamic);
- }
-
- if (modifiers.passive) {
- delete modifiers.passive;
- name = prependModifierMarker('&', name, dynamic);
- }
- let events;
- if (modifiers.native) {
- delete modifiers.native;
- events = el.nativeEvents || (el.nativeEvents = {});
- }
- else {
- events = el.events || (el.events = {});
- }
- const newHandler = rangeSetItem({ value: value.trim(), dynamic }, range);
- if (modifiers !== emptyObject) {
- newHandler.modifiers = modifiers;
- }
- const handlers = events[name];
-
- if (Array.isArray(handlers)) {
- important ? handlers.unshift(newHandler) : handlers.push(newHandler);
- }
- else if (handlers) {
- events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
- }
- else {
- events[name] = newHandler;
- }
- el.plain = false;
- }
- function getRawBindingAttr(el, name) {
- return (el.rawAttrsMap[':' + name] ||
- el.rawAttrsMap['v-bind:' + name] ||
- el.rawAttrsMap[name]);
- }
- function getBindingAttr(el, name, getStatic) {
- const dynamicValue = getAndRemoveAttr(el, ':' + name) || getAndRemoveAttr(el, 'v-bind:' + name);
- if (dynamicValue != null) {
- return parseFilters(dynamicValue);
- }
- else if (getStatic !== false) {
- const staticValue = getAndRemoveAttr(el, name);
- if (staticValue != null) {
- return JSON.stringify(staticValue);
- }
- }
- }
- function getAndRemoveAttr(el, name, removeFromMap) {
- let val;
- if ((val = el.attrsMap[name]) != null) {
- const list = el.attrsList;
- for (let i = 0, l = list.length; i < l; i++) {
- if (list[i].name === name) {
- list.splice(i, 1);
- break;
- }
- }
- }
- if (removeFromMap) {
- delete el.attrsMap[name];
- }
- return val;
- }
- function getAndRemoveAttrByRegex(el, name) {
- const list = el.attrsList;
- for (let i = 0, l = list.length; i < l; i++) {
- const attr = list[i];
- if (name.test(attr.name)) {
- list.splice(i, 1);
- return attr;
- }
- }
- }
- function rangeSetItem(item, range) {
- if (range) {
- if (range.start != null) {
- item.start = range.start;
- }
- if (range.end != null) {
- item.end = range.end;
- }
- }
- return item;
- }
- function genComponentModel(el, value, modifiers) {
- const { number, trim } = modifiers || {};
- const baseValueExpression = '$$v';
- let valueExpression = baseValueExpression;
- if (trim) {
- valueExpression =
- `(typeof ${baseValueExpression} === 'string'` +
- `? ${baseValueExpression}.trim()` +
- `: ${baseValueExpression})`;
- }
- if (number) {
- valueExpression = `_n(${valueExpression})`;
- }
- const assignment = genAssignmentCode(value, valueExpression);
- el.model = {
- value: `(${value})`,
- expression: JSON.stringify(value),
- callback: `function (${baseValueExpression}) {${assignment}}`
- };
- }
- function genAssignmentCode(value, assignment) {
- const res = parseModel(value);
- if (res.key === null) {
- return `${value}=${assignment}`;
- }
- else {
- return `$set(${res.exp}, ${res.key}, ${assignment})`;
- }
- }
- let len, str, chr, index, expressionPos, expressionEndPos;
- function parseModel(val) {
-
-
- val = val.trim();
- len = val.length;
- if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
- index = val.lastIndexOf('.');
- if (index > -1) {
- return {
- exp: val.slice(0, index),
- key: '"' + val.slice(index + 1) + '"'
- };
- }
- else {
- return {
- exp: val,
- key: null
- };
- }
- }
- str = val;
- index = expressionPos = expressionEndPos = 0;
- while (!eof()) {
- chr = next();
-
- if (isStringStart(chr)) {
- parseString(chr);
- }
- else if (chr === 0x5b) {
- parseBracket(chr);
- }
- }
- return {
- exp: val.slice(0, expressionPos),
- key: val.slice(expressionPos + 1, expressionEndPos)
- };
- }
- function next() {
- return str.charCodeAt(++index);
- }
- function eof() {
- return index >= len;
- }
- function isStringStart(chr) {
- return chr === 0x22 || chr === 0x27;
- }
- function parseBracket(chr) {
- let inBracket = 1;
- expressionPos = index;
- while (!eof()) {
- chr = next();
- if (isStringStart(chr)) {
- parseString(chr);
- continue;
- }
- if (chr === 0x5b)
- inBracket++;
- if (chr === 0x5d)
- inBracket--;
- if (inBracket === 0) {
- expressionEndPos = index;
- break;
- }
- }
- }
- function parseString(chr) {
- const stringQuote = chr;
- while (!eof()) {
- chr = next();
- if (chr === stringQuote) {
- break;
- }
- }
- }
- let warn$1;
- const RANGE_TOKEN = '__r';
- const CHECKBOX_RADIO_TOKEN = '__c';
- function model$1(el, dir, _warn) {
- warn$1 = _warn;
- const value = dir.value;
- const modifiers = dir.modifiers;
- const tag = el.tag;
- const type = el.attrsMap.type;
- {
-
-
- if (tag === 'input' && type === 'file') {
- warn$1(`<${el.tag} v-model="${value}" type="file">:\n` +
- `File inputs are read only. Use a v-on:change listener instead.`, el.rawAttrsMap['v-model']);
- }
- }
- if (el.component) {
- genComponentModel(el, value, modifiers);
-
- return false;
- }
- else if (tag === 'select') {
- genSelect(el, value, modifiers);
- }
- else if (tag === 'input' && type === 'checkbox') {
- genCheckboxModel(el, value, modifiers);
- }
- else if (tag === 'input' && type === 'radio') {
- genRadioModel(el, value, modifiers);
- }
- else if (tag === 'input' || tag === 'textarea') {
- genDefaultModel(el, value, modifiers);
- }
- else if (!config.isReservedTag(tag)) {
- genComponentModel(el, value, modifiers);
-
- return false;
- }
- else {
- warn$1(`<${el.tag} v-model="${value}">: ` +
- `v-model is not supported on this element type. ` +
- "If you are working with contenteditable, it's recommended to " +
- 'wrap a library dedicated for that purpose inside a custom component.', el.rawAttrsMap['v-model']);
- }
-
- return true;
- }
- function genCheckboxModel(el, value, modifiers) {
- const number = modifiers && modifiers.number;
- const valueBinding = getBindingAttr(el, 'value') || 'null';
- const trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
- const falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
- addProp(el, 'checked', `Array.isArray(${value})` +
- `?_i(${value},${valueBinding})>-1` +
- (trueValueBinding === 'true'
- ? `:(${value})`
- : `:_q(${value},${trueValueBinding})`));
- addHandler(el, 'change', `var $$a=${value},` +
- '$$el=$event.target,' +
- `$$c=$$el.checked?(${trueValueBinding}):(${falseValueBinding});` +
- 'if(Array.isArray($$a)){' +
- `var $$v=${number ? '_n(' + valueBinding + ')' : valueBinding},` +
- '$$i=_i($$a,$$v);' +
- `if($$el.checked){$$i<0&&(${genAssignmentCode(value, '$$a.concat([$$v])')})}` +
- `else{$$i>-1&&(${genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')})}` +
- `}else{${genAssignmentCode(value, '$$c')}}`, null, true);
- }
- function genRadioModel(el, value, modifiers) {
- const number = modifiers && modifiers.number;
- let valueBinding = getBindingAttr(el, 'value') || 'null';
- valueBinding = number ? `_n(${valueBinding})` : valueBinding;
- addProp(el, 'checked', `_q(${value},${valueBinding})`);
- addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
- }
- function genSelect(el, value, modifiers) {
- const number = modifiers && modifiers.number;
- const selectedVal = `Array.prototype.filter` +
- `.call($event.target.options,function(o){return o.selected})` +
- `.map(function(o){var val = "_value" in o ? o._value : o.value;` +
- `return ${number ? '_n(val)' : 'val'}})`;
- const assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
- let code = `var $$selectedVal = ${selectedVal};`;
- code = `${code} ${genAssignmentCode(value, assignment)}`;
- addHandler(el, 'change', code, null, true);
- }
- function genDefaultModel(el, value, modifiers) {
- const type = el.attrsMap.type;
-
-
- {
- const value = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
- const typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
- if (value && !typeBinding) {
- const binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
- warn$1(`${binding}="${value}" conflicts with v-model on the same element ` +
- 'because the latter already expands to a value binding internally', el.rawAttrsMap[binding]);
- }
- }
- const { lazy, number, trim } = modifiers || {};
- const needCompositionGuard = !lazy && type !== 'range';
- const event = lazy ? 'change' : type === 'range' ? RANGE_TOKEN : 'input';
- let valueExpression = '$event.target.value';
- if (trim) {
- valueExpression = `$event.target.value.trim()`;
- }
- if (number) {
- valueExpression = `_n(${valueExpression})`;
- }
- let code = genAssignmentCode(value, valueExpression);
- if (needCompositionGuard) {
- code = `if($event.target.composing)return;${code}`;
- }
- addProp(el, 'value', `(${value})`);
- addHandler(el, event, code, null, true);
- if (trim || number) {
- addHandler(el, 'blur', '$forceUpdate()');
- }
- }
- function normalizeEvents(on) {
-
- if (isDef(on[RANGE_TOKEN])) {
-
- const event = isIE ? 'change' : 'input';
- on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
- delete on[RANGE_TOKEN];
- }
-
-
-
- if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
- on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
- delete on[CHECKBOX_RADIO_TOKEN];
- }
- }
- let target;
- function createOnceHandler(event, handler, capture) {
- const _target = target;
- return function onceHandler() {
- const res = handler.apply(null, arguments);
- if (res !== null) {
- remove(event, onceHandler, capture, _target);
- }
- };
- }
- const useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);
- function add(name, handler, capture, passive) {
-
-
-
-
-
-
- if (useMicrotaskFix) {
- const attachedTimestamp = currentFlushTimestamp;
- const original = handler;
-
- handler = original._wrapper = function (e) {
- if (
-
-
-
- e.target === e.currentTarget ||
-
- e.timeStamp >= attachedTimestamp ||
-
-
-
- e.timeStamp <= 0 ||
-
-
-
- e.target.ownerDocument !== document) {
- return original.apply(this, arguments);
- }
- };
- }
- target.addEventListener(name, handler, supportsPassive ? { capture, passive } : capture);
- }
- function remove(name, handler, capture, _target) {
- (_target || target).removeEventListener(name,
-
- handler._wrapper || handler, capture);
- }
- function updateDOMListeners(oldVnode, vnode) {
- if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
- return;
- }
- const on = vnode.data.on || {};
- const oldOn = oldVnode.data.on || {};
-
-
- target = vnode.elm || oldVnode.elm;
- normalizeEvents(on);
- updateListeners(on, oldOn, add, remove, createOnceHandler, vnode.context);
- target = undefined;
- }
- var events = {
- create: updateDOMListeners,
- update: updateDOMListeners,
-
- destroy: (vnode) => updateDOMListeners(vnode, emptyNode)
- };
- let svgContainer;
- function updateDOMProps(oldVnode, vnode) {
- if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
- return;
- }
- let key, cur;
- const elm = vnode.elm;
- const oldProps = oldVnode.data.domProps || {};
- let props = vnode.data.domProps || {};
-
- if (isDef(props.__ob__) || isTrue(props._v_attr_proxy)) {
- props = vnode.data.domProps = extend({}, props);
- }
- for (key in oldProps) {
- if (!(key in props)) {
- elm[key] = '';
- }
- }
- for (key in props) {
- cur = props[key];
-
-
-
- if (key === 'textContent' || key === 'innerHTML') {
- if (vnode.children)
- vnode.children.length = 0;
- if (cur === oldProps[key])
- continue;
-
-
- if (elm.childNodes.length === 1) {
- elm.removeChild(elm.childNodes[0]);
- }
- }
- if (key === 'value' && elm.tagName !== 'PROGRESS') {
-
-
- elm._value = cur;
-
- const strCur = isUndef(cur) ? '' : String(cur);
- if (shouldUpdateValue(elm, strCur)) {
- elm.value = strCur;
- }
- }
- else if (key === 'innerHTML' &&
- isSVG(elm.tagName) &&
- isUndef(elm.innerHTML)) {
-
- svgContainer = svgContainer || document.createElement('div');
- svgContainer.innerHTML = `<svg>${cur}</svg>`;
- const svg = svgContainer.firstChild;
- while (elm.firstChild) {
- elm.removeChild(elm.firstChild);
- }
- while (svg.firstChild) {
- elm.appendChild(svg.firstChild);
- }
- }
- else if (
-
-
-
-
- cur !== oldProps[key]) {
-
-
- try {
- elm[key] = cur;
- }
- catch (e) { }
- }
- }
- }
- function shouldUpdateValue(elm, checkVal) {
- return (
-
- !elm.composing &&
- (elm.tagName === 'OPTION' ||
- isNotInFocusAndDirty(elm, checkVal) ||
- isDirtyWithModifiers(elm, checkVal)));
- }
- function isNotInFocusAndDirty(elm, checkVal) {
-
-
- let notInFocus = true;
-
-
- try {
- notInFocus = document.activeElement !== elm;
- }
- catch (e) { }
- return notInFocus && elm.value !== checkVal;
- }
- function isDirtyWithModifiers(elm, newVal) {
- const value = elm.value;
- const modifiers = elm._vModifiers;
- if (isDef(modifiers)) {
- if (modifiers.number) {
- return toNumber(value) !== toNumber(newVal);
- }
- if (modifiers.trim) {
- return value.trim() !== newVal.trim();
- }
- }
- return value !== newVal;
- }
- var domProps = {
- create: updateDOMProps,
- update: updateDOMProps
- };
- const parseStyleText = cached(function (cssText) {
- const res = {};
- const listDelimiter = /;(?![^(]*\))/g;
- const propertyDelimiter = /:(.+)/;
- cssText.split(listDelimiter).forEach(function (item) {
- if (item) {
- const tmp = item.split(propertyDelimiter);
- tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
- }
- });
- return res;
- });
- function normalizeStyleData(data) {
- const style = normalizeStyleBinding(data.style);
-
-
- return data.staticStyle ? extend(data.staticStyle, style) : style;
- }
- function normalizeStyleBinding(bindingStyle) {
- if (Array.isArray(bindingStyle)) {
- return toObject(bindingStyle);
- }
- if (typeof bindingStyle === 'string') {
- return parseStyleText(bindingStyle);
- }
- return bindingStyle;
- }
- function getStyle(vnode, checkChild) {
- const res = {};
- let styleData;
- if (checkChild) {
- let childNode = vnode;
- while (childNode.componentInstance) {
- childNode = childNode.componentInstance._vnode;
- if (childNode &&
- childNode.data &&
- (styleData = normalizeStyleData(childNode.data))) {
- extend(res, styleData);
- }
- }
- }
- if ((styleData = normalizeStyleData(vnode.data))) {
- extend(res, styleData);
- }
- let parentNode = vnode;
-
- while ((parentNode = parentNode.parent)) {
- if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
- extend(res, styleData);
- }
- }
- return res;
- }
- const cssVarRE = /^--/;
- const importantRE = /\s*!important$/;
- const setProp = (el, name, val) => {
-
- if (cssVarRE.test(name)) {
- el.style.setProperty(name, val);
- }
- else if (importantRE.test(val)) {
- el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');
- }
- else {
- const normalizedName = normalize(name);
- if (Array.isArray(val)) {
-
-
-
- for (let i = 0, len = val.length; i < len; i++) {
- el.style[normalizedName] = val[i];
- }
- }
- else {
- el.style[normalizedName] = val;
- }
- }
- };
- const vendorNames = ['Webkit', 'Moz', 'ms'];
- let emptyStyle;
- const normalize = cached(function (prop) {
- emptyStyle = emptyStyle || document.createElement('div').style;
- prop = camelize(prop);
- if (prop !== 'filter' && prop in emptyStyle) {
- return prop;
- }
- const capName = prop.charAt(0).toUpperCase() + prop.slice(1);
- for (let i = 0; i < vendorNames.length; i++) {
- const name = vendorNames[i] + capName;
- if (name in emptyStyle) {
- return name;
- }
- }
- });
- function updateStyle(oldVnode, vnode) {
- const data = vnode.data;
- const oldData = oldVnode.data;
- if (isUndef(data.staticStyle) &&
- isUndef(data.style) &&
- isUndef(oldData.staticStyle) &&
- isUndef(oldData.style)) {
- return;
- }
- let cur, name;
- const el = vnode.elm;
- const oldStaticStyle = oldData.staticStyle;
- const oldStyleBinding = oldData.normalizedStyle || oldData.style || {};
-
- const oldStyle = oldStaticStyle || oldStyleBinding;
- const style = normalizeStyleBinding(vnode.data.style) || {};
-
-
-
- vnode.data.normalizedStyle = isDef(style.__ob__) ? extend({}, style) : style;
- const newStyle = getStyle(vnode, true);
- for (name in oldStyle) {
- if (isUndef(newStyle[name])) {
- setProp(el, name, '');
- }
- }
- for (name in newStyle) {
- cur = newStyle[name];
-
- setProp(el, name, cur == null ? '' : cur);
- }
- }
- var style$1 = {
- create: updateStyle,
- update: updateStyle
- };
- const whitespaceRE$1 = /\s+/;
- function addClass(el, cls) {
-
- if (!cls || !(cls = cls.trim())) {
- return;
- }
-
- if (el.classList) {
- if (cls.indexOf(' ') > -1) {
- cls.split(whitespaceRE$1).forEach(c => el.classList.add(c));
- }
- else {
- el.classList.add(cls);
- }
- }
- else {
- const cur = ` ${el.getAttribute('class') || ''} `;
- if (cur.indexOf(' ' + cls + ' ') < 0) {
- el.setAttribute('class', (cur + cls).trim());
- }
- }
- }
- function removeClass(el, cls) {
-
- if (!cls || !(cls = cls.trim())) {
- return;
- }
-
- if (el.classList) {
- if (cls.indexOf(' ') > -1) {
- cls.split(whitespaceRE$1).forEach(c => el.classList.remove(c));
- }
- else {
- el.classList.remove(cls);
- }
- if (!el.classList.length) {
- el.removeAttribute('class');
- }
- }
- else {
- let cur = ` ${el.getAttribute('class') || ''} `;
- const tar = ' ' + cls + ' ';
- while (cur.indexOf(tar) >= 0) {
- cur = cur.replace(tar, ' ');
- }
- cur = cur.trim();
- if (cur) {
- el.setAttribute('class', cur);
- }
- else {
- el.removeAttribute('class');
- }
- }
- }
- function resolveTransition(def) {
- if (!def) {
- return;
- }
-
- if (typeof def === 'object') {
- const res = {};
- if (def.css !== false) {
- extend(res, autoCssTransition(def.name || 'v'));
- }
- extend(res, def);
- return res;
- }
- else if (typeof def === 'string') {
- return autoCssTransition(def);
- }
- }
- const autoCssTransition = cached(name => {
- return {
- enterClass: `${name}-enter`,
- enterToClass: `${name}-enter-to`,
- enterActiveClass: `${name}-enter-active`,
- leaveClass: `${name}-leave`,
- leaveToClass: `${name}-leave-to`,
- leaveActiveClass: `${name}-leave-active`
- };
- });
- const hasTransition = inBrowser && !isIE9;
- const TRANSITION = 'transition';
- const ANIMATION = 'animation';
- let transitionProp = 'transition';
- let transitionEndEvent = 'transitionend';
- let animationProp = 'animation';
- let animationEndEvent = 'animationend';
- if (hasTransition) {
-
- if (window.ontransitionend === undefined &&
- window.onwebkittransitionend !== undefined) {
- transitionProp = 'WebkitTransition';
- transitionEndEvent = 'webkitTransitionEnd';
- }
- if (window.onanimationend === undefined &&
- window.onwebkitanimationend !== undefined) {
- animationProp = 'WebkitAnimation';
- animationEndEvent = 'webkitAnimationEnd';
- }
- }
- const raf = inBrowser
- ? window.requestAnimationFrame
- ? window.requestAnimationFrame.bind(window)
- : setTimeout
- : fn => fn();
- function nextFrame(fn) {
- raf(() => {
-
- raf(fn);
- });
- }
- function addTransitionClass(el, cls) {
- const transitionClasses = el._transitionClasses || (el._transitionClasses = []);
- if (transitionClasses.indexOf(cls) < 0) {
- transitionClasses.push(cls);
- addClass(el, cls);
- }
- }
- function removeTransitionClass(el, cls) {
- if (el._transitionClasses) {
- remove$2(el._transitionClasses, cls);
- }
- removeClass(el, cls);
- }
- function whenTransitionEnds(el, expectedType, cb) {
- const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
- if (!type)
- return cb();
- const event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
- let ended = 0;
- const end = () => {
- el.removeEventListener(event, onEnd);
- cb();
- };
- const onEnd = e => {
- if (e.target === el) {
- if (++ended >= propCount) {
- end();
- }
- }
- };
- setTimeout(() => {
- if (ended < propCount) {
- end();
- }
- }, timeout + 1);
- el.addEventListener(event, onEnd);
- }
- const transformRE = /\b(transform|all)(,|$)/;
- function getTransitionInfo(el, expectedType) {
- const styles = window.getComputedStyle(el);
-
- const transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');
- const transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');
- const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
- const animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');
- const animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');
- const animationTimeout = getTimeout(animationDelays, animationDurations);
- let type;
- let timeout = 0;
- let propCount = 0;
-
- if (expectedType === TRANSITION) {
- if (transitionTimeout > 0) {
- type = TRANSITION;
- timeout = transitionTimeout;
- propCount = transitionDurations.length;
- }
- }
- else if (expectedType === ANIMATION) {
- if (animationTimeout > 0) {
- type = ANIMATION;
- timeout = animationTimeout;
- propCount = animationDurations.length;
- }
- }
- else {
- timeout = Math.max(transitionTimeout, animationTimeout);
- type =
- timeout > 0
- ? transitionTimeout > animationTimeout
- ? TRANSITION
- : ANIMATION
- : null;
- propCount = type
- ? type === TRANSITION
- ? transitionDurations.length
- : animationDurations.length
- : 0;
- }
- const hasTransform = type === TRANSITION && transformRE.test(styles[transitionProp + 'Property']);
- return {
- type,
- timeout,
- propCount,
- hasTransform
- };
- }
- function getTimeout(delays, durations) {
-
- while (delays.length < durations.length) {
- delays = delays.concat(delays);
- }
- return Math.max.apply(null, durations.map((d, i) => {
- return toMs(d) + toMs(delays[i]);
- }));
- }
- function toMs(s) {
- return Number(s.slice(0, -1).replace(',', '.')) * 1000;
- }
- function enter(vnode, toggleDisplay) {
- const el = vnode.elm;
-
- if (isDef(el._leaveCb)) {
- el._leaveCb.cancelled = true;
- el._leaveCb();
- }
- const data = resolveTransition(vnode.data.transition);
- if (isUndef(data)) {
- return;
- }
-
- if (isDef(el._enterCb) || el.nodeType !== 1) {
- return;
- }
- const { css, type, enterClass, enterToClass, enterActiveClass, appearClass, appearToClass, appearActiveClass, beforeEnter, enter, afterEnter, enterCancelled, beforeAppear, appear, afterAppear, appearCancelled, duration } = data;
-
-
-
-
- let context = activeInstance;
- let transitionNode = activeInstance.$vnode;
- while (transitionNode && transitionNode.parent) {
- context = transitionNode.context;
- transitionNode = transitionNode.parent;
- }
- const isAppear = !context._isMounted || !vnode.isRootInsert;
- if (isAppear && !appear && appear !== '') {
- return;
- }
- const startClass = isAppear && appearClass ? appearClass : enterClass;
- const activeClass = isAppear && appearActiveClass ? appearActiveClass : enterActiveClass;
- const toClass = isAppear && appearToClass ? appearToClass : enterToClass;
- const beforeEnterHook = isAppear ? beforeAppear || beforeEnter : beforeEnter;
- const enterHook = isAppear ? (isFunction(appear) ? appear : enter) : enter;
- const afterEnterHook = isAppear ? afterAppear || afterEnter : afterEnter;
- const enterCancelledHook = isAppear
- ? appearCancelled || enterCancelled
- : enterCancelled;
- const explicitEnterDuration = toNumber(isObject(duration) ? duration.enter : duration);
- if (explicitEnterDuration != null) {
- checkDuration(explicitEnterDuration, 'enter', vnode);
- }
- const expectsCSS = css !== false && !isIE9;
- const userWantsControl = getHookArgumentsLength(enterHook);
- const cb = (el._enterCb = once(() => {
- if (expectsCSS) {
- removeTransitionClass(el, toClass);
- removeTransitionClass(el, activeClass);
- }
-
- if (cb.cancelled) {
- if (expectsCSS) {
- removeTransitionClass(el, startClass);
- }
- enterCancelledHook && enterCancelledHook(el);
- }
- else {
- afterEnterHook && afterEnterHook(el);
- }
- el._enterCb = null;
- }));
- if (!vnode.data.show) {
-
- mergeVNodeHook(vnode, 'insert', () => {
- const parent = el.parentNode;
- const pendingNode = parent && parent._pending && parent._pending[vnode.key];
- if (pendingNode &&
- pendingNode.tag === vnode.tag &&
- pendingNode.elm._leaveCb) {
- pendingNode.elm._leaveCb();
- }
- enterHook && enterHook(el, cb);
- });
- }
-
- beforeEnterHook && beforeEnterHook(el);
- if (expectsCSS) {
- addTransitionClass(el, startClass);
- addTransitionClass(el, activeClass);
- nextFrame(() => {
- removeTransitionClass(el, startClass);
-
- if (!cb.cancelled) {
- addTransitionClass(el, toClass);
- if (!userWantsControl) {
- if (isValidDuration(explicitEnterDuration)) {
- setTimeout(cb, explicitEnterDuration);
- }
- else {
- whenTransitionEnds(el, type, cb);
- }
- }
- }
- });
- }
- if (vnode.data.show) {
- toggleDisplay && toggleDisplay();
- enterHook && enterHook(el, cb);
- }
- if (!expectsCSS && !userWantsControl) {
- cb();
- }
- }
- function leave(vnode, rm) {
- const el = vnode.elm;
-
- if (isDef(el._enterCb)) {
- el._enterCb.cancelled = true;
- el._enterCb();
- }
- const data = resolveTransition(vnode.data.transition);
- if (isUndef(data) || el.nodeType !== 1) {
- return rm();
- }
-
- if (isDef(el._leaveCb)) {
- return;
- }
- const { css, type, leaveClass, leaveToClass, leaveActiveClass, beforeLeave, leave, afterLeave, leaveCancelled, delayLeave, duration } = data;
- const expectsCSS = css !== false && !isIE9;
- const userWantsControl = getHookArgumentsLength(leave);
- const explicitLeaveDuration = toNumber(isObject(duration) ? duration.leave : duration);
- if (isDef(explicitLeaveDuration)) {
- checkDuration(explicitLeaveDuration, 'leave', vnode);
- }
- const cb = (el._leaveCb = once(() => {
- if (el.parentNode && el.parentNode._pending) {
- el.parentNode._pending[vnode.key] = null;
- }
- if (expectsCSS) {
- removeTransitionClass(el, leaveToClass);
- removeTransitionClass(el, leaveActiveClass);
- }
-
- if (cb.cancelled) {
- if (expectsCSS) {
- removeTransitionClass(el, leaveClass);
- }
- leaveCancelled && leaveCancelled(el);
- }
- else {
- rm();
- afterLeave && afterLeave(el);
- }
- el._leaveCb = null;
- }));
- if (delayLeave) {
- delayLeave(performLeave);
- }
- else {
- performLeave();
- }
- function performLeave() {
-
-
- if (cb.cancelled) {
- return;
- }
-
- if (!vnode.data.show && el.parentNode) {
- (el.parentNode._pending || (el.parentNode._pending = {}))[vnode.key] =
- vnode;
- }
- beforeLeave && beforeLeave(el);
- if (expectsCSS) {
- addTransitionClass(el, leaveClass);
- addTransitionClass(el, leaveActiveClass);
- nextFrame(() => {
- removeTransitionClass(el, leaveClass);
-
- if (!cb.cancelled) {
- addTransitionClass(el, leaveToClass);
- if (!userWantsControl) {
- if (isValidDuration(explicitLeaveDuration)) {
- setTimeout(cb, explicitLeaveDuration);
- }
- else {
- whenTransitionEnds(el, type, cb);
- }
- }
- }
- });
- }
- leave && leave(el, cb);
- if (!expectsCSS && !userWantsControl) {
- cb();
- }
- }
- }
- function checkDuration(val, name, vnode) {
- if (typeof val !== 'number') {
- warn$2(`<transition> explicit ${name} duration is not a valid number - ` +
- `got ${JSON.stringify(val)}.`, vnode.context);
- }
- else if (isNaN(val)) {
- warn$2(`<transition> explicit ${name} duration is NaN - ` +
- 'the duration expression might be incorrect.', vnode.context);
- }
- }
- function isValidDuration(val) {
- return typeof val === 'number' && !isNaN(val);
- }
- function getHookArgumentsLength(fn) {
- if (isUndef(fn)) {
- return false;
- }
-
- const invokerFns = fn.fns;
- if (isDef(invokerFns)) {
-
- return getHookArgumentsLength(Array.isArray(invokerFns) ? invokerFns[0] : invokerFns);
- }
- else {
-
- return (fn._length || fn.length) > 1;
- }
- }
- function _enter(_, vnode) {
- if (vnode.data.show !== true) {
- enter(vnode);
- }
- }
- var transition = inBrowser
- ? {
- create: _enter,
- activate: _enter,
- remove(vnode, rm) {
-
- if (vnode.data.show !== true) {
-
- leave(vnode, rm);
- }
- else {
- rm();
- }
- }
- }
- : {};
- var platformModules = [attrs, klass$1, events, domProps, style$1, transition];
- const modules$1 = platformModules.concat(baseModules);
- const patch = createPatchFunction({ nodeOps, modules: modules$1 });
- if (isIE9) {
-
- document.addEventListener('selectionchange', () => {
- const el = document.activeElement;
-
- if (el && el.vmodel) {
- trigger(el, 'input');
- }
- });
- }
- const directive = {
- inserted(el, binding, vnode, oldVnode) {
- if (vnode.tag === 'select') {
-
- if (oldVnode.elm && !oldVnode.elm._vOptions) {
- mergeVNodeHook(vnode, 'postpatch', () => {
- directive.componentUpdated(el, binding, vnode);
- });
- }
- else {
- setSelected(el, binding, vnode.context);
- }
- el._vOptions = [].map.call(el.options, getValue);
- }
- else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
- el._vModifiers = binding.modifiers;
- if (!binding.modifiers.lazy) {
- el.addEventListener('compositionstart', onCompositionStart);
- el.addEventListener('compositionend', onCompositionEnd);
-
-
-
-
- el.addEventListener('change', onCompositionEnd);
-
- if (isIE9) {
- el.vmodel = true;
- }
- }
- }
- },
- componentUpdated(el, binding, vnode) {
- if (vnode.tag === 'select') {
- setSelected(el, binding, vnode.context);
-
-
-
-
- const prevOptions = el._vOptions;
- const curOptions = (el._vOptions = [].map.call(el.options, getValue));
- if (curOptions.some((o, i) => !looseEqual(o, prevOptions[i]))) {
-
-
- const needReset = el.multiple
- ? binding.value.some(v => hasNoMatchingOption(v, curOptions))
- : binding.value !== binding.oldValue &&
- hasNoMatchingOption(binding.value, curOptions);
- if (needReset) {
- trigger(el, 'change');
- }
- }
- }
- }
- };
- function setSelected(el, binding, vm) {
- actuallySetSelected(el, binding, vm);
-
- if (isIE || isEdge) {
- setTimeout(() => {
- actuallySetSelected(el, binding, vm);
- }, 0);
- }
- }
- function actuallySetSelected(el, binding, vm) {
- const value = binding.value;
- const isMultiple = el.multiple;
- if (isMultiple && !Array.isArray(value)) {
- warn$2(`<select multiple v-model="${binding.expression}"> ` +
- `expects an Array value for its binding, but got ${Object.prototype.toString
- .call(value)
- .slice(8, -1)}`, vm);
- return;
- }
- let selected, option;
- for (let i = 0, l = el.options.length; i < l; i++) {
- option = el.options[i];
- if (isMultiple) {
- selected = looseIndexOf(value, getValue(option)) > -1;
- if (option.selected !== selected) {
- option.selected = selected;
- }
- }
- else {
- if (looseEqual(getValue(option), value)) {
- if (el.selectedIndex !== i) {
- el.selectedIndex = i;
- }
- return;
- }
- }
- }
- if (!isMultiple) {
- el.selectedIndex = -1;
- }
- }
- function hasNoMatchingOption(value, options) {
- return options.every(o => !looseEqual(o, value));
- }
- function getValue(option) {
- return '_value' in option ? option._value : option.value;
- }
- function onCompositionStart(e) {
- e.target.composing = true;
- }
- function onCompositionEnd(e) {
-
- if (!e.target.composing)
- return;
- e.target.composing = false;
- trigger(e.target, 'input');
- }
- function trigger(el, type) {
- const e = document.createEvent('HTMLEvents');
- e.initEvent(type, true, true);
- el.dispatchEvent(e);
- }
- function locateNode(vnode) {
-
- return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
- ? locateNode(vnode.componentInstance._vnode)
- : vnode;
- }
- var show = {
- bind(el, { value }, vnode) {
- vnode = locateNode(vnode);
- const transition = vnode.data && vnode.data.transition;
- const originalDisplay = (el.__vOriginalDisplay =
- el.style.display === 'none' ? '' : el.style.display);
- if (value && transition) {
- vnode.data.show = true;
- enter(vnode, () => {
- el.style.display = originalDisplay;
- });
- }
- else {
- el.style.display = value ? originalDisplay : 'none';
- }
- },
- update(el, { value, oldValue }, vnode) {
-
- if (!value === !oldValue)
- return;
- vnode = locateNode(vnode);
- const transition = vnode.data && vnode.data.transition;
- if (transition) {
- vnode.data.show = true;
- if (value) {
- enter(vnode, () => {
- el.style.display = el.__vOriginalDisplay;
- });
- }
- else {
- leave(vnode, () => {
- el.style.display = 'none';
- });
- }
- }
- else {
- el.style.display = value ? el.__vOriginalDisplay : 'none';
- }
- },
- unbind(el, binding, vnode, oldVnode, isDestroy) {
- if (!isDestroy) {
- el.style.display = el.__vOriginalDisplay;
- }
- }
- };
- var platformDirectives = {
- model: directive,
- show
- };
- const transitionProps = {
- name: String,
- appear: Boolean,
- css: Boolean,
- mode: String,
- type: String,
- enterClass: String,
- leaveClass: String,
- enterToClass: String,
- leaveToClass: String,
- enterActiveClass: String,
- leaveActiveClass: String,
- appearClass: String,
- appearActiveClass: String,
- appearToClass: String,
- duration: [Number, String, Object]
- };
- function getRealChild(vnode) {
- const compOptions = vnode && vnode.componentOptions;
- if (compOptions && compOptions.Ctor.options.abstract) {
- return getRealChild(getFirstComponentChild(compOptions.children));
- }
- else {
- return vnode;
- }
- }
- function extractTransitionData(comp) {
- const data = {};
- const options = comp.$options;
-
- for (const key in options.propsData) {
- data[key] = comp[key];
- }
-
-
- const listeners = options._parentListeners;
- for (const key in listeners) {
- data[camelize(key)] = listeners[key];
- }
- return data;
- }
- function placeholder(h, rawChild) {
-
- if (/\d-keep-alive$/.test(rawChild.tag)) {
- return h('keep-alive', {
- props: rawChild.componentOptions.propsData
- });
- }
- }
- function hasParentTransition(vnode) {
- while ((vnode = vnode.parent)) {
- if (vnode.data.transition) {
- return true;
- }
- }
- }
- function isSameChild(child, oldChild) {
- return oldChild.key === child.key && oldChild.tag === child.tag;
- }
- const isNotTextNode = (c) => c.tag || isAsyncPlaceholder(c);
- const isVShowDirective = d => d.name === 'show';
- var Transition = {
- name: 'transition',
- props: transitionProps,
- abstract: true,
- render(h) {
- let children = this.$slots.default;
- if (!children) {
- return;
- }
-
- children = children.filter(isNotTextNode);
-
- if (!children.length) {
- return;
- }
-
- if (children.length > 1) {
- warn$2('<transition> can only be used on a single element. Use ' +
- '<transition-group> for lists.', this.$parent);
- }
- const mode = this.mode;
-
- if (mode && mode !== 'in-out' && mode !== 'out-in') {
- warn$2('invalid <transition> mode: ' + mode, this.$parent);
- }
- const rawChild = children[0];
-
-
- if (hasParentTransition(this.$vnode)) {
- return rawChild;
- }
-
-
- const child = getRealChild(rawChild);
-
- if (!child) {
- return rawChild;
- }
- if (this._leaving) {
- return placeholder(h, rawChild);
- }
-
-
-
- const id = `__transition-${this._uid}-`;
- child.key =
- child.key == null
- ? child.isComment
- ? id + 'comment'
- : id + child.tag
- : isPrimitive(child.key)
- ? String(child.key).indexOf(id) === 0
- ? child.key
- : id + child.key
- : child.key;
- const data = ((child.data || (child.data = {})).transition =
- extractTransitionData(this));
- const oldRawChild = this._vnode;
- const oldChild = getRealChild(oldRawChild);
-
-
- if (child.data.directives && child.data.directives.some(isVShowDirective)) {
- child.data.show = true;
- }
- if (oldChild &&
- oldChild.data &&
- !isSameChild(child, oldChild) &&
- !isAsyncPlaceholder(oldChild) &&
-
- !(oldChild.componentInstance &&
- oldChild.componentInstance._vnode.isComment)) {
-
-
- const oldData = (oldChild.data.transition = extend({}, data));
-
- if (mode === 'out-in') {
-
- this._leaving = true;
- mergeVNodeHook(oldData, 'afterLeave', () => {
- this._leaving = false;
- this.$forceUpdate();
- });
- return placeholder(h, rawChild);
- }
- else if (mode === 'in-out') {
- if (isAsyncPlaceholder(child)) {
- return oldRawChild;
- }
- let delayedLeave;
- const performLeave = () => {
- delayedLeave();
- };
- mergeVNodeHook(data, 'afterEnter', performLeave);
- mergeVNodeHook(data, 'enterCancelled', performLeave);
- mergeVNodeHook(oldData, 'delayLeave', leave => {
- delayedLeave = leave;
- });
- }
- }
- return rawChild;
- }
- };
- const props = extend({
- tag: String,
- moveClass: String
- }, transitionProps);
- delete props.mode;
- var TransitionGroup = {
- props,
- beforeMount() {
- const update = this._update;
- this._update = (vnode, hydrating) => {
- const restoreActiveInstance = setActiveInstance(this);
-
- this.__patch__(this._vnode, this.kept, false,
- true
- );
- this._vnode = this.kept;
- restoreActiveInstance();
- update.call(this, vnode, hydrating);
- };
- },
- render(h) {
- const tag = this.tag || this.$vnode.data.tag || 'span';
- const map = Object.create(null);
- const prevChildren = (this.prevChildren = this.children);
- const rawChildren = this.$slots.default || [];
- const children = (this.children = []);
- const transitionData = extractTransitionData(this);
- for (let i = 0; i < rawChildren.length; i++) {
- const c = rawChildren[i];
- if (c.tag) {
- if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
- children.push(c);
- map[c.key] = c;
- (c.data || (c.data = {})).transition = transitionData;
- }
- else {
- const opts = c.componentOptions;
- const name = opts
- ? getComponentName(opts.Ctor.options) || opts.tag || ''
- : c.tag;
- warn$2(`<transition-group> children must be keyed: <${name}>`);
- }
- }
- }
- if (prevChildren) {
- const kept = [];
- const removed = [];
- for (let i = 0; i < prevChildren.length; i++) {
- const c = prevChildren[i];
- c.data.transition = transitionData;
-
- c.data.pos = c.elm.getBoundingClientRect();
- if (map[c.key]) {
- kept.push(c);
- }
- else {
- removed.push(c);
- }
- }
- this.kept = h(tag, null, kept);
- this.removed = removed;
- }
- return h(tag, null, children);
- },
- updated() {
- const children = this.prevChildren;
- const moveClass = this.moveClass || (this.name || 'v') + '-move';
- if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
- return;
- }
-
-
- children.forEach(callPendingCbs);
- children.forEach(recordPosition);
- children.forEach(applyTranslation);
-
-
-
- this._reflow = document.body.offsetHeight;
- children.forEach((c) => {
- if (c.data.moved) {
- const el = c.elm;
- const s = el.style;
- addTransitionClass(el, moveClass);
- s.transform = s.WebkitTransform = s.transitionDuration = '';
- el.addEventListener(transitionEndEvent, (el._moveCb = function cb(e) {
- if (e && e.target !== el) {
- return;
- }
- if (!e || /transform$/.test(e.propertyName)) {
- el.removeEventListener(transitionEndEvent, cb);
- el._moveCb = null;
- removeTransitionClass(el, moveClass);
- }
- }));
- }
- });
- },
- methods: {
- hasMove(el, moveClass) {
-
- if (!hasTransition) {
- return false;
- }
-
- if (this._hasMove) {
- return this._hasMove;
- }
-
-
-
-
-
- const clone = el.cloneNode();
- if (el._transitionClasses) {
- el._transitionClasses.forEach((cls) => {
- removeClass(clone, cls);
- });
- }
- addClass(clone, moveClass);
- clone.style.display = 'none';
- this.$el.appendChild(clone);
- const info = getTransitionInfo(clone);
- this.$el.removeChild(clone);
- return (this._hasMove = info.hasTransform);
- }
- }
- };
- function callPendingCbs(c) {
-
- if (c.elm._moveCb) {
- c.elm._moveCb();
- }
-
- if (c.elm._enterCb) {
- c.elm._enterCb();
- }
- }
- function recordPosition(c) {
- c.data.newPos = c.elm.getBoundingClientRect();
- }
- function applyTranslation(c) {
- const oldPos = c.data.pos;
- const newPos = c.data.newPos;
- const dx = oldPos.left - newPos.left;
- const dy = oldPos.top - newPos.top;
- if (dx || dy) {
- c.data.moved = true;
- const s = c.elm.style;
- s.transform = s.WebkitTransform = `translate(${dx}px,${dy}px)`;
- s.transitionDuration = '0s';
- }
- }
- var platformComponents = {
- Transition,
- TransitionGroup
- };
- Vue.config.mustUseProp = mustUseProp;
- Vue.config.isReservedTag = isReservedTag;
- Vue.config.isReservedAttr = isReservedAttr;
- Vue.config.getTagNamespace = getTagNamespace;
- Vue.config.isUnknownElement = isUnknownElement;
- extend(Vue.options.directives, platformDirectives);
- extend(Vue.options.components, platformComponents);
- Vue.prototype.__patch__ = inBrowser ? patch : noop;
- Vue.prototype.$mount = function (el, hydrating) {
- el = el && inBrowser ? query(el) : undefined;
- return mountComponent(this, el, hydrating);
- };
- if (inBrowser) {
- setTimeout(() => {
- if (config.devtools) {
- if (devtools) {
- devtools.emit('init', Vue);
- }
- else {
-
- console[console.info ? 'info' : 'log']('Download the Vue Devtools extension for a better development experience:\n' +
- 'https://github.com/vuejs/vue-devtools');
- }
- }
- if (config.productionTip !== false &&
- typeof console !== 'undefined') {
-
- console[console.info ? 'info' : 'log'](`You are running Vue in development mode.\n` +
- `Make sure to turn on production mode when deploying for production.\n` +
- `See more tips at https://vuejs.org/guide/deployment.html`);
- }
- }, 0);
- }
- const defaultTagRE = /\{\{((?:.|\r?\n)+?)\}\}/g;
- const regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
- const buildRegex = cached(delimiters => {
- const open = delimiters[0].replace(regexEscapeRE, '\\$&');
- const close = delimiters[1].replace(regexEscapeRE, '\\$&');
- return new RegExp(open + '((?:.|\\n)+?)' + close, 'g');
- });
- function parseText(text, delimiters) {
-
- const tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
- if (!tagRE.test(text)) {
- return;
- }
- const tokens = [];
- const rawTokens = [];
- let lastIndex = (tagRE.lastIndex = 0);
- let match, index, tokenValue;
- while ((match = tagRE.exec(text))) {
- index = match.index;
-
- if (index > lastIndex) {
- rawTokens.push((tokenValue = text.slice(lastIndex, index)));
- tokens.push(JSON.stringify(tokenValue));
- }
-
- const exp = parseFilters(match[1].trim());
- tokens.push(`_s(${exp})`);
- rawTokens.push({ '@binding': exp });
- lastIndex = index + match[0].length;
- }
- if (lastIndex < text.length) {
- rawTokens.push((tokenValue = text.slice(lastIndex)));
- tokens.push(JSON.stringify(tokenValue));
- }
- return {
- expression: tokens.join('+'),
- tokens: rawTokens
- };
- }
- function transformNode$1(el, options) {
- const warn = options.warn || baseWarn;
- const staticClass = getAndRemoveAttr(el, 'class');
- if (staticClass) {
- const res = parseText(staticClass, options.delimiters);
- if (res) {
- warn(`class="${staticClass}": ` +
- 'Interpolation inside attributes has been removed. ' +
- 'Use v-bind or the colon shorthand instead. For example, ' +
- 'instead of <div class="{{ val }}">, use <div :class="val">.', el.rawAttrsMap['class']);
- }
- }
- if (staticClass) {
- el.staticClass = JSON.stringify(staticClass.replace(/\s+/g, ' ').trim());
- }
- const classBinding = getBindingAttr(el, 'class', false );
- if (classBinding) {
- el.classBinding = classBinding;
- }
- }
- function genData$2(el) {
- let data = '';
- if (el.staticClass) {
- data += `staticClass:${el.staticClass},`;
- }
- if (el.classBinding) {
- data += `class:${el.classBinding},`;
- }
- return data;
- }
- var klass = {
- staticKeys: ['staticClass'],
- transformNode: transformNode$1,
- genData: genData$2
- };
- function transformNode(el, options) {
- const warn = options.warn || baseWarn;
- const staticStyle = getAndRemoveAttr(el, 'style');
- if (staticStyle) {
-
- {
- const res = parseText(staticStyle, options.delimiters);
- if (res) {
- warn(`style="${staticStyle}": ` +
- 'Interpolation inside attributes has been removed. ' +
- 'Use v-bind or the colon shorthand instead. For example, ' +
- 'instead of <div style="{{ val }}">, use <div :style="val">.', el.rawAttrsMap['style']);
- }
- }
- el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
- }
- const styleBinding = getBindingAttr(el, 'style', false );
- if (styleBinding) {
- el.styleBinding = styleBinding;
- }
- }
- function genData$1(el) {
- let data = '';
- if (el.staticStyle) {
- data += `staticStyle:${el.staticStyle},`;
- }
- if (el.styleBinding) {
- data += `style:(${el.styleBinding}),`;
- }
- return data;
- }
- var style = {
- staticKeys: ['staticStyle'],
- transformNode,
- genData: genData$1
- };
- let decoder;
- var he = {
- decode(html) {
- decoder = decoder || document.createElement('div');
- decoder.innerHTML = html;
- return decoder.textContent;
- }
- };
- const isUnaryTag = makeMap('area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
- 'link,meta,param,source,track,wbr');
- const canBeLeftOpenTag = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source');
- const isNonPhrasingTag = makeMap('address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
- 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
- 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
- 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
- 'title,tr,track');
- const attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
- const dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
- const ncname = `[a-zA-Z_][\\-\\.0-9_a-zA-Z${unicodeRegExp.source}]*`;
- const qnameCapture = `((?:${ncname}\\:)?${ncname})`;
- const startTagOpen = new RegExp(`^<${qnameCapture}`);
- const startTagClose = /^\s*(\/?)>/;
- const endTag = new RegExp(`^<\\/${qnameCapture}[^>]*>`);
- const doctype = /^<!DOCTYPE [^>]+>/i;
- const comment = /^<!\--/;
- const conditionalComment = /^<!\[/;
- const isPlainTextElement = makeMap('script,style,textarea', true);
- const reCache = {};
- const decodingMap = {
- '<': '<',
- '>': '>',
- '"': '"',
- '&': '&',
- ' ': '\n',
- '	': '\t',
- ''': "'"
- };
- const encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;
- const encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g;
- const isIgnoreNewlineTag = makeMap('pre,textarea', true);
- const shouldIgnoreFirstNewline = (tag, html) => tag && isIgnoreNewlineTag(tag) && html[0] === '\n';
- function decodeAttr(value, shouldDecodeNewlines) {
- const re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
- return value.replace(re, match => decodingMap[match]);
- }
- function parseHTML(html, options) {
- const stack = [];
- const expectHTML = options.expectHTML;
- const isUnaryTag = options.isUnaryTag || no;
- const canBeLeftOpenTag = options.canBeLeftOpenTag || no;
- let index = 0;
- let last, lastTag;
- while (html) {
- last = html;
-
- if (!lastTag || !isPlainTextElement(lastTag)) {
- let textEnd = html.indexOf('<');
- if (textEnd === 0) {
-
- if (comment.test(html)) {
- const commentEnd = html.indexOf('-->');
- if (commentEnd >= 0) {
- if (options.shouldKeepComment && options.comment) {
- options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);
- }
- advance(commentEnd + 3);
- continue;
- }
- }
-
- if (conditionalComment.test(html)) {
- const conditionalEnd = html.indexOf(']>');
- if (conditionalEnd >= 0) {
- advance(conditionalEnd + 2);
- continue;
- }
- }
-
- const doctypeMatch = html.match(doctype);
- if (doctypeMatch) {
- advance(doctypeMatch[0].length);
- continue;
- }
-
- const endTagMatch = html.match(endTag);
- if (endTagMatch) {
- const curIndex = index;
- advance(endTagMatch[0].length);
- parseEndTag(endTagMatch[1], curIndex, index);
- continue;
- }
-
- const startTagMatch = parseStartTag();
- if (startTagMatch) {
- handleStartTag(startTagMatch);
- if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {
- advance(1);
- }
- continue;
- }
- }
- let text, rest, next;
- if (textEnd >= 0) {
- rest = html.slice(textEnd);
- while (!endTag.test(rest) &&
- !startTagOpen.test(rest) &&
- !comment.test(rest) &&
- !conditionalComment.test(rest)) {
-
- next = rest.indexOf('<', 1);
- if (next < 0)
- break;
- textEnd += next;
- rest = html.slice(textEnd);
- }
- text = html.substring(0, textEnd);
- }
- if (textEnd < 0) {
- text = html;
- }
- if (text) {
- advance(text.length);
- }
- if (options.chars && text) {
- options.chars(text, index - text.length, index);
- }
- }
- else {
- let endTagLength = 0;
- const stackedTag = lastTag.toLowerCase();
- const reStackedTag = reCache[stackedTag] ||
- (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
- const rest = html.replace(reStackedTag, function (all, text, endTag) {
- endTagLength = endTag.length;
- if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
- text = text
- .replace(/<!\--([\s\S]*?)-->/g, '$1')
- .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
- }
- if (shouldIgnoreFirstNewline(stackedTag, text)) {
- text = text.slice(1);
- }
- if (options.chars) {
- options.chars(text);
- }
- return '';
- });
- index += html.length - rest.length;
- html = rest;
- parseEndTag(stackedTag, index - endTagLength, index);
- }
- if (html === last) {
- options.chars && options.chars(html);
- if (!stack.length && options.warn) {
- options.warn(`Mal-formatted tag at end of template: "${html}"`, {
- start: index + html.length
- });
- }
- break;
- }
- }
-
- parseEndTag();
- function advance(n) {
- index += n;
- html = html.substring(n);
- }
- function parseStartTag() {
- const start = html.match(startTagOpen);
- if (start) {
- const match = {
- tagName: start[1],
- attrs: [],
- start: index
- };
- advance(start[0].length);
- let end, attr;
- while (!(end = html.match(startTagClose)) &&
- (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {
- attr.start = index;
- advance(attr[0].length);
- attr.end = index;
- match.attrs.push(attr);
- }
- if (end) {
- match.unarySlash = end[1];
- advance(end[0].length);
- match.end = index;
- return match;
- }
- }
- }
- function handleStartTag(match) {
- const tagName = match.tagName;
- const unarySlash = match.unarySlash;
- if (expectHTML) {
- if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
- parseEndTag(lastTag);
- }
- if (canBeLeftOpenTag(tagName) && lastTag === tagName) {
- parseEndTag(tagName);
- }
- }
- const unary = isUnaryTag(tagName) || !!unarySlash;
- const l = match.attrs.length;
- const attrs = new Array(l);
- for (let i = 0; i < l; i++) {
- const args = match.attrs[i];
- const value = args[3] || args[4] || args[5] || '';
- const shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'
- ? options.shouldDecodeNewlinesForHref
- : options.shouldDecodeNewlines;
- attrs[i] = {
- name: args[1],
- value: decodeAttr(value, shouldDecodeNewlines)
- };
- if (options.outputSourceRange) {
- attrs[i].start = args.start + args[0].match(/^\s*/).length;
- attrs[i].end = args.end;
- }
- }
- if (!unary) {
- stack.push({
- tag: tagName,
- lowerCasedTag: tagName.toLowerCase(),
- attrs: attrs,
- start: match.start,
- end: match.end
- });
- lastTag = tagName;
- }
- if (options.start) {
- options.start(tagName, attrs, unary, match.start, match.end);
- }
- }
- function parseEndTag(tagName, start, end) {
- let pos, lowerCasedTagName;
- if (start == null)
- start = index;
- if (end == null)
- end = index;
-
- if (tagName) {
- lowerCasedTagName = tagName.toLowerCase();
- for (pos = stack.length - 1; pos >= 0; pos--) {
- if (stack[pos].lowerCasedTag === lowerCasedTagName) {
- break;
- }
- }
- }
- else {
-
- pos = 0;
- }
- if (pos >= 0) {
-
- for (let i = stack.length - 1; i >= pos; i--) {
- if ((i > pos || !tagName) && options.warn) {
- options.warn(`tag <${stack[i].tag}> has no matching end tag.`, {
- start: stack[i].start,
- end: stack[i].end
- });
- }
- if (options.end) {
- options.end(stack[i].tag, start, end);
- }
- }
-
- stack.length = pos;
- lastTag = pos && stack[pos - 1].tag;
- }
- else if (lowerCasedTagName === 'br') {
- if (options.start) {
- options.start(tagName, [], true, start, end);
- }
- }
- else if (lowerCasedTagName === 'p') {
- if (options.start) {
- options.start(tagName, [], false, start, end);
- }
- if (options.end) {
- options.end(tagName, start, end);
- }
- }
- }
- }
- const onRE = /^@|^v-on:/;
- const dirRE = /^v-|^@|^:|^#/;
- const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
- const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
- const stripParensRE = /^\(|\)$/g;
- const dynamicArgRE = /^\[.*\]$/;
- const argRE = /:(.*)$/;
- const bindRE = /^:|^\.|^v-bind:/;
- const modifierRE = /\.[^.\]]+(?=[^\]]*$)/g;
- const slotRE = /^v-slot(:|$)|^#/;
- const lineBreakRE = /[\r\n]/;
- const whitespaceRE = /[ \f\t\r\n]+/g;
- const invalidAttributeRE = /[\s"'<>\/=]/;
- const decodeHTMLCached = cached(he.decode);
- const emptySlotScopeToken = `_empty_`;
- let warn;
- let delimiters;
- let transforms;
- let preTransforms;
- let postTransforms;
- let platformIsPreTag;
- let platformMustUseProp;
- let platformGetTagNamespace;
- let maybeComponent;
- function createASTElement(tag, attrs, parent) {
- return {
- type: 1,
- tag,
- attrsList: attrs,
- attrsMap: makeAttrsMap(attrs),
- rawAttrsMap: {},
- parent,
- children: []
- };
- }
- function parse(template, options) {
- warn = options.warn || baseWarn;
- platformIsPreTag = options.isPreTag || no;
- platformMustUseProp = options.mustUseProp || no;
- platformGetTagNamespace = options.getTagNamespace || no;
- const isReservedTag = options.isReservedTag || no;
- maybeComponent = (el) => !!(el.component ||
- el.attrsMap[':is'] ||
- el.attrsMap['v-bind:is'] ||
- !(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag)));
- transforms = pluckModuleFunction(options.modules, 'transformNode');
- preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
- postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
- delimiters = options.delimiters;
- const stack = [];
- const preserveWhitespace = options.preserveWhitespace !== false;
- const whitespaceOption = options.whitespace;
- let root;
- let currentParent;
- let inVPre = false;
- let inPre = false;
- let warned = false;
- function warnOnce(msg, range) {
- if (!warned) {
- warned = true;
- warn(msg, range);
- }
- }
- function closeElement(element) {
- trimEndingWhitespace(element);
- if (!inVPre && !element.processed) {
- element = processElement(element, options);
- }
-
- if (!stack.length && element !== root) {
-
- if (root.if && (element.elseif || element.else)) {
- {
- checkRootConstraints(element);
- }
- addIfCondition(root, {
- exp: element.elseif,
- block: element
- });
- }
- else {
- warnOnce(`Component template should contain exactly one root element. ` +
- `If you are using v-if on multiple elements, ` +
- `use v-else-if to chain them instead.`, { start: element.start });
- }
- }
- if (currentParent && !element.forbidden) {
- if (element.elseif || element.else) {
- processIfConditions(element, currentParent);
- }
- else {
- if (element.slotScope) {
-
-
-
- const name = element.slotTarget || '"default"';
- (currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
- }
- currentParent.children.push(element);
- element.parent = currentParent;
- }
- }
-
-
- element.children = element.children.filter(c => !c.slotScope);
-
- trimEndingWhitespace(element);
-
- if (element.pre) {
- inVPre = false;
- }
- if (platformIsPreTag(element.tag)) {
- inPre = false;
- }
-
- for (let i = 0; i < postTransforms.length; i++) {
- postTransforms[i](element, options);
- }
- }
- function trimEndingWhitespace(el) {
-
- if (!inPre) {
- let lastNode;
- while ((lastNode = el.children[el.children.length - 1]) &&
- lastNode.type === 3 &&
- lastNode.text === ' ') {
- el.children.pop();
- }
- }
- }
- function checkRootConstraints(el) {
- if (el.tag === 'slot' || el.tag === 'template') {
- warnOnce(`Cannot use <${el.tag}> as component root element because it may ` +
- 'contain multiple nodes.', { start: el.start });
- }
- if (el.attrsMap.hasOwnProperty('v-for')) {
- warnOnce('Cannot use v-for on stateful component root element because ' +
- 'it renders multiple elements.', el.rawAttrsMap['v-for']);
- }
- }
- parseHTML(template, {
- warn,
- expectHTML: options.expectHTML,
- isUnaryTag: options.isUnaryTag,
- canBeLeftOpenTag: options.canBeLeftOpenTag,
- shouldDecodeNewlines: options.shouldDecodeNewlines,
- shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
- shouldKeepComment: options.comments,
- outputSourceRange: options.outputSourceRange,
- start(tag, attrs, unary, start, end) {
-
-
- const ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);
-
-
- if (isIE && ns === 'svg') {
- attrs = guardIESVGBug(attrs);
- }
- let element = createASTElement(tag, attrs, currentParent);
- if (ns) {
- element.ns = ns;
- }
- {
- if (options.outputSourceRange) {
- element.start = start;
- element.end = end;
- element.rawAttrsMap = element.attrsList.reduce((cumulated, attr) => {
- cumulated[attr.name] = attr;
- return cumulated;
- }, {});
- }
- attrs.forEach(attr => {
- if (invalidAttributeRE.test(attr.name)) {
- warn(`Invalid dynamic argument expression: attribute names cannot contain ` +
- `spaces, quotes, <, >, / or =.`, options.outputSourceRange
- ? {
- start: attr.start + attr.name.indexOf(`[`),
- end: attr.start + attr.name.length
- }
- : undefined);
- }
- });
- }
- if (isForbiddenTag(element) && !isServerRendering()) {
- element.forbidden = true;
- warn('Templates should only be responsible for mapping the state to the ' +
- 'UI. Avoid placing tags with side-effects in your templates, such as ' +
- `<${tag}>` +
- ', as they will not be parsed.', { start: element.start });
- }
-
- for (let i = 0; i < preTransforms.length; i++) {
- element = preTransforms[i](element, options) || element;
- }
- if (!inVPre) {
- processPre(element);
- if (element.pre) {
- inVPre = true;
- }
- }
- if (platformIsPreTag(element.tag)) {
- inPre = true;
- }
- if (inVPre) {
- processRawAttrs(element);
- }
- else if (!element.processed) {
-
- processFor(element);
- processIf(element);
- processOnce(element);
- }
- if (!root) {
- root = element;
- {
- checkRootConstraints(root);
- }
- }
- if (!unary) {
- currentParent = element;
- stack.push(element);
- }
- else {
- closeElement(element);
- }
- },
- end(tag, start, end) {
- const element = stack[stack.length - 1];
-
- stack.length -= 1;
- currentParent = stack[stack.length - 1];
- if (options.outputSourceRange) {
- element.end = end;
- }
- closeElement(element);
- },
- chars(text, start, end) {
- if (!currentParent) {
- {
- if (text === template) {
- warnOnce('Component template requires a root element, rather than just text.', { start });
- }
- else if ((text = text.trim())) {
- warnOnce(`text "${text}" outside root element will be ignored.`, {
- start
- });
- }
- }
- return;
- }
-
-
- if (isIE &&
- currentParent.tag === 'textarea' &&
- currentParent.attrsMap.placeholder === text) {
- return;
- }
- const children = currentParent.children;
- if (inPre || text.trim()) {
- text = isTextTag(currentParent)
- ? text
- : decodeHTMLCached(text);
- }
- else if (!children.length) {
-
- text = '';
- }
- else if (whitespaceOption) {
- if (whitespaceOption === 'condense') {
-
-
- text = lineBreakRE.test(text) ? '' : ' ';
- }
- else {
- text = ' ';
- }
- }
- else {
- text = preserveWhitespace ? ' ' : '';
- }
- if (text) {
- if (!inPre && whitespaceOption === 'condense') {
-
- text = text.replace(whitespaceRE, ' ');
- }
- let res;
- let child;
- if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
- child = {
- type: 2,
- expression: res.expression,
- tokens: res.tokens,
- text
- };
- }
- else if (text !== ' ' ||
- !children.length ||
- children[children.length - 1].text !== ' ') {
- child = {
- type: 3,
- text
- };
- }
- if (child) {
- if (options.outputSourceRange) {
- child.start = start;
- child.end = end;
- }
- children.push(child);
- }
- }
- },
- comment(text, start, end) {
-
-
- if (currentParent) {
- const child = {
- type: 3,
- text,
- isComment: true
- };
- if (options.outputSourceRange) {
- child.start = start;
- child.end = end;
- }
- currentParent.children.push(child);
- }
- }
- });
- return root;
- }
- function processPre(el) {
- if (getAndRemoveAttr(el, 'v-pre') != null) {
- el.pre = true;
- }
- }
- function processRawAttrs(el) {
- const list = el.attrsList;
- const len = list.length;
- if (len) {
- const attrs = (el.attrs = new Array(len));
- for (let i = 0; i < len; i++) {
- attrs[i] = {
- name: list[i].name,
- value: JSON.stringify(list[i].value)
- };
- if (list[i].start != null) {
- attrs[i].start = list[i].start;
- attrs[i].end = list[i].end;
- }
- }
- }
- else if (!el.pre) {
-
- el.plain = true;
- }
- }
- function processElement(element, options) {
- processKey(element);
-
-
- element.plain =
- !element.key && !element.scopedSlots && !element.attrsList.length;
- processRef(element);
- processSlotContent(element);
- processSlotOutlet(element);
- processComponent(element);
- for (let i = 0; i < transforms.length; i++) {
- element = transforms[i](element, options) || element;
- }
- processAttrs(element);
- return element;
- }
- function processKey(el) {
- const exp = getBindingAttr(el, 'key');
- if (exp) {
- {
- if (el.tag === 'template') {
- warn(`<template> cannot be keyed. Place the key on real elements instead.`, getRawBindingAttr(el, 'key'));
- }
- if (el.for) {
- const iterator = el.iterator2 || el.iterator1;
- const parent = el.parent;
- if (iterator &&
- iterator === exp &&
- parent &&
- parent.tag === 'transition-group') {
- warn(`Do not use v-for index as key on <transition-group> children, ` +
- `this is the same as not using keys.`, getRawBindingAttr(el, 'key'), true );
- }
- }
- }
- el.key = exp;
- }
- }
- function processRef(el) {
- const ref = getBindingAttr(el, 'ref');
- if (ref) {
- el.ref = ref;
- el.refInFor = checkInFor(el);
- }
- }
- function processFor(el) {
- let exp;
- if ((exp = getAndRemoveAttr(el, 'v-for'))) {
- const res = parseFor(exp);
- if (res) {
- extend(el, res);
- }
- else {
- warn(`Invalid v-for expression: ${exp}`, el.rawAttrsMap['v-for']);
- }
- }
- }
- function parseFor(exp) {
- const inMatch = exp.match(forAliasRE);
- if (!inMatch)
- return;
- const res = {};
- res.for = inMatch[2].trim();
- const alias = inMatch[1].trim().replace(stripParensRE, '');
- const iteratorMatch = alias.match(forIteratorRE);
- if (iteratorMatch) {
- res.alias = alias.replace(forIteratorRE, '').trim();
- res.iterator1 = iteratorMatch[1].trim();
- if (iteratorMatch[2]) {
- res.iterator2 = iteratorMatch[2].trim();
- }
- }
- else {
- res.alias = alias;
- }
- return res;
- }
- function processIf(el) {
- const exp = getAndRemoveAttr(el, 'v-if');
- if (exp) {
- el.if = exp;
- addIfCondition(el, {
- exp: exp,
- block: el
- });
- }
- else {
- if (getAndRemoveAttr(el, 'v-else') != null) {
- el.else = true;
- }
- const elseif = getAndRemoveAttr(el, 'v-else-if');
- if (elseif) {
- el.elseif = elseif;
- }
- }
- }
- function processIfConditions(el, parent) {
- const prev = findPrevElement(parent.children);
- if (prev && prev.if) {
- addIfCondition(prev, {
- exp: el.elseif,
- block: el
- });
- }
- else {
- warn(`v-${el.elseif ? 'else-if="' + el.elseif + '"' : 'else'} ` +
- `used on element <${el.tag}> without corresponding v-if.`, el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']);
- }
- }
- function findPrevElement(children) {
- let i = children.length;
- while (i--) {
- if (children[i].type === 1) {
- return children[i];
- }
- else {
- if (children[i].text !== ' ') {
- warn(`text "${children[i].text.trim()}" between v-if and v-else(-if) ` +
- `will be ignored.`, children[i]);
- }
- children.pop();
- }
- }
- }
- function addIfCondition(el, condition) {
- if (!el.ifConditions) {
- el.ifConditions = [];
- }
- el.ifConditions.push(condition);
- }
- function processOnce(el) {
- const once = getAndRemoveAttr(el, 'v-once');
- if (once != null) {
- el.once = true;
- }
- }
- function processSlotContent(el) {
- let slotScope;
- if (el.tag === 'template') {
- slotScope = getAndRemoveAttr(el, 'scope');
-
- if (slotScope) {
- warn(`the "scope" attribute for scoped slots have been deprecated and ` +
- `replaced by "slot-scope" since 2.5. The new "slot-scope" attribute ` +
- `can also be used on plain elements in addition to <template> to ` +
- `denote scoped slots.`, el.rawAttrsMap['scope'], true);
- }
- el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
- }
- else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {
-
- if (el.attrsMap['v-for']) {
- warn(`Ambiguous combined usage of slot-scope and v-for on <${el.tag}> ` +
- `(v-for takes higher priority). Use a wrapper <template> for the ` +
- `scoped slot to make it clearer.`, el.rawAttrsMap['slot-scope'], true);
- }
- el.slotScope = slotScope;
- }
-
- const slotTarget = getBindingAttr(el, 'slot');
- if (slotTarget) {
- el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
- el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']);
-
-
- if (el.tag !== 'template' && !el.slotScope) {
- addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));
- }
- }
-
- {
- if (el.tag === 'template') {
-
- const slotBinding = getAndRemoveAttrByRegex(el, slotRE);
- if (slotBinding) {
- {
- if (el.slotTarget || el.slotScope) {
- warn(`Unexpected mixed usage of different slot syntaxes.`, el);
- }
- if (el.parent && !maybeComponent(el.parent)) {
- warn(`<template v-slot> can only appear at the root level inside ` +
- `the receiving component`, el);
- }
- }
- const { name, dynamic } = getSlotName(slotBinding);
- el.slotTarget = name;
- el.slotTargetDynamic = dynamic;
- el.slotScope = slotBinding.value || emptySlotScopeToken;
- }
- }
- else {
-
- const slotBinding = getAndRemoveAttrByRegex(el, slotRE);
- if (slotBinding) {
- {
- if (!maybeComponent(el)) {
- warn(`v-slot can only be used on components or <template>.`, slotBinding);
- }
- if (el.slotScope || el.slotTarget) {
- warn(`Unexpected mixed usage of different slot syntaxes.`, el);
- }
- if (el.scopedSlots) {
- warn(`To avoid scope ambiguity, the default slot should also use ` +
- `<template> syntax when there are other named slots.`, slotBinding);
- }
- }
-
- const slots = el.scopedSlots || (el.scopedSlots = {});
- const { name, dynamic } = getSlotName(slotBinding);
- const slotContainer = (slots[name] = createASTElement('template', [], el));
- slotContainer.slotTarget = name;
- slotContainer.slotTargetDynamic = dynamic;
- slotContainer.children = el.children.filter((c) => {
- if (!c.slotScope) {
- c.parent = slotContainer;
- return true;
- }
- });
- slotContainer.slotScope = slotBinding.value || emptySlotScopeToken;
-
- el.children = [];
-
- el.plain = false;
- }
- }
- }
- }
- function getSlotName(binding) {
- let name = binding.name.replace(slotRE, '');
- if (!name) {
- if (binding.name[0] !== '#') {
- name = 'default';
- }
- else {
- warn(`v-slot shorthand syntax requires a slot name.`, binding);
- }
- }
- return dynamicArgRE.test(name)
- ?
- { name: name.slice(1, -1), dynamic: true }
- :
- { name: `"${name}"`, dynamic: false };
- }
- function processSlotOutlet(el) {
- if (el.tag === 'slot') {
- el.slotName = getBindingAttr(el, 'name');
- if (el.key) {
- warn(`\`key\` does not work on <slot> because slots are abstract outlets ` +
- `and can possibly expand into multiple elements. ` +
- `Use the key on a wrapping element instead.`, getRawBindingAttr(el, 'key'));
- }
- }
- }
- function processComponent(el) {
- let binding;
- if ((binding = getBindingAttr(el, 'is'))) {
- el.component = binding;
- }
- if (getAndRemoveAttr(el, 'inline-template') != null) {
- el.inlineTemplate = true;
- }
- }
- function processAttrs(el) {
- const list = el.attrsList;
- let i, l, name, rawName, value, modifiers, syncGen, isDynamic;
- for (i = 0, l = list.length; i < l; i++) {
- name = rawName = list[i].name;
- value = list[i].value;
- if (dirRE.test(name)) {
-
- el.hasBindings = true;
-
- modifiers = parseModifiers(name.replace(dirRE, ''));
-
- if (modifiers) {
- name = name.replace(modifierRE, '');
- }
- if (bindRE.test(name)) {
-
- name = name.replace(bindRE, '');
- value = parseFilters(value);
- isDynamic = dynamicArgRE.test(name);
- if (isDynamic) {
- name = name.slice(1, -1);
- }
- if (value.trim().length === 0) {
- warn(`The value for a v-bind expression cannot be empty. Found in "v-bind:${name}"`);
- }
- if (modifiers) {
- if (modifiers.prop && !isDynamic) {
- name = camelize(name);
- if (name === 'innerHtml')
- name = 'innerHTML';
- }
- if (modifiers.camel && !isDynamic) {
- name = camelize(name);
- }
- if (modifiers.sync) {
- syncGen = genAssignmentCode(value, `$event`);
- if (!isDynamic) {
- addHandler(el, `update:${camelize(name)}`, syncGen, null, false, warn, list[i]);
- if (hyphenate(name) !== camelize(name)) {
- addHandler(el, `update:${hyphenate(name)}`, syncGen, null, false, warn, list[i]);
- }
- }
- else {
-
- addHandler(el, `"update:"+(${name})`, syncGen, null, false, warn, list[i], true
- );
- }
- }
- }
- if ((modifiers && modifiers.prop) ||
- (!el.component && platformMustUseProp(el.tag, el.attrsMap.type, name))) {
- addProp(el, name, value, list[i], isDynamic);
- }
- else {
- addAttr(el, name, value, list[i], isDynamic);
- }
- }
- else if (onRE.test(name)) {
-
- name = name.replace(onRE, '');
- isDynamic = dynamicArgRE.test(name);
- if (isDynamic) {
- name = name.slice(1, -1);
- }
- addHandler(el, name, value, modifiers, false, warn, list[i], isDynamic);
- }
- else {
-
- name = name.replace(dirRE, '');
-
- const argMatch = name.match(argRE);
- let arg = argMatch && argMatch[1];
- isDynamic = false;
- if (arg) {
- name = name.slice(0, -(arg.length + 1));
- if (dynamicArgRE.test(arg)) {
- arg = arg.slice(1, -1);
- isDynamic = true;
- }
- }
- addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);
- if (name === 'model') {
- checkForAliasModel(el, value);
- }
- }
- }
- else {
-
- {
- const res = parseText(value, delimiters);
- if (res) {
- warn(`${name}="${value}": ` +
- 'Interpolation inside attributes has been removed. ' +
- 'Use v-bind or the colon shorthand instead. For example, ' +
- 'instead of <div id="{{ val }}">, use <div :id="val">.', list[i]);
- }
- }
- addAttr(el, name, JSON.stringify(value), list[i]);
-
-
- if (!el.component &&
- name === 'muted' &&
- platformMustUseProp(el.tag, el.attrsMap.type, name)) {
- addProp(el, name, 'true', list[i]);
- }
- }
- }
- }
- function checkInFor(el) {
- let parent = el;
- while (parent) {
- if (parent.for !== undefined) {
- return true;
- }
- parent = parent.parent;
- }
- return false;
- }
- function parseModifiers(name) {
- const match = name.match(modifierRE);
- if (match) {
- const ret = {};
- match.forEach(m => {
- ret[m.slice(1)] = true;
- });
- return ret;
- }
- }
- function makeAttrsMap(attrs) {
- const map = {};
- for (let i = 0, l = attrs.length; i < l; i++) {
- if (map[attrs[i].name] && !isIE && !isEdge) {
- warn('duplicate attribute: ' + attrs[i].name, attrs[i]);
- }
- map[attrs[i].name] = attrs[i].value;
- }
- return map;
- }
- function isTextTag(el) {
- return el.tag === 'script' || el.tag === 'style';
- }
- function isForbiddenTag(el) {
- return (el.tag === 'style' ||
- (el.tag === 'script' &&
- (!el.attrsMap.type || el.attrsMap.type === 'text/javascript')));
- }
- const ieNSBug = /^xmlns:NS\d+/;
- const ieNSPrefix = /^NS\d+:/;
- function guardIESVGBug(attrs) {
- const res = [];
- for (let i = 0; i < attrs.length; i++) {
- const attr = attrs[i];
- if (!ieNSBug.test(attr.name)) {
- attr.name = attr.name.replace(ieNSPrefix, '');
- res.push(attr);
- }
- }
- return res;
- }
- function checkForAliasModel(el, value) {
- let _el = el;
- while (_el) {
- if (_el.for && _el.alias === value) {
- warn(`<${el.tag} v-model="${value}">: ` +
- `You are binding v-model directly to a v-for iteration alias. ` +
- `This will not be able to modify the v-for source array because ` +
- `writing to the alias is like modifying a function local variable. ` +
- `Consider using an array of objects and use v-model on an object property instead.`, el.rawAttrsMap['v-model']);
- }
- _el = _el.parent;
- }
- }
- function preTransformNode(el, options) {
- if (el.tag === 'input') {
- const map = el.attrsMap;
- if (!map['v-model']) {
- return;
- }
- let typeBinding;
- if (map[':type'] || map['v-bind:type']) {
- typeBinding = getBindingAttr(el, 'type');
- }
- if (!map.type && !typeBinding && map['v-bind']) {
- typeBinding = `(${map['v-bind']}).type`;
- }
- if (typeBinding) {
- const ifCondition = getAndRemoveAttr(el, 'v-if', true);
- const ifConditionExtra = ifCondition ? `&&(${ifCondition})` : ``;
- const hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
- const elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);
-
- const branch0 = cloneASTElement(el);
-
- processFor(branch0);
- addRawAttr(branch0, 'type', 'checkbox');
- processElement(branch0, options);
- branch0.processed = true;
- branch0.if = `(${typeBinding})==='checkbox'` + ifConditionExtra;
- addIfCondition(branch0, {
- exp: branch0.if,
- block: branch0
- });
-
- const branch1 = cloneASTElement(el);
- getAndRemoveAttr(branch1, 'v-for', true);
- addRawAttr(branch1, 'type', 'radio');
- processElement(branch1, options);
- addIfCondition(branch0, {
- exp: `(${typeBinding})==='radio'` + ifConditionExtra,
- block: branch1
- });
-
- const branch2 = cloneASTElement(el);
- getAndRemoveAttr(branch2, 'v-for', true);
- addRawAttr(branch2, ':type', typeBinding);
- processElement(branch2, options);
- addIfCondition(branch0, {
- exp: ifCondition,
- block: branch2
- });
- if (hasElse) {
- branch0.else = true;
- }
- else if (elseIfCondition) {
- branch0.elseif = elseIfCondition;
- }
- return branch0;
- }
- }
- }
- function cloneASTElement(el) {
- return createASTElement(el.tag, el.attrsList.slice(), el.parent);
- }
- var model = {
- preTransformNode
- };
- var modules = [klass, style, model];
- function text(el, dir) {
- if (dir.value) {
- addProp(el, 'textContent', `_s(${dir.value})`, dir);
- }
- }
- function html(el, dir) {
- if (dir.value) {
- addProp(el, 'innerHTML', `_s(${dir.value})`, dir);
- }
- }
- var directives = {
- model: model$1,
- text,
- html
- };
- const baseOptions = {
- expectHTML: true,
- modules,
- directives,
- isPreTag,
- isUnaryTag,
- mustUseProp,
- canBeLeftOpenTag,
- isReservedTag,
- getTagNamespace,
- staticKeys: genStaticKeys$1(modules)
- };
- let isStaticKey;
- let isPlatformReservedTag;
- const genStaticKeysCached = cached(genStaticKeys);
- function optimize(root, options) {
- if (!root)
- return;
- isStaticKey = genStaticKeysCached(options.staticKeys || '');
- isPlatformReservedTag = options.isReservedTag || no;
-
- markStatic(root);
-
- markStaticRoots(root, false);
- }
- function genStaticKeys(keys) {
- return makeMap('type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' +
- (keys ? ',' + keys : ''));
- }
- function markStatic(node) {
- node.static = isStatic(node);
- if (node.type === 1) {
-
-
-
- if (!isPlatformReservedTag(node.tag) &&
- node.tag !== 'slot' &&
- node.attrsMap['inline-template'] == null) {
- return;
- }
- for (let i = 0, l = node.children.length; i < l; i++) {
- const child = node.children[i];
- markStatic(child);
- if (!child.static) {
- node.static = false;
- }
- }
- if (node.ifConditions) {
- for (let i = 1, l = node.ifConditions.length; i < l; i++) {
- const block = node.ifConditions[i].block;
- markStatic(block);
- if (!block.static) {
- node.static = false;
- }
- }
- }
- }
- }
- function markStaticRoots(node, isInFor) {
- if (node.type === 1) {
- if (node.static || node.once) {
- node.staticInFor = isInFor;
- }
-
-
-
- if (node.static &&
- node.children.length &&
- !(node.children.length === 1 && node.children[0].type === 3)) {
- node.staticRoot = true;
- return;
- }
- else {
- node.staticRoot = false;
- }
- if (node.children) {
- for (let i = 0, l = node.children.length; i < l; i++) {
- markStaticRoots(node.children[i], isInFor || !!node.for);
- }
- }
- if (node.ifConditions) {
- for (let i = 1, l = node.ifConditions.length; i < l; i++) {
- markStaticRoots(node.ifConditions[i].block, isInFor);
- }
- }
- }
- }
- function isStatic(node) {
- if (node.type === 2) {
-
- return false;
- }
- if (node.type === 3) {
-
- return true;
- }
- return !!(node.pre ||
- (!node.hasBindings &&
- !node.if &&
- !node.for &&
- !isBuiltInTag(node.tag) &&
- isPlatformReservedTag(node.tag) &&
- !isDirectChildOfTemplateFor(node) &&
- Object.keys(node).every(isStaticKey)));
- }
- function isDirectChildOfTemplateFor(node) {
- while (node.parent) {
- node = node.parent;
- if (node.tag !== 'template') {
- return false;
- }
- if (node.for) {
- return true;
- }
- }
- return false;
- }
- const fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/;
- const fnInvokeRE = /\([^)]*?\);*$/;
- const simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
- const keyCodes = {
- esc: 27,
- tab: 9,
- enter: 13,
- space: 32,
- up: 38,
- left: 37,
- right: 39,
- down: 40,
- delete: [8, 46]
- };
- const keyNames = {
-
- esc: ['Esc', 'Escape'],
- tab: 'Tab',
- enter: 'Enter',
-
- space: [' ', 'Spacebar'],
-
- up: ['Up', 'ArrowUp'],
- left: ['Left', 'ArrowLeft'],
- right: ['Right', 'ArrowRight'],
- down: ['Down', 'ArrowDown'],
-
- delete: ['Backspace', 'Delete', 'Del']
- };
- const genGuard = condition => `if(${condition})return null;`;
- const modifierCode = {
- stop: '$event.stopPropagation();',
- prevent: '$event.preventDefault();',
- self: genGuard(`$event.target !== $event.currentTarget`),
- ctrl: genGuard(`!$event.ctrlKey`),
- shift: genGuard(`!$event.shiftKey`),
- alt: genGuard(`!$event.altKey`),
- meta: genGuard(`!$event.metaKey`),
- left: genGuard(`'button' in $event && $event.button !== 0`),
- middle: genGuard(`'button' in $event && $event.button !== 1`),
- right: genGuard(`'button' in $event && $event.button !== 2`)
- };
- function genHandlers(events, isNative) {
- const prefix = isNative ? 'nativeOn:' : 'on:';
- let staticHandlers = ``;
- let dynamicHandlers = ``;
- for (const name in events) {
- const handlerCode = genHandler(events[name]);
-
- if (events[name] && events[name].dynamic) {
- dynamicHandlers += `${name},${handlerCode},`;
- }
- else {
- staticHandlers += `"${name}":${handlerCode},`;
- }
- }
- staticHandlers = `{${staticHandlers.slice(0, -1)}}`;
- if (dynamicHandlers) {
- return prefix + `_d(${staticHandlers},[${dynamicHandlers.slice(0, -1)}])`;
- }
- else {
- return prefix + staticHandlers;
- }
- }
- function genHandler(handler) {
- if (!handler) {
- return 'function(){}';
- }
- if (Array.isArray(handler)) {
- return `[${handler.map(handler => genHandler(handler)).join(',')}]`;
- }
- const isMethodPath = simplePathRE.test(handler.value);
- const isFunctionExpression = fnExpRE.test(handler.value);
- const isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));
- if (!handler.modifiers) {
- if (isMethodPath || isFunctionExpression) {
- return handler.value;
- }
- return `function($event){${isFunctionInvocation ? `return ${handler.value}` : handler.value}}`;
- }
- else {
- let code = '';
- let genModifierCode = '';
- const keys = [];
- for (const key in handler.modifiers) {
- if (modifierCode[key]) {
- genModifierCode += modifierCode[key];
-
- if (keyCodes[key]) {
- keys.push(key);
- }
- }
- else if (key === 'exact') {
- const modifiers = handler.modifiers;
- genModifierCode += genGuard(['ctrl', 'shift', 'alt', 'meta']
- .filter(keyModifier => !modifiers[keyModifier])
- .map(keyModifier => `$event.${keyModifier}Key`)
- .join('||'));
- }
- else {
- keys.push(key);
- }
- }
- if (keys.length) {
- code += genKeyFilter(keys);
- }
-
- if (genModifierCode) {
- code += genModifierCode;
- }
- const handlerCode = isMethodPath
- ? `return ${handler.value}.apply(null, arguments)`
- : isFunctionExpression
- ? `return (${handler.value}).apply(null, arguments)`
- : isFunctionInvocation
- ? `return ${handler.value}`
- : handler.value;
- return `function($event){${code}${handlerCode}}`;
- }
- }
- function genKeyFilter(keys) {
- return (
-
-
-
- `if(!$event.type.indexOf('key')&&` +
- `${keys.map(genFilterCode).join('&&')})return null;`);
- }
- function genFilterCode(key) {
- const keyVal = parseInt(key, 10);
- if (keyVal) {
- return `$event.keyCode!==${keyVal}`;
- }
- const keyCode = keyCodes[key];
- const keyName = keyNames[key];
- return (`_k($event.keyCode,` +
- `${JSON.stringify(key)},` +
- `${JSON.stringify(keyCode)},` +
- `$event.key,` +
- `${JSON.stringify(keyName)}` +
- `)`);
- }
- function on(el, dir) {
- if (dir.modifiers) {
- warn$2(`v-on without argument does not support modifiers.`);
- }
- el.wrapListeners = (code) => `_g(${code},${dir.value})`;
- }
- function bind(el, dir) {
- el.wrapData = (code) => {
- return `_b(${code},'${el.tag}',${dir.value},${dir.modifiers && dir.modifiers.prop ? 'true' : 'false'}${dir.modifiers && dir.modifiers.sync ? ',true' : ''})`;
- };
- }
- var baseDirectives = {
- on,
- bind,
- cloak: noop
- };
- class CodegenState {
- constructor(options) {
- this.options = options;
- this.warn = options.warn || baseWarn;
- this.transforms = pluckModuleFunction(options.modules, 'transformCode');
- this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
- this.directives = extend(extend({}, baseDirectives), options.directives);
- const isReservedTag = options.isReservedTag || no;
- this.maybeComponent = (el) => !!el.component || !isReservedTag(el.tag);
- this.onceId = 0;
- this.staticRenderFns = [];
- this.pre = false;
- }
- }
- function generate(ast, options) {
- const state = new CodegenState(options);
-
- const code = ast
- ? ast.tag === 'script'
- ? 'null'
- : genElement(ast, state)
- : '_c("div")';
- return {
- render: `with(this){return ${code}}`,
- staticRenderFns: state.staticRenderFns
- };
- }
- function genElement(el, state) {
- if (el.parent) {
- el.pre = el.pre || el.parent.pre;
- }
- if (el.staticRoot && !el.staticProcessed) {
- return genStatic(el, state);
- }
- else if (el.once && !el.onceProcessed) {
- return genOnce(el, state);
- }
- else if (el.for && !el.forProcessed) {
- return genFor(el, state);
- }
- else if (el.if && !el.ifProcessed) {
- return genIf(el, state);
- }
- else if (el.tag === 'template' && !el.slotTarget && !state.pre) {
- return genChildren(el, state) || 'void 0';
- }
- else if (el.tag === 'slot') {
- return genSlot(el, state);
- }
- else {
-
- let code;
- if (el.component) {
- code = genComponent(el.component, el, state);
- }
- else {
- let data;
- const maybeComponent = state.maybeComponent(el);
- if (!el.plain || (el.pre && maybeComponent)) {
- data = genData(el, state);
- }
- let tag;
-
- const bindings = state.options.bindings;
- if (maybeComponent && bindings && bindings.__isScriptSetup !== false) {
- tag = checkBindingType(bindings, el.tag);
- }
- if (!tag)
- tag = `'${el.tag}'`;
- const children = el.inlineTemplate ? null : genChildren(el, state, true);
- code = `_c(${tag}${data ? `,${data}` : '' // data
- }${children ? `,${children}` : '' // children
- })`;
- }
-
- for (let i = 0; i < state.transforms.length; i++) {
- code = state.transforms[i](el, code);
- }
- return code;
- }
- }
- function checkBindingType(bindings, key) {
- const camelName = camelize(key);
- const PascalName = capitalize(camelName);
- const checkType = (type) => {
- if (bindings[key] === type) {
- return key;
- }
- if (bindings[camelName] === type) {
- return camelName;
- }
- if (bindings[PascalName] === type) {
- return PascalName;
- }
- };
- const fromConst = checkType("setup-const" ) ||
- checkType("setup-reactive-const" );
- if (fromConst) {
- return fromConst;
- }
- const fromMaybeRef = checkType("setup-let" ) ||
- checkType("setup-ref" ) ||
- checkType("setup-maybe-ref" );
- if (fromMaybeRef) {
- return fromMaybeRef;
- }
- }
- function genStatic(el, state) {
- el.staticProcessed = true;
-
-
-
- const originalPreState = state.pre;
- if (el.pre) {
- state.pre = el.pre;
- }
- state.staticRenderFns.push(`with(this){return ${genElement(el, state)}}`);
- state.pre = originalPreState;
- return `_m(${state.staticRenderFns.length - 1}${el.staticInFor ? ',true' : ''})`;
- }
- function genOnce(el, state) {
- el.onceProcessed = true;
- if (el.if && !el.ifProcessed) {
- return genIf(el, state);
- }
- else if (el.staticInFor) {
- let key = '';
- let parent = el.parent;
- while (parent) {
- if (parent.for) {
- key = parent.key;
- break;
- }
- parent = parent.parent;
- }
- if (!key) {
- state.warn(`v-once can only be used inside v-for that is keyed. `, el.rawAttrsMap['v-once']);
- return genElement(el, state);
- }
- return `_o(${genElement(el, state)},${state.onceId++},${key})`;
- }
- else {
- return genStatic(el, state);
- }
- }
- function genIf(el, state, altGen, altEmpty) {
- el.ifProcessed = true;
- return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty);
- }
- function genIfConditions(conditions, state, altGen, altEmpty) {
- if (!conditions.length) {
- return altEmpty || '_e()';
- }
- const condition = conditions.shift();
- if (condition.exp) {
- return `(${condition.exp})?${genTernaryExp(condition.block)}:${genIfConditions(conditions, state, altGen, altEmpty)}`;
- }
- else {
- return `${genTernaryExp(condition.block)}`;
- }
-
- function genTernaryExp(el) {
- return altGen
- ? altGen(el, state)
- : el.once
- ? genOnce(el, state)
- : genElement(el, state);
- }
- }
- function genFor(el, state, altGen, altHelper) {
- const exp = el.for;
- const alias = el.alias;
- const iterator1 = el.iterator1 ? `,${el.iterator1}` : '';
- const iterator2 = el.iterator2 ? `,${el.iterator2}` : '';
- if (state.maybeComponent(el) &&
- el.tag !== 'slot' &&
- el.tag !== 'template' &&
- !el.key) {
- state.warn(`<${el.tag} v-for="${alias} in ${exp}">: component lists rendered with ` +
- `v-for should have explicit keys. ` +
- `See https://v2.vuejs.org/v2/guide/list.html#key for more info.`, el.rawAttrsMap['v-for'], true );
- }
- el.forProcessed = true;
- return (`${altHelper || '_l'}((${exp}),` +
- `function(${alias}${iterator1}${iterator2}){` +
- `return ${(altGen || genElement)(el, state)}` +
- '})');
- }
- function genData(el, state) {
- let data = '{';
-
-
- const dirs = genDirectives(el, state);
- if (dirs)
- data += dirs + ',';
-
- if (el.key) {
- data += `key:${el.key},`;
- }
-
- if (el.ref) {
- data += `ref:${el.ref},`;
- }
- if (el.refInFor) {
- data += `refInFor:true,`;
- }
-
- if (el.pre) {
- data += `pre:true,`;
- }
-
- if (el.component) {
- data += `tag:"${el.tag}",`;
- }
-
- for (let i = 0; i < state.dataGenFns.length; i++) {
- data += state.dataGenFns[i](el);
- }
-
- if (el.attrs) {
- data += `attrs:${genProps(el.attrs)},`;
- }
-
- if (el.props) {
- data += `domProps:${genProps(el.props)},`;
- }
-
- if (el.events) {
- data += `${genHandlers(el.events, false)},`;
- }
- if (el.nativeEvents) {
- data += `${genHandlers(el.nativeEvents, true)},`;
- }
-
-
- if (el.slotTarget && !el.slotScope) {
- data += `slot:${el.slotTarget},`;
- }
-
- if (el.scopedSlots) {
- data += `${genScopedSlots(el, el.scopedSlots, state)},`;
- }
-
- if (el.model) {
- data += `model:{value:${el.model.value},callback:${el.model.callback},expression:${el.model.expression}},`;
- }
-
- if (el.inlineTemplate) {
- const inlineTemplate = genInlineTemplate(el, state);
- if (inlineTemplate) {
- data += `${inlineTemplate},`;
- }
- }
- data = data.replace(/,$/, '') + '}';
-
-
-
- if (el.dynamicAttrs) {
- data = `_b(${data},"${el.tag}",${genProps(el.dynamicAttrs)})`;
- }
-
- if (el.wrapData) {
- data = el.wrapData(data);
- }
-
- if (el.wrapListeners) {
- data = el.wrapListeners(data);
- }
- return data;
- }
- function genDirectives(el, state) {
- const dirs = el.directives;
- if (!dirs)
- return;
- let res = 'directives:[';
- let hasRuntime = false;
- let i, l, dir, needRuntime;
- for (i = 0, l = dirs.length; i < l; i++) {
- dir = dirs[i];
- needRuntime = true;
- const gen = state.directives[dir.name];
- if (gen) {
-
-
- needRuntime = !!gen(el, dir, state.warn);
- }
- if (needRuntime) {
- hasRuntime = true;
- res += `{name:"${dir.name}",rawName:"${dir.rawName}"${dir.value
- ? `,value:(${dir.value}),expression:${JSON.stringify(dir.value)}`
- : ''}${dir.arg ? `,arg:${dir.isDynamicArg ? dir.arg : `"${dir.arg}"`}` : ''}${dir.modifiers ? `,modifiers:${JSON.stringify(dir.modifiers)}` : ''}},`;
- }
- }
- if (hasRuntime) {
- return res.slice(0, -1) + ']';
- }
- }
- function genInlineTemplate(el, state) {
- const ast = el.children[0];
- if ((el.children.length !== 1 || ast.type !== 1)) {
- state.warn('Inline-template components must have exactly one child element.', { start: el.start });
- }
- if (ast && ast.type === 1) {
- const inlineRenderFns = generate(ast, state.options);
- return `inlineTemplate:{render:function(){${inlineRenderFns.render}},staticRenderFns:[${inlineRenderFns.staticRenderFns
- .map(code => `function(){${code}}`)
- .join(',')}]}`;
- }
- }
- function genScopedSlots(el, slots, state) {
-
-
-
-
- let needsForceUpdate = el.for ||
- Object.keys(slots).some(key => {
- const slot = slots[key];
- return (slot.slotTargetDynamic || slot.if || slot.for || containsSlotChild(slot)
- );
- });
-
-
-
-
- let needsKey = !!el.if;
-
-
-
-
-
- if (!needsForceUpdate) {
- let parent = el.parent;
- while (parent) {
- if ((parent.slotScope && parent.slotScope !== emptySlotScopeToken) ||
- parent.for) {
- needsForceUpdate = true;
- break;
- }
- if (parent.if) {
- needsKey = true;
- }
- parent = parent.parent;
- }
- }
- const generatedSlots = Object.keys(slots)
- .map(key => genScopedSlot(slots[key], state))
- .join(',');
- return `scopedSlots:_u([${generatedSlots}]${needsForceUpdate ? `,null,true` : ``}${!needsForceUpdate && needsKey ? `,null,false,${hash(generatedSlots)}` : ``})`;
- }
- function hash(str) {
- let hash = 5381;
- let i = str.length;
- while (i) {
- hash = (hash * 33) ^ str.charCodeAt(--i);
- }
- return hash >>> 0;
- }
- function containsSlotChild(el) {
- if (el.type === 1) {
- if (el.tag === 'slot') {
- return true;
- }
- return el.children.some(containsSlotChild);
- }
- return false;
- }
- function genScopedSlot(el, state) {
- const isLegacySyntax = el.attrsMap['slot-scope'];
- if (el.if && !el.ifProcessed && !isLegacySyntax) {
- return genIf(el, state, genScopedSlot, `null`);
- }
- if (el.for && !el.forProcessed) {
- return genFor(el, state, genScopedSlot);
- }
- const slotScope = el.slotScope === emptySlotScopeToken ? `` : String(el.slotScope);
- const fn = `function(${slotScope}){` +
- `return ${el.tag === 'template'
- ? el.if && isLegacySyntax
- ? `(${el.if})?${genChildren(el, state) || 'undefined'}:undefined`
- : genChildren(el, state) || 'undefined'
- : genElement(el, state)}}`;
-
- const reverseProxy = slotScope ? `` : `,proxy:true`;
- return `{key:${el.slotTarget || `"default"`},fn:${fn}${reverseProxy}}`;
- }
- function genChildren(el, state, checkSkip, altGenElement, altGenNode) {
- const children = el.children;
- if (children.length) {
- const el = children[0];
-
- if (children.length === 1 &&
- el.for &&
- el.tag !== 'template' &&
- el.tag !== 'slot') {
- const normalizationType = checkSkip
- ? state.maybeComponent(el)
- ? `,1`
- : `,0`
- : ``;
- return `${(altGenElement || genElement)(el, state)}${normalizationType}`;
- }
- const normalizationType = checkSkip
- ? getNormalizationType(children, state.maybeComponent)
- : 0;
- const gen = altGenNode || genNode;
- return `[${children.map(c => gen(c, state)).join(',')}]${normalizationType ? `,${normalizationType}` : ''}`;
- }
- }
- function getNormalizationType(children, maybeComponent) {
- let res = 0;
- for (let i = 0; i < children.length; i++) {
- const el = children[i];
- if (el.type !== 1) {
- continue;
- }
- if (needsNormalization(el) ||
- (el.ifConditions &&
- el.ifConditions.some(c => needsNormalization(c.block)))) {
- res = 2;
- break;
- }
- if (maybeComponent(el) ||
- (el.ifConditions && el.ifConditions.some(c => maybeComponent(c.block)))) {
- res = 1;
- }
- }
- return res;
- }
- function needsNormalization(el) {
- return el.for !== undefined || el.tag === 'template' || el.tag === 'slot';
- }
- function genNode(node, state) {
- if (node.type === 1) {
- return genElement(node, state);
- }
- else if (node.type === 3 && node.isComment) {
- return genComment(node);
- }
- else {
- return genText(node);
- }
- }
- function genText(text) {
- return `_v(${text.type === 2
- ? text.expression // no need for () because already wrapped in _s()
- : transformSpecialNewlines(JSON.stringify(text.text))})`;
- }
- function genComment(comment) {
- return `_e(${JSON.stringify(comment.text)})`;
- }
- function genSlot(el, state) {
- const slotName = el.slotName || '"default"';
- const children = genChildren(el, state);
- let res = `_t(${slotName}${children ? `,function(){return ${children}}` : ''}`;
- const attrs = el.attrs || el.dynamicAttrs
- ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(attr => ({
-
- name: camelize(attr.name),
- value: attr.value,
- dynamic: attr.dynamic
- })))
- : null;
- const bind = el.attrsMap['v-bind'];
- if ((attrs || bind) && !children) {
- res += `,null`;
- }
- if (attrs) {
- res += `,${attrs}`;
- }
- if (bind) {
- res += `${attrs ? '' : ',null'},${bind}`;
- }
- return res + ')';
- }
- function genComponent(componentName, el, state) {
- const children = el.inlineTemplate ? null : genChildren(el, state, true);
- return `_c(${componentName},${genData(el, state)}${children ? `,${children}` : ''})`;
- }
- function genProps(props) {
- let staticProps = ``;
- let dynamicProps = ``;
- for (let i = 0; i < props.length; i++) {
- const prop = props[i];
- const value = transformSpecialNewlines(prop.value);
- if (prop.dynamic) {
- dynamicProps += `${prop.name},${value},`;
- }
- else {
- staticProps += `"${prop.name}":${value},`;
- }
- }
- staticProps = `{${staticProps.slice(0, -1)}}`;
- if (dynamicProps) {
- return `_d(${staticProps},[${dynamicProps.slice(0, -1)}])`;
- }
- else {
- return staticProps;
- }
- }
- function transformSpecialNewlines(text) {
- return text.replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029');
- }
- const prohibitedKeywordRE = new RegExp('\\b' +
- ('do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
- 'super,throw,while,yield,delete,export,import,return,switch,default,' +
- 'extends,finally,continue,debugger,function,arguments')
- .split(',')
- .join('\\b|\\b') +
- '\\b');
- const unaryOperatorsRE = new RegExp('\\b' +
- 'delete,typeof,void'.split(',').join('\\s*\\([^\\)]*\\)|\\b') +
- '\\s*\\([^\\)]*\\)');
- const stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
- function detectErrors(ast, warn) {
- if (ast) {
- checkNode(ast, warn);
- }
- }
- function checkNode(node, warn) {
- if (node.type === 1) {
- for (const name in node.attrsMap) {
- if (dirRE.test(name)) {
- const value = node.attrsMap[name];
- if (value) {
- const range = node.rawAttrsMap[name];
- if (name === 'v-for') {
- checkFor(node, `v-for="${value}"`, warn, range);
- }
- else if (name === 'v-slot' || name[0] === '#') {
- checkFunctionParameterExpression(value, `${name}="${value}"`, warn, range);
- }
- else if (onRE.test(name)) {
- checkEvent(value, `${name}="${value}"`, warn, range);
- }
- else {
- checkExpression(value, `${name}="${value}"`, warn, range);
- }
- }
- }
- }
- if (node.children) {
- for (let i = 0; i < node.children.length; i++) {
- checkNode(node.children[i], warn);
- }
- }
- }
- else if (node.type === 2) {
- checkExpression(node.expression, node.text, warn, node);
- }
- }
- function checkEvent(exp, text, warn, range) {
- const stripped = exp.replace(stripStringRE, '');
- const keywordMatch = stripped.match(unaryOperatorsRE);
- if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {
- warn(`avoid using JavaScript unary operator as property name: ` +
- `"${keywordMatch[0]}" in expression ${text.trim()}`, range);
- }
- checkExpression(exp, text, warn, range);
- }
- function checkFor(node, text, warn, range) {
- checkExpression(node.for || '', text, warn, range);
- checkIdentifier(node.alias, 'v-for alias', text, warn, range);
- checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range);
- checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range);
- }
- function checkIdentifier(ident, type, text, warn, range) {
- if (typeof ident === 'string') {
- try {
- new Function(`var ${ident}=_`);
- }
- catch (e) {
- warn(`invalid ${type} "${ident}" in expression: ${text.trim()}`, range);
- }
- }
- }
- function checkExpression(exp, text, warn, range) {
- try {
- new Function(`return ${exp}`);
- }
- catch (e) {
- const keywordMatch = exp
- .replace(stripStringRE, '')
- .match(prohibitedKeywordRE);
- if (keywordMatch) {
- warn(`avoid using JavaScript keyword as property name: ` +
- `"${keywordMatch[0]}"\n Raw expression: ${text.trim()}`, range);
- }
- else {
- warn(`invalid expression: ${e.message} in\n\n` +
- ` ${exp}\n\n` +
- ` Raw expression: ${text.trim()}\n`, range);
- }
- }
- }
- function checkFunctionParameterExpression(exp, text, warn, range) {
- try {
- new Function(exp, '');
- }
- catch (e) {
- warn(`invalid function parameter expression: ${e.message} in\n\n` +
- ` ${exp}\n\n` +
- ` Raw expression: ${text.trim()}\n`, range);
- }
- }
- const range = 2;
- function generateCodeFrame(source, start = 0, end = source.length) {
- const lines = source.split(/\r?\n/);
- let count = 0;
- const res = [];
- for (let i = 0; i < lines.length; i++) {
- count += lines[i].length + 1;
- if (count >= start) {
- for (let j = i - range; j <= i + range || end > count; j++) {
- if (j < 0 || j >= lines.length)
- continue;
- res.push(`${j + 1}${repeat(` `, 3 - String(j + 1).length)}| ${lines[j]}`);
- const lineLength = lines[j].length;
- if (j === i) {
-
- const pad = start - (count - lineLength) + 1;
- const length = end > count ? lineLength - pad : end - start;
- res.push(` | ` + repeat(` `, pad) + repeat(`^`, length));
- }
- else if (j > i) {
- if (end > count) {
- const length = Math.min(end - count, lineLength);
- res.push(` | ` + repeat(`^`, length));
- }
- count += lineLength + 1;
- }
- }
- break;
- }
- }
- return res.join('\n');
- }
- function repeat(str, n) {
- let result = '';
- if (n > 0) {
-
- while (true) {
-
- if (n & 1)
- result += str;
- n >>>= 1;
- if (n <= 0)
- break;
- str += str;
- }
- }
- return result;
- }
- function createFunction(code, errors) {
- try {
- return new Function(code);
- }
- catch (err) {
- errors.push({ err, code });
- return noop;
- }
- }
- function createCompileToFunctionFn(compile) {
- const cache = Object.create(null);
- return function compileToFunctions(template, options, vm) {
- options = extend({}, options);
- const warn = options.warn || warn$2;
- delete options.warn;
-
- {
-
- try {
- new Function('return 1');
- }
- catch (e) {
- if (e.toString().match(/unsafe-eval|CSP/)) {
- warn('It seems you are using the standalone build of Vue.js in an ' +
- 'environment with Content Security Policy that prohibits unsafe-eval. ' +
- 'The template compiler cannot work in this environment. Consider ' +
- 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
- 'templates into render functions.');
- }
- }
- }
-
- const key = options.delimiters
- ? String(options.delimiters) + template
- : template;
- if (cache[key]) {
- return cache[key];
- }
-
- const compiled = compile(template, options);
-
- {
- if (compiled.errors && compiled.errors.length) {
- if (options.outputSourceRange) {
- compiled.errors.forEach(e => {
- warn(`Error compiling template:\n\n${e.msg}\n\n` +
- generateCodeFrame(template, e.start, e.end), vm);
- });
- }
- else {
- warn(`Error compiling template:\n\n${template}\n\n` +
- compiled.errors.map(e => `- ${e}`).join('\n') +
- '\n', vm);
- }
- }
- if (compiled.tips && compiled.tips.length) {
- if (options.outputSourceRange) {
- compiled.tips.forEach(e => tip(e.msg, vm));
- }
- else {
- compiled.tips.forEach(msg => tip(msg, vm));
- }
- }
- }
-
- const res = {};
- const fnGenErrors = [];
- res.render = createFunction(compiled.render, fnGenErrors);
- res.staticRenderFns = compiled.staticRenderFns.map(code => {
- return createFunction(code, fnGenErrors);
- });
-
-
-
-
- {
- if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
- warn(`Failed to generate render function:\n\n` +
- fnGenErrors
- .map(({ err, code }) => `${err.toString()} in\n\n${code}\n`)
- .join('\n'), vm);
- }
- }
- return (cache[key] = res);
- };
- }
- function createCompilerCreator(baseCompile) {
- return function createCompiler(baseOptions) {
- function compile(template, options) {
- const finalOptions = Object.create(baseOptions);
- const errors = [];
- const tips = [];
- let warn = (msg, range, tip) => {
- (tip ? tips : errors).push(msg);
- };
- if (options) {
- if (options.outputSourceRange) {
-
- const leadingSpaceLength = template.match(/^\s*/)[0].length;
- warn = (msg, range, tip) => {
- const data = typeof msg === 'string' ? { msg } : msg;
- if (range) {
- if (range.start != null) {
- data.start = range.start + leadingSpaceLength;
- }
- if (range.end != null) {
- data.end = range.end + leadingSpaceLength;
- }
- }
- (tip ? tips : errors).push(data);
- };
- }
-
- if (options.modules) {
- finalOptions.modules = (baseOptions.modules || []).concat(options.modules);
- }
-
- if (options.directives) {
- finalOptions.directives = extend(Object.create(baseOptions.directives || null), options.directives);
- }
-
- for (const key in options) {
- if (key !== 'modules' && key !== 'directives') {
- finalOptions[key] = options[key];
- }
- }
- }
- finalOptions.warn = warn;
- const compiled = baseCompile(template.trim(), finalOptions);
- {
- detectErrors(compiled.ast, warn);
- }
- compiled.errors = errors;
- compiled.tips = tips;
- return compiled;
- }
- return {
- compile,
- compileToFunctions: createCompileToFunctionFn(compile)
- };
- };
- }
- const createCompiler = createCompilerCreator(function baseCompile(template, options) {
- const ast = parse(template.trim(), options);
- if (options.optimize !== false) {
- optimize(ast, options);
- }
- const code = generate(ast, options);
- return {
- ast,
- render: code.render,
- staticRenderFns: code.staticRenderFns
- };
- });
- const { compile, compileToFunctions } = createCompiler(baseOptions);
- let div;
- function getShouldDecode(href) {
- div = div || document.createElement('div');
- div.innerHTML = href ? `<a href="\n"/>` : `<div a="\n"/>`;
- return div.innerHTML.indexOf(' ') > 0;
- }
- const shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;
- const shouldDecodeNewlinesForHref = inBrowser
- ? getShouldDecode(true)
- : false;
- const idToTemplate = cached(id => {
- const el = query(id);
- return el && el.innerHTML;
- });
- const mount = Vue.prototype.$mount;
- Vue.prototype.$mount = function (el, hydrating) {
- el = el && query(el);
-
- if (el === document.body || el === document.documentElement) {
- warn$2(`Do not mount Vue to <html> or <body> - mount to normal elements instead.`);
- return this;
- }
- const options = this.$options;
-
- if (!options.render) {
- let template = options.template;
- if (template) {
- if (typeof template === 'string') {
- if (template.charAt(0) === '#') {
- template = idToTemplate(template);
-
- if (!template) {
- warn$2(`Template element not found or is empty: ${options.template}`, this);
- }
- }
- }
- else if (template.nodeType) {
- template = template.innerHTML;
- }
- else {
- {
- warn$2('invalid template option:' + template, this);
- }
- return this;
- }
- }
- else if (el) {
-
- template = getOuterHTML(el);
- }
- if (template) {
-
- if (config.performance && mark) {
- mark('compile');
- }
- const { render, staticRenderFns } = compileToFunctions(template, {
- outputSourceRange: true,
- shouldDecodeNewlines,
- shouldDecodeNewlinesForHref,
- delimiters: options.delimiters,
- comments: options.comments
- }, this);
- options.render = render;
- options.staticRenderFns = staticRenderFns;
-
- if (config.performance && mark) {
- mark('compile end');
- measure(`vue ${this._name} compile`, 'compile', 'compile end');
- }
- }
- }
- return mount.call(this, el, hydrating);
- };
- function getOuterHTML(el) {
- if (el.outerHTML) {
- return el.outerHTML;
- }
- else {
- const container = document.createElement('div');
- container.appendChild(el.cloneNode(true));
- return container.innerHTML;
- }
- }
- Vue.compile = compileToFunctions;
- export { EffectScope, computed, customRef, Vue as default, defineAsyncComponent, defineComponent, del, effectScope, getCurrentInstance, getCurrentScope, h, inject, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, mergeDefaults, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, provide, proxyRefs, reactive, readonly, ref$1 as ref, set, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useListeners, useSlots, version, watch, watchEffect, watchPostEffect, watchSyncEffect };
|