components.js 1.4 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161271622716327164271652716627167271682716927170271712717227173271742717527176271772717827179271802718127182271832718427185271862718727188271892719027191271922719327194271952719627197271982719927200272012720227203272042720527206272072720827209272102721127212272132721427215272162721727218272192722027221272222722327224272252722627227272282722927230272312723227233272342723527236272372723827239272402724127242272432724427245272462724727248272492725027251272522725327254272552725627257272582725927260272612726227263272642726527266272672726827269272702727127272272732727427275272762727727278272792728027281272822728327284272852728627287272882728927290272912729227293272942729527296272972729827299273002730127302273032730427305273062730727308273092731027311273122731327314273152731627317273182731927320273212732227323273242732527326273272732827329273302733127332273332733427335273362733727338273392734027341273422734327344273452734627347273482734927350273512735227353273542735527356273572735827359273602736127362273632736427365273662736727368273692737027371273722737327374273752737627377273782737927380273812738227383273842738527386273872738827389273902739127392273932739427395273962739727398273992740027401274022740327404274052740627407274082740927410274112741227413274142741527416274172741827419274202742127422274232742427425274262742727428274292743027431274322743327434274352743627437274382743927440274412744227443274442744527446274472744827449274502745127452274532745427455274562745727458274592746027461274622746327464274652746627467274682746927470274712747227473274742747527476274772747827479274802748127482274832748427485274862748727488274892749027491274922749327494274952749627497274982749927500275012750227503275042750527506275072750827509275102751127512275132751427515275162751727518275192752027521275222752327524275252752627527275282752927530275312753227533275342753527536275372753827539275402754127542275432754427545275462754727548275492755027551275522755327554275552755627557275582755927560275612756227563275642756527566275672756827569275702757127572275732757427575275762757727578275792758027581275822758327584275852758627587275882758927590275912759227593275942759527596275972759827599276002760127602276032760427605276062760727608276092761027611276122761327614276152761627617276182761927620276212762227623276242762527626276272762827629276302763127632276332763427635276362763727638276392764027641276422764327644276452764627647276482764927650276512765227653276542765527656276572765827659276602766127662276632766427665276662766727668276692767027671276722767327674276752767627677276782767927680276812768227683276842768527686276872768827689276902769127692276932769427695276962769727698276992770027701277022770327704277052770627707277082770927710277112771227713277142771527716277172771827719277202772127722277232772427725277262772727728277292773027731277322773327734277352773627737277382773927740277412774227743277442774527746277472774827749277502775127752277532775427755277562775727758277592776027761277622776327764277652776627767277682776927770277712777227773277742777527776277772777827779277802778127782277832778427785277862778727788277892779027791277922779327794277952779627797277982779927800278012780227803278042780527806278072780827809278102781127812278132781427815278162781727818278192782027821278222782327824278252782627827278282782927830278312783227833278342783527836278372783827839278402784127842278432784427845278462784727848278492785027851278522785327854278552785627857278582785927860278612786227863278642786527866278672786827869278702787127872278732787427875278762787727878278792788027881278822788327884278852788627887278882788927890278912789227893278942789527896278972789827899279002790127902279032790427905279062790727908279092791027911279122791327914279152791627917279182791927920279212792227923279242792527926279272792827929279302793127932279332793427935279362793727938279392794027941279422794327944279452794627947279482794927950279512795227953279542795527956279572795827959279602796127962279632796427965279662796727968279692797027971279722797327974279752797627977279782797927980279812798227983279842798527986279872798827989279902799127992279932799427995279962799727998279992800028001280022800328004280052800628007280082800928010280112801228013280142801528016280172801828019280202802128022280232802428025280262802728028280292803028031280322803328034280352803628037280382803928040280412804228043280442804528046280472804828049280502805128052280532805428055280562805728058280592806028061280622806328064280652806628067280682806928070280712807228073280742807528076280772807828079280802808128082280832808428085280862808728088280892809028091280922809328094280952809628097280982809928100281012810228103281042810528106281072810828109281102811128112281132811428115281162811728118281192812028121281222812328124281252812628127281282812928130281312813228133281342813528136281372813828139281402814128142281432814428145281462814728148281492815028151281522815328154281552815628157281582815928160281612816228163281642816528166281672816828169281702817128172281732817428175281762817728178281792818028181281822818328184281852818628187281882818928190281912819228193281942819528196281972819828199282002820128202282032820428205282062820728208282092821028211282122821328214282152821628217282182821928220282212822228223282242822528226282272822828229282302823128232282332823428235282362823728238282392824028241282422824328244282452824628247282482824928250282512825228253282542825528256282572825828259282602826128262282632826428265282662826728268282692827028271282722827328274282752827628277282782827928280282812828228283282842828528286282872828828289282902829128292282932829428295282962829728298282992830028301283022830328304283052830628307283082830928310283112831228313283142831528316283172831828319283202832128322283232832428325283262832728328283292833028331283322833328334283352833628337283382833928340283412834228343283442834528346283472834828349283502835128352283532835428355283562835728358283592836028361283622836328364283652836628367283682836928370283712837228373283742837528376283772837828379283802838128382283832838428385283862838728388283892839028391283922839328394283952839628397283982839928400284012840228403284042840528406284072840828409284102841128412284132841428415284162841728418284192842028421284222842328424284252842628427284282842928430284312843228433284342843528436284372843828439284402844128442284432844428445284462844728448284492845028451284522845328454284552845628457284582845928460284612846228463284642846528466284672846828469284702847128472284732847428475284762847728478284792848028481284822848328484284852848628487284882848928490284912849228493284942849528496284972849828499285002850128502285032850428505285062850728508285092851028511285122851328514285152851628517285182851928520285212852228523285242852528526285272852828529285302853128532285332853428535285362853728538285392854028541285422854328544285452854628547285482854928550285512855228553285542855528556285572855828559285602856128562285632856428565285662856728568285692857028571285722857328574285752857628577285782857928580285812858228583285842858528586285872858828589285902859128592285932859428595285962859728598285992860028601286022860328604286052860628607286082860928610286112861228613286142861528616286172861828619286202862128622286232862428625286262862728628286292863028631286322863328634286352863628637286382863928640286412864228643286442864528646286472864828649286502865128652286532865428655286562865728658286592866028661286622866328664286652866628667286682866928670286712867228673286742867528676286772867828679286802868128682286832868428685286862868728688286892869028691286922869328694286952869628697286982869928700287012870228703287042870528706287072870828709287102871128712287132871428715287162871728718287192872028721287222872328724287252872628727287282872928730287312873228733287342873528736287372873828739287402874128742287432874428745287462874728748287492875028751287522875328754287552875628757287582875928760287612876228763287642876528766287672876828769287702877128772287732877428775287762877728778287792878028781287822878328784287852878628787287882878928790287912879228793287942879528796287972879828799288002880128802288032880428805288062880728808288092881028811288122881328814288152881628817288182881928820288212882228823288242882528826288272882828829288302883128832288332883428835288362883728838288392884028841288422884328844288452884628847288482884928850288512885228853288542885528856288572885828859288602886128862288632886428865288662886728868288692887028871288722887328874288752887628877288782887928880288812888228883288842888528886288872888828889288902889128892288932889428895288962889728898288992890028901289022890328904289052890628907289082890928910289112891228913289142891528916289172891828919289202892128922289232892428925289262892728928289292893028931289322893328934289352893628937289382893928940289412894228943289442894528946289472894828949289502895128952289532895428955289562895728958289592896028961289622896328964289652896628967289682896928970289712897228973289742897528976289772897828979289802898128982289832898428985289862898728988289892899028991289922899328994289952899628997289982899929000290012900229003290042900529006290072900829009290102901129012290132901429015290162901729018290192902029021290222902329024290252902629027290282902929030290312903229033290342903529036290372903829039290402904129042290432904429045290462904729048290492905029051290522905329054290552905629057290582905929060290612906229063290642906529066290672906829069290702907129072290732907429075290762907729078290792908029081290822908329084290852908629087290882908929090290912909229093290942909529096290972909829099291002910129102291032910429105291062910729108291092911029111291122911329114291152911629117291182911929120291212912229123291242912529126291272912829129291302913129132291332913429135291362913729138291392914029141291422914329144291452914629147291482914929150291512915229153291542915529156291572915829159291602916129162291632916429165291662916729168291692917029171291722917329174291752917629177291782917929180291812918229183291842918529186291872918829189291902919129192291932919429195291962919729198291992920029201292022920329204292052920629207292082920929210292112921229213292142921529216292172921829219292202922129222292232922429225292262922729228292292923029231292322923329234292352923629237292382923929240292412924229243292442924529246292472924829249292502925129252292532925429255292562925729258292592926029261292622926329264292652926629267292682926929270292712927229273292742927529276292772927829279292802928129282292832928429285292862928729288292892929029291292922929329294292952929629297292982929929300293012930229303293042930529306293072930829309293102931129312293132931429315293162931729318293192932029321293222932329324293252932629327293282932929330293312933229333293342933529336293372933829339293402934129342293432934429345293462934729348293492935029351293522935329354293552935629357293582935929360293612936229363293642936529366293672936829369293702937129372293732937429375293762937729378293792938029381293822938329384293852938629387293882938929390293912939229393293942939529396293972939829399294002940129402294032940429405294062940729408294092941029411294122941329414294152941629417294182941929420294212942229423294242942529426294272942829429294302943129432294332943429435294362943729438294392944029441294422944329444294452944629447294482944929450294512945229453294542945529456294572945829459294602946129462294632946429465294662946729468294692947029471294722947329474294752947629477294782947929480294812948229483294842948529486294872948829489294902949129492294932949429495294962949729498294992950029501295022950329504295052950629507295082950929510295112951229513295142951529516295172951829519295202952129522295232952429525295262952729528295292953029531295322953329534295352953629537295382953929540295412954229543295442954529546295472954829549295502955129552295532955429555295562955729558295592956029561295622956329564295652956629567295682956929570295712957229573295742957529576295772957829579295802958129582295832958429585295862958729588295892959029591295922959329594295952959629597295982959929600296012960229603296042960529606296072960829609296102961129612296132961429615296162961729618296192962029621296222962329624296252962629627296282962929630296312963229633296342963529636296372963829639296402964129642296432964429645296462964729648296492965029651296522965329654296552965629657296582965929660296612966229663296642966529666296672966829669296702967129672296732967429675296762967729678296792968029681296822968329684296852968629687296882968929690296912969229693296942969529696296972969829699297002970129702297032970429705297062970729708297092971029711297122971329714297152971629717297182971929720297212972229723297242972529726297272972829729297302973129732297332973429735297362973729738297392974029741297422974329744297452974629747297482974929750297512975229753297542975529756297572975829759297602976129762297632976429765297662976729768297692977029771297722977329774297752977629777297782977929780297812978229783297842978529786297872978829789297902979129792297932979429795297962979729798297992980029801298022980329804298052980629807298082980929810298112981229813298142981529816298172981829819298202982129822298232982429825298262982729828298292983029831298322983329834298352983629837298382983929840298412984229843298442984529846298472984829849298502985129852298532985429855298562985729858298592986029861298622986329864298652986629867298682986929870298712987229873298742987529876298772987829879298802988129882298832988429885298862988729888298892989029891298922989329894298952989629897298982989929900299012990229903299042990529906299072990829909299102991129912299132991429915299162991729918299192992029921299222992329924299252992629927299282992929930299312993229933299342993529936299372993829939299402994129942299432994429945299462994729948299492995029951299522995329954299552995629957299582995929960299612996229963299642996529966299672996829969299702997129972299732997429975299762997729978299792998029981299822998329984299852998629987299882998929990299912999229993299942999529996299972999829999300003000130002300033000430005300063000730008300093001030011300123001330014300153001630017300183001930020300213002230023300243002530026300273002830029300303003130032300333003430035300363003730038300393004030041300423004330044300453004630047300483004930050300513005230053300543005530056300573005830059300603006130062300633006430065300663006730068300693007030071300723007330074300753007630077300783007930080300813008230083300843008530086300873008830089300903009130092300933009430095300963009730098300993010030101301023010330104301053010630107301083010930110301113011230113301143011530116301173011830119301203012130122301233012430125301263012730128301293013030131301323013330134301353013630137301383013930140301413014230143301443014530146301473014830149301503015130152301533015430155301563015730158301593016030161301623016330164301653016630167301683016930170301713017230173301743017530176301773017830179301803018130182301833018430185301863018730188301893019030191301923019330194301953019630197301983019930200302013020230203302043020530206302073020830209302103021130212302133021430215302163021730218302193022030221302223022330224302253022630227302283022930230302313023230233302343023530236302373023830239302403024130242302433024430245302463024730248302493025030251302523025330254302553025630257302583025930260302613026230263302643026530266302673026830269302703027130272302733027430275302763027730278302793028030281302823028330284302853028630287302883028930290302913029230293302943029530296302973029830299303003030130302303033030430305303063030730308303093031030311303123031330314303153031630317303183031930320303213032230323303243032530326303273032830329303303033130332303333033430335303363033730338303393034030341303423034330344303453034630347303483034930350303513035230353303543035530356303573035830359303603036130362303633036430365303663036730368303693037030371303723037330374303753037630377303783037930380303813038230383303843038530386303873038830389303903039130392303933039430395303963039730398303993040030401304023040330404304053040630407304083040930410304113041230413304143041530416304173041830419304203042130422304233042430425304263042730428304293043030431304323043330434304353043630437304383043930440304413044230443304443044530446304473044830449304503045130452304533045430455304563045730458304593046030461304623046330464304653046630467304683046930470304713047230473304743047530476304773047830479304803048130482304833048430485304863048730488304893049030491304923049330494304953049630497304983049930500305013050230503305043050530506305073050830509305103051130512305133051430515305163051730518305193052030521305223052330524305253052630527305283052930530305313053230533305343053530536305373053830539305403054130542305433054430545305463054730548305493055030551305523055330554305553055630557305583055930560305613056230563305643056530566305673056830569305703057130572305733057430575305763057730578305793058030581305823058330584305853058630587305883058930590305913059230593305943059530596305973059830599306003060130602306033060430605306063060730608306093061030611306123061330614306153061630617306183061930620306213062230623306243062530626306273062830629306303063130632306333063430635306363063730638306393064030641306423064330644306453064630647306483064930650306513065230653306543065530656306573065830659306603066130662306633066430665306663066730668306693067030671306723067330674306753067630677306783067930680306813068230683306843068530686306873068830689306903069130692306933069430695306963069730698306993070030701307023070330704307053070630707307083070930710307113071230713307143071530716307173071830719307203072130722307233072430725307263072730728307293073030731307323073330734307353073630737307383073930740307413074230743307443074530746307473074830749307503075130752307533075430755307563075730758307593076030761307623076330764307653076630767307683076930770307713077230773307743077530776307773077830779307803078130782307833078430785307863078730788307893079030791307923079330794307953079630797307983079930800308013080230803308043080530806308073080830809308103081130812308133081430815308163081730818308193082030821308223082330824308253082630827308283082930830308313083230833308343083530836308373083830839308403084130842308433084430845308463084730848308493085030851308523085330854308553085630857308583085930860308613086230863308643086530866308673086830869308703087130872308733087430875308763087730878308793088030881308823088330884308853088630887308883088930890308913089230893308943089530896308973089830899309003090130902309033090430905309063090730908309093091030911309123091330914309153091630917309183091930920309213092230923309243092530926309273092830929309303093130932309333093430935309363093730938309393094030941309423094330944309453094630947309483094930950309513095230953309543095530956309573095830959309603096130962309633096430965309663096730968309693097030971309723097330974309753097630977309783097930980309813098230983309843098530986309873098830989309903099130992309933099430995309963099730998309993100031001310023100331004310053100631007310083100931010310113101231013310143101531016310173101831019310203102131022310233102431025310263102731028310293103031031310323103331034310353103631037310383103931040310413104231043310443104531046310473104831049310503105131052310533105431055310563105731058310593106031061310623106331064310653106631067310683106931070310713107231073310743107531076310773107831079310803108131082310833108431085310863108731088310893109031091310923109331094310953109631097310983109931100311013110231103311043110531106311073110831109311103111131112311133111431115311163111731118311193112031121311223112331124311253112631127311283112931130311313113231133311343113531136311373113831139311403114131142311433114431145311463114731148311493115031151311523115331154311553115631157311583115931160311613116231163311643116531166311673116831169311703117131172311733117431175311763117731178311793118031181311823118331184311853118631187311883118931190311913119231193311943119531196311973119831199312003120131202312033120431205312063120731208312093121031211312123121331214312153121631217312183121931220312213122231223312243122531226312273122831229312303123131232312333123431235312363123731238312393124031241312423124331244312453124631247312483124931250312513125231253312543125531256312573125831259312603126131262312633126431265312663126731268312693127031271312723127331274312753127631277312783127931280312813128231283312843128531286312873128831289312903129131292312933129431295312963129731298312993130031301313023130331304313053130631307313083130931310313113131231313313143131531316313173131831319313203132131322313233132431325313263132731328313293133031331313323133331334313353133631337313383133931340313413134231343313443134531346313473134831349313503135131352313533135431355313563135731358313593136031361313623136331364313653136631367313683136931370313713137231373313743137531376313773137831379313803138131382313833138431385313863138731388313893139031391313923139331394313953139631397313983139931400314013140231403314043140531406314073140831409314103141131412314133141431415314163141731418314193142031421314223142331424314253142631427314283142931430314313143231433314343143531436314373143831439314403144131442314433144431445314463144731448314493145031451314523145331454314553145631457314583145931460314613146231463314643146531466314673146831469314703147131472314733147431475314763147731478314793148031481314823148331484314853148631487314883148931490314913149231493314943149531496314973149831499315003150131502315033150431505315063150731508315093151031511315123151331514315153151631517315183151931520315213152231523315243152531526315273152831529315303153131532315333153431535315363153731538315393154031541315423154331544315453154631547315483154931550315513155231553315543155531556315573155831559315603156131562315633156431565315663156731568315693157031571315723157331574315753157631577315783157931580315813158231583315843158531586315873158831589315903159131592315933159431595315963159731598315993160031601316023160331604316053160631607316083160931610316113161231613316143161531616316173161831619316203162131622316233162431625316263162731628316293163031631316323163331634316353163631637316383163931640316413164231643316443164531646316473164831649316503165131652316533165431655316563165731658316593166031661316623166331664316653166631667316683166931670316713167231673316743167531676316773167831679316803168131682316833168431685316863168731688316893169031691316923169331694316953169631697316983169931700317013170231703317043170531706317073170831709317103171131712317133171431715317163171731718317193172031721317223172331724317253172631727317283172931730317313173231733317343173531736317373173831739317403174131742317433174431745317463174731748317493175031751317523175331754317553175631757317583175931760317613176231763317643176531766317673176831769317703177131772317733177431775317763177731778317793178031781317823178331784317853178631787317883178931790317913179231793317943179531796317973179831799318003180131802318033180431805318063180731808318093181031811318123181331814318153181631817318183181931820318213182231823318243182531826318273182831829318303183131832318333183431835318363183731838318393184031841318423184331844318453184631847318483184931850318513185231853318543185531856318573185831859318603186131862318633186431865318663186731868318693187031871318723187331874318753187631877318783187931880318813188231883318843188531886318873188831889318903189131892318933189431895318963189731898318993190031901319023190331904319053190631907319083190931910319113191231913319143191531916319173191831919319203192131922319233192431925319263192731928319293193031931319323193331934319353193631937319383193931940319413194231943319443194531946319473194831949319503195131952319533195431955319563195731958319593196031961319623196331964319653196631967319683196931970319713197231973319743197531976319773197831979319803198131982319833198431985319863198731988319893199031991319923199331994319953199631997319983199932000320013200232003320043200532006320073200832009320103201132012320133201432015320163201732018320193202032021320223202332024320253202632027320283202932030320313203232033320343203532036320373203832039320403204132042320433204432045320463204732048320493205032051320523205332054320553205632057320583205932060320613206232063320643206532066320673206832069320703207132072320733207432075320763207732078320793208032081320823208332084320853208632087320883208932090320913209232093320943209532096320973209832099321003210132102321033210432105321063210732108321093211032111321123211332114321153211632117321183211932120321213212232123321243212532126321273212832129321303213132132321333213432135321363213732138321393214032141321423214332144321453214632147321483214932150321513215232153321543215532156321573215832159321603216132162321633216432165321663216732168321693217032171321723217332174321753217632177321783217932180321813218232183321843218532186321873218832189321903219132192321933219432195321963219732198321993220032201322023220332204322053220632207322083220932210322113221232213322143221532216322173221832219322203222132222322233222432225322263222732228322293223032231322323223332234322353223632237322383223932240322413224232243322443224532246322473224832249322503225132252322533225432255322563225732258322593226032261322623226332264322653226632267322683226932270322713227232273322743227532276322773227832279322803228132282322833228432285322863228732288322893229032291322923229332294322953229632297322983229932300323013230232303323043230532306323073230832309323103231132312323133231432315323163231732318323193232032321323223232332324323253232632327323283232932330323313233232333323343233532336323373233832339323403234132342323433234432345323463234732348323493235032351323523235332354323553235632357323583235932360323613236232363323643236532366323673236832369323703237132372323733237432375323763237732378323793238032381323823238332384323853238632387323883238932390323913239232393323943239532396323973239832399324003240132402324033240432405324063240732408324093241032411324123241332414324153241632417324183241932420324213242232423324243242532426324273242832429324303243132432324333243432435324363243732438324393244032441324423244332444324453244632447324483244932450324513245232453324543245532456324573245832459324603246132462324633246432465324663246732468324693247032471324723247332474324753247632477324783247932480324813248232483324843248532486324873248832489324903249132492324933249432495324963249732498324993250032501325023250332504325053250632507325083250932510325113251232513325143251532516325173251832519325203252132522325233252432525325263252732528325293253032531325323253332534325353253632537325383253932540325413254232543325443254532546325473254832549325503255132552325533255432555325563255732558325593256032561325623256332564325653256632567325683256932570325713257232573325743257532576325773257832579325803258132582325833258432585325863258732588325893259032591325923259332594325953259632597325983259932600326013260232603326043260532606326073260832609326103261132612326133261432615326163261732618326193262032621326223262332624326253262632627326283262932630326313263232633326343263532636326373263832639326403264132642326433264432645326463264732648326493265032651326523265332654326553265632657326583265932660326613266232663326643266532666326673266832669326703267132672326733267432675326763267732678326793268032681326823268332684326853268632687326883268932690326913269232693326943269532696326973269832699327003270132702327033270432705327063270732708327093271032711327123271332714327153271632717327183271932720327213272232723327243272532726327273272832729327303273132732327333273432735327363273732738327393274032741327423274332744327453274632747327483274932750327513275232753327543275532756327573275832759327603276132762327633276432765327663276732768327693277032771327723277332774327753277632777327783277932780327813278232783327843278532786327873278832789327903279132792327933279432795327963279732798327993280032801328023280332804328053280632807328083280932810328113281232813328143281532816328173281832819328203282132822328233282432825328263282732828328293283032831328323283332834328353283632837328383283932840328413284232843328443284532846328473284832849328503285132852328533285432855328563285732858328593286032861328623286332864328653286632867328683286932870328713287232873328743287532876328773287832879328803288132882328833288432885328863288732888328893289032891328923289332894328953289632897328983289932900329013290232903329043290532906329073290832909329103291132912329133291432915329163291732918329193292032921329223292332924329253292632927329283292932930329313293232933329343293532936329373293832939329403294132942329433294432945329463294732948329493295032951329523295332954329553295632957329583295932960329613296232963329643296532966329673296832969329703297132972329733297432975329763297732978329793298032981329823298332984329853298632987329883298932990329913299232993329943299532996329973299832999330003300133002330033300433005330063300733008330093301033011330123301333014330153301633017330183301933020330213302233023330243302533026330273302833029330303303133032330333303433035330363303733038330393304033041330423304333044330453304633047330483304933050330513305233053330543305533056330573305833059330603306133062330633306433065330663306733068330693307033071330723307333074330753307633077330783307933080330813308233083330843308533086330873308833089330903309133092330933309433095330963309733098330993310033101331023310333104331053310633107331083310933110331113311233113331143311533116331173311833119331203312133122331233312433125331263312733128331293313033131331323313333134331353313633137331383313933140331413314233143331443314533146331473314833149331503315133152331533315433155331563315733158331593316033161331623316333164331653316633167331683316933170331713317233173331743317533176331773317833179331803318133182331833318433185331863318733188331893319033191331923319333194331953319633197331983319933200332013320233203332043320533206332073320833209332103321133212332133321433215332163321733218332193322033221332223322333224332253322633227332283322933230332313323233233332343323533236332373323833239332403324133242332433324433245332463324733248332493325033251332523325333254332553325633257332583325933260332613326233263332643326533266332673326833269332703327133272332733327433275332763327733278332793328033281332823328333284332853328633287332883328933290332913329233293332943329533296332973329833299333003330133302333033330433305333063330733308333093331033311333123331333314333153331633317333183331933320333213332233323333243332533326333273332833329333303333133332333333333433335333363333733338333393334033341333423334333344333453334633347333483334933350333513335233353333543335533356333573335833359333603336133362333633336433365333663336733368333693337033371333723337333374333753337633377333783337933380333813338233383333843338533386333873338833389333903339133392333933339433395333963339733398333993340033401334023340333404334053340633407334083340933410334113341233413334143341533416334173341833419334203342133422334233342433425334263342733428334293343033431334323343333434334353343633437334383343933440334413344233443334443344533446334473344833449334503345133452334533345433455334563345733458334593346033461334623346333464334653346633467334683346933470334713347233473334743347533476334773347833479334803348133482334833348433485334863348733488334893349033491334923349333494334953349633497334983349933500335013350233503335043350533506335073350833509335103351133512335133351433515335163351733518335193352033521335223352333524335253352633527335283352933530335313353233533335343353533536335373353833539335403354133542335433354433545335463354733548335493355033551335523355333554335553355633557335583355933560335613356233563335643356533566335673356833569335703357133572335733357433575335763357733578335793358033581335823358333584335853358633587335883358933590335913359233593335943359533596335973359833599336003360133602336033360433605336063360733608336093361033611336123361333614336153361633617336183361933620336213362233623336243362533626336273362833629336303363133632336333363433635336363363733638336393364033641336423364333644336453364633647336483364933650336513365233653336543365533656336573365833659336603366133662336633366433665336663366733668336693367033671336723367333674336753367633677336783367933680336813368233683336843368533686336873368833689336903369133692336933369433695336963369733698336993370033701337023370333704337053370633707337083370933710337113371233713337143371533716337173371833719337203372133722337233372433725337263372733728337293373033731337323373333734337353373633737337383373933740337413374233743337443374533746337473374833749337503375133752337533375433755337563375733758337593376033761337623376333764337653376633767337683376933770337713377233773337743377533776337773377833779337803378133782337833378433785337863378733788337893379033791337923379333794337953379633797337983379933800338013380233803338043380533806338073380833809338103381133812338133381433815338163381733818338193382033821338223382333824338253382633827338283382933830338313383233833338343383533836338373383833839338403384133842338433384433845338463384733848338493385033851338523385333854338553385633857338583385933860338613386233863338643386533866338673386833869338703387133872338733387433875338763387733878338793388033881338823388333884338853388633887338883388933890338913389233893338943389533896338973389833899339003390133902339033390433905339063390733908339093391033911339123391333914339153391633917339183391933920339213392233923339243392533926339273392833929339303393133932339333393433935339363393733938339393394033941339423394333944339453394633947339483394933950339513395233953339543395533956339573395833959339603396133962339633396433965339663396733968339693397033971339723397333974339753397633977339783397933980339813398233983339843398533986339873398833989339903399133992339933399433995339963399733998339993400034001340023400334004340053400634007340083400934010340113401234013340143401534016340173401834019340203402134022340233402434025340263402734028340293403034031340323403334034340353403634037340383403934040340413404234043340443404534046340473404834049340503405134052340533405434055340563405734058340593406034061340623406334064340653406634067340683406934070340713407234073340743407534076340773407834079340803408134082340833408434085340863408734088340893409034091340923409334094340953409634097340983409934100341013410234103341043410534106341073410834109341103411134112341133411434115341163411734118341193412034121341223412334124341253412634127341283412934130341313413234133341343413534136341373413834139341403414134142341433414434145341463414734148341493415034151341523415334154341553415634157341583415934160341613416234163341643416534166341673416834169341703417134172341733417434175341763417734178341793418034181341823418334184341853418634187341883418934190341913419234193341943419534196341973419834199342003420134202342033420434205342063420734208342093421034211342123421334214342153421634217342183421934220342213422234223342243422534226342273422834229342303423134232342333423434235342363423734238342393424034241342423424334244342453424634247342483424934250342513425234253342543425534256342573425834259342603426134262342633426434265342663426734268342693427034271342723427334274342753427634277342783427934280342813428234283342843428534286342873428834289342903429134292342933429434295342963429734298342993430034301343023430334304343053430634307343083430934310343113431234313343143431534316343173431834319343203432134322343233432434325343263432734328343293433034331343323433334334343353433634337343383433934340343413434234343343443434534346343473434834349343503435134352343533435434355343563435734358343593436034361343623436334364343653436634367343683436934370343713437234373343743437534376343773437834379343803438134382343833438434385343863438734388343893439034391343923439334394343953439634397343983439934400344013440234403344043440534406344073440834409344103441134412344133441434415344163441734418344193442034421344223442334424344253442634427344283442934430344313443234433344343443534436344373443834439344403444134442344433444434445344463444734448344493445034451344523445334454344553445634457344583445934460344613446234463344643446534466344673446834469344703447134472344733447434475344763447734478344793448034481344823448334484344853448634487344883448934490344913449234493344943449534496344973449834499345003450134502345033450434505345063450734508345093451034511345123451334514345153451634517345183451934520345213452234523345243452534526345273452834529345303453134532345333453434535345363453734538345393454034541345423454334544345453454634547345483454934550345513455234553345543455534556345573455834559345603456134562345633456434565345663456734568345693457034571345723457334574345753457634577345783457934580345813458234583345843458534586345873458834589345903459134592345933459434595345963459734598345993460034601346023460334604346053460634607346083460934610346113461234613346143461534616346173461834619346203462134622346233462434625346263462734628346293463034631346323463334634346353463634637346383463934640346413464234643346443464534646346473464834649346503465134652346533465434655346563465734658346593466034661346623466334664346653466634667346683466934670346713467234673346743467534676346773467834679346803468134682346833468434685346863468734688346893469034691346923469334694346953469634697346983469934700347013470234703347043470534706347073470834709347103471134712347133471434715347163471734718347193472034721347223472334724347253472634727347283472934730347313473234733347343473534736347373473834739347403474134742347433474434745347463474734748347493475034751347523475334754347553475634757347583475934760347613476234763347643476534766347673476834769347703477134772347733477434775347763477734778347793478034781347823478334784347853478634787347883478934790347913479234793347943479534796347973479834799348003480134802348033480434805348063480734808348093481034811348123481334814348153481634817348183481934820348213482234823348243482534826348273482834829348303483134832348333483434835348363483734838348393484034841348423484334844348453484634847348483484934850348513485234853348543485534856348573485834859348603486134862348633486434865348663486734868348693487034871348723487334874348753487634877348783487934880348813488234883348843488534886348873488834889348903489134892348933489434895348963489734898348993490034901349023490334904349053490634907349083490934910349113491234913349143491534916349173491834919349203492134922349233492434925349263492734928349293493034931349323493334934349353493634937349383493934940349413494234943349443494534946349473494834949349503495134952349533495434955349563495734958349593496034961349623496334964349653496634967349683496934970349713497234973349743497534976349773497834979349803498134982349833498434985349863498734988349893499034991349923499334994349953499634997349983499935000350013500235003350043500535006350073500835009350103501135012350133501435015350163501735018350193502035021350223502335024350253502635027350283502935030350313503235033350343503535036350373503835039350403504135042350433504435045350463504735048350493505035051350523505335054350553505635057350583505935060350613506235063350643506535066350673506835069350703507135072350733507435075350763507735078350793508035081350823508335084350853508635087350883508935090350913509235093350943509535096350973509835099351003510135102351033510435105351063510735108351093511035111351123511335114351153511635117351183511935120351213512235123351243512535126351273512835129351303513135132351333513435135351363513735138351393514035141351423514335144351453514635147351483514935150351513515235153351543515535156351573515835159351603516135162351633516435165351663516735168351693517035171351723517335174351753517635177351783517935180351813518235183351843518535186351873518835189351903519135192351933519435195351963519735198351993520035201352023520335204352053520635207352083520935210352113521235213352143521535216352173521835219352203522135222352233522435225352263522735228352293523035231352323523335234352353523635237352383523935240352413524235243352443524535246352473524835249352503525135252352533525435255352563525735258352593526035261352623526335264352653526635267352683526935270352713527235273352743527535276352773527835279352803528135282352833528435285352863528735288352893529035291352923529335294352953529635297352983529935300353013530235303353043530535306353073530835309353103531135312353133531435315353163531735318353193532035321353223532335324353253532635327353283532935330353313533235333353343533535336353373533835339353403534135342353433534435345353463534735348353493535035351353523535335354353553535635357353583535935360353613536235363353643536535366353673536835369353703537135372353733537435375353763537735378353793538035381353823538335384353853538635387353883538935390353913539235393353943539535396353973539835399354003540135402354033540435405354063540735408354093541035411354123541335414354153541635417354183541935420354213542235423354243542535426354273542835429354303543135432354333543435435354363543735438354393544035441354423544335444354453544635447354483544935450354513545235453354543545535456354573545835459354603546135462354633546435465354663546735468354693547035471354723547335474354753547635477354783547935480354813548235483354843548535486354873548835489354903549135492354933549435495354963549735498354993550035501355023550335504355053550635507355083550935510355113551235513355143551535516355173551835519355203552135522355233552435525355263552735528355293553035531355323553335534355353553635537355383553935540355413554235543355443554535546355473554835549355503555135552355533555435555355563555735558355593556035561355623556335564355653556635567355683556935570355713557235573355743557535576355773557835579355803558135582355833558435585355863558735588355893559035591355923559335594355953559635597355983559935600356013560235603356043560535606356073560835609356103561135612356133561435615356163561735618356193562035621356223562335624356253562635627356283562935630356313563235633356343563535636356373563835639356403564135642356433564435645356463564735648356493565035651356523565335654356553565635657356583565935660356613566235663356643566535666356673566835669356703567135672356733567435675356763567735678356793568035681356823568335684356853568635687356883568935690356913569235693356943569535696356973569835699357003570135702357033570435705357063570735708357093571035711357123571335714357153571635717357183571935720357213572235723357243572535726357273572835729357303573135732357333573435735357363573735738357393574035741357423574335744357453574635747357483574935750357513575235753357543575535756357573575835759357603576135762357633576435765357663576735768357693577035771357723577335774357753577635777357783577935780357813578235783357843578535786357873578835789357903579135792357933579435795357963579735798357993580035801358023580335804358053580635807358083580935810358113581235813358143581535816358173581835819358203582135822358233582435825358263582735828358293583035831358323583335834358353583635837358383583935840358413584235843358443584535846358473584835849358503585135852358533585435855358563585735858358593586035861358623586335864358653586635867358683586935870358713587235873358743587535876358773587835879358803588135882358833588435885358863588735888358893589035891358923589335894358953589635897358983589935900359013590235903359043590535906359073590835909359103591135912359133591435915359163591735918359193592035921359223592335924359253592635927359283592935930359313593235933359343593535936359373593835939359403594135942359433594435945359463594735948359493595035951359523595335954359553595635957359583595935960359613596235963359643596535966359673596835969359703597135972359733597435975359763597735978359793598035981359823598335984359853598635987359883598935990359913599235993359943599535996359973599835999360003600136002360033600436005360063600736008360093601036011360123601336014360153601636017360183601936020360213602236023360243602536026360273602836029360303603136032360333603436035360363603736038360393604036041360423604336044360453604636047360483604936050360513605236053360543605536056360573605836059360603606136062360633606436065360663606736068360693607036071360723607336074360753607636077360783607936080360813608236083360843608536086360873608836089360903609136092360933609436095360963609736098360993610036101361023610336104361053610636107361083610936110361113611236113361143611536116361173611836119361203612136122361233612436125361263612736128361293613036131361323613336134361353613636137361383613936140361413614236143361443614536146361473614836149361503615136152361533615436155361563615736158361593616036161361623616336164361653616636167361683616936170361713617236173361743617536176361773617836179361803618136182361833618436185361863618736188361893619036191361923619336194361953619636197361983619936200362013620236203362043620536206362073620836209362103621136212362133621436215362163621736218362193622036221362223622336224362253622636227362283622936230362313623236233362343623536236362373623836239362403624136242362433624436245362463624736248362493625036251362523625336254362553625636257362583625936260362613626236263362643626536266362673626836269362703627136272362733627436275362763627736278362793628036281362823628336284362853628636287362883628936290362913629236293362943629536296362973629836299363003630136302363033630436305363063630736308363093631036311363123631336314363153631636317363183631936320363213632236323363243632536326363273632836329363303633136332363333633436335363363633736338363393634036341363423634336344363453634636347363483634936350363513635236353363543635536356363573635836359363603636136362363633636436365363663636736368363693637036371363723637336374363753637636377363783637936380363813638236383363843638536386363873638836389363903639136392363933639436395363963639736398363993640036401364023640336404364053640636407364083640936410364113641236413364143641536416364173641836419364203642136422364233642436425364263642736428364293643036431364323643336434364353643636437364383643936440364413644236443364443644536446364473644836449364503645136452364533645436455364563645736458364593646036461364623646336464364653646636467364683646936470364713647236473364743647536476364773647836479364803648136482364833648436485364863648736488364893649036491364923649336494364953649636497364983649936500365013650236503365043650536506365073650836509365103651136512365133651436515365163651736518365193652036521365223652336524365253652636527365283652936530365313653236533365343653536536365373653836539365403654136542365433654436545365463654736548365493655036551365523655336554365553655636557365583655936560365613656236563365643656536566365673656836569365703657136572365733657436575365763657736578365793658036581365823658336584365853658636587365883658936590365913659236593365943659536596365973659836599366003660136602366033660436605366063660736608366093661036611366123661336614366153661636617366183661936620366213662236623366243662536626366273662836629366303663136632366333663436635366363663736638366393664036641366423664336644366453664636647366483664936650366513665236653366543665536656366573665836659366603666136662366633666436665366663666736668366693667036671366723667336674366753667636677366783667936680366813668236683366843668536686366873668836689366903669136692366933669436695366963669736698366993670036701367023670336704367053670636707367083670936710367113671236713367143671536716367173671836719367203672136722367233672436725367263672736728367293673036731367323673336734367353673636737367383673936740367413674236743367443674536746367473674836749367503675136752367533675436755367563675736758367593676036761367623676336764367653676636767367683676936770367713677236773367743677536776367773677836779367803678136782367833678436785367863678736788367893679036791367923679336794367953679636797367983679936800368013680236803368043680536806368073680836809368103681136812368133681436815368163681736818368193682036821368223682336824368253682636827368283682936830368313683236833368343683536836368373683836839368403684136842368433684436845368463684736848368493685036851368523685336854368553685636857368583685936860368613686236863368643686536866368673686836869368703687136872368733687436875368763687736878368793688036881368823688336884368853688636887368883688936890368913689236893368943689536896368973689836899369003690136902369033690436905369063690736908369093691036911369123691336914369153691636917369183691936920369213692236923369243692536926369273692836929369303693136932369333693436935369363693736938369393694036941369423694336944369453694636947369483694936950369513695236953369543695536956369573695836959369603696136962369633696436965369663696736968369693697036971369723697336974369753697636977369783697936980369813698236983369843698536986369873698836989369903699136992369933699436995369963699736998369993700037001370023700337004370053700637007370083700937010370113701237013370143701537016370173701837019370203702137022370233702437025370263702737028370293703037031370323703337034370353703637037370383703937040370413704237043370443704537046370473704837049370503705137052370533705437055370563705737058370593706037061370623706337064370653706637067370683706937070370713707237073370743707537076370773707837079370803708137082370833708437085370863708737088370893709037091370923709337094370953709637097370983709937100371013710237103371043710537106371073710837109371103711137112371133711437115371163711737118371193712037121371223712337124371253712637127371283712937130371313713237133371343713537136371373713837139371403714137142371433714437145371463714737148371493715037151371523715337154371553715637157371583715937160371613716237163371643716537166371673716837169371703717137172371733717437175371763717737178371793718037181371823718337184371853718637187371883718937190371913719237193371943719537196371973719837199372003720137202372033720437205372063720737208372093721037211372123721337214372153721637217372183721937220372213722237223372243722537226372273722837229372303723137232372333723437235372363723737238372393724037241372423724337244372453724637247372483724937250372513725237253372543725537256372573725837259372603726137262372633726437265372663726737268372693727037271372723727337274372753727637277372783727937280372813728237283372843728537286372873728837289372903729137292372933729437295372963729737298372993730037301373023730337304373053730637307373083730937310373113731237313373143731537316373173731837319373203732137322373233732437325373263732737328373293733037331373323733337334373353733637337373383733937340373413734237343373443734537346373473734837349373503735137352373533735437355373563735737358373593736037361373623736337364373653736637367373683736937370373713737237373373743737537376373773737837379373803738137382373833738437385373863738737388373893739037391373923739337394373953739637397373983739937400374013740237403374043740537406374073740837409374103741137412374133741437415374163741737418374193742037421374223742337424374253742637427374283742937430374313743237433374343743537436374373743837439374403744137442374433744437445374463744737448374493745037451374523745337454374553745637457374583745937460374613746237463374643746537466374673746837469374703747137472374733747437475374763747737478374793748037481374823748337484374853748637487374883748937490374913749237493374943749537496374973749837499375003750137502375033750437505375063750737508375093751037511375123751337514375153751637517375183751937520375213752237523375243752537526375273752837529375303753137532375333753437535375363753737538375393754037541375423754337544375453754637547375483754937550375513755237553375543755537556375573755837559375603756137562375633756437565375663756737568375693757037571375723757337574375753757637577375783757937580375813758237583375843758537586375873758837589375903759137592375933759437595375963759737598375993760037601376023760337604376053760637607376083760937610376113761237613376143761537616376173761837619376203762137622376233762437625376263762737628376293763037631376323763337634376353763637637376383763937640376413764237643376443764537646376473764837649376503765137652376533765437655376563765737658376593766037661376623766337664376653766637667376683766937670376713767237673376743767537676376773767837679376803768137682376833768437685376863768737688376893769037691376923769337694376953769637697376983769937700377013770237703377043770537706377073770837709377103771137712377133771437715377163771737718377193772037721377223772337724377253772637727377283772937730377313773237733377343773537736377373773837739377403774137742377433774437745377463774737748377493775037751377523775337754377553775637757377583775937760377613776237763377643776537766377673776837769377703777137772377733777437775377763777737778377793778037781377823778337784377853778637787377883778937790377913779237793377943779537796377973779837799378003780137802378033780437805378063780737808378093781037811378123781337814378153781637817378183781937820378213782237823378243782537826378273782837829378303783137832378333783437835378363783737838378393784037841378423784337844378453784637847378483784937850378513785237853378543785537856378573785837859378603786137862378633786437865378663786737868378693787037871378723787337874378753787637877378783787937880378813788237883378843788537886378873788837889378903789137892378933789437895378963789737898378993790037901379023790337904379053790637907379083790937910379113791237913379143791537916379173791837919379203792137922379233792437925379263792737928379293793037931379323793337934379353793637937379383793937940379413794237943379443794537946379473794837949379503795137952379533795437955379563795737958379593796037961379623796337964379653796637967379683796937970379713797237973379743797537976379773797837979379803798137982379833798437985379863798737988379893799037991379923799337994379953799637997379983799938000380013800238003380043800538006380073800838009380103801138012380133801438015380163801738018380193802038021380223802338024380253802638027380283802938030380313803238033380343803538036380373803838039380403804138042380433804438045380463804738048380493805038051380523805338054380553805638057380583805938060380613806238063380643806538066380673806838069380703807138072380733807438075380763807738078380793808038081380823808338084380853808638087380883808938090380913809238093380943809538096380973809838099381003810138102381033810438105381063810738108381093811038111381123811338114381153811638117381183811938120381213812238123381243812538126381273812838129381303813138132381333813438135381363813738138381393814038141381423814338144381453814638147381483814938150381513815238153381543815538156381573815838159381603816138162381633816438165381663816738168381693817038171381723817338174381753817638177381783817938180381813818238183381843818538186381873818838189381903819138192381933819438195381963819738198381993820038201382023820338204382053820638207382083820938210382113821238213382143821538216382173821838219382203822138222382233822438225382263822738228382293823038231382323823338234382353823638237382383823938240382413824238243382443824538246382473824838249382503825138252382533825438255382563825738258382593826038261382623826338264382653826638267382683826938270382713827238273382743827538276382773827838279382803828138282382833828438285382863828738288382893829038291382923829338294382953829638297382983829938300383013830238303383043830538306383073830838309383103831138312383133831438315383163831738318383193832038321383223832338324383253832638327383283832938330383313833238333383343833538336383373833838339383403834138342383433834438345383463834738348383493835038351383523835338354383553835638357383583835938360383613836238363383643836538366383673836838369383703837138372383733837438375383763837738378383793838038381383823838338384383853838638387383883838938390383913839238393383943839538396383973839838399384003840138402384033840438405384063840738408384093841038411384123841338414384153841638417384183841938420384213842238423384243842538426384273842838429384303843138432384333843438435384363843738438384393844038441384423844338444384453844638447384483844938450384513845238453384543845538456384573845838459384603846138462384633846438465384663846738468384693847038471384723847338474384753847638477384783847938480384813848238483384843848538486384873848838489384903849138492384933849438495384963849738498384993850038501385023850338504385053850638507385083850938510385113851238513385143851538516385173851838519385203852138522385233852438525385263852738528385293853038531385323853338534385353853638537385383853938540385413854238543385443854538546385473854838549385503855138552385533855438555385563855738558385593856038561385623856338564385653856638567385683856938570385713857238573385743857538576385773857838579385803858138582385833858438585385863858738588385893859038591385923859338594385953859638597385983859938600386013860238603386043860538606386073860838609386103861138612386133861438615386163861738618386193862038621386223862338624386253862638627386283862938630386313863238633386343863538636386373863838639386403864138642386433864438645386463864738648386493865038651386523865338654386553865638657386583865938660386613866238663386643866538666386673866838669386703867138672386733867438675386763867738678386793868038681386823868338684386853868638687386883868938690386913869238693386943869538696386973869838699387003870138702387033870438705387063870738708387093871038711387123871338714387153871638717387183871938720387213872238723387243872538726387273872838729387303873138732387333873438735387363873738738387393874038741387423874338744387453874638747387483874938750387513875238753387543875538756387573875838759387603876138762387633876438765387663876738768387693877038771387723877338774387753877638777387783877938780387813878238783387843878538786387873878838789387903879138792387933879438795387963879738798387993880038801388023880338804388053880638807388083880938810388113881238813388143881538816388173881838819388203882138822388233882438825388263882738828388293883038831388323883338834388353883638837388383883938840388413884238843388443884538846388473884838849388503885138852388533885438855388563885738858388593886038861388623886338864388653886638867388683886938870388713887238873388743887538876388773887838879388803888138882388833888438885388863888738888388893889038891388923889338894388953889638897388983889938900389013890238903389043890538906389073890838909389103891138912389133891438915389163891738918389193892038921389223892338924389253892638927389283892938930389313893238933389343893538936389373893838939389403894138942389433894438945389463894738948389493895038951389523895338954389553895638957389583895938960389613896238963389643896538966389673896838969389703897138972389733897438975389763897738978389793898038981389823898338984389853898638987389883898938990389913899238993389943899538996389973899838999390003900139002390033900439005390063900739008390093901039011390123901339014390153901639017390183901939020390213902239023390243902539026390273902839029390303903139032390333903439035390363903739038390393904039041390423904339044390453904639047390483904939050390513905239053390543905539056390573905839059390603906139062390633906439065390663906739068390693907039071390723907339074390753907639077390783907939080390813908239083390843908539086390873908839089390903909139092390933909439095390963909739098390993910039101391023910339104391053910639107391083910939110391113911239113391143911539116391173911839119391203912139122391233912439125391263912739128391293913039131391323913339134391353913639137391383913939140391413914239143391443914539146391473914839149391503915139152391533915439155391563915739158391593916039161391623916339164391653916639167391683916939170391713917239173391743917539176391773917839179391803918139182391833918439185391863918739188391893919039191391923919339194391953919639197391983919939200392013920239203392043920539206392073920839209392103921139212392133921439215392163921739218392193922039221392223922339224392253922639227392283922939230392313923239233392343923539236392373923839239392403924139242392433924439245392463924739248392493925039251392523925339254392553925639257392583925939260392613926239263392643926539266392673926839269392703927139272392733927439275392763927739278392793928039281392823928339284392853928639287392883928939290392913929239293392943929539296392973929839299393003930139302393033930439305393063930739308393093931039311393123931339314393153931639317393183931939320393213932239323393243932539326393273932839329393303933139332393333933439335393363933739338393393934039341393423934339344393453934639347393483934939350393513935239353393543935539356393573935839359393603936139362393633936439365393663936739368393693937039371393723937339374393753937639377393783937939380393813938239383393843938539386393873938839389393903939139392393933939439395393963939739398393993940039401394023940339404394053940639407394083940939410394113941239413394143941539416394173941839419394203942139422394233942439425394263942739428394293943039431394323943339434394353943639437394383943939440394413944239443394443944539446394473944839449394503945139452394533945439455394563945739458394593946039461394623946339464394653946639467394683946939470394713947239473394743947539476394773947839479394803948139482394833948439485394863948739488394893949039491394923949339494394953949639497394983949939500395013950239503395043950539506395073950839509395103951139512395133951439515395163951739518395193952039521395223952339524395253952639527395283952939530395313953239533395343953539536395373953839539395403954139542395433954439545395463954739548395493955039551395523955339554395553955639557395583955939560395613956239563395643956539566395673956839569395703957139572395733957439575395763957739578395793958039581395823958339584395853958639587395883958939590395913959239593395943959539596395973959839599396003960139602396033960439605396063960739608396093961039611396123961339614396153961639617396183961939620396213962239623396243962539626396273962839629396303963139632396333963439635396363963739638396393964039641396423964339644396453964639647396483964939650396513965239653396543965539656396573965839659396603966139662396633966439665396663966739668396693967039671396723967339674396753967639677396783967939680396813968239683396843968539686396873968839689396903969139692396933969439695396963969739698396993970039701397023970339704397053970639707397083970939710397113971239713397143971539716397173971839719397203972139722397233972439725397263972739728397293973039731397323973339734397353973639737397383973939740397413974239743397443974539746397473974839749397503975139752397533975439755397563975739758397593976039761397623976339764397653976639767397683976939770397713977239773397743977539776397773977839779397803978139782397833978439785397863978739788397893979039791397923979339794397953979639797397983979939800398013980239803398043980539806398073980839809398103981139812398133981439815398163981739818398193982039821398223982339824398253982639827398283982939830398313983239833398343983539836398373983839839398403984139842398433984439845398463984739848398493985039851398523985339854398553985639857398583985939860398613986239863398643986539866398673986839869398703987139872398733987439875398763987739878398793988039881398823988339884398853988639887398883988939890398913989239893398943989539896398973989839899399003990139902399033990439905399063990739908399093991039911399123991339914399153991639917399183991939920399213992239923399243992539926399273992839929399303993139932399333993439935399363993739938399393994039941399423994339944399453994639947399483994939950399513995239953399543995539956399573995839959399603996139962399633996439965399663996739968399693997039971399723997339974399753997639977399783997939980399813998239983399843998539986399873998839989399903999139992399933999439995399963999739998399994000040001400024000340004400054000640007400084000940010400114001240013400144001540016400174001840019400204002140022400234002440025400264002740028400294003040031400324003340034400354003640037400384003940040400414004240043400444004540046400474004840049400504005140052400534005440055400564005740058400594006040061400624006340064400654006640067400684006940070400714007240073400744007540076400774007840079400804008140082400834008440085400864008740088400894009040091400924009340094400954009640097400984009940100401014010240103401044010540106401074010840109401104011140112401134011440115401164011740118401194012040121401224012340124401254012640127401284012940130401314013240133401344013540136401374013840139401404014140142401434014440145401464014740148401494015040151401524015340154401554015640157401584015940160401614016240163401644016540166401674016840169401704017140172401734017440175401764017740178401794018040181401824018340184401854018640187401884018940190401914019240193401944019540196401974019840199402004020140202402034020440205402064020740208402094021040211402124021340214402154021640217402184021940220402214022240223402244022540226402274022840229402304023140232402334023440235402364023740238402394024040241402424024340244402454024640247402484024940250402514025240253402544025540256402574025840259402604026140262402634026440265402664026740268402694027040271402724027340274402754027640277402784027940280402814028240283402844028540286402874028840289402904029140292402934029440295402964029740298402994030040301403024030340304403054030640307403084030940310403114031240313403144031540316403174031840319403204032140322403234032440325403264032740328403294033040331403324033340334403354033640337403384033940340403414034240343403444034540346403474034840349403504035140352403534035440355403564035740358403594036040361403624036340364403654036640367403684036940370403714037240373403744037540376403774037840379403804038140382403834038440385403864038740388403894039040391403924039340394403954039640397403984039940400404014040240403404044040540406404074040840409404104041140412404134041440415404164041740418404194042040421404224042340424404254042640427404284042940430404314043240433404344043540436404374043840439404404044140442404434044440445404464044740448404494045040451404524045340454404554045640457404584045940460404614046240463404644046540466404674046840469404704047140472404734047440475404764047740478404794048040481404824048340484404854048640487404884048940490404914049240493404944049540496404974049840499405004050140502405034050440505405064050740508405094051040511405124051340514405154051640517405184051940520405214052240523405244052540526405274052840529405304053140532405334053440535405364053740538405394054040541405424054340544405454054640547405484054940550405514055240553405544055540556405574055840559405604056140562405634056440565405664056740568405694057040571405724057340574405754057640577405784057940580405814058240583405844058540586405874058840589405904059140592405934059440595405964059740598405994060040601406024060340604406054060640607406084060940610406114061240613406144061540616406174061840619406204062140622406234062440625406264062740628406294063040631406324063340634406354063640637406384063940640406414064240643406444064540646406474064840649406504065140652406534065440655406564065740658406594066040661
  1. /******/ (function(modules) { // webpackBootstrap
  2. /******/ // The module cache
  3. /******/ var installedModules = {};
  4. /******/
  5. /******/ // The require function
  6. /******/ function __webpack_require__(moduleId) {
  7. /******/
  8. /******/ // Check if module is in cache
  9. /******/ if(installedModules[moduleId]) {
  10. /******/ return installedModules[moduleId].exports;
  11. /******/ }
  12. /******/ // Create a new module (and put it into the cache)
  13. /******/ var module = installedModules[moduleId] = {
  14. /******/ i: moduleId,
  15. /******/ l: false,
  16. /******/ exports: {}
  17. /******/ };
  18. /******/
  19. /******/ // Execute the module function
  20. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  21. /******/
  22. /******/ // Flag the module as loaded
  23. /******/ module.l = true;
  24. /******/
  25. /******/ // Return the exports of the module
  26. /******/ return module.exports;
  27. /******/ }
  28. /******/
  29. /******/
  30. /******/ // expose the modules object (__webpack_modules__)
  31. /******/ __webpack_require__.m = modules;
  32. /******/
  33. /******/ // expose the module cache
  34. /******/ __webpack_require__.c = installedModules;
  35. /******/
  36. /******/ // define getter function for harmony exports
  37. /******/ __webpack_require__.d = function(exports, name, getter) {
  38. /******/ if(!__webpack_require__.o(exports, name)) {
  39. /******/ Object.defineProperty(exports, name, {
  40. /******/ configurable: false,
  41. /******/ enumerable: true,
  42. /******/ get: getter
  43. /******/ });
  44. /******/ }
  45. /******/ };
  46. /******/
  47. /******/ // getDefaultExport function for compatibility with non-harmony modules
  48. /******/ __webpack_require__.n = function(module) {
  49. /******/ var getter = module && module.__esModule ?
  50. /******/ function getDefault() { return module['default']; } :
  51. /******/ function getModuleExports() { return module; };
  52. /******/ __webpack_require__.d(getter, 'a', getter);
  53. /******/ return getter;
  54. /******/ };
  55. /******/
  56. /******/ // Object.prototype.hasOwnProperty.call
  57. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  58. /******/
  59. /******/ // __webpack_public_path__
  60. /******/ __webpack_require__.p = "/";
  61. /******/
  62. /******/ // Load entry module and return exports
  63. /******/ return __webpack_require__(__webpack_require__.s = 2);
  64. /******/ })
  65. /************************************************************************/
  66. /******/ ({
  67. /***/ "./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/DiscoverComponent.vue":
  68. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  69. "use strict";
  70. //
  71. //
  72. //
  73. //
  74. //
  75. //
  76. //
  77. //
  78. //
  79. //
  80. //
  81. //
  82. //
  83. //
  84. //
  85. //
  86. //
  87. //
  88. //
  89. //
  90. //
  91. //
  92. //
  93. //
  94. //
  95. //
  96. //
  97. //
  98. //
  99. //
  100. //
  101. //
  102. //
  103. //
  104. //
  105. //
  106. //
  107. //
  108. //
  109. //
  110. //
  111. //
  112. //
  113. //
  114. //
  115. //
  116. //
  117. /* harmony default export */ __webpack_exports__["a"] = ({
  118. data: function data() {
  119. return {
  120. people: {},
  121. posts: {},
  122. trending: {}
  123. };
  124. },
  125. mounted: function mounted() {
  126. this.fetchData();
  127. },
  128. methods: {
  129. followUser: function followUser(id, event) {
  130. axios.post('/i/follow', {
  131. item: id
  132. }).then(function (res) {
  133. var el = $(event.target);
  134. el.addClass('btn-outline-secondary').removeClass('btn-primary');
  135. el.text('Unfollow');
  136. }).catch(function (err) {
  137. swal('Whoops! Something went wrong...', 'An error occurred, please try again later.', 'error');
  138. });
  139. },
  140. fetchData: function fetchData() {
  141. var _this = this;
  142. // axios.get('/api/v2/discover/people')
  143. // .then((res) => {
  144. // let data = res.data;
  145. // this.people = data.people;
  146. // if(this.people.length > 1) {
  147. // $('.section-people .loader').hide();
  148. // $('.section-people .row.d-none').removeClass('d-none');
  149. // }
  150. // });
  151. axios.get('/api/v2/discover/posts').then(function (res) {
  152. var data = res.data;
  153. _this.posts = data.posts;
  154. if (_this.posts.length > 1) {
  155. $('.section-explore .loader').hide();
  156. $('.section-explore .row.d-none').removeClass('d-none');
  157. }
  158. });
  159. }
  160. }
  161. });
  162. /***/ }),
  163. /***/ "./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/FollowSuggestions.vue":
  164. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  165. "use strict";
  166. //
  167. //
  168. //
  169. //
  170. //
  171. //
  172. //
  173. //
  174. //
  175. //
  176. //
  177. //
  178. //
  179. //
  180. //
  181. //
  182. //
  183. //
  184. //
  185. //
  186. //
  187. //
  188. //
  189. //
  190. //
  191. //
  192. //
  193. //
  194. //
  195. //
  196. /* harmony default export */ __webpack_exports__["a"] = ({
  197. data: function data() {
  198. return {
  199. results: {}
  200. };
  201. },
  202. mounted: function mounted() {
  203. this.fetchData();
  204. },
  205. methods: {
  206. fetchData: function fetchData() {
  207. var _this = this;
  208. axios.get('/api/local/i/follow-suggestions').then(function (response) {
  209. _this.results = response.data;
  210. });
  211. }
  212. }
  213. });
  214. /***/ }),
  215. /***/ "./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/PostComments.vue":
  216. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  217. "use strict";
  218. //
  219. //
  220. //
  221. //
  222. //
  223. //
  224. //
  225. //
  226. //
  227. //
  228. //
  229. //
  230. //
  231. //
  232. //
  233. //
  234. //
  235. //
  236. //
  237. //
  238. //
  239. //
  240. //
  241. //
  242. //
  243. //
  244. //
  245. //
  246. //
  247. //
  248. //
  249. //
  250. //
  251. //
  252. //
  253. //
  254. //
  255. //
  256. //
  257. //
  258. //
  259. //
  260. //
  261. //
  262. //
  263. //
  264. //
  265. /* harmony default export */ __webpack_exports__["a"] = ({
  266. props: ['post-id', 'post-username', 'user'],
  267. data: function data() {
  268. return {
  269. results: null,
  270. pagination: {},
  271. min_id: 0,
  272. max_id: 0,
  273. reply_to_profile_id: 0
  274. };
  275. },
  276. mounted: function mounted() {
  277. this.fetchData();
  278. },
  279. updated: function updated() {
  280. pixelfed.readmore();
  281. },
  282. methods: {
  283. embed: function embed(e) {
  284. //pixelfed.embed.build(e);
  285. },
  286. deleteComment: function deleteComment(id, i) {
  287. var _this = this;
  288. axios.post('/i/delete', {
  289. type: 'comment',
  290. item: id
  291. }).then(function (res) {
  292. _this.results.splice(i, 1);
  293. }).catch(function (err) {
  294. swal('Something went wrong!', 'Please try again later', 'error');
  295. });
  296. },
  297. l: function l(e) {
  298. var len = e.length;
  299. if (len < 10) {
  300. return e;
  301. }
  302. return e.substr(0, 10) + '...';
  303. },
  304. reply: function reply(e) {
  305. this.reply_to_profile_id = e.account.id;
  306. $('.comment-form input[name=comment]').val('@' + e.account.username + ' ');
  307. $('.comment-form input[name=comment]').focus();
  308. },
  309. fetchData: function fetchData() {
  310. var _this2 = this;
  311. var url = '/api/v2/comments/' + this.postUsername + '/status/' + this.postId;
  312. axios.get(url).then(function (response) {
  313. var self = _this2;
  314. _this2.results = _.reverse(response.data.data);
  315. _this2.pagination = response.data.meta.pagination;
  316. if (_this2.results.length > 0) {
  317. $('.load-more-link').removeClass('d-none');
  318. }
  319. $('.postCommentsLoader').addClass('d-none');
  320. $('.postCommentsContainer').removeClass('d-none');
  321. }).catch(function (error) {
  322. if (!error.response) {
  323. $('.postCommentsLoader .lds-ring').attr('style', 'width:100%').addClass('pt-4 font-weight-bold text-muted').text('An error occurred, cannot fetch comments. Please try again later.');
  324. } else {
  325. switch (error.response.status) {
  326. case 401:
  327. $('.postCommentsLoader .lds-ring').attr('style', 'width:100%').addClass('pt-4 font-weight-bold text-muted').text('Please login to view.');
  328. break;
  329. default:
  330. $('.postCommentsLoader .lds-ring').attr('style', 'width:100%').addClass('pt-4 font-weight-bold text-muted').text('An error occurred, cannot fetch comments. Please try again later.');
  331. break;
  332. }
  333. }
  334. });
  335. },
  336. loadMore: function loadMore(e) {
  337. var _this3 = this;
  338. e.preventDefault();
  339. if (this.pagination.total_pages == 1 || this.pagination.current_page == this.pagination.total_pages) {
  340. $('.load-more-link').addClass('d-none');
  341. return;
  342. }
  343. $('.postCommentsLoader').removeClass('d-none');
  344. var next = this.pagination.links.next;
  345. axios.get(next).then(function (response) {
  346. var self = _this3;
  347. var res = response.data.data;
  348. $('.postCommentsLoader').addClass('d-none');
  349. for (var i = 0; i < res.length; i++) {
  350. _this3.results.unshift(res[i]);
  351. }
  352. _this3.pagination = response.data.meta.pagination;
  353. });
  354. }
  355. }
  356. });
  357. /***/ }),
  358. /***/ "./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/PostComponent.vue":
  359. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  360. "use strict";
  361. function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
  362. //
  363. //
  364. //
  365. //
  366. //
  367. //
  368. //
  369. //
  370. //
  371. //
  372. //
  373. //
  374. //
  375. //
  376. //
  377. //
  378. //
  379. //
  380. //
  381. //
  382. //
  383. //
  384. //
  385. //
  386. //
  387. //
  388. //
  389. //
  390. //
  391. //
  392. //
  393. //
  394. //
  395. //
  396. //
  397. //
  398. //
  399. //
  400. //
  401. //
  402. //
  403. //
  404. //
  405. //
  406. //
  407. //
  408. //
  409. //
  410. //
  411. //
  412. //
  413. //
  414. //
  415. //
  416. //
  417. //
  418. //
  419. //
  420. //
  421. //
  422. //
  423. //
  424. //
  425. //
  426. //
  427. //
  428. //
  429. //
  430. //
  431. //
  432. //
  433. //
  434. //
  435. //
  436. //
  437. //
  438. //
  439. //
  440. //
  441. //
  442. //
  443. //
  444. //
  445. //
  446. //
  447. //
  448. //
  449. //
  450. //
  451. //
  452. //
  453. //
  454. //
  455. //
  456. //
  457. //
  458. //
  459. //
  460. //
  461. //
  462. //
  463. //
  464. //
  465. //
  466. //
  467. //
  468. //
  469. //
  470. //
  471. //
  472. //
  473. //
  474. //
  475. //
  476. //
  477. //
  478. //
  479. //
  480. //
  481. //
  482. //
  483. //
  484. //
  485. //
  486. //
  487. //
  488. //
  489. //
  490. //
  491. //
  492. //
  493. //
  494. //
  495. //
  496. //
  497. //
  498. //
  499. //
  500. //
  501. //
  502. //
  503. //
  504. //
  505. //
  506. //
  507. //
  508. //
  509. //
  510. //
  511. //
  512. //
  513. //
  514. //
  515. //
  516. //
  517. //
  518. //
  519. //
  520. //
  521. //
  522. //
  523. //
  524. //
  525. //
  526. //
  527. //
  528. //
  529. //
  530. //
  531. //
  532. //
  533. //
  534. //
  535. //
  536. //
  537. //
  538. //
  539. //
  540. //
  541. //
  542. //
  543. //
  544. //
  545. //
  546. //
  547. //
  548. //
  549. //
  550. //
  551. //
  552. //
  553. //
  554. //
  555. //
  556. //
  557. //
  558. //
  559. //
  560. //
  561. //
  562. //
  563. //
  564. //
  565. //
  566. //
  567. //
  568. //
  569. //
  570. //
  571. //
  572. //
  573. //
  574. //
  575. //
  576. //
  577. //
  578. //
  579. //
  580. //
  581. //
  582. //
  583. //
  584. //
  585. //
  586. //
  587. //
  588. //
  589. //
  590. //
  591. //
  592. //
  593. //
  594. pixelfed.postComponent = {};
  595. /* harmony default export */ __webpack_exports__["a"] = ({
  596. props: ['status-id', 'status-username', 'status-template', 'status-url', 'status-profile-url', 'status-avatar'],
  597. data: function data() {
  598. return {
  599. status: {},
  600. media: {},
  601. user: {},
  602. reactions: {
  603. liked: false,
  604. shared: false
  605. },
  606. likes: {},
  607. likesPage: 1,
  608. shares: {},
  609. sharesPage: 1
  610. };
  611. },
  612. mounted: function mounted() {
  613. this.fetchData();
  614. this.authCheck();
  615. var token = $('meta[name="csrf-token"]').attr('content');
  616. $('input[name="_token"]').each(function (k, v) {
  617. var el = $(v);
  618. el.val(token);
  619. });
  620. },
  621. updated: function updated() {
  622. $('.carousel').carousel();
  623. if (this.reactions) {
  624. if (this.reactions.bookmarked == true) {
  625. $('.far.fa-bookmark').removeClass('far').addClass('fas text-warning');
  626. }
  627. if (this.reactions.shared == true) {
  628. $('.far.fa-share-square').addClass('text-primary');
  629. }
  630. if (this.reactions.liked == true) {
  631. $('.far.fa-heart ').removeClass('far text-dark').addClass('fas text-danger');
  632. }
  633. }
  634. if (this.status) {
  635. var title = this.status.account.username + ' posted a photo: ' + this.status.favourites_count + ' likes';
  636. $('head title').text(title);
  637. }
  638. },
  639. methods: {
  640. authCheck: function authCheck() {
  641. var authed = $('body').hasClass('loggedIn');
  642. if (authed == true) {
  643. $('.comment-form-guest').addClass('d-none');
  644. $('.comment-form').removeClass('d-none');
  645. }
  646. },
  647. showMuteBlock: function showMuteBlock() {
  648. var sid = this.status.account.id;
  649. var uid = this.user.id;
  650. if (sid == uid) {
  651. $('.post-actions .menu-author').removeClass('d-none');
  652. } else {
  653. $('.post-actions .menu-user').removeClass('d-none');
  654. }
  655. },
  656. reportUrl: function reportUrl() {
  657. return '/i/report?type=post&id=' + this.status.id;
  658. },
  659. editUrl: function editUrl() {
  660. return this.status.url + '/edit';
  661. },
  662. timestampFormat: function timestampFormat() {
  663. var ts = new Date(this.status.created_at);
  664. return ts.toDateString() + ' ' + ts.toLocaleTimeString();
  665. },
  666. fetchData: function fetchData() {
  667. var _this = this;
  668. var loader = this.$loading.show({
  669. 'opacity': 0,
  670. 'background-color': '#f5f8fa'
  671. });
  672. axios.get('/api/v2/profile/' + this.statusUsername + '/status/' + this.statusId).then(function (response) {
  673. var self = _this;
  674. self.status = response.data.status;
  675. self.user = response.data.user;
  676. self.media = self.status.media_attachments;
  677. self.reactions = response.data.reactions;
  678. self.likes = response.data.likes;
  679. self.shares = response.data.shares;
  680. self.likesPage = 2;
  681. self.sharesPage = 2;
  682. //this.buildPresenter();
  683. _this.showMuteBlock();
  684. loader.hide();
  685. pixelfed.readmore();
  686. $('.postComponent').removeClass('d-none');
  687. $('.postPresenterLoader').addClass('d-none');
  688. $('.postPresenterContainer').removeClass('d-none');
  689. }).catch(function (error) {
  690. if (!error.response) {
  691. $('.postPresenterLoader .lds-ring').attr('style', 'width:100%').addClass('pt-4 font-weight-bold text-muted').text('An error occurred, cannot fetch media. Please try again later.');
  692. } else {
  693. switch (error.response.status) {
  694. case 401:
  695. $('.postPresenterLoader .lds-ring').attr('style', 'width:100%').addClass('pt-4 font-weight-bold text-muted').text('Please login to view.');
  696. break;
  697. default:
  698. $('.postPresenterLoader .lds-ring').attr('style', 'width:100%').addClass('pt-4 font-weight-bold text-muted').text('An error occurred, cannot fetch media. Please try again later.');
  699. break;
  700. }
  701. }
  702. });
  703. },
  704. commentFocus: function commentFocus() {
  705. $('.comment-form input[name="comment"]').focus();
  706. },
  707. likesModal: function likesModal() {
  708. if (this.status.favourites_count == 0 || $('body').hasClass('loggedIn') == false) {
  709. return;
  710. }
  711. this.$refs.likesModal.show();
  712. },
  713. sharesModal: function sharesModal() {
  714. if (this.status.reblogs_count == 0 || $('body').hasClass('loggedIn') == false) {
  715. return;
  716. }
  717. this.$refs.sharesModal.show();
  718. },
  719. infiniteLikesHandler: function infiniteLikesHandler($state) {
  720. var _this2 = this;
  721. var api = '/api/v2/likes/profile/' + this.statusUsername + '/status/' + this.statusId;
  722. axios.get(api, {
  723. params: {
  724. page: this.likesPage
  725. }
  726. }).then(function (_ref) {
  727. var data = _ref.data;
  728. if (data.data.length) {
  729. var _likes;
  730. _this2.likesPage += 1;
  731. (_likes = _this2.likes).push.apply(_likes, _toConsumableArray(data.data));
  732. $state.loaded();
  733. } else {
  734. $state.complete();
  735. }
  736. });
  737. },
  738. infiniteSharesHandler: function infiniteSharesHandler($state) {
  739. var _this3 = this;
  740. axios.get('/api/v2/shares/profile/' + this.statusUsername + '/status/' + this.statusId, {
  741. params: {
  742. page: this.sharesPage
  743. }
  744. }).then(function (_ref2) {
  745. var data = _ref2.data;
  746. if (data.data.length) {
  747. var _shares;
  748. _this3.sharesPage += 1;
  749. (_shares = _this3.shares).push.apply(_shares, _toConsumableArray(data.data));
  750. $state.loaded();
  751. } else {
  752. $state.complete();
  753. }
  754. });
  755. },
  756. likeStatus: function likeStatus(event) {
  757. var _this4 = this;
  758. if ($('body').hasClass('loggedIn') == false) {
  759. return;
  760. }
  761. axios.post('/i/like', {
  762. item: this.status.id
  763. }).then(function (res) {
  764. _this4.status.favourites_count = res.data.count;
  765. if (_this4.reactions.liked == true) {
  766. _this4.reactions.liked = false;
  767. } else {
  768. _this4.reactions.liked = true;
  769. }
  770. }).catch(function (err) {
  771. swal('Error', 'Something went wrong, please try again later.', 'error');
  772. });
  773. },
  774. shareStatus: function shareStatus() {
  775. var _this5 = this;
  776. if ($('body').hasClass('loggedIn') == false) {
  777. return;
  778. }
  779. axios.post('/i/share', {
  780. item: this.status.id
  781. }).then(function (res) {
  782. _this5.status.reblogs_count = res.data.count;
  783. if (_this5.reactions.shared == true) {
  784. _this5.reactions.shared = false;
  785. } else {
  786. _this5.reactions.shared = true;
  787. }
  788. }).catch(function (err) {
  789. swal('Error', 'Something went wrong, please try again later.', 'error');
  790. });
  791. },
  792. bookmarkStatus: function bookmarkStatus() {
  793. var _this6 = this;
  794. if ($('body').hasClass('loggedIn') == false) {
  795. return;
  796. }
  797. axios.post('/i/bookmark', {
  798. item: this.status.id
  799. }).then(function (res) {
  800. if (_this6.reactions.bookmarked == true) {
  801. _this6.reactions.bookmarked = false;
  802. } else {
  803. _this6.reactions.bookmarked = true;
  804. }
  805. }).catch(function (err) {
  806. swal('Error', 'Something went wrong, please try again later.', 'error');
  807. });
  808. },
  809. muteProfile: function muteProfile() {
  810. var _this7 = this;
  811. if ($('body').hasClass('loggedIn') == false) {
  812. return;
  813. }
  814. axios.post('/i/mute', {
  815. type: 'user',
  816. item: this.status.account.id
  817. }).then(function (res) {
  818. swal('Success', 'You have successfully muted ' + _this7.status.account.acct, 'success');
  819. }).catch(function (err) {
  820. swal('Error', 'Something went wrong. Please try again later.', 'error');
  821. });
  822. },
  823. blockProfile: function blockProfile() {
  824. var _this8 = this;
  825. if ($('body').hasClass('loggedIn') == false) {
  826. return;
  827. }
  828. axios.post('/i/block', {
  829. type: 'user',
  830. item: this.status.account.id
  831. }).then(function (res) {
  832. swal('Success', 'You have successfully blocked ' + _this8.status.account.acct, 'success');
  833. }).catch(function (err) {
  834. swal('Error', 'Something went wrong. Please try again later.', 'error');
  835. });
  836. },
  837. deletePost: function deletePost() {
  838. var result = confirm('Are you sure you want to delete this post?');
  839. if (result) {
  840. if ($('body').hasClass('loggedIn') == false) {
  841. return;
  842. }
  843. axios.post('/i/delete', {
  844. type: 'status',
  845. item: this.status.id
  846. }).then(function (res) {
  847. swal('Success', 'You have successfully deleted this post', 'success');
  848. }).catch(function (err) {
  849. swal('Error', 'Something went wrong. Please try again later.', 'error');
  850. });
  851. }
  852. }
  853. }
  854. });
  855. /***/ }),
  856. /***/ "./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/Timeline.vue":
  857. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  858. "use strict";
  859. function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
  860. //
  861. //
  862. //
  863. //
  864. //
  865. //
  866. //
  867. //
  868. //
  869. //
  870. //
  871. //
  872. //
  873. //
  874. //
  875. //
  876. //
  877. //
  878. //
  879. //
  880. //
  881. //
  882. //
  883. //
  884. //
  885. //
  886. //
  887. //
  888. //
  889. //
  890. //
  891. //
  892. //
  893. //
  894. //
  895. //
  896. //
  897. //
  898. //
  899. //
  900. //
  901. //
  902. //
  903. //
  904. //
  905. //
  906. //
  907. //
  908. //
  909. //
  910. //
  911. //
  912. //
  913. //
  914. //
  915. //
  916. //
  917. //
  918. //
  919. //
  920. //
  921. //
  922. //
  923. //
  924. //
  925. //
  926. //
  927. //
  928. //
  929. //
  930. //
  931. //
  932. //
  933. //
  934. //
  935. //
  936. //
  937. //
  938. //
  939. //
  940. //
  941. //
  942. //
  943. //
  944. //
  945. //
  946. //
  947. //
  948. //
  949. //
  950. //
  951. //
  952. //
  953. //
  954. //
  955. //
  956. //
  957. //
  958. //
  959. //
  960. //
  961. //
  962. //
  963. //
  964. //
  965. //
  966. //
  967. //
  968. //
  969. //
  970. //
  971. //
  972. //
  973. //
  974. //
  975. //
  976. //
  977. //
  978. //
  979. //
  980. //
  981. //
  982. //
  983. //
  984. //
  985. //
  986. //
  987. //
  988. //
  989. //
  990. //
  991. //
  992. //
  993. //
  994. //
  995. //
  996. //
  997. //
  998. //
  999. //
  1000. //
  1001. //
  1002. //
  1003. //
  1004. //
  1005. //
  1006. //
  1007. //
  1008. //
  1009. //
  1010. //
  1011. //
  1012. //
  1013. //
  1014. //
  1015. //
  1016. //
  1017. //
  1018. //
  1019. //
  1020. //
  1021. //
  1022. //
  1023. //
  1024. //
  1025. //
  1026. //
  1027. //
  1028. //
  1029. //
  1030. //
  1031. //
  1032. //
  1033. //
  1034. //
  1035. //
  1036. //
  1037. //
  1038. //
  1039. //
  1040. //
  1041. //
  1042. //
  1043. //
  1044. //
  1045. //
  1046. //
  1047. //
  1048. //
  1049. //
  1050. //
  1051. //
  1052. //
  1053. //
  1054. //
  1055. //
  1056. //
  1057. //
  1058. //
  1059. //
  1060. //
  1061. //
  1062. //
  1063. //
  1064. //
  1065. //
  1066. //
  1067. //
  1068. //
  1069. //
  1070. //
  1071. //
  1072. //
  1073. //
  1074. //
  1075. //
  1076. //
  1077. /* harmony default export */ __webpack_exports__["a"] = ({
  1078. data: function data() {
  1079. return {
  1080. page: 2,
  1081. feed: [],
  1082. profile: {},
  1083. scope: window.location.pathname,
  1084. min_id: 0,
  1085. max_id: 0,
  1086. notifications: {},
  1087. stories: {},
  1088. suggestions: {},
  1089. loading: true
  1090. };
  1091. },
  1092. beforeMount: function beforeMount() {
  1093. this.fetchTimelineApi();
  1094. this.fetchProfile();
  1095. },
  1096. mounted: function mounted() {},
  1097. updated: function updated() {},
  1098. methods: {
  1099. fetchProfile: function fetchProfile() {
  1100. var _this = this;
  1101. axios.get('/api/v1/accounts/verify_credentials').then(function (res) {
  1102. _this.profile = res.data;
  1103. $('.profile-card .loader').addClass('d-none');
  1104. $('.profile-card .contents').removeClass('d-none');
  1105. $('.profile-card .card-footer').removeClass('d-none');
  1106. _this.fetchNotifications();
  1107. }).catch(function (err) {
  1108. swal('Oops, something went wrong', 'Please reload the page.', 'error');
  1109. });
  1110. },
  1111. fetchTimelineApi: function fetchTimelineApi() {
  1112. var _this2 = this;
  1113. var homeTimeline = '/api/v1/timelines/home?page=1';
  1114. var localTimeline = '/api/v1/timelines/public?page=1';
  1115. var apiUrl = this.scope == '/' ? homeTimeline : localTimeline;
  1116. axios.get(apiUrl).then(function (res) {
  1117. var _feed;
  1118. $('.timeline .loader').addClass('d-none');
  1119. var data = res.data;
  1120. (_feed = _this2.feed).push.apply(_feed, _toConsumableArray(data));
  1121. var ids = data.map(function (status) {
  1122. return status.id;
  1123. });
  1124. _this2.min_id = Math.min.apply(Math, _toConsumableArray(ids));
  1125. if (_this2.page == 1) {
  1126. _this2.max_id = Math.max.apply(Math, _toConsumableArray(ids));
  1127. }
  1128. _this2.loading = false;
  1129. }).catch(function (err) {});
  1130. },
  1131. infiniteTimeline: function infiniteTimeline($state) {
  1132. var _this3 = this;
  1133. var homeTimeline = '/api/v1/timelines/home';
  1134. var localTimeline = '/api/v1/timelines/public';
  1135. var apiUrl = this.scope == '/' ? homeTimeline : localTimeline;
  1136. axios.get(apiUrl, {
  1137. params: {
  1138. page: this.page
  1139. }
  1140. }).then(function (res) {
  1141. if (res.data.length && _this3.loading == false) {
  1142. var _feed2;
  1143. var data = res.data;
  1144. (_feed2 = _this3.feed).push.apply(_feed2, _toConsumableArray(data));
  1145. var ids = data.map(function (status) {
  1146. return status.id;
  1147. });
  1148. _this3.min_id = Math.min.apply(Math, _toConsumableArray(ids));
  1149. if (_this3.page == 1) {
  1150. _this3.max_id = Math.max.apply(Math, _toConsumableArray(ids));
  1151. }
  1152. _this3.page += 1;
  1153. $state.loaded();
  1154. _this3.loading = false;
  1155. } else {
  1156. $state.complete();
  1157. }
  1158. });
  1159. },
  1160. fetchNotifications: function fetchNotifications() {
  1161. var _this4 = this;
  1162. axios.get('/api/v1/notifications').then(function (res) {
  1163. _this4.notifications = res.data;
  1164. $('.notification-card .loader').addClass('d-none');
  1165. $('.notification-card .contents').removeClass('d-none');
  1166. });
  1167. },
  1168. reportUrl: function reportUrl(status) {
  1169. var type = status.in_reply_to ? 'comment' : 'post';
  1170. var id = status.id;
  1171. return '/i/report?type=' + type + '&id=' + id;
  1172. },
  1173. commentFocus: function commentFocus(status, $event) {
  1174. var el = event.target;
  1175. var card = el.parentElement.parentElement.parentElement;
  1176. var comments = card.getElementsByClassName('comments')[0];
  1177. if (comments.children.length == 0) {
  1178. comments.classList.add('mb-2');
  1179. this.fetchStatusComments(status, card);
  1180. }
  1181. var footer = card.querySelectorAll('.card-footer')[0];
  1182. var input = card.querySelectorAll('.status-reply-input')[0];
  1183. if (footer.classList.contains('d-none') == true) {
  1184. footer.classList.remove('d-none');
  1185. input.focus();
  1186. } else {
  1187. footer.classList.add('d-none');
  1188. input.blur();
  1189. }
  1190. },
  1191. likeStatus: function likeStatus(status, $event) {
  1192. if ($('body').hasClass('loggedIn') == false) {
  1193. return;
  1194. }
  1195. axios.post('/i/like', {
  1196. item: status.id
  1197. }).then(function (res) {
  1198. status.favourites_count = res.data.count;
  1199. if (status.favourited == true) {
  1200. status.favourited = false;
  1201. } else {
  1202. status.favourited = true;
  1203. }
  1204. }).catch(function (err) {
  1205. swal('Error', 'Something went wrong, please try again later.', 'error');
  1206. });
  1207. },
  1208. shareStatus: function shareStatus(status, $event) {
  1209. if ($('body').hasClass('loggedIn') == false) {
  1210. return;
  1211. }
  1212. axios.post('/i/share', {
  1213. item: status.id
  1214. }).then(function (res) {
  1215. status.reblogs_count = res.data.count;
  1216. if (status.reblogged == true) {
  1217. status.reblogged = false;
  1218. } else {
  1219. status.reblogged = true;
  1220. }
  1221. }).catch(function (err) {
  1222. swal('Error', 'Something went wrong, please try again later.', 'error');
  1223. });
  1224. },
  1225. timestampFormat: function timestampFormat(timestamp) {
  1226. var ts = new Date(timestamp);
  1227. return ts.toDateString() + ' ' + ts.toLocaleTimeString();
  1228. },
  1229. editUrl: function editUrl(status) {
  1230. return status.url + '/edit';
  1231. },
  1232. redirect: function redirect(url) {
  1233. window.location.href = url;
  1234. return;
  1235. },
  1236. replyUrl: function replyUrl(status) {
  1237. var username = this.profile.username;
  1238. var id = status.account.id == this.profile.id ? status.id : status.in_reply_to_id;
  1239. return '/p/' + username + '/' + id;
  1240. },
  1241. mentionUrl: function mentionUrl(status) {
  1242. var username = status.account.username;
  1243. var id = status.id;
  1244. return '/p/' + username + '/' + id;
  1245. },
  1246. statusOwner: function statusOwner(status) {
  1247. var sid = status.account.id;
  1248. var uid = this.profile.id;
  1249. if (sid == uid) {
  1250. return true;
  1251. } else {
  1252. return false;
  1253. }
  1254. },
  1255. fetchStatusComments: function fetchStatusComments(status, card) {
  1256. axios.get('/api/v2/status/' + status.id + '/replies').then(function (res) {
  1257. var comments = card.querySelectorAll('.comments')[0];
  1258. var data = res.data;
  1259. data.forEach(function (i, k) {
  1260. var username = document.createElement('a');
  1261. username.classList.add('font-weight-bold');
  1262. username.classList.add('text-dark');
  1263. username.classList.add('mr-2');
  1264. username.setAttribute('href', i.account.url);
  1265. username.textContent = i.account.username;
  1266. var text = document.createElement('span');
  1267. text.innerHTML = i.content;
  1268. var comment = document.createElement('p');
  1269. comment.classList.add('read-more');
  1270. comment.classList.add('mb-0');
  1271. comment.appendChild(username);
  1272. comment.appendChild(text);
  1273. comments.appendChild(comment);
  1274. });
  1275. }).catch(function (err) {});
  1276. },
  1277. muteProfile: function muteProfile(status) {
  1278. var _this5 = this;
  1279. if ($('body').hasClass('loggedIn') == false) {
  1280. return;
  1281. }
  1282. axios.post('/i/mute', {
  1283. type: 'user',
  1284. item: status.account.id
  1285. }).then(function (res) {
  1286. _this5.feed = _this5.feed.filter(function (s) {
  1287. return s.account.id !== status.account.id;
  1288. });
  1289. swal('Success', 'You have successfully muted ' + status.account.acct, 'success');
  1290. }).catch(function (err) {
  1291. swal('Error', 'Something went wrong. Please try again later.', 'error');
  1292. });
  1293. },
  1294. blockProfile: function blockProfile(status) {
  1295. var _this6 = this;
  1296. if ($('body').hasClass('loggedIn') == false) {
  1297. return;
  1298. }
  1299. axios.post('/i/block', {
  1300. type: 'user',
  1301. item: status.account.id
  1302. }).then(function (res) {
  1303. _this6.feed = _this6.feed.filter(function (s) {
  1304. return s.account.id !== status.account.id;
  1305. });
  1306. swal('Success', 'You have successfully blocked ' + status.account.acct, 'success');
  1307. }).catch(function (err) {
  1308. swal('Error', 'Something went wrong. Please try again later.', 'error');
  1309. });
  1310. },
  1311. deletePost: function deletePost(status, index) {
  1312. var _this7 = this;
  1313. if ($('body').hasClass('loggedIn') == false || status.account.id !== this.profile.id) {
  1314. return;
  1315. }
  1316. axios.post('/i/delete', {
  1317. type: 'status',
  1318. item: status.id
  1319. }).then(function (res) {
  1320. _this7.feed.splice(index, 1);
  1321. swal('Success', 'You have successfully deleted this post', 'success');
  1322. }).catch(function (err) {
  1323. swal('Error', 'Something went wrong. Please try again later.', 'error');
  1324. });
  1325. },
  1326. commentSubmit: function commentSubmit(status, $event) {
  1327. var _this8 = this;
  1328. var id = status.id;
  1329. var form = $event.target;
  1330. var input = $(form).find('input[name="comment"]');
  1331. var comment = input.val();
  1332. var comments = form.parentElement.parentElement.getElementsByClassName('comments')[0];
  1333. axios.post('/i/comment', {
  1334. item: id,
  1335. comment: comment
  1336. }).then(function (res) {
  1337. input.val('');
  1338. input.blur();
  1339. var username = document.createElement('a');
  1340. username.classList.add('font-weight-bold');
  1341. username.classList.add('text-dark');
  1342. username.classList.add('mr-2');
  1343. username.setAttribute('href', _this8.profile.url);
  1344. username.textContent = _this8.profile.username;
  1345. var text = document.createElement('span');
  1346. text.innerHTML = comment;
  1347. var wrapper = document.createElement('p');
  1348. wrapper.classList.add('read-more');
  1349. wrapper.classList.add('mb-0');
  1350. wrapper.appendChild(username);
  1351. wrapper.appendChild(text);
  1352. comments.insertBefore(wrapper, comments.firstChild);
  1353. });
  1354. }
  1355. }
  1356. });
  1357. /***/ }),
  1358. /***/ "./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/presenter/MixedAlbumPresenter.vue":
  1359. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1360. "use strict";
  1361. //
  1362. //
  1363. //
  1364. //
  1365. //
  1366. //
  1367. //
  1368. //
  1369. //
  1370. //
  1371. //
  1372. //
  1373. //
  1374. //
  1375. //
  1376. //
  1377. //
  1378. //
  1379. //
  1380. //
  1381. //
  1382. //
  1383. //
  1384. //
  1385. //
  1386. //
  1387. //
  1388. //
  1389. //
  1390. //
  1391. //
  1392. //
  1393. //
  1394. //
  1395. //
  1396. //
  1397. //
  1398. //
  1399. //
  1400. //
  1401. //
  1402. //
  1403. //
  1404. //
  1405. //
  1406. //
  1407. //
  1408. //
  1409. //
  1410. //
  1411. //
  1412. /* harmony default export */ __webpack_exports__["a"] = ({
  1413. props: ['status']
  1414. });
  1415. /***/ }),
  1416. /***/ "./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/presenter/PhotoAlbumPresenter.vue":
  1417. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1418. "use strict";
  1419. //
  1420. //
  1421. //
  1422. //
  1423. //
  1424. //
  1425. //
  1426. //
  1427. //
  1428. //
  1429. //
  1430. //
  1431. //
  1432. //
  1433. //
  1434. //
  1435. //
  1436. //
  1437. //
  1438. //
  1439. //
  1440. //
  1441. //
  1442. //
  1443. //
  1444. //
  1445. //
  1446. //
  1447. //
  1448. //
  1449. //
  1450. //
  1451. //
  1452. //
  1453. //
  1454. /* harmony default export */ __webpack_exports__["a"] = ({
  1455. props: ['status']
  1456. });
  1457. /***/ }),
  1458. /***/ "./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/presenter/PhotoPresenter.vue":
  1459. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1460. "use strict";
  1461. //
  1462. //
  1463. //
  1464. //
  1465. //
  1466. //
  1467. //
  1468. //
  1469. //
  1470. //
  1471. //
  1472. //
  1473. //
  1474. //
  1475. //
  1476. //
  1477. //
  1478. //
  1479. //
  1480. /* harmony default export */ __webpack_exports__["a"] = ({
  1481. props: ['status']
  1482. });
  1483. /***/ }),
  1484. /***/ "./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/presenter/VideoAlbumPresenter.vue":
  1485. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1486. "use strict";
  1487. //
  1488. //
  1489. //
  1490. //
  1491. //
  1492. //
  1493. //
  1494. //
  1495. //
  1496. //
  1497. //
  1498. //
  1499. //
  1500. //
  1501. //
  1502. //
  1503. //
  1504. //
  1505. //
  1506. //
  1507. //
  1508. //
  1509. //
  1510. //
  1511. //
  1512. //
  1513. //
  1514. //
  1515. //
  1516. //
  1517. //
  1518. //
  1519. //
  1520. //
  1521. //
  1522. //
  1523. //
  1524. //
  1525. //
  1526. /* harmony default export */ __webpack_exports__["a"] = ({
  1527. props: ['status']
  1528. });
  1529. /***/ }),
  1530. /***/ "./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/presenter/VideoPresenter.vue":
  1531. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1532. "use strict";
  1533. //
  1534. //
  1535. //
  1536. //
  1537. //
  1538. //
  1539. //
  1540. //
  1541. //
  1542. //
  1543. //
  1544. //
  1545. //
  1546. //
  1547. //
  1548. //
  1549. //
  1550. //
  1551. //
  1552. //
  1553. //
  1554. /* harmony default export */ __webpack_exports__["a"] = ({
  1555. props: ['status']
  1556. });
  1557. /***/ }),
  1558. /***/ "./node_modules/bootstrap-vue/es/components/alert/alert.css":
  1559. /***/ (function(module, exports, __webpack_require__) {
  1560. // style-loader: Adds some css to the DOM by adding a <style> tag
  1561. // load the styles
  1562. var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/alert/alert.css");
  1563. if(typeof content === 'string') content = [[module.i, content, '']];
  1564. // Prepare cssTransformation
  1565. var transform;
  1566. var options = {}
  1567. options.transform = transform
  1568. // add the styles to the DOM
  1569. var update = __webpack_require__("./node_modules/style-loader/lib/addStyles.js")(content, options);
  1570. if(content.locals) module.exports = content.locals;
  1571. // Hot Module Replacement
  1572. if(false) {
  1573. // When the styles change, update the <style> tags
  1574. if(!content.locals) {
  1575. module.hot.accept("!!../../../../css-loader/index.js!./alert.css", function() {
  1576. var newContent = require("!!../../../../css-loader/index.js!./alert.css");
  1577. if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
  1578. update(newContent);
  1579. });
  1580. }
  1581. // When the module is disposed, remove the <style> tags
  1582. module.hot.dispose(function() { update(); });
  1583. }
  1584. /***/ }),
  1585. /***/ "./node_modules/bootstrap-vue/es/components/alert/alert.js":
  1586. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1587. "use strict";
  1588. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button_button_close__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button-close.js");
  1589. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__alert_css__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/alert/alert.css");
  1590. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__alert_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__alert_css__);
  1591. /* harmony default export */ __webpack_exports__["a"] = ({
  1592. components: { bButtonClose: __WEBPACK_IMPORTED_MODULE_0__button_button_close__["a" /* default */] },
  1593. render: function render(h) {
  1594. if (!this.localShow) {
  1595. // If not showing, render placeholder
  1596. return h(false);
  1597. }
  1598. var dismissBtn = h(false);
  1599. if (this.dismissible) {
  1600. // Add dismiss button
  1601. dismissBtn = h('b-button-close', { attrs: { 'aria-label': this.dismissLabel }, on: { click: this.dismiss } }, [this.$slots.dismiss]);
  1602. }
  1603. var alert = h('div', { class: this.classObject, attrs: { role: 'alert', 'aria-live': 'polite', 'aria-atomic': true } }, [dismissBtn, this.$slots.default]);
  1604. return !this.fade ? alert : h('transition', { props: { name: 'fade', appear: true } }, [alert]);
  1605. },
  1606. model: {
  1607. prop: 'show',
  1608. event: 'input'
  1609. },
  1610. data: function data() {
  1611. return {
  1612. countDownTimerId: null,
  1613. dismissed: false
  1614. };
  1615. },
  1616. computed: {
  1617. classObject: function classObject() {
  1618. return ['alert', this.alertVariant, this.dismissible ? 'alert-dismissible' : ''];
  1619. },
  1620. alertVariant: function alertVariant() {
  1621. var variant = this.variant;
  1622. return 'alert-' + variant;
  1623. },
  1624. localShow: function localShow() {
  1625. return !this.dismissed && (this.countDownTimerId || this.show);
  1626. }
  1627. },
  1628. props: {
  1629. variant: {
  1630. type: String,
  1631. default: 'info'
  1632. },
  1633. dismissible: {
  1634. type: Boolean,
  1635. default: false
  1636. },
  1637. dismissLabel: {
  1638. type: String,
  1639. default: 'Close'
  1640. },
  1641. show: {
  1642. type: [Boolean, Number],
  1643. default: false
  1644. },
  1645. fade: {
  1646. type: Boolean,
  1647. default: false
  1648. }
  1649. },
  1650. watch: {
  1651. show: function show() {
  1652. this.showChanged();
  1653. }
  1654. },
  1655. mounted: function mounted() {
  1656. this.showChanged();
  1657. },
  1658. destroyed /* istanbul ignore next */: function destroyed() {
  1659. this.clearCounter();
  1660. },
  1661. methods: {
  1662. dismiss: function dismiss() {
  1663. this.clearCounter();
  1664. this.dismissed = true;
  1665. this.$emit('dismissed');
  1666. this.$emit('input', false);
  1667. if (typeof this.show === 'number') {
  1668. this.$emit('dismiss-count-down', 0);
  1669. this.$emit('input', 0);
  1670. } else {
  1671. this.$emit('input', false);
  1672. }
  1673. },
  1674. clearCounter: function clearCounter() {
  1675. if (this.countDownTimerId) {
  1676. clearInterval(this.countDownTimerId);
  1677. this.countDownTimerId = null;
  1678. }
  1679. },
  1680. showChanged: function showChanged() {
  1681. var _this = this;
  1682. // Reset counter status
  1683. this.clearCounter();
  1684. // Reset dismiss status
  1685. this.dismissed = false;
  1686. // No timer for boolean values
  1687. if (this.show === true || this.show === false || this.show === null || this.show === 0) {
  1688. return;
  1689. }
  1690. // Start counter
  1691. var dismissCountDown = this.show;
  1692. this.countDownTimerId = setInterval(function () {
  1693. if (dismissCountDown < 1) {
  1694. _this.dismiss();
  1695. return;
  1696. }
  1697. dismissCountDown--;
  1698. _this.$emit('dismiss-count-down', dismissCountDown);
  1699. _this.$emit('input', dismissCountDown);
  1700. }, 1000);
  1701. }
  1702. }
  1703. });
  1704. /***/ }),
  1705. /***/ "./node_modules/bootstrap-vue/es/components/alert/index.js":
  1706. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1707. "use strict";
  1708. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__alert__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/alert/alert.js");
  1709. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  1710. var components = {
  1711. bAlert: __WEBPACK_IMPORTED_MODULE_0__alert__["a" /* default */]
  1712. };
  1713. var VuePlugin = {
  1714. install: function install(Vue) {
  1715. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  1716. }
  1717. };
  1718. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  1719. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  1720. /***/ }),
  1721. /***/ "./node_modules/bootstrap-vue/es/components/badge/badge.js":
  1722. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1723. "use strict";
  1724. /* unused harmony export props */
  1725. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  1726. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
  1727. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  1728. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
  1729. var linkProps = Object(__WEBPACK_IMPORTED_MODULE_3__link_link__["c" /* propsFactory */])();
  1730. delete linkProps.href.default;
  1731. delete linkProps.to.default;
  1732. var props = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])(linkProps, {
  1733. tag: {
  1734. type: String,
  1735. default: 'span'
  1736. },
  1737. variant: {
  1738. type: String,
  1739. default: 'secondary'
  1740. },
  1741. pill: {
  1742. type: Boolean,
  1743. default: false
  1744. }
  1745. });
  1746. /* harmony default export */ __webpack_exports__["a"] = ({
  1747. functional: true,
  1748. props: props,
  1749. render: function render(h, _ref) {
  1750. var props = _ref.props,
  1751. data = _ref.data,
  1752. children = _ref.children;
  1753. var tag = !props.href && !props.to ? props.tag : __WEBPACK_IMPORTED_MODULE_3__link_link__["a" /* default */];
  1754. var componentData = {
  1755. staticClass: 'badge',
  1756. class: [!props.variant ? 'badge-secondary' : 'badge-' + props.variant, {
  1757. 'badge-pill': Boolean(props.pill),
  1758. active: props.active,
  1759. disabled: props.disabled
  1760. }],
  1761. props: Object(__WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__["a" /* default */])(linkProps, props)
  1762. };
  1763. return h(tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), children);
  1764. }
  1765. });
  1766. /***/ }),
  1767. /***/ "./node_modules/bootstrap-vue/es/components/badge/index.js":
  1768. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1769. "use strict";
  1770. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__badge__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/badge/badge.js");
  1771. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  1772. var components = {
  1773. bBadge: __WEBPACK_IMPORTED_MODULE_0__badge__["a" /* default */]
  1774. };
  1775. var VuePlugin = {
  1776. install: function install(Vue) {
  1777. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  1778. }
  1779. };
  1780. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  1781. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  1782. /***/ }),
  1783. /***/ "./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-item.js":
  1784. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1785. "use strict";
  1786. /* unused harmony export props */
  1787. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  1788. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  1789. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__breadcrumb_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-link.js");
  1790. var props = Object(__WEBPACK_IMPORTED_MODULE_1__utils_object__["a" /* assign */])({}, __WEBPACK_IMPORTED_MODULE_2__breadcrumb_link__["b" /* props */], {
  1791. text: {
  1792. type: String,
  1793. default: null
  1794. },
  1795. href: {
  1796. type: String,
  1797. default: null
  1798. }
  1799. });
  1800. /* harmony default export */ __webpack_exports__["a"] = ({
  1801. functional: true,
  1802. props: props,
  1803. render: function render(h, _ref) {
  1804. var props = _ref.props,
  1805. data = _ref.data,
  1806. children = _ref.children;
  1807. return h('li', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  1808. staticClass: 'breadcrumb-item',
  1809. class: { active: props.active },
  1810. attrs: { role: 'presentation' }
  1811. }), [h(__WEBPACK_IMPORTED_MODULE_2__breadcrumb_link__["a" /* default */], { props: props }, children)]);
  1812. }
  1813. });
  1814. /***/ }),
  1815. /***/ "./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-link.js":
  1816. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1817. "use strict";
  1818. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return props; });
  1819. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  1820. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
  1821. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  1822. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
  1823. var props = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])(Object(__WEBPACK_IMPORTED_MODULE_3__link_link__["c" /* propsFactory */])(), {
  1824. text: {
  1825. type: String,
  1826. default: null
  1827. },
  1828. active: {
  1829. type: Boolean,
  1830. default: false
  1831. },
  1832. href: {
  1833. type: String,
  1834. default: '#'
  1835. },
  1836. ariaCurrent: {
  1837. type: String,
  1838. default: 'location'
  1839. }
  1840. });
  1841. /* harmony default export */ __webpack_exports__["a"] = ({
  1842. functional: true,
  1843. props: props,
  1844. render: function render(h, _ref) {
  1845. var suppliedProps = _ref.props,
  1846. data = _ref.data,
  1847. children = _ref.children;
  1848. var tag = suppliedProps.active ? 'span' : __WEBPACK_IMPORTED_MODULE_3__link_link__["a" /* default */];
  1849. var componentData = { props: Object(__WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__["a" /* default */])(props, suppliedProps) };
  1850. if (suppliedProps.active) {
  1851. componentData.attrs = { 'aria-current': suppliedProps.ariaCurrent };
  1852. } else {
  1853. componentData.attrs = { href: suppliedProps.href };
  1854. }
  1855. return h(tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), children || suppliedProps.text);
  1856. }
  1857. });
  1858. /***/ }),
  1859. /***/ "./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb.js":
  1860. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1861. "use strict";
  1862. /* unused harmony export props */
  1863. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  1864. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  1865. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  1866. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__breadcrumb_item__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-item.js");
  1867. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  1868. var props = {
  1869. items: {
  1870. type: Array,
  1871. default: null
  1872. }
  1873. };
  1874. /* harmony default export */ __webpack_exports__["a"] = ({
  1875. functional: true,
  1876. props: props,
  1877. render: function render(h, _ref) {
  1878. var props = _ref.props,
  1879. data = _ref.data,
  1880. children = _ref.children;
  1881. var childNodes = children;
  1882. // Build child nodes from items if given.
  1883. if (Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["d" /* isArray */])(props.items)) {
  1884. var activeDefined = false;
  1885. childNodes = props.items.map(function (item, idx) {
  1886. if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) !== 'object') {
  1887. item = { text: item };
  1888. }
  1889. // Copy the value here so we can normalize it.
  1890. var active = item.active;
  1891. if (active) {
  1892. activeDefined = true;
  1893. }
  1894. if (!active && !activeDefined) {
  1895. // Auto-detect active by position in list.
  1896. active = idx + 1 === props.items.length;
  1897. }
  1898. return h(__WEBPACK_IMPORTED_MODULE_3__breadcrumb_item__["a" /* default */], { props: Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])({}, item, { active: active }) });
  1899. });
  1900. }
  1901. return h('ol', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { staticClass: 'breadcrumb' }), childNodes);
  1902. }
  1903. });
  1904. /***/ }),
  1905. /***/ "./node_modules/bootstrap-vue/es/components/breadcrumb/index.js":
  1906. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1907. "use strict";
  1908. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__breadcrumb__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb.js");
  1909. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__breadcrumb_item__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-item.js");
  1910. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__breadcrumb_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-link.js");
  1911. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  1912. var components = {
  1913. bBreadcrumb: __WEBPACK_IMPORTED_MODULE_0__breadcrumb__["a" /* default */],
  1914. bBreadcrumbItem: __WEBPACK_IMPORTED_MODULE_1__breadcrumb_item__["a" /* default */],
  1915. bBreadcrumbLink: __WEBPACK_IMPORTED_MODULE_2__breadcrumb_link__["a" /* default */]
  1916. };
  1917. var VuePlugin = {
  1918. install: function install(Vue) {
  1919. Object(__WEBPACK_IMPORTED_MODULE_3__utils_plugins__["a" /* registerComponents */])(Vue, components);
  1920. }
  1921. };
  1922. Object(__WEBPACK_IMPORTED_MODULE_3__utils_plugins__["c" /* vueUse */])(VuePlugin);
  1923. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  1924. /***/ }),
  1925. /***/ "./node_modules/bootstrap-vue/es/components/button-group/button-group.js":
  1926. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1927. "use strict";
  1928. /* unused harmony export props */
  1929. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  1930. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  1931. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  1932. var props = {
  1933. vertical: {
  1934. type: Boolean,
  1935. default: false
  1936. },
  1937. size: {
  1938. type: String,
  1939. default: null,
  1940. validator: function validator(size) {
  1941. return Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(['sm', '', 'lg'], size);
  1942. }
  1943. },
  1944. tag: {
  1945. type: String,
  1946. default: 'div'
  1947. },
  1948. ariaRole: {
  1949. type: String,
  1950. default: 'group'
  1951. }
  1952. };
  1953. /* harmony default export */ __webpack_exports__["a"] = ({
  1954. functional: true,
  1955. props: props,
  1956. render: function render(h, _ref) {
  1957. var props = _ref.props,
  1958. data = _ref.data,
  1959. children = _ref.children;
  1960. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  1961. class: _defineProperty({
  1962. 'btn-group': !props.vertical,
  1963. 'btn-group-vertical': props.vertical
  1964. }, 'btn-group-' + props.size, Boolean(props.size)),
  1965. attrs: { 'role': props.ariaRole }
  1966. }), children);
  1967. }
  1968. });
  1969. /***/ }),
  1970. /***/ "./node_modules/bootstrap-vue/es/components/button-group/index.js":
  1971. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1972. "use strict";
  1973. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button-group/button-group.js");
  1974. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  1975. var components = {
  1976. bButtonGroup: __WEBPACK_IMPORTED_MODULE_0__button_group__["a" /* default */],
  1977. bBtnGroup: __WEBPACK_IMPORTED_MODULE_0__button_group__["a" /* default */]
  1978. };
  1979. var VuePlugin = {
  1980. install: function install(Vue) {
  1981. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  1982. }
  1983. };
  1984. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  1985. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  1986. /***/ }),
  1987. /***/ "./node_modules/bootstrap-vue/es/components/button-toolbar/button-toolbar.js":
  1988. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1989. "use strict";
  1990. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  1991. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
  1992. var ITEM_SELECTOR = ['.btn:not(.disabled):not([disabled]):not(.dropdown-item)', '.form-control:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'input[type="checkbox"]:not(.disabled)', 'input[type="radio"]:not(.disabled)'].join(',');
  1993. /* harmony default export */ __webpack_exports__["a"] = ({
  1994. render: function render(h) {
  1995. return h('div', {
  1996. class: this.classObject,
  1997. attrs: {
  1998. role: 'toolbar',
  1999. tabindex: this.keyNav ? '0' : null
  2000. },
  2001. on: {
  2002. focusin: this.onFocusin,
  2003. keydown: this.onKeydown
  2004. }
  2005. }, [this.$slots.default]);
  2006. },
  2007. computed: {
  2008. classObject: function classObject() {
  2009. return ['btn-toolbar', this.justify && !this.vertical ? 'justify-content-between' : ''];
  2010. }
  2011. },
  2012. props: {
  2013. justify: {
  2014. type: Boolean,
  2015. default: false
  2016. },
  2017. keyNav: {
  2018. type: Boolean,
  2019. default: false
  2020. }
  2021. },
  2022. methods: {
  2023. onFocusin: function onFocusin(evt) {
  2024. if (evt.target === this.$el) {
  2025. evt.preventDefault();
  2026. evt.stopPropagation();
  2027. this.focusFirst(evt);
  2028. }
  2029. },
  2030. onKeydown: function onKeydown(evt) {
  2031. if (!this.keyNav) {
  2032. return;
  2033. }
  2034. var key = evt.keyCode;
  2035. var shift = evt.shiftKey;
  2036. if (key === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].UP || key === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].LEFT) {
  2037. evt.preventDefault();
  2038. evt.stopPropagation();
  2039. if (shift) {
  2040. this.focusFirst(evt);
  2041. } else {
  2042. this.focusNext(evt, true);
  2043. }
  2044. } else if (key === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].DOWN || key === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].RIGHT) {
  2045. evt.preventDefault();
  2046. evt.stopPropagation();
  2047. if (shift) {
  2048. this.focusLast(evt);
  2049. } else {
  2050. this.focusNext(evt, false);
  2051. }
  2052. }
  2053. },
  2054. setItemFocus: function setItemFocus(item) {
  2055. this.$nextTick(function () {
  2056. item.focus();
  2057. });
  2058. },
  2059. focusNext: function focusNext(evt, prev) {
  2060. var items = this.getItems();
  2061. if (items.length < 1) {
  2062. return;
  2063. }
  2064. var index = items.indexOf(evt.target);
  2065. if (prev && index > 0) {
  2066. index--;
  2067. } else if (!prev && index < items.length - 1) {
  2068. index++;
  2069. }
  2070. if (index < 0) {
  2071. index = 0;
  2072. }
  2073. this.setItemFocus(items[index]);
  2074. },
  2075. focusFirst: function focusFirst(evt) {
  2076. var items = this.getItems();
  2077. if (items.length > 0) {
  2078. this.setItemFocus(items[0]);
  2079. }
  2080. },
  2081. focusLast: function focusLast(evt) {
  2082. var items = this.getItems();
  2083. if (items.length > 0) {
  2084. this.setItemFocus([items.length - 1]);
  2085. }
  2086. },
  2087. getItems: function getItems() {
  2088. var items = Object(__WEBPACK_IMPORTED_MODULE_0__utils_dom__["u" /* selectAll */])(ITEM_SELECTOR, this.$el);
  2089. items.forEach(function (item) {
  2090. // Ensure tabfocus is -1 on any new elements
  2091. item.tabIndex = -1;
  2092. });
  2093. return items.filter(function (el) {
  2094. return Object(__WEBPACK_IMPORTED_MODULE_0__utils_dom__["m" /* isVisible */])(el);
  2095. });
  2096. }
  2097. },
  2098. mounted: function mounted() {
  2099. if (this.keyNav) {
  2100. // Pre-set the tabindexes if the markup does not include tabindex="-1" on the toolbar items
  2101. this.getItems();
  2102. }
  2103. }
  2104. });
  2105. /***/ }),
  2106. /***/ "./node_modules/bootstrap-vue/es/components/button-toolbar/index.js":
  2107. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2108. "use strict";
  2109. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button_toolbar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button-toolbar/button-toolbar.js");
  2110. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  2111. var components = {
  2112. bButtonToolbar: __WEBPACK_IMPORTED_MODULE_0__button_toolbar__["a" /* default */],
  2113. bBtnToolbar: __WEBPACK_IMPORTED_MODULE_0__button_toolbar__["a" /* default */]
  2114. };
  2115. var VuePlugin = {
  2116. install: function install(Vue) {
  2117. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  2118. }
  2119. };
  2120. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  2121. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  2122. /***/ }),
  2123. /***/ "./node_modules/bootstrap-vue/es/components/button/button-close.js":
  2124. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2125. "use strict";
  2126. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  2127. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  2128. var props = {
  2129. disabled: {
  2130. type: Boolean,
  2131. default: false
  2132. },
  2133. ariaLabel: {
  2134. type: String,
  2135. default: 'Close'
  2136. },
  2137. textVariant: {
  2138. type: String,
  2139. default: null
  2140. }
  2141. };
  2142. /* harmony default export */ __webpack_exports__["a"] = ({
  2143. functional: true,
  2144. props: props,
  2145. render: function render(h, _ref) {
  2146. var props = _ref.props,
  2147. data = _ref.data,
  2148. listeners = _ref.listeners,
  2149. slots = _ref.slots;
  2150. var componentData = {
  2151. staticClass: 'close',
  2152. class: _defineProperty({}, 'text-' + props.textVariant, props.textVariant),
  2153. attrs: {
  2154. type: 'button',
  2155. disabled: props.disabled,
  2156. 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null
  2157. },
  2158. on: {
  2159. click: function click(e) {
  2160. // Ensure click on button HTML content is also disabled
  2161. if (props.disabled && e instanceof Event) {
  2162. e.stopPropagation();
  2163. e.preventDefault();
  2164. }
  2165. }
  2166. }
  2167. // Careful not to override the slot with innerHTML
  2168. };if (!slots().default) {
  2169. componentData.domProps = { innerHTML: '&times;' };
  2170. }
  2171. return h('button', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), slots().default);
  2172. }
  2173. });
  2174. /***/ }),
  2175. /***/ "./node_modules/bootstrap-vue/es/components/button/button.js":
  2176. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2177. "use strict";
  2178. /* unused harmony export props */
  2179. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  2180. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
  2181. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  2182. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  2183. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  2184. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
  2185. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  2186. var btnProps = {
  2187. block: {
  2188. type: Boolean,
  2189. default: false
  2190. },
  2191. disabled: {
  2192. type: Boolean,
  2193. default: false
  2194. },
  2195. size: {
  2196. type: String,
  2197. default: null
  2198. },
  2199. variant: {
  2200. type: String,
  2201. default: null
  2202. },
  2203. type: {
  2204. type: String,
  2205. default: 'button'
  2206. },
  2207. pressed: {
  2208. // tri-state prop: true, false or null
  2209. // => on, off, not a toggle
  2210. type: Boolean,
  2211. default: null
  2212. }
  2213. };
  2214. var linkProps = Object(__WEBPACK_IMPORTED_MODULE_5__link_link__["c" /* propsFactory */])();
  2215. delete linkProps.href.default;
  2216. delete linkProps.to.default;
  2217. var linkPropKeys = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["e" /* keys */])(linkProps);
  2218. var props = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])(linkProps, btnProps);
  2219. function handleFocus(evt) {
  2220. if (evt.type === 'focusin') {
  2221. Object(__WEBPACK_IMPORTED_MODULE_4__utils_dom__["a" /* addClass */])(evt.target, 'focus');
  2222. } else if (evt.type === 'focusout') {
  2223. Object(__WEBPACK_IMPORTED_MODULE_4__utils_dom__["s" /* removeClass */])(evt.target, 'focus');
  2224. }
  2225. }
  2226. /* harmony default export */ __webpack_exports__["a"] = ({
  2227. functional: true,
  2228. props: props,
  2229. render: function render(h, _ref) {
  2230. var _ref2;
  2231. var props = _ref.props,
  2232. data = _ref.data,
  2233. listeners = _ref.listeners,
  2234. children = _ref.children;
  2235. var isLink = Boolean(props.href || props.to);
  2236. var isToggle = typeof props.pressed === 'boolean';
  2237. var on = {
  2238. click: function click(e) {
  2239. if (props.disabled && e instanceof Event) {
  2240. e.stopPropagation();
  2241. e.preventDefault();
  2242. } else if (isToggle) {
  2243. // Concat will normalize the value to an array
  2244. // without double wrapping an array value in an array.
  2245. Object(__WEBPACK_IMPORTED_MODULE_2__utils_array__["b" /* concat */])(listeners['update:pressed']).forEach(function (fn) {
  2246. if (typeof fn === 'function') {
  2247. fn(!props.pressed);
  2248. }
  2249. });
  2250. }
  2251. }
  2252. };
  2253. if (isToggle) {
  2254. on.focusin = handleFocus;
  2255. on.focusout = handleFocus;
  2256. }
  2257. var componentData = {
  2258. staticClass: 'btn',
  2259. class: [props.variant ? 'btn-' + props.variant : 'btn-secondary', (_ref2 = {}, _defineProperty(_ref2, 'btn-' + props.size, Boolean(props.size)), _defineProperty(_ref2, 'btn-block', props.block), _defineProperty(_ref2, 'disabled', props.disabled), _defineProperty(_ref2, 'active', props.pressed), _ref2)],
  2260. props: isLink ? Object(__WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__["a" /* default */])(linkPropKeys, props) : null,
  2261. attrs: {
  2262. type: isLink ? null : props.type,
  2263. disabled: isLink ? null : props.disabled,
  2264. // Data attribute not used for js logic,
  2265. // but only for BS4 style selectors.
  2266. 'data-toggle': isToggle ? 'button' : null,
  2267. 'aria-pressed': isToggle ? String(props.pressed) : null,
  2268. // Tab index is used when the component becomes a link.
  2269. // Links are tabable, but don't allow disabled,
  2270. // so we mimic that functionality by disabling tabbing.
  2271. tabindex: props.disabled && isLink ? '-1' : data.attrs ? data.attrs['tabindex'] : null
  2272. },
  2273. on: on
  2274. };
  2275. return h(isLink ? __WEBPACK_IMPORTED_MODULE_5__link_link__["a" /* default */] : 'button', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), children);
  2276. }
  2277. });
  2278. /***/ }),
  2279. /***/ "./node_modules/bootstrap-vue/es/components/button/index.js":
  2280. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2281. "use strict";
  2282. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button.js");
  2283. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__button_close__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button-close.js");
  2284. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  2285. var components = {
  2286. bButton: __WEBPACK_IMPORTED_MODULE_0__button__["a" /* default */],
  2287. bBtn: __WEBPACK_IMPORTED_MODULE_0__button__["a" /* default */],
  2288. bButtonClose: __WEBPACK_IMPORTED_MODULE_1__button_close__["a" /* default */],
  2289. bBtnClose: __WEBPACK_IMPORTED_MODULE_1__button_close__["a" /* default */]
  2290. };
  2291. var VuePlugin = {
  2292. install: function install(Vue) {
  2293. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
  2294. }
  2295. };
  2296. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  2297. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  2298. /***/ }),
  2299. /***/ "./node_modules/bootstrap-vue/es/components/card/card-body.js":
  2300. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2301. "use strict";
  2302. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return props; });
  2303. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  2304. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js");
  2305. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_copyProps__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/copyProps.js");
  2306. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  2307. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_card_mixin__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/card-mixin.js");
  2308. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  2309. var props = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])({}, Object(__WEBPACK_IMPORTED_MODULE_2__utils_copyProps__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_4__mixins_card_mixin__["a" /* default */].props, __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__["a" /* default */].bind(null, 'body')), {
  2310. bodyClass: {
  2311. type: [String, Object, Array],
  2312. default: null
  2313. },
  2314. title: {
  2315. type: String,
  2316. default: null
  2317. },
  2318. titleTag: {
  2319. type: String,
  2320. default: 'h4'
  2321. },
  2322. subTitle: {
  2323. type: String,
  2324. default: null
  2325. },
  2326. subTitleTag: {
  2327. type: String,
  2328. default: 'h6'
  2329. },
  2330. overlay: {
  2331. type: Boolean,
  2332. default: false
  2333. }
  2334. });
  2335. /* harmony default export */ __webpack_exports__["a"] = ({
  2336. functional: true,
  2337. props: props,
  2338. render: function render(h, _ref) {
  2339. var _ref2;
  2340. var props = _ref.props,
  2341. data = _ref.data,
  2342. slots = _ref.slots;
  2343. var cardBodyChildren = [];
  2344. if (props.title) {
  2345. cardBodyChildren.push(h(props.titleTag, {
  2346. staticClass: 'card-title',
  2347. domProps: { innerHTML: props.title }
  2348. }));
  2349. }
  2350. if (props.subTitle) {
  2351. cardBodyChildren.push(h(props.subTitleTag, {
  2352. staticClass: 'card-subtitle mb-2 text-muted',
  2353. domProps: { innerHTML: props.subTitle }
  2354. }));
  2355. }
  2356. cardBodyChildren.push(slots().default);
  2357. return h(props.bodyTag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  2358. staticClass: 'card-body',
  2359. class: [(_ref2 = {
  2360. 'card-img-overlay': props.overlay
  2361. }, _defineProperty(_ref2, 'bg-' + props.bodyBgVariant, Boolean(props.bodyBgVariant)), _defineProperty(_ref2, 'border-' + props.bodyBorderVariant, Boolean(props.bodyBorderVariant)), _defineProperty(_ref2, 'text-' + props.bodyTextVariant, Boolean(props.bodyTextVariant)), _ref2), props.bodyClass || {}]
  2362. }), cardBodyChildren);
  2363. }
  2364. });
  2365. /***/ }),
  2366. /***/ "./node_modules/bootstrap-vue/es/components/card/card-footer.js":
  2367. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2368. "use strict";
  2369. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return props; });
  2370. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  2371. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js");
  2372. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_copyProps__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/copyProps.js");
  2373. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  2374. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_card_mixin__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/card-mixin.js");
  2375. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  2376. var props = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])({}, Object(__WEBPACK_IMPORTED_MODULE_2__utils_copyProps__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_4__mixins_card_mixin__["a" /* default */].props, __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__["a" /* default */].bind(null, 'footer')), {
  2377. footer: {
  2378. type: String,
  2379. default: null
  2380. },
  2381. footerClass: {
  2382. type: [String, Object, Array],
  2383. default: null
  2384. }
  2385. });
  2386. /* harmony default export */ __webpack_exports__["a"] = ({
  2387. functional: true,
  2388. props: props,
  2389. render: function render(h, _ref) {
  2390. var _ref2;
  2391. var props = _ref.props,
  2392. data = _ref.data,
  2393. slots = _ref.slots,
  2394. children = _ref.children;
  2395. return h(props.footerTag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  2396. staticClass: 'card-footer',
  2397. class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, 'bg-' + props.footerBgVariant, Boolean(props.footerBgVariant)), _defineProperty(_ref2, 'border-' + props.footerBorderVariant, Boolean(props.footerBorderVariant)), _defineProperty(_ref2, 'text-' + props.footerTextVariant, Boolean(props.footerTextVariant)), _ref2)]
  2398. }), children || [h('div', { domProps: { innerHTML: props.footer } })]);
  2399. }
  2400. });
  2401. /***/ }),
  2402. /***/ "./node_modules/bootstrap-vue/es/components/card/card-group.js":
  2403. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2404. "use strict";
  2405. /* unused harmony export props */
  2406. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  2407. var props = {
  2408. tag: {
  2409. type: String,
  2410. default: 'div'
  2411. },
  2412. deck: {
  2413. type: Boolean,
  2414. default: false
  2415. },
  2416. columns: {
  2417. type: Boolean,
  2418. default: false
  2419. }
  2420. };
  2421. /* harmony default export */ __webpack_exports__["a"] = ({
  2422. functional: true,
  2423. props: props,
  2424. render: function render(h, _ref) {
  2425. var props = _ref.props,
  2426. data = _ref.data,
  2427. children = _ref.children;
  2428. var staticClass = 'card-group';
  2429. if (props.columns) {
  2430. staticClass = 'card-columns';
  2431. }
  2432. if (props.deck) {
  2433. staticClass = 'card-deck';
  2434. }
  2435. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { staticClass: staticClass }), children);
  2436. }
  2437. });
  2438. /***/ }),
  2439. /***/ "./node_modules/bootstrap-vue/es/components/card/card-header.js":
  2440. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2441. "use strict";
  2442. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return props; });
  2443. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  2444. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js");
  2445. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_copyProps__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/copyProps.js");
  2446. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  2447. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_card_mixin__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/card-mixin.js");
  2448. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  2449. var props = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])({}, Object(__WEBPACK_IMPORTED_MODULE_2__utils_copyProps__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_4__mixins_card_mixin__["a" /* default */].props, __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__["a" /* default */].bind(null, 'header')), {
  2450. header: {
  2451. type: String,
  2452. default: null
  2453. },
  2454. headerClass: {
  2455. type: [String, Object, Array],
  2456. default: null
  2457. }
  2458. });
  2459. /* harmony default export */ __webpack_exports__["a"] = ({
  2460. functional: true,
  2461. props: props,
  2462. render: function render(h, _ref) {
  2463. var _ref2;
  2464. var props = _ref.props,
  2465. data = _ref.data,
  2466. slots = _ref.slots,
  2467. children = _ref.children;
  2468. return h(props.headerTag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  2469. staticClass: 'card-header',
  2470. class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, 'bg-' + props.headerBgVariant, Boolean(props.headerBgVariant)), _defineProperty(_ref2, 'border-' + props.headerBorderVariant, Boolean(props.headerBorderVariant)), _defineProperty(_ref2, 'text-' + props.headerTextVariant, Boolean(props.headerTextVariant)), _ref2)]
  2471. }), children || [h('div', { domProps: { innerHTML: props.header } })]);
  2472. }
  2473. });
  2474. /***/ }),
  2475. /***/ "./node_modules/bootstrap-vue/es/components/card/card-img.js":
  2476. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2477. "use strict";
  2478. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return props; });
  2479. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  2480. var props = {
  2481. src: {
  2482. type: String,
  2483. default: null,
  2484. required: true
  2485. },
  2486. alt: {
  2487. type: String,
  2488. default: null
  2489. },
  2490. top: {
  2491. type: Boolean,
  2492. default: false
  2493. },
  2494. bottom: {
  2495. type: Boolean,
  2496. default: false
  2497. },
  2498. fluid: {
  2499. type: Boolean,
  2500. default: false
  2501. }
  2502. };
  2503. /* harmony default export */ __webpack_exports__["a"] = ({
  2504. functional: true,
  2505. props: props,
  2506. render: function render(h, _ref) {
  2507. var props = _ref.props,
  2508. data = _ref.data,
  2509. slots = _ref.slots;
  2510. var staticClass = 'card-img';
  2511. if (props.top) {
  2512. staticClass += '-top';
  2513. } else if (props.bottom) {
  2514. staticClass += '-bottom';
  2515. }
  2516. return h('img', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  2517. staticClass: staticClass,
  2518. class: { 'img-fluid': props.fluid },
  2519. attrs: { src: props.src, alt: props.alt }
  2520. }));
  2521. }
  2522. });
  2523. /***/ }),
  2524. /***/ "./node_modules/bootstrap-vue/es/components/card/card.js":
  2525. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2526. "use strict";
  2527. /* unused harmony export props */
  2528. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  2529. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js");
  2530. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_unprefix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/unprefix-prop-name.js");
  2531. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_copyProps__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/copyProps.js");
  2532. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
  2533. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  2534. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__mixins_card_mixin__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/card-mixin.js");
  2535. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__card_body__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-body.js");
  2536. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__card_header__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-header.js");
  2537. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__card_footer__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-footer.js");
  2538. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__card_img__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-img.js");
  2539. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  2540. var cardImgProps = Object(__WEBPACK_IMPORTED_MODULE_3__utils_copyProps__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_10__card_img__["b" /* props */], __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__["a" /* default */].bind(null, 'img'));
  2541. cardImgProps.imgSrc.required = false;
  2542. var props = Object(__WEBPACK_IMPORTED_MODULE_5__utils_object__["a" /* assign */])({}, __WEBPACK_IMPORTED_MODULE_7__card_body__["b" /* props */], __WEBPACK_IMPORTED_MODULE_8__card_header__["b" /* props */], __WEBPACK_IMPORTED_MODULE_9__card_footer__["b" /* props */], cardImgProps, Object(__WEBPACK_IMPORTED_MODULE_3__utils_copyProps__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_6__mixins_card_mixin__["a" /* default */].props), {
  2543. align: {
  2544. type: String,
  2545. default: null
  2546. },
  2547. noBody: {
  2548. type: Boolean,
  2549. default: false
  2550. }
  2551. });
  2552. /* harmony default export */ __webpack_exports__["a"] = ({
  2553. functional: true,
  2554. props: props,
  2555. render: function render(h, _ref) {
  2556. var _class;
  2557. var props = _ref.props,
  2558. data = _ref.data,
  2559. slots = _ref.slots,
  2560. children = _ref.children;
  2561. // The order of the conditionals matter.
  2562. // We are building the component markup in order.
  2563. var childNodes = [];
  2564. var $slots = slots();
  2565. var img = props.imgSrc ? h(__WEBPACK_IMPORTED_MODULE_10__card_img__["a" /* default */], {
  2566. props: Object(__WEBPACK_IMPORTED_MODULE_4__utils_pluck_props__["a" /* default */])(cardImgProps, props, __WEBPACK_IMPORTED_MODULE_2__utils_unprefix_prop_name__["a" /* default */].bind(null, 'img'))
  2567. }) : null;
  2568. if (img) {
  2569. // Above the header placement.
  2570. if (props.imgTop || !props.imgBottom) {
  2571. childNodes.push(img);
  2572. }
  2573. }
  2574. if (props.header || $slots.header) {
  2575. childNodes.push(h(__WEBPACK_IMPORTED_MODULE_8__card_header__["a" /* default */], { props: Object(__WEBPACK_IMPORTED_MODULE_4__utils_pluck_props__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_8__card_header__["b" /* props */], props) }, $slots.header));
  2576. }
  2577. if (props.noBody) {
  2578. childNodes.push($slots.default);
  2579. } else {
  2580. childNodes.push(h(__WEBPACK_IMPORTED_MODULE_7__card_body__["a" /* default */], { props: Object(__WEBPACK_IMPORTED_MODULE_4__utils_pluck_props__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_7__card_body__["b" /* props */], props) }, $slots.default));
  2581. }
  2582. if (props.footer || $slots.footer) {
  2583. childNodes.push(h(__WEBPACK_IMPORTED_MODULE_9__card_footer__["a" /* default */], { props: Object(__WEBPACK_IMPORTED_MODULE_4__utils_pluck_props__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_9__card_footer__["b" /* props */], props) }, $slots.footer));
  2584. }
  2585. if (img && props.imgBottom) {
  2586. // Below the footer placement.
  2587. childNodes.push(img);
  2588. }
  2589. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  2590. staticClass: 'card',
  2591. class: (_class = {}, _defineProperty(_class, 'text-' + props.align, Boolean(props.align)), _defineProperty(_class, 'bg-' + props.bgVariant, Boolean(props.bgVariant)), _defineProperty(_class, 'border-' + props.borderVariant, Boolean(props.borderVariant)), _defineProperty(_class, 'text-' + props.textVariant, Boolean(props.textVariant)), _class)
  2592. }), childNodes);
  2593. }
  2594. });
  2595. /***/ }),
  2596. /***/ "./node_modules/bootstrap-vue/es/components/card/index.js":
  2597. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2598. "use strict";
  2599. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__card__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card.js");
  2600. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__card_header__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-header.js");
  2601. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__card_body__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-body.js");
  2602. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__card_footer__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-footer.js");
  2603. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__card_img__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-img.js");
  2604. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__card_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-group.js");
  2605. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  2606. var components = {
  2607. bCard: __WEBPACK_IMPORTED_MODULE_0__card__["a" /* default */],
  2608. bCardHeader: __WEBPACK_IMPORTED_MODULE_1__card_header__["a" /* default */],
  2609. bCardBody: __WEBPACK_IMPORTED_MODULE_2__card_body__["a" /* default */],
  2610. bCardFooter: __WEBPACK_IMPORTED_MODULE_3__card_footer__["a" /* default */],
  2611. bCardImg: __WEBPACK_IMPORTED_MODULE_4__card_img__["a" /* default */],
  2612. bCardGroup: __WEBPACK_IMPORTED_MODULE_5__card_group__["a" /* default */]
  2613. };
  2614. var VuePlugin = {
  2615. install: function install(Vue) {
  2616. Object(__WEBPACK_IMPORTED_MODULE_6__utils_plugins__["a" /* registerComponents */])(Vue, components);
  2617. }
  2618. };
  2619. Object(__WEBPACK_IMPORTED_MODULE_6__utils_plugins__["c" /* vueUse */])(VuePlugin);
  2620. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  2621. /***/ }),
  2622. /***/ "./node_modules/bootstrap-vue/es/components/carousel/carousel-slide.js":
  2623. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2624. "use strict";
  2625. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__image_img__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/image/img.js");
  2626. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  2627. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  2628. /* harmony default export */ __webpack_exports__["a"] = ({
  2629. components: { bImg: __WEBPACK_IMPORTED_MODULE_0__image_img__["a" /* default */] },
  2630. mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_id__["a" /* default */]],
  2631. render: function render(h) {
  2632. var $slots = this.$slots;
  2633. var img = $slots.img;
  2634. if (!img && (this.imgSrc || this.imgBlank)) {
  2635. img = h('b-img', {
  2636. props: {
  2637. fluidGrow: true,
  2638. block: true,
  2639. src: this.imgSrc,
  2640. blank: this.imgBlank,
  2641. blankColor: this.imgBlankColor,
  2642. width: this.computedWidth,
  2643. height: this.computedHeight,
  2644. alt: this.imgAlt
  2645. }
  2646. });
  2647. }
  2648. var content = h(this.contentTag, { class: this.contentClasses }, [this.caption ? h(this.captionTag, { domProps: { innerHTML: this.caption } }) : h(false), this.text ? h(this.textTag, { domProps: { innerHTML: this.text } }) : h(false), $slots.default]);
  2649. return h('div', {
  2650. class: ['carousel-item'],
  2651. style: { background: this.background },
  2652. attrs: { id: this.safeId(), role: 'listitem' }
  2653. }, [img, content]);
  2654. },
  2655. props: {
  2656. imgSrc: {
  2657. type: String,
  2658. default: function _default() {
  2659. if (this && this.src) {
  2660. // Deprecate src
  2661. Object(__WEBPACK_IMPORTED_MODULE_1__utils_warn__["a" /* default */])("b-carousel-slide: prop 'src' has been deprecated. Use 'img-src' instead");
  2662. return this.src;
  2663. }
  2664. return null;
  2665. }
  2666. },
  2667. src: {
  2668. // Deprecated: use img-src instead
  2669. type: String
  2670. },
  2671. imgAlt: {
  2672. type: String
  2673. },
  2674. imgWidth: {
  2675. type: [Number, String]
  2676. },
  2677. imgHeight: {
  2678. type: [Number, String]
  2679. },
  2680. imgBlank: {
  2681. type: Boolean,
  2682. default: false
  2683. },
  2684. imgBlankColor: {
  2685. type: String,
  2686. default: 'transparent'
  2687. },
  2688. contentVisibleUp: {
  2689. type: String
  2690. },
  2691. contentTag: {
  2692. type: String,
  2693. default: 'div'
  2694. },
  2695. caption: {
  2696. type: String
  2697. },
  2698. captionTag: {
  2699. type: String,
  2700. default: 'h3'
  2701. },
  2702. text: {
  2703. type: String
  2704. },
  2705. textTag: {
  2706. type: String,
  2707. default: 'p'
  2708. },
  2709. background: {
  2710. type: String
  2711. }
  2712. },
  2713. computed: {
  2714. contentClasses: function contentClasses() {
  2715. return ['carousel-caption', this.contentVisibleUp ? 'd-none' : '', this.contentVisibleUp ? 'd-' + this.contentVisibleUp + '-block' : ''];
  2716. },
  2717. computedWidth: function computedWidth() {
  2718. // Use local width, or try parent width
  2719. return this.imgWidth || this.$parent.imgWidth;
  2720. },
  2721. computedHeight: function computedHeight() {
  2722. // Use local height, or try parent height
  2723. return this.imgHeight || this.$parent.imgHeight;
  2724. }
  2725. }
  2726. });
  2727. /***/ }),
  2728. /***/ "./node_modules/bootstrap-vue/es/components/carousel/carousel.js":
  2729. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2730. "use strict";
  2731. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_observe_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js");
  2732. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
  2733. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  2734. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  2735. // Slide directional classes
  2736. var DIRECTION = {
  2737. next: {
  2738. dirClass: 'carousel-item-left',
  2739. overlayClass: 'carousel-item-next'
  2740. },
  2741. prev: {
  2742. dirClass: 'carousel-item-right',
  2743. overlayClass: 'carousel-item-prev'
  2744. }
  2745. // Fallback Transition duration (with a little buffer) in ms
  2746. };var TRANS_DURATION = 600 + 50;
  2747. // Transition Event names
  2748. var TransitionEndEvents = {
  2749. WebkitTransition: 'webkitTransitionEnd',
  2750. MozTransition: 'transitionend',
  2751. OTransition: 'otransitionend oTransitionEnd',
  2752. transition: 'transitionend'
  2753. // Return the browser specific transitionEnd event name
  2754. };function getTransisionEndEvent(el) {
  2755. for (var name in TransitionEndEvents) {
  2756. if (el.style[name] !== undefined) {
  2757. return TransitionEndEvents[name];
  2758. }
  2759. }
  2760. // fallback
  2761. return null;
  2762. }
  2763. /* harmony default export */ __webpack_exports__["a"] = ({
  2764. mixins: [__WEBPACK_IMPORTED_MODULE_3__mixins_id__["a" /* default */]],
  2765. render: function render(h) {
  2766. var _this = this;
  2767. // Wrapper for slides
  2768. var inner = h('div', {
  2769. ref: 'inner',
  2770. class: ['carousel-inner'],
  2771. attrs: {
  2772. id: this.safeId('__BV_inner_'),
  2773. role: 'list'
  2774. }
  2775. }, [this.$slots.default]);
  2776. // Prev and Next Controls
  2777. var controls = h(false);
  2778. if (this.controls) {
  2779. controls = [h('a', {
  2780. class: ['carousel-control-prev'],
  2781. attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },
  2782. on: {
  2783. click: function click(evt) {
  2784. evt.preventDefault();
  2785. evt.stopPropagation();
  2786. _this.prev();
  2787. },
  2788. keydown: function keydown(evt) {
  2789. var keyCode = evt.keyCode;
  2790. if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].SPACE || keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].ENTER) {
  2791. evt.preventDefault();
  2792. evt.stopPropagation();
  2793. _this.prev();
  2794. }
  2795. }
  2796. }
  2797. }, [h('span', { class: ['carousel-control-prev-icon'], attrs: { 'aria-hidden': 'true' } }), h('span', { class: ['sr-only'] }, [this.labelPrev])]), h('a', {
  2798. class: ['carousel-control-next'],
  2799. attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },
  2800. on: {
  2801. click: function click(evt) {
  2802. evt.preventDefault();
  2803. evt.stopPropagation();
  2804. _this.next();
  2805. },
  2806. keydown: function keydown(evt) {
  2807. var keyCode = evt.keyCode;
  2808. if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].SPACE || keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].ENTER) {
  2809. evt.preventDefault();
  2810. evt.stopPropagation();
  2811. _this.next();
  2812. }
  2813. }
  2814. }
  2815. }, [h('span', { class: ['carousel-control-next-icon'], attrs: { 'aria-hidden': 'true' } }), h('span', { class: ['sr-only'] }, [this.labelNext])])];
  2816. }
  2817. // Indicators
  2818. var indicators = h('ol', {
  2819. class: ['carousel-indicators'],
  2820. directives: [{ name: 'show', rawName: 'v-show', value: this.indicators, expression: 'indicators' }],
  2821. attrs: {
  2822. id: this.safeId('__BV_indicators_'),
  2823. 'aria-hidden': this.indicators ? 'false' : 'true',
  2824. 'aria-label': this.labelIndicators,
  2825. 'aria-owns': this.safeId('__BV_inner_')
  2826. }
  2827. }, this.slides.map(function (slide, n) {
  2828. return h('li', {
  2829. key: 'slide_' + n,
  2830. class: { active: n === _this.index },
  2831. attrs: {
  2832. role: 'button',
  2833. id: _this.safeId('__BV_indicator_' + (n + 1) + '_'),
  2834. tabindex: _this.indicators ? '0' : '-1',
  2835. 'aria-current': n === _this.index ? 'true' : 'false',
  2836. 'aria-label': _this.labelGotoSlide + ' ' + (n + 1),
  2837. 'aria-describedby': _this.slides[n].id || null,
  2838. 'aria-controls': _this.safeId('__BV_inner_')
  2839. },
  2840. on: {
  2841. click: function click(evt) {
  2842. _this.setSlide(n);
  2843. },
  2844. keydown: function keydown(evt) {
  2845. var keyCode = evt.keyCode;
  2846. if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].SPACE || keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].ENTER) {
  2847. evt.preventDefault();
  2848. evt.stopPropagation();
  2849. _this.setSlide(n);
  2850. }
  2851. }
  2852. }
  2853. });
  2854. }));
  2855. // Return the carousel
  2856. return h('div', {
  2857. class: ['carousel', 'slide'],
  2858. style: { background: this.background },
  2859. attrs: {
  2860. role: 'region',
  2861. id: this.safeId(),
  2862. 'aria-busy': this.isSliding ? 'true' : 'false'
  2863. },
  2864. on: {
  2865. mouseenter: this.pause,
  2866. mouseleave: this.restart,
  2867. focusin: this.pause,
  2868. focusout: this.restart,
  2869. keydown: function keydown(evt) {
  2870. var keyCode = evt.keyCode;
  2871. if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].LEFT || keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].RIGHT) {
  2872. evt.preventDefault();
  2873. evt.stopPropagation();
  2874. _this[keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].LEFT ? 'prev' : 'next']();
  2875. }
  2876. }
  2877. }
  2878. }, [inner, controls, indicators]);
  2879. },
  2880. data: function data() {
  2881. return {
  2882. index: this.value || 0,
  2883. isSliding: false,
  2884. intervalId: null,
  2885. transitionEndEvent: null,
  2886. slides: [],
  2887. direction: null
  2888. };
  2889. },
  2890. props: {
  2891. labelPrev: {
  2892. type: String,
  2893. default: 'Previous Slide'
  2894. },
  2895. labelNext: {
  2896. type: String,
  2897. default: 'Next Slide'
  2898. },
  2899. labelGotoSlide: {
  2900. type: String,
  2901. default: 'Goto Slide'
  2902. },
  2903. labelIndicators: {
  2904. type: String,
  2905. default: 'Select a slide to display'
  2906. },
  2907. interval: {
  2908. type: Number,
  2909. default: 5000
  2910. },
  2911. indicators: {
  2912. type: Boolean,
  2913. default: false
  2914. },
  2915. controls: {
  2916. type: Boolean,
  2917. default: false
  2918. },
  2919. imgWidth: {
  2920. // Sniffed by carousel-slide
  2921. type: [Number, String]
  2922. },
  2923. imgHeight: {
  2924. // Sniffed by carousel-slide
  2925. type: [Number, String]
  2926. },
  2927. background: {
  2928. type: String
  2929. },
  2930. value: {
  2931. type: Number,
  2932. default: 0
  2933. }
  2934. },
  2935. computed: {
  2936. isCycling: function isCycling() {
  2937. return Boolean(this.intervalId);
  2938. }
  2939. },
  2940. methods: {
  2941. // Set slide
  2942. setSlide: function setSlide(slide) {
  2943. var _this2 = this;
  2944. // Don't animate when page is not visible
  2945. if (typeof document !== 'undefined' && document.visibilityState && document.hidden) {
  2946. return;
  2947. }
  2948. var len = this.slides.length;
  2949. // Don't do anything if nothing to slide to
  2950. if (len === 0) {
  2951. return;
  2952. }
  2953. // Don't change slide while transitioning, wait until transition is done
  2954. if (this.isSliding) {
  2955. // Schedule slide after sliding complete
  2956. this.$once('sliding-end', function () {
  2957. return _this2.setSlide(slide);
  2958. });
  2959. return;
  2960. }
  2961. // Make sure we have an integer (you never know!)
  2962. slide = Math.floor(slide);
  2963. // Set new slide index. Wrap around if necessary
  2964. this.index = slide >= len ? 0 : slide >= 0 ? slide : len - 1;
  2965. },
  2966. // Previous slide
  2967. prev: function prev() {
  2968. this.direction = 'prev';
  2969. this.setSlide(this.index - 1);
  2970. },
  2971. // Next slide
  2972. next: function next() {
  2973. this.direction = 'next';
  2974. this.setSlide(this.index + 1);
  2975. },
  2976. // Pause auto rotation
  2977. pause: function pause() {
  2978. if (this.isCycling) {
  2979. clearInterval(this.intervalId);
  2980. this.intervalId = null;
  2981. if (this.slides[this.index]) {
  2982. // Make current slide focusable for screen readers
  2983. this.slides[this.index].tabIndex = 0;
  2984. }
  2985. }
  2986. },
  2987. // Start auto rotate slides
  2988. start: function start() {
  2989. var _this3 = this;
  2990. // Don't start if no interval, or if we are already running
  2991. if (!this.interval || this.isCycling) {
  2992. return;
  2993. }
  2994. this.slides.forEach(function (slide) {
  2995. slide.tabIndex = -1;
  2996. });
  2997. this.intervalId = setInterval(function () {
  2998. _this3.next();
  2999. }, Math.max(1000, this.interval));
  3000. },
  3001. // Re-Start auto rotate slides when focus/hover leaves the carousel
  3002. restart: function restart(evt) {
  3003. if (!this.$el.contains(document.activeElement)) {
  3004. this.start();
  3005. }
  3006. },
  3007. // Update slide list
  3008. updateSlides: function updateSlides() {
  3009. this.pause();
  3010. // Get all slides as DOM elements
  3011. this.slides = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["u" /* selectAll */])('.carousel-item', this.$refs.inner);
  3012. var numSlides = this.slides.length;
  3013. // Keep slide number in range
  3014. var index = Math.max(0, Math.min(Math.floor(this.index), numSlides - 1));
  3015. this.slides.forEach(function (slide, idx) {
  3016. var n = idx + 1;
  3017. if (idx === index) {
  3018. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["a" /* addClass */])(slide, 'active');
  3019. } else {
  3020. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(slide, 'active');
  3021. }
  3022. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(slide, 'aria-current', idx === index ? 'true' : 'false');
  3023. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(slide, 'aria-posinset', String(n));
  3024. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(slide, 'aria-setsize', String(numSlides));
  3025. slide.tabIndex = -1;
  3026. });
  3027. // Set slide as active
  3028. this.setSlide(index);
  3029. this.start();
  3030. },
  3031. calcDirection: function calcDirection() {
  3032. var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
  3033. var curIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  3034. var nextIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
  3035. if (!direction) {
  3036. return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev;
  3037. }
  3038. return DIRECTION[direction];
  3039. }
  3040. },
  3041. watch: {
  3042. value: function value(newVal, oldVal) {
  3043. if (newVal !== oldVal) {
  3044. this.setSlide(newVal);
  3045. }
  3046. },
  3047. interval: function interval(newVal, oldVal) {
  3048. if (newVal === oldVal) {
  3049. return;
  3050. }
  3051. if (!newVal) {
  3052. // Pausing slide show
  3053. this.pause();
  3054. } else {
  3055. // Restarting or Changing interval
  3056. this.pause();
  3057. this.start();
  3058. }
  3059. },
  3060. index: function index(val, oldVal) {
  3061. var _this4 = this;
  3062. if (val === oldVal || this.isSliding) {
  3063. return;
  3064. }
  3065. // Determine sliding direction
  3066. var direction = this.calcDirection(this.direction, oldVal, val);
  3067. // Determine current and next slides
  3068. var currentSlide = this.slides[oldVal];
  3069. var nextSlide = this.slides[val];
  3070. // Don't do anything if there aren't any slides to slide to
  3071. if (!currentSlide || !nextSlide) {
  3072. return;
  3073. }
  3074. // Start animating
  3075. this.isSliding = true;
  3076. this.$emit('sliding-start', val);
  3077. // Update v-model
  3078. this.$emit('input', this.index);
  3079. nextSlide.classList.add(direction.overlayClass);
  3080. // Trigger a reflow of next slide
  3081. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["q" /* reflow */])(nextSlide);
  3082. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["a" /* addClass */])(currentSlide, direction.dirClass);
  3083. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["a" /* addClass */])(nextSlide, direction.dirClass);
  3084. // Transition End handler
  3085. var called = false;
  3086. /* istanbul ignore next: dificult to test */
  3087. var onceTransEnd = function onceTransEnd(evt) {
  3088. if (called) {
  3089. return;
  3090. }
  3091. called = true;
  3092. if (_this4.transitionEndEvent) {
  3093. var events = _this4.transitionEndEvent.split(/\s+/);
  3094. events.forEach(function (event) {
  3095. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["c" /* eventOff */])(currentSlide, event, onceTransEnd);
  3096. });
  3097. }
  3098. _this4._animationTimeout = null;
  3099. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(nextSlide, direction.dirClass);
  3100. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(nextSlide, direction.overlayClass);
  3101. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["a" /* addClass */])(nextSlide, 'active');
  3102. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(currentSlide, 'active');
  3103. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(currentSlide, direction.dirClass);
  3104. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(currentSlide, direction.overlayClass);
  3105. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(currentSlide, 'aria-current', 'false');
  3106. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(nextSlide, 'aria-current', 'true');
  3107. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(currentSlide, 'aria-hidden', 'true');
  3108. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(nextSlide, 'aria-hidden', 'false');
  3109. currentSlide.tabIndex = -1;
  3110. nextSlide.tabIndex = -1;
  3111. if (!_this4.isCycling) {
  3112. // Focus the next slide for screen readers if not in play mode
  3113. nextSlide.tabIndex = 0;
  3114. _this4.$nextTick(function () {
  3115. nextSlide.focus();
  3116. });
  3117. }
  3118. _this4.isSliding = false;
  3119. _this4.direction = null;
  3120. // Notify ourselves that we're done sliding (slid)
  3121. _this4.$nextTick(function () {
  3122. return _this4.$emit('sliding-end', val);
  3123. });
  3124. };
  3125. // Clear transition classes after transition ends
  3126. if (this.transitionEndEvent) {
  3127. var events = this.transitionEndEvent.split(/\s+/);
  3128. events.forEach(function (event) {
  3129. Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["d" /* eventOn */])(currentSlide, event, onceTransEnd);
  3130. });
  3131. }
  3132. // Fallback to setTimeout
  3133. this._animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION);
  3134. }
  3135. },
  3136. created: function created() {
  3137. // Create private non-reactive props
  3138. this._animationTimeout = null;
  3139. },
  3140. mounted: function mounted() {
  3141. // Cache current browser transitionend event name
  3142. this.transitionEndEvent = getTransisionEndEvent(this.$el) || null;
  3143. // Get all slides
  3144. this.updateSlides();
  3145. // Observe child changes so we can update slide list
  3146. Object(__WEBPACK_IMPORTED_MODULE_0__utils_observe_dom__["a" /* default */])(this.$refs.inner, this.updateSlides.bind(this), {
  3147. subtree: false,
  3148. childList: true,
  3149. attributes: true,
  3150. attributeFilter: ['id']
  3151. });
  3152. },
  3153. /* istanbul ignore next: dificult to test */
  3154. beforeDestroy: function beforeDestroy() {
  3155. clearInterval(this.intervalId);
  3156. clearTimeout(this._animationTimeout);
  3157. this.intervalId = null;
  3158. this._animationTimeout = null;
  3159. }
  3160. });
  3161. /***/ }),
  3162. /***/ "./node_modules/bootstrap-vue/es/components/carousel/index.js":
  3163. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3164. "use strict";
  3165. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__carousel__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/carousel/carousel.js");
  3166. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__carousel_slide__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/carousel/carousel-slide.js");
  3167. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  3168. var components = {
  3169. bCarousel: __WEBPACK_IMPORTED_MODULE_0__carousel__["a" /* default */],
  3170. bCarouselSlide: __WEBPACK_IMPORTED_MODULE_1__carousel_slide__["a" /* default */]
  3171. };
  3172. var VuePlugin = {
  3173. install: function install(Vue) {
  3174. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
  3175. }
  3176. };
  3177. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  3178. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  3179. /***/ }),
  3180. /***/ "./node_modules/bootstrap-vue/es/components/collapse/collapse.js":
  3181. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3182. "use strict";
  3183. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_listen_on_root__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js");
  3184. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  3185. // Events we emit on $root
  3186. var EVENT_STATE = 'bv::collapse::state';
  3187. var EVENT_ACCORDION = 'bv::collapse::accordion';
  3188. // Events we listen to on $root
  3189. var EVENT_TOGGLE = 'bv::toggle::collapse';
  3190. /* harmony default export */ __webpack_exports__["a"] = ({
  3191. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_listen_on_root__["a" /* default */]],
  3192. render: function render(h) {
  3193. var content = h(this.tag, {
  3194. class: this.classObject,
  3195. directives: [{ name: 'show', value: this.show }],
  3196. attrs: { id: this.id || null },
  3197. on: { click: this.clickHandler }
  3198. }, [this.$slots.default]);
  3199. return h('transition', {
  3200. props: {
  3201. enterClass: '',
  3202. enterActiveClass: 'collapsing',
  3203. enterToClass: '',
  3204. leaveClass: '',
  3205. leaveActiveClass: 'collapsing',
  3206. leaveToClass: ''
  3207. },
  3208. on: {
  3209. enter: this.onEnter,
  3210. afterEnter: this.onAfterEnter,
  3211. leave: this.onLeave,
  3212. afterLeave: this.onAfterLeave
  3213. }
  3214. }, [content]);
  3215. },
  3216. data: function data() {
  3217. return {
  3218. show: this.visible,
  3219. transitioning: false
  3220. };
  3221. },
  3222. model: {
  3223. prop: 'visible',
  3224. event: 'input'
  3225. },
  3226. props: {
  3227. id: {
  3228. type: String,
  3229. required: true
  3230. },
  3231. isNav: {
  3232. type: Boolean,
  3233. default: false
  3234. },
  3235. accordion: {
  3236. type: String,
  3237. default: null
  3238. },
  3239. visible: {
  3240. type: Boolean,
  3241. default: false
  3242. },
  3243. tag: {
  3244. type: String,
  3245. default: 'div'
  3246. }
  3247. },
  3248. watch: {
  3249. visible: function visible(newVal) {
  3250. if (newVal !== this.show) {
  3251. this.show = newVal;
  3252. }
  3253. },
  3254. show: function show(newVal, oldVal) {
  3255. if (newVal !== oldVal) {
  3256. this.emitState();
  3257. }
  3258. }
  3259. },
  3260. computed: {
  3261. classObject: function classObject() {
  3262. return {
  3263. 'navbar-collapse': this.isNav,
  3264. 'collapse': !this.transitioning,
  3265. 'show': this.show && !this.transitioning
  3266. };
  3267. }
  3268. },
  3269. methods: {
  3270. toggle: function toggle() {
  3271. this.show = !this.show;
  3272. },
  3273. onEnter: function onEnter(el) {
  3274. el.style.height = 0;
  3275. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["q" /* reflow */])(el);
  3276. el.style.height = el.scrollHeight + 'px';
  3277. this.transitioning = true;
  3278. // This should be moved out so we can add cancellable events
  3279. this.$emit('show');
  3280. },
  3281. onAfterEnter: function onAfterEnter(el) {
  3282. el.style.height = null;
  3283. this.transitioning = false;
  3284. this.$emit('shown');
  3285. },
  3286. onLeave: function onLeave(el) {
  3287. el.style.height = 'auto';
  3288. el.style.display = 'block';
  3289. el.style.height = el.getBoundingClientRect().height + 'px';
  3290. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["q" /* reflow */])(el);
  3291. this.transitioning = true;
  3292. el.style.height = 0;
  3293. // This should be moved out so we can add cancellable events
  3294. this.$emit('hide');
  3295. },
  3296. onAfterLeave: function onAfterLeave(el) {
  3297. el.style.height = null;
  3298. this.transitioning = false;
  3299. this.$emit('hidden');
  3300. },
  3301. emitState: function emitState() {
  3302. this.$emit('input', this.show);
  3303. // Let v-b-toggle know the state of this collapse
  3304. this.$root.$emit(EVENT_STATE, this.id, this.show);
  3305. if (this.accordion && this.show) {
  3306. // Tell the other collapses in this accordion to close
  3307. this.$root.$emit(EVENT_ACCORDION, this.id, this.accordion);
  3308. }
  3309. },
  3310. clickHandler: function clickHandler(evt) {
  3311. // If we are in a nav/navbar, close the collapse when non-disabled link clicked
  3312. var el = evt.target;
  3313. if (!this.isNav || !el || getComputedStyle(this.$el).display !== 'block') {
  3314. return;
  3315. }
  3316. if (Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["j" /* hasClass */])(el, 'nav-link') || Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["j" /* hasClass */])(el, 'dropdown-item')) {
  3317. this.show = false;
  3318. }
  3319. },
  3320. handleToggleEvt: function handleToggleEvt(target) {
  3321. if (target !== this.id) {
  3322. return;
  3323. }
  3324. this.toggle();
  3325. },
  3326. handleAccordionEvt: function handleAccordionEvt(openedId, accordion) {
  3327. if (!this.accordion || accordion !== this.accordion) {
  3328. return;
  3329. }
  3330. if (openedId === this.id) {
  3331. // Open this collapse if not shown
  3332. if (!this.show) {
  3333. this.toggle();
  3334. }
  3335. } else {
  3336. // Close this collapse if shown
  3337. if (this.show) {
  3338. this.toggle();
  3339. }
  3340. }
  3341. },
  3342. handleResize: function handleResize() {
  3343. // Handler for orientation/resize to set collapsed state in nav/navbar
  3344. this.show = getComputedStyle(this.$el).display === 'block';
  3345. }
  3346. },
  3347. created: function created() {
  3348. // Listen for toggle events to open/close us
  3349. this.listenOnRoot(EVENT_TOGGLE, this.handleToggleEvt);
  3350. // Listen to otehr collapses for accordion events
  3351. this.listenOnRoot(EVENT_ACCORDION, this.handleAccordionEvt);
  3352. },
  3353. mounted: function mounted() {
  3354. if (this.isNav && typeof document !== 'undefined') {
  3355. // Set up handlers
  3356. window.addEventListener('resize', this.handleResize, false);
  3357. window.addEventListener('orientationchange', this.handleResize, false);
  3358. this.handleResize();
  3359. }
  3360. this.emitState();
  3361. },
  3362. beforeDestroy: function beforeDestroy() {
  3363. if (this.isNav && typeof document !== 'undefined') {
  3364. window.removeEventListener('resize', this.handleResize, false);
  3365. window.removeEventListener('orientationchange', this.handleResize, false);
  3366. }
  3367. }
  3368. });
  3369. /***/ }),
  3370. /***/ "./node_modules/bootstrap-vue/es/components/collapse/index.js":
  3371. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3372. "use strict";
  3373. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__collapse__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/collapse/collapse.js");
  3374. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives_toggle__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/toggle/index.js");
  3375. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  3376. var components = {
  3377. bCollapse: __WEBPACK_IMPORTED_MODULE_0__collapse__["a" /* default */]
  3378. };
  3379. var VuePlugin = {
  3380. install: function install(Vue) {
  3381. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
  3382. Vue.use(__WEBPACK_IMPORTED_MODULE_1__directives_toggle__["a" /* default */]);
  3383. }
  3384. };
  3385. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  3386. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  3387. /***/ }),
  3388. /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown-divider.js":
  3389. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3390. "use strict";
  3391. /* unused harmony export props */
  3392. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  3393. var props = {
  3394. tag: {
  3395. type: String,
  3396. default: 'div'
  3397. }
  3398. };
  3399. /* harmony default export */ __webpack_exports__["a"] = ({
  3400. functional: true,
  3401. props: props,
  3402. render: function render(h, _ref) {
  3403. var props = _ref.props,
  3404. data = _ref.data;
  3405. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  3406. staticClass: 'dropdown-divider',
  3407. attrs: { role: 'separator' }
  3408. }));
  3409. }
  3410. });
  3411. /***/ }),
  3412. /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown-header.js":
  3413. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3414. "use strict";
  3415. /* unused harmony export props */
  3416. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  3417. var props = {
  3418. id: {
  3419. type: String,
  3420. default: null
  3421. },
  3422. tag: {
  3423. type: String,
  3424. default: 'h6'
  3425. }
  3426. };
  3427. /* harmony default export */ __webpack_exports__["a"] = ({
  3428. functional: true,
  3429. props: props,
  3430. render: function render(h, _ref) {
  3431. var props = _ref.props,
  3432. data = _ref.data,
  3433. children = _ref.children;
  3434. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  3435. staticClass: 'dropdown-header',
  3436. attrs: { id: props.id || null }
  3437. }), children);
  3438. }
  3439. });
  3440. /***/ }),
  3441. /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item-button.js":
  3442. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3443. "use strict";
  3444. /* unused harmony export props */
  3445. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  3446. var props = {
  3447. disabled: {
  3448. type: Boolean,
  3449. default: false
  3450. }
  3451. };
  3452. /* harmony default export */ __webpack_exports__["a"] = ({
  3453. functional: true,
  3454. props: props,
  3455. render: function render(h, _ref) {
  3456. var props = _ref.props,
  3457. data = _ref.data,
  3458. parent = _ref.parent,
  3459. children = _ref.children;
  3460. return h('button', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  3461. props: props,
  3462. staticClass: 'dropdown-item',
  3463. attrs: { role: 'menuitem', type: 'button', disabled: props.disabled },
  3464. on: {
  3465. click: function click(e) {
  3466. parent.$root.$emit('clicked::link', e);
  3467. }
  3468. }
  3469. }), children);
  3470. }
  3471. });
  3472. /***/ }),
  3473. /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item.js":
  3474. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3475. "use strict";
  3476. /* unused harmony export props */
  3477. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  3478. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
  3479. var props = Object(__WEBPACK_IMPORTED_MODULE_1__link_link__["c" /* propsFactory */])();
  3480. /* harmony default export */ __webpack_exports__["a"] = ({
  3481. functional: true,
  3482. props: props,
  3483. render: function render(h, _ref) {
  3484. var props = _ref.props,
  3485. data = _ref.data,
  3486. children = _ref.children;
  3487. return h(__WEBPACK_IMPORTED_MODULE_1__link_link__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  3488. props: props,
  3489. staticClass: 'dropdown-item',
  3490. attrs: { role: 'menuitem' }
  3491. }), children);
  3492. }
  3493. });
  3494. /***/ }),
  3495. /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css":
  3496. /***/ (function(module, exports, __webpack_require__) {
  3497. // style-loader: Adds some css to the DOM by adding a <style> tag
  3498. // load the styles
  3499. var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css");
  3500. if(typeof content === 'string') content = [[module.i, content, '']];
  3501. // Prepare cssTransformation
  3502. var transform;
  3503. var options = {}
  3504. options.transform = transform
  3505. // add the styles to the DOM
  3506. var update = __webpack_require__("./node_modules/style-loader/lib/addStyles.js")(content, options);
  3507. if(content.locals) module.exports = content.locals;
  3508. // Hot Module Replacement
  3509. if(false) {
  3510. // When the styles change, update the <style> tags
  3511. if(!content.locals) {
  3512. module.hot.accept("!!../../../../css-loader/index.js!./dropdown.css", function() {
  3513. var newContent = require("!!../../../../css-loader/index.js!./dropdown.css");
  3514. if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
  3515. update(newContent);
  3516. });
  3517. }
  3518. // When the module is disposed, remove the <style> tags
  3519. module.hot.dispose(function() { update(); });
  3520. }
  3521. /***/ }),
  3522. /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown.js":
  3523. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3524. "use strict";
  3525. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  3526. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/dropdown.js");
  3527. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__button_button__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button.js");
  3528. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dropdown_css__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css");
  3529. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dropdown_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__dropdown_css__);
  3530. /* harmony default export */ __webpack_exports__["a"] = ({
  3531. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_dropdown__["a" /* default */]],
  3532. components: { bButton: __WEBPACK_IMPORTED_MODULE_2__button_button__["a" /* default */] },
  3533. render: function render(h) {
  3534. var split = h(false);
  3535. if (this.split) {
  3536. split = h('b-button', {
  3537. ref: 'button',
  3538. props: {
  3539. disabled: this.disabled,
  3540. variant: this.variant,
  3541. size: this.size
  3542. },
  3543. attrs: {
  3544. id: this.safeId('_BV_button_')
  3545. },
  3546. on: {
  3547. click: this.click
  3548. }
  3549. }, [this.$slots['button-content'] || this.$slots.text || this.text]);
  3550. }
  3551. var toggle = h('b-button', {
  3552. ref: 'toggle',
  3553. class: this.toggleClasses,
  3554. props: {
  3555. variant: this.variant,
  3556. size: this.size,
  3557. disabled: this.disabled
  3558. },
  3559. attrs: {
  3560. id: this.safeId('_BV_toggle_'),
  3561. 'aria-haspopup': 'true',
  3562. 'aria-expanded': this.visible ? 'true' : 'false'
  3563. },
  3564. on: {
  3565. click: this.toggle, // click
  3566. keydown: this.toggle // enter, space, down
  3567. }
  3568. }, [this.split ? h('span', { class: ['sr-only'] }, [this.toggleText]) : this.$slots['button-content'] || this.$slots.text || this.text]);
  3569. var menu = h('div', {
  3570. ref: 'menu',
  3571. class: this.menuClasses,
  3572. attrs: {
  3573. role: this.role,
  3574. 'aria-labelledby': this.safeId(this.split ? '_BV_button_' : '_BV_toggle_')
  3575. },
  3576. on: {
  3577. mouseover: this.onMouseOver,
  3578. keydown: this.onKeydown // tab, up, down, esc
  3579. }
  3580. }, [this.$slots.default]);
  3581. return h('div', { attrs: { id: this.safeId() }, class: this.dropdownClasses }, [split, toggle, menu]);
  3582. },
  3583. props: {
  3584. split: {
  3585. type: Boolean,
  3586. default: false
  3587. },
  3588. toggleText: {
  3589. type: String,
  3590. default: 'Toggle Dropdown'
  3591. },
  3592. size: {
  3593. type: String,
  3594. default: null
  3595. },
  3596. variant: {
  3597. type: String,
  3598. default: null
  3599. },
  3600. menuClass: {
  3601. type: [String, Array],
  3602. default: null
  3603. },
  3604. toggleClass: {
  3605. type: [String, Array],
  3606. default: null
  3607. },
  3608. noCaret: {
  3609. type: Boolean,
  3610. default: false
  3611. },
  3612. role: {
  3613. type: String,
  3614. default: 'menu'
  3615. },
  3616. boundary: {
  3617. // String: `scrollParent`, `window` or `viewport`
  3618. // Object: HTML Element reference
  3619. type: [String, Object],
  3620. default: 'scrollParent'
  3621. }
  3622. },
  3623. computed: {
  3624. dropdownClasses: function dropdownClasses() {
  3625. var position = '';
  3626. // Position `static` is needed to allow menu to "breakout" of the scrollParent boundaries
  3627. // when boundary is anything other than `scrollParent`
  3628. // See https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786
  3629. if (this.boundary !== 'scrollParent' || !this.boundary) {
  3630. position = 'position-static';
  3631. }
  3632. return ['btn-group', 'b-dropdown', 'dropdown', this.dropup ? 'dropup' : '', this.visible ? 'show' : '', position];
  3633. },
  3634. menuClasses: function menuClasses() {
  3635. return ['dropdown-menu', {
  3636. 'dropdown-menu-right': this.right,
  3637. 'show': this.visible
  3638. }, this.menuClass];
  3639. },
  3640. toggleClasses: function toggleClasses() {
  3641. return [{
  3642. 'dropdown-toggle': !this.noCaret || this.split,
  3643. 'dropdown-toggle-split': this.split
  3644. }, this.toggleClass];
  3645. }
  3646. }
  3647. });
  3648. /***/ }),
  3649. /***/ "./node_modules/bootstrap-vue/es/components/dropdown/index.js":
  3650. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3651. "use strict";
  3652. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown.js");
  3653. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dropdown_item__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item.js");
  3654. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__dropdown_item_button__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item-button.js");
  3655. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dropdown_header__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown-header.js");
  3656. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__dropdown_divider__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown-divider.js");
  3657. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  3658. var components = {
  3659. bDropdown: __WEBPACK_IMPORTED_MODULE_0__dropdown__["a" /* default */],
  3660. bDd: __WEBPACK_IMPORTED_MODULE_0__dropdown__["a" /* default */],
  3661. bDropdownItem: __WEBPACK_IMPORTED_MODULE_1__dropdown_item__["a" /* default */],
  3662. bDdItem: __WEBPACK_IMPORTED_MODULE_1__dropdown_item__["a" /* default */],
  3663. bDropdownItemButton: __WEBPACK_IMPORTED_MODULE_2__dropdown_item_button__["a" /* default */],
  3664. bDropdownItemBtn: __WEBPACK_IMPORTED_MODULE_2__dropdown_item_button__["a" /* default */],
  3665. bDdItemButton: __WEBPACK_IMPORTED_MODULE_2__dropdown_item_button__["a" /* default */],
  3666. bDdItemBtn: __WEBPACK_IMPORTED_MODULE_2__dropdown_item_button__["a" /* default */],
  3667. bDropdownHeader: __WEBPACK_IMPORTED_MODULE_3__dropdown_header__["a" /* default */],
  3668. bDdHeader: __WEBPACK_IMPORTED_MODULE_3__dropdown_header__["a" /* default */],
  3669. bDropdownDivider: __WEBPACK_IMPORTED_MODULE_4__dropdown_divider__["a" /* default */],
  3670. bDdDivider: __WEBPACK_IMPORTED_MODULE_4__dropdown_divider__["a" /* default */]
  3671. };
  3672. var VuePlugin = {
  3673. install: function install(Vue) {
  3674. Object(__WEBPACK_IMPORTED_MODULE_5__utils_plugins__["a" /* registerComponents */])(Vue, components);
  3675. }
  3676. };
  3677. Object(__WEBPACK_IMPORTED_MODULE_5__utils_plugins__["c" /* vueUse */])(VuePlugin);
  3678. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  3679. /***/ }),
  3680. /***/ "./node_modules/bootstrap-vue/es/components/embed/embed.js":
  3681. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3682. "use strict";
  3683. /* unused harmony export props */
  3684. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  3685. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  3686. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  3687. var props = {
  3688. type: {
  3689. type: String,
  3690. default: 'iframe',
  3691. validator: function validator(str) {
  3692. return Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy'], str);
  3693. }
  3694. },
  3695. tag: {
  3696. type: String,
  3697. default: 'div'
  3698. },
  3699. aspect: {
  3700. type: String,
  3701. default: '16by9'
  3702. }
  3703. };
  3704. /* harmony default export */ __webpack_exports__["a"] = ({
  3705. functional: true,
  3706. props: props,
  3707. render: function render(h, _ref) {
  3708. var props = _ref.props,
  3709. data = _ref.data,
  3710. children = _ref.children;
  3711. return h(props.tag, {
  3712. ref: data.ref,
  3713. staticClass: 'embed-responsive',
  3714. class: _defineProperty({}, 'embed-responsive-' + props.aspect, Boolean(props.aspect))
  3715. }, [h(props.type, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { ref: '', staticClass: 'embed-responsive-item' }), children)]);
  3716. }
  3717. });
  3718. /***/ }),
  3719. /***/ "./node_modules/bootstrap-vue/es/components/embed/index.js":
  3720. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3721. "use strict";
  3722. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__embed__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/embed/embed.js");
  3723. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  3724. var components = {
  3725. bEmbed: __WEBPACK_IMPORTED_MODULE_0__embed__["a" /* default */]
  3726. };
  3727. var VuePlugin = {
  3728. install: function install(Vue) {
  3729. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  3730. }
  3731. };
  3732. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  3733. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  3734. /***/ }),
  3735. /***/ "./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox-group.js":
  3736. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3737. "use strict";
  3738. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  3739. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
  3740. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form_options__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-options.js");
  3741. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
  3742. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
  3743. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js");
  3744. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__form_checkbox__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox.js");
  3745. /* harmony default export */ __webpack_exports__["a"] = ({
  3746. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_form__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__["a" /* default */], __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_form_options__["a" /* default */]],
  3747. components: { bFormCheckbox: __WEBPACK_IMPORTED_MODULE_6__form_checkbox__["a" /* default */] },
  3748. render: function render(h) {
  3749. var _this = this;
  3750. var $slots = this.$slots;
  3751. var checks = this.formOptions.map(function (option, idx) {
  3752. return h('b-form-checkbox', {
  3753. key: 'check_' + idx + '_opt',
  3754. props: {
  3755. id: _this.safeId('_BV_check_' + idx + '_opt_'),
  3756. name: _this.name,
  3757. value: option.value,
  3758. required: _this.name && _this.required,
  3759. disabled: option.disabled
  3760. }
  3761. }, [h('span', { domProps: { innerHTML: option.text } })]);
  3762. });
  3763. return h('div', {
  3764. class: this.groupClasses,
  3765. attrs: {
  3766. id: this.safeId(),
  3767. role: 'group',
  3768. tabindex: '-1',
  3769. 'aria-required': this.required ? 'true' : null,
  3770. 'aria-invalid': this.computedAriaInvalid
  3771. }
  3772. }, [$slots.first, checks, $slots.default]);
  3773. },
  3774. data: function data() {
  3775. return {
  3776. localChecked: this.checked || [],
  3777. // Flag for children
  3778. is_RadioCheckGroup: true
  3779. };
  3780. },
  3781. model: {
  3782. prop: 'checked',
  3783. event: 'input'
  3784. },
  3785. props: {
  3786. checked: {
  3787. type: [String, Number, Object, Array, Boolean],
  3788. default: null
  3789. },
  3790. validated: {
  3791. type: Boolean,
  3792. default: false
  3793. },
  3794. ariaInvalid: {
  3795. type: [Boolean, String],
  3796. default: false
  3797. },
  3798. stacked: {
  3799. type: Boolean,
  3800. default: false
  3801. },
  3802. buttons: {
  3803. // Render as button style
  3804. type: Boolean,
  3805. default: false
  3806. },
  3807. buttonVariant: {
  3808. // Only applicable when rendered with button style
  3809. type: String,
  3810. default: 'secondary'
  3811. }
  3812. },
  3813. watch: {
  3814. checked: function checked(newVal, oldVal) {
  3815. this.localChecked = this.checked;
  3816. },
  3817. localChecked: function localChecked(newVal, oldVal) {
  3818. this.$emit('input', newVal);
  3819. }
  3820. },
  3821. computed: {
  3822. groupClasses: function groupClasses() {
  3823. if (this.buttons) {
  3824. return ['btn-group-toggle', this.stacked ? 'btn-group-vertical' : 'btn-group', this.size ? 'btn-group-' + this.size : '', this.validated ? 'was-validated' : ''];
  3825. }
  3826. return [this.sizeFormClass, this.stacked && this.custom ? 'custom-controls-stacked' : '', this.validated ? 'was-validated' : ''];
  3827. },
  3828. computedAriaInvalid: function computedAriaInvalid() {
  3829. if (this.ariaInvalid === true || this.ariaInvalid === 'true' || this.ariaInvalid === '') {
  3830. return 'true';
  3831. }
  3832. return this.get_State === false ? 'true' : null;
  3833. },
  3834. get_State: function get_State() {
  3835. // Child radios sniff this value
  3836. return this.computedState;
  3837. }
  3838. }
  3839. });
  3840. /***/ }),
  3841. /***/ "./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox.js":
  3842. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3843. "use strict";
  3844. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  3845. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form_radio_check__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-radio-check.js");
  3846. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
  3847. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
  3848. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
  3849. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js");
  3850. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  3851. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_loose_equal__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/loose-equal.js");
  3852. /* harmony default export */ __webpack_exports__["a"] = ({
  3853. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_form_radio_check__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_form__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__["a" /* default */], __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__["a" /* default */]],
  3854. render: function render(h) {
  3855. var _this = this;
  3856. var input = h('input', {
  3857. ref: 'check',
  3858. class: [this.is_ButtonMode ? '' : this.is_Plain ? 'form-check-input' : 'custom-control-input', this.get_StateClass],
  3859. directives: [{
  3860. name: 'model',
  3861. rawName: 'v-model',
  3862. value: this.computedLocalChecked,
  3863. expression: 'computedLocalChecked'
  3864. }],
  3865. attrs: {
  3866. id: this.safeId(),
  3867. type: 'checkbox',
  3868. name: this.get_Name,
  3869. disabled: this.is_Disabled,
  3870. required: this.is_Required,
  3871. autocomplete: 'off',
  3872. 'true-value': this.value,
  3873. 'false-value': this.uncheckedValue,
  3874. 'aria-required': this.is_Required ? 'true' : null
  3875. },
  3876. domProps: { value: this.value, checked: this.is_Checked },
  3877. on: {
  3878. focus: this.handleFocus,
  3879. blur: this.handleFocus,
  3880. change: this.emitChange,
  3881. __c: function __c(evt) {
  3882. var $$a = _this.computedLocalChecked;
  3883. var $$el = evt.target;
  3884. if (Object(__WEBPACK_IMPORTED_MODULE_6__utils_array__["d" /* isArray */])($$a)) {
  3885. // Multiple checkbox
  3886. var $$v = _this.value;
  3887. var $$i = _this._i($$a, $$v); // Vue's 'loose' Array.indexOf
  3888. if ($$el.checked) {
  3889. // Append value to array
  3890. $$i < 0 && (_this.computedLocalChecked = $$a.concat([$$v]));
  3891. } else {
  3892. // Remove value from array
  3893. $$i > -1 && (_this.computedLocalChecked = $$a.slice(0, $$i).concat($$a.slice($$i + 1)));
  3894. }
  3895. } else {
  3896. // Single checkbox
  3897. _this.computedLocalChecked = $$el.checked ? _this.value : _this.uncheckedValue;
  3898. }
  3899. }
  3900. }
  3901. });
  3902. var description = h(this.is_ButtonMode ? 'span' : 'label', {
  3903. class: this.is_ButtonMode ? null : this.is_Plain ? 'form-check-label' : 'custom-control-label',
  3904. attrs: { for: this.is_ButtonMode ? null : this.safeId() }
  3905. }, [this.$slots.default]);
  3906. if (!this.is_ButtonMode) {
  3907. return h('div', {
  3908. class: [this.is_Plain ? 'form-check' : this.labelClasses, { 'form-check-inline': this.is_Plain && !this.is_Stacked }, { 'custom-control-inline': !this.is_Plain && !this.is_Stacked }]
  3909. }, [input, description]);
  3910. } else {
  3911. return h('label', { class: [this.buttonClasses] }, [input, description]);
  3912. }
  3913. },
  3914. props: {
  3915. value: {
  3916. default: true
  3917. },
  3918. uncheckedValue: {
  3919. // Not applicable in multi-check mode
  3920. default: false
  3921. },
  3922. indeterminate: {
  3923. // Not applicable in multi-check mode
  3924. type: Boolean,
  3925. default: false
  3926. }
  3927. },
  3928. computed: {
  3929. labelClasses: function labelClasses() {
  3930. return ['custom-control', 'custom-checkbox', this.get_Size ? 'form-control-' + this.get_Size : '', this.get_StateClass];
  3931. },
  3932. is_Checked: function is_Checked() {
  3933. var checked = this.computedLocalChecked;
  3934. if (Object(__WEBPACK_IMPORTED_MODULE_6__utils_array__["d" /* isArray */])(checked)) {
  3935. for (var i = 0; i < checked.length; i++) {
  3936. if (Object(__WEBPACK_IMPORTED_MODULE_7__utils_loose_equal__["a" /* default */])(checked[i], this.value)) {
  3937. return true;
  3938. }
  3939. }
  3940. return false;
  3941. } else {
  3942. return Object(__WEBPACK_IMPORTED_MODULE_7__utils_loose_equal__["a" /* default */])(checked, this.value);
  3943. }
  3944. }
  3945. },
  3946. watch: {
  3947. computedLocalChecked: function computedLocalChecked(newVal, oldVal) {
  3948. if (Object(__WEBPACK_IMPORTED_MODULE_7__utils_loose_equal__["a" /* default */])(newVal, oldVal)) {
  3949. return;
  3950. }
  3951. this.$emit('input', newVal);
  3952. this.$emit('update:indeterminate', this.$refs.check.indeterminate);
  3953. },
  3954. checked: function checked(newVal, oldVal) {
  3955. if (this.is_Child || Object(__WEBPACK_IMPORTED_MODULE_7__utils_loose_equal__["a" /* default */])(newVal, oldVal)) {
  3956. return;
  3957. }
  3958. this.computedLocalChecked = newVal;
  3959. },
  3960. indeterminate: function indeterminate(newVal, oldVal) {
  3961. this.setIndeterminate(newVal);
  3962. }
  3963. },
  3964. methods: {
  3965. emitChange: function emitChange(_ref) {
  3966. var checked = _ref.target.checked;
  3967. // Change event is only fired via user interaction
  3968. // And we only emit the value of this checkbox
  3969. if (this.is_Child || Object(__WEBPACK_IMPORTED_MODULE_6__utils_array__["d" /* isArray */])(this.computedLocalChecked)) {
  3970. this.$emit('change', checked ? this.value : null);
  3971. if (this.is_Child) {
  3972. // If we are a child of form-checkbbox-group, emit change on parent
  3973. this.$parent.$emit('change', this.computedLocalChecked);
  3974. }
  3975. } else {
  3976. // Single radio mode supports unchecked value
  3977. this.$emit('change', checked ? this.value : this.uncheckedValue);
  3978. }
  3979. this.$emit('update:indeterminate', this.$refs.check.indeterminate);
  3980. },
  3981. setIndeterminate: function setIndeterminate(state) {
  3982. // Indeterminate only supported in single checkbox mode
  3983. if (this.is_Child || Object(__WEBPACK_IMPORTED_MODULE_6__utils_array__["d" /* isArray */])(this.computedLocalChecked)) {
  3984. return;
  3985. }
  3986. this.$refs.check.indeterminate = state;
  3987. // Emit update event to prop
  3988. this.$emit('update:indeterminate', this.$refs.check.indeterminate);
  3989. }
  3990. },
  3991. mounted: function mounted() {
  3992. // Set initial indeterminate state
  3993. this.setIndeterminate(this.indeterminate);
  3994. }
  3995. });
  3996. /***/ }),
  3997. /***/ "./node_modules/bootstrap-vue/es/components/form-checkbox/index.js":
  3998. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3999. "use strict";
  4000. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_checkbox__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox.js");
  4001. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__form_checkbox_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox-group.js");
  4002. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  4003. var components = {
  4004. bFormCheckbox: __WEBPACK_IMPORTED_MODULE_0__form_checkbox__["a" /* default */],
  4005. bCheckbox: __WEBPACK_IMPORTED_MODULE_0__form_checkbox__["a" /* default */],
  4006. bCheck: __WEBPACK_IMPORTED_MODULE_0__form_checkbox__["a" /* default */],
  4007. bFormCheckboxGroup: __WEBPACK_IMPORTED_MODULE_1__form_checkbox_group__["a" /* default */],
  4008. bCheckboxGroup: __WEBPACK_IMPORTED_MODULE_1__form_checkbox_group__["a" /* default */],
  4009. bCheckGroup: __WEBPACK_IMPORTED_MODULE_1__form_checkbox_group__["a" /* default */]
  4010. };
  4011. var VuePlugin = {
  4012. install: function install(Vue) {
  4013. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
  4014. }
  4015. };
  4016. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  4017. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  4018. /***/ }),
  4019. /***/ "./node_modules/bootstrap-vue/es/components/form-file/form-file.js":
  4020. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4021. "use strict";
  4022. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  4023. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
  4024. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
  4025. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_custom__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js");
  4026. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  4027. /* harmony default export */ __webpack_exports__["a"] = ({
  4028. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_form__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_form_state__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_form_custom__["a" /* default */]],
  4029. render: function render(h) {
  4030. // Form Input
  4031. var input = h('input', {
  4032. ref: 'input',
  4033. class: [{
  4034. 'form-control-file': this.plain,
  4035. 'custom-file-input': this.custom,
  4036. focus: this.custom && this.hasFocus
  4037. }, this.stateClass],
  4038. attrs: {
  4039. type: 'file',
  4040. id: this.safeId(),
  4041. name: this.name,
  4042. disabled: this.disabled,
  4043. required: this.required,
  4044. capture: this.capture || null,
  4045. accept: this.accept || null,
  4046. multiple: this.multiple,
  4047. webkitdirectory: this.directory,
  4048. 'aria-required': this.required ? 'true' : null,
  4049. 'aria-describedby': this.plain ? null : this.safeId('_BV_file_control_')
  4050. },
  4051. on: {
  4052. change: this.onFileChange,
  4053. focusin: this.focusHandler,
  4054. focusout: this.focusHandler
  4055. }
  4056. });
  4057. if (this.plain) {
  4058. return input;
  4059. }
  4060. // Overlay Labels
  4061. var label = h('label', {
  4062. class: ['custom-file-label', this.dragging ? 'dragging' : null],
  4063. attrs: {
  4064. id: this.safeId('_BV_file_control_')
  4065. }
  4066. }, this.selectLabel);
  4067. // Return rendered custom file input
  4068. return h('div', {
  4069. class: ['custom-file', 'b-form-file', this.stateClass],
  4070. attrs: { id: this.safeId('_BV_file_outer_') },
  4071. on: { dragover: this.dragover }
  4072. }, [input, label]);
  4073. },
  4074. data: function data() {
  4075. return {
  4076. selectedFile: null,
  4077. dragging: false,
  4078. hasFocus: false
  4079. };
  4080. },
  4081. props: {
  4082. accept: {
  4083. type: String,
  4084. default: ''
  4085. },
  4086. // Instruct input to capture from camera
  4087. capture: {
  4088. type: Boolean,
  4089. default: false
  4090. },
  4091. placeholder: {
  4092. type: String,
  4093. default: undefined
  4094. },
  4095. multiple: {
  4096. type: Boolean,
  4097. default: false
  4098. },
  4099. directory: {
  4100. type: Boolean,
  4101. default: false
  4102. },
  4103. noTraverse: {
  4104. type: Boolean,
  4105. default: false
  4106. },
  4107. noDrop: {
  4108. type: Boolean,
  4109. default: false
  4110. }
  4111. },
  4112. computed: {
  4113. selectLabel: function selectLabel() {
  4114. // No file choosen
  4115. if (!this.selectedFile || this.selectedFile.length === 0) {
  4116. return this.placeholder;
  4117. }
  4118. // Multiple files
  4119. if (this.multiple) {
  4120. if (this.selectedFile.length === 1) {
  4121. return this.selectedFile[0].name;
  4122. }
  4123. return this.selectedFile.map(function (file) {
  4124. return file.name;
  4125. }).join(', ');
  4126. }
  4127. // Single file
  4128. return this.selectedFile.name;
  4129. }
  4130. },
  4131. watch: {
  4132. selectedFile: function selectedFile(newVal, oldVal) {
  4133. if (newVal === oldVal) {
  4134. return;
  4135. }
  4136. if (!newVal && this.multiple) {
  4137. this.$emit('input', []);
  4138. } else {
  4139. this.$emit('input', newVal);
  4140. }
  4141. }
  4142. },
  4143. methods: {
  4144. focusHandler: function focusHandler(evt) {
  4145. // Boostrap v4.beta doesn't have focus styling for custom file input
  4146. // Firefox has a borked '[type=file]:focus ~ sibling' selector issue,
  4147. // So we add a 'focus' class to get around these "bugs"
  4148. if (this.plain || evt.type === 'focusout') {
  4149. this.hasFocus = false;
  4150. } else {
  4151. // Add focus styling for custom file input
  4152. this.hasFocus = true;
  4153. }
  4154. },
  4155. reset: function reset() {
  4156. try {
  4157. // Wrapped in try in case IE < 11 craps out
  4158. this.$refs.input.value = '';
  4159. } catch (e) {}
  4160. // IE < 11 doesn't support setting input.value to '' or null
  4161. // So we use this little extra hack to reset the value, just in case
  4162. // This also appears to work on modern browsers as well.
  4163. this.$refs.input.type = '';
  4164. this.$refs.input.type = 'file';
  4165. this.selectedFile = this.multiple ? [] : null;
  4166. },
  4167. onFileChange: function onFileChange(evt) {
  4168. var _this = this;
  4169. // Always emit original event
  4170. this.$emit('change', evt);
  4171. // Check if special `items` prop is available on event (drop mode)
  4172. // Can be disabled by setting no-traverse
  4173. var items = evt.dataTransfer && evt.dataTransfer.items;
  4174. if (items && !this.noTraverse) {
  4175. var queue = [];
  4176. for (var i = 0; i < items.length; i++) {
  4177. var item = items[i].webkitGetAsEntry();
  4178. if (item) {
  4179. queue.push(this.traverseFileTree(item));
  4180. }
  4181. }
  4182. Promise.all(queue).then(function (filesArr) {
  4183. _this.setFiles(Object(__WEBPACK_IMPORTED_MODULE_4__utils_array__["c" /* from */])(filesArr));
  4184. });
  4185. return;
  4186. }
  4187. // Normal handling
  4188. this.setFiles(evt.target.files || evt.dataTransfer.files);
  4189. },
  4190. setFiles: function setFiles(files) {
  4191. if (!files) {
  4192. this.selectedFile = null;
  4193. return;
  4194. }
  4195. if (!this.multiple) {
  4196. this.selectedFile = files[0];
  4197. return;
  4198. }
  4199. // Convert files to array
  4200. var filesArray = [];
  4201. for (var i = 0; i < files.length; i++) {
  4202. if (files[i].type.match(this.accept)) {
  4203. filesArray.push(files[i]);
  4204. }
  4205. }
  4206. this.selectedFile = filesArray;
  4207. },
  4208. dragover: function dragover(evt) {
  4209. evt.preventDefault();
  4210. evt.stopPropagation();
  4211. if (this.noDrop || !this.custom) {
  4212. return;
  4213. }
  4214. this.dragging = true;
  4215. evt.dataTransfer.dropEffect = 'copy';
  4216. },
  4217. dragleave: function dragleave(evt) {
  4218. evt.preventDefault();
  4219. evt.stopPropagation();
  4220. this.dragging = false;
  4221. },
  4222. drop: function drop(evt) {
  4223. evt.preventDefault();
  4224. evt.stopPropagation();
  4225. if (this.noDrop) {
  4226. return;
  4227. }
  4228. this.dragging = false;
  4229. if (evt.dataTransfer.files && evt.dataTransfer.files.length > 0) {
  4230. this.onFileChange(evt);
  4231. }
  4232. },
  4233. traverseFileTree: function traverseFileTree(item, path) {
  4234. var _this2 = this;
  4235. // Based on http://stackoverflow.com/questions/3590058
  4236. return new Promise(function (resolve) {
  4237. path = path || '';
  4238. if (item.isFile) {
  4239. // Get file
  4240. item.file(function (file) {
  4241. file.$path = path; // Inject $path to file obj
  4242. resolve(file);
  4243. });
  4244. } else if (item.isDirectory) {
  4245. // Get folder contents
  4246. item.createReader().readEntries(function (entries) {
  4247. var queue = [];
  4248. for (var i = 0; i < entries.length; i++) {
  4249. queue.push(_this2.traverseFileTree(entries[i], path + item.name + '/'));
  4250. }
  4251. Promise.all(queue).then(function (filesArr) {
  4252. resolve(Object(__WEBPACK_IMPORTED_MODULE_4__utils_array__["c" /* from */])(filesArr));
  4253. });
  4254. });
  4255. }
  4256. });
  4257. }
  4258. }
  4259. });
  4260. /***/ }),
  4261. /***/ "./node_modules/bootstrap-vue/es/components/form-file/index.js":
  4262. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4263. "use strict";
  4264. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_file__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-file/form-file.js");
  4265. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  4266. var components = {
  4267. bFormFile: __WEBPACK_IMPORTED_MODULE_0__form_file__["a" /* default */],
  4268. bFile: __WEBPACK_IMPORTED_MODULE_0__form_file__["a" /* default */]
  4269. };
  4270. var VuePlugin = {
  4271. install: function install(Vue) {
  4272. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  4273. }
  4274. };
  4275. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  4276. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  4277. /***/ }),
  4278. /***/ "./node_modules/bootstrap-vue/es/components/form-group/form-group.js":
  4279. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4280. "use strict";
  4281. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  4282. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  4283. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  4284. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
  4285. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__layout_form_row__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/form-row.js");
  4286. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__form_form_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-text.js");
  4287. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__form_form_invalid_feedback__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-invalid-feedback.js");
  4288. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__form_form_valid_feedback__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-valid-feedback.js");
  4289. // Selector for finding firt input in the form-group
  4290. var SELECTOR = 'input:not(:disabled),textarea:not(:disabled),select:not(:disabled)';
  4291. /* harmony default export */ __webpack_exports__["a"] = ({
  4292. mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_form_state__["a" /* default */]],
  4293. components: { bFormRow: __WEBPACK_IMPORTED_MODULE_4__layout_form_row__["a" /* default */], bFormText: __WEBPACK_IMPORTED_MODULE_5__form_form_text__["a" /* default */], bFormInvalidFeedback: __WEBPACK_IMPORTED_MODULE_6__form_form_invalid_feedback__["a" /* default */], bFormValidFeedback: __WEBPACK_IMPORTED_MODULE_7__form_form_valid_feedback__["a" /* default */] },
  4294. render: function render(h) {
  4295. var $slots = this.$slots;
  4296. // Label / Legend
  4297. var legend = h(false);
  4298. if (this.hasLabel) {
  4299. var children = $slots['label'];
  4300. var legendTag = this.labelFor ? 'label' : 'legend';
  4301. var legendDomProps = children ? {} : { innerHTML: this.label };
  4302. var legendAttrs = { id: this.labelId, for: this.labelFor || null };
  4303. var legendClick = this.labelFor || this.labelSrOnly ? {} : { click: this.legendClick };
  4304. if (this.horizontal) {
  4305. // Horizontal layout with label
  4306. if (this.labelSrOnly) {
  4307. // SR Only we wrap label/legend in a div to preserve layout
  4308. children = h(legendTag, { class: ['sr-only'], attrs: legendAttrs, domProps: legendDomProps }, children);
  4309. legend = h('div', { class: this.labelLayoutClasses }, [children]);
  4310. } else {
  4311. legend = h(legendTag, {
  4312. class: [this.labelLayoutClasses, this.labelClasses],
  4313. attrs: legendAttrs,
  4314. domProps: legendDomProps,
  4315. on: legendClick
  4316. }, children);
  4317. }
  4318. } else {
  4319. // Vertical layout with label
  4320. legend = h(legendTag, {
  4321. class: this.labelSrOnly ? ['sr-only'] : this.labelClasses,
  4322. attrs: legendAttrs,
  4323. domProps: legendDomProps,
  4324. on: legendClick
  4325. }, children);
  4326. }
  4327. } else if (this.horizontal) {
  4328. // No label but has horizontal layout, so we need a spacer element for layout
  4329. legend = h('div', { class: this.labelLayoutClasses });
  4330. }
  4331. // Invalid feeback text (explicitly hidden if state is valid)
  4332. var invalidFeedback = h(false);
  4333. if (this.hasInvalidFeedback) {
  4334. var domProps = {};
  4335. if (!$slots['invalid-feedback'] && !$slots['feedback']) {
  4336. domProps = { innerHTML: this.invalidFeedback || this.feedback || '' };
  4337. }
  4338. invalidFeedback = h('b-form-invalid-feedback', {
  4339. props: {
  4340. id: this.invalidFeedbackId,
  4341. forceShow: this.computedState === false
  4342. },
  4343. attrs: {
  4344. role: 'alert',
  4345. 'aria-live': 'assertive',
  4346. 'aria-atomic': 'true'
  4347. },
  4348. domProps: domProps
  4349. }, $slots['invalid-feedback'] || $slots['feedback']);
  4350. }
  4351. // Valid feeback text (explicitly hidden if state is invalid)
  4352. var validFeedback = h(false);
  4353. if (this.hasValidFeedback) {
  4354. var _domProps = $slots['valid-feedback'] ? {} : { innerHTML: this.validFeedback || '' };
  4355. validFeedback = h('b-form-valid-feedback', {
  4356. props: {
  4357. id: this.validFeedbackId,
  4358. forceShow: this.computedState === true
  4359. },
  4360. attrs: {
  4361. role: 'alert',
  4362. 'aria-live': 'assertive',
  4363. 'aria-atomic': 'true'
  4364. },
  4365. domProps: _domProps
  4366. }, $slots['valid-feedback']);
  4367. }
  4368. // Form help text (description)
  4369. var description = h(false);
  4370. if (this.hasDescription) {
  4371. var _domProps2 = $slots['description'] ? {} : { innerHTML: this.description || '' };
  4372. description = h('b-form-text', { attrs: { id: this.descriptionId }, domProps: _domProps2 }, $slots['description']);
  4373. }
  4374. // Build content layout
  4375. var content = h('div', {
  4376. ref: 'content',
  4377. class: this.inputLayoutClasses,
  4378. attrs: this.labelFor ? {} : { role: 'group', 'aria-labelledby': this.labelId }
  4379. }, [$slots['default'], invalidFeedback, validFeedback, description]);
  4380. // Generate main form-group wrapper
  4381. return h(this.labelFor ? 'div' : 'fieldset', {
  4382. class: this.groupClasses,
  4383. attrs: {
  4384. id: this.safeId(),
  4385. disabled: this.disabled,
  4386. role: 'group',
  4387. 'aria-invalid': this.computedState === false ? 'true' : null,
  4388. 'aria-labelledby': this.labelId,
  4389. 'aria-describedby': this.labelFor ? null : this.describedByIds
  4390. }
  4391. }, this.horizontal ? [h('b-form-row', {}, [legend, content])] : [legend, content]);
  4392. },
  4393. props: {
  4394. horizontal: {
  4395. type: Boolean,
  4396. default: false
  4397. },
  4398. labelCols: {
  4399. type: [Number, String],
  4400. default: 3,
  4401. validator: function validator(value) {
  4402. if (Number(value) >= 1 && Number(value) <= 11) {
  4403. return true;
  4404. }
  4405. Object(__WEBPACK_IMPORTED_MODULE_0__utils_warn__["a" /* default */])('b-form-group: label-cols must be a value between 1 and 11');
  4406. return false;
  4407. }
  4408. },
  4409. breakpoint: {
  4410. type: String,
  4411. default: 'sm'
  4412. },
  4413. labelTextAlign: {
  4414. type: String,
  4415. default: null
  4416. },
  4417. label: {
  4418. type: String,
  4419. default: null
  4420. },
  4421. labelFor: {
  4422. type: String,
  4423. default: null
  4424. },
  4425. labelSize: {
  4426. type: String,
  4427. default: null
  4428. },
  4429. labelSrOnly: {
  4430. type: Boolean,
  4431. default: false
  4432. },
  4433. labelClass: {
  4434. type: [String, Array],
  4435. default: null
  4436. },
  4437. description: {
  4438. type: String,
  4439. default: null
  4440. },
  4441. invalidFeedback: {
  4442. type: String,
  4443. default: null
  4444. },
  4445. feedback: {
  4446. // Deprecated in favor of invalid-feedback
  4447. type: String,
  4448. default: null
  4449. },
  4450. validFeedback: {
  4451. type: String,
  4452. default: null
  4453. },
  4454. validated: {
  4455. type: Boolean,
  4456. default: false
  4457. }
  4458. },
  4459. computed: {
  4460. groupClasses: function groupClasses() {
  4461. return ['b-form-group', 'form-group', this.validated ? 'was-validated' : null, this.stateClass];
  4462. },
  4463. labelClasses: function labelClasses() {
  4464. return ['col-form-label', this.labelSize ? 'col-form-label-' + this.labelSize : null, this.labelTextAlign ? 'text-' + this.labelTextAlign : null, this.horizontal ? null : 'pt-0', this.labelClass];
  4465. },
  4466. labelLayoutClasses: function labelLayoutClasses() {
  4467. return [this.horizontal ? 'col-' + this.breakpoint + '-' + this.labelCols : null];
  4468. },
  4469. inputLayoutClasses: function inputLayoutClasses() {
  4470. return [this.horizontal ? 'col-' + this.breakpoint + '-' + (12 - Number(this.labelCols)) : null];
  4471. },
  4472. hasLabel: function hasLabel() {
  4473. return this.label || this.$slots['label'];
  4474. },
  4475. hasDescription: function hasDescription() {
  4476. return this.description || this.$slots['description'];
  4477. },
  4478. hasInvalidFeedback: function hasInvalidFeedback() {
  4479. if (this.computedState === true) {
  4480. // If the form-group state is explicityly valid, we return false
  4481. return false;
  4482. }
  4483. return this.invalidFeedback || this.feedback || this.$slots['invalid-feedback'] || this.$slots['feedback'];
  4484. },
  4485. hasValidFeedback: function hasValidFeedback() {
  4486. if (this.computedState === false) {
  4487. // If the form-group state is explicityly invalid, we return false
  4488. return false;
  4489. }
  4490. return this.validFeedback || this.$slots['valid-feedback'];
  4491. },
  4492. labelId: function labelId() {
  4493. return this.hasLabel ? this.safeId('_BV_label_') : null;
  4494. },
  4495. descriptionId: function descriptionId() {
  4496. return this.hasDescription ? this.safeId('_BV_description_') : null;
  4497. },
  4498. invalidFeedbackId: function invalidFeedbackId() {
  4499. return this.hasInvalidFeedback ? this.safeId('_BV_feedback_invalid_') : null;
  4500. },
  4501. validFeedbackId: function validFeedbackId() {
  4502. return this.hasValidFeedback ? this.safeId('_BV_feedback_valid_') : null;
  4503. },
  4504. describedByIds: function describedByIds() {
  4505. return [this.descriptionId, this.invalidFeedbackId, this.validFeedbackId].filter(function (i) {
  4506. return i;
  4507. }).join(' ') || null;
  4508. }
  4509. },
  4510. watch: {
  4511. describedByIds: function describedByIds(add, remove) {
  4512. if (add !== remove) {
  4513. this.setInputDescribedBy(add, remove);
  4514. }
  4515. }
  4516. },
  4517. methods: {
  4518. legendClick: function legendClick(evt) {
  4519. var tagName = evt.target ? evt.target.tagName : '';
  4520. if (/^(input|select|textarea|label)$/i.test(tagName)) {
  4521. // If clicked an input inside legend, we just let the default happen
  4522. return;
  4523. }
  4524. // Focus the first non-disabled visible input when the legend element is clicked
  4525. var inputs = Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["u" /* selectAll */])(SELECTOR, this.$refs.content).filter(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["m" /* isVisible */]);
  4526. if (inputs[0] && inputs[0].focus) {
  4527. inputs[0].focus();
  4528. }
  4529. },
  4530. setInputDescribedBy: function setInputDescribedBy(add, remove) {
  4531. // Sets the `aria-describedby` attribute on the input if label-for is set.
  4532. // Optionally accepts a string of IDs to remove as the second parameter
  4533. if (this.labelFor && typeof document !== 'undefined') {
  4534. var input = Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["t" /* select */])('#' + this.labelFor, this.$refs.content);
  4535. if (input) {
  4536. var adb = 'aria-describedby';
  4537. var ids = (Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["e" /* getAttr */])(input, adb) || '').split(/\s+/);
  4538. remove = (remove || '').split(/\s+/);
  4539. // Update ID list, preserving any original IDs
  4540. ids = ids.filter(function (id) {
  4541. return remove.indexOf(id) === -1;
  4542. }).concat(add || '').join(' ').trim();
  4543. if (ids) {
  4544. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(input, adb, ids);
  4545. } else {
  4546. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["r" /* removeAttr */])(input, adb);
  4547. }
  4548. }
  4549. }
  4550. }
  4551. },
  4552. mounted: function mounted() {
  4553. var _this = this;
  4554. this.$nextTick(function () {
  4555. // Set the adia-describedby IDs on the input specified by label-for
  4556. // We do this in a nextTick to ensure the children have finished rendering
  4557. _this.setInputDescribedBy(_this.describedByIds);
  4558. });
  4559. }
  4560. });
  4561. /***/ }),
  4562. /***/ "./node_modules/bootstrap-vue/es/components/form-group/index.js":
  4563. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4564. "use strict";
  4565. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-group/form-group.js");
  4566. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  4567. var components = {
  4568. bFormGroup: __WEBPACK_IMPORTED_MODULE_0__form_group__["a" /* default */],
  4569. bFormFieldset: __WEBPACK_IMPORTED_MODULE_0__form_group__["a" /* default */]
  4570. };
  4571. var VuePlugin = {
  4572. install: function install(Vue) {
  4573. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  4574. }
  4575. };
  4576. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  4577. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  4578. /***/ }),
  4579. /***/ "./node_modules/bootstrap-vue/es/components/form-input/form-input.css":
  4580. /***/ (function(module, exports, __webpack_require__) {
  4581. // style-loader: Adds some css to the DOM by adding a <style> tag
  4582. // load the styles
  4583. var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/form-input/form-input.css");
  4584. if(typeof content === 'string') content = [[module.i, content, '']];
  4585. // Prepare cssTransformation
  4586. var transform;
  4587. var options = {}
  4588. options.transform = transform
  4589. // add the styles to the DOM
  4590. var update = __webpack_require__("./node_modules/style-loader/lib/addStyles.js")(content, options);
  4591. if(content.locals) module.exports = content.locals;
  4592. // Hot Module Replacement
  4593. if(false) {
  4594. // When the styles change, update the <style> tags
  4595. if(!content.locals) {
  4596. module.hot.accept("!!../../../../css-loader/index.js!./form-input.css", function() {
  4597. var newContent = require("!!../../../../css-loader/index.js!./form-input.css");
  4598. if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
  4599. update(newContent);
  4600. });
  4601. }
  4602. // When the module is disposed, remove the <style> tags
  4603. module.hot.dispose(function() { update(); });
  4604. }
  4605. /***/ }),
  4606. /***/ "./node_modules/bootstrap-vue/es/components/form-input/form-input.js":
  4607. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4608. "use strict";
  4609. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  4610. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
  4611. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
  4612. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
  4613. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  4614. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__form_input_css__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-input/form-input.css");
  4615. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__form_input_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__form_input_css__);
  4616. // Import styles
  4617. // Valid supported input types
  4618. var TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week'];
  4619. /* harmony default export */ __webpack_exports__["a"] = ({
  4620. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_form__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_form_size__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_form_state__["a" /* default */]],
  4621. render: function render(h) {
  4622. return h('input', {
  4623. ref: 'input',
  4624. class: this.inputClass,
  4625. attrs: {
  4626. id: this.safeId(),
  4627. name: this.name,
  4628. type: this.localType,
  4629. disabled: this.disabled,
  4630. required: this.required,
  4631. readonly: this.readonly || this.plaintext,
  4632. placeholder: this.placeholder,
  4633. autocomplete: this.autocomplete || null,
  4634. 'aria-required': this.required ? 'true' : null,
  4635. 'aria-invalid': this.computedAriaInvalid,
  4636. value: this.value
  4637. },
  4638. on: {
  4639. input: this.onInput,
  4640. change: this.onChange
  4641. }
  4642. });
  4643. },
  4644. props: {
  4645. value: {
  4646. default: null
  4647. },
  4648. type: {
  4649. type: String,
  4650. default: 'text',
  4651. validator: function validator(type) {
  4652. return Object(__WEBPACK_IMPORTED_MODULE_4__utils_array__["a" /* arrayIncludes */])(TYPES, type);
  4653. }
  4654. },
  4655. ariaInvalid: {
  4656. type: [Boolean, String],
  4657. default: false
  4658. },
  4659. readonly: {
  4660. type: Boolean,
  4661. default: false
  4662. },
  4663. plaintext: {
  4664. type: Boolean,
  4665. default: false
  4666. },
  4667. autocomplete: {
  4668. type: String,
  4669. default: null
  4670. },
  4671. placeholder: {
  4672. type: String,
  4673. default: null
  4674. },
  4675. formatter: {
  4676. type: Function
  4677. },
  4678. lazyFormatter: {
  4679. type: Boolean,
  4680. default: false
  4681. }
  4682. },
  4683. computed: {
  4684. localType: function localType() {
  4685. // We only allow certain types
  4686. return Object(__WEBPACK_IMPORTED_MODULE_4__utils_array__["a" /* arrayIncludes */])(TYPES, this.type) ? this.type : 'text';
  4687. },
  4688. inputClass: function inputClass() {
  4689. return [this.plaintext ? 'form-control-plaintext' : 'form-control', this.sizeFormClass, this.stateClass];
  4690. },
  4691. computedAriaInvalid: function computedAriaInvalid() {
  4692. if (!this.ariaInvalid || this.ariaInvalid === 'false') {
  4693. // this.ariaInvalid is null or false or 'false'
  4694. return this.computedState === false ? 'true' : null;
  4695. }
  4696. if (this.ariaInvalid === true) {
  4697. // User wants explicit aria-invalid=true
  4698. return 'true';
  4699. }
  4700. // Most likely a string value (which could be 'true')
  4701. return this.ariaInvalid;
  4702. }
  4703. },
  4704. mounted: function mounted() {
  4705. if (this.value) {
  4706. var fValue = this.format(this.value, null);
  4707. this.setValue(fValue);
  4708. }
  4709. },
  4710. watch: {
  4711. value: function value(newVal) {
  4712. if (this.lazyFormatter) {
  4713. this.setValue(newVal);
  4714. } else {
  4715. var fValue = this.format(newVal, null);
  4716. this.setValue(fValue);
  4717. }
  4718. }
  4719. },
  4720. methods: {
  4721. format: function format(value, e) {
  4722. if (this.formatter) {
  4723. return this.formatter(value, e);
  4724. }
  4725. return value;
  4726. },
  4727. setValue: function setValue(value) {
  4728. this.$emit('input', value);
  4729. // When formatter removes last typed character, value of text input should update to formatted value
  4730. this.$refs.input.value = value;
  4731. },
  4732. onInput: function onInput(evt) {
  4733. var value = evt.target.value;
  4734. if (this.lazyFormatter) {
  4735. this.setValue(value);
  4736. } else {
  4737. var fValue = this.format(value, evt);
  4738. this.setValue(fValue);
  4739. }
  4740. },
  4741. onChange: function onChange(evt) {
  4742. var fValue = this.format(evt.target.value, evt);
  4743. this.setValue(fValue);
  4744. this.$emit('change', fValue);
  4745. },
  4746. focus: function focus() {
  4747. if (!this.disabled) {
  4748. this.$el.focus();
  4749. }
  4750. }
  4751. }
  4752. });
  4753. /***/ }),
  4754. /***/ "./node_modules/bootstrap-vue/es/components/form-input/index.js":
  4755. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4756. "use strict";
  4757. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_input__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-input/form-input.js");
  4758. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  4759. var components = {
  4760. bFormInput: __WEBPACK_IMPORTED_MODULE_0__form_input__["a" /* default */],
  4761. bInput: __WEBPACK_IMPORTED_MODULE_0__form_input__["a" /* default */]
  4762. };
  4763. var VuePlugin = {
  4764. install: function install(Vue) {
  4765. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  4766. }
  4767. };
  4768. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  4769. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  4770. /***/ }),
  4771. /***/ "./node_modules/bootstrap-vue/es/components/form-radio/form-radio-group.js":
  4772. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4773. "use strict";
  4774. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  4775. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form_options__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-options.js");
  4776. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
  4777. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
  4778. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
  4779. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js");
  4780. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__form_radio__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-radio/form-radio.js");
  4781. /* harmony default export */ __webpack_exports__["a"] = ({
  4782. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_form__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__["a" /* default */], __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_form_options__["a" /* default */]],
  4783. components: { bFormRadio: __WEBPACK_IMPORTED_MODULE_6__form_radio__["a" /* default */] },
  4784. render: function render(h) {
  4785. var _this = this;
  4786. var $slots = this.$slots;
  4787. var radios = this.formOptions.map(function (option, idx) {
  4788. return h('b-form-radio', {
  4789. key: 'radio_' + idx + '_opt',
  4790. props: {
  4791. id: _this.safeId('_BV_radio_' + idx + '_opt_'),
  4792. name: _this.name,
  4793. value: option.value,
  4794. required: Boolean(_this.name && _this.required),
  4795. disabled: option.disabled
  4796. }
  4797. }, [h('span', { domProps: { innerHTML: option.text } })]);
  4798. });
  4799. return h('div', {
  4800. class: this.groupClasses,
  4801. attrs: {
  4802. id: this.safeId(),
  4803. role: 'radiogroup',
  4804. tabindex: '-1',
  4805. 'aria-required': this.required ? 'true' : null,
  4806. 'aria-invalid': this.computedAriaInvalid
  4807. }
  4808. }, [$slots.first, radios, $slots.default]);
  4809. },
  4810. data: function data() {
  4811. return {
  4812. localChecked: this.checked,
  4813. // Flag for children
  4814. is_RadioCheckGroup: true
  4815. };
  4816. },
  4817. model: {
  4818. prop: 'checked',
  4819. event: 'input'
  4820. },
  4821. props: {
  4822. checked: {
  4823. type: [String, Object, Number, Boolean],
  4824. default: null
  4825. },
  4826. validated: {
  4827. // Used for applying hte `was-validated` class to the group
  4828. type: Boolean,
  4829. default: false
  4830. },
  4831. ariaInvalid: {
  4832. type: [Boolean, String],
  4833. default: false
  4834. },
  4835. stacked: {
  4836. type: Boolean,
  4837. default: false
  4838. },
  4839. buttons: {
  4840. // Render as button style
  4841. type: Boolean,
  4842. default: false
  4843. },
  4844. buttonVariant: {
  4845. // Only applicable when rendered with button style
  4846. type: String,
  4847. default: 'secondary'
  4848. }
  4849. },
  4850. watch: {
  4851. checked: function checked(newVal, oldVal) {
  4852. this.localChecked = this.checked;
  4853. },
  4854. localChecked: function localChecked(newVal, oldVal) {
  4855. this.$emit('input', newVal);
  4856. }
  4857. },
  4858. computed: {
  4859. groupClasses: function groupClasses() {
  4860. if (this.buttons) {
  4861. return ['btn-group-toggle', this.stacked ? 'btn-group-vertical' : 'btn-group', this.size ? 'btn-group-' + this.size : '', this.validated ? 'was-validated' : ''];
  4862. }
  4863. return [this.sizeFormClass, this.stacked && this.custom ? 'custom-controls-stacked' : '', this.validated ? 'was-validated' : ''];
  4864. },
  4865. computedAriaInvalid: function computedAriaInvalid() {
  4866. if (this.ariaInvalid === true || this.ariaInvalid === 'true' || this.ariaInvalid === '') {
  4867. return 'true';
  4868. }
  4869. return this.get_State === false ? 'true' : null;
  4870. },
  4871. get_State: function get_State() {
  4872. // Required by child radios
  4873. return this.computedState;
  4874. }
  4875. }
  4876. });
  4877. /***/ }),
  4878. /***/ "./node_modules/bootstrap-vue/es/components/form-radio/form-radio.js":
  4879. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4880. "use strict";
  4881. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  4882. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
  4883. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
  4884. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_radio_check__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-radio-check.js");
  4885. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_loose_equal__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/loose-equal.js");
  4886. /* harmony default export */ __webpack_exports__["a"] = ({
  4887. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_form_radio_check__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_form__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_form_state__["a" /* default */]],
  4888. render: function render(h) {
  4889. var _this = this;
  4890. var input = h('input', {
  4891. ref: 'radio',
  4892. class: [this.is_ButtonMode ? '' : this.is_Plain ? 'form-check-input' : 'custom-control-input', this.get_StateClass],
  4893. directives: [{
  4894. name: 'model',
  4895. rawName: 'v-model',
  4896. value: this.computedLocalChecked,
  4897. expression: 'computedLocalChecked'
  4898. }],
  4899. attrs: {
  4900. id: this.safeId(),
  4901. type: 'radio',
  4902. name: this.get_Name,
  4903. required: this.get_Name && this.is_Required,
  4904. disabled: this.is_Disabled,
  4905. autocomplete: 'off'
  4906. },
  4907. domProps: {
  4908. value: this.value,
  4909. checked: Object(__WEBPACK_IMPORTED_MODULE_4__utils_loose_equal__["a" /* default */])(this.computedLocalChecked, this.value)
  4910. },
  4911. on: {
  4912. focus: this.handleFocus,
  4913. blur: this.handleFocus,
  4914. change: this.emitChange,
  4915. __c: function __c(evt) {
  4916. _this.computedLocalChecked = _this.value;
  4917. }
  4918. }
  4919. });
  4920. var description = h(this.is_ButtonMode ? 'span' : 'label', {
  4921. class: this.is_ButtonMode ? null : this.is_Plain ? 'form-check-label' : 'custom-control-label',
  4922. attrs: { for: this.is_ButtonMode ? null : this.safeId() }
  4923. }, [this.$slots.default]);
  4924. if (!this.is_ButtonMode) {
  4925. return h('div', {
  4926. class: [this.is_Plain ? 'form-check' : this.labelClasses, { 'form-check-inline': this.is_Plain && !this.is_Stacked }, { 'custom-control-inline': !this.is_Plain && !this.is_Stacked }]
  4927. }, [input, description]);
  4928. } else {
  4929. return h('label', { class: [this.buttonClasses] }, [input, description]);
  4930. }
  4931. },
  4932. watch: {
  4933. // Radio Groups can only have a single value, so our watchers are simple
  4934. checked: function checked(newVal, oldVal) {
  4935. this.computedLocalChecked = newVal;
  4936. },
  4937. computedLocalChceked: function computedLocalChceked(newVal, oldVal) {
  4938. this.$emit('input', this.computedLocalChceked);
  4939. }
  4940. },
  4941. computed: {
  4942. is_Checked: function is_Checked() {
  4943. return Object(__WEBPACK_IMPORTED_MODULE_4__utils_loose_equal__["a" /* default */])(this.value, this.computedLocalChecked);
  4944. },
  4945. labelClasses: function labelClasses() {
  4946. // Specific to radio
  4947. return [this.get_Size ? 'form-control-' + this.get_Size : '', 'custom-control', 'custom-radio', this.get_StateClass];
  4948. }
  4949. },
  4950. methods: {
  4951. emitChange: function emitChange(_ref) {
  4952. var checked = _ref.target.checked;
  4953. // Change is only emitted on user interaction
  4954. this.$emit('change', checked ? this.value : null);
  4955. // If this is a child of form-radio-group, we emit a change event on it as well
  4956. if (this.is_Child) {
  4957. this.$parent.$emit('change', this.computedLocalChecked);
  4958. }
  4959. }
  4960. }
  4961. });
  4962. /***/ }),
  4963. /***/ "./node_modules/bootstrap-vue/es/components/form-radio/index.js":
  4964. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4965. "use strict";
  4966. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_radio__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-radio/form-radio.js");
  4967. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__form_radio_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-radio/form-radio-group.js");
  4968. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  4969. var components = {
  4970. bFormRadio: __WEBPACK_IMPORTED_MODULE_0__form_radio__["a" /* default */],
  4971. bRadio: __WEBPACK_IMPORTED_MODULE_0__form_radio__["a" /* default */],
  4972. bFormRadioGroup: __WEBPACK_IMPORTED_MODULE_1__form_radio_group__["a" /* default */],
  4973. bRadioGroup: __WEBPACK_IMPORTED_MODULE_1__form_radio_group__["a" /* default */]
  4974. };
  4975. var VuePlugin = {
  4976. install: function install(Vue) {
  4977. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
  4978. }
  4979. };
  4980. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  4981. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  4982. /***/ }),
  4983. /***/ "./node_modules/bootstrap-vue/es/components/form-select/form-select.js":
  4984. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4985. "use strict";
  4986. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  4987. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form_options__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-options.js");
  4988. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
  4989. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
  4990. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
  4991. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js");
  4992. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  4993. /* harmony default export */ __webpack_exports__["a"] = ({
  4994. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_form__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__["a" /* default */], __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_form_options__["a" /* default */]],
  4995. render: function render(h) {
  4996. var _this = this;
  4997. var $slots = this.$slots;
  4998. var options = this.formOptions.map(function (option, index) {
  4999. return h('option', {
  5000. key: 'option_' + index + '_opt',
  5001. attrs: { disabled: Boolean(option.disabled) },
  5002. domProps: { innerHTML: option.text, value: option.value }
  5003. });
  5004. });
  5005. return h('select', {
  5006. ref: 'input',
  5007. class: this.inputClass,
  5008. directives: [{
  5009. name: 'model',
  5010. rawName: 'v-model',
  5011. value: this.localValue,
  5012. expression: 'localValue'
  5013. }],
  5014. attrs: {
  5015. id: this.safeId(),
  5016. name: this.name,
  5017. multiple: this.multiple || null,
  5018. size: this.computedSelectSize,
  5019. disabled: this.disabled,
  5020. required: this.required,
  5021. 'aria-required': this.required ? 'true' : null,
  5022. 'aria-invalid': this.computedAriaInvalid
  5023. },
  5024. on: {
  5025. change: function change(evt) {
  5026. var target = evt.target;
  5027. var selectedVal = Object(__WEBPACK_IMPORTED_MODULE_6__utils_array__["c" /* from */])(target.options).filter(function (o) {
  5028. return o.selected;
  5029. }).map(function (o) {
  5030. return '_value' in o ? o._value : o.value;
  5031. });
  5032. _this.localValue = target.multiple ? selectedVal : selectedVal[0];
  5033. _this.$emit('change', _this.localValue);
  5034. }
  5035. }
  5036. }, [$slots.first, options, $slots.default]);
  5037. },
  5038. data: function data() {
  5039. return {
  5040. localValue: this.value
  5041. };
  5042. },
  5043. watch: {
  5044. value: function value(newVal, oldVal) {
  5045. this.localValue = newVal;
  5046. },
  5047. localValue: function localValue(newVal, oldVal) {
  5048. this.$emit('input', this.localValue);
  5049. }
  5050. },
  5051. props: {
  5052. value: {},
  5053. multiple: {
  5054. type: Boolean,
  5055. default: false
  5056. },
  5057. selectSize: {
  5058. // Browsers default size to 0, which shows 4 rows in most browsers in multiple mode
  5059. // Size of 1 can bork out firefox
  5060. type: Number,
  5061. default: 0
  5062. },
  5063. ariaInvalid: {
  5064. type: [Boolean, String],
  5065. default: false
  5066. }
  5067. },
  5068. computed: {
  5069. computedSelectSize: function computedSelectSize() {
  5070. // Custom selects with a size of zero causes the arrows to be hidden,
  5071. // so dont render the size attribute in this case
  5072. return !this.plain && this.selectSize === 0 ? null : this.selectSize;
  5073. },
  5074. inputClass: function inputClass() {
  5075. return ['form-control', this.stateClass, this.sizeFormClass,
  5076. // Awaiting for https://github.com/twbs/bootstrap/issues/23058
  5077. this.plain ? null : 'custom-select', this.plain || !this.size ? null : 'custom-select-' + this.size];
  5078. },
  5079. computedAriaInvalid: function computedAriaInvalid() {
  5080. if (this.ariaInvalid === true || this.ariaInvalid === 'true') {
  5081. return 'true';
  5082. }
  5083. return this.stateClass === 'is-invalid' ? 'true' : null;
  5084. }
  5085. }
  5086. });
  5087. /***/ }),
  5088. /***/ "./node_modules/bootstrap-vue/es/components/form-select/index.js":
  5089. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5090. "use strict";
  5091. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_select__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-select/form-select.js");
  5092. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  5093. var components = {
  5094. bFormSelect: __WEBPACK_IMPORTED_MODULE_0__form_select__["a" /* default */],
  5095. bSelect: __WEBPACK_IMPORTED_MODULE_0__form_select__["a" /* default */]
  5096. };
  5097. var VuePlugin = {
  5098. install: function install(Vue) {
  5099. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  5100. }
  5101. };
  5102. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  5103. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  5104. /***/ }),
  5105. /***/ "./node_modules/bootstrap-vue/es/components/form-textarea/form-textarea.js":
  5106. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5107. "use strict";
  5108. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  5109. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
  5110. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
  5111. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
  5112. /* harmony default export */ __webpack_exports__["a"] = ({
  5113. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_form__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_form_size__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_form_state__["a" /* default */]],
  5114. render: function render(h) {
  5115. var _this = this;
  5116. return h('textarea', {
  5117. ref: 'input',
  5118. class: this.inputClass,
  5119. style: this.inputStyle,
  5120. directives: [{
  5121. name: 'model',
  5122. rawName: 'v-model',
  5123. value: this.localValue,
  5124. expression: 'localValue'
  5125. }],
  5126. domProps: { value: this.value },
  5127. attrs: {
  5128. id: this.safeId(),
  5129. name: this.name,
  5130. disabled: this.disabled,
  5131. placeholder: this.placeholder,
  5132. required: this.required,
  5133. autocomplete: this.autocomplete || null,
  5134. readonly: this.readonly || this.plaintext,
  5135. rows: this.rowsCount,
  5136. wrap: this.wrap || null,
  5137. 'aria-required': this.required ? 'true' : null,
  5138. 'aria-invalid': this.computedAriaInvalid
  5139. },
  5140. on: {
  5141. input: function input(evt) {
  5142. _this.localValue = evt.target.value;
  5143. }
  5144. }
  5145. });
  5146. },
  5147. data: function data() {
  5148. return {
  5149. localValue: this.value
  5150. };
  5151. },
  5152. props: {
  5153. value: {
  5154. type: String,
  5155. default: ''
  5156. },
  5157. ariaInvalid: {
  5158. type: [Boolean, String],
  5159. default: false
  5160. },
  5161. readonly: {
  5162. type: Boolean,
  5163. default: false
  5164. },
  5165. plaintext: {
  5166. type: Boolean,
  5167. default: false
  5168. },
  5169. autocomplete: {
  5170. type: String,
  5171. default: null
  5172. },
  5173. placeholder: {
  5174. type: String,
  5175. default: null
  5176. },
  5177. rows: {
  5178. type: [Number, String],
  5179. default: null
  5180. },
  5181. maxRows: {
  5182. type: [Number, String],
  5183. default: null
  5184. },
  5185. wrap: {
  5186. // 'soft', 'hard' or 'off'. Browser default is 'soft'
  5187. type: String,
  5188. default: 'soft'
  5189. },
  5190. noResize: {
  5191. type: Boolean,
  5192. default: false
  5193. }
  5194. },
  5195. computed: {
  5196. rowsCount: function rowsCount() {
  5197. // A better option could be based on https://codepen.io/vsync/pen/frudD
  5198. // As linebreaks aren't added until the input is submitted
  5199. var rows = parseInt(this.rows, 10) || 1;
  5200. var maxRows = parseInt(this.maxRows, 10) || 0;
  5201. var lines = (this.localValue || '').toString().split('\n').length;
  5202. return maxRows ? Math.min(maxRows, Math.max(rows, lines)) : Math.max(rows, lines);
  5203. },
  5204. inputClass: function inputClass() {
  5205. return [this.plaintext ? 'form-control-plaintext' : 'form-control', this.sizeFormClass, this.stateClass];
  5206. },
  5207. inputStyle: function inputStyle() {
  5208. // We set width 100% in plaintext mode to get around a shortcoming in bootstrap CSS
  5209. // setting noResize to true will disable the ability for the user to resize the textarea
  5210. return {
  5211. width: this.plaintext ? '100%' : null,
  5212. resize: this.noResize ? 'none' : null
  5213. };
  5214. },
  5215. computedAriaInvalid: function computedAriaInvalid() {
  5216. if (!this.ariaInvalid || this.ariaInvalid === 'false') {
  5217. // this.ariaInvalid is null or false or 'false'
  5218. return this.computedState === false ? 'true' : null;
  5219. }
  5220. if (this.ariaInvalid === true) {
  5221. // User wants explicit aria-invalid=true
  5222. return 'true';
  5223. }
  5224. // Most likely a string value (which could be the string 'true')
  5225. return this.ariaInvalid;
  5226. }
  5227. },
  5228. watch: {
  5229. value: function value(newVal, oldVal) {
  5230. // Update our localValue
  5231. if (newVal !== oldVal) {
  5232. this.localValue = newVal;
  5233. }
  5234. },
  5235. localValue: function localValue(newVal, oldVal) {
  5236. // update Parent value
  5237. if (newVal !== oldVal) {
  5238. this.$emit('input', newVal);
  5239. }
  5240. }
  5241. },
  5242. methods: {
  5243. focus: function focus() {
  5244. // For external handler that may want a focus method
  5245. if (!this.disabled) {
  5246. this.$el.focus();
  5247. }
  5248. }
  5249. }
  5250. });
  5251. /***/ }),
  5252. /***/ "./node_modules/bootstrap-vue/es/components/form-textarea/index.js":
  5253. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5254. "use strict";
  5255. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_textarea__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-textarea/form-textarea.js");
  5256. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  5257. var components = {
  5258. bFormTextarea: __WEBPACK_IMPORTED_MODULE_0__form_textarea__["a" /* default */],
  5259. bTextarea: __WEBPACK_IMPORTED_MODULE_0__form_textarea__["a" /* default */]
  5260. };
  5261. var VuePlugin = {
  5262. install: function install(Vue) {
  5263. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  5264. }
  5265. };
  5266. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  5267. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  5268. /***/ }),
  5269. /***/ "./node_modules/bootstrap-vue/es/components/form/form-invalid-feedback.js":
  5270. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5271. "use strict";
  5272. /* unused harmony export props */
  5273. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  5274. var props = {
  5275. id: {
  5276. type: String,
  5277. default: null
  5278. },
  5279. tag: {
  5280. type: String,
  5281. default: 'div'
  5282. },
  5283. forceShow: {
  5284. type: Boolean,
  5285. default: false
  5286. }
  5287. };
  5288. /* harmony default export */ __webpack_exports__["a"] = ({
  5289. functional: true,
  5290. props: props,
  5291. render: function render(h, _ref) {
  5292. var props = _ref.props,
  5293. data = _ref.data,
  5294. children = _ref.children;
  5295. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  5296. staticClass: 'invalid-feedback',
  5297. class: { 'd-block': props.forceShow },
  5298. attrs: { id: props.id }
  5299. }), children);
  5300. }
  5301. });
  5302. /***/ }),
  5303. /***/ "./node_modules/bootstrap-vue/es/components/form/form-row.js":
  5304. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5305. "use strict";
  5306. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__layout_form_row__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/form-row.js");
  5307. /* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__layout_form_row__["a" /* default */]);
  5308. /***/ }),
  5309. /***/ "./node_modules/bootstrap-vue/es/components/form/form-text.js":
  5310. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5311. "use strict";
  5312. /* unused harmony export props */
  5313. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  5314. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  5315. var props = {
  5316. id: {
  5317. type: String,
  5318. default: null
  5319. },
  5320. tag: {
  5321. type: String,
  5322. default: 'small'
  5323. },
  5324. textVariant: {
  5325. type: String,
  5326. default: 'muted'
  5327. },
  5328. inline: {
  5329. type: Boolean,
  5330. default: false
  5331. }
  5332. };
  5333. /* harmony default export */ __webpack_exports__["a"] = ({
  5334. functional: true,
  5335. props: props,
  5336. render: function render(h, _ref) {
  5337. var props = _ref.props,
  5338. data = _ref.data,
  5339. children = _ref.children;
  5340. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  5341. class: _defineProperty({
  5342. 'form-text': !props.inline
  5343. }, 'text-' + props.textVariant, Boolean(props.textVariant)),
  5344. attrs: {
  5345. id: props.id
  5346. }
  5347. }), children);
  5348. }
  5349. });
  5350. /***/ }),
  5351. /***/ "./node_modules/bootstrap-vue/es/components/form/form-valid-feedback.js":
  5352. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5353. "use strict";
  5354. /* unused harmony export props */
  5355. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  5356. var props = {
  5357. id: {
  5358. type: String,
  5359. default: null
  5360. },
  5361. tag: {
  5362. type: String,
  5363. default: 'div'
  5364. },
  5365. forceShow: {
  5366. type: Boolean,
  5367. default: false
  5368. }
  5369. };
  5370. /* harmony default export */ __webpack_exports__["a"] = ({
  5371. functional: true,
  5372. props: props,
  5373. render: function render(h, _ref) {
  5374. var props = _ref.props,
  5375. data = _ref.data,
  5376. children = _ref.children;
  5377. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  5378. staticClass: 'valid-feedback',
  5379. class: { 'd-block': props.forceShow },
  5380. attrs: { id: props.id }
  5381. }), children);
  5382. }
  5383. });
  5384. /***/ }),
  5385. /***/ "./node_modules/bootstrap-vue/es/components/form/form.js":
  5386. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5387. "use strict";
  5388. /* unused harmony export props */
  5389. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  5390. var props = {
  5391. id: {
  5392. type: String,
  5393. default: null
  5394. },
  5395. inline: {
  5396. type: Boolean,
  5397. default: false
  5398. },
  5399. novalidate: {
  5400. type: Boolean,
  5401. default: false
  5402. },
  5403. validated: {
  5404. type: Boolean,
  5405. default: false
  5406. }
  5407. };
  5408. /* harmony default export */ __webpack_exports__["a"] = ({
  5409. functional: true,
  5410. props: props,
  5411. render: function render(h, _ref) {
  5412. var props = _ref.props,
  5413. data = _ref.data,
  5414. children = _ref.children;
  5415. return h('form', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  5416. class: {
  5417. 'form-inline': props.inline,
  5418. 'was-validated': props.validated
  5419. },
  5420. attrs: {
  5421. id: props.id,
  5422. novalidate: props.novalidate
  5423. }
  5424. }), children);
  5425. }
  5426. });
  5427. /***/ }),
  5428. /***/ "./node_modules/bootstrap-vue/es/components/form/index.js":
  5429. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5430. "use strict";
  5431. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form.js");
  5432. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__form_row__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-row.js");
  5433. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__form_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-text.js");
  5434. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__form_invalid_feedback__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-invalid-feedback.js");
  5435. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__form_valid_feedback__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-valid-feedback.js");
  5436. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  5437. var components = {
  5438. bForm: __WEBPACK_IMPORTED_MODULE_0__form__["a" /* default */],
  5439. bFormRow: __WEBPACK_IMPORTED_MODULE_1__form_row__["a" /* default */],
  5440. bFormText: __WEBPACK_IMPORTED_MODULE_2__form_text__["a" /* default */],
  5441. bFormInvalidFeedback: __WEBPACK_IMPORTED_MODULE_3__form_invalid_feedback__["a" /* default */],
  5442. bFormFeedback: __WEBPACK_IMPORTED_MODULE_3__form_invalid_feedback__["a" /* default */],
  5443. bFormValidFeedback: __WEBPACK_IMPORTED_MODULE_4__form_valid_feedback__["a" /* default */]
  5444. };
  5445. var VuePlugin = {
  5446. install: function install(Vue) {
  5447. Object(__WEBPACK_IMPORTED_MODULE_5__utils_plugins__["a" /* registerComponents */])(Vue, components);
  5448. }
  5449. };
  5450. Object(__WEBPACK_IMPORTED_MODULE_5__utils_plugins__["c" /* vueUse */])(VuePlugin);
  5451. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  5452. /***/ }),
  5453. /***/ "./node_modules/bootstrap-vue/es/components/image/img-lazy.js":
  5454. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5455. "use strict";
  5456. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__img__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/image/img.js");
  5457. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  5458. var THROTTLE = 100;
  5459. /* harmony default export */ __webpack_exports__["a"] = ({
  5460. components: { bImg: __WEBPACK_IMPORTED_MODULE_0__img__["a" /* default */] },
  5461. render: function render(h) {
  5462. return h('b-img', {
  5463. props: {
  5464. src: this.computedSrc,
  5465. alt: this.alt,
  5466. blank: this.computedBlank,
  5467. blankColor: this.blankColor,
  5468. width: this.computedWidth,
  5469. height: this.computedHeight,
  5470. fluid: this.fluid,
  5471. fluidGrow: this.fluidGrow,
  5472. block: this.block,
  5473. thumbnail: this.thumbnail,
  5474. rounded: this.rounded,
  5475. left: this.left,
  5476. right: this.right,
  5477. center: this.center
  5478. }
  5479. });
  5480. },
  5481. data: function data() {
  5482. return {
  5483. isShown: false,
  5484. scrollTimeout: null
  5485. };
  5486. },
  5487. props: {
  5488. src: {
  5489. type: String,
  5490. default: null,
  5491. required: true
  5492. },
  5493. alt: {
  5494. type: String,
  5495. default: null
  5496. },
  5497. width: {
  5498. type: [Number, String],
  5499. default: null
  5500. },
  5501. height: {
  5502. type: [Number, String],
  5503. default: null
  5504. },
  5505. blankSrc: {
  5506. // If null, a blank image is generated
  5507. type: String,
  5508. default: null
  5509. },
  5510. blankColor: {
  5511. type: String,
  5512. default: 'transparent'
  5513. },
  5514. blankWidth: {
  5515. type: [Number, String],
  5516. default: null
  5517. },
  5518. blankHeight: {
  5519. type: [Number, String],
  5520. default: null
  5521. },
  5522. fluid: {
  5523. type: Boolean,
  5524. default: false
  5525. },
  5526. fluidGrow: {
  5527. type: Boolean,
  5528. default: false
  5529. },
  5530. block: {
  5531. type: Boolean,
  5532. default: false
  5533. },
  5534. thumbnail: {
  5535. type: Boolean,
  5536. default: false
  5537. },
  5538. rounded: {
  5539. type: [Boolean, String],
  5540. default: false
  5541. },
  5542. left: {
  5543. type: Boolean,
  5544. default: false
  5545. },
  5546. right: {
  5547. type: Boolean,
  5548. default: false
  5549. },
  5550. center: {
  5551. type: Boolean,
  5552. default: false
  5553. },
  5554. offset: {
  5555. type: [Number, String],
  5556. default: 360
  5557. },
  5558. throttle: {
  5559. type: [Number, String],
  5560. default: THROTTLE
  5561. }
  5562. },
  5563. computed: {
  5564. computedSrc: function computedSrc() {
  5565. return !this.blankSrc || this.isShown ? this.src : this.blankSrc;
  5566. },
  5567. computedBlank: function computedBlank() {
  5568. return !(this.isShown || this.blankSrc);
  5569. },
  5570. computedWidth: function computedWidth() {
  5571. return this.isShown ? this.width : this.blankWidth || this.width;
  5572. },
  5573. computedHeight: function computedHeight() {
  5574. return this.isShown ? this.height : this.blankHeight || this.height;
  5575. }
  5576. },
  5577. mounted: function mounted() {
  5578. this.setListeners(true);
  5579. this.checkView();
  5580. },
  5581. activated: function activated() {
  5582. this.setListeners(true);
  5583. this.checkView();
  5584. },
  5585. deactivated: function deactivated() {
  5586. this.setListeners(false);
  5587. },
  5588. beforeDdestroy: function beforeDdestroy() {
  5589. this.setListeners(false);
  5590. },
  5591. methods: {
  5592. setListeners: function setListeners(on) {
  5593. clearTimeout(this.scrollTimer);
  5594. this.scrollTimeout = null;
  5595. var root = window;
  5596. if (on) {
  5597. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["d" /* eventOn */])(root, 'scroll', this.onScroll);
  5598. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["d" /* eventOn */])(root, 'resize', this.onScroll);
  5599. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["d" /* eventOn */])(root, 'orientationchange', this.onScroll);
  5600. } else {
  5601. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["c" /* eventOff */])(root, 'scroll', this.onScroll);
  5602. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["c" /* eventOff */])(root, 'resize', this.onScroll);
  5603. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["c" /* eventOff */])(root, 'orientationchange', this.onScroll);
  5604. }
  5605. },
  5606. checkView: function checkView() {
  5607. // check bounding box + offset to see if we should show
  5608. if (!Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["m" /* isVisible */])(this.$el)) {
  5609. // Element is hidden, so skip for now
  5610. return;
  5611. }
  5612. var offset = parseInt(this.offset, 10) || 0;
  5613. var docElement = document.documentElement;
  5614. var view = {
  5615. l: 0 - offset,
  5616. t: 0 - offset,
  5617. b: docElement.clientHeight + offset,
  5618. r: docElement.clientWidth + offset
  5619. };
  5620. var box = Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["f" /* getBCR */])(this.$el);
  5621. if (box.right >= view.l && box.bottom >= view.t && box.left <= view.r && box.top <= view.b) {
  5622. // image is in view (or about to be in view)
  5623. this.isShown = true;
  5624. this.setListeners(false);
  5625. }
  5626. },
  5627. onScroll: function onScroll() {
  5628. if (this.isShown) {
  5629. this.setListeners(false);
  5630. } else {
  5631. clearTimeout(this.scrollTimeout);
  5632. this.scrollTimeout = setTimeout(this.checkView, parseInt(this.throttle, 10) || THROTTLE);
  5633. }
  5634. }
  5635. }
  5636. });
  5637. /***/ }),
  5638. /***/ "./node_modules/bootstrap-vue/es/components/image/img.js":
  5639. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5640. "use strict";
  5641. /* unused harmony export props */
  5642. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  5643. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  5644. // Blank image with fill template
  5645. var BLANK_TEMPLATE = '<svg width="%{w}" height="%{h}" ' + 'xmlns="http://www.w3.org/2000/svg" ' + 'viewBox="0 0 %{w} %{h}" preserveAspectRatio="none">' + '<rect width="100%" height="100%" style="fill:%{f};"></rect>' + '</svg>';
  5646. function makeBlankImgSrc(width, height, color) {
  5647. var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', String(width)).replace('%{h}', String(height)).replace('%{f}', color));
  5648. return 'data:image/svg+xml;charset=UTF-8,' + src;
  5649. }
  5650. var props = {
  5651. src: {
  5652. type: String,
  5653. default: null
  5654. },
  5655. alt: {
  5656. type: String,
  5657. default: null
  5658. },
  5659. width: {
  5660. type: [Number, String],
  5661. default: null
  5662. },
  5663. height: {
  5664. type: [Number, String],
  5665. default: null
  5666. },
  5667. block: {
  5668. type: Boolean,
  5669. default: false
  5670. },
  5671. fluid: {
  5672. type: Boolean,
  5673. default: false
  5674. },
  5675. fluidGrow: {
  5676. // Gives fluid images class `w-100` to make them grow to fit container
  5677. type: Boolean,
  5678. default: false
  5679. },
  5680. rounded: {
  5681. // rounded can be:
  5682. // false: no rounding of corners
  5683. // true: slightly rounded corners
  5684. // 'top': top corners rounded
  5685. // 'right': right corners rounded
  5686. // 'bottom': bottom corners rounded
  5687. // 'left': left corners rounded
  5688. // 'circle': circle/oval
  5689. // '0': force rounding off
  5690. type: [Boolean, String],
  5691. default: false
  5692. },
  5693. thumbnail: {
  5694. type: Boolean,
  5695. default: false
  5696. },
  5697. left: {
  5698. type: Boolean,
  5699. default: false
  5700. },
  5701. right: {
  5702. type: Boolean,
  5703. default: false
  5704. },
  5705. center: {
  5706. type: Boolean,
  5707. default: false
  5708. },
  5709. blank: {
  5710. type: Boolean,
  5711. default: false
  5712. },
  5713. blankColor: {
  5714. type: String,
  5715. default: 'transparent'
  5716. }
  5717. };
  5718. /* harmony default export */ __webpack_exports__["a"] = ({
  5719. functional: true,
  5720. props: props,
  5721. render: function render(h, _ref) {
  5722. var _class;
  5723. var props = _ref.props,
  5724. data = _ref.data;
  5725. var src = props.src;
  5726. var width = parseInt(props.width, 10) ? parseInt(props.width, 10) : null;
  5727. var height = parseInt(props.height, 10) ? parseInt(props.height, 10) : null;
  5728. var align = null;
  5729. var block = props.block;
  5730. if (props.blank) {
  5731. if (!height && Boolean(width)) {
  5732. height = width;
  5733. } else if (!width && Boolean(height)) {
  5734. width = height;
  5735. }
  5736. if (!width && !height) {
  5737. width = 1;
  5738. height = 1;
  5739. }
  5740. // Make a blank SVG image
  5741. src = makeBlankImgSrc(width, height, props.blankColor || 'transparent');
  5742. }
  5743. if (props.left) {
  5744. align = 'float-left';
  5745. } else if (props.right) {
  5746. align = 'float-right';
  5747. } else if (props.center) {
  5748. align = 'mx-auto';
  5749. block = true;
  5750. }
  5751. return h('img', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  5752. attrs: {
  5753. 'src': src,
  5754. 'alt': props.alt,
  5755. 'width': width ? String(width) : null,
  5756. 'height': height ? String(height) : null
  5757. },
  5758. class: (_class = {
  5759. 'img-thumbnail': props.thumbnail,
  5760. 'img-fluid': props.fluid || props.fluidGrow,
  5761. 'w-100': props.fluidGrow,
  5762. 'rounded': props.rounded === '' || props.rounded === true
  5763. }, _defineProperty(_class, 'rounded-' + props.rounded, typeof props.rounded === 'string' && props.rounded !== ''), _defineProperty(_class, align, Boolean(align)), _defineProperty(_class, 'd-block', block), _class)
  5764. }));
  5765. }
  5766. });
  5767. /***/ }),
  5768. /***/ "./node_modules/bootstrap-vue/es/components/image/index.js":
  5769. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5770. "use strict";
  5771. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__img__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/image/img.js");
  5772. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__img_lazy__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/image/img-lazy.js");
  5773. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  5774. var components = {
  5775. bImg: __WEBPACK_IMPORTED_MODULE_0__img__["a" /* default */],
  5776. bImgLazy: __WEBPACK_IMPORTED_MODULE_1__img_lazy__["a" /* default */]
  5777. };
  5778. var VuePlugin = {
  5779. install: function install(Vue) {
  5780. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
  5781. }
  5782. };
  5783. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  5784. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  5785. /***/ }),
  5786. /***/ "./node_modules/bootstrap-vue/es/components/index.js":
  5787. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5788. "use strict";
  5789. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  5790. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__alert__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/alert/index.js");
  5791. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__badge__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/badge/index.js");
  5792. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__breadcrumb__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/index.js");
  5793. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__button__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/index.js");
  5794. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__button_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button-group/index.js");
  5795. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__button_toolbar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button-toolbar/index.js");
  5796. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__input_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/index.js");
  5797. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__card__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/index.js");
  5798. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__carousel__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/carousel/index.js");
  5799. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__layout__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/index.js");
  5800. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__collapse__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/collapse/index.js");
  5801. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/index.js");
  5802. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__embed__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/embed/index.js");
  5803. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__form__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/index.js");
  5804. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__form_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-group/index.js");
  5805. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__form_checkbox__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-checkbox/index.js");
  5806. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__form_radio__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-radio/index.js");
  5807. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__form_input__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-input/index.js");
  5808. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__form_textarea__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-textarea/index.js");
  5809. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__form_file__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-file/index.js");
  5810. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__form_select__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-select/index.js");
  5811. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__image__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/image/index.js");
  5812. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__jumbotron__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/jumbotron/index.js");
  5813. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/index.js");
  5814. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__list_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/list-group/index.js");
  5815. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__media__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/index.js");
  5816. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__modal__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/modal/index.js");
  5817. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/index.js");
  5818. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__navbar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/navbar/index.js");
  5819. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__pagination__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/pagination/index.js");
  5820. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__pagination_nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/pagination-nav/index.js");
  5821. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__popover__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/popover/index.js");
  5822. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__progress__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/progress/index.js");
  5823. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__table__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/table/index.js");
  5824. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__tabs__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/tabs/index.js");
  5825. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__tooltip__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/tooltip/index.js");
  5826. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Alert", function() { return __WEBPACK_IMPORTED_MODULE_0__alert__["a"]; });
  5827. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Badge", function() { return __WEBPACK_IMPORTED_MODULE_1__badge__["a"]; });
  5828. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return __WEBPACK_IMPORTED_MODULE_2__breadcrumb__["a"]; });
  5829. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return __WEBPACK_IMPORTED_MODULE_3__button__["a"]; });
  5830. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonToolbar", function() { return __WEBPACK_IMPORTED_MODULE_5__button_toolbar__["a"]; });
  5831. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonGroup", function() { return __WEBPACK_IMPORTED_MODULE_4__button_group__["a"]; });
  5832. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Card", function() { return __WEBPACK_IMPORTED_MODULE_7__card__["a"]; });
  5833. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Carousel", function() { return __WEBPACK_IMPORTED_MODULE_8__carousel__["a"]; });
  5834. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Collapse", function() { return __WEBPACK_IMPORTED_MODULE_10__collapse__["a"]; });
  5835. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return __WEBPACK_IMPORTED_MODULE_11__dropdown__["a"]; });
  5836. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Embed", function() { return __WEBPACK_IMPORTED_MODULE_12__embed__["a"]; });
  5837. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Form", function() { return __WEBPACK_IMPORTED_MODULE_13__form__["a"]; });
  5838. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormGroup", function() { return __WEBPACK_IMPORTED_MODULE_14__form_group__["a"]; });
  5839. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormInput", function() { return __WEBPACK_IMPORTED_MODULE_17__form_input__["a"]; });
  5840. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormTextarea", function() { return __WEBPACK_IMPORTED_MODULE_18__form_textarea__["a"]; });
  5841. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormFile", function() { return __WEBPACK_IMPORTED_MODULE_19__form_file__["a"]; });
  5842. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormCheckbox", function() { return __WEBPACK_IMPORTED_MODULE_15__form_checkbox__["a"]; });
  5843. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormRadio", function() { return __WEBPACK_IMPORTED_MODULE_16__form_radio__["a"]; });
  5844. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormSelect", function() { return __WEBPACK_IMPORTED_MODULE_20__form_select__["a"]; });
  5845. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return __WEBPACK_IMPORTED_MODULE_21__image__["a"]; });
  5846. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "InputGroup", function() { return __WEBPACK_IMPORTED_MODULE_6__input_group__["a"]; });
  5847. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Jumbotron", function() { return __WEBPACK_IMPORTED_MODULE_22__jumbotron__["a"]; });
  5848. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Layout", function() { return __WEBPACK_IMPORTED_MODULE_9__layout__["a"]; });
  5849. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Link", function() { return __WEBPACK_IMPORTED_MODULE_23__link__["a"]; });
  5850. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ListGroup", function() { return __WEBPACK_IMPORTED_MODULE_24__list_group__["a"]; });
  5851. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Media", function() { return __WEBPACK_IMPORTED_MODULE_25__media__["a"]; });
  5852. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return __WEBPACK_IMPORTED_MODULE_26__modal__["a"]; });
  5853. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Nav", function() { return __WEBPACK_IMPORTED_MODULE_27__nav__["a"]; });
  5854. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Navbar", function() { return __WEBPACK_IMPORTED_MODULE_28__navbar__["a"]; });
  5855. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Pagination", function() { return __WEBPACK_IMPORTED_MODULE_29__pagination__["a"]; });
  5856. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationNav", function() { return __WEBPACK_IMPORTED_MODULE_30__pagination_nav__["a"]; });
  5857. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Popover", function() { return __WEBPACK_IMPORTED_MODULE_31__popover__["a"]; });
  5858. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Progress", function() { return __WEBPACK_IMPORTED_MODULE_32__progress__["a"]; });
  5859. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Table", function() { return __WEBPACK_IMPORTED_MODULE_33__table__["a"]; });
  5860. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Tabs", function() { return __WEBPACK_IMPORTED_MODULE_34__tabs__["a"]; });
  5861. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return __WEBPACK_IMPORTED_MODULE_35__tooltip__["a"]; });
  5862. /***/ }),
  5863. /***/ "./node_modules/bootstrap-vue/es/components/input-group/index.js":
  5864. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5865. "use strict";
  5866. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  5867. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__input_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group.js");
  5868. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__input_group_addon__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-addon.js");
  5869. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__input_group_prepend__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-prepend.js");
  5870. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__input_group_append__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-append.js");
  5871. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__input_group_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-text.js");
  5872. var components = {
  5873. bInputGroup: __WEBPACK_IMPORTED_MODULE_1__input_group__["a" /* default */],
  5874. bInputGroupAddon: __WEBPACK_IMPORTED_MODULE_2__input_group_addon__["a" /* default */],
  5875. bInputGroupPrepend: __WEBPACK_IMPORTED_MODULE_3__input_group_prepend__["a" /* default */],
  5876. bInputGroupAppend: __WEBPACK_IMPORTED_MODULE_4__input_group_append__["a" /* default */],
  5877. bInputGroupText: __WEBPACK_IMPORTED_MODULE_5__input_group_text__["a" /* default */]
  5878. };
  5879. var VuePlugin = {
  5880. install: function install(Vue) {
  5881. Object(__WEBPACK_IMPORTED_MODULE_0__utils_plugins__["a" /* registerComponents */])(Vue, components);
  5882. }
  5883. };
  5884. Object(__WEBPACK_IMPORTED_MODULE_0__utils_plugins__["c" /* vueUse */])(VuePlugin);
  5885. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  5886. /***/ }),
  5887. /***/ "./node_modules/bootstrap-vue/es/components/input-group/input-group-addon.js":
  5888. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5889. "use strict";
  5890. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return propsFactory; });
  5891. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  5892. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__input_group_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-text.js");
  5893. var propsFactory = function propsFactory(append) {
  5894. return {
  5895. id: {
  5896. type: String,
  5897. default: null
  5898. },
  5899. tag: {
  5900. type: String,
  5901. default: 'div'
  5902. },
  5903. append: {
  5904. type: Boolean,
  5905. default: append
  5906. },
  5907. isText: {
  5908. type: Boolean,
  5909. default: false
  5910. }
  5911. };
  5912. };
  5913. /* harmony default export */ __webpack_exports__["a"] = ({
  5914. functional: true,
  5915. props: propsFactory(false),
  5916. render: function render(h, _ref) {
  5917. var props = _ref.props,
  5918. data = _ref.data,
  5919. children = _ref.children;
  5920. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  5921. staticClass: 'input-group-' + (props.append ? 'append' : 'prepend'),
  5922. attrs: {
  5923. id: props.id
  5924. }
  5925. }), props.isText ? [h(__WEBPACK_IMPORTED_MODULE_1__input_group_text__["a" /* default */], children)] : children);
  5926. }
  5927. });
  5928. /***/ }),
  5929. /***/ "./node_modules/bootstrap-vue/es/components/input-group/input-group-append.js":
  5930. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5931. "use strict";
  5932. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__input_group_addon__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-addon.js");
  5933. /* harmony default export */ __webpack_exports__["a"] = ({
  5934. functional: true,
  5935. props: Object(__WEBPACK_IMPORTED_MODULE_0__input_group_addon__["b" /* propsFactory */])(true),
  5936. render: __WEBPACK_IMPORTED_MODULE_0__input_group_addon__["a" /* default */].render
  5937. });
  5938. /***/ }),
  5939. /***/ "./node_modules/bootstrap-vue/es/components/input-group/input-group-prepend.js":
  5940. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5941. "use strict";
  5942. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__input_group_addon__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-addon.js");
  5943. /* harmony default export */ __webpack_exports__["a"] = ({
  5944. functional: true,
  5945. props: Object(__WEBPACK_IMPORTED_MODULE_0__input_group_addon__["b" /* propsFactory */])(false),
  5946. render: __WEBPACK_IMPORTED_MODULE_0__input_group_addon__["a" /* default */].render
  5947. });
  5948. /***/ }),
  5949. /***/ "./node_modules/bootstrap-vue/es/components/input-group/input-group-text.js":
  5950. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5951. "use strict";
  5952. /* unused harmony export props */
  5953. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  5954. var props = {
  5955. tag: {
  5956. type: String,
  5957. default: 'div'
  5958. }
  5959. };
  5960. /* harmony default export */ __webpack_exports__["a"] = ({
  5961. props: props,
  5962. functional: true,
  5963. render: function render(h, _ref) {
  5964. var props = _ref.props,
  5965. data = _ref.data,
  5966. children = _ref.children;
  5967. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  5968. staticClass: 'input-group-text'
  5969. }), children);
  5970. }
  5971. });
  5972. /***/ }),
  5973. /***/ "./node_modules/bootstrap-vue/es/components/input-group/input-group.js":
  5974. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5975. "use strict";
  5976. /* unused harmony export props */
  5977. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  5978. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__input_group_prepend__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-prepend.js");
  5979. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__input_group_append__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-append.js");
  5980. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__input_group_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-text.js");
  5981. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  5982. var props = {
  5983. id: {
  5984. type: String,
  5985. default: null
  5986. },
  5987. size: {
  5988. type: String,
  5989. default: null
  5990. },
  5991. prepend: {
  5992. type: String,
  5993. default: null
  5994. },
  5995. append: {
  5996. type: String,
  5997. default: null
  5998. },
  5999. tag: {
  6000. type: String,
  6001. default: 'div'
  6002. }
  6003. };
  6004. /* harmony default export */ __webpack_exports__["a"] = ({
  6005. functional: true,
  6006. props: props,
  6007. render: function render(h, _ref) {
  6008. var props = _ref.props,
  6009. data = _ref.data,
  6010. slots = _ref.slots;
  6011. var $slots = slots();
  6012. var childNodes = [];
  6013. // Prepend prop
  6014. if (props.prepend) {
  6015. childNodes.push(h(__WEBPACK_IMPORTED_MODULE_1__input_group_prepend__["a" /* default */], [h(__WEBPACK_IMPORTED_MODULE_3__input_group_text__["a" /* default */], { domProps: { innerHTML: props.prepend } })]));
  6016. }
  6017. // Prepend slot
  6018. if ($slots.prepend) {
  6019. childNodes.push(h(__WEBPACK_IMPORTED_MODULE_1__input_group_prepend__["a" /* default */], $slots.prepend));
  6020. }
  6021. // Default slot
  6022. childNodes.push($slots.default);
  6023. // Append prop
  6024. if (props.append) {
  6025. childNodes.push(h(__WEBPACK_IMPORTED_MODULE_2__input_group_append__["a" /* default */], [h(__WEBPACK_IMPORTED_MODULE_3__input_group_text__["a" /* default */], { domProps: { innerHTML: props.append } })]));
  6026. }
  6027. // Append slot
  6028. if ($slots.append) {
  6029. childNodes.push(h(__WEBPACK_IMPORTED_MODULE_2__input_group_append__["a" /* default */], $slots.append));
  6030. }
  6031. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  6032. staticClass: 'input-group',
  6033. class: _defineProperty({}, 'input-group-' + props.size, Boolean(props.size)),
  6034. attrs: {
  6035. id: props.id || null,
  6036. role: 'group'
  6037. }
  6038. }), childNodes);
  6039. }
  6040. });
  6041. /***/ }),
  6042. /***/ "./node_modules/bootstrap-vue/es/components/jumbotron/index.js":
  6043. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6044. "use strict";
  6045. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jumbotron__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/jumbotron/jumbotron.js");
  6046. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  6047. var components = {
  6048. bJumbotron: __WEBPACK_IMPORTED_MODULE_0__jumbotron__["a" /* default */]
  6049. };
  6050. var VuePlugin = {
  6051. install: function install(Vue) {
  6052. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  6053. }
  6054. };
  6055. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  6056. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  6057. /***/ }),
  6058. /***/ "./node_modules/bootstrap-vue/es/components/jumbotron/jumbotron.js":
  6059. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6060. "use strict";
  6061. /* unused harmony export props */
  6062. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6063. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__layout_container__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/container.js");
  6064. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  6065. var props = {
  6066. fluid: {
  6067. type: Boolean,
  6068. default: false
  6069. },
  6070. containerFluid: {
  6071. type: Boolean,
  6072. default: false
  6073. },
  6074. header: {
  6075. type: String,
  6076. default: null
  6077. },
  6078. headerTag: {
  6079. type: String,
  6080. default: 'h1'
  6081. },
  6082. headerLevel: {
  6083. type: [Number, String],
  6084. default: '3'
  6085. },
  6086. lead: {
  6087. type: String,
  6088. default: null
  6089. },
  6090. leadTag: {
  6091. type: String,
  6092. default: 'p'
  6093. },
  6094. tag: {
  6095. type: String,
  6096. default: 'div'
  6097. },
  6098. bgVariant: {
  6099. type: String,
  6100. default: null
  6101. },
  6102. borderVariant: {
  6103. type: String,
  6104. default: null
  6105. },
  6106. textVariant: {
  6107. type: String,
  6108. default: null
  6109. }
  6110. };
  6111. /* harmony default export */ __webpack_exports__["a"] = ({
  6112. functional: true,
  6113. props: props,
  6114. render: function render(h, _ref) {
  6115. var _class2;
  6116. var props = _ref.props,
  6117. data = _ref.data,
  6118. slots = _ref.slots;
  6119. // The order of the conditionals matter.
  6120. // We are building the component markup in order.
  6121. var childNodes = [];
  6122. var $slots = slots();
  6123. // Header
  6124. if (props.header || $slots.header) {
  6125. childNodes.push(h(props.headerTag, {
  6126. class: _defineProperty({}, 'display-' + props.headerLevel, Boolean(props.headerLevel))
  6127. }, $slots.header || props.header));
  6128. }
  6129. // Lead
  6130. if (props.lead || $slots.lead) {
  6131. childNodes.push(h(props.leadTag, { staticClass: 'lead' }, $slots.lead || props.lead));
  6132. }
  6133. // Default slot
  6134. if ($slots.default) {
  6135. childNodes.push($slots.default);
  6136. }
  6137. // If fluid, wrap content in a container/container-fluid
  6138. if (props.fluid) {
  6139. // Children become a child of a container
  6140. childNodes = [h(__WEBPACK_IMPORTED_MODULE_1__layout_container__["a" /* default */], { props: { 'fluid': props.containerFluid } }, childNodes)];
  6141. }
  6142. // Return the jumbotron
  6143. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  6144. staticClass: 'jumbotron',
  6145. class: (_class2 = {
  6146. 'jumbotron-fluid': props.fluid
  6147. }, _defineProperty(_class2, 'text-' + props.textVariant, Boolean(props.textVariant)), _defineProperty(_class2, 'bg-' + props.bgVariant, Boolean(props.bgVariant)), _defineProperty(_class2, 'border-' + props.borderVariant, Boolean(props.borderVariant)), _defineProperty(_class2, 'border', Boolean(props.borderVariant)), _class2)
  6148. }), childNodes);
  6149. }
  6150. });
  6151. /***/ }),
  6152. /***/ "./node_modules/bootstrap-vue/es/components/layout/col.js":
  6153. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6154. "use strict";
  6155. /* unused harmony export computeBkPtClass */
  6156. /* unused harmony export props */
  6157. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6158. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_memoize__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/memoize.js");
  6159. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_suffix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/suffix-prop-name.js");
  6160. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  6161. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  6162. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  6163. /**
  6164. * Generates a prop object with a type of
  6165. * [Boolean, String, Number]
  6166. */
  6167. function boolStrNum() {
  6168. return {
  6169. type: [Boolean, String, Number],
  6170. default: false
  6171. };
  6172. }
  6173. /**
  6174. * Generates a prop object with a type of
  6175. * [String, Number]
  6176. */
  6177. function strNum() {
  6178. return {
  6179. type: [String, Number],
  6180. default: null
  6181. };
  6182. }
  6183. var computeBkPtClass = Object(__WEBPACK_IMPORTED_MODULE_1__utils_memoize__["a" /* default */])(function computeBkPt(type, breakpoint, val) {
  6184. var className = type;
  6185. if (val === false || val === null || val === undefined) {
  6186. return undefined;
  6187. }
  6188. if (breakpoint) {
  6189. className += '-' + breakpoint;
  6190. }
  6191. // Handling the boolean style prop when accepting [Boolean, String, Number]
  6192. // means Vue will not convert <b-col sm /> to sm: true for us.
  6193. // Since the default is false, an empty string indicates the prop's presence.
  6194. if (type === 'col' && (val === '' || val === true)) {
  6195. // .col-md
  6196. return className.toLowerCase();
  6197. }
  6198. // .order-md-6
  6199. className += '-' + val;
  6200. return className.toLowerCase();
  6201. });
  6202. var BREAKPOINTS = ['sm', 'md', 'lg', 'xl'];
  6203. // Supports classes like: .col-sm, .col-md-6, .col-lg-auto
  6204. var breakpointCol = BREAKPOINTS.reduce(
  6205. // eslint-disable-next-line no-sequences
  6206. function (propMap, breakpoint) {
  6207. return propMap[breakpoint] = boolStrNum(), propMap;
  6208. }, Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["b" /* create */])(null));
  6209. // Supports classes like: .offset-md-1, .offset-lg-12
  6210. var breakpointOffset = BREAKPOINTS.reduce(
  6211. // eslint-disable-next-line no-sequences
  6212. function (propMap, breakpoint) {
  6213. return propMap[Object(__WEBPACK_IMPORTED_MODULE_2__utils_suffix_prop_name__["a" /* default */])(breakpoint, 'offset')] = strNum(), propMap;
  6214. }, Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["b" /* create */])(null));
  6215. // Supports classes like: .order-md-1, .order-lg-12
  6216. var breakpointOrder = BREAKPOINTS.reduce(
  6217. // eslint-disable-next-line no-sequences
  6218. function (propMap, breakpoint) {
  6219. return propMap[Object(__WEBPACK_IMPORTED_MODULE_2__utils_suffix_prop_name__["a" /* default */])(breakpoint, 'order')] = strNum(), propMap;
  6220. }, Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["b" /* create */])(null));
  6221. // For loop doesn't need to check hasOwnProperty
  6222. // when using an object created from null
  6223. var breakpointPropMap = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])(Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["b" /* create */])(null), {
  6224. col: Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["e" /* keys */])(breakpointCol),
  6225. offset: Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["e" /* keys */])(breakpointOffset),
  6226. order: Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["e" /* keys */])(breakpointOrder)
  6227. });
  6228. var props = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])({}, breakpointCol, breakpointOffset, breakpointOrder, {
  6229. tag: {
  6230. type: String,
  6231. default: 'div'
  6232. },
  6233. // Generic flexbox .col
  6234. col: {
  6235. type: Boolean,
  6236. default: false
  6237. },
  6238. // .col-[1-12]|auto
  6239. cols: strNum(),
  6240. // .offset-[1-12]
  6241. offset: strNum(),
  6242. // Flex ordering utility .order-[1-12]
  6243. order: strNum(),
  6244. alignSelf: {
  6245. type: String,
  6246. default: null,
  6247. validator: function validator(str) {
  6248. return Object(__WEBPACK_IMPORTED_MODULE_4__utils_array__["a" /* arrayIncludes */])(['auto', 'start', 'end', 'center', 'baseline', 'stretch'], str);
  6249. }
  6250. }
  6251. });
  6252. /**
  6253. * We need ".col" to default in when no other props are passed,
  6254. * but always render when col=true.
  6255. */
  6256. /* harmony default export */ __webpack_exports__["a"] = ({
  6257. functional: true,
  6258. props: props,
  6259. render: function render(h, _ref) {
  6260. var _classList$push;
  6261. var props = _ref.props,
  6262. data = _ref.data,
  6263. children = _ref.children;
  6264. var classList = [];
  6265. // Loop through `col`, `offset`, `order` breakpoint props
  6266. for (var type in breakpointPropMap) {
  6267. // Returns colSm, offset, offsetSm, orderMd, etc.
  6268. var _keys = breakpointPropMap[type];
  6269. for (var i = 0; i < _keys.length; i++) {
  6270. // computeBkPt(col, colSm => Sm, value=[String, Number, Boolean])
  6271. var c = computeBkPtClass(type, _keys[i].replace(type, ''), props[_keys[i]]);
  6272. // If a class is returned, push it onto the array.
  6273. if (c) {
  6274. classList.push(c);
  6275. }
  6276. }
  6277. }
  6278. classList.push((_classList$push = {
  6279. // Default to .col if no other classes generated nor `cols` specified.
  6280. col: props.col || classList.length === 0 && !props.cols
  6281. }, _defineProperty(_classList$push, 'col-' + props.cols, props.cols), _defineProperty(_classList$push, 'offset-' + props.offset, props.offset), _defineProperty(_classList$push, 'order-' + props.order, props.order), _defineProperty(_classList$push, 'align-self-' + props.alignSelf, props.alignSelf), _classList$push));
  6282. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { class: classList }), children);
  6283. }
  6284. });
  6285. /***/ }),
  6286. /***/ "./node_modules/bootstrap-vue/es/components/layout/container.js":
  6287. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6288. "use strict";
  6289. /* unused harmony export props */
  6290. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6291. var props = {
  6292. tag: {
  6293. type: String,
  6294. default: 'div'
  6295. },
  6296. fluid: {
  6297. type: Boolean,
  6298. default: false
  6299. }
  6300. };
  6301. /* harmony default export */ __webpack_exports__["a"] = ({
  6302. functional: true,
  6303. props: props,
  6304. render: function render(h, _ref) {
  6305. var props = _ref.props,
  6306. data = _ref.data,
  6307. children = _ref.children;
  6308. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  6309. class: {
  6310. 'container': !props.fluid,
  6311. 'container-fluid': props.fluid
  6312. }
  6313. }), children);
  6314. }
  6315. });
  6316. /***/ }),
  6317. /***/ "./node_modules/bootstrap-vue/es/components/layout/form-row.js":
  6318. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6319. "use strict";
  6320. /* unused harmony export props */
  6321. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6322. var props = {
  6323. tag: {
  6324. type: String,
  6325. default: 'div'
  6326. }
  6327. };
  6328. /* harmony default export */ __webpack_exports__["a"] = ({
  6329. functional: true,
  6330. props: props,
  6331. render: function render(h, _ref) {
  6332. var props = _ref.props,
  6333. data = _ref.data,
  6334. children = _ref.children;
  6335. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  6336. staticClass: 'form-row'
  6337. }), children);
  6338. }
  6339. });
  6340. /***/ }),
  6341. /***/ "./node_modules/bootstrap-vue/es/components/layout/index.js":
  6342. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6343. "use strict";
  6344. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__container__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/container.js");
  6345. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__row__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/row.js");
  6346. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__col__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/col.js");
  6347. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__form_row__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/form-row.js");
  6348. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  6349. var components = {
  6350. bContainer: __WEBPACK_IMPORTED_MODULE_0__container__["a" /* default */],
  6351. bRow: __WEBPACK_IMPORTED_MODULE_1__row__["a" /* default */],
  6352. bCol: __WEBPACK_IMPORTED_MODULE_2__col__["a" /* default */],
  6353. bFormRow: __WEBPACK_IMPORTED_MODULE_3__form_row__["a" /* default */]
  6354. };
  6355. var VuePlugin = {
  6356. install: function install(Vue) {
  6357. Object(__WEBPACK_IMPORTED_MODULE_4__utils_plugins__["a" /* registerComponents */])(Vue, components);
  6358. }
  6359. };
  6360. Object(__WEBPACK_IMPORTED_MODULE_4__utils_plugins__["c" /* vueUse */])(VuePlugin);
  6361. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  6362. /***/ }),
  6363. /***/ "./node_modules/bootstrap-vue/es/components/layout/row.js":
  6364. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6365. "use strict";
  6366. /* unused harmony export props */
  6367. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6368. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  6369. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  6370. var COMMON_ALIGNMENT = ['start', 'end', 'center'];
  6371. var props = {
  6372. tag: {
  6373. type: String,
  6374. default: 'div'
  6375. },
  6376. noGutters: {
  6377. type: Boolean,
  6378. default: false
  6379. },
  6380. alignV: {
  6381. type: String,
  6382. default: null,
  6383. validator: function validator(str) {
  6384. return Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(COMMON_ALIGNMENT.concat(['baseline', 'stretch']), str);
  6385. }
  6386. },
  6387. alignH: {
  6388. type: String,
  6389. default: null,
  6390. validator: function validator(str) {
  6391. return Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(COMMON_ALIGNMENT.concat(['between', 'around']), str);
  6392. }
  6393. },
  6394. alignContent: {
  6395. type: String,
  6396. default: null,
  6397. validator: function validator(str) {
  6398. return Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(COMMON_ALIGNMENT.concat(['between', 'around', 'stretch']), str);
  6399. }
  6400. }
  6401. };
  6402. /* harmony default export */ __webpack_exports__["a"] = ({
  6403. functional: true,
  6404. props: props,
  6405. render: function render(h, _ref) {
  6406. var _class;
  6407. var props = _ref.props,
  6408. data = _ref.data,
  6409. children = _ref.children;
  6410. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  6411. staticClass: 'row',
  6412. class: (_class = {
  6413. 'no-gutters': props.noGutters
  6414. }, _defineProperty(_class, 'align-items-' + props.alignV, props.alignV), _defineProperty(_class, 'justify-content-' + props.alignH, props.alignH), _defineProperty(_class, 'align-content-' + props.alignContent, props.alignContent), _class)
  6415. }), children);
  6416. }
  6417. });
  6418. /***/ }),
  6419. /***/ "./node_modules/bootstrap-vue/es/components/link/index.js":
  6420. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6421. "use strict";
  6422. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
  6423. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  6424. var components = {
  6425. bLink: __WEBPACK_IMPORTED_MODULE_0__link__["a" /* default */]
  6426. };
  6427. var VuePlugin = {
  6428. install: function install(Vue) {
  6429. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  6430. }
  6431. };
  6432. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  6433. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  6434. /***/ }),
  6435. /***/ "./node_modules/bootstrap-vue/es/components/link/link.js":
  6436. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6437. "use strict";
  6438. /* harmony export (immutable) */ __webpack_exports__["c"] = propsFactory;
  6439. /* unused harmony export props */
  6440. /* harmony export (immutable) */ __webpack_exports__["b"] = pickLinkProps;
  6441. /* unused harmony export omitLinkProps */
  6442. /* unused harmony export computed */
  6443. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  6444. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  6445. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6446. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  6447. /**
  6448. * The Link component is used in many other BV components.
  6449. * As such, sharing its props makes supporting all its features easier.
  6450. * However, some components need to modify the defaults for their own purpose.
  6451. * Prefer sharing a fresh copy of the props to ensure mutations
  6452. * do not affect other component references to the props.
  6453. *
  6454. * https://github.com/vuejs/vue-router/blob/dev/src/components/link.js
  6455. * @return {{}}
  6456. */
  6457. function propsFactory() {
  6458. return {
  6459. href: {
  6460. type: String,
  6461. default: null
  6462. },
  6463. rel: {
  6464. type: String,
  6465. default: null
  6466. },
  6467. target: {
  6468. type: String,
  6469. default: '_self'
  6470. },
  6471. active: {
  6472. type: Boolean,
  6473. default: false
  6474. },
  6475. activeClass: {
  6476. type: String,
  6477. default: 'active'
  6478. },
  6479. append: {
  6480. type: Boolean,
  6481. default: false
  6482. },
  6483. disabled: {
  6484. type: Boolean,
  6485. default: false
  6486. },
  6487. event: {
  6488. type: [String, Array],
  6489. default: 'click'
  6490. },
  6491. exact: {
  6492. type: Boolean,
  6493. default: false
  6494. },
  6495. exactActiveClass: {
  6496. type: String,
  6497. default: 'active'
  6498. },
  6499. replace: {
  6500. type: Boolean,
  6501. default: false
  6502. },
  6503. routerTag: {
  6504. type: String,
  6505. default: 'a'
  6506. },
  6507. to: {
  6508. type: [String, Object],
  6509. default: null
  6510. }
  6511. };
  6512. }
  6513. var props = propsFactory();
  6514. function pickLinkProps(propsToPick) {
  6515. var freshLinkProps = propsFactory();
  6516. // Normalize everything to array.
  6517. propsToPick = Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["b" /* concat */])(propsToPick);
  6518. return Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(freshLinkProps).reduce(function (memo, prop) {
  6519. if (Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(propsToPick, prop)) {
  6520. memo[prop] = freshLinkProps[prop];
  6521. }
  6522. return memo;
  6523. }, {});
  6524. }
  6525. function omitLinkProps(propsToOmit) {
  6526. var freshLinkProps = propsFactory();
  6527. // Normalize everything to array.
  6528. propsToOmit = Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["b" /* concat */])(propsToOmit);
  6529. return Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(props).reduce(function (memo, prop) {
  6530. if (!Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(propsToOmit, prop)) {
  6531. memo[prop] = freshLinkProps[prop];
  6532. }
  6533. return memo;
  6534. }, {});
  6535. }
  6536. var computed = {
  6537. linkProps: function linkProps() {
  6538. var linkProps = {};
  6539. var propKeys = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(props);
  6540. for (var i = 0; i < propKeys.length; i++) {
  6541. var prop = propKeys[i];
  6542. // Computed Vue getters are bound to the instance.
  6543. linkProps[prop] = this[prop];
  6544. }
  6545. return linkProps;
  6546. }
  6547. };
  6548. function computeTag(props, parent) {
  6549. return Boolean(parent.$router) && props.to && !props.disabled ? 'router-link' : 'a';
  6550. }
  6551. function computeHref(_ref, tag) {
  6552. var disabled = _ref.disabled,
  6553. href = _ref.href,
  6554. to = _ref.to;
  6555. // We've already checked the parent.$router in computeTag,
  6556. // so router-link means live router.
  6557. // When deferring to Vue Router's router-link,
  6558. // don't use the href attr at all.
  6559. // Must return undefined for router-link to populate href.
  6560. if (tag === 'router-link') return void 0;
  6561. // If href explicitly provided
  6562. if (href) return href;
  6563. // Reconstruct href when `to` used, but no router
  6564. if (to) {
  6565. // Fallback to `to` prop (if `to` is a string)
  6566. if (typeof to === 'string') return to;
  6567. // Fallback to `to.path` prop (if `to` is an object)
  6568. if ((typeof to === 'undefined' ? 'undefined' : _typeof(to)) === 'object' && typeof to.path === 'string') return to.path;
  6569. }
  6570. // If nothing is provided use '#'
  6571. return '#';
  6572. }
  6573. function computeRel(_ref2) {
  6574. var target = _ref2.target,
  6575. rel = _ref2.rel;
  6576. if (target === '_blank' && rel === null) {
  6577. return 'noopener';
  6578. }
  6579. return rel || null;
  6580. }
  6581. function clickHandlerFactory(_ref3) {
  6582. var disabled = _ref3.disabled,
  6583. tag = _ref3.tag,
  6584. href = _ref3.href,
  6585. suppliedHandler = _ref3.suppliedHandler,
  6586. parent = _ref3.parent;
  6587. var isRouterLink = tag === 'router-link';
  6588. return function onClick(e) {
  6589. if (disabled && e instanceof Event) {
  6590. // Stop event from bubbling up.
  6591. e.stopPropagation();
  6592. // Kill the event loop attached to this specific EventTarget.
  6593. e.stopImmediatePropagation();
  6594. } else {
  6595. parent.$root.$emit('clicked::link', e);
  6596. if (isRouterLink && e.target.__vue__) {
  6597. e.target.__vue__.$emit('click', e);
  6598. }
  6599. if (typeof suppliedHandler === 'function') {
  6600. suppliedHandler.apply(undefined, arguments);
  6601. }
  6602. }
  6603. if (!isRouterLink && href === '#' || disabled) {
  6604. // Stop scroll-to-top behavior or navigation.
  6605. e.preventDefault();
  6606. }
  6607. };
  6608. }
  6609. /* harmony default export */ __webpack_exports__["a"] = ({
  6610. functional: true,
  6611. props: propsFactory(),
  6612. render: function render(h, _ref4) {
  6613. var props = _ref4.props,
  6614. data = _ref4.data,
  6615. parent = _ref4.parent,
  6616. children = _ref4.children;
  6617. var tag = computeTag(props, parent);
  6618. var rel = computeRel(props);
  6619. var href = computeHref(props, tag);
  6620. var eventType = tag === 'router-link' ? 'nativeOn' : 'on';
  6621. var suppliedHandler = (data[eventType] || {}).click;
  6622. var handlers = { click: clickHandlerFactory({ tag: tag, href: href, disabled: props.disabled, suppliedHandler: suppliedHandler, parent: parent }) };
  6623. var componentData = Object(__WEBPACK_IMPORTED_MODULE_2_vue_functional_data_merge__["a" /* mergeData */])(data, {
  6624. class: [props.active ? props.exact ? props.exactActiveClass : props.activeClass : null, { disabled: props.disabled }],
  6625. attrs: {
  6626. rel: rel,
  6627. href: href,
  6628. target: props.target,
  6629. tabindex: props.disabled ? '-1' : data.attrs ? data.attrs.tabindex : null,
  6630. 'aria-disabled': tag === 'a' && props.disabled ? 'true' : null
  6631. },
  6632. props: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])(props, { tag: props.routerTag })
  6633. });
  6634. // If href prop exists on router-link (even undefined or null) it fails working on SSR
  6635. if (!componentData.attrs.href) {
  6636. delete componentData.attrs.href;
  6637. }
  6638. // We want to overwrite any click handler since our callback
  6639. // will invoke the supplied handler if !props.disabled
  6640. componentData[eventType] = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])(componentData[eventType] || {}, handlers);
  6641. return h(tag, componentData, children);
  6642. }
  6643. });
  6644. /***/ }),
  6645. /***/ "./node_modules/bootstrap-vue/es/components/list-group/index.js":
  6646. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6647. "use strict";
  6648. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__list_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/list-group/list-group.js");
  6649. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__list_group_item__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/list-group/list-group-item.js");
  6650. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  6651. var components = {
  6652. bListGroup: __WEBPACK_IMPORTED_MODULE_0__list_group__["a" /* default */],
  6653. bListGroupItem: __WEBPACK_IMPORTED_MODULE_1__list_group_item__["a" /* default */]
  6654. };
  6655. var VuePlugin = {
  6656. install: function install(Vue) {
  6657. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
  6658. }
  6659. };
  6660. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  6661. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  6662. /***/ }),
  6663. /***/ "./node_modules/bootstrap-vue/es/components/list-group/list-group-item.js":
  6664. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6665. "use strict";
  6666. /* unused harmony export props */
  6667. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6668. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
  6669. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  6670. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  6671. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
  6672. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  6673. var actionTags = ['a', 'router-link', 'button', 'b-link'];
  6674. var linkProps = Object(__WEBPACK_IMPORTED_MODULE_4__link_link__["c" /* propsFactory */])();
  6675. delete linkProps.href.default;
  6676. delete linkProps.to.default;
  6677. var props = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])({
  6678. tag: {
  6679. type: String,
  6680. default: 'div'
  6681. },
  6682. action: {
  6683. type: Boolean,
  6684. default: null
  6685. },
  6686. button: {
  6687. type: Boolean,
  6688. default: null
  6689. },
  6690. variant: {
  6691. type: String,
  6692. default: null
  6693. }
  6694. }, linkProps);
  6695. /* harmony default export */ __webpack_exports__["a"] = ({
  6696. functional: true,
  6697. props: props,
  6698. render: function render(h, _ref) {
  6699. var _class;
  6700. var props = _ref.props,
  6701. data = _ref.data,
  6702. children = _ref.children;
  6703. var tag = props.button ? 'button' : !props.href && !props.to ? props.tag : __WEBPACK_IMPORTED_MODULE_4__link_link__["a" /* default */];
  6704. var isAction = Boolean(props.href || props.to || props.action || props.button || Object(__WEBPACK_IMPORTED_MODULE_3__utils_array__["a" /* arrayIncludes */])(actionTags, props.tag));
  6705. var componentData = {
  6706. staticClass: 'list-group-item',
  6707. class: (_class = {}, _defineProperty(_class, 'list-group-item-' + props.variant, Boolean(props.variant)), _defineProperty(_class, 'list-group-item-action', isAction), _defineProperty(_class, 'active', props.active), _defineProperty(_class, 'disabled', props.disabled), _class),
  6708. attrs: tag === 'button' && props.disabled ? { disabled: true } : {},
  6709. props: props.button ? {} : Object(__WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__["a" /* default */])(linkProps, props)
  6710. };
  6711. return h(tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), children);
  6712. }
  6713. });
  6714. /***/ }),
  6715. /***/ "./node_modules/bootstrap-vue/es/components/list-group/list-group.js":
  6716. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6717. "use strict";
  6718. /* unused harmony export props */
  6719. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6720. var props = {
  6721. tag: {
  6722. type: String,
  6723. default: 'div'
  6724. },
  6725. flush: {
  6726. type: Boolean,
  6727. default: false
  6728. }
  6729. };
  6730. /* harmony default export */ __webpack_exports__["a"] = ({
  6731. functional: true,
  6732. props: props,
  6733. render: function render(h, _ref) {
  6734. var props = _ref.props,
  6735. data = _ref.data,
  6736. children = _ref.children;
  6737. var componentData = {
  6738. staticClass: 'list-group',
  6739. class: { 'list-group-flush': props.flush }
  6740. };
  6741. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), children);
  6742. }
  6743. });
  6744. /***/ }),
  6745. /***/ "./node_modules/bootstrap-vue/es/components/media/index.js":
  6746. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6747. "use strict";
  6748. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__media__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/media.js");
  6749. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__media_aside__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/media-aside.js");
  6750. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__media_body__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/media-body.js");
  6751. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  6752. var components = {
  6753. bMedia: __WEBPACK_IMPORTED_MODULE_0__media__["a" /* default */],
  6754. bMediaAside: __WEBPACK_IMPORTED_MODULE_1__media_aside__["a" /* default */],
  6755. bMediaBody: __WEBPACK_IMPORTED_MODULE_2__media_body__["a" /* default */]
  6756. };
  6757. var VuePlugin = {
  6758. install: function install(Vue) {
  6759. Object(__WEBPACK_IMPORTED_MODULE_3__utils_plugins__["a" /* registerComponents */])(Vue, components);
  6760. }
  6761. };
  6762. Object(__WEBPACK_IMPORTED_MODULE_3__utils_plugins__["c" /* vueUse */])(VuePlugin);
  6763. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  6764. /***/ }),
  6765. /***/ "./node_modules/bootstrap-vue/es/components/media/media-aside.js":
  6766. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6767. "use strict";
  6768. /* unused harmony export props */
  6769. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6770. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  6771. var props = {
  6772. tag: {
  6773. type: String,
  6774. default: 'div'
  6775. },
  6776. verticalAlign: {
  6777. type: String,
  6778. default: 'top'
  6779. }
  6780. };
  6781. /* harmony default export */ __webpack_exports__["a"] = ({
  6782. functional: true,
  6783. props: props,
  6784. render: function render(h, _ref) {
  6785. var props = _ref.props,
  6786. data = _ref.data,
  6787. children = _ref.children;
  6788. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  6789. staticClass: 'd-flex',
  6790. class: _defineProperty({}, 'align-self-' + props.verticalAlign, props.verticalAlign)
  6791. }), children);
  6792. }
  6793. });
  6794. /***/ }),
  6795. /***/ "./node_modules/bootstrap-vue/es/components/media/media-body.js":
  6796. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6797. "use strict";
  6798. /* unused harmony export props */
  6799. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6800. var props = {
  6801. tag: {
  6802. type: String,
  6803. default: 'div'
  6804. }
  6805. };
  6806. /* harmony default export */ __webpack_exports__["a"] = ({
  6807. functional: true,
  6808. props: props,
  6809. render: function render(h, _ref) {
  6810. var props = _ref.props,
  6811. data = _ref.data,
  6812. children = _ref.children;
  6813. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  6814. staticClass: 'media-body'
  6815. }), children);
  6816. }
  6817. });
  6818. /***/ }),
  6819. /***/ "./node_modules/bootstrap-vue/es/components/media/media.js":
  6820. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6821. "use strict";
  6822. /* unused harmony export props */
  6823. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  6824. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__media_body__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/media-body.js");
  6825. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__media_aside__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/media-aside.js");
  6826. var props = {
  6827. tag: {
  6828. type: String,
  6829. default: 'div'
  6830. },
  6831. rightAlign: {
  6832. type: Boolean,
  6833. default: false
  6834. },
  6835. verticalAlign: {
  6836. type: String,
  6837. default: 'top'
  6838. },
  6839. noBody: {
  6840. type: Boolean,
  6841. default: false
  6842. }
  6843. };
  6844. /* harmony default export */ __webpack_exports__["a"] = ({
  6845. functional: true,
  6846. props: props,
  6847. render: function render(h, _ref) {
  6848. var props = _ref.props,
  6849. data = _ref.data,
  6850. slots = _ref.slots,
  6851. children = _ref.children;
  6852. var childNodes = props.noBody ? children : [];
  6853. var $slots = slots();
  6854. if (!props.noBody) {
  6855. if ($slots.aside && !props.rightAlign) {
  6856. childNodes.push(h(__WEBPACK_IMPORTED_MODULE_2__media_aside__["a" /* default */], { staticClass: 'mr-3', props: { verticalAlign: props.verticalAlign } }, $slots.aside));
  6857. }
  6858. childNodes.push(h(__WEBPACK_IMPORTED_MODULE_1__media_body__["a" /* default */], $slots.default));
  6859. if ($slots.aside && props.rightAlign) {
  6860. childNodes.push(h(__WEBPACK_IMPORTED_MODULE_2__media_aside__["a" /* default */], { staticClass: 'ml-3', props: { verticalAlign: props.verticalAlign } }, $slots.aside));
  6861. }
  6862. }
  6863. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { staticClass: 'media' }), childNodes);
  6864. }
  6865. });
  6866. /***/ }),
  6867. /***/ "./node_modules/bootstrap-vue/es/components/modal/index.js":
  6868. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6869. "use strict";
  6870. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__modal__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/modal/modal.js");
  6871. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives_modal__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/modal/index.js");
  6872. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  6873. var components = {
  6874. bModal: __WEBPACK_IMPORTED_MODULE_0__modal__["a" /* default */]
  6875. };
  6876. var VuePlugin = {
  6877. install: function install(Vue) {
  6878. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
  6879. Vue.use(__WEBPACK_IMPORTED_MODULE_1__directives_modal__["a" /* default */]);
  6880. }
  6881. };
  6882. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  6883. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  6884. /***/ }),
  6885. /***/ "./node_modules/bootstrap-vue/es/components/modal/modal.js":
  6886. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6887. "use strict";
  6888. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button_button__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button.js");
  6889. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__button_button_close__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button-close.js");
  6890. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  6891. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_listen_on_root__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js");
  6892. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_observe_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js");
  6893. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  6894. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
  6895. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_bv_event_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/bv-event.class.js");
  6896. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  6897. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  6898. // Selectors for padding/margin adjustments
  6899. var Selector = {
  6900. FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
  6901. STICKY_CONTENT: '.sticky-top',
  6902. NAVBAR_TOGGLER: '.navbar-toggler'
  6903. // ObserveDom config
  6904. };var OBSERVER_CONFIG = {
  6905. subtree: true,
  6906. childList: true,
  6907. characterData: true,
  6908. attributes: true,
  6909. attributeFilter: ['style', 'class']
  6910. };
  6911. /* harmony default export */ __webpack_exports__["a"] = ({
  6912. mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_listen_on_root__["a" /* default */]],
  6913. components: { bBtn: __WEBPACK_IMPORTED_MODULE_0__button_button__["a" /* default */], bBtnClose: __WEBPACK_IMPORTED_MODULE_1__button_button_close__["a" /* default */] },
  6914. render: function render(h) {
  6915. var _this = this;
  6916. var $slots = this.$slots;
  6917. // Modal Header
  6918. var header = h(false);
  6919. if (!this.hideHeader) {
  6920. var modalHeader = $slots['modal-header'];
  6921. if (!modalHeader) {
  6922. var closeButton = h(false);
  6923. if (!this.hideHeaderClose) {
  6924. closeButton = h('b-btn-close', {
  6925. props: {
  6926. disabled: this.is_transitioning,
  6927. ariaLabel: this.headerCloseLabel,
  6928. textVariant: this.headerTextVariant
  6929. },
  6930. on: {
  6931. click: function click(evt) {
  6932. _this.hide('header-close');
  6933. }
  6934. }
  6935. }, [$slots['modal-header-close']]);
  6936. }
  6937. modalHeader = [h(this.titleTag, { class: ['modal-title'] }, [$slots['modal-title'] || this.title]), closeButton];
  6938. }
  6939. header = h('header', {
  6940. ref: 'header',
  6941. class: this.headerClasses,
  6942. attrs: { id: this.safeId('__BV_modal_header_') }
  6943. }, [modalHeader]);
  6944. }
  6945. // Modal Body
  6946. var body = h('div', {
  6947. ref: 'body',
  6948. class: this.bodyClasses,
  6949. attrs: { id: this.safeId('__BV_modal_body_') }
  6950. }, [$slots.default]);
  6951. // Modal Footer
  6952. var footer = h(false);
  6953. if (!this.hideFooter) {
  6954. var modalFooter = $slots['modal-footer'];
  6955. if (!modalFooter) {
  6956. var cancelButton = h(false);
  6957. if (!this.okOnly) {
  6958. cancelButton = h('b-btn', {
  6959. props: {
  6960. variant: this.cancelVariant,
  6961. size: this.buttonSize,
  6962. disabled: this.cancelDisabled || this.busy || this.is_transitioning
  6963. },
  6964. on: {
  6965. click: function click(evt) {
  6966. _this.hide('cancel');
  6967. }
  6968. }
  6969. }, [$slots['modal-cancel'] || this.cancelTitle]);
  6970. }
  6971. var okButton = h('b-btn', {
  6972. props: {
  6973. variant: this.okVariant,
  6974. size: this.buttonSize,
  6975. disabled: this.okDisabled || this.busy || this.is_transitioning
  6976. },
  6977. on: {
  6978. click: function click(evt) {
  6979. _this.hide('ok');
  6980. }
  6981. }
  6982. }, [$slots['modal-ok'] || this.okTitle]);
  6983. modalFooter = [cancelButton, okButton];
  6984. }
  6985. footer = h('footer', {
  6986. ref: 'footer',
  6987. class: this.footerClasses,
  6988. attrs: { id: this.safeId('__BV_modal_footer_') }
  6989. }, [modalFooter]);
  6990. }
  6991. // Assemble Modal Content
  6992. var modalContent = h('div', {
  6993. ref: 'content',
  6994. class: ['modal-content'],
  6995. attrs: {
  6996. tabindex: '-1',
  6997. role: 'document',
  6998. 'aria-labelledby': this.hideHeader ? null : this.safeId('__BV_modal_header_'),
  6999. 'aria-describedby': this.safeId('__BV_modal_body_')
  7000. },
  7001. on: {
  7002. focusout: this.onFocusout,
  7003. click: function click(evt) {
  7004. evt.stopPropagation();
  7005. // https://github.com/bootstrap-vue/bootstrap-vue/issues/1528
  7006. _this.$root.$emit('bv::dropdown::shown');
  7007. }
  7008. }
  7009. }, [header, body, footer]);
  7010. // Modal Dialog wrapper
  7011. var modalDialog = h('div', { class: this.dialogClasses }, [modalContent]);
  7012. // Modal
  7013. var modal = h('div', {
  7014. ref: 'modal',
  7015. class: this.modalClasses,
  7016. directives: [{
  7017. name: 'show',
  7018. rawName: 'v-show',
  7019. value: this.is_visible,
  7020. expression: 'is_visible'
  7021. }],
  7022. attrs: {
  7023. id: this.safeId(),
  7024. role: 'dialog',
  7025. 'aria-hidden': this.is_visible ? null : 'true'
  7026. },
  7027. on: {
  7028. click: this.onClickOut,
  7029. keydown: this.onEsc
  7030. }
  7031. }, [modalDialog]);
  7032. // Wrap modal in transition
  7033. modal = h('transition', {
  7034. props: {
  7035. enterClass: '',
  7036. enterToClass: '',
  7037. enterActiveClass: '',
  7038. leaveClass: '',
  7039. leaveActiveClass: '',
  7040. leaveToClass: ''
  7041. },
  7042. on: {
  7043. 'before-enter': this.onBeforeEnter,
  7044. enter: this.onEnter,
  7045. 'after-enter': this.onAfterEnter,
  7046. 'before-leave': this.onBeforeLeave,
  7047. leave: this.onLeave,
  7048. 'after-leave': this.onAfterLeave
  7049. }
  7050. }, [modal]);
  7051. // Modal Backdrop
  7052. var backdrop = h(false);
  7053. if (!this.hideBackdrop && (this.is_visible || this.is_transitioning)) {
  7054. backdrop = h('div', {
  7055. class: this.backdropClasses,
  7056. attrs: { id: this.safeId('__BV_modal_backdrop_') }
  7057. });
  7058. }
  7059. // Assemble modal and backdrop
  7060. var outer = h(false);
  7061. if (!this.is_hidden) {
  7062. outer = h('div', { attrs: { id: this.safeId('__BV_modal_outer_') } }, [modal, backdrop]);
  7063. }
  7064. // Wrap in DIV to maintain thi.$el reference for hide/show method aceess
  7065. return h('div', {}, [outer]);
  7066. },
  7067. data: function data() {
  7068. return {
  7069. is_hidden: this.lazy || false,
  7070. is_visible: false,
  7071. is_transitioning: false,
  7072. is_show: false,
  7073. is_block: false,
  7074. scrollbarWidth: 0,
  7075. isBodyOverflowing: false,
  7076. return_focus: this.returnFocus || null
  7077. };
  7078. },
  7079. model: {
  7080. prop: 'visible',
  7081. event: 'change'
  7082. },
  7083. props: {
  7084. title: {
  7085. type: String,
  7086. default: ''
  7087. },
  7088. titleTag: {
  7089. type: String,
  7090. default: 'h5'
  7091. },
  7092. size: {
  7093. type: String,
  7094. default: 'md'
  7095. },
  7096. centered: {
  7097. type: Boolean,
  7098. default: false
  7099. },
  7100. buttonSize: {
  7101. type: String,
  7102. default: ''
  7103. },
  7104. noFade: {
  7105. type: Boolean,
  7106. default: false
  7107. },
  7108. noCloseOnBackdrop: {
  7109. type: Boolean,
  7110. default: false
  7111. },
  7112. noCloseOnEsc: {
  7113. type: Boolean,
  7114. default: false
  7115. },
  7116. noEnforceFocus: {
  7117. type: Boolean,
  7118. default: false
  7119. },
  7120. headerBgVariant: {
  7121. type: String,
  7122. default: null
  7123. },
  7124. headerBorderVariant: {
  7125. type: String,
  7126. default: null
  7127. },
  7128. headerTextVariant: {
  7129. type: String,
  7130. default: null
  7131. },
  7132. headerClass: {
  7133. type: [String, Array],
  7134. default: null
  7135. },
  7136. bodyBgVariant: {
  7137. type: String,
  7138. default: null
  7139. },
  7140. bodyTextVariant: {
  7141. type: String,
  7142. default: null
  7143. },
  7144. modalClass: {
  7145. type: [String, Array],
  7146. default: null
  7147. },
  7148. bodyClass: {
  7149. type: [String, Array],
  7150. default: null
  7151. },
  7152. footerBgVariant: {
  7153. type: String,
  7154. default: null
  7155. },
  7156. footerBorderVariant: {
  7157. type: String,
  7158. default: null
  7159. },
  7160. footerTextVariant: {
  7161. type: String,
  7162. default: null
  7163. },
  7164. footerClass: {
  7165. type: [String, Array],
  7166. default: null
  7167. },
  7168. hideHeader: {
  7169. type: Boolean,
  7170. default: false
  7171. },
  7172. hideFooter: {
  7173. type: Boolean,
  7174. default: false
  7175. },
  7176. hideHeaderClose: {
  7177. type: Boolean,
  7178. default: false
  7179. },
  7180. hideBackdrop: {
  7181. type: Boolean,
  7182. default: false
  7183. },
  7184. okOnly: {
  7185. type: Boolean,
  7186. default: false
  7187. },
  7188. okDisabled: {
  7189. type: Boolean,
  7190. default: false
  7191. },
  7192. cancelDisabled: {
  7193. type: Boolean,
  7194. default: false
  7195. },
  7196. visible: {
  7197. type: Boolean,
  7198. default: false
  7199. },
  7200. returnFocus: {
  7201. default: null
  7202. },
  7203. headerCloseLabel: {
  7204. type: String,
  7205. default: 'Close'
  7206. },
  7207. cancelTitle: {
  7208. type: String,
  7209. default: 'Cancel'
  7210. },
  7211. okTitle: {
  7212. type: String,
  7213. default: 'OK'
  7214. },
  7215. cancelVariant: {
  7216. type: String,
  7217. default: 'secondary'
  7218. },
  7219. okVariant: {
  7220. type: String,
  7221. default: 'primary'
  7222. },
  7223. lazy: {
  7224. type: Boolean,
  7225. default: false
  7226. },
  7227. busy: {
  7228. type: Boolean,
  7229. default: false
  7230. }
  7231. },
  7232. computed: {
  7233. modalClasses: function modalClasses() {
  7234. return ['modal', {
  7235. fade: !this.noFade,
  7236. show: this.is_show,
  7237. 'd-block': this.is_block
  7238. }, this.modalClass];
  7239. },
  7240. dialogClasses: function dialogClasses() {
  7241. var _ref;
  7242. return ['modal-dialog', (_ref = {}, _defineProperty(_ref, 'modal-' + this.size, Boolean(this.size)), _defineProperty(_ref, 'modal-dialog-centered', this.centered), _ref)];
  7243. },
  7244. backdropClasses: function backdropClasses() {
  7245. return ['modal-backdrop', {
  7246. fade: !this.noFade,
  7247. show: this.is_show || this.noFade
  7248. }];
  7249. },
  7250. headerClasses: function headerClasses() {
  7251. var _ref2;
  7252. return ['modal-header', (_ref2 = {}, _defineProperty(_ref2, 'bg-' + this.headerBgVariant, Boolean(this.headerBgVariant)), _defineProperty(_ref2, 'text-' + this.headerTextVariant, Boolean(this.headerTextVariant)), _defineProperty(_ref2, 'border-' + this.headerBorderVariant, Boolean(this.headerBorderVariant)), _ref2), this.headerClass];
  7253. },
  7254. bodyClasses: function bodyClasses() {
  7255. var _ref3;
  7256. return ['modal-body', (_ref3 = {}, _defineProperty(_ref3, 'bg-' + this.bodyBgVariant, Boolean(this.bodyBgVariant)), _defineProperty(_ref3, 'text-' + this.bodyTextVariant, Boolean(this.bodyTextVariant)), _ref3), this.bodyClass];
  7257. },
  7258. footerClasses: function footerClasses() {
  7259. var _ref4;
  7260. return ['modal-footer', (_ref4 = {}, _defineProperty(_ref4, 'bg-' + this.footerBgVariant, Boolean(this.footerBgVariant)), _defineProperty(_ref4, 'text-' + this.footerTextVariant, Boolean(this.footerTextVariant)), _defineProperty(_ref4, 'border-' + this.footerBorderVariant, Boolean(this.footerBorderVariant)), _ref4), this.footerClass];
  7261. }
  7262. },
  7263. watch: {
  7264. visible: function visible(newVal, oldVal) {
  7265. if (newVal === oldVal) {
  7266. return;
  7267. }
  7268. this[newVal ? 'show' : 'hide']();
  7269. }
  7270. },
  7271. methods: {
  7272. // Public Methods
  7273. show: function show() {
  7274. if (this.is_visible) {
  7275. return;
  7276. }
  7277. var showEvt = new __WEBPACK_IMPORTED_MODULE_7__utils_bv_event_class__["a" /* default */]('show', {
  7278. cancelable: true,
  7279. vueTarget: this,
  7280. target: this.$refs.modal,
  7281. relatedTarget: null
  7282. });
  7283. this.emitEvent(showEvt);
  7284. if (showEvt.defaultPrevented || this.is_visible) {
  7285. // Don't show if canceled
  7286. return;
  7287. }
  7288. if (Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["j" /* hasClass */])(document.body, 'modal-open')) {
  7289. // If another modal is already open, wait for it to close
  7290. this.$root.$once('bv::modal::hidden', this.doShow);
  7291. } else {
  7292. // Show the modal
  7293. this.doShow();
  7294. }
  7295. },
  7296. hide: function hide(trigger) {
  7297. if (!this.is_visible) {
  7298. return;
  7299. }
  7300. var hideEvt = new __WEBPACK_IMPORTED_MODULE_7__utils_bv_event_class__["a" /* default */]('hide', {
  7301. cancelable: true,
  7302. vueTarget: this,
  7303. target: this.$refs.modal,
  7304. // this could be the trigger element/component reference
  7305. relatedTarget: null,
  7306. isOK: trigger || null,
  7307. trigger: trigger || null,
  7308. cancel: function cancel() {
  7309. // Backwards compatibility
  7310. Object(__WEBPACK_IMPORTED_MODULE_5__utils_warn__["a" /* default */])('b-modal: evt.cancel() is deprecated. Please use evt.preventDefault().');
  7311. this.preventDefault();
  7312. }
  7313. });
  7314. if (trigger === 'ok') {
  7315. this.$emit('ok', hideEvt);
  7316. } else if (trigger === 'cancel') {
  7317. this.$emit('cancel', hideEvt);
  7318. }
  7319. this.emitEvent(hideEvt);
  7320. // Hide if not canceled
  7321. if (hideEvt.defaultPrevented || !this.is_visible) {
  7322. return;
  7323. }
  7324. // stop observing for content changes
  7325. if (this._observer) {
  7326. this._observer.disconnect();
  7327. this._observer = null;
  7328. }
  7329. this.is_visible = false;
  7330. this.$emit('change', false);
  7331. },
  7332. // Private method to finish showing modal
  7333. doShow: function doShow() {
  7334. var _this2 = this;
  7335. // Plce modal in DOM if lazy
  7336. this.is_hidden = false;
  7337. this.$nextTick(function () {
  7338. // We do this in nextTick to ensure the modal is in DOM first before we show it
  7339. _this2.is_visible = true;
  7340. _this2.$emit('change', true);
  7341. // Observe changes in modal content and adjust if necessary
  7342. _this2._observer = Object(__WEBPACK_IMPORTED_MODULE_4__utils_observe_dom__["a" /* default */])(_this2.$refs.content, _this2.adjustDialog.bind(_this2), OBSERVER_CONFIG);
  7343. });
  7344. },
  7345. // Transition Handlers
  7346. onBeforeEnter: function onBeforeEnter() {
  7347. this.is_transitioning = true;
  7348. this.checkScrollbar();
  7349. this.setScrollbar();
  7350. this.adjustDialog();
  7351. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["a" /* addClass */])(document.body, 'modal-open');
  7352. this.setResizeEvent(true);
  7353. },
  7354. onEnter: function onEnter() {
  7355. this.is_block = true;
  7356. this.$refs.modal.scrollTop = 0;
  7357. },
  7358. onAfterEnter: function onAfterEnter() {
  7359. var _this3 = this;
  7360. this.is_show = true;
  7361. this.is_transitioning = false;
  7362. this.$nextTick(function () {
  7363. _this3.focusFirst();
  7364. var shownEvt = new __WEBPACK_IMPORTED_MODULE_7__utils_bv_event_class__["a" /* default */]('shown', {
  7365. cancelable: false,
  7366. vueTarget: _this3,
  7367. target: _this3.$refs.modal,
  7368. relatedTarget: null
  7369. });
  7370. _this3.emitEvent(shownEvt);
  7371. });
  7372. },
  7373. onBeforeLeave: function onBeforeLeave() {
  7374. this.is_transitioning = true;
  7375. this.setResizeEvent(false);
  7376. },
  7377. onLeave: function onLeave() {
  7378. // Remove the 'show' class
  7379. this.is_show = false;
  7380. },
  7381. onAfterLeave: function onAfterLeave() {
  7382. var _this4 = this;
  7383. this.is_block = false;
  7384. this.resetAdjustments();
  7385. this.resetScrollbar();
  7386. this.is_transitioning = false;
  7387. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["s" /* removeClass */])(document.body, 'modal-open');
  7388. this.$nextTick(function () {
  7389. _this4.is_hidden = _this4.lazy || false;
  7390. _this4.returnFocusTo();
  7391. var hiddenEvt = new __WEBPACK_IMPORTED_MODULE_7__utils_bv_event_class__["a" /* default */]('hidden', {
  7392. cancelable: false,
  7393. vueTarget: _this4,
  7394. target: _this4.lazy ? null : _this4.$refs.modal,
  7395. relatedTarget: null
  7396. });
  7397. _this4.emitEvent(hiddenEvt);
  7398. });
  7399. },
  7400. // Event emitter
  7401. emitEvent: function emitEvent(bvEvt) {
  7402. var type = bvEvt.type;
  7403. this.$emit(type, bvEvt);
  7404. this.$root.$emit('bv::modal::' + type, bvEvt);
  7405. },
  7406. // UI Event Handlers
  7407. onClickOut: function onClickOut(evt) {
  7408. // If backdrop clicked, hide modal
  7409. if (this.is_visible && !this.noCloseOnBackdrop) {
  7410. this.hide('backdrop');
  7411. }
  7412. },
  7413. onEsc: function onEsc(evt) {
  7414. // If ESC pressed, hide modal
  7415. if (evt.keyCode === __WEBPACK_IMPORTED_MODULE_6__utils_key_codes__["a" /* default */].ESC && this.is_visible && !this.noCloseOnEsc) {
  7416. this.hide('esc');
  7417. }
  7418. },
  7419. onFocusout: function onFocusout(evt) {
  7420. // If focus leaves modal, bring it back
  7421. // 'focusout' Event Listener bound on content
  7422. var content = this.$refs.content;
  7423. if (!this.noEnforceFocus && this.is_visible && content && !content.contains(evt.relatedTarget)) {
  7424. content.focus();
  7425. }
  7426. },
  7427. // Resize Listener
  7428. setResizeEvent: function setResizeEvent(on) {
  7429. var _this5 = this;
  7430. ;['resize', 'orientationchange'].forEach(function (evtName) {
  7431. if (on) {
  7432. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["d" /* eventOn */])(window, evtName, _this5.adjustDialog);
  7433. } else {
  7434. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["c" /* eventOff */])(window, evtName, _this5.adjustDialog);
  7435. }
  7436. });
  7437. },
  7438. // Root Listener handlers
  7439. showHandler: function showHandler(id, triggerEl) {
  7440. if (id === this.id) {
  7441. this.return_focus = triggerEl || null;
  7442. this.show();
  7443. }
  7444. },
  7445. hideHandler: function hideHandler(id) {
  7446. if (id === this.id) {
  7447. this.hide();
  7448. }
  7449. },
  7450. modalListener: function modalListener(bvEvt) {
  7451. // If another modal opens, close this one
  7452. if (bvEvt.vueTarget !== this) {
  7453. this.hide();
  7454. }
  7455. },
  7456. // Focus control handlers
  7457. focusFirst: function focusFirst() {
  7458. // Don't try and focus if we are SSR
  7459. if (typeof document === 'undefined') {
  7460. return;
  7461. }
  7462. var content = this.$refs.content;
  7463. var modal = this.$refs.modal;
  7464. var activeElement = document.activeElement;
  7465. if (activeElement && content && content.contains(activeElement)) {
  7466. // If activeElement is child of content, no need to change focus
  7467. } else if (content) {
  7468. if (modal) {
  7469. modal.scrollTop = 0;
  7470. }
  7471. // Focus the modal content wrapper
  7472. content.focus();
  7473. }
  7474. },
  7475. returnFocusTo: function returnFocusTo() {
  7476. // Prefer returnFocus prop over event specified return_focus value
  7477. var el = this.returnFocus || this.return_focus || null;
  7478. if (typeof el === 'string') {
  7479. // CSS Selector
  7480. el = Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["t" /* select */])(el);
  7481. }
  7482. if (el) {
  7483. el = el.$el || el;
  7484. if (Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["m" /* isVisible */])(el)) {
  7485. el.focus();
  7486. }
  7487. }
  7488. },
  7489. // Utility methods
  7490. getScrollbarWidth: function getScrollbarWidth() {
  7491. var scrollDiv = document.createElement('div');
  7492. scrollDiv.className = 'modal-scrollbar-measure';
  7493. document.body.appendChild(scrollDiv);
  7494. this.scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
  7495. document.body.removeChild(scrollDiv);
  7496. },
  7497. adjustDialog: function adjustDialog() {
  7498. if (!this.is_visible) {
  7499. return;
  7500. }
  7501. var modal = this.$refs.modal;
  7502. var isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight;
  7503. if (!this.isBodyOverflowing && isModalOverflowing) {
  7504. modal.style.paddingLeft = this.scrollbarWidth + 'px';
  7505. }
  7506. if (this.isBodyOverflowing && !isModalOverflowing) {
  7507. modal.style.paddingRight = this.scrollbarWidth + 'px';
  7508. }
  7509. },
  7510. resetAdjustments: function resetAdjustments() {
  7511. var modal = this.$refs.modal;
  7512. if (modal) {
  7513. modal.style.paddingLeft = '';
  7514. modal.style.paddingRight = '';
  7515. }
  7516. },
  7517. checkScrollbar: function checkScrollbar() {
  7518. var rect = Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["f" /* getBCR */])(document.body);
  7519. this.isBodyOverflowing = rect.left + rect.right < window.innerWidth;
  7520. },
  7521. setScrollbar: function setScrollbar() {
  7522. if (this.isBodyOverflowing) {
  7523. // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
  7524. // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
  7525. var computedStyle = window.getComputedStyle;
  7526. var body = document.body;
  7527. var scrollbarWidth = this.scrollbarWidth;
  7528. // Adjust fixed content padding
  7529. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(Selector.FIXED_CONTENT).forEach(function (el) {
  7530. var actualPadding = el.style.paddingRight;
  7531. var calculatedPadding = computedStyle(el).paddingRight || 0;
  7532. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["v" /* setAttr */])(el, 'data-padding-right', actualPadding);
  7533. el.style.paddingRight = parseFloat(calculatedPadding) + scrollbarWidth + 'px';
  7534. });
  7535. // Adjust sticky content margin
  7536. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(Selector.STICKY_CONTENT).forEach(function (el) {
  7537. var actualMargin = el.style.marginRight;
  7538. var calculatedMargin = computedStyle(el).marginRight || 0;
  7539. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["v" /* setAttr */])(el, 'data-margin-right', actualMargin);
  7540. el.style.marginRight = parseFloat(calculatedMargin) - scrollbarWidth + 'px';
  7541. });
  7542. // Adjust navbar-toggler margin
  7543. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(Selector.NAVBAR_TOGGLER).forEach(function (el) {
  7544. var actualMargin = el.style.marginRight;
  7545. var calculatedMargin = computedStyle(el).marginRight || 0;
  7546. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["v" /* setAttr */])(el, 'data-margin-right', actualMargin);
  7547. el.style.marginRight = parseFloat(calculatedMargin) + scrollbarWidth + 'px';
  7548. });
  7549. // Adjust body padding
  7550. var actualPadding = body.style.paddingRight;
  7551. var calculatedPadding = computedStyle(body).paddingRight;
  7552. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["v" /* setAttr */])(body, 'data-padding-right', actualPadding);
  7553. body.style.paddingRight = parseFloat(calculatedPadding) + scrollbarWidth + 'px';
  7554. }
  7555. },
  7556. resetScrollbar: function resetScrollbar() {
  7557. // Restore fixed content padding
  7558. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(Selector.FIXED_CONTENT).forEach(function (el) {
  7559. if (Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["i" /* hasAttr */])(el, 'data-padding-right')) {
  7560. el.style.paddingRight = Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["e" /* getAttr */])(el, 'data-padding-right') || '';
  7561. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["r" /* removeAttr */])(el, 'data-padding-right');
  7562. }
  7563. });
  7564. // Restore sticky content and navbar-toggler margin
  7565. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(Selector.STICKY_CONTENT + ', ' + Selector.NAVBAR_TOGGLER).forEach(function (el) {
  7566. if (Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["i" /* hasAttr */])(el, 'data-margin-right')) {
  7567. el.style.marginRight = Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["e" /* getAttr */])(el, 'data-margin-right') || '';
  7568. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["r" /* removeAttr */])(el, 'data-margin-right');
  7569. }
  7570. });
  7571. // Restore body padding
  7572. var body = document.body;
  7573. if (Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["i" /* hasAttr */])(body, 'data-padding-right')) {
  7574. body.style.paddingRight = Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["e" /* getAttr */])(body, 'data-padding-right') || '';
  7575. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["r" /* removeAttr */])(body, 'data-padding-right');
  7576. }
  7577. }
  7578. },
  7579. created: function created() {
  7580. // create non-reactive property
  7581. this._observer = null;
  7582. },
  7583. mounted: function mounted() {
  7584. // Measure scrollbar
  7585. this.getScrollbarWidth();
  7586. // Listen for events from others to either open or close ourselves
  7587. this.listenOnRoot('bv::show::modal', this.showHandler);
  7588. this.listenOnRoot('bv::hide::modal', this.hideHandler);
  7589. // Listen for bv:modal::show events, and close ourselves if the opening modal not us
  7590. this.listenOnRoot('bv::modal::show', this.modalListener);
  7591. // Initially show modal?
  7592. if (this.visible === true) {
  7593. this.show();
  7594. }
  7595. },
  7596. beforeDestroy: function beforeDestroy() {
  7597. // Ensure everything is back to normal
  7598. if (this._observer) {
  7599. this._observer.disconnect();
  7600. this._observer = null;
  7601. }
  7602. this.setResizeEvent(false);
  7603. // Re-adjust body/navbar/fixed padding/margins (if needed)
  7604. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["s" /* removeClass */])(document.body, 'modal-open');
  7605. this.resetAdjustments();
  7606. this.resetScrollbar();
  7607. }
  7608. });
  7609. /***/ }),
  7610. /***/ "./node_modules/bootstrap-vue/es/components/nav/index.js":
  7611. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7612. "use strict";
  7613. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/nav.js");
  7614. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nav_item__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/nav-item.js");
  7615. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nav_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/nav-text.js");
  7616. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__nav_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/nav-form.js");
  7617. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__nav_item_dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/nav-item-dropdown.js");
  7618. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/index.js");
  7619. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  7620. var components = {
  7621. bNav: __WEBPACK_IMPORTED_MODULE_0__nav__["a" /* default */],
  7622. bNavItem: __WEBPACK_IMPORTED_MODULE_1__nav_item__["a" /* default */],
  7623. bNavText: __WEBPACK_IMPORTED_MODULE_2__nav_text__["a" /* default */],
  7624. bNavForm: __WEBPACK_IMPORTED_MODULE_3__nav_form__["a" /* default */],
  7625. bNavItemDropdown: __WEBPACK_IMPORTED_MODULE_4__nav_item_dropdown__["a" /* default */],
  7626. bNavItemDd: __WEBPACK_IMPORTED_MODULE_4__nav_item_dropdown__["a" /* default */],
  7627. bNavDropdown: __WEBPACK_IMPORTED_MODULE_4__nav_item_dropdown__["a" /* default */],
  7628. bNavDd: __WEBPACK_IMPORTED_MODULE_4__nav_item_dropdown__["a" /* default */]
  7629. };
  7630. var VuePlugin = {
  7631. install: function install(Vue) {
  7632. Object(__WEBPACK_IMPORTED_MODULE_6__utils_plugins__["a" /* registerComponents */])(Vue, components);
  7633. Vue.use(__WEBPACK_IMPORTED_MODULE_5__dropdown__["a" /* default */]);
  7634. }
  7635. };
  7636. Object(__WEBPACK_IMPORTED_MODULE_6__utils_plugins__["c" /* vueUse */])(VuePlugin);
  7637. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  7638. /***/ }),
  7639. /***/ "./node_modules/bootstrap-vue/es/components/nav/nav-form.js":
  7640. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7641. "use strict";
  7642. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form.js");
  7643. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  7644. /* harmony default export */ __webpack_exports__["a"] = ({
  7645. functional: true,
  7646. props: {
  7647. id: {
  7648. type: String,
  7649. default: null
  7650. }
  7651. },
  7652. render: function render(h, _ref) {
  7653. var props = _ref.props,
  7654. data = _ref.data,
  7655. children = _ref.children;
  7656. return h(__WEBPACK_IMPORTED_MODULE_0__form_form__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_1_vue_functional_data_merge__["a" /* mergeData */])(data, { attrs: { id: props.id }, props: { inline: true } }), children);
  7657. }
  7658. });
  7659. /***/ }),
  7660. /***/ "./node_modules/bootstrap-vue/es/components/nav/nav-item-dropdown.js":
  7661. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7662. "use strict";
  7663. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  7664. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/dropdown.js");
  7665. /* harmony default export */ __webpack_exports__["a"] = ({
  7666. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_dropdown__["a" /* default */]],
  7667. render: function render(h) {
  7668. var button = h('a', {
  7669. class: this.toggleClasses,
  7670. ref: 'toggle',
  7671. attrs: {
  7672. href: '#',
  7673. id: this.safeId('_BV_button_'),
  7674. disabled: this.disabled,
  7675. 'aria-haspopup': 'true',
  7676. 'aria-expanded': this.visible ? 'true' : 'false'
  7677. },
  7678. on: {
  7679. click: this.toggle,
  7680. keydown: this.toggle // space, enter, down
  7681. }
  7682. }, [this.$slots['button-content'] || this.$slots.text || h('span', { domProps: { innerHTML: this.text } })]);
  7683. var menu = h('div', {
  7684. class: this.menuClasses,
  7685. ref: 'menu',
  7686. attrs: { 'aria-labelledby': this.safeId('_BV_button_') },
  7687. on: {
  7688. mouseover: this.onMouseOver,
  7689. keydown: this.onKeydown // tab, up, down, esc
  7690. }
  7691. }, [this.$slots.default]);
  7692. return h('li', { attrs: { id: this.safeId() }, class: this.dropdownClasses }, [button, menu]);
  7693. },
  7694. computed: {
  7695. isNav: function isNav() {
  7696. // Signal to dropdown mixin that we are in a navbar
  7697. return true;
  7698. },
  7699. dropdownClasses: function dropdownClasses() {
  7700. return ['nav-item', 'b-nav-dropdown', 'dropdown', this.dropup ? 'dropup' : '', this.visible ? 'show' : ''];
  7701. },
  7702. toggleClasses: function toggleClasses() {
  7703. return ['nav-link', this.noCaret ? '' : 'dropdown-toggle', this.disabled ? 'disabled' : '', this.extraToggleClasses ? this.extraToggleClasses : ''];
  7704. },
  7705. menuClasses: function menuClasses() {
  7706. return ['dropdown-menu', this.right ? 'dropdown-menu-right' : 'dropdown-menu-left', this.visible ? 'show' : '', this.extraMenuClasses ? this.extraMenuClasses : ''];
  7707. }
  7708. },
  7709. props: {
  7710. noCaret: {
  7711. type: Boolean,
  7712. default: false
  7713. },
  7714. extraToggleClasses: {
  7715. // Extra Toggle classes
  7716. type: String,
  7717. default: ''
  7718. },
  7719. extraMenuClasses: {
  7720. // Extra Menu classes
  7721. type: String,
  7722. default: ''
  7723. },
  7724. role: {
  7725. type: String,
  7726. default: 'menu'
  7727. }
  7728. }
  7729. });
  7730. /***/ }),
  7731. /***/ "./node_modules/bootstrap-vue/es/components/nav/nav-item.js":
  7732. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7733. "use strict";
  7734. /* unused harmony export props */
  7735. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  7736. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
  7737. var props = Object(__WEBPACK_IMPORTED_MODULE_1__link_link__["c" /* propsFactory */])();
  7738. /* harmony default export */ __webpack_exports__["a"] = ({
  7739. functional: true,
  7740. props: props,
  7741. render: function render(h, _ref) {
  7742. var props = _ref.props,
  7743. data = _ref.data,
  7744. children = _ref.children;
  7745. return h('li', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  7746. staticClass: 'nav-item'
  7747. }), [h(__WEBPACK_IMPORTED_MODULE_1__link_link__["a" /* default */], { staticClass: 'nav-link', props: props }, children)]);
  7748. }
  7749. });
  7750. /***/ }),
  7751. /***/ "./node_modules/bootstrap-vue/es/components/nav/nav-text.js":
  7752. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7753. "use strict";
  7754. /* unused harmony export props */
  7755. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  7756. var props = {
  7757. tag: {
  7758. type: String,
  7759. default: 'span'
  7760. }
  7761. };
  7762. /* harmony default export */ __webpack_exports__["a"] = ({
  7763. functional: true,
  7764. props: props,
  7765. render: function render(h, _ref) {
  7766. var props = _ref.props,
  7767. data = _ref.data,
  7768. children = _ref.children;
  7769. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { staticClass: 'navbar-text' }), children);
  7770. }
  7771. });
  7772. /***/ }),
  7773. /***/ "./node_modules/bootstrap-vue/es/components/nav/nav.js":
  7774. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7775. "use strict";
  7776. /* unused harmony export props */
  7777. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  7778. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  7779. var props = {
  7780. tag: {
  7781. type: String,
  7782. default: 'ul'
  7783. },
  7784. fill: {
  7785. type: Boolean,
  7786. default: false
  7787. },
  7788. justified: {
  7789. type: Boolean,
  7790. default: false
  7791. },
  7792. tabs: {
  7793. type: Boolean,
  7794. default: false
  7795. },
  7796. pills: {
  7797. type: Boolean,
  7798. default: false
  7799. },
  7800. vertical: {
  7801. type: Boolean,
  7802. default: false
  7803. },
  7804. isNavBar: {
  7805. type: Boolean,
  7806. default: false
  7807. }
  7808. };
  7809. /* harmony default export */ __webpack_exports__["a"] = ({
  7810. functional: true,
  7811. props: props,
  7812. render: function render(h, _ref) {
  7813. var props = _ref.props,
  7814. data = _ref.data,
  7815. children = _ref.children;
  7816. if (props.isNavBar) {
  7817. Object(__WEBPACK_IMPORTED_MODULE_1__utils_warn__["a" /* default */])("b-nav: Prop 'is-nav-bar' is deprecated. Please use component '<b-navbar-nav>' instead.");
  7818. }
  7819. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  7820. class: {
  7821. 'nav': !props.isNavBar,
  7822. 'navbar-nav': props.isNavBar,
  7823. 'nav-tabs': props.tabs && !props.isNavBar,
  7824. 'nav-pills': props.pills && !props.isNavBar,
  7825. 'flex-column': props.vertical && !props.isNavBar,
  7826. 'nav-fill': props.fill,
  7827. 'nav-justified': props.justified
  7828. }
  7829. }), children);
  7830. }
  7831. });
  7832. /***/ }),
  7833. /***/ "./node_modules/bootstrap-vue/es/components/navbar/index.js":
  7834. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7835. "use strict";
  7836. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__navbar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/navbar/navbar.js");
  7837. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__navbar_nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/navbar/navbar-nav.js");
  7838. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__navbar_brand__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/navbar/navbar-brand.js");
  7839. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__navbar_toggle__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/navbar/navbar-toggle.js");
  7840. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/index.js");
  7841. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__collapse__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/collapse/index.js");
  7842. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/index.js");
  7843. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  7844. var components = {
  7845. bNavbar: __WEBPACK_IMPORTED_MODULE_0__navbar__["a" /* default */],
  7846. bNavbarNav: __WEBPACK_IMPORTED_MODULE_1__navbar_nav__["a" /* default */],
  7847. bNavbarBrand: __WEBPACK_IMPORTED_MODULE_2__navbar_brand__["a" /* default */],
  7848. bNavbarToggle: __WEBPACK_IMPORTED_MODULE_3__navbar_toggle__["a" /* default */],
  7849. bNavToggle: __WEBPACK_IMPORTED_MODULE_3__navbar_toggle__["a" /* default */]
  7850. };
  7851. var VuePlugin = {
  7852. install: function install(Vue) {
  7853. Object(__WEBPACK_IMPORTED_MODULE_7__utils_plugins__["a" /* registerComponents */])(Vue, components);
  7854. Vue.use(__WEBPACK_IMPORTED_MODULE_4__nav__["a" /* default */]);
  7855. Vue.use(__WEBPACK_IMPORTED_MODULE_5__collapse__["a" /* default */]);
  7856. Vue.use(__WEBPACK_IMPORTED_MODULE_6__dropdown__["a" /* default */]);
  7857. }
  7858. };
  7859. Object(__WEBPACK_IMPORTED_MODULE_7__utils_plugins__["c" /* vueUse */])(VuePlugin);
  7860. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  7861. /***/ }),
  7862. /***/ "./node_modules/bootstrap-vue/es/components/navbar/navbar-brand.js":
  7863. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7864. "use strict";
  7865. /* unused harmony export props */
  7866. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
  7867. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  7868. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
  7869. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  7870. var linkProps = Object(__WEBPACK_IMPORTED_MODULE_0__link_link__["c" /* propsFactory */])();
  7871. linkProps.href.default = undefined;
  7872. linkProps.to.default = undefined;
  7873. var props = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])(linkProps, {
  7874. tag: {
  7875. type: String,
  7876. default: 'div'
  7877. }
  7878. });
  7879. /* harmony default export */ __webpack_exports__["a"] = ({
  7880. functional: true,
  7881. props: props,
  7882. render: function render(h, _ref) {
  7883. var props = _ref.props,
  7884. data = _ref.data,
  7885. children = _ref.children;
  7886. var isLink = Boolean(props.to || props.href);
  7887. var tag = isLink ? __WEBPACK_IMPORTED_MODULE_0__link_link__["a" /* default */] : props.tag;
  7888. return h(tag, Object(__WEBPACK_IMPORTED_MODULE_1_vue_functional_data_merge__["a" /* mergeData */])(data, {
  7889. staticClass: 'navbar-brand',
  7890. props: isLink ? Object(__WEBPACK_IMPORTED_MODULE_2__utils_pluck_props__["a" /* default */])(linkProps, props) : {}
  7891. }), children);
  7892. }
  7893. });
  7894. /***/ }),
  7895. /***/ "./node_modules/bootstrap-vue/es/components/navbar/navbar-nav.js":
  7896. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7897. "use strict";
  7898. /* unused harmony export props */
  7899. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  7900. var props = {
  7901. tag: {
  7902. type: String,
  7903. default: 'ul'
  7904. },
  7905. fill: {
  7906. type: Boolean,
  7907. default: false
  7908. },
  7909. justified: {
  7910. type: Boolean,
  7911. default: false
  7912. }
  7913. };
  7914. /* harmony default export */ __webpack_exports__["a"] = ({
  7915. functional: true,
  7916. props: props,
  7917. render: function render(h, _ref) {
  7918. var props = _ref.props,
  7919. data = _ref.data,
  7920. children = _ref.children;
  7921. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  7922. staticClass: 'navbar-nav',
  7923. class: {
  7924. 'nav-fill': props.fill,
  7925. 'nav-justified': props.justified
  7926. }
  7927. }), children);
  7928. }
  7929. });
  7930. /***/ }),
  7931. /***/ "./node_modules/bootstrap-vue/es/components/navbar/navbar-toggle.js":
  7932. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7933. "use strict";
  7934. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_listen_on_root__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js");
  7935. /* harmony default export */ __webpack_exports__["a"] = ({
  7936. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_listen_on_root__["a" /* default */]],
  7937. render: function render(h) {
  7938. return h('button', {
  7939. class: ['navbar-toggler'],
  7940. attrs: {
  7941. type: 'button',
  7942. 'aria-label': this.label,
  7943. 'aria-controls': this.target,
  7944. 'aria-expanded': this.toggleState ? 'true' : 'false'
  7945. },
  7946. on: { click: this.onClick }
  7947. }, [this.$slots.default || h('span', { class: ['navbar-toggler-icon'] })]);
  7948. },
  7949. data: function data() {
  7950. return {
  7951. toggleState: false
  7952. };
  7953. },
  7954. props: {
  7955. label: {
  7956. type: String,
  7957. default: 'Toggle navigation'
  7958. },
  7959. target: {
  7960. type: String,
  7961. required: true
  7962. }
  7963. },
  7964. methods: {
  7965. onClick: function onClick() {
  7966. this.$root.$emit('bv::toggle::collapse', this.target);
  7967. },
  7968. handleStateEvt: function handleStateEvt(id, state) {
  7969. if (id === this.target) {
  7970. this.toggleState = state;
  7971. }
  7972. }
  7973. },
  7974. created: function created() {
  7975. this.listenOnRoot('bv::collapse::state', this.handleStateEvt);
  7976. }
  7977. });
  7978. /***/ }),
  7979. /***/ "./node_modules/bootstrap-vue/es/components/navbar/navbar.js":
  7980. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7981. "use strict";
  7982. /* unused harmony export props */
  7983. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
  7984. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  7985. var props = {
  7986. tag: {
  7987. type: String,
  7988. default: 'nav'
  7989. },
  7990. type: {
  7991. type: String,
  7992. default: 'light'
  7993. },
  7994. variant: {
  7995. type: String
  7996. },
  7997. toggleable: {
  7998. type: [Boolean, String],
  7999. default: false
  8000. },
  8001. toggleBreakpoint: {
  8002. // Deprecated. Set toggleable to a string breakpoint
  8003. type: String,
  8004. default: null
  8005. },
  8006. fixed: {
  8007. type: String
  8008. },
  8009. sticky: {
  8010. type: Boolean,
  8011. default: false
  8012. }
  8013. };
  8014. /* harmony default export */ __webpack_exports__["a"] = ({
  8015. functional: true,
  8016. props: props,
  8017. render: function render(h, _ref) {
  8018. var _class;
  8019. var props = _ref.props,
  8020. data = _ref.data,
  8021. children = _ref.children;
  8022. var breakpoint = props.toggleBreakpoint || (props.toggleable === true ? 'sm' : props.toggleable) || 'sm';
  8023. return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
  8024. staticClass: 'navbar',
  8025. class: (_class = {}, _defineProperty(_class, 'navbar-' + props.type, Boolean(props.type)), _defineProperty(_class, 'bg-' + props.variant, Boolean(props.variant)), _defineProperty(_class, 'fixed-' + props.fixed, Boolean(props.fixed)), _defineProperty(_class, 'sticky-top', props.sticky), _defineProperty(_class, 'navbar-expand-' + breakpoint, props.toggleable !== false), _class)
  8026. }), children);
  8027. }
  8028. });
  8029. /***/ }),
  8030. /***/ "./node_modules/bootstrap-vue/es/components/pagination-nav/index.js":
  8031. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8032. "use strict";
  8033. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__pagination_nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/pagination-nav/pagination-nav.js");
  8034. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  8035. var components = {
  8036. bPaginationNav: __WEBPACK_IMPORTED_MODULE_0__pagination_nav__["a" /* default */]
  8037. };
  8038. var VuePlugin = {
  8039. install: function install(Vue) {
  8040. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  8041. }
  8042. };
  8043. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  8044. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  8045. /***/ }),
  8046. /***/ "./node_modules/bootstrap-vue/es/components/pagination-nav/pagination-nav.js":
  8047. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8048. "use strict";
  8049. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  8050. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_pagination__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/pagination.js");
  8051. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
  8052. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  8053. // Props needed for router links
  8054. var routerProps = Object(__WEBPACK_IMPORTED_MODULE_2__link_link__["b" /* pickLinkProps */])('activeClass', 'exactActiveClass', 'append', 'exact', 'replace', 'target', 'rel');
  8055. // Props object
  8056. var props = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])(
  8057. // pagination-nav specific props
  8058. {
  8059. numberOfPages: {
  8060. type: Number,
  8061. default: 1
  8062. },
  8063. baseUrl: {
  8064. type: String,
  8065. default: '/'
  8066. },
  8067. useRouter: {
  8068. type: Boolean,
  8069. default: false
  8070. },
  8071. linkGen: {
  8072. type: Function,
  8073. default: null
  8074. },
  8075. pageGen: {
  8076. type: Function,
  8077. default: null
  8078. }
  8079. },
  8080. // Router specific props
  8081. routerProps);
  8082. // Our render function is brought in via the pagination mixin
  8083. /* harmony default export */ __webpack_exports__["a"] = ({
  8084. mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_pagination__["a" /* default */]],
  8085. props: props,
  8086. computed: {
  8087. // Used by render function to trigger wraping in '<nav>' element
  8088. isNav: function isNav() {
  8089. return true;
  8090. }
  8091. },
  8092. methods: {
  8093. onClick: function onClick(pageNum, evt) {
  8094. this.currentPage = pageNum;
  8095. },
  8096. makePage: function makePage(pagenum) {
  8097. if (this.pageGen && typeof this.pageGen === 'function') {
  8098. return this.pageGen(pagenum);
  8099. }
  8100. return pagenum;
  8101. },
  8102. makeLink: function makeLink(pagenum) {
  8103. if (this.linkGen && typeof this.linkGen === 'function') {
  8104. return this.linkGen(pagenum);
  8105. }
  8106. var link = '' + this.baseUrl + pagenum;
  8107. return this.useRouter ? { path: link } : link;
  8108. },
  8109. linkProps: function linkProps(pagenum) {
  8110. var link = this.makeLink(pagenum);
  8111. var props = {
  8112. href: typeof link === 'string' ? link : void 0,
  8113. target: this.target || null,
  8114. rel: this.rel || null,
  8115. disabled: this.disabled
  8116. };
  8117. if (this.useRouter || (typeof link === 'undefined' ? 'undefined' : _typeof(link)) === 'object') {
  8118. props = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])(props, {
  8119. to: link,
  8120. exact: this.exact,
  8121. activeClass: this.activeClass,
  8122. exactActiveClass: this.exactActiveClass,
  8123. append: this.append,
  8124. replace: this.replace
  8125. });
  8126. }
  8127. return props;
  8128. }
  8129. }
  8130. });
  8131. /***/ }),
  8132. /***/ "./node_modules/bootstrap-vue/es/components/pagination/index.js":
  8133. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8134. "use strict";
  8135. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__pagination__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/pagination/pagination.js");
  8136. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  8137. var components = {
  8138. bPagination: __WEBPACK_IMPORTED_MODULE_0__pagination__["a" /* default */]
  8139. };
  8140. var VuePlugin = {
  8141. install: function install(Vue) {
  8142. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  8143. }
  8144. };
  8145. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  8146. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  8147. /***/ }),
  8148. /***/ "./node_modules/bootstrap-vue/es/components/pagination/pagination.js":
  8149. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8150. "use strict";
  8151. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_pagination__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/pagination.js");
  8152. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  8153. var props = {
  8154. perPage: {
  8155. type: Number,
  8156. default: 20
  8157. },
  8158. totalRows: {
  8159. type: Number,
  8160. default: 20
  8161. },
  8162. ariaControls: {
  8163. type: String,
  8164. default: null
  8165. }
  8166. // Our render function is brought in from the pagination mixin
  8167. };/* harmony default export */ __webpack_exports__["a"] = ({
  8168. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_pagination__["a" /* default */]],
  8169. props: props,
  8170. computed: {
  8171. numberOfPages: function numberOfPages() {
  8172. var result = Math.ceil(this.totalRows / this.perPage);
  8173. return result < 1 ? 1 : result;
  8174. }
  8175. },
  8176. methods: {
  8177. // These methods are used by the render function
  8178. onClick: function onClick(num, evt) {
  8179. var _this = this;
  8180. // Handle edge cases where number of pages has changed (i.e. if perPage changes)
  8181. if (num > this.numberOfPages) {
  8182. num = this.numberOfPages;
  8183. } else if (num < 1) {
  8184. num = 1;
  8185. }
  8186. this.currentPage = num;
  8187. this.$nextTick(function () {
  8188. // Keep the current button focused if possible
  8189. var target = evt.target;
  8190. if (Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["m" /* isVisible */])(target) && _this.$el.contains(target) && target.focus) {
  8191. target.focus();
  8192. } else {
  8193. _this.focusCurrent();
  8194. }
  8195. });
  8196. this.$emit('change', this.currentPage);
  8197. },
  8198. makePage: function makePage(pagenum) {
  8199. return pagenum;
  8200. },
  8201. linkProps: function linkProps(pagenum) {
  8202. return { href: '#' };
  8203. }
  8204. }
  8205. });
  8206. /***/ }),
  8207. /***/ "./node_modules/bootstrap-vue/es/components/popover/index.js":
  8208. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8209. "use strict";
  8210. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__popover__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/popover/popover.js");
  8211. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  8212. var components = {
  8213. bPopover: __WEBPACK_IMPORTED_MODULE_0__popover__["a" /* default */]
  8214. };
  8215. var VuePlugin = {
  8216. install: function install(Vue) {
  8217. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  8218. }
  8219. };
  8220. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  8221. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  8222. /***/ }),
  8223. /***/ "./node_modules/bootstrap-vue/es/components/popover/popover.js":
  8224. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8225. "use strict";
  8226. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_popover_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/popover.class.js");
  8227. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  8228. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_toolpop__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/toolpop.js");
  8229. /* harmony default export */ __webpack_exports__["a"] = ({
  8230. mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_toolpop__["a" /* default */]],
  8231. render: function render(h) {
  8232. return h('div', {
  8233. class: ['d-none'],
  8234. style: { display: 'none' },
  8235. attrs: { 'aria-hidden': true }
  8236. }, [h('div', { ref: 'title' }, this.$slots.title), h('div', { ref: 'content' }, this.$slots.default)]);
  8237. },
  8238. data: function data() {
  8239. return {};
  8240. },
  8241. props: {
  8242. title: {
  8243. type: String,
  8244. default: ''
  8245. },
  8246. content: {
  8247. type: String,
  8248. default: ''
  8249. },
  8250. triggers: {
  8251. type: [String, Array],
  8252. default: 'click'
  8253. },
  8254. placement: {
  8255. type: String,
  8256. default: 'right'
  8257. }
  8258. },
  8259. methods: {
  8260. createToolpop: function createToolpop() {
  8261. // getTarget is in toolpop mixin
  8262. var target = this.getTarget();
  8263. if (target) {
  8264. this._toolpop = new __WEBPACK_IMPORTED_MODULE_0__utils_popover_class__["a" /* default */](target, this.getConfig(), this.$root);
  8265. } else {
  8266. this._toolpop = null;
  8267. Object(__WEBPACK_IMPORTED_MODULE_1__utils_warn__["a" /* default */])("b-popover: 'target' element not found!");
  8268. }
  8269. return this._toolpop;
  8270. }
  8271. }
  8272. });
  8273. /***/ }),
  8274. /***/ "./node_modules/bootstrap-vue/es/components/progress/index.js":
  8275. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8276. "use strict";
  8277. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__progress__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/progress/progress.js");
  8278. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__progress_bar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/progress/progress-bar.js");
  8279. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  8280. var components = {
  8281. bProgress: __WEBPACK_IMPORTED_MODULE_0__progress__["a" /* default */],
  8282. bProgressBar: __WEBPACK_IMPORTED_MODULE_1__progress_bar__["a" /* default */]
  8283. };
  8284. var VuePlugin = {
  8285. install: function install(Vue) {
  8286. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
  8287. }
  8288. };
  8289. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  8290. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  8291. /***/ }),
  8292. /***/ "./node_modules/bootstrap-vue/es/components/progress/progress-bar.js":
  8293. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8294. "use strict";
  8295. /* harmony default export */ __webpack_exports__["a"] = ({
  8296. render: function render(h) {
  8297. var childNodes = h(false);
  8298. if (this.$slots.default) {
  8299. childNodes = this.$slots.default;
  8300. } else if (this.label) {
  8301. childNodes = h('span', { domProps: { innerHTML: this.label } });
  8302. } else if (this.computedShowProgress) {
  8303. childNodes = this.progress.toFixed(this.computedPrecision);
  8304. } else if (this.computedShowValue) {
  8305. childNodes = this.value.toFixed(this.computedPrecision);
  8306. }
  8307. return h('div', {
  8308. class: this.progressBarClasses,
  8309. style: this.progressBarStyles,
  8310. attrs: {
  8311. role: 'progressbar',
  8312. 'aria-valuemin': '0',
  8313. 'aria-valuemax': this.computedMax.toString(),
  8314. 'aria-valuenow': this.value.toFixed(this.computedPrecision)
  8315. }
  8316. }, [childNodes]);
  8317. },
  8318. computed: {
  8319. progressBarClasses: function progressBarClasses() {
  8320. return ['progress-bar', this.computedVariant ? 'bg-' + this.computedVariant : '', this.computedStriped || this.computedAnimated ? 'progress-bar-striped' : '', this.computedAnimated ? 'progress-bar-animated' : ''];
  8321. },
  8322. progressBarStyles: function progressBarStyles() {
  8323. return {
  8324. width: 100 * (this.value / this.computedMax) + '%'
  8325. };
  8326. },
  8327. progress: function progress() {
  8328. var p = Math.pow(10, this.computedPrecision);
  8329. return Math.round(100 * p * this.value / this.computedMax) / p;
  8330. },
  8331. computedMax: function computedMax() {
  8332. // Prefer our max over parent setting
  8333. return typeof this.max === 'number' ? this.max : this.$parent.max || 100;
  8334. },
  8335. computedVariant: function computedVariant() {
  8336. // Prefer our variant over parent setting
  8337. return this.variant || this.$parent.variant;
  8338. },
  8339. computedPrecision: function computedPrecision() {
  8340. // Prefer our precision over parent setting
  8341. return typeof this.precision === 'number' ? this.precision : this.$parent.precision || 0;
  8342. },
  8343. computedStriped: function computedStriped() {
  8344. // Prefer our striped over parent setting
  8345. return typeof this.striped === 'boolean' ? this.striped : this.$parent.striped || false;
  8346. },
  8347. computedAnimated: function computedAnimated() {
  8348. // Prefer our animated over parent setting
  8349. return typeof this.animated === 'boolean' ? this.animated : this.$parent.animated || false;
  8350. },
  8351. computedShowProgress: function computedShowProgress() {
  8352. // Prefer our showProgress over parent setting
  8353. return typeof this.showProgress === 'boolean' ? this.showProgress : this.$parent.showProgress || false;
  8354. },
  8355. computedShowValue: function computedShowValue() {
  8356. // Prefer our showValue over parent setting
  8357. return typeof this.showValue === 'boolean' ? this.showValue : this.$parent.showValue || false;
  8358. }
  8359. },
  8360. props: {
  8361. value: {
  8362. type: Number,
  8363. default: 0
  8364. },
  8365. label: {
  8366. type: String,
  8367. default: null
  8368. },
  8369. // $parent prop values take precedence over the following props
  8370. // Which is why they are defaulted to null
  8371. max: {
  8372. type: Number,
  8373. default: null
  8374. },
  8375. precision: {
  8376. type: Number,
  8377. default: null
  8378. },
  8379. variant: {
  8380. type: String,
  8381. default: null
  8382. },
  8383. striped: {
  8384. type: Boolean,
  8385. default: null
  8386. },
  8387. animated: {
  8388. type: Boolean,
  8389. default: null
  8390. },
  8391. showProgress: {
  8392. type: Boolean,
  8393. default: null
  8394. },
  8395. showValue: {
  8396. type: Boolean,
  8397. default: null
  8398. }
  8399. }
  8400. });
  8401. /***/ }),
  8402. /***/ "./node_modules/bootstrap-vue/es/components/progress/progress.js":
  8403. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8404. "use strict";
  8405. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__progress_bar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/progress/progress-bar.js");
  8406. /* harmony default export */ __webpack_exports__["a"] = ({
  8407. components: { bProgressBar: __WEBPACK_IMPORTED_MODULE_0__progress_bar__["a" /* default */] },
  8408. render: function render(h) {
  8409. var childNodes = this.$slots.default;
  8410. if (!childNodes) {
  8411. childNodes = h('b-progress-bar', {
  8412. props: {
  8413. value: this.value,
  8414. max: this.max,
  8415. precision: this.precision,
  8416. variant: this.variant,
  8417. animated: this.animated,
  8418. striped: this.striped,
  8419. showProgress: this.showProgress,
  8420. showValue: this.showValue
  8421. }
  8422. });
  8423. }
  8424. return h('div', { class: ['progress'], style: this.progressHeight }, [childNodes]);
  8425. },
  8426. props: {
  8427. // These props can be inherited via the child b-progress-bar(s)
  8428. variant: {
  8429. type: String,
  8430. default: null
  8431. },
  8432. striped: {
  8433. type: Boolean,
  8434. default: false
  8435. },
  8436. animated: {
  8437. type: Boolean,
  8438. default: false
  8439. },
  8440. height: {
  8441. type: String,
  8442. default: null
  8443. },
  8444. precision: {
  8445. type: Number,
  8446. default: 0
  8447. },
  8448. showProgress: {
  8449. type: Boolean,
  8450. default: false
  8451. },
  8452. showValue: {
  8453. type: Boolean,
  8454. default: false
  8455. },
  8456. max: {
  8457. type: Number,
  8458. default: 100
  8459. },
  8460. // This prop is not inherited by child b-progress-bar(s)
  8461. value: {
  8462. type: Number,
  8463. default: 0
  8464. }
  8465. },
  8466. computed: {
  8467. progressHeight: function progressHeight() {
  8468. return { height: this.height || null };
  8469. }
  8470. }
  8471. });
  8472. /***/ }),
  8473. /***/ "./node_modules/bootstrap-vue/es/components/table/index.js":
  8474. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8475. "use strict";
  8476. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__table__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/table/table.js");
  8477. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  8478. var components = {
  8479. bTable: __WEBPACK_IMPORTED_MODULE_0__table__["a" /* default */]
  8480. };
  8481. var VuePlugin = {
  8482. install: function install(Vue) {
  8483. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  8484. }
  8485. };
  8486. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  8487. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  8488. /***/ }),
  8489. /***/ "./node_modules/bootstrap-vue/es/components/table/table.css":
  8490. /***/ (function(module, exports, __webpack_require__) {
  8491. // style-loader: Adds some css to the DOM by adding a <style> tag
  8492. // load the styles
  8493. var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/table/table.css");
  8494. if(typeof content === 'string') content = [[module.i, content, '']];
  8495. // Prepare cssTransformation
  8496. var transform;
  8497. var options = {}
  8498. options.transform = transform
  8499. // add the styles to the DOM
  8500. var update = __webpack_require__("./node_modules/style-loader/lib/addStyles.js")(content, options);
  8501. if(content.locals) module.exports = content.locals;
  8502. // Hot Module Replacement
  8503. if(false) {
  8504. // When the styles change, update the <style> tags
  8505. if(!content.locals) {
  8506. module.hot.accept("!!../../../../css-loader/index.js!./table.css", function() {
  8507. var newContent = require("!!../../../../css-loader/index.js!./table.css");
  8508. if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
  8509. update(newContent);
  8510. });
  8511. }
  8512. // When the module is disposed, remove the <style> tags
  8513. module.hot.dispose(function() { update(); });
  8514. }
  8515. /***/ }),
  8516. /***/ "./node_modules/bootstrap-vue/es/components/table/table.js":
  8517. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8518. "use strict";
  8519. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_startcase__ = __webpack_require__("./node_modules/lodash.startcase/index.js");
  8520. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_startcase___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_startcase__);
  8521. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_get__ = __webpack_require__("./node_modules/lodash.get/index.js");
  8522. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_get__);
  8523. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_loose_equal__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/loose-equal.js");
  8524. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_stable_sort__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/stable-sort.js");
  8525. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
  8526. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  8527. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  8528. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  8529. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  8530. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__mixins_listen_on_root__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js");
  8531. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__table_css__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/table/table.css");
  8532. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__table_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__table_css__);
  8533. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  8534. // Import styles
  8535. function toString(v) {
  8536. if (!v) {
  8537. return '';
  8538. }
  8539. if (v instanceof Object) {
  8540. return Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(v).map(function (k) {
  8541. return toString(v[k]);
  8542. }).join(' ');
  8543. }
  8544. return String(v);
  8545. }
  8546. function recToString(obj) {
  8547. if (!(obj instanceof Object)) {
  8548. return '';
  8549. }
  8550. return toString(Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(obj).reduce(function (o, k) {
  8551. // Ignore fields that start with _
  8552. if (!/^_/.test(k)) {
  8553. o[k] = obj[k];
  8554. }
  8555. return o;
  8556. }, {}));
  8557. }
  8558. function defaultSortCompare(a, b, sortBy) {
  8559. if (typeof a[sortBy] === 'number' && typeof b[sortBy] === 'number') {
  8560. return a[sortBy] < b[sortBy] && -1 || a[sortBy] > b[sortBy] && 1 || 0;
  8561. }
  8562. return toString(a[sortBy]).localeCompare(toString(b[sortBy]), undefined, {
  8563. numeric: true
  8564. });
  8565. }
  8566. function processField(key, value) {
  8567. var field = null;
  8568. if (typeof value === 'string') {
  8569. // Label shortcut
  8570. field = { key: key, label: value };
  8571. } else if (typeof value === 'function') {
  8572. // Formatter shortcut
  8573. field = { key: key, formatter: value };
  8574. } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {
  8575. field = Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["a" /* assign */])({}, value);
  8576. field.key = field.key || key;
  8577. } else if (value !== false) {
  8578. // Fallback to just key
  8579. field = { key: key };
  8580. }
  8581. return field;
  8582. }
  8583. /* harmony default export */ __webpack_exports__["a"] = ({
  8584. mixins: [__WEBPACK_IMPORTED_MODULE_8__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_9__mixins_listen_on_root__["a" /* default */]],
  8585. render: function render(h) {
  8586. var _this = this;
  8587. var $slots = this.$slots;
  8588. var $scoped = this.$scopedSlots;
  8589. var fields = this.computedFields;
  8590. var items = this.computedItems;
  8591. // Build the caption
  8592. var caption = h(false);
  8593. if (this.caption || $slots['table-caption']) {
  8594. var data = { style: this.captionStyles };
  8595. if (!$slots['table-caption']) {
  8596. data.domProps = { innerHTML: this.caption };
  8597. }
  8598. caption = h('caption', data, $slots['table-caption']);
  8599. }
  8600. // Build the colgroup
  8601. var colgroup = $slots['table-colgroup'] ? h('colgroup', {}, $slots['table-colgroup']) : h(false);
  8602. // factory function for thead and tfoot cells (th's)
  8603. var makeHeadCells = function makeHeadCells() {
  8604. var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  8605. return fields.map(function (field, colIndex) {
  8606. var data = {
  8607. key: field.key,
  8608. class: _this.fieldClasses(field),
  8609. style: field.thStyle || {},
  8610. attrs: {
  8611. tabindex: field.sortable ? '0' : null,
  8612. abbr: field.headerAbbr || null,
  8613. title: field.headerTitle || null,
  8614. 'aria-colindex': String(colIndex + 1),
  8615. 'aria-label': field.sortable ? _this.localSortDesc && _this.localSortBy === field.key ? _this.labelSortAsc : _this.labelSortDesc : null,
  8616. 'aria-sort': field.sortable && _this.localSortBy === field.key ? _this.localSortDesc ? 'descending' : 'ascending' : null
  8617. },
  8618. on: {
  8619. click: function click(evt) {
  8620. evt.stopPropagation();
  8621. evt.preventDefault();
  8622. _this.headClicked(evt, field);
  8623. },
  8624. keydown: function keydown(evt) {
  8625. var keyCode = evt.keyCode;
  8626. if (keyCode === __WEBPACK_IMPORTED_MODULE_4__utils_key_codes__["a" /* default */].ENTER || keyCode === __WEBPACK_IMPORTED_MODULE_4__utils_key_codes__["a" /* default */].SPACE) {
  8627. evt.stopPropagation();
  8628. evt.preventDefault();
  8629. _this.headClicked(evt, field);
  8630. }
  8631. }
  8632. }
  8633. };
  8634. var slot = isFoot && $scoped['FOOT_' + field.key] ? $scoped['FOOT_' + field.key] : $scoped['HEAD_' + field.key];
  8635. if (slot) {
  8636. slot = [slot({ label: field.label, column: field.key, field: field })];
  8637. } else {
  8638. data.domProps = { innerHTML: field.label };
  8639. }
  8640. return h('th', data, slot);
  8641. });
  8642. };
  8643. // Build the thead
  8644. var thead = h(false);
  8645. if (this.isStacked !== true) {
  8646. // If in always stacked mode (this.isStacked === true), then we don't bother rendering the thead
  8647. thead = h('thead', { class: this.headClasses }, [h('tr', { class: this.theadTrClass }, makeHeadCells(false))]);
  8648. }
  8649. // Build the tfoot
  8650. var tfoot = h(false);
  8651. if (this.footClone && this.isStacked !== true) {
  8652. // If in always stacked mode (this.isStacked === true), then we don't bother rendering the tfoot
  8653. tfoot = h('tfoot', { class: this.footClasses }, [h('tr', { class: this.tfootTrClass }, makeHeadCells(true))]);
  8654. }
  8655. // Prepare the tbody rows
  8656. var rows = [];
  8657. // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)
  8658. // If in always stacked mode, we don't bother rendering the row
  8659. if ($scoped['top-row'] && this.isStacked !== true) {
  8660. rows.push(h('tr', { key: 'top-row', class: ['b-table-top-row', this.tbodyTrClass] }, [$scoped['top-row']({ columns: fields.length, fields: fields })]));
  8661. } else {
  8662. rows.push(h(false));
  8663. }
  8664. // Add the item data rows
  8665. items.forEach(function (item, rowIndex) {
  8666. var detailsSlot = $scoped['row-details'];
  8667. var rowShowDetails = Boolean(item._showDetails && detailsSlot);
  8668. var detailsId = rowShowDetails ? _this.safeId('_details_' + rowIndex + '_') : null;
  8669. var toggleDetailsFn = function toggleDetailsFn() {
  8670. if (detailsSlot) {
  8671. _this.$set(item, '_showDetails', !item._showDetails);
  8672. }
  8673. };
  8674. // For each item data field in row
  8675. var tds = fields.map(function (field, colIndex) {
  8676. var data = {
  8677. key: 'row-' + rowIndex + '-cell-' + colIndex,
  8678. class: _this.tdClasses(field, item),
  8679. attrs: _this.tdAttrs(field, item, colIndex),
  8680. domProps: {}
  8681. };
  8682. var childNodes = void 0;
  8683. if ($scoped[field.key]) {
  8684. childNodes = [$scoped[field.key]({
  8685. item: item,
  8686. index: rowIndex,
  8687. field: field,
  8688. unformatted: __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(item, field.key),
  8689. value: _this.getFormattedValue(item, field),
  8690. toggleDetails: toggleDetailsFn,
  8691. detailsShowing: Boolean(item._showDetails)
  8692. })];
  8693. if (_this.isStacked) {
  8694. // We wrap in a DIV to ensure rendered as a single cell when visually stacked!
  8695. childNodes = [h('div', {}, [childNodes])];
  8696. }
  8697. } else {
  8698. var formatted = _this.getFormattedValue(item, field);
  8699. if (_this.isStacked) {
  8700. // We innerHTML a DIV to ensure rendered as a single cell when visually stacked!
  8701. childNodes = [h('div', formatted)];
  8702. } else {
  8703. // Non stacked
  8704. childNodes = formatted;
  8705. }
  8706. }
  8707. // Render either a td or th cell
  8708. return h(field.isRowHeader ? 'th' : 'td', data, childNodes);
  8709. });
  8710. // Calculate the row number in the dataset (indexed from 1)
  8711. var ariaRowIndex = null;
  8712. if (_this.currentPage && _this.perPage && _this.perPage > 0) {
  8713. ariaRowIndex = (_this.currentPage - 1) * _this.perPage + rowIndex + 1;
  8714. }
  8715. // Assemble and add the row
  8716. rows.push(h('tr', {
  8717. key: 'row-' + rowIndex,
  8718. class: [_this.rowClasses(item), { 'b-table-has-details': rowShowDetails }],
  8719. attrs: {
  8720. 'aria-describedby': detailsId,
  8721. 'aria-rowindex': ariaRowIndex,
  8722. role: _this.isStacked ? 'row' : null
  8723. },
  8724. on: {
  8725. click: function click(evt) {
  8726. _this.rowClicked(evt, item, rowIndex);
  8727. },
  8728. dblclick: function dblclick(evt) {
  8729. _this.rowDblClicked(evt, item, rowIndex);
  8730. },
  8731. mouseenter: function mouseenter(evt) {
  8732. _this.rowHovered(evt, item, rowIndex);
  8733. }
  8734. }
  8735. }, tds));
  8736. // Row Details slot
  8737. if (rowShowDetails) {
  8738. var tdAttrs = { colspan: String(fields.length) };
  8739. var trAttrs = { id: detailsId };
  8740. if (_this.isStacked) {
  8741. tdAttrs['role'] = 'cell';
  8742. trAttrs['role'] = 'row';
  8743. }
  8744. var details = h('td', { attrs: tdAttrs }, [detailsSlot({
  8745. item: item,
  8746. index: rowIndex,
  8747. fields: fields,
  8748. toggleDetails: toggleDetailsFn
  8749. })]);
  8750. rows.push(h('tr', {
  8751. key: 'details-' + rowIndex,
  8752. class: ['b-table-details', _this.tbodyTrClass],
  8753. attrs: trAttrs
  8754. }, [details]));
  8755. } else if (detailsSlot) {
  8756. // Only add the placeholder if a the table has a row-details slot defined (but not shown)
  8757. rows.push(h(false));
  8758. }
  8759. });
  8760. // Empty Items / Empty Filtered Row slot
  8761. if (this.showEmpty && (!items || items.length === 0)) {
  8762. var empty = this.filter ? $slots['emptyfiltered'] : $slots['empty'];
  8763. if (!empty) {
  8764. empty = h('div', {
  8765. class: ['text-center', 'my-2'],
  8766. domProps: { innerHTML: this.filter ? this.emptyFilteredText : this.emptyText }
  8767. });
  8768. }
  8769. empty = h('td', {
  8770. attrs: {
  8771. colspan: String(fields.length),
  8772. role: this.isStacked ? 'cell' : null
  8773. }
  8774. }, [h('div', { attrs: { role: 'alert', 'aria-live': 'polite' } }, [empty])]);
  8775. rows.push(h('tr', {
  8776. key: 'empty-row',
  8777. class: ['b-table-empty-row', this.tbodyTrClass],
  8778. attrs: this.isStacked ? { role: 'row' } : {}
  8779. }, [empty]));
  8780. } else {
  8781. rows.push(h(false));
  8782. }
  8783. // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)
  8784. // If in always stacked mode, we don't bother rendering the row
  8785. if ($scoped['bottom-row'] && this.isStacked !== true) {
  8786. rows.push(h('tr', { key: 'bottom-row', class: ['b-table-bottom-row', this.tbodyTrClass] }, [$scoped['bottom-row']({ columns: fields.length, fields: fields })]));
  8787. } else {
  8788. rows.push(h(false));
  8789. }
  8790. // Assemble the rows into the tbody
  8791. var tbody = h('tbody', { class: this.bodyClasses, attrs: this.isStacked ? { role: 'rowgroup' } : {} }, rows);
  8792. // Assemble table
  8793. var table = h('table', {
  8794. class: this.tableClasses,
  8795. attrs: {
  8796. id: this.safeId(),
  8797. role: this.isStacked ? 'table' : null,
  8798. 'aria-busy': this.computedBusy ? 'true' : 'false',
  8799. 'aria-colcount': String(fields.length),
  8800. 'aria-rowcount': this.$attrs['aria-rowcount'] || this.items.length > this.perPage ? this.items.length : null
  8801. }
  8802. }, [caption, colgroup, thead, tfoot, tbody]);
  8803. // Add responsive wrapper if needed and return table
  8804. return this.isResponsive ? h('div', { class: this.responsiveClass }, [table]) : table;
  8805. },
  8806. data: function data() {
  8807. return {
  8808. localSortBy: this.sortBy || '',
  8809. localSortDesc: this.sortDesc || false,
  8810. localItems: [],
  8811. // Note: filteredItems only used to determine if # of items changed
  8812. filteredItems: [],
  8813. localBusy: false
  8814. };
  8815. },
  8816. props: {
  8817. items: {
  8818. type: [Array, Function],
  8819. default: function _default() {
  8820. return [];
  8821. }
  8822. },
  8823. fields: {
  8824. type: [Object, Array],
  8825. default: null
  8826. },
  8827. sortBy: {
  8828. type: String,
  8829. default: null
  8830. },
  8831. sortDesc: {
  8832. type: Boolean,
  8833. default: false
  8834. },
  8835. sortDirection: {
  8836. type: String,
  8837. default: 'asc',
  8838. validator: function validator(direction) {
  8839. return Object(__WEBPACK_IMPORTED_MODULE_7__utils_array__["a" /* arrayIncludes */])(['asc', 'desc', 'last'], direction);
  8840. }
  8841. },
  8842. caption: {
  8843. type: String,
  8844. default: null
  8845. },
  8846. captionTop: {
  8847. type: Boolean,
  8848. default: false
  8849. },
  8850. striped: {
  8851. type: Boolean,
  8852. default: false
  8853. },
  8854. bordered: {
  8855. type: Boolean,
  8856. default: false
  8857. },
  8858. outlined: {
  8859. type: Boolean,
  8860. default: false
  8861. },
  8862. dark: {
  8863. type: Boolean,
  8864. default: function _default() {
  8865. if (this && typeof this.inverse === 'boolean') {
  8866. // Deprecate inverse
  8867. Object(__WEBPACK_IMPORTED_MODULE_5__utils_warn__["a" /* default */])("b-table: prop 'inverse' has been deprecated. Use 'dark' instead");
  8868. return this.dark;
  8869. }
  8870. return false;
  8871. }
  8872. },
  8873. inverse: {
  8874. // Deprecated in v1.0.0 in favor of `dark`
  8875. type: Boolean,
  8876. default: null
  8877. },
  8878. hover: {
  8879. type: Boolean,
  8880. default: false
  8881. },
  8882. small: {
  8883. type: Boolean,
  8884. default: false
  8885. },
  8886. fixed: {
  8887. type: Boolean,
  8888. default: false
  8889. },
  8890. footClone: {
  8891. type: Boolean,
  8892. default: false
  8893. },
  8894. responsive: {
  8895. type: [Boolean, String],
  8896. default: false
  8897. },
  8898. stacked: {
  8899. type: [Boolean, String],
  8900. default: false
  8901. },
  8902. headVariant: {
  8903. type: String,
  8904. default: ''
  8905. },
  8906. footVariant: {
  8907. type: String,
  8908. default: ''
  8909. },
  8910. theadClass: {
  8911. type: [String, Array],
  8912. default: null
  8913. },
  8914. theadTrClass: {
  8915. type: [String, Array],
  8916. default: null
  8917. },
  8918. tbodyClass: {
  8919. type: [String, Array],
  8920. default: null
  8921. },
  8922. tbodyTrClass: {
  8923. type: [String, Array],
  8924. default: null
  8925. },
  8926. tfootClass: {
  8927. type: [String, Array],
  8928. default: null
  8929. },
  8930. tfootTrClass: {
  8931. type: [String, Array],
  8932. default: null
  8933. },
  8934. perPage: {
  8935. type: Number,
  8936. default: 0
  8937. },
  8938. currentPage: {
  8939. type: Number,
  8940. default: 1
  8941. },
  8942. filter: {
  8943. type: [String, RegExp, Function],
  8944. default: null
  8945. },
  8946. sortCompare: {
  8947. type: Function,
  8948. default: null
  8949. },
  8950. noLocalSorting: {
  8951. type: Boolean,
  8952. default: false
  8953. },
  8954. noProviderPaging: {
  8955. type: Boolean,
  8956. default: false
  8957. },
  8958. noProviderSorting: {
  8959. type: Boolean,
  8960. default: false
  8961. },
  8962. noProviderFiltering: {
  8963. type: Boolean,
  8964. default: false
  8965. },
  8966. noSortReset: {
  8967. type: Boolean,
  8968. default: false
  8969. },
  8970. busy: {
  8971. type: Boolean,
  8972. default: false
  8973. },
  8974. value: {
  8975. type: Array,
  8976. default: function _default() {
  8977. return [];
  8978. }
  8979. },
  8980. labelSortAsc: {
  8981. type: String,
  8982. default: 'Click to sort Ascending'
  8983. },
  8984. labelSortDesc: {
  8985. type: String,
  8986. default: 'Click to sort Descending'
  8987. },
  8988. showEmpty: {
  8989. type: Boolean,
  8990. default: false
  8991. },
  8992. emptyText: {
  8993. type: String,
  8994. default: 'There are no records to show'
  8995. },
  8996. emptyFilteredText: {
  8997. type: String,
  8998. default: 'There are no records matching your request'
  8999. },
  9000. apiUrl: {
  9001. // Passthrough prop. Passed to the context object. Not used by b-table directly
  9002. type: String,
  9003. default: ''
  9004. }
  9005. },
  9006. watch: {
  9007. items: function items(newVal, oldVal) {
  9008. if (oldVal !== newVal) {
  9009. this._providerUpdate();
  9010. }
  9011. },
  9012. context: function context(newVal, oldVal) {
  9013. if (!Object(__WEBPACK_IMPORTED_MODULE_2__utils_loose_equal__["a" /* default */])(newVal, oldVal)) {
  9014. this.$emit('context-changed', newVal);
  9015. }
  9016. },
  9017. filteredItems: function filteredItems(newVal, oldVal) {
  9018. if (this.localFiltering && newVal.length !== oldVal.length) {
  9019. // Emit a filtered notification event, as number of filtered items has changed
  9020. this.$emit('filtered', newVal);
  9021. }
  9022. },
  9023. sortDesc: function sortDesc(newVal, oldVal) {
  9024. if (newVal === this.localSortDesc) {
  9025. return;
  9026. }
  9027. this.localSortDesc = newVal || false;
  9028. },
  9029. localSortDesc: function localSortDesc(newVal, oldVal) {
  9030. // Emit update to sort-desc.sync
  9031. if (newVal !== oldVal) {
  9032. this.$emit('update:sortDesc', newVal);
  9033. if (!this.noProviderSorting) {
  9034. this._providerUpdate();
  9035. }
  9036. }
  9037. },
  9038. sortBy: function sortBy(newVal, oldVal) {
  9039. if (newVal === this.localSortBy) {
  9040. return;
  9041. }
  9042. this.localSortBy = newVal || null;
  9043. },
  9044. localSortBy: function localSortBy(newVal, oldVal) {
  9045. if (newVal !== oldVal) {
  9046. this.$emit('update:sortBy', newVal);
  9047. if (!this.noProviderSorting) {
  9048. this._providerUpdate();
  9049. }
  9050. }
  9051. },
  9052. perPage: function perPage(newVal, oldVal) {
  9053. if (oldVal !== newVal && !this.noProviderPaging) {
  9054. this._providerUpdate();
  9055. }
  9056. },
  9057. currentPage: function currentPage(newVal, oldVal) {
  9058. if (oldVal !== newVal && !this.noProviderPaging) {
  9059. this._providerUpdate();
  9060. }
  9061. },
  9062. filter: function filter(newVal, oldVal) {
  9063. if (oldVal !== newVal && !this.noProviderFiltering) {
  9064. this._providerUpdate();
  9065. }
  9066. },
  9067. localBusy: function localBusy(newVal, oldVal) {
  9068. if (newVal !== oldVal) {
  9069. this.$emit('update:busy', newVal);
  9070. }
  9071. }
  9072. },
  9073. mounted: function mounted() {
  9074. var _this2 = this;
  9075. this.localSortBy = this.sortBy;
  9076. this.localSortDesc = this.sortDesc;
  9077. if (this.hasProvider) {
  9078. this._providerUpdate();
  9079. }
  9080. this.listenOnRoot('bv::refresh::table', function (id) {
  9081. if (id === _this2.id || id === _this2) {
  9082. _this2._providerUpdate();
  9083. }
  9084. });
  9085. },
  9086. computed: {
  9087. isStacked: function isStacked() {
  9088. return this.stacked === '' ? true : this.stacked;
  9089. },
  9090. isResponsive: function isResponsive() {
  9091. var responsive = this.responsive === '' ? true : this.responsive;
  9092. return this.isStacked ? false : responsive;
  9093. },
  9094. responsiveClass: function responsiveClass() {
  9095. return this.isResponsive === true ? 'table-responsive' : this.isResponsive ? 'table-responsive-' + this.responsive : '';
  9096. },
  9097. tableClasses: function tableClasses() {
  9098. return ['table', 'b-table', this.striped ? 'table-striped' : '', this.hover ? 'table-hover' : '', this.dark ? 'table-dark' : '', this.bordered ? 'table-bordered' : '', this.small ? 'table-sm' : '', this.outlined ? 'border' : '', this.fixed ? 'b-table-fixed' : '', this.isStacked === true ? 'b-table-stacked' : this.isStacked ? 'b-table-stacked-' + this.stacked : ''];
  9099. },
  9100. headClasses: function headClasses() {
  9101. return [this.headVariant ? 'thead-' + this.headVariant : '', this.theadClass];
  9102. },
  9103. bodyClasses: function bodyClasses() {
  9104. return [this.tbodyClass];
  9105. },
  9106. footClasses: function footClasses() {
  9107. var variant = this.footVariant || this.headVariant || null;
  9108. return [variant ? 'thead-' + variant : '', this.tfootClass];
  9109. },
  9110. captionStyles: function captionStyles() {
  9111. // Move caption to top
  9112. return this.captionTop ? { captionSide: 'top' } : {};
  9113. },
  9114. hasProvider: function hasProvider() {
  9115. return this.items instanceof Function;
  9116. },
  9117. localFiltering: function localFiltering() {
  9118. return this.hasProvider ? this.noProviderFiltering : true;
  9119. },
  9120. localSorting: function localSorting() {
  9121. return this.hasProvider ? this.noProviderSorting : !this.noLocalSorting;
  9122. },
  9123. localPaging: function localPaging() {
  9124. return this.hasProvider ? this.noProviderPaging : true;
  9125. },
  9126. context: function context() {
  9127. return {
  9128. perPage: this.perPage,
  9129. currentPage: this.currentPage,
  9130. filter: this.filter,
  9131. sortBy: this.localSortBy,
  9132. sortDesc: this.localSortDesc,
  9133. apiUrl: this.apiUrl
  9134. };
  9135. },
  9136. computedFields: function computedFields() {
  9137. var _this3 = this;
  9138. // We normalize fields into an array of objects
  9139. // [ { key:..., label:..., ...}, {...}, ..., {..}]
  9140. var fields = [];
  9141. if (Object(__WEBPACK_IMPORTED_MODULE_7__utils_array__["d" /* isArray */])(this.fields)) {
  9142. // Normalize array Form
  9143. this.fields.filter(function (f) {
  9144. return f;
  9145. }).forEach(function (f) {
  9146. if (typeof f === 'string') {
  9147. fields.push({ key: f, label: __WEBPACK_IMPORTED_MODULE_0_lodash_startcase___default()(f) });
  9148. } else if ((typeof f === 'undefined' ? 'undefined' : _typeof(f)) === 'object' && f.key && typeof f.key === 'string') {
  9149. // Full object definition. We use assign so that we don't mutate the original
  9150. fields.push(Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["a" /* assign */])({}, f));
  9151. } else if ((typeof f === 'undefined' ? 'undefined' : _typeof(f)) === 'object' && Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(f).length === 1) {
  9152. // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }
  9153. var key = Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(f)[0];
  9154. var field = processField(key, f[key]);
  9155. if (field) {
  9156. fields.push(field);
  9157. }
  9158. }
  9159. });
  9160. } else if (this.fields && _typeof(this.fields) === 'object' && Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(this.fields).length > 0) {
  9161. // Normalize object Form
  9162. Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(this.fields).forEach(function (key) {
  9163. var field = processField(key, _this3.fields[key]);
  9164. if (field) {
  9165. fields.push(field);
  9166. }
  9167. });
  9168. }
  9169. // If no field provided, take a sample from first record (if exits)
  9170. if (fields.length === 0 && this.computedItems.length > 0) {
  9171. var sample = this.computedItems[0];
  9172. var ignoredKeys = ['_rowVariant', '_cellVariants', '_showDetails'];
  9173. Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(sample).forEach(function (k) {
  9174. if (!ignoredKeys.includes(k)) {
  9175. fields.push({ key: k, label: __WEBPACK_IMPORTED_MODULE_0_lodash_startcase___default()(k) });
  9176. }
  9177. });
  9178. }
  9179. // Ensure we have a unique array of fields and that they have String labels
  9180. var memo = {};
  9181. return fields.filter(function (f) {
  9182. if (!memo[f.key]) {
  9183. memo[f.key] = true;
  9184. f.label = typeof f.label === 'string' ? f.label : __WEBPACK_IMPORTED_MODULE_0_lodash_startcase___default()(f.key);
  9185. return true;
  9186. }
  9187. return false;
  9188. });
  9189. },
  9190. computedItems: function computedItems() {
  9191. // Grab some props/data to ensure reactivity
  9192. var perPage = this.perPage;
  9193. var currentPage = this.currentPage;
  9194. var filter = this.filter;
  9195. var sortBy = this.localSortBy;
  9196. var sortDesc = this.localSortDesc;
  9197. var sortCompare = this.sortCompare;
  9198. var localFiltering = this.localFiltering;
  9199. var localSorting = this.localSorting;
  9200. var localPaging = this.localPaging;
  9201. var items = this.hasProvider ? this.localItems : this.items;
  9202. if (!items) {
  9203. this.$nextTick(this._providerUpdate);
  9204. return [];
  9205. }
  9206. // Array copy for sorting, filtering, etc.
  9207. items = items.slice();
  9208. // Apply local filter
  9209. if (filter && localFiltering) {
  9210. if (filter instanceof Function) {
  9211. items = items.filter(filter);
  9212. } else {
  9213. var regex = void 0;
  9214. if (filter instanceof RegExp) {
  9215. regex = filter;
  9216. } else {
  9217. regex = new RegExp('.*' + filter + '.*', 'ig');
  9218. }
  9219. items = items.filter(function (item) {
  9220. var test = regex.test(recToString(item));
  9221. regex.lastIndex = 0;
  9222. return test;
  9223. });
  9224. }
  9225. }
  9226. if (localFiltering) {
  9227. // Make a local copy of filtered items to trigger filtered event
  9228. this.filteredItems = items.slice();
  9229. }
  9230. // Apply local Sort
  9231. if (sortBy && localSorting) {
  9232. items = Object(__WEBPACK_IMPORTED_MODULE_3__utils_stable_sort__["a" /* default */])(items, function (a, b) {
  9233. var ret = null;
  9234. if (typeof sortCompare === 'function') {
  9235. // Call user provided sortCompare routine
  9236. ret = sortCompare(a, b, sortBy);
  9237. }
  9238. if (ret === null || ret === undefined) {
  9239. // Fallback to defaultSortCompare if sortCompare not defined or returns null
  9240. ret = defaultSortCompare(a, b, sortBy);
  9241. }
  9242. // Handle sorting direction
  9243. return (ret || 0) * (sortDesc ? -1 : 1);
  9244. });
  9245. }
  9246. // Apply local pagination
  9247. if (Boolean(perPage) && localPaging) {
  9248. // Grab the current page of data (which may be past filtered items)
  9249. items = items.slice((currentPage - 1) * perPage, currentPage * perPage);
  9250. }
  9251. // Update the value model with the filtered/sorted/paginated data set
  9252. this.$emit('input', items);
  9253. return items;
  9254. },
  9255. computedBusy: function computedBusy() {
  9256. return this.busy || this.localBusy;
  9257. }
  9258. },
  9259. methods: {
  9260. keys: __WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */],
  9261. fieldClasses: function fieldClasses(field) {
  9262. return [field.sortable ? 'sorting' : '', field.sortable && this.localSortBy === field.key ? 'sorting_' + (this.localSortDesc ? 'desc' : 'asc') : '', field.variant ? 'table-' + field.variant : '', field.class ? field.class : '', field.thClass ? field.thClass : ''];
  9263. },
  9264. tdClasses: function tdClasses(field, item) {
  9265. var cellVariant = '';
  9266. if (item._cellVariants && item._cellVariants[field.key]) {
  9267. cellVariant = (this.dark ? 'bg' : 'table') + '-' + item._cellVariants[field.key];
  9268. }
  9269. return [field.variant && !cellVariant ? (this.dark ? 'bg' : 'table') + '-' + field.variant : '', cellVariant, field.class ? field.class : '', this.getTdValues(item, field.key, field.tdClass, '')];
  9270. },
  9271. tdAttrs: function tdAttrs(field, item, colIndex) {
  9272. var attrs = {};
  9273. attrs['aria-colindex'] = String(colIndex + 1);
  9274. if (this.isStacked) {
  9275. // Generate the "header cell" label content in stacked mode
  9276. attrs['data-label'] = field.label;
  9277. if (field.isRowHeader) {
  9278. attrs['role'] = 'rowheader';
  9279. } else {
  9280. attrs['role'] = 'cell';
  9281. }
  9282. }
  9283. return Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["a" /* assign */])({}, attrs, this.getTdValues(item, field.key, field.tdAttr, {}));
  9284. },
  9285. rowClasses: function rowClasses(item) {
  9286. return [item._rowVariant ? (this.dark ? 'bg' : 'table') + '-' + item._rowVariant : '', this.tbodyTrClass];
  9287. },
  9288. rowClicked: function rowClicked(e, item, index) {
  9289. if (this.stopIfBusy(e)) {
  9290. // If table is busy (via provider) then don't propagate
  9291. return;
  9292. }
  9293. this.$emit('row-clicked', item, index, e);
  9294. },
  9295. rowDblClicked: function rowDblClicked(e, item, index) {
  9296. if (this.stopIfBusy(e)) {
  9297. // If table is busy (via provider) then don't propagate
  9298. return;
  9299. }
  9300. this.$emit('row-dblclicked', item, index, e);
  9301. },
  9302. rowHovered: function rowHovered(e, item, index) {
  9303. if (this.stopIfBusy(e)) {
  9304. // If table is busy (via provider) then don't propagate
  9305. return;
  9306. }
  9307. this.$emit('row-hovered', item, index, e);
  9308. },
  9309. headClicked: function headClicked(e, field) {
  9310. var _this4 = this;
  9311. if (this.stopIfBusy(e)) {
  9312. // If table is busy (via provider) then don't propagate
  9313. return;
  9314. }
  9315. var sortChanged = false;
  9316. var toggleLocalSortDesc = function toggleLocalSortDesc() {
  9317. var sortDirection = field.sortDirection || _this4.sortDirection;
  9318. if (sortDirection === 'asc') {
  9319. _this4.localSortDesc = false;
  9320. } else if (sortDirection === 'desc') {
  9321. _this4.localSortDesc = true;
  9322. }
  9323. };
  9324. if (field.sortable) {
  9325. if (field.key === this.localSortBy) {
  9326. // Change sorting direction on current column
  9327. this.localSortDesc = !this.localSortDesc;
  9328. } else {
  9329. // Start sorting this column ascending
  9330. this.localSortBy = field.key;
  9331. toggleLocalSortDesc();
  9332. }
  9333. sortChanged = true;
  9334. } else if (this.localSortBy && !this.noSortReset) {
  9335. this.localSortBy = null;
  9336. toggleLocalSortDesc();
  9337. sortChanged = true;
  9338. }
  9339. this.$emit('head-clicked', field.key, field, e);
  9340. if (sortChanged) {
  9341. // Sorting parameters changed
  9342. this.$emit('sort-changed', this.context);
  9343. }
  9344. },
  9345. stopIfBusy: function stopIfBusy(evt) {
  9346. if (this.computedBusy) {
  9347. // If table is busy (via provider) then don't propagate
  9348. evt.preventDefault();
  9349. evt.stopPropagation();
  9350. return true;
  9351. }
  9352. return false;
  9353. },
  9354. refresh: function refresh() {
  9355. // Expose refresh method
  9356. if (this.hasProvider) {
  9357. this._providerUpdate();
  9358. }
  9359. },
  9360. _providerSetLocal: function _providerSetLocal(items) {
  9361. this.localItems = items && items.length > 0 ? items.slice() : [];
  9362. this.localBusy = false;
  9363. this.$emit('refreshed');
  9364. // Deprecated root emit
  9365. this.emitOnRoot('table::refreshed', this.id);
  9366. // New root emit
  9367. if (this.id) {
  9368. this.emitOnRoot('bv::table::refreshed', this.id);
  9369. }
  9370. },
  9371. _providerUpdate: function _providerUpdate() {
  9372. var _this5 = this;
  9373. // Refresh the provider items
  9374. if (this.computedBusy || !this.hasProvider) {
  9375. // Don't refresh remote data if we are 'busy' or if no provider
  9376. return;
  9377. }
  9378. // Set internal busy state
  9379. this.localBusy = true;
  9380. // Call provider function with context and optional callback
  9381. var data = this.items(this.context, this._providerSetLocal);
  9382. if (data && data.then && typeof data.then === 'function') {
  9383. // Provider returned Promise
  9384. data.then(function (items) {
  9385. _this5._providerSetLocal(items);
  9386. });
  9387. } else {
  9388. // Provider returned Array data
  9389. this._providerSetLocal(data);
  9390. }
  9391. },
  9392. getTdValues: function getTdValues(item, key, tdValue, defValue) {
  9393. var parent = this.$parent;
  9394. if (tdValue) {
  9395. if (typeof tdValue === 'function') {
  9396. var value = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(item, key);
  9397. return tdValue(value, key, item);
  9398. } else if (typeof tdValue === 'string' && typeof parent[tdValue] === 'function') {
  9399. var _value = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(item, key);
  9400. return parent[tdValue](_value, key, item);
  9401. }
  9402. return tdValue;
  9403. }
  9404. return defValue;
  9405. },
  9406. getFormattedValue: function getFormattedValue(item, field) {
  9407. var key = field.key;
  9408. var formatter = field.formatter;
  9409. var parent = this.$parent;
  9410. var value = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(item, key);
  9411. if (formatter) {
  9412. if (typeof formatter === 'function') {
  9413. value = formatter(value, key, item);
  9414. } else if (typeof formatter === 'string' && typeof parent[formatter] === 'function') {
  9415. value = parent[formatter](value, key, item);
  9416. }
  9417. }
  9418. return value;
  9419. }
  9420. }
  9421. });
  9422. /***/ }),
  9423. /***/ "./node_modules/bootstrap-vue/es/components/tabs/index.js":
  9424. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9425. "use strict";
  9426. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tabs__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/tabs/tabs.js");
  9427. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__tab__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/tabs/tab.js");
  9428. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  9429. var components = {
  9430. bTabs: __WEBPACK_IMPORTED_MODULE_0__tabs__["a" /* default */],
  9431. bTab: __WEBPACK_IMPORTED_MODULE_1__tab__["a" /* default */]
  9432. };
  9433. var VuePlugin = {
  9434. install: function install(Vue) {
  9435. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
  9436. }
  9437. };
  9438. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  9439. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  9440. /***/ }),
  9441. /***/ "./node_modules/bootstrap-vue/es/components/tabs/tab.js":
  9442. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9443. "use strict";
  9444. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  9445. /* harmony default export */ __webpack_exports__["a"] = ({
  9446. mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */]],
  9447. render: function render(h) {
  9448. var content = h(false);
  9449. if (this.localActive || !this.computedLazy) {
  9450. content = h(this.tag, {
  9451. ref: 'panel',
  9452. class: this.tabClasses,
  9453. directives: [{ name: 'show', value: this.localActive }],
  9454. attrs: {
  9455. role: 'tabpanel',
  9456. id: this.safeId(),
  9457. 'aria-hidden': this.localActive ? 'false' : 'true',
  9458. 'aria-expanded': this.localActive ? 'true' : 'false',
  9459. 'aria-lablelledby': this.controlledBy || null
  9460. }
  9461. }, [this.$slots.default]);
  9462. }
  9463. return h('transition', {
  9464. props: { mode: 'out-in' },
  9465. on: {
  9466. beforeEnter: this.beforeEnter,
  9467. beforeLeave: this.beforeLeave
  9468. }
  9469. }, [content]);
  9470. },
  9471. methods: {
  9472. beforeEnter: function beforeEnter() {
  9473. var _this = this;
  9474. // change opacity 1 frame after display
  9475. // otherwise css transition won't happen
  9476. window.requestAnimationFrame(function () {
  9477. _this.show = true;
  9478. });
  9479. },
  9480. beforeLeave: function beforeLeave() {
  9481. this.show = false;
  9482. }
  9483. },
  9484. data: function data() {
  9485. return {
  9486. localActive: this.active && !this.disabled,
  9487. show: false
  9488. };
  9489. },
  9490. mounted: function mounted() {
  9491. this.show = this.localActive;
  9492. },
  9493. computed: {
  9494. tabClasses: function tabClasses() {
  9495. return ['tab-pane', this.$parent && this.$parent.card && !this.noBody ? 'card-body' : '', this.show ? 'show' : '', this.computedFade ? 'fade' : '', this.disabled ? 'disabled' : '', this.localActive ? 'active' : ''];
  9496. },
  9497. controlledBy: function controlledBy() {
  9498. return this.buttonId || this.safeId('__BV_tab_button__');
  9499. },
  9500. computedFade: function computedFade() {
  9501. return this.$parent.fade;
  9502. },
  9503. computedLazy: function computedLazy() {
  9504. return this.$parent.lazy;
  9505. },
  9506. _isTab: function _isTab() {
  9507. // For parent sniffing of child
  9508. return true;
  9509. }
  9510. },
  9511. props: {
  9512. active: {
  9513. type: Boolean,
  9514. default: false
  9515. },
  9516. tag: {
  9517. type: String,
  9518. default: 'div'
  9519. },
  9520. buttonId: {
  9521. type: String,
  9522. default: ''
  9523. },
  9524. title: {
  9525. type: String,
  9526. default: ''
  9527. },
  9528. titleItemClass: {
  9529. // Sniffed by tabs.vue and added to nav 'li.nav-item'
  9530. type: [String, Array, Object],
  9531. default: null
  9532. },
  9533. titleLinkClass: {
  9534. // Sniffed by tabs.vue and added to nav 'a.nav-link'
  9535. type: [String, Array, Object],
  9536. default: null
  9537. },
  9538. headHtml: {
  9539. // Is this actually ever used?
  9540. type: String,
  9541. default: null
  9542. },
  9543. disabled: {
  9544. type: Boolean,
  9545. default: false
  9546. },
  9547. noBody: {
  9548. type: Boolean,
  9549. default: false
  9550. },
  9551. href: {
  9552. type: String,
  9553. default: '#'
  9554. }
  9555. }
  9556. });
  9557. /***/ }),
  9558. /***/ "./node_modules/bootstrap-vue/es/components/tabs/tabs.js":
  9559. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9560. "use strict";
  9561. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
  9562. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_observe_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js");
  9563. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
  9564. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  9565. // Helper component
  9566. var bTabButtonHelper = {
  9567. name: 'bTabButtonHelper',
  9568. props: {
  9569. content: { type: [String, Array], default: '' },
  9570. href: { type: String, default: '#' },
  9571. posInSet: { type: Number, default: null },
  9572. setSize: { type: Number, default: null },
  9573. controls: { type: String, default: null },
  9574. id: { type: String, default: null },
  9575. active: { type: Boolean, default: false },
  9576. disabled: { type: Boolean, default: false },
  9577. linkClass: { default: null },
  9578. itemClass: { default: null },
  9579. noKeyNav: { type: Boolean, default: false }
  9580. },
  9581. render: function render(h) {
  9582. var link = h('a', {
  9583. class: ['nav-link', { active: this.active, disabled: this.disabled }, this.linkClass],
  9584. attrs: {
  9585. role: 'tab',
  9586. tabindex: this.noKeyNav ? null : '-1',
  9587. href: this.href,
  9588. id: this.id,
  9589. disabled: this.disabled,
  9590. 'aria-selected': this.active ? 'true' : 'false',
  9591. 'aria-setsize': this.setSize,
  9592. 'aria-posinset': this.posInSet,
  9593. 'aria-controls': this.controls
  9594. },
  9595. on: {
  9596. click: this.handleClick,
  9597. keydown: this.handleClick
  9598. }
  9599. }, this.content);
  9600. return h('li', { class: ['nav-item', this.itemClass], attrs: { role: 'presentation' } }, [link]);
  9601. },
  9602. methods: {
  9603. handleClick: function handleClick(evt) {
  9604. function stop() {
  9605. evt.preventDefault();
  9606. evt.stopPropagation();
  9607. }
  9608. if (evt.type !== 'click' && this.noKeyNav) {
  9609. return;
  9610. }
  9611. if (this.disabled) {
  9612. stop();
  9613. return;
  9614. }
  9615. if (evt.type === 'click' || evt.keyCode === __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__["a" /* default */].ENTER || evt.keyCode === __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__["a" /* default */].SPACE) {
  9616. stop();
  9617. this.$emit('click', evt);
  9618. }
  9619. }
  9620. }
  9621. };
  9622. /* harmony default export */ __webpack_exports__["a"] = ({
  9623. mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_id__["a" /* default */]],
  9624. render: function render(h) {
  9625. var _this = this,
  9626. _ref;
  9627. var tabs = this.tabs;
  9628. // Navigation 'buttons'
  9629. var buttons = tabs.map(function (tab, index) {
  9630. return h(bTabButtonHelper, {
  9631. key: index,
  9632. props: {
  9633. content: tab.$slots.title || tab.title,
  9634. href: tab.href,
  9635. id: tab.controlledBy || _this.safeId('_BV_tab_' + (index + 1) + '_'),
  9636. active: tab.localActive,
  9637. disabled: tab.disabled,
  9638. setSize: tabs.length,
  9639. posInSet: index + 1,
  9640. controls: _this.safeId('_BV_tab_container_'),
  9641. linkClass: tab.titleLinkClass,
  9642. itemClass: tab.titleItemClass,
  9643. noKeyNav: _this.noKeyNav
  9644. },
  9645. on: {
  9646. click: function click(evt) {
  9647. _this.setTab(index);
  9648. }
  9649. }
  9650. });
  9651. });
  9652. // Nav 'button' wrapper
  9653. var navs = h('ul', {
  9654. class: ['nav', (_ref = {}, _defineProperty(_ref, 'nav-' + this.navStyle, !this.noNavStyle), _defineProperty(_ref, 'card-header-' + this.navStyle, this.card && !this.vertical), _defineProperty(_ref, 'card-header', this.card && this.vertical), _defineProperty(_ref, 'h-100', this.card && this.vertical), _defineProperty(_ref, 'flex-column', this.vertical), _defineProperty(_ref, 'border-bottom-0', this.vertical), _defineProperty(_ref, 'rounded-0', this.vertical), _defineProperty(_ref, 'small', this.small), _ref), this.navClass],
  9655. attrs: {
  9656. role: 'tablist',
  9657. tabindex: this.noKeyNav ? null : '0',
  9658. id: this.safeId('_BV_tab_controls_')
  9659. },
  9660. on: { keydown: this.onKeynav }
  9661. }, [buttons, this.$slots.tabs]);
  9662. navs = h('div', {
  9663. class: [{
  9664. 'card-header': this.card && !this.vertical && !(this.end || this.bottom),
  9665. 'card-footer': this.card && !this.vertical && (this.end || this.bottom),
  9666. 'col-auto': this.vertical
  9667. }, this.navWrapperClass]
  9668. }, [navs]);
  9669. var empty = void 0;
  9670. if (tabs && tabs.length) {
  9671. empty = h(false);
  9672. } else {
  9673. empty = h('div', { class: ['tab-pane', 'active', { 'card-body': this.card }] }, this.$slots.empty);
  9674. }
  9675. // Main content section
  9676. var content = h('div', {
  9677. ref: 'tabsContainer',
  9678. class: ['tab-content', { col: this.vertical }, this.contentClass],
  9679. attrs: { id: this.safeId('_BV_tab_container_') }
  9680. }, [this.$slots.default, empty]);
  9681. // Render final output
  9682. return h(this.tag, {
  9683. class: ['tabs', { row: this.vertical, 'no-gutters': this.vertical && this.card }],
  9684. attrs: { id: this.safeId() }
  9685. }, [this.end || this.bottom ? content : h(false), [navs], this.end || this.bottom ? h(false) : content]);
  9686. },
  9687. data: function data() {
  9688. return {
  9689. currentTab: this.value,
  9690. tabs: []
  9691. };
  9692. },
  9693. props: {
  9694. tag: {
  9695. type: String,
  9696. default: 'div'
  9697. },
  9698. card: {
  9699. type: Boolean,
  9700. default: false
  9701. },
  9702. small: {
  9703. type: Boolean,
  9704. default: false
  9705. },
  9706. value: {
  9707. type: Number,
  9708. default: null
  9709. },
  9710. pills: {
  9711. type: Boolean,
  9712. default: false
  9713. },
  9714. vertical: {
  9715. type: Boolean,
  9716. default: false
  9717. },
  9718. bottom: {
  9719. type: Boolean,
  9720. default: false
  9721. },
  9722. end: {
  9723. // Synonym for 'bottom'
  9724. type: Boolean,
  9725. default: false
  9726. },
  9727. noFade: {
  9728. type: Boolean,
  9729. default: false
  9730. },
  9731. noNavStyle: {
  9732. type: Boolean,
  9733. default: false
  9734. },
  9735. noKeyNav: {
  9736. type: Boolean,
  9737. default: false
  9738. },
  9739. lazy: {
  9740. // This prop is sniffed by the tab child
  9741. type: Boolean,
  9742. default: false
  9743. },
  9744. contentClass: {
  9745. type: [String, Array, Object],
  9746. default: null
  9747. },
  9748. navClass: {
  9749. type: [String, Array, Object],
  9750. default: null
  9751. },
  9752. navWrapperClass: {
  9753. type: [String, Array, Object],
  9754. default: null
  9755. }
  9756. },
  9757. watch: {
  9758. currentTab: function currentTab(val, old) {
  9759. if (val === old) {
  9760. return;
  9761. }
  9762. this.$root.$emit('changed::tab', this, val, this.tabs[val]);
  9763. this.$emit('input', val);
  9764. this.tabs[val].$emit('click');
  9765. },
  9766. value: function value(val, old) {
  9767. if (val === old) {
  9768. return;
  9769. }
  9770. if (typeof old !== 'number') {
  9771. old = 0;
  9772. }
  9773. // Moving left or right?
  9774. var direction = val < old ? -1 : 1;
  9775. this.setTab(val, false, direction);
  9776. }
  9777. },
  9778. computed: {
  9779. fade: function fade() {
  9780. // This computed prop is sniffed by the tab child
  9781. return !this.noFade;
  9782. },
  9783. navStyle: function navStyle() {
  9784. return this.pills ? 'pills' : 'tabs';
  9785. }
  9786. },
  9787. methods: {
  9788. /**
  9789. * Util: Return the sign of a number (as -1, 0, or 1)
  9790. */
  9791. sign: function sign(x) {
  9792. return x === 0 ? 0 : x > 0 ? 1 : -1;
  9793. },
  9794. /*
  9795. * handle keyboard navigation
  9796. */
  9797. onKeynav: function onKeynav(evt) {
  9798. if (this.noKeyNav) {
  9799. return;
  9800. }
  9801. var key = evt.keyCode;
  9802. var shift = evt.shiftKey;
  9803. function stop() {
  9804. evt.preventDefault();
  9805. evt.stopPropagation();
  9806. }
  9807. if (key === __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__["a" /* default */].UP || key === __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__["a" /* default */].LEFT) {
  9808. stop();
  9809. if (shift) {
  9810. this.setTab(0, false, 1);
  9811. } else {
  9812. this.previousTab();
  9813. }
  9814. } else if (key === __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__["a" /* default */].DOWN || key === __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__["a" /* default */].RIGHT) {
  9815. stop();
  9816. if (shift) {
  9817. this.setTab(this.tabs.length - 1, false, -1);
  9818. } else {
  9819. this.nextTab();
  9820. }
  9821. }
  9822. },
  9823. /**
  9824. * Move to next tab
  9825. */
  9826. nextTab: function nextTab() {
  9827. this.setTab(this.currentTab + 1, false, 1);
  9828. },
  9829. /**
  9830. * Move to previous tab
  9831. */
  9832. previousTab: function previousTab() {
  9833. this.setTab(this.currentTab - 1, false, -1);
  9834. },
  9835. /**
  9836. * Set active tab on the tabs collection and the child 'tab' component
  9837. * Index is the tab we want to activate. Direction is the direction we are moving
  9838. * so if the tab we requested is disabled, we can skip over it.
  9839. * Force is used by updateTabs to ensure we have cleared any previous active tabs.
  9840. */
  9841. setTab: function setTab(index, force, direction) {
  9842. var _this2 = this;
  9843. direction = this.sign(direction || 0);
  9844. index = index || 0;
  9845. // Prevent setting same tab and infinite loops!
  9846. if (!force && index === this.currentTab) {
  9847. return;
  9848. }
  9849. var tab = this.tabs[index];
  9850. // Don't go beyond indexes!
  9851. if (!tab) {
  9852. // Reset the v-model to the current Tab
  9853. this.$emit('input', this.currentTab);
  9854. return;
  9855. }
  9856. // Ignore or Skip disabled
  9857. if (tab.disabled) {
  9858. if (direction) {
  9859. // Skip to next non disabled tab in specified direction (recursive)
  9860. this.setTab(index + direction, force, direction);
  9861. }
  9862. return;
  9863. }
  9864. // Activate requested current tab, and deactivte any old tabs
  9865. this.tabs.forEach(function (t) {
  9866. if (t === tab) {
  9867. // Set new tab as active
  9868. _this2.$set(t, 'localActive', true);
  9869. } else {
  9870. // Ensure non current tabs are not active
  9871. _this2.$set(t, 'localActive', false);
  9872. }
  9873. });
  9874. // Update currentTab
  9875. this.currentTab = index;
  9876. },
  9877. /**
  9878. * Dynamically update tabs list
  9879. */
  9880. updateTabs: function updateTabs() {
  9881. // Probe tabs
  9882. this.tabs = this.$children.filter(function (child) {
  9883. return child._isTab;
  9884. });
  9885. // Set initial active tab
  9886. var tabIndex = null;
  9887. // Find *last* active non-dsabled tab in current tabs
  9888. // We trust tab state over currentTab
  9889. this.tabs.forEach(function (tab, index) {
  9890. if (tab.localActive && !tab.disabled) {
  9891. tabIndex = index;
  9892. }
  9893. });
  9894. // Else try setting to currentTab
  9895. if (tabIndex === null) {
  9896. if (this.currentTab >= this.tabs.length) {
  9897. // Handle last tab being removed
  9898. this.setTab(this.tabs.length - 1, true, -1);
  9899. return;
  9900. } else if (this.tabs[this.currentTab] && !this.tabs[this.currentTab].disabled) {
  9901. tabIndex = this.currentTab;
  9902. }
  9903. }
  9904. // Else find *first* non-disabled tab in current tabs
  9905. if (tabIndex === null) {
  9906. this.tabs.forEach(function (tab, index) {
  9907. if (!tab.disabled && tabIndex === null) {
  9908. tabIndex = index;
  9909. }
  9910. });
  9911. }
  9912. this.setTab(tabIndex || 0, true, 0);
  9913. }
  9914. },
  9915. mounted: function mounted() {
  9916. this.updateTabs();
  9917. // Observe Child changes so we can notify tabs change
  9918. Object(__WEBPACK_IMPORTED_MODULE_1__utils_observe_dom__["a" /* default */])(this.$refs.tabsContainer, this.updateTabs.bind(this), {
  9919. subtree: false
  9920. });
  9921. }
  9922. });
  9923. /***/ }),
  9924. /***/ "./node_modules/bootstrap-vue/es/components/tooltip/index.js":
  9925. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9926. "use strict";
  9927. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tooltip__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/tooltip/tooltip.js");
  9928. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  9929. var components = {
  9930. bTooltip: __WEBPACK_IMPORTED_MODULE_0__tooltip__["a" /* default */]
  9931. };
  9932. var VuePlugin = {
  9933. install: function install(Vue) {
  9934. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
  9935. }
  9936. };
  9937. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  9938. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  9939. /***/ }),
  9940. /***/ "./node_modules/bootstrap-vue/es/components/tooltip/tooltip.js":
  9941. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9942. "use strict";
  9943. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_tooltip_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/tooltip.class.js");
  9944. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  9945. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_toolpop__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/toolpop.js");
  9946. /* harmony default export */ __webpack_exports__["a"] = ({
  9947. mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_toolpop__["a" /* default */]],
  9948. render: function render(h) {
  9949. return h('div', { class: ['d-none'], style: { display: 'none' }, attrs: { 'aria-hidden': true } }, [h('div', { ref: 'title' }, this.$slots.default)]);
  9950. },
  9951. data: function data() {
  9952. return {};
  9953. },
  9954. props: {
  9955. title: {
  9956. type: String,
  9957. default: ''
  9958. },
  9959. triggers: {
  9960. type: [String, Array],
  9961. default: 'hover focus'
  9962. },
  9963. placement: {
  9964. type: String,
  9965. default: 'top'
  9966. }
  9967. },
  9968. methods: {
  9969. createToolpop: function createToolpop() {
  9970. // getTarget is in toolpop mixin
  9971. var target = this.getTarget();
  9972. if (target) {
  9973. this._toolpop = new __WEBPACK_IMPORTED_MODULE_0__utils_tooltip_class__["a" /* default */](target, this.getConfig(), this.$root);
  9974. } else {
  9975. this._toolpop = null;
  9976. Object(__WEBPACK_IMPORTED_MODULE_1__utils_warn__["a" /* default */])("b-tooltip: 'target' element not found!");
  9977. }
  9978. return this._toolpop;
  9979. }
  9980. }
  9981. });
  9982. /***/ }),
  9983. /***/ "./node_modules/bootstrap-vue/es/directives/index.js":
  9984. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9985. "use strict";
  9986. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  9987. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__toggle__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/toggle/index.js");
  9988. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__modal__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/modal/index.js");
  9989. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__scrollspy__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/scrollspy/index.js");
  9990. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__tooltip__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/tooltip/index.js");
  9991. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__popover__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/popover/index.js");
  9992. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Toggle", function() { return __WEBPACK_IMPORTED_MODULE_0__toggle__["a"]; });
  9993. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return __WEBPACK_IMPORTED_MODULE_1__modal__["a"]; });
  9994. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Scrollspy", function() { return __WEBPACK_IMPORTED_MODULE_2__scrollspy__["a"]; });
  9995. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return __WEBPACK_IMPORTED_MODULE_3__tooltip__["a"]; });
  9996. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Popover", function() { return __WEBPACK_IMPORTED_MODULE_4__popover__["a"]; });
  9997. /***/ }),
  9998. /***/ "./node_modules/bootstrap-vue/es/directives/modal/index.js":
  9999. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10000. "use strict";
  10001. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__modal__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/modal/modal.js");
  10002. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  10003. var directives = {
  10004. bModal: __WEBPACK_IMPORTED_MODULE_0__modal__["a" /* default */]
  10005. };
  10006. var VuePlugin = {
  10007. install: function install(Vue) {
  10008. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["b" /* registerDirectives */])(Vue, directives);
  10009. }
  10010. };
  10011. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  10012. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  10013. /***/ }),
  10014. /***/ "./node_modules/bootstrap-vue/es/directives/modal/modal.js":
  10015. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10016. "use strict";
  10017. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_target__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/target.js");
  10018. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  10019. var listenTypes = { click: true };
  10020. /* harmony default export */ __webpack_exports__["a"] = ({
  10021. // eslint-disable-next-line no-shadow-restricted-names
  10022. bind: function bind(el, binding, vnode) {
  10023. Object(__WEBPACK_IMPORTED_MODULE_0__utils_target__["a" /* bindTargets */])(vnode, binding, listenTypes, function (_ref) {
  10024. var targets = _ref.targets,
  10025. vnode = _ref.vnode;
  10026. targets.forEach(function (target) {
  10027. vnode.context.$root.$emit('bv::show::modal', target, vnode.elm);
  10028. });
  10029. });
  10030. if (el.tagName !== 'BUTTON') {
  10031. // If element is not a button, we add `role="button"` for accessibility
  10032. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(el, 'role', 'button');
  10033. }
  10034. },
  10035. unbind: function unbind(el, binding, vnode) {
  10036. Object(__WEBPACK_IMPORTED_MODULE_0__utils_target__["c" /* unbindTargets */])(vnode, binding, listenTypes);
  10037. if (el.tagName !== 'BUTTON') {
  10038. // If element is not a button, we add `role="button"` for accessibility
  10039. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["r" /* removeAttr */])(el, 'role', 'button');
  10040. }
  10041. }
  10042. });
  10043. /***/ }),
  10044. /***/ "./node_modules/bootstrap-vue/es/directives/popover/index.js":
  10045. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10046. "use strict";
  10047. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__popover__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/popover/popover.js");
  10048. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  10049. var directives = {
  10050. bPopover: __WEBPACK_IMPORTED_MODULE_0__popover__["a" /* default */]
  10051. };
  10052. var VuePlugin = {
  10053. install: function install(Vue) {
  10054. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["b" /* registerDirectives */])(Vue, directives);
  10055. }
  10056. };
  10057. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  10058. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  10059. /***/ }),
  10060. /***/ "./node_modules/bootstrap-vue/es/directives/popover/popover.js":
  10061. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10062. "use strict";
  10063. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_popper_js__ = __webpack_require__("./node_modules/popper.js/dist/esm/popper.js");
  10064. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_popover_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/popover.class.js");
  10065. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  10066. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  10067. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  10068. var inBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
  10069. // Key which we use to store tooltip object on element
  10070. var BVPO = '__BV_PopOver__';
  10071. // Valid event triggers
  10072. var validTriggers = {
  10073. 'focus': true,
  10074. 'hover': true,
  10075. 'click': true,
  10076. 'blur': true
  10077. // Build a PopOver config based on bindings (if any)
  10078. // Arguments and modifiers take precedence over pased value config object
  10079. /* istanbul ignore next: not easy to test */
  10080. };function parseBindings(bindings) {
  10081. // We start out with a blank config
  10082. var config = {};
  10083. // Process bindings.value
  10084. if (typeof bindings.value === 'string') {
  10085. // Value is popover content (html optionally supported)
  10086. config.content = bindings.value;
  10087. } else if (typeof bindings.value === 'function') {
  10088. // Content generator function
  10089. config.content = bindings.value;
  10090. } else if (_typeof(bindings.value) === 'object') {
  10091. // Value is config object, so merge
  10092. config = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])(bindings.value);
  10093. }
  10094. // If Argument, assume element ID of container element
  10095. if (bindings.arg) {
  10096. // Element ID specified as arg. We must prepend '#' to become a CSS selector
  10097. config.container = '#' + bindings.arg;
  10098. }
  10099. // Process modifiers
  10100. Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(bindings.modifiers).forEach(function (mod) {
  10101. if (/^html$/.test(mod)) {
  10102. // Title allows HTML
  10103. config.html = true;
  10104. } else if (/^nofade$/.test(mod)) {
  10105. // no animation
  10106. config.animation = false;
  10107. } else if (/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/.test(mod)) {
  10108. // placement of popover
  10109. config.placement = mod;
  10110. } else if (/^(window|viewport)$/.test(mod)) {
  10111. // bounday of popover
  10112. config.boundary = mod;
  10113. } else if (/^d\d+$/.test(mod)) {
  10114. // delay value
  10115. var delay = parseInt(mod.slice(1), 10) || 0;
  10116. if (delay) {
  10117. config.delay = delay;
  10118. }
  10119. } else if (/^o-?\d+$/.test(mod)) {
  10120. // offset value (negative allowed)
  10121. var offset = parseInt(mod.slice(1), 10) || 0;
  10122. if (offset) {
  10123. config.offset = offset;
  10124. }
  10125. }
  10126. });
  10127. // Special handling of event trigger modifiers Trigger is a space separated list
  10128. var selectedTriggers = {};
  10129. // parse current config object trigger
  10130. var triggers = typeof config.trigger === 'string' ? config.trigger.trim().split(/\s+/) : [];
  10131. triggers.forEach(function (trigger) {
  10132. if (validTriggers[trigger]) {
  10133. selectedTriggers[trigger] = true;
  10134. }
  10135. });
  10136. // Parse Modifiers for triggers
  10137. Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(validTriggers).forEach(function (trigger) {
  10138. if (bindings.modifiers[trigger]) {
  10139. selectedTriggers[trigger] = true;
  10140. }
  10141. });
  10142. // Sanitize triggers
  10143. config.trigger = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(selectedTriggers).join(' ');
  10144. if (config.trigger === 'blur') {
  10145. // Blur by itself is useless, so convert it to focus
  10146. config.trigger = 'focus';
  10147. }
  10148. if (!config.trigger) {
  10149. // remove trigger config
  10150. delete config.trigger;
  10151. }
  10152. return config;
  10153. }
  10154. //
  10155. // Add or Update popover on our element
  10156. //
  10157. /* istanbul ignore next: not easy to test */
  10158. function applyBVPO(el, bindings, vnode) {
  10159. if (!inBrowser) {
  10160. return;
  10161. }
  10162. if (!__WEBPACK_IMPORTED_MODULE_0_popper_js__["default"]) {
  10163. // Popper is required for tooltips to work
  10164. Object(__WEBPACK_IMPORTED_MODULE_3__utils_warn__["a" /* default */])('v-b-popover: Popper.js is required for popovers to work');
  10165. return;
  10166. }
  10167. if (el[BVPO]) {
  10168. el[BVPO].updateConfig(parseBindings(bindings));
  10169. } else {
  10170. el[BVPO] = new __WEBPACK_IMPORTED_MODULE_1__utils_popover_class__["a" /* default */](el, parseBindings(bindings), vnode.context.$root);
  10171. }
  10172. };
  10173. //
  10174. // Remove popover on our element
  10175. //
  10176. /* istanbul ignore next */
  10177. function removeBVPO(el) {
  10178. if (!inBrowser) {
  10179. return;
  10180. }
  10181. if (el[BVPO]) {
  10182. el[BVPO].destroy();
  10183. el[BVPO] = null;
  10184. delete el[BVPO];
  10185. }
  10186. }
  10187. /*
  10188. * Export our directive
  10189. */
  10190. /* istanbul ignore next: not easy to test */
  10191. /* harmony default export */ __webpack_exports__["a"] = ({
  10192. bind: function bind(el, bindings, vnode) {
  10193. applyBVPO(el, bindings, vnode);
  10194. },
  10195. inserted: function inserted(el, bindings, vnode) {
  10196. applyBVPO(el, bindings, vnode);
  10197. },
  10198. update: function update(el, bindings, vnode) {
  10199. if (bindings.value !== bindings.oldValue) {
  10200. applyBVPO(el, bindings, vnode);
  10201. }
  10202. },
  10203. componentUpdated: function componentUpdated(el, bindings, vnode) {
  10204. if (bindings.value !== bindings.oldValue) {
  10205. applyBVPO(el, bindings, vnode);
  10206. }
  10207. },
  10208. unbind: function unbind(el) {
  10209. removeBVPO(el);
  10210. }
  10211. });
  10212. /***/ }),
  10213. /***/ "./node_modules/bootstrap-vue/es/directives/scrollspy/index.js":
  10214. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10215. "use strict";
  10216. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__scrollspy__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.js");
  10217. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  10218. var directives = {
  10219. bScrollspy: __WEBPACK_IMPORTED_MODULE_0__scrollspy__["a" /* default */]
  10220. };
  10221. var VuePlugin = {
  10222. install: function install(Vue) {
  10223. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["b" /* registerDirectives */])(Vue, directives);
  10224. }
  10225. };
  10226. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  10227. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  10228. /***/ }),
  10229. /***/ "./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.class.js":
  10230. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10231. "use strict";
  10232. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  10233. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_observe_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js");
  10234. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  10235. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  10236. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  10237. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  10238. /*
  10239. * ScrollSpy class definition
  10240. */
  10241. /*
  10242. * Constants / Defaults
  10243. */
  10244. var NAME = 'v-b-scrollspy';
  10245. var ACTIVATE_EVENT = 'bv::scrollspy::activate';
  10246. var Default = {
  10247. element: 'body',
  10248. offset: 10,
  10249. method: 'auto',
  10250. throttle: 75
  10251. };
  10252. var DefaultType = {
  10253. element: '(string|element|component)',
  10254. offset: 'number',
  10255. method: 'string',
  10256. throttle: 'number'
  10257. };
  10258. var ClassName = {
  10259. DROPDOWN_ITEM: 'dropdown-item',
  10260. ACTIVE: 'active'
  10261. };
  10262. var Selector = {
  10263. ACTIVE: '.active',
  10264. NAV_LIST_GROUP: '.nav, .list-group',
  10265. NAV_LINKS: '.nav-link',
  10266. NAV_ITEMS: '.nav-item',
  10267. LIST_ITEMS: '.list-group-item',
  10268. DROPDOWN: '.dropdown, .dropup',
  10269. DROPDOWN_ITEMS: '.dropdown-item',
  10270. DROPDOWN_TOGGLE: '.dropdown-toggle'
  10271. };
  10272. var OffsetMethod = {
  10273. OFFSET: 'offset',
  10274. POSITION: 'position'
  10275. // HREFs must start with # but can be === '#', or start with '#/' or '#!' (which can be router links)
  10276. };var HREF_REGEX = /^#[^/!]+/;
  10277. // Transition Events
  10278. var TransitionEndEvents = ['webkitTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd'];
  10279. /*
  10280. * Utility Methods
  10281. */
  10282. // Better var type detection
  10283. /* istanbul ignore next: not easy to test */
  10284. function toType(obj) {
  10285. return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
  10286. }
  10287. // Check config properties for expected types
  10288. /* istanbul ignore next: not easy to test */
  10289. function typeCheckConfig(componentName, config, configTypes) {
  10290. for (var property in configTypes) {
  10291. if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
  10292. var expectedTypes = configTypes[property];
  10293. var value = config[property];
  10294. var valueType = value && Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["l" /* isElement */])(value) ? 'element' : toType(value);
  10295. // handle Vue instances
  10296. valueType = value && value._isVue ? 'component' : valueType;
  10297. if (!new RegExp(expectedTypes).test(valueType)) {
  10298. Object(__WEBPACK_IMPORTED_MODULE_2__utils_warn__["a" /* default */])(componentName + ': Option "' + property + '" provided type "' + valueType + '", but expected type "' + expectedTypes + '"');
  10299. }
  10300. }
  10301. }
  10302. }
  10303. /*
  10304. * ------------------------------------------------------------------------
  10305. * Class Definition
  10306. * ------------------------------------------------------------------------
  10307. */
  10308. /* istanbul ignore next: not easy to test */
  10309. var ScrollSpy = function () {
  10310. function ScrollSpy(element, config, $root) {
  10311. _classCallCheck(this, ScrollSpy);
  10312. // The element we activate links in
  10313. this.$el = element;
  10314. this.$scroller = null;
  10315. this.$selector = [Selector.NAV_LINKS, Selector.LIST_ITEMS, Selector.DROPDOWN_ITEMS].join(',');
  10316. this.$offsets = [];
  10317. this.$targets = [];
  10318. this.$activeTarget = null;
  10319. this.$scrollHeight = 0;
  10320. this.$resizeTimeout = null;
  10321. this.$obs_scroller = null;
  10322. this.$obs_targets = null;
  10323. this.$root = $root || null;
  10324. this.$config = null;
  10325. this.updateConfig(config);
  10326. }
  10327. _createClass(ScrollSpy, [{
  10328. key: 'updateConfig',
  10329. value: function updateConfig(config, $root) {
  10330. if (this.$scroller) {
  10331. // Just in case out scroll element has changed
  10332. this.unlisten();
  10333. this.$scroller = null;
  10334. }
  10335. var cfg = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])({}, this.constructor.Default, config);
  10336. if ($root) {
  10337. this.$root = $root;
  10338. }
  10339. typeCheckConfig(this.constructor.Name, cfg, this.constructor.DefaultType);
  10340. this.$config = cfg;
  10341. if (this.$root) {
  10342. var self = this;
  10343. this.$root.$nextTick(function () {
  10344. self.listen();
  10345. });
  10346. } else {
  10347. this.listen();
  10348. }
  10349. }
  10350. }, {
  10351. key: 'dispose',
  10352. value: function dispose() {
  10353. this.unlisten();
  10354. clearTimeout(this.$resizeTimeout);
  10355. this.$resizeTimeout = null;
  10356. this.$el = null;
  10357. this.$config = null;
  10358. this.$scroller = null;
  10359. this.$selector = null;
  10360. this.$offsets = null;
  10361. this.$targets = null;
  10362. this.$activeTarget = null;
  10363. this.$scrollHeight = null;
  10364. }
  10365. }, {
  10366. key: 'listen',
  10367. value: function listen() {
  10368. var _this = this;
  10369. var scroller = this.getScroller();
  10370. if (scroller && scroller.tagName !== 'BODY') {
  10371. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["d" /* eventOn */])(scroller, 'scroll', this);
  10372. }
  10373. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["d" /* eventOn */])(window, 'scroll', this);
  10374. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["d" /* eventOn */])(window, 'resize', this);
  10375. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["d" /* eventOn */])(window, 'orientationchange', this);
  10376. TransitionEndEvents.forEach(function (evtName) {
  10377. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["d" /* eventOn */])(window, evtName, _this);
  10378. });
  10379. this.setObservers(true);
  10380. // Scedule a refresh
  10381. this.handleEvent('refresh');
  10382. }
  10383. }, {
  10384. key: 'unlisten',
  10385. value: function unlisten() {
  10386. var _this2 = this;
  10387. var scroller = this.getScroller();
  10388. this.setObservers(false);
  10389. if (scroller && scroller.tagName !== 'BODY') {
  10390. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["c" /* eventOff */])(scroller, 'scroll', this);
  10391. }
  10392. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["c" /* eventOff */])(window, 'scroll', this);
  10393. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["c" /* eventOff */])(window, 'resize', this);
  10394. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["c" /* eventOff */])(window, 'orientationchange', this);
  10395. TransitionEndEvents.forEach(function (evtName) {
  10396. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["c" /* eventOff */])(window, evtName, _this2);
  10397. });
  10398. }
  10399. }, {
  10400. key: 'setObservers',
  10401. value: function setObservers(on) {
  10402. var _this3 = this;
  10403. // We observe both the scroller for content changes, and the target links
  10404. if (this.$obs_scroller) {
  10405. this.$obs_scroller.disconnect();
  10406. this.$obs_scroller = null;
  10407. }
  10408. if (this.$obs_targets) {
  10409. this.$obs_targets.disconnect();
  10410. this.$obs_targets = null;
  10411. }
  10412. if (on) {
  10413. this.$obs_targets = Object(__WEBPACK_IMPORTED_MODULE_1__utils_observe_dom__["a" /* default */])(this.$el, function () {
  10414. _this3.handleEvent('mutation');
  10415. }, {
  10416. subtree: true,
  10417. childList: true,
  10418. attributes: true,
  10419. attributeFilter: ['href']
  10420. });
  10421. this.$obs_scroller = Object(__WEBPACK_IMPORTED_MODULE_1__utils_observe_dom__["a" /* default */])(this.getScroller(), function () {
  10422. _this3.handleEvent('mutation');
  10423. }, {
  10424. subtree: true,
  10425. childList: true,
  10426. characterData: true,
  10427. attributes: true,
  10428. attributeFilter: ['id', 'style', 'class']
  10429. });
  10430. }
  10431. }
  10432. // general event handler
  10433. }, {
  10434. key: 'handleEvent',
  10435. value: function handleEvent(evt) {
  10436. var type = typeof evt === 'string' ? evt : evt.type;
  10437. var self = this;
  10438. function resizeThrottle() {
  10439. if (!self.$resizeTimeout) {
  10440. self.$resizeTimeout = setTimeout(function () {
  10441. self.refresh();
  10442. self.process();
  10443. self.$resizeTimeout = null;
  10444. }, self.$config.throttle);
  10445. }
  10446. }
  10447. if (type === 'scroll') {
  10448. if (!this.$obs_scroller) {
  10449. // Just in case we are added to the DOM before the scroll target is
  10450. // We re-instantiate our listeners, just in case
  10451. this.listen();
  10452. }
  10453. this.process();
  10454. } else if (/(resize|orientationchange|mutation|refresh)/.test(type)) {
  10455. // Postpone these events by throttle time
  10456. resizeThrottle();
  10457. }
  10458. }
  10459. // Refresh the list of target links on the element we are applied to
  10460. }, {
  10461. key: 'refresh',
  10462. value: function refresh() {
  10463. var _this4 = this;
  10464. var scroller = this.getScroller();
  10465. if (!scroller) {
  10466. return;
  10467. }
  10468. var autoMethod = scroller !== scroller.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
  10469. var method = this.$config.method === 'auto' ? autoMethod : this.$config.method;
  10470. var methodFn = method === OffsetMethod.POSITION ? __WEBPACK_IMPORTED_MODULE_3__utils_dom__["p" /* position */] : __WEBPACK_IMPORTED_MODULE_3__utils_dom__["o" /* offset */];
  10471. var offsetBase = method === OffsetMethod.POSITION ? this.getScrollTop() : 0;
  10472. this.$offsets = [];
  10473. this.$targets = [];
  10474. this.$scrollHeight = this.getScrollHeight();
  10475. // Find all the unique link href's
  10476. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["u" /* selectAll */])(this.$selector, this.$el).map(function (link) {
  10477. return Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["e" /* getAttr */])(link, 'href');
  10478. }).filter(function (href) {
  10479. return HREF_REGEX.test(href || '');
  10480. }).map(function (href) {
  10481. var el = Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["t" /* select */])(href, scroller);
  10482. if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["m" /* isVisible */])(el)) {
  10483. return {
  10484. offset: parseInt(methodFn(el).top, 10) + offsetBase,
  10485. target: href
  10486. };
  10487. }
  10488. return null;
  10489. }).filter(function (item) {
  10490. return item;
  10491. }).sort(function (a, b) {
  10492. return a.offset - b.offset;
  10493. }).reduce(function (memo, item) {
  10494. // record only unique targets/offfsets
  10495. if (!memo[item.target]) {
  10496. _this4.$offsets.push(item.offset);
  10497. _this4.$targets.push(item.target);
  10498. memo[item.target] = true;
  10499. }
  10500. return memo;
  10501. }, {});
  10502. return this;
  10503. }
  10504. // Handle activating/clearing
  10505. }, {
  10506. key: 'process',
  10507. value: function process() {
  10508. var scrollTop = this.getScrollTop() + this.$config.offset;
  10509. var scrollHeight = this.getScrollHeight();
  10510. var maxScroll = this.$config.offset + scrollHeight - this.getOffsetHeight();
  10511. if (this.$scrollHeight !== scrollHeight) {
  10512. this.refresh();
  10513. }
  10514. if (scrollTop >= maxScroll) {
  10515. var target = this.$targets[this.$targets.length - 1];
  10516. if (this.$activeTarget !== target) {
  10517. this.activate(target);
  10518. }
  10519. return;
  10520. }
  10521. if (this.$activeTarget && scrollTop < this.$offsets[0] && this.$offsets[0] > 0) {
  10522. this.$activeTarget = null;
  10523. this.clear();
  10524. return;
  10525. }
  10526. for (var i = this.$offsets.length; i--;) {
  10527. var isActiveTarget = this.$activeTarget !== this.$targets[i] && scrollTop >= this.$offsets[i] && (typeof this.$offsets[i + 1] === 'undefined' || scrollTop < this.$offsets[i + 1]);
  10528. if (isActiveTarget) {
  10529. this.activate(this.$targets[i]);
  10530. }
  10531. }
  10532. }
  10533. }, {
  10534. key: 'getScroller',
  10535. value: function getScroller() {
  10536. if (this.$scroller) {
  10537. return this.$scroller;
  10538. }
  10539. var scroller = this.$config.element;
  10540. if (!scroller) {
  10541. return null;
  10542. } else if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["l" /* isElement */])(scroller.$el)) {
  10543. scroller = scroller.$el;
  10544. } else if (typeof scroller === 'string') {
  10545. scroller = Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["t" /* select */])(scroller);
  10546. }
  10547. if (!scroller) {
  10548. return null;
  10549. }
  10550. this.$scroller = scroller.tagName === 'BODY' ? window : scroller;
  10551. return this.$scroller;
  10552. }
  10553. }, {
  10554. key: 'getScrollTop',
  10555. value: function getScrollTop() {
  10556. var scroller = this.getScroller();
  10557. return scroller === window ? scroller.pageYOffset : scroller.scrollTop;
  10558. }
  10559. }, {
  10560. key: 'getScrollHeight',
  10561. value: function getScrollHeight() {
  10562. return this.getScroller().scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
  10563. }
  10564. }, {
  10565. key: 'getOffsetHeight',
  10566. value: function getOffsetHeight() {
  10567. var scroller = this.getScroller();
  10568. return scroller === window ? window.innerHeight : Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["f" /* getBCR */])(scroller).height;
  10569. }
  10570. }, {
  10571. key: 'activate',
  10572. value: function activate(target) {
  10573. var _this5 = this;
  10574. this.$activeTarget = target;
  10575. this.clear();
  10576. // Grab the list of target links (<a href="{$target}">)
  10577. var links = Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["u" /* selectAll */])(this.$selector.split(',').map(function (selector) {
  10578. return selector + '[href="' + target + '"]';
  10579. }).join(','), this.$el);
  10580. links.forEach(function (link) {
  10581. if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["j" /* hasClass */])(link, ClassName.DROPDOWN_ITEM)) {
  10582. // This is a dropdown item, so find the .dropdown-toggle and set it's state
  10583. var dropdown = Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["b" /* closest */])(Selector.DROPDOWN, link);
  10584. if (dropdown) {
  10585. _this5.setActiveState(Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["t" /* select */])(Selector.DROPDOWN_TOGGLE, dropdown), true);
  10586. }
  10587. // Also set this link's state
  10588. _this5.setActiveState(link, true);
  10589. } else {
  10590. // Set triggered link as active
  10591. _this5.setActiveState(link, true);
  10592. if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["n" /* matches */])(link.parentElement, Selector.NAV_ITEMS)) {
  10593. // Handle nav-link inside nav-item, and set nav-item active
  10594. _this5.setActiveState(link.parentElement, true);
  10595. }
  10596. // Set triggered links parents as active
  10597. // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
  10598. var el = link;
  10599. while (el) {
  10600. el = Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["b" /* closest */])(Selector.NAV_LIST_GROUP, el);
  10601. var sibling = el ? el.previousElementSibling : null;
  10602. if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["n" /* matches */])(sibling, Selector.NAV_LINKS + ', ' + Selector.LIST_ITEMS)) {
  10603. _this5.setActiveState(sibling, true);
  10604. }
  10605. // Handle special case where nav-link is inside a nav-item
  10606. if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["n" /* matches */])(sibling, Selector.NAV_ITEMS)) {
  10607. _this5.setActiveState(Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["t" /* select */])(Selector.NAV_LINKS, sibling), true);
  10608. // Add active state to nav-item as well
  10609. _this5.setActiveState(sibling, true);
  10610. }
  10611. }
  10612. }
  10613. });
  10614. // Signal event to via $root, passing ID of activaed target and reference to array of links
  10615. if (links && links.length > 0 && this.$root) {
  10616. this.$root.$emit(ACTIVATE_EVENT, target, links);
  10617. }
  10618. }
  10619. }, {
  10620. key: 'clear',
  10621. value: function clear() {
  10622. var _this6 = this;
  10623. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["u" /* selectAll */])(this.$selector + ', ' + Selector.NAV_ITEMS, this.$el).filter(function (el) {
  10624. return Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["j" /* hasClass */])(el, ClassName.ACTIVE);
  10625. }).forEach(function (el) {
  10626. return _this6.setActiveState(el, false);
  10627. });
  10628. }
  10629. }, {
  10630. key: 'setActiveState',
  10631. value: function setActiveState(el, active) {
  10632. if (!el) {
  10633. return;
  10634. }
  10635. if (active) {
  10636. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["a" /* addClass */])(el, ClassName.ACTIVE);
  10637. } else {
  10638. Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["s" /* removeClass */])(el, ClassName.ACTIVE);
  10639. }
  10640. }
  10641. }], [{
  10642. key: 'Name',
  10643. get: function get() {
  10644. return NAME;
  10645. }
  10646. }, {
  10647. key: 'Default',
  10648. get: function get() {
  10649. return Default;
  10650. }
  10651. }, {
  10652. key: 'DefaultType',
  10653. get: function get() {
  10654. return DefaultType;
  10655. }
  10656. }]);
  10657. return ScrollSpy;
  10658. }();
  10659. /* harmony default export */ __webpack_exports__["a"] = (ScrollSpy);
  10660. /***/ }),
  10661. /***/ "./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.js":
  10662. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10663. "use strict";
  10664. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__scrollspy_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.class.js");
  10665. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  10666. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  10667. /*
  10668. * ScrollSpy directive v-b-scrollspy
  10669. */
  10670. var inBrowser = typeof window !== 'undefined';
  10671. var isServer = !inBrowser;
  10672. // Key we use to store our Instance
  10673. var BVSS = '__BV_ScrollSpy__';
  10674. // Generate config from bindings
  10675. /* istanbul ignore next: not easy to test */
  10676. function makeConfig(binding) {
  10677. var config = {};
  10678. // If Argument, assume element ID
  10679. if (binding.arg) {
  10680. // Element ID specified as arg. We must pre-pend #
  10681. config.element = '#' + binding.arg;
  10682. }
  10683. // Process modifiers
  10684. Object(__WEBPACK_IMPORTED_MODULE_1__utils_object__["e" /* keys */])(binding.modifiers).forEach(function (mod) {
  10685. if (/^\d+$/.test(mod)) {
  10686. // Offest value
  10687. config.offset = parseInt(mod, 10);
  10688. } else if (/^(auto|position|offset)$/.test(mod)) {
  10689. // Offset method
  10690. config.method = mod;
  10691. }
  10692. });
  10693. // Process value
  10694. if (typeof binding.value === 'string') {
  10695. // Value is a CSS ID or selector
  10696. config.element = binding.value;
  10697. } else if (typeof binding.value === 'number') {
  10698. // Value is offset
  10699. config.offset = Math.round(binding.value);
  10700. } else if (_typeof(binding.value) === 'object') {
  10701. // Value is config object
  10702. // Filter the object based on our supported config options
  10703. Object(__WEBPACK_IMPORTED_MODULE_1__utils_object__["e" /* keys */])(binding.value).filter(function (k) {
  10704. return Boolean(__WEBPACK_IMPORTED_MODULE_0__scrollspy_class__["a" /* default */].DefaultType[k]);
  10705. }).forEach(function (k) {
  10706. config[k] = binding.value[k];
  10707. });
  10708. }
  10709. return config;
  10710. }
  10711. /* istanbul ignore next: not easy to test */
  10712. function addBVSS(el, binding, vnode) {
  10713. if (isServer) {
  10714. return;
  10715. }
  10716. var cfg = makeConfig(binding);
  10717. if (!el[BVSS]) {
  10718. el[BVSS] = new __WEBPACK_IMPORTED_MODULE_0__scrollspy_class__["a" /* default */](el, cfg, vnode.context.$root);
  10719. } else {
  10720. el[BVSS].updateConfig(cfg, vnode.context.$root);
  10721. }
  10722. return el[BVSS];
  10723. }
  10724. /* istanbul ignore next: not easy to test */
  10725. function removeBVSS(el) {
  10726. if (el[BVSS]) {
  10727. el[BVSS].dispose();
  10728. el[BVSS] = null;
  10729. }
  10730. }
  10731. /*
  10732. * Export our directive
  10733. */
  10734. /* istanbul ignore next: not easy to test */
  10735. /* harmony default export */ __webpack_exports__["a"] = ({
  10736. bind: function bind(el, binding, vnode) {
  10737. addBVSS(el, binding, vnode);
  10738. },
  10739. inserted: function inserted(el, binding, vnode) {
  10740. addBVSS(el, binding, vnode);
  10741. },
  10742. update: function update(el, binding, vnode) {
  10743. addBVSS(el, binding, vnode);
  10744. },
  10745. componentUpdated: function componentUpdated(el, binding, vnode) {
  10746. addBVSS(el, binding, vnode);
  10747. },
  10748. unbind: function unbind(el) {
  10749. if (isServer) {
  10750. return;
  10751. }
  10752. // Remove scroll event listener on scrollElId
  10753. removeBVSS(el);
  10754. }
  10755. });
  10756. /***/ }),
  10757. /***/ "./node_modules/bootstrap-vue/es/directives/toggle/index.js":
  10758. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10759. "use strict";
  10760. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__toggle__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/toggle/toggle.js");
  10761. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  10762. var directives = {
  10763. bToggle: __WEBPACK_IMPORTED_MODULE_0__toggle__["a" /* default */]
  10764. };
  10765. var VuePlugin = {
  10766. install: function install(Vue) {
  10767. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["b" /* registerDirectives */])(Vue, directives);
  10768. }
  10769. };
  10770. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  10771. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  10772. /***/ }),
  10773. /***/ "./node_modules/bootstrap-vue/es/directives/toggle/toggle.js":
  10774. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10775. "use strict";
  10776. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_target__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/target.js");
  10777. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  10778. // Are we client side?
  10779. var inBrowser = typeof window !== 'undefined';
  10780. // target listen types
  10781. var listenTypes = { click: true
  10782. // Property key for handler storage
  10783. };var BVT = '__BV_toggle__';
  10784. // Emitted Control Event for collapse (emitted to collapse)
  10785. var EVENT_TOGGLE = 'bv::toggle::collapse';
  10786. // Listen to Event for toggle state update (Emited by collapse)
  10787. var EVENT_STATE = 'bv::collapse::state';
  10788. /* harmony default export */ __webpack_exports__["a"] = ({
  10789. bind: function bind(el, binding, vnode) {
  10790. var targets = Object(__WEBPACK_IMPORTED_MODULE_0__utils_target__["b" /* default */])(vnode, binding, listenTypes, function (_ref) {
  10791. var targets = _ref.targets,
  10792. vnode = _ref.vnode;
  10793. targets.forEach(function (target) {
  10794. vnode.context.$root.$emit(EVENT_TOGGLE, target);
  10795. });
  10796. });
  10797. if (inBrowser && vnode.context && targets.length > 0) {
  10798. // Add aria attributes to element
  10799. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(el, 'aria-controls', targets.join(' '));
  10800. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(el, 'aria-expanded', 'false');
  10801. if (el.tagName !== 'BUTTON') {
  10802. // If element is not a button, we add `role="button"` for accessibility
  10803. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(el, 'role', 'button');
  10804. }
  10805. // Toggle state hadnler, stored on element
  10806. el[BVT] = function toggleDirectiveHandler(id, state) {
  10807. if (targets.indexOf(id) !== -1) {
  10808. // Set aria-expanded state
  10809. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(el, 'aria-expanded', state ? 'true' : 'false');
  10810. // Set/Clear 'collapsed' class state
  10811. if (state) {
  10812. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["s" /* removeClass */])(el, 'collapsed');
  10813. } else {
  10814. Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["a" /* addClass */])(el, 'collapsed');
  10815. }
  10816. }
  10817. };
  10818. // Listen for toggle state changes
  10819. vnode.context.$root.$on(EVENT_STATE, el[BVT]);
  10820. }
  10821. },
  10822. unbind: function unbind(el, binding, vnode) {
  10823. if (el[BVT]) {
  10824. // Remove our $root listener
  10825. vnode.context.$root.$off(EVENT_STATE, el[BVT]);
  10826. el[BVT] = null;
  10827. }
  10828. }
  10829. });
  10830. /***/ }),
  10831. /***/ "./node_modules/bootstrap-vue/es/directives/tooltip/index.js":
  10832. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10833. "use strict";
  10834. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tooltip__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/tooltip/tooltip.js");
  10835. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  10836. var directives = {
  10837. bTooltip: __WEBPACK_IMPORTED_MODULE_0__tooltip__["a" /* default */]
  10838. };
  10839. var VuePlugin = {
  10840. install: function install(Vue) {
  10841. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["b" /* registerDirectives */])(Vue, directives);
  10842. }
  10843. };
  10844. Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
  10845. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  10846. /***/ }),
  10847. /***/ "./node_modules/bootstrap-vue/es/directives/tooltip/tooltip.js":
  10848. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10849. "use strict";
  10850. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_popper_js__ = __webpack_require__("./node_modules/popper.js/dist/esm/popper.js");
  10851. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_tooltip_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/tooltip.class.js");
  10852. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  10853. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  10854. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  10855. var inBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
  10856. // Key which we use to store tooltip object on element
  10857. var BVTT = '__BV_ToolTip__';
  10858. // Valid event triggers
  10859. var validTriggers = {
  10860. 'focus': true,
  10861. 'hover': true,
  10862. 'click': true,
  10863. 'blur': true
  10864. // Build a ToolTip config based on bindings (if any)
  10865. // Arguments and modifiers take precedence over passed value config object
  10866. /* istanbul ignore next: not easy to test */
  10867. };function parseBindings(bindings) {
  10868. // We start out with a blank config
  10869. var config = {};
  10870. // Process bindings.value
  10871. if (typeof bindings.value === 'string') {
  10872. // Value is tooltip content (html optionally supported)
  10873. config.title = bindings.value;
  10874. } else if (typeof bindings.value === 'function') {
  10875. // Title generator function
  10876. config.title = bindings.value;
  10877. } else if (_typeof(bindings.value) === 'object') {
  10878. // Value is config object, so merge
  10879. config = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])(bindings.value);
  10880. }
  10881. // If Argument, assume element ID of container element
  10882. if (bindings.arg) {
  10883. // Element ID specified as arg. We must prepend '#' to become a CSS selector
  10884. config.container = '#' + bindings.arg;
  10885. }
  10886. // Process modifiers
  10887. Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(bindings.modifiers).forEach(function (mod) {
  10888. if (/^html$/.test(mod)) {
  10889. // Title allows HTML
  10890. config.html = true;
  10891. } else if (/^nofade$/.test(mod)) {
  10892. // no animation
  10893. config.animation = false;
  10894. } else if (/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/.test(mod)) {
  10895. // placement of tooltip
  10896. config.placement = mod;
  10897. } else if (/^(window|viewport)$/.test(mod)) {
  10898. // bounday of tooltip
  10899. config.boundary = mod;
  10900. } else if (/^d\d+$/.test(mod)) {
  10901. // delay value
  10902. var delay = parseInt(mod.slice(1), 10) || 0;
  10903. if (delay) {
  10904. config.delay = delay;
  10905. }
  10906. } else if (/^o-?\d+$/.test(mod)) {
  10907. // offset value. Negative allowed
  10908. var offset = parseInt(mod.slice(1), 10) || 0;
  10909. if (offset) {
  10910. config.offset = offset;
  10911. }
  10912. }
  10913. });
  10914. // Special handling of event trigger modifiers Trigger is a space separated list
  10915. var selectedTriggers = {};
  10916. // parse current config object trigger
  10917. var triggers = typeof config.trigger === 'string' ? config.trigger.trim().split(/\s+/) : [];
  10918. triggers.forEach(function (trigger) {
  10919. if (validTriggers[trigger]) {
  10920. selectedTriggers[trigger] = true;
  10921. }
  10922. });
  10923. // Parse Modifiers for triggers
  10924. Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(validTriggers).forEach(function (trigger) {
  10925. if (bindings.modifiers[trigger]) {
  10926. selectedTriggers[trigger] = true;
  10927. }
  10928. });
  10929. // Sanitize triggers
  10930. config.trigger = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(selectedTriggers).join(' ');
  10931. if (config.trigger === 'blur') {
  10932. // Blur by itself is useless, so convert it to 'focus'
  10933. config.trigger = 'focus';
  10934. }
  10935. if (!config.trigger) {
  10936. // remove trigger config
  10937. delete config.trigger;
  10938. }
  10939. return config;
  10940. }
  10941. //
  10942. // Add or Update tooltip on our element
  10943. //
  10944. /* istanbul ignore next: not easy to test */
  10945. function applyBVTT(el, bindings, vnode) {
  10946. if (!inBrowser) {
  10947. return;
  10948. }
  10949. if (!__WEBPACK_IMPORTED_MODULE_0_popper_js__["default"]) {
  10950. // Popper is required for tooltips to work
  10951. Object(__WEBPACK_IMPORTED_MODULE_3__utils_warn__["a" /* default */])('v-b-tooltip: Popper.js is required for tooltips to work');
  10952. return;
  10953. }
  10954. if (el[BVTT]) {
  10955. el[BVTT].updateConfig(parseBindings(bindings));
  10956. } else {
  10957. el[BVTT] = new __WEBPACK_IMPORTED_MODULE_1__utils_tooltip_class__["a" /* default */](el, parseBindings(bindings), vnode.context.$root);
  10958. }
  10959. }
  10960. //
  10961. // Remove tooltip on our element
  10962. //
  10963. /* istanbul ignore next: not easy to test */
  10964. function removeBVTT(el) {
  10965. if (!inBrowser) {
  10966. return;
  10967. }
  10968. if (el[BVTT]) {
  10969. el[BVTT].destroy();
  10970. el[BVTT] = null;
  10971. delete el[BVTT];
  10972. }
  10973. }
  10974. /*
  10975. * Export our directive
  10976. */
  10977. /* istanbul ignore next: not easy to test */
  10978. /* harmony default export */ __webpack_exports__["a"] = ({
  10979. bind: function bind(el, bindings, vnode) {
  10980. applyBVTT(el, bindings, vnode);
  10981. },
  10982. inserted: function inserted(el, bindings, vnode) {
  10983. applyBVTT(el, bindings, vnode);
  10984. },
  10985. update: function update(el, bindings, vnode) {
  10986. if (bindings.value !== bindings.oldValue) {
  10987. applyBVTT(el, bindings, vnode);
  10988. }
  10989. },
  10990. componentUpdated: function componentUpdated(el, bindings, vnode) {
  10991. if (bindings.value !== bindings.oldValue) {
  10992. applyBVTT(el, bindings, vnode);
  10993. }
  10994. },
  10995. unbind: function unbind(el) {
  10996. removeBVTT(el);
  10997. }
  10998. });
  10999. /***/ }),
  11000. /***/ "./node_modules/bootstrap-vue/es/index.js":
  11001. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11002. "use strict";
  11003. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/index.js");
  11004. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/index.js");
  11005. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
  11006. var VuePlugin = {
  11007. install: function install(Vue) {
  11008. if (Vue._bootstrap_vue_installed) {
  11009. return;
  11010. }
  11011. Vue._bootstrap_vue_installed = true;
  11012. // Register component plugins
  11013. for (var plugin in __WEBPACK_IMPORTED_MODULE_0__components__) {
  11014. Vue.use(__WEBPACK_IMPORTED_MODULE_0__components__[plugin]);
  11015. }
  11016. // Register directive plugins
  11017. for (var _plugin in __WEBPACK_IMPORTED_MODULE_1__directives__) {
  11018. Vue.use(__WEBPACK_IMPORTED_MODULE_1__directives__[_plugin]);
  11019. }
  11020. }
  11021. };
  11022. Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
  11023. /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
  11024. /***/ }),
  11025. /***/ "./node_modules/bootstrap-vue/es/mixins/card-mixin.js":
  11026. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11027. "use strict";
  11028. /* harmony default export */ __webpack_exports__["a"] = ({
  11029. props: {
  11030. tag: {
  11031. type: String,
  11032. default: 'div'
  11033. },
  11034. bgVariant: {
  11035. type: String,
  11036. default: null
  11037. },
  11038. borderVariant: {
  11039. type: String,
  11040. default: null
  11041. },
  11042. textVariant: {
  11043. type: String,
  11044. default: null
  11045. }
  11046. }
  11047. });
  11048. /***/ }),
  11049. /***/ "./node_modules/bootstrap-vue/es/mixins/clickout.js":
  11050. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11051. "use strict";
  11052. /* harmony default export */ __webpack_exports__["a"] = ({
  11053. mounted: function mounted() {
  11054. if (typeof document !== 'undefined') {
  11055. document.documentElement.addEventListener('click', this._clickOutListener);
  11056. }
  11057. },
  11058. beforeDestroy: function beforeDestroy() {
  11059. if (typeof document !== 'undefined') {
  11060. document.documentElement.removeEventListener('click', this._clickOutListener);
  11061. }
  11062. },
  11063. methods: {
  11064. _clickOutListener: function _clickOutListener(e) {
  11065. if (!this.$el.contains(e.target)) {
  11066. if (this.clickOutListener) {
  11067. this.clickOutListener();
  11068. }
  11069. }
  11070. }
  11071. }
  11072. });
  11073. /***/ }),
  11074. /***/ "./node_modules/bootstrap-vue/es/mixins/dropdown.js":
  11075. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11076. "use strict";
  11077. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_popper_js__ = __webpack_require__("./node_modules/popper.js/dist/esm/popper.js");
  11078. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__clickout__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/clickout.js");
  11079. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__listen_on_root__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js");
  11080. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  11081. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  11082. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
  11083. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_bv_event_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/bv-event.class.js");
  11084. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
  11085. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  11086. // Return an Array of visible items
  11087. function filterVisible(els) {
  11088. return (els || []).filter(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["m" /* isVisible */]);
  11089. }
  11090. // Dropdown item CSS selectors
  11091. // TODO: .dropdown-form handling
  11092. var ITEM_SELECTOR = '.dropdown-item:not(.disabled):not([disabled])';
  11093. // Popper attachment positions
  11094. var AttachmentMap = {
  11095. // DropUp Left Align
  11096. TOP: 'top-start',
  11097. // DropUp Right Align
  11098. TOPEND: 'top-end',
  11099. // Dropdown left Align
  11100. BOTTOM: 'bottom-start',
  11101. // Dropdown Right Align
  11102. BOTTOMEND: 'bottom-end'
  11103. };
  11104. /* harmony default export */ __webpack_exports__["a"] = ({
  11105. mixins: [__WEBPACK_IMPORTED_MODULE_1__clickout__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__listen_on_root__["a" /* default */]],
  11106. props: {
  11107. disabled: {
  11108. type: Boolean,
  11109. default: false
  11110. },
  11111. text: {
  11112. // Button label
  11113. type: String,
  11114. default: ''
  11115. },
  11116. dropup: {
  11117. // place on top if possible
  11118. type: Boolean,
  11119. default: false
  11120. },
  11121. right: {
  11122. // Right align menu (default is left align)
  11123. type: Boolean,
  11124. default: false
  11125. },
  11126. offset: {
  11127. // Number of pixels to offset menu, or a CSS unit value (i.e. 1px, 1rem, etc)
  11128. type: [Number, String],
  11129. default: 0
  11130. },
  11131. noFlip: {
  11132. // Disable auto-flipping of menu from bottom<=>top
  11133. type: Boolean,
  11134. default: false
  11135. },
  11136. popperOpts: {
  11137. type: Object,
  11138. default: function _default() {}
  11139. }
  11140. },
  11141. data: function data() {
  11142. return {
  11143. visible: false,
  11144. inNavbar: null,
  11145. visibleChangePrevented: false
  11146. };
  11147. },
  11148. created: function created() {
  11149. // Create non-reactive property
  11150. this._popper = null;
  11151. },
  11152. mounted: function mounted() {
  11153. // To keep one dropdown opened on page
  11154. this.listenOnRoot('bv::dropdown::shown', this.rootCloseListener);
  11155. // Hide when clicked on links
  11156. this.listenOnRoot('clicked::link', this.rootCloseListener);
  11157. // Use new namespaced events
  11158. this.listenOnRoot('bv::link::clicked', this.rootCloseListener);
  11159. },
  11160. /* istanbul ignore next: not easy to test */
  11161. deactivated: function deactivated() {
  11162. // In case we are inside a `<keep-alive>`
  11163. this.visible = false;
  11164. this.setTouchStart(false);
  11165. this.removePopper();
  11166. },
  11167. /* istanbul ignore next: not easy to test */
  11168. beforeDestroy: function beforeDestroy() {
  11169. this.visible = false;
  11170. this.setTouchStart(false);
  11171. this.removePopper();
  11172. },
  11173. watch: {
  11174. visible: function visible(newValue, oldValue) {
  11175. if (this.visibleChangePrevented) {
  11176. this.visibleChangePrevented = false;
  11177. return;
  11178. }
  11179. if (newValue !== oldValue) {
  11180. var evtName = newValue ? 'show' : 'hide';
  11181. var bvEvt = new __WEBPACK_IMPORTED_MODULE_6__utils_bv_event_class__["a" /* default */](evtName, {
  11182. cancelable: true,
  11183. vueTarget: this,
  11184. target: this.$refs.menu,
  11185. relatedTarget: null
  11186. });
  11187. this.emitEvent(bvEvt);
  11188. if (bvEvt.defaultPrevented) {
  11189. // Reset value and exit if canceled
  11190. this.visibleChangePrevented = true;
  11191. this.visible = oldValue;
  11192. return;
  11193. }
  11194. if (evtName === 'show') {
  11195. this.showMenu();
  11196. } else {
  11197. this.hideMenu();
  11198. }
  11199. }
  11200. },
  11201. disabled: function disabled(newValue, oldValue) {
  11202. if (newValue !== oldValue && newValue && this.visible) {
  11203. // Hide dropdown if disabled changes to true
  11204. this.visible = false;
  11205. }
  11206. }
  11207. },
  11208. computed: {
  11209. toggler: function toggler() {
  11210. return this.$refs.toggle.$el || this.$refs.toggle;
  11211. }
  11212. },
  11213. methods: {
  11214. // Event emitter
  11215. emitEvent: function emitEvent(bvEvt) {
  11216. var type = bvEvt.type;
  11217. this.$emit(type, bvEvt);
  11218. this.emitOnRoot('bv::dropdown::' + type, bvEvt);
  11219. },
  11220. showMenu: function showMenu() {
  11221. if (this.disabled) {
  11222. return;
  11223. }
  11224. // Ensure other menus are closed
  11225. this.emitOnRoot('bv::dropdown::shown', this);
  11226. // Are we in a navbar ?
  11227. if (this.inNavbar === null && this.isNav) {
  11228. this.inNavbar = Boolean(Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["b" /* closest */])('.navbar', this.$el));
  11229. }
  11230. // Disable totally Popper.js for Dropdown in Navbar
  11231. /* istnbul ignore next: can't test popper in JSDOM */
  11232. if (!this.inNavbar) {
  11233. if (typeof __WEBPACK_IMPORTED_MODULE_0_popper_js__["default"] === 'undefined') {
  11234. Object(__WEBPACK_IMPORTED_MODULE_7__utils_warn__["a" /* default */])('b-dropdown: Popper.js not found. Falling back to CSS positioning.');
  11235. } else {
  11236. // for dropup with alignment we use the parent element as popper container
  11237. var element = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle;
  11238. // Make sure we have a reference to an element, not a component!
  11239. element = element.$el || element;
  11240. // Instantiate popper.js
  11241. this.createPopper(element);
  11242. }
  11243. }
  11244. this.setTouchStart(true);
  11245. this.$emit('shown');
  11246. // Focus on the first item on show
  11247. this.$nextTick(this.focusFirstItem);
  11248. },
  11249. hideMenu: function hideMenu() {
  11250. this.setTouchStart(false);
  11251. this.emitOnRoot('bv::dropdown::hidden', this);
  11252. this.$emit('hidden');
  11253. this.removePopper();
  11254. },
  11255. createPopper: function createPopper(element) {
  11256. this.removePopper();
  11257. this._popper = new __WEBPACK_IMPORTED_MODULE_0_popper_js__["default"](element, this.$refs.menu, this.getPopperConfig());
  11258. },
  11259. removePopper: function removePopper() {
  11260. if (this._popper) {
  11261. // Ensure popper event listeners are removed cleanly
  11262. this._popper.destroy();
  11263. }
  11264. this._popper = null;
  11265. },
  11266. getPopperConfig /* istanbul ignore next: can't test popper in JSDOM */: function getPopperConfig() {
  11267. var placement = AttachmentMap.BOTTOM;
  11268. if (this.dropup && this.right) {
  11269. // dropup + right
  11270. placement = AttachmentMap.TOPEND;
  11271. } else if (this.dropup) {
  11272. // dropup + left
  11273. placement = AttachmentMap.TOP;
  11274. } else if (this.right) {
  11275. // dropdown + right
  11276. placement = AttachmentMap.BOTTOMEND;
  11277. }
  11278. var popperConfig = {
  11279. placement: placement,
  11280. modifiers: {
  11281. offset: {
  11282. offset: this.offset || 0
  11283. },
  11284. flip: {
  11285. enabled: !this.noFlip
  11286. }
  11287. }
  11288. };
  11289. if (this.boundary) {
  11290. popperConfig.modifiers.preventOverflow = {
  11291. boundariesElement: this.boundary
  11292. };
  11293. }
  11294. return Object(__WEBPACK_IMPORTED_MODULE_4__utils_object__["a" /* assign */])(popperConfig, this.popperOpts || {});
  11295. },
  11296. setTouchStart: function setTouchStart(on) {
  11297. var _this = this;
  11298. /*
  11299. * If this is a touch-enabled device we add extra
  11300. * empty mouseover listeners to the body's immediate children;
  11301. * only needed because of broken event delegation on iOS
  11302. * https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
  11303. */
  11304. if ('ontouchstart' in document.documentElement) {
  11305. var children = Object(__WEBPACK_IMPORTED_MODULE_3__utils_array__["c" /* from */])(document.body.children);
  11306. children.forEach(function (el) {
  11307. if (on) {
  11308. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["d" /* eventOn */])('mouseover', _this._noop);
  11309. } else {
  11310. Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["c" /* eventOff */])('mouseover', _this._noop);
  11311. }
  11312. });
  11313. }
  11314. },
  11315. /* istanbul ignore next: not easy to test */
  11316. _noop: function _noop() {
  11317. // Do nothing event handler (used in touchstart event handler)
  11318. },
  11319. rootCloseListener: function rootCloseListener(vm) {
  11320. if (vm !== this) {
  11321. this.visible = false;
  11322. }
  11323. },
  11324. clickOutListener: function clickOutListener() {
  11325. this.visible = false;
  11326. },
  11327. show: function show() {
  11328. // Public method to show dropdown
  11329. if (this.disabled) {
  11330. return;
  11331. }
  11332. this.visible = true;
  11333. },
  11334. hide: function hide() {
  11335. // Public method to hide dropdown
  11336. if (this.disabled) {
  11337. return;
  11338. }
  11339. this.visible = false;
  11340. },
  11341. toggle: function toggle(evt) {
  11342. // Called only by a button that toggles the menu
  11343. evt = evt || {};
  11344. var type = evt.type;
  11345. var key = evt.keyCode;
  11346. if (type !== 'click' && !(type === 'keydown' && (key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].ENTER || key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].SPACE || key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].DOWN))) {
  11347. // We only toggle on Click, Enter, Space, and Arrow Down
  11348. return;
  11349. }
  11350. if (this.disabled) {
  11351. this.visible = false;
  11352. return;
  11353. }
  11354. this.$emit('toggle', evt);
  11355. if (evt.defaultPrevented) {
  11356. // Exit if canceled
  11357. return;
  11358. }
  11359. evt.preventDefault();
  11360. evt.stopPropagation();
  11361. // Toggle visibility
  11362. this.visible = !this.visible;
  11363. },
  11364. click: function click(evt) {
  11365. // Calle only in split button mode, for the split button
  11366. if (this.disabled) {
  11367. this.visible = false;
  11368. return;
  11369. }
  11370. this.$emit('click', evt);
  11371. },
  11372. /* istanbul ignore next: not easy to test */
  11373. onKeydown: function onKeydown(evt) {
  11374. // Called from dropdown menu context
  11375. var key = evt.keyCode;
  11376. if (key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].ESC) {
  11377. // Close on ESC
  11378. this.onEsc(evt);
  11379. } else if (key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].TAB) {
  11380. // Close on tab out
  11381. this.onTab(evt);
  11382. } else if (key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].DOWN) {
  11383. // Down Arrow
  11384. this.focusNext(evt, false);
  11385. } else if (key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].UP) {
  11386. // Up Arrow
  11387. this.focusNext(evt, true);
  11388. }
  11389. },
  11390. /* istanbul ignore next: not easy to test */
  11391. onEsc: function onEsc(evt) {
  11392. if (this.visible) {
  11393. this.visible = false;
  11394. evt.preventDefault();
  11395. evt.stopPropagation();
  11396. // Return focus to original trigger button
  11397. this.$nextTick(this.focusToggler);
  11398. }
  11399. },
  11400. /* istanbul ignore next: not easy to test */
  11401. onTab: function onTab(evt) {
  11402. if (this.visible) {
  11403. // TODO: Need special handler for dealing with form inputs
  11404. // Tab, if in a text-like input, we should just focus next item in the dropdown
  11405. // Note: Inputs are in a special .dropdown-form container
  11406. this.visible = false;
  11407. }
  11408. },
  11409. onFocusOut: function onFocusOut(evt) {
  11410. if (this.$refs.menu.contains(evt.relatedTarget)) {
  11411. return;
  11412. }
  11413. this.visible = false;
  11414. },
  11415. /* istanbul ignore next: not easy to test */
  11416. onMouseOver: function onMouseOver(evt) {
  11417. // Focus the item on hover
  11418. // TODO: Special handling for inputs? Inputs are in a special .dropdown-form container
  11419. var item = evt.target;
  11420. if (item.classList.contains('dropdown-item') && !item.disabled && !item.classList.contains('disabled') && item.focus) {
  11421. item.focus();
  11422. }
  11423. },
  11424. focusNext: function focusNext(evt, up) {
  11425. var _this2 = this;
  11426. if (!this.visible) {
  11427. return;
  11428. }
  11429. evt.preventDefault();
  11430. evt.stopPropagation();
  11431. this.$nextTick(function () {
  11432. var items = _this2.getItems();
  11433. if (items.length < 1) {
  11434. return;
  11435. }
  11436. var index = items.indexOf(evt.target);
  11437. if (up && index > 0) {
  11438. index--;
  11439. } else if (!up && index < items.length - 1) {
  11440. index++;
  11441. }
  11442. if (index < 0) {
  11443. index = 0;
  11444. }
  11445. _this2.focusItem(index, items);
  11446. });
  11447. },
  11448. focusItem: function focusItem(idx, items) {
  11449. var el = items.find(function (el, i) {
  11450. return i === idx;
  11451. });
  11452. if (el && Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["e" /* getAttr */])(el, 'tabindex') !== '-1') {
  11453. el.focus();
  11454. }
  11455. },
  11456. getItems: function getItems() {
  11457. // Get all items
  11458. return filterVisible(Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(ITEM_SELECTOR, this.$refs.menu));
  11459. },
  11460. getFirstItem: function getFirstItem() {
  11461. // Get the first non-disabled item
  11462. var item = this.getItems()[0];
  11463. return item || null;
  11464. },
  11465. focusFirstItem: function focusFirstItem() {
  11466. var item = this.getFirstItem();
  11467. if (item) {
  11468. this.focusItem(0, [item]);
  11469. }
  11470. },
  11471. focusToggler: function focusToggler() {
  11472. var toggler = this.toggler;
  11473. if (toggler && toggler.focus) {
  11474. toggler.focus();
  11475. }
  11476. }
  11477. }
  11478. });
  11479. /***/ }),
  11480. /***/ "./node_modules/bootstrap-vue/es/mixins/form-custom.js":
  11481. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11482. "use strict";
  11483. /* harmony default export */ __webpack_exports__["a"] = ({
  11484. computed: {
  11485. custom: function custom() {
  11486. return !this.plain;
  11487. }
  11488. },
  11489. props: {
  11490. plain: {
  11491. type: Boolean,
  11492. default: false
  11493. }
  11494. }
  11495. });
  11496. /***/ }),
  11497. /***/ "./node_modules/bootstrap-vue/es/mixins/form-options.js":
  11498. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11499. "use strict";
  11500. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  11501. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  11502. function isObject(obj) {
  11503. return obj && {}.toString.call(obj) === '[object Object]';
  11504. }
  11505. /* harmony default export */ __webpack_exports__["a"] = ({
  11506. props: {
  11507. options: {
  11508. type: [Array, Object],
  11509. default: function _default() {
  11510. return [];
  11511. }
  11512. },
  11513. valueField: {
  11514. type: String,
  11515. default: 'value'
  11516. },
  11517. textField: {
  11518. type: String,
  11519. default: 'text'
  11520. },
  11521. disabledField: {
  11522. type: String,
  11523. default: 'disabled'
  11524. }
  11525. },
  11526. computed: {
  11527. formOptions: function formOptions() {
  11528. var options = this.options;
  11529. var valueField = this.valueField;
  11530. var textField = this.textField;
  11531. var disabledField = this.disabledField;
  11532. if (Object(__WEBPACK_IMPORTED_MODULE_0__utils_array__["d" /* isArray */])(options)) {
  11533. // Normalize flat-ish arrays to Array of Objects
  11534. return options.map(function (option) {
  11535. if (isObject(option)) {
  11536. return {
  11537. value: option[valueField],
  11538. text: String(option[textField]),
  11539. disabled: option[disabledField] || false
  11540. };
  11541. }
  11542. return {
  11543. value: option,
  11544. text: String(option),
  11545. disabled: false
  11546. };
  11547. });
  11548. } else {
  11549. // options is Object
  11550. // Normalize Objects to Array of Objects
  11551. return Object(__WEBPACK_IMPORTED_MODULE_1__utils_object__["e" /* keys */])(options).map(function (key) {
  11552. var option = options[key] || {};
  11553. if (isObject(option)) {
  11554. var value = option[valueField];
  11555. var text = option[textField];
  11556. return {
  11557. value: typeof value === 'undefined' ? key : value,
  11558. text: typeof text === 'undefined' ? key : String(text),
  11559. disabled: option[disabledField] || false
  11560. };
  11561. }
  11562. return {
  11563. value: key,
  11564. text: String(option),
  11565. disabled: false
  11566. };
  11567. });
  11568. }
  11569. }
  11570. }
  11571. });
  11572. /***/ }),
  11573. /***/ "./node_modules/bootstrap-vue/es/mixins/form-radio-check.js":
  11574. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11575. "use strict";
  11576. /*
  11577. * form-radio & form-check mixin
  11578. *
  11579. */
  11580. /* harmony default export */ __webpack_exports__["a"] = ({
  11581. data: function data() {
  11582. return {
  11583. localChecked: this.checked,
  11584. hasFocus: false
  11585. };
  11586. },
  11587. model: {
  11588. prop: 'checked',
  11589. event: 'input'
  11590. },
  11591. props: {
  11592. value: {},
  11593. checked: {
  11594. // This is the model, except when in group mode
  11595. },
  11596. buttonVariant: {
  11597. // Only applicable when rendered with button style
  11598. type: String,
  11599. default: null
  11600. }
  11601. },
  11602. computed: {
  11603. computedLocalChecked: {
  11604. get: function get() {
  11605. if (this.is_Child) {
  11606. return this.$parent.localChecked;
  11607. } else {
  11608. return this.localChecked;
  11609. }
  11610. },
  11611. set: function set(val) {
  11612. if (this.is_Child) {
  11613. this.$parent.localChecked = val;
  11614. } else {
  11615. this.localChecked = val;
  11616. }
  11617. }
  11618. },
  11619. is_Child: function is_Child() {
  11620. return Boolean(this.$parent && this.$parent.is_RadioCheckGroup);
  11621. },
  11622. is_Disabled: function is_Disabled() {
  11623. // Child can be disabled while parent isn't
  11624. return Boolean(this.is_Child ? this.$parent.disabled || this.disabled : this.disabled);
  11625. },
  11626. is_Required: function is_Required() {
  11627. return Boolean(this.is_Child ? this.$parent.required : this.required);
  11628. },
  11629. is_Plain: function is_Plain() {
  11630. return Boolean(this.is_Child ? this.$parent.plain : this.plain);
  11631. },
  11632. is_Custom: function is_Custom() {
  11633. return !this.is_Plain;
  11634. },
  11635. get_Size: function get_Size() {
  11636. return this.is_Child ? this.$parent.size : this.size;
  11637. },
  11638. get_State: function get_State() {
  11639. // This is a tri-state prop (true, false, null)
  11640. if (this.is_Child && typeof this.$parent.get_State === 'boolean') {
  11641. return this.$parent.get_State;
  11642. }
  11643. return this.computedState;
  11644. },
  11645. get_StateClass: function get_StateClass() {
  11646. // This is a tri-state prop (true, false, null)
  11647. return typeof this.get_State === 'boolean' ? this.get_State ? 'is-valid' : 'is-invalid' : '';
  11648. },
  11649. is_Stacked: function is_Stacked() {
  11650. return Boolean(this.is_Child && this.$parent.stacked);
  11651. },
  11652. is_Inline: function is_Inline() {
  11653. return !this.is_Stacked;
  11654. },
  11655. is_ButtonMode: function is_ButtonMode() {
  11656. return Boolean(this.is_Child && this.$parent.buttons);
  11657. },
  11658. get_ButtonVariant: function get_ButtonVariant() {
  11659. // Local variant trumps parent variant
  11660. return this.buttonVariant || (this.is_Child ? this.$parent.buttonVariant : null) || 'secondary';
  11661. },
  11662. get_Name: function get_Name() {
  11663. return (this.is_Child ? this.$parent.name || this.$parent.safeId() : this.name) || null;
  11664. },
  11665. buttonClasses: function buttonClasses() {
  11666. // Same for radio & check
  11667. return ['btn', 'btn-' + this.get_ButtonVariant, this.get_Size ? 'btn-' + this.get_Size : '',
  11668. // 'disabled' class makes "button" look disabled
  11669. this.is_Disabled ? 'disabled' : '',
  11670. // 'active' class makes "button" look pressed
  11671. this.is_Checked ? 'active' : '',
  11672. // Focus class makes button look focused
  11673. this.hasFocus ? 'focus' : ''];
  11674. }
  11675. },
  11676. methods: {
  11677. handleFocus: function handleFocus(evt) {
  11678. // When in buttons mode, we need to add 'focus' class to label when radio focused
  11679. if (this.is_ButtonMode && evt.target) {
  11680. if (evt.type === 'focus') {
  11681. this.hasFocus = true;
  11682. } else if (evt.type === 'blur') {
  11683. this.hasFocus = false;
  11684. }
  11685. }
  11686. }
  11687. }
  11688. });
  11689. /***/ }),
  11690. /***/ "./node_modules/bootstrap-vue/es/mixins/form-size.js":
  11691. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11692. "use strict";
  11693. /* harmony default export */ __webpack_exports__["a"] = ({
  11694. props: {
  11695. size: {
  11696. type: String,
  11697. default: null
  11698. }
  11699. },
  11700. computed: {
  11701. sizeFormClass: function sizeFormClass() {
  11702. return [this.size ? "form-control-" + this.size : null];
  11703. },
  11704. sizeBtnClass: function sizeBtnClass() {
  11705. return [this.size ? "btn-" + this.size : null];
  11706. }
  11707. }
  11708. });
  11709. /***/ }),
  11710. /***/ "./node_modules/bootstrap-vue/es/mixins/form-state.js":
  11711. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11712. "use strict";
  11713. /* Form control contextual state class computation
  11714. *
  11715. * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop
  11716. * state can be one of five values:
  11717. * - true or 'valid' for is-valid
  11718. * - false or 'invalid' for is-invalid
  11719. * - null (or empty string) for no contextual state
  11720. */
  11721. /* harmony default export */ __webpack_exports__["a"] = ({
  11722. props: {
  11723. state: {
  11724. // true/'valid', false/'invalid', '',null
  11725. type: [Boolean, String],
  11726. default: null
  11727. }
  11728. },
  11729. computed: {
  11730. computedState: function computedState() {
  11731. var state = this.state;
  11732. if (state === true || state === 'valid') {
  11733. return true;
  11734. } else if (state === false || state === 'invalid') {
  11735. return false;
  11736. }
  11737. return null;
  11738. },
  11739. stateClass: function stateClass() {
  11740. var state = this.computedState;
  11741. if (state === true) {
  11742. return 'is-valid';
  11743. } else if (state === false) {
  11744. return 'is-invalid';
  11745. }
  11746. return null;
  11747. }
  11748. }
  11749. });
  11750. /***/ }),
  11751. /***/ "./node_modules/bootstrap-vue/es/mixins/form.js":
  11752. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11753. "use strict";
  11754. /* harmony default export */ __webpack_exports__["a"] = ({
  11755. props: {
  11756. name: {
  11757. type: String
  11758. },
  11759. id: {
  11760. type: String
  11761. },
  11762. disabled: {
  11763. type: Boolean
  11764. },
  11765. required: {
  11766. type: Boolean,
  11767. default: false
  11768. }
  11769. }
  11770. });
  11771. /***/ }),
  11772. /***/ "./node_modules/bootstrap-vue/es/mixins/id.js":
  11773. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11774. "use strict";
  11775. /*
  11776. * SSR Safe Client Side ID attribute generation
  11777. *
  11778. */
  11779. /* harmony default export */ __webpack_exports__["a"] = ({
  11780. props: {
  11781. id: {
  11782. type: String,
  11783. default: null
  11784. }
  11785. },
  11786. methods: {
  11787. safeId: function safeId() {
  11788. var suffix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
  11789. var id = this.id || this.localId_ || null;
  11790. if (!id) {
  11791. return null;
  11792. }
  11793. suffix = String(suffix).replace(/\s+/g, '_');
  11794. return suffix ? id + '_' + suffix : id;
  11795. }
  11796. },
  11797. computed: {
  11798. localId_: function localId_() {
  11799. if (!this.$isServer && !this.id && typeof this._uid !== 'undefined') {
  11800. return '__BVID__' + this._uid;
  11801. }
  11802. }
  11803. }
  11804. });
  11805. /***/ }),
  11806. /***/ "./node_modules/bootstrap-vue/es/mixins/listen-on-root.js":
  11807. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11808. "use strict";
  11809. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  11810. function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
  11811. /**
  11812. * Issue #569: collapse::toggle::state triggered too many times
  11813. * @link https://github.com/bootstrap-vue/bootstrap-vue/issues/569
  11814. */
  11815. var BVRL = '__BV_root_listeners__';
  11816. /* harmony default export */ __webpack_exports__["a"] = ({
  11817. methods: {
  11818. /**
  11819. * Safely register event listeners on the root Vue node.
  11820. * While Vue automatically removes listeners for individual components,
  11821. * when a component registers a listener on root and is destroyed,
  11822. * this orphans a callback because the node is gone,
  11823. * but the root does not clear the callback.
  11824. *
  11825. * This adds a non-reactive prop to a vm on the fly
  11826. * in order to avoid object observation and its performance costs
  11827. * to something that needs no reactivity.
  11828. * It should be highly unlikely there are any naming collisions.
  11829. * @param {string} event
  11830. * @param {function} callback
  11831. * @chainable
  11832. */
  11833. listenOnRoot: function listenOnRoot(event, callback) {
  11834. if (!this[BVRL] || !Object(__WEBPACK_IMPORTED_MODULE_0__utils_array__["d" /* isArray */])(this[BVRL])) {
  11835. this[BVRL] = [];
  11836. }
  11837. this[BVRL].push({ event: event, callback: callback });
  11838. this.$root.$on(event, callback);
  11839. return this;
  11840. },
  11841. /**
  11842. * Convenience method for calling vm.$emit on vm.$root.
  11843. * @param {string} event
  11844. * @param {*} args
  11845. * @chainable
  11846. */
  11847. emitOnRoot: function emitOnRoot(event) {
  11848. var _$root;
  11849. for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  11850. args[_key - 1] = arguments[_key];
  11851. }
  11852. (_$root = this.$root).$emit.apply(_$root, [event].concat(_toConsumableArray(args)));
  11853. return this;
  11854. }
  11855. },
  11856. beforeDestroy: function beforeDestroy() {
  11857. if (this[BVRL] && Object(__WEBPACK_IMPORTED_MODULE_0__utils_array__["d" /* isArray */])(this[BVRL])) {
  11858. while (this[BVRL].length > 0) {
  11859. // shift to process in order
  11860. var _BVRL$shift = this[BVRL].shift(),
  11861. event = _BVRL$shift.event,
  11862. callback = _BVRL$shift.callback;
  11863. this.$root.$off(event, callback);
  11864. }
  11865. }
  11866. }
  11867. });
  11868. /***/ }),
  11869. /***/ "./node_modules/bootstrap-vue/es/mixins/pagination.js":
  11870. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11871. "use strict";
  11872. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_range__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/range.js");
  11873. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
  11874. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  11875. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
  11876. /*
  11877. * Comon props, computed, data, render function, and methods for b-pagination and b-pagination-nav
  11878. */
  11879. // Make an array of N to N+X
  11880. function makePageArray(startNum, numPages) {
  11881. return Object(__WEBPACK_IMPORTED_MODULE_0__utils_range__["a" /* default */])(numPages).map(function (value, index) {
  11882. return { number: index + startNum, className: null };
  11883. });
  11884. }
  11885. // Threshold of limit size when we start/stop showing ellipsis
  11886. var ELLIPSIS_THRESHOLD = 3;
  11887. // Props object
  11888. var props = {
  11889. disabled: {
  11890. type: Boolean,
  11891. default: false
  11892. },
  11893. value: {
  11894. type: Number,
  11895. default: 1
  11896. },
  11897. limit: {
  11898. type: Number,
  11899. default: 5
  11900. },
  11901. size: {
  11902. type: String,
  11903. default: 'md'
  11904. },
  11905. align: {
  11906. type: String,
  11907. default: 'left'
  11908. },
  11909. hideGotoEndButtons: {
  11910. type: Boolean,
  11911. default: false
  11912. },
  11913. ariaLabel: {
  11914. type: String,
  11915. default: 'Pagination'
  11916. },
  11917. labelFirstPage: {
  11918. type: String,
  11919. default: 'Goto first page'
  11920. },
  11921. firstText: {
  11922. type: String,
  11923. default: '&laquo;'
  11924. },
  11925. labelPrevPage: {
  11926. type: String,
  11927. default: 'Goto previous page'
  11928. },
  11929. prevText: {
  11930. type: String,
  11931. default: '&lsaquo;'
  11932. },
  11933. labelNextPage: {
  11934. type: String,
  11935. default: 'Goto next page'
  11936. },
  11937. nextText: {
  11938. type: String,
  11939. default: '&rsaquo;'
  11940. },
  11941. labelLastPage: {
  11942. type: String,
  11943. default: 'Goto last page'
  11944. },
  11945. lastText: {
  11946. type: String,
  11947. default: '&raquo;'
  11948. },
  11949. labelPage: {
  11950. type: String,
  11951. default: 'Goto page'
  11952. },
  11953. hideEllipsis: {
  11954. type: Boolean,
  11955. default: false
  11956. },
  11957. ellipsisText: {
  11958. type: String,
  11959. default: '&hellip;'
  11960. }
  11961. };
  11962. /* harmony default export */ __webpack_exports__["a"] = ({
  11963. components: { bLink: __WEBPACK_IMPORTED_MODULE_3__components_link_link__["a" /* default */] },
  11964. data: function data() {
  11965. return {
  11966. showFirstDots: false,
  11967. showLastDots: false,
  11968. currentPage: this.value
  11969. };
  11970. },
  11971. props: props,
  11972. render: function render(h) {
  11973. var _this = this;
  11974. var buttons = [];
  11975. // Factory function for prev/next/first/last buttons
  11976. var makeEndBtns = function makeEndBtns(linkTo, ariaLabel, btnText, pageTest) {
  11977. var button = void 0;
  11978. pageTest = pageTest || linkTo; // Page # to test against to disable
  11979. if (_this.disabled || _this.isActive(pageTest)) {
  11980. button = h('li', {
  11981. class: ['page-item', 'disabled'],
  11982. attrs: { role: 'none presentation', 'aria-hidden': 'true' }
  11983. }, [h('span', {
  11984. class: ['page-link'],
  11985. domProps: { innerHTML: btnText }
  11986. })]);
  11987. } else {
  11988. button = h('li', {
  11989. class: ['page-item'],
  11990. attrs: { role: 'none presentation' }
  11991. }, [h('b-link', {
  11992. class: ['page-link'],
  11993. props: _this.linkProps(linkTo),
  11994. attrs: {
  11995. role: 'menuitem',
  11996. tabindex: '-1',
  11997. 'aria-label': ariaLabel,
  11998. 'aria-controls': _this.ariaControls || null
  11999. },
  12000. on: {
  12001. click: function click(evt) {
  12002. _this.onClick(linkTo, evt);
  12003. },
  12004. keydown: function keydown(evt) {
  12005. // Links don't normally respond to SPACE, so we add that functionality
  12006. if (evt.keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].SPACE) {
  12007. evt.preventDefault();
  12008. _this.onClick(linkTo, evt);
  12009. }
  12010. }
  12011. }
  12012. }, [h('span', {
  12013. attrs: { 'aria-hidden': 'true' },
  12014. domProps: { innerHTML: btnText }
  12015. })])]);
  12016. }
  12017. return button;
  12018. };
  12019. // Ellipsis factory
  12020. var makeEllipsis = function makeEllipsis() {
  12021. return h('li', {
  12022. class: ['page-item', 'disabled', 'd-none', 'd-sm-flex'],
  12023. attrs: { role: 'separator' }
  12024. }, [h('span', {
  12025. class: ['page-link'],
  12026. domProps: { innerHTML: _this.ellipsisText }
  12027. })]);
  12028. };
  12029. // Goto First Page button
  12030. buttons.push(this.hideGotoEndButtons ? h(false) : makeEndBtns(1, this.labelFirstPage, this.firstText));
  12031. // Goto Previous page button
  12032. buttons.push(makeEndBtns(this.currentPage - 1, this.labelPrevPage, this.prevText, 1));
  12033. // First Ellipsis Bookend
  12034. buttons.push(this.showFirstDots ? makeEllipsis() : h(false));
  12035. // Individual Page links
  12036. this.pageList.forEach(function (page) {
  12037. var inner = void 0;
  12038. var pageNum = _this.makePage(page.number);
  12039. if (_this.disabled) {
  12040. inner = h('span', {
  12041. class: ['page-link'],
  12042. domProps: { innerHTML: pageNum }
  12043. });
  12044. } else {
  12045. var active = _this.isActive(page.number);
  12046. inner = h('b-link', {
  12047. class: _this.pageLinkClasses(page),
  12048. props: _this.linkProps(page.number),
  12049. attrs: {
  12050. role: 'menuitemradio',
  12051. tabindex: active ? '0' : '-1',
  12052. 'aria-controls': _this.ariaControls || null,
  12053. 'aria-label': _this.labelPage + ' ' + page.number,
  12054. 'aria-checked': active ? 'true' : 'false',
  12055. 'aria-posinset': page.number,
  12056. 'aria-setsize': _this.numberOfPages
  12057. },
  12058. domProps: { innerHTML: pageNum },
  12059. on: {
  12060. click: function click(evt) {
  12061. _this.onClick(page.number, evt);
  12062. },
  12063. keydown: function keydown(evt) {
  12064. if (evt.keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].SPACE) {
  12065. evt.preventDefault();
  12066. _this.onClick(page.number, evt);
  12067. }
  12068. }
  12069. }
  12070. });
  12071. }
  12072. buttons.push(h('li', {
  12073. key: page.number,
  12074. class: _this.pageItemClasses(page),
  12075. attrs: { role: 'none presentation' }
  12076. }, [inner]));
  12077. });
  12078. // Last Ellipsis Bookend
  12079. buttons.push(this.showLastDots ? makeEllipsis() : h(false));
  12080. // Goto Next page button
  12081. buttons.push(makeEndBtns(this.currentPage + 1, this.labelNextPage, this.nextText, this.numberOfPages));
  12082. // Goto Last Page button
  12083. buttons.push(this.hideGotoEndButtons ? h(false) : makeEndBtns(this.numberOfPages, this.labelLastPage, this.lastText));
  12084. // Assemble the paginatiom buttons
  12085. var pagination = h('ul', {
  12086. ref: 'ul',
  12087. class: ['pagination', 'b-pagination', this.btnSize, this.alignment],
  12088. attrs: {
  12089. role: 'menubar',
  12090. 'aria-disabled': this.disabled ? 'true' : 'false',
  12091. 'aria-label': this.ariaLabel || null
  12092. },
  12093. on: {
  12094. keydown: function keydown(evt) {
  12095. var keyCode = evt.keyCode;
  12096. var shift = evt.shiftKey;
  12097. if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].LEFT) {
  12098. evt.preventDefault();
  12099. shift ? _this.focusFirst() : _this.focusPrev();
  12100. } else if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].RIGHT) {
  12101. evt.preventDefault();
  12102. shift ? _this.focusLast() : _this.focusNext();
  12103. }
  12104. }
  12105. }
  12106. }, buttons);
  12107. // if we are pagination-nav, wrap in '<nav>' wrapper
  12108. return this.isNav ? h('nav', {}, [pagination]) : pagination;
  12109. },
  12110. watch: {
  12111. currentPage: function currentPage(newPage, oldPage) {
  12112. if (newPage !== oldPage) {
  12113. this.$emit('input', newPage);
  12114. }
  12115. },
  12116. value: function value(newValue, oldValue) {
  12117. if (newValue !== oldValue) {
  12118. this.currentPage = newValue;
  12119. }
  12120. }
  12121. },
  12122. computed: {
  12123. btnSize: function btnSize() {
  12124. return this.size ? 'pagination-' + this.size : '';
  12125. },
  12126. alignment: function alignment() {
  12127. if (this.align === 'center') {
  12128. return 'justify-content-center';
  12129. } else if (this.align === 'end' || this.align === 'right') {
  12130. return 'justify-content-end';
  12131. }
  12132. return '';
  12133. },
  12134. pageList: function pageList() {
  12135. // Sanity checks
  12136. if (this.currentPage > this.numberOfPages) {
  12137. this.currentPage = this.numberOfPages;
  12138. } else if (this.currentPage < 1) {
  12139. this.currentPage = 1;
  12140. }
  12141. // - Hide first ellipsis marker
  12142. this.showFirstDots = false;
  12143. // - Hide last ellipsis marker
  12144. this.showLastDots = false;
  12145. var numLinks = this.limit;
  12146. var startNum = 1;
  12147. if (this.numberOfPages <= this.limit) {
  12148. // Special Case: Less pages available than the limit of displayed pages
  12149. numLinks = this.numberOfPages;
  12150. } else if (this.currentPage < this.limit - 1 && this.limit > ELLIPSIS_THRESHOLD) {
  12151. // We are near the beginning of the page list
  12152. if (!this.hideEllipsis) {
  12153. numLinks = this.limit - 1;
  12154. this.showLastDots = true;
  12155. }
  12156. } else if (this.numberOfPages - this.currentPage + 2 < this.limit && this.limit > ELLIPSIS_THRESHOLD) {
  12157. // We are near the end of the list
  12158. if (!this.hideEllipsis) {
  12159. this.showFirstDots = true;
  12160. numLinks = this.limit - 1;
  12161. }
  12162. startNum = this.numberOfPages - numLinks + 1;
  12163. } else {
  12164. // We are somewhere in the middle of the page list
  12165. if (this.limit > ELLIPSIS_THRESHOLD && !this.hideEllipsis) {
  12166. this.showFirstDots = true;
  12167. this.showLastDots = true;
  12168. numLinks = this.limit - 2;
  12169. }
  12170. startNum = this.currentPage - Math.floor(numLinks / 2);
  12171. }
  12172. // Sanity checks
  12173. if (startNum < 1) {
  12174. startNum = 1;
  12175. } else if (startNum > this.numberOfPages - numLinks) {
  12176. startNum = this.numberOfPages - numLinks + 1;
  12177. }
  12178. // Generate list of page numbers
  12179. var pages = makePageArray(startNum, numLinks);
  12180. // We limit to a total of 3 page buttons on small screens
  12181. // Ellipsis will also be hidden on small screens
  12182. if (pages.length > 3) {
  12183. var idx = this.currentPage - startNum;
  12184. if (idx === 0) {
  12185. // Keep leftmost 3 buttons visible
  12186. for (var i = 3; i < pages.length; i++) {
  12187. pages[i].className = 'd-none d-sm-flex';
  12188. }
  12189. } else if (idx === pages.length - 1) {
  12190. // Keep rightmost 3 buttons visible
  12191. for (var _i = 0; _i < pages.length - 3; _i++) {
  12192. pages[_i].className = 'd-none d-sm-flex';
  12193. }
  12194. } else {
  12195. // hide left button(s)
  12196. for (var _i2 = 0; _i2 < idx - 1; _i2++) {
  12197. pages[_i2].className = 'd-none d-sm-flex';
  12198. }
  12199. // hide right button(s)
  12200. for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {
  12201. pages[_i3].className = 'd-none d-sm-flex';
  12202. }
  12203. }
  12204. }
  12205. return pages;
  12206. }
  12207. },
  12208. methods: {
  12209. isActive: function isActive(pagenum) {
  12210. return pagenum === this.currentPage;
  12211. },
  12212. pageItemClasses: function pageItemClasses(page) {
  12213. return ['page-item', this.disabled ? 'disabled' : '', this.isActive(page.number) ? 'active' : '', page.className];
  12214. },
  12215. pageLinkClasses: function pageLinkClasses(page) {
  12216. return ['page-link', this.disabled ? 'disabled' : '',
  12217. // Interim workaround to get better focus styling of active button
  12218. // See https://github.com/twbs/bootstrap/issues/24838
  12219. this.isActive(page.number) ? 'btn-primary' : ''];
  12220. },
  12221. getButtons: function getButtons() {
  12222. // Return only buttons that are visible
  12223. return Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["u" /* selectAll */])('a.page-link', this.$el).filter(function (btn) {
  12224. return Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["m" /* isVisible */])(btn);
  12225. });
  12226. },
  12227. setBtnFocus: function setBtnFocus(btn) {
  12228. this.$nextTick(function () {
  12229. btn.focus();
  12230. });
  12231. },
  12232. focusCurrent: function focusCurrent() {
  12233. var _this2 = this;
  12234. var btn = this.getButtons().find(function (el) {
  12235. return parseInt(Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["e" /* getAttr */])(el, 'aria-posinset'), 10) === _this2.currentPage;
  12236. });
  12237. if (btn && btn.focus) {
  12238. this.setBtnFocus(btn);
  12239. } else {
  12240. // Fallback if current page is not in button list
  12241. this.focusFirst();
  12242. }
  12243. },
  12244. focusFirst: function focusFirst() {
  12245. var btn = this.getButtons().find(function (el) {
  12246. return !Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["k" /* isDisabled */])(el);
  12247. });
  12248. if (btn && btn.focus && btn !== document.activeElement) {
  12249. this.setBtnFocus(btn);
  12250. }
  12251. },
  12252. focusLast: function focusLast() {
  12253. var btn = this.getButtons().reverse().find(function (el) {
  12254. return !Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["k" /* isDisabled */])(el);
  12255. });
  12256. if (btn && btn.focus && btn !== document.activeElement) {
  12257. this.setBtnFocus(btn);
  12258. }
  12259. },
  12260. focusPrev: function focusPrev() {
  12261. var buttons = this.getButtons();
  12262. var idx = buttons.indexOf(document.activeElement);
  12263. if (idx > 0 && !Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["k" /* isDisabled */])(buttons[idx - 1]) && buttons[idx - 1].focus) {
  12264. this.setBtnFocus(buttons[idx - 1]);
  12265. }
  12266. },
  12267. focusNext: function focusNext() {
  12268. var buttons = this.getButtons();
  12269. var idx = buttons.indexOf(document.activeElement);
  12270. var cnt = buttons.length - 1;
  12271. if (idx < cnt && !Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["k" /* isDisabled */])(buttons[idx + 1]) && buttons[idx + 1].focus) {
  12272. this.setBtnFocus(buttons[idx + 1]);
  12273. }
  12274. }
  12275. }
  12276. });
  12277. /***/ }),
  12278. /***/ "./node_modules/bootstrap-vue/es/mixins/toolpop.js":
  12279. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  12280. "use strict";
  12281. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  12282. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  12283. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  12284. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_ssr__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/ssr.js");
  12285. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_observe_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js");
  12286. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  12287. /*
  12288. * Tooltip/Popover component mixin
  12289. * Common props
  12290. */
  12291. var PLACEMENTS = {
  12292. top: 'top',
  12293. topleft: 'topleft',
  12294. topright: 'topright',
  12295. right: 'right',
  12296. righttop: 'righttop',
  12297. rightbottom: 'rightbottom',
  12298. bottom: 'bottom',
  12299. bottomleft: 'bottomleft',
  12300. bottomright: 'bottomright',
  12301. left: 'left',
  12302. lefttop: 'lefttop',
  12303. leftbottom: 'leftbottom',
  12304. auto: 'auto'
  12305. };
  12306. var OBSERVER_CONFIG = {
  12307. subtree: true,
  12308. childList: true,
  12309. characterData: true,
  12310. attributes: true,
  12311. attributeFilter: ['class', 'style']
  12312. };
  12313. /* harmony default export */ __webpack_exports__["a"] = ({
  12314. props: {
  12315. target: {
  12316. // String ID of element, or element/component reference
  12317. type: [String, Object, __WEBPACK_IMPORTED_MODULE_3__utils_ssr__["a" /* HTMLElement */], Function]
  12318. },
  12319. delay: {
  12320. type: [Number, Object, String],
  12321. default: 0
  12322. },
  12323. offset: {
  12324. type: [Number, String],
  12325. default: 0
  12326. },
  12327. noFade: {
  12328. type: Boolean,
  12329. default: false
  12330. },
  12331. container: {
  12332. // String ID of container, if null body is used (default)
  12333. type: String,
  12334. default: null
  12335. },
  12336. boundary: {
  12337. // String: scrollParent, window, or viewport
  12338. // Element: element reference
  12339. type: [String, Object],
  12340. default: 'scrollParent'
  12341. },
  12342. show: {
  12343. type: Boolean,
  12344. default: false
  12345. },
  12346. disabled: {
  12347. type: Boolean,
  12348. default: false
  12349. }
  12350. },
  12351. watch: {
  12352. show: function show(_show, old) {
  12353. if (_show === old) {
  12354. return;
  12355. }
  12356. _show ? this.onOpen() : this.onClose();
  12357. },
  12358. disabled: function disabled(_disabled, old) {
  12359. if (_disabled === old) {
  12360. return;
  12361. }
  12362. _disabled ? this.onDisable() : this.onEnable();
  12363. }
  12364. },
  12365. created: function created() {
  12366. // Create non-reactive property
  12367. this._toolpop = null;
  12368. this._obs_title = null;
  12369. this._obs_content = null;
  12370. },
  12371. mounted: function mounted() {
  12372. var _this = this;
  12373. // We do this in a next tick to ensure DOM has rendered first
  12374. this.$nextTick(function () {
  12375. // Instantiate ToolTip/PopOver on target
  12376. // The createToolpop method must exist in main component
  12377. if (_this.createToolpop()) {
  12378. if (_this.disabled) {
  12379. // Initially disabled
  12380. _this.onDisable();
  12381. }
  12382. // Listen to open signals from others
  12383. _this.$on('open', _this.onOpen);
  12384. // Listen to close signals from others
  12385. _this.$on('close', _this.onClose);
  12386. // Listen to disable signals from others
  12387. _this.$on('disable', _this.onDisable);
  12388. // Listen to disable signals from others
  12389. _this.$on('enable', _this.onEnable);
  12390. // Observe content Child changes so we can notify popper of possible size change
  12391. _this.setObservers(true);
  12392. // Set intially open state
  12393. if (_this.show) {
  12394. _this.onOpen();
  12395. }
  12396. }
  12397. });
  12398. },
  12399. updated: function updated() {
  12400. // If content/props changes, etc
  12401. if (this._toolpop) {
  12402. this._toolpop.updateConfig(this.getConfig());
  12403. }
  12404. },
  12405. /* istanbul ignore next: not easy to test */
  12406. activated: function activated() {
  12407. // Called when component is inside a <keep-alive> and component brought offline
  12408. this.setObservers(true);
  12409. },
  12410. /* istanbul ignore next: not easy to test */
  12411. deactivated: function deactivated() {
  12412. // Called when component is inside a <keep-alive> and component taken offline
  12413. if (this._toolpop) {
  12414. this.setObservers(false);
  12415. this._toolpop.hide();
  12416. }
  12417. },
  12418. /* istanbul ignore next: not easy to test */
  12419. beforeDestroy: function beforeDestroy() {
  12420. // Shutdown our local event listeners
  12421. this.$off('open', this.onOpen);
  12422. this.$off('close', this.onClose);
  12423. this.$off('disable', this.onDisable);
  12424. this.$off('enable', this.onEnable);
  12425. this.setObservers(false);
  12426. // bring our content back if needed
  12427. this.bringItBack();
  12428. if (this._toolpop) {
  12429. this._toolpop.destroy();
  12430. this._toolpop = null;
  12431. }
  12432. },
  12433. computed: {
  12434. baseConfig: function baseConfig() {
  12435. var cont = this.container;
  12436. var delay = _typeof(this.delay) === 'object' ? this.delay : parseInt(this.delay, 10) || 0;
  12437. return {
  12438. // Title prop
  12439. title: (this.title || '').trim() || '',
  12440. // Contnt prop (if popover)
  12441. content: (this.content || '').trim() || '',
  12442. // Tooltip/Popover placement
  12443. placement: PLACEMENTS[this.placement] || 'auto',
  12444. // Container curently needs to be an ID with '#' prepended, if null then body is used
  12445. container: cont ? /^#/.test(cont) ? cont : '#' + cont : false,
  12446. // boundariesElement passed to popper
  12447. boundary: this.boundary,
  12448. // Show/Hide delay
  12449. delay: delay || 0,
  12450. // Offset can be css distance. if no units, pixels are assumed
  12451. offset: this.offset || 0,
  12452. // Disable fade Animation?
  12453. animation: !this.noFade,
  12454. // Open/Close Trigger(s)
  12455. trigger: Object(__WEBPACK_IMPORTED_MODULE_0__utils_array__["d" /* isArray */])(this.triggers) ? this.triggers.join(' ') : this.triggers,
  12456. // Callbacks so we can trigger events on component
  12457. callbacks: {
  12458. show: this.onShow,
  12459. shown: this.onShown,
  12460. hide: this.onHide,
  12461. hidden: this.onHidden,
  12462. enabled: this.onEnabled,
  12463. disabled: this.onDisabled
  12464. }
  12465. };
  12466. }
  12467. },
  12468. methods: {
  12469. getConfig: function getConfig() {
  12470. var cfg = Object(__WEBPACK_IMPORTED_MODULE_1__utils_object__["a" /* assign */])({}, this.baseConfig);
  12471. if (this.$refs.title && this.$refs.title.innerHTML.trim()) {
  12472. // If slot has content, it overrides 'title' prop
  12473. // We use the DOM node as content to allow components!
  12474. cfg.title = this.$refs.title;
  12475. cfg.html = true;
  12476. }
  12477. if (this.$refs.content && this.$refs.content.innerHTML.trim()) {
  12478. // If slot has content, it overrides 'content' prop
  12479. // We use the DOM node as content to allow components!
  12480. cfg.content = this.$refs.content;
  12481. cfg.html = true;
  12482. }
  12483. return cfg;
  12484. },
  12485. onOpen: function onOpen() {
  12486. if (this._toolpop) {
  12487. this._toolpop.show();
  12488. }
  12489. },
  12490. onClose: function onClose(callback) {
  12491. if (this._toolpop) {
  12492. this._toolpop.hide(callback);
  12493. } else if (typeof callback === 'function') {
  12494. callback();
  12495. }
  12496. },
  12497. onDisable: function onDisable() {
  12498. if (this._toolpop) {
  12499. this._toolpop.disable();
  12500. }
  12501. },
  12502. onEnable: function onEnable() {
  12503. if (this._toolpop) {
  12504. this._toolpop.enable();
  12505. }
  12506. },
  12507. updatePosition: function updatePosition() {
  12508. if (this._toolpop) {
  12509. // Instruct popper to reposition popover if necessary
  12510. this._toolpop.update();
  12511. }
  12512. },
  12513. getTarget: function getTarget() {
  12514. var target = this.target;
  12515. if (typeof target === 'function') {
  12516. target = target();
  12517. }
  12518. if (typeof target === 'string') {
  12519. // Assume ID of element
  12520. return Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["g" /* getById */])(target);
  12521. } else if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["l" /* isElement */])(target.$el)) {
  12522. // Component reference
  12523. return target.$el;
  12524. } else if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["l" /* isElement */])(target)) {
  12525. // Element reference
  12526. return target;
  12527. }
  12528. return null;
  12529. },
  12530. onShow: function onShow(evt) {
  12531. this.$emit('show', evt);
  12532. },
  12533. onShown: function onShown(evt) {
  12534. this.setObservers(true);
  12535. this.$emit('update:show', true);
  12536. this.$emit('shown', evt);
  12537. },
  12538. onHide: function onHide(evt) {
  12539. this.$emit('hide', evt);
  12540. },
  12541. onHidden: function onHidden(evt) {
  12542. this.setObservers(false);
  12543. // bring our content back if needed to keep Vue happy
  12544. // Tooltip class will move it back to tip when shown again
  12545. this.bringItBack();
  12546. this.$emit('update:show', false);
  12547. this.$emit('hidden', evt);
  12548. },
  12549. onEnabled: function onEnabled(evt) {
  12550. if (!evt || evt.type !== 'enabled') {
  12551. // Prevent possible endless loop if user mistakienly fires enabled instead of enable
  12552. return;
  12553. }
  12554. this.$emit('update:disabled', false);
  12555. this.$emit('disabled');
  12556. },
  12557. onDisabled: function onDisabled(evt) {
  12558. if (!evt || evt.type !== 'disabled') {
  12559. // Prevent possible endless loop if user mistakienly fires disabled instead of disable
  12560. return;
  12561. }
  12562. this.$emit('update:disabled', true);
  12563. this.$emit('enabled');
  12564. },
  12565. bringItBack: function bringItBack() {
  12566. // bring our content back if needed to keep Vue happy
  12567. if (this.$el && this.$refs.title) {
  12568. this.$el.appendChild(this.$refs.title);
  12569. }
  12570. if (this.$el && this.$refs.content) {
  12571. this.$el.appendChild(this.$refs.content);
  12572. }
  12573. },
  12574. /* istanbul ignore next: not easy to test */
  12575. setObservers: function setObservers(on) {
  12576. if (on) {
  12577. if (this.$refs.title) {
  12578. this._obs_title = Object(__WEBPACK_IMPORTED_MODULE_4__utils_observe_dom__["a" /* default */])(this.$refs.title, this.updatePosition.bind(this), OBSERVER_CONFIG);
  12579. }
  12580. if (this.$refs.content) {
  12581. this._obs_content = Object(__WEBPACK_IMPORTED_MODULE_4__utils_observe_dom__["a" /* default */])(this.$refs.content, this.updatePosition.bind(this), OBSERVER_CONFIG);
  12582. }
  12583. } else {
  12584. if (this._obs_title) {
  12585. this._obs_title.disconnect();
  12586. this._obs_title = null;
  12587. }
  12588. if (this._obs_content) {
  12589. this._obs_content.disconnect();
  12590. this._obs_content = null;
  12591. }
  12592. }
  12593. }
  12594. }
  12595. });
  12596. /***/ }),
  12597. /***/ "./node_modules/bootstrap-vue/es/utils/array.js":
  12598. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  12599. "use strict";
  12600. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return from; });
  12601. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isArray; });
  12602. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return arrayIncludes; });
  12603. /* unused harmony export arrayFind */
  12604. /* harmony export (immutable) */ __webpack_exports__["b"] = concat;
  12605. // Production steps of ECMA-262, Edition 6, 22.1.2.1
  12606. // es6-ified by @alexsasharegan
  12607. if (!Array.from) {
  12608. Array.from = function () {
  12609. var toStr = Object.prototype.toString;
  12610. var isCallable = function isCallable(fn) {
  12611. return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
  12612. };
  12613. var toInteger = function toInteger(value) {
  12614. var number = Number(value);
  12615. if (isNaN(number)) {
  12616. return 0;
  12617. }
  12618. if (number === 0 || !isFinite(number)) {
  12619. return number;
  12620. }
  12621. return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
  12622. };
  12623. var maxSafeInteger = Math.pow(2, 53) - 1;
  12624. var toLength = function toLength(value) {
  12625. return Math.min(Math.max(toInteger(value), 0), maxSafeInteger);
  12626. };
  12627. // The length property of the from method is 1.
  12628. return function from(arrayLike /*, mapFn, thisArg */) {
  12629. // 1. Let C be the this value.
  12630. var C = this;
  12631. // 2. Let items be ToObject(arrayLike).
  12632. var items = Object(arrayLike);
  12633. // 3. ReturnIfAbrupt(items).
  12634. if (arrayLike == null) {
  12635. throw new TypeError('Array.from requires an array-like object - not null or undefined');
  12636. }
  12637. // 4. If mapfn is undefined, then let mapping be false.
  12638. var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
  12639. var T = void 0;
  12640. if (typeof mapFn !== 'undefined') {
  12641. // 5. else
  12642. // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
  12643. if (!isCallable(mapFn)) {
  12644. throw new TypeError('Array.from: when provided, the second argument must be a function');
  12645. }
  12646. // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
  12647. if (arguments.length > 2) {
  12648. T = arguments[2];
  12649. }
  12650. }
  12651. // 10. Let lenValue be Get(items, "length").
  12652. // 11. Let len be ToLength(lenValue).
  12653. var len = toLength(items.length);
  12654. // 13. If IsConstructor(C) is true, then
  12655. // 13. a. Let A be the result of calling the [[Construct]] internal method
  12656. // of C with an argument list containing the single item len.
  12657. // 14. a. Else, Let A be ArrayCreate(len).
  12658. var A = isCallable(C) ? Object(new C(len)) : new Array(len);
  12659. // 16. Let k be 0.
  12660. var k = 0;
  12661. // 17. Repeat, while k < len… (also steps a - h)
  12662. var kValue = void 0;
  12663. while (k < len) {
  12664. kValue = items[k];
  12665. if (mapFn) {
  12666. A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
  12667. } else {
  12668. A[k] = kValue;
  12669. }
  12670. k += 1;
  12671. }
  12672. // 18. Let putStatus be Put(A, "length", len, true).
  12673. A.length = len;
  12674. // 20. Return A.
  12675. return A;
  12676. };
  12677. }();
  12678. }
  12679. // https://tc39.github.io/ecma262/#sec-array.prototype.find
  12680. // Needed for IE support
  12681. if (!Array.prototype.find) {
  12682. // eslint-disable-next-line no-extend-native
  12683. Object.defineProperty(Array.prototype, 'find', {
  12684. value: function value(predicate) {
  12685. // 1. Let O be ? ToObject(this value).
  12686. if (this == null) {
  12687. throw new TypeError('"this" is null or not defined');
  12688. }
  12689. var o = Object(this);
  12690. // 2. Let len be ? ToLength(? Get(O, "length")).
  12691. var len = o.length >>> 0;
  12692. // 3. If IsCallable(predicate) is false, throw a TypeError exception.
  12693. if (typeof predicate !== 'function') {
  12694. throw new TypeError('predicate must be a function');
  12695. }
  12696. // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
  12697. var thisArg = arguments[1];
  12698. // 5. Let k be 0.
  12699. var k = 0;
  12700. // 6. Repeat, while k < len
  12701. while (k < len) {
  12702. // a. Let Pk be ! ToString(k).
  12703. // b. Let kValue be ? Get(O, Pk).
  12704. // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
  12705. // d. If testResult is true, return kValue.
  12706. var kValue = o[k];
  12707. if (predicate.call(thisArg, kValue, k, o)) {
  12708. return kValue;
  12709. }
  12710. // e. Increase k by 1.
  12711. k++;
  12712. }
  12713. // 7. Return undefined.
  12714. return undefined;
  12715. }
  12716. });
  12717. }
  12718. if (!Array.isArray) {
  12719. Array.isArray = function (arg) {
  12720. return Object.prototype.toString.call(arg) === '[object Array]';
  12721. };
  12722. }
  12723. // Static
  12724. var from = Array.from;
  12725. var isArray = Array.isArray;
  12726. // Instance
  12727. var arrayIncludes = function arrayIncludes(array, value) {
  12728. return array.indexOf(value) !== -1;
  12729. };
  12730. var arrayFind = function arrayFind(array, fn, thisArg) {
  12731. return array.find(fn, thisArg);
  12732. };
  12733. function concat() {
  12734. return Array.prototype.concat.apply([], arguments);
  12735. }
  12736. /***/ }),
  12737. /***/ "./node_modules/bootstrap-vue/es/utils/bv-event.class.js":
  12738. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  12739. "use strict";
  12740. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  12741. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  12742. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  12743. var BvEvent = function () {
  12744. function BvEvent(type) {
  12745. var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  12746. _classCallCheck(this, BvEvent);
  12747. // Start by emulating native Event constructor.
  12748. if (!type) {
  12749. throw new TypeError('Failed to construct \'' + this.constructor.name + '\'. 1 argument required, ' + arguments.length + ' given.');
  12750. }
  12751. // Assign defaults first, the eventInit,
  12752. // and the type last so it can't be overwritten.
  12753. Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])(this, BvEvent.defaults(), eventInit, { type: type });
  12754. // Freeze some props as readonly, but leave them enumerable.
  12755. Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["c" /* defineProperties */])(this, {
  12756. type: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])(),
  12757. cancelable: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])(),
  12758. nativeEvent: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])(),
  12759. target: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])(),
  12760. relatedTarget: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])(),
  12761. vueTarget: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])()
  12762. });
  12763. // Create a private variable using closure scoping.
  12764. var defaultPrevented = false;
  12765. // Recreate preventDefault method. One way setter.
  12766. this.preventDefault = function preventDefault() {
  12767. if (this.cancelable) {
  12768. defaultPrevented = true;
  12769. }
  12770. };
  12771. // Create 'defaultPrevented' publicly accessible prop
  12772. // that can only be altered by the preventDefault method.
  12773. Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["d" /* defineProperty */])(this, 'defaultPrevented', {
  12774. enumerable: true,
  12775. get: function get() {
  12776. return defaultPrevented;
  12777. }
  12778. });
  12779. }
  12780. _createClass(BvEvent, null, [{
  12781. key: 'defaults',
  12782. value: function defaults() {
  12783. return {
  12784. type: '',
  12785. cancelable: true,
  12786. nativeEvent: null,
  12787. target: null,
  12788. relatedTarget: null,
  12789. vueTarget: null
  12790. };
  12791. }
  12792. }]);
  12793. return BvEvent;
  12794. }();
  12795. /* harmony default export */ __webpack_exports__["a"] = (BvEvent);
  12796. /***/ }),
  12797. /***/ "./node_modules/bootstrap-vue/es/utils/copyProps.js":
  12798. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  12799. "use strict";
  12800. /* harmony export (immutable) */ __webpack_exports__["a"] = copyProps;
  12801. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  12802. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  12803. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__identity__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/identity.js");
  12804. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  12805. /**
  12806. * @param {[]|{}} props
  12807. * @param {Function} transformFn
  12808. */
  12809. function copyProps(props) {
  12810. var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : __WEBPACK_IMPORTED_MODULE_2__identity__["a" /* default */];
  12811. if (Object(__WEBPACK_IMPORTED_MODULE_0__array__["d" /* isArray */])(props)) {
  12812. return props.map(transformFn);
  12813. }
  12814. // Props as an object.
  12815. var copied = {};
  12816. for (var prop in props) {
  12817. if (props.hasOwnProperty(prop)) {
  12818. if ((typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) === 'object') {
  12819. copied[transformFn(prop)] = Object(__WEBPACK_IMPORTED_MODULE_1__object__["a" /* assign */])({}, props[prop]);
  12820. } else {
  12821. copied[transformFn(prop)] = props[prop];
  12822. }
  12823. }
  12824. }
  12825. return copied;
  12826. }
  12827. /***/ }),
  12828. /***/ "./node_modules/bootstrap-vue/es/utils/dom.js":
  12829. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  12830. "use strict";
  12831. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return isElement; });
  12832. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return isVisible; });
  12833. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return isDisabled; });
  12834. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return reflow; });
  12835. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return selectAll; });
  12836. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return select; });
  12837. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return matches; });
  12838. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return closest; });
  12839. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getById; });
  12840. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addClass; });
  12841. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return removeClass; });
  12842. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return hasClass; });
  12843. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return setAttr; });
  12844. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return removeAttr; });
  12845. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getAttr; });
  12846. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return hasAttr; });
  12847. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getBCR; });
  12848. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getCS; });
  12849. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return offset; });
  12850. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return position; });
  12851. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return eventOn; });
  12852. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return eventOff; });
  12853. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  12854. // Determine if an element is an HTML Element
  12855. var isElement = function isElement(el) {
  12856. return el && el.nodeType === Node.ELEMENT_NODE;
  12857. };
  12858. // Determine if an HTML element is visible - Faster than CSS check
  12859. var isVisible = function isVisible(el) {
  12860. return isElement(el) && document.body.contains(el) && el.getBoundingClientRect().height > 0 && el.getBoundingClientRect().width > 0;
  12861. };
  12862. // Determine if an element is disabled
  12863. var isDisabled = function isDisabled(el) {
  12864. return !isElement(el) || el.disabled || el.classList.contains('disabled') || Boolean(el.getAttribute('disabled'));
  12865. };
  12866. // Cause/wait-for an element to reflow it's content (adjusting it's height/width)
  12867. var reflow = function reflow(el) {
  12868. // requsting an elements offsetHight will trigger a reflow of the element content
  12869. return isElement(el) && el.offsetHeight;
  12870. };
  12871. // Select all elements matching selector. Returns [] if none found
  12872. var selectAll = function selectAll(selector, root) {
  12873. if (!isElement(root)) {
  12874. root = document;
  12875. }
  12876. return Object(__WEBPACK_IMPORTED_MODULE_0__array__["c" /* from */])(root.querySelectorAll(selector));
  12877. };
  12878. // Select a single element, returns null if not found
  12879. var select = function select(selector, root) {
  12880. if (!isElement(root)) {
  12881. root = document;
  12882. }
  12883. return root.querySelector(selector) || null;
  12884. };
  12885. // Determine if an element matches a selector
  12886. var matches = function matches(el, selector) {
  12887. if (!isElement(el)) {
  12888. return false;
  12889. }
  12890. // https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill
  12891. // Prefer native implementations over polyfill function
  12892. var proto = Element.prototype;
  12893. var Matches = proto.matches || proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector ||
  12894. /* istanbul ignore next */
  12895. function (sel) {
  12896. var element = this;
  12897. var m = selectAll(sel, element.document || element.ownerDocument);
  12898. var i = m.length;
  12899. // eslint-disable-next-line no-empty
  12900. while (--i >= 0 && m.item(i) !== element) {}
  12901. return i > -1;
  12902. };
  12903. return Matches.call(el, selector);
  12904. };
  12905. // Finds closest element matching selector. Returns null if not found
  12906. var closest = function closest(selector, root) {
  12907. if (!isElement(root)) {
  12908. return null;
  12909. }
  12910. // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
  12911. // Since we dont support IE < 10, we can use the "Matches" version of the polyfill for speed
  12912. // Prefer native implementation over polyfill function
  12913. var Closest = Element.prototype.closest ||
  12914. /* istanbul ignore next */
  12915. function (sel) {
  12916. var element = this;
  12917. if (!document.documentElement.contains(element)) {
  12918. return null;
  12919. }
  12920. do {
  12921. // Use our "patched" matches function
  12922. if (matches(element, sel)) {
  12923. return element;
  12924. }
  12925. element = element.parentElement;
  12926. } while (element !== null);
  12927. return null;
  12928. };
  12929. var el = Closest.call(root, selector);
  12930. // Emulate jQuery closest and return null if match is the passed in element (root)
  12931. return el === root ? null : el;
  12932. };
  12933. // Get an element given an ID
  12934. var getById = function getById(id) {
  12935. return document.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;
  12936. };
  12937. // Add a class to an element
  12938. var addClass = function addClass(el, className) {
  12939. if (className && isElement(el)) {
  12940. el.classList.add(className);
  12941. }
  12942. };
  12943. // Remove a class from an element
  12944. var removeClass = function removeClass(el, className) {
  12945. if (className && isElement(el)) {
  12946. el.classList.remove(className);
  12947. }
  12948. };
  12949. // Test if an element has a class
  12950. var hasClass = function hasClass(el, className) {
  12951. if (className && isElement(el)) {
  12952. return el.classList.contains(className);
  12953. }
  12954. return false;
  12955. };
  12956. // Set an attribute on an element
  12957. var setAttr = function setAttr(el, attr, value) {
  12958. if (attr && isElement(el)) {
  12959. el.setAttribute(attr, value);
  12960. }
  12961. };
  12962. // Remove an attribute from an element
  12963. var removeAttr = function removeAttr(el, attr) {
  12964. if (attr && isElement(el)) {
  12965. el.removeAttribute(attr);
  12966. }
  12967. };
  12968. // Get an attribute value from an element (returns null if not found)
  12969. var getAttr = function getAttr(el, attr) {
  12970. if (attr && isElement(el)) {
  12971. return el.getAttribute(attr);
  12972. }
  12973. return null;
  12974. };
  12975. // Determine if an attribute exists on an element (returns true or false, or null if element not found)
  12976. var hasAttr = function hasAttr(el, attr) {
  12977. if (attr && isElement(el)) {
  12978. return el.hasAttribute(attr);
  12979. }
  12980. return null;
  12981. };
  12982. // Return the Bounding Client Rec of an element. Retruns null if not an element
  12983. var getBCR = function getBCR(el) {
  12984. return isElement(el) ? el.getBoundingClientRect() : null;
  12985. };
  12986. // Get computed style object for an element
  12987. var getCS = function getCS(el) {
  12988. return isElement(el) ? window.getComputedStyle(el) : {};
  12989. };
  12990. // Return an element's offset wrt document element
  12991. // https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset
  12992. var offset = function offset(el) {
  12993. if (isElement(el)) {
  12994. if (!el.getClientRects().length) {
  12995. return { top: 0, left: 0 };
  12996. }
  12997. var bcr = getBCR(el);
  12998. var win = el.ownerDocument.defaultView;
  12999. return {
  13000. top: bcr.top + win.pageYOffset,
  13001. left: bcr.left + win.pageXOffset
  13002. };
  13003. }
  13004. };
  13005. // Return an element's offset wrt to it's offsetParent
  13006. // https://j11y.io/jquery/#v=git&fn=jQuery.fn.position
  13007. var position = function position(el) {
  13008. if (!isElement(el)) {
  13009. return;
  13010. }
  13011. var parentOffset = { top: 0, left: 0 };
  13012. var offsetSelf = void 0;
  13013. var offsetParent = void 0;
  13014. if (getCS(el).position === 'fixed') {
  13015. offsetSelf = getBCR(el);
  13016. } else {
  13017. offsetSelf = offset(el);
  13018. var doc = el.ownerDocument;
  13019. offsetParent = el.offsetParent || doc.documentElement;
  13020. while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {
  13021. offsetParent = offsetParent.parentNode;
  13022. }
  13023. if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {
  13024. parentOffset = offset(offsetParent);
  13025. parentOffset.top += parseFloat(getCS(offsetParent).borderTopWidth);
  13026. parentOffset.left += parseFloat(getCS(offsetParent).borderLeftWidth);
  13027. }
  13028. }
  13029. return {
  13030. top: offsetSelf.top - parentOffset.top - parseFloat(getCS(el).marginTop),
  13031. left: offsetSelf.left - parentOffset.left - parseFloat(getCS(el).marginLeft)
  13032. };
  13033. };
  13034. // Attach an event listener to an element
  13035. var eventOn = function eventOn(el, evtName, handler) {
  13036. if (el && el.addEventListener) {
  13037. el.addEventListener(evtName, handler);
  13038. }
  13039. };
  13040. // Remove an event listener from an element
  13041. var eventOff = function eventOff(el, evtName, handler) {
  13042. if (el && el.removeEventListener) {
  13043. el.removeEventListener(evtName, handler);
  13044. }
  13045. };
  13046. /***/ }),
  13047. /***/ "./node_modules/bootstrap-vue/es/utils/identity.js":
  13048. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13049. "use strict";
  13050. /* harmony export (immutable) */ __webpack_exports__["a"] = identity;
  13051. function identity(x) {
  13052. return x;
  13053. }
  13054. /***/ }),
  13055. /***/ "./node_modules/bootstrap-vue/es/utils/key-codes.js":
  13056. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13057. "use strict";
  13058. /*
  13059. * Key Codes (events)
  13060. */
  13061. /* harmony default export */ __webpack_exports__["a"] = ({
  13062. SPACE: 32,
  13063. ENTER: 13,
  13064. ESC: 27,
  13065. LEFT: 37,
  13066. UP: 38,
  13067. RIGHT: 39,
  13068. DOWN: 40,
  13069. PAGEUP: 33,
  13070. PAGEDOWN: 34,
  13071. HOME: 36,
  13072. END: 35
  13073. });
  13074. /***/ }),
  13075. /***/ "./node_modules/bootstrap-vue/es/utils/loose-equal.js":
  13076. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13077. "use strict";
  13078. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  13079. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  13080. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  13081. /**
  13082. * Quick object check - this is primarily used to tell
  13083. * Objects from primitive values when we know the value
  13084. * is a JSON-compliant type.
  13085. */
  13086. function isObject(obj) {
  13087. return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';
  13088. }
  13089. /**
  13090. * Check if two values are loosely equal - that is,
  13091. * if they are plain objects, do they have the same shape?
  13092. * Returns boolean true or false
  13093. */
  13094. function looseEqual(a, b) {
  13095. if (a === b) return true;
  13096. var isObjectA = isObject(a);
  13097. var isObjectB = isObject(b);
  13098. if (isObjectA && isObjectB) {
  13099. try {
  13100. var isArrayA = Object(__WEBPACK_IMPORTED_MODULE_0__array__["d" /* isArray */])(a);
  13101. var isArrayB = Object(__WEBPACK_IMPORTED_MODULE_0__array__["d" /* isArray */])(b);
  13102. if (isArrayA && isArrayB) {
  13103. return a.length === b.length && a.every(function (e, i) {
  13104. return looseEqual(e, b[i]);
  13105. });
  13106. } else if (!isArrayA && !isArrayB) {
  13107. var keysA = Object(__WEBPACK_IMPORTED_MODULE_1__object__["e" /* keys */])(a);
  13108. var keysB = Object(__WEBPACK_IMPORTED_MODULE_1__object__["e" /* keys */])(b);
  13109. return keysA.length === keysB.length && keysA.every(function (key) {
  13110. return looseEqual(a[key], b[key]);
  13111. });
  13112. } else {
  13113. return false;
  13114. }
  13115. } catch (e) {
  13116. return false;
  13117. }
  13118. } else if (!isObjectA && !isObjectB) {
  13119. return String(a) === String(b);
  13120. } else {
  13121. return false;
  13122. }
  13123. }
  13124. /* harmony default export */ __webpack_exports__["a"] = (looseEqual);
  13125. /***/ }),
  13126. /***/ "./node_modules/bootstrap-vue/es/utils/lower-first.js":
  13127. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13128. "use strict";
  13129. /* harmony export (immutable) */ __webpack_exports__["a"] = lowerFirst;
  13130. /**
  13131. * @param {string} str
  13132. */
  13133. function lowerFirst(str) {
  13134. if (typeof str !== 'string') {
  13135. str = String(str);
  13136. }
  13137. return str.charAt(0).toLowerCase() + str.slice(1);
  13138. }
  13139. /***/ }),
  13140. /***/ "./node_modules/bootstrap-vue/es/utils/memoize.js":
  13141. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13142. "use strict";
  13143. /* harmony export (immutable) */ __webpack_exports__["a"] = memoize;
  13144. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  13145. function memoize(fn) {
  13146. var cache = Object(__WEBPACK_IMPORTED_MODULE_0__object__["b" /* create */])(null);
  13147. return function memoizedFn() {
  13148. var args = JSON.stringify(arguments);
  13149. return cache[args] = cache[args] || fn.apply(null, arguments);
  13150. };
  13151. }
  13152. /***/ }),
  13153. /***/ "./node_modules/bootstrap-vue/es/utils/object.js":
  13154. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13155. "use strict";
  13156. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return assign; });
  13157. /* unused harmony export getOwnPropertyNames */
  13158. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return keys; });
  13159. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return defineProperties; });
  13160. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return defineProperty; });
  13161. /* unused harmony export freeze */
  13162. /* unused harmony export getOwnPropertyDescriptor */
  13163. /* unused harmony export getOwnPropertySymbols */
  13164. /* unused harmony export getPrototypeOf */
  13165. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return create; });
  13166. /* unused harmony export isFrozen */
  13167. /* unused harmony export is */
  13168. /* harmony export (immutable) */ __webpack_exports__["f"] = readonlyDescriptor;
  13169. /**
  13170. * Aliasing Object[method] allows the minifier to shorten methods to a single character variable,
  13171. * as well as giving BV a chance to inject polyfills.
  13172. * As long as we avoid
  13173. * - import * as Object from "utils/object"
  13174. * all unused exports should be removed by tree-shaking.
  13175. */
  13176. // @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
  13177. if (typeof Object.assign !== 'function') {
  13178. Object.assign = function (target, varArgs) {
  13179. // .length of function is 2
  13180. if (target == null) {
  13181. // TypeError if undefined or null
  13182. throw new TypeError('Cannot convert undefined or null to object');
  13183. }
  13184. var to = Object(target);
  13185. for (var index = 1; index < arguments.length; index++) {
  13186. var nextSource = arguments[index];
  13187. if (nextSource != null) {
  13188. // Skip over if undefined or null
  13189. for (var nextKey in nextSource) {
  13190. // Avoid bugs when hasOwnProperty is shadowed
  13191. if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
  13192. to[nextKey] = nextSource[nextKey];
  13193. }
  13194. }
  13195. }
  13196. }
  13197. return to;
  13198. };
  13199. }
  13200. // @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#Polyfill
  13201. if (!Object.is) {
  13202. Object.is = function (x, y) {
  13203. // SameValue algorithm
  13204. if (x === y) {
  13205. // Steps 1-5, 7-10
  13206. // Steps 6.b-6.e: +0 != -0
  13207. return x !== 0 || 1 / x === 1 / y;
  13208. } else {
  13209. // Step 6.a: NaN == NaN
  13210. // eslint-disable-next-line no-self-compare
  13211. return x !== x && y !== y;
  13212. }
  13213. };
  13214. }
  13215. var assign = Object.assign;
  13216. var getOwnPropertyNames = Object.getOwnPropertyNames;
  13217. var keys = Object.keys;
  13218. var defineProperties = Object.defineProperties;
  13219. var defineProperty = Object.defineProperty;
  13220. var freeze = Object.freeze;
  13221. var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
  13222. var getOwnPropertySymbols = Object.getOwnPropertySymbols;
  13223. var getPrototypeOf = Object.getPrototypeOf;
  13224. var create = Object.create;
  13225. var isFrozen = Object.isFrozen;
  13226. var is = Object.is;
  13227. function readonlyDescriptor() {
  13228. return { enumerable: true, configurable: false, writable: false };
  13229. }
  13230. /***/ }),
  13231. /***/ "./node_modules/bootstrap-vue/es/utils/observe-dom.js":
  13232. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13233. "use strict";
  13234. /* harmony export (immutable) */ __webpack_exports__["a"] = observeDOM;
  13235. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  13236. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  13237. /**
  13238. * Observe a DOM element changes, falls back to eventListener mode
  13239. * @param {Element} el The DOM element to observe
  13240. * @param {Function} callback callback to be called on change
  13241. * @param {object} [opts={childList: true, subtree: true}] observe options
  13242. * @see http://stackoverflow.com/questions/3219758
  13243. */
  13244. function observeDOM(el, callback, opts) {
  13245. var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
  13246. var eventListenerSupported = window.addEventListener;
  13247. // Handle case where we might be passed a vue instance
  13248. el = el ? el.$el || el : null;
  13249. /* istanbul ignore next: dificult to test in JSDOM */
  13250. if (!Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["l" /* isElement */])(el)) {
  13251. // We can't observe somthing that isn't an element
  13252. return null;
  13253. }
  13254. var obs = null;
  13255. /* istanbul ignore next: dificult to test in JSDOM */
  13256. if (MutationObserver) {
  13257. // Define a new observer
  13258. obs = new MutationObserver(function (mutations) {
  13259. var changed = false;
  13260. // A Mutation can contain several change records, so we loop through them to see what has changed.
  13261. // We break out of the loop early if any "significant" change has been detected
  13262. for (var i = 0; i < mutations.length && !changed; i++) {
  13263. // The muttion record
  13264. var mutation = mutations[i];
  13265. // Mutation Type
  13266. var type = mutation.type;
  13267. // DOM Node (could be any DOM Node type - HTMLElement, Text, comment, etc)
  13268. var target = mutation.target;
  13269. if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {
  13270. // We ignore nodes that are not TEXt (i.e. comments, etc) as they don't change layout
  13271. changed = true;
  13272. } else if (type === 'attributes') {
  13273. changed = true;
  13274. } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {
  13275. // This includes HTMLElement and Text Nodes being added/removed/re-arranged
  13276. changed = true;
  13277. }
  13278. }
  13279. if (changed) {
  13280. // We only call the callback if a change that could affect layout/size truely happened.
  13281. callback();
  13282. }
  13283. });
  13284. // Have the observer observe foo for changes in children, etc
  13285. obs.observe(el, Object(__WEBPACK_IMPORTED_MODULE_0__object__["a" /* assign */])({ childList: true, subtree: true }, opts));
  13286. } else if (eventListenerSupported) {
  13287. // Legacy interface. most likely not used in modern browsers
  13288. el.addEventListener('DOMNodeInserted', callback, false);
  13289. el.addEventListener('DOMNodeRemoved', callback, false);
  13290. }
  13291. // We return a reference to the observer so that obs.disconnect() can be called if necessary
  13292. // To reduce overhead when the root element is hiiden
  13293. return obs;
  13294. }
  13295. /***/ }),
  13296. /***/ "./node_modules/bootstrap-vue/es/utils/pluck-props.js":
  13297. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13298. "use strict";
  13299. /* harmony export (immutable) */ __webpack_exports__["a"] = pluckProps;
  13300. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  13301. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  13302. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__identity__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/identity.js");
  13303. /**
  13304. * Given an array of properties or an object of property keys,
  13305. * plucks all the values off the target object.
  13306. * @param {{}|string[]} keysToPluck
  13307. * @param {{}} objToPluck
  13308. * @param {Function} transformFn
  13309. * @return {{}}
  13310. */
  13311. function pluckProps(keysToPluck, objToPluck) {
  13312. var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : __WEBPACK_IMPORTED_MODULE_2__identity__["a" /* default */];
  13313. return (Object(__WEBPACK_IMPORTED_MODULE_1__array__["d" /* isArray */])(keysToPluck) ? keysToPluck.slice() : Object(__WEBPACK_IMPORTED_MODULE_0__object__["e" /* keys */])(keysToPluck)).reduce(function (memo, prop) {
  13314. // eslint-disable-next-line no-sequences
  13315. return memo[transformFn(prop)] = objToPluck[prop], memo;
  13316. }, {});
  13317. }
  13318. /***/ }),
  13319. /***/ "./node_modules/bootstrap-vue/es/utils/plugins.js":
  13320. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13321. "use strict";
  13322. /* unused harmony export registerComponent */
  13323. /* harmony export (immutable) */ __webpack_exports__["a"] = registerComponents;
  13324. /* unused harmony export registerDirective */
  13325. /* harmony export (immutable) */ __webpack_exports__["b"] = registerDirectives;
  13326. /* harmony export (immutable) */ __webpack_exports__["c"] = vueUse;
  13327. /**
  13328. * Register a component plugin as being loaded. returns true if compoent plugin already registered
  13329. * @param {object} Vue
  13330. * @param {string} Component name
  13331. * @param {object} Component definition
  13332. */
  13333. function registerComponent(Vue, name, def) {
  13334. Vue._bootstrap_vue_components_ = Vue._bootstrap_vue_components_ || {};
  13335. var loaded = Vue._bootstrap_vue_components_[name];
  13336. if (!loaded && def && name) {
  13337. Vue._bootstrap_vue_components_[name] = true;
  13338. Vue.component(name, def);
  13339. }
  13340. return loaded;
  13341. }
  13342. /**
  13343. * Register a group of components as being loaded.
  13344. * @param {object} Vue
  13345. * @param {object} Object of component definitions
  13346. */
  13347. function registerComponents(Vue, components) {
  13348. for (var component in components) {
  13349. registerComponent(Vue, component, components[component]);
  13350. }
  13351. }
  13352. /**
  13353. * Register a directive as being loaded. returns true if directive plugin already registered
  13354. * @param {object} Vue
  13355. * @param {string} Directive name
  13356. * @param {object} Directive definition
  13357. */
  13358. function registerDirective(Vue, name, def) {
  13359. Vue._bootstrap_vue_directives_ = Vue._bootstrap_vue_directives_ || {};
  13360. var loaded = Vue._bootstrap_vue_directives_[name];
  13361. if (!loaded && def && name) {
  13362. Vue._bootstrap_vue_directives_[name] = true;
  13363. Vue.directive(name, def);
  13364. }
  13365. return loaded;
  13366. }
  13367. /**
  13368. * Register a group of directives as being loaded.
  13369. * @param {object} Vue
  13370. * @param {object} Object of directive definitions
  13371. */
  13372. function registerDirectives(Vue, directives) {
  13373. for (var directive in directives) {
  13374. registerDirective(Vue, directive, directives[directive]);
  13375. }
  13376. }
  13377. /**
  13378. * Install plugin if window.Vue available
  13379. * @param {object} Plugin definition
  13380. */
  13381. function vueUse(VuePlugin) {
  13382. if (typeof window !== 'undefined' && window.Vue) {
  13383. window.Vue.use(VuePlugin);
  13384. }
  13385. }
  13386. /***/ }),
  13387. /***/ "./node_modules/bootstrap-vue/es/utils/popover.class.js":
  13388. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13389. "use strict";
  13390. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tooltip_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/tooltip.class.js");
  13391. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  13392. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  13393. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  13394. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  13395. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  13396. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  13397. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  13398. var NAME = 'popover';
  13399. var CLASS_PREFIX = 'bs-popover';
  13400. var BSCLS_PREFIX_REGEX = new RegExp('\\b' + CLASS_PREFIX + '\\S+', 'g');
  13401. var Defaults = Object(__WEBPACK_IMPORTED_MODULE_1__object__["a" /* assign */])({}, __WEBPACK_IMPORTED_MODULE_0__tooltip_class__["a" /* default */].Default, {
  13402. placement: 'right',
  13403. trigger: 'click',
  13404. content: '',
  13405. template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
  13406. });
  13407. var ClassName = {
  13408. FADE: 'fade',
  13409. SHOW: 'show'
  13410. };
  13411. var Selector = {
  13412. TITLE: '.popover-header',
  13413. CONTENT: '.popover-body'
  13414. /* istanbul ignore next: dificult to test in Jest/JSDOM environment */
  13415. };
  13416. var PopOver = function (_ToolTip) {
  13417. _inherits(PopOver, _ToolTip);
  13418. function PopOver() {
  13419. _classCallCheck(this, PopOver);
  13420. return _possibleConstructorReturn(this, (PopOver.__proto__ || Object.getPrototypeOf(PopOver)).apply(this, arguments));
  13421. }
  13422. _createClass(PopOver, [{
  13423. key: 'isWithContent',
  13424. // Method overrides
  13425. value: function isWithContent(tip) {
  13426. tip = tip || this.$tip;
  13427. if (!tip) {
  13428. return false;
  13429. }
  13430. var hasTitle = Boolean((Object(__WEBPACK_IMPORTED_MODULE_2__dom__["t" /* select */])(Selector.TITLE, tip) || {}).innerHTML);
  13431. var hasContent = Boolean((Object(__WEBPACK_IMPORTED_MODULE_2__dom__["t" /* select */])(Selector.CONTENT, tip) || {}).innerHTML);
  13432. return hasTitle || hasContent;
  13433. }
  13434. }, {
  13435. key: 'addAttachmentClass',
  13436. value: function addAttachmentClass(attachment) {
  13437. Object(__WEBPACK_IMPORTED_MODULE_2__dom__["a" /* addClass */])(this.getTipElement(), CLASS_PREFIX + '-' + attachment);
  13438. }
  13439. }, {
  13440. key: 'setContent',
  13441. value: function setContent(tip) {
  13442. // we use append for html objects to maintain js events/components
  13443. this.setElementContent(Object(__WEBPACK_IMPORTED_MODULE_2__dom__["t" /* select */])(Selector.TITLE, tip), this.getTitle());
  13444. this.setElementContent(Object(__WEBPACK_IMPORTED_MODULE_2__dom__["t" /* select */])(Selector.CONTENT, tip), this.getContent());
  13445. Object(__WEBPACK_IMPORTED_MODULE_2__dom__["s" /* removeClass */])(tip, ClassName.FADE);
  13446. Object(__WEBPACK_IMPORTED_MODULE_2__dom__["s" /* removeClass */])(tip, ClassName.SHOW);
  13447. }
  13448. // This method may look identical to ToolTip version, but it uses a different RegEx defined above
  13449. }, {
  13450. key: 'cleanTipClass',
  13451. value: function cleanTipClass() {
  13452. var tip = this.getTipElement();
  13453. var tabClass = tip.className.match(BSCLS_PREFIX_REGEX);
  13454. if (tabClass !== null && tabClass.length > 0) {
  13455. tabClass.forEach(function (cls) {
  13456. Object(__WEBPACK_IMPORTED_MODULE_2__dom__["s" /* removeClass */])(tip, cls);
  13457. });
  13458. }
  13459. }
  13460. }, {
  13461. key: 'getTitle',
  13462. value: function getTitle() {
  13463. var title = this.$config.title || '';
  13464. if (typeof title === 'function') {
  13465. title = title(this.$element);
  13466. }
  13467. if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object' && title.nodeType && !title.innerHTML.trim()) {
  13468. // We have a dom node, but without inner content, so just return an empty string
  13469. title = '';
  13470. }
  13471. if (typeof title === 'string') {
  13472. title = title.trim();
  13473. }
  13474. if (!title) {
  13475. // Try and grab element's title attribute
  13476. title = Object(__WEBPACK_IMPORTED_MODULE_2__dom__["e" /* getAttr */])(this.$element, 'title') || Object(__WEBPACK_IMPORTED_MODULE_2__dom__["e" /* getAttr */])(this.$element, 'data-original-title') || '';
  13477. title = title.trim();
  13478. }
  13479. return title;
  13480. }
  13481. // New methods
  13482. }, {
  13483. key: 'getContent',
  13484. value: function getContent() {
  13485. var content = this.$config.content || '';
  13486. if (typeof content === 'function') {
  13487. content = content(this.$element);
  13488. }
  13489. if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && content.nodeType && !content.innerHTML.trim()) {
  13490. // We have a dom node, but without inner content, so just return an empty string
  13491. content = '';
  13492. }
  13493. if (typeof content === 'string') {
  13494. content = content.trim();
  13495. }
  13496. return content;
  13497. }
  13498. }], [{
  13499. key: 'Default',
  13500. // Getter overrides
  13501. get: function get() {
  13502. return Defaults;
  13503. }
  13504. }, {
  13505. key: 'NAME',
  13506. get: function get() {
  13507. return NAME;
  13508. }
  13509. }]);
  13510. return PopOver;
  13511. }(__WEBPACK_IMPORTED_MODULE_0__tooltip_class__["a" /* default */]);
  13512. /* harmony default export */ __webpack_exports__["a"] = (PopOver);
  13513. /***/ }),
  13514. /***/ "./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js":
  13515. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13516. "use strict";
  13517. /* harmony export (immutable) */ __webpack_exports__["a"] = prefixPropName;
  13518. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__upper_first__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/upper-first.js");
  13519. /**
  13520. * @param {string} prefix
  13521. * @param {string} value
  13522. */
  13523. function prefixPropName(prefix, value) {
  13524. return prefix + Object(__WEBPACK_IMPORTED_MODULE_0__upper_first__["a" /* default */])(value);
  13525. }
  13526. /***/ }),
  13527. /***/ "./node_modules/bootstrap-vue/es/utils/range.js":
  13528. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13529. "use strict";
  13530. /**
  13531. * @param {number} length
  13532. * @return {Array}
  13533. */
  13534. /* harmony default export */ __webpack_exports__["a"] = (function (length) {
  13535. return Array.apply(null, { length: length });
  13536. });
  13537. /***/ }),
  13538. /***/ "./node_modules/bootstrap-vue/es/utils/ssr.js":
  13539. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13540. "use strict";
  13541. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HTMLElement; });
  13542. // Polyfills for SSR
  13543. var isSSR = typeof window === 'undefined';
  13544. var HTMLElement = isSSR ? Object : window.HTMLElement;
  13545. /***/ }),
  13546. /***/ "./node_modules/bootstrap-vue/es/utils/stable-sort.js":
  13547. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13548. "use strict";
  13549. /* harmony export (immutable) */ __webpack_exports__["a"] = stableSort;
  13550. /*
  13551. * Consitant and stable sort function across JavsaScript platforms
  13552. *
  13553. * Inconsistant sorts can cause SSR problems between client and server
  13554. * such as in <b-table> if sortBy is applied to the data on server side render.
  13555. * Chrome and V8 native sorts are inconsistant/unstable
  13556. *
  13557. * This function uses native sort with fallback to index compare when the a and b
  13558. * compare returns 0
  13559. *
  13560. * Algorithm bsaed on:
  13561. * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645
  13562. *
  13563. * @param {array} array to sort
  13564. * @param {function} sortcompare function
  13565. * @return {array}
  13566. */
  13567. function stableSort(array, compareFn) {
  13568. // Using `.bind(compareFn)` on the wrapped anonymous function improves
  13569. // performance by avoiding the function call setup. We don't use an arrow
  13570. // function here as it binds `this` to the `stableSort` context rather than
  13571. // the `compareFn` context, which wouldn't give us the performance increase.
  13572. return array.map(function (a, index) {
  13573. return [index, a];
  13574. }).sort(function (a, b) {
  13575. return this(a[1], b[1]) || a[0] - b[0];
  13576. }.bind(compareFn)).map(function (e) {
  13577. return e[1];
  13578. });
  13579. }
  13580. /***/ }),
  13581. /***/ "./node_modules/bootstrap-vue/es/utils/suffix-prop-name.js":
  13582. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13583. "use strict";
  13584. /* harmony export (immutable) */ __webpack_exports__["a"] = suffixPropName;
  13585. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__upper_first__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/upper-first.js");
  13586. /**
  13587. * Suffix can be a falsey value so nothing is appended to string.
  13588. * (helps when looping over props & some shouldn't change)
  13589. * Use data last parameters to allow for currying.
  13590. * @param {string} suffix
  13591. * @param {string} str
  13592. */
  13593. function suffixPropName(suffix, str) {
  13594. return str + (suffix ? Object(__WEBPACK_IMPORTED_MODULE_0__upper_first__["a" /* default */])(suffix) : '');
  13595. }
  13596. /***/ }),
  13597. /***/ "./node_modules/bootstrap-vue/es/utils/target.js":
  13598. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13599. "use strict";
  13600. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return bindTargets; });
  13601. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return unbindTargets; });
  13602. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  13603. var allListenTypes = { hover: true, click: true, focus: true };
  13604. var BVBoundListeners = '__BV_boundEventListeners__';
  13605. var bindTargets = function bindTargets(vnode, binding, listenTypes, fn) {
  13606. var targets = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(binding.modifiers || {}).filter(function (t) {
  13607. return !allListenTypes[t];
  13608. });
  13609. if (binding.value) {
  13610. targets.push(binding.value);
  13611. }
  13612. var listener = function listener() {
  13613. fn({ targets: targets, vnode: vnode });
  13614. };
  13615. Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(allListenTypes).forEach(function (type) {
  13616. if (listenTypes[type] || binding.modifiers[type]) {
  13617. vnode.elm.addEventListener(type, listener);
  13618. var boundListeners = vnode.elm[BVBoundListeners] || {};
  13619. boundListeners[type] = boundListeners[type] || [];
  13620. boundListeners[type].push(listener);
  13621. vnode.elm[BVBoundListeners] = boundListeners;
  13622. }
  13623. });
  13624. // Return the list of targets
  13625. return targets;
  13626. };
  13627. var unbindTargets = function unbindTargets(vnode, binding, listenTypes) {
  13628. Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(allListenTypes).forEach(function (type) {
  13629. if (listenTypes[type] || binding.modifiers[type]) {
  13630. var boundListeners = vnode.elm[BVBoundListeners] && vnode.elm[BVBoundListeners][type];
  13631. if (boundListeners) {
  13632. boundListeners.forEach(function (listener) {
  13633. return vnode.elm.removeEventListener(type, listener);
  13634. });
  13635. delete vnode.elm[BVBoundListeners][type];
  13636. }
  13637. }
  13638. });
  13639. };
  13640. /* harmony default export */ __webpack_exports__["b"] = (bindTargets);
  13641. /***/ }),
  13642. /***/ "./node_modules/bootstrap-vue/es/utils/tooltip.class.js":
  13643. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13644. "use strict";
  13645. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_popper_js__ = __webpack_require__("./node_modules/popper.js/dist/esm/popper.js");
  13646. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__bv_event_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/bv-event.class.js");
  13647. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
  13648. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
  13649. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
  13650. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  13651. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  13652. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  13653. var NAME = 'tooltip';
  13654. var CLASS_PREFIX = 'bs-tooltip';
  13655. var BSCLS_PREFIX_REGEX = new RegExp('\\b' + CLASS_PREFIX + '\\S+', 'g');
  13656. var TRANSITION_DURATION = 150;
  13657. // Modal $root hidden event
  13658. var MODAL_CLOSE_EVENT = 'bv::modal::hidden';
  13659. // Modal container for appending tip/popover
  13660. var MODAL_CLASS = '.modal-content';
  13661. var AttachmentMap = {
  13662. AUTO: 'auto',
  13663. TOP: 'top',
  13664. RIGHT: 'right',
  13665. BOTTOM: 'bottom',
  13666. LEFT: 'left',
  13667. TOPLEFT: 'top',
  13668. TOPRIGHT: 'top',
  13669. RIGHTTOP: 'right',
  13670. RIGHTBOTTOM: 'right',
  13671. BOTTOMLEFT: 'bottom',
  13672. BOTTOMRIGHT: 'bottom',
  13673. LEFTTOP: 'left',
  13674. LEFTBOTTOM: 'left'
  13675. };
  13676. var OffsetMap = {
  13677. AUTO: 0,
  13678. TOPLEFT: -1,
  13679. TOP: 0,
  13680. TOPRIGHT: +1,
  13681. RIGHTTOP: -1,
  13682. RIGHT: 0,
  13683. RIGHTBOTTOM: +1,
  13684. BOTTOMLEFT: -1,
  13685. BOTTOM: 0,
  13686. BOTTOMRIGHT: +1,
  13687. LEFTTOP: -1,
  13688. LEFT: 0,
  13689. LEFTBOTTOM: +1
  13690. };
  13691. var HoverState = {
  13692. SHOW: 'show',
  13693. OUT: 'out'
  13694. };
  13695. var ClassName = {
  13696. FADE: 'fade',
  13697. SHOW: 'show'
  13698. };
  13699. var Selector = {
  13700. TOOLTIP: '.tooltip',
  13701. TOOLTIP_INNER: '.tooltip-inner',
  13702. ARROW: '.arrow'
  13703. // ESLINT: Not used
  13704. // const Trigger = {
  13705. // HOVER: 'hover',
  13706. // FOCUS: 'focus',
  13707. // CLICK: 'click',
  13708. // BLUR: 'blur',
  13709. // MANUAL: 'manual'
  13710. // }
  13711. };var Defaults = {
  13712. animation: true,
  13713. template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
  13714. trigger: 'hover focus',
  13715. title: '',
  13716. delay: 0,
  13717. html: false,
  13718. placement: 'top',
  13719. offset: 0,
  13720. arrowPadding: 6,
  13721. container: false,
  13722. fallbackPlacement: 'flip',
  13723. callbacks: {},
  13724. boundary: 'scrollParent'
  13725. // Transition Event names
  13726. };var TransitionEndEvents = {
  13727. WebkitTransition: ['webkitTransitionEnd'],
  13728. MozTransition: ['transitionend'],
  13729. OTransition: ['otransitionend', 'oTransitionEnd'],
  13730. transition: ['transitionend']
  13731. // Client Side Tip ID counter for aria-describedby attribute
  13732. // Could use Alex's uid generator util
  13733. // Each tooltip requires a unique client side ID
  13734. };var NEXTID = 1;
  13735. /* istanbul ignore next */
  13736. function generateId(name) {
  13737. return '__BV_' + name + '_' + NEXTID++ + '__';
  13738. }
  13739. /*
  13740. * ToolTip Class definition
  13741. */
  13742. /* istanbul ignore next: difficult to test in Jest/JSDOM environment */
  13743. var ToolTip = function () {
  13744. // Main constructor
  13745. function ToolTip(element, config, $root) {
  13746. _classCallCheck(this, ToolTip);
  13747. // New tooltip object
  13748. this.$isEnabled = true;
  13749. this.$fadeTimeout = null;
  13750. this.$hoverTimeout = null;
  13751. this.$visibleInterval = null;
  13752. this.$hoverState = '';
  13753. this.$activeTrigger = {};
  13754. this.$popper = null;
  13755. this.$element = element;
  13756. this.$tip = null;
  13757. this.$id = generateId(this.constructor.NAME);
  13758. this.$root = $root || null;
  13759. this.$routeWatcher = null;
  13760. // We use a bound version of the following handlers for root/modal listeners to maintain the 'this' context
  13761. this.$forceHide = this.forceHide.bind(this);
  13762. this.$doHide = this.doHide.bind(this);
  13763. this.$doShow = this.doShow.bind(this);
  13764. this.$doDisable = this.doDisable.bind(this);
  13765. this.$doEnable = this.doEnable.bind(this);
  13766. // Set the configuration
  13767. this.updateConfig(config);
  13768. }
  13769. // NOTE: Overridden by PopOver class
  13770. _createClass(ToolTip, [{
  13771. key: 'updateConfig',
  13772. // Update config
  13773. value: function updateConfig(config) {
  13774. // Merge config into defaults. We use "this" here because PopOver overrides Default
  13775. var updatedConfig = Object(__WEBPACK_IMPORTED_MODULE_2__object__["a" /* assign */])({}, this.constructor.Default, config);
  13776. // Sanitize delay
  13777. if (config.delay && typeof config.delay === 'number') {
  13778. updatedConfig.delay = {
  13779. show: config.delay,
  13780. hide: config.delay
  13781. };
  13782. }
  13783. // Title for tooltip and popover
  13784. if (config.title && typeof config.title === 'number') {
  13785. updatedConfig.title = config.title.toString();
  13786. }
  13787. // Content only for popover
  13788. if (config.content && typeof config.content === 'number') {
  13789. updatedConfig.content = config.content.toString();
  13790. }
  13791. // Hide element original title if needed
  13792. this.fixTitle();
  13793. // Update the config
  13794. this.$config = updatedConfig;
  13795. // Stop/Restart listening
  13796. this.unListen();
  13797. this.listen();
  13798. }
  13799. // Destroy this instance
  13800. }, {
  13801. key: 'destroy',
  13802. value: function destroy() {
  13803. // Stop listening to trigger events
  13804. this.unListen();
  13805. // Disable while open listeners/watchers
  13806. this.setWhileOpenListeners(false);
  13807. // Clear any timeouts
  13808. clearTimeout(this.$hoverTimeout);
  13809. this.$hoverTimeout = null;
  13810. clearTimeout(this.$fadeTimeout);
  13811. this.$fadeTimeout = null;
  13812. // Remove popper
  13813. if (this.$popper) {
  13814. this.$popper.destroy();
  13815. }
  13816. this.$popper = null;
  13817. // Remove tip from document
  13818. if (this.$tip && this.$tip.parentElement) {
  13819. this.$tip.parentElement.removeChild(this.$tip);
  13820. }
  13821. this.$tip = null;
  13822. // Null out other properties
  13823. this.$id = null;
  13824. this.$isEnabled = null;
  13825. this.$root = null;
  13826. this.$element = null;
  13827. this.$config = null;
  13828. this.$hoverState = null;
  13829. this.$activeTrigger = null;
  13830. this.$forceHide = null;
  13831. this.$doHide = null;
  13832. this.$doShow = null;
  13833. this.$doDisable = null;
  13834. this.$doEnable = null;
  13835. }
  13836. }, {
  13837. key: 'enable',
  13838. value: function enable() {
  13839. // Create a non-cancelable BvEvent
  13840. var enabledEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('enabled', {
  13841. cancelable: false,
  13842. target: this.$element,
  13843. relatedTarget: null
  13844. });
  13845. this.$isEnabled = true;
  13846. this.emitEvent(enabledEvt);
  13847. }
  13848. }, {
  13849. key: 'disable',
  13850. value: function disable() {
  13851. // Create a non-cancelable BvEvent
  13852. var disabledEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('disabled', {
  13853. cancelable: false,
  13854. target: this.$element,
  13855. relatedTarget: null
  13856. });
  13857. this.$isEnabled = false;
  13858. this.emitEvent(disabledEvt);
  13859. }
  13860. // Click toggler
  13861. }, {
  13862. key: 'toggle',
  13863. value: function toggle(event) {
  13864. if (!this.$isEnabled) {
  13865. return;
  13866. }
  13867. if (event) {
  13868. this.$activeTrigger.click = !this.$activeTrigger.click;
  13869. if (this.isWithActiveTrigger()) {
  13870. this.enter(null);
  13871. } else {
  13872. this.leave(null);
  13873. }
  13874. } else {
  13875. if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["j" /* hasClass */])(this.getTipElement(), ClassName.SHOW)) {
  13876. this.leave(null);
  13877. } else {
  13878. this.enter(null);
  13879. }
  13880. }
  13881. }
  13882. // Show tooltip
  13883. }, {
  13884. key: 'show',
  13885. value: function show() {
  13886. var _this = this;
  13887. if (!document.body.contains(this.$element) || !Object(__WEBPACK_IMPORTED_MODULE_4__dom__["m" /* isVisible */])(this.$element)) {
  13888. // If trigger element isn't in the DOM or is not visible
  13889. return;
  13890. }
  13891. // Build tooltip element (also sets this.$tip)
  13892. var tip = this.getTipElement();
  13893. this.fixTitle();
  13894. this.setContent(tip);
  13895. if (!this.isWithContent(tip)) {
  13896. // if No content, don't bother showing
  13897. this.$tip = null;
  13898. return;
  13899. }
  13900. // Set ID on tip and aria-describedby on element
  13901. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["v" /* setAttr */])(tip, 'id', this.$id);
  13902. this.addAriaDescribedby();
  13903. // Set animation on or off
  13904. if (this.$config.animation) {
  13905. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["a" /* addClass */])(tip, ClassName.FADE);
  13906. } else {
  13907. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.FADE);
  13908. }
  13909. var placement = this.getPlacement();
  13910. var attachment = this.constructor.getAttachment(placement);
  13911. this.addAttachmentClass(attachment);
  13912. // Create a cancelable BvEvent
  13913. var showEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('show', {
  13914. cancelable: true,
  13915. target: this.$element,
  13916. relatedTarget: tip
  13917. });
  13918. this.emitEvent(showEvt);
  13919. if (showEvt.defaultPrevented) {
  13920. // Don't show if event cancelled
  13921. this.$tip = null;
  13922. return;
  13923. }
  13924. // Insert tooltip if needed
  13925. var container = this.getContainer();
  13926. if (!document.body.contains(tip)) {
  13927. container.appendChild(tip);
  13928. }
  13929. // Refresh popper
  13930. this.removePopper();
  13931. this.$popper = new __WEBPACK_IMPORTED_MODULE_0_popper_js__["default"](this.$element, tip, this.getPopperConfig(placement, tip));
  13932. // Transitionend Callback
  13933. var complete = function complete() {
  13934. if (_this.$config.animation) {
  13935. _this.fixTransition(tip);
  13936. }
  13937. var prevHoverState = _this.$hoverState;
  13938. _this.$hoverState = null;
  13939. if (prevHoverState === HoverState.OUT) {
  13940. _this.leave(null);
  13941. }
  13942. // Create a non-cancelable BvEvent
  13943. var shownEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('shown', {
  13944. cancelable: false,
  13945. target: _this.$element,
  13946. relatedTarget: tip
  13947. });
  13948. _this.emitEvent(shownEvt);
  13949. };
  13950. // Enable while open listeners/watchers
  13951. this.setWhileOpenListeners(true);
  13952. // Show tip
  13953. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["a" /* addClass */])(tip, ClassName.SHOW);
  13954. // Start the transition/animation
  13955. this.transitionOnce(tip, complete);
  13956. }
  13957. // handler for periodic visibility check
  13958. }, {
  13959. key: 'visibleCheck',
  13960. value: function visibleCheck(on) {
  13961. var _this2 = this;
  13962. clearInterval(this.$visibleInterval);
  13963. this.$visibleInterval = null;
  13964. if (on) {
  13965. this.$visibleInterval = setInterval(function () {
  13966. var tip = _this2.getTipElement();
  13967. if (tip && !Object(__WEBPACK_IMPORTED_MODULE_4__dom__["m" /* isVisible */])(_this2.$element) && Object(__WEBPACK_IMPORTED_MODULE_4__dom__["j" /* hasClass */])(tip, ClassName.SHOW)) {
  13968. // Element is no longer visible, so force-hide the tooltip
  13969. _this2.forceHide();
  13970. }
  13971. }, 100);
  13972. }
  13973. }
  13974. }, {
  13975. key: 'setWhileOpenListeners',
  13976. value: function setWhileOpenListeners(on) {
  13977. // Modal close events
  13978. this.setModalListener(on);
  13979. // Periodic $element visibility check
  13980. // For handling when tip is in <keepalive>, tabs, carousel, etc
  13981. this.visibleCheck(on);
  13982. // Route change events
  13983. this.setRouteWatcher(on);
  13984. // Ontouch start listeners
  13985. this.setOnTouchStartListener(on);
  13986. if (on && /(focus|blur)/.test(this.$config.trigger)) {
  13987. // If focus moves between trigger element and tip container, dont close
  13988. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(this.$tip, 'focusout', this);
  13989. } else {
  13990. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["c" /* eventOff */])(this.$tip, 'focusout', this);
  13991. }
  13992. }
  13993. // force hide of tip (internal method)
  13994. }, {
  13995. key: 'forceHide',
  13996. value: function forceHide() {
  13997. if (!this.$tip || !Object(__WEBPACK_IMPORTED_MODULE_4__dom__["j" /* hasClass */])(this.$tip, ClassName.SHOW)) {
  13998. return;
  13999. }
  14000. // Disable while open listeners/watchers
  14001. this.setWhileOpenListeners(false);
  14002. // Clear any hover enter/leave event
  14003. clearTimeout(this.$hoverTimeout);
  14004. this.$hoverTimeout = null;
  14005. this.$hoverState = '';
  14006. // Hide the tip
  14007. this.hide(null, true);
  14008. }
  14009. // Hide tooltip
  14010. }, {
  14011. key: 'hide',
  14012. value: function hide(callback, force) {
  14013. var _this3 = this;
  14014. var tip = this.$tip;
  14015. if (!tip) {
  14016. return;
  14017. }
  14018. // Create a canelable BvEvent
  14019. var hideEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('hide', {
  14020. // We disable cancelling if force is true
  14021. cancelable: !force,
  14022. target: this.$element,
  14023. relatedTarget: tip
  14024. });
  14025. this.emitEvent(hideEvt);
  14026. if (hideEvt.defaultPrevented) {
  14027. // Don't hide if event cancelled
  14028. return;
  14029. }
  14030. // Transitionend Callback
  14031. /* istanbul ignore next */
  14032. var complete = function complete() {
  14033. if (_this3.$hoverState !== HoverState.SHOW && tip.parentNode) {
  14034. // Remove tip from dom, and force recompile on next show
  14035. tip.parentNode.removeChild(tip);
  14036. _this3.removeAriaDescribedby();
  14037. _this3.removePopper();
  14038. _this3.$tip = null;
  14039. }
  14040. if (callback) {
  14041. callback();
  14042. }
  14043. // Create a non-cancelable BvEvent
  14044. var hiddenEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('hidden', {
  14045. cancelable: false,
  14046. target: _this3.$element,
  14047. relatedTarget: null
  14048. });
  14049. _this3.emitEvent(hiddenEvt);
  14050. };
  14051. // Disable while open listeners/watchers
  14052. this.setWhileOpenListeners(false);
  14053. // If forced close, disable animation
  14054. if (force) {
  14055. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.FADE);
  14056. }
  14057. // Hide tip
  14058. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.SHOW);
  14059. this.$activeTrigger.click = false;
  14060. this.$activeTrigger.focus = false;
  14061. this.$activeTrigger.hover = false;
  14062. // Start the hide transition
  14063. this.transitionOnce(tip, complete);
  14064. this.$hoverState = '';
  14065. }
  14066. }, {
  14067. key: 'emitEvent',
  14068. value: function emitEvent(evt) {
  14069. var evtName = evt.type;
  14070. if (this.$root && this.$root.$emit) {
  14071. // Emit an event on $root
  14072. this.$root.$emit('bv::' + this.constructor.NAME + '::' + evtName, evt);
  14073. }
  14074. var callbacks = this.$config.callbacks || {};
  14075. if (typeof callbacks[evtName] === 'function') {
  14076. callbacks[evtName](evt);
  14077. }
  14078. }
  14079. }, {
  14080. key: 'getContainer',
  14081. value: function getContainer() {
  14082. var container = this.$config.container;
  14083. var body = document.body;
  14084. // If we are in a modal, we append to the modal instead of body, unless a container is specified
  14085. return container === false ? Object(__WEBPACK_IMPORTED_MODULE_4__dom__["b" /* closest */])(MODAL_CLASS, this.$element) || body : Object(__WEBPACK_IMPORTED_MODULE_4__dom__["t" /* select */])(container, body) || body;
  14086. }
  14087. // Will be overritten by popover if needed
  14088. }, {
  14089. key: 'addAriaDescribedby',
  14090. value: function addAriaDescribedby() {
  14091. // Add aria-describedby on trigger element, without removing any other IDs
  14092. var desc = Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(this.$element, 'aria-describedby') || '';
  14093. desc = desc.split(/\s+/).concat(this.$id).join(' ').trim();
  14094. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["v" /* setAttr */])(this.$element, 'aria-describedby', desc);
  14095. }
  14096. // Will be overritten by popover if needed
  14097. }, {
  14098. key: 'removeAriaDescribedby',
  14099. value: function removeAriaDescribedby() {
  14100. var _this4 = this;
  14101. var desc = Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(this.$element, 'aria-describedby') || '';
  14102. desc = desc.split(/\s+/).filter(function (d) {
  14103. return d !== _this4.$id;
  14104. }).join(' ').trim();
  14105. if (desc) {
  14106. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["v" /* setAttr */])(this.$element, 'aria-describedby', desc);
  14107. } else {
  14108. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["r" /* removeAttr */])(this.$element, 'aria-describedby');
  14109. }
  14110. }
  14111. }, {
  14112. key: 'removePopper',
  14113. value: function removePopper() {
  14114. if (this.$popper) {
  14115. this.$popper.destroy();
  14116. }
  14117. this.$popper = null;
  14118. }
  14119. /* istanbul ignore next */
  14120. }, {
  14121. key: 'transitionOnce',
  14122. value: function transitionOnce(tip, complete) {
  14123. var _this5 = this;
  14124. var transEvents = this.getTransitionEndEvents();
  14125. var called = false;
  14126. clearTimeout(this.$fadeTimeout);
  14127. this.$fadeTimeout = null;
  14128. var fnOnce = function fnOnce() {
  14129. if (called) {
  14130. return;
  14131. }
  14132. called = true;
  14133. clearTimeout(_this5.$fadeTimeout);
  14134. _this5.$fadeTimeout = null;
  14135. transEvents.forEach(function (evtName) {
  14136. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["c" /* eventOff */])(tip, evtName, fnOnce);
  14137. });
  14138. // Call complete callback
  14139. complete();
  14140. };
  14141. if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["j" /* hasClass */])(tip, ClassName.FADE)) {
  14142. transEvents.forEach(function (evtName) {
  14143. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(tip, evtName, fnOnce);
  14144. });
  14145. // Fallback to setTimeout
  14146. this.$fadeTimeout = setTimeout(fnOnce, TRANSITION_DURATION);
  14147. } else {
  14148. fnOnce();
  14149. }
  14150. }
  14151. // What transitionend event(s) to use? (returns array of event names)
  14152. }, {
  14153. key: 'getTransitionEndEvents',
  14154. value: function getTransitionEndEvents() {
  14155. for (var name in TransitionEndEvents) {
  14156. if (this.$element.style[name] !== undefined) {
  14157. return TransitionEndEvents[name];
  14158. }
  14159. }
  14160. // fallback
  14161. return [];
  14162. }
  14163. }, {
  14164. key: 'update',
  14165. value: function update() {
  14166. if (this.$popper !== null) {
  14167. this.$popper.scheduleUpdate();
  14168. }
  14169. }
  14170. // NOTE: Overridden by PopOver class
  14171. }, {
  14172. key: 'isWithContent',
  14173. value: function isWithContent(tip) {
  14174. tip = tip || this.$tip;
  14175. if (!tip) {
  14176. return false;
  14177. }
  14178. return Boolean((Object(__WEBPACK_IMPORTED_MODULE_4__dom__["t" /* select */])(Selector.TOOLTIP_INNER, tip) || {}).innerHTML);
  14179. }
  14180. // NOTE: Overridden by PopOver class
  14181. }, {
  14182. key: 'addAttachmentClass',
  14183. value: function addAttachmentClass(attachment) {
  14184. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["a" /* addClass */])(this.getTipElement(), CLASS_PREFIX + '-' + attachment);
  14185. }
  14186. }, {
  14187. key: 'getTipElement',
  14188. value: function getTipElement() {
  14189. if (!this.$tip) {
  14190. // Try and compile user supplied template, or fallback to default template
  14191. this.$tip = this.compileTemplate(this.$config.template) || this.compileTemplate(this.constructor.Default.template);
  14192. }
  14193. // Add tab index so tip can be focused, and to allow it to be set as relatedTargt in focusin/out events
  14194. this.$tip.tabIndex = -1;
  14195. return this.$tip;
  14196. }
  14197. }, {
  14198. key: 'compileTemplate',
  14199. value: function compileTemplate(html) {
  14200. if (!html || typeof html !== 'string') {
  14201. return null;
  14202. }
  14203. var div = document.createElement('div');
  14204. div.innerHTML = html.trim();
  14205. var node = div.firstElementChild ? div.removeChild(div.firstElementChild) : null;
  14206. div = null;
  14207. return node;
  14208. }
  14209. // NOTE: Overridden by PopOver class
  14210. }, {
  14211. key: 'setContent',
  14212. value: function setContent(tip) {
  14213. this.setElementContent(Object(__WEBPACK_IMPORTED_MODULE_4__dom__["t" /* select */])(Selector.TOOLTIP_INNER, tip), this.getTitle());
  14214. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.FADE);
  14215. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.SHOW);
  14216. }
  14217. }, {
  14218. key: 'setElementContent',
  14219. value: function setElementContent(container, content) {
  14220. if (!container) {
  14221. // If container element doesn't exist, just return
  14222. return;
  14223. }
  14224. var allowHtml = this.$config.html;
  14225. if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && content.nodeType) {
  14226. // content is a DOM node
  14227. if (allowHtml) {
  14228. if (content.parentElement !== container) {
  14229. container.innerHtml = '';
  14230. container.appendChild(content);
  14231. }
  14232. } else {
  14233. container.innerText = content.innerText;
  14234. }
  14235. } else {
  14236. // We have a plain HTML string or Text
  14237. container[allowHtml ? 'innerHTML' : 'innerText'] = content;
  14238. }
  14239. }
  14240. // NOTE: Overridden by PopOver class
  14241. }, {
  14242. key: 'getTitle',
  14243. value: function getTitle() {
  14244. var title = this.$config.title || '';
  14245. if (typeof title === 'function') {
  14246. // Call the function to get the title value
  14247. title = title(this.$element);
  14248. }
  14249. if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object' && title.nodeType && !title.innerHTML.trim()) {
  14250. // We have a DOM node, but without inner content, so just return empty string
  14251. title = '';
  14252. }
  14253. if (typeof title === 'string') {
  14254. title = title.trim();
  14255. }
  14256. if (!title) {
  14257. // If an explicit title is not given, try element's title atributes
  14258. title = Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(this.$element, 'title') || Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(this.$element, 'data-original-title') || '';
  14259. title = title.trim();
  14260. }
  14261. return title;
  14262. }
  14263. }, {
  14264. key: 'listen',
  14265. value: function listen() {
  14266. var _this6 = this;
  14267. var triggers = this.$config.trigger.trim().split(/\s+/);
  14268. var el = this.$element;
  14269. // Listen for global show/hide events
  14270. this.setRootListener(true);
  14271. // Using 'this' as the handler will get automagically directed to this.handleEvent
  14272. // And maintain our binding to 'this'
  14273. triggers.forEach(function (trigger) {
  14274. if (trigger === 'click') {
  14275. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'click', _this6);
  14276. } else if (trigger === 'focus') {
  14277. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'focusin', _this6);
  14278. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'focusout', _this6);
  14279. } else if (trigger === 'blur') {
  14280. // Used to close $tip when element looses focus
  14281. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'focusout', _this6);
  14282. } else if (trigger === 'hover') {
  14283. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'mouseenter', _this6);
  14284. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'mouseleave', _this6);
  14285. }
  14286. }, this);
  14287. }
  14288. }, {
  14289. key: 'unListen',
  14290. value: function unListen() {
  14291. var _this7 = this;
  14292. var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];
  14293. // Using "this" as the handler will get automagically directed to this.handleEvent
  14294. events.forEach(function (evt) {
  14295. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["c" /* eventOff */])(_this7.$element, evt, _this7);
  14296. }, this);
  14297. // Stop listening for global show/hide/enable/disable events
  14298. this.setRootListener(false);
  14299. }
  14300. }, {
  14301. key: 'handleEvent',
  14302. value: function handleEvent(e) {
  14303. // This special method allows us to use "this" as the event handlers
  14304. if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["k" /* isDisabled */])(this.$element)) {
  14305. // If disabled, don't do anything. Note: if tip is shown before element gets
  14306. // disabled, then tip not close until no longer disabled or forcefully closed.
  14307. return;
  14308. }
  14309. if (!this.$isEnabled) {
  14310. // If not enable
  14311. return;
  14312. }
  14313. var type = e.type;
  14314. var target = e.target;
  14315. var relatedTarget = e.relatedTarget;
  14316. var $element = this.$element;
  14317. var $tip = this.$tip;
  14318. if (type === 'click') {
  14319. this.toggle(e);
  14320. } else if (type === 'focusin' || type === 'mouseenter') {
  14321. this.enter(e);
  14322. } else if (type === 'focusout') {
  14323. // target is the element which is loosing focus
  14324. // And relatedTarget is the element gaining focus
  14325. if ($tip && $element && $element.contains(target) && $tip.contains(relatedTarget)) {
  14326. // If focus moves from $element to $tip, don't trigger a leave
  14327. return;
  14328. }
  14329. if ($tip && $element && $tip.contains(target) && $element.contains(relatedTarget)) {
  14330. // If focus moves from $tip to $element, don't trigger a leave
  14331. return;
  14332. }
  14333. if ($tip && $tip.contains(target) && $tip.contains(relatedTarget)) {
  14334. // If focus moves within $tip, don't trigger a leave
  14335. return;
  14336. }
  14337. if ($element && $element.contains(target) && $element.contains(relatedTarget)) {
  14338. // If focus moves within $element, don't trigger a leave
  14339. return;
  14340. }
  14341. // Otherwise trigger a leave
  14342. this.leave(e);
  14343. } else if (type === 'mouseleave') {
  14344. this.leave(e);
  14345. }
  14346. }
  14347. /* istanbul ignore next */
  14348. }, {
  14349. key: 'setRouteWatcher',
  14350. value: function setRouteWatcher(on) {
  14351. var _this8 = this;
  14352. if (on) {
  14353. this.setRouteWatcher(false);
  14354. if (this.$root && Boolean(this.$root.$route)) {
  14355. this.$routeWatcher = this.$root.$watch('$route', function (newVal, oldVal) {
  14356. if (newVal === oldVal) {
  14357. return;
  14358. }
  14359. // If route has changed, we force hide the tooltip/popover
  14360. _this8.forceHide();
  14361. });
  14362. }
  14363. } else {
  14364. if (this.$routeWatcher) {
  14365. // cancel the route watcher by calling hte stored reference
  14366. this.$routeWatcher();
  14367. this.$routeWatcher = null;
  14368. }
  14369. }
  14370. }
  14371. /* istanbul ignore next */
  14372. }, {
  14373. key: 'setModalListener',
  14374. value: function setModalListener(on) {
  14375. var modal = Object(__WEBPACK_IMPORTED_MODULE_4__dom__["b" /* closest */])(MODAL_CLASS, this.$element);
  14376. if (!modal) {
  14377. // If we are not in a modal, don't worry. be happy
  14378. return;
  14379. }
  14380. // We can listen for modal hidden events on $root
  14381. if (this.$root) {
  14382. this.$root[on ? '$on' : '$off'](MODAL_CLOSE_EVENT, this.$forceHide);
  14383. }
  14384. }
  14385. /* istanbul ignore next */
  14386. }, {
  14387. key: 'setRootListener',
  14388. value: function setRootListener(on) {
  14389. // Listen for global 'bv::{hide|show}::{tooltip|popover}' hide request event
  14390. if (this.$root) {
  14391. this.$root[on ? '$on' : '$off']('bv::hide::' + this.constructor.NAME, this.$doHide);
  14392. this.$root[on ? '$on' : '$off']('bv::show::' + this.constructor.NAME, this.$doShow);
  14393. this.$root[on ? '$on' : '$off']('bv::disable::' + this.constructor.NAME, this.$doDisable);
  14394. this.$root[on ? '$on' : '$off']('bv::enable::' + this.constructor.NAME, this.$doEnable);
  14395. }
  14396. }
  14397. }, {
  14398. key: 'doHide',
  14399. value: function doHide(id) {
  14400. // Programmatically hide tooltip or popover
  14401. if (!id) {
  14402. // Close all tooltips or popovers
  14403. this.forceHide();
  14404. } else if (this.$element && this.$element.id && this.$element.id === id) {
  14405. // Close this specific tooltip or popover
  14406. this.hide();
  14407. }
  14408. }
  14409. }, {
  14410. key: 'doShow',
  14411. value: function doShow(id) {
  14412. // Programmatically show tooltip or popover
  14413. if (!id) {
  14414. // Open all tooltips or popovers
  14415. this.show();
  14416. } else if (id && this.$element && this.$element.id && this.$element.id === id) {
  14417. // Show this specific tooltip or popover
  14418. this.show();
  14419. }
  14420. }
  14421. }, {
  14422. key: 'doDisable',
  14423. value: function doDisable(id) {
  14424. // Programmatically disable tooltip or popover
  14425. if (!id) {
  14426. // Disable all tooltips or popovers
  14427. this.disable();
  14428. } else if (this.$element && this.$element.id && this.$element.id === id) {
  14429. // Disable this specific tooltip or popover
  14430. this.disable();
  14431. }
  14432. }
  14433. }, {
  14434. key: 'doEnable',
  14435. value: function doEnable(id) {
  14436. // Programmatically enable tooltip or popover
  14437. if (!id) {
  14438. // Enable all tooltips or popovers
  14439. this.enable();
  14440. } else if (this.$element && this.$element.id && this.$element.id === id) {
  14441. // Enable this specific tooltip or popover
  14442. this.enable();
  14443. }
  14444. }
  14445. /* istanbul ignore next */
  14446. }, {
  14447. key: 'setOnTouchStartListener',
  14448. value: function setOnTouchStartListener(on) {
  14449. var _this9 = this;
  14450. // if this is a touch-enabled device we add extra
  14451. // empty mouseover listeners to the body's immediate children;
  14452. // only needed because of broken event delegation on iOS
  14453. // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
  14454. if ('ontouchstart' in document.documentElement) {
  14455. Object(__WEBPACK_IMPORTED_MODULE_3__array__["c" /* from */])(document.body.children).forEach(function (el) {
  14456. if (on) {
  14457. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'mouseover', _this9._noop);
  14458. } else {
  14459. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["c" /* eventOff */])(el, 'mouseover', _this9._noop);
  14460. }
  14461. });
  14462. }
  14463. }
  14464. /* istanbul ignore next */
  14465. }, {
  14466. key: '_noop',
  14467. value: function _noop() {
  14468. // Empty noop handler for ontouchstart devices
  14469. }
  14470. }, {
  14471. key: 'fixTitle',
  14472. value: function fixTitle() {
  14473. var el = this.$element;
  14474. var titleType = _typeof(Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(el, 'data-original-title'));
  14475. if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(el, 'title') || titleType !== 'string') {
  14476. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["v" /* setAttr */])(el, 'data-original-title', Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(el, 'title') || '');
  14477. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["v" /* setAttr */])(el, 'title', '');
  14478. }
  14479. }
  14480. // Enter handler
  14481. /* istanbul ignore next */
  14482. }, {
  14483. key: 'enter',
  14484. value: function enter(e) {
  14485. var _this10 = this;
  14486. if (e) {
  14487. this.$activeTrigger[e.type === 'focusin' ? 'focus' : 'hover'] = true;
  14488. }
  14489. if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["j" /* hasClass */])(this.getTipElement(), ClassName.SHOW) || this.$hoverState === HoverState.SHOW) {
  14490. this.$hoverState = HoverState.SHOW;
  14491. return;
  14492. }
  14493. clearTimeout(this.$hoverTimeout);
  14494. this.$hoverState = HoverState.SHOW;
  14495. if (!this.$config.delay || !this.$config.delay.show) {
  14496. this.show();
  14497. return;
  14498. }
  14499. this.$hoverTimeout = setTimeout(function () {
  14500. if (_this10.$hoverState === HoverState.SHOW) {
  14501. _this10.show();
  14502. }
  14503. }, this.$config.delay.show);
  14504. }
  14505. // Leave handler
  14506. /* istanbul ignore next */
  14507. }, {
  14508. key: 'leave',
  14509. value: function leave(e) {
  14510. var _this11 = this;
  14511. if (e) {
  14512. this.$activeTrigger[e.type === 'focusout' ? 'focus' : 'hover'] = false;
  14513. if (e.type === 'focusout' && /blur/.test(this.$config.trigger)) {
  14514. // Special case for `blur`: we clear out the other triggers
  14515. this.$activeTrigger.click = false;
  14516. this.$activeTrigger.hover = false;
  14517. }
  14518. }
  14519. if (this.isWithActiveTrigger()) {
  14520. return;
  14521. }
  14522. clearTimeout(this.$hoverTimeout);
  14523. this.$hoverState = HoverState.OUT;
  14524. if (!this.$config.delay || !this.$config.delay.hide) {
  14525. this.hide();
  14526. return;
  14527. }
  14528. this.$hoverTimeout = setTimeout(function () {
  14529. if (_this11.$hoverState === HoverState.OUT) {
  14530. _this11.hide();
  14531. }
  14532. }, this.$config.delay.hide);
  14533. }
  14534. }, {
  14535. key: 'getPopperConfig',
  14536. value: function getPopperConfig(placement, tip) {
  14537. var _this12 = this;
  14538. return {
  14539. placement: this.constructor.getAttachment(placement),
  14540. modifiers: {
  14541. offset: { offset: this.getOffset(placement, tip) },
  14542. flip: { behavior: this.$config.fallbackPlacement },
  14543. arrow: { element: '.arrow' },
  14544. preventOverflow: { boundariesElement: this.$config.boundary }
  14545. },
  14546. onCreate: function onCreate(data) {
  14547. // Handle flipping arrow classes
  14548. if (data.originalPlacement !== data.placement) {
  14549. _this12.handlePopperPlacementChange(data);
  14550. }
  14551. },
  14552. onUpdate: function onUpdate(data) {
  14553. // Handle flipping arrow classes
  14554. _this12.handlePopperPlacementChange(data);
  14555. }
  14556. };
  14557. }
  14558. }, {
  14559. key: 'getOffset',
  14560. value: function getOffset(placement, tip) {
  14561. if (!this.$config.offset) {
  14562. var arrow = Object(__WEBPACK_IMPORTED_MODULE_4__dom__["t" /* select */])(Selector.ARROW, tip);
  14563. var arrowOffset = parseFloat(Object(__WEBPACK_IMPORTED_MODULE_4__dom__["h" /* getCS */])(arrow).width) + parseFloat(this.$config.arrowPadding);
  14564. switch (OffsetMap[placement.toUpperCase()]) {
  14565. case +1:
  14566. return '+50%p - ' + arrowOffset + 'px';
  14567. case -1:
  14568. return '-50%p + ' + arrowOffset + 'px';
  14569. default:
  14570. return 0;
  14571. }
  14572. }
  14573. return this.$config.offset;
  14574. }
  14575. }, {
  14576. key: 'getPlacement',
  14577. value: function getPlacement() {
  14578. var placement = this.$config.placement;
  14579. if (typeof placement === 'function') {
  14580. return placement.call(this, this.$tip, this.$element);
  14581. }
  14582. return placement;
  14583. }
  14584. }, {
  14585. key: 'isWithActiveTrigger',
  14586. value: function isWithActiveTrigger() {
  14587. for (var trigger in this.$activeTrigger) {
  14588. if (this.$activeTrigger[trigger]) {
  14589. return true;
  14590. }
  14591. }
  14592. return false;
  14593. }
  14594. // NOTE: Overridden by PopOver class
  14595. }, {
  14596. key: 'cleanTipClass',
  14597. value: function cleanTipClass() {
  14598. var tip = this.getTipElement();
  14599. var tabClass = tip.className.match(BSCLS_PREFIX_REGEX);
  14600. if (tabClass !== null && tabClass.length > 0) {
  14601. tabClass.forEach(function (cls) {
  14602. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, cls);
  14603. });
  14604. }
  14605. }
  14606. }, {
  14607. key: 'handlePopperPlacementChange',
  14608. value: function handlePopperPlacementChange(data) {
  14609. this.cleanTipClass();
  14610. this.addAttachmentClass(this.constructor.getAttachment(data.placement));
  14611. }
  14612. }, {
  14613. key: 'fixTransition',
  14614. value: function fixTransition(tip) {
  14615. var initConfigAnimation = this.$config.animation || false;
  14616. if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(tip, 'x-placement') !== null) {
  14617. return;
  14618. }
  14619. Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.FADE);
  14620. this.$config.animation = false;
  14621. this.hide();
  14622. this.show();
  14623. this.$config.animation = initConfigAnimation;
  14624. }
  14625. }], [{
  14626. key: 'getAttachment',
  14627. value: function getAttachment(placement) {
  14628. return AttachmentMap[placement.toUpperCase()];
  14629. }
  14630. }, {
  14631. key: 'Default',
  14632. get: function get() {
  14633. return Defaults;
  14634. }
  14635. // NOTE: Overridden by PopOver class
  14636. }, {
  14637. key: 'NAME',
  14638. get: function get() {
  14639. return NAME;
  14640. }
  14641. }]);
  14642. return ToolTip;
  14643. }();
  14644. /* harmony default export */ __webpack_exports__["a"] = (ToolTip);
  14645. /***/ }),
  14646. /***/ "./node_modules/bootstrap-vue/es/utils/unprefix-prop-name.js":
  14647. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  14648. "use strict";
  14649. /* harmony export (immutable) */ __webpack_exports__["a"] = unPrefixPropName;
  14650. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__lower_first__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/lower-first.js");
  14651. /**
  14652. * @param {string} prefix
  14653. * @param {string} value
  14654. */
  14655. function unPrefixPropName(prefix, value) {
  14656. return Object(__WEBPACK_IMPORTED_MODULE_0__lower_first__["a" /* default */])(value.replace(prefix, ''));
  14657. }
  14658. /***/ }),
  14659. /***/ "./node_modules/bootstrap-vue/es/utils/upper-first.js":
  14660. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  14661. "use strict";
  14662. /* harmony export (immutable) */ __webpack_exports__["a"] = upperFirst;
  14663. /**
  14664. * @param {string} str
  14665. */
  14666. function upperFirst(str) {
  14667. if (typeof str !== 'string') {
  14668. str = String(str);
  14669. }
  14670. return str.charAt(0).toUpperCase() + str.slice(1);
  14671. }
  14672. /***/ }),
  14673. /***/ "./node_modules/bootstrap-vue/es/utils/warn.js":
  14674. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  14675. "use strict";
  14676. /**
  14677. * Log a warning message to the console with bootstrap-vue formatting sugar.
  14678. * @param {string} message
  14679. */
  14680. /* istanbul ignore next */
  14681. function warn(message) {
  14682. console.warn("[Bootstrap-Vue warn]: " + message);
  14683. }
  14684. /* harmony default export */ __webpack_exports__["a"] = (warn);
  14685. /***/ }),
  14686. /***/ "./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/alert/alert.css":
  14687. /***/ (function(module, exports, __webpack_require__) {
  14688. exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
  14689. // imports
  14690. // module
  14691. exports.push([module.i, ".fade-enter-active, .fade-leave-active {\n transition: opacity .15s linear;\n}\n.fade-enter, .fade-leave-to {\n opacity: 0;\n}\n", ""]);
  14692. // exports
  14693. /***/ }),
  14694. /***/ "./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css":
  14695. /***/ (function(module, exports, __webpack_require__) {
  14696. exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
  14697. // imports
  14698. // module
  14699. exports.push([module.i, "/* workaround for https://github.com/bootstrap-vue/bootstrap-vue/issues/1560 */\n/* source: _input-group.scss */\n\n.input-group > .input-group-prepend > .b-dropdown > .btn,\n.input-group > .input-group-append:not(:last-child) > .b-dropdown > .btn,\n.input-group > .input-group-append:last-child > .b-dropdown:not(:last-child):not(.dropdown-toggle) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .b-dropdown > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .b-dropdown > .btn,\n.input-group > .input-group-prepend:first-child > .b-dropdown:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n", ""]);
  14700. // exports
  14701. /***/ }),
  14702. /***/ "./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/form-input/form-input.css":
  14703. /***/ (function(module, exports, __webpack_require__) {
  14704. exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
  14705. // imports
  14706. // module
  14707. exports.push([module.i, "/* Special styling for type=range and type=color input */\ninput.form-control[type=\"range\"],\ninput.form-control[type=\"color\"] {\n height: 2.25rem;\n}\ninput.form-control.form-control-sm[type=\"range\"],\ninput.form-control.form-control-sm[type=\"color\"] {\n height: 1.9375rem;\n}\ninput.form-control.form-control-lg[type=\"range\"],\ninput.form-control.form-control-lg[type=\"color\"] {\n height: 3rem;\n}\n\n/* Less padding on type=color */\ninput.form-control[type=\"color\"] {\n padding: 0.25rem 0.25rem;\n}\ninput.form-control.form-control-sm[type=\"color\"] {\n padding: 0.125rem 0.125rem;\n}\n", ""]);
  14708. // exports
  14709. /***/ }),
  14710. /***/ "./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/table/table.css":
  14711. /***/ (function(module, exports, __webpack_require__) {
  14712. exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
  14713. // imports
  14714. // module
  14715. exports.push([module.i, "/* Add support for fixed layout table */\ntable.b-table.b-table-fixed {\n table-layout: fixed;\n}\n\n/* Busy table styling */\ntable.b-table[aria-busy='false'] {\n opacity: 1;\n}\ntable.b-table[aria-busy='true'] {\n opacity: 0.6;\n}\n\n/* Sort styling */\ntable.b-table > thead > tr > th,\ntable.b-table > tfoot > tr > th {\n position: relative;\n}\ntable.b-table > thead > tr > th.sorting,\ntable.b-table > tfoot > tr > th.sorting {\n padding-right: 1.5em;\n cursor: pointer;\n}\ntable.b-table > thead > tr > th.sorting::before,\ntable.b-table > thead > tr > th.sorting::after,\ntable.b-table > tfoot > tr > th.sorting::before,\ntable.b-table > tfoot > tr > th.sorting::after {\n position: absolute;\n bottom: 0;\n display: block;\n opacity: 0.4;\n padding-bottom: inherit;\n font-size: inherit;\n line-height: 180%;\n}\ntable.b-table > thead > tr > th.sorting::before,\ntable.b-table > tfoot > tr > th.sorting::before {\n right: 0.75em;\n content: '\\2191';\n}\ntable.b-table > thead > tr > th.sorting::after,\ntable.b-table > tfoot > tr > th.sorting::after {\n right: 0.25em;\n content: '\\2193';\n}\ntable.b-table > thead > tr > th.sorting_asc::after,\ntable.b-table > thead > tr > th.sorting_desc::before,\ntable.b-table > tfoot > tr > th.sorting_asc::after,\ntable.b-table > tfoot > tr > th.sorting_desc::before {\n opacity: 1;\n}\n\n/* Stacked table layout */\n/* Derived from http://blog.adrianroselli.com/2017/11/a-responsive-accessible-table.html */\n/* Always stacked */\ntable.b-table.b-table-stacked {\n width: 100%;\n}\ntable.b-table.b-table-stacked,\ntable.b-table.b-table-stacked > tbody,\ntable.b-table.b-table-stacked > tbody > tr,\ntable.b-table.b-table-stacked > tbody > tr > td,\ntable.b-table.b-table-stacked > tbody > tr > th,\ntable.b-table.b-table-stacked > caption {\n display: block;\n}\n\n/* Hide stuff we can't deal with, or shouldn't show */\ntable.b-table.b-table-stacked > thead,\ntable.b-table.b-table-stacked > tfoot,\ntable.b-table.b-table-stacked > tbody > tr.b-table-top-row,\ntable.b-table.b-table-stacked > tbody > tr.b-table-bottom-row {\n display: none;\n}\n\n/* inter-row top border */\ntable.b-table.b-table-stacked > tbody > tr > :first-child {\n border-top-width: 0.4rem;\n}\n\n/* convert TD/TH contents to \"cells\". Caveat: child elements become cells! */\ntable.b-table.b-table-stacked > tbody > tr > [data-label] {\n display: grid;\n grid-template-columns: 40% auto;\n grid-gap: 0.25rem 1rem;\n}\n\n/* generate row cell \"heading\" */\ntable.b-table.b-table-stacked > tbody > tr > [data-label]::before {\n content: attr(data-label);\n display: inline;\n text-align: right;\n overflow-wrap: break-word;\n font-weight: bold;\n font-style: normal;\n}\n\n@media all and (max-width: 575.99px) {\n /* Under SM */\n table.b-table.b-table-stacked-sm {\n width: 100%;\n }\n table.b-table.b-table-stacked-sm,\n table.b-table.b-table-stacked-sm > tbody,\n table.b-table.b-table-stacked-sm > tbody > tr,\n table.b-table.b-table-stacked-sm > tbody > tr > td,\n table.b-table.b-table-stacked-sm > tbody > tr > th,\n table.b-table.b-table-stacked-sm > caption {\n display: block;\n }\n /* hide stuff we can't deal with, or shouldn't show */\n table.b-table.b-table-stacked-sm > thead,\n table.b-table.b-table-stacked-sm > tfoot,\n table.b-table.b-table-stacked-sm > tbody > tr.b-table-top-row,\n table.b-table.b-table-stacked-sm > tbody > tr.b-table-bottom-row {\n display: none;\n }\n /* inter-row top border */\n table.b-table.b-table-stacked-sm > tbody > tr > :first-child {\n border-top-width: 0.4rem;\n }\n /* convert TD/TH contents to \"cells\". Caveat: child elements become cells! */\n table.b-table.b-table-stacked-sm > tbody > tr > [data-label] {\n display: grid;\n grid-template-columns: 40% auto;\n grid-gap: 0.25rem 1rem;\n }\n /* generate row cell \"heading\" */\n table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::before {\n content: attr(data-label);\n display: inline;\n text-align: right;\n overflow-wrap: break-word;\n font-weight: bold;\n font-style: normal;\n }\n}\n\n@media all and (max-width: 767.99px) {\n /* under MD */\n table.b-table.b-table-stacked-md {\n width: 100%;\n }\n table.b-table.b-table-stacked-md,\n table.b-table.b-table-stacked-md > tbody,\n table.b-table.b-table-stacked-md > tbody > tr,\n table.b-table.b-table-stacked-md > tbody > tr > td,\n table.b-table.b-table-stacked-md > tbody > tr > th,\n table.b-table.b-table-stacked-md > caption {\n display: block;\n }\n /* hide stuff we can't deal with, or shouldn't show */\n table.b-table.b-table-stacked-md > thead,\n table.b-table.b-table-stacked-md > tfoot,\n table.b-table.b-table-stacked-md > tbody > tr.b-table-top-row,\n table.b-table.b-table-stacked-md > tbody > tr.b-table-bottom-row {\n display: none;\n }\n /* inter-row top border */\n table.b-table.b-table-stacked-md > tbody > tr > :first-child {\n border-top-width: 0.4rem;\n }\n /* convert TD/TH contents to \"cells\". Caveat: child elements become cells! */\n table.b-table.b-table-stacked-md > tbody > tr > [data-label] {\n display: grid;\n grid-template-columns: 40% auto;\n grid-gap: 0.25rem 1rem;\n }\n /* generate row cell \"heading\" */\n table.b-table.b-table-stacked-md > tbody > tr > [data-label]::before {\n content: attr(data-label);\n display: inline;\n text-align: right;\n overflow-wrap: break-word;\n font-weight: bold;\n font-style: normal;\n }\n}\n\n@media all and (max-width: 991.99px) {\n /* under LG */\n table.b-table.b-table-stacked-lg {\n width: 100%;\n }\n table.b-table.b-table-stacked-lg,\n table.b-table.b-table-stacked-lg > tbody,\n table.b-table.b-table-stacked-lg > tbody > tr,\n table.b-table.b-table-stacked-lg > tbody > tr > td,\n table.b-table.b-table-stacked-lg > tbody > tr > th,\n table.b-table.b-table-stacked-lg > caption {\n display: block;\n }\n /* hide stuff we can't deal with, or shouldn't show */\n table.b-table.b-table-stacked-lg > thead,\n table.b-table.b-table-stacked-lg > tfoot,\n table.b-table.b-table-stacked-lg > tbody > tr.b-table-top-row,\n table.b-table.b-table-stacked-lg > tbody > tr.b-table-bottom-row {\n display: none;\n }\n /* inter-row top border */\n table.b-table.b-table-stacked-lg > tbody > tr > :first-child {\n border-top-width: 0.4rem;\n }\n /* convert TD/TH contents to \"cells\". Caveat: child elements become cells! */\n table.b-table.b-table-stacked-lg > tbody > tr > [data-label] {\n display: grid;\n grid-template-columns: 40% auto;\n grid-gap: 0.25rem 1rem;\n }\n /* generate row cell \"heading\" */\n table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::before {\n content: attr(data-label);\n display: inline;\n text-align: right;\n overflow-wrap: break-word;\n font-weight: bold;\n font-style: normal;\n }\n}\n\n@media all and (max-width: 1199.99px) {\n /* under XL */\n table.b-table.b-table-stacked-xl {\n width: 100%;\n }\n table.b-table.b-table-stacked-xl,\n table.b-table.b-table-stacked-xl > tbody,\n table.b-table.b-table-stacked-xl > tbody > tr,\n table.b-table.b-table-stacked-xl > tbody > tr > td,\n table.b-table.b-table-stacked-xl > tbody > tr > th,\n table.b-table.b-table-stacked-xl > caption {\n display: block;\n }\n /* hide stuff we can't deal with, or shouldn't show */\n table.b-table.b-table-stacked-xl > thead,\n table.b-table.b-table-stacked-xl > tfoot,\n table.b-table.b-table-stacked-xl > tbody > tr.b-table-top-row,\n table.b-table.b-table-stacked-xl > tbody > tr.b-table-bottom-row {\n display: none;\n }\n /* inter-row top border */\n table.b-table.b-table-stacked-xl > tbody > tr > :first-child {\n border-top-width: 0.4rem;\n }\n /* convert TD/TH contents to \"cells\". Caveat: child elements become cells! */\n table.b-table.b-table-stacked-xl > tbody > tr > [data-label] {\n display: grid;\n grid-template-columns: 40% auto;\n grid-gap: 0.25rem 1rem;\n }\n /* generate row cell \"heading\" */\n table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::before {\n content: attr(data-label);\n display: inline;\n text-align: right;\n overflow-wrap: break-word;\n font-weight: bold;\n font-style: normal;\n }\n}\n\n/* Details row styling */\ntable.b-table > tbody > tr.b-table-details > td {\n border-top: none;\n}\n", ""]);
  14716. // exports
  14717. /***/ }),
  14718. /***/ "./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1b3c4b52\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/FollowSuggestions.vue":
  14719. /***/ (function(module, exports, __webpack_require__) {
  14720. exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
  14721. // imports
  14722. // module
  14723. exports.push([module.i, "\n\n", ""]);
  14724. // exports
  14725. /***/ }),
  14726. /***/ "./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1e4d2916\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/PostComponent.vue":
  14727. /***/ (function(module, exports, __webpack_require__) {
  14728. exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
  14729. // imports
  14730. // module
  14731. exports.push([module.i, "\n#l-modal .modal-body[data-v-1e4d2916],\n#s-modal .modal-body[data-v-1e4d2916] {\n max-height: 70vh;\n overflow-y: scroll;\n}\n.status-comments[data-v-1e4d2916],\n.reactions[data-v-1e4d2916],\n.col-md-4[data-v-1e4d2916] {\n background: #fff;\n}\n.postPresenterContainer[data-v-1e4d2916] {\n background: #fff;\n}\n@media(min-width: 720px) {\n.postPresenterContainer[data-v-1e4d2916] {\n min-height: 600px;\n}\n}\n", ""]);
  14732. // exports
  14733. /***/ }),
  14734. /***/ "./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-40ef44f8\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/Timeline.vue":
  14735. /***/ (function(module, exports, __webpack_require__) {
  14736. exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
  14737. // imports
  14738. // module
  14739. exports.push([module.i, "\n.postPresenterContainer[data-v-40ef44f8] {\n\tdisplay: -webkit-box;\n\tdisplay: -ms-flexbox;\n\tdisplay: flex;\n\t-webkit-box-align: center;\n\t -ms-flex-align: center;\n\t align-items: center;\n\tbackground: #fff;\n}\n.cursor-pointer[data-v-40ef44f8] {\n\tcursor: pointer;\n}\n.word-break[data-v-40ef44f8] {\n\tword-break: break-all;\n}\n", ""]);
  14740. // exports
  14741. /***/ }),
  14742. /***/ "./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-7029d26b\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/PostComments.vue":
  14743. /***/ (function(module, exports, __webpack_require__) {
  14744. exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
  14745. // imports
  14746. // module
  14747. exports.push([module.i, "\nspan[data-v-7029d26b] {\n font-size: 14px;\n}\n.comment-text[data-v-7029d26b] {\n}\n.comment-text p[data-v-7029d26b] {\n display: inline;\n}\n", ""]);
  14748. // exports
  14749. /***/ }),
  14750. /***/ "./node_modules/css-loader/lib/css-base.js":
  14751. /***/ (function(module, exports) {
  14752. /*
  14753. MIT License http://www.opensource.org/licenses/mit-license.php
  14754. Author Tobias Koppers @sokra
  14755. */
  14756. // css base code, injected by the css-loader
  14757. module.exports = function(useSourceMap) {
  14758. var list = [];
  14759. // return the list of modules as css string
  14760. list.toString = function toString() {
  14761. return this.map(function (item) {
  14762. var content = cssWithMappingToString(item, useSourceMap);
  14763. if(item[2]) {
  14764. return "@media " + item[2] + "{" + content + "}";
  14765. } else {
  14766. return content;
  14767. }
  14768. }).join("");
  14769. };
  14770. // import a list of modules into the list
  14771. list.i = function(modules, mediaQuery) {
  14772. if(typeof modules === "string")
  14773. modules = [[null, modules, ""]];
  14774. var alreadyImportedModules = {};
  14775. for(var i = 0; i < this.length; i++) {
  14776. var id = this[i][0];
  14777. if(typeof id === "number")
  14778. alreadyImportedModules[id] = true;
  14779. }
  14780. for(i = 0; i < modules.length; i++) {
  14781. var item = modules[i];
  14782. // skip already imported module
  14783. // this implementation is not 100% perfect for weird media query combinations
  14784. // when a module is imported multiple times with different media queries.
  14785. // I hope this will never occur (Hey this way we have smaller bundles)
  14786. if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
  14787. if(mediaQuery && !item[2]) {
  14788. item[2] = mediaQuery;
  14789. } else if(mediaQuery) {
  14790. item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
  14791. }
  14792. list.push(item);
  14793. }
  14794. }
  14795. };
  14796. return list;
  14797. };
  14798. function cssWithMappingToString(item, useSourceMap) {
  14799. var content = item[1] || '';
  14800. var cssMapping = item[3];
  14801. if (!cssMapping) {
  14802. return content;
  14803. }
  14804. if (useSourceMap && typeof btoa === 'function') {
  14805. var sourceMapping = toComment(cssMapping);
  14806. var sourceURLs = cssMapping.sources.map(function (source) {
  14807. return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
  14808. });
  14809. return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
  14810. }
  14811. return [content].join('\n');
  14812. }
  14813. // Adapted from convert-source-map (MIT)
  14814. function toComment(sourceMap) {
  14815. // eslint-disable-next-line no-undef
  14816. var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
  14817. var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
  14818. return '/*# ' + data + ' */';
  14819. }
  14820. /***/ }),
  14821. /***/ "./node_modules/date-fns/compare_asc/index.js":
  14822. /***/ (function(module, exports, __webpack_require__) {
  14823. var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
  14824. /**
  14825. * @category Common Helpers
  14826. * @summary Compare the two dates and return -1, 0 or 1.
  14827. *
  14828. * @description
  14829. * Compare the two dates and return 1 if the first date is after the second,
  14830. * -1 if the first date is before the second or 0 if dates are equal.
  14831. *
  14832. * @param {Date|String|Number} dateLeft - the first date to compare
  14833. * @param {Date|String|Number} dateRight - the second date to compare
  14834. * @returns {Number} the result of the comparison
  14835. *
  14836. * @example
  14837. * // Compare 11 February 1987 and 10 July 1989:
  14838. * var result = compareAsc(
  14839. * new Date(1987, 1, 11),
  14840. * new Date(1989, 6, 10)
  14841. * )
  14842. * //=> -1
  14843. *
  14844. * @example
  14845. * // Sort the array of dates:
  14846. * var result = [
  14847. * new Date(1995, 6, 2),
  14848. * new Date(1987, 1, 11),
  14849. * new Date(1989, 6, 10)
  14850. * ].sort(compareAsc)
  14851. * //=> [
  14852. * // Wed Feb 11 1987 00:00:00,
  14853. * // Mon Jul 10 1989 00:00:00,
  14854. * // Sun Jul 02 1995 00:00:00
  14855. * // ]
  14856. */
  14857. function compareAsc (dirtyDateLeft, dirtyDateRight) {
  14858. var dateLeft = parse(dirtyDateLeft)
  14859. var timeLeft = dateLeft.getTime()
  14860. var dateRight = parse(dirtyDateRight)
  14861. var timeRight = dateRight.getTime()
  14862. if (timeLeft < timeRight) {
  14863. return -1
  14864. } else if (timeLeft > timeRight) {
  14865. return 1
  14866. } else {
  14867. return 0
  14868. }
  14869. }
  14870. module.exports = compareAsc
  14871. /***/ }),
  14872. /***/ "./node_modules/date-fns/compare_desc/index.js":
  14873. /***/ (function(module, exports, __webpack_require__) {
  14874. var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
  14875. /**
  14876. * @category Common Helpers
  14877. * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.
  14878. *
  14879. * @description
  14880. * Compare the two dates and return -1 if the first date is after the second,
  14881. * 1 if the first date is before the second or 0 if dates are equal.
  14882. *
  14883. * @param {Date|String|Number} dateLeft - the first date to compare
  14884. * @param {Date|String|Number} dateRight - the second date to compare
  14885. * @returns {Number} the result of the comparison
  14886. *
  14887. * @example
  14888. * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:
  14889. * var result = compareDesc(
  14890. * new Date(1987, 1, 11),
  14891. * new Date(1989, 6, 10)
  14892. * )
  14893. * //=> 1
  14894. *
  14895. * @example
  14896. * // Sort the array of dates in reverse chronological order:
  14897. * var result = [
  14898. * new Date(1995, 6, 2),
  14899. * new Date(1987, 1, 11),
  14900. * new Date(1989, 6, 10)
  14901. * ].sort(compareDesc)
  14902. * //=> [
  14903. * // Sun Jul 02 1995 00:00:00,
  14904. * // Mon Jul 10 1989 00:00:00,
  14905. * // Wed Feb 11 1987 00:00:00
  14906. * // ]
  14907. */
  14908. function compareDesc (dirtyDateLeft, dirtyDateRight) {
  14909. var dateLeft = parse(dirtyDateLeft)
  14910. var timeLeft = dateLeft.getTime()
  14911. var dateRight = parse(dirtyDateRight)
  14912. var timeRight = dateRight.getTime()
  14913. if (timeLeft > timeRight) {
  14914. return -1
  14915. } else if (timeLeft < timeRight) {
  14916. return 1
  14917. } else {
  14918. return 0
  14919. }
  14920. }
  14921. module.exports = compareDesc
  14922. /***/ }),
  14923. /***/ "./node_modules/date-fns/difference_in_calendar_months/index.js":
  14924. /***/ (function(module, exports, __webpack_require__) {
  14925. var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
  14926. /**
  14927. * @category Month Helpers
  14928. * @summary Get the number of calendar months between the given dates.
  14929. *
  14930. * @description
  14931. * Get the number of calendar months between the given dates.
  14932. *
  14933. * @param {Date|String|Number} dateLeft - the later date
  14934. * @param {Date|String|Number} dateRight - the earlier date
  14935. * @returns {Number} the number of calendar months
  14936. *
  14937. * @example
  14938. * // How many calendar months are between 31 January 2014 and 1 September 2014?
  14939. * var result = differenceInCalendarMonths(
  14940. * new Date(2014, 8, 1),
  14941. * new Date(2014, 0, 31)
  14942. * )
  14943. * //=> 8
  14944. */
  14945. function differenceInCalendarMonths (dirtyDateLeft, dirtyDateRight) {
  14946. var dateLeft = parse(dirtyDateLeft)
  14947. var dateRight = parse(dirtyDateRight)
  14948. var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear()
  14949. var monthDiff = dateLeft.getMonth() - dateRight.getMonth()
  14950. return yearDiff * 12 + monthDiff
  14951. }
  14952. module.exports = differenceInCalendarMonths
  14953. /***/ }),
  14954. /***/ "./node_modules/date-fns/difference_in_milliseconds/index.js":
  14955. /***/ (function(module, exports, __webpack_require__) {
  14956. var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
  14957. /**
  14958. * @category Millisecond Helpers
  14959. * @summary Get the number of milliseconds between the given dates.
  14960. *
  14961. * @description
  14962. * Get the number of milliseconds between the given dates.
  14963. *
  14964. * @param {Date|String|Number} dateLeft - the later date
  14965. * @param {Date|String|Number} dateRight - the earlier date
  14966. * @returns {Number} the number of milliseconds
  14967. *
  14968. * @example
  14969. * // How many milliseconds are between
  14970. * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?
  14971. * var result = differenceInMilliseconds(
  14972. * new Date(2014, 6, 2, 12, 30, 21, 700),
  14973. * new Date(2014, 6, 2, 12, 30, 20, 600)
  14974. * )
  14975. * //=> 1100
  14976. */
  14977. function differenceInMilliseconds (dirtyDateLeft, dirtyDateRight) {
  14978. var dateLeft = parse(dirtyDateLeft)
  14979. var dateRight = parse(dirtyDateRight)
  14980. return dateLeft.getTime() - dateRight.getTime()
  14981. }
  14982. module.exports = differenceInMilliseconds
  14983. /***/ }),
  14984. /***/ "./node_modules/date-fns/difference_in_months/index.js":
  14985. /***/ (function(module, exports, __webpack_require__) {
  14986. var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
  14987. var differenceInCalendarMonths = __webpack_require__("./node_modules/date-fns/difference_in_calendar_months/index.js")
  14988. var compareAsc = __webpack_require__("./node_modules/date-fns/compare_asc/index.js")
  14989. /**
  14990. * @category Month Helpers
  14991. * @summary Get the number of full months between the given dates.
  14992. *
  14993. * @description
  14994. * Get the number of full months between the given dates.
  14995. *
  14996. * @param {Date|String|Number} dateLeft - the later date
  14997. * @param {Date|String|Number} dateRight - the earlier date
  14998. * @returns {Number} the number of full months
  14999. *
  15000. * @example
  15001. * // How many full months are between 31 January 2014 and 1 September 2014?
  15002. * var result = differenceInMonths(
  15003. * new Date(2014, 8, 1),
  15004. * new Date(2014, 0, 31)
  15005. * )
  15006. * //=> 7
  15007. */
  15008. function differenceInMonths (dirtyDateLeft, dirtyDateRight) {
  15009. var dateLeft = parse(dirtyDateLeft)
  15010. var dateRight = parse(dirtyDateRight)
  15011. var sign = compareAsc(dateLeft, dateRight)
  15012. var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight))
  15013. dateLeft.setMonth(dateLeft.getMonth() - sign * difference)
  15014. // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full
  15015. // If so, result must be decreased by 1 in absolute value
  15016. var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign
  15017. return sign * (difference - isLastMonthNotFull)
  15018. }
  15019. module.exports = differenceInMonths
  15020. /***/ }),
  15021. /***/ "./node_modules/date-fns/difference_in_seconds/index.js":
  15022. /***/ (function(module, exports, __webpack_require__) {
  15023. var differenceInMilliseconds = __webpack_require__("./node_modules/date-fns/difference_in_milliseconds/index.js")
  15024. /**
  15025. * @category Second Helpers
  15026. * @summary Get the number of seconds between the given dates.
  15027. *
  15028. * @description
  15029. * Get the number of seconds between the given dates.
  15030. *
  15031. * @param {Date|String|Number} dateLeft - the later date
  15032. * @param {Date|String|Number} dateRight - the earlier date
  15033. * @returns {Number} the number of seconds
  15034. *
  15035. * @example
  15036. * // How many seconds are between
  15037. * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?
  15038. * var result = differenceInSeconds(
  15039. * new Date(2014, 6, 2, 12, 30, 20, 0),
  15040. * new Date(2014, 6, 2, 12, 30, 7, 999)
  15041. * )
  15042. * //=> 12
  15043. */
  15044. function differenceInSeconds (dirtyDateLeft, dirtyDateRight) {
  15045. var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000
  15046. return diff > 0 ? Math.floor(diff) : Math.ceil(diff)
  15047. }
  15048. module.exports = differenceInSeconds
  15049. /***/ }),
  15050. /***/ "./node_modules/date-fns/distance_in_words/index.js":
  15051. /***/ (function(module, exports, __webpack_require__) {
  15052. var compareDesc = __webpack_require__("./node_modules/date-fns/compare_desc/index.js")
  15053. var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
  15054. var differenceInSeconds = __webpack_require__("./node_modules/date-fns/difference_in_seconds/index.js")
  15055. var differenceInMonths = __webpack_require__("./node_modules/date-fns/difference_in_months/index.js")
  15056. var enLocale = __webpack_require__("./node_modules/date-fns/locale/en/index.js")
  15057. var MINUTES_IN_DAY = 1440
  15058. var MINUTES_IN_ALMOST_TWO_DAYS = 2520
  15059. var MINUTES_IN_MONTH = 43200
  15060. var MINUTES_IN_TWO_MONTHS = 86400
  15061. /**
  15062. * @category Common Helpers
  15063. * @summary Return the distance between the given dates in words.
  15064. *
  15065. * @description
  15066. * Return the distance between the given dates in words.
  15067. *
  15068. * | Distance between dates | Result |
  15069. * |-------------------------------------------------------------------|---------------------|
  15070. * | 0 ... 30 secs | less than a minute |
  15071. * | 30 secs ... 1 min 30 secs | 1 minute |
  15072. * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |
  15073. * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |
  15074. * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |
  15075. * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |
  15076. * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |
  15077. * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |
  15078. * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |
  15079. * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |
  15080. * | 1 yr ... 1 yr 3 months | about 1 year |
  15081. * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |
  15082. * | 1 yr 9 months ... 2 yrs | almost 2 years |
  15083. * | N yrs ... N yrs 3 months | about N years |
  15084. * | N yrs 3 months ... N yrs 9 months | over N years |
  15085. * | N yrs 9 months ... N+1 yrs | almost N+1 years |
  15086. *
  15087. * With `options.includeSeconds == true`:
  15088. * | Distance between dates | Result |
  15089. * |------------------------|----------------------|
  15090. * | 0 secs ... 5 secs | less than 5 seconds |
  15091. * | 5 secs ... 10 secs | less than 10 seconds |
  15092. * | 10 secs ... 20 secs | less than 20 seconds |
  15093. * | 20 secs ... 40 secs | half a minute |
  15094. * | 40 secs ... 60 secs | less than a minute |
  15095. * | 60 secs ... 90 secs | 1 minute |
  15096. *
  15097. * @param {Date|String|Number} dateToCompare - the date to compare with
  15098. * @param {Date|String|Number} date - the other date
  15099. * @param {Object} [options] - the object with options
  15100. * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed
  15101. * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first
  15102. * @param {Object} [options.locale=enLocale] - the locale object
  15103. * @returns {String} the distance in words
  15104. *
  15105. * @example
  15106. * // What is the distance between 2 July 2014 and 1 January 2015?
  15107. * var result = distanceInWords(
  15108. * new Date(2014, 6, 2),
  15109. * new Date(2015, 0, 1)
  15110. * )
  15111. * //=> '6 months'
  15112. *
  15113. * @example
  15114. * // What is the distance between 1 January 2015 00:00:15
  15115. * // and 1 January 2015 00:00:00, including seconds?
  15116. * var result = distanceInWords(
  15117. * new Date(2015, 0, 1, 0, 0, 15),
  15118. * new Date(2015, 0, 1, 0, 0, 0),
  15119. * {includeSeconds: true}
  15120. * )
  15121. * //=> 'less than 20 seconds'
  15122. *
  15123. * @example
  15124. * // What is the distance from 1 January 2016
  15125. * // to 1 January 2015, with a suffix?
  15126. * var result = distanceInWords(
  15127. * new Date(2016, 0, 1),
  15128. * new Date(2015, 0, 1),
  15129. * {addSuffix: true}
  15130. * )
  15131. * //=> 'about 1 year ago'
  15132. *
  15133. * @example
  15134. * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?
  15135. * var eoLocale = require('date-fns/locale/eo')
  15136. * var result = distanceInWords(
  15137. * new Date(2016, 7, 1),
  15138. * new Date(2015, 0, 1),
  15139. * {locale: eoLocale}
  15140. * )
  15141. * //=> 'pli ol 1 jaro'
  15142. */
  15143. function distanceInWords (dirtyDateToCompare, dirtyDate, dirtyOptions) {
  15144. var options = dirtyOptions || {}
  15145. var comparison = compareDesc(dirtyDateToCompare, dirtyDate)
  15146. var locale = options.locale
  15147. var localize = enLocale.distanceInWords.localize
  15148. if (locale && locale.distanceInWords && locale.distanceInWords.localize) {
  15149. localize = locale.distanceInWords.localize
  15150. }
  15151. var localizeOptions = {
  15152. addSuffix: Boolean(options.addSuffix),
  15153. comparison: comparison
  15154. }
  15155. var dateLeft, dateRight
  15156. if (comparison > 0) {
  15157. dateLeft = parse(dirtyDateToCompare)
  15158. dateRight = parse(dirtyDate)
  15159. } else {
  15160. dateLeft = parse(dirtyDate)
  15161. dateRight = parse(dirtyDateToCompare)
  15162. }
  15163. var seconds = differenceInSeconds(dateRight, dateLeft)
  15164. var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset()
  15165. var minutes = Math.round(seconds / 60) - offset
  15166. var months
  15167. // 0 up to 2 mins
  15168. if (minutes < 2) {
  15169. if (options.includeSeconds) {
  15170. if (seconds < 5) {
  15171. return localize('lessThanXSeconds', 5, localizeOptions)
  15172. } else if (seconds < 10) {
  15173. return localize('lessThanXSeconds', 10, localizeOptions)
  15174. } else if (seconds < 20) {
  15175. return localize('lessThanXSeconds', 20, localizeOptions)
  15176. } else if (seconds < 40) {
  15177. return localize('halfAMinute', null, localizeOptions)
  15178. } else if (seconds < 60) {
  15179. return localize('lessThanXMinutes', 1, localizeOptions)
  15180. } else {
  15181. return localize('xMinutes', 1, localizeOptions)
  15182. }
  15183. } else {
  15184. if (minutes === 0) {
  15185. return localize('lessThanXMinutes', 1, localizeOptions)
  15186. } else {
  15187. return localize('xMinutes', minutes, localizeOptions)
  15188. }
  15189. }
  15190. // 2 mins up to 0.75 hrs
  15191. } else if (minutes < 45) {
  15192. return localize('xMinutes', minutes, localizeOptions)
  15193. // 0.75 hrs up to 1.5 hrs
  15194. } else if (minutes < 90) {
  15195. return localize('aboutXHours', 1, localizeOptions)
  15196. // 1.5 hrs up to 24 hrs
  15197. } else if (minutes < MINUTES_IN_DAY) {
  15198. var hours = Math.round(minutes / 60)
  15199. return localize('aboutXHours', hours, localizeOptions)
  15200. // 1 day up to 1.75 days
  15201. } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {
  15202. return localize('xDays', 1, localizeOptions)
  15203. // 1.75 days up to 30 days
  15204. } else if (minutes < MINUTES_IN_MONTH) {
  15205. var days = Math.round(minutes / MINUTES_IN_DAY)
  15206. return localize('xDays', days, localizeOptions)
  15207. // 1 month up to 2 months
  15208. } else if (minutes < MINUTES_IN_TWO_MONTHS) {
  15209. months = Math.round(minutes / MINUTES_IN_MONTH)
  15210. return localize('aboutXMonths', months, localizeOptions)
  15211. }
  15212. months = differenceInMonths(dateRight, dateLeft)
  15213. // 2 months up to 12 months
  15214. if (months < 12) {
  15215. var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH)
  15216. return localize('xMonths', nearestMonth, localizeOptions)
  15217. // 1 year up to max Date
  15218. } else {
  15219. var monthsSinceStartOfYear = months % 12
  15220. var years = Math.floor(months / 12)
  15221. // N years up to 1 years 3 months
  15222. if (monthsSinceStartOfYear < 3) {
  15223. return localize('aboutXYears', years, localizeOptions)
  15224. // N years 3 months up to N years 9 months
  15225. } else if (monthsSinceStartOfYear < 9) {
  15226. return localize('overXYears', years, localizeOptions)
  15227. // N years 9 months up to N year 12 months
  15228. } else {
  15229. return localize('almostXYears', years + 1, localizeOptions)
  15230. }
  15231. }
  15232. }
  15233. module.exports = distanceInWords
  15234. /***/ }),
  15235. /***/ "./node_modules/date-fns/distance_in_words_to_now/index.js":
  15236. /***/ (function(module, exports, __webpack_require__) {
  15237. var distanceInWords = __webpack_require__("./node_modules/date-fns/distance_in_words/index.js")
  15238. /**
  15239. * @category Common Helpers
  15240. * @summary Return the distance between the given date and now in words.
  15241. *
  15242. * @description
  15243. * Return the distance between the given date and now in words.
  15244. *
  15245. * | Distance to now | Result |
  15246. * |-------------------------------------------------------------------|---------------------|
  15247. * | 0 ... 30 secs | less than a minute |
  15248. * | 30 secs ... 1 min 30 secs | 1 minute |
  15249. * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |
  15250. * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |
  15251. * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |
  15252. * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |
  15253. * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |
  15254. * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |
  15255. * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |
  15256. * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |
  15257. * | 1 yr ... 1 yr 3 months | about 1 year |
  15258. * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |
  15259. * | 1 yr 9 months ... 2 yrs | almost 2 years |
  15260. * | N yrs ... N yrs 3 months | about N years |
  15261. * | N yrs 3 months ... N yrs 9 months | over N years |
  15262. * | N yrs 9 months ... N+1 yrs | almost N+1 years |
  15263. *
  15264. * With `options.includeSeconds == true`:
  15265. * | Distance to now | Result |
  15266. * |---------------------|----------------------|
  15267. * | 0 secs ... 5 secs | less than 5 seconds |
  15268. * | 5 secs ... 10 secs | less than 10 seconds |
  15269. * | 10 secs ... 20 secs | less than 20 seconds |
  15270. * | 20 secs ... 40 secs | half a minute |
  15271. * | 40 secs ... 60 secs | less than a minute |
  15272. * | 60 secs ... 90 secs | 1 minute |
  15273. *
  15274. * @param {Date|String|Number} date - the given date
  15275. * @param {Object} [options] - the object with options
  15276. * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed
  15277. * @param {Boolean} [options.addSuffix=false] - result specifies if the second date is earlier or later than the first
  15278. * @param {Object} [options.locale=enLocale] - the locale object
  15279. * @returns {String} the distance in words
  15280. *
  15281. * @example
  15282. * // If today is 1 January 2015, what is the distance to 2 July 2014?
  15283. * var result = distanceInWordsToNow(
  15284. * new Date(2014, 6, 2)
  15285. * )
  15286. * //=> '6 months'
  15287. *
  15288. * @example
  15289. * // If now is 1 January 2015 00:00:00,
  15290. * // what is the distance to 1 January 2015 00:00:15, including seconds?
  15291. * var result = distanceInWordsToNow(
  15292. * new Date(2015, 0, 1, 0, 0, 15),
  15293. * {includeSeconds: true}
  15294. * )
  15295. * //=> 'less than 20 seconds'
  15296. *
  15297. * @example
  15298. * // If today is 1 January 2015,
  15299. * // what is the distance to 1 January 2016, with a suffix?
  15300. * var result = distanceInWordsToNow(
  15301. * new Date(2016, 0, 1),
  15302. * {addSuffix: true}
  15303. * )
  15304. * //=> 'in about 1 year'
  15305. *
  15306. * @example
  15307. * // If today is 1 January 2015,
  15308. * // what is the distance to 1 August 2016 in Esperanto?
  15309. * var eoLocale = require('date-fns/locale/eo')
  15310. * var result = distanceInWordsToNow(
  15311. * new Date(2016, 7, 1),
  15312. * {locale: eoLocale}
  15313. * )
  15314. * //=> 'pli ol 1 jaro'
  15315. */
  15316. function distanceInWordsToNow (dirtyDate, dirtyOptions) {
  15317. return distanceInWords(Date.now(), dirtyDate, dirtyOptions)
  15318. }
  15319. module.exports = distanceInWordsToNow
  15320. /***/ }),
  15321. /***/ "./node_modules/date-fns/is_date/index.js":
  15322. /***/ (function(module, exports) {
  15323. /**
  15324. * @category Common Helpers
  15325. * @summary Is the given argument an instance of Date?
  15326. *
  15327. * @description
  15328. * Is the given argument an instance of Date?
  15329. *
  15330. * @param {*} argument - the argument to check
  15331. * @returns {Boolean} the given argument is an instance of Date
  15332. *
  15333. * @example
  15334. * // Is 'mayonnaise' a Date?
  15335. * var result = isDate('mayonnaise')
  15336. * //=> false
  15337. */
  15338. function isDate (argument) {
  15339. return argument instanceof Date
  15340. }
  15341. module.exports = isDate
  15342. /***/ }),
  15343. /***/ "./node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js":
  15344. /***/ (function(module, exports) {
  15345. var commonFormatterKeys = [
  15346. 'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd',
  15347. 'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG',
  15348. 'H', 'HH', 'h', 'hh', 'm', 'mm',
  15349. 's', 'ss', 'S', 'SS', 'SSS',
  15350. 'Z', 'ZZ', 'X', 'x'
  15351. ]
  15352. function buildFormattingTokensRegExp (formatters) {
  15353. var formatterKeys = []
  15354. for (var key in formatters) {
  15355. if (formatters.hasOwnProperty(key)) {
  15356. formatterKeys.push(key)
  15357. }
  15358. }
  15359. var formattingTokens = commonFormatterKeys
  15360. .concat(formatterKeys)
  15361. .sort()
  15362. .reverse()
  15363. var formattingTokensRegExp = new RegExp(
  15364. '(\\[[^\\[]*\\])|(\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g'
  15365. )
  15366. return formattingTokensRegExp
  15367. }
  15368. module.exports = buildFormattingTokensRegExp
  15369. /***/ }),
  15370. /***/ "./node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js":
  15371. /***/ (function(module, exports) {
  15372. function buildDistanceInWordsLocale () {
  15373. var distanceInWordsLocale = {
  15374. lessThanXSeconds: {
  15375. one: 'less than a second',
  15376. other: 'less than {{count}} seconds'
  15377. },
  15378. xSeconds: {
  15379. one: '1 second',
  15380. other: '{{count}} seconds'
  15381. },
  15382. halfAMinute: 'half a minute',
  15383. lessThanXMinutes: {
  15384. one: 'less than a minute',
  15385. other: 'less than {{count}} minutes'
  15386. },
  15387. xMinutes: {
  15388. one: '1 minute',
  15389. other: '{{count}} minutes'
  15390. },
  15391. aboutXHours: {
  15392. one: 'about 1 hour',
  15393. other: 'about {{count}} hours'
  15394. },
  15395. xHours: {
  15396. one: '1 hour',
  15397. other: '{{count}} hours'
  15398. },
  15399. xDays: {
  15400. one: '1 day',
  15401. other: '{{count}} days'
  15402. },
  15403. aboutXMonths: {
  15404. one: 'about 1 month',
  15405. other: 'about {{count}} months'
  15406. },
  15407. xMonths: {
  15408. one: '1 month',
  15409. other: '{{count}} months'
  15410. },
  15411. aboutXYears: {
  15412. one: 'about 1 year',
  15413. other: 'about {{count}} years'
  15414. },
  15415. xYears: {
  15416. one: '1 year',
  15417. other: '{{count}} years'
  15418. },
  15419. overXYears: {
  15420. one: 'over 1 year',
  15421. other: 'over {{count}} years'
  15422. },
  15423. almostXYears: {
  15424. one: 'almost 1 year',
  15425. other: 'almost {{count}} years'
  15426. }
  15427. }
  15428. function localize (token, count, options) {
  15429. options = options || {}
  15430. var result
  15431. if (typeof distanceInWordsLocale[token] === 'string') {
  15432. result = distanceInWordsLocale[token]
  15433. } else if (count === 1) {
  15434. result = distanceInWordsLocale[token].one
  15435. } else {
  15436. result = distanceInWordsLocale[token].other.replace('{{count}}', count)
  15437. }
  15438. if (options.addSuffix) {
  15439. if (options.comparison > 0) {
  15440. return 'in ' + result
  15441. } else {
  15442. return result + ' ago'
  15443. }
  15444. }
  15445. return result
  15446. }
  15447. return {
  15448. localize: localize
  15449. }
  15450. }
  15451. module.exports = buildDistanceInWordsLocale
  15452. /***/ }),
  15453. /***/ "./node_modules/date-fns/locale/en/build_format_locale/index.js":
  15454. /***/ (function(module, exports, __webpack_require__) {
  15455. var buildFormattingTokensRegExp = __webpack_require__("./node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js")
  15456. function buildFormatLocale () {
  15457. // Note: in English, the names of days of the week and months are capitalized.
  15458. // If you are making a new locale based on this one, check if the same is true for the language you're working on.
  15459. // Generally, formatted dates should look like they are in the middle of a sentence,
  15460. // e.g. in Spanish language the weekdays and months should be in the lowercase.
  15461. var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  15462. var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
  15463. var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']
  15464. var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  15465. var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
  15466. var meridiemUppercase = ['AM', 'PM']
  15467. var meridiemLowercase = ['am', 'pm']
  15468. var meridiemFull = ['a.m.', 'p.m.']
  15469. var formatters = {
  15470. // Month: Jan, Feb, ..., Dec
  15471. 'MMM': function (date) {
  15472. return months3char[date.getMonth()]
  15473. },
  15474. // Month: January, February, ..., December
  15475. 'MMMM': function (date) {
  15476. return monthsFull[date.getMonth()]
  15477. },
  15478. // Day of week: Su, Mo, ..., Sa
  15479. 'dd': function (date) {
  15480. return weekdays2char[date.getDay()]
  15481. },
  15482. // Day of week: Sun, Mon, ..., Sat
  15483. 'ddd': function (date) {
  15484. return weekdays3char[date.getDay()]
  15485. },
  15486. // Day of week: Sunday, Monday, ..., Saturday
  15487. 'dddd': function (date) {
  15488. return weekdaysFull[date.getDay()]
  15489. },
  15490. // AM, PM
  15491. 'A': function (date) {
  15492. return (date.getHours() / 12) >= 1 ? meridiemUppercase[1] : meridiemUppercase[0]
  15493. },
  15494. // am, pm
  15495. 'a': function (date) {
  15496. return (date.getHours() / 12) >= 1 ? meridiemLowercase[1] : meridiemLowercase[0]
  15497. },
  15498. // a.m., p.m.
  15499. 'aa': function (date) {
  15500. return (date.getHours() / 12) >= 1 ? meridiemFull[1] : meridiemFull[0]
  15501. }
  15502. }
  15503. // Generate ordinal version of formatters: M -> Mo, D -> Do, etc.
  15504. var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W']
  15505. ordinalFormatters.forEach(function (formatterToken) {
  15506. formatters[formatterToken + 'o'] = function (date, formatters) {
  15507. return ordinal(formatters[formatterToken](date))
  15508. }
  15509. })
  15510. return {
  15511. formatters: formatters,
  15512. formattingTokensRegExp: buildFormattingTokensRegExp(formatters)
  15513. }
  15514. }
  15515. function ordinal (number) {
  15516. var rem100 = number % 100
  15517. if (rem100 > 20 || rem100 < 10) {
  15518. switch (rem100 % 10) {
  15519. case 1:
  15520. return number + 'st'
  15521. case 2:
  15522. return number + 'nd'
  15523. case 3:
  15524. return number + 'rd'
  15525. }
  15526. }
  15527. return number + 'th'
  15528. }
  15529. module.exports = buildFormatLocale
  15530. /***/ }),
  15531. /***/ "./node_modules/date-fns/locale/en/index.js":
  15532. /***/ (function(module, exports, __webpack_require__) {
  15533. var buildDistanceInWordsLocale = __webpack_require__("./node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js")
  15534. var buildFormatLocale = __webpack_require__("./node_modules/date-fns/locale/en/build_format_locale/index.js")
  15535. /**
  15536. * @category Locales
  15537. * @summary English locale.
  15538. */
  15539. module.exports = {
  15540. distanceInWords: buildDistanceInWordsLocale(),
  15541. format: buildFormatLocale()
  15542. }
  15543. /***/ }),
  15544. /***/ "./node_modules/date-fns/parse/index.js":
  15545. /***/ (function(module, exports, __webpack_require__) {
  15546. var isDate = __webpack_require__("./node_modules/date-fns/is_date/index.js")
  15547. var MILLISECONDS_IN_HOUR = 3600000
  15548. var MILLISECONDS_IN_MINUTE = 60000
  15549. var DEFAULT_ADDITIONAL_DIGITS = 2
  15550. var parseTokenDateTimeDelimeter = /[T ]/
  15551. var parseTokenPlainTime = /:/
  15552. // year tokens
  15553. var parseTokenYY = /^(\d{2})$/
  15554. var parseTokensYYY = [
  15555. /^([+-]\d{2})$/, // 0 additional digits
  15556. /^([+-]\d{3})$/, // 1 additional digit
  15557. /^([+-]\d{4})$/ // 2 additional digits
  15558. ]
  15559. var parseTokenYYYY = /^(\d{4})/
  15560. var parseTokensYYYYY = [
  15561. /^([+-]\d{4})/, // 0 additional digits
  15562. /^([+-]\d{5})/, // 1 additional digit
  15563. /^([+-]\d{6})/ // 2 additional digits
  15564. ]
  15565. // date tokens
  15566. var parseTokenMM = /^-(\d{2})$/
  15567. var parseTokenDDD = /^-?(\d{3})$/
  15568. var parseTokenMMDD = /^-?(\d{2})-?(\d{2})$/
  15569. var parseTokenWww = /^-?W(\d{2})$/
  15570. var parseTokenWwwD = /^-?W(\d{2})-?(\d{1})$/
  15571. // time tokens
  15572. var parseTokenHH = /^(\d{2}([.,]\d*)?)$/
  15573. var parseTokenHHMM = /^(\d{2}):?(\d{2}([.,]\d*)?)$/
  15574. var parseTokenHHMMSS = /^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/
  15575. // timezone tokens
  15576. var parseTokenTimezone = /([Z+-].*)$/
  15577. var parseTokenTimezoneZ = /^(Z)$/
  15578. var parseTokenTimezoneHH = /^([+-])(\d{2})$/
  15579. var parseTokenTimezoneHHMM = /^([+-])(\d{2}):?(\d{2})$/
  15580. /**
  15581. * @category Common Helpers
  15582. * @summary Convert the given argument to an instance of Date.
  15583. *
  15584. * @description
  15585. * Convert the given argument to an instance of Date.
  15586. *
  15587. * If the argument is an instance of Date, the function returns its clone.
  15588. *
  15589. * If the argument is a number, it is treated as a timestamp.
  15590. *
  15591. * If an argument is a string, the function tries to parse it.
  15592. * Function accepts complete ISO 8601 formats as well as partial implementations.
  15593. * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601
  15594. *
  15595. * If all above fails, the function passes the given argument to Date constructor.
  15596. *
  15597. * @param {Date|String|Number} argument - the value to convert
  15598. * @param {Object} [options] - the object with options
  15599. * @param {0 | 1 | 2} [options.additionalDigits=2] - the additional number of digits in the extended year format
  15600. * @returns {Date} the parsed date in the local time zone
  15601. *
  15602. * @example
  15603. * // Convert string '2014-02-11T11:30:30' to date:
  15604. * var result = parse('2014-02-11T11:30:30')
  15605. * //=> Tue Feb 11 2014 11:30:30
  15606. *
  15607. * @example
  15608. * // Parse string '+02014101',
  15609. * // if the additional number of digits in the extended year format is 1:
  15610. * var result = parse('+02014101', {additionalDigits: 1})
  15611. * //=> Fri Apr 11 2014 00:00:00
  15612. */
  15613. function parse (argument, dirtyOptions) {
  15614. if (isDate(argument)) {
  15615. // Prevent the date to lose the milliseconds when passed to new Date() in IE10
  15616. return new Date(argument.getTime())
  15617. } else if (typeof argument !== 'string') {
  15618. return new Date(argument)
  15619. }
  15620. var options = dirtyOptions || {}
  15621. var additionalDigits = options.additionalDigits
  15622. if (additionalDigits == null) {
  15623. additionalDigits = DEFAULT_ADDITIONAL_DIGITS
  15624. } else {
  15625. additionalDigits = Number(additionalDigits)
  15626. }
  15627. var dateStrings = splitDateString(argument)
  15628. var parseYearResult = parseYear(dateStrings.date, additionalDigits)
  15629. var year = parseYearResult.year
  15630. var restDateString = parseYearResult.restDateString
  15631. var date = parseDate(restDateString, year)
  15632. if (date) {
  15633. var timestamp = date.getTime()
  15634. var time = 0
  15635. var offset
  15636. if (dateStrings.time) {
  15637. time = parseTime(dateStrings.time)
  15638. }
  15639. if (dateStrings.timezone) {
  15640. offset = parseTimezone(dateStrings.timezone)
  15641. } else {
  15642. // get offset accurate to hour in timezones that change offset
  15643. offset = new Date(timestamp + time).getTimezoneOffset()
  15644. offset = new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE).getTimezoneOffset()
  15645. }
  15646. return new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE)
  15647. } else {
  15648. return new Date(argument)
  15649. }
  15650. }
  15651. function splitDateString (dateString) {
  15652. var dateStrings = {}
  15653. var array = dateString.split(parseTokenDateTimeDelimeter)
  15654. var timeString
  15655. if (parseTokenPlainTime.test(array[0])) {
  15656. dateStrings.date = null
  15657. timeString = array[0]
  15658. } else {
  15659. dateStrings.date = array[0]
  15660. timeString = array[1]
  15661. }
  15662. if (timeString) {
  15663. var token = parseTokenTimezone.exec(timeString)
  15664. if (token) {
  15665. dateStrings.time = timeString.replace(token[1], '')
  15666. dateStrings.timezone = token[1]
  15667. } else {
  15668. dateStrings.time = timeString
  15669. }
  15670. }
  15671. return dateStrings
  15672. }
  15673. function parseYear (dateString, additionalDigits) {
  15674. var parseTokenYYY = parseTokensYYY[additionalDigits]
  15675. var parseTokenYYYYY = parseTokensYYYYY[additionalDigits]
  15676. var token
  15677. // YYYY or ±YYYYY
  15678. token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString)
  15679. if (token) {
  15680. var yearString = token[1]
  15681. return {
  15682. year: parseInt(yearString, 10),
  15683. restDateString: dateString.slice(yearString.length)
  15684. }
  15685. }
  15686. // YY or ±YYY
  15687. token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString)
  15688. if (token) {
  15689. var centuryString = token[1]
  15690. return {
  15691. year: parseInt(centuryString, 10) * 100,
  15692. restDateString: dateString.slice(centuryString.length)
  15693. }
  15694. }
  15695. // Invalid ISO-formatted year
  15696. return {
  15697. year: null
  15698. }
  15699. }
  15700. function parseDate (dateString, year) {
  15701. // Invalid ISO-formatted year
  15702. if (year === null) {
  15703. return null
  15704. }
  15705. var token
  15706. var date
  15707. var month
  15708. var week
  15709. // YYYY
  15710. if (dateString.length === 0) {
  15711. date = new Date(0)
  15712. date.setUTCFullYear(year)
  15713. return date
  15714. }
  15715. // YYYY-MM
  15716. token = parseTokenMM.exec(dateString)
  15717. if (token) {
  15718. date = new Date(0)
  15719. month = parseInt(token[1], 10) - 1
  15720. date.setUTCFullYear(year, month)
  15721. return date
  15722. }
  15723. // YYYY-DDD or YYYYDDD
  15724. token = parseTokenDDD.exec(dateString)
  15725. if (token) {
  15726. date = new Date(0)
  15727. var dayOfYear = parseInt(token[1], 10)
  15728. date.setUTCFullYear(year, 0, dayOfYear)
  15729. return date
  15730. }
  15731. // YYYY-MM-DD or YYYYMMDD
  15732. token = parseTokenMMDD.exec(dateString)
  15733. if (token) {
  15734. date = new Date(0)
  15735. month = parseInt(token[1], 10) - 1
  15736. var day = parseInt(token[2], 10)
  15737. date.setUTCFullYear(year, month, day)
  15738. return date
  15739. }
  15740. // YYYY-Www or YYYYWww
  15741. token = parseTokenWww.exec(dateString)
  15742. if (token) {
  15743. week = parseInt(token[1], 10) - 1
  15744. return dayOfISOYear(year, week)
  15745. }
  15746. // YYYY-Www-D or YYYYWwwD
  15747. token = parseTokenWwwD.exec(dateString)
  15748. if (token) {
  15749. week = parseInt(token[1], 10) - 1
  15750. var dayOfWeek = parseInt(token[2], 10) - 1
  15751. return dayOfISOYear(year, week, dayOfWeek)
  15752. }
  15753. // Invalid ISO-formatted date
  15754. return null
  15755. }
  15756. function parseTime (timeString) {
  15757. var token
  15758. var hours
  15759. var minutes
  15760. // hh
  15761. token = parseTokenHH.exec(timeString)
  15762. if (token) {
  15763. hours = parseFloat(token[1].replace(',', '.'))
  15764. return (hours % 24) * MILLISECONDS_IN_HOUR
  15765. }
  15766. // hh:mm or hhmm
  15767. token = parseTokenHHMM.exec(timeString)
  15768. if (token) {
  15769. hours = parseInt(token[1], 10)
  15770. minutes = parseFloat(token[2].replace(',', '.'))
  15771. return (hours % 24) * MILLISECONDS_IN_HOUR +
  15772. minutes * MILLISECONDS_IN_MINUTE
  15773. }
  15774. // hh:mm:ss or hhmmss
  15775. token = parseTokenHHMMSS.exec(timeString)
  15776. if (token) {
  15777. hours = parseInt(token[1], 10)
  15778. minutes = parseInt(token[2], 10)
  15779. var seconds = parseFloat(token[3].replace(',', '.'))
  15780. return (hours % 24) * MILLISECONDS_IN_HOUR +
  15781. minutes * MILLISECONDS_IN_MINUTE +
  15782. seconds * 1000
  15783. }
  15784. // Invalid ISO-formatted time
  15785. return null
  15786. }
  15787. function parseTimezone (timezoneString) {
  15788. var token
  15789. var absoluteOffset
  15790. // Z
  15791. token = parseTokenTimezoneZ.exec(timezoneString)
  15792. if (token) {
  15793. return 0
  15794. }
  15795. // ±hh
  15796. token = parseTokenTimezoneHH.exec(timezoneString)
  15797. if (token) {
  15798. absoluteOffset = parseInt(token[2], 10) * 60
  15799. return (token[1] === '+') ? -absoluteOffset : absoluteOffset
  15800. }
  15801. // ±hh:mm or ±hhmm
  15802. token = parseTokenTimezoneHHMM.exec(timezoneString)
  15803. if (token) {
  15804. absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10)
  15805. return (token[1] === '+') ? -absoluteOffset : absoluteOffset
  15806. }
  15807. return 0
  15808. }
  15809. function dayOfISOYear (isoYear, week, day) {
  15810. week = week || 0
  15811. day = day || 0
  15812. var date = new Date(0)
  15813. date.setUTCFullYear(isoYear, 0, 4)
  15814. var fourthOfJanuaryDay = date.getUTCDay() || 7
  15815. var diff = week * 7 + day + 1 - fourthOfJanuaryDay
  15816. date.setUTCDate(date.getUTCDate() + diff)
  15817. return date
  15818. }
  15819. module.exports = parse
  15820. /***/ }),
  15821. /***/ "./node_modules/desandro-matches-selector/matches-selector.js":
  15822. /***/ (function(module, exports, __webpack_require__) {
  15823. var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
  15824. * matchesSelector v2.0.2
  15825. * matchesSelector( element, '.selector' )
  15826. * MIT license
  15827. */
  15828. /*jshint browser: true, strict: true, undef: true, unused: true */
  15829. ( function( window, factory ) {
  15830. /*global define: false, module: false */
  15831. 'use strict';
  15832. // universal module definition
  15833. if ( true ) {
  15834. // AMD
  15835. !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
  15836. __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
  15837. (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
  15838. __WEBPACK_AMD_DEFINE_FACTORY__),
  15839. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  15840. } else if ( typeof module == 'object' && module.exports ) {
  15841. // CommonJS
  15842. module.exports = factory();
  15843. } else {
  15844. // browser global
  15845. window.matchesSelector = factory();
  15846. }
  15847. }( window, function factory() {
  15848. 'use strict';
  15849. var matchesMethod = ( function() {
  15850. var ElemProto = window.Element.prototype;
  15851. // check for the standard method name first
  15852. if ( ElemProto.matches ) {
  15853. return 'matches';
  15854. }
  15855. // check un-prefixed
  15856. if ( ElemProto.matchesSelector ) {
  15857. return 'matchesSelector';
  15858. }
  15859. // check vendor prefixes
  15860. var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];
  15861. for ( var i=0; i < prefixes.length; i++ ) {
  15862. var prefix = prefixes[i];
  15863. var method = prefix + 'MatchesSelector';
  15864. if ( ElemProto[ method ] ) {
  15865. return method;
  15866. }
  15867. }
  15868. })();
  15869. return function matchesSelector( elem, selector ) {
  15870. return elem[ matchesMethod ]( selector );
  15871. };
  15872. }));
  15873. /***/ }),
  15874. /***/ "./node_modules/ev-emitter/ev-emitter.js":
  15875. /***/ (function(module, exports, __webpack_require__) {
  15876. var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
  15877. * EvEmitter v1.1.0
  15878. * Lil' event emitter
  15879. * MIT License
  15880. */
  15881. /* jshint unused: true, undef: true, strict: true */
  15882. ( function( global, factory ) {
  15883. // universal module definition
  15884. /* jshint strict: false */ /* globals define, module, window */
  15885. if ( true ) {
  15886. // AMD - RequireJS
  15887. !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
  15888. __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
  15889. (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
  15890. __WEBPACK_AMD_DEFINE_FACTORY__),
  15891. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  15892. } else if ( typeof module == 'object' && module.exports ) {
  15893. // CommonJS - Browserify, Webpack
  15894. module.exports = factory();
  15895. } else {
  15896. // Browser globals
  15897. global.EvEmitter = factory();
  15898. }
  15899. }( typeof window != 'undefined' ? window : this, function() {
  15900. "use strict";
  15901. function EvEmitter() {}
  15902. var proto = EvEmitter.prototype;
  15903. proto.on = function( eventName, listener ) {
  15904. if ( !eventName || !listener ) {
  15905. return;
  15906. }
  15907. // set events hash
  15908. var events = this._events = this._events || {};
  15909. // set listeners array
  15910. var listeners = events[ eventName ] = events[ eventName ] || [];
  15911. // only add once
  15912. if ( listeners.indexOf( listener ) == -1 ) {
  15913. listeners.push( listener );
  15914. }
  15915. return this;
  15916. };
  15917. proto.once = function( eventName, listener ) {
  15918. if ( !eventName || !listener ) {
  15919. return;
  15920. }
  15921. // add event
  15922. this.on( eventName, listener );
  15923. // set once flag
  15924. // set onceEvents hash
  15925. var onceEvents = this._onceEvents = this._onceEvents || {};
  15926. // set onceListeners object
  15927. var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
  15928. // set flag
  15929. onceListeners[ listener ] = true;
  15930. return this;
  15931. };
  15932. proto.off = function( eventName, listener ) {
  15933. var listeners = this._events && this._events[ eventName ];
  15934. if ( !listeners || !listeners.length ) {
  15935. return;
  15936. }
  15937. var index = listeners.indexOf( listener );
  15938. if ( index != -1 ) {
  15939. listeners.splice( index, 1 );
  15940. }
  15941. return this;
  15942. };
  15943. proto.emitEvent = function( eventName, args ) {
  15944. var listeners = this._events && this._events[ eventName ];
  15945. if ( !listeners || !listeners.length ) {
  15946. return;
  15947. }
  15948. // copy over to avoid interference if .off() in listener
  15949. listeners = listeners.slice(0);
  15950. args = args || [];
  15951. // once stuff
  15952. var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
  15953. for ( var i=0; i < listeners.length; i++ ) {
  15954. var listener = listeners[i]
  15955. var isOnce = onceListeners && onceListeners[ listener ];
  15956. if ( isOnce ) {
  15957. // remove listener
  15958. // remove before trigger to prevent recursion
  15959. this.off( eventName, listener );
  15960. // unset once flag
  15961. delete onceListeners[ listener ];
  15962. }
  15963. // trigger listener
  15964. listener.apply( this, args );
  15965. }
  15966. return this;
  15967. };
  15968. proto.allOff = function() {
  15969. delete this._events;
  15970. delete this._onceEvents;
  15971. };
  15972. return EvEmitter;
  15973. }));
  15974. /***/ }),
  15975. /***/ "./node_modules/filesize/lib/filesize.js":
  15976. /***/ (function(module, exports, __webpack_require__) {
  15977. "use strict";
  15978. /* WEBPACK VAR INJECTION */(function(global) {
  15979. /**
  15980. * filesize
  15981. *
  15982. * @copyright 2018 Jason Mulligan <jason.mulligan@avoidwork.com>
  15983. * @license BSD-3-Clause
  15984. * @version 3.6.1
  15985. */
  15986. (function (global) {
  15987. var b = /^(b|B)$/,
  15988. symbol = {
  15989. iec: {
  15990. bits: ["b", "Kib", "Mib", "Gib", "Tib", "Pib", "Eib", "Zib", "Yib"],
  15991. bytes: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"]
  15992. },
  15993. jedec: {
  15994. bits: ["b", "Kb", "Mb", "Gb", "Tb", "Pb", "Eb", "Zb", "Yb"],
  15995. bytes: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
  15996. }
  15997. },
  15998. fullform = {
  15999. iec: ["", "kibi", "mebi", "gibi", "tebi", "pebi", "exbi", "zebi", "yobi"],
  16000. jedec: ["", "kilo", "mega", "giga", "tera", "peta", "exa", "zetta", "yotta"]
  16001. };
  16002. /**
  16003. * filesize
  16004. *
  16005. * @method filesize
  16006. * @param {Mixed} arg String, Int or Float to transform
  16007. * @param {Object} descriptor [Optional] Flags
  16008. * @return {String} Readable file size String
  16009. */
  16010. function filesize(arg) {
  16011. var descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  16012. var result = [],
  16013. val = 0,
  16014. e = void 0,
  16015. base = void 0,
  16016. bits = void 0,
  16017. ceil = void 0,
  16018. full = void 0,
  16019. fullforms = void 0,
  16020. neg = void 0,
  16021. num = void 0,
  16022. output = void 0,
  16023. round = void 0,
  16024. unix = void 0,
  16025. separator = void 0,
  16026. spacer = void 0,
  16027. standard = void 0,
  16028. symbols = void 0;
  16029. if (isNaN(arg)) {
  16030. throw new Error("Invalid arguments");
  16031. }
  16032. bits = descriptor.bits === true;
  16033. unix = descriptor.unix === true;
  16034. base = descriptor.base || 2;
  16035. round = descriptor.round !== void 0 ? descriptor.round : unix ? 1 : 2;
  16036. separator = descriptor.separator !== void 0 ? descriptor.separator || "" : "";
  16037. spacer = descriptor.spacer !== void 0 ? descriptor.spacer : unix ? "" : " ";
  16038. symbols = descriptor.symbols || descriptor.suffixes || {};
  16039. standard = base === 2 ? descriptor.standard || "jedec" : "jedec";
  16040. output = descriptor.output || "string";
  16041. full = descriptor.fullform === true;
  16042. fullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : [];
  16043. e = descriptor.exponent !== void 0 ? descriptor.exponent : -1;
  16044. num = Number(arg);
  16045. neg = num < 0;
  16046. ceil = base > 2 ? 1000 : 1024;
  16047. // Flipping a negative number to determine the size
  16048. if (neg) {
  16049. num = -num;
  16050. }
  16051. // Determining the exponent
  16052. if (e === -1 || isNaN(e)) {
  16053. e = Math.floor(Math.log(num) / Math.log(ceil));
  16054. if (e < 0) {
  16055. e = 0;
  16056. }
  16057. }
  16058. // Exceeding supported length, time to reduce & multiply
  16059. if (e > 8) {
  16060. e = 8;
  16061. }
  16062. // Zero is now a special case because bytes divide by 1
  16063. if (num === 0) {
  16064. result[0] = 0;
  16065. result[1] = unix ? "" : symbol[standard][bits ? "bits" : "bytes"][e];
  16066. } else {
  16067. val = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));
  16068. if (bits) {
  16069. val = val * 8;
  16070. if (val >= ceil && e < 8) {
  16071. val = val / ceil;
  16072. e++;
  16073. }
  16074. }
  16075. result[0] = Number(val.toFixed(e > 0 ? round : 0));
  16076. result[1] = base === 10 && e === 1 ? bits ? "kb" : "kB" : symbol[standard][bits ? "bits" : "bytes"][e];
  16077. if (unix) {
  16078. result[1] = standard === "jedec" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, "") : result[1];
  16079. if (b.test(result[1])) {
  16080. result[0] = Math.floor(result[0]);
  16081. result[1] = "";
  16082. }
  16083. }
  16084. }
  16085. // Decorating a 'diff'
  16086. if (neg) {
  16087. result[0] = -result[0];
  16088. }
  16089. // Applying custom symbol
  16090. result[1] = symbols[result[1]] || result[1];
  16091. // Returning Array, Object, or String (default)
  16092. if (output === "array") {
  16093. return result;
  16094. }
  16095. if (output === "exponent") {
  16096. return e;
  16097. }
  16098. if (output === "object") {
  16099. return { value: result[0], suffix: result[1], symbol: result[1] };
  16100. }
  16101. if (full) {
  16102. result[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? "bit" : "byte") + (result[0] === 1 ? "" : "s");
  16103. }
  16104. if (separator.length > 0) {
  16105. result[0] = result[0].toString().replace(".", separator);
  16106. }
  16107. return result.join(spacer);
  16108. }
  16109. // Partial application for functional programming
  16110. filesize.partial = function (opt) {
  16111. return function (arg) {
  16112. return filesize(arg, opt);
  16113. };
  16114. };
  16115. // CommonJS, AMD, script tag
  16116. if (true) {
  16117. module.exports = filesize;
  16118. } else if (typeof define === "function" && define.amd) {
  16119. define(function () {
  16120. return filesize;
  16121. });
  16122. } else {
  16123. global.filesize = filesize;
  16124. }
  16125. })(typeof window !== "undefined" ? window : global);
  16126. /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js")))
  16127. /***/ }),
  16128. /***/ "./node_modules/fizzy-ui-utils/utils.js":
  16129. /***/ (function(module, exports, __webpack_require__) {
  16130. var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
  16131. * Fizzy UI utils v2.0.7
  16132. * MIT license
  16133. */
  16134. /*jshint browser: true, undef: true, unused: true, strict: true */
  16135. ( function( window, factory ) {
  16136. // universal module definition
  16137. /*jshint strict: false */ /*globals define, module, require */
  16138. if ( true ) {
  16139. // AMD
  16140. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
  16141. __webpack_require__("./node_modules/desandro-matches-selector/matches-selector.js")
  16142. ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( matchesSelector ) {
  16143. return factory( window, matchesSelector );
  16144. }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
  16145. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  16146. } else if ( typeof module == 'object' && module.exports ) {
  16147. // CommonJS
  16148. module.exports = factory(
  16149. window,
  16150. require('desandro-matches-selector')
  16151. );
  16152. } else {
  16153. // browser global
  16154. window.fizzyUIUtils = factory(
  16155. window,
  16156. window.matchesSelector
  16157. );
  16158. }
  16159. }( window, function factory( window, matchesSelector ) {
  16160. 'use strict';
  16161. var utils = {};
  16162. // ----- extend ----- //
  16163. // extends objects
  16164. utils.extend = function( a, b ) {
  16165. for ( var prop in b ) {
  16166. a[ prop ] = b[ prop ];
  16167. }
  16168. return a;
  16169. };
  16170. // ----- modulo ----- //
  16171. utils.modulo = function( num, div ) {
  16172. return ( ( num % div ) + div ) % div;
  16173. };
  16174. // ----- makeArray ----- //
  16175. var arraySlice = Array.prototype.slice;
  16176. // turn element or nodeList into an array
  16177. utils.makeArray = function( obj ) {
  16178. if ( Array.isArray( obj ) ) {
  16179. // use object if already an array
  16180. return obj;
  16181. }
  16182. // return empty array if undefined or null. #6
  16183. if ( obj === null || obj === undefined ) {
  16184. return [];
  16185. }
  16186. var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
  16187. if ( isArrayLike ) {
  16188. // convert nodeList to array
  16189. return arraySlice.call( obj );
  16190. }
  16191. // array of single index
  16192. return [ obj ];
  16193. };
  16194. // ----- removeFrom ----- //
  16195. utils.removeFrom = function( ary, obj ) {
  16196. var index = ary.indexOf( obj );
  16197. if ( index != -1 ) {
  16198. ary.splice( index, 1 );
  16199. }
  16200. };
  16201. // ----- getParent ----- //
  16202. utils.getParent = function( elem, selector ) {
  16203. while ( elem.parentNode && elem != document.body ) {
  16204. elem = elem.parentNode;
  16205. if ( matchesSelector( elem, selector ) ) {
  16206. return elem;
  16207. }
  16208. }
  16209. };
  16210. // ----- getQueryElement ----- //
  16211. // use element as selector string
  16212. utils.getQueryElement = function( elem ) {
  16213. if ( typeof elem == 'string' ) {
  16214. return document.querySelector( elem );
  16215. }
  16216. return elem;
  16217. };
  16218. // ----- handleEvent ----- //
  16219. // enable .ontype to trigger from .addEventListener( elem, 'type' )
  16220. utils.handleEvent = function( event ) {
  16221. var method = 'on' + event.type;
  16222. if ( this[ method ] ) {
  16223. this[ method ]( event );
  16224. }
  16225. };
  16226. // ----- filterFindElements ----- //
  16227. utils.filterFindElements = function( elems, selector ) {
  16228. // make array of elems
  16229. elems = utils.makeArray( elems );
  16230. var ffElems = [];
  16231. elems.forEach( function( elem ) {
  16232. // check that elem is an actual element
  16233. if ( !( elem instanceof HTMLElement ) ) {
  16234. return;
  16235. }
  16236. // add elem if no selector
  16237. if ( !selector ) {
  16238. ffElems.push( elem );
  16239. return;
  16240. }
  16241. // filter & find items if we have a selector
  16242. // filter
  16243. if ( matchesSelector( elem, selector ) ) {
  16244. ffElems.push( elem );
  16245. }
  16246. // find children
  16247. var childElems = elem.querySelectorAll( selector );
  16248. // concat childElems to filterFound array
  16249. for ( var i=0; i < childElems.length; i++ ) {
  16250. ffElems.push( childElems[i] );
  16251. }
  16252. });
  16253. return ffElems;
  16254. };
  16255. // ----- debounceMethod ----- //
  16256. utils.debounceMethod = function( _class, methodName, threshold ) {
  16257. threshold = threshold || 100;
  16258. // original method
  16259. var method = _class.prototype[ methodName ];
  16260. var timeoutName = methodName + 'Timeout';
  16261. _class.prototype[ methodName ] = function() {
  16262. var timeout = this[ timeoutName ];
  16263. clearTimeout( timeout );
  16264. var args = arguments;
  16265. var _this = this;
  16266. this[ timeoutName ] = setTimeout( function() {
  16267. method.apply( _this, args );
  16268. delete _this[ timeoutName ];
  16269. }, threshold );
  16270. };
  16271. };
  16272. // ----- docReady ----- //
  16273. utils.docReady = function( callback ) {
  16274. var readyState = document.readyState;
  16275. if ( readyState == 'complete' || readyState == 'interactive' ) {
  16276. // do async to allow for other scripts to run. metafizzy/flickity#441
  16277. setTimeout( callback );
  16278. } else {
  16279. document.addEventListener( 'DOMContentLoaded', callback );
  16280. }
  16281. };
  16282. // ----- htmlInit ----- //
  16283. // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/
  16284. utils.toDashed = function( str ) {
  16285. return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {
  16286. return $1 + '-' + $2;
  16287. }).toLowerCase();
  16288. };
  16289. var console = window.console;
  16290. /**
  16291. * allow user to initialize classes via [data-namespace] or .js-namespace class
  16292. * htmlInit( Widget, 'widgetName' )
  16293. * options are parsed from data-namespace-options
  16294. */
  16295. utils.htmlInit = function( WidgetClass, namespace ) {
  16296. utils.docReady( function() {
  16297. var dashedNamespace = utils.toDashed( namespace );
  16298. var dataAttr = 'data-' + dashedNamespace;
  16299. var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );
  16300. var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );
  16301. var elems = utils.makeArray( dataAttrElems )
  16302. .concat( utils.makeArray( jsDashElems ) );
  16303. var dataOptionsAttr = dataAttr + '-options';
  16304. var jQuery = window.jQuery;
  16305. elems.forEach( function( elem ) {
  16306. var attr = elem.getAttribute( dataAttr ) ||
  16307. elem.getAttribute( dataOptionsAttr );
  16308. var options;
  16309. try {
  16310. options = attr && JSON.parse( attr );
  16311. } catch ( error ) {
  16312. // log error, do not initialize
  16313. if ( console ) {
  16314. console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +
  16315. ': ' + error );
  16316. }
  16317. return;
  16318. }
  16319. // initialize
  16320. var instance = new WidgetClass( elem, options );
  16321. // make available via $().data('namespace')
  16322. if ( jQuery ) {
  16323. jQuery.data( elem, namespace, instance );
  16324. }
  16325. });
  16326. });
  16327. };
  16328. // ----- ----- //
  16329. return utils;
  16330. }));
  16331. /***/ }),
  16332. /***/ "./node_modules/infinite-scroll/js/button.js":
  16333. /***/ (function(module, exports, __webpack_require__) {
  16334. var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// button
  16335. ( function( window, factory ) {
  16336. // universal module definition
  16337. /* globals define, module, require */
  16338. if ( true ) {
  16339. // AMD
  16340. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
  16341. __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
  16342. __webpack_require__("./node_modules/fizzy-ui-utils/utils.js"),
  16343. ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( InfiniteScroll, utils ) {
  16344. return factory( window, InfiniteScroll, utils );
  16345. }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
  16346. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  16347. } else if ( typeof module == 'object' && module.exports ) {
  16348. // CommonJS
  16349. module.exports = factory(
  16350. window,
  16351. require('./core'),
  16352. require('fizzy-ui-utils')
  16353. );
  16354. } else {
  16355. // browser global
  16356. factory(
  16357. window,
  16358. window.InfiniteScroll,
  16359. window.fizzyUIUtils
  16360. );
  16361. }
  16362. }( window, function factory( window, InfiniteScroll, utils ) {
  16363. // InfiniteScroll.defaults.button = null;
  16364. InfiniteScroll.create.button = function() {
  16365. var buttonElem = utils.getQueryElement( this.options.button );
  16366. if ( buttonElem ) {
  16367. this.button = new InfiniteScrollButton( buttonElem, this );
  16368. return;
  16369. }
  16370. };
  16371. InfiniteScroll.destroy.button = function() {
  16372. if ( this.button ) {
  16373. this.button.destroy();
  16374. }
  16375. };
  16376. // -------------------------- InfiniteScrollButton -------------------------- //
  16377. function InfiniteScrollButton( element, infScroll ) {
  16378. this.element = element;
  16379. this.infScroll = infScroll;
  16380. // events
  16381. this.clickHandler = this.onClick.bind( this );
  16382. this.element.addEventListener( 'click', this.clickHandler );
  16383. infScroll.on( 'request', this.disable.bind( this ) );
  16384. infScroll.on( 'load', this.enable.bind( this ) );
  16385. infScroll.on( 'error', this.hide.bind( this ) );
  16386. infScroll.on( 'last', this.hide.bind( this ) );
  16387. }
  16388. InfiniteScrollButton.prototype.onClick = function( event ) {
  16389. event.preventDefault();
  16390. this.infScroll.loadNextPage();
  16391. };
  16392. InfiniteScrollButton.prototype.enable = function() {
  16393. this.element.removeAttribute('disabled');
  16394. };
  16395. InfiniteScrollButton.prototype.disable = function() {
  16396. this.element.disabled = 'disabled';
  16397. };
  16398. InfiniteScrollButton.prototype.hide = function() {
  16399. this.element.style.display = 'none';
  16400. };
  16401. InfiniteScrollButton.prototype.destroy = function() {
  16402. this.element.removeEventListener( 'click', this.clickHandler );
  16403. };
  16404. // -------------------------- -------------------------- //
  16405. InfiniteScroll.Button = InfiniteScrollButton;
  16406. return InfiniteScroll;
  16407. }));
  16408. /***/ }),
  16409. /***/ "./node_modules/infinite-scroll/js/core.js":
  16410. /***/ (function(module, exports, __webpack_require__) {
  16411. var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// core
  16412. ( function( window, factory ) {
  16413. // universal module definition
  16414. /* globals define, module, require */
  16415. if ( true ) {
  16416. // AMD
  16417. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
  16418. __webpack_require__("./node_modules/ev-emitter/ev-emitter.js"),
  16419. __webpack_require__("./node_modules/fizzy-ui-utils/utils.js"),
  16420. ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( EvEmitter, utils) {
  16421. return factory( window, EvEmitter, utils );
  16422. }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
  16423. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  16424. } else if ( typeof module == 'object' && module.exports ) {
  16425. // CommonJS
  16426. module.exports = factory(
  16427. window,
  16428. require('ev-emitter'),
  16429. require('fizzy-ui-utils')
  16430. );
  16431. } else {
  16432. // browser global
  16433. window.InfiniteScroll = factory(
  16434. window,
  16435. window.EvEmitter,
  16436. window.fizzyUIUtils
  16437. );
  16438. }
  16439. }( window, function factory( window, EvEmitter, utils ) {
  16440. var jQuery = window.jQuery;
  16441. // internal store of all InfiniteScroll intances
  16442. var instances = {};
  16443. function InfiniteScroll( element, options ) {
  16444. var queryElem = utils.getQueryElement( element );
  16445. if ( !queryElem ) {
  16446. console.error( 'Bad element for InfiniteScroll: ' + ( queryElem || element ) );
  16447. return;
  16448. }
  16449. element = queryElem;
  16450. // do not initialize twice on same element
  16451. if ( element.infiniteScrollGUID ) {
  16452. var instance = instances[ element.infiniteScrollGUID ];
  16453. instance.option( options );
  16454. return instance;
  16455. }
  16456. this.element = element;
  16457. // options
  16458. this.options = utils.extend( {}, InfiniteScroll.defaults );
  16459. this.option( options );
  16460. // add jQuery
  16461. if ( jQuery ) {
  16462. this.$element = jQuery( this.element );
  16463. }
  16464. this.create();
  16465. }
  16466. // defaults
  16467. InfiniteScroll.defaults = {
  16468. // path: null,
  16469. // hideNav: null,
  16470. // debug: false,
  16471. };
  16472. // create & destroy methods
  16473. InfiniteScroll.create = {};
  16474. InfiniteScroll.destroy = {};
  16475. var proto = InfiniteScroll.prototype;
  16476. // inherit EvEmitter
  16477. utils.extend( proto, EvEmitter.prototype );
  16478. // -------------------------- -------------------------- //
  16479. // globally unique identifiers
  16480. var GUID = 0;
  16481. proto.create = function() {
  16482. // create core
  16483. // add id for InfiniteScroll.data
  16484. var id = this.guid = ++GUID;
  16485. this.element.infiniteScrollGUID = id; // expando
  16486. instances[ id ] = this; // associate via id
  16487. // properties
  16488. this.pageIndex = 1; // default to first page
  16489. this.loadCount = 0;
  16490. this.updateGetPath();
  16491. // bail if getPath not set, or returns falsey #776
  16492. var hasPath = this.getPath && this.getPath();
  16493. if ( !hasPath ) {
  16494. console.error('Disabling InfiniteScroll');
  16495. return;
  16496. }
  16497. this.updateGetAbsolutePath();
  16498. this.log( 'initialized', [ this.element.className ] );
  16499. this.callOnInit();
  16500. // create features
  16501. for ( var method in InfiniteScroll.create ) {
  16502. InfiniteScroll.create[ method ].call( this );
  16503. }
  16504. };
  16505. proto.option = function( opts ) {
  16506. utils.extend( this.options, opts );
  16507. };
  16508. // call onInit option, used for binding events on init
  16509. proto.callOnInit = function() {
  16510. var onInit = this.options.onInit;
  16511. if ( onInit ) {
  16512. onInit.call( this, this );
  16513. }
  16514. };
  16515. // ----- events ----- //
  16516. proto.dispatchEvent = function( type, event, args ) {
  16517. this.log( type, args );
  16518. var emitArgs = event ? [ event ].concat( args ) : args;
  16519. this.emitEvent( type, emitArgs );
  16520. // trigger jQuery event
  16521. if ( !jQuery || !this.$element ) {
  16522. return;
  16523. }
  16524. // namespace jQuery event
  16525. type += '.infiniteScroll';
  16526. var $event = type;
  16527. if ( event ) {
  16528. // create jQuery event
  16529. var jQEvent = jQuery.Event( event );
  16530. jQEvent.type = type;
  16531. $event = jQEvent;
  16532. }
  16533. this.$element.trigger( $event, args );
  16534. };
  16535. var loggers = {
  16536. initialized: function( className ) {
  16537. return 'on ' + className;
  16538. },
  16539. request: function( path ) {
  16540. return 'URL: ' + path;
  16541. },
  16542. load: function( response, path ) {
  16543. return ( response.title || '' ) + '. URL: ' + path;
  16544. },
  16545. error: function( error, path ) {
  16546. return error + '. URL: ' + path;
  16547. },
  16548. append: function( response, path, items ) {
  16549. return items.length + ' items. URL: ' + path;
  16550. },
  16551. last: function( response, path ) {
  16552. return 'URL: ' + path;
  16553. },
  16554. history: function( title, path ) {
  16555. return 'URL: ' + path;
  16556. },
  16557. pageIndex: function( index, origin ) {
  16558. return 'current page determined to be: ' + index + ' from ' + origin;
  16559. },
  16560. };
  16561. // log events
  16562. proto.log = function( type, args ) {
  16563. if ( !this.options.debug ) {
  16564. return;
  16565. }
  16566. var message = '[InfiniteScroll] ' + type;
  16567. var logger = loggers[ type ];
  16568. if ( logger ) {
  16569. message += '. ' + logger.apply( this, args );
  16570. }
  16571. console.log( message );
  16572. };
  16573. // -------------------------- methods used amoung features -------------------------- //
  16574. proto.updateMeasurements = function() {
  16575. this.windowHeight = window.innerHeight;
  16576. var rect = this.element.getBoundingClientRect();
  16577. this.top = rect.top + window.pageYOffset;
  16578. };
  16579. proto.updateScroller = function() {
  16580. var elementScroll = this.options.elementScroll;
  16581. if ( !elementScroll ) {
  16582. // default, use window
  16583. this.scroller = window;
  16584. return;
  16585. }
  16586. // if true, set to element, otherwise use option
  16587. this.scroller = elementScroll === true ? this.element :
  16588. utils.getQueryElement( elementScroll );
  16589. if ( !this.scroller ) {
  16590. throw 'Unable to find elementScroll: ' + elementScroll;
  16591. }
  16592. };
  16593. // -------------------------- page path -------------------------- //
  16594. proto.updateGetPath = function() {
  16595. var optPath = this.options.path;
  16596. if ( !optPath ) {
  16597. console.error( 'InfiniteScroll path option required. Set as: ' + optPath );
  16598. return;
  16599. }
  16600. // function
  16601. var type = typeof optPath;
  16602. if ( type == 'function' ) {
  16603. this.getPath = optPath;
  16604. return;
  16605. }
  16606. // template string: '/pages/{{#}}.html'
  16607. var templateMatch = type == 'string' && optPath.match('{{#}}');
  16608. if ( templateMatch ) {
  16609. this.updateGetPathTemplate( optPath );
  16610. return;
  16611. }
  16612. // selector: '.next-page-selector'
  16613. this.updateGetPathSelector( optPath );
  16614. };
  16615. proto.updateGetPathTemplate = function( optPath ) {
  16616. // set getPath with template string
  16617. this.getPath = function() {
  16618. var nextIndex = this.pageIndex + 1;
  16619. return optPath.replace( '{{#}}', nextIndex );
  16620. }.bind( this );
  16621. // get pageIndex from location
  16622. // convert path option into regex to look for pattern in location
  16623. var regexString = optPath.replace( '{{#}}', '(\\d\\d?\\d?)' );
  16624. var templateRe = new RegExp( regexString );
  16625. var match = location.href.match( templateRe );
  16626. if ( match ) {
  16627. this.pageIndex = parseInt( match[1], 10 );
  16628. this.log( 'pageIndex', [ this.pageIndex, 'template string' ] );
  16629. }
  16630. };
  16631. var pathRegexes = [
  16632. // WordPress & Tumblr - example.com/page/2
  16633. // Jekyll - example.com/page2
  16634. /^(.*?\/?page\/?)(\d\d?\d?)(.*?$)/,
  16635. // Drupal - example.com/?page=1
  16636. /^(.*?\/?\?page=)(\d\d?\d?)(.*?$)/,
  16637. // catch all, last occurence of a number
  16638. /(.*?)(\d\d?\d?)(?!.*\d)(.*?$)/,
  16639. ];
  16640. proto.updateGetPathSelector = function( optPath ) {
  16641. // parse href of link: '.next-page-link'
  16642. var hrefElem = document.querySelector( optPath );
  16643. if ( !hrefElem ) {
  16644. console.error( 'Bad InfiniteScroll path option. Next link not found: ' +
  16645. optPath );
  16646. return;
  16647. }
  16648. var href = hrefElem.getAttribute('href');
  16649. // try matching href to pathRegexes patterns
  16650. var pathParts, regex;
  16651. for ( var i=0; href && i < pathRegexes.length; i++ ) {
  16652. regex = pathRegexes[i];
  16653. var match = href.match( regex );
  16654. if ( match ) {
  16655. pathParts = match.slice(1); // remove first part
  16656. break;
  16657. }
  16658. }
  16659. if ( !pathParts ) {
  16660. console.error( 'InfiniteScroll unable to parse next link href: ' + href );
  16661. return;
  16662. }
  16663. this.isPathSelector = true; // flag for checkLastPage()
  16664. this.getPath = function() {
  16665. var nextIndex = this.pageIndex + 1;
  16666. return pathParts[0] + nextIndex + pathParts[2];
  16667. }.bind( this );
  16668. // get pageIndex from href
  16669. this.pageIndex = parseInt( pathParts[1], 10 ) - 1;
  16670. this.log( 'pageIndex', [ this.pageIndex, 'next link' ] );
  16671. };
  16672. proto.updateGetAbsolutePath = function() {
  16673. var path = this.getPath();
  16674. // path doesn't start with http or /
  16675. var isAbsolute = path.match( /^http/ ) || path.match( /^\// );
  16676. if ( isAbsolute ) {
  16677. this.getAbsolutePath = this.getPath;
  16678. return;
  16679. }
  16680. var pathname = location.pathname;
  16681. // /foo/bar/index.html => /foo/bar
  16682. var directory = pathname.substring( 0, pathname.lastIndexOf('/') );
  16683. this.getAbsolutePath = function() {
  16684. return directory + '/' + this.getPath();
  16685. };
  16686. };
  16687. // -------------------------- nav -------------------------- //
  16688. // hide navigation
  16689. InfiniteScroll.create.hideNav = function() {
  16690. var nav = utils.getQueryElement( this.options.hideNav );
  16691. if ( !nav ) {
  16692. return;
  16693. }
  16694. nav.style.display = 'none';
  16695. this.nav = nav;
  16696. };
  16697. InfiniteScroll.destroy.hideNav = function() {
  16698. if ( this.nav ) {
  16699. this.nav.style.display = '';
  16700. }
  16701. };
  16702. // -------------------------- destroy -------------------------- //
  16703. proto.destroy = function() {
  16704. this.allOff(); // remove all event listeners
  16705. // call destroy methods
  16706. for ( var method in InfiniteScroll.destroy ) {
  16707. InfiniteScroll.destroy[ method ].call( this );
  16708. }
  16709. delete this.element.infiniteScrollGUID;
  16710. delete instances[ this.guid ];
  16711. // remove jQuery data. #807
  16712. if ( jQuery && this.$element ) {
  16713. jQuery.removeData( this.element, 'infiniteScroll' );
  16714. }
  16715. };
  16716. // -------------------------- utilities -------------------------- //
  16717. // https://remysharp.com/2010/07/21/throttling-function-calls
  16718. InfiniteScroll.throttle = function( fn, threshold ) {
  16719. threshold = threshold || 200;
  16720. var last, timeout;
  16721. return function() {
  16722. var now = +new Date();
  16723. var args = arguments;
  16724. var trigger = function() {
  16725. last = now;
  16726. fn.apply( this, args );
  16727. }.bind( this );
  16728. if ( last && now < last + threshold ) {
  16729. // hold on to it
  16730. clearTimeout( timeout );
  16731. timeout = setTimeout( trigger, threshold );
  16732. } else {
  16733. trigger();
  16734. }
  16735. };
  16736. };
  16737. InfiniteScroll.data = function( elem ) {
  16738. elem = utils.getQueryElement( elem );
  16739. var id = elem && elem.infiniteScrollGUID;
  16740. return id && instances[ id ];
  16741. };
  16742. // set internal jQuery, for Webpack + jQuery v3
  16743. InfiniteScroll.setJQuery = function( $ ) {
  16744. jQuery = $;
  16745. };
  16746. // -------------------------- setup -------------------------- //
  16747. utils.htmlInit( InfiniteScroll, 'infinite-scroll' );
  16748. // add noop _init method for jQuery Bridget. #768
  16749. proto._init = function() {};
  16750. if ( jQuery && jQuery.bridget ) {
  16751. jQuery.bridget( 'infiniteScroll', InfiniteScroll );
  16752. }
  16753. // -------------------------- -------------------------- //
  16754. return InfiniteScroll;
  16755. }));
  16756. /***/ }),
  16757. /***/ "./node_modules/infinite-scroll/js/history.js":
  16758. /***/ (function(module, exports, __webpack_require__) {
  16759. var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// history
  16760. ( function( window, factory ) {
  16761. // universal module definition
  16762. /* globals define, module, require */
  16763. if ( true ) {
  16764. // AMD
  16765. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
  16766. __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
  16767. __webpack_require__("./node_modules/fizzy-ui-utils/utils.js"),
  16768. ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( InfiniteScroll, utils ) {
  16769. return factory( window, InfiniteScroll, utils );
  16770. }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
  16771. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  16772. } else if ( typeof module == 'object' && module.exports ) {
  16773. // CommonJS
  16774. module.exports = factory(
  16775. window,
  16776. require('./core'),
  16777. require('fizzy-ui-utils')
  16778. );
  16779. } else {
  16780. // browser global
  16781. factory(
  16782. window,
  16783. window.InfiniteScroll,
  16784. window.fizzyUIUtils
  16785. );
  16786. }
  16787. }( window, function factory( window, InfiniteScroll, utils ) {
  16788. var proto = InfiniteScroll.prototype;
  16789. InfiniteScroll.defaults.history = 'replace';
  16790. // InfiniteScroll.defaults.historyTitle = false;
  16791. var link = document.createElement('a');
  16792. // ----- create/destroy ----- //
  16793. InfiniteScroll.create.history = function() {
  16794. if ( !this.options.history ) {
  16795. return;
  16796. }
  16797. // check for same origin
  16798. link.href = this.getAbsolutePath();
  16799. // MS Edge does not have origin on link https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12236493/
  16800. var linkOrigin = link.origin || link.protocol + '//' + link.host;
  16801. var isSameOrigin = linkOrigin == location.origin;
  16802. if ( !isSameOrigin ) {
  16803. console.error( '[InfiniteScroll] cannot set history with different origin: ' +
  16804. link.origin + ' on ' + location.origin +
  16805. ' . History behavior disabled.' );
  16806. return;
  16807. }
  16808. // two ways to handle changing history
  16809. if ( this.options.append ) {
  16810. this.createHistoryAppend();
  16811. } else {
  16812. this.createHistoryPageLoad();
  16813. }
  16814. };
  16815. proto.createHistoryAppend = function() {
  16816. this.updateMeasurements();
  16817. this.updateScroller();
  16818. // array of scroll positions of appended pages
  16819. this.scrollPages = [
  16820. {
  16821. // first page
  16822. top: 0,
  16823. path: location.href,
  16824. title: document.title,
  16825. }
  16826. ];
  16827. this.scrollPageIndex = 0;
  16828. // events
  16829. this.scrollHistoryHandler = this.onScrollHistory.bind( this );
  16830. this.unloadHandler = this.onUnload.bind( this );
  16831. this.scroller.addEventListener( 'scroll', this.scrollHistoryHandler );
  16832. this.on( 'append', this.onAppendHistory );
  16833. this.bindHistoryAppendEvents( true );
  16834. };
  16835. proto.bindHistoryAppendEvents = function( isBind ) {
  16836. var addRemove = isBind ? 'addEventListener' : 'removeEventListener';
  16837. this.scroller[ addRemove ]( 'scroll', this.scrollHistoryHandler );
  16838. window[ addRemove ]( 'unload', this.unloadHandler );
  16839. };
  16840. proto.createHistoryPageLoad = function() {
  16841. this.on( 'load', this.onPageLoadHistory );
  16842. };
  16843. InfiniteScroll.destroy.history =
  16844. proto.destroyHistory = function() {
  16845. var isHistoryAppend = this.options.history && this.options.append;
  16846. if ( isHistoryAppend ) {
  16847. this.bindHistoryAppendEvents( false );
  16848. }
  16849. };
  16850. // ----- append history ----- //
  16851. proto.onAppendHistory = function( response, path, items ) {
  16852. // do not proceed if no items. #779
  16853. if ( !items || !items.length ) {
  16854. return;
  16855. }
  16856. var firstItem = items[0];
  16857. var elemScrollY = this.getElementScrollY( firstItem );
  16858. // resolve path
  16859. link.href = path;
  16860. // add page data to hash
  16861. this.scrollPages.push({
  16862. top: elemScrollY,
  16863. path: link.href,
  16864. title: response.title,
  16865. });
  16866. };
  16867. proto.getElementScrollY = function( elem ) {
  16868. if ( this.options.elementScroll ) {
  16869. return this.getElementElementScrollY( elem );
  16870. } else {
  16871. return this.getElementWindowScrollY( elem );
  16872. }
  16873. };
  16874. proto.getElementWindowScrollY = function( elem ) {
  16875. var rect = elem.getBoundingClientRect();
  16876. return rect.top + window.pageYOffset;
  16877. };
  16878. // wow, stupid name
  16879. proto.getElementElementScrollY = function( elem ) {
  16880. return elem.offsetTop - this.top;
  16881. };
  16882. proto.onScrollHistory = function() {
  16883. // cycle through positions, find biggest without going over
  16884. var scrollViewY = this.getScrollViewY();
  16885. var pageIndex, page;
  16886. for ( var i=0; i < this.scrollPages.length; i++ ) {
  16887. var scrollPage = this.scrollPages[i];
  16888. if ( scrollPage.top >= scrollViewY ) {
  16889. break;
  16890. }
  16891. pageIndex = i;
  16892. page = scrollPage;
  16893. }
  16894. // set history if changed
  16895. if ( pageIndex != this.scrollPageIndex ) {
  16896. this.scrollPageIndex = pageIndex;
  16897. this.setHistory( page.title, page.path );
  16898. }
  16899. };
  16900. utils.debounceMethod( InfiniteScroll, 'onScrollHistory', 150 );
  16901. proto.getScrollViewY = function() {
  16902. if ( this.options.elementScroll ) {
  16903. return this.scroller.scrollTop + this.scroller.clientHeight/2;
  16904. } else {
  16905. return window.pageYOffset + this.windowHeight/2;
  16906. }
  16907. };
  16908. proto.setHistory = function( title, path ) {
  16909. var optHistory = this.options.history;
  16910. var historyMethod = optHistory && history[ optHistory + 'State' ];
  16911. if ( !historyMethod ) {
  16912. return;
  16913. }
  16914. history[ optHistory + 'State' ]( null, title, path );
  16915. if ( this.options.historyTitle ) {
  16916. document.title = title;
  16917. }
  16918. this.dispatchEvent( 'history', null, [ title, path ] );
  16919. };
  16920. // scroll to top to prevent initial scroll-reset after page refresh
  16921. // https://stackoverflow.com/a/18633915/182183
  16922. proto.onUnload = function() {
  16923. var pageIndex = this.scrollPageIndex;
  16924. if ( pageIndex === 0 ) {
  16925. return;
  16926. }
  16927. // calculate where scroll position would be on refresh
  16928. var scrollPage = this.scrollPages[ pageIndex ];
  16929. var scrollY = window.pageYOffset - scrollPage.top + this.top;
  16930. // disable scroll event before setting scroll #679
  16931. this.destroyHistory();
  16932. scrollTo( 0, scrollY );
  16933. };
  16934. // ----- load history ----- //
  16935. // update URL
  16936. proto.onPageLoadHistory = function( response, path ) {
  16937. this.setHistory( response.title, path );
  16938. };
  16939. // -------------------------- -------------------------- //
  16940. return InfiniteScroll;
  16941. }));
  16942. /***/ }),
  16943. /***/ "./node_modules/infinite-scroll/js/index.js":
  16944. /***/ (function(module, exports, __webpack_require__) {
  16945. var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
  16946. * Infinite Scroll v3.0.5
  16947. * Automatically add next page
  16948. *
  16949. * Licensed GPLv3 for open source use
  16950. * or Infinite Scroll Commercial License for commercial use
  16951. *
  16952. * https://infinite-scroll.com
  16953. * Copyright 2018 Metafizzy
  16954. */
  16955. ( function( window, factory ) {
  16956. // universal module definition
  16957. /* globals define, module, require */
  16958. if ( true ) {
  16959. // AMD
  16960. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
  16961. __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
  16962. __webpack_require__("./node_modules/infinite-scroll/js/page-load.js"),
  16963. __webpack_require__("./node_modules/infinite-scroll/js/scroll-watch.js"),
  16964. __webpack_require__("./node_modules/infinite-scroll/js/history.js"),
  16965. __webpack_require__("./node_modules/infinite-scroll/js/button.js"),
  16966. __webpack_require__("./node_modules/infinite-scroll/js/status.js"),
  16967. ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
  16968. __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
  16969. (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
  16970. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  16971. } else if ( typeof module == 'object' && module.exports ) {
  16972. // CommonJS
  16973. module.exports = factory(
  16974. require('./core'),
  16975. require('./page-load'),
  16976. require('./scroll-watch'),
  16977. require('./history'),
  16978. require('./button'),
  16979. require('./status')
  16980. );
  16981. }
  16982. })( window, function factory( InfiniteScroll ) {
  16983. return InfiniteScroll;
  16984. });
  16985. /***/ }),
  16986. /***/ "./node_modules/infinite-scroll/js/page-load.js":
  16987. /***/ (function(module, exports, __webpack_require__) {
  16988. var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// page-load
  16989. ( function( window, factory ) {
  16990. // universal module definition
  16991. /* globals define, module, require */
  16992. if ( true ) {
  16993. // AMD
  16994. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
  16995. __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
  16996. ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( InfiniteScroll ) {
  16997. return factory( window, InfiniteScroll );
  16998. }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
  16999. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  17000. } else if ( typeof module == 'object' && module.exports ) {
  17001. // CommonJS
  17002. module.exports = factory(
  17003. window,
  17004. require('./core')
  17005. );
  17006. } else {
  17007. // browser global
  17008. factory(
  17009. window,
  17010. window.InfiniteScroll
  17011. );
  17012. }
  17013. }( window, function factory( window, InfiniteScroll ) {
  17014. var proto = InfiniteScroll.prototype;
  17015. // InfiniteScroll.defaults.append = false;
  17016. InfiniteScroll.defaults.loadOnScroll = true;
  17017. InfiniteScroll.defaults.checkLastPage = true;
  17018. InfiniteScroll.defaults.responseType = 'document';
  17019. // InfiniteScroll.defaults.prefill = false;
  17020. // InfiniteScroll.defaults.outlayer = null;
  17021. InfiniteScroll.create.pageLoad = function() {
  17022. this.canLoad = true;
  17023. this.on( 'scrollThreshold', this.onScrollThresholdLoad );
  17024. this.on( 'load', this.checkLastPage );
  17025. if ( this.options.outlayer ) {
  17026. this.on( 'append', this.onAppendOutlayer );
  17027. }
  17028. };
  17029. proto.onScrollThresholdLoad = function() {
  17030. if ( this.options.loadOnScroll ) {
  17031. this.loadNextPage();
  17032. }
  17033. };
  17034. proto.loadNextPage = function() {
  17035. if ( this.isLoading || !this.canLoad ) {
  17036. return;
  17037. }
  17038. var path = this.getAbsolutePath();
  17039. this.isLoading = true;
  17040. var onLoad = function( response ) {
  17041. this.onPageLoad( response, path );
  17042. }.bind( this );
  17043. var onError = function( error ) {
  17044. this.onPageError( error, path );
  17045. }.bind( this );
  17046. request( path, this.options.responseType, onLoad, onError );
  17047. this.dispatchEvent( 'request', null, [ path ] );
  17048. };
  17049. proto.onPageLoad = function( response, path ) {
  17050. // done loading if not appending
  17051. if ( !this.options.append ) {
  17052. this.isLoading = false;
  17053. }
  17054. this.pageIndex++;
  17055. this.loadCount++;
  17056. this.dispatchEvent( 'load', null, [ response, path ] );
  17057. this.appendNextPage( response, path );
  17058. return response;
  17059. };
  17060. proto.appendNextPage = function( response, path ) {
  17061. var optAppend = this.options.append;
  17062. // do not append json
  17063. var isDocument = this.options.responseType == 'document';
  17064. if ( !isDocument || !optAppend ) {
  17065. return;
  17066. }
  17067. var items = response.querySelectorAll( optAppend );
  17068. var fragment = getItemsFragment( items );
  17069. var appendReady = function () {
  17070. this.appendItems( items, fragment );
  17071. this.isLoading = false;
  17072. this.dispatchEvent( 'append', null, [ response, path, items ] );
  17073. }.bind( this );
  17074. // TODO add hook for option to trigger appendReady
  17075. if ( this.options.outlayer ) {
  17076. this.appendOutlayerItems( fragment, appendReady );
  17077. } else {
  17078. appendReady();
  17079. }
  17080. };
  17081. proto.appendItems = function( items, fragment ) {
  17082. if ( !items || !items.length ) {
  17083. return;
  17084. }
  17085. // get fragment if not provided
  17086. fragment = fragment || getItemsFragment( items );
  17087. refreshScripts( fragment );
  17088. this.element.appendChild( fragment );
  17089. };
  17090. function getItemsFragment( items ) {
  17091. // add items to fragment
  17092. var fragment = document.createDocumentFragment();
  17093. for ( var i=0; items && i < items.length; i++ ) {
  17094. fragment.appendChild( items[i] );
  17095. }
  17096. return fragment;
  17097. }
  17098. // replace <script>s with copies so they load
  17099. // <script>s added by InfiniteScroll will not load
  17100. // similar to https://stackoverflow.com/questions/610995
  17101. function refreshScripts( fragment ) {
  17102. var scripts = fragment.querySelectorAll('script');
  17103. for ( var i=0; i < scripts.length; i++ ) {
  17104. var script = scripts[i];
  17105. var freshScript = document.createElement('script');
  17106. copyAttributes( script, freshScript );
  17107. // copy inner script code. #718, #782
  17108. freshScript.innerHTML = script.innerHTML;
  17109. script.parentNode.replaceChild( freshScript, script );
  17110. }
  17111. }
  17112. function copyAttributes( fromNode, toNode ) {
  17113. var attrs = fromNode.attributes;
  17114. for ( var i=0; i < attrs.length; i++ ) {
  17115. var attr = attrs[i];
  17116. toNode.setAttribute( attr.name, attr.value );
  17117. }
  17118. }
  17119. // ----- outlayer ----- //
  17120. proto.appendOutlayerItems = function( fragment, appendReady ) {
  17121. var imagesLoaded = InfiniteScroll.imagesLoaded || window.imagesLoaded;
  17122. if ( !imagesLoaded ) {
  17123. console.error('[InfiniteScroll] imagesLoaded required for outlayer option');
  17124. this.isLoading = false;
  17125. return;
  17126. }
  17127. // append once images loaded
  17128. imagesLoaded( fragment, appendReady );
  17129. };
  17130. proto.onAppendOutlayer = function( response, path, items ) {
  17131. this.options.outlayer.appended( items );
  17132. };
  17133. // ----- checkLastPage ----- //
  17134. // check response for next element
  17135. proto.checkLastPage = function( response, path ) {
  17136. var checkLastPage = this.options.checkLastPage;
  17137. if ( !checkLastPage ) {
  17138. return;
  17139. }
  17140. var pathOpt = this.options.path;
  17141. // if path is function, check if next path is truthy
  17142. if ( typeof pathOpt == 'function' ) {
  17143. var nextPath = this.getPath();
  17144. if ( !nextPath ) {
  17145. this.lastPageReached( response, path );
  17146. return;
  17147. }
  17148. }
  17149. // get selector from checkLastPage or path option
  17150. var selector;
  17151. if ( typeof checkLastPage == 'string' ) {
  17152. selector = checkLastPage;
  17153. } else if ( this.isPathSelector ) {
  17154. // path option is selector string
  17155. selector = pathOpt;
  17156. }
  17157. // check last page for selector
  17158. // bail if no selector or not document response
  17159. if ( !selector || !response.querySelector ) {
  17160. return;
  17161. }
  17162. // check if response has selector
  17163. var nextElem = response.querySelector( selector );
  17164. if ( !nextElem ) {
  17165. this.lastPageReached( response, path );
  17166. }
  17167. };
  17168. proto.lastPageReached = function( response, path ) {
  17169. this.canLoad = false;
  17170. this.dispatchEvent( 'last', null, [ response, path ] );
  17171. };
  17172. // ----- error ----- //
  17173. proto.onPageError = function( error, path ) {
  17174. this.isLoading = false;
  17175. this.canLoad = false;
  17176. this.dispatchEvent( 'error', null, [ error, path ] );
  17177. return error;
  17178. };
  17179. // -------------------------- prefill -------------------------- //
  17180. InfiniteScroll.create.prefill = function() {
  17181. if ( !this.options.prefill ) {
  17182. return;
  17183. }
  17184. var append = this.options.append;
  17185. if ( !append ) {
  17186. console.error( 'append option required for prefill. Set as :' + append );
  17187. return;
  17188. }
  17189. this.updateMeasurements();
  17190. this.updateScroller();
  17191. this.isPrefilling = true;
  17192. this.on( 'append', this.prefill );
  17193. this.once( 'error', this.stopPrefill );
  17194. this.once( 'last', this.stopPrefill );
  17195. this.prefill();
  17196. };
  17197. proto.prefill = function() {
  17198. var distance = this.getPrefillDistance();
  17199. this.isPrefilling = distance >= 0;
  17200. if ( this.isPrefilling ) {
  17201. this.log('prefill');
  17202. this.loadNextPage();
  17203. } else {
  17204. this.stopPrefill();
  17205. }
  17206. };
  17207. proto.getPrefillDistance = function() {
  17208. // element scroll
  17209. if ( this.options.elementScroll ) {
  17210. return this.scroller.clientHeight - this.scroller.scrollHeight;
  17211. }
  17212. // window
  17213. return this.windowHeight - this.element.clientHeight;
  17214. };
  17215. proto.stopPrefill = function() {
  17216. this.log('stopPrefill');
  17217. this.off( 'append', this.prefill );
  17218. };
  17219. // -------------------------- request -------------------------- //
  17220. function request( url, responseType, onLoad, onError ) {
  17221. var req = new XMLHttpRequest();
  17222. req.open( 'GET', url, true );
  17223. // set responseType document to return DOM
  17224. req.responseType = responseType || '';
  17225. // set X-Requested-With header to check that is ajax request
  17226. req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
  17227. req.onload = function() {
  17228. if ( req.status == 200 ) {
  17229. onLoad( req.response );
  17230. } else {
  17231. // not 200 OK, error
  17232. var error = new Error( req.statusText );
  17233. onError( error );
  17234. }
  17235. };
  17236. // Handle network errors
  17237. req.onerror = function() {
  17238. var error = new Error( 'Network error requesting ' + url );
  17239. onError( error );
  17240. };
  17241. req.send();
  17242. }
  17243. // -------------------------- -------------------------- //
  17244. return InfiniteScroll;
  17245. }));
  17246. /***/ }),
  17247. /***/ "./node_modules/infinite-scroll/js/scroll-watch.js":
  17248. /***/ (function(module, exports, __webpack_require__) {
  17249. var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// scroll-watch
  17250. ( function( window, factory ) {
  17251. // universal module definition
  17252. /* globals define, module, require */
  17253. if ( true ) {
  17254. // AMD
  17255. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
  17256. __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
  17257. __webpack_require__("./node_modules/fizzy-ui-utils/utils.js"),
  17258. ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( InfiniteScroll, utils ) {
  17259. return factory( window, InfiniteScroll, utils );
  17260. }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
  17261. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  17262. } else if ( typeof module == 'object' && module.exports ) {
  17263. // CommonJS
  17264. module.exports = factory(
  17265. window,
  17266. require('./core'),
  17267. require('fizzy-ui-utils')
  17268. );
  17269. } else {
  17270. // browser global
  17271. factory(
  17272. window,
  17273. window.InfiniteScroll,
  17274. window.fizzyUIUtils
  17275. );
  17276. }
  17277. }( window, function factory( window, InfiniteScroll, utils ) {
  17278. var proto = InfiniteScroll.prototype;
  17279. // default options
  17280. InfiniteScroll.defaults.scrollThreshold = 400;
  17281. // InfiniteScroll.defaults.elementScroll = null;
  17282. InfiniteScroll.create.scrollWatch = function() {
  17283. // events
  17284. this.pageScrollHandler = this.onPageScroll.bind( this );
  17285. this.resizeHandler = this.onResize.bind( this );
  17286. var scrollThreshold = this.options.scrollThreshold;
  17287. var isEnable = scrollThreshold || scrollThreshold === 0;
  17288. if ( isEnable ) {
  17289. this.enableScrollWatch();
  17290. }
  17291. };
  17292. InfiniteScroll.destroy.scrollWatch = function() {
  17293. this.disableScrollWatch();
  17294. };
  17295. proto.enableScrollWatch = function() {
  17296. if ( this.isScrollWatching ) {
  17297. return;
  17298. }
  17299. this.isScrollWatching = true;
  17300. this.updateMeasurements();
  17301. this.updateScroller();
  17302. // TODO disable after error?
  17303. this.on( 'last', this.disableScrollWatch );
  17304. this.bindScrollWatchEvents( true );
  17305. };
  17306. proto.disableScrollWatch = function() {
  17307. if ( !this.isScrollWatching ) {
  17308. return;
  17309. }
  17310. this.bindScrollWatchEvents( false );
  17311. delete this.isScrollWatching;
  17312. };
  17313. proto.bindScrollWatchEvents = function( isBind ) {
  17314. var addRemove = isBind ? 'addEventListener' : 'removeEventListener';
  17315. this.scroller[ addRemove ]( 'scroll', this.pageScrollHandler );
  17316. window[ addRemove ]( 'resize', this.resizeHandler );
  17317. };
  17318. proto.onPageScroll = InfiniteScroll.throttle( function() {
  17319. var distance = this.getBottomDistance();
  17320. if ( distance <= this.options.scrollThreshold ) {
  17321. this.dispatchEvent('scrollThreshold');
  17322. }
  17323. });
  17324. proto.getBottomDistance = function() {
  17325. if ( this.options.elementScroll ) {
  17326. return this.getElementBottomDistance();
  17327. } else {
  17328. return this.getWindowBottomDistance();
  17329. }
  17330. };
  17331. proto.getWindowBottomDistance = function() {
  17332. var bottom = this.top + this.element.clientHeight;
  17333. var scrollY = window.pageYOffset + this.windowHeight;
  17334. return bottom - scrollY;
  17335. };
  17336. proto.getElementBottomDistance = function() {
  17337. var bottom = this.scroller.scrollHeight;
  17338. var scrollY = this.scroller.scrollTop + this.scroller.clientHeight;
  17339. return bottom - scrollY;
  17340. };
  17341. proto.onResize = function() {
  17342. this.updateMeasurements();
  17343. };
  17344. utils.debounceMethod( InfiniteScroll, 'onResize', 150 );
  17345. // -------------------------- -------------------------- //
  17346. return InfiniteScroll;
  17347. }));
  17348. /***/ }),
  17349. /***/ "./node_modules/infinite-scroll/js/status.js":
  17350. /***/ (function(module, exports, __webpack_require__) {
  17351. var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// status
  17352. ( function( window, factory ) {
  17353. // universal module definition
  17354. /* globals define, module, require */
  17355. if ( true ) {
  17356. // AMD
  17357. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
  17358. __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
  17359. __webpack_require__("./node_modules/fizzy-ui-utils/utils.js"),
  17360. ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( InfiniteScroll, utils ) {
  17361. return factory( window, InfiniteScroll, utils );
  17362. }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
  17363. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  17364. } else if ( typeof module == 'object' && module.exports ) {
  17365. // CommonJS
  17366. module.exports = factory(
  17367. window,
  17368. require('./core'),
  17369. require('fizzy-ui-utils')
  17370. );
  17371. } else {
  17372. // browser global
  17373. factory(
  17374. window,
  17375. window.InfiniteScroll,
  17376. window.fizzyUIUtils
  17377. );
  17378. }
  17379. }( window, function factory( window, InfiniteScroll, utils ) {
  17380. var proto = InfiniteScroll.prototype;
  17381. // InfiniteScroll.defaults.status = null;
  17382. InfiniteScroll.create.status = function() {
  17383. var statusElem = utils.getQueryElement( this.options.status );
  17384. if ( !statusElem ) {
  17385. return;
  17386. }
  17387. // elements
  17388. this.statusElement = statusElem;
  17389. this.statusEventElements = {
  17390. request: statusElem.querySelector('.infinite-scroll-request'),
  17391. error: statusElem.querySelector('.infinite-scroll-error'),
  17392. last: statusElem.querySelector('.infinite-scroll-last'),
  17393. };
  17394. // events
  17395. this.on( 'request', this.showRequestStatus );
  17396. this.on( 'error', this.showErrorStatus );
  17397. this.on( 'last', this.showLastStatus );
  17398. this.bindHideStatus('on');
  17399. };
  17400. proto.bindHideStatus = function( bindMethod ) {
  17401. var hideEvent = this.options.append ? 'append' : 'load';
  17402. this[ bindMethod ]( hideEvent, this.hideAllStatus );
  17403. };
  17404. proto.showRequestStatus = function() {
  17405. this.showStatus('request');
  17406. };
  17407. proto.showErrorStatus = function() {
  17408. this.showStatus('error');
  17409. };
  17410. proto.showLastStatus = function() {
  17411. this.showStatus('last');
  17412. // prevent last then append event race condition from showing last status #706
  17413. this.bindHideStatus('off');
  17414. };
  17415. proto.showStatus = function( eventName ) {
  17416. show( this.statusElement );
  17417. this.hideStatusEventElements();
  17418. var eventElem = this.statusEventElements[ eventName ];
  17419. show( eventElem );
  17420. };
  17421. proto.hideAllStatus = function() {
  17422. hide( this.statusElement );
  17423. this.hideStatusEventElements();
  17424. };
  17425. proto.hideStatusEventElements = function() {
  17426. for ( var type in this.statusEventElements ) {
  17427. var eventElem = this.statusEventElements[ type ];
  17428. hide( eventElem );
  17429. }
  17430. };
  17431. // -------------------------- -------------------------- //
  17432. function hide( elem ) {
  17433. setDisplay( elem, 'none' );
  17434. }
  17435. function show( elem ) {
  17436. setDisplay( elem, 'block' );
  17437. }
  17438. function setDisplay( elem, value ) {
  17439. if ( elem ) {
  17440. elem.style.display = value;
  17441. }
  17442. }
  17443. // -------------------------- -------------------------- //
  17444. return InfiniteScroll;
  17445. }));
  17446. /***/ }),
  17447. /***/ "./node_modules/lodash.get/index.js":
  17448. /***/ (function(module, exports, __webpack_require__) {
  17449. /* WEBPACK VAR INJECTION */(function(global) {/**
  17450. * lodash (Custom Build) <https://lodash.com/>
  17451. * Build: `lodash modularize exports="npm" -o ./`
  17452. * Copyright jQuery Foundation and other contributors <https://jquery.org/>
  17453. * Released under MIT license <https://lodash.com/license>
  17454. * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
  17455. * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
  17456. */
  17457. /** Used as the `TypeError` message for "Functions" methods. */
  17458. var FUNC_ERROR_TEXT = 'Expected a function';
  17459. /** Used to stand-in for `undefined` hash values. */
  17460. var HASH_UNDEFINED = '__lodash_hash_undefined__';
  17461. /** Used as references for various `Number` constants. */
  17462. var INFINITY = 1 / 0;
  17463. /** `Object#toString` result references. */
  17464. var funcTag = '[object Function]',
  17465. genTag = '[object GeneratorFunction]',
  17466. symbolTag = '[object Symbol]';
  17467. /** Used to match property names within property paths. */
  17468. var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
  17469. reIsPlainProp = /^\w*$/,
  17470. reLeadingDot = /^\./,
  17471. rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
  17472. /**
  17473. * Used to match `RegExp`
  17474. * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
  17475. */
  17476. var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
  17477. /** Used to match backslashes in property paths. */
  17478. var reEscapeChar = /\\(\\)?/g;
  17479. /** Used to detect host constructors (Safari). */
  17480. var reIsHostCtor = /^\[object .+?Constructor\]$/;
  17481. /** Detect free variable `global` from Node.js. */
  17482. var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
  17483. /** Detect free variable `self`. */
  17484. var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
  17485. /** Used as a reference to the global object. */
  17486. var root = freeGlobal || freeSelf || Function('return this')();
  17487. /**
  17488. * Gets the value at `key` of `object`.
  17489. *
  17490. * @private
  17491. * @param {Object} [object] The object to query.
  17492. * @param {string} key The key of the property to get.
  17493. * @returns {*} Returns the property value.
  17494. */
  17495. function getValue(object, key) {
  17496. return object == null ? undefined : object[key];
  17497. }
  17498. /**
  17499. * Checks if `value` is a host object in IE < 9.
  17500. *
  17501. * @private
  17502. * @param {*} value The value to check.
  17503. * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
  17504. */
  17505. function isHostObject(value) {
  17506. // Many host objects are `Object` objects that can coerce to strings
  17507. // despite having improperly defined `toString` methods.
  17508. var result = false;
  17509. if (value != null && typeof value.toString != 'function') {
  17510. try {
  17511. result = !!(value + '');
  17512. } catch (e) {}
  17513. }
  17514. return result;
  17515. }
  17516. /** Used for built-in method references. */
  17517. var arrayProto = Array.prototype,
  17518. funcProto = Function.prototype,
  17519. objectProto = Object.prototype;
  17520. /** Used to detect overreaching core-js shims. */
  17521. var coreJsData = root['__core-js_shared__'];
  17522. /** Used to detect methods masquerading as native. */
  17523. var maskSrcKey = (function() {
  17524. var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  17525. return uid ? ('Symbol(src)_1.' + uid) : '';
  17526. }());
  17527. /** Used to resolve the decompiled source of functions. */
  17528. var funcToString = funcProto.toString;
  17529. /** Used to check objects for own properties. */
  17530. var hasOwnProperty = objectProto.hasOwnProperty;
  17531. /**
  17532. * Used to resolve the
  17533. * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
  17534. * of values.
  17535. */
  17536. var objectToString = objectProto.toString;
  17537. /** Used to detect if a method is native. */
  17538. var reIsNative = RegExp('^' +
  17539. funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
  17540. .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
  17541. );
  17542. /** Built-in value references. */
  17543. var Symbol = root.Symbol,
  17544. splice = arrayProto.splice;
  17545. /* Built-in method references that are verified to be native. */
  17546. var Map = getNative(root, 'Map'),
  17547. nativeCreate = getNative(Object, 'create');
  17548. /** Used to convert symbols to primitives and strings. */
  17549. var symbolProto = Symbol ? Symbol.prototype : undefined,
  17550. symbolToString = symbolProto ? symbolProto.toString : undefined;
  17551. /**
  17552. * Creates a hash object.
  17553. *
  17554. * @private
  17555. * @constructor
  17556. * @param {Array} [entries] The key-value pairs to cache.
  17557. */
  17558. function Hash(entries) {
  17559. var index = -1,
  17560. length = entries ? entries.length : 0;
  17561. this.clear();
  17562. while (++index < length) {
  17563. var entry = entries[index];
  17564. this.set(entry[0], entry[1]);
  17565. }
  17566. }
  17567. /**
  17568. * Removes all key-value entries from the hash.
  17569. *
  17570. * @private
  17571. * @name clear
  17572. * @memberOf Hash
  17573. */
  17574. function hashClear() {
  17575. this.__data__ = nativeCreate ? nativeCreate(null) : {};
  17576. }
  17577. /**
  17578. * Removes `key` and its value from the hash.
  17579. *
  17580. * @private
  17581. * @name delete
  17582. * @memberOf Hash
  17583. * @param {Object} hash The hash to modify.
  17584. * @param {string} key The key of the value to remove.
  17585. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  17586. */
  17587. function hashDelete(key) {
  17588. return this.has(key) && delete this.__data__[key];
  17589. }
  17590. /**
  17591. * Gets the hash value for `key`.
  17592. *
  17593. * @private
  17594. * @name get
  17595. * @memberOf Hash
  17596. * @param {string} key The key of the value to get.
  17597. * @returns {*} Returns the entry value.
  17598. */
  17599. function hashGet(key) {
  17600. var data = this.__data__;
  17601. if (nativeCreate) {
  17602. var result = data[key];
  17603. return result === HASH_UNDEFINED ? undefined : result;
  17604. }
  17605. return hasOwnProperty.call(data, key) ? data[key] : undefined;
  17606. }
  17607. /**
  17608. * Checks if a hash value for `key` exists.
  17609. *
  17610. * @private
  17611. * @name has
  17612. * @memberOf Hash
  17613. * @param {string} key The key of the entry to check.
  17614. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  17615. */
  17616. function hashHas(key) {
  17617. var data = this.__data__;
  17618. return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
  17619. }
  17620. /**
  17621. * Sets the hash `key` to `value`.
  17622. *
  17623. * @private
  17624. * @name set
  17625. * @memberOf Hash
  17626. * @param {string} key The key of the value to set.
  17627. * @param {*} value The value to set.
  17628. * @returns {Object} Returns the hash instance.
  17629. */
  17630. function hashSet(key, value) {
  17631. var data = this.__data__;
  17632. data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
  17633. return this;
  17634. }
  17635. // Add methods to `Hash`.
  17636. Hash.prototype.clear = hashClear;
  17637. Hash.prototype['delete'] = hashDelete;
  17638. Hash.prototype.get = hashGet;
  17639. Hash.prototype.has = hashHas;
  17640. Hash.prototype.set = hashSet;
  17641. /**
  17642. * Creates an list cache object.
  17643. *
  17644. * @private
  17645. * @constructor
  17646. * @param {Array} [entries] The key-value pairs to cache.
  17647. */
  17648. function ListCache(entries) {
  17649. var index = -1,
  17650. length = entries ? entries.length : 0;
  17651. this.clear();
  17652. while (++index < length) {
  17653. var entry = entries[index];
  17654. this.set(entry[0], entry[1]);
  17655. }
  17656. }
  17657. /**
  17658. * Removes all key-value entries from the list cache.
  17659. *
  17660. * @private
  17661. * @name clear
  17662. * @memberOf ListCache
  17663. */
  17664. function listCacheClear() {
  17665. this.__data__ = [];
  17666. }
  17667. /**
  17668. * Removes `key` and its value from the list cache.
  17669. *
  17670. * @private
  17671. * @name delete
  17672. * @memberOf ListCache
  17673. * @param {string} key The key of the value to remove.
  17674. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  17675. */
  17676. function listCacheDelete(key) {
  17677. var data = this.__data__,
  17678. index = assocIndexOf(data, key);
  17679. if (index < 0) {
  17680. return false;
  17681. }
  17682. var lastIndex = data.length - 1;
  17683. if (index == lastIndex) {
  17684. data.pop();
  17685. } else {
  17686. splice.call(data, index, 1);
  17687. }
  17688. return true;
  17689. }
  17690. /**
  17691. * Gets the list cache value for `key`.
  17692. *
  17693. * @private
  17694. * @name get
  17695. * @memberOf ListCache
  17696. * @param {string} key The key of the value to get.
  17697. * @returns {*} Returns the entry value.
  17698. */
  17699. function listCacheGet(key) {
  17700. var data = this.__data__,
  17701. index = assocIndexOf(data, key);
  17702. return index < 0 ? undefined : data[index][1];
  17703. }
  17704. /**
  17705. * Checks if a list cache value for `key` exists.
  17706. *
  17707. * @private
  17708. * @name has
  17709. * @memberOf ListCache
  17710. * @param {string} key The key of the entry to check.
  17711. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  17712. */
  17713. function listCacheHas(key) {
  17714. return assocIndexOf(this.__data__, key) > -1;
  17715. }
  17716. /**
  17717. * Sets the list cache `key` to `value`.
  17718. *
  17719. * @private
  17720. * @name set
  17721. * @memberOf ListCache
  17722. * @param {string} key The key of the value to set.
  17723. * @param {*} value The value to set.
  17724. * @returns {Object} Returns the list cache instance.
  17725. */
  17726. function listCacheSet(key, value) {
  17727. var data = this.__data__,
  17728. index = assocIndexOf(data, key);
  17729. if (index < 0) {
  17730. data.push([key, value]);
  17731. } else {
  17732. data[index][1] = value;
  17733. }
  17734. return this;
  17735. }
  17736. // Add methods to `ListCache`.
  17737. ListCache.prototype.clear = listCacheClear;
  17738. ListCache.prototype['delete'] = listCacheDelete;
  17739. ListCache.prototype.get = listCacheGet;
  17740. ListCache.prototype.has = listCacheHas;
  17741. ListCache.prototype.set = listCacheSet;
  17742. /**
  17743. * Creates a map cache object to store key-value pairs.
  17744. *
  17745. * @private
  17746. * @constructor
  17747. * @param {Array} [entries] The key-value pairs to cache.
  17748. */
  17749. function MapCache(entries) {
  17750. var index = -1,
  17751. length = entries ? entries.length : 0;
  17752. this.clear();
  17753. while (++index < length) {
  17754. var entry = entries[index];
  17755. this.set(entry[0], entry[1]);
  17756. }
  17757. }
  17758. /**
  17759. * Removes all key-value entries from the map.
  17760. *
  17761. * @private
  17762. * @name clear
  17763. * @memberOf MapCache
  17764. */
  17765. function mapCacheClear() {
  17766. this.__data__ = {
  17767. 'hash': new Hash,
  17768. 'map': new (Map || ListCache),
  17769. 'string': new Hash
  17770. };
  17771. }
  17772. /**
  17773. * Removes `key` and its value from the map.
  17774. *
  17775. * @private
  17776. * @name delete
  17777. * @memberOf MapCache
  17778. * @param {string} key The key of the value to remove.
  17779. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  17780. */
  17781. function mapCacheDelete(key) {
  17782. return getMapData(this, key)['delete'](key);
  17783. }
  17784. /**
  17785. * Gets the map value for `key`.
  17786. *
  17787. * @private
  17788. * @name get
  17789. * @memberOf MapCache
  17790. * @param {string} key The key of the value to get.
  17791. * @returns {*} Returns the entry value.
  17792. */
  17793. function mapCacheGet(key) {
  17794. return getMapData(this, key).get(key);
  17795. }
  17796. /**
  17797. * Checks if a map value for `key` exists.
  17798. *
  17799. * @private
  17800. * @name has
  17801. * @memberOf MapCache
  17802. * @param {string} key The key of the entry to check.
  17803. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  17804. */
  17805. function mapCacheHas(key) {
  17806. return getMapData(this, key).has(key);
  17807. }
  17808. /**
  17809. * Sets the map `key` to `value`.
  17810. *
  17811. * @private
  17812. * @name set
  17813. * @memberOf MapCache
  17814. * @param {string} key The key of the value to set.
  17815. * @param {*} value The value to set.
  17816. * @returns {Object} Returns the map cache instance.
  17817. */
  17818. function mapCacheSet(key, value) {
  17819. getMapData(this, key).set(key, value);
  17820. return this;
  17821. }
  17822. // Add methods to `MapCache`.
  17823. MapCache.prototype.clear = mapCacheClear;
  17824. MapCache.prototype['delete'] = mapCacheDelete;
  17825. MapCache.prototype.get = mapCacheGet;
  17826. MapCache.prototype.has = mapCacheHas;
  17827. MapCache.prototype.set = mapCacheSet;
  17828. /**
  17829. * Gets the index at which the `key` is found in `array` of key-value pairs.
  17830. *
  17831. * @private
  17832. * @param {Array} array The array to inspect.
  17833. * @param {*} key The key to search for.
  17834. * @returns {number} Returns the index of the matched value, else `-1`.
  17835. */
  17836. function assocIndexOf(array, key) {
  17837. var length = array.length;
  17838. while (length--) {
  17839. if (eq(array[length][0], key)) {
  17840. return length;
  17841. }
  17842. }
  17843. return -1;
  17844. }
  17845. /**
  17846. * The base implementation of `_.get` without support for default values.
  17847. *
  17848. * @private
  17849. * @param {Object} object The object to query.
  17850. * @param {Array|string} path The path of the property to get.
  17851. * @returns {*} Returns the resolved value.
  17852. */
  17853. function baseGet(object, path) {
  17854. path = isKey(path, object) ? [path] : castPath(path);
  17855. var index = 0,
  17856. length = path.length;
  17857. while (object != null && index < length) {
  17858. object = object[toKey(path[index++])];
  17859. }
  17860. return (index && index == length) ? object : undefined;
  17861. }
  17862. /**
  17863. * The base implementation of `_.isNative` without bad shim checks.
  17864. *
  17865. * @private
  17866. * @param {*} value The value to check.
  17867. * @returns {boolean} Returns `true` if `value` is a native function,
  17868. * else `false`.
  17869. */
  17870. function baseIsNative(value) {
  17871. if (!isObject(value) || isMasked(value)) {
  17872. return false;
  17873. }
  17874. var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
  17875. return pattern.test(toSource(value));
  17876. }
  17877. /**
  17878. * The base implementation of `_.toString` which doesn't convert nullish
  17879. * values to empty strings.
  17880. *
  17881. * @private
  17882. * @param {*} value The value to process.
  17883. * @returns {string} Returns the string.
  17884. */
  17885. function baseToString(value) {
  17886. // Exit early for strings to avoid a performance hit in some environments.
  17887. if (typeof value == 'string') {
  17888. return value;
  17889. }
  17890. if (isSymbol(value)) {
  17891. return symbolToString ? symbolToString.call(value) : '';
  17892. }
  17893. var result = (value + '');
  17894. return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
  17895. }
  17896. /**
  17897. * Casts `value` to a path array if it's not one.
  17898. *
  17899. * @private
  17900. * @param {*} value The value to inspect.
  17901. * @returns {Array} Returns the cast property path array.
  17902. */
  17903. function castPath(value) {
  17904. return isArray(value) ? value : stringToPath(value);
  17905. }
  17906. /**
  17907. * Gets the data for `map`.
  17908. *
  17909. * @private
  17910. * @param {Object} map The map to query.
  17911. * @param {string} key The reference key.
  17912. * @returns {*} Returns the map data.
  17913. */
  17914. function getMapData(map, key) {
  17915. var data = map.__data__;
  17916. return isKeyable(key)
  17917. ? data[typeof key == 'string' ? 'string' : 'hash']
  17918. : data.map;
  17919. }
  17920. /**
  17921. * Gets the native function at `key` of `object`.
  17922. *
  17923. * @private
  17924. * @param {Object} object The object to query.
  17925. * @param {string} key The key of the method to get.
  17926. * @returns {*} Returns the function if it's native, else `undefined`.
  17927. */
  17928. function getNative(object, key) {
  17929. var value = getValue(object, key);
  17930. return baseIsNative(value) ? value : undefined;
  17931. }
  17932. /**
  17933. * Checks if `value` is a property name and not a property path.
  17934. *
  17935. * @private
  17936. * @param {*} value The value to check.
  17937. * @param {Object} [object] The object to query keys on.
  17938. * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
  17939. */
  17940. function isKey(value, object) {
  17941. if (isArray(value)) {
  17942. return false;
  17943. }
  17944. var type = typeof value;
  17945. if (type == 'number' || type == 'symbol' || type == 'boolean' ||
  17946. value == null || isSymbol(value)) {
  17947. return true;
  17948. }
  17949. return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
  17950. (object != null && value in Object(object));
  17951. }
  17952. /**
  17953. * Checks if `value` is suitable for use as unique object key.
  17954. *
  17955. * @private
  17956. * @param {*} value The value to check.
  17957. * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
  17958. */
  17959. function isKeyable(value) {
  17960. var type = typeof value;
  17961. return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
  17962. ? (value !== '__proto__')
  17963. : (value === null);
  17964. }
  17965. /**
  17966. * Checks if `func` has its source masked.
  17967. *
  17968. * @private
  17969. * @param {Function} func The function to check.
  17970. * @returns {boolean} Returns `true` if `func` is masked, else `false`.
  17971. */
  17972. function isMasked(func) {
  17973. return !!maskSrcKey && (maskSrcKey in func);
  17974. }
  17975. /**
  17976. * Converts `string` to a property path array.
  17977. *
  17978. * @private
  17979. * @param {string} string The string to convert.
  17980. * @returns {Array} Returns the property path array.
  17981. */
  17982. var stringToPath = memoize(function(string) {
  17983. string = toString(string);
  17984. var result = [];
  17985. if (reLeadingDot.test(string)) {
  17986. result.push('');
  17987. }
  17988. string.replace(rePropName, function(match, number, quote, string) {
  17989. result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
  17990. });
  17991. return result;
  17992. });
  17993. /**
  17994. * Converts `value` to a string key if it's not a string or symbol.
  17995. *
  17996. * @private
  17997. * @param {*} value The value to inspect.
  17998. * @returns {string|symbol} Returns the key.
  17999. */
  18000. function toKey(value) {
  18001. if (typeof value == 'string' || isSymbol(value)) {
  18002. return value;
  18003. }
  18004. var result = (value + '');
  18005. return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
  18006. }
  18007. /**
  18008. * Converts `func` to its source code.
  18009. *
  18010. * @private
  18011. * @param {Function} func The function to process.
  18012. * @returns {string} Returns the source code.
  18013. */
  18014. function toSource(func) {
  18015. if (func != null) {
  18016. try {
  18017. return funcToString.call(func);
  18018. } catch (e) {}
  18019. try {
  18020. return (func + '');
  18021. } catch (e) {}
  18022. }
  18023. return '';
  18024. }
  18025. /**
  18026. * Creates a function that memoizes the result of `func`. If `resolver` is
  18027. * provided, it determines the cache key for storing the result based on the
  18028. * arguments provided to the memoized function. By default, the first argument
  18029. * provided to the memoized function is used as the map cache key. The `func`
  18030. * is invoked with the `this` binding of the memoized function.
  18031. *
  18032. * **Note:** The cache is exposed as the `cache` property on the memoized
  18033. * function. Its creation may be customized by replacing the `_.memoize.Cache`
  18034. * constructor with one whose instances implement the
  18035. * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
  18036. * method interface of `delete`, `get`, `has`, and `set`.
  18037. *
  18038. * @static
  18039. * @memberOf _
  18040. * @since 0.1.0
  18041. * @category Function
  18042. * @param {Function} func The function to have its output memoized.
  18043. * @param {Function} [resolver] The function to resolve the cache key.
  18044. * @returns {Function} Returns the new memoized function.
  18045. * @example
  18046. *
  18047. * var object = { 'a': 1, 'b': 2 };
  18048. * var other = { 'c': 3, 'd': 4 };
  18049. *
  18050. * var values = _.memoize(_.values);
  18051. * values(object);
  18052. * // => [1, 2]
  18053. *
  18054. * values(other);
  18055. * // => [3, 4]
  18056. *
  18057. * object.a = 2;
  18058. * values(object);
  18059. * // => [1, 2]
  18060. *
  18061. * // Modify the result cache.
  18062. * values.cache.set(object, ['a', 'b']);
  18063. * values(object);
  18064. * // => ['a', 'b']
  18065. *
  18066. * // Replace `_.memoize.Cache`.
  18067. * _.memoize.Cache = WeakMap;
  18068. */
  18069. function memoize(func, resolver) {
  18070. if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {
  18071. throw new TypeError(FUNC_ERROR_TEXT);
  18072. }
  18073. var memoized = function() {
  18074. var args = arguments,
  18075. key = resolver ? resolver.apply(this, args) : args[0],
  18076. cache = memoized.cache;
  18077. if (cache.has(key)) {
  18078. return cache.get(key);
  18079. }
  18080. var result = func.apply(this, args);
  18081. memoized.cache = cache.set(key, result);
  18082. return result;
  18083. };
  18084. memoized.cache = new (memoize.Cache || MapCache);
  18085. return memoized;
  18086. }
  18087. // Assign cache to `_.memoize`.
  18088. memoize.Cache = MapCache;
  18089. /**
  18090. * Performs a
  18091. * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
  18092. * comparison between two values to determine if they are equivalent.
  18093. *
  18094. * @static
  18095. * @memberOf _
  18096. * @since 4.0.0
  18097. * @category Lang
  18098. * @param {*} value The value to compare.
  18099. * @param {*} other The other value to compare.
  18100. * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
  18101. * @example
  18102. *
  18103. * var object = { 'a': 1 };
  18104. * var other = { 'a': 1 };
  18105. *
  18106. * _.eq(object, object);
  18107. * // => true
  18108. *
  18109. * _.eq(object, other);
  18110. * // => false
  18111. *
  18112. * _.eq('a', 'a');
  18113. * // => true
  18114. *
  18115. * _.eq('a', Object('a'));
  18116. * // => false
  18117. *
  18118. * _.eq(NaN, NaN);
  18119. * // => true
  18120. */
  18121. function eq(value, other) {
  18122. return value === other || (value !== value && other !== other);
  18123. }
  18124. /**
  18125. * Checks if `value` is classified as an `Array` object.
  18126. *
  18127. * @static
  18128. * @memberOf _
  18129. * @since 0.1.0
  18130. * @category Lang
  18131. * @param {*} value The value to check.
  18132. * @returns {boolean} Returns `true` if `value` is an array, else `false`.
  18133. * @example
  18134. *
  18135. * _.isArray([1, 2, 3]);
  18136. * // => true
  18137. *
  18138. * _.isArray(document.body.children);
  18139. * // => false
  18140. *
  18141. * _.isArray('abc');
  18142. * // => false
  18143. *
  18144. * _.isArray(_.noop);
  18145. * // => false
  18146. */
  18147. var isArray = Array.isArray;
  18148. /**
  18149. * Checks if `value` is classified as a `Function` object.
  18150. *
  18151. * @static
  18152. * @memberOf _
  18153. * @since 0.1.0
  18154. * @category Lang
  18155. * @param {*} value The value to check.
  18156. * @returns {boolean} Returns `true` if `value` is a function, else `false`.
  18157. * @example
  18158. *
  18159. * _.isFunction(_);
  18160. * // => true
  18161. *
  18162. * _.isFunction(/abc/);
  18163. * // => false
  18164. */
  18165. function isFunction(value) {
  18166. // The use of `Object#toString` avoids issues with the `typeof` operator
  18167. // in Safari 8-9 which returns 'object' for typed array and other constructors.
  18168. var tag = isObject(value) ? objectToString.call(value) : '';
  18169. return tag == funcTag || tag == genTag;
  18170. }
  18171. /**
  18172. * Checks if `value` is the
  18173. * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
  18174. * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
  18175. *
  18176. * @static
  18177. * @memberOf _
  18178. * @since 0.1.0
  18179. * @category Lang
  18180. * @param {*} value The value to check.
  18181. * @returns {boolean} Returns `true` if `value` is an object, else `false`.
  18182. * @example
  18183. *
  18184. * _.isObject({});
  18185. * // => true
  18186. *
  18187. * _.isObject([1, 2, 3]);
  18188. * // => true
  18189. *
  18190. * _.isObject(_.noop);
  18191. * // => true
  18192. *
  18193. * _.isObject(null);
  18194. * // => false
  18195. */
  18196. function isObject(value) {
  18197. var type = typeof value;
  18198. return !!value && (type == 'object' || type == 'function');
  18199. }
  18200. /**
  18201. * Checks if `value` is object-like. A value is object-like if it's not `null`
  18202. * and has a `typeof` result of "object".
  18203. *
  18204. * @static
  18205. * @memberOf _
  18206. * @since 4.0.0
  18207. * @category Lang
  18208. * @param {*} value The value to check.
  18209. * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
  18210. * @example
  18211. *
  18212. * _.isObjectLike({});
  18213. * // => true
  18214. *
  18215. * _.isObjectLike([1, 2, 3]);
  18216. * // => true
  18217. *
  18218. * _.isObjectLike(_.noop);
  18219. * // => false
  18220. *
  18221. * _.isObjectLike(null);
  18222. * // => false
  18223. */
  18224. function isObjectLike(value) {
  18225. return !!value && typeof value == 'object';
  18226. }
  18227. /**
  18228. * Checks if `value` is classified as a `Symbol` primitive or object.
  18229. *
  18230. * @static
  18231. * @memberOf _
  18232. * @since 4.0.0
  18233. * @category Lang
  18234. * @param {*} value The value to check.
  18235. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
  18236. * @example
  18237. *
  18238. * _.isSymbol(Symbol.iterator);
  18239. * // => true
  18240. *
  18241. * _.isSymbol('abc');
  18242. * // => false
  18243. */
  18244. function isSymbol(value) {
  18245. return typeof value == 'symbol' ||
  18246. (isObjectLike(value) && objectToString.call(value) == symbolTag);
  18247. }
  18248. /**
  18249. * Converts `value` to a string. An empty string is returned for `null`
  18250. * and `undefined` values. The sign of `-0` is preserved.
  18251. *
  18252. * @static
  18253. * @memberOf _
  18254. * @since 4.0.0
  18255. * @category Lang
  18256. * @param {*} value The value to process.
  18257. * @returns {string} Returns the string.
  18258. * @example
  18259. *
  18260. * _.toString(null);
  18261. * // => ''
  18262. *
  18263. * _.toString(-0);
  18264. * // => '-0'
  18265. *
  18266. * _.toString([1, 2, 3]);
  18267. * // => '1,2,3'
  18268. */
  18269. function toString(value) {
  18270. return value == null ? '' : baseToString(value);
  18271. }
  18272. /**
  18273. * Gets the value at `path` of `object`. If the resolved value is
  18274. * `undefined`, the `defaultValue` is returned in its place.
  18275. *
  18276. * @static
  18277. * @memberOf _
  18278. * @since 3.7.0
  18279. * @category Object
  18280. * @param {Object} object The object to query.
  18281. * @param {Array|string} path The path of the property to get.
  18282. * @param {*} [defaultValue] The value returned for `undefined` resolved values.
  18283. * @returns {*} Returns the resolved value.
  18284. * @example
  18285. *
  18286. * var object = { 'a': [{ 'b': { 'c': 3 } }] };
  18287. *
  18288. * _.get(object, 'a[0].b.c');
  18289. * // => 3
  18290. *
  18291. * _.get(object, ['a', '0', 'b', 'c']);
  18292. * // => 3
  18293. *
  18294. * _.get(object, 'a.b.c', 'default');
  18295. * // => 'default'
  18296. */
  18297. function get(object, path, defaultValue) {
  18298. var result = object == null ? undefined : baseGet(object, path);
  18299. return result === undefined ? defaultValue : result;
  18300. }
  18301. module.exports = get;
  18302. /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js")))
  18303. /***/ }),
  18304. /***/ "./node_modules/lodash.startcase/index.js":
  18305. /***/ (function(module, exports, __webpack_require__) {
  18306. /* WEBPACK VAR INJECTION */(function(global) {/**
  18307. * lodash (Custom Build) <https://lodash.com/>
  18308. * Build: `lodash modularize exports="npm" -o ./`
  18309. * Copyright jQuery Foundation and other contributors <https://jquery.org/>
  18310. * Released under MIT license <https://lodash.com/license>
  18311. * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
  18312. * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
  18313. */
  18314. /** Used as references for various `Number` constants. */
  18315. var INFINITY = 1 / 0;
  18316. /** `Object#toString` result references. */
  18317. var symbolTag = '[object Symbol]';
  18318. /** Used to match words composed of alphanumeric characters. */
  18319. var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
  18320. /** Used to match Latin Unicode letters (excluding mathematical operators). */
  18321. var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
  18322. /** Used to compose unicode character classes. */
  18323. var rsAstralRange = '\\ud800-\\udfff',
  18324. rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
  18325. rsComboSymbolsRange = '\\u20d0-\\u20f0',
  18326. rsDingbatRange = '\\u2700-\\u27bf',
  18327. rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff',
  18328. rsMathOpRange = '\\xac\\xb1\\xd7\\xf7',
  18329. rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf',
  18330. rsPunctuationRange = '\\u2000-\\u206f',
  18331. rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000',
  18332. rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde',
  18333. rsVarRange = '\\ufe0e\\ufe0f',
  18334. rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
  18335. /** Used to compose unicode capture groups. */
  18336. var rsApos = "['\u2019]",
  18337. rsAstral = '[' + rsAstralRange + ']',
  18338. rsBreak = '[' + rsBreakRange + ']',
  18339. rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
  18340. rsDigits = '\\d+',
  18341. rsDingbat = '[' + rsDingbatRange + ']',
  18342. rsLower = '[' + rsLowerRange + ']',
  18343. rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',
  18344. rsFitz = '\\ud83c[\\udffb-\\udfff]',
  18345. rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
  18346. rsNonAstral = '[^' + rsAstralRange + ']',
  18347. rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
  18348. rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
  18349. rsUpper = '[' + rsUpperRange + ']',
  18350. rsZWJ = '\\u200d';
  18351. /** Used to compose unicode regexes. */
  18352. var rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',
  18353. rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',
  18354. rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
  18355. rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
  18356. reOptMod = rsModifier + '?',
  18357. rsOptVar = '[' + rsVarRange + ']?',
  18358. rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
  18359. rsSeq = rsOptVar + reOptMod + rsOptJoin,
  18360. rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,
  18361. rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
  18362. /** Used to match apostrophes. */
  18363. var reApos = RegExp(rsApos, 'g');
  18364. /**
  18365. * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
  18366. * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).
  18367. */
  18368. var reComboMark = RegExp(rsCombo, 'g');
  18369. /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
  18370. var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
  18371. /** Used to match complex or compound words. */
  18372. var reUnicodeWord = RegExp([
  18373. rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
  18374. rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',
  18375. rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,
  18376. rsUpper + '+' + rsOptUpperContr,
  18377. rsDigits,
  18378. rsEmoji
  18379. ].join('|'), 'g');
  18380. /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
  18381. var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
  18382. /** Used to detect strings that need a more robust regexp to match words. */
  18383. var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
  18384. /** Used to map Latin Unicode letters to basic Latin letters. */
  18385. var deburredLetters = {
  18386. // Latin-1 Supplement block.
  18387. '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A',
  18388. '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a',
  18389. '\xc7': 'C', '\xe7': 'c',
  18390. '\xd0': 'D', '\xf0': 'd',
  18391. '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E',
  18392. '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e',
  18393. '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I',
  18394. '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i',
  18395. '\xd1': 'N', '\xf1': 'n',
  18396. '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O',
  18397. '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o',
  18398. '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U',
  18399. '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u',
  18400. '\xdd': 'Y', '\xfd': 'y', '\xff': 'y',
  18401. '\xc6': 'Ae', '\xe6': 'ae',
  18402. '\xde': 'Th', '\xfe': 'th',
  18403. '\xdf': 'ss',
  18404. // Latin Extended-A block.
  18405. '\u0100': 'A', '\u0102': 'A', '\u0104': 'A',
  18406. '\u0101': 'a', '\u0103': 'a', '\u0105': 'a',
  18407. '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C',
  18408. '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c',
  18409. '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd',
  18410. '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E',
  18411. '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e',
  18412. '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G',
  18413. '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g',
  18414. '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h',
  18415. '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I',
  18416. '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i',
  18417. '\u0134': 'J', '\u0135': 'j',
  18418. '\u0136': 'K', '\u0137': 'k', '\u0138': 'k',
  18419. '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L',
  18420. '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l',
  18421. '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N',
  18422. '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n',
  18423. '\u014c': 'O', '\u014e': 'O', '\u0150': 'O',
  18424. '\u014d': 'o', '\u014f': 'o', '\u0151': 'o',
  18425. '\u0154': 'R', '\u0156': 'R', '\u0158': 'R',
  18426. '\u0155': 'r', '\u0157': 'r', '\u0159': 'r',
  18427. '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S',
  18428. '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's',
  18429. '\u0162': 'T', '\u0164': 'T', '\u0166': 'T',
  18430. '\u0163': 't', '\u0165': 't', '\u0167': 't',
  18431. '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U',
  18432. '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u',
  18433. '\u0174': 'W', '\u0175': 'w',
  18434. '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y',
  18435. '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z',
  18436. '\u017a': 'z', '\u017c': 'z', '\u017e': 'z',
  18437. '\u0132': 'IJ', '\u0133': 'ij',
  18438. '\u0152': 'Oe', '\u0153': 'oe',
  18439. '\u0149': "'n", '\u017f': 'ss'
  18440. };
  18441. /** Detect free variable `global` from Node.js. */
  18442. var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
  18443. /** Detect free variable `self`. */
  18444. var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
  18445. /** Used as a reference to the global object. */
  18446. var root = freeGlobal || freeSelf || Function('return this')();
  18447. /**
  18448. * A specialized version of `_.reduce` for arrays without support for
  18449. * iteratee shorthands.
  18450. *
  18451. * @private
  18452. * @param {Array} [array] The array to iterate over.
  18453. * @param {Function} iteratee The function invoked per iteration.
  18454. * @param {*} [accumulator] The initial value.
  18455. * @param {boolean} [initAccum] Specify using the first element of `array` as
  18456. * the initial value.
  18457. * @returns {*} Returns the accumulated value.
  18458. */
  18459. function arrayReduce(array, iteratee, accumulator, initAccum) {
  18460. var index = -1,
  18461. length = array ? array.length : 0;
  18462. if (initAccum && length) {
  18463. accumulator = array[++index];
  18464. }
  18465. while (++index < length) {
  18466. accumulator = iteratee(accumulator, array[index], index, array);
  18467. }
  18468. return accumulator;
  18469. }
  18470. /**
  18471. * Converts an ASCII `string` to an array.
  18472. *
  18473. * @private
  18474. * @param {string} string The string to convert.
  18475. * @returns {Array} Returns the converted array.
  18476. */
  18477. function asciiToArray(string) {
  18478. return string.split('');
  18479. }
  18480. /**
  18481. * Splits an ASCII `string` into an array of its words.
  18482. *
  18483. * @private
  18484. * @param {string} The string to inspect.
  18485. * @returns {Array} Returns the words of `string`.
  18486. */
  18487. function asciiWords(string) {
  18488. return string.match(reAsciiWord) || [];
  18489. }
  18490. /**
  18491. * The base implementation of `_.propertyOf` without support for deep paths.
  18492. *
  18493. * @private
  18494. * @param {Object} object The object to query.
  18495. * @returns {Function} Returns the new accessor function.
  18496. */
  18497. function basePropertyOf(object) {
  18498. return function(key) {
  18499. return object == null ? undefined : object[key];
  18500. };
  18501. }
  18502. /**
  18503. * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A
  18504. * letters to basic Latin letters.
  18505. *
  18506. * @private
  18507. * @param {string} letter The matched letter to deburr.
  18508. * @returns {string} Returns the deburred letter.
  18509. */
  18510. var deburrLetter = basePropertyOf(deburredLetters);
  18511. /**
  18512. * Checks if `string` contains Unicode symbols.
  18513. *
  18514. * @private
  18515. * @param {string} string The string to inspect.
  18516. * @returns {boolean} Returns `true` if a symbol is found, else `false`.
  18517. */
  18518. function hasUnicode(string) {
  18519. return reHasUnicode.test(string);
  18520. }
  18521. /**
  18522. * Checks if `string` contains a word composed of Unicode symbols.
  18523. *
  18524. * @private
  18525. * @param {string} string The string to inspect.
  18526. * @returns {boolean} Returns `true` if a word is found, else `false`.
  18527. */
  18528. function hasUnicodeWord(string) {
  18529. return reHasUnicodeWord.test(string);
  18530. }
  18531. /**
  18532. * Converts `string` to an array.
  18533. *
  18534. * @private
  18535. * @param {string} string The string to convert.
  18536. * @returns {Array} Returns the converted array.
  18537. */
  18538. function stringToArray(string) {
  18539. return hasUnicode(string)
  18540. ? unicodeToArray(string)
  18541. : asciiToArray(string);
  18542. }
  18543. /**
  18544. * Converts a Unicode `string` to an array.
  18545. *
  18546. * @private
  18547. * @param {string} string The string to convert.
  18548. * @returns {Array} Returns the converted array.
  18549. */
  18550. function unicodeToArray(string) {
  18551. return string.match(reUnicode) || [];
  18552. }
  18553. /**
  18554. * Splits a Unicode `string` into an array of its words.
  18555. *
  18556. * @private
  18557. * @param {string} The string to inspect.
  18558. * @returns {Array} Returns the words of `string`.
  18559. */
  18560. function unicodeWords(string) {
  18561. return string.match(reUnicodeWord) || [];
  18562. }
  18563. /** Used for built-in method references. */
  18564. var objectProto = Object.prototype;
  18565. /**
  18566. * Used to resolve the
  18567. * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
  18568. * of values.
  18569. */
  18570. var objectToString = objectProto.toString;
  18571. /** Built-in value references. */
  18572. var Symbol = root.Symbol;
  18573. /** Used to convert symbols to primitives and strings. */
  18574. var symbolProto = Symbol ? Symbol.prototype : undefined,
  18575. symbolToString = symbolProto ? symbolProto.toString : undefined;
  18576. /**
  18577. * The base implementation of `_.slice` without an iteratee call guard.
  18578. *
  18579. * @private
  18580. * @param {Array} array The array to slice.
  18581. * @param {number} [start=0] The start position.
  18582. * @param {number} [end=array.length] The end position.
  18583. * @returns {Array} Returns the slice of `array`.
  18584. */
  18585. function baseSlice(array, start, end) {
  18586. var index = -1,
  18587. length = array.length;
  18588. if (start < 0) {
  18589. start = -start > length ? 0 : (length + start);
  18590. }
  18591. end = end > length ? length : end;
  18592. if (end < 0) {
  18593. end += length;
  18594. }
  18595. length = start > end ? 0 : ((end - start) >>> 0);
  18596. start >>>= 0;
  18597. var result = Array(length);
  18598. while (++index < length) {
  18599. result[index] = array[index + start];
  18600. }
  18601. return result;
  18602. }
  18603. /**
  18604. * The base implementation of `_.toString` which doesn't convert nullish
  18605. * values to empty strings.
  18606. *
  18607. * @private
  18608. * @param {*} value The value to process.
  18609. * @returns {string} Returns the string.
  18610. */
  18611. function baseToString(value) {
  18612. // Exit early for strings to avoid a performance hit in some environments.
  18613. if (typeof value == 'string') {
  18614. return value;
  18615. }
  18616. if (isSymbol(value)) {
  18617. return symbolToString ? symbolToString.call(value) : '';
  18618. }
  18619. var result = (value + '');
  18620. return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
  18621. }
  18622. /**
  18623. * Casts `array` to a slice if it's needed.
  18624. *
  18625. * @private
  18626. * @param {Array} array The array to inspect.
  18627. * @param {number} start The start position.
  18628. * @param {number} [end=array.length] The end position.
  18629. * @returns {Array} Returns the cast slice.
  18630. */
  18631. function castSlice(array, start, end) {
  18632. var length = array.length;
  18633. end = end === undefined ? length : end;
  18634. return (!start && end >= length) ? array : baseSlice(array, start, end);
  18635. }
  18636. /**
  18637. * Creates a function like `_.lowerFirst`.
  18638. *
  18639. * @private
  18640. * @param {string} methodName The name of the `String` case method to use.
  18641. * @returns {Function} Returns the new case function.
  18642. */
  18643. function createCaseFirst(methodName) {
  18644. return function(string) {
  18645. string = toString(string);
  18646. var strSymbols = hasUnicode(string)
  18647. ? stringToArray(string)
  18648. : undefined;
  18649. var chr = strSymbols
  18650. ? strSymbols[0]
  18651. : string.charAt(0);
  18652. var trailing = strSymbols
  18653. ? castSlice(strSymbols, 1).join('')
  18654. : string.slice(1);
  18655. return chr[methodName]() + trailing;
  18656. };
  18657. }
  18658. /**
  18659. * Creates a function like `_.camelCase`.
  18660. *
  18661. * @private
  18662. * @param {Function} callback The function to combine each word.
  18663. * @returns {Function} Returns the new compounder function.
  18664. */
  18665. function createCompounder(callback) {
  18666. return function(string) {
  18667. return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');
  18668. };
  18669. }
  18670. /**
  18671. * Checks if `value` is object-like. A value is object-like if it's not `null`
  18672. * and has a `typeof` result of "object".
  18673. *
  18674. * @static
  18675. * @memberOf _
  18676. * @since 4.0.0
  18677. * @category Lang
  18678. * @param {*} value The value to check.
  18679. * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
  18680. * @example
  18681. *
  18682. * _.isObjectLike({});
  18683. * // => true
  18684. *
  18685. * _.isObjectLike([1, 2, 3]);
  18686. * // => true
  18687. *
  18688. * _.isObjectLike(_.noop);
  18689. * // => false
  18690. *
  18691. * _.isObjectLike(null);
  18692. * // => false
  18693. */
  18694. function isObjectLike(value) {
  18695. return !!value && typeof value == 'object';
  18696. }
  18697. /**
  18698. * Checks if `value` is classified as a `Symbol` primitive or object.
  18699. *
  18700. * @static
  18701. * @memberOf _
  18702. * @since 4.0.0
  18703. * @category Lang
  18704. * @param {*} value The value to check.
  18705. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
  18706. * @example
  18707. *
  18708. * _.isSymbol(Symbol.iterator);
  18709. * // => true
  18710. *
  18711. * _.isSymbol('abc');
  18712. * // => false
  18713. */
  18714. function isSymbol(value) {
  18715. return typeof value == 'symbol' ||
  18716. (isObjectLike(value) && objectToString.call(value) == symbolTag);
  18717. }
  18718. /**
  18719. * Converts `value` to a string. An empty string is returned for `null`
  18720. * and `undefined` values. The sign of `-0` is preserved.
  18721. *
  18722. * @static
  18723. * @memberOf _
  18724. * @since 4.0.0
  18725. * @category Lang
  18726. * @param {*} value The value to process.
  18727. * @returns {string} Returns the string.
  18728. * @example
  18729. *
  18730. * _.toString(null);
  18731. * // => ''
  18732. *
  18733. * _.toString(-0);
  18734. * // => '-0'
  18735. *
  18736. * _.toString([1, 2, 3]);
  18737. * // => '1,2,3'
  18738. */
  18739. function toString(value) {
  18740. return value == null ? '' : baseToString(value);
  18741. }
  18742. /**
  18743. * Deburrs `string` by converting
  18744. * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
  18745. * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)
  18746. * letters to basic Latin letters and removing
  18747. * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).
  18748. *
  18749. * @static
  18750. * @memberOf _
  18751. * @since 3.0.0
  18752. * @category String
  18753. * @param {string} [string=''] The string to deburr.
  18754. * @returns {string} Returns the deburred string.
  18755. * @example
  18756. *
  18757. * _.deburr('déjà vu');
  18758. * // => 'deja vu'
  18759. */
  18760. function deburr(string) {
  18761. string = toString(string);
  18762. return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');
  18763. }
  18764. /**
  18765. * Converts `string` to
  18766. * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).
  18767. *
  18768. * @static
  18769. * @memberOf _
  18770. * @since 3.1.0
  18771. * @category String
  18772. * @param {string} [string=''] The string to convert.
  18773. * @returns {string} Returns the start cased string.
  18774. * @example
  18775. *
  18776. * _.startCase('--foo-bar--');
  18777. * // => 'Foo Bar'
  18778. *
  18779. * _.startCase('fooBar');
  18780. * // => 'Foo Bar'
  18781. *
  18782. * _.startCase('__FOO_BAR__');
  18783. * // => 'FOO BAR'
  18784. */
  18785. var startCase = createCompounder(function(result, word, index) {
  18786. return result + (index ? ' ' : '') + upperFirst(word);
  18787. });
  18788. /**
  18789. * Converts the first character of `string` to upper case.
  18790. *
  18791. * @static
  18792. * @memberOf _
  18793. * @since 4.0.0
  18794. * @category String
  18795. * @param {string} [string=''] The string to convert.
  18796. * @returns {string} Returns the converted string.
  18797. * @example
  18798. *
  18799. * _.upperFirst('fred');
  18800. * // => 'Fred'
  18801. *
  18802. * _.upperFirst('FRED');
  18803. * // => 'FRED'
  18804. */
  18805. var upperFirst = createCaseFirst('toUpperCase');
  18806. /**
  18807. * Splits `string` into an array of its words.
  18808. *
  18809. * @static
  18810. * @memberOf _
  18811. * @since 3.0.0
  18812. * @category String
  18813. * @param {string} [string=''] The string to inspect.
  18814. * @param {RegExp|string} [pattern] The pattern to match words.
  18815. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
  18816. * @returns {Array} Returns the words of `string`.
  18817. * @example
  18818. *
  18819. * _.words('fred, barney, & pebbles');
  18820. * // => ['fred', 'barney', 'pebbles']
  18821. *
  18822. * _.words('fred, barney, & pebbles', /[^, ]+/g);
  18823. * // => ['fred', 'barney', '&', 'pebbles']
  18824. */
  18825. function words(string, pattern, guard) {
  18826. string = toString(string);
  18827. pattern = guard ? undefined : pattern;
  18828. if (pattern === undefined) {
  18829. return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
  18830. }
  18831. return string.match(pattern) || [];
  18832. }
  18833. module.exports = startCase;
  18834. /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js")))
  18835. /***/ }),
  18836. /***/ "./node_modules/plyr/dist/plyr.min.js":
  18837. /***/ (function(module, exports, __webpack_require__) {
  18838. /* WEBPACK VAR INJECTION */(function(global) {"object"==typeof navigator&&function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define("Plyr",t):e.Plyr=t()}(this,function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function n(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],i=!0,a=!1,s=void 0;try{for(var o,r=e[Symbol.iterator]();!(i=(o=r.next()).done)&&(n.push(o.value),!t||n.length!==t);i=!0);}catch(e){a=!0,s=e}finally{try{i||null==r.return||r.return()}finally{if(a)throw s}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function s(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var o=function(e){return null!=e?e.constructor:null},r=function(e,t){return Boolean(e&&t&&e instanceof t)},l=function(e){return null==e},c=function(e){return o(e)===Object},u=function(e){return o(e)===String},d=function(e){return Array.isArray(e)},h=function(e){return r(e,NodeList)},p=function(e){return l(e)||(u(e)||d(e)||h(e))&&!e.length||c(e)&&!Object.keys(e).length},m={nullOrUndefined:l,object:c,number:function(e){return o(e)===Number&&!Number.isNaN(e)},string:u,boolean:function(e){return o(e)===Boolean},function:function(e){return o(e)===Function},array:d,weakMap:function(e){return r(e,WeakMap)},nodeList:h,element:function(e){return r(e,Element)},textNode:function(e){return o(e)===Text},event:function(e){return r(e,Event)},keyboardEvent:function(e){return r(e,KeyboardEvent)},cue:function(e){return r(e,window.TextTrackCue)||r(e,window.VTTCue)},track:function(e){return r(e,TextTrack)||!l(e)&&u(e.kind)},url:function(e){if(r(e,window.URL))return!0;if(!u(e))return!1;var t=e;e.startsWith("http://")&&e.startsWith("https://")||(t="http://".concat(e));try{return!p(new URL(t).hostname)}catch(e){return!1}},empty:p},f=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){return e=!0,null}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(e){}return e}();function g(e,t,n){var i=this,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(e&&"addEventListener"in e&&!m.empty(t)&&m.function(n)){var r=t.split(" "),l=o;f&&(l={passive:s,capture:o}),r.forEach(function(t){i&&i.eventListeners&&a&&i.eventListeners.push({element:e,type:t,callback:n,options:l}),e[a?"addEventListener":"removeEventListener"](t,n,l)})}}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];g.call(this,e,t,n,!0,i,a)}function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];g.call(this,e,t,n,!1,i,a)}function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];g.call(this,e,t,function s(){v(e,t,s,i,a);for(var o=arguments.length,r=new Array(o),l=0;l<o;l++)r[l]=arguments[l];n.apply(this,r)},!0,i,a)}function k(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(m.element(e)&&!m.empty(t)){var a=new CustomEvent(t,{bubbles:n,detail:Object.assign({},i,{plyr:this})});e.dispatchEvent(a)}}function w(e,t){var n=e.length?e:[e];Array.from(n).reverse().forEach(function(e,n){var i=n>0?t.cloneNode(!0):t,a=e.parentNode,s=e.nextSibling;i.appendChild(e),s?a.insertBefore(i,s):a.appendChild(i)})}function T(e,t){m.element(e)&&!m.empty(t)&&Object.entries(t).filter(function(e){var t=a(e,2)[1];return!m.nullOrUndefined(t)}).forEach(function(t){var n=a(t,2),i=n[0],s=n[1];return e.setAttribute(i,s)})}function A(e,t,n){var i=document.createElement(e);return m.object(t)&&T(i,t),m.string(n)&&(i.innerText=n),i}function E(e,t,n,i){m.element(t)&&t.appendChild(A(e,n,i))}function P(e){m.nodeList(e)||m.array(e)?Array.from(e).forEach(P):m.element(e)&&m.element(e.parentNode)&&e.parentNode.removeChild(e)}function C(e){if(m.element(e))for(var t=e.childNodes.length;t>0;)e.removeChild(e.lastChild),t-=1}function S(e,t){return m.element(t)&&m.element(t.parentNode)&&m.element(e)?(t.parentNode.replaceChild(e,t),e):null}function M(e,t){if(!m.string(e)||m.empty(e))return{};var n={},i=t;return e.split(",").forEach(function(e){var t=e.trim(),a=t.replace(".",""),s=t.replace(/[[\]]/g,"").split("="),o=s[0],r=s.length>1?s[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":m.object(i)&&m.string(i.class)&&(i.class+=" ".concat(a)),n.class=a;break;case"#":n.id=t.replace("#","");break;case"[":n[o]=r}}),n}function N(e,t){if(m.element(e)){var n=t;m.boolean(n)||(n=!e.hidden),n?e.setAttribute("hidden",""):e.removeAttribute("hidden")}}function L(e,t,n){if(m.nodeList(e))return Array.from(e).map(function(e){return L(e,t,n)});if(m.element(e)){var i="toggle";return void 0!==n&&(i=n?"add":"remove"),e.classList[i](t),e.classList.contains(t)}return!1}function x(e,t){return m.element(e)&&e.classList.contains(t)}function I(e,t){return function(){return Array.from(document.querySelectorAll(t)).includes(this)}.call(e,t)}function _(e){return this.elements.container.querySelectorAll(e)}function j(e){return this.elements.container.querySelector(e)}function O(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];m.element(e)&&(e.focus({preventScroll:!0}),t&&L(e,this.config.classNames.tabFocus))}var q,R,B,D=(q=document.createElement("span"),R={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},B=Object.keys(R).find(function(e){return void 0!==q.style[e]}),!!m.string(B)&&R[B]);function H(e){setTimeout(function(){try{N(e,!0),e.offsetHeight,N(e,!1)}catch(e){}},0)}var V,F={isIE:!!document.documentMode,isWebkit:"WebkitAppearance"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:/(iPad|iPhone|iPod)/gi.test(navigator.platform)},U={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},W={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check:function(e,t,n){var i=F.isIPhone&&n&&W.playsinline,a=W[e]||"html5"!==t;return{api:a,ui:a&&W.rangeInput&&("video"!==e||!F.isIPhone||i)}},pip:!(F.isIPhone||!m.function(A("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||A("video").disablePictureInPicture)),airplay:m.function(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime:function(e){var t=a(e.split("/"),1)[0],n=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(U).includes(n)&&(n+='; codecs="'.concat(U[e],'"'));try{return Boolean(n&&this.media.canPlayType(n).replace(/no/,""))}catch(e){return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(V=document.createElement("input"),V.type="range","range"===V.type),touch:"ontouchstart"in document.documentElement,transitions:!1!==D,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},z={getSources:function(){var e=this;return this.isHTML5?Array.from(this.media.querySelectorAll("source")).filter(function(t){return W.mime.call(e,t.getAttribute("type"))}):[]},getQualityOptions:function(){return z.getSources.call(this).map(function(e){return Number(e.getAttribute("size"))}).filter(Boolean)},extend:function(){if(this.isHTML5){var e=this;Object.defineProperty(e.media,"quality",{get:function(){var t=z.getSources.call(e).find(function(t){return t.getAttribute("src")===e.source});return t&&Number(t.getAttribute("size"))},set:function(t){var n=z.getSources.call(e).find(function(e){return Number(e.getAttribute("size"))===t});if(n){var i=e.media,a=i.currentTime,s=i.paused,o=i.preload,r=i.readyState;e.media.src=n.getAttribute("src"),("none"!==o||r)&&(e.once("loadedmetadata",function(){e.currentTime=a,s||e.play()}),e.media.load()),k.call(e,e.media,"qualitychange",!1,{quality:t})}}})}},cancelRequests:function(){this.isHTML5&&(P(z.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function K(e){return m.array(e)?e.filter(function(t,n){return e.indexOf(t)===n}):e}function Y(e,t){return t.split(".").reduce(function(e,t){return e&&e[t]},e)}function J(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];if(!n.length)return e;var s=n.shift();return m.object(s)?(Object.keys(s).forEach(function(t){m.object(s[t])?(Object.keys(e).includes(t)||Object.assign(e,i({},t,{})),J(e[t],s[t])):Object.assign(e,i({},t,s[t]))}),J.apply(void 0,[e].concat(n))):e}function Q(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return m.empty(e)?e:e.toString().replace(/{(\d+)}/g,function(e,t){return n[t].toString()})}function $(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1"),"g"),n.toString())}function G(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toString().replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})}function X(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toString();return(e=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toString();return e=$(e,"-"," "),e=$(e,"_"," "),$(e=G(e)," ","")}(e)).charAt(0).toLowerCase()+e.slice(1)}function Z(e){var t=document.createElement("div");return t.appendChild(e),t.innerHTML}var ee={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},te=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(m.empty(e)||m.empty(t))return"";var n=Y(t.i18n,e);if(m.empty(n))return Object.keys(ee).includes(e)?ee[e]:"";var i={"{seektime}":t.seekTime,"{title}":t.title};return Object.entries(i).forEach(function(e){var t=a(e,2),i=t[0],s=t[1];n=$(n,i,s)}),n},ne=function(){function t(n){e(this,t),this.enabled=n.config.storage.enabled,this.key=n.config.storage.key}return n(t,[{key:"get",value:function(e){if(!t.supported||!this.enabled)return null;var n=window.localStorage.getItem(this.key);if(m.empty(n))return null;var i=JSON.parse(n);return m.string(e)&&e.length?i[e]:i}},{key:"set",value:function(e){if(t.supported&&this.enabled&&m.object(e)){var n=this.get();m.empty(n)&&(n={}),J(n,e),window.localStorage.setItem(this.key,JSON.stringify(n))}}}],[{key:"supported",get:function(){try{if(!("localStorage"in window))return!1;return window.localStorage.setItem("___test","___test"),window.localStorage.removeItem("___test"),!0}catch(e){return!1}}}]),t}();function ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"text";return new Promise(function(n,i){try{var a=new XMLHttpRequest;if(!("withCredentials"in a))return;a.addEventListener("load",function(){if("text"===t)try{n(JSON.parse(a.responseText))}catch(e){n(a.responseText)}else n(a.response)}),a.addEventListener("error",function(){throw new Error(a.status)}),a.open("GET",e,!0),a.responseType=t,a.send()}catch(e){i(e)}})}function ae(e,t){if(m.string(e)){var n=m.string(t),i=function(){return null!==document.getElementById(t)},a=function(e,t){e.innerHTML=t,n&&i()||document.body.insertAdjacentElement("afterbegin",e)};if(!n||!i()){var s=ne.supported,o=document.createElement("div");if(o.setAttribute("hidden",""),n&&o.setAttribute("id",t),s){var r=window.localStorage.getItem("".concat("cache","-").concat(t));if(null!==r){var l=JSON.parse(r);a(o,l.content)}}ie(e).then(function(e){m.empty(e)||(s&&window.localStorage.setItem("".concat("cache","-").concat(t),JSON.stringify({content:e})),a(o,e))}).catch(function(){})}}}var se=function(e){return parseInt(e/60/60%60,10)},oe=function(e){return parseInt(e/60%60,10)},re=function(e){return parseInt(e%60,10)};function le(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!m.number(e))return le(null,t,n);var i=function(e){return"0".concat(e).slice(-2)},a=se(e),s=oe(e),o=re(e);return a=t||a>0?"".concat(a,":"):"","".concat(n&&e>0?"-":"").concat(a).concat(i(s),":").concat(i(o))}var ce={getIconUrl:function(){var e=new URL(this.config.iconUrl,window.location).host!==window.location.host||F.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:e}},findElements:function(){try{return this.elements.controls=j.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:_.call(this,this.config.selectors.buttons.play),pause:j.call(this,this.config.selectors.buttons.pause),restart:j.call(this,this.config.selectors.buttons.restart),rewind:j.call(this,this.config.selectors.buttons.rewind),fastForward:j.call(this,this.config.selectors.buttons.fastForward),mute:j.call(this,this.config.selectors.buttons.mute),pip:j.call(this,this.config.selectors.buttons.pip),airplay:j.call(this,this.config.selectors.buttons.airplay),settings:j.call(this,this.config.selectors.buttons.settings),captions:j.call(this,this.config.selectors.buttons.captions),fullscreen:j.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=j.call(this,this.config.selectors.progress),this.elements.inputs={seek:j.call(this,this.config.selectors.inputs.seek),volume:j.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:j.call(this,this.config.selectors.display.buffer),currentTime:j.call(this,this.config.selectors.display.currentTime),duration:j.call(this,this.config.selectors.display.duration)},m.element(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(".".concat(this.config.classNames.tooltip))),!0}catch(e){return this.debug.warn("It looks like there is a problem with your custom controls HTML",e),this.toggleNativeControls(!0),!1}},createIcon:function(e,t){var n=ce.getIconUrl.call(this),i="".concat(n.cors?"":n.url,"#").concat(this.config.iconPrefix),a=document.createElementNS("http://www.w3.org/2000/svg","svg");T(a,J(t,{role:"presentation",focusable:"false"}));var s=document.createElementNS("http://www.w3.org/2000/svg","use"),o="".concat(i,"-").concat(e);return"href"in s&&s.setAttributeNS("http://www.w3.org/1999/xlink","href",o),s.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o),a.appendChild(s),a},createLabel:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=te(e,this.config);return A("span",Object.assign({},t,{class:[t.class,this.config.classNames.hidden].filter(Boolean).join(" ")}),n)},createBadge:function(e){if(m.empty(e))return null;var t=A("span",{class:this.config.classNames.menu.value});return t.appendChild(A("span",{class:this.config.classNames.menu.badge},e)),t},createButton:function(e,t){var n=Object.assign({},t),i=X(e),a={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach(function(e){Object.keys(n).includes(e)&&(a[e]=n[e],delete n[e])}),"button"!==a.element||Object.keys(n).includes("type")||(n.type="button"),Object.keys(n).includes("class")?n.class.includes(this.config.classNames.control)||(n.class+=" ".concat(this.config.classNames.control)):n.class=this.config.classNames.control,e){case"play":a.toggle=!0,a.label="play",a.labelPressed="pause",a.icon="play",a.iconPressed="pause";break;case"mute":a.toggle=!0,a.label="mute",a.labelPressed="unmute",a.icon="volume",a.iconPressed="muted";break;case"captions":a.toggle=!0,a.label="enableCaptions",a.labelPressed="disableCaptions",a.icon="captions-off",a.iconPressed="captions-on";break;case"fullscreen":a.toggle=!0,a.label="enterFullscreen",a.labelPressed="exitFullscreen",a.icon="enter-fullscreen",a.iconPressed="exit-fullscreen";break;case"play-large":n.class+=" ".concat(this.config.classNames.control,"--overlaid"),i="play",a.label="play",a.icon="play";break;default:m.empty(a.label)&&(a.label=i),m.empty(a.icon)&&(a.icon=e)}var s=A(a.element);return a.toggle?(s.appendChild(ce.createIcon.call(this,a.iconPressed,{class:"icon--pressed"})),s.appendChild(ce.createIcon.call(this,a.icon,{class:"icon--not-pressed"})),s.appendChild(ce.createLabel.call(this,a.labelPressed,{class:"label--pressed"})),s.appendChild(ce.createLabel.call(this,a.label,{class:"label--not-pressed"}))):(s.appendChild(ce.createIcon.call(this,a.icon)),s.appendChild(ce.createLabel.call(this,a.label))),J(n,M(this.config.selectors.buttons[i],n)),T(s,n),"play"===i?(m.array(this.elements.buttons[i])||(this.elements.buttons[i]=[]),this.elements.buttons[i].push(s)):this.elements.buttons[i]=s,s},createRange:function(e,t){var n=A("input",J(M(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":te(e,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},t));return this.elements.inputs[e]=n,ce.updateRangeFill.call(this,n),n},createProgress:function(e,t){var n=A("progress",J(M(this.config.selectors.display[e]),{min:0,max:100,value:0,role:"presentation","aria-hidden":!0},t));if("volume"!==e){n.appendChild(A("span",null,"0"));var i={played:"played",buffer:"buffered"}[e],a=i?te(i,this.config):"";n.innerText="% ".concat(a.toLowerCase())}return this.elements.display[e]=n,n},createTime:function(e){var t=M(this.config.selectors.display[e]),n=A("div",J(t,{class:"".concat(this.config.classNames.display.time," ").concat(t.class?t.class:"").trim(),"aria-label":te(e,this.config)}),"00:00");return this.elements.display[e]=n,n},bindMenuItemShortcuts:function(e,t){var n=this;y(e,"keydown keyup",function(i){if([32,38,39,40].includes(i.which)&&(i.preventDefault(),i.stopPropagation(),"keydown"!==i.type)){var a,s=I(e,'[role="menuitemradio"]');if(!s&&[32,39].includes(i.which))ce.showMenuPanel.call(n,t,!0);else 32!==i.which&&(40===i.which||s&&39===i.which?(a=e.nextElementSibling,m.element(a)||(a=e.parentNode.firstElementChild)):(a=e.previousElementSibling,m.element(a)||(a=e.parentNode.lastElementChild)),O.call(n,a,!0))}},!1),y(e,"keyup",function(e){13===e.which&&ce.focusFirstMenuItem.call(n,null,!0)})},createMenuItem:function(e){var t=this,n=e.value,i=e.list,a=e.type,s=e.title,o=e.badge,r=void 0===o?null:o,l=e.checked,c=void 0!==l&&l,u=M(this.config.selectors.inputs[a]),d=A("button",J(u,{type:"button",role:"menuitemradio",class:"".concat(this.config.classNames.control," ").concat(u.class?u.class:"").trim(),"aria-checked":c,value:n})),h=A("span");h.innerHTML=s,m.element(r)&&h.appendChild(r),d.appendChild(h),Object.defineProperty(d,"checked",{enumerable:!0,get:function(){return"true"===d.getAttribute("aria-checked")},set:function(e){e&&Array.from(d.parentNode.children).filter(function(e){return I(e,'[role="menuitemradio"]')}).forEach(function(e){return e.setAttribute("aria-checked","false")}),d.setAttribute("aria-checked",e?"true":"false")}}),this.listeners.bind(d,"click keyup",function(e){if(!m.keyboardEvent(e)||32===e.which){switch(e.preventDefault(),e.stopPropagation(),d.checked=!0,a){case"language":t.currentTrack=Number(n);break;case"quality":t.quality=n;break;case"speed":t.speed=parseFloat(n)}ce.showMenuPanel.call(t,"home",m.keyboardEvent(e))}},a,!1),ce.bindMenuItemShortcuts.call(this,d,a),i.appendChild(d)},formatTime:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return m.number(e)?le(e,se(this.duration)>0,t):e},updateTimeDisplay:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];m.element(e)&&m.number(t)&&(e.innerText=ce.formatTime(t,n))},updateVolume:function(){this.supported.ui&&(m.element(this.elements.inputs.volume)&&ce.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),m.element(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;m.element(e)&&(e.value=t,ce.updateRangeFill.call(this,e))},updateProgress:function(e){var t=this;if(this.supported.ui&&m.event(e)){var n,i,a=0;if(e)switch(e.type){case"timeupdate":case"seeking":case"seeked":n=this.currentTime,i=this.duration,a=0===n||0===i||Number.isNaN(n)||Number.isNaN(i)?0:(n/i*100).toFixed(2),"timeupdate"===e.type&&ce.setRange.call(this,this.elements.inputs.seek,a);break;case"playing":case"progress":!function(e,n){var i=m.number(n)?n:0,a=m.element(e)?e:t.elements.display.buffer;if(m.element(a)){a.value=i;var s=a.getElementsByTagName("span")[0];m.element(s)&&(s.childNodes[0].nodeValue=i)}}(this.elements.display.buffer,100*this.buffered)}}},updateRangeFill:function(e){var t=m.event(e)?e.target:e;if(m.element(t)&&"range"===t.getAttribute("type")){if(I(t,this.config.selectors.inputs.seek)){t.setAttribute("aria-valuenow",this.currentTime);var n=ce.formatTime(this.currentTime),i=ce.formatTime(this.duration),a=te("seekLabel",this.config);t.setAttribute("aria-valuetext",a.replace("{currentTime}",n).replace("{duration}",i))}else if(I(t,this.config.selectors.inputs.volume)){var s=100*t.value;t.setAttribute("aria-valuenow",s),t.setAttribute("aria-valuetext","".concat(s.toFixed(1),"%"))}else t.setAttribute("aria-valuenow",t.value);F.isWebkit&&t.style.setProperty("--value","".concat(t.value/t.max*100,"%"))}},updateSeekTooltip:function(e){var t=this;if(this.config.tooltips.seek&&m.element(this.elements.inputs.seek)&&m.element(this.elements.display.seekTooltip)&&0!==this.duration){var n=0,i=this.elements.progress.getBoundingClientRect(),a="".concat(this.config.classNames.tooltip,"--visible"),s=function(e){L(t.elements.display.seekTooltip,a,e)};if(this.touch)s(!1);else{if(m.event(e))n=100/i.width*(e.pageX-i.left);else{if(!x(this.elements.display.seekTooltip,a))return;n=parseFloat(this.elements.display.seekTooltip.style.left,10)}n<0?n=0:n>100&&(n=100),ce.updateTimeDisplay.call(this,this.elements.display.seekTooltip,this.duration/100*n),this.elements.display.seekTooltip.style.left="".concat(n,"%"),m.event(e)&&["mouseenter","mouseleave"].includes(e.type)&&s("mouseenter"===e.type)}}},timeUpdate:function(e){var t=!m.element(this.elements.display.duration)&&this.config.invertTime;ce.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||ce.updateProgress.call(this,e)},durationUpdate:function(){if(this.supported.ui&&(this.config.invertTime||!this.currentTime)){if(this.duration>=Math.pow(2,32))return N(this.elements.display.currentTime,!0),void N(this.elements.progress,!0);m.element(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);var e=m.element(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&ce.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&ce.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),ce.updateSeekTooltip.call(this)}},toggleMenuButton:function(e,t){N(this.elements.settings.buttons[e],!t)},updateSetting:function(e,t,n){var i=this.elements.settings.panels[e],a=null,s=t;if("captions"===e)a=this.currentTrack;else{if(a=m.empty(n)?this[e]:n,m.empty(a)&&(a=this.config[e].default),!m.empty(this.options[e])&&!this.options[e].includes(a))return void this.debug.warn("Unsupported value of '".concat(a,"' for ").concat(e));if(!this.config[e].options.includes(a))return void this.debug.warn("Disabled value of '".concat(a,"' for ").concat(e))}if(m.element(s)||(s=i&&i.querySelector('[role="menu"]')),m.element(s)){this.elements.settings.buttons[e].querySelector(".".concat(this.config.classNames.menu.value)).innerHTML=ce.getLabel.call(this,e,a);var o=s&&s.querySelector('[value="'.concat(a,'"]'));m.element(o)&&(o.checked=!0)}},getLabel:function(e,t){switch(e){case"speed":return 1===t?te("normal",this.config):"".concat(t,"&times;");case"quality":if(m.number(t)){var n=te("qualityLabel.".concat(t),this.config);return n.length?n:"".concat(t,"p")}return G(t);case"captions":return he.getLabel.call(this);default:return null}},setQualityMenu:function(e){var t=this;if(m.element(this.elements.settings.panels.quality)){var n=this.elements.settings.panels.quality.querySelector('[role="menu"]');m.array(e)&&(this.options.quality=K(e).filter(function(e){return t.config.quality.options.includes(e)}));var i=!m.empty(this.options.quality)&&this.options.quality.length>1;if(ce.toggleMenuButton.call(this,"quality",i),C(n),ce.checkMenu.call(this),i){this.options.quality.sort(function(e,n){var i=t.config.quality.options;return i.indexOf(e)>i.indexOf(n)?1:-1}).forEach(function(e){ce.createMenuItem.call(t,{value:e,list:n,type:"quality",title:ce.getLabel.call(t,"quality",e),badge:function(e){var n=te("qualityBadge.".concat(e),t.config);return n.length?ce.createBadge.call(t,n):null}(e)})}),ce.updateSetting.call(this,"quality",n)}}},setCaptionsMenu:function(){var e=this;if(m.element(this.elements.settings.panels.captions)){var t=this.elements.settings.panels.captions.querySelector('[role="menu"]'),n=he.getTracks.call(this),i=Boolean(n.length);if(ce.toggleMenuButton.call(this,"captions",i),C(t),ce.checkMenu.call(this),i){var a=n.map(function(n,i){return{value:i,checked:e.captions.toggled&&e.currentTrack===i,title:he.getLabel.call(e,n),badge:n.language&&ce.createBadge.call(e,n.language.toUpperCase()),list:t,type:"language"}});a.unshift({value:-1,checked:!this.captions.toggled,title:te("disabled",this.config),list:t,type:"language"}),a.forEach(ce.createMenuItem.bind(this)),ce.updateSetting.call(this,"captions",t)}}},setSpeedMenu:function(e){var t=this;if(m.element(this.elements.settings.panels.speed)){var n=this.elements.settings.panels.speed.querySelector('[role="menu"]');m.array(e)?this.options.speed=e:(this.isHTML5||this.isVimeo)&&(this.options.speed=[.5,.75,1,1.25,1.5,1.75,2]),this.options.speed=this.options.speed.filter(function(e){return t.config.speed.options.includes(e)});var i=!m.empty(this.options.speed)&&this.options.speed.length>1;ce.toggleMenuButton.call(this,"speed",i),C(n),ce.checkMenu.call(this),i&&(this.options.speed.forEach(function(e){ce.createMenuItem.call(t,{value:e,list:n,type:"speed",title:ce.getLabel.call(t,"speed",e)})}),ce.updateSetting.call(this,"speed",n))}},checkMenu:function(){var e=this.elements.settings.buttons,t=!m.empty(e)&&Object.values(e).some(function(e){return!e.hidden});N(this.elements.settings.menu,!t)},focusFirstMenuItem:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.elements.settings.popup.hidden){var n=e;m.element(n)||(n=Object.values(this.elements.settings.panels).find(function(e){return!e.hidden}));var i=n.querySelector('[role^="menuitem"]');O.call(this,i,t)}},toggleMenu:function(e){var t=this.elements.settings.popup,n=this.elements.buttons.settings;if(m.element(t)&&m.element(n)){var i=t.hidden,a=i;if(m.boolean(e))a=e;else if(m.keyboardEvent(e)&&27===e.which)a=!1;else if(m.event(e)){var s=t.contains(e.target);if(s||!s&&e.target!==n&&a)return}n.setAttribute("aria-expanded",a),N(t,!a),L(this.elements.container,this.config.classNames.menu.open,a),a&&m.keyboardEvent(e)?ce.focusFirstMenuItem.call(this,null,!0):a||i||O.call(this,n,m.keyboardEvent(e))}},getMenuSize:function(e){var t=e.cloneNode(!0);t.style.position="absolute",t.style.opacity=0,t.removeAttribute("hidden"),e.parentNode.appendChild(t);var n=t.scrollWidth,i=t.scrollHeight;return P(t),{width:n,height:i}},showMenuPanel:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=document.getElementById("plyr-settings-".concat(this.id,"-").concat(t));if(m.element(i)){var a=i.parentNode,s=Array.from(a.children).find(function(e){return!e.hidden});if(W.transitions&&!W.reducedMotion){a.style.width="".concat(s.scrollWidth,"px"),a.style.height="".concat(s.scrollHeight,"px");var o=ce.getMenuSize.call(this,i);y.call(this,a,D,function t(n){n.target===a&&["width","height"].includes(n.propertyName)&&(a.style.width="",a.style.height="",v.call(e,a,D,t))}),a.style.width="".concat(o.width,"px"),a.style.height="".concat(o.height,"px")}N(s,!0),N(i,!1),ce.focusFirstMenuItem.call(this,i,n)}},setDownloadLink:function(){var e=this.elements.buttons.download;m.element(e)&&e.setAttribute("href",this.download)},create:function(e){var t=this,n=A("div",M(this.config.selectors.controls.wrapper));if(this.config.controls.includes("restart")&&n.appendChild(ce.createButton.call(this,"restart")),this.config.controls.includes("rewind")&&n.appendChild(ce.createButton.call(this,"rewind")),this.config.controls.includes("play")&&n.appendChild(ce.createButton.call(this,"play")),this.config.controls.includes("fast-forward")&&n.appendChild(ce.createButton.call(this,"fast-forward")),this.config.controls.includes("progress")){var i=A("div",M(this.config.selectors.progress));if(i.appendChild(ce.createRange.call(this,"seek",{id:"plyr-seek-".concat(e.id)})),i.appendChild(ce.createProgress.call(this,"buffer")),this.config.tooltips.seek){var a=A("span",{class:this.config.classNames.tooltip},"00:00");i.appendChild(a),this.elements.display.seekTooltip=a}this.elements.progress=i,n.appendChild(this.elements.progress)}if(this.config.controls.includes("current-time")&&n.appendChild(ce.createTime.call(this,"currentTime")),this.config.controls.includes("duration")&&n.appendChild(ce.createTime.call(this,"duration")),this.config.controls.includes("mute")||this.config.controls.includes("volume")){var s=A("div",{class:"plyr__volume"});if(this.config.controls.includes("mute")&&s.appendChild(ce.createButton.call(this,"mute")),this.config.controls.includes("volume")){var o={max:1,step:.05,value:this.config.volume};s.appendChild(ce.createRange.call(this,"volume",J(o,{id:"plyr-volume-".concat(e.id)}))),this.elements.volume=s}n.appendChild(s)}if(this.config.controls.includes("captions")&&n.appendChild(ce.createButton.call(this,"captions")),this.config.controls.includes("settings")&&!m.empty(this.config.settings)){var r=A("div",{class:"plyr__menu",hidden:""});r.appendChild(ce.createButton.call(this,"settings",{"aria-haspopup":!0,"aria-controls":"plyr-settings-".concat(e.id),"aria-expanded":!1}));var l=A("div",{class:"plyr__menu__container",id:"plyr-settings-".concat(e.id),hidden:""}),c=A("div"),u=A("div",{id:"plyr-settings-".concat(e.id,"-home")}),d=A("div",{role:"menu"});u.appendChild(d),c.appendChild(u),this.elements.settings.panels.home=u,this.config.settings.forEach(function(n){var i=A("button",J(M(t.config.selectors.buttons.settings),{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--forward"),role:"menuitem","aria-haspopup":!0,hidden:""}));ce.bindMenuItemShortcuts.call(t,i,n),y(i,"click",function(){ce.showMenuPanel.call(t,n,!1)});var a=A("span",null,te(n,t.config)),s=A("span",{class:t.config.classNames.menu.value});s.innerHTML=e[n],a.appendChild(s),i.appendChild(a),d.appendChild(i);var o=A("div",{id:"plyr-settings-".concat(e.id,"-").concat(n),hidden:""}),r=A("button",{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--back")});r.appendChild(A("span",{"aria-hidden":!0},te(n,t.config))),r.appendChild(A("span",{class:t.config.classNames.hidden},te("menuBack",t.config))),y(o,"keydown",function(e){37===e.which&&(e.preventDefault(),e.stopPropagation(),ce.showMenuPanel.call(t,"home",!0))},!1),y(r,"click",function(){ce.showMenuPanel.call(t,"home",!1)}),o.appendChild(r),o.appendChild(A("div",{role:"menu"})),c.appendChild(o),t.elements.settings.buttons[n]=i,t.elements.settings.panels[n]=o}),l.appendChild(c),r.appendChild(l),n.appendChild(r),this.elements.settings.popup=l,this.elements.settings.menu=r}if(this.config.controls.includes("pip")&&W.pip&&n.appendChild(ce.createButton.call(this,"pip")),this.config.controls.includes("airplay")&&W.airplay&&n.appendChild(ce.createButton.call(this,"airplay")),this.config.controls.includes("download")){var h={element:"a",href:this.download,target:"_blank"},p=this.config.urls.download;!m.url(p)&&this.isEmbed&&J(h,{icon:"logo-".concat(this.provider),label:this.provider}),n.appendChild(ce.createButton.call(this,"download",h))}return this.config.controls.includes("fullscreen")&&n.appendChild(ce.createButton.call(this,"fullscreen")),this.config.controls.includes("play-large")&&this.elements.container.appendChild(ce.createButton.call(this,"play-large")),this.elements.controls=n,this.isHTML5&&ce.setQualityMenu.call(this,z.getQualityOptions.call(this)),ce.setSpeedMenu.call(this),n},inject:function(){var e=this;if(this.config.loadSprite){var t=ce.getIconUrl.call(this);t.cors&&ae(t.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());var n=null;this.elements.controls=null;var i={id:this.id,seektime:this.config.seekTime,title:this.config.title},s=!0;m.function(this.config.controls)&&(this.config.controls=this.config.controls.call(this.props)),this.config.controls||(this.config.controls=[]),m.element(this.config.controls)||m.string(this.config.controls)?n=this.config.controls:(n=ce.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:he.getLabel.call(this)}),s=!1);var o,r=function(e){var t=e;return Object.entries(i).forEach(function(e){var n=a(e,2),i=n[0],s=n[1];t=$(t,"{".concat(i,"}"),s)}),t};if(s&&(m.string(this.config.controls)?n=r(n):m.element(n)&&(n.innerHTML=r(n.innerHTML))),m.string(this.config.selectors.controls.container)&&(o=document.querySelector(this.config.selectors.controls.container)),m.element(o)||(o=this.elements.container),o[m.element(n)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",n),m.element(this.elements.controls)||ce.findElements.call(this),!m.empty(this.elements.buttons)){var l=function(t){var n=e.config.classNames.controlPressed;Object.defineProperty(t,"pressed",{enumerable:!0,get:function(){return x(t,n)},set:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];L(t,n,e)}})};Object.values(this.elements.buttons).filter(Boolean).forEach(function(e){m.array(e)||m.nodeList(e)?Array.from(e).filter(Boolean).forEach(l):l(e)})}if(window.navigator.userAgent.includes("Edge")&&H(o),this.config.tooltips.controls){var c=this.config,u=c.classNames,d=c.selectors,h="".concat(d.controls.wrapper," ").concat(d.labels," .").concat(u.hidden),p=_.call(this,h);Array.from(p).forEach(function(t){L(t,e.config.classNames.hidden,!1),L(t,e.config.classNames.tooltip,!0)})}}};function ue(e){var t=e;if(!(arguments.length>1&&void 0!==arguments[1])||arguments[1]){var n=document.createElement("a");n.href=t,t=n.href}try{return new URL(t)}catch(e){return null}}function de(e){var t=new URLSearchParams;return m.object(e)&&Object.entries(e).forEach(function(e){var n=a(e,2),i=n[0],s=n[1];t.set(i,s)}),t}var he={setup:function(){if(this.supported.ui)if(!this.isVideo||this.isYouTube||this.isHTML5&&!W.textTracks)m.array(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&ce.setCaptionsMenu.call(this);else{var e,t;if(m.element(this.elements.captions)||(this.elements.captions=A("div",M(this.config.selectors.captions)),e=this.elements.captions,t=this.elements.wrapper,m.element(e)&&m.element(t)&&t.parentNode.insertBefore(e,t.nextSibling)),F.isIE&&window.URL){var n=this.media.querySelectorAll("track");Array.from(n).forEach(function(e){var t=e.getAttribute("src"),n=ue(t);null!==n&&n.hostname!==window.location.href.hostname&&["http:","https:"].includes(n.protocol)&&ie(t,"blob").then(function(t){e.setAttribute("src",window.URL.createObjectURL(t))}).catch(function(){P(e)})})}var i=K((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map(function(e){return e.split("-")[0]})),s=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();if("auto"===s)s=a(i,1)[0];var o=this.storage.get("captions");if(m.boolean(o)||(o=this.config.captions.active),Object.assign(this.captions,{toggled:!1,active:o,language:s,languages:i}),this.isHTML5){var r=this.config.captions.update?"addtrack removetrack":"removetrack";y.call(this,this.media.textTracks,r,he.update.bind(this))}setTimeout(he.update.bind(this),0)}},update:function(){var e=this,t=he.getTracks.call(this,!0),n=this.captions,i=n.active,a=n.language,s=n.meta,o=n.currentTrackNode,r=Boolean(t.find(function(e){return e.language===a}));this.isHTML5&&this.isVideo&&t.filter(function(e){return!s.get(e)}).forEach(function(t){e.debug.log("Track added",t),s.set(t,{default:"showing"===t.mode}),t.mode="hidden",y.call(e,t,"cuechange",function(){return he.updateCues.call(e)})}),(r&&this.language!==a||!t.includes(o))&&(he.setLanguage.call(this,a),he.toggle.call(this,i&&r)),L(this.elements.container,this.config.classNames.captions.enabled,!m.empty(t)),(this.config.controls||[]).includes("settings")&&this.config.settings.includes("captions")&&ce.setCaptionsMenu.call(this)},toggle:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.supported.ui){var n=this.captions.toggled,i=this.config.classNames.captions.active,a=m.nullOrUndefined(e)?!n:e;if(a!==n){if(t||(this.captions.active=a,this.storage.set({captions:a})),!this.language&&a&&!t){var o=he.getTracks.call(this),r=he.findTrack.call(this,[this.captions.language].concat(s(this.captions.languages)),!0);return this.captions.language=r.language,void he.set.call(this,o.indexOf(r))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=a),L(this.elements.container,i,a),this.captions.toggled=a,ce.updateSetting.call(this,"captions"),k.call(this,this.media,a?"captionsenabled":"captionsdisabled")}}},set:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=he.getTracks.call(this);if(-1!==e)if(m.number(e))if(e in n){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;var i=n[e],a=(i||{}).language;this.captions.currentTrackNode=i,ce.updateSetting.call(this,"captions"),t||(this.captions.language=a,this.storage.set({language:a})),this.isVimeo&&this.embed.enableTextTrack(a),k.call(this,this.media,"languagechange")}he.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&he.updateCues.call(this)}else this.debug.warn("Track not found",e);else this.debug.warn("Invalid caption argument",e);else he.toggle.call(this,!1,t)},setLanguage:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(m.string(e)){var n=e.toLowerCase();this.captions.language=n;var i=he.getTracks.call(this),a=he.findTrack.call(this,[n]);he.set.call(this,i.indexOf(a),t)}else this.debug.warn("Invalid language argument",e)},getTracks:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return Array.from((this.media||{}).textTracks||[]).filter(function(n){return!e.isHTML5||t||e.captions.meta.has(n)}).filter(function(e){return["captions","subtitles"].includes(e.kind)})},findTrack:function(e){var t,n=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=he.getTracks.call(this),s=function(e){return Number((n.captions.meta.get(e)||{}).default)},o=Array.from(a).sort(function(e,t){return s(t)-s(e)});return e.every(function(e){return!(t=o.find(function(t){return t.language===e}))}),t||(i?o[0]:void 0)},getCurrentTrack:function(){return he.getTracks.call(this)[this.currentTrack]},getLabel:function(e){var t=e;return!m.track(t)&&W.textTracks&&this.captions.toggled&&(t=he.getCurrentTrack.call(this)),m.track(t)?m.empty(t.label)?m.empty(t.language)?te("enabled",this.config):e.language.toUpperCase():t.label:te("disabled",this.config)},updateCues:function(e){if(this.supported.ui)if(m.element(this.elements.captions))if(m.nullOrUndefined(e)||Array.isArray(e)){var t=e;if(!t){var n=he.getCurrentTrack.call(this);t=Array.from((n||{}).activeCues||[]).map(function(e){return e.getCueAsHTML()}).map(Z)}var i=t.map(function(e){return e.trim()}).join("\n");if(i!==this.elements.captions.innerHTML){C(this.elements.captions);var a=A("span",M(this.config.selectors.caption));a.innerHTML=i,this.elements.captions.appendChild(a),k.call(this,this.media,"cuechange")}}else this.debug.warn("updateCues: Invalid input",e);else this.debug.warn("No captions element to render to")}},pe={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:"16:9",clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/3.4.7/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240]},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"SD"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/v2/video/{0}.json"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://www.googleapis.com/youtube/v3/videos?id={0}&key={1}&fields=items(snippet(title))&part=snippet"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption",menu:{quality:".js-plyr__menu__list--quality"}},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"plyr__tab-focus"},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id"}},keys:{google:null},ads:{enabled:!1,publisherId:""}},me="picture-in-picture",fe="inline",ge={html5:"html5",youtube:"youtube",vimeo:"vimeo"},ye={audio:"audio",video:"video"};var ve=function(){},be=function(){function t(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e(this,t),this.enabled=window.console&&n,this.enabled&&this.log("Debugging enabled")}return n(t,[{key:"log",get:function(){return this.enabled?Function.prototype.bind.call(console.log,console):ve}},{key:"warn",get:function(){return this.enabled?Function.prototype.bind.call(console.warn,console):ve}},{key:"error",get:function(){return this.enabled?Function.prototype.bind.call(console.error,console):ve}}]),t}();function ke(){if(this.enabled){var e=this.player.elements.buttons.fullscreen;m.element(e)&&(e.pressed=this.active),k.call(this.player,this.target,this.active?"enterfullscreen":"exitfullscreen",!0),F.isIos||function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(m.element(e)){var n=_.call(this,"button:not(:disabled), input:not(:disabled), [tabindex]"),i=n[0],a=n[n.length-1];g.call(this,this.elements.container,"keydown",function(e){if("Tab"===e.key&&9===e.keyCode){var t=document.activeElement;t!==a||e.shiftKey?t===i&&e.shiftKey&&(a.focus(),e.preventDefault()):(i.focus(),e.preventDefault())}},t,!1)}}.call(this.player,this.target,this.active)}}function we(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(t?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=t?"hidden":"",L(this.target,this.player.config.classNames.fullscreen.fallback,t),F.isIos){var n=document.head.querySelector('meta[name="viewport"]'),i="viewport-fit=cover";n||(n=document.createElement("meta")).setAttribute("name","viewport");var a=m.string(n.content)&&n.content.includes(i);t?(this.cleanupViewport=!a,a||(n.content+=",".concat(i))):this.cleanupViewport&&(n.content=n.content.split(",").filter(function(e){return e.trim()!==i}).join(",")),setTimeout(function(){return H(e.target)},100)}ke.call(this)}var Te=function(){function t(n){var i=this;e(this,t),this.player=n,this.prefix=t.prefix,this.property=t.property,this.scrollPosition={x:0,y:0},y.call(this.player,document,"ms"===this.prefix?"MSFullscreenChange":"".concat(this.prefix,"fullscreenchange"),function(){ke.call(i)}),y.call(this.player,this.player.elements.container,"dblclick",function(e){m.element(i.player.elements.controls)&&i.player.elements.controls.contains(e.target)||i.toggle()}),this.update()}return n(t,[{key:"update",value:function(){this.enabled?this.player.debug.log("".concat(t.native?"Native":"Fallback"," fullscreen enabled")):this.player.debug.log("Fullscreen not supported and fallback disabled"),L(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)}},{key:"enter",value:function(){this.enabled&&(F.isIos&&this.player.config.fullscreen.iosNative?this.target.webkitEnterFullscreen():t.native?this.prefix?m.empty(this.prefix)||this.target["".concat(this.prefix,"Request").concat(this.property)]():this.target.requestFullscreen():we.call(this,!0))}},{key:"exit",value:function(){if(this.enabled)if(F.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),this.player.play();else if(t.native)if(this.prefix){if(!m.empty(this.prefix)){var e="moz"===this.prefix?"Cancel":"Exit";document["".concat(this.prefix).concat(e).concat(this.property)]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document);else we.call(this,!1)}},{key:"toggle",value:function(){this.active?this.exit():this.enter()}},{key:"enabled",get:function(){return(t.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}},{key:"active",get:function(){return!!this.enabled&&(t.native?(this.prefix?document["".concat(this.prefix).concat(this.property,"Element")]:document.fullscreenElement)===this.target:x(this.target,this.player.config.classNames.fullscreen.fallback))}},{key:"target",get:function(){return F.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.container}}],[{key:"native",get:function(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}},{key:"prefix",get:function(){if(m.function(document.exitFullscreen))return"";var e="";return["webkit","moz","ms"].some(function(t){return!(!m.function(document["".concat(t,"ExitFullscreen")])&&!m.function(document["".concat(t,"CancelFullScreen")]))&&(e=t,!0)}),e}},{key:"property",get:function(){return"moz"===this.prefix?"FullScreen":"Fullscreen"}}]),t}();function Ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Promise(function(n,i){var a=new Image,s=function(){delete a.onload,delete a.onerror,(a.naturalWidth>=t?n:i)(a)};Object.assign(a,{onload:s,onerror:s,src:e})})}var Ee={addStyleHook:function(){L(this.elements.container,this.config.selectors.container.replace(".",""),!0),L(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build:function(){var e=this;if(this.listeners.media(),!this.supported.ui)return this.debug.warn("Basic support only for ".concat(this.provider," ").concat(this.type)),void Ee.toggleNativeControls.call(this,!0);m.element(this.elements.controls)||(ce.inject.call(this),this.listeners.controls()),Ee.toggleNativeControls.call(this),this.isHTML5&&he.setup.call(this),this.volume=null,this.muted=null,this.speed=null,this.loop=null,this.quality=null,ce.updateVolume.call(this),ce.timeUpdate.call(this),Ee.checkPlaying.call(this),L(this.elements.container,this.config.classNames.pip.supported,W.pip&&this.isHTML5&&this.isVideo),L(this.elements.container,this.config.classNames.airplay.supported,W.airplay&&this.isHTML5),L(this.elements.container,this.config.classNames.isIos,F.isIos),L(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout(function(){k.call(e,e.media,"ready")},0),Ee.setTitle.call(this),this.poster&&Ee.setPoster.call(this,this.poster,!1).catch(function(){}),this.config.duration&&ce.durationUpdate.call(this)},setTitle:function(){var e=te("play",this.config);if(m.string(this.config.title)&&!m.empty(this.config.title)&&(e+=", ".concat(this.config.title)),Array.from(this.elements.buttons.play||[]).forEach(function(t){t.setAttribute("aria-label",e)}),this.isEmbed){var t=j.call(this,"iframe");if(!m.element(t))return;var n=m.empty(this.config.title)?"video":this.config.title,i=te("frameTitle",this.config);t.setAttribute("title",i.replace("{title}",n))}},togglePoster:function(e){L(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster:function(e){var t=this;return arguments.length>1&&void 0!==arguments[1]&&!arguments[1]||!this.poster?(this.media.setAttribute("poster",e),function(){var e=this;return new Promise(function(t){return e.ready?setTimeout(t,0):y.call(e,e.elements.container,"ready",t)}).then(function(){})}.call(this).then(function(){return Ae(e)}).catch(function(n){throw e===t.poster&&Ee.togglePoster.call(t,!1),n}).then(function(){if(e!==t.poster)throw new Error("setPoster cancelled by later call to setPoster")}).then(function(){return Object.assign(t.elements.poster.style,{backgroundImage:"url('".concat(e,"')"),backgroundSize:""}),Ee.togglePoster.call(t,!0),e})):Promise.reject(new Error("Poster already set"))},checkPlaying:function(e){var t=this;L(this.elements.container,this.config.classNames.playing,this.playing),L(this.elements.container,this.config.classNames.paused,this.paused),L(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach(function(e){e.pressed=t.playing}),m.event(e)&&"timeupdate"===e.type||Ee.toggleControls.call(this)},checkLoading:function(e){var t=this;this.loading=["stalled","waiting"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout(function(){L(t.elements.container,t.config.classNames.loading,t.loading),Ee.toggleControls.call(t)},this.loading?250:0)},toggleControls:function(e){var t=this.elements.controls;if(t&&this.config.hideControls){var n=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||n))}}},Pe=function(){function t(n){e(this,t),this.player=n,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}return n(t,[{key:"handleKey",value:function(e){var t=this.player,n=t.elements,i=e.keyCode?e.keyCode:e.which,a="keydown"===e.type,s=a&&i===this.lastKey;if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)&&m.number(i)){if(a){var o=document.activeElement;if(m.element(o)){var r=t.config.selectors.editable;if(o!==n.inputs.seek&&I(o,r))return;if(32===e.which&&I(o,'button, [role^="menuitem"]'))return}switch([32,37,38,39,40,48,49,50,51,52,53,54,56,57,67,70,73,75,76,77,79].includes(i)&&(e.preventDefault(),e.stopPropagation()),i){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:s||(t.currentTime=t.duration/10*(i-48));break;case 32:case 75:s||t.togglePlay();break;case 38:t.increaseVolume(.1);break;case 40:t.decreaseVolume(.1);break;case 77:s||(t.muted=!t.muted);break;case 39:t.forward();break;case 37:t.rewind();break;case 70:t.fullscreen.toggle();break;case 67:s||t.toggleCaptions();break;case 76:t.loop=!t.loop}!t.fullscreen.enabled&&t.fullscreen.active&&27===i&&t.fullscreen.toggle(),this.lastKey=i}else this.lastKey=null}}},{key:"toggleMenu",value:function(e){ce.toggleMenu.call(this.player,e)}},{key:"firstTouch",value:function(){var e=this.player,t=e.elements;e.touch=!0,L(t.container,e.config.classNames.isTouch,!0)}},{key:"setTabFocus",value:function(e){var t=this.player,n=t.elements;if(clearTimeout(this.focusTimer),"keydown"!==e.type||9===e.which){"keydown"===e.type&&(this.lastKeyDown=e.timeStamp);var i,a=e.timeStamp-this.lastKeyDown<=20;if("focus"!==e.type||a)i=t.config.classNames.tabFocus,L(_.call(t,".".concat(i)),i,!1),this.focusTimer=setTimeout(function(){var e=document.activeElement;n.container.contains(e)&&L(document.activeElement,t.config.classNames.tabFocus,!0)},10)}}},{key:"global",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.player;t.config.keyboard.global&&g.call(t,window,"keydown keyup",this.handleKey,e,!1),g.call(t,document.body,"click",this.toggleMenu,e),b.call(t,document.body,"touchstart",this.firstTouch),g.call(t,document.body,"keydown focus blur",this.setTabFocus,e,!1,!0)}},{key:"container",value:function(){var e=this.player,t=e.elements;!e.config.keyboard.global&&e.config.keyboard.focused&&y.call(e,t.container,"keydown keyup",this.handleKey,!1),y.call(e,t.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",function(n){var i=t.controls;i&&"enterfullscreen"===n.type&&(i.pressed=!1,i.hover=!1);var a=0;["touchstart","touchmove","mousemove"].includes(n.type)&&(Ee.toggleControls.call(e,!0),a=e.touch?3e3:2e3),clearTimeout(e.timers.controls),e.timers.controls=setTimeout(function(){return Ee.toggleControls.call(e,!1)},a)})}},{key:"media",value:function(){var e=this.player,t=e.elements;if(y.call(e,e.media,"timeupdate seeking seeked",function(t){return ce.timeUpdate.call(e,t)}),y.call(e,e.media,"durationchange loadeddata loadedmetadata",function(t){return ce.durationUpdate.call(e,t)}),y.call(e,e.media,"canplay loadeddata",function(){N(t.volume,!e.hasAudio),N(t.buttons.mute,!e.hasAudio)}),y.call(e,e.media,"ended",function(){e.isHTML5&&e.isVideo&&e.config.resetOnEnd&&e.restart()}),y.call(e,e.media,"progress playing seeking seeked",function(t){return ce.updateProgress.call(e,t)}),y.call(e,e.media,"volumechange",function(t){return ce.updateVolume.call(e,t)}),y.call(e,e.media,"playing play pause ended emptied timeupdate",function(t){return Ee.checkPlaying.call(e,t)}),y.call(e,e.media,"waiting canplay seeked playing",function(t){return Ee.checkLoading.call(e,t)}),y.call(e,e.media,"playing",function(){e.ads&&e.ads.enabled&&!e.ads.initialized&&e.ads.managerPromise.then(function(){return e.ads.play()}).catch(function(){return e.play()})}),e.supported.ui&&e.config.clickToPlay&&!e.isAudio){var n=j.call(e,".".concat(e.config.classNames.video));if(!m.element(n))return;y.call(e,t.container,"click",function(i){([t.container,n].includes(i.target)||n.contains(i.target))&&(e.touch&&e.config.hideControls||(e.ended?(e.restart(),e.play()):e.togglePlay()))})}e.supported.ui&&e.config.disableContextMenu&&y.call(e,t.wrapper,"contextmenu",function(e){e.preventDefault()},!1),y.call(e,e.media,"volumechange",function(){e.storage.set({volume:e.volume,muted:e.muted})}),y.call(e,e.media,"ratechange",function(){ce.updateSetting.call(e,"speed"),e.storage.set({speed:e.speed})}),y.call(e,e.media,"qualitychange",function(t){ce.updateSetting.call(e,"quality",null,t.detail.quality)}),y.call(e,e.media,"ready qualitychange",function(){ce.setDownloadLink.call(e)});var i=e.config.events.concat(["keyup","keydown"]).join(" ");y.call(e,e.media,i,function(n){var i=n.detail,a=void 0===i?{}:i;"error"===n.type&&(a=e.media.error),k.call(e,t.container,n.type,!0,a)})}},{key:"proxy",value:function(e,t,n){var i=this.player,a=i.config.listeners[n],s=!0;m.function(a)&&(s=a.call(i,e)),s&&m.function(t)&&t.call(i,e)}},{key:"bind",value:function(e,t,n,i){var a=this,s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.player,r=o.config.listeners[i],l=m.function(r);y.call(o,e,t,function(e){return a.proxy(e,n,i)},s&&!l)}},{key:"controls",value:function(){var e=this,t=this.player,n=t.elements,i=F.isIE?"change":"input";if(n.buttons.play&&Array.from(n.buttons.play).forEach(function(n){e.bind(n,"click",t.togglePlay,"play")}),this.bind(n.buttons.restart,"click",t.restart,"restart"),this.bind(n.buttons.rewind,"click",t.rewind,"rewind"),this.bind(n.buttons.fastForward,"click",t.forward,"fastForward"),this.bind(n.buttons.mute,"click",function(){t.muted=!t.muted},"mute"),this.bind(n.buttons.captions,"click",function(){return t.toggleCaptions()}),this.bind(n.buttons.download,"click",function(){k.call(t,t.media,"download")},"download"),this.bind(n.buttons.fullscreen,"click",function(){t.fullscreen.toggle()},"fullscreen"),this.bind(n.buttons.pip,"click",function(){t.pip="toggle"},"pip"),this.bind(n.buttons.airplay,"click",t.airplay,"airplay"),this.bind(n.buttons.settings,"click",function(e){e.stopPropagation(),ce.toggleMenu.call(t,e)}),this.bind(n.buttons.settings,"keyup",function(e){var n=e.which;[13,32].includes(n)&&(13!==n?(e.preventDefault(),e.stopPropagation(),ce.toggleMenu.call(t,e)):ce.focusFirstMenuItem.call(t,null,!0))},null,!1),this.bind(n.settings.menu,"keydown",function(e){27===e.which&&ce.toggleMenu.call(t,e)}),this.bind(n.inputs.seek,"mousedown mousemove",function(e){var t=n.progress.getBoundingClientRect(),i=100/t.width*(e.pageX-t.left);e.currentTarget.setAttribute("seek-value",i)}),this.bind(n.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",function(e){var n=e.currentTarget,i=e.keyCode?e.keyCode:e.which;if(!m.keyboardEvent(e)||39===i||37===i){t.lastSeekTime=Date.now();var a=n.hasAttribute("play-on-seeked"),s=["mouseup","touchend","keyup"].includes(e.type);a&&s?(n.removeAttribute("play-on-seeked"),t.play()):!s&&t.playing&&(n.setAttribute("play-on-seeked",""),t.pause())}}),F.isIos){var s=_.call(t,'input[type="range"]');Array.from(s).forEach(function(t){return e.bind(t,i,function(e){return H(e.target)})})}this.bind(n.inputs.seek,i,function(e){var n=e.currentTarget,i=n.getAttribute("seek-value");m.empty(i)&&(i=n.value),n.removeAttribute("seek-value"),t.currentTime=i/n.max*t.duration},"seek"),this.bind(n.progress,"mouseenter mouseleave mousemove",function(e){return ce.updateSeekTooltip.call(t,e)}),F.isWebkit&&Array.from(_.call(t,'input[type="range"]')).forEach(function(n){e.bind(n,"input",function(e){return ce.updateRangeFill.call(t,e.target)})}),t.config.toggleInvert&&!m.element(n.display.duration)&&this.bind(n.display.currentTime,"click",function(){0!==t.currentTime&&(t.config.invertTime=!t.config.invertTime,ce.timeUpdate.call(t))}),this.bind(n.inputs.volume,i,function(e){t.volume=e.target.value},"volume"),this.bind(n.controls,"mouseenter mouseleave",function(e){n.controls.hover=!t.touch&&"mouseenter"===e.type}),this.bind(n.controls,"mousedown mouseup touchstart touchend touchcancel",function(e){n.controls.pressed=["mousedown","touchstart"].includes(e.type)}),this.bind(n.controls,"focusin",function(){var n=t.config,i=t.elements,a=t.timers;L(i.controls,n.classNames.noTransition,!0),Ee.toggleControls.call(t,!0),setTimeout(function(){L(i.controls,n.classNames.noTransition,!1)},0);var s=e.touch?3e3:4e3;clearTimeout(a.controls),a.controls=setTimeout(function(){return Ee.toggleControls.call(t,!1)},s)}),this.bind(n.inputs.volume,"wheel",function(e){var n=e.webkitDirectionInvertedFromDevice,i=a([e.deltaX,-e.deltaY].map(function(e){return n?-e:e}),2),s=i[0],o=i[1],r=Math.sign(Math.abs(s)>Math.abs(o)?s:o);t.increaseVolume(r/50);var l=t.media.volume;(1===r&&l<1||-1===r&&l>0)&&e.preventDefault()},"volume",!1)}}]),t}();"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var Ce,Se=(function(e,t){e.exports=function(){var e=function(){},t={},n={},i={};function a(e,t){if(e){var a=i[e];if(n[e]=t,a)for(;a.length;)a[0](e,t),a.splice(0,1)}}function s(t,n){t.call&&(t={success:t}),n.length?(t.error||e)(n):(t.success||e)(t)}function o(t,n,i,a){var s,r,l=document,c=i.async,u=(i.numRetries||0)+1,d=i.before||e,h=t.replace(/^(css|img)!/,"");a=a||0,/(^css!|\.css$)/.test(t)?(s=!0,(r=l.createElement("link")).rel="stylesheet",r.href=h):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(r=l.createElement("img")).src=h:((r=l.createElement("script")).src=t,r.async=void 0===c||c),r.onload=r.onerror=r.onbeforeload=function(e){var l=e.type[0];if(s&&"hideFocus"in r)try{r.sheet.cssText.length||(l="e")}catch(e){l="e"}if("e"==l&&(a+=1)<u)return o(t,n,i,a);n(t,l,e.defaultPrevented)},!1!==d(t,r)&&l.head.appendChild(r)}function r(e,n,i){var r,l;if(n&&n.trim&&(r=n),l=(r?i:n)||{},r){if(r in t)throw"LoadJS";t[r]=!0}!function(e,t,n){var i,a,s=(e=e.push?e:[e]).length,r=s,l=[];for(i=function(e,n,i){if("e"==n&&l.push(e),"b"==n){if(!i)return;l.push(e)}--s||t(l)},a=0;a<r;a++)o(e[a],i,n)}(e,function(e){s(l,e),a(r,e)},l)}return r.ready=function(e,t){return function(e,t){e=e.push?e:[e];var a,s,o,r=[],l=e.length,c=l;for(a=function(e,n){n.length&&r.push(e),--c||t(r)};l--;)s=e[l],(o=n[s])?a(s,o):(i[s]=i[s]||[]).push(a)}(e,function(e){s(t,e)}),r},r.done=function(e){a(e,[])},r.reset=function(){t={},n={},i={}},r.isDefined=function(e){return e in t},r}()}(Ce={exports:{}},Ce.exports),Ce.exports);function Me(e){return new Promise(function(t,n){Se(e,{success:t,error:n})})}function Ne(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,k.call(this,this.media,e?"play":"pause"))}var Le={setup:function(){var e=this;L(this.elements.wrapper,this.config.classNames.embed,!0),Le.setAspectRatio.call(this),m.object(window.Vimeo)?Le.ready.call(this):Me(this.config.urls.vimeo.sdk).then(function(){Le.ready.call(e)}).catch(function(t){e.debug.warn("Vimeo API failed to load",t)})},setAspectRatio:function(e){var t=a((m.string(e)?e:this.config.ratio).split(":").map(Number),2),n=100/t[0]*t[1];if(Le.padding=n,this.elements.wrapper.style.paddingBottom="".concat(n,"%"),this.supported.ui){var i=(240-n)/4.8;this.media.style.transform="translateY(-".concat(i,"%)")}},ready:function(){var e=this,t=this,n=de({loop:t.config.loop.active,autoplay:t.autoplay,byline:!1,portrait:!1,title:!1,speed:!0,transparent:0,gesture:"media",playsinline:!this.config.fullscreen.iosNative}),i=t.media.getAttribute("src");m.empty(i)&&(i=t.media.getAttribute(t.config.attributes.embed.id));var s,o=(s=i,m.empty(s)?null:m.number(Number(s))?s:s.match(/^.*(vimeo.com\/|video\/)(\d+).*/)?RegExp.$2:s),r=A("iframe"),l=Q(t.config.urls.vimeo.iframe,o,n);r.setAttribute("src",l),r.setAttribute("allowfullscreen",""),r.setAttribute("allowtransparency",""),r.setAttribute("allow","autoplay");var c=A("div",{poster:t.poster,class:t.config.classNames.embedContainer});c.appendChild(r),t.media=S(c,t.media),ie(Q(t.config.urls.vimeo.api,o),"json").then(function(e){if(!m.empty(e)){var n=new URL(e[0].thumbnail_large);n.pathname="".concat(n.pathname.split("_")[0],".jpg"),Ee.setPoster.call(t,n.href).catch(function(){})}}),t.embed=new window.Vimeo.Player(r,{autopause:t.config.autopause,muted:t.muted}),t.media.paused=!0,t.media.currentTime=0,t.supported.ui&&t.embed.disableTextTrack(),t.media.play=function(){return Ne.call(t,!0),t.embed.play()},t.media.pause=function(){return Ne.call(t,!1),t.embed.pause()},t.media.stop=function(){t.pause(),t.currentTime=0};var u=t.media.currentTime;Object.defineProperty(t.media,"currentTime",{get:function(){return u},set:function(e){var n=t.embed,i=t.media,a=t.paused,s=t.volume,o=a&&!n.hasPlayed;i.seeking=!0,k.call(t,i,"seeking"),Promise.resolve(o&&n.setVolume(0)).then(function(){return n.setCurrentTime(e)}).then(function(){return o&&n.pause()}).then(function(){return o&&n.setVolume(s)}).catch(function(){})}});var d=t.config.speed.selected;Object.defineProperty(t.media,"playbackRate",{get:function(){return d},set:function(e){t.embed.setPlaybackRate(e).then(function(){d=e,k.call(t,t.media,"ratechange")}).catch(function(e){"Error"===e.name&&ce.setSpeedMenu.call(t,[])})}});var h=t.config.volume;Object.defineProperty(t.media,"volume",{get:function(){return h},set:function(e){t.embed.setVolume(e).then(function(){h=e,k.call(t,t.media,"volumechange")})}});var p=t.config.muted;Object.defineProperty(t.media,"muted",{get:function(){return p},set:function(e){var n=!!m.boolean(e)&&e;t.embed.setVolume(n?0:t.config.volume).then(function(){p=n,k.call(t,t.media,"volumechange")})}});var f,g=t.config.loop;Object.defineProperty(t.media,"loop",{get:function(){return g},set:function(e){var n=m.boolean(e)?e:t.config.loop.active;t.embed.setLoop(n).then(function(){g=n})}}),t.embed.getVideoUrl().then(function(e){f=e,ce.setDownloadLink.call(t)}).catch(function(t){e.debug.warn(t)}),Object.defineProperty(t.media,"currentSrc",{get:function(){return f}}),Object.defineProperty(t.media,"ended",{get:function(){return t.currentTime===t.duration}}),Promise.all([t.embed.getVideoWidth(),t.embed.getVideoHeight()]).then(function(t){var n,i,a;Le.ratio=(n=t[0],i=t[1],a=function e(t,n){return 0===n?t:e(n,t%n)}(n,i),"".concat(n/a,":").concat(i/a)),Le.setAspectRatio.call(e,Le.ratio)}),t.embed.setAutopause(t.config.autopause).then(function(e){t.config.autopause=e}),t.embed.getVideoTitle().then(function(n){t.config.title=n,Ee.setTitle.call(e)}),t.embed.getCurrentTime().then(function(e){u=e,k.call(t,t.media,"timeupdate")}),t.embed.getDuration().then(function(e){t.media.duration=e,k.call(t,t.media,"durationchange")}),t.embed.getTextTracks().then(function(e){t.media.textTracks=e,he.setup.call(t)}),t.embed.on("cuechange",function(e){var n=e.cues,i=(void 0===n?[]:n).map(function(e){return t=e.text,n=document.createDocumentFragment(),i=document.createElement("div"),n.appendChild(i),i.innerHTML=t,n.firstChild.innerText;var t,n,i});he.updateCues.call(t,i)}),t.embed.on("loaded",function(){(t.embed.getPaused().then(function(e){Ne.call(t,!e),e||k.call(t,t.media,"playing")}),m.element(t.embed.element)&&t.supported.ui)&&t.embed.element.setAttribute("tabindex",-1)}),t.embed.on("play",function(){Ne.call(t,!0),k.call(t,t.media,"playing")}),t.embed.on("pause",function(){Ne.call(t,!1)}),t.embed.on("timeupdate",function(e){t.media.seeking=!1,u=e.seconds,k.call(t,t.media,"timeupdate")}),t.embed.on("progress",function(e){t.media.buffered=e.percent,k.call(t,t.media,"progress"),1===parseInt(e.percent,10)&&k.call(t,t.media,"canplaythrough"),t.embed.getDuration().then(function(e){e!==t.media.duration&&(t.media.duration=e,k.call(t,t.media,"durationchange"))})}),t.embed.on("seeked",function(){t.media.seeking=!1,k.call(t,t.media,"seeked")}),t.embed.on("ended",function(){t.media.paused=!0,k.call(t,t.media,"ended")}),t.embed.on("error",function(e){t.media.error=e,k.call(t,t.media,"error")}),t.on("enterfullscreen exitfullscreen",function(e){var n=t.fullscreen.target;if(n===t.elements.container){var i="enterfullscreen"===e.type,s=a(Le.ratio.split(":").map(Number),2),o=s[0]>s[1]?"width":"height";n.style[o]=i?"".concat(Le.padding,"%"):null}}),setTimeout(function(){return Ee.build.call(t)},0)}};function xe(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,k.call(this,this.media,e?"play":"pause"))}var Ie,_e={setup:function(){var e=this;L(this.elements.wrapper,this.config.classNames.embed,!0),_e.setAspectRatio.call(this),m.object(window.YT)&&m.function(window.YT.Player)?_e.ready.call(this):(Me(this.config.urls.youtube.sdk).catch(function(t){e.debug.warn("YouTube API failed to load",t)}),window.onYouTubeReadyCallbacks=window.onYouTubeReadyCallbacks||[],window.onYouTubeReadyCallbacks.push(function(){_e.ready.call(e)}),window.onYouTubeIframeAPIReady=function(){window.onYouTubeReadyCallbacks.forEach(function(e){e()})})},getTitle:function(e){var t=this;if(m.function(this.embed.getVideoData)){var n=this.embed.getVideoData().title;if(m.empty(n))return this.config.title=n,void Ee.setTitle.call(this)}var i=this.config.keys.google;m.string(i)&&!m.empty(i)&&ie(Q(this.config.urls.youtube.api,e,i)).then(function(e){m.object(e)&&(t.config.title=e.items[0].snippet.title,Ee.setTitle.call(t))}).catch(function(){})},setAspectRatio:function(){var e=this.config.ratio.split(":");this.elements.wrapper.style.paddingBottom="".concat(100/e[0]*e[1],"%")},ready:function(){var e=this,t=e.media.getAttribute("id");if(m.empty(t)||!t.startsWith("youtube-")){var n=e.media.getAttribute("src");m.empty(n)&&(n=e.media.getAttribute(this.config.attributes.embed.id));var i,a,s=(i=n,m.empty(i)?null:i.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:i),o=(a=e.provider,"".concat(a,"-").concat(Math.floor(1e4*Math.random()))),r=A("div",{id:o,poster:e.poster});e.media=S(r,e.media);var l=function(e){return"https://img.youtube.com/vi/".concat(s,"/").concat(e,"default.jpg")};Ae(l("maxres"),121).catch(function(){return Ae(l("sd"),121)}).catch(function(){return Ae(l("hq"))}).then(function(t){return Ee.setPoster.call(e,t.src)}).then(function(t){t.includes("maxres")||(e.elements.poster.style.backgroundSize="cover")}).catch(function(){}),e.embed=new window.YT.Player(o,{videoId:s,playerVars:{autoplay:e.config.autoplay?1:0,hl:e.config.hl,controls:e.supported.ui?0:1,rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,disablekb:1,playsinline:1,widget_referrer:window?window.location.href:null,cc_load_policy:e.captions.active?1:0,cc_lang_pref:e.config.captions.language},events:{onError:function(t){if(!e.media.error){var n=t.data,i={2:"The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.",5:"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.",100:"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.",101:"The owner of the requested video does not allow it to be played in embedded players.",150:"The owner of the requested video does not allow it to be played in embedded players."}[n]||"An unknown error occured";e.media.error={code:n,message:i},k.call(e,e.media,"error")}},onPlaybackRateChange:function(t){var n=t.target;e.media.playbackRate=n.getPlaybackRate(),k.call(e,e.media,"ratechange")},onReady:function(t){if(!m.function(e.media.play)){var n=t.target;_e.getTitle.call(e,s),e.media.play=function(){xe.call(e,!0),n.playVideo()},e.media.pause=function(){xe.call(e,!1),n.pauseVideo()},e.media.stop=function(){n.stopVideo()},e.media.duration=n.getDuration(),e.media.paused=!0,e.media.currentTime=0,Object.defineProperty(e.media,"currentTime",{get:function(){return Number(n.getCurrentTime())},set:function(t){e.paused&&!e.embed.hasPlayed&&e.embed.mute(),e.media.seeking=!0,k.call(e,e.media,"seeking"),n.seekTo(t)}}),Object.defineProperty(e.media,"playbackRate",{get:function(){return n.getPlaybackRate()},set:function(e){n.setPlaybackRate(e)}});var i=e.config.volume;Object.defineProperty(e.media,"volume",{get:function(){return i},set:function(t){i=t,n.setVolume(100*i),k.call(e,e.media,"volumechange")}});var a=e.config.muted;Object.defineProperty(e.media,"muted",{get:function(){return a},set:function(t){var i=m.boolean(t)?t:a;a=i,n[i?"mute":"unMute"](),k.call(e,e.media,"volumechange")}}),Object.defineProperty(e.media,"currentSrc",{get:function(){return n.getVideoUrl()}}),Object.defineProperty(e.media,"ended",{get:function(){return e.currentTime===e.duration}}),e.options.speed=n.getAvailablePlaybackRates(),e.supported.ui&&e.media.setAttribute("tabindex",-1),k.call(e,e.media,"timeupdate"),k.call(e,e.media,"durationchange"),clearInterval(e.timers.buffering),e.timers.buffering=setInterval(function(){e.media.buffered=n.getVideoLoadedFraction(),(null===e.media.lastBuffered||e.media.lastBuffered<e.media.buffered)&&k.call(e,e.media,"progress"),e.media.lastBuffered=e.media.buffered,1===e.media.buffered&&(clearInterval(e.timers.buffering),k.call(e,e.media,"canplaythrough"))},200),setTimeout(function(){return Ee.build.call(e)},50)}},onStateChange:function(t){var n=t.target;switch(clearInterval(e.timers.playing),e.media.seeking&&[1,2].includes(t.data)&&(e.media.seeking=!1,k.call(e,e.media,"seeked")),t.data){case-1:k.call(e,e.media,"timeupdate"),e.media.buffered=n.getVideoLoadedFraction(),k.call(e,e.media,"progress");break;case 0:xe.call(e,!1),e.media.loop?(n.stopVideo(),n.playVideo()):k.call(e,e.media,"ended");break;case 1:e.media.paused&&!e.embed.hasPlayed?e.media.pause():(xe.call(e,!0),k.call(e,e.media,"playing"),e.timers.playing=setInterval(function(){k.call(e,e.media,"timeupdate")},50),e.media.duration!==n.getDuration()&&(e.media.duration=n.getDuration(),k.call(e,e.media,"durationchange")));break;case 2:e.muted||e.embed.unMute(),xe.call(e,!1)}k.call(e,e.elements.container,"statechange",!1,{code:t.data})}}})}}},je={setup:function(){this.media?(L(this.elements.container,this.config.classNames.type.replace("{0}",this.type),!0),L(this.elements.container,this.config.classNames.provider.replace("{0}",this.provider),!0),this.isEmbed&&L(this.elements.container,this.config.classNames.type.replace("{0}","video"),!0),this.isVideo&&(this.elements.wrapper=A("div",{class:this.config.classNames.video}),w(this.media,this.elements.wrapper),this.elements.poster=A("div",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?z.extend.call(this):this.isYouTube?_e.setup.call(this):this.isVimeo&&Le.setup.call(this)):this.debug.warn("No media element found!")}},Oe=function(){function t(n){var i=this;e(this,t),this.player=n,this.publisherId=n.config.ads.publisherId,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise(function(e,t){i.on("loaded",e),i.on("error",t)}),this.load()}return n(t,[{key:"load",value:function(){var e=this;this.enabled&&(m.object(window.google)&&m.object(window.google.ima)?this.ready():Me(this.player.config.urls.googleIMA.sdk).then(function(){e.ready()}).catch(function(){e.trigger("error",new Error("Google IMA SDK failed to load"))}))}},{key:"ready",value:function(){var e=this;this.startSafetyTimer(12e3,"ready()"),this.managerPromise.then(function(){e.clearSafetyTimer("onAdsManagerLoaded()")}),this.listeners(),this.setupIMA()}},{key:"setupIMA",value:function(){this.elements.container=A("div",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container),this.requestAds()}},{key:"requestAds",value:function(){var e=this,t=this.player.elements.container;try{this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,function(t){return e.onAdsManagerLoaded(t)},!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,function(t){return e.onAdError(t)},!1);var n=new google.ima.AdsRequest;n.adTagUrl=this.tagUrl,n.linearAdSlotWidth=t.offsetWidth,n.linearAdSlotHeight=t.offsetHeight,n.nonLinearAdSlotWidth=t.offsetWidth,n.nonLinearAdSlotHeight=t.offsetHeight,n.forceNonLinearFullSlot=!1,n.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(n)}catch(e){this.onAdError(e)}}},{key:"pollCountdown",value:function(){var e=this;if(!(arguments.length>0&&void 0!==arguments[0]&&arguments[0]))return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");this.countdownTimer=setInterval(function(){var t=le(Math.max(e.manager.getRemainingTime(),0)),n="".concat(te("advertisement",e.player.config)," - ").concat(t);e.elements.container.setAttribute("data-badge-text",n)},100)}},{key:"onAdsManagerLoaded",value:function(e){var t=this;if(this.enabled){var n=new google.ima.AdsRenderingSettings;n.restoreCustomPlaybackStateOnAdBreakComplete=!0,n.enablePreloading=!0,this.manager=e.getAdsManager(this.player,n),this.cuePoints=this.manager.getCuePoints(),m.empty(this.cuePoints)||this.cuePoints.forEach(function(e){if(0!==e&&-1!==e&&e<t.player.duration){var n=t.player.elements.progress;if(m.element(n)){var i=100/t.player.duration*e,a=A("span",{class:t.player.config.classNames.cues});a.style.left="".concat(i.toString(),"%"),n.appendChild(a)}}}),this.manager.setVolume(this.player.volume),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,function(e){return t.onAdError(e)}),Object.keys(google.ima.AdEvent.Type).forEach(function(e){t.manager.addEventListener(google.ima.AdEvent.Type[e],function(e){return t.onAdEvent(e)})}),this.trigger("loaded")}}},{key:"onAdEvent",value:function(e){var t=this,n=this.player.elements.container,i=e.getAd(),a=function(e){var n="ads".concat(e.replace(/_/g,"").toLowerCase());k.call(t.player,t.player.media,n)};switch(e.type){case google.ima.AdEvent.Type.LOADED:this.trigger("loaded"),a(e.type),this.pollCountdown(!0),i.isLinear()||(i.width=n.offsetWidth,i.height=n.offsetHeight);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:a(e.type),this.loadAds();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:a(e.type),this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:a(e.type),this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.STARTED:case google.ima.AdEvent.Type.MIDPOINT:case google.ima.AdEvent.Type.COMPLETE:case google.ima.AdEvent.Type.IMPRESSION:case google.ima.AdEvent.Type.CLICK:a(e.type)}}},{key:"onAdError",value:function(e){this.cancel(),this.player.debug.warn("Ads error",e)}},{key:"listeners",value:function(){var e,t=this,n=this.player.elements.container;this.player.on("ended",function(){t.loader.contentComplete()}),this.player.on("seeking",function(){return e=t.player.currentTime}),this.player.on("seeked",function(){var n=t.player.currentTime;m.empty(t.cuePoints)||t.cuePoints.forEach(function(i,a){e<i&&i<n&&(t.manager.discardAdBreak(),t.cuePoints.splice(a,1))})}),window.addEventListener("resize",function(){t.manager&&t.manager.resize(n.offsetWidth,n.offsetHeight,google.ima.ViewMode.NORMAL)})}},{key:"play",value:function(){var e=this,t=this.player.elements.container;this.managerPromise||this.resumeContent(),this.managerPromise.then(function(){e.elements.displayContainer.initialize();try{e.initialized||(e.manager.init(t.offsetWidth,t.offsetHeight,google.ima.ViewMode.NORMAL),e.manager.start()),e.initialized=!0}catch(t){e.onAdError(t)}}).catch(function(){})}},{key:"resumeContent",value:function(){this.elements.container.style.zIndex="",this.playing=!1,this.player.currentTime<this.player.duration&&this.player.play()}},{key:"pauseContent",value:function(){this.elements.container.style.zIndex=3,this.playing=!0,this.player.pause()}},{key:"cancel",value:function(){this.initialized&&this.resumeContent(),this.trigger("error"),this.loadAds()}},{key:"loadAds",value:function(){var e=this;this.managerPromise.then(function(){e.manager&&e.manager.destroy(),e.managerPromise=new Promise(function(t){e.on("loaded",t),e.player.debug.log(e.manager)}),e.requestAds()}).catch(function(){})}},{key:"trigger",value:function(e){for(var t=this,n=arguments.length,i=new Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];var s=this.events[e];m.array(s)&&s.forEach(function(e){m.function(e)&&e.apply(t,i)})}},{key:"on",value:function(e,t){return m.array(this.events[e])||(this.events[e]=[]),this.events[e].push(t),this}},{key:"startSafetyTimer",value:function(e,t){var n=this;this.player.debug.log("Safety timer invoked from: ".concat(t)),this.safetyTimer=setTimeout(function(){n.cancel(),n.clearSafetyTimer("startSafetyTimer()")},e)}},{key:"clearSafetyTimer",value:function(e){m.nullOrUndefined(this.safetyTimer)||(this.player.debug.log("Safety timer cleared from: ".concat(e)),clearTimeout(this.safetyTimer),this.safetyTimer=null)}},{key:"enabled",get:function(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.ads.enabled&&!m.empty(this.publisherId)}},{key:"tagUrl",get:function(){var e={AV_PUBLISHERID:"58c25bb0073ef448b1087ad6",AV_CHANNELID:"5a0458dc28a06145e4519d21",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:this.publisherId};return"".concat("https://go.aniview.com/api/adserver6/vast/","?").concat(de(e))}}]),t}(),qe={insertElements:function(e,t){var n=this;m.string(t)?E(e,this.media,{src:t}):m.array(t)&&t.forEach(function(t){E(e,n.media,t)})},change:function(e){var t=this;Y(e,"sources.length")?(z.cancelRequests.call(this),this.destroy.call(this,function(){t.options.quality=[],P(t.media),t.media=null,m.element(t.elements.container)&&t.elements.container.removeAttribute("class");var n=e.sources,i=e.type,s=a(n,1)[0],o=s.provider,r=void 0===o?ge.html5:o,l=s.src,c="html5"===r?i:"div",u="html5"===r?{}:{src:l};Object.assign(t,{provider:r,type:i,supported:W.check(i,r,t.config.playsinline),media:A(c,u)}),t.elements.container.appendChild(t.media),m.boolean(e.autoplay)&&(t.config.autoplay=e.autoplay),t.isHTML5&&(t.config.crossorigin&&t.media.setAttribute("crossorigin",""),t.config.autoplay&&t.media.setAttribute("autoplay",""),m.empty(e.poster)||(t.poster=e.poster),t.config.loop.active&&t.media.setAttribute("loop",""),t.config.muted&&t.media.setAttribute("muted",""),t.config.playsinline&&t.media.setAttribute("playsinline","")),Ee.addStyleHook.call(t),t.isHTML5&&qe.insertElements.call(t,"source",n),t.config.title=e.title,je.setup.call(t),t.isHTML5&&Object.keys(e).includes("tracks")&&qe.insertElements.call(t,"track",e.tracks),(t.isHTML5||t.isEmbed&&!t.supported.ui)&&Ee.build.call(t),t.isHTML5&&t.media.load(),t.fullscreen.update()},!0)):this.debug.warn("Invalid source format")}},Re=function(){function t(n,i){var a=this;if(e(this,t),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=W.touch,this.media=n,m.string(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||m.nodeList(this.media)||m.array(this.media))&&(this.media=this.media[0]),this.config=J({},pe,t.defaults,i||{},function(){try{return JSON.parse(a.media.getAttribute("data-plyr-config"))}catch(e){return{}}}()),this.elements={container:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new be(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",W),!m.nullOrUndefined(this.media)&&m.element(this.media))if(this.media.plyr)this.debug.warn("Target already setup");else if(this.config.enabled)if(W.check().api){var s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;var o=this.media.tagName.toLowerCase(),r=null,l=null;switch(o){case"div":if(r=this.media.querySelector("iframe"),m.element(r)){if(l=ue(r.getAttribute("src")),this.provider=function(e){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtu\.?be)\/.+$/.test(e)?ge.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)?ge.vimeo:null}(l.toString()),this.elements.container=this.media,this.media=r,this.elements.container.className="",l.search.length){var c=["1","true"];c.includes(l.searchParams.get("autoplay"))&&(this.config.autoplay=!0),c.includes(l.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=c.includes(l.searchParams.get("playsinline")),this.config.hl=l.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(m.empty(this.provider)||!Object.keys(ge).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=ye.video;break;case"video":case"audio":this.type=o,this.provider=ge.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=W.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new Pe(this),this.storage=new ne(this),this.media.plyr=this,m.element(this.elements.container)||(this.elements.container=A("div"),w(this.media,this.elements.container)),Ee.addStyleHook.call(this),je.setup.call(this),this.config.debug&&y.call(this,this.elements.container,this.config.events.join(" "),function(e){a.debug.log("event: ".concat(e.type))}),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&Ee.build.call(this),this.listeners.container(),this.listeners.global(),this.fullscreen=new Te(this),this.config.ads.enabled&&(this.ads=new Oe(this)),this.config.autoplay&&this.play(),this.lastSeekTime=0):this.debug.error("Setup failed: no support")}else this.debug.error("Setup failed: no support");else this.debug.error("Setup failed: disabled by config");else this.debug.error("Setup failed: no suitable element passed")}return n(t,[{key:"play",value:function(){return m.function(this.media.play)?this.media.play():null}},{key:"pause",value:function(){this.playing&&m.function(this.media.pause)&&this.media.pause()}},{key:"togglePlay",value:function(e){(m.boolean(e)?e:!this.playing)?this.play():this.pause()}},{key:"stop",value:function(){this.isHTML5?(this.pause(),this.restart()):m.function(this.media.stop)&&this.media.stop()}},{key:"restart",value:function(){this.currentTime=0}},{key:"rewind",value:function(e){this.currentTime=this.currentTime-(m.number(e)?e:this.config.seekTime)}},{key:"forward",value:function(e){this.currentTime=this.currentTime+(m.number(e)?e:this.config.seekTime)}},{key:"increaseVolume",value:function(e){var t=this.media.muted?0:this.volume;this.volume=t+(m.number(e)?e:0)}},{key:"decreaseVolume",value:function(e){this.increaseVolume(-e)}},{key:"toggleCaptions",value:function(e){he.toggle.call(this,e,!1)}},{key:"airplay",value:function(){W.airplay&&this.media.webkitShowPlaybackTargetPicker()}},{key:"toggleControls",value:function(e){if(this.supported.ui&&!this.isAudio){var t=x(this.elements.container,this.config.classNames.hideControls),n=void 0===e?void 0:!e,i=L(this.elements.container,this.config.classNames.hideControls,n);if(i&&this.config.controls.includes("settings")&&!m.empty(this.config.settings)&&ce.toggleMenu.call(this,!1),i!==t){var a=i?"controlshidden":"controlsshown";k.call(this,this.media,a)}return!i}return!1}},{key:"on",value:function(e,t){y.call(this,this.elements.container,e,t)}},{key:"once",value:function(e,t){b.call(this,this.elements.container,e,t)}},{key:"off",value:function(e,t){v(this.elements.container,e,t)}},{key:"destroy",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.ready){var i=function(){document.body.style.overflow="",t.embed=null,n?(Object.keys(t.elements).length&&(P(t.elements.buttons.play),P(t.elements.captions),P(t.elements.controls),P(t.elements.wrapper),t.elements.buttons.play=null,t.elements.captions=null,t.elements.controls=null,t.elements.wrapper=null),m.function(e)&&e()):(function(){this&&this.eventListeners&&(this.eventListeners.forEach(function(e){var t=e.element,n=e.type,i=e.callback,a=e.options;t.removeEventListener(n,i,a)}),this.eventListeners=[])}.call(t),S(t.elements.original,t.elements.container),k.call(t,t.elements.original,"destroyed",!0),m.function(e)&&e.call(t.elements.original),t.ready=!1,setTimeout(function(){t.elements=null,t.media=null},200))};this.stop(),this.isHTML5?(clearTimeout(this.timers.loading),Ee.toggleNativeControls.call(this,!0),i()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&m.function(this.embed.destroy)&&this.embed.destroy(),i()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(i),setTimeout(i,200))}}},{key:"supports",value:function(e){return W.mime.call(this,e)}},{key:"isHTML5",get:function(){return Boolean(this.provider===ge.html5)}},{key:"isEmbed",get:function(){return Boolean(this.isYouTube||this.isVimeo)}},{key:"isYouTube",get:function(){return Boolean(this.provider===ge.youtube)}},{key:"isVimeo",get:function(){return Boolean(this.provider===ge.vimeo)}},{key:"isVideo",get:function(){return Boolean(this.type===ye.video)}},{key:"isAudio",get:function(){return Boolean(this.type===ye.audio)}},{key:"playing",get:function(){return Boolean(this.ready&&!this.paused&&!this.ended)}},{key:"paused",get:function(){return Boolean(this.media.paused)}},{key:"stopped",get:function(){return Boolean(this.paused&&0===this.currentTime)}},{key:"ended",get:function(){return Boolean(this.media.ended)}},{key:"currentTime",set:function(e){if(this.duration){var t=m.number(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log("Seeking to ".concat(this.currentTime," seconds"))}},get:function(){return Number(this.media.currentTime)}},{key:"buffered",get:function(){var e=this.media.buffered;return m.number(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}},{key:"seeking",get:function(){return Boolean(this.media.seeking)}},{key:"duration",get:function(){var e=parseFloat(this.config.duration),t=(this.media||{}).duration,n=m.number(t)&&t!==1/0?t:0;return e||n}},{key:"volume",set:function(e){var t=e;m.string(t)&&(t=Number(t)),m.number(t)||(t=this.storage.get("volume")),m.number(t)||(t=this.config.volume),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!m.empty(e)&&this.muted&&t>0&&(this.muted=!1)},get:function(){return Number(this.media.volume)}},{key:"muted",set:function(e){var t=e;m.boolean(t)||(t=this.storage.get("muted")),m.boolean(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t},get:function(){return Boolean(this.media.muted)}},{key:"hasAudio",get:function(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}},{key:"speed",set:function(e){var t=null;m.number(e)&&(t=e),m.number(t)||(t=this.storage.get("speed")),m.number(t)||(t=this.config.speed.selected),t<.1&&(t=.1),t>2&&(t=2),this.config.speed.options.includes(t)?(this.config.speed.selected=t,this.media.playbackRate=t):this.debug.warn("Unsupported speed (".concat(t,")"))},get:function(){return Number(this.media.playbackRate)}},{key:"quality",set:function(e){var t=this.config.quality,n=this.options.quality;if(n.length){var i=[!m.empty(e)&&Number(e),this.storage.get("quality"),t.selected,t.default].find(m.number),a=!0;if(!n.includes(i)){var s=function(e,t){return m.array(e)&&e.length?e.reduce(function(e,n){return Math.abs(n-t)<Math.abs(e-t)?n:e}):null}(n,i);this.debug.warn("Unsupported quality option: ".concat(i,", using ").concat(s," instead")),i=s,a=!1}t.selected=i,this.media.quality=i,a&&this.storage.set({quality:i})}},get:function(){return this.media.quality}},{key:"loop",set:function(e){var t=m.boolean(e)?e:this.config.loop.active;this.config.loop.active=t,this.media.loop=t},get:function(){return Boolean(this.media.loop)}},{key:"source",set:function(e){qe.change.call(this,e)},get:function(){return this.media.currentSrc}},{key:"download",get:function(){var e=this.config.urls.download;return m.url(e)?e:this.source}},{key:"poster",set:function(e){this.isVideo?Ee.setPoster.call(this,e,!1).catch(function(){}):this.debug.warn("Poster can only be set for video")},get:function(){return this.isVideo?this.media.getAttribute("poster"):null}},{key:"autoplay",set:function(e){var t=m.boolean(e)?e:this.config.autoplay;this.config.autoplay=t},get:function(){return Boolean(this.config.autoplay)}},{key:"currentTrack",set:function(e){he.set.call(this,e,!1)},get:function(){var e=this.captions,t=e.toggled,n=e.currentTrack;return t?n:-1}},{key:"language",set:function(e){he.setLanguage.call(this,e,!1)},get:function(){return(he.getCurrentTrack.call(this)||{}).language}},{key:"pip",set:function(e){if(W.pip){var t=m.boolean(e)?e:!this.pip;m.function(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(t?me:fe),m.function(this.media.requestPictureInPicture)&&(!this.pip&&t?this.media.requestPictureInPicture():this.pip&&!t&&document.exitPictureInPicture())}},get:function(){return W.pip?m.empty(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===me:null}}],[{key:"supported",value:function(e,t,n){return W.check(e,t,n)}},{key:"loadSprite",value:function(e,t){return ae(e,t)}},{key:"setup",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=null;return m.string(e)?i=Array.from(document.querySelectorAll(e)):m.nodeList(e)?i=Array.from(e):m.array(e)&&(i=e.filter(m.element)),m.empty(i)?null:i.map(function(e){return new t(e,n)})}}]),t}();return Re.defaults=(Ie=pe,JSON.parse(JSON.stringify(Ie))),Re});
  18839. //# sourceMappingURL=plyr.min.js.map
  18840. /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js")))
  18841. /***/ }),
  18842. /***/ "./node_modules/popper.js/dist/esm/popper.js":
  18843. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  18844. "use strict";
  18845. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  18846. /* WEBPACK VAR INJECTION */(function(global) {/**!
  18847. * @fileOverview Kickass library to create and place poppers near their reference elements.
  18848. * @version 1.14.6
  18849. * @license
  18850. * Copyright (c) 2016 Federico Zivolo and contributors
  18851. *
  18852. * Permission is hereby granted, free of charge, to any person obtaining a copy
  18853. * of this software and associated documentation files (the "Software"), to deal
  18854. * in the Software without restriction, including without limitation the rights
  18855. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  18856. * copies of the Software, and to permit persons to whom the Software is
  18857. * furnished to do so, subject to the following conditions:
  18858. *
  18859. * The above copyright notice and this permission notice shall be included in all
  18860. * copies or substantial portions of the Software.
  18861. *
  18862. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18863. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18864. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  18865. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18866. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  18867. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  18868. * SOFTWARE.
  18869. */
  18870. var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
  18871. var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
  18872. var timeoutDuration = 0;
  18873. for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
  18874. if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
  18875. timeoutDuration = 1;
  18876. break;
  18877. }
  18878. }
  18879. function microtaskDebounce(fn) {
  18880. var called = false;
  18881. return function () {
  18882. if (called) {
  18883. return;
  18884. }
  18885. called = true;
  18886. window.Promise.resolve().then(function () {
  18887. called = false;
  18888. fn();
  18889. });
  18890. };
  18891. }
  18892. function taskDebounce(fn) {
  18893. var scheduled = false;
  18894. return function () {
  18895. if (!scheduled) {
  18896. scheduled = true;
  18897. setTimeout(function () {
  18898. scheduled = false;
  18899. fn();
  18900. }, timeoutDuration);
  18901. }
  18902. };
  18903. }
  18904. var supportsMicroTasks = isBrowser && window.Promise;
  18905. /**
  18906. * Create a debounced version of a method, that's asynchronously deferred
  18907. * but called in the minimum time possible.
  18908. *
  18909. * @method
  18910. * @memberof Popper.Utils
  18911. * @argument {Function} fn
  18912. * @returns {Function}
  18913. */
  18914. var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
  18915. /**
  18916. * Check if the given variable is a function
  18917. * @method
  18918. * @memberof Popper.Utils
  18919. * @argument {Any} functionToCheck - variable to check
  18920. * @returns {Boolean} answer to: is a function?
  18921. */
  18922. function isFunction(functionToCheck) {
  18923. var getType = {};
  18924. return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
  18925. }
  18926. /**
  18927. * Get CSS computed property of the given element
  18928. * @method
  18929. * @memberof Popper.Utils
  18930. * @argument {Eement} element
  18931. * @argument {String} property
  18932. */
  18933. function getStyleComputedProperty(element, property) {
  18934. if (element.nodeType !== 1) {
  18935. return [];
  18936. }
  18937. // NOTE: 1 DOM access here
  18938. var window = element.ownerDocument.defaultView;
  18939. var css = window.getComputedStyle(element, null);
  18940. return property ? css[property] : css;
  18941. }
  18942. /**
  18943. * Returns the parentNode or the host of the element
  18944. * @method
  18945. * @memberof Popper.Utils
  18946. * @argument {Element} element
  18947. * @returns {Element} parent
  18948. */
  18949. function getParentNode(element) {
  18950. if (element.nodeName === 'HTML') {
  18951. return element;
  18952. }
  18953. return element.parentNode || element.host;
  18954. }
  18955. /**
  18956. * Returns the scrolling parent of the given element
  18957. * @method
  18958. * @memberof Popper.Utils
  18959. * @argument {Element} element
  18960. * @returns {Element} scroll parent
  18961. */
  18962. function getScrollParent(element) {
  18963. // Return body, `getScroll` will take care to get the correct `scrollTop` from it
  18964. if (!element) {
  18965. return document.body;
  18966. }
  18967. switch (element.nodeName) {
  18968. case 'HTML':
  18969. case 'BODY':
  18970. return element.ownerDocument.body;
  18971. case '#document':
  18972. return element.body;
  18973. }
  18974. // Firefox want us to check `-x` and `-y` variations as well
  18975. var _getStyleComputedProp = getStyleComputedProperty(element),
  18976. overflow = _getStyleComputedProp.overflow,
  18977. overflowX = _getStyleComputedProp.overflowX,
  18978. overflowY = _getStyleComputedProp.overflowY;
  18979. if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
  18980. return element;
  18981. }
  18982. return getScrollParent(getParentNode(element));
  18983. }
  18984. var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
  18985. var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
  18986. /**
  18987. * Determines if the browser is Internet Explorer
  18988. * @method
  18989. * @memberof Popper.Utils
  18990. * @param {Number} version to check
  18991. * @returns {Boolean} isIE
  18992. */
  18993. function isIE(version) {
  18994. if (version === 11) {
  18995. return isIE11;
  18996. }
  18997. if (version === 10) {
  18998. return isIE10;
  18999. }
  19000. return isIE11 || isIE10;
  19001. }
  19002. /**
  19003. * Returns the offset parent of the given element
  19004. * @method
  19005. * @memberof Popper.Utils
  19006. * @argument {Element} element
  19007. * @returns {Element} offset parent
  19008. */
  19009. function getOffsetParent(element) {
  19010. if (!element) {
  19011. return document.documentElement;
  19012. }
  19013. var noOffsetParent = isIE(10) ? document.body : null;
  19014. // NOTE: 1 DOM access here
  19015. var offsetParent = element.offsetParent || null;
  19016. // Skip hidden elements which don't have an offsetParent
  19017. while (offsetParent === noOffsetParent && element.nextElementSibling) {
  19018. offsetParent = (element = element.nextElementSibling).offsetParent;
  19019. }
  19020. var nodeName = offsetParent && offsetParent.nodeName;
  19021. if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
  19022. return element ? element.ownerDocument.documentElement : document.documentElement;
  19023. }
  19024. // .offsetParent will return the closest TH, TD or TABLE in case
  19025. // no offsetParent is present, I hate this job...
  19026. if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
  19027. return getOffsetParent(offsetParent);
  19028. }
  19029. return offsetParent;
  19030. }
  19031. function isOffsetContainer(element) {
  19032. var nodeName = element.nodeName;
  19033. if (nodeName === 'BODY') {
  19034. return false;
  19035. }
  19036. return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
  19037. }
  19038. /**
  19039. * Finds the root node (document, shadowDOM root) of the given element
  19040. * @method
  19041. * @memberof Popper.Utils
  19042. * @argument {Element} node
  19043. * @returns {Element} root node
  19044. */
  19045. function getRoot(node) {
  19046. if (node.parentNode !== null) {
  19047. return getRoot(node.parentNode);
  19048. }
  19049. return node;
  19050. }
  19051. /**
  19052. * Finds the offset parent common to the two provided nodes
  19053. * @method
  19054. * @memberof Popper.Utils
  19055. * @argument {Element} element1
  19056. * @argument {Element} element2
  19057. * @returns {Element} common offset parent
  19058. */
  19059. function findCommonOffsetParent(element1, element2) {
  19060. // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  19061. if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
  19062. return document.documentElement;
  19063. }
  19064. // Here we make sure to give as "start" the element that comes first in the DOM
  19065. var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
  19066. var start = order ? element1 : element2;
  19067. var end = order ? element2 : element1;
  19068. // Get common ancestor container
  19069. var range = document.createRange();
  19070. range.setStart(start, 0);
  19071. range.setEnd(end, 0);
  19072. var commonAncestorContainer = range.commonAncestorContainer;
  19073. // Both nodes are inside #document
  19074. if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
  19075. if (isOffsetContainer(commonAncestorContainer)) {
  19076. return commonAncestorContainer;
  19077. }
  19078. return getOffsetParent(commonAncestorContainer);
  19079. }
  19080. // one of the nodes is inside shadowDOM, find which one
  19081. var element1root = getRoot(element1);
  19082. if (element1root.host) {
  19083. return findCommonOffsetParent(element1root.host, element2);
  19084. } else {
  19085. return findCommonOffsetParent(element1, getRoot(element2).host);
  19086. }
  19087. }
  19088. /**
  19089. * Gets the scroll value of the given element in the given side (top and left)
  19090. * @method
  19091. * @memberof Popper.Utils
  19092. * @argument {Element} element
  19093. * @argument {String} side `top` or `left`
  19094. * @returns {number} amount of scrolled pixels
  19095. */
  19096. function getScroll(element) {
  19097. var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
  19098. var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
  19099. var nodeName = element.nodeName;
  19100. if (nodeName === 'BODY' || nodeName === 'HTML') {
  19101. var html = element.ownerDocument.documentElement;
  19102. var scrollingElement = element.ownerDocument.scrollingElement || html;
  19103. return scrollingElement[upperSide];
  19104. }
  19105. return element[upperSide];
  19106. }
  19107. /*
  19108. * Sum or subtract the element scroll values (left and top) from a given rect object
  19109. * @method
  19110. * @memberof Popper.Utils
  19111. * @param {Object} rect - Rect object you want to change
  19112. * @param {HTMLElement} element - The element from the function reads the scroll values
  19113. * @param {Boolean} subtract - set to true if you want to subtract the scroll values
  19114. * @return {Object} rect - The modifier rect object
  19115. */
  19116. function includeScroll(rect, element) {
  19117. var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  19118. var scrollTop = getScroll(element, 'top');
  19119. var scrollLeft = getScroll(element, 'left');
  19120. var modifier = subtract ? -1 : 1;
  19121. rect.top += scrollTop * modifier;
  19122. rect.bottom += scrollTop * modifier;
  19123. rect.left += scrollLeft * modifier;
  19124. rect.right += scrollLeft * modifier;
  19125. return rect;
  19126. }
  19127. /*
  19128. * Helper to detect borders of a given element
  19129. * @method
  19130. * @memberof Popper.Utils
  19131. * @param {CSSStyleDeclaration} styles
  19132. * Result of `getStyleComputedProperty` on the given element
  19133. * @param {String} axis - `x` or `y`
  19134. * @return {number} borders - The borders size of the given axis
  19135. */
  19136. function getBordersSize(styles, axis) {
  19137. var sideA = axis === 'x' ? 'Left' : 'Top';
  19138. var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
  19139. return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
  19140. }
  19141. function getSize(axis, body, html, computedStyle) {
  19142. return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
  19143. }
  19144. function getWindowSizes(document) {
  19145. var body = document.body;
  19146. var html = document.documentElement;
  19147. var computedStyle = isIE(10) && getComputedStyle(html);
  19148. return {
  19149. height: getSize('Height', body, html, computedStyle),
  19150. width: getSize('Width', body, html, computedStyle)
  19151. };
  19152. }
  19153. var classCallCheck = function (instance, Constructor) {
  19154. if (!(instance instanceof Constructor)) {
  19155. throw new TypeError("Cannot call a class as a function");
  19156. }
  19157. };
  19158. var createClass = function () {
  19159. function defineProperties(target, props) {
  19160. for (var i = 0; i < props.length; i++) {
  19161. var descriptor = props[i];
  19162. descriptor.enumerable = descriptor.enumerable || false;
  19163. descriptor.configurable = true;
  19164. if ("value" in descriptor) descriptor.writable = true;
  19165. Object.defineProperty(target, descriptor.key, descriptor);
  19166. }
  19167. }
  19168. return function (Constructor, protoProps, staticProps) {
  19169. if (protoProps) defineProperties(Constructor.prototype, protoProps);
  19170. if (staticProps) defineProperties(Constructor, staticProps);
  19171. return Constructor;
  19172. };
  19173. }();
  19174. var defineProperty = function (obj, key, value) {
  19175. if (key in obj) {
  19176. Object.defineProperty(obj, key, {
  19177. value: value,
  19178. enumerable: true,
  19179. configurable: true,
  19180. writable: true
  19181. });
  19182. } else {
  19183. obj[key] = value;
  19184. }
  19185. return obj;
  19186. };
  19187. var _extends = Object.assign || function (target) {
  19188. for (var i = 1; i < arguments.length; i++) {
  19189. var source = arguments[i];
  19190. for (var key in source) {
  19191. if (Object.prototype.hasOwnProperty.call(source, key)) {
  19192. target[key] = source[key];
  19193. }
  19194. }
  19195. }
  19196. return target;
  19197. };
  19198. /**
  19199. * Given element offsets, generate an output similar to getBoundingClientRect
  19200. * @method
  19201. * @memberof Popper.Utils
  19202. * @argument {Object} offsets
  19203. * @returns {Object} ClientRect like output
  19204. */
  19205. function getClientRect(offsets) {
  19206. return _extends({}, offsets, {
  19207. right: offsets.left + offsets.width,
  19208. bottom: offsets.top + offsets.height
  19209. });
  19210. }
  19211. /**
  19212. * Get bounding client rect of given element
  19213. * @method
  19214. * @memberof Popper.Utils
  19215. * @param {HTMLElement} element
  19216. * @return {Object} client rect
  19217. */
  19218. function getBoundingClientRect(element) {
  19219. var rect = {};
  19220. // IE10 10 FIX: Please, don't ask, the element isn't
  19221. // considered in DOM in some circumstances...
  19222. // This isn't reproducible in IE10 compatibility mode of IE11
  19223. try {
  19224. if (isIE(10)) {
  19225. rect = element.getBoundingClientRect();
  19226. var scrollTop = getScroll(element, 'top');
  19227. var scrollLeft = getScroll(element, 'left');
  19228. rect.top += scrollTop;
  19229. rect.left += scrollLeft;
  19230. rect.bottom += scrollTop;
  19231. rect.right += scrollLeft;
  19232. } else {
  19233. rect = element.getBoundingClientRect();
  19234. }
  19235. } catch (e) {}
  19236. var result = {
  19237. left: rect.left,
  19238. top: rect.top,
  19239. width: rect.right - rect.left,
  19240. height: rect.bottom - rect.top
  19241. };
  19242. // subtract scrollbar size from sizes
  19243. var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
  19244. var width = sizes.width || element.clientWidth || result.right - result.left;
  19245. var height = sizes.height || element.clientHeight || result.bottom - result.top;
  19246. var horizScrollbar = element.offsetWidth - width;
  19247. var vertScrollbar = element.offsetHeight - height;
  19248. // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
  19249. // we make this check conditional for performance reasons
  19250. if (horizScrollbar || vertScrollbar) {
  19251. var styles = getStyleComputedProperty(element);
  19252. horizScrollbar -= getBordersSize(styles, 'x');
  19253. vertScrollbar -= getBordersSize(styles, 'y');
  19254. result.width -= horizScrollbar;
  19255. result.height -= vertScrollbar;
  19256. }
  19257. return getClientRect(result);
  19258. }
  19259. function getOffsetRectRelativeToArbitraryNode(children, parent) {
  19260. var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  19261. var isIE10 = isIE(10);
  19262. var isHTML = parent.nodeName === 'HTML';
  19263. var childrenRect = getBoundingClientRect(children);
  19264. var parentRect = getBoundingClientRect(parent);
  19265. var scrollParent = getScrollParent(children);
  19266. var styles = getStyleComputedProperty(parent);
  19267. var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
  19268. var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
  19269. // In cases where the parent is fixed, we must ignore negative scroll in offset calc
  19270. if (fixedPosition && isHTML) {
  19271. parentRect.top = Math.max(parentRect.top, 0);
  19272. parentRect.left = Math.max(parentRect.left, 0);
  19273. }
  19274. var offsets = getClientRect({
  19275. top: childrenRect.top - parentRect.top - borderTopWidth,
  19276. left: childrenRect.left - parentRect.left - borderLeftWidth,
  19277. width: childrenRect.width,
  19278. height: childrenRect.height
  19279. });
  19280. offsets.marginTop = 0;
  19281. offsets.marginLeft = 0;
  19282. // Subtract margins of documentElement in case it's being used as parent
  19283. // we do this only on HTML because it's the only element that behaves
  19284. // differently when margins are applied to it. The margins are included in
  19285. // the box of the documentElement, in the other cases not.
  19286. if (!isIE10 && isHTML) {
  19287. var marginTop = parseFloat(styles.marginTop, 10);
  19288. var marginLeft = parseFloat(styles.marginLeft, 10);
  19289. offsets.top -= borderTopWidth - marginTop;
  19290. offsets.bottom -= borderTopWidth - marginTop;
  19291. offsets.left -= borderLeftWidth - marginLeft;
  19292. offsets.right -= borderLeftWidth - marginLeft;
  19293. // Attach marginTop and marginLeft because in some circumstances we may need them
  19294. offsets.marginTop = marginTop;
  19295. offsets.marginLeft = marginLeft;
  19296. }
  19297. if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
  19298. offsets = includeScroll(offsets, parent);
  19299. }
  19300. return offsets;
  19301. }
  19302. function getViewportOffsetRectRelativeToArtbitraryNode(element) {
  19303. var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  19304. var html = element.ownerDocument.documentElement;
  19305. var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
  19306. var width = Math.max(html.clientWidth, window.innerWidth || 0);
  19307. var height = Math.max(html.clientHeight, window.innerHeight || 0);
  19308. var scrollTop = !excludeScroll ? getScroll(html) : 0;
  19309. var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
  19310. var offset = {
  19311. top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
  19312. left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
  19313. width: width,
  19314. height: height
  19315. };
  19316. return getClientRect(offset);
  19317. }
  19318. /**
  19319. * Check if the given element is fixed or is inside a fixed parent
  19320. * @method
  19321. * @memberof Popper.Utils
  19322. * @argument {Element} element
  19323. * @argument {Element} customContainer
  19324. * @returns {Boolean} answer to "isFixed?"
  19325. */
  19326. function isFixed(element) {
  19327. var nodeName = element.nodeName;
  19328. if (nodeName === 'BODY' || nodeName === 'HTML') {
  19329. return false;
  19330. }
  19331. if (getStyleComputedProperty(element, 'position') === 'fixed') {
  19332. return true;
  19333. }
  19334. return isFixed(getParentNode(element));
  19335. }
  19336. /**
  19337. * Finds the first parent of an element that has a transformed property defined
  19338. * @method
  19339. * @memberof Popper.Utils
  19340. * @argument {Element} element
  19341. * @returns {Element} first transformed parent or documentElement
  19342. */
  19343. function getFixedPositionOffsetParent(element) {
  19344. // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  19345. if (!element || !element.parentElement || isIE()) {
  19346. return document.documentElement;
  19347. }
  19348. var el = element.parentElement;
  19349. while (el && getStyleComputedProperty(el, 'transform') === 'none') {
  19350. el = el.parentElement;
  19351. }
  19352. return el || document.documentElement;
  19353. }
  19354. /**
  19355. * Computed the boundaries limits and return them
  19356. * @method
  19357. * @memberof Popper.Utils
  19358. * @param {HTMLElement} popper
  19359. * @param {HTMLElement} reference
  19360. * @param {number} padding
  19361. * @param {HTMLElement} boundariesElement - Element used to define the boundaries
  19362. * @param {Boolean} fixedPosition - Is in fixed position mode
  19363. * @returns {Object} Coordinates of the boundaries
  19364. */
  19365. function getBoundaries(popper, reference, padding, boundariesElement) {
  19366. var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
  19367. // NOTE: 1 DOM access here
  19368. var boundaries = { top: 0, left: 0 };
  19369. var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
  19370. // Handle viewport case
  19371. if (boundariesElement === 'viewport') {
  19372. boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
  19373. } else {
  19374. // Handle other cases based on DOM element used as boundaries
  19375. var boundariesNode = void 0;
  19376. if (boundariesElement === 'scrollParent') {
  19377. boundariesNode = getScrollParent(getParentNode(reference));
  19378. if (boundariesNode.nodeName === 'BODY') {
  19379. boundariesNode = popper.ownerDocument.documentElement;
  19380. }
  19381. } else if (boundariesElement === 'window') {
  19382. boundariesNode = popper.ownerDocument.documentElement;
  19383. } else {
  19384. boundariesNode = boundariesElement;
  19385. }
  19386. var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
  19387. // In case of HTML, we need a different computation
  19388. if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
  19389. var _getWindowSizes = getWindowSizes(popper.ownerDocument),
  19390. height = _getWindowSizes.height,
  19391. width = _getWindowSizes.width;
  19392. boundaries.top += offsets.top - offsets.marginTop;
  19393. boundaries.bottom = height + offsets.top;
  19394. boundaries.left += offsets.left - offsets.marginLeft;
  19395. boundaries.right = width + offsets.left;
  19396. } else {
  19397. // for all the other DOM elements, this one is good
  19398. boundaries = offsets;
  19399. }
  19400. }
  19401. // Add paddings
  19402. padding = padding || 0;
  19403. var isPaddingNumber = typeof padding === 'number';
  19404. boundaries.left += isPaddingNumber ? padding : padding.left || 0;
  19405. boundaries.top += isPaddingNumber ? padding : padding.top || 0;
  19406. boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
  19407. boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
  19408. return boundaries;
  19409. }
  19410. function getArea(_ref) {
  19411. var width = _ref.width,
  19412. height = _ref.height;
  19413. return width * height;
  19414. }
  19415. /**
  19416. * Utility used to transform the `auto` placement to the placement with more
  19417. * available space.
  19418. * @method
  19419. * @memberof Popper.Utils
  19420. * @argument {Object} data - The data object generated by update method
  19421. * @argument {Object} options - Modifiers configuration and options
  19422. * @returns {Object} The data object, properly modified
  19423. */
  19424. function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
  19425. var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
  19426. if (placement.indexOf('auto') === -1) {
  19427. return placement;
  19428. }
  19429. var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
  19430. var rects = {
  19431. top: {
  19432. width: boundaries.width,
  19433. height: refRect.top - boundaries.top
  19434. },
  19435. right: {
  19436. width: boundaries.right - refRect.right,
  19437. height: boundaries.height
  19438. },
  19439. bottom: {
  19440. width: boundaries.width,
  19441. height: boundaries.bottom - refRect.bottom
  19442. },
  19443. left: {
  19444. width: refRect.left - boundaries.left,
  19445. height: boundaries.height
  19446. }
  19447. };
  19448. var sortedAreas = Object.keys(rects).map(function (key) {
  19449. return _extends({
  19450. key: key
  19451. }, rects[key], {
  19452. area: getArea(rects[key])
  19453. });
  19454. }).sort(function (a, b) {
  19455. return b.area - a.area;
  19456. });
  19457. var filteredAreas = sortedAreas.filter(function (_ref2) {
  19458. var width = _ref2.width,
  19459. height = _ref2.height;
  19460. return width >= popper.clientWidth && height >= popper.clientHeight;
  19461. });
  19462. var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
  19463. var variation = placement.split('-')[1];
  19464. return computedPlacement + (variation ? '-' + variation : '');
  19465. }
  19466. /**
  19467. * Get offsets to the reference element
  19468. * @method
  19469. * @memberof Popper.Utils
  19470. * @param {Object} state
  19471. * @param {Element} popper - the popper element
  19472. * @param {Element} reference - the reference element (the popper will be relative to this)
  19473. * @param {Element} fixedPosition - is in fixed position mode
  19474. * @returns {Object} An object containing the offsets which will be applied to the popper
  19475. */
  19476. function getReferenceOffsets(state, popper, reference) {
  19477. var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
  19478. var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
  19479. return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
  19480. }
  19481. /**
  19482. * Get the outer sizes of the given element (offset size + margins)
  19483. * @method
  19484. * @memberof Popper.Utils
  19485. * @argument {Element} element
  19486. * @returns {Object} object containing width and height properties
  19487. */
  19488. function getOuterSizes(element) {
  19489. var window = element.ownerDocument.defaultView;
  19490. var styles = window.getComputedStyle(element);
  19491. var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
  19492. var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
  19493. var result = {
  19494. width: element.offsetWidth + y,
  19495. height: element.offsetHeight + x
  19496. };
  19497. return result;
  19498. }
  19499. /**
  19500. * Get the opposite placement of the given one
  19501. * @method
  19502. * @memberof Popper.Utils
  19503. * @argument {String} placement
  19504. * @returns {String} flipped placement
  19505. */
  19506. function getOppositePlacement(placement) {
  19507. var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
  19508. return placement.replace(/left|right|bottom|top/g, function (matched) {
  19509. return hash[matched];
  19510. });
  19511. }
  19512. /**
  19513. * Get offsets to the popper
  19514. * @method
  19515. * @memberof Popper.Utils
  19516. * @param {Object} position - CSS position the Popper will get applied
  19517. * @param {HTMLElement} popper - the popper element
  19518. * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
  19519. * @param {String} placement - one of the valid placement options
  19520. * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
  19521. */
  19522. function getPopperOffsets(popper, referenceOffsets, placement) {
  19523. placement = placement.split('-')[0];
  19524. // Get popper node sizes
  19525. var popperRect = getOuterSizes(popper);
  19526. // Add position, width and height to our offsets object
  19527. var popperOffsets = {
  19528. width: popperRect.width,
  19529. height: popperRect.height
  19530. };
  19531. // depending by the popper placement we have to compute its offsets slightly differently
  19532. var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
  19533. var mainSide = isHoriz ? 'top' : 'left';
  19534. var secondarySide = isHoriz ? 'left' : 'top';
  19535. var measurement = isHoriz ? 'height' : 'width';
  19536. var secondaryMeasurement = !isHoriz ? 'height' : 'width';
  19537. popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
  19538. if (placement === secondarySide) {
  19539. popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
  19540. } else {
  19541. popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
  19542. }
  19543. return popperOffsets;
  19544. }
  19545. /**
  19546. * Mimics the `find` method of Array
  19547. * @method
  19548. * @memberof Popper.Utils
  19549. * @argument {Array} arr
  19550. * @argument prop
  19551. * @argument value
  19552. * @returns index or -1
  19553. */
  19554. function find(arr, check) {
  19555. // use native find if supported
  19556. if (Array.prototype.find) {
  19557. return arr.find(check);
  19558. }
  19559. // use `filter` to obtain the same behavior of `find`
  19560. return arr.filter(check)[0];
  19561. }
  19562. /**
  19563. * Return the index of the matching object
  19564. * @method
  19565. * @memberof Popper.Utils
  19566. * @argument {Array} arr
  19567. * @argument prop
  19568. * @argument value
  19569. * @returns index or -1
  19570. */
  19571. function findIndex(arr, prop, value) {
  19572. // use native findIndex if supported
  19573. if (Array.prototype.findIndex) {
  19574. return arr.findIndex(function (cur) {
  19575. return cur[prop] === value;
  19576. });
  19577. }
  19578. // use `find` + `indexOf` if `findIndex` isn't supported
  19579. var match = find(arr, function (obj) {
  19580. return obj[prop] === value;
  19581. });
  19582. return arr.indexOf(match);
  19583. }
  19584. /**
  19585. * Loop trough the list of modifiers and run them in order,
  19586. * each of them will then edit the data object.
  19587. * @method
  19588. * @memberof Popper.Utils
  19589. * @param {dataObject} data
  19590. * @param {Array} modifiers
  19591. * @param {String} ends - Optional modifier name used as stopper
  19592. * @returns {dataObject}
  19593. */
  19594. function runModifiers(modifiers, data, ends) {
  19595. var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
  19596. modifiersToRun.forEach(function (modifier) {
  19597. if (modifier['function']) {
  19598. // eslint-disable-line dot-notation
  19599. console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
  19600. }
  19601. var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
  19602. if (modifier.enabled && isFunction(fn)) {
  19603. // Add properties to offsets to make them a complete clientRect object
  19604. // we do this before each modifier to make sure the previous one doesn't
  19605. // mess with these values
  19606. data.offsets.popper = getClientRect(data.offsets.popper);
  19607. data.offsets.reference = getClientRect(data.offsets.reference);
  19608. data = fn(data, modifier);
  19609. }
  19610. });
  19611. return data;
  19612. }
  19613. /**
  19614. * Updates the position of the popper, computing the new offsets and applying
  19615. * the new style.<br />
  19616. * Prefer `scheduleUpdate` over `update` because of performance reasons.
  19617. * @method
  19618. * @memberof Popper
  19619. */
  19620. function update() {
  19621. // if popper is destroyed, don't perform any further update
  19622. if (this.state.isDestroyed) {
  19623. return;
  19624. }
  19625. var data = {
  19626. instance: this,
  19627. styles: {},
  19628. arrowStyles: {},
  19629. attributes: {},
  19630. flipped: false,
  19631. offsets: {}
  19632. };
  19633. // compute reference element offsets
  19634. data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
  19635. // compute auto placement, store placement inside the data object,
  19636. // modifiers will be able to edit `placement` if needed
  19637. // and refer to originalPlacement to know the original value
  19638. data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
  19639. // store the computed placement inside `originalPlacement`
  19640. data.originalPlacement = data.placement;
  19641. data.positionFixed = this.options.positionFixed;
  19642. // compute the popper offsets
  19643. data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
  19644. data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
  19645. // run the modifiers
  19646. data = runModifiers(this.modifiers, data);
  19647. // the first `update` will call `onCreate` callback
  19648. // the other ones will call `onUpdate` callback
  19649. if (!this.state.isCreated) {
  19650. this.state.isCreated = true;
  19651. this.options.onCreate(data);
  19652. } else {
  19653. this.options.onUpdate(data);
  19654. }
  19655. }
  19656. /**
  19657. * Helper used to know if the given modifier is enabled.
  19658. * @method
  19659. * @memberof Popper.Utils
  19660. * @returns {Boolean}
  19661. */
  19662. function isModifierEnabled(modifiers, modifierName) {
  19663. return modifiers.some(function (_ref) {
  19664. var name = _ref.name,
  19665. enabled = _ref.enabled;
  19666. return enabled && name === modifierName;
  19667. });
  19668. }
  19669. /**
  19670. * Get the prefixed supported property name
  19671. * @method
  19672. * @memberof Popper.Utils
  19673. * @argument {String} property (camelCase)
  19674. * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
  19675. */
  19676. function getSupportedPropertyName(property) {
  19677. var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
  19678. var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
  19679. for (var i = 0; i < prefixes.length; i++) {
  19680. var prefix = prefixes[i];
  19681. var toCheck = prefix ? '' + prefix + upperProp : property;
  19682. if (typeof document.body.style[toCheck] !== 'undefined') {
  19683. return toCheck;
  19684. }
  19685. }
  19686. return null;
  19687. }
  19688. /**
  19689. * Destroys the popper.
  19690. * @method
  19691. * @memberof Popper
  19692. */
  19693. function destroy() {
  19694. this.state.isDestroyed = true;
  19695. // touch DOM only if `applyStyle` modifier is enabled
  19696. if (isModifierEnabled(this.modifiers, 'applyStyle')) {
  19697. this.popper.removeAttribute('x-placement');
  19698. this.popper.style.position = '';
  19699. this.popper.style.top = '';
  19700. this.popper.style.left = '';
  19701. this.popper.style.right = '';
  19702. this.popper.style.bottom = '';
  19703. this.popper.style.willChange = '';
  19704. this.popper.style[getSupportedPropertyName('transform')] = '';
  19705. }
  19706. this.disableEventListeners();
  19707. // remove the popper if user explicity asked for the deletion on destroy
  19708. // do not use `remove` because IE11 doesn't support it
  19709. if (this.options.removeOnDestroy) {
  19710. this.popper.parentNode.removeChild(this.popper);
  19711. }
  19712. return this;
  19713. }
  19714. /**
  19715. * Get the window associated with the element
  19716. * @argument {Element} element
  19717. * @returns {Window}
  19718. */
  19719. function getWindow(element) {
  19720. var ownerDocument = element.ownerDocument;
  19721. return ownerDocument ? ownerDocument.defaultView : window;
  19722. }
  19723. function attachToScrollParents(scrollParent, event, callback, scrollParents) {
  19724. var isBody = scrollParent.nodeName === 'BODY';
  19725. var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
  19726. target.addEventListener(event, callback, { passive: true });
  19727. if (!isBody) {
  19728. attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
  19729. }
  19730. scrollParents.push(target);
  19731. }
  19732. /**
  19733. * Setup needed event listeners used to update the popper position
  19734. * @method
  19735. * @memberof Popper.Utils
  19736. * @private
  19737. */
  19738. function setupEventListeners(reference, options, state, updateBound) {
  19739. // Resize event listener on window
  19740. state.updateBound = updateBound;
  19741. getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
  19742. // Scroll event listener on scroll parents
  19743. var scrollElement = getScrollParent(reference);
  19744. attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
  19745. state.scrollElement = scrollElement;
  19746. state.eventsEnabled = true;
  19747. return state;
  19748. }
  19749. /**
  19750. * It will add resize/scroll events and start recalculating
  19751. * position of the popper element when they are triggered.
  19752. * @method
  19753. * @memberof Popper
  19754. */
  19755. function enableEventListeners() {
  19756. if (!this.state.eventsEnabled) {
  19757. this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
  19758. }
  19759. }
  19760. /**
  19761. * Remove event listeners used to update the popper position
  19762. * @method
  19763. * @memberof Popper.Utils
  19764. * @private
  19765. */
  19766. function removeEventListeners(reference, state) {
  19767. // Remove resize event listener on window
  19768. getWindow(reference).removeEventListener('resize', state.updateBound);
  19769. // Remove scroll event listener on scroll parents
  19770. state.scrollParents.forEach(function (target) {
  19771. target.removeEventListener('scroll', state.updateBound);
  19772. });
  19773. // Reset state
  19774. state.updateBound = null;
  19775. state.scrollParents = [];
  19776. state.scrollElement = null;
  19777. state.eventsEnabled = false;
  19778. return state;
  19779. }
  19780. /**
  19781. * It will remove resize/scroll events and won't recalculate popper position
  19782. * when they are triggered. It also won't trigger `onUpdate` callback anymore,
  19783. * unless you call `update` method manually.
  19784. * @method
  19785. * @memberof Popper
  19786. */
  19787. function disableEventListeners() {
  19788. if (this.state.eventsEnabled) {
  19789. cancelAnimationFrame(this.scheduleUpdate);
  19790. this.state = removeEventListeners(this.reference, this.state);
  19791. }
  19792. }
  19793. /**
  19794. * Tells if a given input is a number
  19795. * @method
  19796. * @memberof Popper.Utils
  19797. * @param {*} input to check
  19798. * @return {Boolean}
  19799. */
  19800. function isNumeric(n) {
  19801. return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
  19802. }
  19803. /**
  19804. * Set the style to the given popper
  19805. * @method
  19806. * @memberof Popper.Utils
  19807. * @argument {Element} element - Element to apply the style to
  19808. * @argument {Object} styles
  19809. * Object with a list of properties and values which will be applied to the element
  19810. */
  19811. function setStyles(element, styles) {
  19812. Object.keys(styles).forEach(function (prop) {
  19813. var unit = '';
  19814. // add unit if the value is numeric and is one of the following
  19815. if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
  19816. unit = 'px';
  19817. }
  19818. element.style[prop] = styles[prop] + unit;
  19819. });
  19820. }
  19821. /**
  19822. * Set the attributes to the given popper
  19823. * @method
  19824. * @memberof Popper.Utils
  19825. * @argument {Element} element - Element to apply the attributes to
  19826. * @argument {Object} styles
  19827. * Object with a list of properties and values which will be applied to the element
  19828. */
  19829. function setAttributes(element, attributes) {
  19830. Object.keys(attributes).forEach(function (prop) {
  19831. var value = attributes[prop];
  19832. if (value !== false) {
  19833. element.setAttribute(prop, attributes[prop]);
  19834. } else {
  19835. element.removeAttribute(prop);
  19836. }
  19837. });
  19838. }
  19839. /**
  19840. * @function
  19841. * @memberof Modifiers
  19842. * @argument {Object} data - The data object generated by `update` method
  19843. * @argument {Object} data.styles - List of style properties - values to apply to popper element
  19844. * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
  19845. * @argument {Object} options - Modifiers configuration and options
  19846. * @returns {Object} The same data object
  19847. */
  19848. function applyStyle(data) {
  19849. // any property present in `data.styles` will be applied to the popper,
  19850. // in this way we can make the 3rd party modifiers add custom styles to it
  19851. // Be aware, modifiers could override the properties defined in the previous
  19852. // lines of this modifier!
  19853. setStyles(data.instance.popper, data.styles);
  19854. // any property present in `data.attributes` will be applied to the popper,
  19855. // they will be set as HTML attributes of the element
  19856. setAttributes(data.instance.popper, data.attributes);
  19857. // if arrowElement is defined and arrowStyles has some properties
  19858. if (data.arrowElement && Object.keys(data.arrowStyles).length) {
  19859. setStyles(data.arrowElement, data.arrowStyles);
  19860. }
  19861. return data;
  19862. }
  19863. /**
  19864. * Set the x-placement attribute before everything else because it could be used
  19865. * to add margins to the popper margins needs to be calculated to get the
  19866. * correct popper offsets.
  19867. * @method
  19868. * @memberof Popper.modifiers
  19869. * @param {HTMLElement} reference - The reference element used to position the popper
  19870. * @param {HTMLElement} popper - The HTML element used as popper
  19871. * @param {Object} options - Popper.js options
  19872. */
  19873. function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
  19874. // compute reference element offsets
  19875. var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
  19876. // compute auto placement, store placement inside the data object,
  19877. // modifiers will be able to edit `placement` if needed
  19878. // and refer to originalPlacement to know the original value
  19879. var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
  19880. popper.setAttribute('x-placement', placement);
  19881. // Apply `position` to popper before anything else because
  19882. // without the position applied we can't guarantee correct computations
  19883. setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
  19884. return options;
  19885. }
  19886. /**
  19887. * @function
  19888. * @memberof Popper.Utils
  19889. * @argument {Object} data - The data object generated by `update` method
  19890. * @argument {Boolean} shouldRound - If the offsets should be rounded at all
  19891. * @returns {Object} The popper's position offsets rounded
  19892. *
  19893. * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
  19894. * good as it can be within reason.
  19895. * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
  19896. *
  19897. * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
  19898. * as well on High DPI screens).
  19899. *
  19900. * Firefox prefers no rounding for positioning and does not have blurriness on
  19901. * high DPI screens.
  19902. *
  19903. * Only horizontal placement and left/right values need to be considered.
  19904. */
  19905. function getRoundedOffsets(data, shouldRound) {
  19906. var _data$offsets = data.offsets,
  19907. popper = _data$offsets.popper,
  19908. reference = _data$offsets.reference;
  19909. var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
  19910. var isVariation = data.placement.indexOf('-') !== -1;
  19911. var sameWidthOddness = reference.width % 2 === popper.width % 2;
  19912. var bothOddWidth = reference.width % 2 === 1 && popper.width % 2 === 1;
  19913. var noRound = function noRound(v) {
  19914. return v;
  19915. };
  19916. var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthOddness ? Math.round : Math.floor;
  19917. var verticalToInteger = !shouldRound ? noRound : Math.round;
  19918. return {
  19919. left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
  19920. top: verticalToInteger(popper.top),
  19921. bottom: verticalToInteger(popper.bottom),
  19922. right: horizontalToInteger(popper.right)
  19923. };
  19924. }
  19925. var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
  19926. /**
  19927. * @function
  19928. * @memberof Modifiers
  19929. * @argument {Object} data - The data object generated by `update` method
  19930. * @argument {Object} options - Modifiers configuration and options
  19931. * @returns {Object} The data object, properly modified
  19932. */
  19933. function computeStyle(data, options) {
  19934. var x = options.x,
  19935. y = options.y;
  19936. var popper = data.offsets.popper;
  19937. // Remove this legacy support in Popper.js v2
  19938. var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
  19939. return modifier.name === 'applyStyle';
  19940. }).gpuAcceleration;
  19941. if (legacyGpuAccelerationOption !== undefined) {
  19942. console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
  19943. }
  19944. var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
  19945. var offsetParent = getOffsetParent(data.instance.popper);
  19946. var offsetParentRect = getBoundingClientRect(offsetParent);
  19947. // Styles
  19948. var styles = {
  19949. position: popper.position
  19950. };
  19951. var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
  19952. var sideA = x === 'bottom' ? 'top' : 'bottom';
  19953. var sideB = y === 'right' ? 'left' : 'right';
  19954. // if gpuAcceleration is set to `true` and transform is supported,
  19955. // we use `translate3d` to apply the position to the popper we
  19956. // automatically use the supported prefixed version if needed
  19957. var prefixedProperty = getSupportedPropertyName('transform');
  19958. // now, let's make a step back and look at this code closely (wtf?)
  19959. // If the content of the popper grows once it's been positioned, it
  19960. // may happen that the popper gets misplaced because of the new content
  19961. // overflowing its reference element
  19962. // To avoid this problem, we provide two options (x and y), which allow
  19963. // the consumer to define the offset origin.
  19964. // If we position a popper on top of a reference element, we can set
  19965. // `x` to `top` to make the popper grow towards its top instead of
  19966. // its bottom.
  19967. var left = void 0,
  19968. top = void 0;
  19969. if (sideA === 'bottom') {
  19970. // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
  19971. // and not the bottom of the html element
  19972. if (offsetParent.nodeName === 'HTML') {
  19973. top = -offsetParent.clientHeight + offsets.bottom;
  19974. } else {
  19975. top = -offsetParentRect.height + offsets.bottom;
  19976. }
  19977. } else {
  19978. top = offsets.top;
  19979. }
  19980. if (sideB === 'right') {
  19981. if (offsetParent.nodeName === 'HTML') {
  19982. left = -offsetParent.clientWidth + offsets.right;
  19983. } else {
  19984. left = -offsetParentRect.width + offsets.right;
  19985. }
  19986. } else {
  19987. left = offsets.left;
  19988. }
  19989. if (gpuAcceleration && prefixedProperty) {
  19990. styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
  19991. styles[sideA] = 0;
  19992. styles[sideB] = 0;
  19993. styles.willChange = 'transform';
  19994. } else {
  19995. // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
  19996. var invertTop = sideA === 'bottom' ? -1 : 1;
  19997. var invertLeft = sideB === 'right' ? -1 : 1;
  19998. styles[sideA] = top * invertTop;
  19999. styles[sideB] = left * invertLeft;
  20000. styles.willChange = sideA + ', ' + sideB;
  20001. }
  20002. // Attributes
  20003. var attributes = {
  20004. 'x-placement': data.placement
  20005. };
  20006. // Update `data` attributes, styles and arrowStyles
  20007. data.attributes = _extends({}, attributes, data.attributes);
  20008. data.styles = _extends({}, styles, data.styles);
  20009. data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
  20010. return data;
  20011. }
  20012. /**
  20013. * Helper used to know if the given modifier depends from another one.<br />
  20014. * It checks if the needed modifier is listed and enabled.
  20015. * @method
  20016. * @memberof Popper.Utils
  20017. * @param {Array} modifiers - list of modifiers
  20018. * @param {String} requestingName - name of requesting modifier
  20019. * @param {String} requestedName - name of requested modifier
  20020. * @returns {Boolean}
  20021. */
  20022. function isModifierRequired(modifiers, requestingName, requestedName) {
  20023. var requesting = find(modifiers, function (_ref) {
  20024. var name = _ref.name;
  20025. return name === requestingName;
  20026. });
  20027. var isRequired = !!requesting && modifiers.some(function (modifier) {
  20028. return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
  20029. });
  20030. if (!isRequired) {
  20031. var _requesting = '`' + requestingName + '`';
  20032. var requested = '`' + requestedName + '`';
  20033. console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
  20034. }
  20035. return isRequired;
  20036. }
  20037. /**
  20038. * @function
  20039. * @memberof Modifiers
  20040. * @argument {Object} data - The data object generated by update method
  20041. * @argument {Object} options - Modifiers configuration and options
  20042. * @returns {Object} The data object, properly modified
  20043. */
  20044. function arrow(data, options) {
  20045. var _data$offsets$arrow;
  20046. // arrow depends on keepTogether in order to work
  20047. if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
  20048. return data;
  20049. }
  20050. var arrowElement = options.element;
  20051. // if arrowElement is a string, suppose it's a CSS selector
  20052. if (typeof arrowElement === 'string') {
  20053. arrowElement = data.instance.popper.querySelector(arrowElement);
  20054. // if arrowElement is not found, don't run the modifier
  20055. if (!arrowElement) {
  20056. return data;
  20057. }
  20058. } else {
  20059. // if the arrowElement isn't a query selector we must check that the
  20060. // provided DOM node is child of its popper node
  20061. if (!data.instance.popper.contains(arrowElement)) {
  20062. console.warn('WARNING: `arrow.element` must be child of its popper element!');
  20063. return data;
  20064. }
  20065. }
  20066. var placement = data.placement.split('-')[0];
  20067. var _data$offsets = data.offsets,
  20068. popper = _data$offsets.popper,
  20069. reference = _data$offsets.reference;
  20070. var isVertical = ['left', 'right'].indexOf(placement) !== -1;
  20071. var len = isVertical ? 'height' : 'width';
  20072. var sideCapitalized = isVertical ? 'Top' : 'Left';
  20073. var side = sideCapitalized.toLowerCase();
  20074. var altSide = isVertical ? 'left' : 'top';
  20075. var opSide = isVertical ? 'bottom' : 'right';
  20076. var arrowElementSize = getOuterSizes(arrowElement)[len];
  20077. //
  20078. // extends keepTogether behavior making sure the popper and its
  20079. // reference have enough pixels in conjunction
  20080. //
  20081. // top/left side
  20082. if (reference[opSide] - arrowElementSize < popper[side]) {
  20083. data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
  20084. }
  20085. // bottom/right side
  20086. if (reference[side] + arrowElementSize > popper[opSide]) {
  20087. data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
  20088. }
  20089. data.offsets.popper = getClientRect(data.offsets.popper);
  20090. // compute center of the popper
  20091. var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
  20092. // Compute the sideValue using the updated popper offsets
  20093. // take popper margin in account because we don't have this info available
  20094. var css = getStyleComputedProperty(data.instance.popper);
  20095. var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
  20096. var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
  20097. var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
  20098. // prevent arrowElement from being placed not contiguously to its popper
  20099. sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
  20100. data.arrowElement = arrowElement;
  20101. data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
  20102. return data;
  20103. }
  20104. /**
  20105. * Get the opposite placement variation of the given one
  20106. * @method
  20107. * @memberof Popper.Utils
  20108. * @argument {String} placement variation
  20109. * @returns {String} flipped placement variation
  20110. */
  20111. function getOppositeVariation(variation) {
  20112. if (variation === 'end') {
  20113. return 'start';
  20114. } else if (variation === 'start') {
  20115. return 'end';
  20116. }
  20117. return variation;
  20118. }
  20119. /**
  20120. * List of accepted placements to use as values of the `placement` option.<br />
  20121. * Valid placements are:
  20122. * - `auto`
  20123. * - `top`
  20124. * - `right`
  20125. * - `bottom`
  20126. * - `left`
  20127. *
  20128. * Each placement can have a variation from this list:
  20129. * - `-start`
  20130. * - `-end`
  20131. *
  20132. * Variations are interpreted easily if you think of them as the left to right
  20133. * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
  20134. * is right.<br />
  20135. * Vertically (`left` and `right`), `start` is top and `end` is bottom.
  20136. *
  20137. * Some valid examples are:
  20138. * - `top-end` (on top of reference, right aligned)
  20139. * - `right-start` (on right of reference, top aligned)
  20140. * - `bottom` (on bottom, centered)
  20141. * - `auto-end` (on the side with more space available, alignment depends by placement)
  20142. *
  20143. * @static
  20144. * @type {Array}
  20145. * @enum {String}
  20146. * @readonly
  20147. * @method placements
  20148. * @memberof Popper
  20149. */
  20150. var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
  20151. // Get rid of `auto` `auto-start` and `auto-end`
  20152. var validPlacements = placements.slice(3);
  20153. /**
  20154. * Given an initial placement, returns all the subsequent placements
  20155. * clockwise (or counter-clockwise).
  20156. *
  20157. * @method
  20158. * @memberof Popper.Utils
  20159. * @argument {String} placement - A valid placement (it accepts variations)
  20160. * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
  20161. * @returns {Array} placements including their variations
  20162. */
  20163. function clockwise(placement) {
  20164. var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  20165. var index = validPlacements.indexOf(placement);
  20166. var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
  20167. return counter ? arr.reverse() : arr;
  20168. }
  20169. var BEHAVIORS = {
  20170. FLIP: 'flip',
  20171. CLOCKWISE: 'clockwise',
  20172. COUNTERCLOCKWISE: 'counterclockwise'
  20173. };
  20174. /**
  20175. * @function
  20176. * @memberof Modifiers
  20177. * @argument {Object} data - The data object generated by update method
  20178. * @argument {Object} options - Modifiers configuration and options
  20179. * @returns {Object} The data object, properly modified
  20180. */
  20181. function flip(data, options) {
  20182. // if `inner` modifier is enabled, we can't use the `flip` modifier
  20183. if (isModifierEnabled(data.instance.modifiers, 'inner')) {
  20184. return data;
  20185. }
  20186. if (data.flipped && data.placement === data.originalPlacement) {
  20187. // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
  20188. return data;
  20189. }
  20190. var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
  20191. var placement = data.placement.split('-')[0];
  20192. var placementOpposite = getOppositePlacement(placement);
  20193. var variation = data.placement.split('-')[1] || '';
  20194. var flipOrder = [];
  20195. switch (options.behavior) {
  20196. case BEHAVIORS.FLIP:
  20197. flipOrder = [placement, placementOpposite];
  20198. break;
  20199. case BEHAVIORS.CLOCKWISE:
  20200. flipOrder = clockwise(placement);
  20201. break;
  20202. case BEHAVIORS.COUNTERCLOCKWISE:
  20203. flipOrder = clockwise(placement, true);
  20204. break;
  20205. default:
  20206. flipOrder = options.behavior;
  20207. }
  20208. flipOrder.forEach(function (step, index) {
  20209. if (placement !== step || flipOrder.length === index + 1) {
  20210. return data;
  20211. }
  20212. placement = data.placement.split('-')[0];
  20213. placementOpposite = getOppositePlacement(placement);
  20214. var popperOffsets = data.offsets.popper;
  20215. var refOffsets = data.offsets.reference;
  20216. // using floor because the reference offsets may contain decimals we are not going to consider here
  20217. var floor = Math.floor;
  20218. var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
  20219. var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
  20220. var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
  20221. var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
  20222. var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
  20223. var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
  20224. // flip the variation if required
  20225. var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
  20226. var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
  20227. if (overlapsRef || overflowsBoundaries || flippedVariation) {
  20228. // this boolean to detect any flip loop
  20229. data.flipped = true;
  20230. if (overlapsRef || overflowsBoundaries) {
  20231. placement = flipOrder[index + 1];
  20232. }
  20233. if (flippedVariation) {
  20234. variation = getOppositeVariation(variation);
  20235. }
  20236. data.placement = placement + (variation ? '-' + variation : '');
  20237. // this object contains `position`, we want to preserve it along with
  20238. // any additional property we may add in the future
  20239. data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
  20240. data = runModifiers(data.instance.modifiers, data, 'flip');
  20241. }
  20242. });
  20243. return data;
  20244. }
  20245. /**
  20246. * @function
  20247. * @memberof Modifiers
  20248. * @argument {Object} data - The data object generated by update method
  20249. * @argument {Object} options - Modifiers configuration and options
  20250. * @returns {Object} The data object, properly modified
  20251. */
  20252. function keepTogether(data) {
  20253. var _data$offsets = data.offsets,
  20254. popper = _data$offsets.popper,
  20255. reference = _data$offsets.reference;
  20256. var placement = data.placement.split('-')[0];
  20257. var floor = Math.floor;
  20258. var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
  20259. var side = isVertical ? 'right' : 'bottom';
  20260. var opSide = isVertical ? 'left' : 'top';
  20261. var measurement = isVertical ? 'width' : 'height';
  20262. if (popper[side] < floor(reference[opSide])) {
  20263. data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
  20264. }
  20265. if (popper[opSide] > floor(reference[side])) {
  20266. data.offsets.popper[opSide] = floor(reference[side]);
  20267. }
  20268. return data;
  20269. }
  20270. /**
  20271. * Converts a string containing value + unit into a px value number
  20272. * @function
  20273. * @memberof {modifiers~offset}
  20274. * @private
  20275. * @argument {String} str - Value + unit string
  20276. * @argument {String} measurement - `height` or `width`
  20277. * @argument {Object} popperOffsets
  20278. * @argument {Object} referenceOffsets
  20279. * @returns {Number|String}
  20280. * Value in pixels, or original string if no values were extracted
  20281. */
  20282. function toValue(str, measurement, popperOffsets, referenceOffsets) {
  20283. // separate value from unit
  20284. var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
  20285. var value = +split[1];
  20286. var unit = split[2];
  20287. // If it's not a number it's an operator, I guess
  20288. if (!value) {
  20289. return str;
  20290. }
  20291. if (unit.indexOf('%') === 0) {
  20292. var element = void 0;
  20293. switch (unit) {
  20294. case '%p':
  20295. element = popperOffsets;
  20296. break;
  20297. case '%':
  20298. case '%r':
  20299. default:
  20300. element = referenceOffsets;
  20301. }
  20302. var rect = getClientRect(element);
  20303. return rect[measurement] / 100 * value;
  20304. } else if (unit === 'vh' || unit === 'vw') {
  20305. // if is a vh or vw, we calculate the size based on the viewport
  20306. var size = void 0;
  20307. if (unit === 'vh') {
  20308. size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
  20309. } else {
  20310. size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
  20311. }
  20312. return size / 100 * value;
  20313. } else {
  20314. // if is an explicit pixel unit, we get rid of the unit and keep the value
  20315. // if is an implicit unit, it's px, and we return just the value
  20316. return value;
  20317. }
  20318. }
  20319. /**
  20320. * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
  20321. * @function
  20322. * @memberof {modifiers~offset}
  20323. * @private
  20324. * @argument {String} offset
  20325. * @argument {Object} popperOffsets
  20326. * @argument {Object} referenceOffsets
  20327. * @argument {String} basePlacement
  20328. * @returns {Array} a two cells array with x and y offsets in numbers
  20329. */
  20330. function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
  20331. var offsets = [0, 0];
  20332. // Use height if placement is left or right and index is 0 otherwise use width
  20333. // in this way the first offset will use an axis and the second one
  20334. // will use the other one
  20335. var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
  20336. // Split the offset string to obtain a list of values and operands
  20337. // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
  20338. var fragments = offset.split(/(\+|\-)/).map(function (frag) {
  20339. return frag.trim();
  20340. });
  20341. // Detect if the offset string contains a pair of values or a single one
  20342. // they could be separated by comma or space
  20343. var divider = fragments.indexOf(find(fragments, function (frag) {
  20344. return frag.search(/,|\s/) !== -1;
  20345. }));
  20346. if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
  20347. console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
  20348. }
  20349. // If divider is found, we divide the list of values and operands to divide
  20350. // them by ofset X and Y.
  20351. var splitRegex = /\s*,\s*|\s+/;
  20352. var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
  20353. // Convert the values with units to absolute pixels to allow our computations
  20354. ops = ops.map(function (op, index) {
  20355. // Most of the units rely on the orientation of the popper
  20356. var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
  20357. var mergeWithPrevious = false;
  20358. return op
  20359. // This aggregates any `+` or `-` sign that aren't considered operators
  20360. // e.g.: 10 + +5 => [10, +, +5]
  20361. .reduce(function (a, b) {
  20362. if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
  20363. a[a.length - 1] = b;
  20364. mergeWithPrevious = true;
  20365. return a;
  20366. } else if (mergeWithPrevious) {
  20367. a[a.length - 1] += b;
  20368. mergeWithPrevious = false;
  20369. return a;
  20370. } else {
  20371. return a.concat(b);
  20372. }
  20373. }, [])
  20374. // Here we convert the string values into number values (in px)
  20375. .map(function (str) {
  20376. return toValue(str, measurement, popperOffsets, referenceOffsets);
  20377. });
  20378. });
  20379. // Loop trough the offsets arrays and execute the operations
  20380. ops.forEach(function (op, index) {
  20381. op.forEach(function (frag, index2) {
  20382. if (isNumeric(frag)) {
  20383. offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
  20384. }
  20385. });
  20386. });
  20387. return offsets;
  20388. }
  20389. /**
  20390. * @function
  20391. * @memberof Modifiers
  20392. * @argument {Object} data - The data object generated by update method
  20393. * @argument {Object} options - Modifiers configuration and options
  20394. * @argument {Number|String} options.offset=0
  20395. * The offset value as described in the modifier description
  20396. * @returns {Object} The data object, properly modified
  20397. */
  20398. function offset(data, _ref) {
  20399. var offset = _ref.offset;
  20400. var placement = data.placement,
  20401. _data$offsets = data.offsets,
  20402. popper = _data$offsets.popper,
  20403. reference = _data$offsets.reference;
  20404. var basePlacement = placement.split('-')[0];
  20405. var offsets = void 0;
  20406. if (isNumeric(+offset)) {
  20407. offsets = [+offset, 0];
  20408. } else {
  20409. offsets = parseOffset(offset, popper, reference, basePlacement);
  20410. }
  20411. if (basePlacement === 'left') {
  20412. popper.top += offsets[0];
  20413. popper.left -= offsets[1];
  20414. } else if (basePlacement === 'right') {
  20415. popper.top += offsets[0];
  20416. popper.left += offsets[1];
  20417. } else if (basePlacement === 'top') {
  20418. popper.left += offsets[0];
  20419. popper.top -= offsets[1];
  20420. } else if (basePlacement === 'bottom') {
  20421. popper.left += offsets[0];
  20422. popper.top += offsets[1];
  20423. }
  20424. data.popper = popper;
  20425. return data;
  20426. }
  20427. /**
  20428. * @function
  20429. * @memberof Modifiers
  20430. * @argument {Object} data - The data object generated by `update` method
  20431. * @argument {Object} options - Modifiers configuration and options
  20432. * @returns {Object} The data object, properly modified
  20433. */
  20434. function preventOverflow(data, options) {
  20435. var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
  20436. // If offsetParent is the reference element, we really want to
  20437. // go one step up and use the next offsetParent as reference to
  20438. // avoid to make this modifier completely useless and look like broken
  20439. if (data.instance.reference === boundariesElement) {
  20440. boundariesElement = getOffsetParent(boundariesElement);
  20441. }
  20442. // NOTE: DOM access here
  20443. // resets the popper's position so that the document size can be calculated excluding
  20444. // the size of the popper element itself
  20445. var transformProp = getSupportedPropertyName('transform');
  20446. var popperStyles = data.instance.popper.style; // assignment to help minification
  20447. var top = popperStyles.top,
  20448. left = popperStyles.left,
  20449. transform = popperStyles[transformProp];
  20450. popperStyles.top = '';
  20451. popperStyles.left = '';
  20452. popperStyles[transformProp] = '';
  20453. var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
  20454. // NOTE: DOM access here
  20455. // restores the original style properties after the offsets have been computed
  20456. popperStyles.top = top;
  20457. popperStyles.left = left;
  20458. popperStyles[transformProp] = transform;
  20459. options.boundaries = boundaries;
  20460. var order = options.priority;
  20461. var popper = data.offsets.popper;
  20462. var check = {
  20463. primary: function primary(placement) {
  20464. var value = popper[placement];
  20465. if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
  20466. value = Math.max(popper[placement], boundaries[placement]);
  20467. }
  20468. return defineProperty({}, placement, value);
  20469. },
  20470. secondary: function secondary(placement) {
  20471. var mainSide = placement === 'right' ? 'left' : 'top';
  20472. var value = popper[mainSide];
  20473. if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
  20474. value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
  20475. }
  20476. return defineProperty({}, mainSide, value);
  20477. }
  20478. };
  20479. order.forEach(function (placement) {
  20480. var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
  20481. popper = _extends({}, popper, check[side](placement));
  20482. });
  20483. data.offsets.popper = popper;
  20484. return data;
  20485. }
  20486. /**
  20487. * @function
  20488. * @memberof Modifiers
  20489. * @argument {Object} data - The data object generated by `update` method
  20490. * @argument {Object} options - Modifiers configuration and options
  20491. * @returns {Object} The data object, properly modified
  20492. */
  20493. function shift(data) {
  20494. var placement = data.placement;
  20495. var basePlacement = placement.split('-')[0];
  20496. var shiftvariation = placement.split('-')[1];
  20497. // if shift shiftvariation is specified, run the modifier
  20498. if (shiftvariation) {
  20499. var _data$offsets = data.offsets,
  20500. reference = _data$offsets.reference,
  20501. popper = _data$offsets.popper;
  20502. var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
  20503. var side = isVertical ? 'left' : 'top';
  20504. var measurement = isVertical ? 'width' : 'height';
  20505. var shiftOffsets = {
  20506. start: defineProperty({}, side, reference[side]),
  20507. end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
  20508. };
  20509. data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
  20510. }
  20511. return data;
  20512. }
  20513. /**
  20514. * @function
  20515. * @memberof Modifiers
  20516. * @argument {Object} data - The data object generated by update method
  20517. * @argument {Object} options - Modifiers configuration and options
  20518. * @returns {Object} The data object, properly modified
  20519. */
  20520. function hide(data) {
  20521. if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
  20522. return data;
  20523. }
  20524. var refRect = data.offsets.reference;
  20525. var bound = find(data.instance.modifiers, function (modifier) {
  20526. return modifier.name === 'preventOverflow';
  20527. }).boundaries;
  20528. if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
  20529. // Avoid unnecessary DOM access if visibility hasn't changed
  20530. if (data.hide === true) {
  20531. return data;
  20532. }
  20533. data.hide = true;
  20534. data.attributes['x-out-of-boundaries'] = '';
  20535. } else {
  20536. // Avoid unnecessary DOM access if visibility hasn't changed
  20537. if (data.hide === false) {
  20538. return data;
  20539. }
  20540. data.hide = false;
  20541. data.attributes['x-out-of-boundaries'] = false;
  20542. }
  20543. return data;
  20544. }
  20545. /**
  20546. * @function
  20547. * @memberof Modifiers
  20548. * @argument {Object} data - The data object generated by `update` method
  20549. * @argument {Object} options - Modifiers configuration and options
  20550. * @returns {Object} The data object, properly modified
  20551. */
  20552. function inner(data) {
  20553. var placement = data.placement;
  20554. var basePlacement = placement.split('-')[0];
  20555. var _data$offsets = data.offsets,
  20556. popper = _data$offsets.popper,
  20557. reference = _data$offsets.reference;
  20558. var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
  20559. var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
  20560. popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
  20561. data.placement = getOppositePlacement(placement);
  20562. data.offsets.popper = getClientRect(popper);
  20563. return data;
  20564. }
  20565. /**
  20566. * Modifier function, each modifier can have a function of this type assigned
  20567. * to its `fn` property.<br />
  20568. * These functions will be called on each update, this means that you must
  20569. * make sure they are performant enough to avoid performance bottlenecks.
  20570. *
  20571. * @function ModifierFn
  20572. * @argument {dataObject} data - The data object generated by `update` method
  20573. * @argument {Object} options - Modifiers configuration and options
  20574. * @returns {dataObject} The data object, properly modified
  20575. */
  20576. /**
  20577. * Modifiers are plugins used to alter the behavior of your poppers.<br />
  20578. * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
  20579. * needed by the library.
  20580. *
  20581. * Usually you don't want to override the `order`, `fn` and `onLoad` props.
  20582. * All the other properties are configurations that could be tweaked.
  20583. * @namespace modifiers
  20584. */
  20585. var modifiers = {
  20586. /**
  20587. * Modifier used to shift the popper on the start or end of its reference
  20588. * element.<br />
  20589. * It will read the variation of the `placement` property.<br />
  20590. * It can be one either `-end` or `-start`.
  20591. * @memberof modifiers
  20592. * @inner
  20593. */
  20594. shift: {
  20595. /** @prop {number} order=100 - Index used to define the order of execution */
  20596. order: 100,
  20597. /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
  20598. enabled: true,
  20599. /** @prop {ModifierFn} */
  20600. fn: shift
  20601. },
  20602. /**
  20603. * The `offset` modifier can shift your popper on both its axis.
  20604. *
  20605. * It accepts the following units:
  20606. * - `px` or unit-less, interpreted as pixels
  20607. * - `%` or `%r`, percentage relative to the length of the reference element
  20608. * - `%p`, percentage relative to the length of the popper element
  20609. * - `vw`, CSS viewport width unit
  20610. * - `vh`, CSS viewport height unit
  20611. *
  20612. * For length is intended the main axis relative to the placement of the popper.<br />
  20613. * This means that if the placement is `top` or `bottom`, the length will be the
  20614. * `width`. In case of `left` or `right`, it will be the `height`.
  20615. *
  20616. * You can provide a single value (as `Number` or `String`), or a pair of values
  20617. * as `String` divided by a comma or one (or more) white spaces.<br />
  20618. * The latter is a deprecated method because it leads to confusion and will be
  20619. * removed in v2.<br />
  20620. * Additionally, it accepts additions and subtractions between different units.
  20621. * Note that multiplications and divisions aren't supported.
  20622. *
  20623. * Valid examples are:
  20624. * ```
  20625. * 10
  20626. * '10%'
  20627. * '10, 10'
  20628. * '10%, 10'
  20629. * '10 + 10%'
  20630. * '10 - 5vh + 3%'
  20631. * '-10px + 5vh, 5px - 6%'
  20632. * ```
  20633. * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
  20634. * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
  20635. * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
  20636. *
  20637. * @memberof modifiers
  20638. * @inner
  20639. */
  20640. offset: {
  20641. /** @prop {number} order=200 - Index used to define the order of execution */
  20642. order: 200,
  20643. /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
  20644. enabled: true,
  20645. /** @prop {ModifierFn} */
  20646. fn: offset,
  20647. /** @prop {Number|String} offset=0
  20648. * The offset value as described in the modifier description
  20649. */
  20650. offset: 0
  20651. },
  20652. /**
  20653. * Modifier used to prevent the popper from being positioned outside the boundary.
  20654. *
  20655. * A scenario exists where the reference itself is not within the boundaries.<br />
  20656. * We can say it has "escaped the boundaries" — or just "escaped".<br />
  20657. * In this case we need to decide whether the popper should either:
  20658. *
  20659. * - detach from the reference and remain "trapped" in the boundaries, or
  20660. * - if it should ignore the boundary and "escape with its reference"
  20661. *
  20662. * When `escapeWithReference` is set to`true` and reference is completely
  20663. * outside its boundaries, the popper will overflow (or completely leave)
  20664. * the boundaries in order to remain attached to the edge of the reference.
  20665. *
  20666. * @memberof modifiers
  20667. * @inner
  20668. */
  20669. preventOverflow: {
  20670. /** @prop {number} order=300 - Index used to define the order of execution */
  20671. order: 300,
  20672. /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
  20673. enabled: true,
  20674. /** @prop {ModifierFn} */
  20675. fn: preventOverflow,
  20676. /**
  20677. * @prop {Array} [priority=['left','right','top','bottom']]
  20678. * Popper will try to prevent overflow following these priorities by default,
  20679. * then, it could overflow on the left and on top of the `boundariesElement`
  20680. */
  20681. priority: ['left', 'right', 'top', 'bottom'],
  20682. /**
  20683. * @prop {number} padding=5
  20684. * Amount of pixel used to define a minimum distance between the boundaries
  20685. * and the popper. This makes sure the popper always has a little padding
  20686. * between the edges of its container
  20687. */
  20688. padding: 5,
  20689. /**
  20690. * @prop {String|HTMLElement} boundariesElement='scrollParent'
  20691. * Boundaries used by the modifier. Can be `scrollParent`, `window`,
  20692. * `viewport` or any DOM element.
  20693. */
  20694. boundariesElement: 'scrollParent'
  20695. },
  20696. /**
  20697. * Modifier used to make sure the reference and its popper stay near each other
  20698. * without leaving any gap between the two. Especially useful when the arrow is
  20699. * enabled and you want to ensure that it points to its reference element.
  20700. * It cares only about the first axis. You can still have poppers with margin
  20701. * between the popper and its reference element.
  20702. * @memberof modifiers
  20703. * @inner
  20704. */
  20705. keepTogether: {
  20706. /** @prop {number} order=400 - Index used to define the order of execution */
  20707. order: 400,
  20708. /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
  20709. enabled: true,
  20710. /** @prop {ModifierFn} */
  20711. fn: keepTogether
  20712. },
  20713. /**
  20714. * This modifier is used to move the `arrowElement` of the popper to make
  20715. * sure it is positioned between the reference element and its popper element.
  20716. * It will read the outer size of the `arrowElement` node to detect how many
  20717. * pixels of conjunction are needed.
  20718. *
  20719. * It has no effect if no `arrowElement` is provided.
  20720. * @memberof modifiers
  20721. * @inner
  20722. */
  20723. arrow: {
  20724. /** @prop {number} order=500 - Index used to define the order of execution */
  20725. order: 500,
  20726. /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
  20727. enabled: true,
  20728. /** @prop {ModifierFn} */
  20729. fn: arrow,
  20730. /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
  20731. element: '[x-arrow]'
  20732. },
  20733. /**
  20734. * Modifier used to flip the popper's placement when it starts to overlap its
  20735. * reference element.
  20736. *
  20737. * Requires the `preventOverflow` modifier before it in order to work.
  20738. *
  20739. * **NOTE:** this modifier will interrupt the current update cycle and will
  20740. * restart it if it detects the need to flip the placement.
  20741. * @memberof modifiers
  20742. * @inner
  20743. */
  20744. flip: {
  20745. /** @prop {number} order=600 - Index used to define the order of execution */
  20746. order: 600,
  20747. /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
  20748. enabled: true,
  20749. /** @prop {ModifierFn} */
  20750. fn: flip,
  20751. /**
  20752. * @prop {String|Array} behavior='flip'
  20753. * The behavior used to change the popper's placement. It can be one of
  20754. * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
  20755. * placements (with optional variations)
  20756. */
  20757. behavior: 'flip',
  20758. /**
  20759. * @prop {number} padding=5
  20760. * The popper will flip if it hits the edges of the `boundariesElement`
  20761. */
  20762. padding: 5,
  20763. /**
  20764. * @prop {String|HTMLElement} boundariesElement='viewport'
  20765. * The element which will define the boundaries of the popper position.
  20766. * The popper will never be placed outside of the defined boundaries
  20767. * (except if `keepTogether` is enabled)
  20768. */
  20769. boundariesElement: 'viewport'
  20770. },
  20771. /**
  20772. * Modifier used to make the popper flow toward the inner of the reference element.
  20773. * By default, when this modifier is disabled, the popper will be placed outside
  20774. * the reference element.
  20775. * @memberof modifiers
  20776. * @inner
  20777. */
  20778. inner: {
  20779. /** @prop {number} order=700 - Index used to define the order of execution */
  20780. order: 700,
  20781. /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
  20782. enabled: false,
  20783. /** @prop {ModifierFn} */
  20784. fn: inner
  20785. },
  20786. /**
  20787. * Modifier used to hide the popper when its reference element is outside of the
  20788. * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
  20789. * be used to hide with a CSS selector the popper when its reference is
  20790. * out of boundaries.
  20791. *
  20792. * Requires the `preventOverflow` modifier before it in order to work.
  20793. * @memberof modifiers
  20794. * @inner
  20795. */
  20796. hide: {
  20797. /** @prop {number} order=800 - Index used to define the order of execution */
  20798. order: 800,
  20799. /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
  20800. enabled: true,
  20801. /** @prop {ModifierFn} */
  20802. fn: hide
  20803. },
  20804. /**
  20805. * Computes the style that will be applied to the popper element to gets
  20806. * properly positioned.
  20807. *
  20808. * Note that this modifier will not touch the DOM, it just prepares the styles
  20809. * so that `applyStyle` modifier can apply it. This separation is useful
  20810. * in case you need to replace `applyStyle` with a custom implementation.
  20811. *
  20812. * This modifier has `850` as `order` value to maintain backward compatibility
  20813. * with previous versions of Popper.js. Expect the modifiers ordering method
  20814. * to change in future major versions of the library.
  20815. *
  20816. * @memberof modifiers
  20817. * @inner
  20818. */
  20819. computeStyle: {
  20820. /** @prop {number} order=850 - Index used to define the order of execution */
  20821. order: 850,
  20822. /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
  20823. enabled: true,
  20824. /** @prop {ModifierFn} */
  20825. fn: computeStyle,
  20826. /**
  20827. * @prop {Boolean} gpuAcceleration=true
  20828. * If true, it uses the CSS 3D transformation to position the popper.
  20829. * Otherwise, it will use the `top` and `left` properties
  20830. */
  20831. gpuAcceleration: true,
  20832. /**
  20833. * @prop {string} [x='bottom']
  20834. * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
  20835. * Change this if your popper should grow in a direction different from `bottom`
  20836. */
  20837. x: 'bottom',
  20838. /**
  20839. * @prop {string} [x='left']
  20840. * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
  20841. * Change this if your popper should grow in a direction different from `right`
  20842. */
  20843. y: 'right'
  20844. },
  20845. /**
  20846. * Applies the computed styles to the popper element.
  20847. *
  20848. * All the DOM manipulations are limited to this modifier. This is useful in case
  20849. * you want to integrate Popper.js inside a framework or view library and you
  20850. * want to delegate all the DOM manipulations to it.
  20851. *
  20852. * Note that if you disable this modifier, you must make sure the popper element
  20853. * has its position set to `absolute` before Popper.js can do its work!
  20854. *
  20855. * Just disable this modifier and define your own to achieve the desired effect.
  20856. *
  20857. * @memberof modifiers
  20858. * @inner
  20859. */
  20860. applyStyle: {
  20861. /** @prop {number} order=900 - Index used to define the order of execution */
  20862. order: 900,
  20863. /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
  20864. enabled: true,
  20865. /** @prop {ModifierFn} */
  20866. fn: applyStyle,
  20867. /** @prop {Function} */
  20868. onLoad: applyStyleOnLoad,
  20869. /**
  20870. * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
  20871. * @prop {Boolean} gpuAcceleration=true
  20872. * If true, it uses the CSS 3D transformation to position the popper.
  20873. * Otherwise, it will use the `top` and `left` properties
  20874. */
  20875. gpuAcceleration: undefined
  20876. }
  20877. };
  20878. /**
  20879. * The `dataObject` is an object containing all the information used by Popper.js.
  20880. * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
  20881. * @name dataObject
  20882. * @property {Object} data.instance The Popper.js instance
  20883. * @property {String} data.placement Placement applied to popper
  20884. * @property {String} data.originalPlacement Placement originally defined on init
  20885. * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
  20886. * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
  20887. * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
  20888. * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
  20889. * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
  20890. * @property {Object} data.boundaries Offsets of the popper boundaries
  20891. * @property {Object} data.offsets The measurements of popper, reference and arrow elements
  20892. * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
  20893. * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
  20894. * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
  20895. */
  20896. /**
  20897. * Default options provided to Popper.js constructor.<br />
  20898. * These can be overridden using the `options` argument of Popper.js.<br />
  20899. * To override an option, simply pass an object with the same
  20900. * structure of the `options` object, as the 3rd argument. For example:
  20901. * ```
  20902. * new Popper(ref, pop, {
  20903. * modifiers: {
  20904. * preventOverflow: { enabled: false }
  20905. * }
  20906. * })
  20907. * ```
  20908. * @type {Object}
  20909. * @static
  20910. * @memberof Popper
  20911. */
  20912. var Defaults = {
  20913. /**
  20914. * Popper's placement.
  20915. * @prop {Popper.placements} placement='bottom'
  20916. */
  20917. placement: 'bottom',
  20918. /**
  20919. * Set this to true if you want popper to position it self in 'fixed' mode
  20920. * @prop {Boolean} positionFixed=false
  20921. */
  20922. positionFixed: false,
  20923. /**
  20924. * Whether events (resize, scroll) are initially enabled.
  20925. * @prop {Boolean} eventsEnabled=true
  20926. */
  20927. eventsEnabled: true,
  20928. /**
  20929. * Set to true if you want to automatically remove the popper when
  20930. * you call the `destroy` method.
  20931. * @prop {Boolean} removeOnDestroy=false
  20932. */
  20933. removeOnDestroy: false,
  20934. /**
  20935. * Callback called when the popper is created.<br />
  20936. * By default, it is set to no-op.<br />
  20937. * Access Popper.js instance with `data.instance`.
  20938. * @prop {onCreate}
  20939. */
  20940. onCreate: function onCreate() {},
  20941. /**
  20942. * Callback called when the popper is updated. This callback is not called
  20943. * on the initialization/creation of the popper, but only on subsequent
  20944. * updates.<br />
  20945. * By default, it is set to no-op.<br />
  20946. * Access Popper.js instance with `data.instance`.
  20947. * @prop {onUpdate}
  20948. */
  20949. onUpdate: function onUpdate() {},
  20950. /**
  20951. * List of modifiers used to modify the offsets before they are applied to the popper.
  20952. * They provide most of the functionalities of Popper.js.
  20953. * @prop {modifiers}
  20954. */
  20955. modifiers: modifiers
  20956. };
  20957. /**
  20958. * @callback onCreate
  20959. * @param {dataObject} data
  20960. */
  20961. /**
  20962. * @callback onUpdate
  20963. * @param {dataObject} data
  20964. */
  20965. // Utils
  20966. // Methods
  20967. var Popper = function () {
  20968. /**
  20969. * Creates a new Popper.js instance.
  20970. * @class Popper
  20971. * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
  20972. * @param {HTMLElement} popper - The HTML element used as the popper
  20973. * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
  20974. * @return {Object} instance - The generated Popper.js instance
  20975. */
  20976. function Popper(reference, popper) {
  20977. var _this = this;
  20978. var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  20979. classCallCheck(this, Popper);
  20980. this.scheduleUpdate = function () {
  20981. return requestAnimationFrame(_this.update);
  20982. };
  20983. // make update() debounced, so that it only runs at most once-per-tick
  20984. this.update = debounce(this.update.bind(this));
  20985. // with {} we create a new object with the options inside it
  20986. this.options = _extends({}, Popper.Defaults, options);
  20987. // init state
  20988. this.state = {
  20989. isDestroyed: false,
  20990. isCreated: false,
  20991. scrollParents: []
  20992. };
  20993. // get reference and popper elements (allow jQuery wrappers)
  20994. this.reference = reference && reference.jquery ? reference[0] : reference;
  20995. this.popper = popper && popper.jquery ? popper[0] : popper;
  20996. // Deep merge modifiers options
  20997. this.options.modifiers = {};
  20998. Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
  20999. _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
  21000. });
  21001. // Refactoring modifiers' list (Object => Array)
  21002. this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
  21003. return _extends({
  21004. name: name
  21005. }, _this.options.modifiers[name]);
  21006. })
  21007. // sort the modifiers by order
  21008. .sort(function (a, b) {
  21009. return a.order - b.order;
  21010. });
  21011. // modifiers have the ability to execute arbitrary code when Popper.js get inited
  21012. // such code is executed in the same order of its modifier
  21013. // they could add new properties to their options configuration
  21014. // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
  21015. this.modifiers.forEach(function (modifierOptions) {
  21016. if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
  21017. modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
  21018. }
  21019. });
  21020. // fire the first update to position the popper in the right place
  21021. this.update();
  21022. var eventsEnabled = this.options.eventsEnabled;
  21023. if (eventsEnabled) {
  21024. // setup event listeners, they will take care of update the position in specific situations
  21025. this.enableEventListeners();
  21026. }
  21027. this.state.eventsEnabled = eventsEnabled;
  21028. }
  21029. // We can't use class properties because they don't get listed in the
  21030. // class prototype and break stuff like Sinon stubs
  21031. createClass(Popper, [{
  21032. key: 'update',
  21033. value: function update$$1() {
  21034. return update.call(this);
  21035. }
  21036. }, {
  21037. key: 'destroy',
  21038. value: function destroy$$1() {
  21039. return destroy.call(this);
  21040. }
  21041. }, {
  21042. key: 'enableEventListeners',
  21043. value: function enableEventListeners$$1() {
  21044. return enableEventListeners.call(this);
  21045. }
  21046. }, {
  21047. key: 'disableEventListeners',
  21048. value: function disableEventListeners$$1() {
  21049. return disableEventListeners.call(this);
  21050. }
  21051. /**
  21052. * Schedules an update. It will run on the next UI update available.
  21053. * @method scheduleUpdate
  21054. * @memberof Popper
  21055. */
  21056. /**
  21057. * Collection of utilities useful when writing custom modifiers.
  21058. * Starting from version 1.7, this method is available only if you
  21059. * include `popper-utils.js` before `popper.js`.
  21060. *
  21061. * **DEPRECATION**: This way to access PopperUtils is deprecated
  21062. * and will be removed in v2! Use the PopperUtils module directly instead.
  21063. * Due to the high instability of the methods contained in Utils, we can't
  21064. * guarantee them to follow semver. Use them at your own risk!
  21065. * @static
  21066. * @private
  21067. * @type {Object}
  21068. * @deprecated since version 1.8
  21069. * @member Utils
  21070. * @memberof Popper
  21071. */
  21072. }]);
  21073. return Popper;
  21074. }();
  21075. /**
  21076. * The `referenceObject` is an object that provides an interface compatible with Popper.js
  21077. * and lets you use it as replacement of a real DOM node.<br />
  21078. * You can use this method to position a popper relatively to a set of coordinates
  21079. * in case you don't have a DOM node to use as reference.
  21080. *
  21081. * ```
  21082. * new Popper(referenceObject, popperNode);
  21083. * ```
  21084. *
  21085. * NB: This feature isn't supported in Internet Explorer 10.
  21086. * @name referenceObject
  21087. * @property {Function} data.getBoundingClientRect
  21088. * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
  21089. * @property {number} data.clientWidth
  21090. * An ES6 getter that will return the width of the virtual reference element.
  21091. * @property {number} data.clientHeight
  21092. * An ES6 getter that will return the height of the virtual reference element.
  21093. */
  21094. Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
  21095. Popper.placements = placements;
  21096. Popper.Defaults = Defaults;
  21097. /* harmony default export */ __webpack_exports__["default"] = (Popper);
  21098. //# sourceMappingURL=popper.js.map
  21099. /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/webpack/buildin/global.js")))
  21100. /***/ }),
  21101. /***/ "./node_modules/process/browser.js":
  21102. /***/ (function(module, exports) {
  21103. // shim for using process in browser
  21104. var process = module.exports = {};
  21105. // cached from whatever global is present so that test runners that stub it
  21106. // don't break things. But we need to wrap it in a try catch in case it is
  21107. // wrapped in strict mode code which doesn't define any globals. It's inside a
  21108. // function because try/catches deoptimize in certain engines.
  21109. var cachedSetTimeout;
  21110. var cachedClearTimeout;
  21111. function defaultSetTimout() {
  21112. throw new Error('setTimeout has not been defined');
  21113. }
  21114. function defaultClearTimeout () {
  21115. throw new Error('clearTimeout has not been defined');
  21116. }
  21117. (function () {
  21118. try {
  21119. if (typeof setTimeout === 'function') {
  21120. cachedSetTimeout = setTimeout;
  21121. } else {
  21122. cachedSetTimeout = defaultSetTimout;
  21123. }
  21124. } catch (e) {
  21125. cachedSetTimeout = defaultSetTimout;
  21126. }
  21127. try {
  21128. if (typeof clearTimeout === 'function') {
  21129. cachedClearTimeout = clearTimeout;
  21130. } else {
  21131. cachedClearTimeout = defaultClearTimeout;
  21132. }
  21133. } catch (e) {
  21134. cachedClearTimeout = defaultClearTimeout;
  21135. }
  21136. } ())
  21137. function runTimeout(fun) {
  21138. if (cachedSetTimeout === setTimeout) {
  21139. //normal enviroments in sane situations
  21140. return setTimeout(fun, 0);
  21141. }
  21142. // if setTimeout wasn't available but was latter defined
  21143. if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
  21144. cachedSetTimeout = setTimeout;
  21145. return setTimeout(fun, 0);
  21146. }
  21147. try {
  21148. // when when somebody has screwed with setTimeout but no I.E. maddness
  21149. return cachedSetTimeout(fun, 0);
  21150. } catch(e){
  21151. try {
  21152. // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
  21153. return cachedSetTimeout.call(null, fun, 0);
  21154. } catch(e){
  21155. // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
  21156. return cachedSetTimeout.call(this, fun, 0);
  21157. }
  21158. }
  21159. }
  21160. function runClearTimeout(marker) {
  21161. if (cachedClearTimeout === clearTimeout) {
  21162. //normal enviroments in sane situations
  21163. return clearTimeout(marker);
  21164. }
  21165. // if clearTimeout wasn't available but was latter defined
  21166. if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
  21167. cachedClearTimeout = clearTimeout;
  21168. return clearTimeout(marker);
  21169. }
  21170. try {
  21171. // when when somebody has screwed with setTimeout but no I.E. maddness
  21172. return cachedClearTimeout(marker);
  21173. } catch (e){
  21174. try {
  21175. // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
  21176. return cachedClearTimeout.call(null, marker);
  21177. } catch (e){
  21178. // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
  21179. // Some versions of I.E. have different rules for clearTimeout vs setTimeout
  21180. return cachedClearTimeout.call(this, marker);
  21181. }
  21182. }
  21183. }
  21184. var queue = [];
  21185. var draining = false;
  21186. var currentQueue;
  21187. var queueIndex = -1;
  21188. function cleanUpNextTick() {
  21189. if (!draining || !currentQueue) {
  21190. return;
  21191. }
  21192. draining = false;
  21193. if (currentQueue.length) {
  21194. queue = currentQueue.concat(queue);
  21195. } else {
  21196. queueIndex = -1;
  21197. }
  21198. if (queue.length) {
  21199. drainQueue();
  21200. }
  21201. }
  21202. function drainQueue() {
  21203. if (draining) {
  21204. return;
  21205. }
  21206. var timeout = runTimeout(cleanUpNextTick);
  21207. draining = true;
  21208. var len = queue.length;
  21209. while(len) {
  21210. currentQueue = queue;
  21211. queue = [];
  21212. while (++queueIndex < len) {
  21213. if (currentQueue) {
  21214. currentQueue[queueIndex].run();
  21215. }
  21216. }
  21217. queueIndex = -1;
  21218. len = queue.length;
  21219. }
  21220. currentQueue = null;
  21221. draining = false;
  21222. runClearTimeout(timeout);
  21223. }
  21224. process.nextTick = function (fun) {
  21225. var args = new Array(arguments.length - 1);
  21226. if (arguments.length > 1) {
  21227. for (var i = 1; i < arguments.length; i++) {
  21228. args[i - 1] = arguments[i];
  21229. }
  21230. }
  21231. queue.push(new Item(fun, args));
  21232. if (queue.length === 1 && !draining) {
  21233. runTimeout(drainQueue);
  21234. }
  21235. };
  21236. // v8 likes predictible objects
  21237. function Item(fun, array) {
  21238. this.fun = fun;
  21239. this.array = array;
  21240. }
  21241. Item.prototype.run = function () {
  21242. this.fun.apply(null, this.array);
  21243. };
  21244. process.title = 'browser';
  21245. process.browser = true;
  21246. process.env = {};
  21247. process.argv = [];
  21248. process.version = ''; // empty string to avoid regexp issues
  21249. process.versions = {};
  21250. function noop() {}
  21251. process.on = noop;
  21252. process.addListener = noop;
  21253. process.once = noop;
  21254. process.off = noop;
  21255. process.removeListener = noop;
  21256. process.removeAllListeners = noop;
  21257. process.emit = noop;
  21258. process.prependListener = noop;
  21259. process.prependOnceListener = noop;
  21260. process.listeners = function (name) { return [] }
  21261. process.binding = function (name) {
  21262. throw new Error('process.binding is not supported');
  21263. };
  21264. process.cwd = function () { return '/' };
  21265. process.chdir = function (dir) {
  21266. throw new Error('process.chdir is not supported');
  21267. };
  21268. process.umask = function() { return 0; };
  21269. /***/ }),
  21270. /***/ "./node_modules/setimmediate/setImmediate.js":
  21271. /***/ (function(module, exports, __webpack_require__) {
  21272. /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
  21273. "use strict";
  21274. if (global.setImmediate) {
  21275. return;
  21276. }
  21277. var nextHandle = 1; // Spec says greater than zero
  21278. var tasksByHandle = {};
  21279. var currentlyRunningATask = false;
  21280. var doc = global.document;
  21281. var registerImmediate;
  21282. function setImmediate(callback) {
  21283. // Callback can either be a function or a string
  21284. if (typeof callback !== "function") {
  21285. callback = new Function("" + callback);
  21286. }
  21287. // Copy function arguments
  21288. var args = new Array(arguments.length - 1);
  21289. for (var i = 0; i < args.length; i++) {
  21290. args[i] = arguments[i + 1];
  21291. }
  21292. // Store and register the task
  21293. var task = { callback: callback, args: args };
  21294. tasksByHandle[nextHandle] = task;
  21295. registerImmediate(nextHandle);
  21296. return nextHandle++;
  21297. }
  21298. function clearImmediate(handle) {
  21299. delete tasksByHandle[handle];
  21300. }
  21301. function run(task) {
  21302. var callback = task.callback;
  21303. var args = task.args;
  21304. switch (args.length) {
  21305. case 0:
  21306. callback();
  21307. break;
  21308. case 1:
  21309. callback(args[0]);
  21310. break;
  21311. case 2:
  21312. callback(args[0], args[1]);
  21313. break;
  21314. case 3:
  21315. callback(args[0], args[1], args[2]);
  21316. break;
  21317. default:
  21318. callback.apply(undefined, args);
  21319. break;
  21320. }
  21321. }
  21322. function runIfPresent(handle) {
  21323. // From the spec: "Wait until any invocations of this algorithm started before this one have completed."
  21324. // So if we're currently running a task, we'll need to delay this invocation.
  21325. if (currentlyRunningATask) {
  21326. // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
  21327. // "too much recursion" error.
  21328. setTimeout(runIfPresent, 0, handle);
  21329. } else {
  21330. var task = tasksByHandle[handle];
  21331. if (task) {
  21332. currentlyRunningATask = true;
  21333. try {
  21334. run(task);
  21335. } finally {
  21336. clearImmediate(handle);
  21337. currentlyRunningATask = false;
  21338. }
  21339. }
  21340. }
  21341. }
  21342. function installNextTickImplementation() {
  21343. registerImmediate = function(handle) {
  21344. process.nextTick(function () { runIfPresent(handle); });
  21345. };
  21346. }
  21347. function canUsePostMessage() {
  21348. // The test against `importScripts` prevents this implementation from being installed inside a web worker,
  21349. // where `global.postMessage` means something completely different and can't be used for this purpose.
  21350. if (global.postMessage && !global.importScripts) {
  21351. var postMessageIsAsynchronous = true;
  21352. var oldOnMessage = global.onmessage;
  21353. global.onmessage = function() {
  21354. postMessageIsAsynchronous = false;
  21355. };
  21356. global.postMessage("", "*");
  21357. global.onmessage = oldOnMessage;
  21358. return postMessageIsAsynchronous;
  21359. }
  21360. }
  21361. function installPostMessageImplementation() {
  21362. // Installs an event handler on `global` for the `message` event: see
  21363. // * https://developer.mozilla.org/en/DOM/window.postMessage
  21364. // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
  21365. var messagePrefix = "setImmediate$" + Math.random() + "$";
  21366. var onGlobalMessage = function(event) {
  21367. if (event.source === global &&
  21368. typeof event.data === "string" &&
  21369. event.data.indexOf(messagePrefix) === 0) {
  21370. runIfPresent(+event.data.slice(messagePrefix.length));
  21371. }
  21372. };
  21373. if (global.addEventListener) {
  21374. global.addEventListener("message", onGlobalMessage, false);
  21375. } else {
  21376. global.attachEvent("onmessage", onGlobalMessage);
  21377. }
  21378. registerImmediate = function(handle) {
  21379. global.postMessage(messagePrefix + handle, "*");
  21380. };
  21381. }
  21382. function installMessageChannelImplementation() {
  21383. var channel = new MessageChannel();
  21384. channel.port1.onmessage = function(event) {
  21385. var handle = event.data;
  21386. runIfPresent(handle);
  21387. };
  21388. registerImmediate = function(handle) {
  21389. channel.port2.postMessage(handle);
  21390. };
  21391. }
  21392. function installReadyStateChangeImplementation() {
  21393. var html = doc.documentElement;
  21394. registerImmediate = function(handle) {
  21395. // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
  21396. // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
  21397. var script = doc.createElement("script");
  21398. script.onreadystatechange = function () {
  21399. runIfPresent(handle);
  21400. script.onreadystatechange = null;
  21401. html.removeChild(script);
  21402. script = null;
  21403. };
  21404. html.appendChild(script);
  21405. };
  21406. }
  21407. function installSetTimeoutImplementation() {
  21408. registerImmediate = function(handle) {
  21409. setTimeout(runIfPresent, 0, handle);
  21410. };
  21411. }
  21412. // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
  21413. var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
  21414. attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
  21415. // Don't get fooled by e.g. browserify environments.
  21416. if ({}.toString.call(global.process) === "[object process]") {
  21417. // For Node.js before 0.9
  21418. installNextTickImplementation();
  21419. } else if (canUsePostMessage()) {
  21420. // For non-IE10 modern browsers
  21421. installPostMessageImplementation();
  21422. } else if (global.MessageChannel) {
  21423. // For web workers, where supported
  21424. installMessageChannelImplementation();
  21425. } else if (doc && "onreadystatechange" in doc.createElement("script")) {
  21426. // For IE 6–8
  21427. installReadyStateChangeImplementation();
  21428. } else {
  21429. // For older browsers
  21430. installSetTimeoutImplementation();
  21431. }
  21432. attachTo.setImmediate = setImmediate;
  21433. attachTo.clearImmediate = clearImmediate;
  21434. }(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
  21435. /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/process/browser.js")))
  21436. /***/ }),
  21437. /***/ "./node_modules/style-loader/lib/addStyles.js":
  21438. /***/ (function(module, exports, __webpack_require__) {
  21439. /*
  21440. MIT License http://www.opensource.org/licenses/mit-license.php
  21441. Author Tobias Koppers @sokra
  21442. */
  21443. var stylesInDom = {};
  21444. var memoize = function (fn) {
  21445. var memo;
  21446. return function () {
  21447. if (typeof memo === "undefined") memo = fn.apply(this, arguments);
  21448. return memo;
  21449. };
  21450. };
  21451. var isOldIE = memoize(function () {
  21452. // Test for IE <= 9 as proposed by Browserhacks
  21453. // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
  21454. // Tests for existence of standard globals is to allow style-loader
  21455. // to operate correctly into non-standard environments
  21456. // @see https://github.com/webpack-contrib/style-loader/issues/177
  21457. return window && document && document.all && !window.atob;
  21458. });
  21459. var getElement = (function (fn) {
  21460. var memo = {};
  21461. return function(selector) {
  21462. if (typeof memo[selector] === "undefined") {
  21463. memo[selector] = fn.call(this, selector);
  21464. }
  21465. return memo[selector]
  21466. };
  21467. })(function (target) {
  21468. return document.querySelector(target)
  21469. });
  21470. var singleton = null;
  21471. var singletonCounter = 0;
  21472. var stylesInsertedAtTop = [];
  21473. var fixUrls = __webpack_require__("./node_modules/style-loader/lib/urls.js");
  21474. module.exports = function(list, options) {
  21475. if (typeof DEBUG !== "undefined" && DEBUG) {
  21476. if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
  21477. }
  21478. options = options || {};
  21479. options.attrs = typeof options.attrs === "object" ? options.attrs : {};
  21480. // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
  21481. // tags it will allow on a page
  21482. if (!options.singleton) options.singleton = isOldIE();
  21483. // By default, add <style> tags to the <head> element
  21484. if (!options.insertInto) options.insertInto = "head";
  21485. // By default, add <style> tags to the bottom of the target
  21486. if (!options.insertAt) options.insertAt = "bottom";
  21487. var styles = listToStyles(list, options);
  21488. addStylesToDom(styles, options);
  21489. return function update (newList) {
  21490. var mayRemove = [];
  21491. for (var i = 0; i < styles.length; i++) {
  21492. var item = styles[i];
  21493. var domStyle = stylesInDom[item.id];
  21494. domStyle.refs--;
  21495. mayRemove.push(domStyle);
  21496. }
  21497. if(newList) {
  21498. var newStyles = listToStyles(newList, options);
  21499. addStylesToDom(newStyles, options);
  21500. }
  21501. for (var i = 0; i < mayRemove.length; i++) {
  21502. var domStyle = mayRemove[i];
  21503. if(domStyle.refs === 0) {
  21504. for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();
  21505. delete stylesInDom[domStyle.id];
  21506. }
  21507. }
  21508. };
  21509. };
  21510. function addStylesToDom (styles, options) {
  21511. for (var i = 0; i < styles.length; i++) {
  21512. var item = styles[i];
  21513. var domStyle = stylesInDom[item.id];
  21514. if(domStyle) {
  21515. domStyle.refs++;
  21516. for(var j = 0; j < domStyle.parts.length; j++) {
  21517. domStyle.parts[j](item.parts[j]);
  21518. }
  21519. for(; j < item.parts.length; j++) {
  21520. domStyle.parts.push(addStyle(item.parts[j], options));
  21521. }
  21522. } else {
  21523. var parts = [];
  21524. for(var j = 0; j < item.parts.length; j++) {
  21525. parts.push(addStyle(item.parts[j], options));
  21526. }
  21527. stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
  21528. }
  21529. }
  21530. }
  21531. function listToStyles (list, options) {
  21532. var styles = [];
  21533. var newStyles = {};
  21534. for (var i = 0; i < list.length; i++) {
  21535. var item = list[i];
  21536. var id = options.base ? item[0] + options.base : item[0];
  21537. var css = item[1];
  21538. var media = item[2];
  21539. var sourceMap = item[3];
  21540. var part = {css: css, media: media, sourceMap: sourceMap};
  21541. if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});
  21542. else newStyles[id].parts.push(part);
  21543. }
  21544. return styles;
  21545. }
  21546. function insertStyleElement (options, style) {
  21547. var target = getElement(options.insertInto)
  21548. if (!target) {
  21549. throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
  21550. }
  21551. var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
  21552. if (options.insertAt === "top") {
  21553. if (!lastStyleElementInsertedAtTop) {
  21554. target.insertBefore(style, target.firstChild);
  21555. } else if (lastStyleElementInsertedAtTop.nextSibling) {
  21556. target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
  21557. } else {
  21558. target.appendChild(style);
  21559. }
  21560. stylesInsertedAtTop.push(style);
  21561. } else if (options.insertAt === "bottom") {
  21562. target.appendChild(style);
  21563. } else {
  21564. throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
  21565. }
  21566. }
  21567. function removeStyleElement (style) {
  21568. if (style.parentNode === null) return false;
  21569. style.parentNode.removeChild(style);
  21570. var idx = stylesInsertedAtTop.indexOf(style);
  21571. if(idx >= 0) {
  21572. stylesInsertedAtTop.splice(idx, 1);
  21573. }
  21574. }
  21575. function createStyleElement (options) {
  21576. var style = document.createElement("style");
  21577. options.attrs.type = "text/css";
  21578. addAttrs(style, options.attrs);
  21579. insertStyleElement(options, style);
  21580. return style;
  21581. }
  21582. function createLinkElement (options) {
  21583. var link = document.createElement("link");
  21584. options.attrs.type = "text/css";
  21585. options.attrs.rel = "stylesheet";
  21586. addAttrs(link, options.attrs);
  21587. insertStyleElement(options, link);
  21588. return link;
  21589. }
  21590. function addAttrs (el, attrs) {
  21591. Object.keys(attrs).forEach(function (key) {
  21592. el.setAttribute(key, attrs[key]);
  21593. });
  21594. }
  21595. function addStyle (obj, options) {
  21596. var style, update, remove, result;
  21597. // If a transform function was defined, run it on the css
  21598. if (options.transform && obj.css) {
  21599. result = options.transform(obj.css);
  21600. if (result) {
  21601. // If transform returns a value, use that instead of the original css.
  21602. // This allows running runtime transformations on the css.
  21603. obj.css = result;
  21604. } else {
  21605. // If the transform function returns a falsy value, don't add this css.
  21606. // This allows conditional loading of css
  21607. return function() {
  21608. // noop
  21609. };
  21610. }
  21611. }
  21612. if (options.singleton) {
  21613. var styleIndex = singletonCounter++;
  21614. style = singleton || (singleton = createStyleElement(options));
  21615. update = applyToSingletonTag.bind(null, style, styleIndex, false);
  21616. remove = applyToSingletonTag.bind(null, style, styleIndex, true);
  21617. } else if (
  21618. obj.sourceMap &&
  21619. typeof URL === "function" &&
  21620. typeof URL.createObjectURL === "function" &&
  21621. typeof URL.revokeObjectURL === "function" &&
  21622. typeof Blob === "function" &&
  21623. typeof btoa === "function"
  21624. ) {
  21625. style = createLinkElement(options);
  21626. update = updateLink.bind(null, style, options);
  21627. remove = function () {
  21628. removeStyleElement(style);
  21629. if(style.href) URL.revokeObjectURL(style.href);
  21630. };
  21631. } else {
  21632. style = createStyleElement(options);
  21633. update = applyToTag.bind(null, style);
  21634. remove = function () {
  21635. removeStyleElement(style);
  21636. };
  21637. }
  21638. update(obj);
  21639. return function updateStyle (newObj) {
  21640. if (newObj) {
  21641. if (
  21642. newObj.css === obj.css &&
  21643. newObj.media === obj.media &&
  21644. newObj.sourceMap === obj.sourceMap
  21645. ) {
  21646. return;
  21647. }
  21648. update(obj = newObj);
  21649. } else {
  21650. remove();
  21651. }
  21652. };
  21653. }
  21654. var replaceText = (function () {
  21655. var textStore = [];
  21656. return function (index, replacement) {
  21657. textStore[index] = replacement;
  21658. return textStore.filter(Boolean).join('\n');
  21659. };
  21660. })();
  21661. function applyToSingletonTag (style, index, remove, obj) {
  21662. var css = remove ? "" : obj.css;
  21663. if (style.styleSheet) {
  21664. style.styleSheet.cssText = replaceText(index, css);
  21665. } else {
  21666. var cssNode = document.createTextNode(css);
  21667. var childNodes = style.childNodes;
  21668. if (childNodes[index]) style.removeChild(childNodes[index]);
  21669. if (childNodes.length) {
  21670. style.insertBefore(cssNode, childNodes[index]);
  21671. } else {
  21672. style.appendChild(cssNode);
  21673. }
  21674. }
  21675. }
  21676. function applyToTag (style, obj) {
  21677. var css = obj.css;
  21678. var media = obj.media;
  21679. if(media) {
  21680. style.setAttribute("media", media)
  21681. }
  21682. if(style.styleSheet) {
  21683. style.styleSheet.cssText = css;
  21684. } else {
  21685. while(style.firstChild) {
  21686. style.removeChild(style.firstChild);
  21687. }
  21688. style.appendChild(document.createTextNode(css));
  21689. }
  21690. }
  21691. function updateLink (link, options, obj) {
  21692. var css = obj.css;
  21693. var sourceMap = obj.sourceMap;
  21694. /*
  21695. If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
  21696. and there is no publicPath defined then lets turn convertToAbsoluteUrls
  21697. on by default. Otherwise default to the convertToAbsoluteUrls option
  21698. directly
  21699. */
  21700. var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;
  21701. if (options.convertToAbsoluteUrls || autoFixUrls) {
  21702. css = fixUrls(css);
  21703. }
  21704. if (sourceMap) {
  21705. // http://stackoverflow.com/a/26603875
  21706. css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
  21707. }
  21708. var blob = new Blob([css], { type: "text/css" });
  21709. var oldSrc = link.href;
  21710. link.href = URL.createObjectURL(blob);
  21711. if(oldSrc) URL.revokeObjectURL(oldSrc);
  21712. }
  21713. /***/ }),
  21714. /***/ "./node_modules/style-loader/lib/urls.js":
  21715. /***/ (function(module, exports) {
  21716. /**
  21717. * When source maps are enabled, `style-loader` uses a link element with a data-uri to
  21718. * embed the css on the page. This breaks all relative urls because now they are relative to a
  21719. * bundle instead of the current page.
  21720. *
  21721. * One solution is to only use full urls, but that may be impossible.
  21722. *
  21723. * Instead, this function "fixes" the relative urls to be absolute according to the current page location.
  21724. *
  21725. * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
  21726. *
  21727. */
  21728. module.exports = function (css) {
  21729. // get current location
  21730. var location = typeof window !== "undefined" && window.location;
  21731. if (!location) {
  21732. throw new Error("fixUrls requires window.location");
  21733. }
  21734. // blank or null?
  21735. if (!css || typeof css !== "string") {
  21736. return css;
  21737. }
  21738. var baseUrl = location.protocol + "//" + location.host;
  21739. var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
  21740. // convert each url(...)
  21741. /*
  21742. This regular expression is just a way to recursively match brackets within
  21743. a string.
  21744. /url\s*\( = Match on the word "url" with any whitespace after it and then a parens
  21745. ( = Start a capturing group
  21746. (?: = Start a non-capturing group
  21747. [^)(] = Match anything that isn't a parentheses
  21748. | = OR
  21749. \( = Match a start parentheses
  21750. (?: = Start another non-capturing groups
  21751. [^)(]+ = Match anything that isn't a parentheses
  21752. | = OR
  21753. \( = Match a start parentheses
  21754. [^)(]* = Match anything that isn't a parentheses
  21755. \) = Match a end parentheses
  21756. ) = End Group
  21757. *\) = Match anything and then a close parens
  21758. ) = Close non-capturing group
  21759. * = Match anything
  21760. ) = Close capturing group
  21761. \) = Match a close parens
  21762. /gi = Get all matches, not the first. Be case insensitive.
  21763. */
  21764. var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
  21765. // strip quotes (if they exist)
  21766. var unquotedOrigUrl = origUrl
  21767. .trim()
  21768. .replace(/^"(.*)"$/, function(o, $1){ return $1; })
  21769. .replace(/^'(.*)'$/, function(o, $1){ return $1; });
  21770. // already a full url? no change
  21771. if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(unquotedOrigUrl)) {
  21772. return fullMatch;
  21773. }
  21774. // convert the url to a full url
  21775. var newUrl;
  21776. if (unquotedOrigUrl.indexOf("//") === 0) {
  21777. //TODO: should we add protocol?
  21778. newUrl = unquotedOrigUrl;
  21779. } else if (unquotedOrigUrl.indexOf("/") === 0) {
  21780. // path should be relative to the base url
  21781. newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
  21782. } else {
  21783. // path should be relative to current directory
  21784. newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
  21785. }
  21786. // send back the fixed url(...)
  21787. return "url(" + JSON.stringify(newUrl) + ")";
  21788. });
  21789. // send back the fixed css
  21790. return fixedCss;
  21791. };
  21792. /***/ }),
  21793. /***/ "./node_modules/sweetalert/dist/sweetalert.min.js":
  21794. /***/ (function(module, exports, __webpack_require__) {
  21795. /* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {!function(t,e){ true?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.swal=e():t.swal=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=8)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o="swal-button";e.CLASS_NAMES={MODAL:"swal-modal",OVERLAY:"swal-overlay",SHOW_MODAL:"swal-overlay--show-modal",MODAL_TITLE:"swal-title",MODAL_TEXT:"swal-text",ICON:"swal-icon",ICON_CUSTOM:"swal-icon--custom",CONTENT:"swal-content",FOOTER:"swal-footer",BUTTON_CONTAINER:"swal-button-container",BUTTON:o,CONFIRM_BUTTON:o+"--confirm",CANCEL_BUTTON:o+"--cancel",DANGER_BUTTON:o+"--danger",BUTTON_LOADING:o+"--loading",BUTTON_LOADER:o+"__loader"},e.default=e.CLASS_NAMES},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNode=function(t){var e="."+t;return document.querySelector(e)},e.stringToNode=function(t){var e=document.createElement("div");return e.innerHTML=t.trim(),e.firstChild},e.insertAfter=function(t,e){var n=e.nextSibling;e.parentNode.insertBefore(t,n)},e.removeNode=function(t){t.parentElement.removeChild(t)},e.throwErr=function(t){throw t=t.replace(/ +(?= )/g,""),"SweetAlert: "+(t=t.trim())},e.isPlainObject=function(t){if("[object Object]"!==Object.prototype.toString.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype},e.ordinalSuffixOf=function(t){var e=t%10,n=t%100;return 1===e&&11!==n?t+"st":2===e&&12!==n?t+"nd":3===e&&13!==n?t+"rd":t+"th"}},function(t,e,n){"use strict";function o(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),o(n(25));var r=n(26);e.overlayMarkup=r.default,o(n(27)),o(n(28)),o(n(29));var i=n(0),a=i.default.MODAL_TITLE,s=i.default.MODAL_TEXT,c=i.default.ICON,l=i.default.FOOTER;e.iconMarkup='\n <div class="'+c+'"></div>',e.titleMarkup='\n <div class="'+a+'"></div>\n',e.textMarkup='\n <div class="'+s+'"></div>',e.footerMarkup='\n <div class="'+l+'"></div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1);e.CONFIRM_KEY="confirm",e.CANCEL_KEY="cancel";var r={visible:!0,text:null,value:null,className:"",closeModal:!0},i=Object.assign({},r,{visible:!1,text:"Cancel",value:null}),a=Object.assign({},r,{text:"OK",value:!0});e.defaultButtonList={cancel:i,confirm:a};var s=function(t){switch(t){case e.CONFIRM_KEY:return a;case e.CANCEL_KEY:return i;default:var n=t.charAt(0).toUpperCase()+t.slice(1);return Object.assign({},r,{text:n,value:t})}},c=function(t,e){var n=s(t);return!0===e?Object.assign({},n,{visible:!0}):"string"==typeof e?Object.assign({},n,{visible:!0,text:e}):o.isPlainObject(e)?Object.assign({visible:!0},n,e):Object.assign({},n,{visible:!1})},l=function(t){for(var e={},n=0,o=Object.keys(t);n<o.length;n++){var r=o[n],a=t[r],s=c(r,a);e[r]=s}return e.cancel||(e.cancel=i),e},u=function(t){var n={};switch(t.length){case 1:n[e.CANCEL_KEY]=Object.assign({},i,{visible:!1});break;case 2:n[e.CANCEL_KEY]=c(e.CANCEL_KEY,t[0]),n[e.CONFIRM_KEY]=c(e.CONFIRM_KEY,t[1]);break;default:o.throwErr("Invalid number of 'buttons' in array ("+t.length+").\n If you want more than 2 buttons, you need to use an object!")}return n};e.getButtonListOpts=function(t){var n=e.defaultButtonList;return"string"==typeof t?n[e.CONFIRM_KEY]=c(e.CONFIRM_KEY,t):Array.isArray(t)?n=u(t):o.isPlainObject(t)?n=l(t):!0===t?n=u([!0,!0]):!1===t?n=u([!1,!1]):void 0===t&&(n=e.defaultButtonList),n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=n(0),a=i.default.MODAL,s=i.default.OVERLAY,c=n(30),l=n(31),u=n(32),f=n(33);e.injectElIntoModal=function(t){var e=o.getNode(a),n=o.stringToNode(t);return e.appendChild(n),n};var d=function(t){t.className=a,t.textContent=""},p=function(t,e){d(t);var n=e.className;n&&t.classList.add(n)};e.initModalContent=function(t){var e=o.getNode(a);p(e,t),c.default(t.icon),l.initTitle(t.title),l.initText(t.text),f.default(t.content),u.default(t.buttons,t.dangerMode)};var m=function(){var t=o.getNode(s),e=o.stringToNode(r.modalMarkup);t.appendChild(e)};e.default=m},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r={isOpen:!1,promise:null,actions:{},timer:null},i=Object.assign({},r);e.resetState=function(){i=Object.assign({},r)},e.setActionValue=function(t){if("string"==typeof t)return a(o.CONFIRM_KEY,t);for(var e in t)a(e,t[e])};var a=function(t,e){i.actions[t]||(i.actions[t]={}),Object.assign(i.actions[t],{value:e})};e.setActionOptionsFor=function(t,e){var n=(void 0===e?{}:e).closeModal,o=void 0===n||n;Object.assign(i.actions[t],{closeModal:o})},e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(0),a=i.default.OVERLAY,s=i.default.SHOW_MODAL,c=i.default.BUTTON,l=i.default.BUTTON_LOADING,u=n(5);e.openModal=function(){o.getNode(a).classList.add(s),u.default.isOpen=!0};var f=function(){o.getNode(a).classList.remove(s),u.default.isOpen=!1};e.onAction=function(t){void 0===t&&(t=r.CANCEL_KEY);var e=u.default.actions[t],n=e.value;if(!1===e.closeModal){var i=c+"--"+t;o.getNode(i).classList.add(l)}else f();u.default.promise.resolve(n)},e.getState=function(){var t=Object.assign({},u.default);return delete t.promise,delete t.timer,t},e.stopLoading=function(){for(var t=document.querySelectorAll("."+c),e=0;e<t.length;e++){t[e].classList.remove(l)}}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){(function(e){t.exports=e.sweetAlert=n(9)}).call(e,n(7))},function(t,e,n){(function(e){t.exports=e.swal=n(10)}).call(e,n(7))},function(t,e,n){"undefined"!=typeof window&&n(11),n(16);var o=n(23).default;t.exports=o},function(t,e,n){var o=n(12);"string"==typeof o&&(o=[[t.i,o,""]]);var r={insertAt:"top"};r.transform=void 0;n(14)(o,r);o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(13)(void 0),e.push([t.i,'.swal-icon--error{border-color:#f27474;-webkit-animation:animateErrorIcon .5s;animation:animateErrorIcon .5s}.swal-icon--error__x-mark{position:relative;display:block;-webkit-animation:animateXMark .5s;animation:animateXMark .5s}.swal-icon--error__line{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal-icon--error__line--left{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal-icon--error__line--right{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}@-webkit-keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal-icon--warning{border-color:#f8bb86;-webkit-animation:pulseWarning .75s infinite alternate;animation:pulseWarning .75s infinite alternate}.swal-icon--warning__body{width:5px;height:47px;top:10px;border-radius:2px;margin-left:-2px}.swal-icon--warning__body,.swal-icon--warning__dot{position:absolute;left:50%;background-color:#f8bb86}.swal-icon--warning__dot{width:7px;height:7px;border-radius:50%;margin-left:-4px;bottom:-11px}@-webkit-keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}@keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}.swal-icon--success{border-color:#a5dc86}.swal-icon--success:after,.swal-icon--success:before{content:"";border-radius:50%;position:absolute;width:60px;height:120px;background:#fff;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal-icon--success:before{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal-icon--success:after{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px;-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}.swal-icon--success__ring{width:80px;height:80px;border:4px solid hsla(98,55%,69%,.2);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal-icon--success__hide-corners{width:5px;height:90px;background-color:#fff;padding:1px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal-icon--success__line{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal-icon--success__line--tip{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:animateSuccessTip .75s;animation:animateSuccessTip .75s}.swal-icon--success__line--long{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-animation:animateSuccessLong .75s;animation:animateSuccessLong .75s}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@-webkit-keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}.swal-icon--info{border-color:#c9dae1}.swal-icon--info:before{width:5px;height:29px;bottom:17px;border-radius:2px;margin-left:-2px}.swal-icon--info:after,.swal-icon--info:before{content:"";position:absolute;left:50%;background-color:#c9dae1}.swal-icon--info:after{width:7px;height:7px;border-radius:50%;margin-left:-3px;top:19px}.swal-icon{width:80px;height:80px;border-width:4px;border-style:solid;border-radius:50%;padding:0;position:relative;box-sizing:content-box;margin:20px auto}.swal-icon:first-child{margin-top:32px}.swal-icon--custom{width:auto;height:auto;max-width:100%;border:none;border-radius:0}.swal-icon img{max-width:100%;max-height:100%}.swal-title{color:rgba(0,0,0,.65);font-weight:600;text-transform:none;position:relative;display:block;padding:13px 16px;font-size:27px;line-height:normal;text-align:center;margin-bottom:0}.swal-title:first-child{margin-top:26px}.swal-title:not(:first-child){padding-bottom:0}.swal-title:not(:last-child){margin-bottom:13px}.swal-text{font-size:16px;position:relative;float:none;line-height:normal;vertical-align:top;text-align:left;display:inline-block;margin:0;padding:0 10px;font-weight:400;color:rgba(0,0,0,.64);max-width:calc(100% - 20px);overflow-wrap:break-word;box-sizing:border-box}.swal-text:first-child{margin-top:45px}.swal-text:last-child{margin-bottom:45px}.swal-footer{text-align:right;padding-top:13px;margin-top:13px;padding:13px 16px;border-radius:inherit;border-top-left-radius:0;border-top-right-radius:0}.swal-button-container{margin:5px;display:inline-block;position:relative}.swal-button{background-color:#7cd1f9;color:#fff;border:none;box-shadow:none;border-radius:5px;font-weight:600;font-size:14px;padding:10px 24px;margin:0;cursor:pointer}.swal-button:not([disabled]):hover{background-color:#78cbf2}.swal-button:active{background-color:#70bce0}.swal-button:focus{outline:none;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(43,114,165,.29)}.swal-button[disabled]{opacity:.5;cursor:default}.swal-button::-moz-focus-inner{border:0}.swal-button--cancel{color:#555;background-color:#efefef}.swal-button--cancel:not([disabled]):hover{background-color:#e8e8e8}.swal-button--cancel:active{background-color:#d7d7d7}.swal-button--cancel:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(116,136,150,.29)}.swal-button--danger{background-color:#e64942}.swal-button--danger:not([disabled]):hover{background-color:#df4740}.swal-button--danger:active{background-color:#cf423b}.swal-button--danger:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(165,43,43,.29)}.swal-content{padding:0 20px;margin-top:20px;font-size:medium}.swal-content:last-child{margin-bottom:20px}.swal-content__input,.swal-content__textarea{-webkit-appearance:none;background-color:#fff;border:none;font-size:14px;display:block;box-sizing:border-box;width:100%;border:1px solid rgba(0,0,0,.14);padding:10px 13px;border-radius:2px;transition:border-color .2s}.swal-content__input:focus,.swal-content__textarea:focus{outline:none;border-color:#6db8ff}.swal-content__textarea{resize:vertical}.swal-button--loading{color:transparent}.swal-button--loading~.swal-button__loader{opacity:1}.swal-button__loader{position:absolute;height:auto;width:43px;z-index:2;left:50%;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);text-align:center;pointer-events:none;opacity:0}.swal-button__loader div{display:inline-block;float:none;vertical-align:baseline;width:9px;height:9px;padding:0;border:none;margin:2px;opacity:.4;border-radius:7px;background-color:hsla(0,0%,100%,.9);transition:background .2s;-webkit-animation:swal-loading-anim 1s infinite;animation:swal-loading-anim 1s infinite}.swal-button__loader div:nth-child(3n+2){-webkit-animation-delay:.15s;animation-delay:.15s}.swal-button__loader div:nth-child(3n+3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}@keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}.swal-overlay{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center;font-size:0;overflow-y:auto;background-color:rgba(0,0,0,.4);z-index:10000;pointer-events:none;opacity:0;transition:opacity .3s}.swal-overlay:before{content:" ";display:inline-block;vertical-align:middle;height:100%}.swal-overlay--show-modal{opacity:1;pointer-events:auto}.swal-overlay--show-modal .swal-modal{opacity:1;pointer-events:auto;box-sizing:border-box;-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s;will-change:transform}.swal-modal{width:478px;opacity:0;pointer-events:none;background-color:#fff;text-align:center;border-radius:5px;position:static;margin:20px auto;display:inline-block;vertical-align:middle;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;z-index:10001;transition:opacity .2s,-webkit-transform .3s;transition:transform .3s,opacity .2s;transition:transform .3s,opacity .2s,-webkit-transform .3s}@media (max-width:500px){.swal-modal{width:calc(100% - 20px)}}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}',""])},function(t,e){function n(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var o=n(e,t);return e[2]?"@media "+e[2]+"{"+o+"}":o}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var o={},r=0;r<this.length;r++){var i=this[r][0];"number"==typeof i&&(o[i]=!0)}for(r=0;r<t.length;r++){var a=t[r];"number"==typeof a[0]&&o[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(t,e,n){function o(t,e){for(var n=0;n<t.length;n++){var o=t[n],r=m[o.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](o.parts[i]);for(;i<o.parts.length;i++)r.parts.push(u(o.parts[i],e))}else{for(var a=[],i=0;i<o.parts.length;i++)a.push(u(o.parts[i],e));m[o.id]={id:o.id,refs:1,parts:a}}}}function r(t,e){for(var n=[],o={},r=0;r<t.length;r++){var i=t[r],a=e.base?i[0]+e.base:i[0],s=i[1],c=i[2],l=i[3],u={css:s,media:c,sourceMap:l};o[a]?o[a].parts.push(u):n.push(o[a]={id:a,parts:[u]})}return n}function i(t,e){var n=v(t.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var o=w[w.length-1];if("top"===t.insertAt)o?o.nextSibling?n.insertBefore(e,o.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),w.push(e);else{if("bottom"!==t.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");n.appendChild(e)}}function a(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=w.indexOf(t);e>=0&&w.splice(e,1)}function s(t){var e=document.createElement("style");return t.attrs.type="text/css",l(e,t.attrs),i(t,e),e}function c(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",l(e,t.attrs),i(t,e),e}function l(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function u(t,e){var n,o,r,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var l=h++;n=g||(g=s(e)),o=f.bind(null,n,l,!1),r=f.bind(null,n,l,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),o=p.bind(null,n,e),r=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),o=d.bind(null,n),r=function(){a(n)});return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else r()}}function f(t,e,n,o){var r=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=x(e,r);else{var i=document.createTextNode(r),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function d(t,e){var n=e.css,o=e.media;if(o&&t.setAttribute("media",o),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e,n){var o=n.css,r=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||i)&&(o=y(o)),r&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([o],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var m={},b=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),v=function(t){var e={};return function(n){return void 0===e[n]&&(e[n]=t.call(this,n)),e[n]}}(function(t){return document.querySelector(t)}),g=null,h=0,w=[],y=n(15);t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=b()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=r(t,e);return o(n,e),function(t){for(var i=[],a=0;a<n.length;a++){var s=n[a],c=m[s.id];c.refs--,i.push(c)}if(t){o(r(t,e),e)}for(var a=0;a<i.length;a++){var c=i[a];if(0===c.refs){for(var l=0;l<c.parts.length;l++)c.parts[l]();delete m[c.id]}}}};var x=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var n=e.protocol+"//"+e.host,o=n+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var r=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(r))return t;var i;return i=0===r.indexOf("//")?r:0===r.indexOf("/")?n+r:o+r.replace(/^\.\//,""),"url("+JSON.stringify(i)+")"})}},function(t,e,n){var o=n(17);"undefined"==typeof window||window.Promise||(window.Promise=o),n(21),String.prototype.includes||(String.prototype.includes=function(t,e){"use strict";return"number"!=typeof e&&(e=0),!(e+t.length>this.length)&&-1!==this.indexOf(t,e)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(t,e){if(null==this)throw new TypeError('"this" is null or not defined');var n=Object(this),o=n.length>>>0;if(0===o)return!1;for(var r=0|e,i=Math.max(r>=0?r:o-Math.abs(r),0);i<o;){if(function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}(n[i],t))return!0;i++}return!1}}),"undefined"!=typeof window&&function(t){t.forEach(function(t){t.hasOwnProperty("remove")||Object.defineProperty(t,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){this.parentNode.removeChild(this)}})})}([Element.prototype,CharacterData.prototype,DocumentType.prototype])},function(t,e,n){(function(e){!function(n){function o(){}function r(t,e){return function(){t.apply(e,arguments)}}function i(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],f(t,this)}function a(t,e){for(;3===t._state;)t=t._value;if(0===t._state)return void t._deferreds.push(e);t._handled=!0,i._immediateFn(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?s:c)(e.promise,t._value);var o;try{o=n(t._value)}catch(t){return void c(e.promise,t)}s(e.promise,o)})}function s(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof i)return t._state=3,t._value=e,void l(t);if("function"==typeof n)return void f(r(n,e),t)}t._state=1,t._value=e,l(t)}catch(e){c(t,e)}}function c(t,e){t._state=2,t._value=e,l(t)}function l(t){2===t._state&&0===t._deferreds.length&&i._immediateFn(function(){t._handled||i._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e<n;e++)a(t,t._deferreds[e]);t._deferreds=null}function u(t,e,n){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.promise=n}function f(t,e){var n=!1;try{t(function(t){n||(n=!0,s(e,t))},function(t){n||(n=!0,c(e,t))})}catch(t){if(n)return;n=!0,c(e,t)}}var d=setTimeout;i.prototype.catch=function(t){return this.then(null,t)},i.prototype.then=function(t,e){var n=new this.constructor(o);return a(this,new u(t,e,n)),n},i.all=function(t){var e=Array.prototype.slice.call(t);return new i(function(t,n){function o(i,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(t){o(i,t)},n)}e[i]=a,0==--r&&t(e)}catch(t){n(t)}}if(0===e.length)return t([]);for(var r=e.length,i=0;i<e.length;i++)o(i,e[i])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(function(e){e(t)})},i.reject=function(t){return new i(function(e,n){n(t)})},i.race=function(t){return new i(function(e,n){for(var o=0,r=t.length;o<r;o++)t[o].then(e,n)})},i._immediateFn="function"==typeof e&&function(t){e(t)}||function(t){d(t,0)},i._unhandledRejectionFn=function(t){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",t)},i._setImmediateFn=function(t){i._immediateFn=t},i._setUnhandledRejectionFn=function(t){i._unhandledRejectionFn=t},void 0!==t&&t.exports?t.exports=i:n.Promise||(n.Promise=i)}(this)}).call(e,n(18).setImmediate)},function(t,e,n){function o(t,e){this._id=t,this._clearFn=e}var r=Function.prototype.apply;e.setTimeout=function(){return new o(r.call(setTimeout,window,arguments),clearTimeout)},e.setInterval=function(){return new o(r.call(setInterval,window,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(window,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(19),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function o(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return l[c]=o,s(c),c++}function r(t){delete l[t]}function i(t){var e=t.callback,o=t.args;switch(o.length){case 0:e();break;case 1:e(o[0]);break;case 2:e(o[0],o[1]);break;case 3:e(o[0],o[1],o[2]);break;default:e.apply(n,o)}}function a(t){if(u)setTimeout(a,0,t);else{var e=l[t];if(e){u=!0;try{i(e)}finally{r(t),u=!1}}}}if(!t.setImmediate){var s,c=1,l={},u=!1,f=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?function(){s=function(t){e.nextTick(function(){a(t)})}}():function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?function(){var e="setImmediate$"+Math.random()+"$",n=function(n){n.source===t&&"string"==typeof n.data&&0===n.data.indexOf(e)&&a(+n.data.slice(e.length))};t.addEventListener?t.addEventListener("message",n,!1):t.attachEvent("onmessage",n),s=function(n){t.postMessage(e+n,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){a(t.data)},s=function(e){t.port2.postMessage(e)}}():f&&"onreadystatechange"in f.createElement("script")?function(){var t=f.documentElement;s=function(e){var n=f.createElement("script");n.onreadystatechange=function(){a(e),n.onreadystatechange=null,t.removeChild(n),n=null},t.appendChild(n)}}():function(){s=function(t){setTimeout(a,0,t)}}(),d.setImmediate=o,d.clearImmediate=r}}("undefined"==typeof self?void 0===t?this:t:self)}).call(e,n(7),n(20))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function r(t){if(u===setTimeout)return setTimeout(t,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(t,0);try{return u(t,0)}catch(e){try{return u.call(null,t,0)}catch(e){return u.call(this,t,0)}}}function i(t){if(f===clearTimeout)return clearTimeout(t);if((f===o||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function a(){b&&p&&(b=!1,p.length?m=p.concat(m):v=-1,m.length&&s())}function s(){if(!b){var t=r(a);b=!0;for(var e=m.length;e;){for(p=m,m=[];++v<e;)p&&p[v].run();v=-1,e=m.length}p=null,b=!1,i(t)}}function c(t,e){this.fun=t,this.array=e}function l(){}var u,f,d=t.exports={};!function(){try{u="function"==typeof setTimeout?setTimeout:n}catch(t){u=n}try{f="function"==typeof clearTimeout?clearTimeout:o}catch(t){f=o}}();var p,m=[],b=!1,v=-1;d.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];m.push(new c(t,e)),1!==m.length||b||r(s)},c.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=l,d.addListener=l,d.once=l,d.off=l,d.removeListener=l,d.removeAllListeners=l,d.emit=l,d.prependListener=l,d.prependOnceListener=l,d.listeners=function(t){return[]},d.binding=function(t){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(t){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(t,e,n){"use strict";n(22).polyfill()},function(t,e,n){"use strict";function o(t,e){if(void 0===t||null===t)throw new TypeError("Cannot convert first argument to object");for(var n=Object(t),o=1;o<arguments.length;o++){var r=arguments[o];if(void 0!==r&&null!==r)for(var i=Object.keys(Object(r)),a=0,s=i.length;a<s;a++){var c=i[a],l=Object.getOwnPropertyDescriptor(r,c);void 0!==l&&l.enumerable&&(n[c]=r[c])}}return n}function r(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:o})}t.exports={assign:o,polyfill:r}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(24),r=n(6),i=n(5),a=n(36),s=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if("undefined"!=typeof window){var n=a.getOpts.apply(void 0,t);return new Promise(function(t,e){i.default.promise={resolve:t,reject:e},o.default(n),setTimeout(function(){r.openModal()})})}};s.close=r.onAction,s.getState=r.getState,s.setActionValue=i.setActionValue,s.stopLoading=r.stopLoading,s.setDefaults=a.setDefaults,e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(0),i=r.default.MODAL,a=n(4),s=n(34),c=n(35),l=n(1);e.init=function(t){o.getNode(i)||(document.body||l.throwErr("You can only use SweetAlert AFTER the DOM has loaded!"),s.default(),a.default()),a.initModalContent(t),c.default(t)},e.default=e.init},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.MODAL;e.modalMarkup='\n <div class="'+r+'" role="dialog" aria-modal="true"></div>',e.default=e.modalMarkup},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.OVERLAY,i='<div \n class="'+r+'"\n tabIndex="-1">\n </div>';e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.ICON;e.errorIconMarkup=function(){var t=r+"--error",e=t+"__line";return'\n <div class="'+t+'__x-mark">\n <span class="'+e+" "+e+'--left"></span>\n <span class="'+e+" "+e+'--right"></span>\n </div>\n '},e.warningIconMarkup=function(){var t=r+"--warning";return'\n <span class="'+t+'__body">\n <span class="'+t+'__dot"></span>\n </span>\n '},e.successIconMarkup=function(){var t=r+"--success";return'\n <span class="'+t+"__line "+t+'__line--long"></span>\n <span class="'+t+"__line "+t+'__line--tip"></span>\n\n <div class="'+t+'__ring"></div>\n <div class="'+t+'__hide-corners"></div>\n '}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.CONTENT;e.contentMarkup='\n <div class="'+r+'">\n\n </div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.BUTTON_CONTAINER,i=o.default.BUTTON,a=o.default.BUTTON_LOADER;e.buttonMarkup='\n <div class="'+r+'">\n\n <button\n class="'+i+'"\n ></button>\n\n <div class="'+a+'">\n <div></div>\n <div></div>\n <div></div>\n </div>\n\n </div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(4),r=n(2),i=n(0),a=i.default.ICON,s=i.default.ICON_CUSTOM,c=["error","warning","success","info"],l={error:r.errorIconMarkup(),warning:r.warningIconMarkup(),success:r.successIconMarkup()},u=function(t,e){var n=a+"--"+t;e.classList.add(n);var o=l[t];o&&(e.innerHTML=o)},f=function(t,e){e.classList.add(s);var n=document.createElement("img");n.src=t,e.appendChild(n)},d=function(t){if(t){var e=o.injectElIntoModal(r.iconMarkup);c.includes(t)?u(t,e):f(t,e)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),r=n(4),i=function(t){navigator.userAgent.includes("AppleWebKit")&&(t.style.display="none",t.offsetHeight,t.style.display="")};e.initTitle=function(t){if(t){var e=r.injectElIntoModal(o.titleMarkup);e.textContent=t,i(e)}},e.initText=function(t){if(t){var e=document.createDocumentFragment();t.split("\n").forEach(function(t,n,o){e.appendChild(document.createTextNode(t)),n<o.length-1&&e.appendChild(document.createElement("br"))});var n=r.injectElIntoModal(o.textMarkup);n.appendChild(e),i(n)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(4),i=n(0),a=i.default.BUTTON,s=i.default.DANGER_BUTTON,c=n(3),l=n(2),u=n(6),f=n(5),d=function(t,e,n){var r=e.text,i=e.value,d=e.className,p=e.closeModal,m=o.stringToNode(l.buttonMarkup),b=m.querySelector("."+a),v=a+"--"+t;if(b.classList.add(v),d){(Array.isArray(d)?d:d.split(" ")).filter(function(t){return t.length>0}).forEach(function(t){b.classList.add(t)})}n&&t===c.CONFIRM_KEY&&b.classList.add(s),b.textContent=r;var g={};return g[t]=i,f.setActionValue(g),f.setActionOptionsFor(t,{closeModal:p}),b.addEventListener("click",function(){return u.onAction(t)}),m},p=function(t,e){var n=r.injectElIntoModal(l.footerMarkup);for(var o in t){var i=t[o],a=d(o,i,e);i.visible&&n.appendChild(a)}0===n.children.length&&n.remove()};e.default=p},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r=n(4),i=n(2),a=n(5),s=n(6),c=n(0),l=c.default.CONTENT,u=function(t){t.addEventListener("input",function(t){var e=t.target,n=e.value;a.setActionValue(n)}),t.addEventListener("keyup",function(t){if("Enter"===t.key)return s.onAction(o.CONFIRM_KEY)}),setTimeout(function(){t.focus(),a.setActionValue("")},0)},f=function(t,e,n){var o=document.createElement(e),r=l+"__"+e;o.classList.add(r);for(var i in n){var a=n[i];o[i]=a}"input"===e&&u(o),t.appendChild(o)},d=function(t){if(t){var e=r.injectElIntoModal(i.contentMarkup),n=t.element,o=t.attributes;"string"==typeof n?f(e,n,o):e.appendChild(n)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=function(){var t=o.stringToNode(r.overlayMarkup);document.body.appendChild(t)};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(5),r=n(6),i=n(1),a=n(3),s=n(0),c=s.default.MODAL,l=s.default.BUTTON,u=s.default.OVERLAY,f=function(t){t.preventDefault(),v()},d=function(t){t.preventDefault(),g()},p=function(t){if(o.default.isOpen)switch(t.key){case"Escape":return r.onAction(a.CANCEL_KEY)}},m=function(t){if(o.default.isOpen)switch(t.key){case"Tab":return f(t)}},b=function(t){if(o.default.isOpen)return"Tab"===t.key&&t.shiftKey?d(t):void 0},v=function(){var t=i.getNode(l);t&&(t.tabIndex=0,t.focus())},g=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l),n=e.length-1,o=e[n];o&&o.focus()},h=function(t){t[t.length-1].addEventListener("keydown",m)},w=function(t){t[0].addEventListener("keydown",b)},y=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l);e.length&&(h(e),w(e))},x=function(t){if(i.getNode(u)===t.target)return r.onAction(a.CANCEL_KEY)},_=function(t){var e=i.getNode(u);e.removeEventListener("click",x),t&&e.addEventListener("click",x)},k=function(t){o.default.timer&&clearTimeout(o.default.timer),t&&(o.default.timer=window.setTimeout(function(){return r.onAction(a.CANCEL_KEY)},t))},O=function(t){t.closeOnEsc?document.addEventListener("keyup",p):document.removeEventListener("keyup",p),t.dangerMode?v():g(),y(),_(t.closeOnClickOutside),k(t.timer)};e.default=O},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(37),a=n(38),s={title:null,text:null,icon:null,buttons:r.defaultButtonList,content:null,className:null,closeOnClickOutside:!0,closeOnEsc:!0,dangerMode:!1,timer:null},c=Object.assign({},s);e.setDefaults=function(t){c=Object.assign({},s,t)};var l=function(t){var e=t&&t.button,n=t&&t.buttons;return void 0!==e&&void 0!==n&&o.throwErr("Cannot set both 'button' and 'buttons' options!"),void 0!==e?{confirm:e}:n},u=function(t){return o.ordinalSuffixOf(t+1)},f=function(t,e){o.throwErr(u(e)+" argument ('"+t+"') is invalid")},d=function(t,e){var n=t+1,r=e[n];o.isPlainObject(r)||void 0===r||o.throwErr("Expected "+u(n)+" argument ('"+r+"') to be a plain object")},p=function(t,e){var n=t+1,r=e[n];void 0!==r&&o.throwErr("Unexpected "+u(n)+" argument ("+r+")")},m=function(t,e,n,r){var i=typeof e,a="string"===i,s=e instanceof Element;if(a){if(0===n)return{text:e};if(1===n)return{text:e,title:r[0]};if(2===n)return d(n,r),{icon:e};f(e,n)}else{if(s&&0===n)return d(n,r),{content:e};if(o.isPlainObject(e))return p(n,r),e;f(e,n)}};e.getOpts=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n={};t.forEach(function(e,o){var r=m(0,e,o,t);Object.assign(n,r)});var o=l(n);n.buttons=r.getButtonListOpts(o),delete n.button,n.content=i.getContentOpts(n.content);var u=Object.assign({},s,c,n);return Object.keys(u).forEach(function(t){a.DEPRECATED_OPTS[t]&&a.logDeprecation(t)}),u}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r={element:"input",attributes:{placeholder:""}};e.getContentOpts=function(t){var e={};return o.isPlainObject(t)?Object.assign(e,t):t instanceof Element?{element:t}:"input"===t?r:null}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.logDeprecation=function(t){var n=e.DEPRECATED_OPTS[t],o=n.onlyRename,r=n.replacement,i=n.subOption,a=n.link,s=o?"renamed":"deprecated",c='SweetAlert warning: "'+t+'" option has been '+s+".";if(r){c+=" Please use"+(i?' "'+i+'" in ':" ")+'"'+r+'" instead.'}var l="https://sweetalert.js.org";c+=a?" More details: "+l+a:" More details: "+l+"/guides/#upgrading-from-1x",console.warn(c)},e.DEPRECATED_OPTS={type:{replacement:"icon",link:"/docs/#icon"},imageUrl:{replacement:"icon",link:"/docs/#icon"},customClass:{replacement:"className",onlyRename:!0,link:"/docs/#classname"},imageSize:{},showCancelButton:{replacement:"buttons",link:"/docs/#buttons"},showConfirmButton:{replacement:"button",link:"/docs/#button"},confirmButtonText:{replacement:"button",link:"/docs/#button"},confirmButtonColor:{},cancelButtonText:{replacement:"buttons",link:"/docs/#buttons"},closeOnConfirm:{replacement:"button",subOption:"closeModal",link:"/docs/#button"},closeOnCancel:{replacement:"buttons",subOption:"closeModal",link:"/docs/#buttons"},showLoaderOnConfirm:{replacement:"buttons"},animation:{},inputType:{replacement:"content",link:"/docs/#content"},inputValue:{replacement:"content",link:"/docs/#content"},inputPlaceholder:{replacement:"content",link:"/docs/#content"},html:{replacement:"content",link:"/docs/#content"},allowEscapeKey:{replacement:"closeOnEsc",onlyRename:!0,link:"/docs/#closeonesc"},allowClickOutside:{replacement:"closeOnClickOutside",onlyRename:!0,link:"/docs/#closeonclickoutside"}}}])});
  21796. /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/timers-browserify/main.js").setImmediate, __webpack_require__("./node_modules/timers-browserify/main.js").clearImmediate))
  21797. /***/ }),
  21798. /***/ "./node_modules/timers-browserify/main.js":
  21799. /***/ (function(module, exports, __webpack_require__) {
  21800. /* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
  21801. (typeof self !== "undefined" && self) ||
  21802. window;
  21803. var apply = Function.prototype.apply;
  21804. // DOM APIs, for completeness
  21805. exports.setTimeout = function() {
  21806. return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
  21807. };
  21808. exports.setInterval = function() {
  21809. return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
  21810. };
  21811. exports.clearTimeout =
  21812. exports.clearInterval = function(timeout) {
  21813. if (timeout) {
  21814. timeout.close();
  21815. }
  21816. };
  21817. function Timeout(id, clearFn) {
  21818. this._id = id;
  21819. this._clearFn = clearFn;
  21820. }
  21821. Timeout.prototype.unref = Timeout.prototype.ref = function() {};
  21822. Timeout.prototype.close = function() {
  21823. this._clearFn.call(scope, this._id);
  21824. };
  21825. // Does not start the time, just sets up the members needed.
  21826. exports.enroll = function(item, msecs) {
  21827. clearTimeout(item._idleTimeoutId);
  21828. item._idleTimeout = msecs;
  21829. };
  21830. exports.unenroll = function(item) {
  21831. clearTimeout(item._idleTimeoutId);
  21832. item._idleTimeout = -1;
  21833. };
  21834. exports._unrefActive = exports.active = function(item) {
  21835. clearTimeout(item._idleTimeoutId);
  21836. var msecs = item._idleTimeout;
  21837. if (msecs >= 0) {
  21838. item._idleTimeoutId = setTimeout(function onTimeout() {
  21839. if (item._onTimeout)
  21840. item._onTimeout();
  21841. }, msecs);
  21842. }
  21843. };
  21844. // setimmediate attaches itself to the global object
  21845. __webpack_require__("./node_modules/setimmediate/setImmediate.js");
  21846. // On some exotic environments, it's not clear which object `setimmediate` was
  21847. // able to install onto. Search each possibility in the same order as the
  21848. // `setimmediate` library.
  21849. exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
  21850. (typeof global !== "undefined" && global.setImmediate) ||
  21851. (this && this.setImmediate);
  21852. exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
  21853. (typeof global !== "undefined" && global.clearImmediate) ||
  21854. (this && this.clearImmediate);
  21855. /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js")))
  21856. /***/ }),
  21857. /***/ "./node_modules/vue-functional-data-merge/dist/lib.esm.js":
  21858. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  21859. "use strict";
  21860. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return mergeData; });
  21861. var __assign=function(){return(__assign=Object.assign||function(e){for(var a,s=1,t=arguments.length;s<t;s++)for(var r in a=arguments[s])Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r]);return e}).apply(this,arguments)};function mergeData(){for(var e,a,s={},t=arguments.length;t--;)for(var r=0,c=Object.keys(arguments[t]);r<c.length;r++)switch(e=c[r]){case"class":case"style":case"directives":Array.isArray(s[e])||(s[e]=[]),s[e]=s[e].concat(arguments[t][e]);break;case"staticClass":if(!arguments[t][e])break;void 0===s[e]&&(s[e]=""),s[e]&&(s[e]+=" "),s[e]+=arguments[t][e].trim();break;case"on":case"nativeOn":s[e]||(s[e]={});for(var n=0,o=Object.keys(arguments[t][e]||{});n<o.length;n++)a=o[n],s[e][a]?s[e][a]=[].concat(s[e][a],arguments[t][e][a]):s[e][a]=arguments[t][e][a];break;case"attrs":case"props":case"domProps":case"scopedSlots":case"staticStyle":case"hook":case"transition":s[e]||(s[e]={}),s[e]=__assign({},arguments[t][e],s[e]);break;case"slot":case"key":case"ref":case"tag":case"show":case"keepAlive":default:s[e]||(s[e]=arguments[t][e])}return s}
  21862. //# sourceMappingURL=lib.esm.js.map
  21863. /***/ }),
  21864. /***/ "./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js":
  21865. /***/ (function(module, exports, __webpack_require__) {
  21866. /*!
  21867. * vue-infinite-loading v2.4.3
  21868. * (c) 2016-2018 PeachScript
  21869. * MIT License
  21870. */
  21871. !function(t,e){ true?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VueInfiniteLoading=e():t.VueInfiniteLoading=e()}(this,function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=9)}([function(t,e,n){var i=n(6);"string"==typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);(0,n(3).default)("09280948",i,!0,{})},function(t,e,n){var i=n(8);"string"==typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);(0,n(3).default)("65938a1f",i,!0,{})},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||"",i=t[3];if(!i)return n;if(e&&"function"==typeof btoa){var r=(o=i,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),a=i.sources.map(function(t){return"/*# sourceURL="+i.sourceRoot+t+" */"});return[n].concat(a).concat([r]).join("\n")}var o;return[n].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var i={},r=0;r<this.length;r++){var a=this[r][0];"number"==typeof a&&(i[a]=!0)}for(r=0;r<t.length;r++){var o=t[r];"number"==typeof o[0]&&i[o[0]]||(n&&!o[2]?o[2]=n:n&&(o[2]="("+o[2]+") and ("+n+")"),e.push(o))}},e}},function(t,e,n){"use strict";function i(t,e){for(var n=[],i={},r=0;r<e.length;r++){var a=e[r],o=a[0],s={id:t+":"+r,css:a[1],media:a[2],sourceMap:a[3]};i[o]?i[o].parts.push(s):n.push(i[o]={id:o,parts:[s]})}return n}n.r(e),n.d(e,"default",function(){return b});var r="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!r)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var a={},o=r&&(document.head||document.getElementsByTagName("head")[0]),s=null,l=0,d=!1,c=function(){},u=null,p="data-vue-ssr-id",f="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function b(t,e,n,r){d=n,u=r||{};var o=i(t,e);return h(o),function(e){for(var n=[],r=0;r<o.length;r++){var s=o[r];(l=a[s.id]).refs--,n.push(l)}e?h(o=i(t,e)):o=[];for(r=0;r<n.length;r++){var l;if(0===(l=n[r]).refs){for(var d=0;d<l.parts.length;d++)l.parts[d]();delete a[l.id]}}}}function h(t){for(var e=0;e<t.length;e++){var n=t[e],i=a[n.id];if(i){i.refs++;for(var r=0;r<i.parts.length;r++)i.parts[r](n.parts[r]);for(;r<n.parts.length;r++)i.parts.push(g(n.parts[r]));i.parts.length>n.parts.length&&(i.parts.length=n.parts.length)}else{var o=[];for(r=0;r<n.parts.length;r++)o.push(g(n.parts[r]));a[n.id]={id:n.id,refs:1,parts:o}}}}function m(){var t=document.createElement("style");return t.type="text/css",o.appendChild(t),t}function g(t){var e,n,i=document.querySelector("style["+p+'~="'+t.id+'"]');if(i){if(d)return c;i.parentNode.removeChild(i)}if(f){var r=l++;i=s||(s=m()),e=w.bind(null,i,r,!1),n=w.bind(null,i,r,!0)}else i=m(),e=function(t,e){var n=e.css,i=e.media,r=e.sourceMap;i&&t.setAttribute("media",i);u.ssrId&&t.setAttribute(p,e.id);r&&(n+="\n/*# sourceURL="+r.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,i),n=function(){i.parentNode.removeChild(i)};return e(t),function(i){if(i){if(i.css===t.css&&i.media===t.media&&i.sourceMap===t.sourceMap)return;e(t=i)}else n()}}var v,y=(v=[],function(t,e){return v[t]=e,v.filter(Boolean).join("\n")});function w(t,e,n,i){var r=n?"":i.css;if(t.styleSheet)t.styleSheet.cssText=y(e,r);else{var a=document.createTextNode(r),o=t.childNodes;o[e]&&t.removeChild(o[e]),o.length?t.insertBefore(a,o[e]):t.appendChild(a)}}},function(t,e){function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(e){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?t.exports=i=function(t){return n(t)}:t.exports=i=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":n(t)},i(e)}t.exports=i},function(t,e,n){"use strict";n.r(e);var i=n(0),r=n.n(i);for(var a in i)"default"!==a&&function(t){n.d(e,t,function(){return i[t]})}(a);e.default=r.a},function(t,e,n){(t.exports=n(2)(!1)).push([t.i,'.loading-wave-dots[data-v-46b20d22]{position:relative}.loading-wave-dots[data-v-46b20d22] .wave-item{position:absolute;top:50%;left:50%;display:inline-block;margin-top:-4px;width:8px;height:8px;border-radius:50%;-webkit-animation:loading-wave-dots-data-v-46b20d22 linear 2.8s infinite;animation:loading-wave-dots-data-v-46b20d22 linear 2.8s infinite}.loading-wave-dots[data-v-46b20d22] .wave-item:first-child{margin-left:-36px}.loading-wave-dots[data-v-46b20d22] .wave-item:nth-child(2){margin-left:-20px;-webkit-animation-delay:.14s;animation-delay:.14s}.loading-wave-dots[data-v-46b20d22] .wave-item:nth-child(3){margin-left:-4px;-webkit-animation-delay:.28s;animation-delay:.28s}.loading-wave-dots[data-v-46b20d22] .wave-item:nth-child(4){margin-left:12px;-webkit-animation-delay:.42s;animation-delay:.42s}.loading-wave-dots[data-v-46b20d22] .wave-item:last-child{margin-left:28px;-webkit-animation-delay:.56s;animation-delay:.56s}@-webkit-keyframes loading-wave-dots-data-v-46b20d22{0%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}10%{-webkit-transform:translateY(-6px);transform:translateY(-6px);background:#999}20%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}to{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}}@keyframes loading-wave-dots-data-v-46b20d22{0%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}10%{-webkit-transform:translateY(-6px);transform:translateY(-6px);background:#999}20%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}to{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}}.loading-circles[data-v-46b20d22] .circle-item{width:5px;height:5px;-webkit-animation:loading-circles-data-v-46b20d22 linear .75s infinite;animation:loading-circles-data-v-46b20d22 linear .75s infinite}.loading-circles[data-v-46b20d22] .circle-item:first-child{margin-top:-14.5px;margin-left:-2.5px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(2){margin-top:-11.26px;margin-left:6.26px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(3){margin-top:-2.5px;margin-left:9.5px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(4){margin-top:6.26px;margin-left:6.26px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(5){margin-top:9.5px;margin-left:-2.5px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(6){margin-top:6.26px;margin-left:-11.26px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(7){margin-top:-2.5px;margin-left:-14.5px}.loading-circles[data-v-46b20d22] .circle-item:last-child{margin-top:-11.26px;margin-left:-11.26px}@-webkit-keyframes loading-circles-data-v-46b20d22{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}@keyframes loading-circles-data-v-46b20d22{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}.loading-bubbles[data-v-46b20d22] .bubble-item{background:#666;-webkit-animation:loading-bubbles-data-v-46b20d22 linear .75s infinite;animation:loading-bubbles-data-v-46b20d22 linear .75s infinite}.loading-bubbles[data-v-46b20d22] .bubble-item:first-child{margin-top:-12.5px;margin-left:-.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(2){margin-top:-9.26px;margin-left:8.26px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(3){margin-top:-.5px;margin-left:11.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(4){margin-top:8.26px;margin-left:8.26px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(5){margin-top:11.5px;margin-left:-.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(6){margin-top:8.26px;margin-left:-9.26px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(7){margin-top:-.5px;margin-left:-12.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:last-child{margin-top:-9.26px;margin-left:-9.26px}@-webkit-keyframes loading-bubbles-data-v-46b20d22{0%{width:1px;height:1px;box-shadow:0 0 0 3px #666}90%{width:1px;height:1px;box-shadow:0 0 0 0 #666}to{width:1px;height:1px;box-shadow:0 0 0 3px #666}}@keyframes loading-bubbles-data-v-46b20d22{0%{width:1px;height:1px;box-shadow:0 0 0 3px #666}90%{width:1px;height:1px;box-shadow:0 0 0 0 #666}to{width:1px;height:1px;box-shadow:0 0 0 3px #666}}.loading-default[data-v-46b20d22]{position:relative;border:1px solid #999;-webkit-animation:loading-rotating-data-v-46b20d22 ease 1.5s infinite;animation:loading-rotating-data-v-46b20d22 ease 1.5s infinite}.loading-default[data-v-46b20d22]:before{content:"";position:absolute;display:block;top:0;left:50%;margin-top:-3px;margin-left:-3px;width:6px;height:6px;background-color:#999;border-radius:50%}.loading-spiral[data-v-46b20d22]{border:2px solid #777;border-right-color:transparent;-webkit-animation:loading-rotating-data-v-46b20d22 linear .85s infinite;animation:loading-rotating-data-v-46b20d22 linear .85s infinite}@-webkit-keyframes loading-rotating-data-v-46b20d22{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotating-data-v-46b20d22{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-bubbles[data-v-46b20d22],.loading-circles[data-v-46b20d22]{position:relative}.loading-bubbles[data-v-46b20d22] .bubble-item,.loading-circles[data-v-46b20d22] .circle-item{position:absolute;top:50%;left:50%;display:inline-block;border-radius:50%}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(2),.loading-circles[data-v-46b20d22] .circle-item:nth-child(2){-webkit-animation-delay:93ms;animation-delay:93ms}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(3),.loading-circles[data-v-46b20d22] .circle-item:nth-child(3){-webkit-animation-delay:.186s;animation-delay:.186s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(4),.loading-circles[data-v-46b20d22] .circle-item:nth-child(4){-webkit-animation-delay:.279s;animation-delay:.279s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(5),.loading-circles[data-v-46b20d22] .circle-item:nth-child(5){-webkit-animation-delay:.372s;animation-delay:.372s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(6),.loading-circles[data-v-46b20d22] .circle-item:nth-child(6){-webkit-animation-delay:.465s;animation-delay:.465s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(7),.loading-circles[data-v-46b20d22] .circle-item:nth-child(7){-webkit-animation-delay:.558s;animation-delay:.558s}.loading-bubbles[data-v-46b20d22] .bubble-item:last-child,.loading-circles[data-v-46b20d22] .circle-item:last-child{-webkit-animation-delay:.651s;animation-delay:.651s}',""])},function(t,e,n){"use strict";n.r(e);var i=n(1),r=n.n(i);for(var a in i)"default"!==a&&function(t){n.d(e,t,function(){return i[t]})}(a);e.default=r.a},function(t,e,n){(t.exports=n(2)(!1)).push([t.i,".infinite-loading-container[data-v-358985eb]{clear:both;text-align:center}.infinite-loading-container[data-v-358985eb] [class^=loading-]{display:inline-block;margin:5px 0;width:28px;height:28px;font-size:28px;line-height:28px;border-radius:50%}.btn-try-infinite[data-v-358985eb]{margin-top:5px;padding:5px 10px;color:#999;font-size:14px;line-height:1;background:transparent;border:1px solid #ccc;border-radius:3px;outline:none;cursor:pointer}.btn-try-infinite[data-v-358985eb]:not(:active):hover{opacity:.8}",""])},function(t,e,n){"use strict";n.r(e);var i={throttleLimit:50,loopCheckTimeout:1e3,loopCheckMaxCalls:10},r=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){return t={passive:!0},!0}});window.addEventListener("testpassive",e,e),window.remove("testpassive",e,e)}catch(t){}return t}(),a={STATE_CHANGER:["emit `loaded` and `complete` event through component instance of `$refs` may cause error, so it will be deprecated soon, please use the `$state` argument instead (`$state` just the special `$event` variable):","\ntemplate:",'<infinite-loading @infinite="infiniteHandler"></infinite-loading>',"\nscript:\n...\ninfiniteHandler($state) {\n ajax('https://www.example.com/api/news')\n .then((res) => {\n if (res.data.length) {\n $state.loaded();\n } else {\n $state.complete();\n }\n });\n}\n...","","more details: https://github.com/PeachScript/vue-infinite-loading/issues/57#issuecomment-324370549"].join("\n"),INFINITE_EVENT:"`:on-infinite` property will be deprecated soon, please use `@infinite` event instead.",IDENTIFIER:"the `reset` event will be deprecated soon, please reset this component by change the `identifier` property."},o={INFINITE_LOOP:["executed the callback function more than ".concat(i.loopCheckMaxCalls," times for a short time, it looks like searched a wrong scroll wrapper that doest not has fixed height or maximum height, please check it. If you want to force to set a element as scroll wrapper ranther than automatic searching, you can do this:"),'\n\x3c!-- add a special attribute for the real scroll wrapper --\x3e\n<div infinite-wrapper>\n ...\n \x3c!-- set force-use-infinite-wrapper --\x3e\n <infinite-loading force-use-infinite-wrapper></infinite-loading>\n</div>\nor\n<div class="infinite-wrapper">\n ...\n \x3c!-- set force-use-infinite-wrapper as css selector of the real scroll wrapper --\x3e\n <infinite-loading force-use-infinite-wrapper=".infinite-wrapper"></infinite-loading>\n</div>\n ',"more details: https://github.com/PeachScript/vue-infinite-loading/issues/55#issuecomment-316934169"].join("\n")},s={READY:0,LOADING:1,COMPLETE:2,ERROR:3},l={color:"#666",fontSize:"14px",padding:"10px 0"},d={mode:"development",props:{spinner:"default",distance:100,forceUseInfiniteWrapper:!1},system:i,slots:{noResults:"No results :(",noMore:"No more data :)",error:"Opps, something went wrong :(",errorBtnText:"Retry",spinner:""},WARNINGS:a,ERRORS:o,STATUS:s},c=n(4),u=n.n(c),p={BUBBLES:{render:function(t){return t("span",{attrs:{class:"loading-bubbles"}},Array.apply(Array,Array(8)).map(function(){return t("span",{attrs:{class:"bubble-item"}})}))}},CIRCLES:{render:function(t){return t("span",{attrs:{class:"loading-circles"}},Array.apply(Array,Array(8)).map(function(){return t("span",{attrs:{class:"circle-item"}})}))}},DEFAULT:{render:function(t){return t("i",{attrs:{class:"loading-default"}})}},SPIRAL:{render:function(t){return t("i",{attrs:{class:"loading-spiral"}})}},WAVEDOTS:{render:function(t){return t("span",{attrs:{class:"loading-wave-dots"}},Array.apply(Array,Array(5)).map(function(){return t("span",{attrs:{class:"wave-item"}})}))}}};function f(t,e,n,i,r,a,o,s){var l,d="function"==typeof t?t.options:t;if(e&&(d.render=e,d.staticRenderFns=n,d._compiled=!0),i&&(d.functional=!0),a&&(d._scopeId="data-v-"+a),o?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},d._ssrRegister=l):r&&(l=s?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(d.functional){d._injectStyles=l;var c=d.render;d.render=function(t,e){return l.call(e),c(t,e)}}else{var u=d.beforeCreate;d.beforeCreate=u?[].concat(u,l):[l]}return{exports:t,options:d}}var b=f({name:"Spinner",computed:{spinnerView:function(){return p[(this.$attrs.spinner||"").toUpperCase()]||this.spinnerInConfig},spinnerInConfig:function(){return d.slots.spinner&&"string"==typeof d.slots.spinner?{render:function(){return this._v(d.slots.spinner)}}:"object"===u()(d.slots.spinner)?d.slots.spinner:p[d.props.spinner.toUpperCase()]||p.DEFAULT}}},function(){var t=this.$createElement;return(this._self._c||t)(this.spinnerView,{tag:"component"})},[],!1,function(t){var e=n(5);e.__inject__&&e.__inject__(t)},"46b20d22",null);b.options.__file="Spinner.vue";var h=b.exports;function m(t){"production"!==d.mode&&console.warn("[Vue-infinite-loading warn]: ".concat(t))}function g(t){console.error("[Vue-infinite-loading error]: ".concat(t))}var v={timers:[],caches:[],throttle:function(t){var e=this;-1===this.caches.indexOf(t)&&(this.caches.push(t),this.timers.push(setTimeout(function(){t(),e.caches.splice(e.caches.indexOf(t),1),e.timers.shift()},d.system.throttleLimit)))},reset:function(){this.timers.forEach(function(t){clearTimeout(t)}),this.timers.length=0,this.caches=[]}},y={isChecked:!1,timer:null,times:0,track:function(){var t=this;this.times+=1,clearTimeout(this.timer),this.timer=setTimeout(function(){t.isChecked=!0},d.system.loopCheckTimeout),this.times>d.system.loopCheckMaxCalls&&(g(o.INFINITE_LOOP),this.isChecked=!0)}},w={key:"_infiniteScrollHeight",getScrollElm:function(t){return t===window?document.documentElement:t},save:function(t){var e=this.getScrollElm(t);e[this.key]=e.scrollHeight},restore:function(t){var e=this.getScrollElm(t);"number"==typeof e[this.key]&&(e.scrollTop=e.scrollHeight-e[this.key]+e.scrollTop),this.remove(e)},remove:function(t){void 0!==t[this.key]&&delete t[this.key]}};function x(t){return t.replace(/[A-Z]/g,function(t){return"-".concat(t.toLowerCase())})}function k(t){return t.offsetWidth+t.offsetHeight>0}var S=f({name:"InfiniteLoading",data:function(){return{scrollParent:null,scrollHandler:null,isFirstLoad:!0,status:s.READY,slots:d.slots}},components:{Spinner:h},computed:{isShowSpinner:function(){return this.status===s.LOADING},isShowError:function(){return this.status===s.ERROR},isShowNoResults:function(){return this.status===s.COMPLETE&&this.isFirstLoad},isShowNoMore:function(){return this.status===s.COMPLETE&&!this.isFirstLoad},slotStyles:function(){var t=this,e={};return Object.keys(d.slots).forEach(function(n){var i=x(n);(!t.$slots[i]&&!d.slots[n].render||t.$slots[i]&&!t.$slots[i][0].tag)&&(e[n]=l)}),e}},props:{distance:{type:Number,default:d.props.distance},spinner:String,direction:{type:String,default:"bottom"},forceUseInfiniteWrapper:{type:[Boolean,String],default:d.props.forceUseInfiniteWrapper},identifier:{default:+new Date},onInfinite:Function},watch:{identifier:function(){this.stateChanger.reset()}},mounted:function(){var t=this;this.$watch("forceUseInfiniteWrapper",function(){t.scrollParent=t.getScrollParent()},{immediate:!0}),this.scrollHandler=function(t){this.status===s.READY&&(t&&t.constructor===Event&&k(this.$el)?v.throttle(this.attemptLoad):this.attemptLoad())}.bind(this),setTimeout(this.scrollHandler,1),this.scrollParent.addEventListener("scroll",this.scrollHandler,r),this.$on("$InfiniteLoading:loaded",function(e){t.isFirstLoad=!1,"top"===t.direction&&t.$nextTick(function(){w.restore(t.scrollParent)}),t.status===s.LOADING&&t.$nextTick(t.attemptLoad.bind(null,!0)),e&&e.target===t||m(a.STATE_CHANGER)}),this.$on("$InfiniteLoading:complete",function(e){t.status=s.COMPLETE,t.$nextTick(function(){t.$forceUpdate()}),t.scrollParent.removeEventListener("scroll",t.scrollHandler,r),e&&e.target===t||m(a.STATE_CHANGER)}),this.$on("$InfiniteLoading:reset",function(e){t.status=s.READY,t.isFirstLoad=!0,w.remove(t.scrollParent),t.scrollParent.addEventListener("scroll",t.scrollHandler,r),setTimeout(function(){v.reset(),t.scrollHandler()},1),e&&e.target===t||m(a.IDENTIFIER)}),this.stateChanger={loaded:function(){t.$emit("$InfiniteLoading:loaded",{target:t})},complete:function(){t.$emit("$InfiniteLoading:complete",{target:t})},reset:function(){t.$emit("$InfiniteLoading:reset",{target:t})},error:function(){t.status=s.ERROR,v.reset()}},this.onInfinite&&m(a.INFINITE_EVENT)},deactivated:function(){this.status===s.LOADING&&(this.status=s.READY),this.scrollParent.removeEventListener("scroll",this.scrollHandler,r)},activated:function(){this.scrollParent.addEventListener("scroll",this.scrollHandler,r)},methods:{attemptLoad:function(t){var e=this;this.status!==s.COMPLETE&&k(this.$el)&&this.getCurrentDistance()<=this.distance?(this.status=s.LOADING,"top"===this.direction&&this.$nextTick(function(){w.save(e.scrollParent)}),"function"==typeof this.onInfinite?this.onInfinite.call(null,this.stateChanger):this.$emit("infinite",this.stateChanger),!t||this.forceUseInfiniteWrapper||y.isChecked||y.track()):this.status===s.LOADING&&(this.status=s.READY)},getCurrentDistance:function(){var t;"top"===this.direction?t="number"==typeof this.scrollParent.scrollTop?this.scrollParent.scrollTop:this.scrollParent.pageYOffset:t=this.$el.getBoundingClientRect().top-(this.scrollParent===window?window.innerHeight:this.scrollParent.getBoundingClientRect().bottom);return t},getScrollParent:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.$el;return"string"==typeof this.forceUseInfiniteWrapper&&(t=e.querySelector(this.forceUseInfiniteWrapper)),t||("BODY"===e.tagName?t=window:!this.forceUseInfiniteWrapper&&["scroll","auto"].indexOf(getComputedStyle(e).overflowY)>-1?t=e:(e.hasAttribute("infinite-wrapper")||e.hasAttribute("data-infinite-wrapper"))&&(t=e)),t||this.getScrollParent(e.parentNode)}},destroyed:function(){!this.status!==s.COMPLETE&&(v.reset(),w.remove(this.scrollParent),this.scrollParent.removeEventListener("scroll",this.scrollHandler,r))}},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"infinite-loading-container"},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowSpinner,expression:"isShowSpinner"}],staticClass:"infinite-status-prompt",style:t.slotStyles.spinner},[t._t("spinner",[n("spinner",{attrs:{spinner:t.spinner}})])],2),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowNoResults,expression:"isShowNoResults"}],staticClass:"infinite-status-prompt",style:t.slotStyles.noResults},[t._t("no-results",[t.slots.noResults.render?n(t.slots.noResults,{tag:"component"}):[t._v(t._s(t.slots.noResults))]])],2),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowNoMore,expression:"isShowNoMore"}],staticClass:"infinite-status-prompt",style:t.slotStyles.noMore},[t._t("no-more",[t.slots.noMore.render?n(t.slots.noMore,{tag:"component"}):[t._v(t._s(t.slots.noMore))]])],2),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowError,expression:"isShowError"}],staticClass:"infinite-status-prompt",style:t.slotStyles.error},[t._t("error",[t.slots.error.render?n(t.slots.error,{tag:"component",attrs:{trigger:t.attemptLoad}}):[t._v("\n "+t._s(t.slots.error)+"\n "),n("br"),t._v(" "),n("button",{staticClass:"btn-try-infinite",domProps:{textContent:t._s(t.slots.errorBtnText)},on:{click:t.attemptLoad}})]],{trigger:t.attemptLoad})],2)])},[],!1,function(t){var e=n(7);e.__inject__&&e.__inject__(t)},"358985eb",null);S.options.__file="InfiniteLoading.vue";var E=S.exports;function _(t){d.mode=t.config.productionTip?"development":"production"}Object.defineProperty(E,"install",{configurable:!1,enumerable:!1,value:function(t,e){Object.assign(d.props,e&&e.props),Object.assign(d.slots,e&&e.slots),Object.assign(d.system,e&&e.system),t.component("infinite-loading",E),_(t)}}),"undefined"!=typeof window&&window.Vue&&(window.Vue.component("infinite-loading",E),_(window.Vue));e.default=E}])});
  21872. /***/ }),
  21873. /***/ "./node_modules/vue-loader/lib/runtime/component-normalizer.js":
  21874. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  21875. "use strict";
  21876. /* harmony export (immutable) */ __webpack_exports__["a"] = normalizeComponent;
  21877. /* globals __VUE_SSR_CONTEXT__ */
  21878. // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
  21879. // This module is a runtime utility for cleaner component module output and will
  21880. // be included in the final webpack user bundle.
  21881. function normalizeComponent (
  21882. scriptExports,
  21883. render,
  21884. staticRenderFns,
  21885. functionalTemplate,
  21886. injectStyles,
  21887. scopeId,
  21888. moduleIdentifier, /* server only */
  21889. shadowMode /* vue-cli only */
  21890. ) {
  21891. scriptExports = scriptExports || {}
  21892. // ES6 modules interop
  21893. var type = typeof scriptExports.default
  21894. if (type === 'object' || type === 'function') {
  21895. scriptExports = scriptExports.default
  21896. }
  21897. // Vue.extend constructor export interop
  21898. var options = typeof scriptExports === 'function'
  21899. ? scriptExports.options
  21900. : scriptExports
  21901. // render functions
  21902. if (render) {
  21903. options.render = render
  21904. options.staticRenderFns = staticRenderFns
  21905. options._compiled = true
  21906. }
  21907. // functional template
  21908. if (functionalTemplate) {
  21909. options.functional = true
  21910. }
  21911. // scopedId
  21912. if (scopeId) {
  21913. options._scopeId = scopeId
  21914. }
  21915. var hook
  21916. if (moduleIdentifier) { // server build
  21917. hook = function (context) {
  21918. // 2.3 injection
  21919. context =
  21920. context || // cached call
  21921. (this.$vnode && this.$vnode.ssrContext) || // stateful
  21922. (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
  21923. // 2.2 with runInNewContext: true
  21924. if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
  21925. context = __VUE_SSR_CONTEXT__
  21926. }
  21927. // inject component styles
  21928. if (injectStyles) {
  21929. injectStyles.call(this, context)
  21930. }
  21931. // register component module identifier for async chunk inferrence
  21932. if (context && context._registeredComponents) {
  21933. context._registeredComponents.add(moduleIdentifier)
  21934. }
  21935. }
  21936. // used by ssr in case component is cached and beforeCreate
  21937. // never gets called
  21938. options._ssrRegister = hook
  21939. } else if (injectStyles) {
  21940. hook = shadowMode
  21941. ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
  21942. : injectStyles
  21943. }
  21944. if (hook) {
  21945. if (options.functional) {
  21946. // for template-only hot-reload because in that case the render fn doesn't
  21947. // go through the normalizer
  21948. options._injectStyles = hook
  21949. // register for functioal component in vue file
  21950. var originalRender = options.render
  21951. options.render = function renderWithStyleInjection (h, context) {
  21952. hook.call(context)
  21953. return originalRender(h, context)
  21954. }
  21955. } else {
  21956. // inject component registration as beforeCreate hook
  21957. var existing = options.beforeCreate
  21958. options.beforeCreate = existing
  21959. ? [].concat(existing, hook)
  21960. : [hook]
  21961. }
  21962. }
  21963. return {
  21964. exports: scriptExports,
  21965. options: options
  21966. }
  21967. }
  21968. /***/ }),
  21969. /***/ "./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-1b3c4b52\",\"hasScoped\":true,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/FollowSuggestions.vue":
  21970. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  21971. "use strict";
  21972. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
  21973. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
  21974. var render = function() {
  21975. var _vm = this
  21976. var _h = _vm.$createElement
  21977. var _c = _vm._self._c || _h
  21978. return _c("div", { staticClass: "card mb-4" }, [
  21979. _c("div", { staticClass: "card-header bg-white" }, [
  21980. _c("span", { staticClass: "font-weight-bold h5" }, [
  21981. _vm._v("Who to follow")
  21982. ]),
  21983. _vm._v(" "),
  21984. _c("span", { staticClass: "small float-right font-weight-bold" }, [
  21985. _c(
  21986. "a",
  21987. {
  21988. staticClass: "pr-2",
  21989. attrs: { href: "javascript:void(0);" },
  21990. on: { click: _vm.fetchData }
  21991. },
  21992. [_vm._v("Refresh")]
  21993. )
  21994. ])
  21995. ]),
  21996. _vm._v(" "),
  21997. _c(
  21998. "div",
  21999. { staticClass: "card-body" },
  22000. [
  22001. _vm.results.length == 0 ? _c("div", [_vm._m(0)]) : _vm._e(),
  22002. _vm._v(" "),
  22003. _vm._l(_vm.results, function(user, index) {
  22004. return _c("div", [
  22005. _c(
  22006. "div",
  22007. { staticClass: "media ", staticStyle: { width: "100%" } },
  22008. [
  22009. _c("img", {
  22010. staticClass: "mr-3",
  22011. attrs: { src: user.avatar, width: "40px" }
  22012. }),
  22013. _vm._v(" "),
  22014. _c(
  22015. "div",
  22016. { staticClass: "media-body", staticStyle: { width: "70%" } },
  22017. [
  22018. _c(
  22019. "p",
  22020. {
  22021. staticClass: "my-0 font-weight-bold text-truncate",
  22022. staticStyle: { "text-overflow": "hidden" }
  22023. },
  22024. [
  22025. _vm._v(_vm._s(user.acct) + " "),
  22026. _c(
  22027. "span",
  22028. { staticClass: "text-muted font-weight-normal" },
  22029. [_vm._v("@" + _vm._s(user.username))]
  22030. )
  22031. ]
  22032. ),
  22033. _vm._v(" "),
  22034. _c(
  22035. "a",
  22036. {
  22037. staticClass: "btn btn-outline-primary px-3 py-0",
  22038. staticStyle: { "border-radius": "20px" },
  22039. attrs: { href: user.url }
  22040. },
  22041. [_vm._v("Follow")]
  22042. )
  22043. ]
  22044. )
  22045. ]
  22046. ),
  22047. _vm._v(" "),
  22048. index != _vm.results.length - 1 ? _c("div", [_c("hr")]) : _vm._e()
  22049. ])
  22050. })
  22051. ],
  22052. 2
  22053. )
  22054. ])
  22055. }
  22056. var staticRenderFns = [
  22057. function() {
  22058. var _vm = this
  22059. var _h = _vm.$createElement
  22060. var _c = _vm._self._c || _h
  22061. return _c("p", { staticClass: "mb-0 font-weight-bold" }, [
  22062. _vm._v("You are not following anyone yet, try the "),
  22063. _c("a", { attrs: { href: "/discover" } }, [_vm._v("discover")]),
  22064. _vm._v(" feature to find users to follow.")
  22065. ])
  22066. }
  22067. ]
  22068. render._withStripped = true
  22069. if (false) {
  22070. module.hot.accept()
  22071. if (module.hot.data) {
  22072. require("vue-hot-reload-api") .rerender("data-v-1b3c4b52", { render: render, staticRenderFns: staticRenderFns })
  22073. }
  22074. }
  22075. /***/ }),
  22076. /***/ "./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-1c78113d\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/presenter/PhotoAlbumPresenter.vue":
  22077. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  22078. "use strict";
  22079. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
  22080. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
  22081. var render = function() {
  22082. var _vm = this
  22083. var _h = _vm.$createElement
  22084. var _c = _vm._self._c || _h
  22085. return _vm.status.sensitive == true
  22086. ? _c("div", [
  22087. _c(
  22088. "details",
  22089. { staticClass: "details-animated" },
  22090. [
  22091. _c("summary", [
  22092. _c("p", { staticClass: "mb-0 lead font-weight-bold" }, [
  22093. _vm._v(
  22094. _vm._s(
  22095. _vm.status.spoiler_text
  22096. ? _vm.status.spoiler_text
  22097. : "CW / NSFW / Hidden Media"
  22098. )
  22099. )
  22100. ]),
  22101. _vm._v(" "),
  22102. _c("p", { staticClass: "font-weight-light" }, [
  22103. _vm._v("(click to show)")
  22104. ])
  22105. ]),
  22106. _vm._v(" "),
  22107. _c(
  22108. "b-carousel",
  22109. {
  22110. staticStyle: { "text-shadow": "1px 1px 2px #333" },
  22111. attrs: {
  22112. id: _vm.status.id + "-carousel",
  22113. controls: "",
  22114. indicators: "",
  22115. background: "#ffffff",
  22116. interval: 0
  22117. }
  22118. },
  22119. _vm._l(_vm.status.media_attachments, function(img, index) {
  22120. return _c("b-carousel-slide", { key: img.id }, [
  22121. _c("img", {
  22122. staticClass: "d-block img-fluid w-100",
  22123. attrs: {
  22124. slot: "img",
  22125. src: img.url,
  22126. alt: img.description,
  22127. title: img.description
  22128. },
  22129. slot: "img"
  22130. })
  22131. ])
  22132. }),
  22133. 1
  22134. )
  22135. ],
  22136. 1
  22137. )
  22138. ])
  22139. : _c(
  22140. "div",
  22141. [
  22142. _c(
  22143. "b-carousel",
  22144. {
  22145. staticStyle: { "text-shadow": "1px 1px 2px #333" },
  22146. attrs: {
  22147. id: _vm.status.id + "-carousel",
  22148. controls: "",
  22149. indicators: "",
  22150. background: "#ffffff",
  22151. interval: 0
  22152. }
  22153. },
  22154. _vm._l(_vm.status.media_attachments, function(img, index) {
  22155. return _c("b-carousel-slide", { key: img.id }, [
  22156. _c("img", {
  22157. staticClass: "d-block img-fluid w-100",
  22158. attrs: {
  22159. slot: "img",
  22160. src: img.url,
  22161. alt: img.description,
  22162. title: img.description
  22163. },
  22164. slot: "img"
  22165. })
  22166. ])
  22167. }),
  22168. 1
  22169. )
  22170. ],
  22171. 1
  22172. )
  22173. }
  22174. var staticRenderFns = []
  22175. render._withStripped = true
  22176. if (false) {
  22177. module.hot.accept()
  22178. if (module.hot.data) {
  22179. require("vue-hot-reload-api") .rerender("data-v-1c78113d", { render: render, staticRenderFns: staticRenderFns })
  22180. }
  22181. }
  22182. /***/ }),
  22183. /***/ "./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-1e4d2916\",\"hasScoped\":true,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/PostComponent.vue":
  22184. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  22185. "use strict";
  22186. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
  22187. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
  22188. var render = function() {
  22189. var _vm = this
  22190. var _h = _vm.$createElement
  22191. var _c = _vm._self._c || _h
  22192. return _c(
  22193. "div",
  22194. { staticClass: "postComponent d-none" },
  22195. [
  22196. _c("div", { staticClass: "container px-0 mt-md-4" }, [
  22197. _c(
  22198. "div",
  22199. {
  22200. staticClass:
  22201. "card card-md-rounded-0 status-container orientation-unknown"
  22202. },
  22203. [
  22204. _c("div", { staticClass: "row px-0 mx-0" }, [
  22205. _c(
  22206. "div",
  22207. {
  22208. staticClass:
  22209. "d-flex d-md-none align-items-center justify-content-between card-header bg-white w-100"
  22210. },
  22211. [
  22212. _c(
  22213. "a",
  22214. {
  22215. staticClass:
  22216. "d-flex align-items-center status-username text-truncate",
  22217. attrs: {
  22218. href: _vm.statusProfileUrl,
  22219. "data-toggle": "tooltip",
  22220. "data-placement": "bottom",
  22221. title: _vm.statusUsername
  22222. }
  22223. },
  22224. [
  22225. _c("div", { staticClass: "status-avatar mr-2" }, [
  22226. _c("img", {
  22227. staticStyle: { "border-radius": "12px" },
  22228. attrs: {
  22229. src: _vm.statusAvatar,
  22230. width: "24px",
  22231. height: "24px"
  22232. }
  22233. })
  22234. ]),
  22235. _vm._v(" "),
  22236. _c("div", { staticClass: "username" }, [
  22237. _c(
  22238. "span",
  22239. {
  22240. staticClass:
  22241. "username-link font-weight-bold text-dark"
  22242. },
  22243. [_vm._v(_vm._s(_vm.statusUsername))]
  22244. )
  22245. ])
  22246. ]
  22247. ),
  22248. _vm._v(" "),
  22249. _c("div", { staticClass: "float-right" }, [
  22250. _c("div", { staticClass: "post-actions" }, [
  22251. _c("div", { staticClass: "dropdown" }, [
  22252. _vm._m(0),
  22253. _vm._v(" "),
  22254. _c(
  22255. "div",
  22256. {
  22257. staticClass: "dropdown-menu dropdown-menu-right",
  22258. attrs: { "aria-labelledby": "dropdownMenuButton" }
  22259. },
  22260. [
  22261. _c("span", { staticClass: "menu-user d-none" }, [
  22262. _c(
  22263. "a",
  22264. {
  22265. staticClass: "dropdown-item font-weight-bold",
  22266. attrs: { href: _vm.reportUrl() }
  22267. },
  22268. [_vm._v("Report")]
  22269. ),
  22270. _vm._v(" "),
  22271. _c(
  22272. "a",
  22273. {
  22274. staticClass: "dropdown-item font-weight-bold",
  22275. on: { click: _vm.muteProfile }
  22276. },
  22277. [_vm._v("Mute Profile")]
  22278. ),
  22279. _vm._v(" "),
  22280. _c(
  22281. "a",
  22282. {
  22283. staticClass: "dropdown-item font-weight-bold",
  22284. on: { click: _vm.blockProfile }
  22285. },
  22286. [_vm._v("Block Profile")]
  22287. )
  22288. ]),
  22289. _vm._v(" "),
  22290. _c("span", { staticClass: "menu-author d-none" }, [
  22291. _c(
  22292. "a",
  22293. {
  22294. staticClass: "dropdown-item font-weight-bold",
  22295. attrs: { href: _vm.editUrl() }
  22296. },
  22297. [_vm._v("Edit")]
  22298. ),
  22299. _vm._v(" "),
  22300. _c(
  22301. "a",
  22302. {
  22303. staticClass:
  22304. "dropdown-item font-weight-bold text-danger",
  22305. on: { click: _vm.deletePost }
  22306. },
  22307. [_vm._v("Delete")]
  22308. )
  22309. ])
  22310. ]
  22311. )
  22312. ])
  22313. ])
  22314. ])
  22315. ]
  22316. ),
  22317. _vm._v(" "),
  22318. _c("div", { staticClass: "col-12 col-md-8 px-0 mx-0" }, [
  22319. _vm._m(1),
  22320. _vm._v(" "),
  22321. _c(
  22322. "div",
  22323. {
  22324. staticClass:
  22325. "postPresenterContainer d-none d-flex justify-content-center align-items-center"
  22326. },
  22327. [
  22328. _vm.status.pf_type === "photo"
  22329. ? _c(
  22330. "div",
  22331. { staticClass: "w-100" },
  22332. [
  22333. _c("photo-presenter", {
  22334. attrs: { status: _vm.status }
  22335. })
  22336. ],
  22337. 1
  22338. )
  22339. : _vm.status.pf_type === "video"
  22340. ? _c(
  22341. "div",
  22342. { staticClass: "w-100" },
  22343. [
  22344. _c("video-presenter", {
  22345. attrs: { status: _vm.status }
  22346. })
  22347. ],
  22348. 1
  22349. )
  22350. : _vm.status.pf_type === "photo:album"
  22351. ? _c(
  22352. "div",
  22353. { staticClass: "w-100" },
  22354. [
  22355. _c("photo-album-presenter", {
  22356. attrs: { status: _vm.status }
  22357. })
  22358. ],
  22359. 1
  22360. )
  22361. : _vm.status.pf_type === "video:album"
  22362. ? _c(
  22363. "div",
  22364. { staticClass: "w-100" },
  22365. [
  22366. _c("video-album-presenter", {
  22367. attrs: { status: _vm.status }
  22368. })
  22369. ],
  22370. 1
  22371. )
  22372. : _vm.status.pf_type === "photo:video:album"
  22373. ? _c(
  22374. "div",
  22375. { staticClass: "w-100" },
  22376. [
  22377. _c("mixed-album-presenter", {
  22378. attrs: { status: _vm.status }
  22379. })
  22380. ],
  22381. 1
  22382. )
  22383. : _c("div", { staticClass: "w-100" }, [
  22384. _c(
  22385. "p",
  22386. {
  22387. staticClass:
  22388. "text-center p-0 font-weight-bold text-white"
  22389. },
  22390. [
  22391. _vm._v(
  22392. "Error: Problem rendering preview."
  22393. )
  22394. ]
  22395. )
  22396. ])
  22397. ]
  22398. )
  22399. ]),
  22400. _vm._v(" "),
  22401. _c(
  22402. "div",
  22403. {
  22404. staticClass:
  22405. "col-12 col-md-4 px-0 d-flex flex-column border-left border-md-left-0"
  22406. },
  22407. [
  22408. _c(
  22409. "div",
  22410. {
  22411. staticClass:
  22412. "d-md-flex d-none align-items-center justify-content-between card-header py-3 bg-white"
  22413. },
  22414. [
  22415. _c(
  22416. "a",
  22417. {
  22418. staticClass:
  22419. "d-flex align-items-center status-username text-truncate",
  22420. attrs: {
  22421. href: _vm.statusProfileUrl,
  22422. "data-toggle": "tooltip",
  22423. "data-placement": "bottom",
  22424. title: _vm.statusUsername
  22425. }
  22426. },
  22427. [
  22428. _c("div", { staticClass: "status-avatar mr-2" }, [
  22429. _c("img", {
  22430. staticStyle: { "border-radius": "12px" },
  22431. attrs: {
  22432. src: _vm.statusAvatar,
  22433. width: "24px",
  22434. height: "24px"
  22435. }
  22436. })
  22437. ]),
  22438. _vm._v(" "),
  22439. _c("div", { staticClass: "username" }, [
  22440. _c(
  22441. "span",
  22442. {
  22443. staticClass:
  22444. "username-link font-weight-bold text-dark"
  22445. },
  22446. [_vm._v(_vm._s(_vm.statusUsername))]
  22447. )
  22448. ])
  22449. ]
  22450. ),
  22451. _vm._v(" "),
  22452. _c("div", { staticClass: "float-right" }, [
  22453. _c("div", { staticClass: "post-actions" }, [
  22454. _c("div", { staticClass: "dropdown" }, [
  22455. _vm._m(2),
  22456. _vm._v(" "),
  22457. _c(
  22458. "div",
  22459. {
  22460. staticClass:
  22461. "dropdown-menu dropdown-menu-right",
  22462. attrs: {
  22463. "aria-labelledby": "dropdownMenuButton"
  22464. }
  22465. },
  22466. [
  22467. _c(
  22468. "span",
  22469. { staticClass: "menu-user d-none" },
  22470. [
  22471. _c(
  22472. "a",
  22473. {
  22474. staticClass:
  22475. "dropdown-item font-weight-bold",
  22476. attrs: { href: _vm.reportUrl() }
  22477. },
  22478. [_vm._v("Report")]
  22479. ),
  22480. _vm._v(" "),
  22481. _c(
  22482. "a",
  22483. {
  22484. staticClass:
  22485. "dropdown-item font-weight-bold",
  22486. on: { click: _vm.muteProfile }
  22487. },
  22488. [_vm._v("Mute Profile")]
  22489. ),
  22490. _vm._v(" "),
  22491. _c(
  22492. "a",
  22493. {
  22494. staticClass:
  22495. "dropdown-item font-weight-bold",
  22496. on: { click: _vm.blockProfile }
  22497. },
  22498. [_vm._v("Block Profile")]
  22499. )
  22500. ]
  22501. ),
  22502. _vm._v(" "),
  22503. _c(
  22504. "span",
  22505. { staticClass: "menu-author d-none" },
  22506. [
  22507. _c(
  22508. "a",
  22509. {
  22510. staticClass:
  22511. "dropdown-item font-weight-bold",
  22512. attrs: { href: _vm.editUrl() }
  22513. },
  22514. [_vm._v("Edit")]
  22515. ),
  22516. _vm._v(" "),
  22517. _c(
  22518. "a",
  22519. {
  22520. staticClass:
  22521. "dropdown-item font-weight-bold text-danger",
  22522. on: { click: _vm.deletePost }
  22523. },
  22524. [_vm._v("Delete")]
  22525. )
  22526. ]
  22527. )
  22528. ]
  22529. )
  22530. ])
  22531. ])
  22532. ])
  22533. ]
  22534. ),
  22535. _vm._v(" "),
  22536. _c(
  22537. "div",
  22538. {
  22539. staticClass:
  22540. "d-flex flex-md-column flex-column-reverse h-100"
  22541. },
  22542. [
  22543. _c("div", { staticClass: "card-body status-comments" }, [
  22544. _c(
  22545. "div",
  22546. { staticClass: "status-comment" },
  22547. [
  22548. _c(
  22549. "p",
  22550. {
  22551. staticClass: "mb-1 read-more",
  22552. staticStyle: { overflow: "hidden" }
  22553. },
  22554. [
  22555. _c(
  22556. "span",
  22557. { staticClass: "font-weight-bold pr-1" },
  22558. [_vm._v(_vm._s(_vm.statusUsername))]
  22559. ),
  22560. _vm._v(" "),
  22561. _c("span", {
  22562. staticClass: "comment-text",
  22563. attrs: {
  22564. id: _vm.status.id + "-status-readmore"
  22565. },
  22566. domProps: {
  22567. innerHTML: _vm._s(_vm.status.content)
  22568. }
  22569. })
  22570. ]
  22571. ),
  22572. _vm._v(" "),
  22573. _c("post-comments", {
  22574. attrs: {
  22575. user: this.user,
  22576. "post-id": _vm.statusId,
  22577. "post-username": _vm.statusUsername
  22578. }
  22579. })
  22580. ],
  22581. 1
  22582. )
  22583. ]),
  22584. _vm._v(" "),
  22585. _c("div", { staticClass: "card-body flex-grow-0 py-1" }, [
  22586. _c("div", { staticClass: "reactions my-1" }, [
  22587. _c("h3", {
  22588. class: [
  22589. _vm.reactions.liked
  22590. ? "fas fa-heart text-danger pr-3 m-0"
  22591. : "far fa-heart pr-3 m-0 like-btn"
  22592. ],
  22593. attrs: { title: "Like" },
  22594. on: { click: _vm.likeStatus }
  22595. }),
  22596. _vm._v(" "),
  22597. _c("h3", {
  22598. staticClass: "far fa-comment pr-3 m-0",
  22599. attrs: { title: "Comment" },
  22600. on: { click: _vm.commentFocus }
  22601. }),
  22602. _vm._v(" "),
  22603. _c("h3", {
  22604. class: [
  22605. _vm.reactions.shared
  22606. ? "far fa-share-square pr-3 m-0 text-primary"
  22607. : "far fa-share-square pr-3 m-0 share-btn"
  22608. ],
  22609. attrs: { title: "Share" },
  22610. on: { click: _vm.shareStatus }
  22611. }),
  22612. _vm._v(" "),
  22613. _c("h3", {
  22614. class: [
  22615. _vm.reactions.bookmarked
  22616. ? "fas fa-bookmark text-warning m-0 float-right"
  22617. : "far fa-bookmark m-0 float-right"
  22618. ],
  22619. attrs: { title: "Bookmark" },
  22620. on: { click: _vm.bookmarkStatus }
  22621. })
  22622. ]),
  22623. _vm._v(" "),
  22624. _c(
  22625. "div",
  22626. {
  22627. staticClass: "reaction-counts font-weight-bold mb-0"
  22628. },
  22629. [
  22630. _c(
  22631. "span",
  22632. {
  22633. staticStyle: { cursor: "pointer" },
  22634. on: { click: _vm.likesModal }
  22635. },
  22636. [
  22637. _c("span", { staticClass: "like-count" }, [
  22638. _vm._v(
  22639. _vm._s(_vm.status.favourites_count || 0)
  22640. )
  22641. ]),
  22642. _vm._v(" likes\n ")
  22643. ]
  22644. ),
  22645. _vm._v(" "),
  22646. _c(
  22647. "span",
  22648. {
  22649. staticClass: "float-right",
  22650. staticStyle: { cursor: "pointer" },
  22651. on: { click: _vm.sharesModal }
  22652. },
  22653. [
  22654. _c(
  22655. "span",
  22656. { staticClass: "share-count pl-4" },
  22657. [
  22658. _vm._v(
  22659. _vm._s(_vm.status.reblogs_count || 0)
  22660. )
  22661. ]
  22662. ),
  22663. _vm._v(" shares\n ")
  22664. ]
  22665. )
  22666. ]
  22667. ),
  22668. _vm._v(" "),
  22669. _c("div", { staticClass: "timestamp" }, [
  22670. _c(
  22671. "a",
  22672. {
  22673. staticClass: "small text-muted",
  22674. attrs: { href: _vm.statusUrl }
  22675. },
  22676. [
  22677. _vm._v(
  22678. "\n " +
  22679. _vm._s(_vm.timestampFormat()) +
  22680. "\n "
  22681. )
  22682. ]
  22683. )
  22684. ])
  22685. ])
  22686. ]
  22687. ),
  22688. _vm._v(" "),
  22689. _c(
  22690. "div",
  22691. { staticClass: "card-footer bg-white sticky-md-bottom" },
  22692. [
  22693. _vm._m(3),
  22694. _vm._v(" "),
  22695. _c(
  22696. "form",
  22697. {
  22698. staticClass: "comment-form d-none",
  22699. attrs: {
  22700. method: "post",
  22701. action: "/i/comment",
  22702. "data-id": _vm.statusId,
  22703. "data-truncate": "false"
  22704. }
  22705. },
  22706. [
  22707. _c("input", {
  22708. attrs: { type: "hidden", name: "_token", value: "" }
  22709. }),
  22710. _vm._v(" "),
  22711. _c("input", {
  22712. attrs: { type: "hidden", name: "item" },
  22713. domProps: { value: _vm.statusId }
  22714. }),
  22715. _vm._v(" "),
  22716. _c("input", {
  22717. staticClass: "form-control",
  22718. attrs: {
  22719. name: "comment",
  22720. placeholder: "Add a comment...",
  22721. autocomplete: "off"
  22722. }
  22723. }),
  22724. _vm._v(" "),
  22725. _c("input", {
  22726. staticClass: "btn btn-primary comment-submit",
  22727. attrs: { type: "submit", value: "Send" }
  22728. })
  22729. ]
  22730. )
  22731. ]
  22732. )
  22733. ]
  22734. )
  22735. ])
  22736. ]
  22737. )
  22738. ]),
  22739. _vm._v(" "),
  22740. _c(
  22741. "b-modal",
  22742. {
  22743. ref: "likesModal",
  22744. attrs: {
  22745. id: "l-modal",
  22746. "hide-footer": "",
  22747. centered: "",
  22748. title: "Likes",
  22749. "body-class": "list-group-flush p-0"
  22750. }
  22751. },
  22752. [
  22753. _c(
  22754. "div",
  22755. { staticClass: "list-group" },
  22756. [
  22757. _vm._l(_vm.likes, function(user) {
  22758. return _c("div", { staticClass: "list-group-item border-0" }, [
  22759. _c("div", { staticClass: "media" }, [
  22760. _c("a", { attrs: { href: user.url } }, [
  22761. _c("img", {
  22762. staticClass: "mr-3 rounded-circle box-shadow",
  22763. attrs: {
  22764. src: user.avatar,
  22765. alt: user.username + "'s avatar",
  22766. width: "30px"
  22767. }
  22768. })
  22769. ]),
  22770. _vm._v(" "),
  22771. _c("div", { staticClass: "media-body" }, [
  22772. _c(
  22773. "p",
  22774. {
  22775. staticClass: "mb-0",
  22776. staticStyle: { "font-size": "14px" }
  22777. },
  22778. [
  22779. _c(
  22780. "a",
  22781. {
  22782. staticClass: "font-weight-bold text-dark",
  22783. attrs: { href: user.url }
  22784. },
  22785. [
  22786. _vm._v(
  22787. "\n " +
  22788. _vm._s(user.username) +
  22789. "\n "
  22790. )
  22791. ]
  22792. )
  22793. ]
  22794. ),
  22795. _vm._v(" "),
  22796. _c(
  22797. "p",
  22798. {
  22799. staticClass: "text-muted mb-0",
  22800. staticStyle: { "font-size": "14px" }
  22801. },
  22802. [
  22803. _vm._v(
  22804. "\n " +
  22805. _vm._s(user.display_name) +
  22806. "\n "
  22807. )
  22808. ]
  22809. )
  22810. ])
  22811. ])
  22812. ])
  22813. }),
  22814. _vm._v(" "),
  22815. _c(
  22816. "infinite-loading",
  22817. {
  22818. attrs: { spinner: "spiral" },
  22819. on: { infinite: _vm.infiniteLikesHandler }
  22820. },
  22821. [
  22822. _c("div", { attrs: { slot: "no-more" }, slot: "no-more" }),
  22823. _vm._v(" "),
  22824. _c("div", {
  22825. attrs: { slot: "no-results" },
  22826. slot: "no-results"
  22827. })
  22828. ]
  22829. )
  22830. ],
  22831. 2
  22832. )
  22833. ]
  22834. ),
  22835. _vm._v(" "),
  22836. _c(
  22837. "b-modal",
  22838. {
  22839. ref: "sharesModal",
  22840. attrs: {
  22841. id: "s-modal",
  22842. "hide-footer": "",
  22843. centered: "",
  22844. title: "Shares",
  22845. "body-class": "list-group-flush p-0"
  22846. }
  22847. },
  22848. [
  22849. _c(
  22850. "div",
  22851. { staticClass: "list-group" },
  22852. [
  22853. _vm._l(_vm.shares, function(user) {
  22854. return _c("div", { staticClass: "list-group-item border-0" }, [
  22855. _c("div", { staticClass: "media" }, [
  22856. _c("a", { attrs: { href: user.url } }, [
  22857. _c("img", {
  22858. staticClass: "mr-3 rounded-circle box-shadow",
  22859. attrs: {
  22860. src: user.avatar,
  22861. alt: user.username + "'s avatar",
  22862. width: "30px"
  22863. }
  22864. })
  22865. ]),
  22866. _vm._v(" "),
  22867. _c("div", { staticClass: "media-body" }, [
  22868. _c(
  22869. "p",
  22870. {
  22871. staticClass: "mb-0",
  22872. staticStyle: { "font-size": "14px" }
  22873. },
  22874. [
  22875. _c(
  22876. "a",
  22877. {
  22878. staticClass: "font-weight-bold text-dark",
  22879. attrs: { href: user.url }
  22880. },
  22881. [
  22882. _vm._v(
  22883. "\n " +
  22884. _vm._s(user.username) +
  22885. "\n "
  22886. )
  22887. ]
  22888. )
  22889. ]
  22890. ),
  22891. _vm._v(" "),
  22892. _c(
  22893. "p",
  22894. {
  22895. staticClass: "text-muted mb-0",
  22896. staticStyle: { "font-size": "14px" }
  22897. },
  22898. [
  22899. _vm._v(
  22900. "\n " +
  22901. _vm._s(user.display_name) +
  22902. "\n "
  22903. )
  22904. ]
  22905. )
  22906. ])
  22907. ])
  22908. ])
  22909. }),
  22910. _vm._v(" "),
  22911. _c(
  22912. "infinite-loading",
  22913. {
  22914. attrs: { spinner: "spiral" },
  22915. on: { infinite: _vm.infiniteSharesHandler }
  22916. },
  22917. [
  22918. _c("div", { attrs: { slot: "no-more" }, slot: "no-more" }),
  22919. _vm._v(" "),
  22920. _c("div", {
  22921. attrs: { slot: "no-results" },
  22922. slot: "no-results"
  22923. })
  22924. ]
  22925. )
  22926. ],
  22927. 2
  22928. )
  22929. ]
  22930. )
  22931. ],
  22932. 1
  22933. )
  22934. }
  22935. var staticRenderFns = [
  22936. function() {
  22937. var _vm = this
  22938. var _h = _vm.$createElement
  22939. var _c = _vm._self._c || _h
  22940. return _c(
  22941. "button",
  22942. {
  22943. staticClass: "btn btn-link text-dark no-caret dropdown-toggle",
  22944. attrs: {
  22945. type: "button",
  22946. "data-toggle": "dropdown",
  22947. "aria-haspopup": "true",
  22948. "aria-expanded": "false",
  22949. title: "Post options"
  22950. }
  22951. },
  22952. [_c("span", { staticClass: "fas fa-ellipsis-v text-muted" })]
  22953. )
  22954. },
  22955. function() {
  22956. var _vm = this
  22957. var _h = _vm.$createElement
  22958. var _c = _vm._self._c || _h
  22959. return _c("div", { staticClass: "postPresenterLoader text-center" }, [
  22960. _c("div", { staticClass: "lds-ring" }, [
  22961. _c("div"),
  22962. _c("div"),
  22963. _c("div"),
  22964. _c("div")
  22965. ])
  22966. ])
  22967. },
  22968. function() {
  22969. var _vm = this
  22970. var _h = _vm.$createElement
  22971. var _c = _vm._self._c || _h
  22972. return _c(
  22973. "button",
  22974. {
  22975. staticClass: "btn btn-link text-dark no-caret dropdown-toggle",
  22976. attrs: {
  22977. type: "button",
  22978. "data-toggle": "dropdown",
  22979. "aria-haspopup": "true",
  22980. "aria-expanded": "false",
  22981. title: "Post options"
  22982. }
  22983. },
  22984. [_c("span", { staticClass: "fas fa-ellipsis-v text-muted" })]
  22985. )
  22986. },
  22987. function() {
  22988. var _vm = this
  22989. var _h = _vm.$createElement
  22990. var _c = _vm._self._c || _h
  22991. return _c("div", { staticClass: "comment-form-guest" }, [
  22992. _c("a", { attrs: { href: "/login" } }, [_vm._v("Login")]),
  22993. _vm._v(" to like or comment.\n ")
  22994. ])
  22995. }
  22996. ]
  22997. render._withStripped = true
  22998. if (false) {
  22999. module.hot.accept()
  23000. if (module.hot.data) {
  23001. require("vue-hot-reload-api") .rerender("data-v-1e4d2916", { render: render, staticRenderFns: staticRenderFns })
  23002. }
  23003. }
  23004. /***/ }),
  23005. /***/ "./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-40ef44f8\",\"hasScoped\":true,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/Timeline.vue":
  23006. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  23007. "use strict";
  23008. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
  23009. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
  23010. var render = function() {
  23011. var _vm = this
  23012. var _h = _vm.$createElement
  23013. var _c = _vm._self._c || _h
  23014. return _c("div", { staticClass: "container" }, [
  23015. _c("div", { staticClass: "row" }, [
  23016. _c(
  23017. "div",
  23018. {
  23019. staticClass:
  23020. "col-md-8 col-lg-8 pt-2 px-0 my-3 timeline order-2 order-md-1"
  23021. },
  23022. [
  23023. _vm._l(_vm.feed, function(status, index) {
  23024. return _c(
  23025. "div",
  23026. {
  23027. key: status.id,
  23028. staticClass: "card mb-4 status-card card-md-rounded-0",
  23029. attrs: { "data-status-id": status.id }
  23030. },
  23031. [
  23032. _c(
  23033. "div",
  23034. {
  23035. staticClass:
  23036. "card-header d-inline-flex align-items-center bg-white"
  23037. },
  23038. [
  23039. _c("img", {
  23040. staticStyle: { "border-radius": "32px" },
  23041. attrs: {
  23042. src: status.account.avatar,
  23043. width: "32px",
  23044. height: "32px"
  23045. }
  23046. }),
  23047. _vm._v(" "),
  23048. _c(
  23049. "a",
  23050. {
  23051. staticClass: "username font-weight-bold pl-2 text-dark",
  23052. attrs: { href: status.account.url }
  23053. },
  23054. [
  23055. _vm._v(
  23056. "\n\t\t\t\t\t\t" +
  23057. _vm._s(status.account.username) +
  23058. "\n\t\t\t\t\t"
  23059. )
  23060. ]
  23061. ),
  23062. _vm._v(" "),
  23063. _c(
  23064. "div",
  23065. {
  23066. staticClass: "text-right",
  23067. staticStyle: { "flex-grow": "1" }
  23068. },
  23069. [
  23070. _c("div", { staticClass: "dropdown" }, [
  23071. _vm._m(0, true),
  23072. _vm._v(" "),
  23073. _c(
  23074. "div",
  23075. {
  23076. staticClass: "dropdown-menu dropdown-menu-right",
  23077. attrs: { "aria-labelledby": "dropdownMenuButton" }
  23078. },
  23079. [
  23080. _c(
  23081. "a",
  23082. {
  23083. staticClass: "dropdown-item font-weight-bold",
  23084. attrs: { href: status.url }
  23085. },
  23086. [_vm._v("Go to post")]
  23087. ),
  23088. _vm._v(" "),
  23089. _c(
  23090. "span",
  23091. {
  23092. class: [
  23093. _vm.statusOwner(status) ? "d-none" : ""
  23094. ]
  23095. },
  23096. [
  23097. _c(
  23098. "a",
  23099. {
  23100. staticClass:
  23101. "dropdown-item font-weight-bold",
  23102. attrs: { href: _vm.reportUrl(status) }
  23103. },
  23104. [_vm._v("Report")]
  23105. ),
  23106. _vm._v(" "),
  23107. _c(
  23108. "a",
  23109. {
  23110. staticClass:
  23111. "dropdown-item font-weight-bold",
  23112. on: {
  23113. click: function($event) {
  23114. _vm.muteProfile(status)
  23115. }
  23116. }
  23117. },
  23118. [_vm._v("Mute Profile")]
  23119. ),
  23120. _vm._v(" "),
  23121. _c(
  23122. "a",
  23123. {
  23124. staticClass:
  23125. "dropdown-item font-weight-bold",
  23126. on: {
  23127. click: function($event) {
  23128. _vm.blockProfile(status)
  23129. }
  23130. }
  23131. },
  23132. [_vm._v("Block Profile")]
  23133. )
  23134. ]
  23135. ),
  23136. _vm._v(" "),
  23137. _c(
  23138. "span",
  23139. {
  23140. class: [
  23141. _vm.statusOwner(status) ? "" : "d-none"
  23142. ]
  23143. },
  23144. [
  23145. _c(
  23146. "a",
  23147. {
  23148. staticClass:
  23149. "dropdown-item font-weight-bold",
  23150. attrs: { href: _vm.editUrl(status) }
  23151. },
  23152. [_vm._v("Edit")]
  23153. ),
  23154. _vm._v(" "),
  23155. _c(
  23156. "a",
  23157. {
  23158. staticClass:
  23159. "dropdown-item font-weight-bold text-danger",
  23160. on: {
  23161. click: function($event) {
  23162. _vm.deletePost(status)
  23163. }
  23164. }
  23165. },
  23166. [_vm._v("Delete")]
  23167. )
  23168. ]
  23169. )
  23170. ]
  23171. )
  23172. ])
  23173. ]
  23174. )
  23175. ]
  23176. ),
  23177. _vm._v(" "),
  23178. _c("div", { staticClass: "postPresenterContainer" }, [
  23179. status.pf_type === "photo"
  23180. ? _c(
  23181. "div",
  23182. { staticClass: "w-100" },
  23183. [_c("photo-presenter", { attrs: { status: status } })],
  23184. 1
  23185. )
  23186. : status.pf_type === "video"
  23187. ? _c(
  23188. "div",
  23189. { staticClass: "w-100" },
  23190. [
  23191. _c("video-presenter", { attrs: { status: status } })
  23192. ],
  23193. 1
  23194. )
  23195. : status.pf_type === "photo:album"
  23196. ? _c(
  23197. "div",
  23198. { staticClass: "w-100" },
  23199. [
  23200. _c("photo-album-presenter", {
  23201. attrs: { status: status }
  23202. })
  23203. ],
  23204. 1
  23205. )
  23206. : status.pf_type === "video:album"
  23207. ? _c(
  23208. "div",
  23209. { staticClass: "w-100" },
  23210. [
  23211. _c("video-album-presenter", {
  23212. attrs: { status: status }
  23213. })
  23214. ],
  23215. 1
  23216. )
  23217. : status.pf_type === "photo:video:album"
  23218. ? _c(
  23219. "div",
  23220. { staticClass: "w-100" },
  23221. [
  23222. _c("mixed-album-presenter", {
  23223. attrs: { status: status }
  23224. })
  23225. ],
  23226. 1
  23227. )
  23228. : _c("div", { staticClass: "w-100" }, [
  23229. _c(
  23230. "p",
  23231. {
  23232. staticClass:
  23233. "text-center p-0 font-weight-bold text-white"
  23234. },
  23235. [_vm._v("Error: Problem rendering preview.")]
  23236. )
  23237. ])
  23238. ]),
  23239. _vm._v(" "),
  23240. _c("div", { staticClass: "card-body" }, [
  23241. _c("div", { staticClass: "reactions my-1" }, [
  23242. _c("h3", {
  23243. class: [
  23244. status.favourited
  23245. ? "fas fa-heart text-danger pr-3 m-0 cursor-pointer"
  23246. : "far fa-heart pr-3 m-0 like-btn cursor-pointer"
  23247. ],
  23248. attrs: { title: "Like" },
  23249. on: {
  23250. click: function($event) {
  23251. _vm.likeStatus(status, $event)
  23252. }
  23253. }
  23254. }),
  23255. _vm._v(" "),
  23256. _c("h3", {
  23257. staticClass: "far fa-comment pr-3 m-0 cursor-pointer",
  23258. attrs: { title: "Comment" },
  23259. on: {
  23260. click: function($event) {
  23261. _vm.commentFocus(status, $event)
  23262. }
  23263. }
  23264. }),
  23265. _vm._v(" "),
  23266. _c("h3", {
  23267. class: [
  23268. status.reblogged
  23269. ? "far fa-share-square pr-3 m-0 text-primary cursor-pointer"
  23270. : "far fa-share-square pr-3 m-0 share-btn cursor-pointer"
  23271. ],
  23272. attrs: { title: "Share" },
  23273. on: {
  23274. click: function($event) {
  23275. _vm.shareStatus(status, $event)
  23276. }
  23277. }
  23278. })
  23279. ]),
  23280. _vm._v(" "),
  23281. _c("div", { staticClass: "likes font-weight-bold" }, [
  23282. _c("span", { staticClass: "like-count" }, [
  23283. _vm._v(_vm._s(status.favourites_count))
  23284. ]),
  23285. _vm._v(
  23286. " " +
  23287. _vm._s(
  23288. status.favourites_count == 1 ? "like" : "likes"
  23289. ) +
  23290. "\n\t\t\t\t\t"
  23291. )
  23292. ]),
  23293. _vm._v(" "),
  23294. _c("div", { staticClass: "caption" }, [
  23295. _c(
  23296. "p",
  23297. {
  23298. staticClass: "mb-2 read-more",
  23299. staticStyle: { overflow: "hidden" }
  23300. },
  23301. [
  23302. _c(
  23303. "span",
  23304. { staticClass: "username font-weight-bold" },
  23305. [
  23306. _c("bdi", [
  23307. _c(
  23308. "a",
  23309. {
  23310. staticClass: "text-dark",
  23311. attrs: { href: status.account.url }
  23312. },
  23313. [_vm._v(_vm._s(status.account.username))]
  23314. )
  23315. ])
  23316. ]
  23317. ),
  23318. _vm._v(" "),
  23319. _c("span", {
  23320. domProps: { innerHTML: _vm._s(status.content) }
  23321. })
  23322. ]
  23323. )
  23324. ]),
  23325. _vm._v(" "),
  23326. _c("div", { staticClass: "comments" }),
  23327. _vm._v(" "),
  23328. _c("div", { staticClass: "timestamp pt-1" }, [
  23329. _c("p", { staticClass: "small text-uppercase mb-0" }, [
  23330. _c(
  23331. "a",
  23332. {
  23333. staticClass: "text-muted",
  23334. attrs: { href: status.url }
  23335. },
  23336. [
  23337. _c("timeago", {
  23338. directives: [
  23339. {
  23340. name: "b-tooltip",
  23341. rawName: "v-b-tooltip.hover.bottom",
  23342. modifiers: { hover: true, bottom: true }
  23343. }
  23344. ],
  23345. attrs: {
  23346. datetime: status.created_at,
  23347. "auto-update": 60,
  23348. "converter-options": { includeSeconds: true },
  23349. title: _vm.timestampFormat(status.created_at)
  23350. }
  23351. })
  23352. ],
  23353. 1
  23354. )
  23355. ])
  23356. ])
  23357. ]),
  23358. _vm._v(" "),
  23359. _c("div", { staticClass: "card-footer bg-white d-none" }, [
  23360. _c(
  23361. "form",
  23362. {
  23363. on: {
  23364. submit: function($event) {
  23365. $event.preventDefault()
  23366. _vm.commentSubmit(status, $event)
  23367. }
  23368. }
  23369. },
  23370. [
  23371. _c("input", {
  23372. attrs: { type: "hidden", name: "item", value: "" }
  23373. }),
  23374. _vm._v(" "),
  23375. _c("input", {
  23376. staticClass: "form-control status-reply-input",
  23377. attrs: {
  23378. name: "comment",
  23379. placeholder: "Add a comment…",
  23380. autocomplete: "off"
  23381. }
  23382. })
  23383. ]
  23384. )
  23385. ])
  23386. ]
  23387. )
  23388. }),
  23389. _vm._v(" "),
  23390. _c("infinite-loading", { on: { infinite: _vm.infiniteTimeline } }, [
  23391. _c(
  23392. "div",
  23393. {
  23394. staticClass: "font-weight-bold text-light",
  23395. attrs: { slot: "no-more" },
  23396. slot: "no-more"
  23397. },
  23398. [_vm._v("No more posts to load")]
  23399. ),
  23400. _vm._v(" "),
  23401. _c(
  23402. "div",
  23403. {
  23404. staticClass: "font-weight-bold text-light",
  23405. attrs: { slot: "no-results" },
  23406. slot: "no-results"
  23407. },
  23408. [_vm._v("No posts found")]
  23409. )
  23410. ])
  23411. ],
  23412. 2
  23413. ),
  23414. _vm._v(" "),
  23415. _c(
  23416. "div",
  23417. { staticClass: "col-md-4 col-lg-4 pt-2 my-3 order-1 order-md-2" },
  23418. [
  23419. _c("div", { staticClass: "mb-4" }, [
  23420. _c("div", { staticClass: "card profile-card" }, [
  23421. _vm._m(1),
  23422. _vm._v(" "),
  23423. _c("div", { staticClass: "card-body contents d-none" }, [
  23424. _c("div", { staticClass: "media d-flex align-items-center" }, [
  23425. _c("a", { attrs: { href: _vm.profile.url } }, [
  23426. _c("img", {
  23427. staticClass: "mr-3 rounded-circle box-shadow",
  23428. attrs: {
  23429. src:
  23430. _vm.profile.avatar || "/storage/avatars/default.png",
  23431. alt: "avatar",
  23432. width: "64px",
  23433. height: "64px"
  23434. }
  23435. })
  23436. ]),
  23437. _vm._v(" "),
  23438. _c("div", { staticClass: "media-body" }, [
  23439. _c("p", { staticClass: "mb-0 px-0 font-weight-bold" }, [
  23440. _c(
  23441. "a",
  23442. {
  23443. staticClass: "text-dark",
  23444. attrs: { href: _vm.profile.url }
  23445. },
  23446. [_vm._v("@" + _vm._s(_vm.profile.username))]
  23447. )
  23448. ]),
  23449. _vm._v(" "),
  23450. _c(
  23451. "p",
  23452. { staticClass: "my-0 text-muted text-truncate pb-0" },
  23453. [_vm._v(_vm._s(_vm.profile.display_name))]
  23454. )
  23455. ])
  23456. ])
  23457. ]),
  23458. _vm._v(" "),
  23459. _c("div", { staticClass: "card-footer bg-white py-1 d-none" }, [
  23460. _c(
  23461. "div",
  23462. { staticClass: "d-flex justify-content-between text-center" },
  23463. [
  23464. _c(
  23465. "span",
  23466. {
  23467. staticClass: "pl-3 cursor-pointer",
  23468. on: {
  23469. click: function($event) {
  23470. _vm.redirect(_vm.profile.url)
  23471. }
  23472. }
  23473. },
  23474. [
  23475. _c("p", { staticClass: "mb-0 font-weight-bold" }, [
  23476. _vm._v(_vm._s(_vm.profile.statuses_count))
  23477. ]),
  23478. _vm._v(" "),
  23479. _c("p", { staticClass: "mb-0 small text-muted" }, [
  23480. _vm._v("Posts")
  23481. ])
  23482. ]
  23483. ),
  23484. _vm._v(" "),
  23485. _c(
  23486. "span",
  23487. {
  23488. staticClass: "cursor-pointer",
  23489. on: {
  23490. click: function($event) {
  23491. _vm.redirect(_vm.profile.url + "/followers")
  23492. }
  23493. }
  23494. },
  23495. [
  23496. _c("p", { staticClass: "mb-0 font-weight-bold" }, [
  23497. _vm._v(_vm._s(_vm.profile.followers_count))
  23498. ]),
  23499. _vm._v(" "),
  23500. _c("p", { staticClass: "mb-0 small text-muted" }, [
  23501. _vm._v("Followers")
  23502. ])
  23503. ]
  23504. ),
  23505. _vm._v(" "),
  23506. _c(
  23507. "span",
  23508. {
  23509. staticClass: "pr-3 cursor-pointer",
  23510. on: {
  23511. click: function($event) {
  23512. _vm.redirect(_vm.profile.url + "/following")
  23513. }
  23514. }
  23515. },
  23516. [
  23517. _c("p", { staticClass: "mb-0 font-weight-bold" }, [
  23518. _vm._v(_vm._s(_vm.profile.following_count))
  23519. ]),
  23520. _vm._v(" "),
  23521. _c("p", { staticClass: "mb-0 small text-muted" }, [
  23522. _vm._v("Following")
  23523. ])
  23524. ]
  23525. )
  23526. ]
  23527. )
  23528. ])
  23529. ])
  23530. ]),
  23531. _vm._v(" "),
  23532. _c("div", { staticClass: "mb-4" }, [
  23533. _c("div", { staticClass: "card notification-card" }, [
  23534. _vm._m(2),
  23535. _vm._v(" "),
  23536. _vm._m(3),
  23537. _vm._v(" "),
  23538. _c(
  23539. "div",
  23540. {
  23541. staticClass: "card-body pt-2 contents",
  23542. staticStyle: { "max-height": "300px", "overflow-y": "scroll" }
  23543. },
  23544. _vm._l(_vm.notifications, function(n, index) {
  23545. return _c(
  23546. "div",
  23547. { staticClass: "media mb-3 align-items-center" },
  23548. [
  23549. _c("img", {
  23550. staticClass: "mr-2 rounded-circle",
  23551. staticStyle: { border: "1px solid #ccc" },
  23552. attrs: {
  23553. src: n.account.avatar,
  23554. alt: "",
  23555. width: "32px",
  23556. height: "32px"
  23557. }
  23558. }),
  23559. _vm._v(" "),
  23560. _c(
  23561. "div",
  23562. { staticClass: "media-body font-weight-light small" },
  23563. [
  23564. n.type == "favourite"
  23565. ? _c("div", [
  23566. _c("p", { staticClass: "my-0" }, [
  23567. _c(
  23568. "a",
  23569. {
  23570. staticClass:
  23571. "font-weight-bold text-dark word-break",
  23572. attrs: { href: n.account.url }
  23573. },
  23574. [_vm._v(_vm._s(n.account.username))]
  23575. ),
  23576. _vm._v(" liked your "),
  23577. _c(
  23578. "a",
  23579. {
  23580. staticClass: "font-weight-bold",
  23581. attrs: { href: _vm.replyUrl(n.status) }
  23582. },
  23583. [_vm._v("post")]
  23584. ),
  23585. _vm._v(".\n\t\t\t\t\t\t\t\t\t")
  23586. ])
  23587. ])
  23588. : n.type == "comment"
  23589. ? _c("div", [
  23590. _c("p", { staticClass: "my-0" }, [
  23591. _c(
  23592. "a",
  23593. {
  23594. staticClass:
  23595. "font-weight-bold text-dark word-break",
  23596. attrs: { href: n.account.url }
  23597. },
  23598. [_vm._v(_vm._s(n.account.username))]
  23599. ),
  23600. _vm._v(" commented on your "),
  23601. _c(
  23602. "a",
  23603. {
  23604. staticClass: "font-weight-bold",
  23605. attrs: { href: _vm.replyUrl(n.status) }
  23606. },
  23607. [_vm._v("post")]
  23608. ),
  23609. _vm._v(".\n\t\t\t\t\t\t\t\t\t")
  23610. ])
  23611. ])
  23612. : n.type == "mention"
  23613. ? _c("div", [
  23614. _c("p", { staticClass: "my-0" }, [
  23615. _c(
  23616. "a",
  23617. {
  23618. staticClass:
  23619. "font-weight-bold text-dark word-break",
  23620. attrs: { href: n.account.url }
  23621. },
  23622. [_vm._v(_vm._s(n.account.username))]
  23623. ),
  23624. _vm._v(" "),
  23625. _c(
  23626. "a",
  23627. {
  23628. staticClass: "font-weight-bold",
  23629. attrs: {
  23630. href: _vm.mentionUrl(n.status)
  23631. }
  23632. },
  23633. [_vm._v("mentioned")]
  23634. ),
  23635. _vm._v(" you.\n\t\t\t\t\t\t\t\t\t")
  23636. ])
  23637. ])
  23638. : n.type == "follow"
  23639. ? _c("div", [
  23640. _c("p", { staticClass: "my-0" }, [
  23641. _c(
  23642. "a",
  23643. {
  23644. staticClass:
  23645. "font-weight-bold text-dark word-break",
  23646. attrs: { href: n.account.url }
  23647. },
  23648. [_vm._v(_vm._s(n.account.username))]
  23649. ),
  23650. _vm._v(
  23651. " followed you.\n\t\t\t\t\t\t\t\t\t"
  23652. )
  23653. ])
  23654. ])
  23655. : _vm._e()
  23656. ]
  23657. )
  23658. ]
  23659. )
  23660. }),
  23661. 0
  23662. )
  23663. ])
  23664. ]),
  23665. _vm._v(" "),
  23666. _vm._m(4)
  23667. ]
  23668. )
  23669. ])
  23670. ])
  23671. }
  23672. var staticRenderFns = [
  23673. function() {
  23674. var _vm = this
  23675. var _h = _vm.$createElement
  23676. var _c = _vm._self._c || _h
  23677. return _c(
  23678. "button",
  23679. {
  23680. staticClass: "btn btn-link text-dark no-caret dropdown-toggle",
  23681. attrs: {
  23682. type: "button",
  23683. "data-toggle": "dropdown",
  23684. "aria-haspopup": "true",
  23685. "aria-expanded": "false",
  23686. title: "Post options"
  23687. }
  23688. },
  23689. [_c("span", { staticClass: "fas fa-ellipsis-v fa-lg text-muted" })]
  23690. )
  23691. },
  23692. function() {
  23693. var _vm = this
  23694. var _h = _vm.$createElement
  23695. var _c = _vm._self._c || _h
  23696. return _c("div", { staticClass: "card-body loader text-center" }, [
  23697. _c("div", { staticClass: "spinner-border", attrs: { role: "status" } }, [
  23698. _c("span", { staticClass: "sr-only" }, [_vm._v("Loading...")])
  23699. ])
  23700. ])
  23701. },
  23702. function() {
  23703. var _vm = this
  23704. var _h = _vm.$createElement
  23705. var _c = _vm._self._c || _h
  23706. return _c("div", { staticClass: "card-header bg-white" }, [
  23707. _c(
  23708. "p",
  23709. {
  23710. staticClass: "mb-0 d-flex align-items-center justify-content-between"
  23711. },
  23712. [
  23713. _c("span", { staticClass: "text-muted font-weight-bold" }, [
  23714. _vm._v("Notifications")
  23715. ]),
  23716. _vm._v(" "),
  23717. _c(
  23718. "a",
  23719. {
  23720. staticClass: "text-dark small",
  23721. attrs: { href: "/account/activity" }
  23722. },
  23723. [_vm._v("See All")]
  23724. )
  23725. ]
  23726. )
  23727. ])
  23728. },
  23729. function() {
  23730. var _vm = this
  23731. var _h = _vm.$createElement
  23732. var _c = _vm._self._c || _h
  23733. return _c(
  23734. "div",
  23735. {
  23736. staticClass: "card-body loader text-center",
  23737. staticStyle: { height: "300px" }
  23738. },
  23739. [
  23740. _c(
  23741. "div",
  23742. { staticClass: "spinner-border", attrs: { role: "status" } },
  23743. [_c("span", { staticClass: "sr-only" }, [_vm._v("Loading...")])]
  23744. )
  23745. ]
  23746. )
  23747. },
  23748. function() {
  23749. var _vm = this
  23750. var _h = _vm.$createElement
  23751. var _c = _vm._self._c || _h
  23752. return _c("footer", [
  23753. _c("div", { staticClass: "container pb-5" }, [
  23754. _c(
  23755. "p",
  23756. {
  23757. staticClass: "mb-0 text-uppercase font-weight-bold text-muted small"
  23758. },
  23759. [
  23760. _c(
  23761. "a",
  23762. { staticClass: "text-dark pr-2", attrs: { href: "/site/about" } },
  23763. [_vm._v("About Us")]
  23764. ),
  23765. _vm._v(" "),
  23766. _c(
  23767. "a",
  23768. { staticClass: "text-dark pr-2", attrs: { href: "/site/help" } },
  23769. [_vm._v("Help")]
  23770. ),
  23771. _vm._v(" "),
  23772. _c(
  23773. "a",
  23774. {
  23775. staticClass: "text-dark pr-2",
  23776. attrs: { href: "/site/open-source" }
  23777. },
  23778. [_vm._v("Open Source")]
  23779. ),
  23780. _vm._v(" "),
  23781. _c(
  23782. "a",
  23783. {
  23784. staticClass: "text-dark pr-2",
  23785. attrs: { href: "/site/language" }
  23786. },
  23787. [_vm._v("Language")]
  23788. ),
  23789. _vm._v(" "),
  23790. _c(
  23791. "a",
  23792. { staticClass: "text-dark pr-2", attrs: { href: "/site/terms" } },
  23793. [_vm._v("Terms")]
  23794. ),
  23795. _vm._v(" "),
  23796. _c(
  23797. "a",
  23798. {
  23799. staticClass: "text-dark pr-2",
  23800. attrs: { href: "/site/privacy" }
  23801. },
  23802. [_vm._v("Privacy")]
  23803. ),
  23804. _vm._v(" "),
  23805. _c(
  23806. "a",
  23807. {
  23808. staticClass: "text-dark pr-2",
  23809. attrs: { href: "/site/platform" }
  23810. },
  23811. [_vm._v("API")]
  23812. )
  23813. ]
  23814. ),
  23815. _vm._v(" "),
  23816. _c(
  23817. "p",
  23818. {
  23819. staticClass: "mb-0 text-uppercase font-weight-bold text-muted small"
  23820. },
  23821. [
  23822. _c(
  23823. "a",
  23824. {
  23825. staticClass: "text-muted",
  23826. attrs: {
  23827. href: "http://pixelfed.org",
  23828. rel: "noopener",
  23829. title: "",
  23830. "data-toggle": "tooltip"
  23831. }
  23832. },
  23833. [_vm._v("Powered by PixelFed")]
  23834. )
  23835. ]
  23836. )
  23837. ])
  23838. ])
  23839. }
  23840. ]
  23841. render._withStripped = true
  23842. if (false) {
  23843. module.hot.accept()
  23844. if (module.hot.data) {
  23845. require("vue-hot-reload-api") .rerender("data-v-40ef44f8", { render: render, staticRenderFns: staticRenderFns })
  23846. }
  23847. }
  23848. /***/ }),
  23849. /***/ "./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-43194746\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/presenter/VideoAlbumPresenter.vue":
  23850. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  23851. "use strict";
  23852. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
  23853. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
  23854. var render = function() {
  23855. var _vm = this
  23856. var _h = _vm.$createElement
  23857. var _c = _vm._self._c || _h
  23858. return _vm.status.sensitive == true
  23859. ? _c("div", [
  23860. _c(
  23861. "details",
  23862. { staticClass: "details-animated" },
  23863. [
  23864. _c("summary", [
  23865. _c("p", { staticClass: "mb-0 lead font-weight-bold" }, [
  23866. _vm._v(
  23867. _vm._s(
  23868. _vm.status.spoiler_text
  23869. ? _vm.status.spoiler_text
  23870. : "CW / NSFW / Hidden Media"
  23871. )
  23872. )
  23873. ]),
  23874. _vm._v(" "),
  23875. _c("p", { staticClass: "font-weight-light" }, [
  23876. _vm._v("(click to show)")
  23877. ])
  23878. ]),
  23879. _vm._v(" "),
  23880. _c(
  23881. "b-carousel",
  23882. {
  23883. staticStyle: {
  23884. "text-shadow": "1px 1px 2px #333",
  23885. "background-color": "#000"
  23886. },
  23887. attrs: {
  23888. id: _vm.status.id + "-carousel",
  23889. controls: "",
  23890. "img-blank": "",
  23891. background: "#ffffff",
  23892. interval: 0
  23893. }
  23894. },
  23895. _vm._l(_vm.status.media_attachments, function(vid, index) {
  23896. return _c("b-carousel-slide", { key: vid.id + "-media" }, [
  23897. _c(
  23898. "video",
  23899. {
  23900. staticClass: "embed-responsive-item",
  23901. attrs: {
  23902. slot: "img",
  23903. preload: "none",
  23904. controls: "",
  23905. loop: "",
  23906. alt: vid.description,
  23907. width: "100%",
  23908. height: "100%"
  23909. },
  23910. slot: "img"
  23911. },
  23912. [_c("source", { attrs: { src: vid.url, type: vid.mime } })]
  23913. )
  23914. ])
  23915. }),
  23916. 1
  23917. )
  23918. ],
  23919. 1
  23920. )
  23921. ])
  23922. : _c(
  23923. "div",
  23924. [
  23925. _c(
  23926. "b-carousel",
  23927. {
  23928. staticStyle: {
  23929. "text-shadow": "1px 1px 2px #333",
  23930. "background-color": "#000"
  23931. },
  23932. attrs: {
  23933. id: _vm.status.id + "-carousel",
  23934. controls: "",
  23935. "img-blank": "",
  23936. background: "#ffffff",
  23937. interval: 0
  23938. }
  23939. },
  23940. _vm._l(_vm.status.media_attachments, function(vid, index) {
  23941. return _c("b-carousel-slide", { key: vid.id + "-media" }, [
  23942. _c(
  23943. "video",
  23944. {
  23945. staticClass: "embed-responsive-item",
  23946. attrs: {
  23947. slot: "img",
  23948. preload: "none",
  23949. controls: "",
  23950. loop: "",
  23951. alt: vid.description,
  23952. width: "100%",
  23953. height: "100%"
  23954. },
  23955. slot: "img"
  23956. },
  23957. [_c("source", { attrs: { src: vid.url, type: vid.mime } })]
  23958. )
  23959. ])
  23960. }),
  23961. 1
  23962. )
  23963. ],
  23964. 1
  23965. )
  23966. }
  23967. var staticRenderFns = []
  23968. render._withStripped = true
  23969. if (false) {
  23970. module.hot.accept()
  23971. if (module.hot.data) {
  23972. require("vue-hot-reload-api") .rerender("data-v-43194746", { render: render, staticRenderFns: staticRenderFns })
  23973. }
  23974. }
  23975. /***/ }),
  23976. /***/ "./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-66084274\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/presenter/MixedAlbumPresenter.vue":
  23977. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  23978. "use strict";
  23979. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
  23980. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
  23981. var render = function() {
  23982. var _vm = this
  23983. var _h = _vm.$createElement
  23984. var _c = _vm._self._c || _h
  23985. return _vm.status.sensitive == true
  23986. ? _c("div", [
  23987. _c(
  23988. "details",
  23989. { staticClass: "details-animated" },
  23990. [
  23991. _c("summary", [
  23992. _c("p", { staticClass: "mb-0 lead font-weight-bold" }, [
  23993. _vm._v(
  23994. _vm._s(
  23995. _vm.status.spoiler_text
  23996. ? _vm.status.spoiler_text
  23997. : "CW / NSFW / Hidden Media"
  23998. )
  23999. )
  24000. ]),
  24001. _vm._v(" "),
  24002. _c("p", { staticClass: "font-weight-light" }, [
  24003. _vm._v("(click to show)")
  24004. ])
  24005. ]),
  24006. _vm._v(" "),
  24007. _c(
  24008. "b-carousel",
  24009. {
  24010. staticStyle: {
  24011. "text-shadow": "1px 1px 2px #333",
  24012. "background-color": "#000"
  24013. },
  24014. attrs: {
  24015. id: _vm.status.id + "-carousel",
  24016. controls: "",
  24017. "img-blank": "",
  24018. background: "#ffffff",
  24019. interval: 0
  24020. }
  24021. },
  24022. _vm._l(_vm.status.media_attachments, function(media, index) {
  24023. return _c("b-carousel-slide", { key: media.id + "-media" }, [
  24024. media.type == "Video"
  24025. ? _c(
  24026. "video",
  24027. {
  24028. staticClass: "embed-responsive-item",
  24029. attrs: {
  24030. slot: "img",
  24031. preload: "none",
  24032. controls: "",
  24033. loop: "",
  24034. alt: media.description,
  24035. width: "100%",
  24036. height: "100%"
  24037. },
  24038. slot: "img"
  24039. },
  24040. [
  24041. _c("source", {
  24042. attrs: { src: media.url, type: media.mime }
  24043. })
  24044. ]
  24045. )
  24046. : media.type == "Image"
  24047. ? _c("img", {
  24048. staticClass: "d-block img-fluid w-100",
  24049. attrs: {
  24050. slot: "img",
  24051. src: media.url,
  24052. alt: media.description,
  24053. title: media.description
  24054. },
  24055. slot: "img"
  24056. })
  24057. : _c(
  24058. "p",
  24059. {
  24060. staticClass:
  24061. "text-center p-0 font-weight-bold text-white"
  24062. },
  24063. [_vm._v("Error: Problem rendering preview.")]
  24064. )
  24065. ])
  24066. }),
  24067. 1
  24068. )
  24069. ],
  24070. 1
  24071. )
  24072. ])
  24073. : _c(
  24074. "div",
  24075. [
  24076. _c(
  24077. "b-carousel",
  24078. {
  24079. staticStyle: {
  24080. "text-shadow": "1px 1px 2px #333",
  24081. "background-color": "#000"
  24082. },
  24083. attrs: {
  24084. id: _vm.status.id + "-carousel",
  24085. controls: "",
  24086. "img-blank": "",
  24087. background: "#ffffff",
  24088. interval: 0
  24089. }
  24090. },
  24091. _vm._l(_vm.status.media_attachments, function(media, index) {
  24092. return _c("b-carousel-slide", { key: media.id + "-media" }, [
  24093. media.type == "Video"
  24094. ? _c(
  24095. "video",
  24096. {
  24097. staticClass: "embed-responsive-item",
  24098. attrs: {
  24099. slot: "img",
  24100. preload: "none",
  24101. controls: "",
  24102. loop: "",
  24103. alt: media.description,
  24104. width: "100%",
  24105. height: "100%"
  24106. },
  24107. slot: "img"
  24108. },
  24109. [
  24110. _c("source", {
  24111. attrs: { src: media.url, type: media.mime }
  24112. })
  24113. ]
  24114. )
  24115. : media.type == "Image"
  24116. ? _c("img", {
  24117. staticClass: "d-block img-fluid w-100",
  24118. attrs: {
  24119. slot: "img",
  24120. src: media.url,
  24121. alt: media.description,
  24122. title: media.description
  24123. },
  24124. slot: "img"
  24125. })
  24126. : _c(
  24127. "p",
  24128. {
  24129. staticClass:
  24130. "text-center p-0 font-weight-bold text-white"
  24131. },
  24132. [_vm._v("Error: Problem rendering preview.")]
  24133. )
  24134. ])
  24135. }),
  24136. 1
  24137. )
  24138. ],
  24139. 1
  24140. )
  24141. }
  24142. var staticRenderFns = []
  24143. render._withStripped = true
  24144. if (false) {
  24145. module.hot.accept()
  24146. if (module.hot.data) {
  24147. require("vue-hot-reload-api") .rerender("data-v-66084274", { render: render, staticRenderFns: staticRenderFns })
  24148. }
  24149. }
  24150. /***/ }),
  24151. /***/ "./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-7029d26b\",\"hasScoped\":true,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/PostComments.vue":
  24152. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  24153. "use strict";
  24154. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
  24155. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
  24156. var render = function() {
  24157. var _vm = this
  24158. var _h = _vm.$createElement
  24159. var _c = _vm._self._c || _h
  24160. return _c("div", [
  24161. _vm._m(0),
  24162. _vm._v(" "),
  24163. _c("div", { staticClass: "postCommentsContainer d-none" }, [
  24164. _c("p", { staticClass: "mb-1 text-center load-more-link d-none" }, [
  24165. _c(
  24166. "a",
  24167. {
  24168. staticClass: "text-muted",
  24169. attrs: { href: "#" },
  24170. on: { click: _vm.loadMore }
  24171. },
  24172. [_vm._v("Load more comments")]
  24173. )
  24174. ]),
  24175. _vm._v(" "),
  24176. _c(
  24177. "div",
  24178. {
  24179. staticClass: "comments",
  24180. attrs: { "data-min-id": "0", "data-max-id": "0" }
  24181. },
  24182. _vm._l(_vm.results, function(comment, index) {
  24183. return _c(
  24184. "p",
  24185. {
  24186. key: comment.id,
  24187. staticClass: "mb-1",
  24188. attrs: { "data-id": comment.id }
  24189. },
  24190. [
  24191. _c(
  24192. "span",
  24193. {
  24194. staticClass:
  24195. "d-flex justify-content-between align-items-center"
  24196. },
  24197. [
  24198. _c(
  24199. "span",
  24200. {
  24201. staticClass: "pr-3",
  24202. staticStyle: { overflow: "hidden" }
  24203. },
  24204. [
  24205. _c("div", { staticClass: "font-weight-bold pr-1" }, [
  24206. _c("bdi", [
  24207. _c(
  24208. "a",
  24209. {
  24210. staticClass: "text-dark",
  24211. attrs: {
  24212. href: comment.account.url,
  24213. title: comment.account.username
  24214. }
  24215. },
  24216. [_vm._v(_vm._s(_vm.l(comment.account.username)))]
  24217. )
  24218. ])
  24219. ]),
  24220. _vm._v(" "),
  24221. _c(
  24222. "div",
  24223. {
  24224. staticClass: "read-more",
  24225. staticStyle: { overflow: "hidden" },
  24226. attrs: { id: comment.id + "-reply-readmore" }
  24227. },
  24228. [
  24229. _c("span", {
  24230. staticClass: "comment-text",
  24231. staticStyle: { overflow: "hidden" },
  24232. domProps: { innerHTML: _vm._s(comment.content) }
  24233. })
  24234. ]
  24235. )
  24236. ]
  24237. ),
  24238. _vm._v(" "),
  24239. _c(
  24240. "b-dropdown",
  24241. {
  24242. staticClass: "float-right",
  24243. attrs: {
  24244. id: comment.uri,
  24245. variant: "link",
  24246. "no-caret": "",
  24247. right: ""
  24248. }
  24249. },
  24250. [
  24251. _c("template", { slot: "button-content" }, [
  24252. _c("i", {
  24253. staticClass: "fas fa-ellipsis-v text-muted"
  24254. }),
  24255. _c("span", { staticClass: "sr-only" }, [
  24256. _vm._v("Options")
  24257. ])
  24258. ]),
  24259. _vm._v(" "),
  24260. _c(
  24261. "b-dropdown-item",
  24262. {
  24263. staticClass: "font-weight-bold",
  24264. on: {
  24265. click: function($event) {
  24266. _vm.reply(comment)
  24267. }
  24268. }
  24269. },
  24270. [_vm._v("Reply")]
  24271. ),
  24272. _vm._v(" "),
  24273. _c(
  24274. "b-dropdown-item",
  24275. {
  24276. staticClass: "font-weight-bold",
  24277. attrs: { href: comment.url }
  24278. },
  24279. [_vm._v("Permalink")]
  24280. ),
  24281. _vm._v(" "),
  24282. _c(
  24283. "b-dropdown-item",
  24284. {
  24285. staticClass: "font-weight-bold",
  24286. attrs: { href: comment.account.url }
  24287. },
  24288. [_vm._v("Profile")]
  24289. ),
  24290. _vm._v(" "),
  24291. _c("b-dropdown-divider"),
  24292. _vm._v(" "),
  24293. _c(
  24294. "b-dropdown-item",
  24295. {
  24296. staticClass: "font-weight-bold",
  24297. attrs: {
  24298. href: "/i/report?type=post&id=" + comment.id
  24299. }
  24300. },
  24301. [_vm._v("Report")]
  24302. ),
  24303. _vm._v(" "),
  24304. comment.account.id == _vm.user.id
  24305. ? _c(
  24306. "b-dropdown-item",
  24307. {
  24308. staticClass: "font-weight-bold",
  24309. on: {
  24310. click: function($event) {
  24311. _vm.deleteComment(comment.id, index)
  24312. }
  24313. }
  24314. },
  24315. [_vm._v("Delete")]
  24316. )
  24317. : _vm._e()
  24318. ],
  24319. 2
  24320. )
  24321. ],
  24322. 1
  24323. )
  24324. ]
  24325. )
  24326. }),
  24327. 0
  24328. )
  24329. ])
  24330. ])
  24331. }
  24332. var staticRenderFns = [
  24333. function() {
  24334. var _vm = this
  24335. var _h = _vm.$createElement
  24336. var _c = _vm._self._c || _h
  24337. return _c("div", { staticClass: "postCommentsLoader text-center" }, [
  24338. _c("div", { staticClass: "lds-ring" }, [
  24339. _c("div"),
  24340. _c("div"),
  24341. _c("div"),
  24342. _c("div")
  24343. ])
  24344. ])
  24345. }
  24346. ]
  24347. render._withStripped = true
  24348. if (false) {
  24349. module.hot.accept()
  24350. if (module.hot.data) {
  24351. require("vue-hot-reload-api") .rerender("data-v-7029d26b", { render: render, staticRenderFns: staticRenderFns })
  24352. }
  24353. }
  24354. /***/ }),
  24355. /***/ "./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-7ab7dfed\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/DiscoverComponent.vue":
  24356. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  24357. "use strict";
  24358. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
  24359. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
  24360. var render = function() {
  24361. var _vm = this
  24362. var _h = _vm.$createElement
  24363. var _c = _vm._self._c || _h
  24364. return _c("div", { staticClass: "container" }, [
  24365. _c("section", { staticClass: "mb-5 section-explore" }, [
  24366. _c("p", { staticClass: "lead text-muted font-weight-bold mb-0" }, [
  24367. _vm._v("Explore")
  24368. ]),
  24369. _vm._v(" "),
  24370. _c("div", { staticClass: "profile-timeline" }, [
  24371. _vm._m(0),
  24372. _vm._v(" "),
  24373. _c(
  24374. "div",
  24375. { staticClass: "row d-none" },
  24376. _vm._l(_vm.posts, function(post) {
  24377. return _c("div", { staticClass: "col-4 p-0 p-sm-2 p-md-3" }, [
  24378. _c(
  24379. "a",
  24380. {
  24381. staticClass: "card info-overlay card-md-border-0",
  24382. attrs: { href: post.url }
  24383. },
  24384. [
  24385. _c("div", { staticClass: "square filter_class" }, [
  24386. _c("div", {
  24387. staticClass: "square-content",
  24388. style: { "background-image": "url(" + post.thumb + ")" }
  24389. })
  24390. ])
  24391. ]
  24392. )
  24393. ])
  24394. }),
  24395. 0
  24396. )
  24397. ])
  24398. ]),
  24399. _vm._v(" "),
  24400. _vm._m(1)
  24401. ])
  24402. }
  24403. var staticRenderFns = [
  24404. function() {
  24405. var _vm = this
  24406. var _h = _vm.$createElement
  24407. var _c = _vm._self._c || _h
  24408. return _c("div", { staticClass: "loader text-center" }, [
  24409. _c("div", { staticClass: "lds-ring" }, [
  24410. _c("div"),
  24411. _c("div"),
  24412. _c("div"),
  24413. _c("div")
  24414. ])
  24415. ])
  24416. },
  24417. function() {
  24418. var _vm = this
  24419. var _h = _vm.$createElement
  24420. var _c = _vm._self._c || _h
  24421. return _c("section", { staticClass: "mb-5" }, [
  24422. _c("p", { staticClass: "lead text-center" }, [
  24423. _vm._v("To view more posts, check the "),
  24424. _c("a", { staticClass: "font-weight-bold", attrs: { href: "/" } }, [
  24425. _vm._v("home")
  24426. ]),
  24427. _vm._v(" or "),
  24428. _c(
  24429. "a",
  24430. {
  24431. staticClass: "font-weight-bold",
  24432. attrs: { href: "/timeline/public" }
  24433. },
  24434. [_vm._v("local")]
  24435. ),
  24436. _vm._v(" timelines.")
  24437. ])
  24438. ])
  24439. }
  24440. ]
  24441. render._withStripped = true
  24442. if (false) {
  24443. module.hot.accept()
  24444. if (module.hot.data) {
  24445. require("vue-hot-reload-api") .rerender("data-v-7ab7dfed", { render: render, staticRenderFns: staticRenderFns })
  24446. }
  24447. }
  24448. /***/ }),
  24449. /***/ "./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-88c038d8\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/presenter/PhotoPresenter.vue":
  24450. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  24451. "use strict";
  24452. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
  24453. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
  24454. var render = function() {
  24455. var _vm = this
  24456. var _h = _vm.$createElement
  24457. var _c = _vm._self._c || _h
  24458. return _vm.status.sensitive == true
  24459. ? _c("div", [
  24460. _c("details", { staticClass: "details-animated" }, [
  24461. _c("summary", [
  24462. _c("p", { staticClass: "mb-0 lead font-weight-bold" }, [
  24463. _vm._v(
  24464. _vm._s(
  24465. _vm.status.spoiler_text
  24466. ? _vm.status.spoiler_text
  24467. : "CW / NSFW / Hidden Media"
  24468. )
  24469. )
  24470. ]),
  24471. _vm._v(" "),
  24472. _c("p", { staticClass: "font-weight-light" }, [
  24473. _vm._v("(click to show)")
  24474. ])
  24475. ]),
  24476. _vm._v(" "),
  24477. _c(
  24478. "a",
  24479. {
  24480. staticClass: "max-hide-overflow",
  24481. class: _vm.status.media_attachments[0].filter_class,
  24482. attrs: { href: _vm.status.url }
  24483. },
  24484. [
  24485. _c("img", {
  24486. staticClass: "card-img-top",
  24487. attrs: {
  24488. src: _vm.status.media_attachments[0].url,
  24489. alt: _vm.status.media_attachments[0].description,
  24490. title: _vm.status.media_attachments[0].description
  24491. }
  24492. })
  24493. ]
  24494. )
  24495. ])
  24496. ])
  24497. : _c("div", [
  24498. _c("div", { class: _vm.status.media_attachments[0].filter_class }, [
  24499. _c("img", {
  24500. staticClass: "card-img-top",
  24501. attrs: {
  24502. src: _vm.status.media_attachments[0].url,
  24503. alt: _vm.status.media_attachments[0].description,
  24504. title: _vm.status.media_attachments[0].description
  24505. }
  24506. })
  24507. ])
  24508. ])
  24509. }
  24510. var staticRenderFns = []
  24511. render._withStripped = true
  24512. if (false) {
  24513. module.hot.accept()
  24514. if (module.hot.data) {
  24515. require("vue-hot-reload-api") .rerender("data-v-88c038d8", { render: render, staticRenderFns: staticRenderFns })
  24516. }
  24517. }
  24518. /***/ }),
  24519. /***/ "./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-9ad5682a\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/presenter/VideoPresenter.vue":
  24520. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  24521. "use strict";
  24522. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
  24523. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
  24524. var render = function() {
  24525. var _vm = this
  24526. var _h = _vm.$createElement
  24527. var _c = _vm._self._c || _h
  24528. return _vm.status.sensitive == true
  24529. ? _c("div", [
  24530. _c("details", { staticClass: "details-animated" }, [
  24531. _c("summary", [
  24532. _c("p", { staticClass: "mb-0 lead font-weight-bold" }, [
  24533. _vm._v(
  24534. _vm._s(
  24535. _vm.status.spoiler_text
  24536. ? _vm.status.spoiler_text
  24537. : "CW / NSFW / Hidden Media"
  24538. )
  24539. )
  24540. ]),
  24541. _vm._v(" "),
  24542. _c("p", { staticClass: "font-weight-light" }, [
  24543. _vm._v("(click to show)")
  24544. ])
  24545. ]),
  24546. _vm._v(" "),
  24547. _c(
  24548. "div",
  24549. { staticClass: "embed-responsive embed-responsive-16by9" },
  24550. [
  24551. _c(
  24552. "video",
  24553. {
  24554. staticClass: "video",
  24555. attrs: { preload: "none", controls: "", loop: "" }
  24556. },
  24557. [
  24558. _c("source", {
  24559. attrs: {
  24560. src: _vm.status.media_attachments[0].url,
  24561. type: _vm.status.media_attachments[0].mime
  24562. }
  24563. })
  24564. ]
  24565. )
  24566. ]
  24567. )
  24568. ])
  24569. ])
  24570. : _c("div", { staticClass: "embed-responsive embed-responsive-16by9" }, [
  24571. _c(
  24572. "video",
  24573. {
  24574. staticClass: "video",
  24575. attrs: { preload: "none", controls: "", loop: "" }
  24576. },
  24577. [
  24578. _c("source", {
  24579. attrs: {
  24580. src: _vm.status.media_attachments[0].url,
  24581. type: _vm.status.media_attachments[0].mime
  24582. }
  24583. })
  24584. ]
  24585. )
  24586. ])
  24587. }
  24588. var staticRenderFns = []
  24589. render._withStripped = true
  24590. if (false) {
  24591. module.hot.accept()
  24592. if (module.hot.data) {
  24593. require("vue-hot-reload-api") .rerender("data-v-9ad5682a", { render: render, staticRenderFns: staticRenderFns })
  24594. }
  24595. }
  24596. /***/ }),
  24597. /***/ "./node_modules/vue-loading-overlay/dist/vue-loading.min.js":
  24598. /***/ (function(module, exports, __webpack_require__) {
  24599. !function(t,e){ true?module.exports=e():"function"==typeof define&&define.amd?define("VueLoading",[],e):"object"==typeof exports?exports.VueLoading=e():t.VueLoading=e()}("undefined"!=typeof self?self:this,function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){},function(t,e,i){"use strict";i.r(e);var n="undefined"!=typeof window?window.HTMLElement:Object,r={mounted:function(){document.addEventListener("focusin",this.focusIn)},methods:{focusIn:function(t){if(this.isActive&&t.target!==this.$el&&!this.$el.contains(t.target)){var e=this.container?this.container:this.isFullPage?null:this.$el.parentElement;(this.isFullPage||e&&e.contains(t.target))&&(t.preventDefault(),this.$el.focus())}}},beforeDestroy:function(){document.removeEventListener("focusin",this.focusIn)}};function a(t,e,i,n,r,a,o,s){var u,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=i,l._compiled=!0),n&&(l.functional=!0),a&&(l._scopeId="data-v-"+a),o?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=u):r&&(u=s?function(){r.call(this,this.$root.$options.shadowRoot)}:r),u)if(l.functional){l._injectStyles=u;var c=l.render;l.render=function(t,e){return u.call(e),c(t,e)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,u):[u]}return{exports:t,options:l}}var o=a({name:"spinner",props:{color:{type:String,default:"#000"},height:{type:Number,default:64},width:{type:Number,default:64}}},function(){var t=this.$createElement,e=this._self._c||t;return e("svg",{attrs:{viewBox:"0 0 38 38",xmlns:"http://www.w3.org/2000/svg",width:this.width,height:this.height,stroke:this.color}},[e("g",{attrs:{fill:"none","fill-rule":"evenodd"}},[e("g",{attrs:{transform:"translate(1 1)","stroke-width":"2"}},[e("circle",{attrs:{"stroke-opacity":".25",cx:"18",cy:"18",r:"18"}}),this._v(" "),e("path",{attrs:{d:"M36 18c0-9.94-8.06-18-18-18"}},[e("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"0.8s",repeatCount:"indefinite"}})],1)])])])},[],!1,null,null,null);o.options.__file="spinner.vue";var s=o.exports,u=a({name:"dots",props:{color:{type:String,default:"#000"},height:{type:Number,default:240},width:{type:Number,default:60}}},function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("svg",{attrs:{viewBox:"0 0 120 30",xmlns:"http://www.w3.org/2000/svg",fill:t.color,width:t.width,height:t.height}},[i("circle",{attrs:{cx:"15",cy:"15",r:"15"}},[i("animate",{attrs:{attributeName:"r",from:"15",to:"15",begin:"0s",dur:"0.8s",values:"15;9;15",calcMode:"linear",repeatCount:"indefinite"}}),t._v(" "),i("animate",{attrs:{attributeName:"fill-opacity",from:"1",to:"1",begin:"0s",dur:"0.8s",values:"1;.5;1",calcMode:"linear",repeatCount:"indefinite"}})]),t._v(" "),i("circle",{attrs:{cx:"60",cy:"15",r:"9","fill-opacity":"0.3"}},[i("animate",{attrs:{attributeName:"r",from:"9",to:"9",begin:"0s",dur:"0.8s",values:"9;15;9",calcMode:"linear",repeatCount:"indefinite"}}),t._v(" "),i("animate",{attrs:{attributeName:"fill-opacity",from:"0.5",to:"0.5",begin:"0s",dur:"0.8s",values:".5;1;.5",calcMode:"linear",repeatCount:"indefinite"}})]),t._v(" "),i("circle",{attrs:{cx:"105",cy:"15",r:"15"}},[i("animate",{attrs:{attributeName:"r",from:"15",to:"15",begin:"0s",dur:"0.8s",values:"15;9;15",calcMode:"linear",repeatCount:"indefinite"}}),t._v(" "),i("animate",{attrs:{attributeName:"fill-opacity",from:"1",to:"1",begin:"0s",dur:"0.8s",values:"1;.5;1",calcMode:"linear",repeatCount:"indefinite"}})])])},[],!1,null,null,null);u.options.__file="dots.vue";var l=u.exports,c=a({name:"bars",props:{color:{type:String,default:"#000"},height:{type:Number,default:40},width:{type:Number,default:40}}},function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 30 30",height:t.height,width:t.width,fill:t.color}},[i("rect",{attrs:{x:"0",y:"13",width:"4",height:"5"}},[i("animate",{attrs:{attributeName:"height",attributeType:"XML",values:"5;21;5",begin:"0s",dur:"0.6s",repeatCount:"indefinite"}}),t._v(" "),i("animate",{attrs:{attributeName:"y",attributeType:"XML",values:"13; 5; 13",begin:"0s",dur:"0.6s",repeatCount:"indefinite"}})]),t._v(" "),i("rect",{attrs:{x:"10",y:"13",width:"4",height:"5"}},[i("animate",{attrs:{attributeName:"height",attributeType:"XML",values:"5;21;5",begin:"0.15s",dur:"0.6s",repeatCount:"indefinite"}}),t._v(" "),i("animate",{attrs:{attributeName:"y",attributeType:"XML",values:"13; 5; 13",begin:"0.15s",dur:"0.6s",repeatCount:"indefinite"}})]),t._v(" "),i("rect",{attrs:{x:"20",y:"13",width:"4",height:"5"}},[i("animate",{attrs:{attributeName:"height",attributeType:"XML",values:"5;21;5",begin:"0.3s",dur:"0.6s",repeatCount:"indefinite"}}),t._v(" "),i("animate",{attrs:{attributeName:"y",attributeType:"XML",values:"13; 5; 13",begin:"0.3s",dur:"0.6s",repeatCount:"indefinite"}})])])},[],!1,null,null,null);c.options.__file="bars.vue";var d=c.exports,f=a({name:"vue-loading",mixins:[r],props:{active:Boolean,programmatic:Boolean,container:[Object,Function,n],isFullPage:{type:Boolean,default:!0},transition:{type:String,default:"fade"},canCancel:Boolean,onCancel:{type:Function,default:function(){}},color:String,backgroundColor:String,opacity:Number,width:Number,height:Number,loader:{type:String,default:"spinner"}},data:function(){return{isActive:this.active}},components:{Spinner:s,Dots:l,Bars:d},beforeMount:function(){this.programmatic&&(this.container?(this.isFullPage=!1,this.container.appendChild(this.$el)):document.body.appendChild(this.$el))},mounted:function(){this.programmatic&&(this.isActive=!0),document.addEventListener("keyup",this.keyPress)},methods:{cancel:function(){this.canCancel&&this.isActive&&(this.hide(),this.onCancel.apply(null,arguments))},hide:function(){var t=this;this.$emit("hide"),this.$emit("update:active",!1),this.programmatic&&(this.isActive=!1,setTimeout(function(){var e;t.$destroy(),void 0!==(e=t.$el).remove?e.remove():e.parentNode.removeChild(e)},150))},keyPress:function(t){27===t.keyCode&&this.cancel()}},watch:{active:function(t){this.isActive=t}},beforeDestroy:function(){document.removeEventListener("keyup",this.keyPress)}},function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("transition",{attrs:{name:t.transition}},[i("div",{directives:[{name:"show",rawName:"v-show",value:t.isActive,expression:"isActive"}],staticClass:"vld-overlay is-active",class:{"is-full-page":t.isFullPage},attrs:{tabindex:"0","aria-busy":t.isActive,"aria-label":"Loading"}},[i("div",{staticClass:"vld-background",style:{background:this.backgroundColor,opacity:this.opacity},on:{click:function(e){return e.preventDefault(),t.cancel(e)}}}),t._v(" "),i("div",{staticClass:"vld-icon"},[t._t("before"),t._v(" "),t._t("default",[i(t.loader,{tag:"component",attrs:{color:t.color,width:t.width,height:t.height}})]),t._v(" "),t._t("after")],2)])])},[],!1,null,null,null);f.options.__file="Component.vue";var p=f.exports,h=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{show:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i,a=Object.assign({},e,n,{programmatic:!0}),o=new(t.extend(p))({el:document.createElement("div"),propsData:a}),s=Object.assign({},i,r);return Object.keys(s).map(function(t){o.$slots[t]=s[t]}),o}}};i(0);p.install=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=h(t,e,i);t.$loading=n,t.prototype.$loading=n};e.default=p}]).default});
  24600. /***/ }),
  24601. /***/ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1b3c4b52\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/FollowSuggestions.vue":
  24602. /***/ (function(module, exports, __webpack_require__) {
  24603. // style-loader: Adds some css to the DOM by adding a <style> tag
  24604. // load the styles
  24605. var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1b3c4b52\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/FollowSuggestions.vue");
  24606. if(typeof content === 'string') content = [[module.i, content, '']];
  24607. if(content.locals) module.exports = content.locals;
  24608. // add the styles to the DOM
  24609. var add = __webpack_require__("./node_modules/vue-style-loader/lib/addStylesClient.js").default
  24610. var update = add("70d2d856", content, false, {});
  24611. // Hot Module Replacement
  24612. if(false) {
  24613. // When the styles change, update the <style> tags
  24614. if(!content.locals) {
  24615. module.hot.accept("!!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1b3c4b52\",\"scoped\":true,\"sourceMap\":false}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./FollowSuggestions.vue", function() {
  24616. var newContent = require("!!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1b3c4b52\",\"scoped\":true,\"sourceMap\":false}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./FollowSuggestions.vue");
  24617. if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
  24618. update(newContent);
  24619. });
  24620. }
  24621. // When the module is disposed, remove the <style> tags
  24622. module.hot.dispose(function() { update(); });
  24623. }
  24624. /***/ }),
  24625. /***/ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1e4d2916\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/PostComponent.vue":
  24626. /***/ (function(module, exports, __webpack_require__) {
  24627. // style-loader: Adds some css to the DOM by adding a <style> tag
  24628. // load the styles
  24629. var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1e4d2916\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/PostComponent.vue");
  24630. if(typeof content === 'string') content = [[module.i, content, '']];
  24631. if(content.locals) module.exports = content.locals;
  24632. // add the styles to the DOM
  24633. var add = __webpack_require__("./node_modules/vue-style-loader/lib/addStylesClient.js").default
  24634. var update = add("43122bba", content, false, {});
  24635. // Hot Module Replacement
  24636. if(false) {
  24637. // When the styles change, update the <style> tags
  24638. if(!content.locals) {
  24639. module.hot.accept("!!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1e4d2916\",\"scoped\":true,\"sourceMap\":false}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./PostComponent.vue", function() {
  24640. var newContent = require("!!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1e4d2916\",\"scoped\":true,\"sourceMap\":false}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./PostComponent.vue");
  24641. if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
  24642. update(newContent);
  24643. });
  24644. }
  24645. // When the module is disposed, remove the <style> tags
  24646. module.hot.dispose(function() { update(); });
  24647. }
  24648. /***/ }),
  24649. /***/ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-40ef44f8\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/Timeline.vue":
  24650. /***/ (function(module, exports, __webpack_require__) {
  24651. // style-loader: Adds some css to the DOM by adding a <style> tag
  24652. // load the styles
  24653. var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-40ef44f8\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/Timeline.vue");
  24654. if(typeof content === 'string') content = [[module.i, content, '']];
  24655. if(content.locals) module.exports = content.locals;
  24656. // add the styles to the DOM
  24657. var add = __webpack_require__("./node_modules/vue-style-loader/lib/addStylesClient.js").default
  24658. var update = add("2c25f85e", content, false, {});
  24659. // Hot Module Replacement
  24660. if(false) {
  24661. // When the styles change, update the <style> tags
  24662. if(!content.locals) {
  24663. module.hot.accept("!!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-40ef44f8\",\"scoped\":true,\"sourceMap\":false}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./Timeline.vue", function() {
  24664. var newContent = require("!!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-40ef44f8\",\"scoped\":true,\"sourceMap\":false}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./Timeline.vue");
  24665. if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
  24666. update(newContent);
  24667. });
  24668. }
  24669. // When the module is disposed, remove the <style> tags
  24670. module.hot.dispose(function() { update(); });
  24671. }
  24672. /***/ }),
  24673. /***/ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-7029d26b\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/PostComments.vue":
  24674. /***/ (function(module, exports, __webpack_require__) {
  24675. // style-loader: Adds some css to the DOM by adding a <style> tag
  24676. // load the styles
  24677. var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-7029d26b\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/PostComments.vue");
  24678. if(typeof content === 'string') content = [[module.i, content, '']];
  24679. if(content.locals) module.exports = content.locals;
  24680. // add the styles to the DOM
  24681. var add = __webpack_require__("./node_modules/vue-style-loader/lib/addStylesClient.js").default
  24682. var update = add("8d16673c", content, false, {});
  24683. // Hot Module Replacement
  24684. if(false) {
  24685. // When the styles change, update the <style> tags
  24686. if(!content.locals) {
  24687. module.hot.accept("!!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-7029d26b\",\"scoped\":true,\"sourceMap\":false}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./PostComments.vue", function() {
  24688. var newContent = require("!!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-7029d26b\",\"scoped\":true,\"sourceMap\":false}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./PostComments.vue");
  24689. if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
  24690. update(newContent);
  24691. });
  24692. }
  24693. // When the module is disposed, remove the <style> tags
  24694. module.hot.dispose(function() { update(); });
  24695. }
  24696. /***/ }),
  24697. /***/ "./node_modules/vue-style-loader/lib/addStylesClient.js":
  24698. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  24699. "use strict";
  24700. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  24701. /* harmony export (immutable) */ __webpack_exports__["default"] = addStylesClient;
  24702. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__listToStyles__ = __webpack_require__("./node_modules/vue-style-loader/lib/listToStyles.js");
  24703. /*
  24704. MIT License http://www.opensource.org/licenses/mit-license.php
  24705. Author Tobias Koppers @sokra
  24706. Modified by Evan You @yyx990803
  24707. */
  24708. var hasDocument = typeof document !== 'undefined'
  24709. if (typeof DEBUG !== 'undefined' && DEBUG) {
  24710. if (!hasDocument) {
  24711. throw new Error(
  24712. 'vue-style-loader cannot be used in a non-browser environment. ' +
  24713. "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
  24714. ) }
  24715. }
  24716. /*
  24717. type StyleObject = {
  24718. id: number;
  24719. parts: Array<StyleObjectPart>
  24720. }
  24721. type StyleObjectPart = {
  24722. css: string;
  24723. media: string;
  24724. sourceMap: ?string
  24725. }
  24726. */
  24727. var stylesInDom = {/*
  24728. [id: number]: {
  24729. id: number,
  24730. refs: number,
  24731. parts: Array<(obj?: StyleObjectPart) => void>
  24732. }
  24733. */}
  24734. var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
  24735. var singletonElement = null
  24736. var singletonCounter = 0
  24737. var isProduction = false
  24738. var noop = function () {}
  24739. var options = null
  24740. var ssrIdKey = 'data-vue-ssr-id'
  24741. // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
  24742. // tags it will allow on a page
  24743. var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())
  24744. function addStylesClient (parentId, list, _isProduction, _options) {
  24745. isProduction = _isProduction
  24746. options = _options || {}
  24747. var styles = Object(__WEBPACK_IMPORTED_MODULE_0__listToStyles__["a" /* default */])(parentId, list)
  24748. addStylesToDom(styles)
  24749. return function update (newList) {
  24750. var mayRemove = []
  24751. for (var i = 0; i < styles.length; i++) {
  24752. var item = styles[i]
  24753. var domStyle = stylesInDom[item.id]
  24754. domStyle.refs--
  24755. mayRemove.push(domStyle)
  24756. }
  24757. if (newList) {
  24758. styles = Object(__WEBPACK_IMPORTED_MODULE_0__listToStyles__["a" /* default */])(parentId, newList)
  24759. addStylesToDom(styles)
  24760. } else {
  24761. styles = []
  24762. }
  24763. for (var i = 0; i < mayRemove.length; i++) {
  24764. var domStyle = mayRemove[i]
  24765. if (domStyle.refs === 0) {
  24766. for (var j = 0; j < domStyle.parts.length; j++) {
  24767. domStyle.parts[j]()
  24768. }
  24769. delete stylesInDom[domStyle.id]
  24770. }
  24771. }
  24772. }
  24773. }
  24774. function addStylesToDom (styles /* Array<StyleObject> */) {
  24775. for (var i = 0; i < styles.length; i++) {
  24776. var item = styles[i]
  24777. var domStyle = stylesInDom[item.id]
  24778. if (domStyle) {
  24779. domStyle.refs++
  24780. for (var j = 0; j < domStyle.parts.length; j++) {
  24781. domStyle.parts[j](item.parts[j])
  24782. }
  24783. for (; j < item.parts.length; j++) {
  24784. domStyle.parts.push(addStyle(item.parts[j]))
  24785. }
  24786. if (domStyle.parts.length > item.parts.length) {
  24787. domStyle.parts.length = item.parts.length
  24788. }
  24789. } else {
  24790. var parts = []
  24791. for (var j = 0; j < item.parts.length; j++) {
  24792. parts.push(addStyle(item.parts[j]))
  24793. }
  24794. stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
  24795. }
  24796. }
  24797. }
  24798. function createStyleElement () {
  24799. var styleElement = document.createElement('style')
  24800. styleElement.type = 'text/css'
  24801. head.appendChild(styleElement)
  24802. return styleElement
  24803. }
  24804. function addStyle (obj /* StyleObjectPart */) {
  24805. var update, remove
  24806. var styleElement = document.querySelector('style[' + ssrIdKey + '~="' + obj.id + '"]')
  24807. if (styleElement) {
  24808. if (isProduction) {
  24809. // has SSR styles and in production mode.
  24810. // simply do nothing.
  24811. return noop
  24812. } else {
  24813. // has SSR styles but in dev mode.
  24814. // for some reason Chrome can't handle source map in server-rendered
  24815. // style tags - source maps in <style> only works if the style tag is
  24816. // created and inserted dynamically. So we remove the server rendered
  24817. // styles and inject new ones.
  24818. styleElement.parentNode.removeChild(styleElement)
  24819. }
  24820. }
  24821. if (isOldIE) {
  24822. // use singleton mode for IE9.
  24823. var styleIndex = singletonCounter++
  24824. styleElement = singletonElement || (singletonElement = createStyleElement())
  24825. update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
  24826. remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
  24827. } else {
  24828. // use multi-style-tag mode in all other cases
  24829. styleElement = createStyleElement()
  24830. update = applyToTag.bind(null, styleElement)
  24831. remove = function () {
  24832. styleElement.parentNode.removeChild(styleElement)
  24833. }
  24834. }
  24835. update(obj)
  24836. return function updateStyle (newObj /* StyleObjectPart */) {
  24837. if (newObj) {
  24838. if (newObj.css === obj.css &&
  24839. newObj.media === obj.media &&
  24840. newObj.sourceMap === obj.sourceMap) {
  24841. return
  24842. }
  24843. update(obj = newObj)
  24844. } else {
  24845. remove()
  24846. }
  24847. }
  24848. }
  24849. var replaceText = (function () {
  24850. var textStore = []
  24851. return function (index, replacement) {
  24852. textStore[index] = replacement
  24853. return textStore.filter(Boolean).join('\n')
  24854. }
  24855. })()
  24856. function applyToSingletonTag (styleElement, index, remove, obj) {
  24857. var css = remove ? '' : obj.css
  24858. if (styleElement.styleSheet) {
  24859. styleElement.styleSheet.cssText = replaceText(index, css)
  24860. } else {
  24861. var cssNode = document.createTextNode(css)
  24862. var childNodes = styleElement.childNodes
  24863. if (childNodes[index]) styleElement.removeChild(childNodes[index])
  24864. if (childNodes.length) {
  24865. styleElement.insertBefore(cssNode, childNodes[index])
  24866. } else {
  24867. styleElement.appendChild(cssNode)
  24868. }
  24869. }
  24870. }
  24871. function applyToTag (styleElement, obj) {
  24872. var css = obj.css
  24873. var media = obj.media
  24874. var sourceMap = obj.sourceMap
  24875. if (media) {
  24876. styleElement.setAttribute('media', media)
  24877. }
  24878. if (options.ssrId) {
  24879. styleElement.setAttribute(ssrIdKey, obj.id)
  24880. }
  24881. if (sourceMap) {
  24882. // https://developer.chrome.com/devtools/docs/javascript-debugging
  24883. // this makes source maps inside style tags work properly in Chrome
  24884. css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
  24885. // http://stackoverflow.com/a/26603875
  24886. css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
  24887. }
  24888. if (styleElement.styleSheet) {
  24889. styleElement.styleSheet.cssText = css
  24890. } else {
  24891. while (styleElement.firstChild) {
  24892. styleElement.removeChild(styleElement.firstChild)
  24893. }
  24894. styleElement.appendChild(document.createTextNode(css))
  24895. }
  24896. }
  24897. /***/ }),
  24898. /***/ "./node_modules/vue-style-loader/lib/listToStyles.js":
  24899. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  24900. "use strict";
  24901. /* harmony export (immutable) */ __webpack_exports__["a"] = listToStyles;
  24902. /**
  24903. * Translates the list format produced by css-loader into something
  24904. * easier to manipulate.
  24905. */
  24906. function listToStyles (parentId, list) {
  24907. var styles = []
  24908. var newStyles = {}
  24909. for (var i = 0; i < list.length; i++) {
  24910. var item = list[i]
  24911. var id = item[0]
  24912. var css = item[1]
  24913. var media = item[2]
  24914. var sourceMap = item[3]
  24915. var part = {
  24916. id: parentId + ':' + i,
  24917. css: css,
  24918. media: media,
  24919. sourceMap: sourceMap
  24920. }
  24921. if (!newStyles[id]) {
  24922. styles.push(newStyles[id] = { id: id, parts: [part] })
  24923. } else {
  24924. newStyles[id].parts.push(part)
  24925. }
  24926. }
  24927. return styles
  24928. }
  24929. /***/ }),
  24930. /***/ "./node_modules/vue-timeago/dist/vue-timeago.es.js":
  24931. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  24932. "use strict";
  24933. /* unused harmony export createTimeago */
  24934. /* unused harmony export install */
  24935. /* unused harmony export converter */
  24936. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_date_fns_distance_in_words_to_now__ = __webpack_require__("./node_modules/date-fns/distance_in_words_to_now/index.js");
  24937. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_date_fns_distance_in_words_to_now___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_date_fns_distance_in_words_to_now__);
  24938. var defaultConverter = (function (date, locale, converterOptions) {
  24939. var includeSeconds = converterOptions.includeSeconds,
  24940. _converterOptions$add = converterOptions.addSuffix,
  24941. addSuffix = _converterOptions$add === void 0 ? true : _converterOptions$add;
  24942. return __WEBPACK_IMPORTED_MODULE_0_date_fns_distance_in_words_to_now___default()(date, {
  24943. locale: locale,
  24944. includeSeconds: includeSeconds,
  24945. addSuffix: addSuffix
  24946. });
  24947. });
  24948. var createTimeago = function createTimeago() {
  24949. var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  24950. var locales = opts.locales || {};
  24951. var name = opts.name || 'Timeago';
  24952. return {
  24953. name: name,
  24954. props: {
  24955. datetime: {
  24956. required: true
  24957. },
  24958. title: {
  24959. type: [String, Boolean]
  24960. },
  24961. locale: {
  24962. type: String
  24963. },
  24964. autoUpdate: {
  24965. type: [Number, Boolean]
  24966. },
  24967. converter: {
  24968. type: Function
  24969. },
  24970. converterOptions: {
  24971. type: Object
  24972. }
  24973. },
  24974. data: function data() {
  24975. return {
  24976. timeago: this.getTimeago()
  24977. };
  24978. },
  24979. mounted: function mounted() {
  24980. this.startUpdater();
  24981. },
  24982. beforeDestroy: function beforeDestroy() {
  24983. this.stopUpdater();
  24984. },
  24985. render: function render(h) {
  24986. return h('time', {
  24987. attrs: {
  24988. datetime: new Date(this.datetime),
  24989. title: typeof this.title === 'string' ? this.title : this.title === false ? null : this.timeago
  24990. }
  24991. }, [this.timeago]);
  24992. },
  24993. methods: {
  24994. getTimeago: function getTimeago(datetime) {
  24995. var converter = this.converter || opts.converter || defaultConverter;
  24996. return converter(datetime || this.datetime, locales[this.locale || opts.locale], this.converterOptions || {});
  24997. },
  24998. convert: function convert(datetime) {
  24999. this.timeago = this.getTimeago(datetime);
  25000. },
  25001. startUpdater: function startUpdater() {
  25002. var _this = this;
  25003. if (this.autoUpdate) {
  25004. var autoUpdaye = this.autoUpdate === true ? 60 : this.autoUpdate;
  25005. this.updater = setInterval(function () {
  25006. _this.convert();
  25007. }, autoUpdaye * 1000);
  25008. }
  25009. },
  25010. stopUpdater: function stopUpdater() {
  25011. if (this.updater) {
  25012. clearInterval(this.updater);
  25013. this.updater = null;
  25014. }
  25015. }
  25016. },
  25017. watch: {
  25018. autoUpdate: function autoUpdate(newValue) {
  25019. this.stopUpdater();
  25020. if (newValue) {
  25021. this.startUpdater();
  25022. }
  25023. },
  25024. datetime: function datetime() {
  25025. this.convert();
  25026. },
  25027. locale: function locale() {
  25028. this.convert();
  25029. },
  25030. converter: function converter() {
  25031. this.convert();
  25032. },
  25033. converterOptions: {
  25034. handler: function handler() {
  25035. this.convert();
  25036. },
  25037. deep: true
  25038. }
  25039. }
  25040. };
  25041. };
  25042. var install = function install(Vue, opts) {
  25043. var Component = createTimeago(opts);
  25044. Vue.component(Component.name, Component);
  25045. };
  25046. var converter = defaultConverter;
  25047. /* harmony default export */ __webpack_exports__["a"] = (install);
  25048. /***/ }),
  25049. /***/ "./node_modules/vue/dist/vue.common.js":
  25050. /***/ (function(module, exports, __webpack_require__) {
  25051. "use strict";
  25052. /* WEBPACK VAR INJECTION */(function(global, setImmediate) {/*!
  25053. * Vue.js v2.5.21
  25054. * (c) 2014-2018 Evan You
  25055. * Released under the MIT License.
  25056. */
  25057. /* */
  25058. var emptyObject = Object.freeze({});
  25059. // These helpers produce better VM code in JS engines due to their
  25060. // explicitness and function inlining.
  25061. function isUndef (v) {
  25062. return v === undefined || v === null
  25063. }
  25064. function isDef (v) {
  25065. return v !== undefined && v !== null
  25066. }
  25067. function isTrue (v) {
  25068. return v === true
  25069. }
  25070. function isFalse (v) {
  25071. return v === false
  25072. }
  25073. /**
  25074. * Check if value is primitive.
  25075. */
  25076. function isPrimitive (value) {
  25077. return (
  25078. typeof value === 'string' ||
  25079. typeof value === 'number' ||
  25080. // $flow-disable-line
  25081. typeof value === 'symbol' ||
  25082. typeof value === 'boolean'
  25083. )
  25084. }
  25085. /**
  25086. * Quick object check - this is primarily used to tell
  25087. * Objects from primitive values when we know the value
  25088. * is a JSON-compliant type.
  25089. */
  25090. function isObject (obj) {
  25091. return obj !== null && typeof obj === 'object'
  25092. }
  25093. /**
  25094. * Get the raw type string of a value, e.g., [object Object].
  25095. */
  25096. var _toString = Object.prototype.toString;
  25097. function toRawType (value) {
  25098. return _toString.call(value).slice(8, -1)
  25099. }
  25100. /**
  25101. * Strict object type check. Only returns true
  25102. * for plain JavaScript objects.
  25103. */
  25104. function isPlainObject (obj) {
  25105. return _toString.call(obj) === '[object Object]'
  25106. }
  25107. function isRegExp (v) {
  25108. return _toString.call(v) === '[object RegExp]'
  25109. }
  25110. /**
  25111. * Check if val is a valid array index.
  25112. */
  25113. function isValidArrayIndex (val) {
  25114. var n = parseFloat(String(val));
  25115. return n >= 0 && Math.floor(n) === n && isFinite(val)
  25116. }
  25117. /**
  25118. * Convert a value to a string that is actually rendered.
  25119. */
  25120. function toString (val) {
  25121. return val == null
  25122. ? ''
  25123. : typeof val === 'object'
  25124. ? JSON.stringify(val, null, 2)
  25125. : String(val)
  25126. }
  25127. /**
  25128. * Convert an input value to a number for persistence.
  25129. * If the conversion fails, return original string.
  25130. */
  25131. function toNumber (val) {
  25132. var n = parseFloat(val);
  25133. return isNaN(n) ? val : n
  25134. }
  25135. /**
  25136. * Make a map and return a function for checking if a key
  25137. * is in that map.
  25138. */
  25139. function makeMap (
  25140. str,
  25141. expectsLowerCase
  25142. ) {
  25143. var map = Object.create(null);
  25144. var list = str.split(',');
  25145. for (var i = 0; i < list.length; i++) {
  25146. map[list[i]] = true;
  25147. }
  25148. return expectsLowerCase
  25149. ? function (val) { return map[val.toLowerCase()]; }
  25150. : function (val) { return map[val]; }
  25151. }
  25152. /**
  25153. * Check if a tag is a built-in tag.
  25154. */
  25155. var isBuiltInTag = makeMap('slot,component', true);
  25156. /**
  25157. * Check if an attribute is a reserved attribute.
  25158. */
  25159. var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
  25160. /**
  25161. * Remove an item from an array.
  25162. */
  25163. function remove (arr, item) {
  25164. if (arr.length) {
  25165. var index = arr.indexOf(item);
  25166. if (index > -1) {
  25167. return arr.splice(index, 1)
  25168. }
  25169. }
  25170. }
  25171. /**
  25172. * Check whether an object has the property.
  25173. */
  25174. var hasOwnProperty = Object.prototype.hasOwnProperty;
  25175. function hasOwn (obj, key) {
  25176. return hasOwnProperty.call(obj, key)
  25177. }
  25178. /**
  25179. * Create a cached version of a pure function.
  25180. */
  25181. function cached (fn) {
  25182. var cache = Object.create(null);
  25183. return (function cachedFn (str) {
  25184. var hit = cache[str];
  25185. return hit || (cache[str] = fn(str))
  25186. })
  25187. }
  25188. /**
  25189. * Camelize a hyphen-delimited string.
  25190. */
  25191. var camelizeRE = /-(\w)/g;
  25192. var camelize = cached(function (str) {
  25193. return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
  25194. });
  25195. /**
  25196. * Capitalize a string.
  25197. */
  25198. var capitalize = cached(function (str) {
  25199. return str.charAt(0).toUpperCase() + str.slice(1)
  25200. });
  25201. /**
  25202. * Hyphenate a camelCase string.
  25203. */
  25204. var hyphenateRE = /\B([A-Z])/g;
  25205. var hyphenate = cached(function (str) {
  25206. return str.replace(hyphenateRE, '-$1').toLowerCase()
  25207. });
  25208. /**
  25209. * Simple bind polyfill for environments that do not support it,
  25210. * e.g., PhantomJS 1.x. Technically, we don't need this anymore
  25211. * since native bind is now performant enough in most browsers.
  25212. * But removing it would mean breaking code that was able to run in
  25213. * PhantomJS 1.x, so this must be kept for backward compatibility.
  25214. */
  25215. /* istanbul ignore next */
  25216. function polyfillBind (fn, ctx) {
  25217. function boundFn (a) {
  25218. var l = arguments.length;
  25219. return l
  25220. ? l > 1
  25221. ? fn.apply(ctx, arguments)
  25222. : fn.call(ctx, a)
  25223. : fn.call(ctx)
  25224. }
  25225. boundFn._length = fn.length;
  25226. return boundFn
  25227. }
  25228. function nativeBind (fn, ctx) {
  25229. return fn.bind(ctx)
  25230. }
  25231. var bind = Function.prototype.bind
  25232. ? nativeBind
  25233. : polyfillBind;
  25234. /**
  25235. * Convert an Array-like object to a real Array.
  25236. */
  25237. function toArray (list, start) {
  25238. start = start || 0;
  25239. var i = list.length - start;
  25240. var ret = new Array(i);
  25241. while (i--) {
  25242. ret[i] = list[i + start];
  25243. }
  25244. return ret
  25245. }
  25246. /**
  25247. * Mix properties into target object.
  25248. */
  25249. function extend (to, _from) {
  25250. for (var key in _from) {
  25251. to[key] = _from[key];
  25252. }
  25253. return to
  25254. }
  25255. /**
  25256. * Merge an Array of Objects into a single Object.
  25257. */
  25258. function toObject (arr) {
  25259. var res = {};
  25260. for (var i = 0; i < arr.length; i++) {
  25261. if (arr[i]) {
  25262. extend(res, arr[i]);
  25263. }
  25264. }
  25265. return res
  25266. }
  25267. /* eslint-disable no-unused-vars */
  25268. /**
  25269. * Perform no operation.
  25270. * Stubbing args to make Flow happy without leaving useless transpiled code
  25271. * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
  25272. */
  25273. function noop (a, b, c) {}
  25274. /**
  25275. * Always return false.
  25276. */
  25277. var no = function (a, b, c) { return false; };
  25278. /* eslint-enable no-unused-vars */
  25279. /**
  25280. * Return the same value.
  25281. */
  25282. var identity = function (_) { return _; };
  25283. /**
  25284. * Generate a string containing static keys from compiler modules.
  25285. */
  25286. function genStaticKeys (modules) {
  25287. return modules.reduce(function (keys, m) {
  25288. return keys.concat(m.staticKeys || [])
  25289. }, []).join(',')
  25290. }
  25291. /**
  25292. * Check if two values are loosely equal - that is,
  25293. * if they are plain objects, do they have the same shape?
  25294. */
  25295. function looseEqual (a, b) {
  25296. if (a === b) { return true }
  25297. var isObjectA = isObject(a);
  25298. var isObjectB = isObject(b);
  25299. if (isObjectA && isObjectB) {
  25300. try {
  25301. var isArrayA = Array.isArray(a);
  25302. var isArrayB = Array.isArray(b);
  25303. if (isArrayA && isArrayB) {
  25304. return a.length === b.length && a.every(function (e, i) {
  25305. return looseEqual(e, b[i])
  25306. })
  25307. } else if (a instanceof Date && b instanceof Date) {
  25308. return a.getTime() === b.getTime()
  25309. } else if (!isArrayA && !isArrayB) {
  25310. var keysA = Object.keys(a);
  25311. var keysB = Object.keys(b);
  25312. return keysA.length === keysB.length && keysA.every(function (key) {
  25313. return looseEqual(a[key], b[key])
  25314. })
  25315. } else {
  25316. /* istanbul ignore next */
  25317. return false
  25318. }
  25319. } catch (e) {
  25320. /* istanbul ignore next */
  25321. return false
  25322. }
  25323. } else if (!isObjectA && !isObjectB) {
  25324. return String(a) === String(b)
  25325. } else {
  25326. return false
  25327. }
  25328. }
  25329. /**
  25330. * Return the first index at which a loosely equal value can be
  25331. * found in the array (if value is a plain object, the array must
  25332. * contain an object of the same shape), or -1 if it is not present.
  25333. */
  25334. function looseIndexOf (arr, val) {
  25335. for (var i = 0; i < arr.length; i++) {
  25336. if (looseEqual(arr[i], val)) { return i }
  25337. }
  25338. return -1
  25339. }
  25340. /**
  25341. * Ensure a function is called only once.
  25342. */
  25343. function once (fn) {
  25344. var called = false;
  25345. return function () {
  25346. if (!called) {
  25347. called = true;
  25348. fn.apply(this, arguments);
  25349. }
  25350. }
  25351. }
  25352. var SSR_ATTR = 'data-server-rendered';
  25353. var ASSET_TYPES = [
  25354. 'component',
  25355. 'directive',
  25356. 'filter'
  25357. ];
  25358. var LIFECYCLE_HOOKS = [
  25359. 'beforeCreate',
  25360. 'created',
  25361. 'beforeMount',
  25362. 'mounted',
  25363. 'beforeUpdate',
  25364. 'updated',
  25365. 'beforeDestroy',
  25366. 'destroyed',
  25367. 'activated',
  25368. 'deactivated',
  25369. 'errorCaptured'
  25370. ];
  25371. /* */
  25372. var config = ({
  25373. /**
  25374. * Option merge strategies (used in core/util/options)
  25375. */
  25376. // $flow-disable-line
  25377. optionMergeStrategies: Object.create(null),
  25378. /**
  25379. * Whether to suppress warnings.
  25380. */
  25381. silent: false,
  25382. /**
  25383. * Show production mode tip message on boot?
  25384. */
  25385. productionTip: "development" !== 'production',
  25386. /**
  25387. * Whether to enable devtools
  25388. */
  25389. devtools: "development" !== 'production',
  25390. /**
  25391. * Whether to record perf
  25392. */
  25393. performance: false,
  25394. /**
  25395. * Error handler for watcher errors
  25396. */
  25397. errorHandler: null,
  25398. /**
  25399. * Warn handler for watcher warns
  25400. */
  25401. warnHandler: null,
  25402. /**
  25403. * Ignore certain custom elements
  25404. */
  25405. ignoredElements: [],
  25406. /**
  25407. * Custom user key aliases for v-on
  25408. */
  25409. // $flow-disable-line
  25410. keyCodes: Object.create(null),
  25411. /**
  25412. * Check if a tag is reserved so that it cannot be registered as a
  25413. * component. This is platform-dependent and may be overwritten.
  25414. */
  25415. isReservedTag: no,
  25416. /**
  25417. * Check if an attribute is reserved so that it cannot be used as a component
  25418. * prop. This is platform-dependent and may be overwritten.
  25419. */
  25420. isReservedAttr: no,
  25421. /**
  25422. * Check if a tag is an unknown element.
  25423. * Platform-dependent.
  25424. */
  25425. isUnknownElement: no,
  25426. /**
  25427. * Get the namespace of an element
  25428. */
  25429. getTagNamespace: noop,
  25430. /**
  25431. * Parse the real tag name for the specific platform.
  25432. */
  25433. parsePlatformTagName: identity,
  25434. /**
  25435. * Check if an attribute must be bound using property, e.g. value
  25436. * Platform-dependent.
  25437. */
  25438. mustUseProp: no,
  25439. /**
  25440. * Perform updates asynchronously. Intended to be used by Vue Test Utils
  25441. * This will significantly reduce performance if set to false.
  25442. */
  25443. async: true,
  25444. /**
  25445. * Exposed for legacy reasons
  25446. */
  25447. _lifecycleHooks: LIFECYCLE_HOOKS
  25448. });
  25449. /* */
  25450. /**
  25451. * Check if a string starts with $ or _
  25452. */
  25453. function isReserved (str) {
  25454. var c = (str + '').charCodeAt(0);
  25455. return c === 0x24 || c === 0x5F
  25456. }
  25457. /**
  25458. * Define a property.
  25459. */
  25460. function def (obj, key, val, enumerable) {
  25461. Object.defineProperty(obj, key, {
  25462. value: val,
  25463. enumerable: !!enumerable,
  25464. writable: true,
  25465. configurable: true
  25466. });
  25467. }
  25468. /**
  25469. * Parse simple path.
  25470. */
  25471. var bailRE = /[^\w.$]/;
  25472. function parsePath (path) {
  25473. if (bailRE.test(path)) {
  25474. return
  25475. }
  25476. var segments = path.split('.');
  25477. return function (obj) {
  25478. for (var i = 0; i < segments.length; i++) {
  25479. if (!obj) { return }
  25480. obj = obj[segments[i]];
  25481. }
  25482. return obj
  25483. }
  25484. }
  25485. /* */
  25486. // can we use __proto__?
  25487. var hasProto = '__proto__' in {};
  25488. // Browser environment sniffing
  25489. var inBrowser = typeof window !== 'undefined';
  25490. var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
  25491. var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
  25492. var UA = inBrowser && window.navigator.userAgent.toLowerCase();
  25493. var isIE = UA && /msie|trident/.test(UA);
  25494. var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
  25495. var isEdge = UA && UA.indexOf('edge/') > 0;
  25496. var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
  25497. var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
  25498. var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
  25499. // Firefox has a "watch" function on Object.prototype...
  25500. var nativeWatch = ({}).watch;
  25501. var supportsPassive = false;
  25502. if (inBrowser) {
  25503. try {
  25504. var opts = {};
  25505. Object.defineProperty(opts, 'passive', ({
  25506. get: function get () {
  25507. /* istanbul ignore next */
  25508. supportsPassive = true;
  25509. }
  25510. })); // https://github.com/facebook/flow/issues/285
  25511. window.addEventListener('test-passive', null, opts);
  25512. } catch (e) {}
  25513. }
  25514. // this needs to be lazy-evaled because vue may be required before
  25515. // vue-server-renderer can set VUE_ENV
  25516. var _isServer;
  25517. var isServerRendering = function () {
  25518. if (_isServer === undefined) {
  25519. /* istanbul ignore if */
  25520. if (!inBrowser && !inWeex && typeof global !== 'undefined') {
  25521. // detect presence of vue-server-renderer and avoid
  25522. // Webpack shimming the process
  25523. _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';
  25524. } else {
  25525. _isServer = false;
  25526. }
  25527. }
  25528. return _isServer
  25529. };
  25530. // detect devtools
  25531. var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
  25532. /* istanbul ignore next */
  25533. function isNative (Ctor) {
  25534. return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
  25535. }
  25536. var hasSymbol =
  25537. typeof Symbol !== 'undefined' && isNative(Symbol) &&
  25538. typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
  25539. var _Set;
  25540. /* istanbul ignore if */ // $flow-disable-line
  25541. if (typeof Set !== 'undefined' && isNative(Set)) {
  25542. // use native Set when available.
  25543. _Set = Set;
  25544. } else {
  25545. // a non-standard Set polyfill that only works with primitive keys.
  25546. _Set = /*@__PURE__*/(function () {
  25547. function Set () {
  25548. this.set = Object.create(null);
  25549. }
  25550. Set.prototype.has = function has (key) {
  25551. return this.set[key] === true
  25552. };
  25553. Set.prototype.add = function add (key) {
  25554. this.set[key] = true;
  25555. };
  25556. Set.prototype.clear = function clear () {
  25557. this.set = Object.create(null);
  25558. };
  25559. return Set;
  25560. }());
  25561. }
  25562. /* */
  25563. var warn = noop;
  25564. var tip = noop;
  25565. var generateComponentTrace = (noop); // work around flow check
  25566. var formatComponentName = (noop);
  25567. if (true) {
  25568. var hasConsole = typeof console !== 'undefined';
  25569. var classifyRE = /(?:^|[-_])(\w)/g;
  25570. var classify = function (str) { return str
  25571. .replace(classifyRE, function (c) { return c.toUpperCase(); })
  25572. .replace(/[-_]/g, ''); };
  25573. warn = function (msg, vm) {
  25574. var trace = vm ? generateComponentTrace(vm) : '';
  25575. if (config.warnHandler) {
  25576. config.warnHandler.call(null, msg, vm, trace);
  25577. } else if (hasConsole && (!config.silent)) {
  25578. console.error(("[Vue warn]: " + msg + trace));
  25579. }
  25580. };
  25581. tip = function (msg, vm) {
  25582. if (hasConsole && (!config.silent)) {
  25583. console.warn("[Vue tip]: " + msg + (
  25584. vm ? generateComponentTrace(vm) : ''
  25585. ));
  25586. }
  25587. };
  25588. formatComponentName = function (vm, includeFile) {
  25589. if (vm.$root === vm) {
  25590. return '<Root>'
  25591. }
  25592. var options = typeof vm === 'function' && vm.cid != null
  25593. ? vm.options
  25594. : vm._isVue
  25595. ? vm.$options || vm.constructor.options
  25596. : vm || {};
  25597. var name = options.name || options._componentTag;
  25598. var file = options.__file;
  25599. if (!name && file) {
  25600. var match = file.match(/([^/\\]+)\.vue$/);
  25601. name = match && match[1];
  25602. }
  25603. return (
  25604. (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
  25605. (file && includeFile !== false ? (" at " + file) : '')
  25606. )
  25607. };
  25608. var repeat = function (str, n) {
  25609. var res = '';
  25610. while (n) {
  25611. if (n % 2 === 1) { res += str; }
  25612. if (n > 1) { str += str; }
  25613. n >>= 1;
  25614. }
  25615. return res
  25616. };
  25617. generateComponentTrace = function (vm) {
  25618. if (vm._isVue && vm.$parent) {
  25619. var tree = [];
  25620. var currentRecursiveSequence = 0;
  25621. while (vm) {
  25622. if (tree.length > 0) {
  25623. var last = tree[tree.length - 1];
  25624. if (last.constructor === vm.constructor) {
  25625. currentRecursiveSequence++;
  25626. vm = vm.$parent;
  25627. continue
  25628. } else if (currentRecursiveSequence > 0) {
  25629. tree[tree.length - 1] = [last, currentRecursiveSequence];
  25630. currentRecursiveSequence = 0;
  25631. }
  25632. }
  25633. tree.push(vm);
  25634. vm = vm.$parent;
  25635. }
  25636. return '\n\nfound in\n\n' + tree
  25637. .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
  25638. ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
  25639. : formatComponentName(vm))); })
  25640. .join('\n')
  25641. } else {
  25642. return ("\n\n(found in " + (formatComponentName(vm)) + ")")
  25643. }
  25644. };
  25645. }
  25646. /* */
  25647. var uid = 0;
  25648. /**
  25649. * A dep is an observable that can have multiple
  25650. * directives subscribing to it.
  25651. */
  25652. var Dep = function Dep () {
  25653. this.id = uid++;
  25654. this.subs = [];
  25655. };
  25656. Dep.prototype.addSub = function addSub (sub) {
  25657. this.subs.push(sub);
  25658. };
  25659. Dep.prototype.removeSub = function removeSub (sub) {
  25660. remove(this.subs, sub);
  25661. };
  25662. Dep.prototype.depend = function depend () {
  25663. if (Dep.target) {
  25664. Dep.target.addDep(this);
  25665. }
  25666. };
  25667. Dep.prototype.notify = function notify () {
  25668. // stabilize the subscriber list first
  25669. var subs = this.subs.slice();
  25670. if ("development" !== 'production' && !config.async) {
  25671. // subs aren't sorted in scheduler if not running async
  25672. // we need to sort them now to make sure they fire in correct
  25673. // order
  25674. subs.sort(function (a, b) { return a.id - b.id; });
  25675. }
  25676. for (var i = 0, l = subs.length; i < l; i++) {
  25677. subs[i].update();
  25678. }
  25679. };
  25680. // the current target watcher being evaluated.
  25681. // this is globally unique because there could be only one
  25682. // watcher being evaluated at any time.
  25683. Dep.target = null;
  25684. var targetStack = [];
  25685. function pushTarget (target) {
  25686. targetStack.push(target);
  25687. Dep.target = target;
  25688. }
  25689. function popTarget () {
  25690. targetStack.pop();
  25691. Dep.target = targetStack[targetStack.length - 1];
  25692. }
  25693. /* */
  25694. var VNode = function VNode (
  25695. tag,
  25696. data,
  25697. children,
  25698. text,
  25699. elm,
  25700. context,
  25701. componentOptions,
  25702. asyncFactory
  25703. ) {
  25704. this.tag = tag;
  25705. this.data = data;
  25706. this.children = children;
  25707. this.text = text;
  25708. this.elm = elm;
  25709. this.ns = undefined;
  25710. this.context = context;
  25711. this.fnContext = undefined;
  25712. this.fnOptions = undefined;
  25713. this.fnScopeId = undefined;
  25714. this.key = data && data.key;
  25715. this.componentOptions = componentOptions;
  25716. this.componentInstance = undefined;
  25717. this.parent = undefined;
  25718. this.raw = false;
  25719. this.isStatic = false;
  25720. this.isRootInsert = true;
  25721. this.isComment = false;
  25722. this.isCloned = false;
  25723. this.isOnce = false;
  25724. this.asyncFactory = asyncFactory;
  25725. this.asyncMeta = undefined;
  25726. this.isAsyncPlaceholder = false;
  25727. };
  25728. var prototypeAccessors = { child: { configurable: true } };
  25729. // DEPRECATED: alias for componentInstance for backwards compat.
  25730. /* istanbul ignore next */
  25731. prototypeAccessors.child.get = function () {
  25732. return this.componentInstance
  25733. };
  25734. Object.defineProperties( VNode.prototype, prototypeAccessors );
  25735. var createEmptyVNode = function (text) {
  25736. if ( text === void 0 ) text = '';
  25737. var node = new VNode();
  25738. node.text = text;
  25739. node.isComment = true;
  25740. return node
  25741. };
  25742. function createTextVNode (val) {
  25743. return new VNode(undefined, undefined, undefined, String(val))
  25744. }
  25745. // optimized shallow clone
  25746. // used for static nodes and slot nodes because they may be reused across
  25747. // multiple renders, cloning them avoids errors when DOM manipulations rely
  25748. // on their elm reference.
  25749. function cloneVNode (vnode) {
  25750. var cloned = new VNode(
  25751. vnode.tag,
  25752. vnode.data,
  25753. // #7975
  25754. // clone children array to avoid mutating original in case of cloning
  25755. // a child.
  25756. vnode.children && vnode.children.slice(),
  25757. vnode.text,
  25758. vnode.elm,
  25759. vnode.context,
  25760. vnode.componentOptions,
  25761. vnode.asyncFactory
  25762. );
  25763. cloned.ns = vnode.ns;
  25764. cloned.isStatic = vnode.isStatic;
  25765. cloned.key = vnode.key;
  25766. cloned.isComment = vnode.isComment;
  25767. cloned.fnContext = vnode.fnContext;
  25768. cloned.fnOptions = vnode.fnOptions;
  25769. cloned.fnScopeId = vnode.fnScopeId;
  25770. cloned.asyncMeta = vnode.asyncMeta;
  25771. cloned.isCloned = true;
  25772. return cloned
  25773. }
  25774. /*
  25775. * not type checking this file because flow doesn't play well with
  25776. * dynamically accessing methods on Array prototype
  25777. */
  25778. var arrayProto = Array.prototype;
  25779. var arrayMethods = Object.create(arrayProto);
  25780. var methodsToPatch = [
  25781. 'push',
  25782. 'pop',
  25783. 'shift',
  25784. 'unshift',
  25785. 'splice',
  25786. 'sort',
  25787. 'reverse'
  25788. ];
  25789. /**
  25790. * Intercept mutating methods and emit events
  25791. */
  25792. methodsToPatch.forEach(function (method) {
  25793. // cache original method
  25794. var original = arrayProto[method];
  25795. def(arrayMethods, method, function mutator () {
  25796. var args = [], len = arguments.length;
  25797. while ( len-- ) args[ len ] = arguments[ len ];
  25798. var result = original.apply(this, args);
  25799. var ob = this.__ob__;
  25800. var inserted;
  25801. switch (method) {
  25802. case 'push':
  25803. case 'unshift':
  25804. inserted = args;
  25805. break
  25806. case 'splice':
  25807. inserted = args.slice(2);
  25808. break
  25809. }
  25810. if (inserted) { ob.observeArray(inserted); }
  25811. // notify change
  25812. ob.dep.notify();
  25813. return result
  25814. });
  25815. });
  25816. /* */
  25817. var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
  25818. /**
  25819. * In some cases we may want to disable observation inside a component's
  25820. * update computation.
  25821. */
  25822. var shouldObserve = true;
  25823. function toggleObserving (value) {
  25824. shouldObserve = value;
  25825. }
  25826. /**
  25827. * Observer class that is attached to each observed
  25828. * object. Once attached, the observer converts the target
  25829. * object's property keys into getter/setters that
  25830. * collect dependencies and dispatch updates.
  25831. */
  25832. var Observer = function Observer (value) {
  25833. this.value = value;
  25834. this.dep = new Dep();
  25835. this.vmCount = 0;
  25836. def(value, '__ob__', this);
  25837. if (Array.isArray(value)) {
  25838. if (hasProto) {
  25839. protoAugment(value, arrayMethods);
  25840. } else {
  25841. copyAugment(value, arrayMethods, arrayKeys);
  25842. }
  25843. this.observeArray(value);
  25844. } else {
  25845. this.walk(value);
  25846. }
  25847. };
  25848. /**
  25849. * Walk through all properties and convert them into
  25850. * getter/setters. This method should only be called when
  25851. * value type is Object.
  25852. */
  25853. Observer.prototype.walk = function walk (obj) {
  25854. var keys = Object.keys(obj);
  25855. for (var i = 0; i < keys.length; i++) {
  25856. defineReactive$$1(obj, keys[i]);
  25857. }
  25858. };
  25859. /**
  25860. * Observe a list of Array items.
  25861. */
  25862. Observer.prototype.observeArray = function observeArray (items) {
  25863. for (var i = 0, l = items.length; i < l; i++) {
  25864. observe(items[i]);
  25865. }
  25866. };
  25867. // helpers
  25868. /**
  25869. * Augment a target Object or Array by intercepting
  25870. * the prototype chain using __proto__
  25871. */
  25872. function protoAugment (target, src) {
  25873. /* eslint-disable no-proto */
  25874. target.__proto__ = src;
  25875. /* eslint-enable no-proto */
  25876. }
  25877. /**
  25878. * Augment a target Object or Array by defining
  25879. * hidden properties.
  25880. */
  25881. /* istanbul ignore next */
  25882. function copyAugment (target, src, keys) {
  25883. for (var i = 0, l = keys.length; i < l; i++) {
  25884. var key = keys[i];
  25885. def(target, key, src[key]);
  25886. }
  25887. }
  25888. /**
  25889. * Attempt to create an observer instance for a value,
  25890. * returns the new observer if successfully observed,
  25891. * or the existing observer if the value already has one.
  25892. */
  25893. function observe (value, asRootData) {
  25894. if (!isObject(value) || value instanceof VNode) {
  25895. return
  25896. }
  25897. var ob;
  25898. if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
  25899. ob = value.__ob__;
  25900. } else if (
  25901. shouldObserve &&
  25902. !isServerRendering() &&
  25903. (Array.isArray(value) || isPlainObject(value)) &&
  25904. Object.isExtensible(value) &&
  25905. !value._isVue
  25906. ) {
  25907. ob = new Observer(value);
  25908. }
  25909. if (asRootData && ob) {
  25910. ob.vmCount++;
  25911. }
  25912. return ob
  25913. }
  25914. /**
  25915. * Define a reactive property on an Object.
  25916. */
  25917. function defineReactive$$1 (
  25918. obj,
  25919. key,
  25920. val,
  25921. customSetter,
  25922. shallow
  25923. ) {
  25924. var dep = new Dep();
  25925. var property = Object.getOwnPropertyDescriptor(obj, key);
  25926. if (property && property.configurable === false) {
  25927. return
  25928. }
  25929. // cater for pre-defined getter/setters
  25930. var getter = property && property.get;
  25931. var setter = property && property.set;
  25932. if ((!getter || setter) && arguments.length === 2) {
  25933. val = obj[key];
  25934. }
  25935. var childOb = !shallow && observe(val);
  25936. Object.defineProperty(obj, key, {
  25937. enumerable: true,
  25938. configurable: true,
  25939. get: function reactiveGetter () {
  25940. var value = getter ? getter.call(obj) : val;
  25941. if (Dep.target) {
  25942. dep.depend();
  25943. if (childOb) {
  25944. childOb.dep.depend();
  25945. if (Array.isArray(value)) {
  25946. dependArray(value);
  25947. }
  25948. }
  25949. }
  25950. return value
  25951. },
  25952. set: function reactiveSetter (newVal) {
  25953. var value = getter ? getter.call(obj) : val;
  25954. /* eslint-disable no-self-compare */
  25955. if (newVal === value || (newVal !== newVal && value !== value)) {
  25956. return
  25957. }
  25958. /* eslint-enable no-self-compare */
  25959. if ("development" !== 'production' && customSetter) {
  25960. customSetter();
  25961. }
  25962. // #7981: for accessor properties without setter
  25963. if (getter && !setter) { return }
  25964. if (setter) {
  25965. setter.call(obj, newVal);
  25966. } else {
  25967. val = newVal;
  25968. }
  25969. childOb = !shallow && observe(newVal);
  25970. dep.notify();
  25971. }
  25972. });
  25973. }
  25974. /**
  25975. * Set a property on an object. Adds the new property and
  25976. * triggers change notification if the property doesn't
  25977. * already exist.
  25978. */
  25979. function set (target, key, val) {
  25980. if ("development" !== 'production' &&
  25981. (isUndef(target) || isPrimitive(target))
  25982. ) {
  25983. warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
  25984. }
  25985. if (Array.isArray(target) && isValidArrayIndex(key)) {
  25986. target.length = Math.max(target.length, key);
  25987. target.splice(key, 1, val);
  25988. return val
  25989. }
  25990. if (key in target && !(key in Object.prototype)) {
  25991. target[key] = val;
  25992. return val
  25993. }
  25994. var ob = (target).__ob__;
  25995. if (target._isVue || (ob && ob.vmCount)) {
  25996. "development" !== 'production' && warn(
  25997. 'Avoid adding reactive properties to a Vue instance or its root $data ' +
  25998. 'at runtime - declare it upfront in the data option.'
  25999. );
  26000. return val
  26001. }
  26002. if (!ob) {
  26003. target[key] = val;
  26004. return val
  26005. }
  26006. defineReactive$$1(ob.value, key, val);
  26007. ob.dep.notify();
  26008. return val
  26009. }
  26010. /**
  26011. * Delete a property and trigger change if necessary.
  26012. */
  26013. function del (target, key) {
  26014. if ("development" !== 'production' &&
  26015. (isUndef(target) || isPrimitive(target))
  26016. ) {
  26017. warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
  26018. }
  26019. if (Array.isArray(target) && isValidArrayIndex(key)) {
  26020. target.splice(key, 1);
  26021. return
  26022. }
  26023. var ob = (target).__ob__;
  26024. if (target._isVue || (ob && ob.vmCount)) {
  26025. "development" !== 'production' && warn(
  26026. 'Avoid deleting properties on a Vue instance or its root $data ' +
  26027. '- just set it to null.'
  26028. );
  26029. return
  26030. }
  26031. if (!hasOwn(target, key)) {
  26032. return
  26033. }
  26034. delete target[key];
  26035. if (!ob) {
  26036. return
  26037. }
  26038. ob.dep.notify();
  26039. }
  26040. /**
  26041. * Collect dependencies on array elements when the array is touched, since
  26042. * we cannot intercept array element access like property getters.
  26043. */
  26044. function dependArray (value) {
  26045. for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
  26046. e = value[i];
  26047. e && e.__ob__ && e.__ob__.dep.depend();
  26048. if (Array.isArray(e)) {
  26049. dependArray(e);
  26050. }
  26051. }
  26052. }
  26053. /* */
  26054. /**
  26055. * Option overwriting strategies are functions that handle
  26056. * how to merge a parent option value and a child option
  26057. * value into the final value.
  26058. */
  26059. var strats = config.optionMergeStrategies;
  26060. /**
  26061. * Options with restrictions
  26062. */
  26063. if (true) {
  26064. strats.el = strats.propsData = function (parent, child, vm, key) {
  26065. if (!vm) {
  26066. warn(
  26067. "option \"" + key + "\" can only be used during instance " +
  26068. 'creation with the `new` keyword.'
  26069. );
  26070. }
  26071. return defaultStrat(parent, child)
  26072. };
  26073. }
  26074. /**
  26075. * Helper that recursively merges two data objects together.
  26076. */
  26077. function mergeData (to, from) {
  26078. if (!from) { return to }
  26079. var key, toVal, fromVal;
  26080. var keys = Object.keys(from);
  26081. for (var i = 0; i < keys.length; i++) {
  26082. key = keys[i];
  26083. toVal = to[key];
  26084. fromVal = from[key];
  26085. if (!hasOwn(to, key)) {
  26086. set(to, key, fromVal);
  26087. } else if (
  26088. toVal !== fromVal &&
  26089. isPlainObject(toVal) &&
  26090. isPlainObject(fromVal)
  26091. ) {
  26092. mergeData(toVal, fromVal);
  26093. }
  26094. }
  26095. return to
  26096. }
  26097. /**
  26098. * Data
  26099. */
  26100. function mergeDataOrFn (
  26101. parentVal,
  26102. childVal,
  26103. vm
  26104. ) {
  26105. if (!vm) {
  26106. // in a Vue.extend merge, both should be functions
  26107. if (!childVal) {
  26108. return parentVal
  26109. }
  26110. if (!parentVal) {
  26111. return childVal
  26112. }
  26113. // when parentVal & childVal are both present,
  26114. // we need to return a function that returns the
  26115. // merged result of both functions... no need to
  26116. // check if parentVal is a function here because
  26117. // it has to be a function to pass previous merges.
  26118. return function mergedDataFn () {
  26119. return mergeData(
  26120. typeof childVal === 'function' ? childVal.call(this, this) : childVal,
  26121. typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
  26122. )
  26123. }
  26124. } else {
  26125. return function mergedInstanceDataFn () {
  26126. // instance merge
  26127. var instanceData = typeof childVal === 'function'
  26128. ? childVal.call(vm, vm)
  26129. : childVal;
  26130. var defaultData = typeof parentVal === 'function'
  26131. ? parentVal.call(vm, vm)
  26132. : parentVal;
  26133. if (instanceData) {
  26134. return mergeData(instanceData, defaultData)
  26135. } else {
  26136. return defaultData
  26137. }
  26138. }
  26139. }
  26140. }
  26141. strats.data = function (
  26142. parentVal,
  26143. childVal,
  26144. vm
  26145. ) {
  26146. if (!vm) {
  26147. if (childVal && typeof childVal !== 'function') {
  26148. "development" !== 'production' && warn(
  26149. 'The "data" option should be a function ' +
  26150. 'that returns a per-instance value in component ' +
  26151. 'definitions.',
  26152. vm
  26153. );
  26154. return parentVal
  26155. }
  26156. return mergeDataOrFn(parentVal, childVal)
  26157. }
  26158. return mergeDataOrFn(parentVal, childVal, vm)
  26159. };
  26160. /**
  26161. * Hooks and props are merged as arrays.
  26162. */
  26163. function mergeHook (
  26164. parentVal,
  26165. childVal
  26166. ) {
  26167. return childVal
  26168. ? parentVal
  26169. ? parentVal.concat(childVal)
  26170. : Array.isArray(childVal)
  26171. ? childVal
  26172. : [childVal]
  26173. : parentVal
  26174. }
  26175. LIFECYCLE_HOOKS.forEach(function (hook) {
  26176. strats[hook] = mergeHook;
  26177. });
  26178. /**
  26179. * Assets
  26180. *
  26181. * When a vm is present (instance creation), we need to do
  26182. * a three-way merge between constructor options, instance
  26183. * options and parent options.
  26184. */
  26185. function mergeAssets (
  26186. parentVal,
  26187. childVal,
  26188. vm,
  26189. key
  26190. ) {
  26191. var res = Object.create(parentVal || null);
  26192. if (childVal) {
  26193. "development" !== 'production' && assertObjectType(key, childVal, vm);
  26194. return extend(res, childVal)
  26195. } else {
  26196. return res
  26197. }
  26198. }
  26199. ASSET_TYPES.forEach(function (type) {
  26200. strats[type + 's'] = mergeAssets;
  26201. });
  26202. /**
  26203. * Watchers.
  26204. *
  26205. * Watchers hashes should not overwrite one
  26206. * another, so we merge them as arrays.
  26207. */
  26208. strats.watch = function (
  26209. parentVal,
  26210. childVal,
  26211. vm,
  26212. key
  26213. ) {
  26214. // work around Firefox's Object.prototype.watch...
  26215. if (parentVal === nativeWatch) { parentVal = undefined; }
  26216. if (childVal === nativeWatch) { childVal = undefined; }
  26217. /* istanbul ignore if */
  26218. if (!childVal) { return Object.create(parentVal || null) }
  26219. if (true) {
  26220. assertObjectType(key, childVal, vm);
  26221. }
  26222. if (!parentVal) { return childVal }
  26223. var ret = {};
  26224. extend(ret, parentVal);
  26225. for (var key$1 in childVal) {
  26226. var parent = ret[key$1];
  26227. var child = childVal[key$1];
  26228. if (parent && !Array.isArray(parent)) {
  26229. parent = [parent];
  26230. }
  26231. ret[key$1] = parent
  26232. ? parent.concat(child)
  26233. : Array.isArray(child) ? child : [child];
  26234. }
  26235. return ret
  26236. };
  26237. /**
  26238. * Other object hashes.
  26239. */
  26240. strats.props =
  26241. strats.methods =
  26242. strats.inject =
  26243. strats.computed = function (
  26244. parentVal,
  26245. childVal,
  26246. vm,
  26247. key
  26248. ) {
  26249. if (childVal && "development" !== 'production') {
  26250. assertObjectType(key, childVal, vm);
  26251. }
  26252. if (!parentVal) { return childVal }
  26253. var ret = Object.create(null);
  26254. extend(ret, parentVal);
  26255. if (childVal) { extend(ret, childVal); }
  26256. return ret
  26257. };
  26258. strats.provide = mergeDataOrFn;
  26259. /**
  26260. * Default strategy.
  26261. */
  26262. var defaultStrat = function (parentVal, childVal) {
  26263. return childVal === undefined
  26264. ? parentVal
  26265. : childVal
  26266. };
  26267. /**
  26268. * Validate component names
  26269. */
  26270. function checkComponents (options) {
  26271. for (var key in options.components) {
  26272. validateComponentName(key);
  26273. }
  26274. }
  26275. function validateComponentName (name) {
  26276. if (!/^[a-zA-Z][\w-]*$/.test(name)) {
  26277. warn(
  26278. 'Invalid component name: "' + name + '". Component names ' +
  26279. 'can only contain alphanumeric characters and the hyphen, ' +
  26280. 'and must start with a letter.'
  26281. );
  26282. }
  26283. if (isBuiltInTag(name) || config.isReservedTag(name)) {
  26284. warn(
  26285. 'Do not use built-in or reserved HTML elements as component ' +
  26286. 'id: ' + name
  26287. );
  26288. }
  26289. }
  26290. /**
  26291. * Ensure all props option syntax are normalized into the
  26292. * Object-based format.
  26293. */
  26294. function normalizeProps (options, vm) {
  26295. var props = options.props;
  26296. if (!props) { return }
  26297. var res = {};
  26298. var i, val, name;
  26299. if (Array.isArray(props)) {
  26300. i = props.length;
  26301. while (i--) {
  26302. val = props[i];
  26303. if (typeof val === 'string') {
  26304. name = camelize(val);
  26305. res[name] = { type: null };
  26306. } else if (true) {
  26307. warn('props must be strings when using array syntax.');
  26308. }
  26309. }
  26310. } else if (isPlainObject(props)) {
  26311. for (var key in props) {
  26312. val = props[key];
  26313. name = camelize(key);
  26314. res[name] = isPlainObject(val)
  26315. ? val
  26316. : { type: val };
  26317. }
  26318. } else if (true) {
  26319. warn(
  26320. "Invalid value for option \"props\": expected an Array or an Object, " +
  26321. "but got " + (toRawType(props)) + ".",
  26322. vm
  26323. );
  26324. }
  26325. options.props = res;
  26326. }
  26327. /**
  26328. * Normalize all injections into Object-based format
  26329. */
  26330. function normalizeInject (options, vm) {
  26331. var inject = options.inject;
  26332. if (!inject) { return }
  26333. var normalized = options.inject = {};
  26334. if (Array.isArray(inject)) {
  26335. for (var i = 0; i < inject.length; i++) {
  26336. normalized[inject[i]] = { from: inject[i] };
  26337. }
  26338. } else if (isPlainObject(inject)) {
  26339. for (var key in inject) {
  26340. var val = inject[key];
  26341. normalized[key] = isPlainObject(val)
  26342. ? extend({ from: key }, val)
  26343. : { from: val };
  26344. }
  26345. } else if (true) {
  26346. warn(
  26347. "Invalid value for option \"inject\": expected an Array or an Object, " +
  26348. "but got " + (toRawType(inject)) + ".",
  26349. vm
  26350. );
  26351. }
  26352. }
  26353. /**
  26354. * Normalize raw function directives into object format.
  26355. */
  26356. function normalizeDirectives (options) {
  26357. var dirs = options.directives;
  26358. if (dirs) {
  26359. for (var key in dirs) {
  26360. var def = dirs[key];
  26361. if (typeof def === 'function') {
  26362. dirs[key] = { bind: def, update: def };
  26363. }
  26364. }
  26365. }
  26366. }
  26367. function assertObjectType (name, value, vm) {
  26368. if (!isPlainObject(value)) {
  26369. warn(
  26370. "Invalid value for option \"" + name + "\": expected an Object, " +
  26371. "but got " + (toRawType(value)) + ".",
  26372. vm
  26373. );
  26374. }
  26375. }
  26376. /**
  26377. * Merge two option objects into a new one.
  26378. * Core utility used in both instantiation and inheritance.
  26379. */
  26380. function mergeOptions (
  26381. parent,
  26382. child,
  26383. vm
  26384. ) {
  26385. if (true) {
  26386. checkComponents(child);
  26387. }
  26388. if (typeof child === 'function') {
  26389. child = child.options;
  26390. }
  26391. normalizeProps(child, vm);
  26392. normalizeInject(child, vm);
  26393. normalizeDirectives(child);
  26394. // Apply extends and mixins on the child options,
  26395. // but only if it is a raw options object that isn't
  26396. // the result of another mergeOptions call.
  26397. // Only merged options has the _base property.
  26398. if (!child._base) {
  26399. if (child.extends) {
  26400. parent = mergeOptions(parent, child.extends, vm);
  26401. }
  26402. if (child.mixins) {
  26403. for (var i = 0, l = child.mixins.length; i < l; i++) {
  26404. parent = mergeOptions(parent, child.mixins[i], vm);
  26405. }
  26406. }
  26407. }
  26408. var options = {};
  26409. var key;
  26410. for (key in parent) {
  26411. mergeField(key);
  26412. }
  26413. for (key in child) {
  26414. if (!hasOwn(parent, key)) {
  26415. mergeField(key);
  26416. }
  26417. }
  26418. function mergeField (key) {
  26419. var strat = strats[key] || defaultStrat;
  26420. options[key] = strat(parent[key], child[key], vm, key);
  26421. }
  26422. return options
  26423. }
  26424. /**
  26425. * Resolve an asset.
  26426. * This function is used because child instances need access
  26427. * to assets defined in its ancestor chain.
  26428. */
  26429. function resolveAsset (
  26430. options,
  26431. type,
  26432. id,
  26433. warnMissing
  26434. ) {
  26435. /* istanbul ignore if */
  26436. if (typeof id !== 'string') {
  26437. return
  26438. }
  26439. var assets = options[type];
  26440. // check local registration variations first
  26441. if (hasOwn(assets, id)) { return assets[id] }
  26442. var camelizedId = camelize(id);
  26443. if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
  26444. var PascalCaseId = capitalize(camelizedId);
  26445. if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
  26446. // fallback to prototype chain
  26447. var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
  26448. if ("development" !== 'production' && warnMissing && !res) {
  26449. warn(
  26450. 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
  26451. options
  26452. );
  26453. }
  26454. return res
  26455. }
  26456. /* */
  26457. function validateProp (
  26458. key,
  26459. propOptions,
  26460. propsData,
  26461. vm
  26462. ) {
  26463. var prop = propOptions[key];
  26464. var absent = !hasOwn(propsData, key);
  26465. var value = propsData[key];
  26466. // boolean casting
  26467. var booleanIndex = getTypeIndex(Boolean, prop.type);
  26468. if (booleanIndex > -1) {
  26469. if (absent && !hasOwn(prop, 'default')) {
  26470. value = false;
  26471. } else if (value === '' || value === hyphenate(key)) {
  26472. // only cast empty string / same name to boolean if
  26473. // boolean has higher priority
  26474. var stringIndex = getTypeIndex(String, prop.type);
  26475. if (stringIndex < 0 || booleanIndex < stringIndex) {
  26476. value = true;
  26477. }
  26478. }
  26479. }
  26480. // check default value
  26481. if (value === undefined) {
  26482. value = getPropDefaultValue(vm, prop, key);
  26483. // since the default value is a fresh copy,
  26484. // make sure to observe it.
  26485. var prevShouldObserve = shouldObserve;
  26486. toggleObserving(true);
  26487. observe(value);
  26488. toggleObserving(prevShouldObserve);
  26489. }
  26490. if (
  26491. true
  26492. ) {
  26493. assertProp(prop, key, value, vm, absent);
  26494. }
  26495. return value
  26496. }
  26497. /**
  26498. * Get the default value of a prop.
  26499. */
  26500. function getPropDefaultValue (vm, prop, key) {
  26501. // no default, return undefined
  26502. if (!hasOwn(prop, 'default')) {
  26503. return undefined
  26504. }
  26505. var def = prop.default;
  26506. // warn against non-factory defaults for Object & Array
  26507. if ("development" !== 'production' && isObject(def)) {
  26508. warn(
  26509. 'Invalid default value for prop "' + key + '": ' +
  26510. 'Props with type Object/Array must use a factory function ' +
  26511. 'to return the default value.',
  26512. vm
  26513. );
  26514. }
  26515. // the raw prop value was also undefined from previous render,
  26516. // return previous default value to avoid unnecessary watcher trigger
  26517. if (vm && vm.$options.propsData &&
  26518. vm.$options.propsData[key] === undefined &&
  26519. vm._props[key] !== undefined
  26520. ) {
  26521. return vm._props[key]
  26522. }
  26523. // call factory function for non-Function types
  26524. // a value is Function if its prototype is function even across different execution context
  26525. return typeof def === 'function' && getType(prop.type) !== 'Function'
  26526. ? def.call(vm)
  26527. : def
  26528. }
  26529. /**
  26530. * Assert whether a prop is valid.
  26531. */
  26532. function assertProp (
  26533. prop,
  26534. name,
  26535. value,
  26536. vm,
  26537. absent
  26538. ) {
  26539. if (prop.required && absent) {
  26540. warn(
  26541. 'Missing required prop: "' + name + '"',
  26542. vm
  26543. );
  26544. return
  26545. }
  26546. if (value == null && !prop.required) {
  26547. return
  26548. }
  26549. var type = prop.type;
  26550. var valid = !type || type === true;
  26551. var expectedTypes = [];
  26552. if (type) {
  26553. if (!Array.isArray(type)) {
  26554. type = [type];
  26555. }
  26556. for (var i = 0; i < type.length && !valid; i++) {
  26557. var assertedType = assertType(value, type[i]);
  26558. expectedTypes.push(assertedType.expectedType || '');
  26559. valid = assertedType.valid;
  26560. }
  26561. }
  26562. if (!valid) {
  26563. warn(
  26564. getInvalidTypeMessage(name, value, expectedTypes),
  26565. vm
  26566. );
  26567. return
  26568. }
  26569. var validator = prop.validator;
  26570. if (validator) {
  26571. if (!validator(value)) {
  26572. warn(
  26573. 'Invalid prop: custom validator check failed for prop "' + name + '".',
  26574. vm
  26575. );
  26576. }
  26577. }
  26578. }
  26579. var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
  26580. function assertType (value, type) {
  26581. var valid;
  26582. var expectedType = getType(type);
  26583. if (simpleCheckRE.test(expectedType)) {
  26584. var t = typeof value;
  26585. valid = t === expectedType.toLowerCase();
  26586. // for primitive wrapper objects
  26587. if (!valid && t === 'object') {
  26588. valid = value instanceof type;
  26589. }
  26590. } else if (expectedType === 'Object') {
  26591. valid = isPlainObject(value);
  26592. } else if (expectedType === 'Array') {
  26593. valid = Array.isArray(value);
  26594. } else {
  26595. valid = value instanceof type;
  26596. }
  26597. return {
  26598. valid: valid,
  26599. expectedType: expectedType
  26600. }
  26601. }
  26602. /**
  26603. * Use function string name to check built-in types,
  26604. * because a simple equality check will fail when running
  26605. * across different vms / iframes.
  26606. */
  26607. function getType (fn) {
  26608. var match = fn && fn.toString().match(/^\s*function (\w+)/);
  26609. return match ? match[1] : ''
  26610. }
  26611. function isSameType (a, b) {
  26612. return getType(a) === getType(b)
  26613. }
  26614. function getTypeIndex (type, expectedTypes) {
  26615. if (!Array.isArray(expectedTypes)) {
  26616. return isSameType(expectedTypes, type) ? 0 : -1
  26617. }
  26618. for (var i = 0, len = expectedTypes.length; i < len; i++) {
  26619. if (isSameType(expectedTypes[i], type)) {
  26620. return i
  26621. }
  26622. }
  26623. return -1
  26624. }
  26625. function getInvalidTypeMessage (name, value, expectedTypes) {
  26626. var message = "Invalid prop: type check failed for prop \"" + name + "\"." +
  26627. " Expected " + (expectedTypes.map(capitalize).join(', '));
  26628. var expectedType = expectedTypes[0];
  26629. var receivedType = toRawType(value);
  26630. var expectedValue = styleValue(value, expectedType);
  26631. var receivedValue = styleValue(value, receivedType);
  26632. // check if we need to specify expected value
  26633. if (expectedTypes.length === 1 &&
  26634. isExplicable(expectedType) &&
  26635. !isBoolean(expectedType, receivedType)) {
  26636. message += " with value " + expectedValue;
  26637. }
  26638. message += ", got " + receivedType + " ";
  26639. // check if we need to specify received value
  26640. if (isExplicable(receivedType)) {
  26641. message += "with value " + receivedValue + ".";
  26642. }
  26643. return message
  26644. }
  26645. function styleValue (value, type) {
  26646. if (type === 'String') {
  26647. return ("\"" + value + "\"")
  26648. } else if (type === 'Number') {
  26649. return ("" + (Number(value)))
  26650. } else {
  26651. return ("" + value)
  26652. }
  26653. }
  26654. function isExplicable (value) {
  26655. var explicitTypes = ['string', 'number', 'boolean'];
  26656. return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })
  26657. }
  26658. function isBoolean () {
  26659. var args = [], len = arguments.length;
  26660. while ( len-- ) args[ len ] = arguments[ len ];
  26661. return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })
  26662. }
  26663. /* */
  26664. function handleError (err, vm, info) {
  26665. if (vm) {
  26666. var cur = vm;
  26667. while ((cur = cur.$parent)) {
  26668. var hooks = cur.$options.errorCaptured;
  26669. if (hooks) {
  26670. for (var i = 0; i < hooks.length; i++) {
  26671. try {
  26672. var capture = hooks[i].call(cur, err, vm, info) === false;
  26673. if (capture) { return }
  26674. } catch (e) {
  26675. globalHandleError(e, cur, 'errorCaptured hook');
  26676. }
  26677. }
  26678. }
  26679. }
  26680. }
  26681. globalHandleError(err, vm, info);
  26682. }
  26683. function globalHandleError (err, vm, info) {
  26684. if (config.errorHandler) {
  26685. try {
  26686. return config.errorHandler.call(null, err, vm, info)
  26687. } catch (e) {
  26688. logError(e, null, 'config.errorHandler');
  26689. }
  26690. }
  26691. logError(err, vm, info);
  26692. }
  26693. function logError (err, vm, info) {
  26694. if (true) {
  26695. warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
  26696. }
  26697. /* istanbul ignore else */
  26698. if ((inBrowser || inWeex) && typeof console !== 'undefined') {
  26699. console.error(err);
  26700. } else {
  26701. throw err
  26702. }
  26703. }
  26704. /* */
  26705. var callbacks = [];
  26706. var pending = false;
  26707. function flushCallbacks () {
  26708. pending = false;
  26709. var copies = callbacks.slice(0);
  26710. callbacks.length = 0;
  26711. for (var i = 0; i < copies.length; i++) {
  26712. copies[i]();
  26713. }
  26714. }
  26715. // Here we have async deferring wrappers using both microtasks and (macro) tasks.
  26716. // In < 2.4 we used microtasks everywhere, but there are some scenarios where
  26717. // microtasks have too high a priority and fire in between supposedly
  26718. // sequential events (e.g. #4521, #6690) or even between bubbling of the same
  26719. // event (#6566). However, using (macro) tasks everywhere also has subtle problems
  26720. // when state is changed right before repaint (e.g. #6813, out-in transitions).
  26721. // Here we use microtask by default, but expose a way to force (macro) task when
  26722. // needed (e.g. in event handlers attached by v-on).
  26723. var microTimerFunc;
  26724. var macroTimerFunc;
  26725. var useMacroTask = false;
  26726. // Determine (macro) task defer implementation.
  26727. // Technically setImmediate should be the ideal choice, but it's only available
  26728. // in IE. The only polyfill that consistently queues the callback after all DOM
  26729. // events triggered in the same loop is by using MessageChannel.
  26730. /* istanbul ignore if */
  26731. if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
  26732. macroTimerFunc = function () {
  26733. setImmediate(flushCallbacks);
  26734. };
  26735. } else if (typeof MessageChannel !== 'undefined' && (
  26736. isNative(MessageChannel) ||
  26737. // PhantomJS
  26738. MessageChannel.toString() === '[object MessageChannelConstructor]'
  26739. )) {
  26740. var channel = new MessageChannel();
  26741. var port = channel.port2;
  26742. channel.port1.onmessage = flushCallbacks;
  26743. macroTimerFunc = function () {
  26744. port.postMessage(1);
  26745. };
  26746. } else {
  26747. /* istanbul ignore next */
  26748. macroTimerFunc = function () {
  26749. setTimeout(flushCallbacks, 0);
  26750. };
  26751. }
  26752. // Determine microtask defer implementation.
  26753. /* istanbul ignore next, $flow-disable-line */
  26754. if (typeof Promise !== 'undefined' && isNative(Promise)) {
  26755. var p = Promise.resolve();
  26756. microTimerFunc = function () {
  26757. p.then(flushCallbacks);
  26758. // in problematic UIWebViews, Promise.then doesn't completely break, but
  26759. // it can get stuck in a weird state where callbacks are pushed into the
  26760. // microtask queue but the queue isn't being flushed, until the browser
  26761. // needs to do some other work, e.g. handle a timer. Therefore we can
  26762. // "force" the microtask queue to be flushed by adding an empty timer.
  26763. if (isIOS) { setTimeout(noop); }
  26764. };
  26765. } else {
  26766. // fallback to macro
  26767. microTimerFunc = macroTimerFunc;
  26768. }
  26769. /**
  26770. * Wrap a function so that if any code inside triggers state change,
  26771. * the changes are queued using a (macro) task instead of a microtask.
  26772. */
  26773. function withMacroTask (fn) {
  26774. return fn._withTask || (fn._withTask = function () {
  26775. useMacroTask = true;
  26776. try {
  26777. return fn.apply(null, arguments)
  26778. } finally {
  26779. useMacroTask = false;
  26780. }
  26781. })
  26782. }
  26783. function nextTick (cb, ctx) {
  26784. var _resolve;
  26785. callbacks.push(function () {
  26786. if (cb) {
  26787. try {
  26788. cb.call(ctx);
  26789. } catch (e) {
  26790. handleError(e, ctx, 'nextTick');
  26791. }
  26792. } else if (_resolve) {
  26793. _resolve(ctx);
  26794. }
  26795. });
  26796. if (!pending) {
  26797. pending = true;
  26798. if (useMacroTask) {
  26799. macroTimerFunc();
  26800. } else {
  26801. microTimerFunc();
  26802. }
  26803. }
  26804. // $flow-disable-line
  26805. if (!cb && typeof Promise !== 'undefined') {
  26806. return new Promise(function (resolve) {
  26807. _resolve = resolve;
  26808. })
  26809. }
  26810. }
  26811. /* */
  26812. var mark;
  26813. var measure;
  26814. if (true) {
  26815. var perf = inBrowser && window.performance;
  26816. /* istanbul ignore if */
  26817. if (
  26818. perf &&
  26819. perf.mark &&
  26820. perf.measure &&
  26821. perf.clearMarks &&
  26822. perf.clearMeasures
  26823. ) {
  26824. mark = function (tag) { return perf.mark(tag); };
  26825. measure = function (name, startTag, endTag) {
  26826. perf.measure(name, startTag, endTag);
  26827. perf.clearMarks(startTag);
  26828. perf.clearMarks(endTag);
  26829. perf.clearMeasures(name);
  26830. };
  26831. }
  26832. }
  26833. /* not type checking this file because flow doesn't play well with Proxy */
  26834. var initProxy;
  26835. if (true) {
  26836. var allowedGlobals = makeMap(
  26837. 'Infinity,undefined,NaN,isFinite,isNaN,' +
  26838. 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
  26839. 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
  26840. 'require' // for Webpack/Browserify
  26841. );
  26842. var warnNonPresent = function (target, key) {
  26843. warn(
  26844. "Property or method \"" + key + "\" is not defined on the instance but " +
  26845. 'referenced during render. Make sure that this property is reactive, ' +
  26846. 'either in the data option, or for class-based components, by ' +
  26847. 'initializing the property. ' +
  26848. 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
  26849. target
  26850. );
  26851. };
  26852. var warnReservedPrefix = function (target, key) {
  26853. warn(
  26854. "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " +
  26855. 'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
  26856. 'prevent conflicts with Vue internals' +
  26857. 'See: https://vuejs.org/v2/api/#data',
  26858. target
  26859. );
  26860. };
  26861. var hasProxy =
  26862. typeof Proxy !== 'undefined' && isNative(Proxy);
  26863. if (hasProxy) {
  26864. var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
  26865. config.keyCodes = new Proxy(config.keyCodes, {
  26866. set: function set (target, key, value) {
  26867. if (isBuiltInModifier(key)) {
  26868. warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
  26869. return false
  26870. } else {
  26871. target[key] = value;
  26872. return true
  26873. }
  26874. }
  26875. });
  26876. }
  26877. var hasHandler = {
  26878. has: function has (target, key) {
  26879. var has = key in target;
  26880. var isAllowed = allowedGlobals(key) ||
  26881. (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));
  26882. if (!has && !isAllowed) {
  26883. if (key in target.$data) { warnReservedPrefix(target, key); }
  26884. else { warnNonPresent(target, key); }
  26885. }
  26886. return has || !isAllowed
  26887. }
  26888. };
  26889. var getHandler = {
  26890. get: function get (target, key) {
  26891. if (typeof key === 'string' && !(key in target)) {
  26892. if (key in target.$data) { warnReservedPrefix(target, key); }
  26893. else { warnNonPresent(target, key); }
  26894. }
  26895. return target[key]
  26896. }
  26897. };
  26898. initProxy = function initProxy (vm) {
  26899. if (hasProxy) {
  26900. // determine which proxy handler to use
  26901. var options = vm.$options;
  26902. var handlers = options.render && options.render._withStripped
  26903. ? getHandler
  26904. : hasHandler;
  26905. vm._renderProxy = new Proxy(vm, handlers);
  26906. } else {
  26907. vm._renderProxy = vm;
  26908. }
  26909. };
  26910. }
  26911. /* */
  26912. var seenObjects = new _Set();
  26913. /**
  26914. * Recursively traverse an object to evoke all converted
  26915. * getters, so that every nested property inside the object
  26916. * is collected as a "deep" dependency.
  26917. */
  26918. function traverse (val) {
  26919. _traverse(val, seenObjects);
  26920. seenObjects.clear();
  26921. }
  26922. function _traverse (val, seen) {
  26923. var i, keys;
  26924. var isA = Array.isArray(val);
  26925. if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
  26926. return
  26927. }
  26928. if (val.__ob__) {
  26929. var depId = val.__ob__.dep.id;
  26930. if (seen.has(depId)) {
  26931. return
  26932. }
  26933. seen.add(depId);
  26934. }
  26935. if (isA) {
  26936. i = val.length;
  26937. while (i--) { _traverse(val[i], seen); }
  26938. } else {
  26939. keys = Object.keys(val);
  26940. i = keys.length;
  26941. while (i--) { _traverse(val[keys[i]], seen); }
  26942. }
  26943. }
  26944. /* */
  26945. var normalizeEvent = cached(function (name) {
  26946. var passive = name.charAt(0) === '&';
  26947. name = passive ? name.slice(1) : name;
  26948. var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
  26949. name = once$$1 ? name.slice(1) : name;
  26950. var capture = name.charAt(0) === '!';
  26951. name = capture ? name.slice(1) : name;
  26952. return {
  26953. name: name,
  26954. once: once$$1,
  26955. capture: capture,
  26956. passive: passive
  26957. }
  26958. });
  26959. function createFnInvoker (fns) {
  26960. function invoker () {
  26961. var arguments$1 = arguments;
  26962. var fns = invoker.fns;
  26963. if (Array.isArray(fns)) {
  26964. var cloned = fns.slice();
  26965. for (var i = 0; i < cloned.length; i++) {
  26966. cloned[i].apply(null, arguments$1);
  26967. }
  26968. } else {
  26969. // return handler return value for single handlers
  26970. return fns.apply(null, arguments)
  26971. }
  26972. }
  26973. invoker.fns = fns;
  26974. return invoker
  26975. }
  26976. function updateListeners (
  26977. on,
  26978. oldOn,
  26979. add,
  26980. remove$$1,
  26981. createOnceHandler,
  26982. vm
  26983. ) {
  26984. var name, def$$1, cur, old, event;
  26985. for (name in on) {
  26986. def$$1 = cur = on[name];
  26987. old = oldOn[name];
  26988. event = normalizeEvent(name);
  26989. if (isUndef(cur)) {
  26990. "development" !== 'production' && warn(
  26991. "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
  26992. vm
  26993. );
  26994. } else if (isUndef(old)) {
  26995. if (isUndef(cur.fns)) {
  26996. cur = on[name] = createFnInvoker(cur);
  26997. }
  26998. if (isTrue(event.once)) {
  26999. cur = on[name] = createOnceHandler(event.name, cur, event.capture);
  27000. }
  27001. add(event.name, cur, event.capture, event.passive, event.params);
  27002. } else if (cur !== old) {
  27003. old.fns = cur;
  27004. on[name] = old;
  27005. }
  27006. }
  27007. for (name in oldOn) {
  27008. if (isUndef(on[name])) {
  27009. event = normalizeEvent(name);
  27010. remove$$1(event.name, oldOn[name], event.capture);
  27011. }
  27012. }
  27013. }
  27014. /* */
  27015. function mergeVNodeHook (def, hookKey, hook) {
  27016. if (def instanceof VNode) {
  27017. def = def.data.hook || (def.data.hook = {});
  27018. }
  27019. var invoker;
  27020. var oldHook = def[hookKey];
  27021. function wrappedHook () {
  27022. hook.apply(this, arguments);
  27023. // important: remove merged hook to ensure it's called only once
  27024. // and prevent memory leak
  27025. remove(invoker.fns, wrappedHook);
  27026. }
  27027. if (isUndef(oldHook)) {
  27028. // no existing hook
  27029. invoker = createFnInvoker([wrappedHook]);
  27030. } else {
  27031. /* istanbul ignore if */
  27032. if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
  27033. // already a merged invoker
  27034. invoker = oldHook;
  27035. invoker.fns.push(wrappedHook);
  27036. } else {
  27037. // existing plain hook
  27038. invoker = createFnInvoker([oldHook, wrappedHook]);
  27039. }
  27040. }
  27041. invoker.merged = true;
  27042. def[hookKey] = invoker;
  27043. }
  27044. /* */
  27045. function extractPropsFromVNodeData (
  27046. data,
  27047. Ctor,
  27048. tag
  27049. ) {
  27050. // we are only extracting raw values here.
  27051. // validation and default values are handled in the child
  27052. // component itself.
  27053. var propOptions = Ctor.options.props;
  27054. if (isUndef(propOptions)) {
  27055. return
  27056. }
  27057. var res = {};
  27058. var attrs = data.attrs;
  27059. var props = data.props;
  27060. if (isDef(attrs) || isDef(props)) {
  27061. for (var key in propOptions) {
  27062. var altKey = hyphenate(key);
  27063. if (true) {
  27064. var keyInLowerCase = key.toLowerCase();
  27065. if (
  27066. key !== keyInLowerCase &&
  27067. attrs && hasOwn(attrs, keyInLowerCase)
  27068. ) {
  27069. tip(
  27070. "Prop \"" + keyInLowerCase + "\" is passed to component " +
  27071. (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
  27072. " \"" + key + "\". " +
  27073. "Note that HTML attributes are case-insensitive and camelCased " +
  27074. "props need to use their kebab-case equivalents when using in-DOM " +
  27075. "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
  27076. );
  27077. }
  27078. }
  27079. checkProp(res, props, key, altKey, true) ||
  27080. checkProp(res, attrs, key, altKey, false);
  27081. }
  27082. }
  27083. return res
  27084. }
  27085. function checkProp (
  27086. res,
  27087. hash,
  27088. key,
  27089. altKey,
  27090. preserve
  27091. ) {
  27092. if (isDef(hash)) {
  27093. if (hasOwn(hash, key)) {
  27094. res[key] = hash[key];
  27095. if (!preserve) {
  27096. delete hash[key];
  27097. }
  27098. return true
  27099. } else if (hasOwn(hash, altKey)) {
  27100. res[key] = hash[altKey];
  27101. if (!preserve) {
  27102. delete hash[altKey];
  27103. }
  27104. return true
  27105. }
  27106. }
  27107. return false
  27108. }
  27109. /* */
  27110. // The template compiler attempts to minimize the need for normalization by
  27111. // statically analyzing the template at compile time.
  27112. //
  27113. // For plain HTML markup, normalization can be completely skipped because the
  27114. // generated render function is guaranteed to return Array<VNode>. There are
  27115. // two cases where extra normalization is needed:
  27116. // 1. When the children contains components - because a functional component
  27117. // may return an Array instead of a single root. In this case, just a simple
  27118. // normalization is needed - if any child is an Array, we flatten the whole
  27119. // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
  27120. // because functional components already normalize their own children.
  27121. function simpleNormalizeChildren (children) {
  27122. for (var i = 0; i < children.length; i++) {
  27123. if (Array.isArray(children[i])) {
  27124. return Array.prototype.concat.apply([], children)
  27125. }
  27126. }
  27127. return children
  27128. }
  27129. // 2. When the children contains constructs that always generated nested Arrays,
  27130. // e.g. <template>, <slot>, v-for, or when the children is provided by user
  27131. // with hand-written render functions / JSX. In such cases a full normalization
  27132. // is needed to cater to all possible types of children values.
  27133. function normalizeChildren (children) {
  27134. return isPrimitive(children)
  27135. ? [createTextVNode(children)]
  27136. : Array.isArray(children)
  27137. ? normalizeArrayChildren(children)
  27138. : undefined
  27139. }
  27140. function isTextNode (node) {
  27141. return isDef(node) && isDef(node.text) && isFalse(node.isComment)
  27142. }
  27143. function normalizeArrayChildren (children, nestedIndex) {
  27144. var res = [];
  27145. var i, c, lastIndex, last;
  27146. for (i = 0; i < children.length; i++) {
  27147. c = children[i];
  27148. if (isUndef(c) || typeof c === 'boolean') { continue }
  27149. lastIndex = res.length - 1;
  27150. last = res[lastIndex];
  27151. // nested
  27152. if (Array.isArray(c)) {
  27153. if (c.length > 0) {
  27154. c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
  27155. // merge adjacent text nodes
  27156. if (isTextNode(c[0]) && isTextNode(last)) {
  27157. res[lastIndex] = createTextVNode(last.text + (c[0]).text);
  27158. c.shift();
  27159. }
  27160. res.push.apply(res, c);
  27161. }
  27162. } else if (isPrimitive(c)) {
  27163. if (isTextNode(last)) {
  27164. // merge adjacent text nodes
  27165. // this is necessary for SSR hydration because text nodes are
  27166. // essentially merged when rendered to HTML strings
  27167. res[lastIndex] = createTextVNode(last.text + c);
  27168. } else if (c !== '') {
  27169. // convert primitive to vnode
  27170. res.push(createTextVNode(c));
  27171. }
  27172. } else {
  27173. if (isTextNode(c) && isTextNode(last)) {
  27174. // merge adjacent text nodes
  27175. res[lastIndex] = createTextVNode(last.text + c.text);
  27176. } else {
  27177. // default key for nested array children (likely generated by v-for)
  27178. if (isTrue(children._isVList) &&
  27179. isDef(c.tag) &&
  27180. isUndef(c.key) &&
  27181. isDef(nestedIndex)) {
  27182. c.key = "__vlist" + nestedIndex + "_" + i + "__";
  27183. }
  27184. res.push(c);
  27185. }
  27186. }
  27187. }
  27188. return res
  27189. }
  27190. /* */
  27191. function ensureCtor (comp, base) {
  27192. if (
  27193. comp.__esModule ||
  27194. (hasSymbol && comp[Symbol.toStringTag] === 'Module')
  27195. ) {
  27196. comp = comp.default;
  27197. }
  27198. return isObject(comp)
  27199. ? base.extend(comp)
  27200. : comp
  27201. }
  27202. function createAsyncPlaceholder (
  27203. factory,
  27204. data,
  27205. context,
  27206. children,
  27207. tag
  27208. ) {
  27209. var node = createEmptyVNode();
  27210. node.asyncFactory = factory;
  27211. node.asyncMeta = { data: data, context: context, children: children, tag: tag };
  27212. return node
  27213. }
  27214. function resolveAsyncComponent (
  27215. factory,
  27216. baseCtor,
  27217. context
  27218. ) {
  27219. if (isTrue(factory.error) && isDef(factory.errorComp)) {
  27220. return factory.errorComp
  27221. }
  27222. if (isDef(factory.resolved)) {
  27223. return factory.resolved
  27224. }
  27225. if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
  27226. return factory.loadingComp
  27227. }
  27228. if (isDef(factory.contexts)) {
  27229. // already pending
  27230. factory.contexts.push(context);
  27231. } else {
  27232. var contexts = factory.contexts = [context];
  27233. var sync = true;
  27234. var forceRender = function (renderCompleted) {
  27235. for (var i = 0, l = contexts.length; i < l; i++) {
  27236. contexts[i].$forceUpdate();
  27237. }
  27238. if (renderCompleted) {
  27239. contexts.length = 0;
  27240. }
  27241. };
  27242. var resolve = once(function (res) {
  27243. // cache resolved
  27244. factory.resolved = ensureCtor(res, baseCtor);
  27245. // invoke callbacks only if this is not a synchronous resolve
  27246. // (async resolves are shimmed as synchronous during SSR)
  27247. if (!sync) {
  27248. forceRender(true);
  27249. }
  27250. });
  27251. var reject = once(function (reason) {
  27252. "development" !== 'production' && warn(
  27253. "Failed to resolve async component: " + (String(factory)) +
  27254. (reason ? ("\nReason: " + reason) : '')
  27255. );
  27256. if (isDef(factory.errorComp)) {
  27257. factory.error = true;
  27258. forceRender(true);
  27259. }
  27260. });
  27261. var res = factory(resolve, reject);
  27262. if (isObject(res)) {
  27263. if (typeof res.then === 'function') {
  27264. // () => Promise
  27265. if (isUndef(factory.resolved)) {
  27266. res.then(resolve, reject);
  27267. }
  27268. } else if (isDef(res.component) && typeof res.component.then === 'function') {
  27269. res.component.then(resolve, reject);
  27270. if (isDef(res.error)) {
  27271. factory.errorComp = ensureCtor(res.error, baseCtor);
  27272. }
  27273. if (isDef(res.loading)) {
  27274. factory.loadingComp = ensureCtor(res.loading, baseCtor);
  27275. if (res.delay === 0) {
  27276. factory.loading = true;
  27277. } else {
  27278. setTimeout(function () {
  27279. if (isUndef(factory.resolved) && isUndef(factory.error)) {
  27280. factory.loading = true;
  27281. forceRender(false);
  27282. }
  27283. }, res.delay || 200);
  27284. }
  27285. }
  27286. if (isDef(res.timeout)) {
  27287. setTimeout(function () {
  27288. if (isUndef(factory.resolved)) {
  27289. reject(
  27290. true
  27291. ? ("timeout (" + (res.timeout) + "ms)")
  27292. : null
  27293. );
  27294. }
  27295. }, res.timeout);
  27296. }
  27297. }
  27298. }
  27299. sync = false;
  27300. // return in case resolved synchronously
  27301. return factory.loading
  27302. ? factory.loadingComp
  27303. : factory.resolved
  27304. }
  27305. }
  27306. /* */
  27307. function isAsyncPlaceholder (node) {
  27308. return node.isComment && node.asyncFactory
  27309. }
  27310. /* */
  27311. function getFirstComponentChild (children) {
  27312. if (Array.isArray(children)) {
  27313. for (var i = 0; i < children.length; i++) {
  27314. var c = children[i];
  27315. if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
  27316. return c
  27317. }
  27318. }
  27319. }
  27320. }
  27321. /* */
  27322. /* */
  27323. function initEvents (vm) {
  27324. vm._events = Object.create(null);
  27325. vm._hasHookEvent = false;
  27326. // init parent attached events
  27327. var listeners = vm.$options._parentListeners;
  27328. if (listeners) {
  27329. updateComponentListeners(vm, listeners);
  27330. }
  27331. }
  27332. var target;
  27333. function add (event, fn) {
  27334. target.$on(event, fn);
  27335. }
  27336. function remove$1 (event, fn) {
  27337. target.$off(event, fn);
  27338. }
  27339. function createOnceHandler (event, fn) {
  27340. var _target = target;
  27341. return function onceHandler () {
  27342. var res = fn.apply(null, arguments);
  27343. if (res !== null) {
  27344. _target.$off(event, onceHandler);
  27345. }
  27346. }
  27347. }
  27348. function updateComponentListeners (
  27349. vm,
  27350. listeners,
  27351. oldListeners
  27352. ) {
  27353. target = vm;
  27354. updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);
  27355. target = undefined;
  27356. }
  27357. function eventsMixin (Vue) {
  27358. var hookRE = /^hook:/;
  27359. Vue.prototype.$on = function (event, fn) {
  27360. var vm = this;
  27361. if (Array.isArray(event)) {
  27362. for (var i = 0, l = event.length; i < l; i++) {
  27363. vm.$on(event[i], fn);
  27364. }
  27365. } else {
  27366. (vm._events[event] || (vm._events[event] = [])).push(fn);
  27367. // optimize hook:event cost by using a boolean flag marked at registration
  27368. // instead of a hash lookup
  27369. if (hookRE.test(event)) {
  27370. vm._hasHookEvent = true;
  27371. }
  27372. }
  27373. return vm
  27374. };
  27375. Vue.prototype.$once = function (event, fn) {
  27376. var vm = this;
  27377. function on () {
  27378. vm.$off(event, on);
  27379. fn.apply(vm, arguments);
  27380. }
  27381. on.fn = fn;
  27382. vm.$on(event, on);
  27383. return vm
  27384. };
  27385. Vue.prototype.$off = function (event, fn) {
  27386. var vm = this;
  27387. // all
  27388. if (!arguments.length) {
  27389. vm._events = Object.create(null);
  27390. return vm
  27391. }
  27392. // array of events
  27393. if (Array.isArray(event)) {
  27394. for (var i = 0, l = event.length; i < l; i++) {
  27395. vm.$off(event[i], fn);
  27396. }
  27397. return vm
  27398. }
  27399. // specific event
  27400. var cbs = vm._events[event];
  27401. if (!cbs) {
  27402. return vm
  27403. }
  27404. if (!fn) {
  27405. vm._events[event] = null;
  27406. return vm
  27407. }
  27408. if (fn) {
  27409. // specific handler
  27410. var cb;
  27411. var i$1 = cbs.length;
  27412. while (i$1--) {
  27413. cb = cbs[i$1];
  27414. if (cb === fn || cb.fn === fn) {
  27415. cbs.splice(i$1, 1);
  27416. break
  27417. }
  27418. }
  27419. }
  27420. return vm
  27421. };
  27422. Vue.prototype.$emit = function (event) {
  27423. var vm = this;
  27424. if (true) {
  27425. var lowerCaseEvent = event.toLowerCase();
  27426. if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
  27427. tip(
  27428. "Event \"" + lowerCaseEvent + "\" is emitted in component " +
  27429. (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
  27430. "Note that HTML attributes are case-insensitive and you cannot use " +
  27431. "v-on to listen to camelCase events when using in-DOM templates. " +
  27432. "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
  27433. );
  27434. }
  27435. }
  27436. var cbs = vm._events[event];
  27437. if (cbs) {
  27438. cbs = cbs.length > 1 ? toArray(cbs) : cbs;
  27439. var args = toArray(arguments, 1);
  27440. for (var i = 0, l = cbs.length; i < l; i++) {
  27441. try {
  27442. cbs[i].apply(vm, args);
  27443. } catch (e) {
  27444. handleError(e, vm, ("event handler for \"" + event + "\""));
  27445. }
  27446. }
  27447. }
  27448. return vm
  27449. };
  27450. }
  27451. /* */
  27452. /**
  27453. * Runtime helper for resolving raw children VNodes into a slot object.
  27454. */
  27455. function resolveSlots (
  27456. children,
  27457. context
  27458. ) {
  27459. var slots = {};
  27460. if (!children) {
  27461. return slots
  27462. }
  27463. for (var i = 0, l = children.length; i < l; i++) {
  27464. var child = children[i];
  27465. var data = child.data;
  27466. // remove slot attribute if the node is resolved as a Vue slot node
  27467. if (data && data.attrs && data.attrs.slot) {
  27468. delete data.attrs.slot;
  27469. }
  27470. // named slots should only be respected if the vnode was rendered in the
  27471. // same context.
  27472. if ((child.context === context || child.fnContext === context) &&
  27473. data && data.slot != null
  27474. ) {
  27475. var name = data.slot;
  27476. var slot = (slots[name] || (slots[name] = []));
  27477. if (child.tag === 'template') {
  27478. slot.push.apply(slot, child.children || []);
  27479. } else {
  27480. slot.push(child);
  27481. }
  27482. } else {
  27483. (slots.default || (slots.default = [])).push(child);
  27484. }
  27485. }
  27486. // ignore slots that contains only whitespace
  27487. for (var name$1 in slots) {
  27488. if (slots[name$1].every(isWhitespace)) {
  27489. delete slots[name$1];
  27490. }
  27491. }
  27492. return slots
  27493. }
  27494. function isWhitespace (node) {
  27495. return (node.isComment && !node.asyncFactory) || node.text === ' '
  27496. }
  27497. function resolveScopedSlots (
  27498. fns, // see flow/vnode
  27499. res
  27500. ) {
  27501. res = res || {};
  27502. for (var i = 0; i < fns.length; i++) {
  27503. if (Array.isArray(fns[i])) {
  27504. resolveScopedSlots(fns[i], res);
  27505. } else {
  27506. res[fns[i].key] = fns[i].fn;
  27507. }
  27508. }
  27509. return res
  27510. }
  27511. /* */
  27512. var activeInstance = null;
  27513. var isUpdatingChildComponent = false;
  27514. function setActiveInstance(vm) {
  27515. var prevActiveInstance = activeInstance;
  27516. activeInstance = vm;
  27517. return function () {
  27518. activeInstance = prevActiveInstance;
  27519. }
  27520. }
  27521. function initLifecycle (vm) {
  27522. var options = vm.$options;
  27523. // locate first non-abstract parent
  27524. var parent = options.parent;
  27525. if (parent && !options.abstract) {
  27526. while (parent.$options.abstract && parent.$parent) {
  27527. parent = parent.$parent;
  27528. }
  27529. parent.$children.push(vm);
  27530. }
  27531. vm.$parent = parent;
  27532. vm.$root = parent ? parent.$root : vm;
  27533. vm.$children = [];
  27534. vm.$refs = {};
  27535. vm._watcher = null;
  27536. vm._inactive = null;
  27537. vm._directInactive = false;
  27538. vm._isMounted = false;
  27539. vm._isDestroyed = false;
  27540. vm._isBeingDestroyed = false;
  27541. }
  27542. function lifecycleMixin (Vue) {
  27543. Vue.prototype._update = function (vnode, hydrating) {
  27544. var vm = this;
  27545. var prevEl = vm.$el;
  27546. var prevVnode = vm._vnode;
  27547. var restoreActiveInstance = setActiveInstance(vm);
  27548. vm._vnode = vnode;
  27549. // Vue.prototype.__patch__ is injected in entry points
  27550. // based on the rendering backend used.
  27551. if (!prevVnode) {
  27552. // initial render
  27553. vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);
  27554. } else {
  27555. // updates
  27556. vm.$el = vm.__patch__(prevVnode, vnode);
  27557. }
  27558. restoreActiveInstance();
  27559. // update __vue__ reference
  27560. if (prevEl) {
  27561. prevEl.__vue__ = null;
  27562. }
  27563. if (vm.$el) {
  27564. vm.$el.__vue__ = vm;
  27565. }
  27566. // if parent is an HOC, update its $el as well
  27567. if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
  27568. vm.$parent.$el = vm.$el;
  27569. }
  27570. // updated hook is called by the scheduler to ensure that children are
  27571. // updated in a parent's updated hook.
  27572. };
  27573. Vue.prototype.$forceUpdate = function () {
  27574. var vm = this;
  27575. if (vm._watcher) {
  27576. vm._watcher.update();
  27577. }
  27578. };
  27579. Vue.prototype.$destroy = function () {
  27580. var vm = this;
  27581. if (vm._isBeingDestroyed) {
  27582. return
  27583. }
  27584. callHook(vm, 'beforeDestroy');
  27585. vm._isBeingDestroyed = true;
  27586. // remove self from parent
  27587. var parent = vm.$parent;
  27588. if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
  27589. remove(parent.$children, vm);
  27590. }
  27591. // teardown watchers
  27592. if (vm._watcher) {
  27593. vm._watcher.teardown();
  27594. }
  27595. var i = vm._watchers.length;
  27596. while (i--) {
  27597. vm._watchers[i].teardown();
  27598. }
  27599. // remove reference from data ob
  27600. // frozen object may not have observer.
  27601. if (vm._data.__ob__) {
  27602. vm._data.__ob__.vmCount--;
  27603. }
  27604. // call the last hook...
  27605. vm._isDestroyed = true;
  27606. // invoke destroy hooks on current rendered tree
  27607. vm.__patch__(vm._vnode, null);
  27608. // fire destroyed hook
  27609. callHook(vm, 'destroyed');
  27610. // turn off all instance listeners.
  27611. vm.$off();
  27612. // remove __vue__ reference
  27613. if (vm.$el) {
  27614. vm.$el.__vue__ = null;
  27615. }
  27616. // release circular reference (#6759)
  27617. if (vm.$vnode) {
  27618. vm.$vnode.parent = null;
  27619. }
  27620. };
  27621. }
  27622. function mountComponent (
  27623. vm,
  27624. el,
  27625. hydrating
  27626. ) {
  27627. vm.$el = el;
  27628. if (!vm.$options.render) {
  27629. vm.$options.render = createEmptyVNode;
  27630. if (true) {
  27631. /* istanbul ignore if */
  27632. if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
  27633. vm.$options.el || el) {
  27634. warn(
  27635. 'You are using the runtime-only build of Vue where the template ' +
  27636. 'compiler is not available. Either pre-compile the templates into ' +
  27637. 'render functions, or use the compiler-included build.',
  27638. vm
  27639. );
  27640. } else {
  27641. warn(
  27642. 'Failed to mount component: template or render function not defined.',
  27643. vm
  27644. );
  27645. }
  27646. }
  27647. }
  27648. callHook(vm, 'beforeMount');
  27649. var updateComponent;
  27650. /* istanbul ignore if */
  27651. if ("development" !== 'production' && config.performance && mark) {
  27652. updateComponent = function () {
  27653. var name = vm._name;
  27654. var id = vm._uid;
  27655. var startTag = "vue-perf-start:" + id;
  27656. var endTag = "vue-perf-end:" + id;
  27657. mark(startTag);
  27658. var vnode = vm._render();
  27659. mark(endTag);
  27660. measure(("vue " + name + " render"), startTag, endTag);
  27661. mark(startTag);
  27662. vm._update(vnode, hydrating);
  27663. mark(endTag);
  27664. measure(("vue " + name + " patch"), startTag, endTag);
  27665. };
  27666. } else {
  27667. updateComponent = function () {
  27668. vm._update(vm._render(), hydrating);
  27669. };
  27670. }
  27671. // we set this to vm._watcher inside the watcher's constructor
  27672. // since the watcher's initial patch may call $forceUpdate (e.g. inside child
  27673. // component's mounted hook), which relies on vm._watcher being already defined
  27674. new Watcher(vm, updateComponent, noop, {
  27675. before: function before () {
  27676. if (vm._isMounted && !vm._isDestroyed) {
  27677. callHook(vm, 'beforeUpdate');
  27678. }
  27679. }
  27680. }, true /* isRenderWatcher */);
  27681. hydrating = false;
  27682. // manually mounted instance, call mounted on self
  27683. // mounted is called for render-created child components in its inserted hook
  27684. if (vm.$vnode == null) {
  27685. vm._isMounted = true;
  27686. callHook(vm, 'mounted');
  27687. }
  27688. return vm
  27689. }
  27690. function updateChildComponent (
  27691. vm,
  27692. propsData,
  27693. listeners,
  27694. parentVnode,
  27695. renderChildren
  27696. ) {
  27697. if (true) {
  27698. isUpdatingChildComponent = true;
  27699. }
  27700. // determine whether component has slot children
  27701. // we need to do this before overwriting $options._renderChildren
  27702. var hasChildren = !!(
  27703. renderChildren || // has new static slots
  27704. vm.$options._renderChildren || // has old static slots
  27705. parentVnode.data.scopedSlots || // has new scoped slots
  27706. vm.$scopedSlots !== emptyObject // has old scoped slots
  27707. );
  27708. vm.$options._parentVnode = parentVnode;
  27709. vm.$vnode = parentVnode; // update vm's placeholder node without re-render
  27710. if (vm._vnode) { // update child tree's parent
  27711. vm._vnode.parent = parentVnode;
  27712. }
  27713. vm.$options._renderChildren = renderChildren;
  27714. // update $attrs and $listeners hash
  27715. // these are also reactive so they may trigger child update if the child
  27716. // used them during render
  27717. vm.$attrs = parentVnode.data.attrs || emptyObject;
  27718. vm.$listeners = listeners || emptyObject;
  27719. // update props
  27720. if (propsData && vm.$options.props) {
  27721. toggleObserving(false);
  27722. var props = vm._props;
  27723. var propKeys = vm.$options._propKeys || [];
  27724. for (var i = 0; i < propKeys.length; i++) {
  27725. var key = propKeys[i];
  27726. var propOptions = vm.$options.props; // wtf flow?
  27727. props[key] = validateProp(key, propOptions, propsData, vm);
  27728. }
  27729. toggleObserving(true);
  27730. // keep a copy of raw propsData
  27731. vm.$options.propsData = propsData;
  27732. }
  27733. // update listeners
  27734. listeners = listeners || emptyObject;
  27735. var oldListeners = vm.$options._parentListeners;
  27736. vm.$options._parentListeners = listeners;
  27737. updateComponentListeners(vm, listeners, oldListeners);
  27738. // resolve slots + force update if has children
  27739. if (hasChildren) {
  27740. vm.$slots = resolveSlots(renderChildren, parentVnode.context);
  27741. vm.$forceUpdate();
  27742. }
  27743. if (true) {
  27744. isUpdatingChildComponent = false;
  27745. }
  27746. }
  27747. function isInInactiveTree (vm) {
  27748. while (vm && (vm = vm.$parent)) {
  27749. if (vm._inactive) { return true }
  27750. }
  27751. return false
  27752. }
  27753. function activateChildComponent (vm, direct) {
  27754. if (direct) {
  27755. vm._directInactive = false;
  27756. if (isInInactiveTree(vm)) {
  27757. return
  27758. }
  27759. } else if (vm._directInactive) {
  27760. return
  27761. }
  27762. if (vm._inactive || vm._inactive === null) {
  27763. vm._inactive = false;
  27764. for (var i = 0; i < vm.$children.length; i++) {
  27765. activateChildComponent(vm.$children[i]);
  27766. }
  27767. callHook(vm, 'activated');
  27768. }
  27769. }
  27770. function deactivateChildComponent (vm, direct) {
  27771. if (direct) {
  27772. vm._directInactive = true;
  27773. if (isInInactiveTree(vm)) {
  27774. return
  27775. }
  27776. }
  27777. if (!vm._inactive) {
  27778. vm._inactive = true;
  27779. for (var i = 0; i < vm.$children.length; i++) {
  27780. deactivateChildComponent(vm.$children[i]);
  27781. }
  27782. callHook(vm, 'deactivated');
  27783. }
  27784. }
  27785. function callHook (vm, hook) {
  27786. // #7573 disable dep collection when invoking lifecycle hooks
  27787. pushTarget();
  27788. var handlers = vm.$options[hook];
  27789. if (handlers) {
  27790. for (var i = 0, j = handlers.length; i < j; i++) {
  27791. try {
  27792. handlers[i].call(vm);
  27793. } catch (e) {
  27794. handleError(e, vm, (hook + " hook"));
  27795. }
  27796. }
  27797. }
  27798. if (vm._hasHookEvent) {
  27799. vm.$emit('hook:' + hook);
  27800. }
  27801. popTarget();
  27802. }
  27803. /* */
  27804. var MAX_UPDATE_COUNT = 100;
  27805. var queue = [];
  27806. var activatedChildren = [];
  27807. var has = {};
  27808. var circular = {};
  27809. var waiting = false;
  27810. var flushing = false;
  27811. var index = 0;
  27812. /**
  27813. * Reset the scheduler's state.
  27814. */
  27815. function resetSchedulerState () {
  27816. index = queue.length = activatedChildren.length = 0;
  27817. has = {};
  27818. if (true) {
  27819. circular = {};
  27820. }
  27821. waiting = flushing = false;
  27822. }
  27823. /**
  27824. * Flush both queues and run the watchers.
  27825. */
  27826. function flushSchedulerQueue () {
  27827. flushing = true;
  27828. var watcher, id;
  27829. // Sort queue before flush.
  27830. // This ensures that:
  27831. // 1. Components are updated from parent to child. (because parent is always
  27832. // created before the child)
  27833. // 2. A component's user watchers are run before its render watcher (because
  27834. // user watchers are created before the render watcher)
  27835. // 3. If a component is destroyed during a parent component's watcher run,
  27836. // its watchers can be skipped.
  27837. queue.sort(function (a, b) { return a.id - b.id; });
  27838. // do not cache length because more watchers might be pushed
  27839. // as we run existing watchers
  27840. for (index = 0; index < queue.length; index++) {
  27841. watcher = queue[index];
  27842. if (watcher.before) {
  27843. watcher.before();
  27844. }
  27845. id = watcher.id;
  27846. has[id] = null;
  27847. watcher.run();
  27848. // in dev build, check and stop circular updates.
  27849. if ("development" !== 'production' && has[id] != null) {
  27850. circular[id] = (circular[id] || 0) + 1;
  27851. if (circular[id] > MAX_UPDATE_COUNT) {
  27852. warn(
  27853. 'You may have an infinite update loop ' + (
  27854. watcher.user
  27855. ? ("in watcher with expression \"" + (watcher.expression) + "\"")
  27856. : "in a component render function."
  27857. ),
  27858. watcher.vm
  27859. );
  27860. break
  27861. }
  27862. }
  27863. }
  27864. // keep copies of post queues before resetting state
  27865. var activatedQueue = activatedChildren.slice();
  27866. var updatedQueue = queue.slice();
  27867. resetSchedulerState();
  27868. // call component updated and activated hooks
  27869. callActivatedHooks(activatedQueue);
  27870. callUpdatedHooks(updatedQueue);
  27871. // devtool hook
  27872. /* istanbul ignore if */
  27873. if (devtools && config.devtools) {
  27874. devtools.emit('flush');
  27875. }
  27876. }
  27877. function callUpdatedHooks (queue) {
  27878. var i = queue.length;
  27879. while (i--) {
  27880. var watcher = queue[i];
  27881. var vm = watcher.vm;
  27882. if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
  27883. callHook(vm, 'updated');
  27884. }
  27885. }
  27886. }
  27887. /**
  27888. * Queue a kept-alive component that was activated during patch.
  27889. * The queue will be processed after the entire tree has been patched.
  27890. */
  27891. function queueActivatedComponent (vm) {
  27892. // setting _inactive to false here so that a render function can
  27893. // rely on checking whether it's in an inactive tree (e.g. router-view)
  27894. vm._inactive = false;
  27895. activatedChildren.push(vm);
  27896. }
  27897. function callActivatedHooks (queue) {
  27898. for (var i = 0; i < queue.length; i++) {
  27899. queue[i]._inactive = true;
  27900. activateChildComponent(queue[i], true /* true */);
  27901. }
  27902. }
  27903. /**
  27904. * Push a watcher into the watcher queue.
  27905. * Jobs with duplicate IDs will be skipped unless it's
  27906. * pushed when the queue is being flushed.
  27907. */
  27908. function queueWatcher (watcher) {
  27909. var id = watcher.id;
  27910. if (has[id] == null) {
  27911. has[id] = true;
  27912. if (!flushing) {
  27913. queue.push(watcher);
  27914. } else {
  27915. // if already flushing, splice the watcher based on its id
  27916. // if already past its id, it will be run next immediately.
  27917. var i = queue.length - 1;
  27918. while (i > index && queue[i].id > watcher.id) {
  27919. i--;
  27920. }
  27921. queue.splice(i + 1, 0, watcher);
  27922. }
  27923. // queue the flush
  27924. if (!waiting) {
  27925. waiting = true;
  27926. if ("development" !== 'production' && !config.async) {
  27927. flushSchedulerQueue();
  27928. return
  27929. }
  27930. nextTick(flushSchedulerQueue);
  27931. }
  27932. }
  27933. }
  27934. /* */
  27935. var uid$1 = 0;
  27936. /**
  27937. * A watcher parses an expression, collects dependencies,
  27938. * and fires callback when the expression value changes.
  27939. * This is used for both the $watch() api and directives.
  27940. */
  27941. var Watcher = function Watcher (
  27942. vm,
  27943. expOrFn,
  27944. cb,
  27945. options,
  27946. isRenderWatcher
  27947. ) {
  27948. this.vm = vm;
  27949. if (isRenderWatcher) {
  27950. vm._watcher = this;
  27951. }
  27952. vm._watchers.push(this);
  27953. // options
  27954. if (options) {
  27955. this.deep = !!options.deep;
  27956. this.user = !!options.user;
  27957. this.lazy = !!options.lazy;
  27958. this.sync = !!options.sync;
  27959. this.before = options.before;
  27960. } else {
  27961. this.deep = this.user = this.lazy = this.sync = false;
  27962. }
  27963. this.cb = cb;
  27964. this.id = ++uid$1; // uid for batching
  27965. this.active = true;
  27966. this.dirty = this.lazy; // for lazy watchers
  27967. this.deps = [];
  27968. this.newDeps = [];
  27969. this.depIds = new _Set();
  27970. this.newDepIds = new _Set();
  27971. this.expression = true
  27972. ? expOrFn.toString()
  27973. : '';
  27974. // parse expression for getter
  27975. if (typeof expOrFn === 'function') {
  27976. this.getter = expOrFn;
  27977. } else {
  27978. this.getter = parsePath(expOrFn);
  27979. if (!this.getter) {
  27980. this.getter = noop;
  27981. "development" !== 'production' && warn(
  27982. "Failed watching path: \"" + expOrFn + "\" " +
  27983. 'Watcher only accepts simple dot-delimited paths. ' +
  27984. 'For full control, use a function instead.',
  27985. vm
  27986. );
  27987. }
  27988. }
  27989. this.value = this.lazy
  27990. ? undefined
  27991. : this.get();
  27992. };
  27993. /**
  27994. * Evaluate the getter, and re-collect dependencies.
  27995. */
  27996. Watcher.prototype.get = function get () {
  27997. pushTarget(this);
  27998. var value;
  27999. var vm = this.vm;
  28000. try {
  28001. value = this.getter.call(vm, vm);
  28002. } catch (e) {
  28003. if (this.user) {
  28004. handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
  28005. } else {
  28006. throw e
  28007. }
  28008. } finally {
  28009. // "touch" every property so they are all tracked as
  28010. // dependencies for deep watching
  28011. if (this.deep) {
  28012. traverse(value);
  28013. }
  28014. popTarget();
  28015. this.cleanupDeps();
  28016. }
  28017. return value
  28018. };
  28019. /**
  28020. * Add a dependency to this directive.
  28021. */
  28022. Watcher.prototype.addDep = function addDep (dep) {
  28023. var id = dep.id;
  28024. if (!this.newDepIds.has(id)) {
  28025. this.newDepIds.add(id);
  28026. this.newDeps.push(dep);
  28027. if (!this.depIds.has(id)) {
  28028. dep.addSub(this);
  28029. }
  28030. }
  28031. };
  28032. /**
  28033. * Clean up for dependency collection.
  28034. */
  28035. Watcher.prototype.cleanupDeps = function cleanupDeps () {
  28036. var i = this.deps.length;
  28037. while (i--) {
  28038. var dep = this.deps[i];
  28039. if (!this.newDepIds.has(dep.id)) {
  28040. dep.removeSub(this);
  28041. }
  28042. }
  28043. var tmp = this.depIds;
  28044. this.depIds = this.newDepIds;
  28045. this.newDepIds = tmp;
  28046. this.newDepIds.clear();
  28047. tmp = this.deps;
  28048. this.deps = this.newDeps;
  28049. this.newDeps = tmp;
  28050. this.newDeps.length = 0;
  28051. };
  28052. /**
  28053. * Subscriber interface.
  28054. * Will be called when a dependency changes.
  28055. */
  28056. Watcher.prototype.update = function update () {
  28057. /* istanbul ignore else */
  28058. if (this.lazy) {
  28059. this.dirty = true;
  28060. } else if (this.sync) {
  28061. this.run();
  28062. } else {
  28063. queueWatcher(this);
  28064. }
  28065. };
  28066. /**
  28067. * Scheduler job interface.
  28068. * Will be called by the scheduler.
  28069. */
  28070. Watcher.prototype.run = function run () {
  28071. if (this.active) {
  28072. var value = this.get();
  28073. if (
  28074. value !== this.value ||
  28075. // Deep watchers and watchers on Object/Arrays should fire even
  28076. // when the value is the same, because the value may
  28077. // have mutated.
  28078. isObject(value) ||
  28079. this.deep
  28080. ) {
  28081. // set new value
  28082. var oldValue = this.value;
  28083. this.value = value;
  28084. if (this.user) {
  28085. try {
  28086. this.cb.call(this.vm, value, oldValue);
  28087. } catch (e) {
  28088. handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
  28089. }
  28090. } else {
  28091. this.cb.call(this.vm, value, oldValue);
  28092. }
  28093. }
  28094. }
  28095. };
  28096. /**
  28097. * Evaluate the value of the watcher.
  28098. * This only gets called for lazy watchers.
  28099. */
  28100. Watcher.prototype.evaluate = function evaluate () {
  28101. this.value = this.get();
  28102. this.dirty = false;
  28103. };
  28104. /**
  28105. * Depend on all deps collected by this watcher.
  28106. */
  28107. Watcher.prototype.depend = function depend () {
  28108. var i = this.deps.length;
  28109. while (i--) {
  28110. this.deps[i].depend();
  28111. }
  28112. };
  28113. /**
  28114. * Remove self from all dependencies' subscriber list.
  28115. */
  28116. Watcher.prototype.teardown = function teardown () {
  28117. if (this.active) {
  28118. // remove self from vm's watcher list
  28119. // this is a somewhat expensive operation so we skip it
  28120. // if the vm is being destroyed.
  28121. if (!this.vm._isBeingDestroyed) {
  28122. remove(this.vm._watchers, this);
  28123. }
  28124. var i = this.deps.length;
  28125. while (i--) {
  28126. this.deps[i].removeSub(this);
  28127. }
  28128. this.active = false;
  28129. }
  28130. };
  28131. /* */
  28132. var sharedPropertyDefinition = {
  28133. enumerable: true,
  28134. configurable: true,
  28135. get: noop,
  28136. set: noop
  28137. };
  28138. function proxy (target, sourceKey, key) {
  28139. sharedPropertyDefinition.get = function proxyGetter () {
  28140. return this[sourceKey][key]
  28141. };
  28142. sharedPropertyDefinition.set = function proxySetter (val) {
  28143. this[sourceKey][key] = val;
  28144. };
  28145. Object.defineProperty(target, key, sharedPropertyDefinition);
  28146. }
  28147. function initState (vm) {
  28148. vm._watchers = [];
  28149. var opts = vm.$options;
  28150. if (opts.props) { initProps(vm, opts.props); }
  28151. if (opts.methods) { initMethods(vm, opts.methods); }
  28152. if (opts.data) {
  28153. initData(vm);
  28154. } else {
  28155. observe(vm._data = {}, true /* asRootData */);
  28156. }
  28157. if (opts.computed) { initComputed(vm, opts.computed); }
  28158. if (opts.watch && opts.watch !== nativeWatch) {
  28159. initWatch(vm, opts.watch);
  28160. }
  28161. }
  28162. function initProps (vm, propsOptions) {
  28163. var propsData = vm.$options.propsData || {};
  28164. var props = vm._props = {};
  28165. // cache prop keys so that future props updates can iterate using Array
  28166. // instead of dynamic object key enumeration.
  28167. var keys = vm.$options._propKeys = [];
  28168. var isRoot = !vm.$parent;
  28169. // root instance props should be converted
  28170. if (!isRoot) {
  28171. toggleObserving(false);
  28172. }
  28173. var loop = function ( key ) {
  28174. keys.push(key);
  28175. var value = validateProp(key, propsOptions, propsData, vm);
  28176. /* istanbul ignore else */
  28177. if (true) {
  28178. var hyphenatedKey = hyphenate(key);
  28179. if (isReservedAttribute(hyphenatedKey) ||
  28180. config.isReservedAttr(hyphenatedKey)) {
  28181. warn(
  28182. ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
  28183. vm
  28184. );
  28185. }
  28186. defineReactive$$1(props, key, value, function () {
  28187. if (!isRoot && !isUpdatingChildComponent) {
  28188. warn(
  28189. "Avoid mutating a prop directly since the value will be " +
  28190. "overwritten whenever the parent component re-renders. " +
  28191. "Instead, use a data or computed property based on the prop's " +
  28192. "value. Prop being mutated: \"" + key + "\"",
  28193. vm
  28194. );
  28195. }
  28196. });
  28197. } else {
  28198. defineReactive$$1(props, key, value);
  28199. }
  28200. // static props are already proxied on the component's prototype
  28201. // during Vue.extend(). We only need to proxy props defined at
  28202. // instantiation here.
  28203. if (!(key in vm)) {
  28204. proxy(vm, "_props", key);
  28205. }
  28206. };
  28207. for (var key in propsOptions) loop( key );
  28208. toggleObserving(true);
  28209. }
  28210. function initData (vm) {
  28211. var data = vm.$options.data;
  28212. data = vm._data = typeof data === 'function'
  28213. ? getData(data, vm)
  28214. : data || {};
  28215. if (!isPlainObject(data)) {
  28216. data = {};
  28217. "development" !== 'production' && warn(
  28218. 'data functions should return an object:\n' +
  28219. 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
  28220. vm
  28221. );
  28222. }
  28223. // proxy data on instance
  28224. var keys = Object.keys(data);
  28225. var props = vm.$options.props;
  28226. var methods = vm.$options.methods;
  28227. var i = keys.length;
  28228. while (i--) {
  28229. var key = keys[i];
  28230. if (true) {
  28231. if (methods && hasOwn(methods, key)) {
  28232. warn(
  28233. ("Method \"" + key + "\" has already been defined as a data property."),
  28234. vm
  28235. );
  28236. }
  28237. }
  28238. if (props && hasOwn(props, key)) {
  28239. "development" !== 'production' && warn(
  28240. "The data property \"" + key + "\" is already declared as a prop. " +
  28241. "Use prop default value instead.",
  28242. vm
  28243. );
  28244. } else if (!isReserved(key)) {
  28245. proxy(vm, "_data", key);
  28246. }
  28247. }
  28248. // observe data
  28249. observe(data, true /* asRootData */);
  28250. }
  28251. function getData (data, vm) {
  28252. // #7573 disable dep collection when invoking data getters
  28253. pushTarget();
  28254. try {
  28255. return data.call(vm, vm)
  28256. } catch (e) {
  28257. handleError(e, vm, "data()");
  28258. return {}
  28259. } finally {
  28260. popTarget();
  28261. }
  28262. }
  28263. var computedWatcherOptions = { lazy: true };
  28264. function initComputed (vm, computed) {
  28265. // $flow-disable-line
  28266. var watchers = vm._computedWatchers = Object.create(null);
  28267. // computed properties are just getters during SSR
  28268. var isSSR = isServerRendering();
  28269. for (var key in computed) {
  28270. var userDef = computed[key];
  28271. var getter = typeof userDef === 'function' ? userDef : userDef.get;
  28272. if ("development" !== 'production' && getter == null) {
  28273. warn(
  28274. ("Getter is missing for computed property \"" + key + "\"."),
  28275. vm
  28276. );
  28277. }
  28278. if (!isSSR) {
  28279. // create internal watcher for the computed property.
  28280. watchers[key] = new Watcher(
  28281. vm,
  28282. getter || noop,
  28283. noop,
  28284. computedWatcherOptions
  28285. );
  28286. }
  28287. // component-defined computed properties are already defined on the
  28288. // component prototype. We only need to define computed properties defined
  28289. // at instantiation here.
  28290. if (!(key in vm)) {
  28291. defineComputed(vm, key, userDef);
  28292. } else if (true) {
  28293. if (key in vm.$data) {
  28294. warn(("The computed property \"" + key + "\" is already defined in data."), vm);
  28295. } else if (vm.$options.props && key in vm.$options.props) {
  28296. warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
  28297. }
  28298. }
  28299. }
  28300. }
  28301. function defineComputed (
  28302. target,
  28303. key,
  28304. userDef
  28305. ) {
  28306. var shouldCache = !isServerRendering();
  28307. if (typeof userDef === 'function') {
  28308. sharedPropertyDefinition.get = shouldCache
  28309. ? createComputedGetter(key)
  28310. : createGetterInvoker(userDef);
  28311. sharedPropertyDefinition.set = noop;
  28312. } else {
  28313. sharedPropertyDefinition.get = userDef.get
  28314. ? shouldCache && userDef.cache !== false
  28315. ? createComputedGetter(key)
  28316. : createGetterInvoker(userDef.get)
  28317. : noop;
  28318. sharedPropertyDefinition.set = userDef.set || noop;
  28319. }
  28320. if ("development" !== 'production' &&
  28321. sharedPropertyDefinition.set === noop) {
  28322. sharedPropertyDefinition.set = function () {
  28323. warn(
  28324. ("Computed property \"" + key + "\" was assigned to but it has no setter."),
  28325. this
  28326. );
  28327. };
  28328. }
  28329. Object.defineProperty(target, key, sharedPropertyDefinition);
  28330. }
  28331. function createComputedGetter (key) {
  28332. return function computedGetter () {
  28333. var watcher = this._computedWatchers && this._computedWatchers[key];
  28334. if (watcher) {
  28335. if (watcher.dirty) {
  28336. watcher.evaluate();
  28337. }
  28338. if (Dep.target) {
  28339. watcher.depend();
  28340. }
  28341. return watcher.value
  28342. }
  28343. }
  28344. }
  28345. function createGetterInvoker(fn) {
  28346. return function computedGetter () {
  28347. return fn.call(this, this)
  28348. }
  28349. }
  28350. function initMethods (vm, methods) {
  28351. var props = vm.$options.props;
  28352. for (var key in methods) {
  28353. if (true) {
  28354. if (typeof methods[key] !== 'function') {
  28355. warn(
  28356. "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " +
  28357. "Did you reference the function correctly?",
  28358. vm
  28359. );
  28360. }
  28361. if (props && hasOwn(props, key)) {
  28362. warn(
  28363. ("Method \"" + key + "\" has already been defined as a prop."),
  28364. vm
  28365. );
  28366. }
  28367. if ((key in vm) && isReserved(key)) {
  28368. warn(
  28369. "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
  28370. "Avoid defining component methods that start with _ or $."
  28371. );
  28372. }
  28373. }
  28374. vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);
  28375. }
  28376. }
  28377. function initWatch (vm, watch) {
  28378. for (var key in watch) {
  28379. var handler = watch[key];
  28380. if (Array.isArray(handler)) {
  28381. for (var i = 0; i < handler.length; i++) {
  28382. createWatcher(vm, key, handler[i]);
  28383. }
  28384. } else {
  28385. createWatcher(vm, key, handler);
  28386. }
  28387. }
  28388. }
  28389. function createWatcher (
  28390. vm,
  28391. expOrFn,
  28392. handler,
  28393. options
  28394. ) {
  28395. if (isPlainObject(handler)) {
  28396. options = handler;
  28397. handler = handler.handler;
  28398. }
  28399. if (typeof handler === 'string') {
  28400. handler = vm[handler];
  28401. }
  28402. return vm.$watch(expOrFn, handler, options)
  28403. }
  28404. function stateMixin (Vue) {
  28405. // flow somehow has problems with directly declared definition object
  28406. // when using Object.defineProperty, so we have to procedurally build up
  28407. // the object here.
  28408. var dataDef = {};
  28409. dataDef.get = function () { return this._data };
  28410. var propsDef = {};
  28411. propsDef.get = function () { return this._props };
  28412. if (true) {
  28413. dataDef.set = function () {
  28414. warn(
  28415. 'Avoid replacing instance root $data. ' +
  28416. 'Use nested data properties instead.',
  28417. this
  28418. );
  28419. };
  28420. propsDef.set = function () {
  28421. warn("$props is readonly.", this);
  28422. };
  28423. }
  28424. Object.defineProperty(Vue.prototype, '$data', dataDef);
  28425. Object.defineProperty(Vue.prototype, '$props', propsDef);
  28426. Vue.prototype.$set = set;
  28427. Vue.prototype.$delete = del;
  28428. Vue.prototype.$watch = function (
  28429. expOrFn,
  28430. cb,
  28431. options
  28432. ) {
  28433. var vm = this;
  28434. if (isPlainObject(cb)) {
  28435. return createWatcher(vm, expOrFn, cb, options)
  28436. }
  28437. options = options || {};
  28438. options.user = true;
  28439. var watcher = new Watcher(vm, expOrFn, cb, options);
  28440. if (options.immediate) {
  28441. try {
  28442. cb.call(vm, watcher.value);
  28443. } catch (error) {
  28444. handleError(error, vm, ("callback for immediate watcher \"" + (watcher.expression) + "\""));
  28445. }
  28446. }
  28447. return function unwatchFn () {
  28448. watcher.teardown();
  28449. }
  28450. };
  28451. }
  28452. /* */
  28453. function initProvide (vm) {
  28454. var provide = vm.$options.provide;
  28455. if (provide) {
  28456. vm._provided = typeof provide === 'function'
  28457. ? provide.call(vm)
  28458. : provide;
  28459. }
  28460. }
  28461. function initInjections (vm) {
  28462. var result = resolveInject(vm.$options.inject, vm);
  28463. if (result) {
  28464. toggleObserving(false);
  28465. Object.keys(result).forEach(function (key) {
  28466. /* istanbul ignore else */
  28467. if (true) {
  28468. defineReactive$$1(vm, key, result[key], function () {
  28469. warn(
  28470. "Avoid mutating an injected value directly since the changes will be " +
  28471. "overwritten whenever the provided component re-renders. " +
  28472. "injection being mutated: \"" + key + "\"",
  28473. vm
  28474. );
  28475. });
  28476. } else {
  28477. defineReactive$$1(vm, key, result[key]);
  28478. }
  28479. });
  28480. toggleObserving(true);
  28481. }
  28482. }
  28483. function resolveInject (inject, vm) {
  28484. if (inject) {
  28485. // inject is :any because flow is not smart enough to figure out cached
  28486. var result = Object.create(null);
  28487. var keys = hasSymbol
  28488. ? Reflect.ownKeys(inject).filter(function (key) {
  28489. /* istanbul ignore next */
  28490. return Object.getOwnPropertyDescriptor(inject, key).enumerable
  28491. })
  28492. : Object.keys(inject);
  28493. for (var i = 0; i < keys.length; i++) {
  28494. var key = keys[i];
  28495. var provideKey = inject[key].from;
  28496. var source = vm;
  28497. while (source) {
  28498. if (source._provided && hasOwn(source._provided, provideKey)) {
  28499. result[key] = source._provided[provideKey];
  28500. break
  28501. }
  28502. source = source.$parent;
  28503. }
  28504. if (!source) {
  28505. if ('default' in inject[key]) {
  28506. var provideDefault = inject[key].default;
  28507. result[key] = typeof provideDefault === 'function'
  28508. ? provideDefault.call(vm)
  28509. : provideDefault;
  28510. } else if (true) {
  28511. warn(("Injection \"" + key + "\" not found"), vm);
  28512. }
  28513. }
  28514. }
  28515. return result
  28516. }
  28517. }
  28518. /* */
  28519. /**
  28520. * Runtime helper for rendering v-for lists.
  28521. */
  28522. function renderList (
  28523. val,
  28524. render
  28525. ) {
  28526. var ret, i, l, keys, key;
  28527. if (Array.isArray(val) || typeof val === 'string') {
  28528. ret = new Array(val.length);
  28529. for (i = 0, l = val.length; i < l; i++) {
  28530. ret[i] = render(val[i], i);
  28531. }
  28532. } else if (typeof val === 'number') {
  28533. ret = new Array(val);
  28534. for (i = 0; i < val; i++) {
  28535. ret[i] = render(i + 1, i);
  28536. }
  28537. } else if (isObject(val)) {
  28538. keys = Object.keys(val);
  28539. ret = new Array(keys.length);
  28540. for (i = 0, l = keys.length; i < l; i++) {
  28541. key = keys[i];
  28542. ret[i] = render(val[key], key, i);
  28543. }
  28544. }
  28545. if (!isDef(ret)) {
  28546. ret = [];
  28547. }
  28548. (ret)._isVList = true;
  28549. return ret
  28550. }
  28551. /* */
  28552. /**
  28553. * Runtime helper for rendering <slot>
  28554. */
  28555. function renderSlot (
  28556. name,
  28557. fallback,
  28558. props,
  28559. bindObject
  28560. ) {
  28561. var scopedSlotFn = this.$scopedSlots[name];
  28562. var nodes;
  28563. if (scopedSlotFn) { // scoped slot
  28564. props = props || {};
  28565. if (bindObject) {
  28566. if ("development" !== 'production' && !isObject(bindObject)) {
  28567. warn(
  28568. 'slot v-bind without argument expects an Object',
  28569. this
  28570. );
  28571. }
  28572. props = extend(extend({}, bindObject), props);
  28573. }
  28574. nodes = scopedSlotFn(props) || fallback;
  28575. } else {
  28576. nodes = this.$slots[name] || fallback;
  28577. }
  28578. var target = props && props.slot;
  28579. if (target) {
  28580. return this.$createElement('template', { slot: target }, nodes)
  28581. } else {
  28582. return nodes
  28583. }
  28584. }
  28585. /* */
  28586. /**
  28587. * Runtime helper for resolving filters
  28588. */
  28589. function resolveFilter (id) {
  28590. return resolveAsset(this.$options, 'filters', id, true) || identity
  28591. }
  28592. /* */
  28593. function isKeyNotMatch (expect, actual) {
  28594. if (Array.isArray(expect)) {
  28595. return expect.indexOf(actual) === -1
  28596. } else {
  28597. return expect !== actual
  28598. }
  28599. }
  28600. /**
  28601. * Runtime helper for checking keyCodes from config.
  28602. * exposed as Vue.prototype._k
  28603. * passing in eventKeyName as last argument separately for backwards compat
  28604. */
  28605. function checkKeyCodes (
  28606. eventKeyCode,
  28607. key,
  28608. builtInKeyCode,
  28609. eventKeyName,
  28610. builtInKeyName
  28611. ) {
  28612. var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
  28613. if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
  28614. return isKeyNotMatch(builtInKeyName, eventKeyName)
  28615. } else if (mappedKeyCode) {
  28616. return isKeyNotMatch(mappedKeyCode, eventKeyCode)
  28617. } else if (eventKeyName) {
  28618. return hyphenate(eventKeyName) !== key
  28619. }
  28620. }
  28621. /* */
  28622. /**
  28623. * Runtime helper for merging v-bind="object" into a VNode's data.
  28624. */
  28625. function bindObjectProps (
  28626. data,
  28627. tag,
  28628. value,
  28629. asProp,
  28630. isSync
  28631. ) {
  28632. if (value) {
  28633. if (!isObject(value)) {
  28634. "development" !== 'production' && warn(
  28635. 'v-bind without argument expects an Object or Array value',
  28636. this
  28637. );
  28638. } else {
  28639. if (Array.isArray(value)) {
  28640. value = toObject(value);
  28641. }
  28642. var hash;
  28643. var loop = function ( key ) {
  28644. if (
  28645. key === 'class' ||
  28646. key === 'style' ||
  28647. isReservedAttribute(key)
  28648. ) {
  28649. hash = data;
  28650. } else {
  28651. var type = data.attrs && data.attrs.type;
  28652. hash = asProp || config.mustUseProp(tag, type, key)
  28653. ? data.domProps || (data.domProps = {})
  28654. : data.attrs || (data.attrs = {});
  28655. }
  28656. var camelizedKey = camelize(key);
  28657. if (!(key in hash) && !(camelizedKey in hash)) {
  28658. hash[key] = value[key];
  28659. if (isSync) {
  28660. var on = data.on || (data.on = {});
  28661. on[("update:" + camelizedKey)] = function ($event) {
  28662. value[key] = $event;
  28663. };
  28664. }
  28665. }
  28666. };
  28667. for (var key in value) loop( key );
  28668. }
  28669. }
  28670. return data
  28671. }
  28672. /* */
  28673. /**
  28674. * Runtime helper for rendering static trees.
  28675. */
  28676. function renderStatic (
  28677. index,
  28678. isInFor
  28679. ) {
  28680. var cached = this._staticTrees || (this._staticTrees = []);
  28681. var tree = cached[index];
  28682. // if has already-rendered static tree and not inside v-for,
  28683. // we can reuse the same tree.
  28684. if (tree && !isInFor) {
  28685. return tree
  28686. }
  28687. // otherwise, render a fresh tree.
  28688. tree = cached[index] = this.$options.staticRenderFns[index].call(
  28689. this._renderProxy,
  28690. null,
  28691. this // for render fns generated for functional component templates
  28692. );
  28693. markStatic(tree, ("__static__" + index), false);
  28694. return tree
  28695. }
  28696. /**
  28697. * Runtime helper for v-once.
  28698. * Effectively it means marking the node as static with a unique key.
  28699. */
  28700. function markOnce (
  28701. tree,
  28702. index,
  28703. key
  28704. ) {
  28705. markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
  28706. return tree
  28707. }
  28708. function markStatic (
  28709. tree,
  28710. key,
  28711. isOnce
  28712. ) {
  28713. if (Array.isArray(tree)) {
  28714. for (var i = 0; i < tree.length; i++) {
  28715. if (tree[i] && typeof tree[i] !== 'string') {
  28716. markStaticNode(tree[i], (key + "_" + i), isOnce);
  28717. }
  28718. }
  28719. } else {
  28720. markStaticNode(tree, key, isOnce);
  28721. }
  28722. }
  28723. function markStaticNode (node, key, isOnce) {
  28724. node.isStatic = true;
  28725. node.key = key;
  28726. node.isOnce = isOnce;
  28727. }
  28728. /* */
  28729. function bindObjectListeners (data, value) {
  28730. if (value) {
  28731. if (!isPlainObject(value)) {
  28732. "development" !== 'production' && warn(
  28733. 'v-on without argument expects an Object value',
  28734. this
  28735. );
  28736. } else {
  28737. var on = data.on = data.on ? extend({}, data.on) : {};
  28738. for (var key in value) {
  28739. var existing = on[key];
  28740. var ours = value[key];
  28741. on[key] = existing ? [].concat(existing, ours) : ours;
  28742. }
  28743. }
  28744. }
  28745. return data
  28746. }
  28747. /* */
  28748. function installRenderHelpers (target) {
  28749. target._o = markOnce;
  28750. target._n = toNumber;
  28751. target._s = toString;
  28752. target._l = renderList;
  28753. target._t = renderSlot;
  28754. target._q = looseEqual;
  28755. target._i = looseIndexOf;
  28756. target._m = renderStatic;
  28757. target._f = resolveFilter;
  28758. target._k = checkKeyCodes;
  28759. target._b = bindObjectProps;
  28760. target._v = createTextVNode;
  28761. target._e = createEmptyVNode;
  28762. target._u = resolveScopedSlots;
  28763. target._g = bindObjectListeners;
  28764. }
  28765. /* */
  28766. function FunctionalRenderContext (
  28767. data,
  28768. props,
  28769. children,
  28770. parent,
  28771. Ctor
  28772. ) {
  28773. var options = Ctor.options;
  28774. // ensure the createElement function in functional components
  28775. // gets a unique context - this is necessary for correct named slot check
  28776. var contextVm;
  28777. if (hasOwn(parent, '_uid')) {
  28778. contextVm = Object.create(parent);
  28779. // $flow-disable-line
  28780. contextVm._original = parent;
  28781. } else {
  28782. // the context vm passed in is a functional context as well.
  28783. // in this case we want to make sure we are able to get a hold to the
  28784. // real context instance.
  28785. contextVm = parent;
  28786. // $flow-disable-line
  28787. parent = parent._original;
  28788. }
  28789. var isCompiled = isTrue(options._compiled);
  28790. var needNormalization = !isCompiled;
  28791. this.data = data;
  28792. this.props = props;
  28793. this.children = children;
  28794. this.parent = parent;
  28795. this.listeners = data.on || emptyObject;
  28796. this.injections = resolveInject(options.inject, parent);
  28797. this.slots = function () { return resolveSlots(children, parent); };
  28798. // support for compiled functional template
  28799. if (isCompiled) {
  28800. // exposing $options for renderStatic()
  28801. this.$options = options;
  28802. // pre-resolve slots for renderSlot()
  28803. this.$slots = this.slots();
  28804. this.$scopedSlots = data.scopedSlots || emptyObject;
  28805. }
  28806. if (options._scopeId) {
  28807. this._c = function (a, b, c, d) {
  28808. var vnode = createElement(contextVm, a, b, c, d, needNormalization);
  28809. if (vnode && !Array.isArray(vnode)) {
  28810. vnode.fnScopeId = options._scopeId;
  28811. vnode.fnContext = parent;
  28812. }
  28813. return vnode
  28814. };
  28815. } else {
  28816. this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
  28817. }
  28818. }
  28819. installRenderHelpers(FunctionalRenderContext.prototype);
  28820. function createFunctionalComponent (
  28821. Ctor,
  28822. propsData,
  28823. data,
  28824. contextVm,
  28825. children
  28826. ) {
  28827. var options = Ctor.options;
  28828. var props = {};
  28829. var propOptions = options.props;
  28830. if (isDef(propOptions)) {
  28831. for (var key in propOptions) {
  28832. props[key] = validateProp(key, propOptions, propsData || emptyObject);
  28833. }
  28834. } else {
  28835. if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
  28836. if (isDef(data.props)) { mergeProps(props, data.props); }
  28837. }
  28838. var renderContext = new FunctionalRenderContext(
  28839. data,
  28840. props,
  28841. children,
  28842. contextVm,
  28843. Ctor
  28844. );
  28845. var vnode = options.render.call(null, renderContext._c, renderContext);
  28846. if (vnode instanceof VNode) {
  28847. return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)
  28848. } else if (Array.isArray(vnode)) {
  28849. var vnodes = normalizeChildren(vnode) || [];
  28850. var res = new Array(vnodes.length);
  28851. for (var i = 0; i < vnodes.length; i++) {
  28852. res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
  28853. }
  28854. return res
  28855. }
  28856. }
  28857. function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {
  28858. // #7817 clone node before setting fnContext, otherwise if the node is reused
  28859. // (e.g. it was from a cached normal slot) the fnContext causes named slots
  28860. // that should not be matched to match.
  28861. var clone = cloneVNode(vnode);
  28862. clone.fnContext = contextVm;
  28863. clone.fnOptions = options;
  28864. if (true) {
  28865. (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;
  28866. }
  28867. if (data.slot) {
  28868. (clone.data || (clone.data = {})).slot = data.slot;
  28869. }
  28870. return clone
  28871. }
  28872. function mergeProps (to, from) {
  28873. for (var key in from) {
  28874. to[camelize(key)] = from[key];
  28875. }
  28876. }
  28877. /* */
  28878. /* */
  28879. /* */
  28880. /* */
  28881. // inline hooks to be invoked on component VNodes during patch
  28882. var componentVNodeHooks = {
  28883. init: function init (vnode, hydrating) {
  28884. if (
  28885. vnode.componentInstance &&
  28886. !vnode.componentInstance._isDestroyed &&
  28887. vnode.data.keepAlive
  28888. ) {
  28889. // kept-alive components, treat as a patch
  28890. var mountedNode = vnode; // work around flow
  28891. componentVNodeHooks.prepatch(mountedNode, mountedNode);
  28892. } else {
  28893. var child = vnode.componentInstance = createComponentInstanceForVnode(
  28894. vnode,
  28895. activeInstance
  28896. );
  28897. child.$mount(hydrating ? vnode.elm : undefined, hydrating);
  28898. }
  28899. },
  28900. prepatch: function prepatch (oldVnode, vnode) {
  28901. var options = vnode.componentOptions;
  28902. var child = vnode.componentInstance = oldVnode.componentInstance;
  28903. updateChildComponent(
  28904. child,
  28905. options.propsData, // updated props
  28906. options.listeners, // updated listeners
  28907. vnode, // new parent vnode
  28908. options.children // new children
  28909. );
  28910. },
  28911. insert: function insert (vnode) {
  28912. var context = vnode.context;
  28913. var componentInstance = vnode.componentInstance;
  28914. if (!componentInstance._isMounted) {
  28915. componentInstance._isMounted = true;
  28916. callHook(componentInstance, 'mounted');
  28917. }
  28918. if (vnode.data.keepAlive) {
  28919. if (context._isMounted) {
  28920. // vue-router#1212
  28921. // During updates, a kept-alive component's child components may
  28922. // change, so directly walking the tree here may call activated hooks
  28923. // on incorrect children. Instead we push them into a queue which will
  28924. // be processed after the whole patch process ended.
  28925. queueActivatedComponent(componentInstance);
  28926. } else {
  28927. activateChildComponent(componentInstance, true /* direct */);
  28928. }
  28929. }
  28930. },
  28931. destroy: function destroy (vnode) {
  28932. var componentInstance = vnode.componentInstance;
  28933. if (!componentInstance._isDestroyed) {
  28934. if (!vnode.data.keepAlive) {
  28935. componentInstance.$destroy();
  28936. } else {
  28937. deactivateChildComponent(componentInstance, true /* direct */);
  28938. }
  28939. }
  28940. }
  28941. };
  28942. var hooksToMerge = Object.keys(componentVNodeHooks);
  28943. function createComponent (
  28944. Ctor,
  28945. data,
  28946. context,
  28947. children,
  28948. tag
  28949. ) {
  28950. if (isUndef(Ctor)) {
  28951. return
  28952. }
  28953. var baseCtor = context.$options._base;
  28954. // plain options object: turn it into a constructor
  28955. if (isObject(Ctor)) {
  28956. Ctor = baseCtor.extend(Ctor);
  28957. }
  28958. // if at this stage it's not a constructor or an async component factory,
  28959. // reject.
  28960. if (typeof Ctor !== 'function') {
  28961. if (true) {
  28962. warn(("Invalid Component definition: " + (String(Ctor))), context);
  28963. }
  28964. return
  28965. }
  28966. // async component
  28967. var asyncFactory;
  28968. if (isUndef(Ctor.cid)) {
  28969. asyncFactory = Ctor;
  28970. Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);
  28971. if (Ctor === undefined) {
  28972. // return a placeholder node for async component, which is rendered
  28973. // as a comment node but preserves all the raw information for the node.
  28974. // the information will be used for async server-rendering and hydration.
  28975. return createAsyncPlaceholder(
  28976. asyncFactory,
  28977. data,
  28978. context,
  28979. children,
  28980. tag
  28981. )
  28982. }
  28983. }
  28984. data = data || {};
  28985. // resolve constructor options in case global mixins are applied after
  28986. // component constructor creation
  28987. resolveConstructorOptions(Ctor);
  28988. // transform component v-model data into props & events
  28989. if (isDef(data.model)) {
  28990. transformModel(Ctor.options, data);
  28991. }
  28992. // extract props
  28993. var propsData = extractPropsFromVNodeData(data, Ctor, tag);
  28994. // functional component
  28995. if (isTrue(Ctor.options.functional)) {
  28996. return createFunctionalComponent(Ctor, propsData, data, context, children)
  28997. }
  28998. // extract listeners, since these needs to be treated as
  28999. // child component listeners instead of DOM listeners
  29000. var listeners = data.on;
  29001. // replace with listeners with .native modifier
  29002. // so it gets processed during parent component patch.
  29003. data.on = data.nativeOn;
  29004. if (isTrue(Ctor.options.abstract)) {
  29005. // abstract components do not keep anything
  29006. // other than props & listeners & slot
  29007. // work around flow
  29008. var slot = data.slot;
  29009. data = {};
  29010. if (slot) {
  29011. data.slot = slot;
  29012. }
  29013. }
  29014. // install component management hooks onto the placeholder node
  29015. installComponentHooks(data);
  29016. // return a placeholder vnode
  29017. var name = Ctor.options.name || tag;
  29018. var vnode = new VNode(
  29019. ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
  29020. data, undefined, undefined, undefined, context,
  29021. { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
  29022. asyncFactory
  29023. );
  29024. return vnode
  29025. }
  29026. function createComponentInstanceForVnode (
  29027. vnode, // we know it's MountedComponentVNode but flow doesn't
  29028. parent // activeInstance in lifecycle state
  29029. ) {
  29030. var options = {
  29031. _isComponent: true,
  29032. _parentVnode: vnode,
  29033. parent: parent
  29034. };
  29035. // check inline-template render functions
  29036. var inlineTemplate = vnode.data.inlineTemplate;
  29037. if (isDef(inlineTemplate)) {
  29038. options.render = inlineTemplate.render;
  29039. options.staticRenderFns = inlineTemplate.staticRenderFns;
  29040. }
  29041. return new vnode.componentOptions.Ctor(options)
  29042. }
  29043. function installComponentHooks (data) {
  29044. var hooks = data.hook || (data.hook = {});
  29045. for (var i = 0; i < hooksToMerge.length; i++) {
  29046. var key = hooksToMerge[i];
  29047. var existing = hooks[key];
  29048. var toMerge = componentVNodeHooks[key];
  29049. if (existing !== toMerge && !(existing && existing._merged)) {
  29050. hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;
  29051. }
  29052. }
  29053. }
  29054. function mergeHook$1 (f1, f2) {
  29055. var merged = function (a, b) {
  29056. // flow complains about extra args which is why we use any
  29057. f1(a, b);
  29058. f2(a, b);
  29059. };
  29060. merged._merged = true;
  29061. return merged
  29062. }
  29063. // transform component v-model info (value and callback) into
  29064. // prop and event handler respectively.
  29065. function transformModel (options, data) {
  29066. var prop = (options.model && options.model.prop) || 'value';
  29067. var event = (options.model && options.model.event) || 'input'
  29068. ;(data.props || (data.props = {}))[prop] = data.model.value;
  29069. var on = data.on || (data.on = {});
  29070. var existing = on[event];
  29071. var callback = data.model.callback;
  29072. if (isDef(existing)) {
  29073. if (
  29074. Array.isArray(existing)
  29075. ? existing.indexOf(callback) === -1
  29076. : existing !== callback
  29077. ) {
  29078. on[event] = [callback].concat(existing);
  29079. }
  29080. } else {
  29081. on[event] = callback;
  29082. }
  29083. }
  29084. /* */
  29085. var SIMPLE_NORMALIZE = 1;
  29086. var ALWAYS_NORMALIZE = 2;
  29087. // wrapper function for providing a more flexible interface
  29088. // without getting yelled at by flow
  29089. function createElement (
  29090. context,
  29091. tag,
  29092. data,
  29093. children,
  29094. normalizationType,
  29095. alwaysNormalize
  29096. ) {
  29097. if (Array.isArray(data) || isPrimitive(data)) {
  29098. normalizationType = children;
  29099. children = data;
  29100. data = undefined;
  29101. }
  29102. if (isTrue(alwaysNormalize)) {
  29103. normalizationType = ALWAYS_NORMALIZE;
  29104. }
  29105. return _createElement(context, tag, data, children, normalizationType)
  29106. }
  29107. function _createElement (
  29108. context,
  29109. tag,
  29110. data,
  29111. children,
  29112. normalizationType
  29113. ) {
  29114. if (isDef(data) && isDef((data).__ob__)) {
  29115. "development" !== 'production' && warn(
  29116. "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
  29117. 'Always create fresh vnode data objects in each render!',
  29118. context
  29119. );
  29120. return createEmptyVNode()
  29121. }
  29122. // object syntax in v-bind
  29123. if (isDef(data) && isDef(data.is)) {
  29124. tag = data.is;
  29125. }
  29126. if (!tag) {
  29127. // in case of component :is set to falsy value
  29128. return createEmptyVNode()
  29129. }
  29130. // warn against non-primitive key
  29131. if ("development" !== 'production' &&
  29132. isDef(data) && isDef(data.key) && !isPrimitive(data.key)
  29133. ) {
  29134. {
  29135. warn(
  29136. 'Avoid using non-primitive value as key, ' +
  29137. 'use string/number value instead.',
  29138. context
  29139. );
  29140. }
  29141. }
  29142. // support single function children as default scoped slot
  29143. if (Array.isArray(children) &&
  29144. typeof children[0] === 'function'
  29145. ) {
  29146. data = data || {};
  29147. data.scopedSlots = { default: children[0] };
  29148. children.length = 0;
  29149. }
  29150. if (normalizationType === ALWAYS_NORMALIZE) {
  29151. children = normalizeChildren(children);
  29152. } else if (normalizationType === SIMPLE_NORMALIZE) {
  29153. children = simpleNormalizeChildren(children);
  29154. }
  29155. var vnode, ns;
  29156. if (typeof tag === 'string') {
  29157. var Ctor;
  29158. ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
  29159. if (config.isReservedTag(tag)) {
  29160. // platform built-in elements
  29161. vnode = new VNode(
  29162. config.parsePlatformTagName(tag), data, children,
  29163. undefined, undefined, context
  29164. );
  29165. } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
  29166. // component
  29167. vnode = createComponent(Ctor, data, context, children, tag);
  29168. } else {
  29169. // unknown or unlisted namespaced elements
  29170. // check at runtime because it may get assigned a namespace when its
  29171. // parent normalizes children
  29172. vnode = new VNode(
  29173. tag, data, children,
  29174. undefined, undefined, context
  29175. );
  29176. }
  29177. } else {
  29178. // direct component options / constructor
  29179. vnode = createComponent(tag, data, context, children);
  29180. }
  29181. if (Array.isArray(vnode)) {
  29182. return vnode
  29183. } else if (isDef(vnode)) {
  29184. if (isDef(ns)) { applyNS(vnode, ns); }
  29185. if (isDef(data)) { registerDeepBindings(data); }
  29186. return vnode
  29187. } else {
  29188. return createEmptyVNode()
  29189. }
  29190. }
  29191. function applyNS (vnode, ns, force) {
  29192. vnode.ns = ns;
  29193. if (vnode.tag === 'foreignObject') {
  29194. // use default namespace inside foreignObject
  29195. ns = undefined;
  29196. force = true;
  29197. }
  29198. if (isDef(vnode.children)) {
  29199. for (var i = 0, l = vnode.children.length; i < l; i++) {
  29200. var child = vnode.children[i];
  29201. if (isDef(child.tag) && (
  29202. isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
  29203. applyNS(child, ns, force);
  29204. }
  29205. }
  29206. }
  29207. }
  29208. // ref #5318
  29209. // necessary to ensure parent re-render when deep bindings like :style and
  29210. // :class are used on slot nodes
  29211. function registerDeepBindings (data) {
  29212. if (isObject(data.style)) {
  29213. traverse(data.style);
  29214. }
  29215. if (isObject(data.class)) {
  29216. traverse(data.class);
  29217. }
  29218. }
  29219. /* */
  29220. function initRender (vm) {
  29221. vm._vnode = null; // the root of the child tree
  29222. vm._staticTrees = null; // v-once cached trees
  29223. var options = vm.$options;
  29224. var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
  29225. var renderContext = parentVnode && parentVnode.context;
  29226. vm.$slots = resolveSlots(options._renderChildren, renderContext);
  29227. vm.$scopedSlots = emptyObject;
  29228. // bind the createElement fn to this instance
  29229. // so that we get proper render context inside it.
  29230. // args order: tag, data, children, normalizationType, alwaysNormalize
  29231. // internal version is used by render functions compiled from templates
  29232. vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
  29233. // normalization is always applied for the public version, used in
  29234. // user-written render functions.
  29235. vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
  29236. // $attrs & $listeners are exposed for easier HOC creation.
  29237. // they need to be reactive so that HOCs using them are always updated
  29238. var parentData = parentVnode && parentVnode.data;
  29239. /* istanbul ignore else */
  29240. if (true) {
  29241. defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
  29242. !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
  29243. }, true);
  29244. defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {
  29245. !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
  29246. }, true);
  29247. } else {
  29248. defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);
  29249. defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);
  29250. }
  29251. }
  29252. function renderMixin (Vue) {
  29253. // install runtime convenience helpers
  29254. installRenderHelpers(Vue.prototype);
  29255. Vue.prototype.$nextTick = function (fn) {
  29256. return nextTick(fn, this)
  29257. };
  29258. Vue.prototype._render = function () {
  29259. var vm = this;
  29260. var ref = vm.$options;
  29261. var render = ref.render;
  29262. var _parentVnode = ref._parentVnode;
  29263. if (_parentVnode) {
  29264. vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;
  29265. }
  29266. // set parent vnode. this allows render functions to have access
  29267. // to the data on the placeholder node.
  29268. vm.$vnode = _parentVnode;
  29269. // render self
  29270. var vnode;
  29271. try {
  29272. vnode = render.call(vm._renderProxy, vm.$createElement);
  29273. } catch (e) {
  29274. handleError(e, vm, "render");
  29275. // return error render result,
  29276. // or previous vnode to prevent render error causing blank component
  29277. /* istanbul ignore else */
  29278. if ("development" !== 'production' && vm.$options.renderError) {
  29279. try {
  29280. vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
  29281. } catch (e) {
  29282. handleError(e, vm, "renderError");
  29283. vnode = vm._vnode;
  29284. }
  29285. } else {
  29286. vnode = vm._vnode;
  29287. }
  29288. }
  29289. // return empty vnode in case the render function errored out
  29290. if (!(vnode instanceof VNode)) {
  29291. if ("development" !== 'production' && Array.isArray(vnode)) {
  29292. warn(
  29293. 'Multiple root nodes returned from render function. Render function ' +
  29294. 'should return a single root node.',
  29295. vm
  29296. );
  29297. }
  29298. vnode = createEmptyVNode();
  29299. }
  29300. // set parent
  29301. vnode.parent = _parentVnode;
  29302. return vnode
  29303. };
  29304. }
  29305. /* */
  29306. var uid$3 = 0;
  29307. function initMixin (Vue) {
  29308. Vue.prototype._init = function (options) {
  29309. var vm = this;
  29310. // a uid
  29311. vm._uid = uid$3++;
  29312. var startTag, endTag;
  29313. /* istanbul ignore if */
  29314. if ("development" !== 'production' && config.performance && mark) {
  29315. startTag = "vue-perf-start:" + (vm._uid);
  29316. endTag = "vue-perf-end:" + (vm._uid);
  29317. mark(startTag);
  29318. }
  29319. // a flag to avoid this being observed
  29320. vm._isVue = true;
  29321. // merge options
  29322. if (options && options._isComponent) {
  29323. // optimize internal component instantiation
  29324. // since dynamic options merging is pretty slow, and none of the
  29325. // internal component options needs special treatment.
  29326. initInternalComponent(vm, options);
  29327. } else {
  29328. vm.$options = mergeOptions(
  29329. resolveConstructorOptions(vm.constructor),
  29330. options || {},
  29331. vm
  29332. );
  29333. }
  29334. /* istanbul ignore else */
  29335. if (true) {
  29336. initProxy(vm);
  29337. } else {
  29338. vm._renderProxy = vm;
  29339. }
  29340. // expose real self
  29341. vm._self = vm;
  29342. initLifecycle(vm);
  29343. initEvents(vm);
  29344. initRender(vm);
  29345. callHook(vm, 'beforeCreate');
  29346. initInjections(vm); // resolve injections before data/props
  29347. initState(vm);
  29348. initProvide(vm); // resolve provide after data/props
  29349. callHook(vm, 'created');
  29350. /* istanbul ignore if */
  29351. if ("development" !== 'production' && config.performance && mark) {
  29352. vm._name = formatComponentName(vm, false);
  29353. mark(endTag);
  29354. measure(("vue " + (vm._name) + " init"), startTag, endTag);
  29355. }
  29356. if (vm.$options.el) {
  29357. vm.$mount(vm.$options.el);
  29358. }
  29359. };
  29360. }
  29361. function initInternalComponent (vm, options) {
  29362. var opts = vm.$options = Object.create(vm.constructor.options);
  29363. // doing this because it's faster than dynamic enumeration.
  29364. var parentVnode = options._parentVnode;
  29365. opts.parent = options.parent;
  29366. opts._parentVnode = parentVnode;
  29367. var vnodeComponentOptions = parentVnode.componentOptions;
  29368. opts.propsData = vnodeComponentOptions.propsData;
  29369. opts._parentListeners = vnodeComponentOptions.listeners;
  29370. opts._renderChildren = vnodeComponentOptions.children;
  29371. opts._componentTag = vnodeComponentOptions.tag;
  29372. if (options.render) {
  29373. opts.render = options.render;
  29374. opts.staticRenderFns = options.staticRenderFns;
  29375. }
  29376. }
  29377. function resolveConstructorOptions (Ctor) {
  29378. var options = Ctor.options;
  29379. if (Ctor.super) {
  29380. var superOptions = resolveConstructorOptions(Ctor.super);
  29381. var cachedSuperOptions = Ctor.superOptions;
  29382. if (superOptions !== cachedSuperOptions) {
  29383. // super option changed,
  29384. // need to resolve new options.
  29385. Ctor.superOptions = superOptions;
  29386. // check if there are any late-modified/attached options (#4976)
  29387. var modifiedOptions = resolveModifiedOptions(Ctor);
  29388. // update base extend options
  29389. if (modifiedOptions) {
  29390. extend(Ctor.extendOptions, modifiedOptions);
  29391. }
  29392. options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
  29393. if (options.name) {
  29394. options.components[options.name] = Ctor;
  29395. }
  29396. }
  29397. }
  29398. return options
  29399. }
  29400. function resolveModifiedOptions (Ctor) {
  29401. var modified;
  29402. var latest = Ctor.options;
  29403. var extended = Ctor.extendOptions;
  29404. var sealed = Ctor.sealedOptions;
  29405. for (var key in latest) {
  29406. if (latest[key] !== sealed[key]) {
  29407. if (!modified) { modified = {}; }
  29408. modified[key] = dedupe(latest[key], extended[key], sealed[key]);
  29409. }
  29410. }
  29411. return modified
  29412. }
  29413. function dedupe (latest, extended, sealed) {
  29414. // compare latest and sealed to ensure lifecycle hooks won't be duplicated
  29415. // between merges
  29416. if (Array.isArray(latest)) {
  29417. var res = [];
  29418. sealed = Array.isArray(sealed) ? sealed : [sealed];
  29419. extended = Array.isArray(extended) ? extended : [extended];
  29420. for (var i = 0; i < latest.length; i++) {
  29421. // push original options and not sealed options to exclude duplicated options
  29422. if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {
  29423. res.push(latest[i]);
  29424. }
  29425. }
  29426. return res
  29427. } else {
  29428. return latest
  29429. }
  29430. }
  29431. function Vue (options) {
  29432. if ("development" !== 'production' &&
  29433. !(this instanceof Vue)
  29434. ) {
  29435. warn('Vue is a constructor and should be called with the `new` keyword');
  29436. }
  29437. this._init(options);
  29438. }
  29439. initMixin(Vue);
  29440. stateMixin(Vue);
  29441. eventsMixin(Vue);
  29442. lifecycleMixin(Vue);
  29443. renderMixin(Vue);
  29444. /* */
  29445. function initUse (Vue) {
  29446. Vue.use = function (plugin) {
  29447. var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
  29448. if (installedPlugins.indexOf(plugin) > -1) {
  29449. return this
  29450. }
  29451. // additional parameters
  29452. var args = toArray(arguments, 1);
  29453. args.unshift(this);
  29454. if (typeof plugin.install === 'function') {
  29455. plugin.install.apply(plugin, args);
  29456. } else if (typeof plugin === 'function') {
  29457. plugin.apply(null, args);
  29458. }
  29459. installedPlugins.push(plugin);
  29460. return this
  29461. };
  29462. }
  29463. /* */
  29464. function initMixin$1 (Vue) {
  29465. Vue.mixin = function (mixin) {
  29466. this.options = mergeOptions(this.options, mixin);
  29467. return this
  29468. };
  29469. }
  29470. /* */
  29471. function initExtend (Vue) {
  29472. /**
  29473. * Each instance constructor, including Vue, has a unique
  29474. * cid. This enables us to create wrapped "child
  29475. * constructors" for prototypal inheritance and cache them.
  29476. */
  29477. Vue.cid = 0;
  29478. var cid = 1;
  29479. /**
  29480. * Class inheritance
  29481. */
  29482. Vue.extend = function (extendOptions) {
  29483. extendOptions = extendOptions || {};
  29484. var Super = this;
  29485. var SuperId = Super.cid;
  29486. var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
  29487. if (cachedCtors[SuperId]) {
  29488. return cachedCtors[SuperId]
  29489. }
  29490. var name = extendOptions.name || Super.options.name;
  29491. if ("development" !== 'production' && name) {
  29492. validateComponentName(name);
  29493. }
  29494. var Sub = function VueComponent (options) {
  29495. this._init(options);
  29496. };
  29497. Sub.prototype = Object.create(Super.prototype);
  29498. Sub.prototype.constructor = Sub;
  29499. Sub.cid = cid++;
  29500. Sub.options = mergeOptions(
  29501. Super.options,
  29502. extendOptions
  29503. );
  29504. Sub['super'] = Super;
  29505. // For props and computed properties, we define the proxy getters on
  29506. // the Vue instances at extension time, on the extended prototype. This
  29507. // avoids Object.defineProperty calls for each instance created.
  29508. if (Sub.options.props) {
  29509. initProps$1(Sub);
  29510. }
  29511. if (Sub.options.computed) {
  29512. initComputed$1(Sub);
  29513. }
  29514. // allow further extension/mixin/plugin usage
  29515. Sub.extend = Super.extend;
  29516. Sub.mixin = Super.mixin;
  29517. Sub.use = Super.use;
  29518. // create asset registers, so extended classes
  29519. // can have their private assets too.
  29520. ASSET_TYPES.forEach(function (type) {
  29521. Sub[type] = Super[type];
  29522. });
  29523. // enable recursive self-lookup
  29524. if (name) {
  29525. Sub.options.components[name] = Sub;
  29526. }
  29527. // keep a reference to the super options at extension time.
  29528. // later at instantiation we can check if Super's options have
  29529. // been updated.
  29530. Sub.superOptions = Super.options;
  29531. Sub.extendOptions = extendOptions;
  29532. Sub.sealedOptions = extend({}, Sub.options);
  29533. // cache constructor
  29534. cachedCtors[SuperId] = Sub;
  29535. return Sub
  29536. };
  29537. }
  29538. function initProps$1 (Comp) {
  29539. var props = Comp.options.props;
  29540. for (var key in props) {
  29541. proxy(Comp.prototype, "_props", key);
  29542. }
  29543. }
  29544. function initComputed$1 (Comp) {
  29545. var computed = Comp.options.computed;
  29546. for (var key in computed) {
  29547. defineComputed(Comp.prototype, key, computed[key]);
  29548. }
  29549. }
  29550. /* */
  29551. function initAssetRegisters (Vue) {
  29552. /**
  29553. * Create asset registration methods.
  29554. */
  29555. ASSET_TYPES.forEach(function (type) {
  29556. Vue[type] = function (
  29557. id,
  29558. definition
  29559. ) {
  29560. if (!definition) {
  29561. return this.options[type + 's'][id]
  29562. } else {
  29563. /* istanbul ignore if */
  29564. if ("development" !== 'production' && type === 'component') {
  29565. validateComponentName(id);
  29566. }
  29567. if (type === 'component' && isPlainObject(definition)) {
  29568. definition.name = definition.name || id;
  29569. definition = this.options._base.extend(definition);
  29570. }
  29571. if (type === 'directive' && typeof definition === 'function') {
  29572. definition = { bind: definition, update: definition };
  29573. }
  29574. this.options[type + 's'][id] = definition;
  29575. return definition
  29576. }
  29577. };
  29578. });
  29579. }
  29580. /* */
  29581. function getComponentName (opts) {
  29582. return opts && (opts.Ctor.options.name || opts.tag)
  29583. }
  29584. function matches (pattern, name) {
  29585. if (Array.isArray(pattern)) {
  29586. return pattern.indexOf(name) > -1
  29587. } else if (typeof pattern === 'string') {
  29588. return pattern.split(',').indexOf(name) > -1
  29589. } else if (isRegExp(pattern)) {
  29590. return pattern.test(name)
  29591. }
  29592. /* istanbul ignore next */
  29593. return false
  29594. }
  29595. function pruneCache (keepAliveInstance, filter) {
  29596. var cache = keepAliveInstance.cache;
  29597. var keys = keepAliveInstance.keys;
  29598. var _vnode = keepAliveInstance._vnode;
  29599. for (var key in cache) {
  29600. var cachedNode = cache[key];
  29601. if (cachedNode) {
  29602. var name = getComponentName(cachedNode.componentOptions);
  29603. if (name && !filter(name)) {
  29604. pruneCacheEntry(cache, key, keys, _vnode);
  29605. }
  29606. }
  29607. }
  29608. }
  29609. function pruneCacheEntry (
  29610. cache,
  29611. key,
  29612. keys,
  29613. current
  29614. ) {
  29615. var cached$$1 = cache[key];
  29616. if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
  29617. cached$$1.componentInstance.$destroy();
  29618. }
  29619. cache[key] = null;
  29620. remove(keys, key);
  29621. }
  29622. var patternTypes = [String, RegExp, Array];
  29623. var KeepAlive = {
  29624. name: 'keep-alive',
  29625. abstract: true,
  29626. props: {
  29627. include: patternTypes,
  29628. exclude: patternTypes,
  29629. max: [String, Number]
  29630. },
  29631. created: function created () {
  29632. this.cache = Object.create(null);
  29633. this.keys = [];
  29634. },
  29635. destroyed: function destroyed () {
  29636. for (var key in this.cache) {
  29637. pruneCacheEntry(this.cache, key, this.keys);
  29638. }
  29639. },
  29640. mounted: function mounted () {
  29641. var this$1 = this;
  29642. this.$watch('include', function (val) {
  29643. pruneCache(this$1, function (name) { return matches(val, name); });
  29644. });
  29645. this.$watch('exclude', function (val) {
  29646. pruneCache(this$1, function (name) { return !matches(val, name); });
  29647. });
  29648. },
  29649. render: function render () {
  29650. var slot = this.$slots.default;
  29651. var vnode = getFirstComponentChild(slot);
  29652. var componentOptions = vnode && vnode.componentOptions;
  29653. if (componentOptions) {
  29654. // check pattern
  29655. var name = getComponentName(componentOptions);
  29656. var ref = this;
  29657. var include = ref.include;
  29658. var exclude = ref.exclude;
  29659. if (
  29660. // not included
  29661. (include && (!name || !matches(include, name))) ||
  29662. // excluded
  29663. (exclude && name && matches(exclude, name))
  29664. ) {
  29665. return vnode
  29666. }
  29667. var ref$1 = this;
  29668. var cache = ref$1.cache;
  29669. var keys = ref$1.keys;
  29670. var key = vnode.key == null
  29671. // same constructor may get registered as different local components
  29672. // so cid alone is not enough (#3269)
  29673. ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
  29674. : vnode.key;
  29675. if (cache[key]) {
  29676. vnode.componentInstance = cache[key].componentInstance;
  29677. // make current key freshest
  29678. remove(keys, key);
  29679. keys.push(key);
  29680. } else {
  29681. cache[key] = vnode;
  29682. keys.push(key);
  29683. // prune oldest entry
  29684. if (this.max && keys.length > parseInt(this.max)) {
  29685. pruneCacheEntry(cache, keys[0], keys, this._vnode);
  29686. }
  29687. }
  29688. vnode.data.keepAlive = true;
  29689. }
  29690. return vnode || (slot && slot[0])
  29691. }
  29692. };
  29693. var builtInComponents = {
  29694. KeepAlive: KeepAlive
  29695. };
  29696. /* */
  29697. function initGlobalAPI (Vue) {
  29698. // config
  29699. var configDef = {};
  29700. configDef.get = function () { return config; };
  29701. if (true) {
  29702. configDef.set = function () {
  29703. warn(
  29704. 'Do not replace the Vue.config object, set individual fields instead.'
  29705. );
  29706. };
  29707. }
  29708. Object.defineProperty(Vue, 'config', configDef);
  29709. // exposed util methods.
  29710. // NOTE: these are not considered part of the public API - avoid relying on
  29711. // them unless you are aware of the risk.
  29712. Vue.util = {
  29713. warn: warn,
  29714. extend: extend,
  29715. mergeOptions: mergeOptions,
  29716. defineReactive: defineReactive$$1
  29717. };
  29718. Vue.set = set;
  29719. Vue.delete = del;
  29720. Vue.nextTick = nextTick;
  29721. Vue.options = Object.create(null);
  29722. ASSET_TYPES.forEach(function (type) {
  29723. Vue.options[type + 's'] = Object.create(null);
  29724. });
  29725. // this is used to identify the "base" constructor to extend all plain-object
  29726. // components with in Weex's multi-instance scenarios.
  29727. Vue.options._base = Vue;
  29728. extend(Vue.options.components, builtInComponents);
  29729. initUse(Vue);
  29730. initMixin$1(Vue);
  29731. initExtend(Vue);
  29732. initAssetRegisters(Vue);
  29733. }
  29734. initGlobalAPI(Vue);
  29735. Object.defineProperty(Vue.prototype, '$isServer', {
  29736. get: isServerRendering
  29737. });
  29738. Object.defineProperty(Vue.prototype, '$ssrContext', {
  29739. get: function get () {
  29740. /* istanbul ignore next */
  29741. return this.$vnode && this.$vnode.ssrContext
  29742. }
  29743. });
  29744. // expose FunctionalRenderContext for ssr runtime helper installation
  29745. Object.defineProperty(Vue, 'FunctionalRenderContext', {
  29746. value: FunctionalRenderContext
  29747. });
  29748. Vue.version = '2.5.21';
  29749. /* */
  29750. // these are reserved for web because they are directly compiled away
  29751. // during template compilation
  29752. var isReservedAttr = makeMap('style,class');
  29753. // attributes that should be using props for binding
  29754. var acceptValue = makeMap('input,textarea,option,select,progress');
  29755. var mustUseProp = function (tag, type, attr) {
  29756. return (
  29757. (attr === 'value' && acceptValue(tag)) && type !== 'button' ||
  29758. (attr === 'selected' && tag === 'option') ||
  29759. (attr === 'checked' && tag === 'input') ||
  29760. (attr === 'muted' && tag === 'video')
  29761. )
  29762. };
  29763. var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
  29764. var isBooleanAttr = makeMap(
  29765. 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
  29766. 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
  29767. 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
  29768. 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
  29769. 'required,reversed,scoped,seamless,selected,sortable,translate,' +
  29770. 'truespeed,typemustmatch,visible'
  29771. );
  29772. var xlinkNS = 'http://www.w3.org/1999/xlink';
  29773. var isXlink = function (name) {
  29774. return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'
  29775. };
  29776. var getXlinkProp = function (name) {
  29777. return isXlink(name) ? name.slice(6, name.length) : ''
  29778. };
  29779. var isFalsyAttrValue = function (val) {
  29780. return val == null || val === false
  29781. };
  29782. /* */
  29783. function genClassForVnode (vnode) {
  29784. var data = vnode.data;
  29785. var parentNode = vnode;
  29786. var childNode = vnode;
  29787. while (isDef(childNode.componentInstance)) {
  29788. childNode = childNode.componentInstance._vnode;
  29789. if (childNode && childNode.data) {
  29790. data = mergeClassData(childNode.data, data);
  29791. }
  29792. }
  29793. while (isDef(parentNode = parentNode.parent)) {
  29794. if (parentNode && parentNode.data) {
  29795. data = mergeClassData(data, parentNode.data);
  29796. }
  29797. }
  29798. return renderClass(data.staticClass, data.class)
  29799. }
  29800. function mergeClassData (child, parent) {
  29801. return {
  29802. staticClass: concat(child.staticClass, parent.staticClass),
  29803. class: isDef(child.class)
  29804. ? [child.class, parent.class]
  29805. : parent.class
  29806. }
  29807. }
  29808. function renderClass (
  29809. staticClass,
  29810. dynamicClass
  29811. ) {
  29812. if (isDef(staticClass) || isDef(dynamicClass)) {
  29813. return concat(staticClass, stringifyClass(dynamicClass))
  29814. }
  29815. /* istanbul ignore next */
  29816. return ''
  29817. }
  29818. function concat (a, b) {
  29819. return a ? b ? (a + ' ' + b) : a : (b || '')
  29820. }
  29821. function stringifyClass (value) {
  29822. if (Array.isArray(value)) {
  29823. return stringifyArray(value)
  29824. }
  29825. if (isObject(value)) {
  29826. return stringifyObject(value)
  29827. }
  29828. if (typeof value === 'string') {
  29829. return value
  29830. }
  29831. /* istanbul ignore next */
  29832. return ''
  29833. }
  29834. function stringifyArray (value) {
  29835. var res = '';
  29836. var stringified;
  29837. for (var i = 0, l = value.length; i < l; i++) {
  29838. if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
  29839. if (res) { res += ' '; }
  29840. res += stringified;
  29841. }
  29842. }
  29843. return res
  29844. }
  29845. function stringifyObject (value) {
  29846. var res = '';
  29847. for (var key in value) {
  29848. if (value[key]) {
  29849. if (res) { res += ' '; }
  29850. res += key;
  29851. }
  29852. }
  29853. return res
  29854. }
  29855. /* */
  29856. var namespaceMap = {
  29857. svg: 'http://www.w3.org/2000/svg',
  29858. math: 'http://www.w3.org/1998/Math/MathML'
  29859. };
  29860. var isHTMLTag = makeMap(
  29861. 'html,body,base,head,link,meta,style,title,' +
  29862. 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
  29863. 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
  29864. 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
  29865. 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
  29866. 'embed,object,param,source,canvas,script,noscript,del,ins,' +
  29867. 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
  29868. 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
  29869. 'output,progress,select,textarea,' +
  29870. 'details,dialog,menu,menuitem,summary,' +
  29871. 'content,element,shadow,template,blockquote,iframe,tfoot'
  29872. );
  29873. // this map is intentionally selective, only covering SVG elements that may
  29874. // contain child elements.
  29875. var isSVG = makeMap(
  29876. 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
  29877. 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
  29878. 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',
  29879. true
  29880. );
  29881. var isPreTag = function (tag) { return tag === 'pre'; };
  29882. var isReservedTag = function (tag) {
  29883. return isHTMLTag(tag) || isSVG(tag)
  29884. };
  29885. function getTagNamespace (tag) {
  29886. if (isSVG(tag)) {
  29887. return 'svg'
  29888. }
  29889. // basic support for MathML
  29890. // note it doesn't support other MathML elements being component roots
  29891. if (tag === 'math') {
  29892. return 'math'
  29893. }
  29894. }
  29895. var unknownElementCache = Object.create(null);
  29896. function isUnknownElement (tag) {
  29897. /* istanbul ignore if */
  29898. if (!inBrowser) {
  29899. return true
  29900. }
  29901. if (isReservedTag(tag)) {
  29902. return false
  29903. }
  29904. tag = tag.toLowerCase();
  29905. /* istanbul ignore if */
  29906. if (unknownElementCache[tag] != null) {
  29907. return unknownElementCache[tag]
  29908. }
  29909. var el = document.createElement(tag);
  29910. if (tag.indexOf('-') > -1) {
  29911. // http://stackoverflow.com/a/28210364/1070244
  29912. return (unknownElementCache[tag] = (
  29913. el.constructor === window.HTMLUnknownElement ||
  29914. el.constructor === window.HTMLElement
  29915. ))
  29916. } else {
  29917. return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
  29918. }
  29919. }
  29920. var isTextInputType = makeMap('text,number,password,search,email,tel,url');
  29921. /* */
  29922. /**
  29923. * Query an element selector if it's not an element already.
  29924. */
  29925. function query (el) {
  29926. if (typeof el === 'string') {
  29927. var selected = document.querySelector(el);
  29928. if (!selected) {
  29929. "development" !== 'production' && warn(
  29930. 'Cannot find element: ' + el
  29931. );
  29932. return document.createElement('div')
  29933. }
  29934. return selected
  29935. } else {
  29936. return el
  29937. }
  29938. }
  29939. /* */
  29940. function createElement$1 (tagName, vnode) {
  29941. var elm = document.createElement(tagName);
  29942. if (tagName !== 'select') {
  29943. return elm
  29944. }
  29945. // false or null will remove the attribute but undefined will not
  29946. if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
  29947. elm.setAttribute('multiple', 'multiple');
  29948. }
  29949. return elm
  29950. }
  29951. function createElementNS (namespace, tagName) {
  29952. return document.createElementNS(namespaceMap[namespace], tagName)
  29953. }
  29954. function createTextNode (text) {
  29955. return document.createTextNode(text)
  29956. }
  29957. function createComment (text) {
  29958. return document.createComment(text)
  29959. }
  29960. function insertBefore (parentNode, newNode, referenceNode) {
  29961. parentNode.insertBefore(newNode, referenceNode);
  29962. }
  29963. function removeChild (node, child) {
  29964. node.removeChild(child);
  29965. }
  29966. function appendChild (node, child) {
  29967. node.appendChild(child);
  29968. }
  29969. function parentNode (node) {
  29970. return node.parentNode
  29971. }
  29972. function nextSibling (node) {
  29973. return node.nextSibling
  29974. }
  29975. function tagName (node) {
  29976. return node.tagName
  29977. }
  29978. function setTextContent (node, text) {
  29979. node.textContent = text;
  29980. }
  29981. function setStyleScope (node, scopeId) {
  29982. node.setAttribute(scopeId, '');
  29983. }
  29984. var nodeOps = /*#__PURE__*/Object.freeze({
  29985. createElement: createElement$1,
  29986. createElementNS: createElementNS,
  29987. createTextNode: createTextNode,
  29988. createComment: createComment,
  29989. insertBefore: insertBefore,
  29990. removeChild: removeChild,
  29991. appendChild: appendChild,
  29992. parentNode: parentNode,
  29993. nextSibling: nextSibling,
  29994. tagName: tagName,
  29995. setTextContent: setTextContent,
  29996. setStyleScope: setStyleScope
  29997. });
  29998. /* */
  29999. var ref = {
  30000. create: function create (_, vnode) {
  30001. registerRef(vnode);
  30002. },
  30003. update: function update (oldVnode, vnode) {
  30004. if (oldVnode.data.ref !== vnode.data.ref) {
  30005. registerRef(oldVnode, true);
  30006. registerRef(vnode);
  30007. }
  30008. },
  30009. destroy: function destroy (vnode) {
  30010. registerRef(vnode, true);
  30011. }
  30012. };
  30013. function registerRef (vnode, isRemoval) {
  30014. var key = vnode.data.ref;
  30015. if (!isDef(key)) { return }
  30016. var vm = vnode.context;
  30017. var ref = vnode.componentInstance || vnode.elm;
  30018. var refs = vm.$refs;
  30019. if (isRemoval) {
  30020. if (Array.isArray(refs[key])) {
  30021. remove(refs[key], ref);
  30022. } else if (refs[key] === ref) {
  30023. refs[key] = undefined;
  30024. }
  30025. } else {
  30026. if (vnode.data.refInFor) {
  30027. if (!Array.isArray(refs[key])) {
  30028. refs[key] = [ref];
  30029. } else if (refs[key].indexOf(ref) < 0) {
  30030. // $flow-disable-line
  30031. refs[key].push(ref);
  30032. }
  30033. } else {
  30034. refs[key] = ref;
  30035. }
  30036. }
  30037. }
  30038. /**
  30039. * Virtual DOM patching algorithm based on Snabbdom by
  30040. * Simon Friis Vindum (@paldepind)
  30041. * Licensed under the MIT License
  30042. * https://github.com/paldepind/snabbdom/blob/master/LICENSE
  30043. *
  30044. * modified by Evan You (@yyx990803)
  30045. *
  30046. * Not type-checking this because this file is perf-critical and the cost
  30047. * of making flow understand it is not worth it.
  30048. */
  30049. var emptyNode = new VNode('', {}, []);
  30050. var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
  30051. function sameVnode (a, b) {
  30052. return (
  30053. a.key === b.key && (
  30054. (
  30055. a.tag === b.tag &&
  30056. a.isComment === b.isComment &&
  30057. isDef(a.data) === isDef(b.data) &&
  30058. sameInputType(a, b)
  30059. ) || (
  30060. isTrue(a.isAsyncPlaceholder) &&
  30061. a.asyncFactory === b.asyncFactory &&
  30062. isUndef(b.asyncFactory.error)
  30063. )
  30064. )
  30065. )
  30066. }
  30067. function sameInputType (a, b) {
  30068. if (a.tag !== 'input') { return true }
  30069. var i;
  30070. var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;
  30071. var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;
  30072. return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)
  30073. }
  30074. function createKeyToOldIdx (children, beginIdx, endIdx) {
  30075. var i, key;
  30076. var map = {};
  30077. for (i = beginIdx; i <= endIdx; ++i) {
  30078. key = children[i].key;
  30079. if (isDef(key)) { map[key] = i; }
  30080. }
  30081. return map
  30082. }
  30083. function createPatchFunction (backend) {
  30084. var i, j;
  30085. var cbs = {};
  30086. var modules = backend.modules;
  30087. var nodeOps = backend.nodeOps;
  30088. for (i = 0; i < hooks.length; ++i) {
  30089. cbs[hooks[i]] = [];
  30090. for (j = 0; j < modules.length; ++j) {
  30091. if (isDef(modules[j][hooks[i]])) {
  30092. cbs[hooks[i]].push(modules[j][hooks[i]]);
  30093. }
  30094. }
  30095. }
  30096. function emptyNodeAt (elm) {
  30097. return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)
  30098. }
  30099. function createRmCb (childElm, listeners) {
  30100. function remove$$1 () {
  30101. if (--remove$$1.listeners === 0) {
  30102. removeNode(childElm);
  30103. }
  30104. }
  30105. remove$$1.listeners = listeners;
  30106. return remove$$1
  30107. }
  30108. function removeNode (el) {
  30109. var parent = nodeOps.parentNode(el);
  30110. // element may have already been removed due to v-html / v-text
  30111. if (isDef(parent)) {
  30112. nodeOps.removeChild(parent, el);
  30113. }
  30114. }
  30115. function isUnknownElement$$1 (vnode, inVPre) {
  30116. return (
  30117. !inVPre &&
  30118. !vnode.ns &&
  30119. !(
  30120. config.ignoredElements.length &&
  30121. config.ignoredElements.some(function (ignore) {
  30122. return isRegExp(ignore)
  30123. ? ignore.test(vnode.tag)
  30124. : ignore === vnode.tag
  30125. })
  30126. ) &&
  30127. config.isUnknownElement(vnode.tag)
  30128. )
  30129. }
  30130. var creatingElmInVPre = 0;
  30131. function createElm (
  30132. vnode,
  30133. insertedVnodeQueue,
  30134. parentElm,
  30135. refElm,
  30136. nested,
  30137. ownerArray,
  30138. index
  30139. ) {
  30140. if (isDef(vnode.elm) && isDef(ownerArray)) {
  30141. // This vnode was used in a previous render!
  30142. // now it's used as a new node, overwriting its elm would cause
  30143. // potential patch errors down the road when it's used as an insertion
  30144. // reference node. Instead, we clone the node on-demand before creating
  30145. // associated DOM element for it.
  30146. vnode = ownerArray[index] = cloneVNode(vnode);
  30147. }
  30148. vnode.isRootInsert = !nested; // for transition enter check
  30149. if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
  30150. return
  30151. }
  30152. var data = vnode.data;
  30153. var children = vnode.children;
  30154. var tag = vnode.tag;
  30155. if (isDef(tag)) {
  30156. if (true) {
  30157. if (data && data.pre) {
  30158. creatingElmInVPre++;
  30159. }
  30160. if (isUnknownElement$$1(vnode, creatingElmInVPre)) {
  30161. warn(
  30162. 'Unknown custom element: <' + tag + '> - did you ' +
  30163. 'register the component correctly? For recursive components, ' +
  30164. 'make sure to provide the "name" option.',
  30165. vnode.context
  30166. );
  30167. }
  30168. }
  30169. vnode.elm = vnode.ns
  30170. ? nodeOps.createElementNS(vnode.ns, tag)
  30171. : nodeOps.createElement(tag, vnode);
  30172. setScope(vnode);
  30173. /* istanbul ignore if */
  30174. {
  30175. createChildren(vnode, children, insertedVnodeQueue);
  30176. if (isDef(data)) {
  30177. invokeCreateHooks(vnode, insertedVnodeQueue);
  30178. }
  30179. insert(parentElm, vnode.elm, refElm);
  30180. }
  30181. if ("development" !== 'production' && data && data.pre) {
  30182. creatingElmInVPre--;
  30183. }
  30184. } else if (isTrue(vnode.isComment)) {
  30185. vnode.elm = nodeOps.createComment(vnode.text);
  30186. insert(parentElm, vnode.elm, refElm);
  30187. } else {
  30188. vnode.elm = nodeOps.createTextNode(vnode.text);
  30189. insert(parentElm, vnode.elm, refElm);
  30190. }
  30191. }
  30192. function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
  30193. var i = vnode.data;
  30194. if (isDef(i)) {
  30195. var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
  30196. if (isDef(i = i.hook) && isDef(i = i.init)) {
  30197. i(vnode, false /* hydrating */);
  30198. }
  30199. // after calling the init hook, if the vnode is a child component
  30200. // it should've created a child instance and mounted it. the child
  30201. // component also has set the placeholder vnode's elm.
  30202. // in that case we can just return the element and be done.
  30203. if (isDef(vnode.componentInstance)) {
  30204. initComponent(vnode, insertedVnodeQueue);
  30205. insert(parentElm, vnode.elm, refElm);
  30206. if (isTrue(isReactivated)) {
  30207. reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
  30208. }
  30209. return true
  30210. }
  30211. }
  30212. }
  30213. function initComponent (vnode, insertedVnodeQueue) {
  30214. if (isDef(vnode.data.pendingInsert)) {
  30215. insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
  30216. vnode.data.pendingInsert = null;
  30217. }
  30218. vnode.elm = vnode.componentInstance.$el;
  30219. if (isPatchable(vnode)) {
  30220. invokeCreateHooks(vnode, insertedVnodeQueue);
  30221. setScope(vnode);
  30222. } else {
  30223. // empty component root.
  30224. // skip all element-related modules except for ref (#3455)
  30225. registerRef(vnode);
  30226. // make sure to invoke the insert hook
  30227. insertedVnodeQueue.push(vnode);
  30228. }
  30229. }
  30230. function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
  30231. var i;
  30232. // hack for #4339: a reactivated component with inner transition
  30233. // does not trigger because the inner node's created hooks are not called
  30234. // again. It's not ideal to involve module-specific logic in here but
  30235. // there doesn't seem to be a better way to do it.
  30236. var innerNode = vnode;
  30237. while (innerNode.componentInstance) {
  30238. innerNode = innerNode.componentInstance._vnode;
  30239. if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
  30240. for (i = 0; i < cbs.activate.length; ++i) {
  30241. cbs.activate[i](emptyNode, innerNode);
  30242. }
  30243. insertedVnodeQueue.push(innerNode);
  30244. break
  30245. }
  30246. }
  30247. // unlike a newly created component,
  30248. // a reactivated keep-alive component doesn't insert itself
  30249. insert(parentElm, vnode.elm, refElm);
  30250. }
  30251. function insert (parent, elm, ref$$1) {
  30252. if (isDef(parent)) {
  30253. if (isDef(ref$$1)) {
  30254. if (nodeOps.parentNode(ref$$1) === parent) {
  30255. nodeOps.insertBefore(parent, elm, ref$$1);
  30256. }
  30257. } else {
  30258. nodeOps.appendChild(parent, elm);
  30259. }
  30260. }
  30261. }
  30262. function createChildren (vnode, children, insertedVnodeQueue) {
  30263. if (Array.isArray(children)) {
  30264. if (true) {
  30265. checkDuplicateKeys(children);
  30266. }
  30267. for (var i = 0; i < children.length; ++i) {
  30268. createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);
  30269. }
  30270. } else if (isPrimitive(vnode.text)) {
  30271. nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
  30272. }
  30273. }
  30274. function isPatchable (vnode) {
  30275. while (vnode.componentInstance) {
  30276. vnode = vnode.componentInstance._vnode;
  30277. }
  30278. return isDef(vnode.tag)
  30279. }
  30280. function invokeCreateHooks (vnode, insertedVnodeQueue) {
  30281. for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
  30282. cbs.create[i$1](emptyNode, vnode);
  30283. }
  30284. i = vnode.data.hook; // Reuse variable
  30285. if (isDef(i)) {
  30286. if (isDef(i.create)) { i.create(emptyNode, vnode); }
  30287. if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }
  30288. }
  30289. }
  30290. // set scope id attribute for scoped CSS.
  30291. // this is implemented as a special case to avoid the overhead
  30292. // of going through the normal attribute patching process.
  30293. function setScope (vnode) {
  30294. var i;
  30295. if (isDef(i = vnode.fnScopeId)) {
  30296. nodeOps.setStyleScope(vnode.elm, i);
  30297. } else {
  30298. var ancestor = vnode;
  30299. while (ancestor) {
  30300. if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
  30301. nodeOps.setStyleScope(vnode.elm, i);
  30302. }
  30303. ancestor = ancestor.parent;
  30304. }
  30305. }
  30306. // for slot content they should also get the scopeId from the host instance.
  30307. if (isDef(i = activeInstance) &&
  30308. i !== vnode.context &&
  30309. i !== vnode.fnContext &&
  30310. isDef(i = i.$options._scopeId)
  30311. ) {
  30312. nodeOps.setStyleScope(vnode.elm, i);
  30313. }
  30314. }
  30315. function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
  30316. for (; startIdx <= endIdx; ++startIdx) {
  30317. createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
  30318. }
  30319. }
  30320. function invokeDestroyHook (vnode) {
  30321. var i, j;
  30322. var data = vnode.data;
  30323. if (isDef(data)) {
  30324. if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }
  30325. for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }
  30326. }
  30327. if (isDef(i = vnode.children)) {
  30328. for (j = 0; j < vnode.children.length; ++j) {
  30329. invokeDestroyHook(vnode.children[j]);
  30330. }
  30331. }
  30332. }
  30333. function removeVnodes (parentElm, vnodes, startIdx, endIdx) {
  30334. for (; startIdx <= endIdx; ++startIdx) {
  30335. var ch = vnodes[startIdx];
  30336. if (isDef(ch)) {
  30337. if (isDef(ch.tag)) {
  30338. removeAndInvokeRemoveHook(ch);
  30339. invokeDestroyHook(ch);
  30340. } else { // Text node
  30341. removeNode(ch.elm);
  30342. }
  30343. }
  30344. }
  30345. }
  30346. function removeAndInvokeRemoveHook (vnode, rm) {
  30347. if (isDef(rm) || isDef(vnode.data)) {
  30348. var i;
  30349. var listeners = cbs.remove.length + 1;
  30350. if (isDef(rm)) {
  30351. // we have a recursively passed down rm callback
  30352. // increase the listeners count
  30353. rm.listeners += listeners;
  30354. } else {
  30355. // directly removing
  30356. rm = createRmCb(vnode.elm, listeners);
  30357. }
  30358. // recursively invoke hooks on child component root node
  30359. if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
  30360. removeAndInvokeRemoveHook(i, rm);
  30361. }
  30362. for (i = 0; i < cbs.remove.length; ++i) {
  30363. cbs.remove[i](vnode, rm);
  30364. }
  30365. if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
  30366. i(vnode, rm);
  30367. } else {
  30368. rm();
  30369. }
  30370. } else {
  30371. removeNode(vnode.elm);
  30372. }
  30373. }
  30374. function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
  30375. var oldStartIdx = 0;
  30376. var newStartIdx = 0;
  30377. var oldEndIdx = oldCh.length - 1;
  30378. var oldStartVnode = oldCh[0];
  30379. var oldEndVnode = oldCh[oldEndIdx];
  30380. var newEndIdx = newCh.length - 1;
  30381. var newStartVnode = newCh[0];
  30382. var newEndVnode = newCh[newEndIdx];
  30383. var oldKeyToIdx, idxInOld, vnodeToMove, refElm;
  30384. // removeOnly is a special flag used only by <transition-group>
  30385. // to ensure removed elements stay in correct relative positions
  30386. // during leaving transitions
  30387. var canMove = !removeOnly;
  30388. if (true) {
  30389. checkDuplicateKeys(newCh);
  30390. }
  30391. while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
  30392. if (isUndef(oldStartVnode)) {
  30393. oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
  30394. } else if (isUndef(oldEndVnode)) {
  30395. oldEndVnode = oldCh[--oldEndIdx];
  30396. } else if (sameVnode(oldStartVnode, newStartVnode)) {
  30397. patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
  30398. oldStartVnode = oldCh[++oldStartIdx];
  30399. newStartVnode = newCh[++newStartIdx];
  30400. } else if (sameVnode(oldEndVnode, newEndVnode)) {
  30401. patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
  30402. oldEndVnode = oldCh[--oldEndIdx];
  30403. newEndVnode = newCh[--newEndIdx];
  30404. } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
  30405. patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
  30406. canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
  30407. oldStartVnode = oldCh[++oldStartIdx];
  30408. newEndVnode = newCh[--newEndIdx];
  30409. } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
  30410. patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
  30411. canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
  30412. oldEndVnode = oldCh[--oldEndIdx];
  30413. newStartVnode = newCh[++newStartIdx];
  30414. } else {
  30415. if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }
  30416. idxInOld = isDef(newStartVnode.key)
  30417. ? oldKeyToIdx[newStartVnode.key]
  30418. : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
  30419. if (isUndef(idxInOld)) { // New element
  30420. createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
  30421. } else {
  30422. vnodeToMove = oldCh[idxInOld];
  30423. if (sameVnode(vnodeToMove, newStartVnode)) {
  30424. patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
  30425. oldCh[idxInOld] = undefined;
  30426. canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
  30427. } else {
  30428. // same key but different element. treat as new element
  30429. createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
  30430. }
  30431. }
  30432. newStartVnode = newCh[++newStartIdx];
  30433. }
  30434. }
  30435. if (oldStartIdx > oldEndIdx) {
  30436. refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
  30437. addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
  30438. } else if (newStartIdx > newEndIdx) {
  30439. removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
  30440. }
  30441. }
  30442. function checkDuplicateKeys (children) {
  30443. var seenKeys = {};
  30444. for (var i = 0; i < children.length; i++) {
  30445. var vnode = children[i];
  30446. var key = vnode.key;
  30447. if (isDef(key)) {
  30448. if (seenKeys[key]) {
  30449. warn(
  30450. ("Duplicate keys detected: '" + key + "'. This may cause an update error."),
  30451. vnode.context
  30452. );
  30453. } else {
  30454. seenKeys[key] = true;
  30455. }
  30456. }
  30457. }
  30458. }
  30459. function findIdxInOld (node, oldCh, start, end) {
  30460. for (var i = start; i < end; i++) {
  30461. var c = oldCh[i];
  30462. if (isDef(c) && sameVnode(node, c)) { return i }
  30463. }
  30464. }
  30465. function patchVnode (
  30466. oldVnode,
  30467. vnode,
  30468. insertedVnodeQueue,
  30469. ownerArray,
  30470. index,
  30471. removeOnly
  30472. ) {
  30473. if (oldVnode === vnode) {
  30474. return
  30475. }
  30476. if (isDef(vnode.elm) && isDef(ownerArray)) {
  30477. // clone reused vnode
  30478. vnode = ownerArray[index] = cloneVNode(vnode);
  30479. }
  30480. var elm = vnode.elm = oldVnode.elm;
  30481. if (isTrue(oldVnode.isAsyncPlaceholder)) {
  30482. if (isDef(vnode.asyncFactory.resolved)) {
  30483. hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
  30484. } else {
  30485. vnode.isAsyncPlaceholder = true;
  30486. }
  30487. return
  30488. }
  30489. // reuse element for static trees.
  30490. // note we only do this if the vnode is cloned -
  30491. // if the new node is not cloned it means the render functions have been
  30492. // reset by the hot-reload-api and we need to do a proper re-render.
  30493. if (isTrue(vnode.isStatic) &&
  30494. isTrue(oldVnode.isStatic) &&
  30495. vnode.key === oldVnode.key &&
  30496. (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))
  30497. ) {
  30498. vnode.componentInstance = oldVnode.componentInstance;
  30499. return
  30500. }
  30501. var i;
  30502. var data = vnode.data;
  30503. if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
  30504. i(oldVnode, vnode);
  30505. }
  30506. var oldCh = oldVnode.children;
  30507. var ch = vnode.children;
  30508. if (isDef(data) && isPatchable(vnode)) {
  30509. for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }
  30510. if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }
  30511. }
  30512. if (isUndef(vnode.text)) {
  30513. if (isDef(oldCh) && isDef(ch)) {
  30514. if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }
  30515. } else if (isDef(ch)) {
  30516. if (true) {
  30517. checkDuplicateKeys(ch);
  30518. }
  30519. if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
  30520. addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
  30521. } else if (isDef(oldCh)) {
  30522. removeVnodes(elm, oldCh, 0, oldCh.length - 1);
  30523. } else if (isDef(oldVnode.text)) {
  30524. nodeOps.setTextContent(elm, '');
  30525. }
  30526. } else if (oldVnode.text !== vnode.text) {
  30527. nodeOps.setTextContent(elm, vnode.text);
  30528. }
  30529. if (isDef(data)) {
  30530. if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }
  30531. }
  30532. }
  30533. function invokeInsertHook (vnode, queue, initial) {
  30534. // delay insert hooks for component root nodes, invoke them after the
  30535. // element is really inserted
  30536. if (isTrue(initial) && isDef(vnode.parent)) {
  30537. vnode.parent.data.pendingInsert = queue;
  30538. } else {
  30539. for (var i = 0; i < queue.length; ++i) {
  30540. queue[i].data.hook.insert(queue[i]);
  30541. }
  30542. }
  30543. }
  30544. var hydrationBailed = false;
  30545. // list of modules that can skip create hook during hydration because they
  30546. // are already rendered on the client or has no need for initialization
  30547. // Note: style is excluded because it relies on initial clone for future
  30548. // deep updates (#7063).
  30549. var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');
  30550. // Note: this is a browser-only function so we can assume elms are DOM nodes.
  30551. function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {
  30552. var i;
  30553. var tag = vnode.tag;
  30554. var data = vnode.data;
  30555. var children = vnode.children;
  30556. inVPre = inVPre || (data && data.pre);
  30557. vnode.elm = elm;
  30558. if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
  30559. vnode.isAsyncPlaceholder = true;
  30560. return true
  30561. }
  30562. // assert node match
  30563. if (true) {
  30564. if (!assertNodeMatch(elm, vnode, inVPre)) {
  30565. return false
  30566. }
  30567. }
  30568. if (isDef(data)) {
  30569. if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
  30570. if (isDef(i = vnode.componentInstance)) {
  30571. // child component. it should have hydrated its own tree.
  30572. initComponent(vnode, insertedVnodeQueue);
  30573. return true
  30574. }
  30575. }
  30576. if (isDef(tag)) {
  30577. if (isDef(children)) {
  30578. // empty element, allow client to pick up and populate children
  30579. if (!elm.hasChildNodes()) {
  30580. createChildren(vnode, children, insertedVnodeQueue);
  30581. } else {
  30582. // v-html and domProps: innerHTML
  30583. if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {
  30584. if (i !== elm.innerHTML) {
  30585. /* istanbul ignore if */
  30586. if ("development" !== 'production' &&
  30587. typeof console !== 'undefined' &&
  30588. !hydrationBailed
  30589. ) {
  30590. hydrationBailed = true;
  30591. console.warn('Parent: ', elm);
  30592. console.warn('server innerHTML: ', i);
  30593. console.warn('client innerHTML: ', elm.innerHTML);
  30594. }
  30595. return false
  30596. }
  30597. } else {
  30598. // iterate and compare children lists
  30599. var childrenMatch = true;
  30600. var childNode = elm.firstChild;
  30601. for (var i$1 = 0; i$1 < children.length; i$1++) {
  30602. if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {
  30603. childrenMatch = false;
  30604. break
  30605. }
  30606. childNode = childNode.nextSibling;
  30607. }
  30608. // if childNode is not null, it means the actual childNodes list is
  30609. // longer than the virtual children list.
  30610. if (!childrenMatch || childNode) {
  30611. /* istanbul ignore if */
  30612. if ("development" !== 'production' &&
  30613. typeof console !== 'undefined' &&
  30614. !hydrationBailed
  30615. ) {
  30616. hydrationBailed = true;
  30617. console.warn('Parent: ', elm);
  30618. console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
  30619. }
  30620. return false
  30621. }
  30622. }
  30623. }
  30624. }
  30625. if (isDef(data)) {
  30626. var fullInvoke = false;
  30627. for (var key in data) {
  30628. if (!isRenderedModule(key)) {
  30629. fullInvoke = true;
  30630. invokeCreateHooks(vnode, insertedVnodeQueue);
  30631. break
  30632. }
  30633. }
  30634. if (!fullInvoke && data['class']) {
  30635. // ensure collecting deps for deep class bindings for future updates
  30636. traverse(data['class']);
  30637. }
  30638. }
  30639. } else if (elm.data !== vnode.text) {
  30640. elm.data = vnode.text;
  30641. }
  30642. return true
  30643. }
  30644. function assertNodeMatch (node, vnode, inVPre) {
  30645. if (isDef(vnode.tag)) {
  30646. return vnode.tag.indexOf('vue-component') === 0 || (
  30647. !isUnknownElement$$1(vnode, inVPre) &&
  30648. vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())
  30649. )
  30650. } else {
  30651. return node.nodeType === (vnode.isComment ? 8 : 3)
  30652. }
  30653. }
  30654. return function patch (oldVnode, vnode, hydrating, removeOnly) {
  30655. if (isUndef(vnode)) {
  30656. if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }
  30657. return
  30658. }
  30659. var isInitialPatch = false;
  30660. var insertedVnodeQueue = [];
  30661. if (isUndef(oldVnode)) {
  30662. // empty mount (likely as component), create new root element
  30663. isInitialPatch = true;
  30664. createElm(vnode, insertedVnodeQueue);
  30665. } else {
  30666. var isRealElement = isDef(oldVnode.nodeType);
  30667. if (!isRealElement && sameVnode(oldVnode, vnode)) {
  30668. // patch existing root node
  30669. patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);
  30670. } else {
  30671. if (isRealElement) {
  30672. // mounting to a real element
  30673. // check if this is server-rendered content and if we can perform
  30674. // a successful hydration.
  30675. if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
  30676. oldVnode.removeAttribute(SSR_ATTR);
  30677. hydrating = true;
  30678. }
  30679. if (isTrue(hydrating)) {
  30680. if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
  30681. invokeInsertHook(vnode, insertedVnodeQueue, true);
  30682. return oldVnode
  30683. } else if (true) {
  30684. warn(
  30685. 'The client-side rendered virtual DOM tree is not matching ' +
  30686. 'server-rendered content. This is likely caused by incorrect ' +
  30687. 'HTML markup, for example nesting block-level elements inside ' +
  30688. '<p>, or missing <tbody>. Bailing hydration and performing ' +
  30689. 'full client-side render.'
  30690. );
  30691. }
  30692. }
  30693. // either not server-rendered, or hydration failed.
  30694. // create an empty node and replace it
  30695. oldVnode = emptyNodeAt(oldVnode);
  30696. }
  30697. // replacing existing element
  30698. var oldElm = oldVnode.elm;
  30699. var parentElm = nodeOps.parentNode(oldElm);
  30700. // create new node
  30701. createElm(
  30702. vnode,
  30703. insertedVnodeQueue,
  30704. // extremely rare edge case: do not insert if old element is in a
  30705. // leaving transition. Only happens when combining transition +
  30706. // keep-alive + HOCs. (#4590)
  30707. oldElm._leaveCb ? null : parentElm,
  30708. nodeOps.nextSibling(oldElm)
  30709. );
  30710. // update parent placeholder node element, recursively
  30711. if (isDef(vnode.parent)) {
  30712. var ancestor = vnode.parent;
  30713. var patchable = isPatchable(vnode);
  30714. while (ancestor) {
  30715. for (var i = 0; i < cbs.destroy.length; ++i) {
  30716. cbs.destroy[i](ancestor);
  30717. }
  30718. ancestor.elm = vnode.elm;
  30719. if (patchable) {
  30720. for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
  30721. cbs.create[i$1](emptyNode, ancestor);
  30722. }
  30723. // #6513
  30724. // invoke insert hooks that may have been merged by create hooks.
  30725. // e.g. for directives that uses the "inserted" hook.
  30726. var insert = ancestor.data.hook.insert;
  30727. if (insert.merged) {
  30728. // start at index 1 to avoid re-invoking component mounted hook
  30729. for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {
  30730. insert.fns[i$2]();
  30731. }
  30732. }
  30733. } else {
  30734. registerRef(ancestor);
  30735. }
  30736. ancestor = ancestor.parent;
  30737. }
  30738. }
  30739. // destroy old node
  30740. if (isDef(parentElm)) {
  30741. removeVnodes(parentElm, [oldVnode], 0, 0);
  30742. } else if (isDef(oldVnode.tag)) {
  30743. invokeDestroyHook(oldVnode);
  30744. }
  30745. }
  30746. }
  30747. invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
  30748. return vnode.elm
  30749. }
  30750. }
  30751. /* */
  30752. var directives = {
  30753. create: updateDirectives,
  30754. update: updateDirectives,
  30755. destroy: function unbindDirectives (vnode) {
  30756. updateDirectives(vnode, emptyNode);
  30757. }
  30758. };
  30759. function updateDirectives (oldVnode, vnode) {
  30760. if (oldVnode.data.directives || vnode.data.directives) {
  30761. _update(oldVnode, vnode);
  30762. }
  30763. }
  30764. function _update (oldVnode, vnode) {
  30765. var isCreate = oldVnode === emptyNode;
  30766. var isDestroy = vnode === emptyNode;
  30767. var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
  30768. var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);
  30769. var dirsWithInsert = [];
  30770. var dirsWithPostpatch = [];
  30771. var key, oldDir, dir;
  30772. for (key in newDirs) {
  30773. oldDir = oldDirs[key];
  30774. dir = newDirs[key];
  30775. if (!oldDir) {
  30776. // new directive, bind
  30777. callHook$1(dir, 'bind', vnode, oldVnode);
  30778. if (dir.def && dir.def.inserted) {
  30779. dirsWithInsert.push(dir);
  30780. }
  30781. } else {
  30782. // existing directive, update
  30783. dir.oldValue = oldDir.value;
  30784. callHook$1(dir, 'update', vnode, oldVnode);
  30785. if (dir.def && dir.def.componentUpdated) {
  30786. dirsWithPostpatch.push(dir);
  30787. }
  30788. }
  30789. }
  30790. if (dirsWithInsert.length) {
  30791. var callInsert = function () {
  30792. for (var i = 0; i < dirsWithInsert.length; i++) {
  30793. callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
  30794. }
  30795. };
  30796. if (isCreate) {
  30797. mergeVNodeHook(vnode, 'insert', callInsert);
  30798. } else {
  30799. callInsert();
  30800. }
  30801. }
  30802. if (dirsWithPostpatch.length) {
  30803. mergeVNodeHook(vnode, 'postpatch', function () {
  30804. for (var i = 0; i < dirsWithPostpatch.length; i++) {
  30805. callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
  30806. }
  30807. });
  30808. }
  30809. if (!isCreate) {
  30810. for (key in oldDirs) {
  30811. if (!newDirs[key]) {
  30812. // no longer present, unbind
  30813. callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
  30814. }
  30815. }
  30816. }
  30817. }
  30818. var emptyModifiers = Object.create(null);
  30819. function normalizeDirectives$1 (
  30820. dirs,
  30821. vm
  30822. ) {
  30823. var res = Object.create(null);
  30824. if (!dirs) {
  30825. // $flow-disable-line
  30826. return res
  30827. }
  30828. var i, dir;
  30829. for (i = 0; i < dirs.length; i++) {
  30830. dir = dirs[i];
  30831. if (!dir.modifiers) {
  30832. // $flow-disable-line
  30833. dir.modifiers = emptyModifiers;
  30834. }
  30835. res[getRawDirName(dir)] = dir;
  30836. dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
  30837. }
  30838. // $flow-disable-line
  30839. return res
  30840. }
  30841. function getRawDirName (dir) {
  30842. return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))
  30843. }
  30844. function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {
  30845. var fn = dir.def && dir.def[hook];
  30846. if (fn) {
  30847. try {
  30848. fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
  30849. } catch (e) {
  30850. handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));
  30851. }
  30852. }
  30853. }
  30854. var baseModules = [
  30855. ref,
  30856. directives
  30857. ];
  30858. /* */
  30859. function updateAttrs (oldVnode, vnode) {
  30860. var opts = vnode.componentOptions;
  30861. if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
  30862. return
  30863. }
  30864. if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
  30865. return
  30866. }
  30867. var key, cur, old;
  30868. var elm = vnode.elm;
  30869. var oldAttrs = oldVnode.data.attrs || {};
  30870. var attrs = vnode.data.attrs || {};
  30871. // clone observed objects, as the user probably wants to mutate it
  30872. if (isDef(attrs.__ob__)) {
  30873. attrs = vnode.data.attrs = extend({}, attrs);
  30874. }
  30875. for (key in attrs) {
  30876. cur = attrs[key];
  30877. old = oldAttrs[key];
  30878. if (old !== cur) {
  30879. setAttr(elm, key, cur);
  30880. }
  30881. }
  30882. // #4391: in IE9, setting type can reset value for input[type=radio]
  30883. // #6666: IE/Edge forces progress value down to 1 before setting a max
  30884. /* istanbul ignore if */
  30885. if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
  30886. setAttr(elm, 'value', attrs.value);
  30887. }
  30888. for (key in oldAttrs) {
  30889. if (isUndef(attrs[key])) {
  30890. if (isXlink(key)) {
  30891. elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
  30892. } else if (!isEnumeratedAttr(key)) {
  30893. elm.removeAttribute(key);
  30894. }
  30895. }
  30896. }
  30897. }
  30898. function setAttr (el, key, value) {
  30899. if (el.tagName.indexOf('-') > -1) {
  30900. baseSetAttr(el, key, value);
  30901. } else if (isBooleanAttr(key)) {
  30902. // set attribute for blank value
  30903. // e.g. <option disabled>Select one</option>
  30904. if (isFalsyAttrValue(value)) {
  30905. el.removeAttribute(key);
  30906. } else {
  30907. // technically allowfullscreen is a boolean attribute for <iframe>,
  30908. // but Flash expects a value of "true" when used on <embed> tag
  30909. value = key === 'allowfullscreen' && el.tagName === 'EMBED'
  30910. ? 'true'
  30911. : key;
  30912. el.setAttribute(key, value);
  30913. }
  30914. } else if (isEnumeratedAttr(key)) {
  30915. el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');
  30916. } else if (isXlink(key)) {
  30917. if (isFalsyAttrValue(value)) {
  30918. el.removeAttributeNS(xlinkNS, getXlinkProp(key));
  30919. } else {
  30920. el.setAttributeNS(xlinkNS, key, value);
  30921. }
  30922. } else {
  30923. baseSetAttr(el, key, value);
  30924. }
  30925. }
  30926. function baseSetAttr (el, key, value) {
  30927. if (isFalsyAttrValue(value)) {
  30928. el.removeAttribute(key);
  30929. } else {
  30930. // #7138: IE10 & 11 fires input event when setting placeholder on
  30931. // <textarea>... block the first input event and remove the blocker
  30932. // immediately.
  30933. /* istanbul ignore if */
  30934. if (
  30935. isIE && !isIE9 &&
  30936. (el.tagName === 'TEXTAREA' || el.tagName === 'INPUT') &&
  30937. key === 'placeholder' && !el.__ieph
  30938. ) {
  30939. var blocker = function (e) {
  30940. e.stopImmediatePropagation();
  30941. el.removeEventListener('input', blocker);
  30942. };
  30943. el.addEventListener('input', blocker);
  30944. // $flow-disable-line
  30945. el.__ieph = true; /* IE placeholder patched */
  30946. }
  30947. el.setAttribute(key, value);
  30948. }
  30949. }
  30950. var attrs = {
  30951. create: updateAttrs,
  30952. update: updateAttrs
  30953. };
  30954. /* */
  30955. function updateClass (oldVnode, vnode) {
  30956. var el = vnode.elm;
  30957. var data = vnode.data;
  30958. var oldData = oldVnode.data;
  30959. if (
  30960. isUndef(data.staticClass) &&
  30961. isUndef(data.class) && (
  30962. isUndef(oldData) || (
  30963. isUndef(oldData.staticClass) &&
  30964. isUndef(oldData.class)
  30965. )
  30966. )
  30967. ) {
  30968. return
  30969. }
  30970. var cls = genClassForVnode(vnode);
  30971. // handle transition classes
  30972. var transitionClass = el._transitionClasses;
  30973. if (isDef(transitionClass)) {
  30974. cls = concat(cls, stringifyClass(transitionClass));
  30975. }
  30976. // set the class
  30977. if (cls !== el._prevClass) {
  30978. el.setAttribute('class', cls);
  30979. el._prevClass = cls;
  30980. }
  30981. }
  30982. var klass = {
  30983. create: updateClass,
  30984. update: updateClass
  30985. };
  30986. /* */
  30987. var validDivisionCharRE = /[\w).+\-_$\]]/;
  30988. function parseFilters (exp) {
  30989. var inSingle = false;
  30990. var inDouble = false;
  30991. var inTemplateString = false;
  30992. var inRegex = false;
  30993. var curly = 0;
  30994. var square = 0;
  30995. var paren = 0;
  30996. var lastFilterIndex = 0;
  30997. var c, prev, i, expression, filters;
  30998. for (i = 0; i < exp.length; i++) {
  30999. prev = c;
  31000. c = exp.charCodeAt(i);
  31001. if (inSingle) {
  31002. if (c === 0x27 && prev !== 0x5C) { inSingle = false; }
  31003. } else if (inDouble) {
  31004. if (c === 0x22 && prev !== 0x5C) { inDouble = false; }
  31005. } else if (inTemplateString) {
  31006. if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }
  31007. } else if (inRegex) {
  31008. if (c === 0x2f && prev !== 0x5C) { inRegex = false; }
  31009. } else if (
  31010. c === 0x7C && // pipe
  31011. exp.charCodeAt(i + 1) !== 0x7C &&
  31012. exp.charCodeAt(i - 1) !== 0x7C &&
  31013. !curly && !square && !paren
  31014. ) {
  31015. if (expression === undefined) {
  31016. // first filter, end of expression
  31017. lastFilterIndex = i + 1;
  31018. expression = exp.slice(0, i).trim();
  31019. } else {
  31020. pushFilter();
  31021. }
  31022. } else {
  31023. switch (c) {
  31024. case 0x22: inDouble = true; break // "
  31025. case 0x27: inSingle = true; break // '
  31026. case 0x60: inTemplateString = true; break // `
  31027. case 0x28: paren++; break // (
  31028. case 0x29: paren--; break // )
  31029. case 0x5B: square++; break // [
  31030. case 0x5D: square--; break // ]
  31031. case 0x7B: curly++; break // {
  31032. case 0x7D: curly--; break // }
  31033. }
  31034. if (c === 0x2f) { // /
  31035. var j = i - 1;
  31036. var p = (void 0);
  31037. // find first non-whitespace prev char
  31038. for (; j >= 0; j--) {
  31039. p = exp.charAt(j);
  31040. if (p !== ' ') { break }
  31041. }
  31042. if (!p || !validDivisionCharRE.test(p)) {
  31043. inRegex = true;
  31044. }
  31045. }
  31046. }
  31047. }
  31048. if (expression === undefined) {
  31049. expression = exp.slice(0, i).trim();
  31050. } else if (lastFilterIndex !== 0) {
  31051. pushFilter();
  31052. }
  31053. function pushFilter () {
  31054. (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
  31055. lastFilterIndex = i + 1;
  31056. }
  31057. if (filters) {
  31058. for (i = 0; i < filters.length; i++) {
  31059. expression = wrapFilter(expression, filters[i]);
  31060. }
  31061. }
  31062. return expression
  31063. }
  31064. function wrapFilter (exp, filter) {
  31065. var i = filter.indexOf('(');
  31066. if (i < 0) {
  31067. // _f: resolveFilter
  31068. return ("_f(\"" + filter + "\")(" + exp + ")")
  31069. } else {
  31070. var name = filter.slice(0, i);
  31071. var args = filter.slice(i + 1);
  31072. return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args))
  31073. }
  31074. }
  31075. /* */
  31076. function baseWarn (msg) {
  31077. console.error(("[Vue compiler]: " + msg));
  31078. }
  31079. function pluckModuleFunction (
  31080. modules,
  31081. key
  31082. ) {
  31083. return modules
  31084. ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })
  31085. : []
  31086. }
  31087. function addProp (el, name, value) {
  31088. (el.props || (el.props = [])).push({ name: name, value: value });
  31089. el.plain = false;
  31090. }
  31091. function addAttr (el, name, value) {
  31092. (el.attrs || (el.attrs = [])).push({ name: name, value: value });
  31093. el.plain = false;
  31094. }
  31095. // add a raw attr (use this in preTransforms)
  31096. function addRawAttr (el, name, value) {
  31097. el.attrsMap[name] = value;
  31098. el.attrsList.push({ name: name, value: value });
  31099. }
  31100. function addDirective (
  31101. el,
  31102. name,
  31103. rawName,
  31104. value,
  31105. arg,
  31106. modifiers
  31107. ) {
  31108. (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });
  31109. el.plain = false;
  31110. }
  31111. function addHandler (
  31112. el,
  31113. name,
  31114. value,
  31115. modifiers,
  31116. important,
  31117. warn
  31118. ) {
  31119. modifiers = modifiers || emptyObject;
  31120. // warn prevent and passive modifier
  31121. /* istanbul ignore if */
  31122. if (
  31123. "development" !== 'production' && warn &&
  31124. modifiers.prevent && modifiers.passive
  31125. ) {
  31126. warn(
  31127. 'passive and prevent can\'t be used together. ' +
  31128. 'Passive handler can\'t prevent default event.'
  31129. );
  31130. }
  31131. // normalize click.right and click.middle since they don't actually fire
  31132. // this is technically browser-specific, but at least for now browsers are
  31133. // the only target envs that have right/middle clicks.
  31134. if (name === 'click') {
  31135. if (modifiers.right) {
  31136. name = 'contextmenu';
  31137. delete modifiers.right;
  31138. } else if (modifiers.middle) {
  31139. name = 'mouseup';
  31140. }
  31141. }
  31142. // check capture modifier
  31143. if (modifiers.capture) {
  31144. delete modifiers.capture;
  31145. name = '!' + name; // mark the event as captured
  31146. }
  31147. if (modifiers.once) {
  31148. delete modifiers.once;
  31149. name = '~' + name; // mark the event as once
  31150. }
  31151. /* istanbul ignore if */
  31152. if (modifiers.passive) {
  31153. delete modifiers.passive;
  31154. name = '&' + name; // mark the event as passive
  31155. }
  31156. var events;
  31157. if (modifiers.native) {
  31158. delete modifiers.native;
  31159. events = el.nativeEvents || (el.nativeEvents = {});
  31160. } else {
  31161. events = el.events || (el.events = {});
  31162. }
  31163. var newHandler = {
  31164. value: value.trim()
  31165. };
  31166. if (modifiers !== emptyObject) {
  31167. newHandler.modifiers = modifiers;
  31168. }
  31169. var handlers = events[name];
  31170. /* istanbul ignore if */
  31171. if (Array.isArray(handlers)) {
  31172. important ? handlers.unshift(newHandler) : handlers.push(newHandler);
  31173. } else if (handlers) {
  31174. events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
  31175. } else {
  31176. events[name] = newHandler;
  31177. }
  31178. el.plain = false;
  31179. }
  31180. function getBindingAttr (
  31181. el,
  31182. name,
  31183. getStatic
  31184. ) {
  31185. var dynamicValue =
  31186. getAndRemoveAttr(el, ':' + name) ||
  31187. getAndRemoveAttr(el, 'v-bind:' + name);
  31188. if (dynamicValue != null) {
  31189. return parseFilters(dynamicValue)
  31190. } else if (getStatic !== false) {
  31191. var staticValue = getAndRemoveAttr(el, name);
  31192. if (staticValue != null) {
  31193. return JSON.stringify(staticValue)
  31194. }
  31195. }
  31196. }
  31197. // note: this only removes the attr from the Array (attrsList) so that it
  31198. // doesn't get processed by processAttrs.
  31199. // By default it does NOT remove it from the map (attrsMap) because the map is
  31200. // needed during codegen.
  31201. function getAndRemoveAttr (
  31202. el,
  31203. name,
  31204. removeFromMap
  31205. ) {
  31206. var val;
  31207. if ((val = el.attrsMap[name]) != null) {
  31208. var list = el.attrsList;
  31209. for (var i = 0, l = list.length; i < l; i++) {
  31210. if (list[i].name === name) {
  31211. list.splice(i, 1);
  31212. break
  31213. }
  31214. }
  31215. }
  31216. if (removeFromMap) {
  31217. delete el.attrsMap[name];
  31218. }
  31219. return val
  31220. }
  31221. /* */
  31222. /**
  31223. * Cross-platform code generation for component v-model
  31224. */
  31225. function genComponentModel (
  31226. el,
  31227. value,
  31228. modifiers
  31229. ) {
  31230. var ref = modifiers || {};
  31231. var number = ref.number;
  31232. var trim = ref.trim;
  31233. var baseValueExpression = '$$v';
  31234. var valueExpression = baseValueExpression;
  31235. if (trim) {
  31236. valueExpression =
  31237. "(typeof " + baseValueExpression + " === 'string'" +
  31238. "? " + baseValueExpression + ".trim()" +
  31239. ": " + baseValueExpression + ")";
  31240. }
  31241. if (number) {
  31242. valueExpression = "_n(" + valueExpression + ")";
  31243. }
  31244. var assignment = genAssignmentCode(value, valueExpression);
  31245. el.model = {
  31246. value: ("(" + value + ")"),
  31247. expression: JSON.stringify(value),
  31248. callback: ("function (" + baseValueExpression + ") {" + assignment + "}")
  31249. };
  31250. }
  31251. /**
  31252. * Cross-platform codegen helper for generating v-model value assignment code.
  31253. */
  31254. function genAssignmentCode (
  31255. value,
  31256. assignment
  31257. ) {
  31258. var res = parseModel(value);
  31259. if (res.key === null) {
  31260. return (value + "=" + assignment)
  31261. } else {
  31262. return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")")
  31263. }
  31264. }
  31265. /**
  31266. * Parse a v-model expression into a base path and a final key segment.
  31267. * Handles both dot-path and possible square brackets.
  31268. *
  31269. * Possible cases:
  31270. *
  31271. * - test
  31272. * - test[key]
  31273. * - test[test1[key]]
  31274. * - test["a"][key]
  31275. * - xxx.test[a[a].test1[key]]
  31276. * - test.xxx.a["asa"][test1[key]]
  31277. *
  31278. */
  31279. var len, str, chr, index$1, expressionPos, expressionEndPos;
  31280. function parseModel (val) {
  31281. // Fix https://github.com/vuejs/vue/pull/7730
  31282. // allow v-model="obj.val " (trailing whitespace)
  31283. val = val.trim();
  31284. len = val.length;
  31285. if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
  31286. index$1 = val.lastIndexOf('.');
  31287. if (index$1 > -1) {
  31288. return {
  31289. exp: val.slice(0, index$1),
  31290. key: '"' + val.slice(index$1 + 1) + '"'
  31291. }
  31292. } else {
  31293. return {
  31294. exp: val,
  31295. key: null
  31296. }
  31297. }
  31298. }
  31299. str = val;
  31300. index$1 = expressionPos = expressionEndPos = 0;
  31301. while (!eof()) {
  31302. chr = next();
  31303. /* istanbul ignore if */
  31304. if (isStringStart(chr)) {
  31305. parseString(chr);
  31306. } else if (chr === 0x5B) {
  31307. parseBracket(chr);
  31308. }
  31309. }
  31310. return {
  31311. exp: val.slice(0, expressionPos),
  31312. key: val.slice(expressionPos + 1, expressionEndPos)
  31313. }
  31314. }
  31315. function next () {
  31316. return str.charCodeAt(++index$1)
  31317. }
  31318. function eof () {
  31319. return index$1 >= len
  31320. }
  31321. function isStringStart (chr) {
  31322. return chr === 0x22 || chr === 0x27
  31323. }
  31324. function parseBracket (chr) {
  31325. var inBracket = 1;
  31326. expressionPos = index$1;
  31327. while (!eof()) {
  31328. chr = next();
  31329. if (isStringStart(chr)) {
  31330. parseString(chr);
  31331. continue
  31332. }
  31333. if (chr === 0x5B) { inBracket++; }
  31334. if (chr === 0x5D) { inBracket--; }
  31335. if (inBracket === 0) {
  31336. expressionEndPos = index$1;
  31337. break
  31338. }
  31339. }
  31340. }
  31341. function parseString (chr) {
  31342. var stringQuote = chr;
  31343. while (!eof()) {
  31344. chr = next();
  31345. if (chr === stringQuote) {
  31346. break
  31347. }
  31348. }
  31349. }
  31350. /* */
  31351. var warn$1;
  31352. // in some cases, the event used has to be determined at runtime
  31353. // so we used some reserved tokens during compile.
  31354. var RANGE_TOKEN = '__r';
  31355. var CHECKBOX_RADIO_TOKEN = '__c';
  31356. function model (
  31357. el,
  31358. dir,
  31359. _warn
  31360. ) {
  31361. warn$1 = _warn;
  31362. var value = dir.value;
  31363. var modifiers = dir.modifiers;
  31364. var tag = el.tag;
  31365. var type = el.attrsMap.type;
  31366. if (true) {
  31367. // inputs with type="file" are read only and setting the input's
  31368. // value will throw an error.
  31369. if (tag === 'input' && type === 'file') {
  31370. warn$1(
  31371. "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" +
  31372. "File inputs are read only. Use a v-on:change listener instead."
  31373. );
  31374. }
  31375. }
  31376. if (el.component) {
  31377. genComponentModel(el, value, modifiers);
  31378. // component v-model doesn't need extra runtime
  31379. return false
  31380. } else if (tag === 'select') {
  31381. genSelect(el, value, modifiers);
  31382. } else if (tag === 'input' && type === 'checkbox') {
  31383. genCheckboxModel(el, value, modifiers);
  31384. } else if (tag === 'input' && type === 'radio') {
  31385. genRadioModel(el, value, modifiers);
  31386. } else if (tag === 'input' || tag === 'textarea') {
  31387. genDefaultModel(el, value, modifiers);
  31388. } else if (!config.isReservedTag(tag)) {
  31389. genComponentModel(el, value, modifiers);
  31390. // component v-model doesn't need extra runtime
  31391. return false
  31392. } else if (true) {
  31393. warn$1(
  31394. "<" + (el.tag) + " v-model=\"" + value + "\">: " +
  31395. "v-model is not supported on this element type. " +
  31396. 'If you are working with contenteditable, it\'s recommended to ' +
  31397. 'wrap a library dedicated for that purpose inside a custom component.'
  31398. );
  31399. }
  31400. // ensure runtime directive metadata
  31401. return true
  31402. }
  31403. function genCheckboxModel (
  31404. el,
  31405. value,
  31406. modifiers
  31407. ) {
  31408. var number = modifiers && modifiers.number;
  31409. var valueBinding = getBindingAttr(el, 'value') || 'null';
  31410. var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
  31411. var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
  31412. addProp(el, 'checked',
  31413. "Array.isArray(" + value + ")" +
  31414. "?_i(" + value + "," + valueBinding + ")>-1" + (
  31415. trueValueBinding === 'true'
  31416. ? (":(" + value + ")")
  31417. : (":_q(" + value + "," + trueValueBinding + ")")
  31418. )
  31419. );
  31420. addHandler(el, 'change',
  31421. "var $$a=" + value + "," +
  31422. '$$el=$event.target,' +
  31423. "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" +
  31424. 'if(Array.isArray($$a)){' +
  31425. "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," +
  31426. '$$i=_i($$a,$$v);' +
  31427. "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" +
  31428. "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" +
  31429. "}else{" + (genAssignmentCode(value, '$$c')) + "}",
  31430. null, true
  31431. );
  31432. }
  31433. function genRadioModel (
  31434. el,
  31435. value,
  31436. modifiers
  31437. ) {
  31438. var number = modifiers && modifiers.number;
  31439. var valueBinding = getBindingAttr(el, 'value') || 'null';
  31440. valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;
  31441. addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));
  31442. addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
  31443. }
  31444. function genSelect (
  31445. el,
  31446. value,
  31447. modifiers
  31448. ) {
  31449. var number = modifiers && modifiers.number;
  31450. var selectedVal = "Array.prototype.filter" +
  31451. ".call($event.target.options,function(o){return o.selected})" +
  31452. ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" +
  31453. "return " + (number ? '_n(val)' : 'val') + "})";
  31454. var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
  31455. var code = "var $$selectedVal = " + selectedVal + ";";
  31456. code = code + " " + (genAssignmentCode(value, assignment));
  31457. addHandler(el, 'change', code, null, true);
  31458. }
  31459. function genDefaultModel (
  31460. el,
  31461. value,
  31462. modifiers
  31463. ) {
  31464. var type = el.attrsMap.type;
  31465. // warn if v-bind:value conflicts with v-model
  31466. // except for inputs with v-bind:type
  31467. if (true) {
  31468. var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
  31469. var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
  31470. if (value$1 && !typeBinding) {
  31471. var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
  31472. warn$1(
  31473. binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " +
  31474. 'because the latter already expands to a value binding internally'
  31475. );
  31476. }
  31477. }
  31478. var ref = modifiers || {};
  31479. var lazy = ref.lazy;
  31480. var number = ref.number;
  31481. var trim = ref.trim;
  31482. var needCompositionGuard = !lazy && type !== 'range';
  31483. var event = lazy
  31484. ? 'change'
  31485. : type === 'range'
  31486. ? RANGE_TOKEN
  31487. : 'input';
  31488. var valueExpression = '$event.target.value';
  31489. if (trim) {
  31490. valueExpression = "$event.target.value.trim()";
  31491. }
  31492. if (number) {
  31493. valueExpression = "_n(" + valueExpression + ")";
  31494. }
  31495. var code = genAssignmentCode(value, valueExpression);
  31496. if (needCompositionGuard) {
  31497. code = "if($event.target.composing)return;" + code;
  31498. }
  31499. addProp(el, 'value', ("(" + value + ")"));
  31500. addHandler(el, event, code, null, true);
  31501. if (trim || number) {
  31502. addHandler(el, 'blur', '$forceUpdate()');
  31503. }
  31504. }
  31505. /* */
  31506. // normalize v-model event tokens that can only be determined at runtime.
  31507. // it's important to place the event as the first in the array because
  31508. // the whole point is ensuring the v-model callback gets called before
  31509. // user-attached handlers.
  31510. function normalizeEvents (on) {
  31511. /* istanbul ignore if */
  31512. if (isDef(on[RANGE_TOKEN])) {
  31513. // IE input[type=range] only supports `change` event
  31514. var event = isIE ? 'change' : 'input';
  31515. on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
  31516. delete on[RANGE_TOKEN];
  31517. }
  31518. // This was originally intended to fix #4521 but no longer necessary
  31519. // after 2.5. Keeping it for backwards compat with generated code from < 2.4
  31520. /* istanbul ignore if */
  31521. if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
  31522. on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
  31523. delete on[CHECKBOX_RADIO_TOKEN];
  31524. }
  31525. }
  31526. var target$1;
  31527. function createOnceHandler$1 (event, handler, capture) {
  31528. var _target = target$1; // save current target element in closure
  31529. return function onceHandler () {
  31530. var res = handler.apply(null, arguments);
  31531. if (res !== null) {
  31532. remove$2(event, onceHandler, capture, _target);
  31533. }
  31534. }
  31535. }
  31536. function add$1 (
  31537. event,
  31538. handler,
  31539. capture,
  31540. passive
  31541. ) {
  31542. handler = withMacroTask(handler);
  31543. target$1.addEventListener(
  31544. event,
  31545. handler,
  31546. supportsPassive
  31547. ? { capture: capture, passive: passive }
  31548. : capture
  31549. );
  31550. }
  31551. function remove$2 (
  31552. event,
  31553. handler,
  31554. capture,
  31555. _target
  31556. ) {
  31557. (_target || target$1).removeEventListener(
  31558. event,
  31559. handler._withTask || handler,
  31560. capture
  31561. );
  31562. }
  31563. function updateDOMListeners (oldVnode, vnode) {
  31564. if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
  31565. return
  31566. }
  31567. var on = vnode.data.on || {};
  31568. var oldOn = oldVnode.data.on || {};
  31569. target$1 = vnode.elm;
  31570. normalizeEvents(on);
  31571. updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);
  31572. target$1 = undefined;
  31573. }
  31574. var events = {
  31575. create: updateDOMListeners,
  31576. update: updateDOMListeners
  31577. };
  31578. /* */
  31579. function updateDOMProps (oldVnode, vnode) {
  31580. if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
  31581. return
  31582. }
  31583. var key, cur;
  31584. var elm = vnode.elm;
  31585. var oldProps = oldVnode.data.domProps || {};
  31586. var props = vnode.data.domProps || {};
  31587. // clone observed objects, as the user probably wants to mutate it
  31588. if (isDef(props.__ob__)) {
  31589. props = vnode.data.domProps = extend({}, props);
  31590. }
  31591. for (key in oldProps) {
  31592. if (isUndef(props[key])) {
  31593. elm[key] = '';
  31594. }
  31595. }
  31596. for (key in props) {
  31597. cur = props[key];
  31598. // ignore children if the node has textContent or innerHTML,
  31599. // as these will throw away existing DOM nodes and cause removal errors
  31600. // on subsequent patches (#3360)
  31601. if (key === 'textContent' || key === 'innerHTML') {
  31602. if (vnode.children) { vnode.children.length = 0; }
  31603. if (cur === oldProps[key]) { continue }
  31604. // #6601 work around Chrome version <= 55 bug where single textNode
  31605. // replaced by innerHTML/textContent retains its parentNode property
  31606. if (elm.childNodes.length === 1) {
  31607. elm.removeChild(elm.childNodes[0]);
  31608. }
  31609. }
  31610. if (key === 'value') {
  31611. // store value as _value as well since
  31612. // non-string values will be stringified
  31613. elm._value = cur;
  31614. // avoid resetting cursor position when value is the same
  31615. var strCur = isUndef(cur) ? '' : String(cur);
  31616. if (shouldUpdateValue(elm, strCur)) {
  31617. elm.value = strCur;
  31618. }
  31619. } else {
  31620. elm[key] = cur;
  31621. }
  31622. }
  31623. }
  31624. // check platforms/web/util/attrs.js acceptValue
  31625. function shouldUpdateValue (elm, checkVal) {
  31626. return (!elm.composing && (
  31627. elm.tagName === 'OPTION' ||
  31628. isNotInFocusAndDirty(elm, checkVal) ||
  31629. isDirtyWithModifiers(elm, checkVal)
  31630. ))
  31631. }
  31632. function isNotInFocusAndDirty (elm, checkVal) {
  31633. // return true when textbox (.number and .trim) loses focus and its value is
  31634. // not equal to the updated value
  31635. var notInFocus = true;
  31636. // #6157
  31637. // work around IE bug when accessing document.activeElement in an iframe
  31638. try { notInFocus = document.activeElement !== elm; } catch (e) {}
  31639. return notInFocus && elm.value !== checkVal
  31640. }
  31641. function isDirtyWithModifiers (elm, newVal) {
  31642. var value = elm.value;
  31643. var modifiers = elm._vModifiers; // injected by v-model runtime
  31644. if (isDef(modifiers)) {
  31645. if (modifiers.lazy) {
  31646. // inputs with lazy should only be updated when not in focus
  31647. return false
  31648. }
  31649. if (modifiers.number) {
  31650. return toNumber(value) !== toNumber(newVal)
  31651. }
  31652. if (modifiers.trim) {
  31653. return value.trim() !== newVal.trim()
  31654. }
  31655. }
  31656. return value !== newVal
  31657. }
  31658. var domProps = {
  31659. create: updateDOMProps,
  31660. update: updateDOMProps
  31661. };
  31662. /* */
  31663. var parseStyleText = cached(function (cssText) {
  31664. var res = {};
  31665. var listDelimiter = /;(?![^(]*\))/g;
  31666. var propertyDelimiter = /:(.+)/;
  31667. cssText.split(listDelimiter).forEach(function (item) {
  31668. if (item) {
  31669. var tmp = item.split(propertyDelimiter);
  31670. tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
  31671. }
  31672. });
  31673. return res
  31674. });
  31675. // merge static and dynamic style data on the same vnode
  31676. function normalizeStyleData (data) {
  31677. var style = normalizeStyleBinding(data.style);
  31678. // static style is pre-processed into an object during compilation
  31679. // and is always a fresh object, so it's safe to merge into it
  31680. return data.staticStyle
  31681. ? extend(data.staticStyle, style)
  31682. : style
  31683. }
  31684. // normalize possible array / string values into Object
  31685. function normalizeStyleBinding (bindingStyle) {
  31686. if (Array.isArray(bindingStyle)) {
  31687. return toObject(bindingStyle)
  31688. }
  31689. if (typeof bindingStyle === 'string') {
  31690. return parseStyleText(bindingStyle)
  31691. }
  31692. return bindingStyle
  31693. }
  31694. /**
  31695. * parent component style should be after child's
  31696. * so that parent component's style could override it
  31697. */
  31698. function getStyle (vnode, checkChild) {
  31699. var res = {};
  31700. var styleData;
  31701. if (checkChild) {
  31702. var childNode = vnode;
  31703. while (childNode.componentInstance) {
  31704. childNode = childNode.componentInstance._vnode;
  31705. if (
  31706. childNode && childNode.data &&
  31707. (styleData = normalizeStyleData(childNode.data))
  31708. ) {
  31709. extend(res, styleData);
  31710. }
  31711. }
  31712. }
  31713. if ((styleData = normalizeStyleData(vnode.data))) {
  31714. extend(res, styleData);
  31715. }
  31716. var parentNode = vnode;
  31717. while ((parentNode = parentNode.parent)) {
  31718. if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
  31719. extend(res, styleData);
  31720. }
  31721. }
  31722. return res
  31723. }
  31724. /* */
  31725. var cssVarRE = /^--/;
  31726. var importantRE = /\s*!important$/;
  31727. var setProp = function (el, name, val) {
  31728. /* istanbul ignore if */
  31729. if (cssVarRE.test(name)) {
  31730. el.style.setProperty(name, val);
  31731. } else if (importantRE.test(val)) {
  31732. el.style.setProperty(name, val.replace(importantRE, ''), 'important');
  31733. } else {
  31734. var normalizedName = normalize(name);
  31735. if (Array.isArray(val)) {
  31736. // Support values array created by autoprefixer, e.g.
  31737. // {display: ["-webkit-box", "-ms-flexbox", "flex"]}
  31738. // Set them one by one, and the browser will only set those it can recognize
  31739. for (var i = 0, len = val.length; i < len; i++) {
  31740. el.style[normalizedName] = val[i];
  31741. }
  31742. } else {
  31743. el.style[normalizedName] = val;
  31744. }
  31745. }
  31746. };
  31747. var vendorNames = ['Webkit', 'Moz', 'ms'];
  31748. var emptyStyle;
  31749. var normalize = cached(function (prop) {
  31750. emptyStyle = emptyStyle || document.createElement('div').style;
  31751. prop = camelize(prop);
  31752. if (prop !== 'filter' && (prop in emptyStyle)) {
  31753. return prop
  31754. }
  31755. var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
  31756. for (var i = 0; i < vendorNames.length; i++) {
  31757. var name = vendorNames[i] + capName;
  31758. if (name in emptyStyle) {
  31759. return name
  31760. }
  31761. }
  31762. });
  31763. function updateStyle (oldVnode, vnode) {
  31764. var data = vnode.data;
  31765. var oldData = oldVnode.data;
  31766. if (isUndef(data.staticStyle) && isUndef(data.style) &&
  31767. isUndef(oldData.staticStyle) && isUndef(oldData.style)
  31768. ) {
  31769. return
  31770. }
  31771. var cur, name;
  31772. var el = vnode.elm;
  31773. var oldStaticStyle = oldData.staticStyle;
  31774. var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};
  31775. // if static style exists, stylebinding already merged into it when doing normalizeStyleData
  31776. var oldStyle = oldStaticStyle || oldStyleBinding;
  31777. var style = normalizeStyleBinding(vnode.data.style) || {};
  31778. // store normalized style under a different key for next diff
  31779. // make sure to clone it if it's reactive, since the user likely wants
  31780. // to mutate it.
  31781. vnode.data.normalizedStyle = isDef(style.__ob__)
  31782. ? extend({}, style)
  31783. : style;
  31784. var newStyle = getStyle(vnode, true);
  31785. for (name in oldStyle) {
  31786. if (isUndef(newStyle[name])) {
  31787. setProp(el, name, '');
  31788. }
  31789. }
  31790. for (name in newStyle) {
  31791. cur = newStyle[name];
  31792. if (cur !== oldStyle[name]) {
  31793. // ie9 setting to null has no effect, must use empty string
  31794. setProp(el, name, cur == null ? '' : cur);
  31795. }
  31796. }
  31797. }
  31798. var style = {
  31799. create: updateStyle,
  31800. update: updateStyle
  31801. };
  31802. /* */
  31803. var whitespaceRE = /\s+/;
  31804. /**
  31805. * Add class with compatibility for SVG since classList is not supported on
  31806. * SVG elements in IE
  31807. */
  31808. function addClass (el, cls) {
  31809. /* istanbul ignore if */
  31810. if (!cls || !(cls = cls.trim())) {
  31811. return
  31812. }
  31813. /* istanbul ignore else */
  31814. if (el.classList) {
  31815. if (cls.indexOf(' ') > -1) {
  31816. cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });
  31817. } else {
  31818. el.classList.add(cls);
  31819. }
  31820. } else {
  31821. var cur = " " + (el.getAttribute('class') || '') + " ";
  31822. if (cur.indexOf(' ' + cls + ' ') < 0) {
  31823. el.setAttribute('class', (cur + cls).trim());
  31824. }
  31825. }
  31826. }
  31827. /**
  31828. * Remove class with compatibility for SVG since classList is not supported on
  31829. * SVG elements in IE
  31830. */
  31831. function removeClass (el, cls) {
  31832. /* istanbul ignore if */
  31833. if (!cls || !(cls = cls.trim())) {
  31834. return
  31835. }
  31836. /* istanbul ignore else */
  31837. if (el.classList) {
  31838. if (cls.indexOf(' ') > -1) {
  31839. cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });
  31840. } else {
  31841. el.classList.remove(cls);
  31842. }
  31843. if (!el.classList.length) {
  31844. el.removeAttribute('class');
  31845. }
  31846. } else {
  31847. var cur = " " + (el.getAttribute('class') || '') + " ";
  31848. var tar = ' ' + cls + ' ';
  31849. while (cur.indexOf(tar) >= 0) {
  31850. cur = cur.replace(tar, ' ');
  31851. }
  31852. cur = cur.trim();
  31853. if (cur) {
  31854. el.setAttribute('class', cur);
  31855. } else {
  31856. el.removeAttribute('class');
  31857. }
  31858. }
  31859. }
  31860. /* */
  31861. function resolveTransition (def$$1) {
  31862. if (!def$$1) {
  31863. return
  31864. }
  31865. /* istanbul ignore else */
  31866. if (typeof def$$1 === 'object') {
  31867. var res = {};
  31868. if (def$$1.css !== false) {
  31869. extend(res, autoCssTransition(def$$1.name || 'v'));
  31870. }
  31871. extend(res, def$$1);
  31872. return res
  31873. } else if (typeof def$$1 === 'string') {
  31874. return autoCssTransition(def$$1)
  31875. }
  31876. }
  31877. var autoCssTransition = cached(function (name) {
  31878. return {
  31879. enterClass: (name + "-enter"),
  31880. enterToClass: (name + "-enter-to"),
  31881. enterActiveClass: (name + "-enter-active"),
  31882. leaveClass: (name + "-leave"),
  31883. leaveToClass: (name + "-leave-to"),
  31884. leaveActiveClass: (name + "-leave-active")
  31885. }
  31886. });
  31887. var hasTransition = inBrowser && !isIE9;
  31888. var TRANSITION = 'transition';
  31889. var ANIMATION = 'animation';
  31890. // Transition property/event sniffing
  31891. var transitionProp = 'transition';
  31892. var transitionEndEvent = 'transitionend';
  31893. var animationProp = 'animation';
  31894. var animationEndEvent = 'animationend';
  31895. if (hasTransition) {
  31896. /* istanbul ignore if */
  31897. if (window.ontransitionend === undefined &&
  31898. window.onwebkittransitionend !== undefined
  31899. ) {
  31900. transitionProp = 'WebkitTransition';
  31901. transitionEndEvent = 'webkitTransitionEnd';
  31902. }
  31903. if (window.onanimationend === undefined &&
  31904. window.onwebkitanimationend !== undefined
  31905. ) {
  31906. animationProp = 'WebkitAnimation';
  31907. animationEndEvent = 'webkitAnimationEnd';
  31908. }
  31909. }
  31910. // binding to window is necessary to make hot reload work in IE in strict mode
  31911. var raf = inBrowser
  31912. ? window.requestAnimationFrame
  31913. ? window.requestAnimationFrame.bind(window)
  31914. : setTimeout
  31915. : /* istanbul ignore next */ function (fn) { return fn(); };
  31916. function nextFrame (fn) {
  31917. raf(function () {
  31918. raf(fn);
  31919. });
  31920. }
  31921. function addTransitionClass (el, cls) {
  31922. var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
  31923. if (transitionClasses.indexOf(cls) < 0) {
  31924. transitionClasses.push(cls);
  31925. addClass(el, cls);
  31926. }
  31927. }
  31928. function removeTransitionClass (el, cls) {
  31929. if (el._transitionClasses) {
  31930. remove(el._transitionClasses, cls);
  31931. }
  31932. removeClass(el, cls);
  31933. }
  31934. function whenTransitionEnds (
  31935. el,
  31936. expectedType,
  31937. cb
  31938. ) {
  31939. var ref = getTransitionInfo(el, expectedType);
  31940. var type = ref.type;
  31941. var timeout = ref.timeout;
  31942. var propCount = ref.propCount;
  31943. if (!type) { return cb() }
  31944. var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
  31945. var ended = 0;
  31946. var end = function () {
  31947. el.removeEventListener(event, onEnd);
  31948. cb();
  31949. };
  31950. var onEnd = function (e) {
  31951. if (e.target === el) {
  31952. if (++ended >= propCount) {
  31953. end();
  31954. }
  31955. }
  31956. };
  31957. setTimeout(function () {
  31958. if (ended < propCount) {
  31959. end();
  31960. }
  31961. }, timeout + 1);
  31962. el.addEventListener(event, onEnd);
  31963. }
  31964. var transformRE = /\b(transform|all)(,|$)/;
  31965. function getTransitionInfo (el, expectedType) {
  31966. var styles = window.getComputedStyle(el);
  31967. // JSDOM may return undefined for transition properties
  31968. var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');
  31969. var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');
  31970. var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
  31971. var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');
  31972. var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');
  31973. var animationTimeout = getTimeout(animationDelays, animationDurations);
  31974. var type;
  31975. var timeout = 0;
  31976. var propCount = 0;
  31977. /* istanbul ignore if */
  31978. if (expectedType === TRANSITION) {
  31979. if (transitionTimeout > 0) {
  31980. type = TRANSITION;
  31981. timeout = transitionTimeout;
  31982. propCount = transitionDurations.length;
  31983. }
  31984. } else if (expectedType === ANIMATION) {
  31985. if (animationTimeout > 0) {
  31986. type = ANIMATION;
  31987. timeout = animationTimeout;
  31988. propCount = animationDurations.length;
  31989. }
  31990. } else {
  31991. timeout = Math.max(transitionTimeout, animationTimeout);
  31992. type = timeout > 0
  31993. ? transitionTimeout > animationTimeout
  31994. ? TRANSITION
  31995. : ANIMATION
  31996. : null;
  31997. propCount = type
  31998. ? type === TRANSITION
  31999. ? transitionDurations.length
  32000. : animationDurations.length
  32001. : 0;
  32002. }
  32003. var hasTransform =
  32004. type === TRANSITION &&
  32005. transformRE.test(styles[transitionProp + 'Property']);
  32006. return {
  32007. type: type,
  32008. timeout: timeout,
  32009. propCount: propCount,
  32010. hasTransform: hasTransform
  32011. }
  32012. }
  32013. function getTimeout (delays, durations) {
  32014. /* istanbul ignore next */
  32015. while (delays.length < durations.length) {
  32016. delays = delays.concat(delays);
  32017. }
  32018. return Math.max.apply(null, durations.map(function (d, i) {
  32019. return toMs(d) + toMs(delays[i])
  32020. }))
  32021. }
  32022. // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers
  32023. // in a locale-dependent way, using a comma instead of a dot.
  32024. // If comma is not replaced with a dot, the input will be rounded down (i.e. acting
  32025. // as a floor function) causing unexpected behaviors
  32026. function toMs (s) {
  32027. return Number(s.slice(0, -1).replace(',', '.')) * 1000
  32028. }
  32029. /* */
  32030. function enter (vnode, toggleDisplay) {
  32031. var el = vnode.elm;
  32032. // call leave callback now
  32033. if (isDef(el._leaveCb)) {
  32034. el._leaveCb.cancelled = true;
  32035. el._leaveCb();
  32036. }
  32037. var data = resolveTransition(vnode.data.transition);
  32038. if (isUndef(data)) {
  32039. return
  32040. }
  32041. /* istanbul ignore if */
  32042. if (isDef(el._enterCb) || el.nodeType !== 1) {
  32043. return
  32044. }
  32045. var css = data.css;
  32046. var type = data.type;
  32047. var enterClass = data.enterClass;
  32048. var enterToClass = data.enterToClass;
  32049. var enterActiveClass = data.enterActiveClass;
  32050. var appearClass = data.appearClass;
  32051. var appearToClass = data.appearToClass;
  32052. var appearActiveClass = data.appearActiveClass;
  32053. var beforeEnter = data.beforeEnter;
  32054. var enter = data.enter;
  32055. var afterEnter = data.afterEnter;
  32056. var enterCancelled = data.enterCancelled;
  32057. var beforeAppear = data.beforeAppear;
  32058. var appear = data.appear;
  32059. var afterAppear = data.afterAppear;
  32060. var appearCancelled = data.appearCancelled;
  32061. var duration = data.duration;
  32062. // activeInstance will always be the <transition> component managing this
  32063. // transition. One edge case to check is when the <transition> is placed
  32064. // as the root node of a child component. In that case we need to check
  32065. // <transition>'s parent for appear check.
  32066. var context = activeInstance;
  32067. var transitionNode = activeInstance.$vnode;
  32068. while (transitionNode && transitionNode.parent) {
  32069. transitionNode = transitionNode.parent;
  32070. context = transitionNode.context;
  32071. }
  32072. var isAppear = !context._isMounted || !vnode.isRootInsert;
  32073. if (isAppear && !appear && appear !== '') {
  32074. return
  32075. }
  32076. var startClass = isAppear && appearClass
  32077. ? appearClass
  32078. : enterClass;
  32079. var activeClass = isAppear && appearActiveClass
  32080. ? appearActiveClass
  32081. : enterActiveClass;
  32082. var toClass = isAppear && appearToClass
  32083. ? appearToClass
  32084. : enterToClass;
  32085. var beforeEnterHook = isAppear
  32086. ? (beforeAppear || beforeEnter)
  32087. : beforeEnter;
  32088. var enterHook = isAppear
  32089. ? (typeof appear === 'function' ? appear : enter)
  32090. : enter;
  32091. var afterEnterHook = isAppear
  32092. ? (afterAppear || afterEnter)
  32093. : afterEnter;
  32094. var enterCancelledHook = isAppear
  32095. ? (appearCancelled || enterCancelled)
  32096. : enterCancelled;
  32097. var explicitEnterDuration = toNumber(
  32098. isObject(duration)
  32099. ? duration.enter
  32100. : duration
  32101. );
  32102. if ("development" !== 'production' && explicitEnterDuration != null) {
  32103. checkDuration(explicitEnterDuration, 'enter', vnode);
  32104. }
  32105. var expectsCSS = css !== false && !isIE9;
  32106. var userWantsControl = getHookArgumentsLength(enterHook);
  32107. var cb = el._enterCb = once(function () {
  32108. if (expectsCSS) {
  32109. removeTransitionClass(el, toClass);
  32110. removeTransitionClass(el, activeClass);
  32111. }
  32112. if (cb.cancelled) {
  32113. if (expectsCSS) {
  32114. removeTransitionClass(el, startClass);
  32115. }
  32116. enterCancelledHook && enterCancelledHook(el);
  32117. } else {
  32118. afterEnterHook && afterEnterHook(el);
  32119. }
  32120. el._enterCb = null;
  32121. });
  32122. if (!vnode.data.show) {
  32123. // remove pending leave element on enter by injecting an insert hook
  32124. mergeVNodeHook(vnode, 'insert', function () {
  32125. var parent = el.parentNode;
  32126. var pendingNode = parent && parent._pending && parent._pending[vnode.key];
  32127. if (pendingNode &&
  32128. pendingNode.tag === vnode.tag &&
  32129. pendingNode.elm._leaveCb
  32130. ) {
  32131. pendingNode.elm._leaveCb();
  32132. }
  32133. enterHook && enterHook(el, cb);
  32134. });
  32135. }
  32136. // start enter transition
  32137. beforeEnterHook && beforeEnterHook(el);
  32138. if (expectsCSS) {
  32139. addTransitionClass(el, startClass);
  32140. addTransitionClass(el, activeClass);
  32141. nextFrame(function () {
  32142. removeTransitionClass(el, startClass);
  32143. if (!cb.cancelled) {
  32144. addTransitionClass(el, toClass);
  32145. if (!userWantsControl) {
  32146. if (isValidDuration(explicitEnterDuration)) {
  32147. setTimeout(cb, explicitEnterDuration);
  32148. } else {
  32149. whenTransitionEnds(el, type, cb);
  32150. }
  32151. }
  32152. }
  32153. });
  32154. }
  32155. if (vnode.data.show) {
  32156. toggleDisplay && toggleDisplay();
  32157. enterHook && enterHook(el, cb);
  32158. }
  32159. if (!expectsCSS && !userWantsControl) {
  32160. cb();
  32161. }
  32162. }
  32163. function leave (vnode, rm) {
  32164. var el = vnode.elm;
  32165. // call enter callback now
  32166. if (isDef(el._enterCb)) {
  32167. el._enterCb.cancelled = true;
  32168. el._enterCb();
  32169. }
  32170. var data = resolveTransition(vnode.data.transition);
  32171. if (isUndef(data) || el.nodeType !== 1) {
  32172. return rm()
  32173. }
  32174. /* istanbul ignore if */
  32175. if (isDef(el._leaveCb)) {
  32176. return
  32177. }
  32178. var css = data.css;
  32179. var type = data.type;
  32180. var leaveClass = data.leaveClass;
  32181. var leaveToClass = data.leaveToClass;
  32182. var leaveActiveClass = data.leaveActiveClass;
  32183. var beforeLeave = data.beforeLeave;
  32184. var leave = data.leave;
  32185. var afterLeave = data.afterLeave;
  32186. var leaveCancelled = data.leaveCancelled;
  32187. var delayLeave = data.delayLeave;
  32188. var duration = data.duration;
  32189. var expectsCSS = css !== false && !isIE9;
  32190. var userWantsControl = getHookArgumentsLength(leave);
  32191. var explicitLeaveDuration = toNumber(
  32192. isObject(duration)
  32193. ? duration.leave
  32194. : duration
  32195. );
  32196. if ("development" !== 'production' && isDef(explicitLeaveDuration)) {
  32197. checkDuration(explicitLeaveDuration, 'leave', vnode);
  32198. }
  32199. var cb = el._leaveCb = once(function () {
  32200. if (el.parentNode && el.parentNode._pending) {
  32201. el.parentNode._pending[vnode.key] = null;
  32202. }
  32203. if (expectsCSS) {
  32204. removeTransitionClass(el, leaveToClass);
  32205. removeTransitionClass(el, leaveActiveClass);
  32206. }
  32207. if (cb.cancelled) {
  32208. if (expectsCSS) {
  32209. removeTransitionClass(el, leaveClass);
  32210. }
  32211. leaveCancelled && leaveCancelled(el);
  32212. } else {
  32213. rm();
  32214. afterLeave && afterLeave(el);
  32215. }
  32216. el._leaveCb = null;
  32217. });
  32218. if (delayLeave) {
  32219. delayLeave(performLeave);
  32220. } else {
  32221. performLeave();
  32222. }
  32223. function performLeave () {
  32224. // the delayed leave may have already been cancelled
  32225. if (cb.cancelled) {
  32226. return
  32227. }
  32228. // record leaving element
  32229. if (!vnode.data.show && el.parentNode) {
  32230. (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;
  32231. }
  32232. beforeLeave && beforeLeave(el);
  32233. if (expectsCSS) {
  32234. addTransitionClass(el, leaveClass);
  32235. addTransitionClass(el, leaveActiveClass);
  32236. nextFrame(function () {
  32237. removeTransitionClass(el, leaveClass);
  32238. if (!cb.cancelled) {
  32239. addTransitionClass(el, leaveToClass);
  32240. if (!userWantsControl) {
  32241. if (isValidDuration(explicitLeaveDuration)) {
  32242. setTimeout(cb, explicitLeaveDuration);
  32243. } else {
  32244. whenTransitionEnds(el, type, cb);
  32245. }
  32246. }
  32247. }
  32248. });
  32249. }
  32250. leave && leave(el, cb);
  32251. if (!expectsCSS && !userWantsControl) {
  32252. cb();
  32253. }
  32254. }
  32255. }
  32256. // only used in dev mode
  32257. function checkDuration (val, name, vnode) {
  32258. if (typeof val !== 'number') {
  32259. warn(
  32260. "<transition> explicit " + name + " duration is not a valid number - " +
  32261. "got " + (JSON.stringify(val)) + ".",
  32262. vnode.context
  32263. );
  32264. } else if (isNaN(val)) {
  32265. warn(
  32266. "<transition> explicit " + name + " duration is NaN - " +
  32267. 'the duration expression might be incorrect.',
  32268. vnode.context
  32269. );
  32270. }
  32271. }
  32272. function isValidDuration (val) {
  32273. return typeof val === 'number' && !isNaN(val)
  32274. }
  32275. /**
  32276. * Normalize a transition hook's argument length. The hook may be:
  32277. * - a merged hook (invoker) with the original in .fns
  32278. * - a wrapped component method (check ._length)
  32279. * - a plain function (.length)
  32280. */
  32281. function getHookArgumentsLength (fn) {
  32282. if (isUndef(fn)) {
  32283. return false
  32284. }
  32285. var invokerFns = fn.fns;
  32286. if (isDef(invokerFns)) {
  32287. // invoker
  32288. return getHookArgumentsLength(
  32289. Array.isArray(invokerFns)
  32290. ? invokerFns[0]
  32291. : invokerFns
  32292. )
  32293. } else {
  32294. return (fn._length || fn.length) > 1
  32295. }
  32296. }
  32297. function _enter (_, vnode) {
  32298. if (vnode.data.show !== true) {
  32299. enter(vnode);
  32300. }
  32301. }
  32302. var transition = inBrowser ? {
  32303. create: _enter,
  32304. activate: _enter,
  32305. remove: function remove$$1 (vnode, rm) {
  32306. /* istanbul ignore else */
  32307. if (vnode.data.show !== true) {
  32308. leave(vnode, rm);
  32309. } else {
  32310. rm();
  32311. }
  32312. }
  32313. } : {};
  32314. var platformModules = [
  32315. attrs,
  32316. klass,
  32317. events,
  32318. domProps,
  32319. style,
  32320. transition
  32321. ];
  32322. /* */
  32323. // the directive module should be applied last, after all
  32324. // built-in modules have been applied.
  32325. var modules = platformModules.concat(baseModules);
  32326. var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });
  32327. /**
  32328. * Not type checking this file because flow doesn't like attaching
  32329. * properties to Elements.
  32330. */
  32331. /* istanbul ignore if */
  32332. if (isIE9) {
  32333. // http://www.matts411.com/post/internet-explorer-9-oninput/
  32334. document.addEventListener('selectionchange', function () {
  32335. var el = document.activeElement;
  32336. if (el && el.vmodel) {
  32337. trigger(el, 'input');
  32338. }
  32339. });
  32340. }
  32341. var directive = {
  32342. inserted: function inserted (el, binding, vnode, oldVnode) {
  32343. if (vnode.tag === 'select') {
  32344. // #6903
  32345. if (oldVnode.elm && !oldVnode.elm._vOptions) {
  32346. mergeVNodeHook(vnode, 'postpatch', function () {
  32347. directive.componentUpdated(el, binding, vnode);
  32348. });
  32349. } else {
  32350. setSelected(el, binding, vnode.context);
  32351. }
  32352. el._vOptions = [].map.call(el.options, getValue);
  32353. } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
  32354. el._vModifiers = binding.modifiers;
  32355. if (!binding.modifiers.lazy) {
  32356. el.addEventListener('compositionstart', onCompositionStart);
  32357. el.addEventListener('compositionend', onCompositionEnd);
  32358. // Safari < 10.2 & UIWebView doesn't fire compositionend when
  32359. // switching focus before confirming composition choice
  32360. // this also fixes the issue where some browsers e.g. iOS Chrome
  32361. // fires "change" instead of "input" on autocomplete.
  32362. el.addEventListener('change', onCompositionEnd);
  32363. /* istanbul ignore if */
  32364. if (isIE9) {
  32365. el.vmodel = true;
  32366. }
  32367. }
  32368. }
  32369. },
  32370. componentUpdated: function componentUpdated (el, binding, vnode) {
  32371. if (vnode.tag === 'select') {
  32372. setSelected(el, binding, vnode.context);
  32373. // in case the options rendered by v-for have changed,
  32374. // it's possible that the value is out-of-sync with the rendered options.
  32375. // detect such cases and filter out values that no longer has a matching
  32376. // option in the DOM.
  32377. var prevOptions = el._vOptions;
  32378. var curOptions = el._vOptions = [].map.call(el.options, getValue);
  32379. if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {
  32380. // trigger change event if
  32381. // no matching option found for at least one value
  32382. var needReset = el.multiple
  32383. ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })
  32384. : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);
  32385. if (needReset) {
  32386. trigger(el, 'change');
  32387. }
  32388. }
  32389. }
  32390. }
  32391. };
  32392. function setSelected (el, binding, vm) {
  32393. actuallySetSelected(el, binding, vm);
  32394. /* istanbul ignore if */
  32395. if (isIE || isEdge) {
  32396. setTimeout(function () {
  32397. actuallySetSelected(el, binding, vm);
  32398. }, 0);
  32399. }
  32400. }
  32401. function actuallySetSelected (el, binding, vm) {
  32402. var value = binding.value;
  32403. var isMultiple = el.multiple;
  32404. if (isMultiple && !Array.isArray(value)) {
  32405. "development" !== 'production' && warn(
  32406. "<select multiple v-model=\"" + (binding.expression) + "\"> " +
  32407. "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),
  32408. vm
  32409. );
  32410. return
  32411. }
  32412. var selected, option;
  32413. for (var i = 0, l = el.options.length; i < l; i++) {
  32414. option = el.options[i];
  32415. if (isMultiple) {
  32416. selected = looseIndexOf(value, getValue(option)) > -1;
  32417. if (option.selected !== selected) {
  32418. option.selected = selected;
  32419. }
  32420. } else {
  32421. if (looseEqual(getValue(option), value)) {
  32422. if (el.selectedIndex !== i) {
  32423. el.selectedIndex = i;
  32424. }
  32425. return
  32426. }
  32427. }
  32428. }
  32429. if (!isMultiple) {
  32430. el.selectedIndex = -1;
  32431. }
  32432. }
  32433. function hasNoMatchingOption (value, options) {
  32434. return options.every(function (o) { return !looseEqual(o, value); })
  32435. }
  32436. function getValue (option) {
  32437. return '_value' in option
  32438. ? option._value
  32439. : option.value
  32440. }
  32441. function onCompositionStart (e) {
  32442. e.target.composing = true;
  32443. }
  32444. function onCompositionEnd (e) {
  32445. // prevent triggering an input event for no reason
  32446. if (!e.target.composing) { return }
  32447. e.target.composing = false;
  32448. trigger(e.target, 'input');
  32449. }
  32450. function trigger (el, type) {
  32451. var e = document.createEvent('HTMLEvents');
  32452. e.initEvent(type, true, true);
  32453. el.dispatchEvent(e);
  32454. }
  32455. /* */
  32456. // recursively search for possible transition defined inside the component root
  32457. function locateNode (vnode) {
  32458. return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
  32459. ? locateNode(vnode.componentInstance._vnode)
  32460. : vnode
  32461. }
  32462. var show = {
  32463. bind: function bind (el, ref, vnode) {
  32464. var value = ref.value;
  32465. vnode = locateNode(vnode);
  32466. var transition$$1 = vnode.data && vnode.data.transition;
  32467. var originalDisplay = el.__vOriginalDisplay =
  32468. el.style.display === 'none' ? '' : el.style.display;
  32469. if (value && transition$$1) {
  32470. vnode.data.show = true;
  32471. enter(vnode, function () {
  32472. el.style.display = originalDisplay;
  32473. });
  32474. } else {
  32475. el.style.display = value ? originalDisplay : 'none';
  32476. }
  32477. },
  32478. update: function update (el, ref, vnode) {
  32479. var value = ref.value;
  32480. var oldValue = ref.oldValue;
  32481. /* istanbul ignore if */
  32482. if (!value === !oldValue) { return }
  32483. vnode = locateNode(vnode);
  32484. var transition$$1 = vnode.data && vnode.data.transition;
  32485. if (transition$$1) {
  32486. vnode.data.show = true;
  32487. if (value) {
  32488. enter(vnode, function () {
  32489. el.style.display = el.__vOriginalDisplay;
  32490. });
  32491. } else {
  32492. leave(vnode, function () {
  32493. el.style.display = 'none';
  32494. });
  32495. }
  32496. } else {
  32497. el.style.display = value ? el.__vOriginalDisplay : 'none';
  32498. }
  32499. },
  32500. unbind: function unbind (
  32501. el,
  32502. binding,
  32503. vnode,
  32504. oldVnode,
  32505. isDestroy
  32506. ) {
  32507. if (!isDestroy) {
  32508. el.style.display = el.__vOriginalDisplay;
  32509. }
  32510. }
  32511. };
  32512. var platformDirectives = {
  32513. model: directive,
  32514. show: show
  32515. };
  32516. /* */
  32517. var transitionProps = {
  32518. name: String,
  32519. appear: Boolean,
  32520. css: Boolean,
  32521. mode: String,
  32522. type: String,
  32523. enterClass: String,
  32524. leaveClass: String,
  32525. enterToClass: String,
  32526. leaveToClass: String,
  32527. enterActiveClass: String,
  32528. leaveActiveClass: String,
  32529. appearClass: String,
  32530. appearActiveClass: String,
  32531. appearToClass: String,
  32532. duration: [Number, String, Object]
  32533. };
  32534. // in case the child is also an abstract component, e.g. <keep-alive>
  32535. // we want to recursively retrieve the real component to be rendered
  32536. function getRealChild (vnode) {
  32537. var compOptions = vnode && vnode.componentOptions;
  32538. if (compOptions && compOptions.Ctor.options.abstract) {
  32539. return getRealChild(getFirstComponentChild(compOptions.children))
  32540. } else {
  32541. return vnode
  32542. }
  32543. }
  32544. function extractTransitionData (comp) {
  32545. var data = {};
  32546. var options = comp.$options;
  32547. // props
  32548. for (var key in options.propsData) {
  32549. data[key] = comp[key];
  32550. }
  32551. // events.
  32552. // extract listeners and pass them directly to the transition methods
  32553. var listeners = options._parentListeners;
  32554. for (var key$1 in listeners) {
  32555. data[camelize(key$1)] = listeners[key$1];
  32556. }
  32557. return data
  32558. }
  32559. function placeholder (h, rawChild) {
  32560. if (/\d-keep-alive$/.test(rawChild.tag)) {
  32561. return h('keep-alive', {
  32562. props: rawChild.componentOptions.propsData
  32563. })
  32564. }
  32565. }
  32566. function hasParentTransition (vnode) {
  32567. while ((vnode = vnode.parent)) {
  32568. if (vnode.data.transition) {
  32569. return true
  32570. }
  32571. }
  32572. }
  32573. function isSameChild (child, oldChild) {
  32574. return oldChild.key === child.key && oldChild.tag === child.tag
  32575. }
  32576. var isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };
  32577. var isVShowDirective = function (d) { return d.name === 'show'; };
  32578. var Transition = {
  32579. name: 'transition',
  32580. props: transitionProps,
  32581. abstract: true,
  32582. render: function render (h) {
  32583. var this$1 = this;
  32584. var children = this.$slots.default;
  32585. if (!children) {
  32586. return
  32587. }
  32588. // filter out text nodes (possible whitespaces)
  32589. children = children.filter(isNotTextNode);
  32590. /* istanbul ignore if */
  32591. if (!children.length) {
  32592. return
  32593. }
  32594. // warn multiple elements
  32595. if ("development" !== 'production' && children.length > 1) {
  32596. warn(
  32597. '<transition> can only be used on a single element. Use ' +
  32598. '<transition-group> for lists.',
  32599. this.$parent
  32600. );
  32601. }
  32602. var mode = this.mode;
  32603. // warn invalid mode
  32604. if ("development" !== 'production' &&
  32605. mode && mode !== 'in-out' && mode !== 'out-in'
  32606. ) {
  32607. warn(
  32608. 'invalid <transition> mode: ' + mode,
  32609. this.$parent
  32610. );
  32611. }
  32612. var rawChild = children[0];
  32613. // if this is a component root node and the component's
  32614. // parent container node also has transition, skip.
  32615. if (hasParentTransition(this.$vnode)) {
  32616. return rawChild
  32617. }
  32618. // apply transition data to child
  32619. // use getRealChild() to ignore abstract components e.g. keep-alive
  32620. var child = getRealChild(rawChild);
  32621. /* istanbul ignore if */
  32622. if (!child) {
  32623. return rawChild
  32624. }
  32625. if (this._leaving) {
  32626. return placeholder(h, rawChild)
  32627. }
  32628. // ensure a key that is unique to the vnode type and to this transition
  32629. // component instance. This key will be used to remove pending leaving nodes
  32630. // during entering.
  32631. var id = "__transition-" + (this._uid) + "-";
  32632. child.key = child.key == null
  32633. ? child.isComment
  32634. ? id + 'comment'
  32635. : id + child.tag
  32636. : isPrimitive(child.key)
  32637. ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
  32638. : child.key;
  32639. var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
  32640. var oldRawChild = this._vnode;
  32641. var oldChild = getRealChild(oldRawChild);
  32642. // mark v-show
  32643. // so that the transition module can hand over the control to the directive
  32644. if (child.data.directives && child.data.directives.some(isVShowDirective)) {
  32645. child.data.show = true;
  32646. }
  32647. if (
  32648. oldChild &&
  32649. oldChild.data &&
  32650. !isSameChild(child, oldChild) &&
  32651. !isAsyncPlaceholder(oldChild) &&
  32652. // #6687 component root is a comment node
  32653. !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)
  32654. ) {
  32655. // replace old child transition data with fresh one
  32656. // important for dynamic transitions!
  32657. var oldData = oldChild.data.transition = extend({}, data);
  32658. // handle transition mode
  32659. if (mode === 'out-in') {
  32660. // return placeholder node and queue update when leave finishes
  32661. this._leaving = true;
  32662. mergeVNodeHook(oldData, 'afterLeave', function () {
  32663. this$1._leaving = false;
  32664. this$1.$forceUpdate();
  32665. });
  32666. return placeholder(h, rawChild)
  32667. } else if (mode === 'in-out') {
  32668. if (isAsyncPlaceholder(child)) {
  32669. return oldRawChild
  32670. }
  32671. var delayedLeave;
  32672. var performLeave = function () { delayedLeave(); };
  32673. mergeVNodeHook(data, 'afterEnter', performLeave);
  32674. mergeVNodeHook(data, 'enterCancelled', performLeave);
  32675. mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });
  32676. }
  32677. }
  32678. return rawChild
  32679. }
  32680. };
  32681. /* */
  32682. var props = extend({
  32683. tag: String,
  32684. moveClass: String
  32685. }, transitionProps);
  32686. delete props.mode;
  32687. var TransitionGroup = {
  32688. props: props,
  32689. beforeMount: function beforeMount () {
  32690. var this$1 = this;
  32691. var update = this._update;
  32692. this._update = function (vnode, hydrating) {
  32693. var restoreActiveInstance = setActiveInstance(this$1);
  32694. // force removing pass
  32695. this$1.__patch__(
  32696. this$1._vnode,
  32697. this$1.kept,
  32698. false, // hydrating
  32699. true // removeOnly (!important, avoids unnecessary moves)
  32700. );
  32701. this$1._vnode = this$1.kept;
  32702. restoreActiveInstance();
  32703. update.call(this$1, vnode, hydrating);
  32704. };
  32705. },
  32706. render: function render (h) {
  32707. var tag = this.tag || this.$vnode.data.tag || 'span';
  32708. var map = Object.create(null);
  32709. var prevChildren = this.prevChildren = this.children;
  32710. var rawChildren = this.$slots.default || [];
  32711. var children = this.children = [];
  32712. var transitionData = extractTransitionData(this);
  32713. for (var i = 0; i < rawChildren.length; i++) {
  32714. var c = rawChildren[i];
  32715. if (c.tag) {
  32716. if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
  32717. children.push(c);
  32718. map[c.key] = c
  32719. ;(c.data || (c.data = {})).transition = transitionData;
  32720. } else if (true) {
  32721. var opts = c.componentOptions;
  32722. var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;
  32723. warn(("<transition-group> children must be keyed: <" + name + ">"));
  32724. }
  32725. }
  32726. }
  32727. if (prevChildren) {
  32728. var kept = [];
  32729. var removed = [];
  32730. for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
  32731. var c$1 = prevChildren[i$1];
  32732. c$1.data.transition = transitionData;
  32733. c$1.data.pos = c$1.elm.getBoundingClientRect();
  32734. if (map[c$1.key]) {
  32735. kept.push(c$1);
  32736. } else {
  32737. removed.push(c$1);
  32738. }
  32739. }
  32740. this.kept = h(tag, null, kept);
  32741. this.removed = removed;
  32742. }
  32743. return h(tag, null, children)
  32744. },
  32745. updated: function updated () {
  32746. var children = this.prevChildren;
  32747. var moveClass = this.moveClass || ((this.name || 'v') + '-move');
  32748. if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
  32749. return
  32750. }
  32751. // we divide the work into three loops to avoid mixing DOM reads and writes
  32752. // in each iteration - which helps prevent layout thrashing.
  32753. children.forEach(callPendingCbs);
  32754. children.forEach(recordPosition);
  32755. children.forEach(applyTranslation);
  32756. // force reflow to put everything in position
  32757. // assign to this to avoid being removed in tree-shaking
  32758. // $flow-disable-line
  32759. this._reflow = document.body.offsetHeight;
  32760. children.forEach(function (c) {
  32761. if (c.data.moved) {
  32762. var el = c.elm;
  32763. var s = el.style;
  32764. addTransitionClass(el, moveClass);
  32765. s.transform = s.WebkitTransform = s.transitionDuration = '';
  32766. el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {
  32767. if (e && e.target !== el) {
  32768. return
  32769. }
  32770. if (!e || /transform$/.test(e.propertyName)) {
  32771. el.removeEventListener(transitionEndEvent, cb);
  32772. el._moveCb = null;
  32773. removeTransitionClass(el, moveClass);
  32774. }
  32775. });
  32776. }
  32777. });
  32778. },
  32779. methods: {
  32780. hasMove: function hasMove (el, moveClass) {
  32781. /* istanbul ignore if */
  32782. if (!hasTransition) {
  32783. return false
  32784. }
  32785. /* istanbul ignore if */
  32786. if (this._hasMove) {
  32787. return this._hasMove
  32788. }
  32789. // Detect whether an element with the move class applied has
  32790. // CSS transitions. Since the element may be inside an entering
  32791. // transition at this very moment, we make a clone of it and remove
  32792. // all other transition classes applied to ensure only the move class
  32793. // is applied.
  32794. var clone = el.cloneNode();
  32795. if (el._transitionClasses) {
  32796. el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });
  32797. }
  32798. addClass(clone, moveClass);
  32799. clone.style.display = 'none';
  32800. this.$el.appendChild(clone);
  32801. var info = getTransitionInfo(clone);
  32802. this.$el.removeChild(clone);
  32803. return (this._hasMove = info.hasTransform)
  32804. }
  32805. }
  32806. };
  32807. function callPendingCbs (c) {
  32808. /* istanbul ignore if */
  32809. if (c.elm._moveCb) {
  32810. c.elm._moveCb();
  32811. }
  32812. /* istanbul ignore if */
  32813. if (c.elm._enterCb) {
  32814. c.elm._enterCb();
  32815. }
  32816. }
  32817. function recordPosition (c) {
  32818. c.data.newPos = c.elm.getBoundingClientRect();
  32819. }
  32820. function applyTranslation (c) {
  32821. var oldPos = c.data.pos;
  32822. var newPos = c.data.newPos;
  32823. var dx = oldPos.left - newPos.left;
  32824. var dy = oldPos.top - newPos.top;
  32825. if (dx || dy) {
  32826. c.data.moved = true;
  32827. var s = c.elm.style;
  32828. s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
  32829. s.transitionDuration = '0s';
  32830. }
  32831. }
  32832. var platformComponents = {
  32833. Transition: Transition,
  32834. TransitionGroup: TransitionGroup
  32835. };
  32836. /* */
  32837. // install platform specific utils
  32838. Vue.config.mustUseProp = mustUseProp;
  32839. Vue.config.isReservedTag = isReservedTag;
  32840. Vue.config.isReservedAttr = isReservedAttr;
  32841. Vue.config.getTagNamespace = getTagNamespace;
  32842. Vue.config.isUnknownElement = isUnknownElement;
  32843. // install platform runtime directives & components
  32844. extend(Vue.options.directives, platformDirectives);
  32845. extend(Vue.options.components, platformComponents);
  32846. // install platform patch function
  32847. Vue.prototype.__patch__ = inBrowser ? patch : noop;
  32848. // public mount method
  32849. Vue.prototype.$mount = function (
  32850. el,
  32851. hydrating
  32852. ) {
  32853. el = el && inBrowser ? query(el) : undefined;
  32854. return mountComponent(this, el, hydrating)
  32855. };
  32856. // devtools global hook
  32857. /* istanbul ignore next */
  32858. if (inBrowser) {
  32859. setTimeout(function () {
  32860. if (config.devtools) {
  32861. if (devtools) {
  32862. devtools.emit('init', Vue);
  32863. } else if (
  32864. "development" !== 'production' &&
  32865. "development" !== 'test' &&
  32866. isChrome
  32867. ) {
  32868. console[console.info ? 'info' : 'log'](
  32869. 'Download the Vue Devtools extension for a better development experience:\n' +
  32870. 'https://github.com/vuejs/vue-devtools'
  32871. );
  32872. }
  32873. }
  32874. if ("development" !== 'production' &&
  32875. "development" !== 'test' &&
  32876. config.productionTip !== false &&
  32877. typeof console !== 'undefined'
  32878. ) {
  32879. console[console.info ? 'info' : 'log'](
  32880. "You are running Vue in development mode.\n" +
  32881. "Make sure to turn on production mode when deploying for production.\n" +
  32882. "See more tips at https://vuejs.org/guide/deployment.html"
  32883. );
  32884. }
  32885. }, 0);
  32886. }
  32887. /* */
  32888. var defaultTagRE = /\{\{((?:.|\r?\n)+?)\}\}/g;
  32889. var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
  32890. var buildRegex = cached(function (delimiters) {
  32891. var open = delimiters[0].replace(regexEscapeRE, '\\$&');
  32892. var close = delimiters[1].replace(regexEscapeRE, '\\$&');
  32893. return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
  32894. });
  32895. function parseText (
  32896. text,
  32897. delimiters
  32898. ) {
  32899. var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
  32900. if (!tagRE.test(text)) {
  32901. return
  32902. }
  32903. var tokens = [];
  32904. var rawTokens = [];
  32905. var lastIndex = tagRE.lastIndex = 0;
  32906. var match, index, tokenValue;
  32907. while ((match = tagRE.exec(text))) {
  32908. index = match.index;
  32909. // push text token
  32910. if (index > lastIndex) {
  32911. rawTokens.push(tokenValue = text.slice(lastIndex, index));
  32912. tokens.push(JSON.stringify(tokenValue));
  32913. }
  32914. // tag token
  32915. var exp = parseFilters(match[1].trim());
  32916. tokens.push(("_s(" + exp + ")"));
  32917. rawTokens.push({ '@binding': exp });
  32918. lastIndex = index + match[0].length;
  32919. }
  32920. if (lastIndex < text.length) {
  32921. rawTokens.push(tokenValue = text.slice(lastIndex));
  32922. tokens.push(JSON.stringify(tokenValue));
  32923. }
  32924. return {
  32925. expression: tokens.join('+'),
  32926. tokens: rawTokens
  32927. }
  32928. }
  32929. /* */
  32930. function transformNode (el, options) {
  32931. var warn = options.warn || baseWarn;
  32932. var staticClass = getAndRemoveAttr(el, 'class');
  32933. if ("development" !== 'production' && staticClass) {
  32934. var res = parseText(staticClass, options.delimiters);
  32935. if (res) {
  32936. warn(
  32937. "class=\"" + staticClass + "\": " +
  32938. 'Interpolation inside attributes has been removed. ' +
  32939. 'Use v-bind or the colon shorthand instead. For example, ' +
  32940. 'instead of <div class="{{ val }}">, use <div :class="val">.'
  32941. );
  32942. }
  32943. }
  32944. if (staticClass) {
  32945. el.staticClass = JSON.stringify(staticClass);
  32946. }
  32947. var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
  32948. if (classBinding) {
  32949. el.classBinding = classBinding;
  32950. }
  32951. }
  32952. function genData (el) {
  32953. var data = '';
  32954. if (el.staticClass) {
  32955. data += "staticClass:" + (el.staticClass) + ",";
  32956. }
  32957. if (el.classBinding) {
  32958. data += "class:" + (el.classBinding) + ",";
  32959. }
  32960. return data
  32961. }
  32962. var klass$1 = {
  32963. staticKeys: ['staticClass'],
  32964. transformNode: transformNode,
  32965. genData: genData
  32966. };
  32967. /* */
  32968. function transformNode$1 (el, options) {
  32969. var warn = options.warn || baseWarn;
  32970. var staticStyle = getAndRemoveAttr(el, 'style');
  32971. if (staticStyle) {
  32972. /* istanbul ignore if */
  32973. if (true) {
  32974. var res = parseText(staticStyle, options.delimiters);
  32975. if (res) {
  32976. warn(
  32977. "style=\"" + staticStyle + "\": " +
  32978. 'Interpolation inside attributes has been removed. ' +
  32979. 'Use v-bind or the colon shorthand instead. For example, ' +
  32980. 'instead of <div style="{{ val }}">, use <div :style="val">.'
  32981. );
  32982. }
  32983. }
  32984. el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
  32985. }
  32986. var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
  32987. if (styleBinding) {
  32988. el.styleBinding = styleBinding;
  32989. }
  32990. }
  32991. function genData$1 (el) {
  32992. var data = '';
  32993. if (el.staticStyle) {
  32994. data += "staticStyle:" + (el.staticStyle) + ",";
  32995. }
  32996. if (el.styleBinding) {
  32997. data += "style:(" + (el.styleBinding) + "),";
  32998. }
  32999. return data
  33000. }
  33001. var style$1 = {
  33002. staticKeys: ['staticStyle'],
  33003. transformNode: transformNode$1,
  33004. genData: genData$1
  33005. };
  33006. /* */
  33007. var decoder;
  33008. var he = {
  33009. decode: function decode (html) {
  33010. decoder = decoder || document.createElement('div');
  33011. decoder.innerHTML = html;
  33012. return decoder.textContent
  33013. }
  33014. };
  33015. /* */
  33016. var isUnaryTag = makeMap(
  33017. 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
  33018. 'link,meta,param,source,track,wbr'
  33019. );
  33020. // Elements that you can, intentionally, leave open
  33021. // (and which close themselves)
  33022. var canBeLeftOpenTag = makeMap(
  33023. 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'
  33024. );
  33025. // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
  33026. // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
  33027. var isNonPhrasingTag = makeMap(
  33028. 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
  33029. 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
  33030. 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
  33031. 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
  33032. 'title,tr,track'
  33033. );
  33034. /**
  33035. * Not type-checking this file because it's mostly vendor code.
  33036. */
  33037. // Regular Expressions for parsing tags and attributes
  33038. var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
  33039. // could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName
  33040. // but for Vue templates we can enforce a simple charset
  33041. var ncname = '[a-zA-Z_][\\w\\-\\.]*';
  33042. var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";
  33043. var startTagOpen = new RegExp(("^<" + qnameCapture));
  33044. var startTagClose = /^\s*(\/?)>/;
  33045. var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));
  33046. var doctype = /^<!DOCTYPE [^>]+>/i;
  33047. // #7298: escape - to avoid being pased as HTML comment when inlined in page
  33048. var comment = /^<!\--/;
  33049. var conditionalComment = /^<!\[/;
  33050. // Special Elements (can contain anything)
  33051. var isPlainTextElement = makeMap('script,style,textarea', true);
  33052. var reCache = {};
  33053. var decodingMap = {
  33054. '&lt;': '<',
  33055. '&gt;': '>',
  33056. '&quot;': '"',
  33057. '&amp;': '&',
  33058. '&#10;': '\n',
  33059. '&#9;': '\t'
  33060. };
  33061. var encodedAttr = /&(?:lt|gt|quot|amp);/g;
  33062. var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;
  33063. // #5992
  33064. var isIgnoreNewlineTag = makeMap('pre,textarea', true);
  33065. var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };
  33066. function decodeAttr (value, shouldDecodeNewlines) {
  33067. var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
  33068. return value.replace(re, function (match) { return decodingMap[match]; })
  33069. }
  33070. function parseHTML (html, options) {
  33071. var stack = [];
  33072. var expectHTML = options.expectHTML;
  33073. var isUnaryTag$$1 = options.isUnaryTag || no;
  33074. var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;
  33075. var index = 0;
  33076. var last, lastTag;
  33077. while (html) {
  33078. last = html;
  33079. // Make sure we're not in a plaintext content element like script/style
  33080. if (!lastTag || !isPlainTextElement(lastTag)) {
  33081. var textEnd = html.indexOf('<');
  33082. if (textEnd === 0) {
  33083. // Comment:
  33084. if (comment.test(html)) {
  33085. var commentEnd = html.indexOf('-->');
  33086. if (commentEnd >= 0) {
  33087. if (options.shouldKeepComment) {
  33088. options.comment(html.substring(4, commentEnd));
  33089. }
  33090. advance(commentEnd + 3);
  33091. continue
  33092. }
  33093. }
  33094. // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
  33095. if (conditionalComment.test(html)) {
  33096. var conditionalEnd = html.indexOf(']>');
  33097. if (conditionalEnd >= 0) {
  33098. advance(conditionalEnd + 2);
  33099. continue
  33100. }
  33101. }
  33102. // Doctype:
  33103. var doctypeMatch = html.match(doctype);
  33104. if (doctypeMatch) {
  33105. advance(doctypeMatch[0].length);
  33106. continue
  33107. }
  33108. // End tag:
  33109. var endTagMatch = html.match(endTag);
  33110. if (endTagMatch) {
  33111. var curIndex = index;
  33112. advance(endTagMatch[0].length);
  33113. parseEndTag(endTagMatch[1], curIndex, index);
  33114. continue
  33115. }
  33116. // Start tag:
  33117. var startTagMatch = parseStartTag();
  33118. if (startTagMatch) {
  33119. handleStartTag(startTagMatch);
  33120. if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {
  33121. advance(1);
  33122. }
  33123. continue
  33124. }
  33125. }
  33126. var text = (void 0), rest = (void 0), next = (void 0);
  33127. if (textEnd >= 0) {
  33128. rest = html.slice(textEnd);
  33129. while (
  33130. !endTag.test(rest) &&
  33131. !startTagOpen.test(rest) &&
  33132. !comment.test(rest) &&
  33133. !conditionalComment.test(rest)
  33134. ) {
  33135. // < in plain text, be forgiving and treat it as text
  33136. next = rest.indexOf('<', 1);
  33137. if (next < 0) { break }
  33138. textEnd += next;
  33139. rest = html.slice(textEnd);
  33140. }
  33141. text = html.substring(0, textEnd);
  33142. advance(textEnd);
  33143. }
  33144. if (textEnd < 0) {
  33145. text = html;
  33146. html = '';
  33147. }
  33148. if (options.chars && text) {
  33149. options.chars(text);
  33150. }
  33151. } else {
  33152. var endTagLength = 0;
  33153. var stackedTag = lastTag.toLowerCase();
  33154. var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
  33155. var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {
  33156. endTagLength = endTag.length;
  33157. if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
  33158. text = text
  33159. .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298
  33160. .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
  33161. }
  33162. if (shouldIgnoreFirstNewline(stackedTag, text)) {
  33163. text = text.slice(1);
  33164. }
  33165. if (options.chars) {
  33166. options.chars(text);
  33167. }
  33168. return ''
  33169. });
  33170. index += html.length - rest$1.length;
  33171. html = rest$1;
  33172. parseEndTag(stackedTag, index - endTagLength, index);
  33173. }
  33174. if (html === last) {
  33175. options.chars && options.chars(html);
  33176. if ("development" !== 'production' && !stack.length && options.warn) {
  33177. options.warn(("Mal-formatted tag at end of template: \"" + html + "\""));
  33178. }
  33179. break
  33180. }
  33181. }
  33182. // Clean up any remaining tags
  33183. parseEndTag();
  33184. function advance (n) {
  33185. index += n;
  33186. html = html.substring(n);
  33187. }
  33188. function parseStartTag () {
  33189. var start = html.match(startTagOpen);
  33190. if (start) {
  33191. var match = {
  33192. tagName: start[1],
  33193. attrs: [],
  33194. start: index
  33195. };
  33196. advance(start[0].length);
  33197. var end, attr;
  33198. while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {
  33199. advance(attr[0].length);
  33200. match.attrs.push(attr);
  33201. }
  33202. if (end) {
  33203. match.unarySlash = end[1];
  33204. advance(end[0].length);
  33205. match.end = index;
  33206. return match
  33207. }
  33208. }
  33209. }
  33210. function handleStartTag (match) {
  33211. var tagName = match.tagName;
  33212. var unarySlash = match.unarySlash;
  33213. if (expectHTML) {
  33214. if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
  33215. parseEndTag(lastTag);
  33216. }
  33217. if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {
  33218. parseEndTag(tagName);
  33219. }
  33220. }
  33221. var unary = isUnaryTag$$1(tagName) || !!unarySlash;
  33222. var l = match.attrs.length;
  33223. var attrs = new Array(l);
  33224. for (var i = 0; i < l; i++) {
  33225. var args = match.attrs[i];
  33226. var value = args[3] || args[4] || args[5] || '';
  33227. var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'
  33228. ? options.shouldDecodeNewlinesForHref
  33229. : options.shouldDecodeNewlines;
  33230. attrs[i] = {
  33231. name: args[1],
  33232. value: decodeAttr(value, shouldDecodeNewlines)
  33233. };
  33234. }
  33235. if (!unary) {
  33236. stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });
  33237. lastTag = tagName;
  33238. }
  33239. if (options.start) {
  33240. options.start(tagName, attrs, unary, match.start, match.end);
  33241. }
  33242. }
  33243. function parseEndTag (tagName, start, end) {
  33244. var pos, lowerCasedTagName;
  33245. if (start == null) { start = index; }
  33246. if (end == null) { end = index; }
  33247. // Find the closest opened tag of the same type
  33248. if (tagName) {
  33249. lowerCasedTagName = tagName.toLowerCase();
  33250. for (pos = stack.length - 1; pos >= 0; pos--) {
  33251. if (stack[pos].lowerCasedTag === lowerCasedTagName) {
  33252. break
  33253. }
  33254. }
  33255. } else {
  33256. // If no tag name is provided, clean shop
  33257. pos = 0;
  33258. }
  33259. if (pos >= 0) {
  33260. // Close all the open elements, up the stack
  33261. for (var i = stack.length - 1; i >= pos; i--) {
  33262. if ("development" !== 'production' &&
  33263. (i > pos || !tagName) &&
  33264. options.warn
  33265. ) {
  33266. options.warn(
  33267. ("tag <" + (stack[i].tag) + "> has no matching end tag.")
  33268. );
  33269. }
  33270. if (options.end) {
  33271. options.end(stack[i].tag, start, end);
  33272. }
  33273. }
  33274. // Remove the open elements from the stack
  33275. stack.length = pos;
  33276. lastTag = pos && stack[pos - 1].tag;
  33277. } else if (lowerCasedTagName === 'br') {
  33278. if (options.start) {
  33279. options.start(tagName, [], true, start, end);
  33280. }
  33281. } else if (lowerCasedTagName === 'p') {
  33282. if (options.start) {
  33283. options.start(tagName, [], false, start, end);
  33284. }
  33285. if (options.end) {
  33286. options.end(tagName, start, end);
  33287. }
  33288. }
  33289. }
  33290. }
  33291. /* */
  33292. var onRE = /^@|^v-on:/;
  33293. var dirRE = /^v-|^@|^:/;
  33294. var forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
  33295. var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
  33296. var stripParensRE = /^\(|\)$/g;
  33297. var argRE = /:(.*)$/;
  33298. var bindRE = /^:|^v-bind:/;
  33299. var modifierRE = /\.[^.]+/g;
  33300. var decodeHTMLCached = cached(he.decode);
  33301. // configurable state
  33302. var warn$2;
  33303. var delimiters;
  33304. var transforms;
  33305. var preTransforms;
  33306. var postTransforms;
  33307. var platformIsPreTag;
  33308. var platformMustUseProp;
  33309. var platformGetTagNamespace;
  33310. function createASTElement (
  33311. tag,
  33312. attrs,
  33313. parent
  33314. ) {
  33315. return {
  33316. type: 1,
  33317. tag: tag,
  33318. attrsList: attrs,
  33319. attrsMap: makeAttrsMap(attrs),
  33320. parent: parent,
  33321. children: []
  33322. }
  33323. }
  33324. /**
  33325. * Convert HTML string to AST.
  33326. */
  33327. function parse (
  33328. template,
  33329. options
  33330. ) {
  33331. warn$2 = options.warn || baseWarn;
  33332. platformIsPreTag = options.isPreTag || no;
  33333. platformMustUseProp = options.mustUseProp || no;
  33334. platformGetTagNamespace = options.getTagNamespace || no;
  33335. transforms = pluckModuleFunction(options.modules, 'transformNode');
  33336. preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
  33337. postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
  33338. delimiters = options.delimiters;
  33339. var stack = [];
  33340. var preserveWhitespace = options.preserveWhitespace !== false;
  33341. var root;
  33342. var currentParent;
  33343. var inVPre = false;
  33344. var inPre = false;
  33345. var warned = false;
  33346. function warnOnce (msg) {
  33347. if (!warned) {
  33348. warned = true;
  33349. warn$2(msg);
  33350. }
  33351. }
  33352. function closeElement (element) {
  33353. // check pre state
  33354. if (element.pre) {
  33355. inVPre = false;
  33356. }
  33357. if (platformIsPreTag(element.tag)) {
  33358. inPre = false;
  33359. }
  33360. // apply post-transforms
  33361. for (var i = 0; i < postTransforms.length; i++) {
  33362. postTransforms[i](element, options);
  33363. }
  33364. }
  33365. parseHTML(template, {
  33366. warn: warn$2,
  33367. expectHTML: options.expectHTML,
  33368. isUnaryTag: options.isUnaryTag,
  33369. canBeLeftOpenTag: options.canBeLeftOpenTag,
  33370. shouldDecodeNewlines: options.shouldDecodeNewlines,
  33371. shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
  33372. shouldKeepComment: options.comments,
  33373. start: function start (tag, attrs, unary) {
  33374. // check namespace.
  33375. // inherit parent ns if there is one
  33376. var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);
  33377. // handle IE svg bug
  33378. /* istanbul ignore if */
  33379. if (isIE && ns === 'svg') {
  33380. attrs = guardIESVGBug(attrs);
  33381. }
  33382. var element = createASTElement(tag, attrs, currentParent);
  33383. if (ns) {
  33384. element.ns = ns;
  33385. }
  33386. if (isForbiddenTag(element) && !isServerRendering()) {
  33387. element.forbidden = true;
  33388. "development" !== 'production' && warn$2(
  33389. 'Templates should only be responsible for mapping the state to the ' +
  33390. 'UI. Avoid placing tags with side-effects in your templates, such as ' +
  33391. "<" + tag + ">" + ', as they will not be parsed.'
  33392. );
  33393. }
  33394. // apply pre-transforms
  33395. for (var i = 0; i < preTransforms.length; i++) {
  33396. element = preTransforms[i](element, options) || element;
  33397. }
  33398. if (!inVPre) {
  33399. processPre(element);
  33400. if (element.pre) {
  33401. inVPre = true;
  33402. }
  33403. }
  33404. if (platformIsPreTag(element.tag)) {
  33405. inPre = true;
  33406. }
  33407. if (inVPre) {
  33408. processRawAttrs(element);
  33409. } else if (!element.processed) {
  33410. // structural directives
  33411. processFor(element);
  33412. processIf(element);
  33413. processOnce(element);
  33414. // element-scope stuff
  33415. processElement(element, options);
  33416. }
  33417. function checkRootConstraints (el) {
  33418. if (true) {
  33419. if (el.tag === 'slot' || el.tag === 'template') {
  33420. warnOnce(
  33421. "Cannot use <" + (el.tag) + "> as component root element because it may " +
  33422. 'contain multiple nodes.'
  33423. );
  33424. }
  33425. if (el.attrsMap.hasOwnProperty('v-for')) {
  33426. warnOnce(
  33427. 'Cannot use v-for on stateful component root element because ' +
  33428. 'it renders multiple elements.'
  33429. );
  33430. }
  33431. }
  33432. }
  33433. // tree management
  33434. if (!root) {
  33435. root = element;
  33436. checkRootConstraints(root);
  33437. } else if (!stack.length) {
  33438. // allow root elements with v-if, v-else-if and v-else
  33439. if (root.if && (element.elseif || element.else)) {
  33440. checkRootConstraints(element);
  33441. addIfCondition(root, {
  33442. exp: element.elseif,
  33443. block: element
  33444. });
  33445. } else if (true) {
  33446. warnOnce(
  33447. "Component template should contain exactly one root element. " +
  33448. "If you are using v-if on multiple elements, " +
  33449. "use v-else-if to chain them instead."
  33450. );
  33451. }
  33452. }
  33453. if (currentParent && !element.forbidden) {
  33454. if (element.elseif || element.else) {
  33455. processIfConditions(element, currentParent);
  33456. } else if (element.slotScope) { // scoped slot
  33457. currentParent.plain = false;
  33458. var name = element.slotTarget || '"default"'
  33459. ;(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
  33460. } else {
  33461. currentParent.children.push(element);
  33462. element.parent = currentParent;
  33463. }
  33464. }
  33465. if (!unary) {
  33466. currentParent = element;
  33467. stack.push(element);
  33468. } else {
  33469. closeElement(element);
  33470. }
  33471. },
  33472. end: function end () {
  33473. // remove trailing whitespace
  33474. var element = stack[stack.length - 1];
  33475. var lastNode = element.children[element.children.length - 1];
  33476. if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {
  33477. element.children.pop();
  33478. }
  33479. // pop stack
  33480. stack.length -= 1;
  33481. currentParent = stack[stack.length - 1];
  33482. closeElement(element);
  33483. },
  33484. chars: function chars (text) {
  33485. if (!currentParent) {
  33486. if (true) {
  33487. if (text === template) {
  33488. warnOnce(
  33489. 'Component template requires a root element, rather than just text.'
  33490. );
  33491. } else if ((text = text.trim())) {
  33492. warnOnce(
  33493. ("text \"" + text + "\" outside root element will be ignored.")
  33494. );
  33495. }
  33496. }
  33497. return
  33498. }
  33499. // IE textarea placeholder bug
  33500. /* istanbul ignore if */
  33501. if (isIE &&
  33502. currentParent.tag === 'textarea' &&
  33503. currentParent.attrsMap.placeholder === text
  33504. ) {
  33505. return
  33506. }
  33507. var children = currentParent.children;
  33508. text = inPre || text.trim()
  33509. ? isTextTag(currentParent) ? text : decodeHTMLCached(text)
  33510. // only preserve whitespace if its not right after a starting tag
  33511. : preserveWhitespace && children.length ? ' ' : '';
  33512. if (text) {
  33513. var res;
  33514. if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
  33515. children.push({
  33516. type: 2,
  33517. expression: res.expression,
  33518. tokens: res.tokens,
  33519. text: text
  33520. });
  33521. } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {
  33522. children.push({
  33523. type: 3,
  33524. text: text
  33525. });
  33526. }
  33527. }
  33528. },
  33529. comment: function comment (text) {
  33530. currentParent.children.push({
  33531. type: 3,
  33532. text: text,
  33533. isComment: true
  33534. });
  33535. }
  33536. });
  33537. return root
  33538. }
  33539. function processPre (el) {
  33540. if (getAndRemoveAttr(el, 'v-pre') != null) {
  33541. el.pre = true;
  33542. }
  33543. }
  33544. function processRawAttrs (el) {
  33545. var l = el.attrsList.length;
  33546. if (l) {
  33547. var attrs = el.attrs = new Array(l);
  33548. for (var i = 0; i < l; i++) {
  33549. attrs[i] = {
  33550. name: el.attrsList[i].name,
  33551. value: JSON.stringify(el.attrsList[i].value)
  33552. };
  33553. }
  33554. } else if (!el.pre) {
  33555. // non root node in pre blocks with no attributes
  33556. el.plain = true;
  33557. }
  33558. }
  33559. function processElement (element, options) {
  33560. processKey(element);
  33561. // determine whether this is a plain element after
  33562. // removing structural attributes
  33563. element.plain = !element.key && !element.attrsList.length;
  33564. processRef(element);
  33565. processSlot(element);
  33566. processComponent(element);
  33567. for (var i = 0; i < transforms.length; i++) {
  33568. element = transforms[i](element, options) || element;
  33569. }
  33570. processAttrs(element);
  33571. }
  33572. function processKey (el) {
  33573. var exp = getBindingAttr(el, 'key');
  33574. if (exp) {
  33575. if (true) {
  33576. if (el.tag === 'template') {
  33577. warn$2("<template> cannot be keyed. Place the key on real elements instead.");
  33578. }
  33579. if (el.for) {
  33580. var iterator = el.iterator2 || el.iterator1;
  33581. var parent = el.parent;
  33582. if (iterator && iterator === exp && parent && parent.tag === 'transition-group') {
  33583. warn$2(
  33584. "Do not use v-for index as key on <transition-group> children, " +
  33585. "this is the same as not using keys."
  33586. );
  33587. }
  33588. }
  33589. }
  33590. el.key = exp;
  33591. }
  33592. }
  33593. function processRef (el) {
  33594. var ref = getBindingAttr(el, 'ref');
  33595. if (ref) {
  33596. el.ref = ref;
  33597. el.refInFor = checkInFor(el);
  33598. }
  33599. }
  33600. function processFor (el) {
  33601. var exp;
  33602. if ((exp = getAndRemoveAttr(el, 'v-for'))) {
  33603. var res = parseFor(exp);
  33604. if (res) {
  33605. extend(el, res);
  33606. } else if (true) {
  33607. warn$2(
  33608. ("Invalid v-for expression: " + exp)
  33609. );
  33610. }
  33611. }
  33612. }
  33613. function parseFor (exp) {
  33614. var inMatch = exp.match(forAliasRE);
  33615. if (!inMatch) { return }
  33616. var res = {};
  33617. res.for = inMatch[2].trim();
  33618. var alias = inMatch[1].trim().replace(stripParensRE, '');
  33619. var iteratorMatch = alias.match(forIteratorRE);
  33620. if (iteratorMatch) {
  33621. res.alias = alias.replace(forIteratorRE, '').trim();
  33622. res.iterator1 = iteratorMatch[1].trim();
  33623. if (iteratorMatch[2]) {
  33624. res.iterator2 = iteratorMatch[2].trim();
  33625. }
  33626. } else {
  33627. res.alias = alias;
  33628. }
  33629. return res
  33630. }
  33631. function processIf (el) {
  33632. var exp = getAndRemoveAttr(el, 'v-if');
  33633. if (exp) {
  33634. el.if = exp;
  33635. addIfCondition(el, {
  33636. exp: exp,
  33637. block: el
  33638. });
  33639. } else {
  33640. if (getAndRemoveAttr(el, 'v-else') != null) {
  33641. el.else = true;
  33642. }
  33643. var elseif = getAndRemoveAttr(el, 'v-else-if');
  33644. if (elseif) {
  33645. el.elseif = elseif;
  33646. }
  33647. }
  33648. }
  33649. function processIfConditions (el, parent) {
  33650. var prev = findPrevElement(parent.children);
  33651. if (prev && prev.if) {
  33652. addIfCondition(prev, {
  33653. exp: el.elseif,
  33654. block: el
  33655. });
  33656. } else if (true) {
  33657. warn$2(
  33658. "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " +
  33659. "used on element <" + (el.tag) + "> without corresponding v-if."
  33660. );
  33661. }
  33662. }
  33663. function findPrevElement (children) {
  33664. var i = children.length;
  33665. while (i--) {
  33666. if (children[i].type === 1) {
  33667. return children[i]
  33668. } else {
  33669. if ("development" !== 'production' && children[i].text !== ' ') {
  33670. warn$2(
  33671. "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " +
  33672. "will be ignored."
  33673. );
  33674. }
  33675. children.pop();
  33676. }
  33677. }
  33678. }
  33679. function addIfCondition (el, condition) {
  33680. if (!el.ifConditions) {
  33681. el.ifConditions = [];
  33682. }
  33683. el.ifConditions.push(condition);
  33684. }
  33685. function processOnce (el) {
  33686. var once$$1 = getAndRemoveAttr(el, 'v-once');
  33687. if (once$$1 != null) {
  33688. el.once = true;
  33689. }
  33690. }
  33691. function processSlot (el) {
  33692. if (el.tag === 'slot') {
  33693. el.slotName = getBindingAttr(el, 'name');
  33694. if ("development" !== 'production' && el.key) {
  33695. warn$2(
  33696. "`key` does not work on <slot> because slots are abstract outlets " +
  33697. "and can possibly expand into multiple elements. " +
  33698. "Use the key on a wrapping element instead."
  33699. );
  33700. }
  33701. } else {
  33702. var slotScope;
  33703. if (el.tag === 'template') {
  33704. slotScope = getAndRemoveAttr(el, 'scope');
  33705. /* istanbul ignore if */
  33706. if ("development" !== 'production' && slotScope) {
  33707. warn$2(
  33708. "the \"scope\" attribute for scoped slots have been deprecated and " +
  33709. "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " +
  33710. "can also be used on plain elements in addition to <template> to " +
  33711. "denote scoped slots.",
  33712. true
  33713. );
  33714. }
  33715. el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
  33716. } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {
  33717. /* istanbul ignore if */
  33718. if ("development" !== 'production' && el.attrsMap['v-for']) {
  33719. warn$2(
  33720. "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " +
  33721. "(v-for takes higher priority). Use a wrapper <template> for the " +
  33722. "scoped slot to make it clearer.",
  33723. true
  33724. );
  33725. }
  33726. el.slotScope = slotScope;
  33727. }
  33728. var slotTarget = getBindingAttr(el, 'slot');
  33729. if (slotTarget) {
  33730. el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
  33731. // preserve slot as an attribute for native shadow DOM compat
  33732. // only for non-scoped slots.
  33733. if (el.tag !== 'template' && !el.slotScope) {
  33734. addAttr(el, 'slot', slotTarget);
  33735. }
  33736. }
  33737. }
  33738. }
  33739. function processComponent (el) {
  33740. var binding;
  33741. if ((binding = getBindingAttr(el, 'is'))) {
  33742. el.component = binding;
  33743. }
  33744. if (getAndRemoveAttr(el, 'inline-template') != null) {
  33745. el.inlineTemplate = true;
  33746. }
  33747. }
  33748. function processAttrs (el) {
  33749. var list = el.attrsList;
  33750. var i, l, name, rawName, value, modifiers, isProp;
  33751. for (i = 0, l = list.length; i < l; i++) {
  33752. name = rawName = list[i].name;
  33753. value = list[i].value;
  33754. if (dirRE.test(name)) {
  33755. // mark element as dynamic
  33756. el.hasBindings = true;
  33757. // modifiers
  33758. modifiers = parseModifiers(name);
  33759. if (modifiers) {
  33760. name = name.replace(modifierRE, '');
  33761. }
  33762. if (bindRE.test(name)) { // v-bind
  33763. name = name.replace(bindRE, '');
  33764. value = parseFilters(value);
  33765. isProp = false;
  33766. if (
  33767. "development" !== 'production' &&
  33768. value.trim().length === 0
  33769. ) {
  33770. warn$2(
  33771. ("The value for a v-bind expression cannot be empty. Found in \"v-bind:" + name + "\"")
  33772. );
  33773. }
  33774. if (modifiers) {
  33775. if (modifiers.prop) {
  33776. isProp = true;
  33777. name = camelize(name);
  33778. if (name === 'innerHtml') { name = 'innerHTML'; }
  33779. }
  33780. if (modifiers.camel) {
  33781. name = camelize(name);
  33782. }
  33783. if (modifiers.sync) {
  33784. addHandler(
  33785. el,
  33786. ("update:" + (camelize(name))),
  33787. genAssignmentCode(value, "$event")
  33788. );
  33789. }
  33790. }
  33791. if (isProp || (
  33792. !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)
  33793. )) {
  33794. addProp(el, name, value);
  33795. } else {
  33796. addAttr(el, name, value);
  33797. }
  33798. } else if (onRE.test(name)) { // v-on
  33799. name = name.replace(onRE, '');
  33800. addHandler(el, name, value, modifiers, false, warn$2);
  33801. } else { // normal directives
  33802. name = name.replace(dirRE, '');
  33803. // parse arg
  33804. var argMatch = name.match(argRE);
  33805. var arg = argMatch && argMatch[1];
  33806. if (arg) {
  33807. name = name.slice(0, -(arg.length + 1));
  33808. }
  33809. addDirective(el, name, rawName, value, arg, modifiers);
  33810. if ("development" !== 'production' && name === 'model') {
  33811. checkForAliasModel(el, value);
  33812. }
  33813. }
  33814. } else {
  33815. // literal attribute
  33816. if (true) {
  33817. var res = parseText(value, delimiters);
  33818. if (res) {
  33819. warn$2(
  33820. name + "=\"" + value + "\": " +
  33821. 'Interpolation inside attributes has been removed. ' +
  33822. 'Use v-bind or the colon shorthand instead. For example, ' +
  33823. 'instead of <div id="{{ val }}">, use <div :id="val">.'
  33824. );
  33825. }
  33826. }
  33827. addAttr(el, name, JSON.stringify(value));
  33828. // #6887 firefox doesn't update muted state if set via attribute
  33829. // even immediately after element creation
  33830. if (!el.component &&
  33831. name === 'muted' &&
  33832. platformMustUseProp(el.tag, el.attrsMap.type, name)) {
  33833. addProp(el, name, 'true');
  33834. }
  33835. }
  33836. }
  33837. }
  33838. function checkInFor (el) {
  33839. var parent = el;
  33840. while (parent) {
  33841. if (parent.for !== undefined) {
  33842. return true
  33843. }
  33844. parent = parent.parent;
  33845. }
  33846. return false
  33847. }
  33848. function parseModifiers (name) {
  33849. var match = name.match(modifierRE);
  33850. if (match) {
  33851. var ret = {};
  33852. match.forEach(function (m) { ret[m.slice(1)] = true; });
  33853. return ret
  33854. }
  33855. }
  33856. function makeAttrsMap (attrs) {
  33857. var map = {};
  33858. for (var i = 0, l = attrs.length; i < l; i++) {
  33859. if (
  33860. "development" !== 'production' &&
  33861. map[attrs[i].name] && !isIE && !isEdge
  33862. ) {
  33863. warn$2('duplicate attribute: ' + attrs[i].name);
  33864. }
  33865. map[attrs[i].name] = attrs[i].value;
  33866. }
  33867. return map
  33868. }
  33869. // for script (e.g. type="x/template") or style, do not decode content
  33870. function isTextTag (el) {
  33871. return el.tag === 'script' || el.tag === 'style'
  33872. }
  33873. function isForbiddenTag (el) {
  33874. return (
  33875. el.tag === 'style' ||
  33876. (el.tag === 'script' && (
  33877. !el.attrsMap.type ||
  33878. el.attrsMap.type === 'text/javascript'
  33879. ))
  33880. )
  33881. }
  33882. var ieNSBug = /^xmlns:NS\d+/;
  33883. var ieNSPrefix = /^NS\d+:/;
  33884. /* istanbul ignore next */
  33885. function guardIESVGBug (attrs) {
  33886. var res = [];
  33887. for (var i = 0; i < attrs.length; i++) {
  33888. var attr = attrs[i];
  33889. if (!ieNSBug.test(attr.name)) {
  33890. attr.name = attr.name.replace(ieNSPrefix, '');
  33891. res.push(attr);
  33892. }
  33893. }
  33894. return res
  33895. }
  33896. function checkForAliasModel (el, value) {
  33897. var _el = el;
  33898. while (_el) {
  33899. if (_el.for && _el.alias === value) {
  33900. warn$2(
  33901. "<" + (el.tag) + " v-model=\"" + value + "\">: " +
  33902. "You are binding v-model directly to a v-for iteration alias. " +
  33903. "This will not be able to modify the v-for source array because " +
  33904. "writing to the alias is like modifying a function local variable. " +
  33905. "Consider using an array of objects and use v-model on an object property instead."
  33906. );
  33907. }
  33908. _el = _el.parent;
  33909. }
  33910. }
  33911. /* */
  33912. function preTransformNode (el, options) {
  33913. if (el.tag === 'input') {
  33914. var map = el.attrsMap;
  33915. if (!map['v-model']) {
  33916. return
  33917. }
  33918. var typeBinding;
  33919. if (map[':type'] || map['v-bind:type']) {
  33920. typeBinding = getBindingAttr(el, 'type');
  33921. }
  33922. if (!map.type && !typeBinding && map['v-bind']) {
  33923. typeBinding = "(" + (map['v-bind']) + ").type";
  33924. }
  33925. if (typeBinding) {
  33926. var ifCondition = getAndRemoveAttr(el, 'v-if', true);
  33927. var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : "";
  33928. var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
  33929. var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);
  33930. // 1. checkbox
  33931. var branch0 = cloneASTElement(el);
  33932. // process for on the main node
  33933. processFor(branch0);
  33934. addRawAttr(branch0, 'type', 'checkbox');
  33935. processElement(branch0, options);
  33936. branch0.processed = true; // prevent it from double-processed
  33937. branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;
  33938. addIfCondition(branch0, {
  33939. exp: branch0.if,
  33940. block: branch0
  33941. });
  33942. // 2. add radio else-if condition
  33943. var branch1 = cloneASTElement(el);
  33944. getAndRemoveAttr(branch1, 'v-for', true);
  33945. addRawAttr(branch1, 'type', 'radio');
  33946. processElement(branch1, options);
  33947. addIfCondition(branch0, {
  33948. exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,
  33949. block: branch1
  33950. });
  33951. // 3. other
  33952. var branch2 = cloneASTElement(el);
  33953. getAndRemoveAttr(branch2, 'v-for', true);
  33954. addRawAttr(branch2, ':type', typeBinding);
  33955. processElement(branch2, options);
  33956. addIfCondition(branch0, {
  33957. exp: ifCondition,
  33958. block: branch2
  33959. });
  33960. if (hasElse) {
  33961. branch0.else = true;
  33962. } else if (elseIfCondition) {
  33963. branch0.elseif = elseIfCondition;
  33964. }
  33965. return branch0
  33966. }
  33967. }
  33968. }
  33969. function cloneASTElement (el) {
  33970. return createASTElement(el.tag, el.attrsList.slice(), el.parent)
  33971. }
  33972. var model$1 = {
  33973. preTransformNode: preTransformNode
  33974. };
  33975. var modules$1 = [
  33976. klass$1,
  33977. style$1,
  33978. model$1
  33979. ];
  33980. /* */
  33981. function text (el, dir) {
  33982. if (dir.value) {
  33983. addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));
  33984. }
  33985. }
  33986. /* */
  33987. function html (el, dir) {
  33988. if (dir.value) {
  33989. addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"));
  33990. }
  33991. }
  33992. var directives$1 = {
  33993. model: model,
  33994. text: text,
  33995. html: html
  33996. };
  33997. /* */
  33998. var baseOptions = {
  33999. expectHTML: true,
  34000. modules: modules$1,
  34001. directives: directives$1,
  34002. isPreTag: isPreTag,
  34003. isUnaryTag: isUnaryTag,
  34004. mustUseProp: mustUseProp,
  34005. canBeLeftOpenTag: canBeLeftOpenTag,
  34006. isReservedTag: isReservedTag,
  34007. getTagNamespace: getTagNamespace,
  34008. staticKeys: genStaticKeys(modules$1)
  34009. };
  34010. /* */
  34011. var isStaticKey;
  34012. var isPlatformReservedTag;
  34013. var genStaticKeysCached = cached(genStaticKeys$1);
  34014. /**
  34015. * Goal of the optimizer: walk the generated template AST tree
  34016. * and detect sub-trees that are purely static, i.e. parts of
  34017. * the DOM that never needs to change.
  34018. *
  34019. * Once we detect these sub-trees, we can:
  34020. *
  34021. * 1. Hoist them into constants, so that we no longer need to
  34022. * create fresh nodes for them on each re-render;
  34023. * 2. Completely skip them in the patching process.
  34024. */
  34025. function optimize (root, options) {
  34026. if (!root) { return }
  34027. isStaticKey = genStaticKeysCached(options.staticKeys || '');
  34028. isPlatformReservedTag = options.isReservedTag || no;
  34029. // first pass: mark all non-static nodes.
  34030. markStatic$1(root);
  34031. // second pass: mark static roots.
  34032. markStaticRoots(root, false);
  34033. }
  34034. function genStaticKeys$1 (keys) {
  34035. return makeMap(
  34036. 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +
  34037. (keys ? ',' + keys : '')
  34038. )
  34039. }
  34040. function markStatic$1 (node) {
  34041. node.static = isStatic(node);
  34042. if (node.type === 1) {
  34043. // do not make component slot content static. this avoids
  34044. // 1. components not able to mutate slot nodes
  34045. // 2. static slot content fails for hot-reloading
  34046. if (
  34047. !isPlatformReservedTag(node.tag) &&
  34048. node.tag !== 'slot' &&
  34049. node.attrsMap['inline-template'] == null
  34050. ) {
  34051. return
  34052. }
  34053. for (var i = 0, l = node.children.length; i < l; i++) {
  34054. var child = node.children[i];
  34055. markStatic$1(child);
  34056. if (!child.static) {
  34057. node.static = false;
  34058. }
  34059. }
  34060. if (node.ifConditions) {
  34061. for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
  34062. var block = node.ifConditions[i$1].block;
  34063. markStatic$1(block);
  34064. if (!block.static) {
  34065. node.static = false;
  34066. }
  34067. }
  34068. }
  34069. }
  34070. }
  34071. function markStaticRoots (node, isInFor) {
  34072. if (node.type === 1) {
  34073. if (node.static || node.once) {
  34074. node.staticInFor = isInFor;
  34075. }
  34076. // For a node to qualify as a static root, it should have children that
  34077. // are not just static text. Otherwise the cost of hoisting out will
  34078. // outweigh the benefits and it's better off to just always render it fresh.
  34079. if (node.static && node.children.length && !(
  34080. node.children.length === 1 &&
  34081. node.children[0].type === 3
  34082. )) {
  34083. node.staticRoot = true;
  34084. return
  34085. } else {
  34086. node.staticRoot = false;
  34087. }
  34088. if (node.children) {
  34089. for (var i = 0, l = node.children.length; i < l; i++) {
  34090. markStaticRoots(node.children[i], isInFor || !!node.for);
  34091. }
  34092. }
  34093. if (node.ifConditions) {
  34094. for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
  34095. markStaticRoots(node.ifConditions[i$1].block, isInFor);
  34096. }
  34097. }
  34098. }
  34099. }
  34100. function isStatic (node) {
  34101. if (node.type === 2) { // expression
  34102. return false
  34103. }
  34104. if (node.type === 3) { // text
  34105. return true
  34106. }
  34107. return !!(node.pre || (
  34108. !node.hasBindings && // no dynamic bindings
  34109. !node.if && !node.for && // not v-if or v-for or v-else
  34110. !isBuiltInTag(node.tag) && // not a built-in
  34111. isPlatformReservedTag(node.tag) && // not a component
  34112. !isDirectChildOfTemplateFor(node) &&
  34113. Object.keys(node).every(isStaticKey)
  34114. ))
  34115. }
  34116. function isDirectChildOfTemplateFor (node) {
  34117. while (node.parent) {
  34118. node = node.parent;
  34119. if (node.tag !== 'template') {
  34120. return false
  34121. }
  34122. if (node.for) {
  34123. return true
  34124. }
  34125. }
  34126. return false
  34127. }
  34128. /* */
  34129. var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;
  34130. var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
  34131. // KeyboardEvent.keyCode aliases
  34132. var keyCodes = {
  34133. esc: 27,
  34134. tab: 9,
  34135. enter: 13,
  34136. space: 32,
  34137. up: 38,
  34138. left: 37,
  34139. right: 39,
  34140. down: 40,
  34141. 'delete': [8, 46]
  34142. };
  34143. // KeyboardEvent.key aliases
  34144. var keyNames = {
  34145. // #7880: IE11 and Edge use `Esc` for Escape key name.
  34146. esc: ['Esc', 'Escape'],
  34147. tab: 'Tab',
  34148. enter: 'Enter',
  34149. // #9112: IE11 uses `Spacebar` for Space key name.
  34150. space: [' ', 'Spacebar'],
  34151. // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.
  34152. up: ['Up', 'ArrowUp'],
  34153. left: ['Left', 'ArrowLeft'],
  34154. right: ['Right', 'ArrowRight'],
  34155. down: ['Down', 'ArrowDown'],
  34156. // #9112: IE11 uses `Del` for Delete key name.
  34157. 'delete': ['Backspace', 'Delete', 'Del']
  34158. };
  34159. // #4868: modifiers that prevent the execution of the listener
  34160. // need to explicitly return null so that we can determine whether to remove
  34161. // the listener for .once
  34162. var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };
  34163. var modifierCode = {
  34164. stop: '$event.stopPropagation();',
  34165. prevent: '$event.preventDefault();',
  34166. self: genGuard("$event.target !== $event.currentTarget"),
  34167. ctrl: genGuard("!$event.ctrlKey"),
  34168. shift: genGuard("!$event.shiftKey"),
  34169. alt: genGuard("!$event.altKey"),
  34170. meta: genGuard("!$event.metaKey"),
  34171. left: genGuard("'button' in $event && $event.button !== 0"),
  34172. middle: genGuard("'button' in $event && $event.button !== 1"),
  34173. right: genGuard("'button' in $event && $event.button !== 2")
  34174. };
  34175. function genHandlers (
  34176. events,
  34177. isNative
  34178. ) {
  34179. var res = isNative ? 'nativeOn:{' : 'on:{';
  34180. for (var name in events) {
  34181. res += "\"" + name + "\":" + (genHandler(name, events[name])) + ",";
  34182. }
  34183. return res.slice(0, -1) + '}'
  34184. }
  34185. function genHandler (
  34186. name,
  34187. handler
  34188. ) {
  34189. if (!handler) {
  34190. return 'function(){}'
  34191. }
  34192. if (Array.isArray(handler)) {
  34193. return ("[" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + "]")
  34194. }
  34195. var isMethodPath = simplePathRE.test(handler.value);
  34196. var isFunctionExpression = fnExpRE.test(handler.value);
  34197. if (!handler.modifiers) {
  34198. if (isMethodPath || isFunctionExpression) {
  34199. return handler.value
  34200. }
  34201. return ("function($event){" + (handler.value) + "}") // inline statement
  34202. } else {
  34203. var code = '';
  34204. var genModifierCode = '';
  34205. var keys = [];
  34206. for (var key in handler.modifiers) {
  34207. if (modifierCode[key]) {
  34208. genModifierCode += modifierCode[key];
  34209. // left/right
  34210. if (keyCodes[key]) {
  34211. keys.push(key);
  34212. }
  34213. } else if (key === 'exact') {
  34214. var modifiers = (handler.modifiers);
  34215. genModifierCode += genGuard(
  34216. ['ctrl', 'shift', 'alt', 'meta']
  34217. .filter(function (keyModifier) { return !modifiers[keyModifier]; })
  34218. .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); })
  34219. .join('||')
  34220. );
  34221. } else {
  34222. keys.push(key);
  34223. }
  34224. }
  34225. if (keys.length) {
  34226. code += genKeyFilter(keys);
  34227. }
  34228. // Make sure modifiers like prevent and stop get executed after key filtering
  34229. if (genModifierCode) {
  34230. code += genModifierCode;
  34231. }
  34232. var handlerCode = isMethodPath
  34233. ? ("return " + (handler.value) + "($event)")
  34234. : isFunctionExpression
  34235. ? ("return (" + (handler.value) + ")($event)")
  34236. : handler.value;
  34237. return ("function($event){" + code + handlerCode + "}")
  34238. }
  34239. }
  34240. function genKeyFilter (keys) {
  34241. return ("if(!('button' in $event)&&" + (keys.map(genFilterCode).join('&&')) + ")return null;")
  34242. }
  34243. function genFilterCode (key) {
  34244. var keyVal = parseInt(key, 10);
  34245. if (keyVal) {
  34246. return ("$event.keyCode!==" + keyVal)
  34247. }
  34248. var keyCode = keyCodes[key];
  34249. var keyName = keyNames[key];
  34250. return (
  34251. "_k($event.keyCode," +
  34252. (JSON.stringify(key)) + "," +
  34253. (JSON.stringify(keyCode)) + "," +
  34254. "$event.key," +
  34255. "" + (JSON.stringify(keyName)) +
  34256. ")"
  34257. )
  34258. }
  34259. /* */
  34260. function on (el, dir) {
  34261. if ("development" !== 'production' && dir.modifiers) {
  34262. warn("v-on without argument does not support modifiers.");
  34263. }
  34264. el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };
  34265. }
  34266. /* */
  34267. function bind$1 (el, dir) {
  34268. el.wrapData = function (code) {
  34269. return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")
  34270. };
  34271. }
  34272. /* */
  34273. var baseDirectives = {
  34274. on: on,
  34275. bind: bind$1,
  34276. cloak: noop
  34277. };
  34278. /* */
  34279. var CodegenState = function CodegenState (options) {
  34280. this.options = options;
  34281. this.warn = options.warn || baseWarn;
  34282. this.transforms = pluckModuleFunction(options.modules, 'transformCode');
  34283. this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
  34284. this.directives = extend(extend({}, baseDirectives), options.directives);
  34285. var isReservedTag = options.isReservedTag || no;
  34286. this.maybeComponent = function (el) { return !(isReservedTag(el.tag) && !el.component); };
  34287. this.onceId = 0;
  34288. this.staticRenderFns = [];
  34289. this.pre = false;
  34290. };
  34291. function generate (
  34292. ast,
  34293. options
  34294. ) {
  34295. var state = new CodegenState(options);
  34296. var code = ast ? genElement(ast, state) : '_c("div")';
  34297. return {
  34298. render: ("with(this){return " + code + "}"),
  34299. staticRenderFns: state.staticRenderFns
  34300. }
  34301. }
  34302. function genElement (el, state) {
  34303. if (el.parent) {
  34304. el.pre = el.pre || el.parent.pre;
  34305. }
  34306. if (el.staticRoot && !el.staticProcessed) {
  34307. return genStatic(el, state)
  34308. } else if (el.once && !el.onceProcessed) {
  34309. return genOnce(el, state)
  34310. } else if (el.for && !el.forProcessed) {
  34311. return genFor(el, state)
  34312. } else if (el.if && !el.ifProcessed) {
  34313. return genIf(el, state)
  34314. } else if (el.tag === 'template' && !el.slotTarget && !state.pre) {
  34315. return genChildren(el, state) || 'void 0'
  34316. } else if (el.tag === 'slot') {
  34317. return genSlot(el, state)
  34318. } else {
  34319. // component or element
  34320. var code;
  34321. if (el.component) {
  34322. code = genComponent(el.component, el, state);
  34323. } else {
  34324. var data;
  34325. if (!el.plain || (el.pre && state.maybeComponent(el))) {
  34326. data = genData$2(el, state);
  34327. }
  34328. var children = el.inlineTemplate ? null : genChildren(el, state, true);
  34329. code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";
  34330. }
  34331. // module transforms
  34332. for (var i = 0; i < state.transforms.length; i++) {
  34333. code = state.transforms[i](el, code);
  34334. }
  34335. return code
  34336. }
  34337. }
  34338. // hoist static sub-trees out
  34339. function genStatic (el, state) {
  34340. el.staticProcessed = true;
  34341. // Some elements (templates) need to behave differently inside of a v-pre
  34342. // node. All pre nodes are static roots, so we can use this as a location to
  34343. // wrap a state change and reset it upon exiting the pre node.
  34344. var originalPreState = state.pre;
  34345. if (el.pre) {
  34346. state.pre = el.pre;
  34347. }
  34348. state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));
  34349. state.pre = originalPreState;
  34350. return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
  34351. }
  34352. // v-once
  34353. function genOnce (el, state) {
  34354. el.onceProcessed = true;
  34355. if (el.if && !el.ifProcessed) {
  34356. return genIf(el, state)
  34357. } else if (el.staticInFor) {
  34358. var key = '';
  34359. var parent = el.parent;
  34360. while (parent) {
  34361. if (parent.for) {
  34362. key = parent.key;
  34363. break
  34364. }
  34365. parent = parent.parent;
  34366. }
  34367. if (!key) {
  34368. "development" !== 'production' && state.warn(
  34369. "v-once can only be used inside v-for that is keyed. "
  34370. );
  34371. return genElement(el, state)
  34372. }
  34373. return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")")
  34374. } else {
  34375. return genStatic(el, state)
  34376. }
  34377. }
  34378. function genIf (
  34379. el,
  34380. state,
  34381. altGen,
  34382. altEmpty
  34383. ) {
  34384. el.ifProcessed = true; // avoid recursion
  34385. return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)
  34386. }
  34387. function genIfConditions (
  34388. conditions,
  34389. state,
  34390. altGen,
  34391. altEmpty
  34392. ) {
  34393. if (!conditions.length) {
  34394. return altEmpty || '_e()'
  34395. }
  34396. var condition = conditions.shift();
  34397. if (condition.exp) {
  34398. return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))
  34399. } else {
  34400. return ("" + (genTernaryExp(condition.block)))
  34401. }
  34402. // v-if with v-once should generate code like (a)?_m(0):_m(1)
  34403. function genTernaryExp (el) {
  34404. return altGen
  34405. ? altGen(el, state)
  34406. : el.once
  34407. ? genOnce(el, state)
  34408. : genElement(el, state)
  34409. }
  34410. }
  34411. function genFor (
  34412. el,
  34413. state,
  34414. altGen,
  34415. altHelper
  34416. ) {
  34417. var exp = el.for;
  34418. var alias = el.alias;
  34419. var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
  34420. var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
  34421. if ("development" !== 'production' &&
  34422. state.maybeComponent(el) &&
  34423. el.tag !== 'slot' &&
  34424. el.tag !== 'template' &&
  34425. !el.key
  34426. ) {
  34427. state.warn(
  34428. "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " +
  34429. "v-for should have explicit keys. " +
  34430. "See https://vuejs.org/guide/list.html#key for more info.",
  34431. true /* tip */
  34432. );
  34433. }
  34434. el.forProcessed = true; // avoid recursion
  34435. return (altHelper || '_l') + "((" + exp + ")," +
  34436. "function(" + alias + iterator1 + iterator2 + "){" +
  34437. "return " + ((altGen || genElement)(el, state)) +
  34438. '})'
  34439. }
  34440. function genData$2 (el, state) {
  34441. var data = '{';
  34442. // directives first.
  34443. // directives may mutate the el's other properties before they are generated.
  34444. var dirs = genDirectives(el, state);
  34445. if (dirs) { data += dirs + ','; }
  34446. // key
  34447. if (el.key) {
  34448. data += "key:" + (el.key) + ",";
  34449. }
  34450. // ref
  34451. if (el.ref) {
  34452. data += "ref:" + (el.ref) + ",";
  34453. }
  34454. if (el.refInFor) {
  34455. data += "refInFor:true,";
  34456. }
  34457. // pre
  34458. if (el.pre) {
  34459. data += "pre:true,";
  34460. }
  34461. // record original tag name for components using "is" attribute
  34462. if (el.component) {
  34463. data += "tag:\"" + (el.tag) + "\",";
  34464. }
  34465. // module data generation functions
  34466. for (var i = 0; i < state.dataGenFns.length; i++) {
  34467. data += state.dataGenFns[i](el);
  34468. }
  34469. // attributes
  34470. if (el.attrs) {
  34471. data += "attrs:{" + (genProps(el.attrs)) + "},";
  34472. }
  34473. // DOM props
  34474. if (el.props) {
  34475. data += "domProps:{" + (genProps(el.props)) + "},";
  34476. }
  34477. // event handlers
  34478. if (el.events) {
  34479. data += (genHandlers(el.events, false)) + ",";
  34480. }
  34481. if (el.nativeEvents) {
  34482. data += (genHandlers(el.nativeEvents, true)) + ",";
  34483. }
  34484. // slot target
  34485. // only for non-scoped slots
  34486. if (el.slotTarget && !el.slotScope) {
  34487. data += "slot:" + (el.slotTarget) + ",";
  34488. }
  34489. // scoped slots
  34490. if (el.scopedSlots) {
  34491. data += (genScopedSlots(el.scopedSlots, state)) + ",";
  34492. }
  34493. // component v-model
  34494. if (el.model) {
  34495. data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},";
  34496. }
  34497. // inline-template
  34498. if (el.inlineTemplate) {
  34499. var inlineTemplate = genInlineTemplate(el, state);
  34500. if (inlineTemplate) {
  34501. data += inlineTemplate + ",";
  34502. }
  34503. }
  34504. data = data.replace(/,$/, '') + '}';
  34505. // v-bind data wrap
  34506. if (el.wrapData) {
  34507. data = el.wrapData(data);
  34508. }
  34509. // v-on data wrap
  34510. if (el.wrapListeners) {
  34511. data = el.wrapListeners(data);
  34512. }
  34513. return data
  34514. }
  34515. function genDirectives (el, state) {
  34516. var dirs = el.directives;
  34517. if (!dirs) { return }
  34518. var res = 'directives:[';
  34519. var hasRuntime = false;
  34520. var i, l, dir, needRuntime;
  34521. for (i = 0, l = dirs.length; i < l; i++) {
  34522. dir = dirs[i];
  34523. needRuntime = true;
  34524. var gen = state.directives[dir.name];
  34525. if (gen) {
  34526. // compile-time directive that manipulates AST.
  34527. // returns true if it also needs a runtime counterpart.
  34528. needRuntime = !!gen(el, dir, state.warn);
  34529. }
  34530. if (needRuntime) {
  34531. hasRuntime = true;
  34532. res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:\"" + (dir.arg) + "\"") : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";
  34533. }
  34534. }
  34535. if (hasRuntime) {
  34536. return res.slice(0, -1) + ']'
  34537. }
  34538. }
  34539. function genInlineTemplate (el, state) {
  34540. var ast = el.children[0];
  34541. if ("development" !== 'production' && (
  34542. el.children.length !== 1 || ast.type !== 1
  34543. )) {
  34544. state.warn('Inline-template components must have exactly one child element.');
  34545. }
  34546. if (ast.type === 1) {
  34547. var inlineRenderFns = generate(ast, state.options);
  34548. return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")
  34549. }
  34550. }
  34551. function genScopedSlots (
  34552. slots,
  34553. state
  34554. ) {
  34555. return ("scopedSlots:_u([" + (Object.keys(slots).map(function (key) {
  34556. return genScopedSlot(key, slots[key], state)
  34557. }).join(',')) + "])")
  34558. }
  34559. function genScopedSlot (
  34560. key,
  34561. el,
  34562. state
  34563. ) {
  34564. if (el.for && !el.forProcessed) {
  34565. return genForScopedSlot(key, el, state)
  34566. }
  34567. var fn = "function(" + (String(el.slotScope)) + "){" +
  34568. "return " + (el.tag === 'template'
  34569. ? el.if
  34570. ? ("(" + (el.if) + ")?" + (genChildren(el, state) || 'undefined') + ":undefined")
  34571. : genChildren(el, state) || 'undefined'
  34572. : genElement(el, state)) + "}";
  34573. return ("{key:" + key + ",fn:" + fn + "}")
  34574. }
  34575. function genForScopedSlot (
  34576. key,
  34577. el,
  34578. state
  34579. ) {
  34580. var exp = el.for;
  34581. var alias = el.alias;
  34582. var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
  34583. var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
  34584. el.forProcessed = true; // avoid recursion
  34585. return "_l((" + exp + ")," +
  34586. "function(" + alias + iterator1 + iterator2 + "){" +
  34587. "return " + (genScopedSlot(key, el, state)) +
  34588. '})'
  34589. }
  34590. function genChildren (
  34591. el,
  34592. state,
  34593. checkSkip,
  34594. altGenElement,
  34595. altGenNode
  34596. ) {
  34597. var children = el.children;
  34598. if (children.length) {
  34599. var el$1 = children[0];
  34600. // optimize single v-for
  34601. if (children.length === 1 &&
  34602. el$1.for &&
  34603. el$1.tag !== 'template' &&
  34604. el$1.tag !== 'slot'
  34605. ) {
  34606. var normalizationType = checkSkip
  34607. ? state.maybeComponent(el$1) ? ",1" : ",0"
  34608. : "";
  34609. return ("" + ((altGenElement || genElement)(el$1, state)) + normalizationType)
  34610. }
  34611. var normalizationType$1 = checkSkip
  34612. ? getNormalizationType(children, state.maybeComponent)
  34613. : 0;
  34614. var gen = altGenNode || genNode;
  34615. return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType$1 ? ("," + normalizationType$1) : ''))
  34616. }
  34617. }
  34618. // determine the normalization needed for the children array.
  34619. // 0: no normalization needed
  34620. // 1: simple normalization needed (possible 1-level deep nested array)
  34621. // 2: full normalization needed
  34622. function getNormalizationType (
  34623. children,
  34624. maybeComponent
  34625. ) {
  34626. var res = 0;
  34627. for (var i = 0; i < children.length; i++) {
  34628. var el = children[i];
  34629. if (el.type !== 1) {
  34630. continue
  34631. }
  34632. if (needsNormalization(el) ||
  34633. (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
  34634. res = 2;
  34635. break
  34636. }
  34637. if (maybeComponent(el) ||
  34638. (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
  34639. res = 1;
  34640. }
  34641. }
  34642. return res
  34643. }
  34644. function needsNormalization (el) {
  34645. return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
  34646. }
  34647. function genNode (node, state) {
  34648. if (node.type === 1) {
  34649. return genElement(node, state)
  34650. } else if (node.type === 3 && node.isComment) {
  34651. return genComment(node)
  34652. } else {
  34653. return genText(node)
  34654. }
  34655. }
  34656. function genText (text) {
  34657. return ("_v(" + (text.type === 2
  34658. ? text.expression // no need for () because already wrapped in _s()
  34659. : transformSpecialNewlines(JSON.stringify(text.text))) + ")")
  34660. }
  34661. function genComment (comment) {
  34662. return ("_e(" + (JSON.stringify(comment.text)) + ")")
  34663. }
  34664. function genSlot (el, state) {
  34665. var slotName = el.slotName || '"default"';
  34666. var children = genChildren(el, state);
  34667. var res = "_t(" + slotName + (children ? ("," + children) : '');
  34668. var attrs = el.attrs && ("{" + (el.attrs.map(function (a) { return ((camelize(a.name)) + ":" + (a.value)); }).join(',')) + "}");
  34669. var bind$$1 = el.attrsMap['v-bind'];
  34670. if ((attrs || bind$$1) && !children) {
  34671. res += ",null";
  34672. }
  34673. if (attrs) {
  34674. res += "," + attrs;
  34675. }
  34676. if (bind$$1) {
  34677. res += (attrs ? '' : ',null') + "," + bind$$1;
  34678. }
  34679. return res + ')'
  34680. }
  34681. // componentName is el.component, take it as argument to shun flow's pessimistic refinement
  34682. function genComponent (
  34683. componentName,
  34684. el,
  34685. state
  34686. ) {
  34687. var children = el.inlineTemplate ? null : genChildren(el, state, true);
  34688. return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")
  34689. }
  34690. function genProps (props) {
  34691. var res = '';
  34692. for (var i = 0; i < props.length; i++) {
  34693. var prop = props[i];
  34694. /* istanbul ignore if */
  34695. {
  34696. res += "\"" + (prop.name) + "\":" + (transformSpecialNewlines(prop.value)) + ",";
  34697. }
  34698. }
  34699. return res.slice(0, -1)
  34700. }
  34701. // #3895, #4268
  34702. function transformSpecialNewlines (text) {
  34703. return text
  34704. .replace(/\u2028/g, '\\u2028')
  34705. .replace(/\u2029/g, '\\u2029')
  34706. }
  34707. /* */
  34708. // these keywords should not appear inside expressions, but operators like
  34709. // typeof, instanceof and in are allowed
  34710. var prohibitedKeywordRE = new RegExp('\\b' + (
  34711. 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
  34712. 'super,throw,while,yield,delete,export,import,return,switch,default,' +
  34713. 'extends,finally,continue,debugger,function,arguments'
  34714. ).split(',').join('\\b|\\b') + '\\b');
  34715. // these unary operators should not be used as property/method names
  34716. var unaryOperatorsRE = new RegExp('\\b' + (
  34717. 'delete,typeof,void'
  34718. ).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)');
  34719. // strip strings in expressions
  34720. var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
  34721. // detect problematic expressions in a template
  34722. function detectErrors (ast) {
  34723. var errors = [];
  34724. if (ast) {
  34725. checkNode(ast, errors);
  34726. }
  34727. return errors
  34728. }
  34729. function checkNode (node, errors) {
  34730. if (node.type === 1) {
  34731. for (var name in node.attrsMap) {
  34732. if (dirRE.test(name)) {
  34733. var value = node.attrsMap[name];
  34734. if (value) {
  34735. if (name === 'v-for') {
  34736. checkFor(node, ("v-for=\"" + value + "\""), errors);
  34737. } else if (onRE.test(name)) {
  34738. checkEvent(value, (name + "=\"" + value + "\""), errors);
  34739. } else {
  34740. checkExpression(value, (name + "=\"" + value + "\""), errors);
  34741. }
  34742. }
  34743. }
  34744. }
  34745. if (node.children) {
  34746. for (var i = 0; i < node.children.length; i++) {
  34747. checkNode(node.children[i], errors);
  34748. }
  34749. }
  34750. } else if (node.type === 2) {
  34751. checkExpression(node.expression, node.text, errors);
  34752. }
  34753. }
  34754. function checkEvent (exp, text, errors) {
  34755. var stipped = exp.replace(stripStringRE, '');
  34756. var keywordMatch = stipped.match(unaryOperatorsRE);
  34757. if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {
  34758. errors.push(
  34759. "avoid using JavaScript unary operator as property name: " +
  34760. "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim())
  34761. );
  34762. }
  34763. checkExpression(exp, text, errors);
  34764. }
  34765. function checkFor (node, text, errors) {
  34766. checkExpression(node.for || '', text, errors);
  34767. checkIdentifier(node.alias, 'v-for alias', text, errors);
  34768. checkIdentifier(node.iterator1, 'v-for iterator', text, errors);
  34769. checkIdentifier(node.iterator2, 'v-for iterator', text, errors);
  34770. }
  34771. function checkIdentifier (
  34772. ident,
  34773. type,
  34774. text,
  34775. errors
  34776. ) {
  34777. if (typeof ident === 'string') {
  34778. try {
  34779. new Function(("var " + ident + "=_"));
  34780. } catch (e) {
  34781. errors.push(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())));
  34782. }
  34783. }
  34784. }
  34785. function checkExpression (exp, text, errors) {
  34786. try {
  34787. new Function(("return " + exp));
  34788. } catch (e) {
  34789. var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);
  34790. if (keywordMatch) {
  34791. errors.push(
  34792. "avoid using JavaScript keyword as property name: " +
  34793. "\"" + (keywordMatch[0]) + "\"\n Raw expression: " + (text.trim())
  34794. );
  34795. } else {
  34796. errors.push(
  34797. "invalid expression: " + (e.message) + " in\n\n" +
  34798. " " + exp + "\n\n" +
  34799. " Raw expression: " + (text.trim()) + "\n"
  34800. );
  34801. }
  34802. }
  34803. }
  34804. /* */
  34805. function createFunction (code, errors) {
  34806. try {
  34807. return new Function(code)
  34808. } catch (err) {
  34809. errors.push({ err: err, code: code });
  34810. return noop
  34811. }
  34812. }
  34813. function createCompileToFunctionFn (compile) {
  34814. var cache = Object.create(null);
  34815. return function compileToFunctions (
  34816. template,
  34817. options,
  34818. vm
  34819. ) {
  34820. options = extend({}, options);
  34821. var warn$$1 = options.warn || warn;
  34822. delete options.warn;
  34823. /* istanbul ignore if */
  34824. if (true) {
  34825. // detect possible CSP restriction
  34826. try {
  34827. new Function('return 1');
  34828. } catch (e) {
  34829. if (e.toString().match(/unsafe-eval|CSP/)) {
  34830. warn$$1(
  34831. 'It seems you are using the standalone build of Vue.js in an ' +
  34832. 'environment with Content Security Policy that prohibits unsafe-eval. ' +
  34833. 'The template compiler cannot work in this environment. Consider ' +
  34834. 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
  34835. 'templates into render functions.'
  34836. );
  34837. }
  34838. }
  34839. }
  34840. // check cache
  34841. var key = options.delimiters
  34842. ? String(options.delimiters) + template
  34843. : template;
  34844. if (cache[key]) {
  34845. return cache[key]
  34846. }
  34847. // compile
  34848. var compiled = compile(template, options);
  34849. // check compilation errors/tips
  34850. if (true) {
  34851. if (compiled.errors && compiled.errors.length) {
  34852. warn$$1(
  34853. "Error compiling template:\n\n" + template + "\n\n" +
  34854. compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',
  34855. vm
  34856. );
  34857. }
  34858. if (compiled.tips && compiled.tips.length) {
  34859. compiled.tips.forEach(function (msg) { return tip(msg, vm); });
  34860. }
  34861. }
  34862. // turn code into functions
  34863. var res = {};
  34864. var fnGenErrors = [];
  34865. res.render = createFunction(compiled.render, fnGenErrors);
  34866. res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
  34867. return createFunction(code, fnGenErrors)
  34868. });
  34869. // check function generation errors.
  34870. // this should only happen if there is a bug in the compiler itself.
  34871. // mostly for codegen development use
  34872. /* istanbul ignore if */
  34873. if (true) {
  34874. if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
  34875. warn$$1(
  34876. "Failed to generate render function:\n\n" +
  34877. fnGenErrors.map(function (ref) {
  34878. var err = ref.err;
  34879. var code = ref.code;
  34880. return ((err.toString()) + " in\n\n" + code + "\n");
  34881. }).join('\n'),
  34882. vm
  34883. );
  34884. }
  34885. }
  34886. return (cache[key] = res)
  34887. }
  34888. }
  34889. /* */
  34890. function createCompilerCreator (baseCompile) {
  34891. return function createCompiler (baseOptions) {
  34892. function compile (
  34893. template,
  34894. options
  34895. ) {
  34896. var finalOptions = Object.create(baseOptions);
  34897. var errors = [];
  34898. var tips = [];
  34899. finalOptions.warn = function (msg, tip) {
  34900. (tip ? tips : errors).push(msg);
  34901. };
  34902. if (options) {
  34903. // merge custom modules
  34904. if (options.modules) {
  34905. finalOptions.modules =
  34906. (baseOptions.modules || []).concat(options.modules);
  34907. }
  34908. // merge custom directives
  34909. if (options.directives) {
  34910. finalOptions.directives = extend(
  34911. Object.create(baseOptions.directives || null),
  34912. options.directives
  34913. );
  34914. }
  34915. // copy other options
  34916. for (var key in options) {
  34917. if (key !== 'modules' && key !== 'directives') {
  34918. finalOptions[key] = options[key];
  34919. }
  34920. }
  34921. }
  34922. var compiled = baseCompile(template, finalOptions);
  34923. if (true) {
  34924. errors.push.apply(errors, detectErrors(compiled.ast));
  34925. }
  34926. compiled.errors = errors;
  34927. compiled.tips = tips;
  34928. return compiled
  34929. }
  34930. return {
  34931. compile: compile,
  34932. compileToFunctions: createCompileToFunctionFn(compile)
  34933. }
  34934. }
  34935. }
  34936. /* */
  34937. // `createCompilerCreator` allows creating compilers that use alternative
  34938. // parser/optimizer/codegen, e.g the SSR optimizing compiler.
  34939. // Here we just export a default compiler using the default parts.
  34940. var createCompiler = createCompilerCreator(function baseCompile (
  34941. template,
  34942. options
  34943. ) {
  34944. var ast = parse(template.trim(), options);
  34945. if (options.optimize !== false) {
  34946. optimize(ast, options);
  34947. }
  34948. var code = generate(ast, options);
  34949. return {
  34950. ast: ast,
  34951. render: code.render,
  34952. staticRenderFns: code.staticRenderFns
  34953. }
  34954. });
  34955. /* */
  34956. var ref$1 = createCompiler(baseOptions);
  34957. var compile = ref$1.compile;
  34958. var compileToFunctions = ref$1.compileToFunctions;
  34959. /* */
  34960. // check whether current browser encodes a char inside attribute values
  34961. var div;
  34962. function getShouldDecode (href) {
  34963. div = div || document.createElement('div');
  34964. div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";
  34965. return div.innerHTML.indexOf('&#10;') > 0
  34966. }
  34967. // #3663: IE encodes newlines inside attribute values while other browsers don't
  34968. var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;
  34969. // #6828: chrome encodes content in a[href]
  34970. var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;
  34971. /* */
  34972. var idToTemplate = cached(function (id) {
  34973. var el = query(id);
  34974. return el && el.innerHTML
  34975. });
  34976. var mount = Vue.prototype.$mount;
  34977. Vue.prototype.$mount = function (
  34978. el,
  34979. hydrating
  34980. ) {
  34981. el = el && query(el);
  34982. /* istanbul ignore if */
  34983. if (el === document.body || el === document.documentElement) {
  34984. "development" !== 'production' && warn(
  34985. "Do not mount Vue to <html> or <body> - mount to normal elements instead."
  34986. );
  34987. return this
  34988. }
  34989. var options = this.$options;
  34990. // resolve template/el and convert to render function
  34991. if (!options.render) {
  34992. var template = options.template;
  34993. if (template) {
  34994. if (typeof template === 'string') {
  34995. if (template.charAt(0) === '#') {
  34996. template = idToTemplate(template);
  34997. /* istanbul ignore if */
  34998. if ("development" !== 'production' && !template) {
  34999. warn(
  35000. ("Template element not found or is empty: " + (options.template)),
  35001. this
  35002. );
  35003. }
  35004. }
  35005. } else if (template.nodeType) {
  35006. template = template.innerHTML;
  35007. } else {
  35008. if (true) {
  35009. warn('invalid template option:' + template, this);
  35010. }
  35011. return this
  35012. }
  35013. } else if (el) {
  35014. template = getOuterHTML(el);
  35015. }
  35016. if (template) {
  35017. /* istanbul ignore if */
  35018. if ("development" !== 'production' && config.performance && mark) {
  35019. mark('compile');
  35020. }
  35021. var ref = compileToFunctions(template, {
  35022. shouldDecodeNewlines: shouldDecodeNewlines,
  35023. shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,
  35024. delimiters: options.delimiters,
  35025. comments: options.comments
  35026. }, this);
  35027. var render = ref.render;
  35028. var staticRenderFns = ref.staticRenderFns;
  35029. options.render = render;
  35030. options.staticRenderFns = staticRenderFns;
  35031. /* istanbul ignore if */
  35032. if ("development" !== 'production' && config.performance && mark) {
  35033. mark('compile end');
  35034. measure(("vue " + (this._name) + " compile"), 'compile', 'compile end');
  35035. }
  35036. }
  35037. }
  35038. return mount.call(this, el, hydrating)
  35039. };
  35040. /**
  35041. * Get outerHTML of elements, taking care
  35042. * of SVG elements in IE as well.
  35043. */
  35044. function getOuterHTML (el) {
  35045. if (el.outerHTML) {
  35046. return el.outerHTML
  35047. } else {
  35048. var container = document.createElement('div');
  35049. container.appendChild(el.cloneNode(true));
  35050. return container.innerHTML
  35051. }
  35052. }
  35053. Vue.compile = compileToFunctions;
  35054. module.exports = Vue;
  35055. /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/timers-browserify/main.js").setImmediate))
  35056. /***/ }),
  35057. /***/ "./node_modules/webpack/buildin/global.js":
  35058. /***/ (function(module, exports) {
  35059. var g;
  35060. // This works in non-strict mode
  35061. g = (function() {
  35062. return this;
  35063. })();
  35064. try {
  35065. // This works if eval is allowed (see CSP)
  35066. g = g || Function("return this")() || (1,eval)("this");
  35067. } catch(e) {
  35068. // This works if the window reference is available
  35069. if(typeof window === "object")
  35070. g = window;
  35071. }
  35072. // g can still be undefined, but nothing to do about it...
  35073. // We return undefined, instead of nothing here, so it's
  35074. // easier to handle this case. if(!global) { ...}
  35075. module.exports = g;
  35076. /***/ }),
  35077. /***/ "./resources/assets/js/components.js":
  35078. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35079. "use strict";
  35080. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35081. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_bootstrap_vue__ = __webpack_require__("./node_modules/bootstrap-vue/es/index.js");
  35082. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_infinite_loading__ = __webpack_require__("./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js");
  35083. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_infinite_loading___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue_infinite_loading__);
  35084. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_loading_overlay__ = __webpack_require__("./node_modules/vue-loading-overlay/dist/vue-loading.min.js");
  35085. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_loading_overlay___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_loading_overlay__);
  35086. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_timeago__ = __webpack_require__("./node_modules/vue-timeago/dist/vue-timeago.es.js");
  35087. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_sweetalert__ = __webpack_require__("./node_modules/sweetalert/dist/sweetalert.min.js");
  35088. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_sweetalert___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_sweetalert__);
  35089. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  35090. window.Vue = __webpack_require__("./node_modules/vue/dist/vue.common.js");
  35091. //import {Howl, Howler} from 'howler';
  35092. Vue.use(__WEBPACK_IMPORTED_MODULE_0_bootstrap_vue__["a" /* default */]);
  35093. Vue.use(__WEBPACK_IMPORTED_MODULE_1_vue_infinite_loading___default.a);
  35094. Vue.use(__WEBPACK_IMPORTED_MODULE_2_vue_loading_overlay___default.a);
  35095. Vue.use(__WEBPACK_IMPORTED_MODULE_3_vue_timeago__["a" /* default */]);
  35096. pixelfed.readmore = function () {
  35097. $('.read-more').each(function (k, v) {
  35098. var el = $(this);
  35099. var attr = el.attr('data-readmore');
  35100. if ((typeof attr === 'undefined' ? 'undefined' : _typeof(attr)) !== ( true ? 'undefined' : _typeof(undefined)) && attr !== false) {
  35101. return;
  35102. }
  35103. el.readmore({
  35104. collapsedHeight: 44,
  35105. heightMargin: 20,
  35106. moreLink: '<a href="#" class="font-weight-bold small">Read more</a>',
  35107. lessLink: '<a href="#" class="font-weight-bold small">Hide</a>'
  35108. });
  35109. });
  35110. };
  35111. try {
  35112. document.createEvent("TouchEvent");
  35113. $('body').addClass('touch');
  35114. } catch (e) {}
  35115. window.InfiniteScroll = __webpack_require__("./node_modules/infinite-scroll/js/index.js");
  35116. window.filesize = __webpack_require__("./node_modules/filesize/lib/filesize.js");
  35117. window.Plyr = __webpack_require__("./node_modules/plyr/dist/plyr.min.js");
  35118. __webpack_require__("./resources/assets/js/components/localstorage.js");
  35119. __webpack_require__("./resources/assets/js/components/likebutton.js");
  35120. __webpack_require__("./resources/assets/js/components/commentform.js");
  35121. __webpack_require__("./resources/assets/js/components/searchform.js");
  35122. __webpack_require__("./resources/assets/js/components/bookmarkform.js");
  35123. __webpack_require__("./resources/assets/js/components/statusform.js");
  35124. __webpack_require__("./resources/assets/js/components/settingspage.js");
  35125. //require('./components/embed');
  35126. //require('./components/notifications');
  35127. // import Echo from "laravel-echo"
  35128. // window.io = require('socket.io-client');
  35129. // window.pixelfed.bootEcho = function() {
  35130. // window.Echo = new Echo({
  35131. // broadcaster: 'socket.io',
  35132. // host: window.location.hostname + ':2096',
  35133. // auth: {
  35134. // headers: {
  35135. // Authorization: 'Bearer ' + token.content,
  35136. // },
  35137. // },
  35138. // });
  35139. // }
  35140. // Initialize Notification Helper
  35141. window.pixelfed.n = {};
  35142. Vue.component('photo-presenter', __webpack_require__("./resources/assets/js/components/presenter/PhotoPresenter.vue").default);
  35143. Vue.component('video-presenter', __webpack_require__("./resources/assets/js/components/presenter/VideoPresenter.vue").default);
  35144. Vue.component('photo-album-presenter', __webpack_require__("./resources/assets/js/components/presenter/PhotoAlbumPresenter.vue").default);
  35145. Vue.component('video-album-presenter', __webpack_require__("./resources/assets/js/components/presenter/VideoAlbumPresenter.vue").default);
  35146. Vue.component('mixed-album-presenter', __webpack_require__("./resources/assets/js/components/presenter/MixedAlbumPresenter.vue").default);
  35147. // Vue.component(
  35148. // 'micro',
  35149. // require('./components/Micro.vue').default
  35150. // );
  35151. Vue.component('follow-suggestions', __webpack_require__("./resources/assets/js/components/FollowSuggestions.vue").default);
  35152. Vue.component('discover-component', __webpack_require__("./resources/assets/js/components/DiscoverComponent.vue").default);
  35153. // Vue.component(
  35154. // 'profile',
  35155. // require('./components/Profile.vue').default
  35156. // );
  35157. // Vue.component(
  35158. // 'circle-panel',
  35159. // require('./components/CirclePanel.vue')
  35160. // );
  35161. Vue.component('post-component', __webpack_require__("./resources/assets/js/components/PostComponent.vue").default);
  35162. Vue.component('post-comments', __webpack_require__("./resources/assets/js/components/PostComments.vue").default);
  35163. Vue.component('timeline', __webpack_require__("./resources/assets/js/components/Timeline.vue").default);
  35164. // Vue.component(
  35165. // 'passport-clients',
  35166. // require('./components/passport/Clients.vue').default
  35167. // );
  35168. // Vue.component(
  35169. // 'passport-authorized-clients',
  35170. // require('./components/passport/AuthorizedClients.vue').default
  35171. // );
  35172. // Vue.component(
  35173. // 'passport-personal-access-tokens',
  35174. // require('./components/passport/PersonalAccessTokens.vue').default
  35175. // );
  35176. //import 'promise-polyfill/src/polyfill';
  35177. // window.pixelfed.copyToClipboard = (str) => {
  35178. // const el = document.createElement('textarea');
  35179. // el.value = str;
  35180. // el.setAttribute('readonly', '');
  35181. // el.style.position = 'absolute';
  35182. // el.style.left = '-9999px';
  35183. // document.body.appendChild(el);
  35184. // const selected =
  35185. // document.getSelection().rangeCount > 0
  35186. // ? document.getSelection().getRangeAt(0)
  35187. // : false;
  35188. // el.select();
  35189. // document.execCommand('copy');
  35190. // document.body.removeChild(el);
  35191. // if (selected) {
  35192. // document.getSelection().removeAllRanges();
  35193. // document.getSelection().addRange(selected);
  35194. // }
  35195. // };
  35196. $(document).ready(function () {
  35197. $(function () {
  35198. $('[data-toggle="tooltip"]').tooltip();
  35199. });
  35200. });
  35201. var warningTitleCSS = 'color:red; font-size:60px; font-weight: bold; -webkit-text-stroke: 1px black;';
  35202. var warningDescCSS = 'font-size: 18px;';
  35203. console.log('%cStop!', warningTitleCSS);
  35204. console.log("%cThis is a browser feature intended for developers. If someone told you to copy and paste something here to enable a Pixelfed feature or \"hack\" someone's account, it is a scam and will give them access to your Pixelfed account.", warningDescCSS);
  35205. /***/ }),
  35206. /***/ "./resources/assets/js/components/DiscoverComponent.vue":
  35207. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35208. "use strict";
  35209. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35210. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_DiscoverComponent_vue__ = __webpack_require__("./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/DiscoverComponent.vue");
  35211. /* empty harmony namespace reexport */
  35212. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7ab7dfed_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_DiscoverComponent_vue__ = __webpack_require__("./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-7ab7dfed\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/DiscoverComponent.vue");
  35213. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__("./node_modules/vue-loader/lib/runtime/component-normalizer.js");
  35214. var disposed = false
  35215. /* script */
  35216. /* template */
  35217. /* template functional */
  35218. var __vue_template_functional__ = false
  35219. /* styles */
  35220. var __vue_styles__ = null
  35221. /* scopeId */
  35222. var __vue_scopeId__ = null
  35223. /* moduleIdentifier (server only) */
  35224. var __vue_module_identifier__ = null
  35225. var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
  35226. __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_DiscoverComponent_vue__["a" /* default */],
  35227. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7ab7dfed_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_DiscoverComponent_vue__["a" /* render */],
  35228. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7ab7dfed_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_DiscoverComponent_vue__["b" /* staticRenderFns */],
  35229. __vue_template_functional__,
  35230. __vue_styles__,
  35231. __vue_scopeId__,
  35232. __vue_module_identifier__
  35233. )
  35234. Component.options.__file = "resources/assets/js/components/DiscoverComponent.vue"
  35235. /* hot reload */
  35236. if (false) {(function () {
  35237. var hotAPI = require("vue-hot-reload-api")
  35238. hotAPI.install(require("vue"), false)
  35239. if (!hotAPI.compatible) return
  35240. module.hot.accept()
  35241. if (!module.hot.data) {
  35242. hotAPI.createRecord("data-v-7ab7dfed", Component.options)
  35243. } else {
  35244. hotAPI.reload("data-v-7ab7dfed", Component.options)
  35245. }
  35246. module.hot.dispose(function (data) {
  35247. disposed = true
  35248. })
  35249. })()}
  35250. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  35251. /***/ }),
  35252. /***/ "./resources/assets/js/components/FollowSuggestions.vue":
  35253. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35254. "use strict";
  35255. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35256. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_FollowSuggestions_vue__ = __webpack_require__("./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/FollowSuggestions.vue");
  35257. /* empty harmony namespace reexport */
  35258. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1b3c4b52_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FollowSuggestions_vue__ = __webpack_require__("./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-1b3c4b52\",\"hasScoped\":true,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/FollowSuggestions.vue");
  35259. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__("./node_modules/vue-loader/lib/runtime/component-normalizer.js");
  35260. var disposed = false
  35261. function injectStyle (context) {
  35262. if (disposed) return
  35263. __webpack_require__("./node_modules/vue-style-loader/index.js!./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1b3c4b52\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/FollowSuggestions.vue")
  35264. }
  35265. /* script */
  35266. /* template */
  35267. /* template functional */
  35268. var __vue_template_functional__ = false
  35269. /* styles */
  35270. var __vue_styles__ = injectStyle
  35271. /* scopeId */
  35272. var __vue_scopeId__ = "data-v-1b3c4b52"
  35273. /* moduleIdentifier (server only) */
  35274. var __vue_module_identifier__ = null
  35275. var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
  35276. __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_FollowSuggestions_vue__["a" /* default */],
  35277. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1b3c4b52_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FollowSuggestions_vue__["a" /* render */],
  35278. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1b3c4b52_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FollowSuggestions_vue__["b" /* staticRenderFns */],
  35279. __vue_template_functional__,
  35280. __vue_styles__,
  35281. __vue_scopeId__,
  35282. __vue_module_identifier__
  35283. )
  35284. Component.options.__file = "resources/assets/js/components/FollowSuggestions.vue"
  35285. /* hot reload */
  35286. if (false) {(function () {
  35287. var hotAPI = require("vue-hot-reload-api")
  35288. hotAPI.install(require("vue"), false)
  35289. if (!hotAPI.compatible) return
  35290. module.hot.accept()
  35291. if (!module.hot.data) {
  35292. hotAPI.createRecord("data-v-1b3c4b52", Component.options)
  35293. } else {
  35294. hotAPI.reload("data-v-1b3c4b52", Component.options)
  35295. }
  35296. module.hot.dispose(function (data) {
  35297. disposed = true
  35298. })
  35299. })()}
  35300. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  35301. /***/ }),
  35302. /***/ "./resources/assets/js/components/PostComments.vue":
  35303. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35304. "use strict";
  35305. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35306. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_PostComments_vue__ = __webpack_require__("./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/PostComments.vue");
  35307. /* empty harmony namespace reexport */
  35308. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7029d26b_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PostComments_vue__ = __webpack_require__("./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-7029d26b\",\"hasScoped\":true,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/PostComments.vue");
  35309. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__("./node_modules/vue-loader/lib/runtime/component-normalizer.js");
  35310. var disposed = false
  35311. function injectStyle (context) {
  35312. if (disposed) return
  35313. __webpack_require__("./node_modules/vue-style-loader/index.js!./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-7029d26b\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/PostComments.vue")
  35314. }
  35315. /* script */
  35316. /* template */
  35317. /* template functional */
  35318. var __vue_template_functional__ = false
  35319. /* styles */
  35320. var __vue_styles__ = injectStyle
  35321. /* scopeId */
  35322. var __vue_scopeId__ = "data-v-7029d26b"
  35323. /* moduleIdentifier (server only) */
  35324. var __vue_module_identifier__ = null
  35325. var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
  35326. __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_PostComments_vue__["a" /* default */],
  35327. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7029d26b_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PostComments_vue__["a" /* render */],
  35328. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7029d26b_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PostComments_vue__["b" /* staticRenderFns */],
  35329. __vue_template_functional__,
  35330. __vue_styles__,
  35331. __vue_scopeId__,
  35332. __vue_module_identifier__
  35333. )
  35334. Component.options.__file = "resources/assets/js/components/PostComments.vue"
  35335. /* hot reload */
  35336. if (false) {(function () {
  35337. var hotAPI = require("vue-hot-reload-api")
  35338. hotAPI.install(require("vue"), false)
  35339. if (!hotAPI.compatible) return
  35340. module.hot.accept()
  35341. if (!module.hot.data) {
  35342. hotAPI.createRecord("data-v-7029d26b", Component.options)
  35343. } else {
  35344. hotAPI.reload("data-v-7029d26b", Component.options)
  35345. }
  35346. module.hot.dispose(function (data) {
  35347. disposed = true
  35348. })
  35349. })()}
  35350. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  35351. /***/ }),
  35352. /***/ "./resources/assets/js/components/PostComponent.vue":
  35353. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35354. "use strict";
  35355. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35356. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_PostComponent_vue__ = __webpack_require__("./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/PostComponent.vue");
  35357. /* empty harmony namespace reexport */
  35358. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1e4d2916_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PostComponent_vue__ = __webpack_require__("./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-1e4d2916\",\"hasScoped\":true,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/PostComponent.vue");
  35359. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__("./node_modules/vue-loader/lib/runtime/component-normalizer.js");
  35360. var disposed = false
  35361. function injectStyle (context) {
  35362. if (disposed) return
  35363. __webpack_require__("./node_modules/vue-style-loader/index.js!./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-1e4d2916\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/PostComponent.vue")
  35364. }
  35365. /* script */
  35366. /* template */
  35367. /* template functional */
  35368. var __vue_template_functional__ = false
  35369. /* styles */
  35370. var __vue_styles__ = injectStyle
  35371. /* scopeId */
  35372. var __vue_scopeId__ = "data-v-1e4d2916"
  35373. /* moduleIdentifier (server only) */
  35374. var __vue_module_identifier__ = null
  35375. var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
  35376. __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_PostComponent_vue__["a" /* default */],
  35377. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1e4d2916_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PostComponent_vue__["a" /* render */],
  35378. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1e4d2916_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PostComponent_vue__["b" /* staticRenderFns */],
  35379. __vue_template_functional__,
  35380. __vue_styles__,
  35381. __vue_scopeId__,
  35382. __vue_module_identifier__
  35383. )
  35384. Component.options.__file = "resources/assets/js/components/PostComponent.vue"
  35385. /* hot reload */
  35386. if (false) {(function () {
  35387. var hotAPI = require("vue-hot-reload-api")
  35388. hotAPI.install(require("vue"), false)
  35389. if (!hotAPI.compatible) return
  35390. module.hot.accept()
  35391. if (!module.hot.data) {
  35392. hotAPI.createRecord("data-v-1e4d2916", Component.options)
  35393. } else {
  35394. hotAPI.reload("data-v-1e4d2916", Component.options)
  35395. }
  35396. module.hot.dispose(function (data) {
  35397. disposed = true
  35398. })
  35399. })()}
  35400. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  35401. /***/ }),
  35402. /***/ "./resources/assets/js/components/Timeline.vue":
  35403. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35404. "use strict";
  35405. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35406. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_Timeline_vue__ = __webpack_require__("./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/Timeline.vue");
  35407. /* empty harmony namespace reexport */
  35408. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_40ef44f8_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Timeline_vue__ = __webpack_require__("./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-40ef44f8\",\"hasScoped\":true,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/Timeline.vue");
  35409. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__("./node_modules/vue-loader/lib/runtime/component-normalizer.js");
  35410. var disposed = false
  35411. function injectStyle (context) {
  35412. if (disposed) return
  35413. __webpack_require__("./node_modules/vue-style-loader/index.js!./node_modules/css-loader/index.js!./node_modules/vue-loader/lib/style-compiler/index.js?{\"optionsId\":\"0\",\"vue\":true,\"id\":\"data-v-40ef44f8\",\"scoped\":true,\"sourceMap\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./resources/assets/js/components/Timeline.vue")
  35414. }
  35415. /* script */
  35416. /* template */
  35417. /* template functional */
  35418. var __vue_template_functional__ = false
  35419. /* styles */
  35420. var __vue_styles__ = injectStyle
  35421. /* scopeId */
  35422. var __vue_scopeId__ = "data-v-40ef44f8"
  35423. /* moduleIdentifier (server only) */
  35424. var __vue_module_identifier__ = null
  35425. var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
  35426. __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_Timeline_vue__["a" /* default */],
  35427. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_40ef44f8_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Timeline_vue__["a" /* render */],
  35428. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_40ef44f8_hasScoped_true_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Timeline_vue__["b" /* staticRenderFns */],
  35429. __vue_template_functional__,
  35430. __vue_styles__,
  35431. __vue_scopeId__,
  35432. __vue_module_identifier__
  35433. )
  35434. Component.options.__file = "resources/assets/js/components/Timeline.vue"
  35435. /* hot reload */
  35436. if (false) {(function () {
  35437. var hotAPI = require("vue-hot-reload-api")
  35438. hotAPI.install(require("vue"), false)
  35439. if (!hotAPI.compatible) return
  35440. module.hot.accept()
  35441. if (!module.hot.data) {
  35442. hotAPI.createRecord("data-v-40ef44f8", Component.options)
  35443. } else {
  35444. hotAPI.reload("data-v-40ef44f8", Component.options)
  35445. }
  35446. module.hot.dispose(function (data) {
  35447. disposed = true
  35448. })
  35449. })()}
  35450. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  35451. /***/ }),
  35452. /***/ "./resources/assets/js/components/bookmarkform.js":
  35453. /***/ (function(module, exports) {
  35454. $(document).ready(function () {
  35455. $(document).on('submit', '.bookmark-form', function (e) {
  35456. e.preventDefault();
  35457. var el = $(this);
  35458. var id = el.data('id');
  35459. var res = axios.post('/i/bookmark', { item: id });
  35460. });
  35461. });
  35462. /***/ }),
  35463. /***/ "./resources/assets/js/components/commentform.js":
  35464. /***/ (function(module, exports) {
  35465. $(document).ready(function () {
  35466. $('.status-card > .card-footer').each(function () {
  35467. $(this).addClass('d-none');
  35468. });
  35469. $(document).on('click', '.status-comment-focus', function (el) {
  35470. var form = $(this).parents().eq(2).find('.card-footer');
  35471. form.removeClass('d-none');
  35472. var el = $(this).parents().eq(2).find('input[name="comment"]');
  35473. el.focus();
  35474. });
  35475. $(document).on('submit', '.comment-form', function (e, data) {
  35476. e.preventDefault();
  35477. var el = $(this);
  35478. var id = el.data('id');
  35479. var commentform = el.find('input[name="comment"]');
  35480. var commenttext = commentform.val();
  35481. var item = { item: id, comment: commenttext };
  35482. commentform.prop('disabled', true);
  35483. axios.post('/i/comment', item).then(function (res) {
  35484. var username = res.data.username;
  35485. var permalink = res.data.url;
  35486. var profile = res.data.profile;
  35487. var reply = res.data.comment;
  35488. if ($('.status-container').length == 1) {
  35489. var comments = el.parents().eq(3).find('.comments');
  35490. } else {
  35491. var comments = el.parents().eq(1).find('.comments');
  35492. }
  35493. var comment = '<p class="mb-0"><span class="font-weight-bold pr-1"><bdi><a class="text-dark" href="' + profile + '">' + username + '</a></bdi></span><span class="comment-text">' + reply + '</span></p>';
  35494. comments.prepend(comment);
  35495. commentform.val('');
  35496. commentform.blur();
  35497. commentform.prop('disabled', false);
  35498. }).catch(function (res) {});
  35499. });
  35500. });
  35501. /***/ }),
  35502. /***/ "./resources/assets/js/components/likebutton.js":
  35503. /***/ (function(module, exports) {
  35504. $(document).ready(function () {
  35505. pixelfed.fetchLikes = function () {
  35506. var ts = Date.now();
  35507. var offset = ts - 900000;
  35508. var updated = ls.get('likesUpdated');
  35509. if (updated != null && ls.get('likes').length > 0 || offset < updated) {
  35510. return;
  35511. }
  35512. axios.get('/api/v1/likes').then(function (res) {
  35513. ls.set('likes', res.data);
  35514. ls.set('likesUpdated', ts);
  35515. }).catch(function (res) {
  35516. ls.set('likes', []);
  35517. ls.set('likesUpdated', ts);
  35518. });
  35519. };
  35520. pixelfed.hydrateLikes = function () {
  35521. var likes = ls.get('likes');
  35522. $('.like-form').each(function (i, el) {
  35523. var el = $(el);
  35524. var id = el.data('id');
  35525. var heart = el.find('.status-heart');
  35526. if (likes.indexOf(id) != -1) {
  35527. heart.removeClass('far text-dark').addClass('fas text-danger');
  35528. } else {
  35529. heart.removeClass('fas text-danger').addClass('far text-dark');
  35530. }
  35531. });
  35532. };
  35533. pixelfed.fetchLikes();
  35534. pixelfed.hydrateLikes();
  35535. $(document).on('submit', '.like-form', function (e) {
  35536. e.preventDefault();
  35537. var el = $(this);
  35538. var id = el.data('id');
  35539. axios.post('/i/like', { item: id }).then(function (res) {
  35540. pixelfed.fetchLikes();
  35541. pixelfed.hydrateLikes();
  35542. var likes = ls.get('likes');
  35543. var action = false;
  35544. var counter = el.parents().eq(1).find('.like-count');
  35545. var count = res.data.count;
  35546. var heart = el.find('.status-heart');
  35547. if (likes.indexOf(id) > -1) {
  35548. heart.removeClass('fas text-danger').addClass('far text-dark');
  35549. likes = likes.filter(function (item) {
  35550. return item !== id;
  35551. });
  35552. counter.text(count);
  35553. action = 'unlike';
  35554. } else {
  35555. heart.removeClass('far text-dark').addClass('fas text-danger');
  35556. likes.push(id);
  35557. counter.text(count);
  35558. action = 'like';
  35559. }
  35560. ls.set('likes', likes);
  35561. ls.set('likesUpdated', Date.now());
  35562. console.log(action + ' - ' + id + ' like event');
  35563. });
  35564. });
  35565. });
  35566. /***/ }),
  35567. /***/ "./resources/assets/js/components/localstorage.js":
  35568. /***/ (function(module, exports) {
  35569. window.ls = {};
  35570. window.ls.get = function (key) {
  35571. return JSON.parse(localStorage.getItem(key));
  35572. };
  35573. window.ls.set = function (key, val) {
  35574. try {
  35575. localStorage.setItem(key, JSON.stringify(val));
  35576. return true;
  35577. } catch (e) {
  35578. return false;
  35579. }
  35580. };
  35581. window.ls.del = function (key) {
  35582. try {
  35583. localStorage.removeItem(key);
  35584. return true;
  35585. } catch (e) {
  35586. return false;
  35587. }
  35588. };
  35589. window.ls.clear = function () {
  35590. try {
  35591. localStorage.clear();
  35592. return true;
  35593. } catch (e) {
  35594. return false;
  35595. }
  35596. };
  35597. /***/ }),
  35598. /***/ "./resources/assets/js/components/presenter/MixedAlbumPresenter.vue":
  35599. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35600. "use strict";
  35601. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35602. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_MixedAlbumPresenter_vue__ = __webpack_require__("./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/presenter/MixedAlbumPresenter.vue");
  35603. /* empty harmony namespace reexport */
  35604. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_66084274_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_MixedAlbumPresenter_vue__ = __webpack_require__("./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-66084274\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/presenter/MixedAlbumPresenter.vue");
  35605. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__("./node_modules/vue-loader/lib/runtime/component-normalizer.js");
  35606. var disposed = false
  35607. /* script */
  35608. /* template */
  35609. /* template functional */
  35610. var __vue_template_functional__ = false
  35611. /* styles */
  35612. var __vue_styles__ = null
  35613. /* scopeId */
  35614. var __vue_scopeId__ = null
  35615. /* moduleIdentifier (server only) */
  35616. var __vue_module_identifier__ = null
  35617. var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
  35618. __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_MixedAlbumPresenter_vue__["a" /* default */],
  35619. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_66084274_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_MixedAlbumPresenter_vue__["a" /* render */],
  35620. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_66084274_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_MixedAlbumPresenter_vue__["b" /* staticRenderFns */],
  35621. __vue_template_functional__,
  35622. __vue_styles__,
  35623. __vue_scopeId__,
  35624. __vue_module_identifier__
  35625. )
  35626. Component.options.__file = "resources/assets/js/components/presenter/MixedAlbumPresenter.vue"
  35627. /* hot reload */
  35628. if (false) {(function () {
  35629. var hotAPI = require("vue-hot-reload-api")
  35630. hotAPI.install(require("vue"), false)
  35631. if (!hotAPI.compatible) return
  35632. module.hot.accept()
  35633. if (!module.hot.data) {
  35634. hotAPI.createRecord("data-v-66084274", Component.options)
  35635. } else {
  35636. hotAPI.reload("data-v-66084274", Component.options)
  35637. }
  35638. module.hot.dispose(function (data) {
  35639. disposed = true
  35640. })
  35641. })()}
  35642. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  35643. /***/ }),
  35644. /***/ "./resources/assets/js/components/presenter/PhotoAlbumPresenter.vue":
  35645. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35646. "use strict";
  35647. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35648. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_PhotoAlbumPresenter_vue__ = __webpack_require__("./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/presenter/PhotoAlbumPresenter.vue");
  35649. /* empty harmony namespace reexport */
  35650. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1c78113d_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PhotoAlbumPresenter_vue__ = __webpack_require__("./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-1c78113d\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/presenter/PhotoAlbumPresenter.vue");
  35651. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__("./node_modules/vue-loader/lib/runtime/component-normalizer.js");
  35652. var disposed = false
  35653. /* script */
  35654. /* template */
  35655. /* template functional */
  35656. var __vue_template_functional__ = false
  35657. /* styles */
  35658. var __vue_styles__ = null
  35659. /* scopeId */
  35660. var __vue_scopeId__ = null
  35661. /* moduleIdentifier (server only) */
  35662. var __vue_module_identifier__ = null
  35663. var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
  35664. __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_PhotoAlbumPresenter_vue__["a" /* default */],
  35665. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1c78113d_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PhotoAlbumPresenter_vue__["a" /* render */],
  35666. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1c78113d_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PhotoAlbumPresenter_vue__["b" /* staticRenderFns */],
  35667. __vue_template_functional__,
  35668. __vue_styles__,
  35669. __vue_scopeId__,
  35670. __vue_module_identifier__
  35671. )
  35672. Component.options.__file = "resources/assets/js/components/presenter/PhotoAlbumPresenter.vue"
  35673. /* hot reload */
  35674. if (false) {(function () {
  35675. var hotAPI = require("vue-hot-reload-api")
  35676. hotAPI.install(require("vue"), false)
  35677. if (!hotAPI.compatible) return
  35678. module.hot.accept()
  35679. if (!module.hot.data) {
  35680. hotAPI.createRecord("data-v-1c78113d", Component.options)
  35681. } else {
  35682. hotAPI.reload("data-v-1c78113d", Component.options)
  35683. }
  35684. module.hot.dispose(function (data) {
  35685. disposed = true
  35686. })
  35687. })()}
  35688. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  35689. /***/ }),
  35690. /***/ "./resources/assets/js/components/presenter/PhotoPresenter.vue":
  35691. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35692. "use strict";
  35693. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35694. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_PhotoPresenter_vue__ = __webpack_require__("./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/presenter/PhotoPresenter.vue");
  35695. /* empty harmony namespace reexport */
  35696. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_88c038d8_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PhotoPresenter_vue__ = __webpack_require__("./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-88c038d8\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/presenter/PhotoPresenter.vue");
  35697. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__("./node_modules/vue-loader/lib/runtime/component-normalizer.js");
  35698. var disposed = false
  35699. /* script */
  35700. /* template */
  35701. /* template functional */
  35702. var __vue_template_functional__ = false
  35703. /* styles */
  35704. var __vue_styles__ = null
  35705. /* scopeId */
  35706. var __vue_scopeId__ = null
  35707. /* moduleIdentifier (server only) */
  35708. var __vue_module_identifier__ = null
  35709. var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
  35710. __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_PhotoPresenter_vue__["a" /* default */],
  35711. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_88c038d8_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PhotoPresenter_vue__["a" /* render */],
  35712. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_88c038d8_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PhotoPresenter_vue__["b" /* staticRenderFns */],
  35713. __vue_template_functional__,
  35714. __vue_styles__,
  35715. __vue_scopeId__,
  35716. __vue_module_identifier__
  35717. )
  35718. Component.options.__file = "resources/assets/js/components/presenter/PhotoPresenter.vue"
  35719. /* hot reload */
  35720. if (false) {(function () {
  35721. var hotAPI = require("vue-hot-reload-api")
  35722. hotAPI.install(require("vue"), false)
  35723. if (!hotAPI.compatible) return
  35724. module.hot.accept()
  35725. if (!module.hot.data) {
  35726. hotAPI.createRecord("data-v-88c038d8", Component.options)
  35727. } else {
  35728. hotAPI.reload("data-v-88c038d8", Component.options)
  35729. }
  35730. module.hot.dispose(function (data) {
  35731. disposed = true
  35732. })
  35733. })()}
  35734. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  35735. /***/ }),
  35736. /***/ "./resources/assets/js/components/presenter/VideoAlbumPresenter.vue":
  35737. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35738. "use strict";
  35739. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35740. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_VideoAlbumPresenter_vue__ = __webpack_require__("./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/presenter/VideoAlbumPresenter.vue");
  35741. /* empty harmony namespace reexport */
  35742. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_43194746_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_VideoAlbumPresenter_vue__ = __webpack_require__("./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-43194746\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/presenter/VideoAlbumPresenter.vue");
  35743. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__("./node_modules/vue-loader/lib/runtime/component-normalizer.js");
  35744. var disposed = false
  35745. /* script */
  35746. /* template */
  35747. /* template functional */
  35748. var __vue_template_functional__ = false
  35749. /* styles */
  35750. var __vue_styles__ = null
  35751. /* scopeId */
  35752. var __vue_scopeId__ = null
  35753. /* moduleIdentifier (server only) */
  35754. var __vue_module_identifier__ = null
  35755. var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
  35756. __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_VideoAlbumPresenter_vue__["a" /* default */],
  35757. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_43194746_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_VideoAlbumPresenter_vue__["a" /* render */],
  35758. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_43194746_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_VideoAlbumPresenter_vue__["b" /* staticRenderFns */],
  35759. __vue_template_functional__,
  35760. __vue_styles__,
  35761. __vue_scopeId__,
  35762. __vue_module_identifier__
  35763. )
  35764. Component.options.__file = "resources/assets/js/components/presenter/VideoAlbumPresenter.vue"
  35765. /* hot reload */
  35766. if (false) {(function () {
  35767. var hotAPI = require("vue-hot-reload-api")
  35768. hotAPI.install(require("vue"), false)
  35769. if (!hotAPI.compatible) return
  35770. module.hot.accept()
  35771. if (!module.hot.data) {
  35772. hotAPI.createRecord("data-v-43194746", Component.options)
  35773. } else {
  35774. hotAPI.reload("data-v-43194746", Component.options)
  35775. }
  35776. module.hot.dispose(function (data) {
  35777. disposed = true
  35778. })
  35779. })()}
  35780. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  35781. /***/ }),
  35782. /***/ "./resources/assets/js/components/presenter/VideoPresenter.vue":
  35783. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35784. "use strict";
  35785. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  35786. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_VideoPresenter_vue__ = __webpack_require__("./node_modules/babel-loader/lib/index.js?{\"cacheDirectory\":true,\"presets\":[[\"env\",{\"modules\":false,\"targets\":{\"browsers\":[\"> 2%\"],\"uglify\":true}}]],\"plugins\":[\"transform-object-rest-spread\",[\"transform-runtime\",{\"polyfill\":false,\"helpers\":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/assets/js/components/presenter/VideoPresenter.vue");
  35787. /* empty harmony namespace reexport */
  35788. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9ad5682a_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_VideoPresenter_vue__ = __webpack_require__("./node_modules/vue-loader/lib/template-compiler/index.js?{\"id\":\"data-v-9ad5682a\",\"hasScoped\":false,\"optionsId\":\"0\",\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./resources/assets/js/components/presenter/VideoPresenter.vue");
  35789. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__("./node_modules/vue-loader/lib/runtime/component-normalizer.js");
  35790. var disposed = false
  35791. /* script */
  35792. /* template */
  35793. /* template functional */
  35794. var __vue_template_functional__ = false
  35795. /* styles */
  35796. var __vue_styles__ = null
  35797. /* scopeId */
  35798. var __vue_scopeId__ = null
  35799. /* moduleIdentifier (server only) */
  35800. var __vue_module_identifier__ = null
  35801. var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
  35802. __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_env_modules_false_targets_browsers_2_uglify_true_plugins_transform_object_rest_spread_transform_runtime_polyfill_false_helpers_false_node_modules_vue_loader_lib_selector_type_script_index_0_VideoPresenter_vue__["a" /* default */],
  35803. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9ad5682a_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_VideoPresenter_vue__["a" /* render */],
  35804. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9ad5682a_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_VideoPresenter_vue__["b" /* staticRenderFns */],
  35805. __vue_template_functional__,
  35806. __vue_styles__,
  35807. __vue_scopeId__,
  35808. __vue_module_identifier__
  35809. )
  35810. Component.options.__file = "resources/assets/js/components/presenter/VideoPresenter.vue"
  35811. /* hot reload */
  35812. if (false) {(function () {
  35813. var hotAPI = require("vue-hot-reload-api")
  35814. hotAPI.install(require("vue"), false)
  35815. if (!hotAPI.compatible) return
  35816. module.hot.accept()
  35817. if (!module.hot.data) {
  35818. hotAPI.createRecord("data-v-9ad5682a", Component.options)
  35819. } else {
  35820. hotAPI.reload("data-v-9ad5682a", Component.options)
  35821. }
  35822. module.hot.dispose(function (data) {
  35823. disposed = true
  35824. })
  35825. })()}
  35826. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  35827. /***/ }),
  35828. /***/ "./resources/assets/js/components/searchform.js":
  35829. /***/ (function(module, exports, __webpack_require__) {
  35830. $(document).ready(function () {
  35831. var queryEngine = new Bloodhound({
  35832. datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
  35833. queryTokenizer: Bloodhound.tokenizers.whitespace,
  35834. remote: {
  35835. url: "/api/search" + '/%QUERY%',
  35836. wildcard: '%QUERY%'
  35837. }
  35838. });
  35839. $('.search-form .search-form-input').typeahead(null, {
  35840. name: 'search',
  35841. display: 'value',
  35842. source: queryEngine,
  35843. limit: 40,
  35844. templates: {
  35845. empty: ['<div class="alert alert-info mb-0 font-weight-bold">', 'No Results Found', '</div>'].join('\n'),
  35846. suggestion: function suggestion(data) {
  35847. var type = data.type;
  35848. var res = false;
  35849. switch (type) {
  35850. case 'hashtag':
  35851. res = '<a href="' + data.url + '?src=search">' + '<div class="media d-flex align-items-center">' + '<div class="mr-3 h4 text-muted"><span class="fas fa-hashtag"></span></div>' + '<div class="media-body text-truncate">' + '<p class="mt-0 mb-0 font-weight-bold">' + data.value + '</p>' + '<p class="text-muted mb-0">' + data.count + ' posts</p>' + '</div>' + '</div>' + '</a>';
  35852. break;
  35853. case 'profile':
  35854. res = '<a href="' + data.url + '?src=search">' + '<div class="media d-flex align-items-center">' + '<div class="mr-3 h4 text-muted"><span class="far fa-user"></span></div>' + '<div class="media-body text-truncate">' + '<p class="mt-0 mb-0 font-weight-bold">' + data.name + '</p>' + '<p class="text-muted mb-0">' + data.value + '</p>' + '</div>' + '</div>' + '</a>';
  35855. break;
  35856. case 'status':
  35857. res = '<a href="' + data.url + '?src=search">' + '<div class="media d-flex align-items-center">' + '<div class="mr-3 h4 text-muted"><img src="' + data.thumb + '" width="32px"></div>' + '<div class="media-body text-truncate">' + '<p class="mt-0 mb-0 font-weight-bold">' + data.name + '</p>' + '<p class="text-muted mb-0 small">' + data.value + '</p>' + '</div>' + '</div>' + '</a>';
  35858. break;
  35859. default:
  35860. res = false;
  35861. break;
  35862. }
  35863. if (res !== false) {
  35864. return res;
  35865. }
  35866. }
  35867. }
  35868. });
  35869. });
  35870. /***/ }),
  35871. /***/ "./resources/assets/js/components/settingspage.js":
  35872. /***/ (function(module, exports) {
  35873. $(document).ready(function () {
  35874. $('#avatarInput').on('change', function (e) {
  35875. var file = document.getElementById('avatarInput').files[0];
  35876. var reader = new FileReader();
  35877. reader.addEventListener("load", function () {
  35878. $('#previewAvatar').html('<img src="' + reader.result + '" class="rounded-circle box-shadow" />');
  35879. }, false);
  35880. if (file) {
  35881. reader.readAsDataURL(file);
  35882. }
  35883. });
  35884. });
  35885. /***/ }),
  35886. /***/ "./resources/assets/js/components/statusform.js":
  35887. /***/ (function(module, exports) {
  35888. $(document).ready(function () {
  35889. pixelfed.create = {};
  35890. pixelfed.filters = {};
  35891. pixelfed.create.hasGeneratedSelect = false;
  35892. pixelfed.create.selectedFilter = false;
  35893. pixelfed.create.currentFilterName = false;
  35894. pixelfed.create.currentFilterClass = false;
  35895. pixelfed.filters.list = [['1977', 'filter-1977'], ['Aden', 'filter-aden'], ['Amaro', 'filter-amaro'], ['Ashby', 'filter-ashby'], ['Brannan', 'filter-brannan'], ['Brooklyn', 'filter-brooklyn'], ['Charmes', 'filter-charmes'], ['Clarendon', 'filter-clarendon'], ['Crema', 'filter-crema'], ['Dogpatch', 'filter-dogpatch'], ['Earlybird', 'filter-earlybird'], ['Gingham', 'filter-gingham'], ['Ginza', 'filter-ginza'], ['Hefe', 'filter-hefe'], ['Helena', 'filter-helena'], ['Hudson', 'filter-hudson'], ['Inkwell', 'filter-inkwell'], ['Kelvin', 'filter-kelvin'], ['Kuno', 'filter-juno'], ['Lark', 'filter-lark'], ['Lo-Fi', 'filter-lofi'], ['Ludwig', 'filter-ludwig'], ['Maven', 'filter-maven'], ['Mayfair', 'filter-mayfair'], ['Moon', 'filter-moon'], ['Nashville', 'filter-nashville'], ['Perpetua', 'filter-perpetua'], ['Poprocket', 'filter-poprocket'], ['Reyes', 'filter-reyes'], ['Rise', 'filter-rise'], ['Sierra', 'filter-sierra'], ['Skyline', 'filter-skyline'], ['Slumber', 'filter-slumber'], ['Stinson', 'filter-stinson'], ['Sutro', 'filter-sutro'], ['Toaster', 'filter-toaster'], ['Valencia', 'filter-valencia'], ['Vesper', 'filter-vesper'], ['Walden', 'filter-walden'], ['Willow', 'filter-willow'], ['X-Pro II', 'filter-xpro-ii']];
  35896. function previewImage(input) {
  35897. if (input.files && input.files[0]) {
  35898. var reader = new FileReader();
  35899. reader.onload = function (e) {
  35900. $('.filterPreview').attr('src', e.target.result);
  35901. };
  35902. reader.readAsDataURL(input.files[0]);
  35903. }
  35904. }
  35905. function generateFilterSelect() {
  35906. var filters = pixelfed.filters.list;
  35907. for (var i = 0, len = filters.length; i < len; i++) {
  35908. var filter = filters[i];
  35909. var name = filter[0];
  35910. var className = filter[1];
  35911. var select = $('#filterSelectDropdown');
  35912. var template = '<option value="' + className + '">' + name + '</option>';
  35913. select.append(template);
  35914. }
  35915. pixelfed.create.hasGeneratedSelect = true;
  35916. }
  35917. $(document).on('change', '#fileInput', function () {
  35918. previewImage(this);
  35919. $('#statusForm .form-filters.d-none').removeClass('d-none');
  35920. $('#statusForm .form-preview.d-none').removeClass('d-none');
  35921. $('#statusForm #collapsePreview').collapse('show');
  35922. if (!pixelfed.create.hasGeneratedSelect) {
  35923. generateFilterSelect();
  35924. }
  35925. });
  35926. $(document).on('change', '#filterSelectDropdown', function () {
  35927. var el = $(this);
  35928. var filter = el.val();
  35929. var oldFilter = pixelfed.create.currentFilterClass;
  35930. if (filter == 'none') {
  35931. $('input[name=filter_class]').val('');
  35932. $('input[name=filter_name]').val('');
  35933. $('.filterContainer').removeClass(oldFilter);
  35934. pixelfed.create.currentFilterClass = false;
  35935. pixelfed.create.currentFilterName = 'None';
  35936. $('.form-group.form-preview .form-text').text('Current Filter: No filter selected');
  35937. return;
  35938. } else {
  35939. $('.filterContainer').removeClass(oldFilter).addClass(filter);
  35940. pixelfed.create.currentFilterClass = filter;
  35941. pixelfed.create.currentFilterName = el.find(':selected').text();
  35942. $('.form-group.form-preview .form-text').text('Current Filter: ' + pixelfed.create.currentFilterName);
  35943. $('input[name=filter_class]').val(pixelfed.create.currentFilterClass);
  35944. $('input[name=filter_name]').val(pixelfed.create.currentFilterName);
  35945. return;
  35946. }
  35947. });
  35948. $(document).on('keyup keydown', '#statusForm textarea[name=caption]', function () {
  35949. var el = $(this);
  35950. var len = el.val().length;
  35951. var limit = el.data('limit');
  35952. if (len > limit) {
  35953. var diff = limit - len;
  35954. $('#statusForm .caption-counter').text(diff).addClass('text-danger');
  35955. } else {
  35956. $('#statusForm .caption-counter').text(len).removeClass('text-danger');
  35957. }
  35958. });
  35959. $(document).on('focus', '#statusForm textarea[name=caption]', function () {
  35960. var el = $(this);
  35961. el.attr('rows', '3');
  35962. });
  35963. });
  35964. /***/ }),
  35965. /***/ 2:
  35966. /***/ (function(module, exports, __webpack_require__) {
  35967. module.exports = __webpack_require__("./resources/assets/js/components.js");
  35968. /***/ })
  35969. /******/ });