1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161271622716327164271652716627167271682716927170271712717227173271742717527176271772717827179271802718127182271832718427185271862718727188271892719027191271922719327194271952719627197271982719927200272012720227203272042720527206272072720827209272102721127212272132721427215272162721727218272192722027221272222722327224272252722627227272282722927230272312723227233272342723527236272372723827239272402724127242272432724427245272462724727248272492725027251272522725327254272552725627257272582725927260272612726227263272642726527266272672726827269272702727127272272732727427275272762727727278272792728027281272822728327284272852728627287272882728927290272912729227293272942729527296272972729827299273002730127302273032730427305273062730727308273092731027311273122731327314273152731627317273182731927320273212732227323273242732527326273272732827329273302733127332273332733427335273362733727338273392734027341273422734327344273452734627347273482734927350273512735227353273542735527356273572735827359273602736127362273632736427365273662736727368273692737027371273722737327374273752737627377273782737927380273812738227383273842738527386273872738827389273902739127392273932739427395273962739727398273992740027401274022740327404274052740627407274082740927410274112741227413274142741527416274172741827419274202742127422274232742427425274262742727428274292743027431274322743327434274352743627437274382743927440274412744227443274442744527446274472744827449274502745127452274532745427455274562745727458274592746027461274622746327464274652746627467274682746927470274712747227473274742747527476274772747827479274802748127482274832748427485274862748727488274892749027491274922749327494274952749627497274982749927500275012750227503275042750527506275072750827509275102751127512275132751427515275162751727518275192752027521275222752327524275252752627527275282752927530275312753227533275342753527536275372753827539275402754127542275432754427545275462754727548275492755027551275522755327554275552755627557275582755927560275612756227563275642756527566275672756827569275702757127572275732757427575275762757727578275792758027581275822758327584275852758627587275882758927590275912759227593275942759527596275972759827599276002760127602276032760427605276062760727608276092761027611276122761327614276152761627617276182761927620276212762227623276242762527626276272762827629276302763127632276332763427635276362763727638276392764027641276422764327644276452764627647276482764927650276512765227653276542765527656276572765827659276602766127662276632766427665276662766727668276692767027671276722767327674276752767627677276782767927680276812768227683276842768527686276872768827689276902769127692276932769427695276962769727698276992770027701277022770327704277052770627707277082770927710277112771227713277142771527716277172771827719277202772127722277232772427725277262772727728277292773027731277322773327734277352773627737277382773927740277412774227743277442774527746277472774827749277502775127752277532775427755277562775727758277592776027761277622776327764277652776627767277682776927770277712777227773277742777527776277772777827779277802778127782277832778427785277862778727788277892779027791277922779327794277952779627797277982779927800278012780227803278042780527806278072780827809278102781127812278132781427815278162781727818278192782027821278222782327824278252782627827278282782927830278312783227833278342783527836278372783827839278402784127842278432784427845278462784727848278492785027851278522785327854278552785627857278582785927860278612786227863278642786527866278672786827869278702787127872278732787427875278762787727878278792788027881278822788327884278852788627887278882788927890278912789227893278942789527896278972789827899279002790127902279032790427905279062790727908279092791027911279122791327914279152791627917279182791927920279212792227923279242792527926279272792827929279302793127932279332793427935279362793727938279392794027941279422794327944279452794627947279482794927950279512795227953279542795527956279572795827959279602796127962279632796427965279662796727968279692797027971279722797327974279752797627977279782797927980279812798227983279842798527986279872798827989279902799127992279932799427995279962799727998279992800028001280022800328004280052800628007280082800928010280112801228013280142801528016280172801828019280202802128022280232802428025280262802728028280292803028031280322803328034280352803628037280382803928040280412804228043280442804528046280472804828049280502805128052280532805428055280562805728058280592806028061280622806328064280652806628067280682806928070280712807228073280742807528076280772807828079280802808128082280832808428085280862808728088280892809028091280922809328094280952809628097280982809928100281012810228103281042810528106281072810828109281102811128112281132811428115281162811728118281192812028121281222812328124281252812628127281282812928130281312813228133281342813528136281372813828139281402814128142281432814428145281462814728148281492815028151281522815328154281552815628157281582815928160281612816228163281642816528166281672816828169281702817128172281732817428175281762817728178281792818028181281822818328184281852818628187281882818928190281912819228193281942819528196281972819828199282002820128202282032820428205282062820728208282092821028211282122821328214282152821628217282182821928220282212822228223282242822528226282272822828229282302823128232282332823428235282362823728238282392824028241282422824328244282452824628247282482824928250282512825228253282542825528256282572825828259282602826128262282632826428265282662826728268282692827028271282722827328274282752827628277282782827928280282812828228283282842828528286282872828828289282902829128292282932829428295282962829728298282992830028301283022830328304283052830628307283082830928310283112831228313283142831528316283172831828319283202832128322283232832428325283262832728328283292833028331283322833328334283352833628337283382833928340283412834228343283442834528346283472834828349283502835128352283532835428355283562835728358283592836028361283622836328364283652836628367283682836928370283712837228373283742837528376283772837828379283802838128382283832838428385283862838728388283892839028391283922839328394283952839628397283982839928400284012840228403284042840528406284072840828409284102841128412284132841428415284162841728418284192842028421284222842328424284252842628427284282842928430284312843228433284342843528436284372843828439284402844128442284432844428445284462844728448284492845028451284522845328454284552845628457284582845928460284612846228463284642846528466284672846828469284702847128472284732847428475284762847728478284792848028481284822848328484284852848628487284882848928490284912849228493284942849528496284972849828499285002850128502285032850428505285062850728508285092851028511285122851328514285152851628517285182851928520285212852228523285242852528526285272852828529285302853128532285332853428535285362853728538285392854028541285422854328544285452854628547285482854928550285512855228553285542855528556285572855828559285602856128562285632856428565285662856728568285692857028571285722857328574285752857628577285782857928580285812858228583285842858528586285872858828589285902859128592285932859428595285962859728598285992860028601286022860328604286052860628607286082860928610286112861228613286142861528616286172861828619286202862128622286232862428625286262862728628286292863028631286322863328634286352863628637286382863928640286412864228643286442864528646286472864828649286502865128652286532865428655286562865728658286592866028661286622866328664286652866628667286682866928670286712867228673286742867528676286772867828679286802868128682286832868428685286862868728688286892869028691286922869328694286952869628697286982869928700287012870228703287042870528706287072870828709287102871128712287132871428715287162871728718287192872028721287222872328724287252872628727287282872928730287312873228733287342873528736287372873828739287402874128742287432874428745287462874728748287492875028751287522875328754287552875628757287582875928760287612876228763287642876528766287672876828769287702877128772287732877428775287762877728778287792878028781287822878328784287852878628787287882878928790287912879228793287942879528796287972879828799288002880128802288032880428805288062880728808288092881028811288122881328814288152881628817288182881928820288212882228823288242882528826288272882828829288302883128832288332883428835288362883728838288392884028841288422884328844288452884628847288482884928850288512885228853288542885528856288572885828859288602886128862288632886428865288662886728868288692887028871288722887328874288752887628877288782887928880288812888228883288842888528886288872888828889288902889128892288932889428895288962889728898288992890028901289022890328904289052890628907289082890928910289112891228913289142891528916289172891828919289202892128922289232892428925289262892728928289292893028931289322893328934289352893628937289382893928940289412894228943289442894528946289472894828949289502895128952289532895428955289562895728958289592896028961289622896328964289652896628967289682896928970289712897228973289742897528976289772897828979289802898128982289832898428985289862898728988289892899028991289922899328994289952899628997289982899929000290012900229003290042900529006290072900829009290102901129012290132901429015290162901729018290192902029021290222902329024290252902629027290282902929030290312903229033290342903529036290372903829039290402904129042290432904429045290462904729048290492905029051290522905329054290552905629057290582905929060290612906229063290642906529066290672906829069290702907129072290732907429075290762907729078290792908029081290822908329084290852908629087290882908929090290912909229093290942909529096290972909829099291002910129102291032910429105291062910729108291092911029111291122911329114291152911629117291182911929120291212912229123291242912529126291272912829129291302913129132291332913429135291362913729138291392914029141291422914329144291452914629147291482914929150291512915229153291542915529156291572915829159291602916129162291632916429165291662916729168291692917029171291722917329174291752917629177291782917929180291812918229183291842918529186291872918829189291902919129192291932919429195291962919729198291992920029201292022920329204292052920629207292082920929210292112921229213292142921529216292172921829219292202922129222292232922429225292262922729228292292923029231292322923329234292352923629237292382923929240292412924229243292442924529246292472924829249292502925129252292532925429255292562925729258292592926029261292622926329264292652926629267292682926929270292712927229273292742927529276292772927829279292802928129282292832928429285292862928729288292892929029291292922929329294292952929629297292982929929300293012930229303293042930529306293072930829309293102931129312293132931429315293162931729318293192932029321293222932329324293252932629327293282932929330293312933229333293342933529336293372933829339293402934129342293432934429345293462934729348293492935029351293522935329354293552935629357293582935929360293612936229363293642936529366293672936829369293702937129372293732937429375293762937729378293792938029381293822938329384293852938629387293882938929390293912939229393293942939529396293972939829399294002940129402294032940429405294062940729408294092941029411294122941329414294152941629417294182941929420294212942229423294242942529426294272942829429294302943129432294332943429435294362943729438294392944029441294422944329444294452944629447294482944929450294512945229453294542945529456294572945829459294602946129462294632946429465294662946729468294692947029471294722947329474294752947629477294782947929480294812948229483294842948529486294872948829489294902949129492294932949429495294962949729498294992950029501295022950329504295052950629507295082950929510295112951229513295142951529516295172951829519295202952129522295232952429525295262952729528295292953029531295322953329534295352953629537295382953929540295412954229543295442954529546295472954829549295502955129552295532955429555295562955729558295592956029561295622956329564295652956629567295682956929570295712957229573295742957529576295772957829579295802958129582295832958429585295862958729588295892959029591295922959329594295952959629597295982959929600296012960229603296042960529606296072960829609296102961129612296132961429615296162961729618296192962029621296222962329624296252962629627296282962929630296312963229633296342963529636296372963829639296402964129642296432964429645296462964729648296492965029651296522965329654296552965629657296582965929660296612966229663296642966529666296672966829669296702967129672296732967429675296762967729678296792968029681296822968329684296852968629687296882968929690296912969229693296942969529696296972969829699297002970129702297032970429705297062970729708297092971029711297122971329714297152971629717297182971929720297212972229723297242972529726297272972829729297302973129732297332973429735297362973729738297392974029741297422974329744297452974629747297482974929750297512975229753297542975529756297572975829759297602976129762297632976429765297662976729768297692977029771297722977329774297752977629777297782977929780297812978229783297842978529786297872978829789297902979129792297932979429795297962979729798297992980029801298022980329804298052980629807298082980929810298112981229813298142981529816298172981829819298202982129822298232982429825298262982729828298292983029831298322983329834298352983629837298382983929840298412984229843298442984529846298472984829849298502985129852298532985429855298562985729858298592986029861298622986329864298652986629867298682986929870298712987229873298742987529876298772987829879298802988129882298832988429885298862988729888298892989029891298922989329894298952989629897298982989929900299012990229903299042990529906299072990829909299102991129912299132991429915299162991729918299192992029921299222992329924299252992629927299282992929930299312993229933299342993529936299372993829939299402994129942299432994429945299462994729948299492995029951299522995329954299552995629957299582995929960299612996229963299642996529966299672996829969299702997129972299732997429975299762997729978299792998029981299822998329984299852998629987299882998929990299912999229993299942999529996299972999829999300003000130002300033000430005300063000730008300093001030011300123001330014300153001630017300183001930020300213002230023300243002530026300273002830029300303003130032300333003430035300363003730038300393004030041300423004330044300453004630047300483004930050300513005230053300543005530056300573005830059300603006130062300633006430065300663006730068300693007030071300723007330074300753007630077300783007930080300813008230083300843008530086300873008830089300903009130092300933009430095300963009730098300993010030101301023010330104301053010630107301083010930110301113011230113301143011530116301173011830119301203012130122301233012430125301263012730128301293013030131301323013330134301353013630137301383013930140301413014230143301443014530146301473014830149301503015130152301533015430155301563015730158301593016030161301623016330164301653016630167301683016930170301713017230173301743017530176301773017830179301803018130182301833018430185301863018730188301893019030191301923019330194301953019630197301983019930200302013020230203302043020530206302073020830209302103021130212302133021430215302163021730218302193022030221302223022330224302253022630227302283022930230302313023230233302343023530236302373023830239302403024130242302433024430245302463024730248302493025030251302523025330254302553025630257302583025930260302613026230263302643026530266302673026830269302703027130272302733027430275302763027730278302793028030281302823028330284302853028630287302883028930290302913029230293302943029530296302973029830299303003030130302303033030430305303063030730308303093031030311303123031330314303153031630317303183031930320303213032230323303243032530326303273032830329303303033130332303333033430335303363033730338303393034030341303423034330344303453034630347303483034930350303513035230353303543035530356303573035830359303603036130362303633036430365303663036730368303693037030371303723037330374303753037630377303783037930380303813038230383303843038530386303873038830389303903039130392303933039430395303963039730398303993040030401304023040330404304053040630407304083040930410304113041230413304143041530416304173041830419304203042130422304233042430425304263042730428304293043030431304323043330434304353043630437304383043930440304413044230443304443044530446304473044830449304503045130452304533045430455304563045730458304593046030461304623046330464304653046630467304683046930470304713047230473304743047530476304773047830479304803048130482304833048430485304863048730488304893049030491304923049330494304953049630497304983049930500305013050230503305043050530506305073050830509305103051130512305133051430515305163051730518305193052030521305223052330524305253052630527305283052930530305313053230533305343053530536305373053830539305403054130542305433054430545305463054730548305493055030551305523055330554305553055630557305583055930560305613056230563305643056530566305673056830569305703057130572305733057430575305763057730578305793058030581305823058330584305853058630587305883058930590305913059230593305943059530596305973059830599306003060130602306033060430605306063060730608306093061030611306123061330614306153061630617306183061930620306213062230623306243062530626306273062830629306303063130632306333063430635306363063730638306393064030641306423064330644306453064630647306483064930650306513065230653306543065530656306573065830659306603066130662306633066430665306663066730668306693067030671306723067330674306753067630677306783067930680306813068230683306843068530686306873068830689306903069130692306933069430695306963069730698306993070030701307023070330704307053070630707307083070930710307113071230713307143071530716307173071830719307203072130722307233072430725307263072730728307293073030731307323073330734307353073630737307383073930740307413074230743307443074530746307473074830749307503075130752307533075430755307563075730758307593076030761307623076330764307653076630767307683076930770307713077230773307743077530776307773077830779307803078130782307833078430785307863078730788307893079030791307923079330794307953079630797307983079930800308013080230803308043080530806308073080830809308103081130812308133081430815308163081730818308193082030821308223082330824308253082630827308283082930830308313083230833308343083530836308373083830839308403084130842308433084430845308463084730848308493085030851308523085330854308553085630857308583085930860308613086230863308643086530866308673086830869308703087130872308733087430875308763087730878308793088030881308823088330884308853088630887308883088930890308913089230893308943089530896308973089830899309003090130902309033090430905309063090730908309093091030911309123091330914309153091630917309183091930920309213092230923309243092530926309273092830929309303093130932309333093430935309363093730938309393094030941309423094330944309453094630947309483094930950309513095230953309543095530956309573095830959309603096130962309633096430965309663096730968309693097030971309723097330974309753097630977309783097930980309813098230983309843098530986309873098830989309903099130992309933099430995309963099730998309993100031001310023100331004310053100631007310083100931010310113101231013310143101531016310173101831019310203102131022310233102431025310263102731028310293103031031310323103331034310353103631037310383103931040310413104231043310443104531046310473104831049310503105131052310533105431055310563105731058310593106031061310623106331064310653106631067310683106931070310713107231073310743107531076310773107831079310803108131082310833108431085310863108731088310893109031091310923109331094310953109631097310983109931100311013110231103311043110531106311073110831109311103111131112311133111431115311163111731118311193112031121311223112331124311253112631127311283112931130311313113231133311343113531136311373113831139311403114131142311433114431145311463114731148311493115031151311523115331154311553115631157311583115931160311613116231163311643116531166311673116831169311703117131172311733117431175311763117731178311793118031181311823118331184311853118631187311883118931190311913119231193311943119531196311973119831199312003120131202312033120431205312063120731208312093121031211312123121331214312153121631217312183121931220312213122231223312243122531226312273122831229312303123131232312333123431235312363123731238312393124031241312423124331244312453124631247312483124931250312513125231253312543125531256312573125831259312603126131262312633126431265312663126731268312693127031271312723127331274312753127631277312783127931280312813128231283312843128531286312873128831289312903129131292312933129431295312963129731298312993130031301313023130331304313053130631307313083130931310313113131231313313143131531316313173131831319313203132131322313233132431325313263132731328313293133031331313323133331334313353133631337313383133931340313413134231343313443134531346313473134831349313503135131352313533135431355313563135731358313593136031361313623136331364313653136631367313683136931370313713137231373313743137531376313773137831379313803138131382313833138431385313863138731388313893139031391313923139331394313953139631397313983139931400314013140231403314043140531406314073140831409314103141131412314133141431415314163141731418314193142031421314223142331424314253142631427314283142931430314313143231433314343143531436314373143831439314403144131442314433144431445314463144731448314493145031451314523145331454314553145631457314583145931460314613146231463314643146531466314673146831469314703147131472314733147431475314763147731478314793148031481314823148331484314853148631487314883148931490314913149231493314943149531496314973149831499315003150131502315033150431505315063150731508315093151031511315123151331514315153151631517315183151931520315213152231523315243152531526315273152831529315303153131532315333153431535315363153731538315393154031541315423154331544315453154631547315483154931550315513155231553315543155531556315573155831559315603156131562315633156431565315663156731568315693157031571315723157331574315753157631577315783157931580315813158231583315843158531586315873158831589315903159131592315933159431595315963159731598315993160031601316023160331604316053160631607316083160931610316113161231613316143161531616316173161831619316203162131622316233162431625316263162731628316293163031631316323163331634316353163631637316383163931640316413164231643316443164531646316473164831649316503165131652316533165431655316563165731658316593166031661316623166331664316653166631667316683166931670316713167231673316743167531676316773167831679316803168131682316833168431685316863168731688316893169031691316923169331694316953169631697316983169931700317013170231703317043170531706317073170831709317103171131712317133171431715317163171731718317193172031721317223172331724317253172631727317283172931730317313173231733317343173531736317373173831739317403174131742317433174431745317463174731748317493175031751317523175331754317553175631757317583175931760317613176231763317643176531766317673176831769317703177131772317733177431775317763177731778317793178031781317823178331784317853178631787317883178931790317913179231793317943179531796317973179831799318003180131802318033180431805318063180731808318093181031811318123181331814318153181631817318183181931820318213182231823318243182531826318273182831829318303183131832318333183431835318363183731838318393184031841318423184331844318453184631847318483184931850318513185231853318543185531856318573185831859318603186131862318633186431865318663186731868318693187031871318723187331874318753187631877318783187931880318813188231883318843188531886318873188831889318903189131892318933189431895318963189731898318993190031901319023190331904319053190631907319083190931910319113191231913319143191531916319173191831919319203192131922319233192431925319263192731928319293193031931319323193331934319353193631937319383193931940319413194231943319443194531946319473194831949319503195131952319533195431955319563195731958319593196031961319623196331964319653196631967319683196931970319713197231973319743197531976319773197831979319803198131982319833198431985319863198731988319893199031991319923199331994319953199631997319983199932000320013200232003320043200532006320073200832009320103201132012320133201432015320163201732018320193202032021320223202332024320253202632027320283202932030320313203232033320343203532036320373203832039320403204132042320433204432045320463204732048320493205032051320523205332054320553205632057320583205932060320613206232063320643206532066320673206832069320703207132072320733207432075320763207732078320793208032081320823208332084320853208632087320883208932090320913209232093320943209532096320973209832099321003210132102321033210432105321063210732108321093211032111321123211332114321153211632117321183211932120321213212232123321243212532126321273212832129321303213132132321333213432135321363213732138321393214032141321423214332144321453214632147321483214932150321513215232153321543215532156321573215832159321603216132162321633216432165321663216732168321693217032171321723217332174321753217632177321783217932180321813218232183321843218532186321873218832189321903219132192321933219432195321963219732198321993220032201322023220332204322053220632207322083220932210322113221232213322143221532216322173221832219322203222132222322233222432225322263222732228322293223032231322323223332234322353223632237322383223932240322413224232243322443224532246322473224832249322503225132252322533225432255322563225732258322593226032261322623226332264322653226632267322683226932270322713227232273322743227532276322773227832279322803228132282322833228432285322863228732288322893229032291322923229332294322953229632297322983229932300323013230232303323043230532306323073230832309323103231132312323133231432315323163231732318323193232032321323223232332324323253232632327323283232932330323313233232333323343233532336323373233832339323403234132342323433234432345323463234732348323493235032351323523235332354323553235632357323583235932360323613236232363323643236532366323673236832369323703237132372323733237432375323763237732378323793238032381323823238332384323853238632387323883238932390323913239232393323943239532396323973239832399324003240132402324033240432405324063240732408324093241032411324123241332414324153241632417324183241932420324213242232423324243242532426324273242832429324303243132432324333243432435324363243732438324393244032441324423244332444324453244632447324483244932450324513245232453324543245532456324573245832459324603246132462324633246432465324663246732468324693247032471324723247332474324753247632477324783247932480324813248232483324843248532486324873248832489324903249132492324933249432495324963249732498324993250032501325023250332504325053250632507325083250932510325113251232513325143251532516325173251832519325203252132522325233252432525325263252732528325293253032531325323253332534325353253632537325383253932540325413254232543325443254532546325473254832549325503255132552325533255432555325563255732558325593256032561325623256332564325653256632567325683256932570325713257232573325743257532576325773257832579325803258132582325833258432585325863258732588325893259032591325923259332594325953259632597325983259932600326013260232603326043260532606326073260832609326103261132612326133261432615326163261732618326193262032621326223262332624326253262632627326283262932630326313263232633326343263532636326373263832639326403264132642326433264432645326463264732648326493265032651326523265332654326553265632657326583265932660326613266232663326643266532666326673266832669326703267132672326733267432675326763267732678326793268032681326823268332684326853268632687326883268932690326913269232693326943269532696326973269832699327003270132702327033270432705327063270732708327093271032711327123271332714327153271632717327183271932720327213272232723327243272532726327273272832729327303273132732327333273432735327363273732738327393274032741327423274332744327453274632747327483274932750327513275232753327543275532756327573275832759327603276132762327633276432765327663276732768327693277032771327723277332774327753277632777327783277932780327813278232783327843278532786327873278832789327903279132792327933279432795327963279732798327993280032801328023280332804328053280632807328083280932810328113281232813328143281532816328173281832819328203282132822328233282432825328263282732828328293283032831328323283332834328353283632837328383283932840328413284232843328443284532846328473284832849328503285132852328533285432855328563285732858328593286032861328623286332864328653286632867328683286932870328713287232873328743287532876328773287832879328803288132882328833288432885328863288732888328893289032891328923289332894328953289632897328983289932900329013290232903329043290532906329073290832909329103291132912329133291432915329163291732918329193292032921329223292332924329253292632927329283292932930329313293232933329343293532936329373293832939329403294132942329433294432945329463294732948329493295032951329523295332954329553295632957329583295932960329613296232963329643296532966329673296832969329703297132972329733297432975329763297732978329793298032981329823298332984329853298632987329883298932990329913299232993329943299532996329973299832999330003300133002330033300433005330063300733008330093301033011330123301333014330153301633017330183301933020330213302233023330243302533026330273302833029330303303133032330333303433035330363303733038330393304033041330423304333044330453304633047330483304933050330513305233053330543305533056330573305833059330603306133062330633306433065330663306733068330693307033071330723307333074330753307633077330783307933080330813308233083330843308533086330873308833089330903309133092330933309433095330963309733098330993310033101331023310333104331053310633107331083310933110331113311233113331143311533116331173311833119331203312133122331233312433125331263312733128331293313033131331323313333134331353313633137331383313933140331413314233143331443314533146331473314833149331503315133152331533315433155331563315733158331593316033161331623316333164331653316633167331683316933170331713317233173331743317533176331773317833179331803318133182331833318433185331863318733188331893319033191331923319333194331953319633197331983319933200332013320233203332043320533206332073320833209332103321133212332133321433215332163321733218332193322033221332223322333224332253322633227332283322933230332313323233233332343323533236332373323833239332403324133242332433324433245332463324733248332493325033251332523325333254332553325633257332583325933260332613326233263332643326533266332673326833269332703327133272332733327433275332763327733278332793328033281332823328333284332853328633287332883328933290332913329233293332943329533296332973329833299333003330133302333033330433305333063330733308333093331033311333123331333314333153331633317333183331933320333213332233323333243332533326333273332833329333303333133332333333333433335333363333733338333393334033341333423334333344333453334633347333483334933350333513335233353333543335533356333573335833359333603336133362333633336433365333663336733368333693337033371333723337333374333753337633377333783337933380333813338233383333843338533386333873338833389333903339133392333933339433395333963339733398333993340033401334023340333404334053340633407334083340933410334113341233413334143341533416334173341833419334203342133422334233342433425334263342733428334293343033431334323343333434334353343633437334383343933440334413344233443334443344533446334473344833449334503345133452334533345433455334563345733458334593346033461334623346333464334653346633467334683346933470334713347233473334743347533476334773347833479334803348133482334833348433485334863348733488334893349033491334923349333494334953349633497334983349933500335013350233503335043350533506335073350833509335103351133512335133351433515335163351733518335193352033521335223352333524335253352633527335283352933530335313353233533335343353533536335373353833539335403354133542335433354433545335463354733548335493355033551335523355333554335553355633557335583355933560335613356233563335643356533566335673356833569335703357133572335733357433575335763357733578335793358033581335823358333584335853358633587335883358933590335913359233593335943359533596335973359833599336003360133602336033360433605336063360733608336093361033611336123361333614336153361633617336183361933620336213362233623336243362533626336273362833629336303363133632336333363433635336363363733638336393364033641336423364333644336453364633647336483364933650336513365233653336543365533656336573365833659336603366133662336633366433665336663366733668336693367033671336723367333674336753367633677336783367933680336813368233683336843368533686336873368833689336903369133692336933369433695336963369733698336993370033701337023370333704337053370633707337083370933710337113371233713337143371533716337173371833719337203372133722337233372433725337263372733728337293373033731337323373333734337353373633737337383373933740337413374233743337443374533746337473374833749337503375133752337533375433755337563375733758337593376033761337623376333764337653376633767337683376933770337713377233773337743377533776337773377833779337803378133782337833378433785337863378733788337893379033791337923379333794337953379633797337983379933800338013380233803338043380533806338073380833809338103381133812338133381433815338163381733818338193382033821338223382333824338253382633827338283382933830338313383233833338343383533836338373383833839338403384133842338433384433845338463384733848338493385033851338523385333854338553385633857338583385933860338613386233863338643386533866338673386833869338703387133872338733387433875338763387733878338793388033881338823388333884338853388633887338883388933890338913389233893338943389533896338973389833899339003390133902339033390433905339063390733908339093391033911339123391333914339153391633917339183391933920339213392233923339243392533926339273392833929339303393133932339333393433935339363393733938339393394033941339423394333944339453394633947339483394933950339513395233953339543395533956339573395833959339603396133962339633396433965339663396733968339693397033971339723397333974339753397633977339783397933980339813398233983339843398533986339873398833989339903399133992339933399433995339963399733998339993400034001340023400334004340053400634007340083400934010340113401234013340143401534016340173401834019340203402134022340233402434025340263402734028340293403034031340323403334034340353403634037340383403934040340413404234043340443404534046340473404834049340503405134052340533405434055340563405734058340593406034061340623406334064340653406634067340683406934070340713407234073340743407534076340773407834079340803408134082340833408434085340863408734088340893409034091340923409334094340953409634097340983409934100341013410234103341043410534106341073410834109341103411134112341133411434115341163411734118341193412034121341223412334124341253412634127341283412934130341313413234133341343413534136341373413834139341403414134142341433414434145341463414734148341493415034151341523415334154341553415634157341583415934160341613416234163341643416534166341673416834169341703417134172341733417434175341763417734178341793418034181341823418334184341853418634187341883418934190341913419234193341943419534196341973419834199342003420134202342033420434205342063420734208342093421034211342123421334214342153421634217342183421934220342213422234223342243422534226342273422834229342303423134232342333423434235342363423734238342393424034241342423424334244342453424634247342483424934250342513425234253342543425534256342573425834259342603426134262342633426434265342663426734268342693427034271342723427334274342753427634277342783427934280342813428234283342843428534286342873428834289342903429134292342933429434295342963429734298342993430034301343023430334304343053430634307343083430934310343113431234313343143431534316343173431834319343203432134322343233432434325343263432734328343293433034331343323433334334343353433634337343383433934340343413434234343343443434534346343473434834349343503435134352343533435434355343563435734358343593436034361343623436334364343653436634367343683436934370343713437234373343743437534376343773437834379343803438134382343833438434385343863438734388343893439034391343923439334394343953439634397343983439934400344013440234403344043440534406344073440834409344103441134412344133441434415344163441734418344193442034421344223442334424344253442634427344283442934430344313443234433344343443534436344373443834439344403444134442344433444434445344463444734448344493445034451344523445334454344553445634457344583445934460344613446234463344643446534466344673446834469344703447134472344733447434475344763447734478344793448034481344823448334484344853448634487344883448934490344913449234493344943449534496344973449834499345003450134502345033450434505345063450734508345093451034511345123451334514345153451634517345183451934520345213452234523345243452534526345273452834529345303453134532345333453434535345363453734538345393454034541345423454334544345453454634547345483454934550345513455234553345543455534556345573455834559345603456134562345633456434565345663456734568345693457034571345723457334574345753457634577345783457934580345813458234583345843458534586345873458834589345903459134592345933459434595345963459734598345993460034601346023460334604346053460634607346083460934610346113461234613346143461534616346173461834619346203462134622346233462434625346263462734628346293463034631346323463334634346353463634637346383463934640346413464234643346443464534646346473464834649346503465134652346533465434655346563465734658346593466034661346623466334664346653466634667346683466934670346713467234673346743467534676346773467834679346803468134682346833468434685346863468734688346893469034691346923469334694346953469634697346983469934700347013470234703347043470534706347073470834709347103471134712347133471434715347163471734718347193472034721347223472334724347253472634727347283472934730347313473234733347343473534736347373473834739347403474134742347433474434745347463474734748347493475034751347523475334754347553475634757347583475934760347613476234763347643476534766347673476834769347703477134772347733477434775347763477734778347793478034781347823478334784347853478634787347883478934790347913479234793347943479534796347973479834799348003480134802348033480434805348063480734808348093481034811348123481334814348153481634817348183481934820348213482234823348243482534826348273482834829348303483134832348333483434835348363483734838348393484034841348423484334844348453484634847348483484934850348513485234853348543485534856348573485834859348603486134862348633486434865348663486734868348693487034871348723487334874348753487634877348783487934880348813488234883348843488534886348873488834889348903489134892348933489434895348963489734898348993490034901349023490334904349053490634907349083490934910349113491234913349143491534916349173491834919349203492134922349233492434925349263492734928349293493034931349323493334934349353493634937349383493934940349413494234943349443494534946349473494834949349503495134952349533495434955349563495734958349593496034961349623496334964349653496634967349683496934970349713497234973349743497534976349773497834979349803498134982349833498434985349863498734988349893499034991349923499334994349953499634997349983499935000350013500235003350043500535006350073500835009350103501135012350133501435015350163501735018350193502035021350223502335024350253502635027350283502935030350313503235033350343503535036350373503835039350403504135042350433504435045350463504735048350493505035051350523505335054350553505635057350583505935060350613506235063350643506535066350673506835069350703507135072350733507435075350763507735078350793508035081350823508335084350853508635087350883508935090350913509235093350943509535096350973509835099351003510135102351033510435105351063510735108351093511035111351123511335114351153511635117351183511935120351213512235123351243512535126351273512835129351303513135132351333513435135351363513735138351393514035141351423514335144351453514635147351483514935150351513515235153351543515535156351573515835159351603516135162351633516435165351663516735168351693517035171351723517335174351753517635177351783517935180351813518235183351843518535186351873518835189351903519135192351933519435195351963519735198351993520035201352023520335204352053520635207352083520935210352113521235213352143521535216352173521835219352203522135222352233522435225352263522735228352293523035231352323523335234352353523635237352383523935240352413524235243352443524535246352473524835249352503525135252352533525435255352563525735258352593526035261352623526335264352653526635267352683526935270352713527235273352743527535276352773527835279352803528135282352833528435285352863528735288352893529035291352923529335294352953529635297352983529935300353013530235303353043530535306353073530835309353103531135312353133531435315353163531735318353193532035321353223532335324353253532635327353283532935330353313533235333353343533535336353373533835339353403534135342353433534435345353463534735348353493535035351353523535335354353553535635357353583535935360353613536235363353643536535366353673536835369353703537135372353733537435375353763537735378353793538035381353823538335384353853538635387353883538935390353913539235393353943539535396353973539835399354003540135402354033540435405354063540735408354093541035411354123541335414354153541635417354183541935420354213542235423354243542535426354273542835429354303543135432354333543435435354363543735438354393544035441354423544335444354453544635447354483544935450354513545235453354543545535456354573545835459354603546135462354633546435465354663546735468354693547035471354723547335474354753547635477354783547935480354813548235483354843548535486354873548835489354903549135492354933549435495354963549735498354993550035501355023550335504355053550635507355083550935510355113551235513355143551535516355173551835519355203552135522355233552435525355263552735528355293553035531355323553335534355353553635537355383553935540355413554235543355443554535546355473554835549355503555135552355533555435555355563555735558355593556035561355623556335564355653556635567355683556935570355713557235573355743557535576355773557835579355803558135582355833558435585355863558735588355893559035591355923559335594355953559635597355983559935600356013560235603356043560535606356073560835609356103561135612356133561435615356163561735618356193562035621356223562335624356253562635627356283562935630356313563235633356343563535636356373563835639356403564135642356433564435645356463564735648356493565035651356523565335654356553565635657356583565935660356613566235663356643566535666356673566835669356703567135672356733567435675356763567735678356793568035681356823568335684356853568635687356883568935690356913569235693356943569535696356973569835699357003570135702357033570435705357063570735708357093571035711357123571335714357153571635717357183571935720357213572235723357243572535726357273572835729357303573135732357333573435735357363573735738357393574035741357423574335744357453574635747357483574935750357513575235753357543575535756357573575835759357603576135762357633576435765357663576735768357693577035771357723577335774357753577635777357783577935780357813578235783357843578535786357873578835789357903579135792357933579435795357963579735798357993580035801358023580335804358053580635807358083580935810358113581235813358143581535816358173581835819358203582135822358233582435825358263582735828358293583035831358323583335834358353583635837358383583935840358413584235843358443584535846358473584835849358503585135852358533585435855358563585735858358593586035861358623586335864358653586635867358683586935870358713587235873358743587535876358773587835879358803588135882358833588435885358863588735888358893589035891358923589335894358953589635897358983589935900359013590235903359043590535906359073590835909359103591135912359133591435915359163591735918359193592035921359223592335924359253592635927359283592935930359313593235933359343593535936359373593835939359403594135942359433594435945359463594735948359493595035951359523595335954359553595635957359583595935960359613596235963359643596535966359673596835969359703597135972359733597435975359763597735978359793598035981359823598335984359853598635987359883598935990359913599235993359943599535996359973599835999360003600136002360033600436005360063600736008360093601036011360123601336014360153601636017360183601936020360213602236023360243602536026360273602836029360303603136032360333603436035360363603736038360393604036041360423604336044360453604636047360483604936050360513605236053360543605536056360573605836059360603606136062360633606436065360663606736068360693607036071360723607336074360753607636077360783607936080360813608236083360843608536086360873608836089360903609136092360933609436095360963609736098360993610036101361023610336104361053610636107361083610936110361113611236113361143611536116361173611836119361203612136122361233612436125361263612736128361293613036131361323613336134361353613636137361383613936140361413614236143361443614536146361473614836149361503615136152361533615436155361563615736158361593616036161361623616336164361653616636167361683616936170361713617236173361743617536176361773617836179361803618136182361833618436185361863618736188361893619036191361923619336194361953619636197361983619936200362013620236203362043620536206362073620836209362103621136212362133621436215362163621736218362193622036221362223622336224362253622636227362283622936230362313623236233362343623536236362373623836239362403624136242362433624436245362463624736248362493625036251362523625336254362553625636257362583625936260362613626236263362643626536266362673626836269362703627136272362733627436275362763627736278362793628036281362823628336284362853628636287362883628936290362913629236293362943629536296362973629836299363003630136302363033630436305363063630736308363093631036311363123631336314363153631636317363183631936320363213632236323363243632536326363273632836329363303633136332363333633436335363363633736338363393634036341363423634336344363453634636347363483634936350363513635236353363543635536356363573635836359363603636136362363633636436365363663636736368363693637036371363723637336374363753637636377363783637936380363813638236383363843638536386363873638836389363903639136392363933639436395363963639736398363993640036401364023640336404364053640636407364083640936410364113641236413364143641536416364173641836419364203642136422364233642436425364263642736428364293643036431364323643336434364353643636437364383643936440364413644236443364443644536446364473644836449364503645136452364533645436455364563645736458364593646036461364623646336464364653646636467364683646936470364713647236473364743647536476364773647836479364803648136482364833648436485364863648736488364893649036491364923649336494364953649636497364983649936500365013650236503365043650536506365073650836509365103651136512365133651436515365163651736518365193652036521365223652336524365253652636527365283652936530365313653236533365343653536536365373653836539365403654136542365433654436545365463654736548365493655036551365523655336554365553655636557365583655936560365613656236563365643656536566365673656836569365703657136572365733657436575365763657736578365793658036581365823658336584365853658636587365883658936590365913659236593365943659536596365973659836599366003660136602366033660436605366063660736608366093661036611366123661336614366153661636617366183661936620366213662236623366243662536626366273662836629366303663136632366333663436635366363663736638366393664036641366423664336644366453664636647366483664936650366513665236653366543665536656366573665836659366603666136662366633666436665366663666736668366693667036671366723667336674366753667636677366783667936680366813668236683366843668536686366873668836689366903669136692366933669436695366963669736698366993670036701367023670336704367053670636707367083670936710367113671236713367143671536716367173671836719367203672136722367233672436725367263672736728367293673036731367323673336734367353673636737367383673936740367413674236743367443674536746367473674836749367503675136752367533675436755367563675736758367593676036761367623676336764367653676636767367683676936770367713677236773367743677536776367773677836779367803678136782367833678436785367863678736788367893679036791367923679336794367953679636797367983679936800368013680236803368043680536806368073680836809368103681136812368133681436815368163681736818368193682036821368223682336824368253682636827368283682936830368313683236833368343683536836368373683836839368403684136842368433684436845368463684736848368493685036851368523685336854368553685636857368583685936860368613686236863368643686536866368673686836869368703687136872368733687436875368763687736878368793688036881368823688336884368853688636887368883688936890368913689236893368943689536896368973689836899369003690136902369033690436905369063690736908369093691036911369123691336914369153691636917369183691936920369213692236923369243692536926369273692836929369303693136932369333693436935369363693736938369393694036941369423694336944369453694636947369483694936950369513695236953369543695536956369573695836959369603696136962369633696436965369663696736968369693697036971369723697336974369753697636977369783697936980369813698236983369843698536986369873698836989369903699136992369933699436995369963699736998369993700037001370023700337004370053700637007370083700937010370113701237013370143701537016370173701837019370203702137022370233702437025370263702737028370293703037031370323703337034370353703637037370383703937040370413704237043370443704537046370473704837049370503705137052370533705437055370563705737058370593706037061370623706337064370653706637067370683706937070370713707237073370743707537076370773707837079370803708137082370833708437085370863708737088370893709037091370923709337094370953709637097370983709937100371013710237103371043710537106371073710837109371103711137112371133711437115371163711737118371193712037121371223712337124371253712637127371283712937130371313713237133371343713537136371373713837139371403714137142371433714437145371463714737148371493715037151371523715337154371553715637157371583715937160371613716237163371643716537166371673716837169371703717137172371733717437175371763717737178371793718037181371823718337184371853718637187371883718937190371913719237193371943719537196371973719837199372003720137202372033720437205372063720737208372093721037211372123721337214372153721637217372183721937220372213722237223372243722537226372273722837229372303723137232372333723437235372363723737238372393724037241372423724337244372453724637247372483724937250372513725237253372543725537256372573725837259372603726137262372633726437265372663726737268372693727037271372723727337274372753727637277372783727937280372813728237283372843728537286372873728837289372903729137292372933729437295372963729737298372993730037301373023730337304373053730637307373083730937310373113731237313373143731537316373173731837319373203732137322373233732437325373263732737328373293733037331373323733337334373353733637337373383733937340373413734237343373443734537346373473734837349373503735137352373533735437355373563735737358373593736037361373623736337364373653736637367373683736937370373713737237373373743737537376373773737837379373803738137382373833738437385373863738737388373893739037391373923739337394373953739637397373983739937400374013740237403374043740537406374073740837409374103741137412374133741437415374163741737418374193742037421374223742337424374253742637427374283742937430374313743237433374343743537436374373743837439374403744137442374433744437445374463744737448374493745037451374523745337454374553745637457374583745937460374613746237463374643746537466374673746837469374703747137472374733747437475374763747737478374793748037481374823748337484374853748637487374883748937490374913749237493374943749537496374973749837499375003750137502375033750437505375063750737508375093751037511375123751337514375153751637517375183751937520375213752237523375243752537526375273752837529375303753137532375333753437535375363753737538375393754037541375423754337544375453754637547375483754937550375513755237553375543755537556375573755837559375603756137562375633756437565375663756737568375693757037571375723757337574375753757637577375783757937580375813758237583375843758537586375873758837589375903759137592375933759437595375963759737598375993760037601376023760337604376053760637607376083760937610376113761237613376143761537616376173761837619376203762137622376233762437625376263762737628376293763037631376323763337634376353763637637376383763937640376413764237643376443764537646376473764837649376503765137652376533765437655376563765737658376593766037661376623766337664376653766637667376683766937670376713767237673376743767537676376773767837679376803768137682376833768437685376863768737688376893769037691376923769337694376953769637697376983769937700377013770237703377043770537706377073770837709377103771137712377133771437715377163771737718377193772037721377223772337724377253772637727377283772937730377313773237733377343773537736377373773837739377403774137742377433774437745377463774737748377493775037751377523775337754377553775637757377583775937760377613776237763377643776537766377673776837769377703777137772377733777437775377763777737778377793778037781377823778337784377853778637787377883778937790377913779237793377943779537796377973779837799378003780137802378033780437805378063780737808378093781037811378123781337814378153781637817378183781937820378213782237823378243782537826378273782837829378303783137832378333783437835378363783737838378393784037841378423784337844378453784637847378483784937850378513785237853378543785537856378573785837859378603786137862378633786437865378663786737868378693787037871378723787337874378753787637877378783787937880378813788237883378843788537886378873788837889378903789137892378933789437895378963789737898378993790037901379023790337904379053790637907379083790937910379113791237913379143791537916379173791837919379203792137922379233792437925379263792737928379293793037931379323793337934379353793637937379383793937940379413794237943379443794537946379473794837949379503795137952379533795437955379563795737958379593796037961379623796337964379653796637967379683796937970379713797237973379743797537976379773797837979379803798137982379833798437985379863798737988379893799037991379923799337994379953799637997379983799938000380013800238003380043800538006380073800838009380103801138012380133801438015380163801738018380193802038021380223802338024380253802638027380283802938030380313803238033380343803538036380373803838039380403804138042380433804438045380463804738048380493805038051380523805338054380553805638057380583805938060380613806238063380643806538066380673806838069380703807138072380733807438075380763807738078380793808038081380823808338084380853808638087380883808938090380913809238093380943809538096380973809838099381003810138102381033810438105381063810738108381093811038111381123811338114381153811638117381183811938120381213812238123381243812538126381273812838129381303813138132381333813438135381363813738138381393814038141381423814338144381453814638147381483814938150381513815238153381543815538156381573815838159381603816138162381633816438165381663816738168381693817038171381723817338174381753817638177381783817938180381813818238183381843818538186381873818838189381903819138192381933819438195381963819738198381993820038201382023820338204382053820638207382083820938210382113821238213382143821538216382173821838219382203822138222382233822438225382263822738228382293823038231382323823338234382353823638237382383823938240382413824238243382443824538246382473824838249382503825138252382533825438255382563825738258382593826038261382623826338264382653826638267382683826938270382713827238273382743827538276382773827838279382803828138282382833828438285382863828738288382893829038291382923829338294382953829638297382983829938300383013830238303383043830538306383073830838309383103831138312383133831438315383163831738318383193832038321383223832338324383253832638327383283832938330383313833238333383343833538336383373833838339383403834138342383433834438345383463834738348383493835038351383523835338354383553835638357383583835938360383613836238363383643836538366383673836838369383703837138372383733837438375383763837738378383793838038381383823838338384383853838638387383883838938390383913839238393383943839538396383973839838399384003840138402384033840438405384063840738408384093841038411384123841338414384153841638417384183841938420384213842238423384243842538426384273842838429384303843138432384333843438435384363843738438384393844038441384423844338444384453844638447384483844938450384513845238453384543845538456384573845838459384603846138462384633846438465384663846738468384693847038471384723847338474384753847638477384783847938480384813848238483384843848538486384873848838489384903849138492384933849438495384963849738498384993850038501385023850338504385053850638507385083850938510385113851238513385143851538516385173851838519385203852138522385233852438525385263852738528385293853038531385323853338534385353853638537385383853938540385413854238543385443854538546385473854838549385503855138552385533855438555385563855738558385593856038561385623856338564385653856638567385683856938570385713857238573385743857538576385773857838579385803858138582385833858438585385863858738588385893859038591385923859338594385953859638597385983859938600386013860238603386043860538606386073860838609386103861138612386133861438615386163861738618386193862038621386223862338624386253862638627386283862938630386313863238633386343863538636386373863838639386403864138642386433864438645386463864738648386493865038651386523865338654386553865638657386583865938660386613866238663386643866538666386673866838669386703867138672386733867438675386763867738678386793868038681386823868338684386853868638687386883868938690386913869238693386943869538696386973869838699387003870138702387033870438705387063870738708387093871038711387123871338714387153871638717387183871938720387213872238723387243872538726387273872838729387303873138732387333873438735387363873738738387393874038741387423874338744387453874638747387483874938750387513875238753387543875538756387573875838759387603876138762387633876438765387663876738768387693877038771387723877338774387753877638777387783877938780387813878238783387843878538786387873878838789387903879138792387933879438795387963879738798387993880038801388023880338804388053880638807388083880938810388113881238813388143881538816388173881838819388203882138822388233882438825388263882738828388293883038831388323883338834388353883638837388383883938840388413884238843388443884538846388473884838849388503885138852388533885438855388563885738858388593886038861388623886338864388653886638867388683886938870388713887238873388743887538876388773887838879388803888138882388833888438885388863888738888388893889038891388923889338894388953889638897388983889938900389013890238903389043890538906389073890838909389103891138912389133891438915389163891738918389193892038921389223892338924389253892638927389283892938930389313893238933389343893538936389373893838939389403894138942389433894438945389463894738948389493895038951389523895338954389553895638957389583895938960389613896238963389643896538966389673896838969389703897138972389733897438975389763897738978389793898038981389823898338984389853898638987389883898938990389913899238993389943899538996389973899838999390003900139002390033900439005390063900739008390093901039011390123901339014390153901639017390183901939020390213902239023390243902539026390273902839029390303903139032390333903439035390363903739038390393904039041390423904339044390453904639047390483904939050390513905239053390543905539056390573905839059390603906139062390633906439065390663906739068390693907039071390723907339074390753907639077390783907939080390813908239083390843908539086390873908839089390903909139092390933909439095390963909739098390993910039101391023910339104391053910639107391083910939110391113911239113391143911539116391173911839119391203912139122391233912439125391263912739128391293913039131391323913339134391353913639137391383913939140391413914239143391443914539146391473914839149391503915139152391533915439155391563915739158391593916039161391623916339164391653916639167391683916939170391713917239173391743917539176391773917839179391803918139182391833918439185391863918739188391893919039191391923919339194391953919639197391983919939200392013920239203392043920539206392073920839209392103921139212392133921439215392163921739218392193922039221392223922339224392253922639227392283922939230392313923239233392343923539236392373923839239392403924139242392433924439245392463924739248392493925039251392523925339254392553925639257392583925939260392613926239263392643926539266392673926839269392703927139272392733927439275392763927739278392793928039281392823928339284392853928639287392883928939290392913929239293392943929539296392973929839299393003930139302393033930439305393063930739308393093931039311393123931339314393153931639317393183931939320393213932239323393243932539326393273932839329393303933139332393333933439335393363933739338393393934039341393423934339344393453934639347393483934939350393513935239353393543935539356393573935839359393603936139362393633936439365393663936739368393693937039371393723937339374393753937639377393783937939380393813938239383393843938539386393873938839389393903939139392393933939439395393963939739398393993940039401394023940339404394053940639407394083940939410394113941239413394143941539416394173941839419394203942139422394233942439425394263942739428394293943039431394323943339434394353943639437394383943939440394413944239443394443944539446394473944839449394503945139452394533945439455394563945739458394593946039461394623946339464394653946639467394683946939470394713947239473394743947539476394773947839479394803948139482394833948439485394863948739488394893949039491394923949339494394953949639497394983949939500395013950239503395043950539506395073950839509395103951139512395133951439515395163951739518395193952039521395223952339524395253952639527395283952939530395313953239533395343953539536395373953839539395403954139542395433954439545395463954739548395493955039551395523955339554395553955639557395583955939560395613956239563395643956539566395673956839569395703957139572395733957439575395763957739578395793958039581395823958339584395853958639587395883958939590395913959239593395943959539596395973959839599396003960139602396033960439605396063960739608396093961039611396123961339614396153961639617396183961939620396213962239623396243962539626396273962839629396303963139632396333963439635396363963739638396393964039641396423964339644396453964639647396483964939650396513965239653396543965539656396573965839659396603966139662396633966439665396663966739668396693967039671396723967339674396753967639677396783967939680396813968239683396843968539686396873968839689396903969139692396933969439695396963969739698396993970039701397023970339704397053970639707397083970939710397113971239713397143971539716397173971839719397203972139722397233972439725397263972739728397293973039731397323973339734397353973639737397383973939740397413974239743397443974539746397473974839749397503975139752397533975439755397563975739758397593976039761397623976339764397653976639767397683976939770397713977239773397743977539776397773977839779397803978139782397833978439785397863978739788397893979039791397923979339794397953979639797397983979939800398013980239803398043980539806398073980839809398103981139812398133981439815398163981739818398193982039821398223982339824398253982639827398283982939830398313983239833398343983539836398373983839839398403984139842398433984439845398463984739848398493985039851398523985339854398553985639857398583985939860398613986239863398643986539866398673986839869398703987139872398733987439875398763987739878398793988039881398823988339884398853988639887398883988939890398913989239893398943989539896398973989839899399003990139902399033990439905399063990739908399093991039911399123991339914399153991639917399183991939920399213992239923399243992539926399273992839929399303993139932399333993439935399363993739938399393994039941399423994339944399453994639947399483994939950399513995239953399543995539956399573995839959399603996139962399633996439965399663996739968399693997039971399723997339974399753997639977399783997939980399813998239983399843998539986399873998839989399903999139992399933999439995399963999739998399994000040001400024000340004400054000640007400084000940010400114001240013400144001540016400174001840019400204002140022400234002440025400264002740028400294003040031400324003340034400354003640037400384003940040400414004240043400444004540046400474004840049400504005140052400534005440055400564005740058400594006040061400624006340064400654006640067400684006940070400714007240073400744007540076400774007840079400804008140082400834008440085400864008740088400894009040091400924009340094400954009640097400984009940100401014010240103401044010540106401074010840109401104011140112401134011440115401164011740118401194012040121401224012340124401254012640127401284012940130401314013240133401344013540136401374013840139401404014140142401434014440145401464014740148401494015040151401524015340154401554015640157401584015940160401614016240163401644016540166401674016840169401704017140172401734017440175401764017740178401794018040181401824018340184401854018640187401884018940190401914019240193401944019540196401974019840199402004020140202402034020440205402064020740208402094021040211402124021340214402154021640217402184021940220402214022240223402244022540226402274022840229402304023140232402334023440235402364023740238402394024040241402424024340244402454024640247402484024940250402514025240253402544025540256402574025840259402604026140262402634026440265402664026740268402694027040271402724027340274402754027640277402784027940280402814028240283402844028540286402874028840289402904029140292402934029440295402964029740298402994030040301403024030340304403054030640307403084030940310403114031240313403144031540316403174031840319403204032140322403234032440325403264032740328403294033040331403324033340334403354033640337403384033940340403414034240343403444034540346403474034840349403504035140352403534035440355403564035740358403594036040361403624036340364403654036640367403684036940370403714037240373403744037540376403774037840379403804038140382403834038440385403864038740388403894039040391403924039340394403954039640397403984039940400404014040240403404044040540406404074040840409404104041140412404134041440415404164041740418404194042040421404224042340424404254042640427404284042940430404314043240433404344043540436404374043840439404404044140442404434044440445404464044740448404494045040451404524045340454404554045640457404584045940460404614046240463404644046540466404674046840469404704047140472404734047440475404764047740478404794048040481404824048340484404854048640487404884048940490404914049240493404944049540496404974049840499405004050140502405034050440505405064050740508405094051040511405124051340514405154051640517405184051940520405214052240523405244052540526405274052840529405304053140532405334053440535405364053740538405394054040541405424054340544405454054640547405484054940550405514055240553405544055540556405574055840559405604056140562405634056440565405664056740568405694057040571405724057340574405754057640577405784057940580405814058240583405844058540586405874058840589405904059140592405934059440595405964059740598405994060040601406024060340604406054060640607406084060940610406114061240613406144061540616406174061840619406204062140622406234062440625406264062740628406294063040631406324063340634406354063640637406384063940640406414064240643406444064540646406474064840649406504065140652406534065440655406564065740658406594066040661 |
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, {
- /******/ configurable: false,
- /******/ enumerable: true,
- /******/ get: getter
- /******/ });
- /******/ }
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "/";
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 2);
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ __webpack_exports__["a"] = ({
- data: function data() {
- return {
- people: {},
- posts: {},
- trending: {}
- };
- },
- mounted: function mounted() {
- this.fetchData();
- },
- methods: {
- followUser: function followUser(id, event) {
- axios.post('/i/follow', {
- item: id
- }).then(function (res) {
- var el = $(event.target);
- el.addClass('btn-outline-secondary').removeClass('btn-primary');
- el.text('Unfollow');
- }).catch(function (err) {
- swal('Whoops! Something went wrong...', 'An error occurred, please try again later.', 'error');
- });
- },
- fetchData: function fetchData() {
- var _this = this;
- // axios.get('/api/v2/discover/people')
- // .then((res) => {
- // let data = res.data;
- // this.people = data.people;
- // if(this.people.length > 1) {
- // $('.section-people .loader').hide();
- // $('.section-people .row.d-none').removeClass('d-none');
- // }
- // });
- axios.get('/api/v2/discover/posts').then(function (res) {
- var data = res.data;
- _this.posts = data.posts;
- if (_this.posts.length > 1) {
- $('.section-explore .loader').hide();
- $('.section-explore .row.d-none').removeClass('d-none');
- }
- });
- }
- }
- });
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ __webpack_exports__["a"] = ({
- data: function data() {
- return {
- results: {}
- };
- },
- mounted: function mounted() {
- this.fetchData();
- },
- methods: {
- fetchData: function fetchData() {
- var _this = this;
- axios.get('/api/local/i/follow-suggestions').then(function (response) {
- _this.results = response.data;
- });
- }
- }
- });
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: ['post-id', 'post-username', 'user'],
- data: function data() {
- return {
- results: null,
- pagination: {},
- min_id: 0,
- max_id: 0,
- reply_to_profile_id: 0
- };
- },
- mounted: function mounted() {
- this.fetchData();
- },
- updated: function updated() {
- pixelfed.readmore();
- },
- methods: {
- embed: function embed(e) {
- //pixelfed.embed.build(e);
- },
- deleteComment: function deleteComment(id, i) {
- var _this = this;
- axios.post('/i/delete', {
- type: 'comment',
- item: id
- }).then(function (res) {
- _this.results.splice(i, 1);
- }).catch(function (err) {
- swal('Something went wrong!', 'Please try again later', 'error');
- });
- },
- l: function l(e) {
- var len = e.length;
- if (len < 10) {
- return e;
- }
- return e.substr(0, 10) + '...';
- },
- reply: function reply(e) {
- this.reply_to_profile_id = e.account.id;
- $('.comment-form input[name=comment]').val('@' + e.account.username + ' ');
- $('.comment-form input[name=comment]').focus();
- },
- fetchData: function fetchData() {
- var _this2 = this;
- var url = '/api/v2/comments/' + this.postUsername + '/status/' + this.postId;
- axios.get(url).then(function (response) {
- var self = _this2;
- _this2.results = _.reverse(response.data.data);
- _this2.pagination = response.data.meta.pagination;
- if (_this2.results.length > 0) {
- $('.load-more-link').removeClass('d-none');
- }
- $('.postCommentsLoader').addClass('d-none');
- $('.postCommentsContainer').removeClass('d-none');
- }).catch(function (error) {
- if (!error.response) {
- $('.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.');
- } else {
- switch (error.response.status) {
- case 401:
- $('.postCommentsLoader .lds-ring').attr('style', 'width:100%').addClass('pt-4 font-weight-bold text-muted').text('Please login to view.');
- break;
- default:
- $('.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.');
- break;
- }
- }
- });
- },
- loadMore: function loadMore(e) {
- var _this3 = this;
- e.preventDefault();
- if (this.pagination.total_pages == 1 || this.pagination.current_page == this.pagination.total_pages) {
- $('.load-more-link').addClass('d-none');
- return;
- }
- $('.postCommentsLoader').removeClass('d-none');
- var next = this.pagination.links.next;
- axios.get(next).then(function (response) {
- var self = _this3;
- var res = response.data.data;
- $('.postCommentsLoader').addClass('d-none');
- for (var i = 0; i < res.length; i++) {
- _this3.results.unshift(res[i]);
- }
- _this3.pagination = response.data.meta.pagination;
- });
- }
- }
- });
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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); } }
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- pixelfed.postComponent = {};
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: ['status-id', 'status-username', 'status-template', 'status-url', 'status-profile-url', 'status-avatar'],
- data: function data() {
- return {
- status: {},
- media: {},
- user: {},
- reactions: {
- liked: false,
- shared: false
- },
- likes: {},
- likesPage: 1,
- shares: {},
- sharesPage: 1
- };
- },
- mounted: function mounted() {
- this.fetchData();
- this.authCheck();
- var token = $('meta[name="csrf-token"]').attr('content');
- $('input[name="_token"]').each(function (k, v) {
- var el = $(v);
- el.val(token);
- });
- },
- updated: function updated() {
- $('.carousel').carousel();
- if (this.reactions) {
- if (this.reactions.bookmarked == true) {
- $('.far.fa-bookmark').removeClass('far').addClass('fas text-warning');
- }
- if (this.reactions.shared == true) {
- $('.far.fa-share-square').addClass('text-primary');
- }
- if (this.reactions.liked == true) {
- $('.far.fa-heart ').removeClass('far text-dark').addClass('fas text-danger');
- }
- }
- if (this.status) {
- var title = this.status.account.username + ' posted a photo: ' + this.status.favourites_count + ' likes';
- $('head title').text(title);
- }
- },
- methods: {
- authCheck: function authCheck() {
- var authed = $('body').hasClass('loggedIn');
- if (authed == true) {
- $('.comment-form-guest').addClass('d-none');
- $('.comment-form').removeClass('d-none');
- }
- },
- showMuteBlock: function showMuteBlock() {
- var sid = this.status.account.id;
- var uid = this.user.id;
- if (sid == uid) {
- $('.post-actions .menu-author').removeClass('d-none');
- } else {
- $('.post-actions .menu-user').removeClass('d-none');
- }
- },
- reportUrl: function reportUrl() {
- return '/i/report?type=post&id=' + this.status.id;
- },
- editUrl: function editUrl() {
- return this.status.url + '/edit';
- },
- timestampFormat: function timestampFormat() {
- var ts = new Date(this.status.created_at);
- return ts.toDateString() + ' ' + ts.toLocaleTimeString();
- },
- fetchData: function fetchData() {
- var _this = this;
- var loader = this.$loading.show({
- 'opacity': 0,
- 'background-color': '#f5f8fa'
- });
- axios.get('/api/v2/profile/' + this.statusUsername + '/status/' + this.statusId).then(function (response) {
- var self = _this;
- self.status = response.data.status;
- self.user = response.data.user;
- self.media = self.status.media_attachments;
- self.reactions = response.data.reactions;
- self.likes = response.data.likes;
- self.shares = response.data.shares;
- self.likesPage = 2;
- self.sharesPage = 2;
- //this.buildPresenter();
- _this.showMuteBlock();
- loader.hide();
- pixelfed.readmore();
- $('.postComponent').removeClass('d-none');
- $('.postPresenterLoader').addClass('d-none');
- $('.postPresenterContainer').removeClass('d-none');
- }).catch(function (error) {
- if (!error.response) {
- $('.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.');
- } else {
- switch (error.response.status) {
- case 401:
- $('.postPresenterLoader .lds-ring').attr('style', 'width:100%').addClass('pt-4 font-weight-bold text-muted').text('Please login to view.');
- break;
- default:
- $('.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.');
- break;
- }
- }
- });
- },
- commentFocus: function commentFocus() {
- $('.comment-form input[name="comment"]').focus();
- },
- likesModal: function likesModal() {
- if (this.status.favourites_count == 0 || $('body').hasClass('loggedIn') == false) {
- return;
- }
- this.$refs.likesModal.show();
- },
- sharesModal: function sharesModal() {
- if (this.status.reblogs_count == 0 || $('body').hasClass('loggedIn') == false) {
- return;
- }
- this.$refs.sharesModal.show();
- },
- infiniteLikesHandler: function infiniteLikesHandler($state) {
- var _this2 = this;
- var api = '/api/v2/likes/profile/' + this.statusUsername + '/status/' + this.statusId;
- axios.get(api, {
- params: {
- page: this.likesPage
- }
- }).then(function (_ref) {
- var data = _ref.data;
- if (data.data.length) {
- var _likes;
- _this2.likesPage += 1;
- (_likes = _this2.likes).push.apply(_likes, _toConsumableArray(data.data));
- $state.loaded();
- } else {
- $state.complete();
- }
- });
- },
- infiniteSharesHandler: function infiniteSharesHandler($state) {
- var _this3 = this;
- axios.get('/api/v2/shares/profile/' + this.statusUsername + '/status/' + this.statusId, {
- params: {
- page: this.sharesPage
- }
- }).then(function (_ref2) {
- var data = _ref2.data;
- if (data.data.length) {
- var _shares;
- _this3.sharesPage += 1;
- (_shares = _this3.shares).push.apply(_shares, _toConsumableArray(data.data));
- $state.loaded();
- } else {
- $state.complete();
- }
- });
- },
- likeStatus: function likeStatus(event) {
- var _this4 = this;
- if ($('body').hasClass('loggedIn') == false) {
- return;
- }
- axios.post('/i/like', {
- item: this.status.id
- }).then(function (res) {
- _this4.status.favourites_count = res.data.count;
- if (_this4.reactions.liked == true) {
- _this4.reactions.liked = false;
- } else {
- _this4.reactions.liked = true;
- }
- }).catch(function (err) {
- swal('Error', 'Something went wrong, please try again later.', 'error');
- });
- },
- shareStatus: function shareStatus() {
- var _this5 = this;
- if ($('body').hasClass('loggedIn') == false) {
- return;
- }
- axios.post('/i/share', {
- item: this.status.id
- }).then(function (res) {
- _this5.status.reblogs_count = res.data.count;
- if (_this5.reactions.shared == true) {
- _this5.reactions.shared = false;
- } else {
- _this5.reactions.shared = true;
- }
- }).catch(function (err) {
- swal('Error', 'Something went wrong, please try again later.', 'error');
- });
- },
- bookmarkStatus: function bookmarkStatus() {
- var _this6 = this;
- if ($('body').hasClass('loggedIn') == false) {
- return;
- }
- axios.post('/i/bookmark', {
- item: this.status.id
- }).then(function (res) {
- if (_this6.reactions.bookmarked == true) {
- _this6.reactions.bookmarked = false;
- } else {
- _this6.reactions.bookmarked = true;
- }
- }).catch(function (err) {
- swal('Error', 'Something went wrong, please try again later.', 'error');
- });
- },
- muteProfile: function muteProfile() {
- var _this7 = this;
- if ($('body').hasClass('loggedIn') == false) {
- return;
- }
- axios.post('/i/mute', {
- type: 'user',
- item: this.status.account.id
- }).then(function (res) {
- swal('Success', 'You have successfully muted ' + _this7.status.account.acct, 'success');
- }).catch(function (err) {
- swal('Error', 'Something went wrong. Please try again later.', 'error');
- });
- },
- blockProfile: function blockProfile() {
- var _this8 = this;
- if ($('body').hasClass('loggedIn') == false) {
- return;
- }
- axios.post('/i/block', {
- type: 'user',
- item: this.status.account.id
- }).then(function (res) {
- swal('Success', 'You have successfully blocked ' + _this8.status.account.acct, 'success');
- }).catch(function (err) {
- swal('Error', 'Something went wrong. Please try again later.', 'error');
- });
- },
- deletePost: function deletePost() {
- var result = confirm('Are you sure you want to delete this post?');
- if (result) {
- if ($('body').hasClass('loggedIn') == false) {
- return;
- }
- axios.post('/i/delete', {
- type: 'status',
- item: this.status.id
- }).then(function (res) {
- swal('Success', 'You have successfully deleted this post', 'success');
- }).catch(function (err) {
- swal('Error', 'Something went wrong. Please try again later.', 'error');
- });
- }
- }
- }
- });
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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); } }
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ __webpack_exports__["a"] = ({
- data: function data() {
- return {
- page: 2,
- feed: [],
- profile: {},
- scope: window.location.pathname,
- min_id: 0,
- max_id: 0,
- notifications: {},
- stories: {},
- suggestions: {},
- loading: true
- };
- },
- beforeMount: function beforeMount() {
- this.fetchTimelineApi();
- this.fetchProfile();
- },
- mounted: function mounted() {},
- updated: function updated() {},
- methods: {
- fetchProfile: function fetchProfile() {
- var _this = this;
- axios.get('/api/v1/accounts/verify_credentials').then(function (res) {
- _this.profile = res.data;
- $('.profile-card .loader').addClass('d-none');
- $('.profile-card .contents').removeClass('d-none');
- $('.profile-card .card-footer').removeClass('d-none');
- _this.fetchNotifications();
- }).catch(function (err) {
- swal('Oops, something went wrong', 'Please reload the page.', 'error');
- });
- },
- fetchTimelineApi: function fetchTimelineApi() {
- var _this2 = this;
- var homeTimeline = '/api/v1/timelines/home?page=1';
- var localTimeline = '/api/v1/timelines/public?page=1';
- var apiUrl = this.scope == '/' ? homeTimeline : localTimeline;
- axios.get(apiUrl).then(function (res) {
- var _feed;
- $('.timeline .loader').addClass('d-none');
- var data = res.data;
- (_feed = _this2.feed).push.apply(_feed, _toConsumableArray(data));
- var ids = data.map(function (status) {
- return status.id;
- });
- _this2.min_id = Math.min.apply(Math, _toConsumableArray(ids));
- if (_this2.page == 1) {
- _this2.max_id = Math.max.apply(Math, _toConsumableArray(ids));
- }
- _this2.loading = false;
- }).catch(function (err) {});
- },
- infiniteTimeline: function infiniteTimeline($state) {
- var _this3 = this;
- var homeTimeline = '/api/v1/timelines/home';
- var localTimeline = '/api/v1/timelines/public';
- var apiUrl = this.scope == '/' ? homeTimeline : localTimeline;
- axios.get(apiUrl, {
- params: {
- page: this.page
- }
- }).then(function (res) {
- if (res.data.length && _this3.loading == false) {
- var _feed2;
- var data = res.data;
- (_feed2 = _this3.feed).push.apply(_feed2, _toConsumableArray(data));
- var ids = data.map(function (status) {
- return status.id;
- });
- _this3.min_id = Math.min.apply(Math, _toConsumableArray(ids));
- if (_this3.page == 1) {
- _this3.max_id = Math.max.apply(Math, _toConsumableArray(ids));
- }
- _this3.page += 1;
- $state.loaded();
- _this3.loading = false;
- } else {
- $state.complete();
- }
- });
- },
- fetchNotifications: function fetchNotifications() {
- var _this4 = this;
- axios.get('/api/v1/notifications').then(function (res) {
- _this4.notifications = res.data;
- $('.notification-card .loader').addClass('d-none');
- $('.notification-card .contents').removeClass('d-none');
- });
- },
- reportUrl: function reportUrl(status) {
- var type = status.in_reply_to ? 'comment' : 'post';
- var id = status.id;
- return '/i/report?type=' + type + '&id=' + id;
- },
- commentFocus: function commentFocus(status, $event) {
- var el = event.target;
- var card = el.parentElement.parentElement.parentElement;
- var comments = card.getElementsByClassName('comments')[0];
- if (comments.children.length == 0) {
- comments.classList.add('mb-2');
- this.fetchStatusComments(status, card);
- }
- var footer = card.querySelectorAll('.card-footer')[0];
- var input = card.querySelectorAll('.status-reply-input')[0];
- if (footer.classList.contains('d-none') == true) {
- footer.classList.remove('d-none');
- input.focus();
- } else {
- footer.classList.add('d-none');
- input.blur();
- }
- },
- likeStatus: function likeStatus(status, $event) {
- if ($('body').hasClass('loggedIn') == false) {
- return;
- }
- axios.post('/i/like', {
- item: status.id
- }).then(function (res) {
- status.favourites_count = res.data.count;
- if (status.favourited == true) {
- status.favourited = false;
- } else {
- status.favourited = true;
- }
- }).catch(function (err) {
- swal('Error', 'Something went wrong, please try again later.', 'error');
- });
- },
- shareStatus: function shareStatus(status, $event) {
- if ($('body').hasClass('loggedIn') == false) {
- return;
- }
- axios.post('/i/share', {
- item: status.id
- }).then(function (res) {
- status.reblogs_count = res.data.count;
- if (status.reblogged == true) {
- status.reblogged = false;
- } else {
- status.reblogged = true;
- }
- }).catch(function (err) {
- swal('Error', 'Something went wrong, please try again later.', 'error');
- });
- },
- timestampFormat: function timestampFormat(timestamp) {
- var ts = new Date(timestamp);
- return ts.toDateString() + ' ' + ts.toLocaleTimeString();
- },
- editUrl: function editUrl(status) {
- return status.url + '/edit';
- },
- redirect: function redirect(url) {
- window.location.href = url;
- return;
- },
- replyUrl: function replyUrl(status) {
- var username = this.profile.username;
- var id = status.account.id == this.profile.id ? status.id : status.in_reply_to_id;
- return '/p/' + username + '/' + id;
- },
- mentionUrl: function mentionUrl(status) {
- var username = status.account.username;
- var id = status.id;
- return '/p/' + username + '/' + id;
- },
- statusOwner: function statusOwner(status) {
- var sid = status.account.id;
- var uid = this.profile.id;
- if (sid == uid) {
- return true;
- } else {
- return false;
- }
- },
- fetchStatusComments: function fetchStatusComments(status, card) {
- axios.get('/api/v2/status/' + status.id + '/replies').then(function (res) {
- var comments = card.querySelectorAll('.comments')[0];
- var data = res.data;
- data.forEach(function (i, k) {
- var username = document.createElement('a');
- username.classList.add('font-weight-bold');
- username.classList.add('text-dark');
- username.classList.add('mr-2');
- username.setAttribute('href', i.account.url);
- username.textContent = i.account.username;
- var text = document.createElement('span');
- text.innerHTML = i.content;
- var comment = document.createElement('p');
- comment.classList.add('read-more');
- comment.classList.add('mb-0');
- comment.appendChild(username);
- comment.appendChild(text);
- comments.appendChild(comment);
- });
- }).catch(function (err) {});
- },
- muteProfile: function muteProfile(status) {
- var _this5 = this;
- if ($('body').hasClass('loggedIn') == false) {
- return;
- }
- axios.post('/i/mute', {
- type: 'user',
- item: status.account.id
- }).then(function (res) {
- _this5.feed = _this5.feed.filter(function (s) {
- return s.account.id !== status.account.id;
- });
- swal('Success', 'You have successfully muted ' + status.account.acct, 'success');
- }).catch(function (err) {
- swal('Error', 'Something went wrong. Please try again later.', 'error');
- });
- },
- blockProfile: function blockProfile(status) {
- var _this6 = this;
- if ($('body').hasClass('loggedIn') == false) {
- return;
- }
- axios.post('/i/block', {
- type: 'user',
- item: status.account.id
- }).then(function (res) {
- _this6.feed = _this6.feed.filter(function (s) {
- return s.account.id !== status.account.id;
- });
- swal('Success', 'You have successfully blocked ' + status.account.acct, 'success');
- }).catch(function (err) {
- swal('Error', 'Something went wrong. Please try again later.', 'error');
- });
- },
- deletePost: function deletePost(status, index) {
- var _this7 = this;
- if ($('body').hasClass('loggedIn') == false || status.account.id !== this.profile.id) {
- return;
- }
- axios.post('/i/delete', {
- type: 'status',
- item: status.id
- }).then(function (res) {
- _this7.feed.splice(index, 1);
- swal('Success', 'You have successfully deleted this post', 'success');
- }).catch(function (err) {
- swal('Error', 'Something went wrong. Please try again later.', 'error');
- });
- },
- commentSubmit: function commentSubmit(status, $event) {
- var _this8 = this;
- var id = status.id;
- var form = $event.target;
- var input = $(form).find('input[name="comment"]');
- var comment = input.val();
- var comments = form.parentElement.parentElement.getElementsByClassName('comments')[0];
- axios.post('/i/comment', {
- item: id,
- comment: comment
- }).then(function (res) {
- input.val('');
- input.blur();
- var username = document.createElement('a');
- username.classList.add('font-weight-bold');
- username.classList.add('text-dark');
- username.classList.add('mr-2');
- username.setAttribute('href', _this8.profile.url);
- username.textContent = _this8.profile.username;
- var text = document.createElement('span');
- text.innerHTML = comment;
- var wrapper = document.createElement('p');
- wrapper.classList.add('read-more');
- wrapper.classList.add('mb-0');
- wrapper.appendChild(username);
- wrapper.appendChild(text);
- comments.insertBefore(wrapper, comments.firstChild);
- });
- }
- }
- });
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: ['status']
- });
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: ['status']
- });
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: ['status']
- });
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: ['status']
- });
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: ['status']
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/alert/alert.css":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/alert/alert.css");
- if(typeof content === 'string') content = [[module.i, content, '']];
- // Prepare cssTransformation
- var transform;
- var options = {}
- options.transform = transform
- // add the styles to the DOM
- var update = __webpack_require__("./node_modules/style-loader/lib/addStyles.js")(content, options);
- if(content.locals) module.exports = content.locals;
- // Hot Module Replacement
- if(false) {
- // When the styles change, update the <style> tags
- if(!content.locals) {
- module.hot.accept("!!../../../../css-loader/index.js!./alert.css", function() {
- var newContent = require("!!../../../../css-loader/index.js!./alert.css");
- if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
- update(newContent);
- });
- }
- // When the module is disposed, remove the <style> tags
- module.hot.dispose(function() { update(); });
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/alert/alert.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button_button_close__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button-close.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__alert_css__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/alert/alert.css");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__alert_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__alert_css__);
- /* harmony default export */ __webpack_exports__["a"] = ({
- components: { bButtonClose: __WEBPACK_IMPORTED_MODULE_0__button_button_close__["a" /* default */] },
- render: function render(h) {
- if (!this.localShow) {
- // If not showing, render placeholder
- return h(false);
- }
- var dismissBtn = h(false);
- if (this.dismissible) {
- // Add dismiss button
- dismissBtn = h('b-button-close', { attrs: { 'aria-label': this.dismissLabel }, on: { click: this.dismiss } }, [this.$slots.dismiss]);
- }
- var alert = h('div', { class: this.classObject, attrs: { role: 'alert', 'aria-live': 'polite', 'aria-atomic': true } }, [dismissBtn, this.$slots.default]);
- return !this.fade ? alert : h('transition', { props: { name: 'fade', appear: true } }, [alert]);
- },
- model: {
- prop: 'show',
- event: 'input'
- },
- data: function data() {
- return {
- countDownTimerId: null,
- dismissed: false
- };
- },
- computed: {
- classObject: function classObject() {
- return ['alert', this.alertVariant, this.dismissible ? 'alert-dismissible' : ''];
- },
- alertVariant: function alertVariant() {
- var variant = this.variant;
- return 'alert-' + variant;
- },
- localShow: function localShow() {
- return !this.dismissed && (this.countDownTimerId || this.show);
- }
- },
- props: {
- variant: {
- type: String,
- default: 'info'
- },
- dismissible: {
- type: Boolean,
- default: false
- },
- dismissLabel: {
- type: String,
- default: 'Close'
- },
- show: {
- type: [Boolean, Number],
- default: false
- },
- fade: {
- type: Boolean,
- default: false
- }
- },
- watch: {
- show: function show() {
- this.showChanged();
- }
- },
- mounted: function mounted() {
- this.showChanged();
- },
- destroyed /* istanbul ignore next */: function destroyed() {
- this.clearCounter();
- },
- methods: {
- dismiss: function dismiss() {
- this.clearCounter();
- this.dismissed = true;
- this.$emit('dismissed');
- this.$emit('input', false);
- if (typeof this.show === 'number') {
- this.$emit('dismiss-count-down', 0);
- this.$emit('input', 0);
- } else {
- this.$emit('input', false);
- }
- },
- clearCounter: function clearCounter() {
- if (this.countDownTimerId) {
- clearInterval(this.countDownTimerId);
- this.countDownTimerId = null;
- }
- },
- showChanged: function showChanged() {
- var _this = this;
- // Reset counter status
- this.clearCounter();
- // Reset dismiss status
- this.dismissed = false;
- // No timer for boolean values
- if (this.show === true || this.show === false || this.show === null || this.show === 0) {
- return;
- }
- // Start counter
- var dismissCountDown = this.show;
- this.countDownTimerId = setInterval(function () {
- if (dismissCountDown < 1) {
- _this.dismiss();
- return;
- }
- dismissCountDown--;
- _this.$emit('dismiss-count-down', dismissCountDown);
- _this.$emit('input', dismissCountDown);
- }, 1000);
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/alert/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__alert__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/alert/alert.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bAlert: __WEBPACK_IMPORTED_MODULE_0__alert__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/badge/badge.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
- var linkProps = Object(__WEBPACK_IMPORTED_MODULE_3__link_link__["c" /* propsFactory */])();
- delete linkProps.href.default;
- delete linkProps.to.default;
- var props = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])(linkProps, {
- tag: {
- type: String,
- default: 'span'
- },
- variant: {
- type: String,
- default: 'secondary'
- },
- pill: {
- type: Boolean,
- default: false
- }
- });
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- var tag = !props.href && !props.to ? props.tag : __WEBPACK_IMPORTED_MODULE_3__link_link__["a" /* default */];
- var componentData = {
- staticClass: 'badge',
- class: [!props.variant ? 'badge-secondary' : 'badge-' + props.variant, {
- 'badge-pill': Boolean(props.pill),
- active: props.active,
- disabled: props.disabled
- }],
- props: Object(__WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__["a" /* default */])(linkProps, props)
- };
- return h(tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/badge/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__badge__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/badge/badge.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bBadge: __WEBPACK_IMPORTED_MODULE_0__badge__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-item.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__breadcrumb_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-link.js");
- var props = Object(__WEBPACK_IMPORTED_MODULE_1__utils_object__["a" /* assign */])({}, __WEBPACK_IMPORTED_MODULE_2__breadcrumb_link__["b" /* props */], {
- text: {
- type: String,
- default: null
- },
- href: {
- type: String,
- default: null
- }
- });
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h('li', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'breadcrumb-item',
- class: { active: props.active },
- attrs: { role: 'presentation' }
- }), [h(__WEBPACK_IMPORTED_MODULE_2__breadcrumb_link__["a" /* default */], { props: props }, children)]);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-link.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return props; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
- var props = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])(Object(__WEBPACK_IMPORTED_MODULE_3__link_link__["c" /* propsFactory */])(), {
- text: {
- type: String,
- default: null
- },
- active: {
- type: Boolean,
- default: false
- },
- href: {
- type: String,
- default: '#'
- },
- ariaCurrent: {
- type: String,
- default: 'location'
- }
- });
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var suppliedProps = _ref.props,
- data = _ref.data,
- children = _ref.children;
- var tag = suppliedProps.active ? 'span' : __WEBPACK_IMPORTED_MODULE_3__link_link__["a" /* default */];
- var componentData = { props: Object(__WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__["a" /* default */])(props, suppliedProps) };
- if (suppliedProps.active) {
- componentData.attrs = { 'aria-current': suppliedProps.ariaCurrent };
- } else {
- componentData.attrs = { href: suppliedProps.href };
- }
- return h(tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), children || suppliedProps.text);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__breadcrumb_item__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-item.js");
- 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; };
- var props = {
- items: {
- type: Array,
- default: null
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- var childNodes = children;
- // Build child nodes from items if given.
- if (Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["d" /* isArray */])(props.items)) {
- var activeDefined = false;
- childNodes = props.items.map(function (item, idx) {
- if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) !== 'object') {
- item = { text: item };
- }
- // Copy the value here so we can normalize it.
- var active = item.active;
- if (active) {
- activeDefined = true;
- }
- if (!active && !activeDefined) {
- // Auto-detect active by position in list.
- active = idx + 1 === props.items.length;
- }
- return h(__WEBPACK_IMPORTED_MODULE_3__breadcrumb_item__["a" /* default */], { props: Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])({}, item, { active: active }) });
- });
- }
- return h('ol', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { staticClass: 'breadcrumb' }), childNodes);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/breadcrumb/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__breadcrumb__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__breadcrumb_item__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-item.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__breadcrumb_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-link.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bBreadcrumb: __WEBPACK_IMPORTED_MODULE_0__breadcrumb__["a" /* default */],
- bBreadcrumbItem: __WEBPACK_IMPORTED_MODULE_1__breadcrumb_item__["a" /* default */],
- bBreadcrumbLink: __WEBPACK_IMPORTED_MODULE_2__breadcrumb_link__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/button-group/button-group.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- 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; }
- var props = {
- vertical: {
- type: Boolean,
- default: false
- },
- size: {
- type: String,
- default: null,
- validator: function validator(size) {
- return Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(['sm', '', 'lg'], size);
- }
- },
- tag: {
- type: String,
- default: 'div'
- },
- ariaRole: {
- type: String,
- default: 'group'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- class: _defineProperty({
- 'btn-group': !props.vertical,
- 'btn-group-vertical': props.vertical
- }, 'btn-group-' + props.size, Boolean(props.size)),
- attrs: { 'role': props.ariaRole }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/button-group/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button-group/button-group.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bButtonGroup: __WEBPACK_IMPORTED_MODULE_0__button_group__["a" /* default */],
- bBtnGroup: __WEBPACK_IMPORTED_MODULE_0__button_group__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/button-toolbar/button-toolbar.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
- 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(',');
- /* harmony default export */ __webpack_exports__["a"] = ({
- render: function render(h) {
- return h('div', {
- class: this.classObject,
- attrs: {
- role: 'toolbar',
- tabindex: this.keyNav ? '0' : null
- },
- on: {
- focusin: this.onFocusin,
- keydown: this.onKeydown
- }
- }, [this.$slots.default]);
- },
- computed: {
- classObject: function classObject() {
- return ['btn-toolbar', this.justify && !this.vertical ? 'justify-content-between' : ''];
- }
- },
- props: {
- justify: {
- type: Boolean,
- default: false
- },
- keyNav: {
- type: Boolean,
- default: false
- }
- },
- methods: {
- onFocusin: function onFocusin(evt) {
- if (evt.target === this.$el) {
- evt.preventDefault();
- evt.stopPropagation();
- this.focusFirst(evt);
- }
- },
- onKeydown: function onKeydown(evt) {
- if (!this.keyNav) {
- return;
- }
- var key = evt.keyCode;
- var shift = evt.shiftKey;
- if (key === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].UP || key === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].LEFT) {
- evt.preventDefault();
- evt.stopPropagation();
- if (shift) {
- this.focusFirst(evt);
- } else {
- this.focusNext(evt, true);
- }
- } else if (key === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].DOWN || key === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].RIGHT) {
- evt.preventDefault();
- evt.stopPropagation();
- if (shift) {
- this.focusLast(evt);
- } else {
- this.focusNext(evt, false);
- }
- }
- },
- setItemFocus: function setItemFocus(item) {
- this.$nextTick(function () {
- item.focus();
- });
- },
- focusNext: function focusNext(evt, prev) {
- var items = this.getItems();
- if (items.length < 1) {
- return;
- }
- var index = items.indexOf(evt.target);
- if (prev && index > 0) {
- index--;
- } else if (!prev && index < items.length - 1) {
- index++;
- }
- if (index < 0) {
- index = 0;
- }
- this.setItemFocus(items[index]);
- },
- focusFirst: function focusFirst(evt) {
- var items = this.getItems();
- if (items.length > 0) {
- this.setItemFocus(items[0]);
- }
- },
- focusLast: function focusLast(evt) {
- var items = this.getItems();
- if (items.length > 0) {
- this.setItemFocus([items.length - 1]);
- }
- },
- getItems: function getItems() {
- var items = Object(__WEBPACK_IMPORTED_MODULE_0__utils_dom__["u" /* selectAll */])(ITEM_SELECTOR, this.$el);
- items.forEach(function (item) {
- // Ensure tabfocus is -1 on any new elements
- item.tabIndex = -1;
- });
- return items.filter(function (el) {
- return Object(__WEBPACK_IMPORTED_MODULE_0__utils_dom__["m" /* isVisible */])(el);
- });
- }
- },
- mounted: function mounted() {
- if (this.keyNav) {
- // Pre-set the tabindexes if the markup does not include tabindex="-1" on the toolbar items
- this.getItems();
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/button-toolbar/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button_toolbar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button-toolbar/button-toolbar.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bButtonToolbar: __WEBPACK_IMPORTED_MODULE_0__button_toolbar__["a" /* default */],
- bBtnToolbar: __WEBPACK_IMPORTED_MODULE_0__button_toolbar__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/button/button-close.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- 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; }
- var props = {
- disabled: {
- type: Boolean,
- default: false
- },
- ariaLabel: {
- type: String,
- default: 'Close'
- },
- textVariant: {
- type: String,
- default: null
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- listeners = _ref.listeners,
- slots = _ref.slots;
- var componentData = {
- staticClass: 'close',
- class: _defineProperty({}, 'text-' + props.textVariant, props.textVariant),
- attrs: {
- type: 'button',
- disabled: props.disabled,
- 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null
- },
- on: {
- click: function click(e) {
- // Ensure click on button HTML content is also disabled
- if (props.disabled && e instanceof Event) {
- e.stopPropagation();
- e.preventDefault();
- }
- }
- }
- // Careful not to override the slot with innerHTML
- };if (!slots().default) {
- componentData.domProps = { innerHTML: '×' };
- }
- return h('button', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), slots().default);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/button/button.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
- 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; }
- var btnProps = {
- block: {
- type: Boolean,
- default: false
- },
- disabled: {
- type: Boolean,
- default: false
- },
- size: {
- type: String,
- default: null
- },
- variant: {
- type: String,
- default: null
- },
- type: {
- type: String,
- default: 'button'
- },
- pressed: {
- // tri-state prop: true, false or null
- // => on, off, not a toggle
- type: Boolean,
- default: null
- }
- };
- var linkProps = Object(__WEBPACK_IMPORTED_MODULE_5__link_link__["c" /* propsFactory */])();
- delete linkProps.href.default;
- delete linkProps.to.default;
- var linkPropKeys = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["e" /* keys */])(linkProps);
- var props = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])(linkProps, btnProps);
- function handleFocus(evt) {
- if (evt.type === 'focusin') {
- Object(__WEBPACK_IMPORTED_MODULE_4__utils_dom__["a" /* addClass */])(evt.target, 'focus');
- } else if (evt.type === 'focusout') {
- Object(__WEBPACK_IMPORTED_MODULE_4__utils_dom__["s" /* removeClass */])(evt.target, 'focus');
- }
- }
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _ref2;
- var props = _ref.props,
- data = _ref.data,
- listeners = _ref.listeners,
- children = _ref.children;
- var isLink = Boolean(props.href || props.to);
- var isToggle = typeof props.pressed === 'boolean';
- var on = {
- click: function click(e) {
- if (props.disabled && e instanceof Event) {
- e.stopPropagation();
- e.preventDefault();
- } else if (isToggle) {
- // Concat will normalize the value to an array
- // without double wrapping an array value in an array.
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_array__["b" /* concat */])(listeners['update:pressed']).forEach(function (fn) {
- if (typeof fn === 'function') {
- fn(!props.pressed);
- }
- });
- }
- }
- };
- if (isToggle) {
- on.focusin = handleFocus;
- on.focusout = handleFocus;
- }
- var componentData = {
- staticClass: 'btn',
- 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)],
- props: isLink ? Object(__WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__["a" /* default */])(linkPropKeys, props) : null,
- attrs: {
- type: isLink ? null : props.type,
- disabled: isLink ? null : props.disabled,
- // Data attribute not used for js logic,
- // but only for BS4 style selectors.
- 'data-toggle': isToggle ? 'button' : null,
- 'aria-pressed': isToggle ? String(props.pressed) : null,
- // Tab index is used when the component becomes a link.
- // Links are tabable, but don't allow disabled,
- // so we mimic that functionality by disabling tabbing.
- tabindex: props.disabled && isLink ? '-1' : data.attrs ? data.attrs['tabindex'] : null
- },
- on: on
- };
- 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);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/button/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__button_close__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button-close.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bButton: __WEBPACK_IMPORTED_MODULE_0__button__["a" /* default */],
- bBtn: __WEBPACK_IMPORTED_MODULE_0__button__["a" /* default */],
- bButtonClose: __WEBPACK_IMPORTED_MODULE_1__button_close__["a" /* default */],
- bBtnClose: __WEBPACK_IMPORTED_MODULE_1__button_close__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/card/card-body.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return props; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_copyProps__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/copyProps.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_card_mixin__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/card-mixin.js");
- 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; }
- 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')), {
- bodyClass: {
- type: [String, Object, Array],
- default: null
- },
- title: {
- type: String,
- default: null
- },
- titleTag: {
- type: String,
- default: 'h4'
- },
- subTitle: {
- type: String,
- default: null
- },
- subTitleTag: {
- type: String,
- default: 'h6'
- },
- overlay: {
- type: Boolean,
- default: false
- }
- });
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _ref2;
- var props = _ref.props,
- data = _ref.data,
- slots = _ref.slots;
- var cardBodyChildren = [];
- if (props.title) {
- cardBodyChildren.push(h(props.titleTag, {
- staticClass: 'card-title',
- domProps: { innerHTML: props.title }
- }));
- }
- if (props.subTitle) {
- cardBodyChildren.push(h(props.subTitleTag, {
- staticClass: 'card-subtitle mb-2 text-muted',
- domProps: { innerHTML: props.subTitle }
- }));
- }
- cardBodyChildren.push(slots().default);
- return h(props.bodyTag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'card-body',
- class: [(_ref2 = {
- 'card-img-overlay': props.overlay
- }, _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 || {}]
- }), cardBodyChildren);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/card/card-footer.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return props; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_copyProps__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/copyProps.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_card_mixin__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/card-mixin.js");
- 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; }
- 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')), {
- footer: {
- type: String,
- default: null
- },
- footerClass: {
- type: [String, Object, Array],
- default: null
- }
- });
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _ref2;
- var props = _ref.props,
- data = _ref.data,
- slots = _ref.slots,
- children = _ref.children;
- return h(props.footerTag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'card-footer',
- 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)]
- }), children || [h('div', { domProps: { innerHTML: props.footer } })]);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/card/card-group.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- tag: {
- type: String,
- default: 'div'
- },
- deck: {
- type: Boolean,
- default: false
- },
- columns: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- var staticClass = 'card-group';
- if (props.columns) {
- staticClass = 'card-columns';
- }
- if (props.deck) {
- staticClass = 'card-deck';
- }
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { staticClass: staticClass }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/card/card-header.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return props; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_copyProps__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/copyProps.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_card_mixin__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/card-mixin.js");
- 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; }
- 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')), {
- header: {
- type: String,
- default: null
- },
- headerClass: {
- type: [String, Object, Array],
- default: null
- }
- });
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _ref2;
- var props = _ref.props,
- data = _ref.data,
- slots = _ref.slots,
- children = _ref.children;
- return h(props.headerTag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'card-header',
- 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)]
- }), children || [h('div', { domProps: { innerHTML: props.header } })]);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/card/card-img.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return props; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- src: {
- type: String,
- default: null,
- required: true
- },
- alt: {
- type: String,
- default: null
- },
- top: {
- type: Boolean,
- default: false
- },
- bottom: {
- type: Boolean,
- default: false
- },
- fluid: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- slots = _ref.slots;
- var staticClass = 'card-img';
- if (props.top) {
- staticClass += '-top';
- } else if (props.bottom) {
- staticClass += '-bottom';
- }
- return h('img', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: staticClass,
- class: { 'img-fluid': props.fluid },
- attrs: { src: props.src, alt: props.alt }
- }));
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/card/card.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_prefix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_unprefix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/unprefix-prop-name.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_copyProps__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/copyProps.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__mixins_card_mixin__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/card-mixin.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__card_body__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-body.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__card_header__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-header.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__card_footer__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-footer.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__card_img__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-img.js");
- 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; }
- 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'));
- cardImgProps.imgSrc.required = false;
- 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), {
- align: {
- type: String,
- default: null
- },
- noBody: {
- type: Boolean,
- default: false
- }
- });
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _class;
- var props = _ref.props,
- data = _ref.data,
- slots = _ref.slots,
- children = _ref.children;
- // The order of the conditionals matter.
- // We are building the component markup in order.
- var childNodes = [];
- var $slots = slots();
- var img = props.imgSrc ? h(__WEBPACK_IMPORTED_MODULE_10__card_img__["a" /* default */], {
- 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'))
- }) : null;
- if (img) {
- // Above the header placement.
- if (props.imgTop || !props.imgBottom) {
- childNodes.push(img);
- }
- }
- if (props.header || $slots.header) {
- 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));
- }
- if (props.noBody) {
- childNodes.push($slots.default);
- } else {
- 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));
- }
- if (props.footer || $slots.footer) {
- 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));
- }
- if (img && props.imgBottom) {
- // Below the footer placement.
- childNodes.push(img);
- }
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'card',
- 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)
- }), childNodes);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/card/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__card__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__card_header__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-header.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__card_body__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-body.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__card_footer__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-footer.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__card_img__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-img.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__card_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/card-group.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bCard: __WEBPACK_IMPORTED_MODULE_0__card__["a" /* default */],
- bCardHeader: __WEBPACK_IMPORTED_MODULE_1__card_header__["a" /* default */],
- bCardBody: __WEBPACK_IMPORTED_MODULE_2__card_body__["a" /* default */],
- bCardFooter: __WEBPACK_IMPORTED_MODULE_3__card_footer__["a" /* default */],
- bCardImg: __WEBPACK_IMPORTED_MODULE_4__card_img__["a" /* default */],
- bCardGroup: __WEBPACK_IMPORTED_MODULE_5__card_group__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_6__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_6__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/carousel/carousel-slide.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__image_img__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/image/img.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- components: { bImg: __WEBPACK_IMPORTED_MODULE_0__image_img__["a" /* default */] },
- mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_id__["a" /* default */]],
- render: function render(h) {
- var $slots = this.$slots;
- var img = $slots.img;
- if (!img && (this.imgSrc || this.imgBlank)) {
- img = h('b-img', {
- props: {
- fluidGrow: true,
- block: true,
- src: this.imgSrc,
- blank: this.imgBlank,
- blankColor: this.imgBlankColor,
- width: this.computedWidth,
- height: this.computedHeight,
- alt: this.imgAlt
- }
- });
- }
- 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]);
- return h('div', {
- class: ['carousel-item'],
- style: { background: this.background },
- attrs: { id: this.safeId(), role: 'listitem' }
- }, [img, content]);
- },
- props: {
- imgSrc: {
- type: String,
- default: function _default() {
- if (this && this.src) {
- // Deprecate src
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_warn__["a" /* default */])("b-carousel-slide: prop 'src' has been deprecated. Use 'img-src' instead");
- return this.src;
- }
- return null;
- }
- },
- src: {
- // Deprecated: use img-src instead
- type: String
- },
- imgAlt: {
- type: String
- },
- imgWidth: {
- type: [Number, String]
- },
- imgHeight: {
- type: [Number, String]
- },
- imgBlank: {
- type: Boolean,
- default: false
- },
- imgBlankColor: {
- type: String,
- default: 'transparent'
- },
- contentVisibleUp: {
- type: String
- },
- contentTag: {
- type: String,
- default: 'div'
- },
- caption: {
- type: String
- },
- captionTag: {
- type: String,
- default: 'h3'
- },
- text: {
- type: String
- },
- textTag: {
- type: String,
- default: 'p'
- },
- background: {
- type: String
- }
- },
- computed: {
- contentClasses: function contentClasses() {
- return ['carousel-caption', this.contentVisibleUp ? 'd-none' : '', this.contentVisibleUp ? 'd-' + this.contentVisibleUp + '-block' : ''];
- },
- computedWidth: function computedWidth() {
- // Use local width, or try parent width
- return this.imgWidth || this.$parent.imgWidth;
- },
- computedHeight: function computedHeight() {
- // Use local height, or try parent height
- return this.imgHeight || this.$parent.imgHeight;
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/carousel/carousel.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_observe_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- // Slide directional classes
- var DIRECTION = {
- next: {
- dirClass: 'carousel-item-left',
- overlayClass: 'carousel-item-next'
- },
- prev: {
- dirClass: 'carousel-item-right',
- overlayClass: 'carousel-item-prev'
- }
- // Fallback Transition duration (with a little buffer) in ms
- };var TRANS_DURATION = 600 + 50;
- // Transition Event names
- var TransitionEndEvents = {
- WebkitTransition: 'webkitTransitionEnd',
- MozTransition: 'transitionend',
- OTransition: 'otransitionend oTransitionEnd',
- transition: 'transitionend'
- // Return the browser specific transitionEnd event name
- };function getTransisionEndEvent(el) {
- for (var name in TransitionEndEvents) {
- if (el.style[name] !== undefined) {
- return TransitionEndEvents[name];
- }
- }
- // fallback
- return null;
- }
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_3__mixins_id__["a" /* default */]],
- render: function render(h) {
- var _this = this;
- // Wrapper for slides
- var inner = h('div', {
- ref: 'inner',
- class: ['carousel-inner'],
- attrs: {
- id: this.safeId('__BV_inner_'),
- role: 'list'
- }
- }, [this.$slots.default]);
- // Prev and Next Controls
- var controls = h(false);
- if (this.controls) {
- controls = [h('a', {
- class: ['carousel-control-prev'],
- attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },
- on: {
- click: function click(evt) {
- evt.preventDefault();
- evt.stopPropagation();
- _this.prev();
- },
- keydown: function keydown(evt) {
- var keyCode = evt.keyCode;
- if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].SPACE || keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].ENTER) {
- evt.preventDefault();
- evt.stopPropagation();
- _this.prev();
- }
- }
- }
- }, [h('span', { class: ['carousel-control-prev-icon'], attrs: { 'aria-hidden': 'true' } }), h('span', { class: ['sr-only'] }, [this.labelPrev])]), h('a', {
- class: ['carousel-control-next'],
- attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },
- on: {
- click: function click(evt) {
- evt.preventDefault();
- evt.stopPropagation();
- _this.next();
- },
- keydown: function keydown(evt) {
- var keyCode = evt.keyCode;
- if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].SPACE || keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].ENTER) {
- evt.preventDefault();
- evt.stopPropagation();
- _this.next();
- }
- }
- }
- }, [h('span', { class: ['carousel-control-next-icon'], attrs: { 'aria-hidden': 'true' } }), h('span', { class: ['sr-only'] }, [this.labelNext])])];
- }
- // Indicators
- var indicators = h('ol', {
- class: ['carousel-indicators'],
- directives: [{ name: 'show', rawName: 'v-show', value: this.indicators, expression: 'indicators' }],
- attrs: {
- id: this.safeId('__BV_indicators_'),
- 'aria-hidden': this.indicators ? 'false' : 'true',
- 'aria-label': this.labelIndicators,
- 'aria-owns': this.safeId('__BV_inner_')
- }
- }, this.slides.map(function (slide, n) {
- return h('li', {
- key: 'slide_' + n,
- class: { active: n === _this.index },
- attrs: {
- role: 'button',
- id: _this.safeId('__BV_indicator_' + (n + 1) + '_'),
- tabindex: _this.indicators ? '0' : '-1',
- 'aria-current': n === _this.index ? 'true' : 'false',
- 'aria-label': _this.labelGotoSlide + ' ' + (n + 1),
- 'aria-describedby': _this.slides[n].id || null,
- 'aria-controls': _this.safeId('__BV_inner_')
- },
- on: {
- click: function click(evt) {
- _this.setSlide(n);
- },
- keydown: function keydown(evt) {
- var keyCode = evt.keyCode;
- if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].SPACE || keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].ENTER) {
- evt.preventDefault();
- evt.stopPropagation();
- _this.setSlide(n);
- }
- }
- }
- });
- }));
- // Return the carousel
- return h('div', {
- class: ['carousel', 'slide'],
- style: { background: this.background },
- attrs: {
- role: 'region',
- id: this.safeId(),
- 'aria-busy': this.isSliding ? 'true' : 'false'
- },
- on: {
- mouseenter: this.pause,
- mouseleave: this.restart,
- focusin: this.pause,
- focusout: this.restart,
- keydown: function keydown(evt) {
- var keyCode = evt.keyCode;
- if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].LEFT || keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].RIGHT) {
- evt.preventDefault();
- evt.stopPropagation();
- _this[keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].LEFT ? 'prev' : 'next']();
- }
- }
- }
- }, [inner, controls, indicators]);
- },
- data: function data() {
- return {
- index: this.value || 0,
- isSliding: false,
- intervalId: null,
- transitionEndEvent: null,
- slides: [],
- direction: null
- };
- },
- props: {
- labelPrev: {
- type: String,
- default: 'Previous Slide'
- },
- labelNext: {
- type: String,
- default: 'Next Slide'
- },
- labelGotoSlide: {
- type: String,
- default: 'Goto Slide'
- },
- labelIndicators: {
- type: String,
- default: 'Select a slide to display'
- },
- interval: {
- type: Number,
- default: 5000
- },
- indicators: {
- type: Boolean,
- default: false
- },
- controls: {
- type: Boolean,
- default: false
- },
- imgWidth: {
- // Sniffed by carousel-slide
- type: [Number, String]
- },
- imgHeight: {
- // Sniffed by carousel-slide
- type: [Number, String]
- },
- background: {
- type: String
- },
- value: {
- type: Number,
- default: 0
- }
- },
- computed: {
- isCycling: function isCycling() {
- return Boolean(this.intervalId);
- }
- },
- methods: {
- // Set slide
- setSlide: function setSlide(slide) {
- var _this2 = this;
- // Don't animate when page is not visible
- if (typeof document !== 'undefined' && document.visibilityState && document.hidden) {
- return;
- }
- var len = this.slides.length;
- // Don't do anything if nothing to slide to
- if (len === 0) {
- return;
- }
- // Don't change slide while transitioning, wait until transition is done
- if (this.isSliding) {
- // Schedule slide after sliding complete
- this.$once('sliding-end', function () {
- return _this2.setSlide(slide);
- });
- return;
- }
- // Make sure we have an integer (you never know!)
- slide = Math.floor(slide);
- // Set new slide index. Wrap around if necessary
- this.index = slide >= len ? 0 : slide >= 0 ? slide : len - 1;
- },
- // Previous slide
- prev: function prev() {
- this.direction = 'prev';
- this.setSlide(this.index - 1);
- },
- // Next slide
- next: function next() {
- this.direction = 'next';
- this.setSlide(this.index + 1);
- },
- // Pause auto rotation
- pause: function pause() {
- if (this.isCycling) {
- clearInterval(this.intervalId);
- this.intervalId = null;
- if (this.slides[this.index]) {
- // Make current slide focusable for screen readers
- this.slides[this.index].tabIndex = 0;
- }
- }
- },
- // Start auto rotate slides
- start: function start() {
- var _this3 = this;
- // Don't start if no interval, or if we are already running
- if (!this.interval || this.isCycling) {
- return;
- }
- this.slides.forEach(function (slide) {
- slide.tabIndex = -1;
- });
- this.intervalId = setInterval(function () {
- _this3.next();
- }, Math.max(1000, this.interval));
- },
- // Re-Start auto rotate slides when focus/hover leaves the carousel
- restart: function restart(evt) {
- if (!this.$el.contains(document.activeElement)) {
- this.start();
- }
- },
- // Update slide list
- updateSlides: function updateSlides() {
- this.pause();
- // Get all slides as DOM elements
- this.slides = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["u" /* selectAll */])('.carousel-item', this.$refs.inner);
- var numSlides = this.slides.length;
- // Keep slide number in range
- var index = Math.max(0, Math.min(Math.floor(this.index), numSlides - 1));
- this.slides.forEach(function (slide, idx) {
- var n = idx + 1;
- if (idx === index) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["a" /* addClass */])(slide, 'active');
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(slide, 'active');
- }
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(slide, 'aria-current', idx === index ? 'true' : 'false');
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(slide, 'aria-posinset', String(n));
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(slide, 'aria-setsize', String(numSlides));
- slide.tabIndex = -1;
- });
- // Set slide as active
- this.setSlide(index);
- this.start();
- },
- calcDirection: function calcDirection() {
- var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
- var curIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- var nextIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
- if (!direction) {
- return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev;
- }
- return DIRECTION[direction];
- }
- },
- watch: {
- value: function value(newVal, oldVal) {
- if (newVal !== oldVal) {
- this.setSlide(newVal);
- }
- },
- interval: function interval(newVal, oldVal) {
- if (newVal === oldVal) {
- return;
- }
- if (!newVal) {
- // Pausing slide show
- this.pause();
- } else {
- // Restarting or Changing interval
- this.pause();
- this.start();
- }
- },
- index: function index(val, oldVal) {
- var _this4 = this;
- if (val === oldVal || this.isSliding) {
- return;
- }
- // Determine sliding direction
- var direction = this.calcDirection(this.direction, oldVal, val);
- // Determine current and next slides
- var currentSlide = this.slides[oldVal];
- var nextSlide = this.slides[val];
- // Don't do anything if there aren't any slides to slide to
- if (!currentSlide || !nextSlide) {
- return;
- }
- // Start animating
- this.isSliding = true;
- this.$emit('sliding-start', val);
- // Update v-model
- this.$emit('input', this.index);
- nextSlide.classList.add(direction.overlayClass);
- // Trigger a reflow of next slide
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["q" /* reflow */])(nextSlide);
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["a" /* addClass */])(currentSlide, direction.dirClass);
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["a" /* addClass */])(nextSlide, direction.dirClass);
- // Transition End handler
- var called = false;
- /* istanbul ignore next: dificult to test */
- var onceTransEnd = function onceTransEnd(evt) {
- if (called) {
- return;
- }
- called = true;
- if (_this4.transitionEndEvent) {
- var events = _this4.transitionEndEvent.split(/\s+/);
- events.forEach(function (event) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["c" /* eventOff */])(currentSlide, event, onceTransEnd);
- });
- }
- _this4._animationTimeout = null;
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(nextSlide, direction.dirClass);
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(nextSlide, direction.overlayClass);
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["a" /* addClass */])(nextSlide, 'active');
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(currentSlide, 'active');
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(currentSlide, direction.dirClass);
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["s" /* removeClass */])(currentSlide, direction.overlayClass);
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(currentSlide, 'aria-current', 'false');
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(nextSlide, 'aria-current', 'true');
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(currentSlide, 'aria-hidden', 'true');
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["v" /* setAttr */])(nextSlide, 'aria-hidden', 'false');
- currentSlide.tabIndex = -1;
- nextSlide.tabIndex = -1;
- if (!_this4.isCycling) {
- // Focus the next slide for screen readers if not in play mode
- nextSlide.tabIndex = 0;
- _this4.$nextTick(function () {
- nextSlide.focus();
- });
- }
- _this4.isSliding = false;
- _this4.direction = null;
- // Notify ourselves that we're done sliding (slid)
- _this4.$nextTick(function () {
- return _this4.$emit('sliding-end', val);
- });
- };
- // Clear transition classes after transition ends
- if (this.transitionEndEvent) {
- var events = this.transitionEndEvent.split(/\s+/);
- events.forEach(function (event) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["d" /* eventOn */])(currentSlide, event, onceTransEnd);
- });
- }
- // Fallback to setTimeout
- this._animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION);
- }
- },
- created: function created() {
- // Create private non-reactive props
- this._animationTimeout = null;
- },
- mounted: function mounted() {
- // Cache current browser transitionend event name
- this.transitionEndEvent = getTransisionEndEvent(this.$el) || null;
- // Get all slides
- this.updateSlides();
- // Observe child changes so we can update slide list
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_observe_dom__["a" /* default */])(this.$refs.inner, this.updateSlides.bind(this), {
- subtree: false,
- childList: true,
- attributes: true,
- attributeFilter: ['id']
- });
- },
- /* istanbul ignore next: dificult to test */
- beforeDestroy: function beforeDestroy() {
- clearInterval(this.intervalId);
- clearTimeout(this._animationTimeout);
- this.intervalId = null;
- this._animationTimeout = null;
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/carousel/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__carousel__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/carousel/carousel.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__carousel_slide__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/carousel/carousel-slide.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bCarousel: __WEBPACK_IMPORTED_MODULE_0__carousel__["a" /* default */],
- bCarouselSlide: __WEBPACK_IMPORTED_MODULE_1__carousel_slide__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/collapse/collapse.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_listen_on_root__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- // Events we emit on $root
- var EVENT_STATE = 'bv::collapse::state';
- var EVENT_ACCORDION = 'bv::collapse::accordion';
- // Events we listen to on $root
- var EVENT_TOGGLE = 'bv::toggle::collapse';
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_listen_on_root__["a" /* default */]],
- render: function render(h) {
- var content = h(this.tag, {
- class: this.classObject,
- directives: [{ name: 'show', value: this.show }],
- attrs: { id: this.id || null },
- on: { click: this.clickHandler }
- }, [this.$slots.default]);
- return h('transition', {
- props: {
- enterClass: '',
- enterActiveClass: 'collapsing',
- enterToClass: '',
- leaveClass: '',
- leaveActiveClass: 'collapsing',
- leaveToClass: ''
- },
- on: {
- enter: this.onEnter,
- afterEnter: this.onAfterEnter,
- leave: this.onLeave,
- afterLeave: this.onAfterLeave
- }
- }, [content]);
- },
- data: function data() {
- return {
- show: this.visible,
- transitioning: false
- };
- },
- model: {
- prop: 'visible',
- event: 'input'
- },
- props: {
- id: {
- type: String,
- required: true
- },
- isNav: {
- type: Boolean,
- default: false
- },
- accordion: {
- type: String,
- default: null
- },
- visible: {
- type: Boolean,
- default: false
- },
- tag: {
- type: String,
- default: 'div'
- }
- },
- watch: {
- visible: function visible(newVal) {
- if (newVal !== this.show) {
- this.show = newVal;
- }
- },
- show: function show(newVal, oldVal) {
- if (newVal !== oldVal) {
- this.emitState();
- }
- }
- },
- computed: {
- classObject: function classObject() {
- return {
- 'navbar-collapse': this.isNav,
- 'collapse': !this.transitioning,
- 'show': this.show && !this.transitioning
- };
- }
- },
- methods: {
- toggle: function toggle() {
- this.show = !this.show;
- },
- onEnter: function onEnter(el) {
- el.style.height = 0;
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["q" /* reflow */])(el);
- el.style.height = el.scrollHeight + 'px';
- this.transitioning = true;
- // This should be moved out so we can add cancellable events
- this.$emit('show');
- },
- onAfterEnter: function onAfterEnter(el) {
- el.style.height = null;
- this.transitioning = false;
- this.$emit('shown');
- },
- onLeave: function onLeave(el) {
- el.style.height = 'auto';
- el.style.display = 'block';
- el.style.height = el.getBoundingClientRect().height + 'px';
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["q" /* reflow */])(el);
- this.transitioning = true;
- el.style.height = 0;
- // This should be moved out so we can add cancellable events
- this.$emit('hide');
- },
- onAfterLeave: function onAfterLeave(el) {
- el.style.height = null;
- this.transitioning = false;
- this.$emit('hidden');
- },
- emitState: function emitState() {
- this.$emit('input', this.show);
- // Let v-b-toggle know the state of this collapse
- this.$root.$emit(EVENT_STATE, this.id, this.show);
- if (this.accordion && this.show) {
- // Tell the other collapses in this accordion to close
- this.$root.$emit(EVENT_ACCORDION, this.id, this.accordion);
- }
- },
- clickHandler: function clickHandler(evt) {
- // If we are in a nav/navbar, close the collapse when non-disabled link clicked
- var el = evt.target;
- if (!this.isNav || !el || getComputedStyle(this.$el).display !== 'block') {
- return;
- }
- 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')) {
- this.show = false;
- }
- },
- handleToggleEvt: function handleToggleEvt(target) {
- if (target !== this.id) {
- return;
- }
- this.toggle();
- },
- handleAccordionEvt: function handleAccordionEvt(openedId, accordion) {
- if (!this.accordion || accordion !== this.accordion) {
- return;
- }
- if (openedId === this.id) {
- // Open this collapse if not shown
- if (!this.show) {
- this.toggle();
- }
- } else {
- // Close this collapse if shown
- if (this.show) {
- this.toggle();
- }
- }
- },
- handleResize: function handleResize() {
- // Handler for orientation/resize to set collapsed state in nav/navbar
- this.show = getComputedStyle(this.$el).display === 'block';
- }
- },
- created: function created() {
- // Listen for toggle events to open/close us
- this.listenOnRoot(EVENT_TOGGLE, this.handleToggleEvt);
- // Listen to otehr collapses for accordion events
- this.listenOnRoot(EVENT_ACCORDION, this.handleAccordionEvt);
- },
- mounted: function mounted() {
- if (this.isNav && typeof document !== 'undefined') {
- // Set up handlers
- window.addEventListener('resize', this.handleResize, false);
- window.addEventListener('orientationchange', this.handleResize, false);
- this.handleResize();
- }
- this.emitState();
- },
- beforeDestroy: function beforeDestroy() {
- if (this.isNav && typeof document !== 'undefined') {
- window.removeEventListener('resize', this.handleResize, false);
- window.removeEventListener('orientationchange', this.handleResize, false);
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/collapse/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__collapse__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/collapse/collapse.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives_toggle__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/toggle/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bCollapse: __WEBPACK_IMPORTED_MODULE_0__collapse__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
- Vue.use(__WEBPACK_IMPORTED_MODULE_1__directives_toggle__["a" /* default */]);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown-divider.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- tag: {
- type: String,
- default: 'div'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'dropdown-divider',
- attrs: { role: 'separator' }
- }));
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown-header.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- id: {
- type: String,
- default: null
- },
- tag: {
- type: String,
- default: 'h6'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'dropdown-header',
- attrs: { id: props.id || null }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item-button.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- disabled: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- parent = _ref.parent,
- children = _ref.children;
- return h('button', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- props: props,
- staticClass: 'dropdown-item',
- attrs: { role: 'menuitem', type: 'button', disabled: props.disabled },
- on: {
- click: function click(e) {
- parent.$root.$emit('clicked::link', e);
- }
- }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
- var props = Object(__WEBPACK_IMPORTED_MODULE_1__link_link__["c" /* propsFactory */])();
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(__WEBPACK_IMPORTED_MODULE_1__link_link__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- props: props,
- staticClass: 'dropdown-item',
- attrs: { role: 'menuitem' }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css");
- if(typeof content === 'string') content = [[module.i, content, '']];
- // Prepare cssTransformation
- var transform;
- var options = {}
- options.transform = transform
- // add the styles to the DOM
- var update = __webpack_require__("./node_modules/style-loader/lib/addStyles.js")(content, options);
- if(content.locals) module.exports = content.locals;
- // Hot Module Replacement
- if(false) {
- // When the styles change, update the <style> tags
- if(!content.locals) {
- module.hot.accept("!!../../../../css-loader/index.js!./dropdown.css", function() {
- var newContent = require("!!../../../../css-loader/index.js!./dropdown.css");
- if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
- update(newContent);
- });
- }
- // When the module is disposed, remove the <style> tags
- module.hot.dispose(function() { update(); });
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/dropdown/dropdown.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/dropdown.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__button_button__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dropdown_css__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dropdown_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__dropdown_css__);
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_dropdown__["a" /* default */]],
- components: { bButton: __WEBPACK_IMPORTED_MODULE_2__button_button__["a" /* default */] },
- render: function render(h) {
- var split = h(false);
- if (this.split) {
- split = h('b-button', {
- ref: 'button',
- props: {
- disabled: this.disabled,
- variant: this.variant,
- size: this.size
- },
- attrs: {
- id: this.safeId('_BV_button_')
- },
- on: {
- click: this.click
- }
- }, [this.$slots['button-content'] || this.$slots.text || this.text]);
- }
- var toggle = h('b-button', {
- ref: 'toggle',
- class: this.toggleClasses,
- props: {
- variant: this.variant,
- size: this.size,
- disabled: this.disabled
- },
- attrs: {
- id: this.safeId('_BV_toggle_'),
- 'aria-haspopup': 'true',
- 'aria-expanded': this.visible ? 'true' : 'false'
- },
- on: {
- click: this.toggle, // click
- keydown: this.toggle // enter, space, down
- }
- }, [this.split ? h('span', { class: ['sr-only'] }, [this.toggleText]) : this.$slots['button-content'] || this.$slots.text || this.text]);
- var menu = h('div', {
- ref: 'menu',
- class: this.menuClasses,
- attrs: {
- role: this.role,
- 'aria-labelledby': this.safeId(this.split ? '_BV_button_' : '_BV_toggle_')
- },
- on: {
- mouseover: this.onMouseOver,
- keydown: this.onKeydown // tab, up, down, esc
- }
- }, [this.$slots.default]);
- return h('div', { attrs: { id: this.safeId() }, class: this.dropdownClasses }, [split, toggle, menu]);
- },
- props: {
- split: {
- type: Boolean,
- default: false
- },
- toggleText: {
- type: String,
- default: 'Toggle Dropdown'
- },
- size: {
- type: String,
- default: null
- },
- variant: {
- type: String,
- default: null
- },
- menuClass: {
- type: [String, Array],
- default: null
- },
- toggleClass: {
- type: [String, Array],
- default: null
- },
- noCaret: {
- type: Boolean,
- default: false
- },
- role: {
- type: String,
- default: 'menu'
- },
- boundary: {
- // String: `scrollParent`, `window` or `viewport`
- // Object: HTML Element reference
- type: [String, Object],
- default: 'scrollParent'
- }
- },
- computed: {
- dropdownClasses: function dropdownClasses() {
- var position = '';
- // Position `static` is needed to allow menu to "breakout" of the scrollParent boundaries
- // when boundary is anything other than `scrollParent`
- // See https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786
- if (this.boundary !== 'scrollParent' || !this.boundary) {
- position = 'position-static';
- }
- return ['btn-group', 'b-dropdown', 'dropdown', this.dropup ? 'dropup' : '', this.visible ? 'show' : '', position];
- },
- menuClasses: function menuClasses() {
- return ['dropdown-menu', {
- 'dropdown-menu-right': this.right,
- 'show': this.visible
- }, this.menuClass];
- },
- toggleClasses: function toggleClasses() {
- return [{
- 'dropdown-toggle': !this.noCaret || this.split,
- 'dropdown-toggle-split': this.split
- }, this.toggleClass];
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/dropdown/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dropdown_item__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__dropdown_item_button__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item-button.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dropdown_header__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown-header.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__dropdown_divider__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/dropdown-divider.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bDropdown: __WEBPACK_IMPORTED_MODULE_0__dropdown__["a" /* default */],
- bDd: __WEBPACK_IMPORTED_MODULE_0__dropdown__["a" /* default */],
- bDropdownItem: __WEBPACK_IMPORTED_MODULE_1__dropdown_item__["a" /* default */],
- bDdItem: __WEBPACK_IMPORTED_MODULE_1__dropdown_item__["a" /* default */],
- bDropdownItemButton: __WEBPACK_IMPORTED_MODULE_2__dropdown_item_button__["a" /* default */],
- bDropdownItemBtn: __WEBPACK_IMPORTED_MODULE_2__dropdown_item_button__["a" /* default */],
- bDdItemButton: __WEBPACK_IMPORTED_MODULE_2__dropdown_item_button__["a" /* default */],
- bDdItemBtn: __WEBPACK_IMPORTED_MODULE_2__dropdown_item_button__["a" /* default */],
- bDropdownHeader: __WEBPACK_IMPORTED_MODULE_3__dropdown_header__["a" /* default */],
- bDdHeader: __WEBPACK_IMPORTED_MODULE_3__dropdown_header__["a" /* default */],
- bDropdownDivider: __WEBPACK_IMPORTED_MODULE_4__dropdown_divider__["a" /* default */],
- bDdDivider: __WEBPACK_IMPORTED_MODULE_4__dropdown_divider__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_5__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_5__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/embed/embed.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- 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; }
- var props = {
- type: {
- type: String,
- default: 'iframe',
- validator: function validator(str) {
- return Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy'], str);
- }
- },
- tag: {
- type: String,
- default: 'div'
- },
- aspect: {
- type: String,
- default: '16by9'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, {
- ref: data.ref,
- staticClass: 'embed-responsive',
- class: _defineProperty({}, 'embed-responsive-' + props.aspect, Boolean(props.aspect))
- }, [h(props.type, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { ref: '', staticClass: 'embed-responsive-item' }), children)]);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/embed/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__embed__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/embed/embed.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bEmbed: __WEBPACK_IMPORTED_MODULE_0__embed__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox-group.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form_options__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-options.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__form_checkbox__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- 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 */]],
- components: { bFormCheckbox: __WEBPACK_IMPORTED_MODULE_6__form_checkbox__["a" /* default */] },
- render: function render(h) {
- var _this = this;
- var $slots = this.$slots;
- var checks = this.formOptions.map(function (option, idx) {
- return h('b-form-checkbox', {
- key: 'check_' + idx + '_opt',
- props: {
- id: _this.safeId('_BV_check_' + idx + '_opt_'),
- name: _this.name,
- value: option.value,
- required: _this.name && _this.required,
- disabled: option.disabled
- }
- }, [h('span', { domProps: { innerHTML: option.text } })]);
- });
- return h('div', {
- class: this.groupClasses,
- attrs: {
- id: this.safeId(),
- role: 'group',
- tabindex: '-1',
- 'aria-required': this.required ? 'true' : null,
- 'aria-invalid': this.computedAriaInvalid
- }
- }, [$slots.first, checks, $slots.default]);
- },
- data: function data() {
- return {
- localChecked: this.checked || [],
- // Flag for children
- is_RadioCheckGroup: true
- };
- },
- model: {
- prop: 'checked',
- event: 'input'
- },
- props: {
- checked: {
- type: [String, Number, Object, Array, Boolean],
- default: null
- },
- validated: {
- type: Boolean,
- default: false
- },
- ariaInvalid: {
- type: [Boolean, String],
- default: false
- },
- stacked: {
- type: Boolean,
- default: false
- },
- buttons: {
- // Render as button style
- type: Boolean,
- default: false
- },
- buttonVariant: {
- // Only applicable when rendered with button style
- type: String,
- default: 'secondary'
- }
- },
- watch: {
- checked: function checked(newVal, oldVal) {
- this.localChecked = this.checked;
- },
- localChecked: function localChecked(newVal, oldVal) {
- this.$emit('input', newVal);
- }
- },
- computed: {
- groupClasses: function groupClasses() {
- if (this.buttons) {
- return ['btn-group-toggle', this.stacked ? 'btn-group-vertical' : 'btn-group', this.size ? 'btn-group-' + this.size : '', this.validated ? 'was-validated' : ''];
- }
- return [this.sizeFormClass, this.stacked && this.custom ? 'custom-controls-stacked' : '', this.validated ? 'was-validated' : ''];
- },
- computedAriaInvalid: function computedAriaInvalid() {
- if (this.ariaInvalid === true || this.ariaInvalid === 'true' || this.ariaInvalid === '') {
- return 'true';
- }
- return this.get_State === false ? 'true' : null;
- },
- get_State: function get_State() {
- // Child radios sniff this value
- return this.computedState;
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form_radio_check__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-radio-check.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_loose_equal__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/loose-equal.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- 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 */]],
- render: function render(h) {
- var _this = this;
- var input = h('input', {
- ref: 'check',
- class: [this.is_ButtonMode ? '' : this.is_Plain ? 'form-check-input' : 'custom-control-input', this.get_StateClass],
- directives: [{
- name: 'model',
- rawName: 'v-model',
- value: this.computedLocalChecked,
- expression: 'computedLocalChecked'
- }],
- attrs: {
- id: this.safeId(),
- type: 'checkbox',
- name: this.get_Name,
- disabled: this.is_Disabled,
- required: this.is_Required,
- autocomplete: 'off',
- 'true-value': this.value,
- 'false-value': this.uncheckedValue,
- 'aria-required': this.is_Required ? 'true' : null
- },
- domProps: { value: this.value, checked: this.is_Checked },
- on: {
- focus: this.handleFocus,
- blur: this.handleFocus,
- change: this.emitChange,
- __c: function __c(evt) {
- var $$a = _this.computedLocalChecked;
- var $$el = evt.target;
- if (Object(__WEBPACK_IMPORTED_MODULE_6__utils_array__["d" /* isArray */])($$a)) {
- // Multiple checkbox
- var $$v = _this.value;
- var $$i = _this._i($$a, $$v); // Vue's 'loose' Array.indexOf
- if ($$el.checked) {
- // Append value to array
- $$i < 0 && (_this.computedLocalChecked = $$a.concat([$$v]));
- } else {
- // Remove value from array
- $$i > -1 && (_this.computedLocalChecked = $$a.slice(0, $$i).concat($$a.slice($$i + 1)));
- }
- } else {
- // Single checkbox
- _this.computedLocalChecked = $$el.checked ? _this.value : _this.uncheckedValue;
- }
- }
- }
- });
- var description = h(this.is_ButtonMode ? 'span' : 'label', {
- class: this.is_ButtonMode ? null : this.is_Plain ? 'form-check-label' : 'custom-control-label',
- attrs: { for: this.is_ButtonMode ? null : this.safeId() }
- }, [this.$slots.default]);
- if (!this.is_ButtonMode) {
- return h('div', {
- 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 }]
- }, [input, description]);
- } else {
- return h('label', { class: [this.buttonClasses] }, [input, description]);
- }
- },
- props: {
- value: {
- default: true
- },
- uncheckedValue: {
- // Not applicable in multi-check mode
- default: false
- },
- indeterminate: {
- // Not applicable in multi-check mode
- type: Boolean,
- default: false
- }
- },
- computed: {
- labelClasses: function labelClasses() {
- return ['custom-control', 'custom-checkbox', this.get_Size ? 'form-control-' + this.get_Size : '', this.get_StateClass];
- },
- is_Checked: function is_Checked() {
- var checked = this.computedLocalChecked;
- if (Object(__WEBPACK_IMPORTED_MODULE_6__utils_array__["d" /* isArray */])(checked)) {
- for (var i = 0; i < checked.length; i++) {
- if (Object(__WEBPACK_IMPORTED_MODULE_7__utils_loose_equal__["a" /* default */])(checked[i], this.value)) {
- return true;
- }
- }
- return false;
- } else {
- return Object(__WEBPACK_IMPORTED_MODULE_7__utils_loose_equal__["a" /* default */])(checked, this.value);
- }
- }
- },
- watch: {
- computedLocalChecked: function computedLocalChecked(newVal, oldVal) {
- if (Object(__WEBPACK_IMPORTED_MODULE_7__utils_loose_equal__["a" /* default */])(newVal, oldVal)) {
- return;
- }
- this.$emit('input', newVal);
- this.$emit('update:indeterminate', this.$refs.check.indeterminate);
- },
- checked: function checked(newVal, oldVal) {
- if (this.is_Child || Object(__WEBPACK_IMPORTED_MODULE_7__utils_loose_equal__["a" /* default */])(newVal, oldVal)) {
- return;
- }
- this.computedLocalChecked = newVal;
- },
- indeterminate: function indeterminate(newVal, oldVal) {
- this.setIndeterminate(newVal);
- }
- },
- methods: {
- emitChange: function emitChange(_ref) {
- var checked = _ref.target.checked;
- // Change event is only fired via user interaction
- // And we only emit the value of this checkbox
- if (this.is_Child || Object(__WEBPACK_IMPORTED_MODULE_6__utils_array__["d" /* isArray */])(this.computedLocalChecked)) {
- this.$emit('change', checked ? this.value : null);
- if (this.is_Child) {
- // If we are a child of form-checkbbox-group, emit change on parent
- this.$parent.$emit('change', this.computedLocalChecked);
- }
- } else {
- // Single radio mode supports unchecked value
- this.$emit('change', checked ? this.value : this.uncheckedValue);
- }
- this.$emit('update:indeterminate', this.$refs.check.indeterminate);
- },
- setIndeterminate: function setIndeterminate(state) {
- // Indeterminate only supported in single checkbox mode
- if (this.is_Child || Object(__WEBPACK_IMPORTED_MODULE_6__utils_array__["d" /* isArray */])(this.computedLocalChecked)) {
- return;
- }
- this.$refs.check.indeterminate = state;
- // Emit update event to prop
- this.$emit('update:indeterminate', this.$refs.check.indeterminate);
- }
- },
- mounted: function mounted() {
- // Set initial indeterminate state
- this.setIndeterminate(this.indeterminate);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-checkbox/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_checkbox__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__form_checkbox_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox-group.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bFormCheckbox: __WEBPACK_IMPORTED_MODULE_0__form_checkbox__["a" /* default */],
- bCheckbox: __WEBPACK_IMPORTED_MODULE_0__form_checkbox__["a" /* default */],
- bCheck: __WEBPACK_IMPORTED_MODULE_0__form_checkbox__["a" /* default */],
- bFormCheckboxGroup: __WEBPACK_IMPORTED_MODULE_1__form_checkbox_group__["a" /* default */],
- bCheckboxGroup: __WEBPACK_IMPORTED_MODULE_1__form_checkbox_group__["a" /* default */],
- bCheckGroup: __WEBPACK_IMPORTED_MODULE_1__form_checkbox_group__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-file/form-file.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_custom__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- 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 */]],
- render: function render(h) {
- // Form Input
- var input = h('input', {
- ref: 'input',
- class: [{
- 'form-control-file': this.plain,
- 'custom-file-input': this.custom,
- focus: this.custom && this.hasFocus
- }, this.stateClass],
- attrs: {
- type: 'file',
- id: this.safeId(),
- name: this.name,
- disabled: this.disabled,
- required: this.required,
- capture: this.capture || null,
- accept: this.accept || null,
- multiple: this.multiple,
- webkitdirectory: this.directory,
- 'aria-required': this.required ? 'true' : null,
- 'aria-describedby': this.plain ? null : this.safeId('_BV_file_control_')
- },
- on: {
- change: this.onFileChange,
- focusin: this.focusHandler,
- focusout: this.focusHandler
- }
- });
- if (this.plain) {
- return input;
- }
- // Overlay Labels
- var label = h('label', {
- class: ['custom-file-label', this.dragging ? 'dragging' : null],
- attrs: {
- id: this.safeId('_BV_file_control_')
- }
- }, this.selectLabel);
- // Return rendered custom file input
- return h('div', {
- class: ['custom-file', 'b-form-file', this.stateClass],
- attrs: { id: this.safeId('_BV_file_outer_') },
- on: { dragover: this.dragover }
- }, [input, label]);
- },
- data: function data() {
- return {
- selectedFile: null,
- dragging: false,
- hasFocus: false
- };
- },
- props: {
- accept: {
- type: String,
- default: ''
- },
- // Instruct input to capture from camera
- capture: {
- type: Boolean,
- default: false
- },
- placeholder: {
- type: String,
- default: undefined
- },
- multiple: {
- type: Boolean,
- default: false
- },
- directory: {
- type: Boolean,
- default: false
- },
- noTraverse: {
- type: Boolean,
- default: false
- },
- noDrop: {
- type: Boolean,
- default: false
- }
- },
- computed: {
- selectLabel: function selectLabel() {
- // No file choosen
- if (!this.selectedFile || this.selectedFile.length === 0) {
- return this.placeholder;
- }
- // Multiple files
- if (this.multiple) {
- if (this.selectedFile.length === 1) {
- return this.selectedFile[0].name;
- }
- return this.selectedFile.map(function (file) {
- return file.name;
- }).join(', ');
- }
- // Single file
- return this.selectedFile.name;
- }
- },
- watch: {
- selectedFile: function selectedFile(newVal, oldVal) {
- if (newVal === oldVal) {
- return;
- }
- if (!newVal && this.multiple) {
- this.$emit('input', []);
- } else {
- this.$emit('input', newVal);
- }
- }
- },
- methods: {
- focusHandler: function focusHandler(evt) {
- // Boostrap v4.beta doesn't have focus styling for custom file input
- // Firefox has a borked '[type=file]:focus ~ sibling' selector issue,
- // So we add a 'focus' class to get around these "bugs"
- if (this.plain || evt.type === 'focusout') {
- this.hasFocus = false;
- } else {
- // Add focus styling for custom file input
- this.hasFocus = true;
- }
- },
- reset: function reset() {
- try {
- // Wrapped in try in case IE < 11 craps out
- this.$refs.input.value = '';
- } catch (e) {}
- // IE < 11 doesn't support setting input.value to '' or null
- // So we use this little extra hack to reset the value, just in case
- // This also appears to work on modern browsers as well.
- this.$refs.input.type = '';
- this.$refs.input.type = 'file';
- this.selectedFile = this.multiple ? [] : null;
- },
- onFileChange: function onFileChange(evt) {
- var _this = this;
- // Always emit original event
- this.$emit('change', evt);
- // Check if special `items` prop is available on event (drop mode)
- // Can be disabled by setting no-traverse
- var items = evt.dataTransfer && evt.dataTransfer.items;
- if (items && !this.noTraverse) {
- var queue = [];
- for (var i = 0; i < items.length; i++) {
- var item = items[i].webkitGetAsEntry();
- if (item) {
- queue.push(this.traverseFileTree(item));
- }
- }
- Promise.all(queue).then(function (filesArr) {
- _this.setFiles(Object(__WEBPACK_IMPORTED_MODULE_4__utils_array__["c" /* from */])(filesArr));
- });
- return;
- }
- // Normal handling
- this.setFiles(evt.target.files || evt.dataTransfer.files);
- },
- setFiles: function setFiles(files) {
- if (!files) {
- this.selectedFile = null;
- return;
- }
- if (!this.multiple) {
- this.selectedFile = files[0];
- return;
- }
- // Convert files to array
- var filesArray = [];
- for (var i = 0; i < files.length; i++) {
- if (files[i].type.match(this.accept)) {
- filesArray.push(files[i]);
- }
- }
- this.selectedFile = filesArray;
- },
- dragover: function dragover(evt) {
- evt.preventDefault();
- evt.stopPropagation();
- if (this.noDrop || !this.custom) {
- return;
- }
- this.dragging = true;
- evt.dataTransfer.dropEffect = 'copy';
- },
- dragleave: function dragleave(evt) {
- evt.preventDefault();
- evt.stopPropagation();
- this.dragging = false;
- },
- drop: function drop(evt) {
- evt.preventDefault();
- evt.stopPropagation();
- if (this.noDrop) {
- return;
- }
- this.dragging = false;
- if (evt.dataTransfer.files && evt.dataTransfer.files.length > 0) {
- this.onFileChange(evt);
- }
- },
- traverseFileTree: function traverseFileTree(item, path) {
- var _this2 = this;
- // Based on http://stackoverflow.com/questions/3590058
- return new Promise(function (resolve) {
- path = path || '';
- if (item.isFile) {
- // Get file
- item.file(function (file) {
- file.$path = path; // Inject $path to file obj
- resolve(file);
- });
- } else if (item.isDirectory) {
- // Get folder contents
- item.createReader().readEntries(function (entries) {
- var queue = [];
- for (var i = 0; i < entries.length; i++) {
- queue.push(_this2.traverseFileTree(entries[i], path + item.name + '/'));
- }
- Promise.all(queue).then(function (filesArr) {
- resolve(Object(__WEBPACK_IMPORTED_MODULE_4__utils_array__["c" /* from */])(filesArr));
- });
- });
- }
- });
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-file/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_file__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-file/form-file.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bFormFile: __WEBPACK_IMPORTED_MODULE_0__form_file__["a" /* default */],
- bFile: __WEBPACK_IMPORTED_MODULE_0__form_file__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-group/form-group.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__layout_form_row__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/form-row.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__form_form_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-text.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__form_form_invalid_feedback__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-invalid-feedback.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__form_form_valid_feedback__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-valid-feedback.js");
- // Selector for finding firt input in the form-group
- var SELECTOR = 'input:not(:disabled),textarea:not(:disabled),select:not(:disabled)';
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_form_state__["a" /* default */]],
- 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 */] },
- render: function render(h) {
- var $slots = this.$slots;
- // Label / Legend
- var legend = h(false);
- if (this.hasLabel) {
- var children = $slots['label'];
- var legendTag = this.labelFor ? 'label' : 'legend';
- var legendDomProps = children ? {} : { innerHTML: this.label };
- var legendAttrs = { id: this.labelId, for: this.labelFor || null };
- var legendClick = this.labelFor || this.labelSrOnly ? {} : { click: this.legendClick };
- if (this.horizontal) {
- // Horizontal layout with label
- if (this.labelSrOnly) {
- // SR Only we wrap label/legend in a div to preserve layout
- children = h(legendTag, { class: ['sr-only'], attrs: legendAttrs, domProps: legendDomProps }, children);
- legend = h('div', { class: this.labelLayoutClasses }, [children]);
- } else {
- legend = h(legendTag, {
- class: [this.labelLayoutClasses, this.labelClasses],
- attrs: legendAttrs,
- domProps: legendDomProps,
- on: legendClick
- }, children);
- }
- } else {
- // Vertical layout with label
- legend = h(legendTag, {
- class: this.labelSrOnly ? ['sr-only'] : this.labelClasses,
- attrs: legendAttrs,
- domProps: legendDomProps,
- on: legendClick
- }, children);
- }
- } else if (this.horizontal) {
- // No label but has horizontal layout, so we need a spacer element for layout
- legend = h('div', { class: this.labelLayoutClasses });
- }
- // Invalid feeback text (explicitly hidden if state is valid)
- var invalidFeedback = h(false);
- if (this.hasInvalidFeedback) {
- var domProps = {};
- if (!$slots['invalid-feedback'] && !$slots['feedback']) {
- domProps = { innerHTML: this.invalidFeedback || this.feedback || '' };
- }
- invalidFeedback = h('b-form-invalid-feedback', {
- props: {
- id: this.invalidFeedbackId,
- forceShow: this.computedState === false
- },
- attrs: {
- role: 'alert',
- 'aria-live': 'assertive',
- 'aria-atomic': 'true'
- },
- domProps: domProps
- }, $slots['invalid-feedback'] || $slots['feedback']);
- }
- // Valid feeback text (explicitly hidden if state is invalid)
- var validFeedback = h(false);
- if (this.hasValidFeedback) {
- var _domProps = $slots['valid-feedback'] ? {} : { innerHTML: this.validFeedback || '' };
- validFeedback = h('b-form-valid-feedback', {
- props: {
- id: this.validFeedbackId,
- forceShow: this.computedState === true
- },
- attrs: {
- role: 'alert',
- 'aria-live': 'assertive',
- 'aria-atomic': 'true'
- },
- domProps: _domProps
- }, $slots['valid-feedback']);
- }
- // Form help text (description)
- var description = h(false);
- if (this.hasDescription) {
- var _domProps2 = $slots['description'] ? {} : { innerHTML: this.description || '' };
- description = h('b-form-text', { attrs: { id: this.descriptionId }, domProps: _domProps2 }, $slots['description']);
- }
- // Build content layout
- var content = h('div', {
- ref: 'content',
- class: this.inputLayoutClasses,
- attrs: this.labelFor ? {} : { role: 'group', 'aria-labelledby': this.labelId }
- }, [$slots['default'], invalidFeedback, validFeedback, description]);
- // Generate main form-group wrapper
- return h(this.labelFor ? 'div' : 'fieldset', {
- class: this.groupClasses,
- attrs: {
- id: this.safeId(),
- disabled: this.disabled,
- role: 'group',
- 'aria-invalid': this.computedState === false ? 'true' : null,
- 'aria-labelledby': this.labelId,
- 'aria-describedby': this.labelFor ? null : this.describedByIds
- }
- }, this.horizontal ? [h('b-form-row', {}, [legend, content])] : [legend, content]);
- },
- props: {
- horizontal: {
- type: Boolean,
- default: false
- },
- labelCols: {
- type: [Number, String],
- default: 3,
- validator: function validator(value) {
- if (Number(value) >= 1 && Number(value) <= 11) {
- return true;
- }
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_warn__["a" /* default */])('b-form-group: label-cols must be a value between 1 and 11');
- return false;
- }
- },
- breakpoint: {
- type: String,
- default: 'sm'
- },
- labelTextAlign: {
- type: String,
- default: null
- },
- label: {
- type: String,
- default: null
- },
- labelFor: {
- type: String,
- default: null
- },
- labelSize: {
- type: String,
- default: null
- },
- labelSrOnly: {
- type: Boolean,
- default: false
- },
- labelClass: {
- type: [String, Array],
- default: null
- },
- description: {
- type: String,
- default: null
- },
- invalidFeedback: {
- type: String,
- default: null
- },
- feedback: {
- // Deprecated in favor of invalid-feedback
- type: String,
- default: null
- },
- validFeedback: {
- type: String,
- default: null
- },
- validated: {
- type: Boolean,
- default: false
- }
- },
- computed: {
- groupClasses: function groupClasses() {
- return ['b-form-group', 'form-group', this.validated ? 'was-validated' : null, this.stateClass];
- },
- labelClasses: function labelClasses() {
- 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];
- },
- labelLayoutClasses: function labelLayoutClasses() {
- return [this.horizontal ? 'col-' + this.breakpoint + '-' + this.labelCols : null];
- },
- inputLayoutClasses: function inputLayoutClasses() {
- return [this.horizontal ? 'col-' + this.breakpoint + '-' + (12 - Number(this.labelCols)) : null];
- },
- hasLabel: function hasLabel() {
- return this.label || this.$slots['label'];
- },
- hasDescription: function hasDescription() {
- return this.description || this.$slots['description'];
- },
- hasInvalidFeedback: function hasInvalidFeedback() {
- if (this.computedState === true) {
- // If the form-group state is explicityly valid, we return false
- return false;
- }
- return this.invalidFeedback || this.feedback || this.$slots['invalid-feedback'] || this.$slots['feedback'];
- },
- hasValidFeedback: function hasValidFeedback() {
- if (this.computedState === false) {
- // If the form-group state is explicityly invalid, we return false
- return false;
- }
- return this.validFeedback || this.$slots['valid-feedback'];
- },
- labelId: function labelId() {
- return this.hasLabel ? this.safeId('_BV_label_') : null;
- },
- descriptionId: function descriptionId() {
- return this.hasDescription ? this.safeId('_BV_description_') : null;
- },
- invalidFeedbackId: function invalidFeedbackId() {
- return this.hasInvalidFeedback ? this.safeId('_BV_feedback_invalid_') : null;
- },
- validFeedbackId: function validFeedbackId() {
- return this.hasValidFeedback ? this.safeId('_BV_feedback_valid_') : null;
- },
- describedByIds: function describedByIds() {
- return [this.descriptionId, this.invalidFeedbackId, this.validFeedbackId].filter(function (i) {
- return i;
- }).join(' ') || null;
- }
- },
- watch: {
- describedByIds: function describedByIds(add, remove) {
- if (add !== remove) {
- this.setInputDescribedBy(add, remove);
- }
- }
- },
- methods: {
- legendClick: function legendClick(evt) {
- var tagName = evt.target ? evt.target.tagName : '';
- if (/^(input|select|textarea|label)$/i.test(tagName)) {
- // If clicked an input inside legend, we just let the default happen
- return;
- }
- // Focus the first non-disabled visible input when the legend element is clicked
- var inputs = Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["u" /* selectAll */])(SELECTOR, this.$refs.content).filter(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["m" /* isVisible */]);
- if (inputs[0] && inputs[0].focus) {
- inputs[0].focus();
- }
- },
- setInputDescribedBy: function setInputDescribedBy(add, remove) {
- // Sets the `aria-describedby` attribute on the input if label-for is set.
- // Optionally accepts a string of IDs to remove as the second parameter
- if (this.labelFor && typeof document !== 'undefined') {
- var input = Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["t" /* select */])('#' + this.labelFor, this.$refs.content);
- if (input) {
- var adb = 'aria-describedby';
- var ids = (Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["e" /* getAttr */])(input, adb) || '').split(/\s+/);
- remove = (remove || '').split(/\s+/);
- // Update ID list, preserving any original IDs
- ids = ids.filter(function (id) {
- return remove.indexOf(id) === -1;
- }).concat(add || '').join(' ').trim();
- if (ids) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(input, adb, ids);
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["r" /* removeAttr */])(input, adb);
- }
- }
- }
- }
- },
- mounted: function mounted() {
- var _this = this;
- this.$nextTick(function () {
- // Set the adia-describedby IDs on the input specified by label-for
- // We do this in a nextTick to ensure the children have finished rendering
- _this.setInputDescribedBy(_this.describedByIds);
- });
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-group/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-group/form-group.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bFormGroup: __WEBPACK_IMPORTED_MODULE_0__form_group__["a" /* default */],
- bFormFieldset: __WEBPACK_IMPORTED_MODULE_0__form_group__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-input/form-input.css":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/form-input/form-input.css");
- if(typeof content === 'string') content = [[module.i, content, '']];
- // Prepare cssTransformation
- var transform;
- var options = {}
- options.transform = transform
- // add the styles to the DOM
- var update = __webpack_require__("./node_modules/style-loader/lib/addStyles.js")(content, options);
- if(content.locals) module.exports = content.locals;
- // Hot Module Replacement
- if(false) {
- // When the styles change, update the <style> tags
- if(!content.locals) {
- module.hot.accept("!!../../../../css-loader/index.js!./form-input.css", function() {
- var newContent = require("!!../../../../css-loader/index.js!./form-input.css");
- if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
- update(newContent);
- });
- }
- // When the module is disposed, remove the <style> tags
- module.hot.dispose(function() { update(); });
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-input/form-input.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__form_input_css__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-input/form-input.css");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__form_input_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__form_input_css__);
- // Import styles
- // Valid supported input types
- var TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week'];
- /* harmony default export */ __webpack_exports__["a"] = ({
- 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 */]],
- render: function render(h) {
- return h('input', {
- ref: 'input',
- class: this.inputClass,
- attrs: {
- id: this.safeId(),
- name: this.name,
- type: this.localType,
- disabled: this.disabled,
- required: this.required,
- readonly: this.readonly || this.plaintext,
- placeholder: this.placeholder,
- autocomplete: this.autocomplete || null,
- 'aria-required': this.required ? 'true' : null,
- 'aria-invalid': this.computedAriaInvalid,
- value: this.value
- },
- on: {
- input: this.onInput,
- change: this.onChange
- }
- });
- },
- props: {
- value: {
- default: null
- },
- type: {
- type: String,
- default: 'text',
- validator: function validator(type) {
- return Object(__WEBPACK_IMPORTED_MODULE_4__utils_array__["a" /* arrayIncludes */])(TYPES, type);
- }
- },
- ariaInvalid: {
- type: [Boolean, String],
- default: false
- },
- readonly: {
- type: Boolean,
- default: false
- },
- plaintext: {
- type: Boolean,
- default: false
- },
- autocomplete: {
- type: String,
- default: null
- },
- placeholder: {
- type: String,
- default: null
- },
- formatter: {
- type: Function
- },
- lazyFormatter: {
- type: Boolean,
- default: false
- }
- },
- computed: {
- localType: function localType() {
- // We only allow certain types
- return Object(__WEBPACK_IMPORTED_MODULE_4__utils_array__["a" /* arrayIncludes */])(TYPES, this.type) ? this.type : 'text';
- },
- inputClass: function inputClass() {
- return [this.plaintext ? 'form-control-plaintext' : 'form-control', this.sizeFormClass, this.stateClass];
- },
- computedAriaInvalid: function computedAriaInvalid() {
- if (!this.ariaInvalid || this.ariaInvalid === 'false') {
- // this.ariaInvalid is null or false or 'false'
- return this.computedState === false ? 'true' : null;
- }
- if (this.ariaInvalid === true) {
- // User wants explicit aria-invalid=true
- return 'true';
- }
- // Most likely a string value (which could be 'true')
- return this.ariaInvalid;
- }
- },
- mounted: function mounted() {
- if (this.value) {
- var fValue = this.format(this.value, null);
- this.setValue(fValue);
- }
- },
- watch: {
- value: function value(newVal) {
- if (this.lazyFormatter) {
- this.setValue(newVal);
- } else {
- var fValue = this.format(newVal, null);
- this.setValue(fValue);
- }
- }
- },
- methods: {
- format: function format(value, e) {
- if (this.formatter) {
- return this.formatter(value, e);
- }
- return value;
- },
- setValue: function setValue(value) {
- this.$emit('input', value);
- // When formatter removes last typed character, value of text input should update to formatted value
- this.$refs.input.value = value;
- },
- onInput: function onInput(evt) {
- var value = evt.target.value;
- if (this.lazyFormatter) {
- this.setValue(value);
- } else {
- var fValue = this.format(value, evt);
- this.setValue(fValue);
- }
- },
- onChange: function onChange(evt) {
- var fValue = this.format(evt.target.value, evt);
- this.setValue(fValue);
- this.$emit('change', fValue);
- },
- focus: function focus() {
- if (!this.disabled) {
- this.$el.focus();
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-input/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_input__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-input/form-input.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bFormInput: __WEBPACK_IMPORTED_MODULE_0__form_input__["a" /* default */],
- bInput: __WEBPACK_IMPORTED_MODULE_0__form_input__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-radio/form-radio-group.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form_options__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-options.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__form_radio__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-radio/form-radio.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- 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 */]],
- components: { bFormRadio: __WEBPACK_IMPORTED_MODULE_6__form_radio__["a" /* default */] },
- render: function render(h) {
- var _this = this;
- var $slots = this.$slots;
- var radios = this.formOptions.map(function (option, idx) {
- return h('b-form-radio', {
- key: 'radio_' + idx + '_opt',
- props: {
- id: _this.safeId('_BV_radio_' + idx + '_opt_'),
- name: _this.name,
- value: option.value,
- required: Boolean(_this.name && _this.required),
- disabled: option.disabled
- }
- }, [h('span', { domProps: { innerHTML: option.text } })]);
- });
- return h('div', {
- class: this.groupClasses,
- attrs: {
- id: this.safeId(),
- role: 'radiogroup',
- tabindex: '-1',
- 'aria-required': this.required ? 'true' : null,
- 'aria-invalid': this.computedAriaInvalid
- }
- }, [$slots.first, radios, $slots.default]);
- },
- data: function data() {
- return {
- localChecked: this.checked,
- // Flag for children
- is_RadioCheckGroup: true
- };
- },
- model: {
- prop: 'checked',
- event: 'input'
- },
- props: {
- checked: {
- type: [String, Object, Number, Boolean],
- default: null
- },
- validated: {
- // Used for applying hte `was-validated` class to the group
- type: Boolean,
- default: false
- },
- ariaInvalid: {
- type: [Boolean, String],
- default: false
- },
- stacked: {
- type: Boolean,
- default: false
- },
- buttons: {
- // Render as button style
- type: Boolean,
- default: false
- },
- buttonVariant: {
- // Only applicable when rendered with button style
- type: String,
- default: 'secondary'
- }
- },
- watch: {
- checked: function checked(newVal, oldVal) {
- this.localChecked = this.checked;
- },
- localChecked: function localChecked(newVal, oldVal) {
- this.$emit('input', newVal);
- }
- },
- computed: {
- groupClasses: function groupClasses() {
- if (this.buttons) {
- return ['btn-group-toggle', this.stacked ? 'btn-group-vertical' : 'btn-group', this.size ? 'btn-group-' + this.size : '', this.validated ? 'was-validated' : ''];
- }
- return [this.sizeFormClass, this.stacked && this.custom ? 'custom-controls-stacked' : '', this.validated ? 'was-validated' : ''];
- },
- computedAriaInvalid: function computedAriaInvalid() {
- if (this.ariaInvalid === true || this.ariaInvalid === 'true' || this.ariaInvalid === '') {
- return 'true';
- }
- return this.get_State === false ? 'true' : null;
- },
- get_State: function get_State() {
- // Required by child radios
- return this.computedState;
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-radio/form-radio.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_radio_check__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-radio-check.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_loose_equal__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/loose-equal.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- 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 */]],
- render: function render(h) {
- var _this = this;
- var input = h('input', {
- ref: 'radio',
- class: [this.is_ButtonMode ? '' : this.is_Plain ? 'form-check-input' : 'custom-control-input', this.get_StateClass],
- directives: [{
- name: 'model',
- rawName: 'v-model',
- value: this.computedLocalChecked,
- expression: 'computedLocalChecked'
- }],
- attrs: {
- id: this.safeId(),
- type: 'radio',
- name: this.get_Name,
- required: this.get_Name && this.is_Required,
- disabled: this.is_Disabled,
- autocomplete: 'off'
- },
- domProps: {
- value: this.value,
- checked: Object(__WEBPACK_IMPORTED_MODULE_4__utils_loose_equal__["a" /* default */])(this.computedLocalChecked, this.value)
- },
- on: {
- focus: this.handleFocus,
- blur: this.handleFocus,
- change: this.emitChange,
- __c: function __c(evt) {
- _this.computedLocalChecked = _this.value;
- }
- }
- });
- var description = h(this.is_ButtonMode ? 'span' : 'label', {
- class: this.is_ButtonMode ? null : this.is_Plain ? 'form-check-label' : 'custom-control-label',
- attrs: { for: this.is_ButtonMode ? null : this.safeId() }
- }, [this.$slots.default]);
- if (!this.is_ButtonMode) {
- return h('div', {
- 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 }]
- }, [input, description]);
- } else {
- return h('label', { class: [this.buttonClasses] }, [input, description]);
- }
- },
- watch: {
- // Radio Groups can only have a single value, so our watchers are simple
- checked: function checked(newVal, oldVal) {
- this.computedLocalChecked = newVal;
- },
- computedLocalChceked: function computedLocalChceked(newVal, oldVal) {
- this.$emit('input', this.computedLocalChceked);
- }
- },
- computed: {
- is_Checked: function is_Checked() {
- return Object(__WEBPACK_IMPORTED_MODULE_4__utils_loose_equal__["a" /* default */])(this.value, this.computedLocalChecked);
- },
- labelClasses: function labelClasses() {
- // Specific to radio
- return [this.get_Size ? 'form-control-' + this.get_Size : '', 'custom-control', 'custom-radio', this.get_StateClass];
- }
- },
- methods: {
- emitChange: function emitChange(_ref) {
- var checked = _ref.target.checked;
- // Change is only emitted on user interaction
- this.$emit('change', checked ? this.value : null);
- // If this is a child of form-radio-group, we emit a change event on it as well
- if (this.is_Child) {
- this.$parent.$emit('change', this.computedLocalChecked);
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-radio/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_radio__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-radio/form-radio.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__form_radio_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-radio/form-radio-group.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bFormRadio: __WEBPACK_IMPORTED_MODULE_0__form_radio__["a" /* default */],
- bRadio: __WEBPACK_IMPORTED_MODULE_0__form_radio__["a" /* default */],
- bFormRadioGroup: __WEBPACK_IMPORTED_MODULE_1__form_radio_group__["a" /* default */],
- bRadioGroup: __WEBPACK_IMPORTED_MODULE_1__form_radio_group__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-select/form-select.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form_options__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-options.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_form_custom__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- 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 */]],
- render: function render(h) {
- var _this = this;
- var $slots = this.$slots;
- var options = this.formOptions.map(function (option, index) {
- return h('option', {
- key: 'option_' + index + '_opt',
- attrs: { disabled: Boolean(option.disabled) },
- domProps: { innerHTML: option.text, value: option.value }
- });
- });
- return h('select', {
- ref: 'input',
- class: this.inputClass,
- directives: [{
- name: 'model',
- rawName: 'v-model',
- value: this.localValue,
- expression: 'localValue'
- }],
- attrs: {
- id: this.safeId(),
- name: this.name,
- multiple: this.multiple || null,
- size: this.computedSelectSize,
- disabled: this.disabled,
- required: this.required,
- 'aria-required': this.required ? 'true' : null,
- 'aria-invalid': this.computedAriaInvalid
- },
- on: {
- change: function change(evt) {
- var target = evt.target;
- var selectedVal = Object(__WEBPACK_IMPORTED_MODULE_6__utils_array__["c" /* from */])(target.options).filter(function (o) {
- return o.selected;
- }).map(function (o) {
- return '_value' in o ? o._value : o.value;
- });
- _this.localValue = target.multiple ? selectedVal : selectedVal[0];
- _this.$emit('change', _this.localValue);
- }
- }
- }, [$slots.first, options, $slots.default]);
- },
- data: function data() {
- return {
- localValue: this.value
- };
- },
- watch: {
- value: function value(newVal, oldVal) {
- this.localValue = newVal;
- },
- localValue: function localValue(newVal, oldVal) {
- this.$emit('input', this.localValue);
- }
- },
- props: {
- value: {},
- multiple: {
- type: Boolean,
- default: false
- },
- selectSize: {
- // Browsers default size to 0, which shows 4 rows in most browsers in multiple mode
- // Size of 1 can bork out firefox
- type: Number,
- default: 0
- },
- ariaInvalid: {
- type: [Boolean, String],
- default: false
- }
- },
- computed: {
- computedSelectSize: function computedSelectSize() {
- // Custom selects with a size of zero causes the arrows to be hidden,
- // so dont render the size attribute in this case
- return !this.plain && this.selectSize === 0 ? null : this.selectSize;
- },
- inputClass: function inputClass() {
- return ['form-control', this.stateClass, this.sizeFormClass,
- // Awaiting for https://github.com/twbs/bootstrap/issues/23058
- this.plain ? null : 'custom-select', this.plain || !this.size ? null : 'custom-select-' + this.size];
- },
- computedAriaInvalid: function computedAriaInvalid() {
- if (this.ariaInvalid === true || this.ariaInvalid === 'true') {
- return 'true';
- }
- return this.stateClass === 'is-invalid' ? 'true' : null;
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-select/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_select__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-select/form-select.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bFormSelect: __WEBPACK_IMPORTED_MODULE_0__form_select__["a" /* default */],
- bSelect: __WEBPACK_IMPORTED_MODULE_0__form_select__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-textarea/form-textarea.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_form_size__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_form_state__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- 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 */]],
- render: function render(h) {
- var _this = this;
- return h('textarea', {
- ref: 'input',
- class: this.inputClass,
- style: this.inputStyle,
- directives: [{
- name: 'model',
- rawName: 'v-model',
- value: this.localValue,
- expression: 'localValue'
- }],
- domProps: { value: this.value },
- attrs: {
- id: this.safeId(),
- name: this.name,
- disabled: this.disabled,
- placeholder: this.placeholder,
- required: this.required,
- autocomplete: this.autocomplete || null,
- readonly: this.readonly || this.plaintext,
- rows: this.rowsCount,
- wrap: this.wrap || null,
- 'aria-required': this.required ? 'true' : null,
- 'aria-invalid': this.computedAriaInvalid
- },
- on: {
- input: function input(evt) {
- _this.localValue = evt.target.value;
- }
- }
- });
- },
- data: function data() {
- return {
- localValue: this.value
- };
- },
- props: {
- value: {
- type: String,
- default: ''
- },
- ariaInvalid: {
- type: [Boolean, String],
- default: false
- },
- readonly: {
- type: Boolean,
- default: false
- },
- plaintext: {
- type: Boolean,
- default: false
- },
- autocomplete: {
- type: String,
- default: null
- },
- placeholder: {
- type: String,
- default: null
- },
- rows: {
- type: [Number, String],
- default: null
- },
- maxRows: {
- type: [Number, String],
- default: null
- },
- wrap: {
- // 'soft', 'hard' or 'off'. Browser default is 'soft'
- type: String,
- default: 'soft'
- },
- noResize: {
- type: Boolean,
- default: false
- }
- },
- computed: {
- rowsCount: function rowsCount() {
- // A better option could be based on https://codepen.io/vsync/pen/frudD
- // As linebreaks aren't added until the input is submitted
- var rows = parseInt(this.rows, 10) || 1;
- var maxRows = parseInt(this.maxRows, 10) || 0;
- var lines = (this.localValue || '').toString().split('\n').length;
- return maxRows ? Math.min(maxRows, Math.max(rows, lines)) : Math.max(rows, lines);
- },
- inputClass: function inputClass() {
- return [this.plaintext ? 'form-control-plaintext' : 'form-control', this.sizeFormClass, this.stateClass];
- },
- inputStyle: function inputStyle() {
- // We set width 100% in plaintext mode to get around a shortcoming in bootstrap CSS
- // setting noResize to true will disable the ability for the user to resize the textarea
- return {
- width: this.plaintext ? '100%' : null,
- resize: this.noResize ? 'none' : null
- };
- },
- computedAriaInvalid: function computedAriaInvalid() {
- if (!this.ariaInvalid || this.ariaInvalid === 'false') {
- // this.ariaInvalid is null or false or 'false'
- return this.computedState === false ? 'true' : null;
- }
- if (this.ariaInvalid === true) {
- // User wants explicit aria-invalid=true
- return 'true';
- }
- // Most likely a string value (which could be the string 'true')
- return this.ariaInvalid;
- }
- },
- watch: {
- value: function value(newVal, oldVal) {
- // Update our localValue
- if (newVal !== oldVal) {
- this.localValue = newVal;
- }
- },
- localValue: function localValue(newVal, oldVal) {
- // update Parent value
- if (newVal !== oldVal) {
- this.$emit('input', newVal);
- }
- }
- },
- methods: {
- focus: function focus() {
- // For external handler that may want a focus method
- if (!this.disabled) {
- this.$el.focus();
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form-textarea/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_textarea__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-textarea/form-textarea.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bFormTextarea: __WEBPACK_IMPORTED_MODULE_0__form_textarea__["a" /* default */],
- bTextarea: __WEBPACK_IMPORTED_MODULE_0__form_textarea__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form/form-invalid-feedback.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- id: {
- type: String,
- default: null
- },
- tag: {
- type: String,
- default: 'div'
- },
- forceShow: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'invalid-feedback',
- class: { 'd-block': props.forceShow },
- attrs: { id: props.id }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form/form-row.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__layout_form_row__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/form-row.js");
- /* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__layout_form_row__["a" /* default */]);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form/form-text.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- 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; }
- var props = {
- id: {
- type: String,
- default: null
- },
- tag: {
- type: String,
- default: 'small'
- },
- textVariant: {
- type: String,
- default: 'muted'
- },
- inline: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- class: _defineProperty({
- 'form-text': !props.inline
- }, 'text-' + props.textVariant, Boolean(props.textVariant)),
- attrs: {
- id: props.id
- }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form/form-valid-feedback.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- id: {
- type: String,
- default: null
- },
- tag: {
- type: String,
- default: 'div'
- },
- forceShow: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'valid-feedback',
- class: { 'd-block': props.forceShow },
- attrs: { id: props.id }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form/form.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- id: {
- type: String,
- default: null
- },
- inline: {
- type: Boolean,
- default: false
- },
- novalidate: {
- type: Boolean,
- default: false
- },
- validated: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h('form', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- class: {
- 'form-inline': props.inline,
- 'was-validated': props.validated
- },
- attrs: {
- id: props.id,
- novalidate: props.novalidate
- }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/form/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__form_row__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-row.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__form_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-text.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__form_invalid_feedback__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-invalid-feedback.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__form_valid_feedback__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form-valid-feedback.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bForm: __WEBPACK_IMPORTED_MODULE_0__form__["a" /* default */],
- bFormRow: __WEBPACK_IMPORTED_MODULE_1__form_row__["a" /* default */],
- bFormText: __WEBPACK_IMPORTED_MODULE_2__form_text__["a" /* default */],
- bFormInvalidFeedback: __WEBPACK_IMPORTED_MODULE_3__form_invalid_feedback__["a" /* default */],
- bFormFeedback: __WEBPACK_IMPORTED_MODULE_3__form_invalid_feedback__["a" /* default */],
- bFormValidFeedback: __WEBPACK_IMPORTED_MODULE_4__form_valid_feedback__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_5__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_5__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/image/img-lazy.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__img__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/image/img.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- var THROTTLE = 100;
- /* harmony default export */ __webpack_exports__["a"] = ({
- components: { bImg: __WEBPACK_IMPORTED_MODULE_0__img__["a" /* default */] },
- render: function render(h) {
- return h('b-img', {
- props: {
- src: this.computedSrc,
- alt: this.alt,
- blank: this.computedBlank,
- blankColor: this.blankColor,
- width: this.computedWidth,
- height: this.computedHeight,
- fluid: this.fluid,
- fluidGrow: this.fluidGrow,
- block: this.block,
- thumbnail: this.thumbnail,
- rounded: this.rounded,
- left: this.left,
- right: this.right,
- center: this.center
- }
- });
- },
- data: function data() {
- return {
- isShown: false,
- scrollTimeout: null
- };
- },
- props: {
- src: {
- type: String,
- default: null,
- required: true
- },
- alt: {
- type: String,
- default: null
- },
- width: {
- type: [Number, String],
- default: null
- },
- height: {
- type: [Number, String],
- default: null
- },
- blankSrc: {
- // If null, a blank image is generated
- type: String,
- default: null
- },
- blankColor: {
- type: String,
- default: 'transparent'
- },
- blankWidth: {
- type: [Number, String],
- default: null
- },
- blankHeight: {
- type: [Number, String],
- default: null
- },
- fluid: {
- type: Boolean,
- default: false
- },
- fluidGrow: {
- type: Boolean,
- default: false
- },
- block: {
- type: Boolean,
- default: false
- },
- thumbnail: {
- type: Boolean,
- default: false
- },
- rounded: {
- type: [Boolean, String],
- default: false
- },
- left: {
- type: Boolean,
- default: false
- },
- right: {
- type: Boolean,
- default: false
- },
- center: {
- type: Boolean,
- default: false
- },
- offset: {
- type: [Number, String],
- default: 360
- },
- throttle: {
- type: [Number, String],
- default: THROTTLE
- }
- },
- computed: {
- computedSrc: function computedSrc() {
- return !this.blankSrc || this.isShown ? this.src : this.blankSrc;
- },
- computedBlank: function computedBlank() {
- return !(this.isShown || this.blankSrc);
- },
- computedWidth: function computedWidth() {
- return this.isShown ? this.width : this.blankWidth || this.width;
- },
- computedHeight: function computedHeight() {
- return this.isShown ? this.height : this.blankHeight || this.height;
- }
- },
- mounted: function mounted() {
- this.setListeners(true);
- this.checkView();
- },
- activated: function activated() {
- this.setListeners(true);
- this.checkView();
- },
- deactivated: function deactivated() {
- this.setListeners(false);
- },
- beforeDdestroy: function beforeDdestroy() {
- this.setListeners(false);
- },
- methods: {
- setListeners: function setListeners(on) {
- clearTimeout(this.scrollTimer);
- this.scrollTimeout = null;
- var root = window;
- if (on) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["d" /* eventOn */])(root, 'scroll', this.onScroll);
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["d" /* eventOn */])(root, 'resize', this.onScroll);
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["d" /* eventOn */])(root, 'orientationchange', this.onScroll);
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["c" /* eventOff */])(root, 'scroll', this.onScroll);
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["c" /* eventOff */])(root, 'resize', this.onScroll);
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["c" /* eventOff */])(root, 'orientationchange', this.onScroll);
- }
- },
- checkView: function checkView() {
- // check bounding box + offset to see if we should show
- if (!Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["m" /* isVisible */])(this.$el)) {
- // Element is hidden, so skip for now
- return;
- }
- var offset = parseInt(this.offset, 10) || 0;
- var docElement = document.documentElement;
- var view = {
- l: 0 - offset,
- t: 0 - offset,
- b: docElement.clientHeight + offset,
- r: docElement.clientWidth + offset
- };
- var box = Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["f" /* getBCR */])(this.$el);
- if (box.right >= view.l && box.bottom >= view.t && box.left <= view.r && box.top <= view.b) {
- // image is in view (or about to be in view)
- this.isShown = true;
- this.setListeners(false);
- }
- },
- onScroll: function onScroll() {
- if (this.isShown) {
- this.setListeners(false);
- } else {
- clearTimeout(this.scrollTimeout);
- this.scrollTimeout = setTimeout(this.checkView, parseInt(this.throttle, 10) || THROTTLE);
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/image/img.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- 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; }
- // Blank image with fill template
- 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>';
- function makeBlankImgSrc(width, height, color) {
- var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', String(width)).replace('%{h}', String(height)).replace('%{f}', color));
- return 'data:image/svg+xml;charset=UTF-8,' + src;
- }
- var props = {
- src: {
- type: String,
- default: null
- },
- alt: {
- type: String,
- default: null
- },
- width: {
- type: [Number, String],
- default: null
- },
- height: {
- type: [Number, String],
- default: null
- },
- block: {
- type: Boolean,
- default: false
- },
- fluid: {
- type: Boolean,
- default: false
- },
- fluidGrow: {
- // Gives fluid images class `w-100` to make them grow to fit container
- type: Boolean,
- default: false
- },
- rounded: {
- // rounded can be:
- // false: no rounding of corners
- // true: slightly rounded corners
- // 'top': top corners rounded
- // 'right': right corners rounded
- // 'bottom': bottom corners rounded
- // 'left': left corners rounded
- // 'circle': circle/oval
- // '0': force rounding off
- type: [Boolean, String],
- default: false
- },
- thumbnail: {
- type: Boolean,
- default: false
- },
- left: {
- type: Boolean,
- default: false
- },
- right: {
- type: Boolean,
- default: false
- },
- center: {
- type: Boolean,
- default: false
- },
- blank: {
- type: Boolean,
- default: false
- },
- blankColor: {
- type: String,
- default: 'transparent'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _class;
- var props = _ref.props,
- data = _ref.data;
- var src = props.src;
- var width = parseInt(props.width, 10) ? parseInt(props.width, 10) : null;
- var height = parseInt(props.height, 10) ? parseInt(props.height, 10) : null;
- var align = null;
- var block = props.block;
- if (props.blank) {
- if (!height && Boolean(width)) {
- height = width;
- } else if (!width && Boolean(height)) {
- width = height;
- }
- if (!width && !height) {
- width = 1;
- height = 1;
- }
- // Make a blank SVG image
- src = makeBlankImgSrc(width, height, props.blankColor || 'transparent');
- }
- if (props.left) {
- align = 'float-left';
- } else if (props.right) {
- align = 'float-right';
- } else if (props.center) {
- align = 'mx-auto';
- block = true;
- }
- return h('img', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- attrs: {
- 'src': src,
- 'alt': props.alt,
- 'width': width ? String(width) : null,
- 'height': height ? String(height) : null
- },
- class: (_class = {
- 'img-thumbnail': props.thumbnail,
- 'img-fluid': props.fluid || props.fluidGrow,
- 'w-100': props.fluidGrow,
- 'rounded': props.rounded === '' || props.rounded === true
- }, _defineProperty(_class, 'rounded-' + props.rounded, typeof props.rounded === 'string' && props.rounded !== ''), _defineProperty(_class, align, Boolean(align)), _defineProperty(_class, 'd-block', block), _class)
- }));
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/image/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__img__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/image/img.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__img_lazy__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/image/img-lazy.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bImg: __WEBPACK_IMPORTED_MODULE_0__img__["a" /* default */],
- bImgLazy: __WEBPACK_IMPORTED_MODULE_1__img_lazy__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__alert__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/alert/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__badge__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/badge/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__breadcrumb__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/breadcrumb/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__button__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__button_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button-group/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__button_toolbar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button-toolbar/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__input_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__card__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/card/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__carousel__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/carousel/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__layout__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__collapse__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/collapse/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__embed__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/embed/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__form__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__form_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-group/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__form_checkbox__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-checkbox/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__form_radio__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-radio/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__form_input__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-input/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__form_textarea__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-textarea/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__form_file__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-file/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__form_select__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form-select/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__image__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/image/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__jumbotron__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/jumbotron/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__list_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/list-group/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__media__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__modal__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/modal/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__navbar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/navbar/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__pagination__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/pagination/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__pagination_nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/pagination-nav/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__popover__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/popover/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__progress__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/progress/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__table__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/table/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__tabs__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/tabs/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__tooltip__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/tooltip/index.js");
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Alert", function() { return __WEBPACK_IMPORTED_MODULE_0__alert__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Badge", function() { return __WEBPACK_IMPORTED_MODULE_1__badge__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return __WEBPACK_IMPORTED_MODULE_2__breadcrumb__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return __WEBPACK_IMPORTED_MODULE_3__button__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonToolbar", function() { return __WEBPACK_IMPORTED_MODULE_5__button_toolbar__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonGroup", function() { return __WEBPACK_IMPORTED_MODULE_4__button_group__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Card", function() { return __WEBPACK_IMPORTED_MODULE_7__card__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Carousel", function() { return __WEBPACK_IMPORTED_MODULE_8__carousel__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Collapse", function() { return __WEBPACK_IMPORTED_MODULE_10__collapse__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return __WEBPACK_IMPORTED_MODULE_11__dropdown__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Embed", function() { return __WEBPACK_IMPORTED_MODULE_12__embed__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Form", function() { return __WEBPACK_IMPORTED_MODULE_13__form__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormGroup", function() { return __WEBPACK_IMPORTED_MODULE_14__form_group__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormInput", function() { return __WEBPACK_IMPORTED_MODULE_17__form_input__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormTextarea", function() { return __WEBPACK_IMPORTED_MODULE_18__form_textarea__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormFile", function() { return __WEBPACK_IMPORTED_MODULE_19__form_file__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormCheckbox", function() { return __WEBPACK_IMPORTED_MODULE_15__form_checkbox__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormRadio", function() { return __WEBPACK_IMPORTED_MODULE_16__form_radio__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormSelect", function() { return __WEBPACK_IMPORTED_MODULE_20__form_select__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return __WEBPACK_IMPORTED_MODULE_21__image__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "InputGroup", function() { return __WEBPACK_IMPORTED_MODULE_6__input_group__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Jumbotron", function() { return __WEBPACK_IMPORTED_MODULE_22__jumbotron__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Layout", function() { return __WEBPACK_IMPORTED_MODULE_9__layout__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Link", function() { return __WEBPACK_IMPORTED_MODULE_23__link__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ListGroup", function() { return __WEBPACK_IMPORTED_MODULE_24__list_group__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Media", function() { return __WEBPACK_IMPORTED_MODULE_25__media__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return __WEBPACK_IMPORTED_MODULE_26__modal__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Nav", function() { return __WEBPACK_IMPORTED_MODULE_27__nav__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Navbar", function() { return __WEBPACK_IMPORTED_MODULE_28__navbar__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Pagination", function() { return __WEBPACK_IMPORTED_MODULE_29__pagination__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationNav", function() { return __WEBPACK_IMPORTED_MODULE_30__pagination_nav__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Popover", function() { return __WEBPACK_IMPORTED_MODULE_31__popover__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Progress", function() { return __WEBPACK_IMPORTED_MODULE_32__progress__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Table", function() { return __WEBPACK_IMPORTED_MODULE_33__table__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Tabs", function() { return __WEBPACK_IMPORTED_MODULE_34__tabs__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return __WEBPACK_IMPORTED_MODULE_35__tooltip__["a"]; });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/input-group/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__input_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__input_group_addon__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-addon.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__input_group_prepend__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-prepend.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__input_group_append__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-append.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__input_group_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-text.js");
- var components = {
- bInputGroup: __WEBPACK_IMPORTED_MODULE_1__input_group__["a" /* default */],
- bInputGroupAddon: __WEBPACK_IMPORTED_MODULE_2__input_group_addon__["a" /* default */],
- bInputGroupPrepend: __WEBPACK_IMPORTED_MODULE_3__input_group_prepend__["a" /* default */],
- bInputGroupAppend: __WEBPACK_IMPORTED_MODULE_4__input_group_append__["a" /* default */],
- bInputGroupText: __WEBPACK_IMPORTED_MODULE_5__input_group_text__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/input-group/input-group-addon.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return propsFactory; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__input_group_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-text.js");
- var propsFactory = function propsFactory(append) {
- return {
- id: {
- type: String,
- default: null
- },
- tag: {
- type: String,
- default: 'div'
- },
- append: {
- type: Boolean,
- default: append
- },
- isText: {
- type: Boolean,
- default: false
- }
- };
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: propsFactory(false),
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'input-group-' + (props.append ? 'append' : 'prepend'),
- attrs: {
- id: props.id
- }
- }), props.isText ? [h(__WEBPACK_IMPORTED_MODULE_1__input_group_text__["a" /* default */], children)] : children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/input-group/input-group-append.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__input_group_addon__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-addon.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: Object(__WEBPACK_IMPORTED_MODULE_0__input_group_addon__["b" /* propsFactory */])(true),
- render: __WEBPACK_IMPORTED_MODULE_0__input_group_addon__["a" /* default */].render
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/input-group/input-group-prepend.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__input_group_addon__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-addon.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: Object(__WEBPACK_IMPORTED_MODULE_0__input_group_addon__["b" /* propsFactory */])(false),
- render: __WEBPACK_IMPORTED_MODULE_0__input_group_addon__["a" /* default */].render
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/input-group/input-group-text.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- tag: {
- type: String,
- default: 'div'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: props,
- functional: true,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'input-group-text'
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/input-group/input-group.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__input_group_prepend__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-prepend.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__input_group_append__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-append.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__input_group_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/input-group/input-group-text.js");
- 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; }
- var props = {
- id: {
- type: String,
- default: null
- },
- size: {
- type: String,
- default: null
- },
- prepend: {
- type: String,
- default: null
- },
- append: {
- type: String,
- default: null
- },
- tag: {
- type: String,
- default: 'div'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- slots = _ref.slots;
- var $slots = slots();
- var childNodes = [];
- // Prepend prop
- if (props.prepend) {
- 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 } })]));
- }
- // Prepend slot
- if ($slots.prepend) {
- childNodes.push(h(__WEBPACK_IMPORTED_MODULE_1__input_group_prepend__["a" /* default */], $slots.prepend));
- }
- // Default slot
- childNodes.push($slots.default);
- // Append prop
- if (props.append) {
- 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 } })]));
- }
- // Append slot
- if ($slots.append) {
- childNodes.push(h(__WEBPACK_IMPORTED_MODULE_2__input_group_append__["a" /* default */], $slots.append));
- }
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'input-group',
- class: _defineProperty({}, 'input-group-' + props.size, Boolean(props.size)),
- attrs: {
- id: props.id || null,
- role: 'group'
- }
- }), childNodes);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/jumbotron/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jumbotron__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/jumbotron/jumbotron.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bJumbotron: __WEBPACK_IMPORTED_MODULE_0__jumbotron__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/jumbotron/jumbotron.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__layout_container__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/container.js");
- 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; }
- var props = {
- fluid: {
- type: Boolean,
- default: false
- },
- containerFluid: {
- type: Boolean,
- default: false
- },
- header: {
- type: String,
- default: null
- },
- headerTag: {
- type: String,
- default: 'h1'
- },
- headerLevel: {
- type: [Number, String],
- default: '3'
- },
- lead: {
- type: String,
- default: null
- },
- leadTag: {
- type: String,
- default: 'p'
- },
- tag: {
- type: String,
- default: 'div'
- },
- bgVariant: {
- type: String,
- default: null
- },
- borderVariant: {
- type: String,
- default: null
- },
- textVariant: {
- type: String,
- default: null
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _class2;
- var props = _ref.props,
- data = _ref.data,
- slots = _ref.slots;
- // The order of the conditionals matter.
- // We are building the component markup in order.
- var childNodes = [];
- var $slots = slots();
- // Header
- if (props.header || $slots.header) {
- childNodes.push(h(props.headerTag, {
- class: _defineProperty({}, 'display-' + props.headerLevel, Boolean(props.headerLevel))
- }, $slots.header || props.header));
- }
- // Lead
- if (props.lead || $slots.lead) {
- childNodes.push(h(props.leadTag, { staticClass: 'lead' }, $slots.lead || props.lead));
- }
- // Default slot
- if ($slots.default) {
- childNodes.push($slots.default);
- }
- // If fluid, wrap content in a container/container-fluid
- if (props.fluid) {
- // Children become a child of a container
- childNodes = [h(__WEBPACK_IMPORTED_MODULE_1__layout_container__["a" /* default */], { props: { 'fluid': props.containerFluid } }, childNodes)];
- }
- // Return the jumbotron
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'jumbotron',
- class: (_class2 = {
- 'jumbotron-fluid': props.fluid
- }, _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)
- }), childNodes);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/layout/col.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export computeBkPtClass */
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_memoize__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/memoize.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_suffix_prop_name__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/suffix-prop-name.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- 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; }
- /**
- * Generates a prop object with a type of
- * [Boolean, String, Number]
- */
- function boolStrNum() {
- return {
- type: [Boolean, String, Number],
- default: false
- };
- }
- /**
- * Generates a prop object with a type of
- * [String, Number]
- */
- function strNum() {
- return {
- type: [String, Number],
- default: null
- };
- }
- var computeBkPtClass = Object(__WEBPACK_IMPORTED_MODULE_1__utils_memoize__["a" /* default */])(function computeBkPt(type, breakpoint, val) {
- var className = type;
- if (val === false || val === null || val === undefined) {
- return undefined;
- }
- if (breakpoint) {
- className += '-' + breakpoint;
- }
- // Handling the boolean style prop when accepting [Boolean, String, Number]
- // means Vue will not convert <b-col sm /> to sm: true for us.
- // Since the default is false, an empty string indicates the prop's presence.
- if (type === 'col' && (val === '' || val === true)) {
- // .col-md
- return className.toLowerCase();
- }
- // .order-md-6
- className += '-' + val;
- return className.toLowerCase();
- });
- var BREAKPOINTS = ['sm', 'md', 'lg', 'xl'];
- // Supports classes like: .col-sm, .col-md-6, .col-lg-auto
- var breakpointCol = BREAKPOINTS.reduce(
- // eslint-disable-next-line no-sequences
- function (propMap, breakpoint) {
- return propMap[breakpoint] = boolStrNum(), propMap;
- }, Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["b" /* create */])(null));
- // Supports classes like: .offset-md-1, .offset-lg-12
- var breakpointOffset = BREAKPOINTS.reduce(
- // eslint-disable-next-line no-sequences
- function (propMap, breakpoint) {
- return propMap[Object(__WEBPACK_IMPORTED_MODULE_2__utils_suffix_prop_name__["a" /* default */])(breakpoint, 'offset')] = strNum(), propMap;
- }, Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["b" /* create */])(null));
- // Supports classes like: .order-md-1, .order-lg-12
- var breakpointOrder = BREAKPOINTS.reduce(
- // eslint-disable-next-line no-sequences
- function (propMap, breakpoint) {
- return propMap[Object(__WEBPACK_IMPORTED_MODULE_2__utils_suffix_prop_name__["a" /* default */])(breakpoint, 'order')] = strNum(), propMap;
- }, Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["b" /* create */])(null));
- // For loop doesn't need to check hasOwnProperty
- // when using an object created from null
- var breakpointPropMap = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])(Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["b" /* create */])(null), {
- col: Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["e" /* keys */])(breakpointCol),
- offset: Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["e" /* keys */])(breakpointOffset),
- order: Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["e" /* keys */])(breakpointOrder)
- });
- var props = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])({}, breakpointCol, breakpointOffset, breakpointOrder, {
- tag: {
- type: String,
- default: 'div'
- },
- // Generic flexbox .col
- col: {
- type: Boolean,
- default: false
- },
- // .col-[1-12]|auto
- cols: strNum(),
- // .offset-[1-12]
- offset: strNum(),
- // Flex ordering utility .order-[1-12]
- order: strNum(),
- alignSelf: {
- type: String,
- default: null,
- validator: function validator(str) {
- return Object(__WEBPACK_IMPORTED_MODULE_4__utils_array__["a" /* arrayIncludes */])(['auto', 'start', 'end', 'center', 'baseline', 'stretch'], str);
- }
- }
- });
- /**
- * We need ".col" to default in when no other props are passed,
- * but always render when col=true.
- */
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _classList$push;
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- var classList = [];
- // Loop through `col`, `offset`, `order` breakpoint props
- for (var type in breakpointPropMap) {
- // Returns colSm, offset, offsetSm, orderMd, etc.
- var _keys = breakpointPropMap[type];
- for (var i = 0; i < _keys.length; i++) {
- // computeBkPt(col, colSm => Sm, value=[String, Number, Boolean])
- var c = computeBkPtClass(type, _keys[i].replace(type, ''), props[_keys[i]]);
- // If a class is returned, push it onto the array.
- if (c) {
- classList.push(c);
- }
- }
- }
- classList.push((_classList$push = {
- // Default to .col if no other classes generated nor `cols` specified.
- col: props.col || classList.length === 0 && !props.cols
- }, _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));
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { class: classList }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/layout/container.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- tag: {
- type: String,
- default: 'div'
- },
- fluid: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- class: {
- 'container': !props.fluid,
- 'container-fluid': props.fluid
- }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/layout/form-row.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- tag: {
- type: String,
- default: 'div'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'form-row'
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/layout/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__container__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/container.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__row__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/row.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__col__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/col.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__form_row__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/layout/form-row.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bContainer: __WEBPACK_IMPORTED_MODULE_0__container__["a" /* default */],
- bRow: __WEBPACK_IMPORTED_MODULE_1__row__["a" /* default */],
- bCol: __WEBPACK_IMPORTED_MODULE_2__col__["a" /* default */],
- bFormRow: __WEBPACK_IMPORTED_MODULE_3__form_row__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_4__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_4__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/layout/row.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- 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; }
- var COMMON_ALIGNMENT = ['start', 'end', 'center'];
- var props = {
- tag: {
- type: String,
- default: 'div'
- },
- noGutters: {
- type: Boolean,
- default: false
- },
- alignV: {
- type: String,
- default: null,
- validator: function validator(str) {
- return Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(COMMON_ALIGNMENT.concat(['baseline', 'stretch']), str);
- }
- },
- alignH: {
- type: String,
- default: null,
- validator: function validator(str) {
- return Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(COMMON_ALIGNMENT.concat(['between', 'around']), str);
- }
- },
- alignContent: {
- type: String,
- default: null,
- validator: function validator(str) {
- return Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(COMMON_ALIGNMENT.concat(['between', 'around', 'stretch']), str);
- }
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _class;
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'row',
- class: (_class = {
- 'no-gutters': props.noGutters
- }, _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)
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/link/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bLink: __WEBPACK_IMPORTED_MODULE_0__link__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/link/link.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["c"] = propsFactory;
- /* unused harmony export props */
- /* harmony export (immutable) */ __webpack_exports__["b"] = pickLinkProps;
- /* unused harmony export omitLinkProps */
- /* unused harmony export computed */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- 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; };
- /**
- * The Link component is used in many other BV components.
- * As such, sharing its props makes supporting all its features easier.
- * However, some components need to modify the defaults for their own purpose.
- * Prefer sharing a fresh copy of the props to ensure mutations
- * do not affect other component references to the props.
- *
- * https://github.com/vuejs/vue-router/blob/dev/src/components/link.js
- * @return {{}}
- */
- function propsFactory() {
- return {
- href: {
- type: String,
- default: null
- },
- rel: {
- type: String,
- default: null
- },
- target: {
- type: String,
- default: '_self'
- },
- active: {
- type: Boolean,
- default: false
- },
- activeClass: {
- type: String,
- default: 'active'
- },
- append: {
- type: Boolean,
- default: false
- },
- disabled: {
- type: Boolean,
- default: false
- },
- event: {
- type: [String, Array],
- default: 'click'
- },
- exact: {
- type: Boolean,
- default: false
- },
- exactActiveClass: {
- type: String,
- default: 'active'
- },
- replace: {
- type: Boolean,
- default: false
- },
- routerTag: {
- type: String,
- default: 'a'
- },
- to: {
- type: [String, Object],
- default: null
- }
- };
- }
- var props = propsFactory();
- function pickLinkProps(propsToPick) {
- var freshLinkProps = propsFactory();
- // Normalize everything to array.
- propsToPick = Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["b" /* concat */])(propsToPick);
- return Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(freshLinkProps).reduce(function (memo, prop) {
- if (Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(propsToPick, prop)) {
- memo[prop] = freshLinkProps[prop];
- }
- return memo;
- }, {});
- }
- function omitLinkProps(propsToOmit) {
- var freshLinkProps = propsFactory();
- // Normalize everything to array.
- propsToOmit = Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["b" /* concat */])(propsToOmit);
- return Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(props).reduce(function (memo, prop) {
- if (!Object(__WEBPACK_IMPORTED_MODULE_1__utils_array__["a" /* arrayIncludes */])(propsToOmit, prop)) {
- memo[prop] = freshLinkProps[prop];
- }
- return memo;
- }, {});
- }
- var computed = {
- linkProps: function linkProps() {
- var linkProps = {};
- var propKeys = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(props);
- for (var i = 0; i < propKeys.length; i++) {
- var prop = propKeys[i];
- // Computed Vue getters are bound to the instance.
- linkProps[prop] = this[prop];
- }
- return linkProps;
- }
- };
- function computeTag(props, parent) {
- return Boolean(parent.$router) && props.to && !props.disabled ? 'router-link' : 'a';
- }
- function computeHref(_ref, tag) {
- var disabled = _ref.disabled,
- href = _ref.href,
- to = _ref.to;
- // We've already checked the parent.$router in computeTag,
- // so router-link means live router.
- // When deferring to Vue Router's router-link,
- // don't use the href attr at all.
- // Must return undefined for router-link to populate href.
- if (tag === 'router-link') return void 0;
- // If href explicitly provided
- if (href) return href;
- // Reconstruct href when `to` used, but no router
- if (to) {
- // Fallback to `to` prop (if `to` is a string)
- if (typeof to === 'string') return to;
- // Fallback to `to.path` prop (if `to` is an object)
- if ((typeof to === 'undefined' ? 'undefined' : _typeof(to)) === 'object' && typeof to.path === 'string') return to.path;
- }
- // If nothing is provided use '#'
- return '#';
- }
- function computeRel(_ref2) {
- var target = _ref2.target,
- rel = _ref2.rel;
- if (target === '_blank' && rel === null) {
- return 'noopener';
- }
- return rel || null;
- }
- function clickHandlerFactory(_ref3) {
- var disabled = _ref3.disabled,
- tag = _ref3.tag,
- href = _ref3.href,
- suppliedHandler = _ref3.suppliedHandler,
- parent = _ref3.parent;
- var isRouterLink = tag === 'router-link';
- return function onClick(e) {
- if (disabled && e instanceof Event) {
- // Stop event from bubbling up.
- e.stopPropagation();
- // Kill the event loop attached to this specific EventTarget.
- e.stopImmediatePropagation();
- } else {
- parent.$root.$emit('clicked::link', e);
- if (isRouterLink && e.target.__vue__) {
- e.target.__vue__.$emit('click', e);
- }
- if (typeof suppliedHandler === 'function') {
- suppliedHandler.apply(undefined, arguments);
- }
- }
- if (!isRouterLink && href === '#' || disabled) {
- // Stop scroll-to-top behavior or navigation.
- e.preventDefault();
- }
- };
- }
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: propsFactory(),
- render: function render(h, _ref4) {
- var props = _ref4.props,
- data = _ref4.data,
- parent = _ref4.parent,
- children = _ref4.children;
- var tag = computeTag(props, parent);
- var rel = computeRel(props);
- var href = computeHref(props, tag);
- var eventType = tag === 'router-link' ? 'nativeOn' : 'on';
- var suppliedHandler = (data[eventType] || {}).click;
- var handlers = { click: clickHandlerFactory({ tag: tag, href: href, disabled: props.disabled, suppliedHandler: suppliedHandler, parent: parent }) };
- var componentData = Object(__WEBPACK_IMPORTED_MODULE_2_vue_functional_data_merge__["a" /* mergeData */])(data, {
- class: [props.active ? props.exact ? props.exactActiveClass : props.activeClass : null, { disabled: props.disabled }],
- attrs: {
- rel: rel,
- href: href,
- target: props.target,
- tabindex: props.disabled ? '-1' : data.attrs ? data.attrs.tabindex : null,
- 'aria-disabled': tag === 'a' && props.disabled ? 'true' : null
- },
- props: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])(props, { tag: props.routerTag })
- });
- // If href prop exists on router-link (even undefined or null) it fails working on SSR
- if (!componentData.attrs.href) {
- delete componentData.attrs.href;
- }
- // We want to overwrite any click handler since our callback
- // will invoke the supplied handler if !props.disabled
- componentData[eventType] = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])(componentData[eventType] || {}, handlers);
- return h(tag, componentData, children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/list-group/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__list_group__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/list-group/list-group.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__list_group_item__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/list-group/list-group-item.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bListGroup: __WEBPACK_IMPORTED_MODULE_0__list_group__["a" /* default */],
- bListGroupItem: __WEBPACK_IMPORTED_MODULE_1__list_group_item__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/list-group/list-group-item.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
- 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; }
- var actionTags = ['a', 'router-link', 'button', 'b-link'];
- var linkProps = Object(__WEBPACK_IMPORTED_MODULE_4__link_link__["c" /* propsFactory */])();
- delete linkProps.href.default;
- delete linkProps.to.default;
- var props = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])({
- tag: {
- type: String,
- default: 'div'
- },
- action: {
- type: Boolean,
- default: null
- },
- button: {
- type: Boolean,
- default: null
- },
- variant: {
- type: String,
- default: null
- }
- }, linkProps);
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _class;
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- var tag = props.button ? 'button' : !props.href && !props.to ? props.tag : __WEBPACK_IMPORTED_MODULE_4__link_link__["a" /* default */];
- var isAction = Boolean(props.href || props.to || props.action || props.button || Object(__WEBPACK_IMPORTED_MODULE_3__utils_array__["a" /* arrayIncludes */])(actionTags, props.tag));
- var componentData = {
- staticClass: 'list-group-item',
- 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),
- attrs: tag === 'button' && props.disabled ? { disabled: true } : {},
- props: props.button ? {} : Object(__WEBPACK_IMPORTED_MODULE_1__utils_pluck_props__["a" /* default */])(linkProps, props)
- };
- return h(tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/list-group/list-group.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- tag: {
- type: String,
- default: 'div'
- },
- flush: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- var componentData = {
- staticClass: 'list-group',
- class: { 'list-group-flush': props.flush }
- };
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, componentData), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/media/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__media__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/media.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__media_aside__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/media-aside.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__media_body__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/media-body.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bMedia: __WEBPACK_IMPORTED_MODULE_0__media__["a" /* default */],
- bMediaAside: __WEBPACK_IMPORTED_MODULE_1__media_aside__["a" /* default */],
- bMediaBody: __WEBPACK_IMPORTED_MODULE_2__media_body__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/media/media-aside.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- 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; }
- var props = {
- tag: {
- type: String,
- default: 'div'
- },
- verticalAlign: {
- type: String,
- default: 'top'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'd-flex',
- class: _defineProperty({}, 'align-self-' + props.verticalAlign, props.verticalAlign)
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/media/media-body.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- tag: {
- type: String,
- default: 'div'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'media-body'
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/media/media.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__media_body__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/media-body.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__media_aside__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/media/media-aside.js");
- var props = {
- tag: {
- type: String,
- default: 'div'
- },
- rightAlign: {
- type: Boolean,
- default: false
- },
- verticalAlign: {
- type: String,
- default: 'top'
- },
- noBody: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- slots = _ref.slots,
- children = _ref.children;
- var childNodes = props.noBody ? children : [];
- var $slots = slots();
- if (!props.noBody) {
- if ($slots.aside && !props.rightAlign) {
- childNodes.push(h(__WEBPACK_IMPORTED_MODULE_2__media_aside__["a" /* default */], { staticClass: 'mr-3', props: { verticalAlign: props.verticalAlign } }, $slots.aside));
- }
- childNodes.push(h(__WEBPACK_IMPORTED_MODULE_1__media_body__["a" /* default */], $slots.default));
- if ($slots.aside && props.rightAlign) {
- childNodes.push(h(__WEBPACK_IMPORTED_MODULE_2__media_aside__["a" /* default */], { staticClass: 'ml-3', props: { verticalAlign: props.verticalAlign } }, $slots.aside));
- }
- }
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { staticClass: 'media' }), childNodes);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/modal/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__modal__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/modal/modal.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives_modal__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/modal/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bModal: __WEBPACK_IMPORTED_MODULE_0__modal__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
- Vue.use(__WEBPACK_IMPORTED_MODULE_1__directives_modal__["a" /* default */]);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/modal/modal.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button_button__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__button_button_close__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button-close.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_listen_on_root__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_observe_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_bv_event_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/bv-event.class.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- 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; }
- // Selectors for padding/margin adjustments
- var Selector = {
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
- STICKY_CONTENT: '.sticky-top',
- NAVBAR_TOGGLER: '.navbar-toggler'
- // ObserveDom config
- };var OBSERVER_CONFIG = {
- subtree: true,
- childList: true,
- characterData: true,
- attributes: true,
- attributeFilter: ['style', 'class']
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_listen_on_root__["a" /* default */]],
- components: { bBtn: __WEBPACK_IMPORTED_MODULE_0__button_button__["a" /* default */], bBtnClose: __WEBPACK_IMPORTED_MODULE_1__button_button_close__["a" /* default */] },
- render: function render(h) {
- var _this = this;
- var $slots = this.$slots;
- // Modal Header
- var header = h(false);
- if (!this.hideHeader) {
- var modalHeader = $slots['modal-header'];
- if (!modalHeader) {
- var closeButton = h(false);
- if (!this.hideHeaderClose) {
- closeButton = h('b-btn-close', {
- props: {
- disabled: this.is_transitioning,
- ariaLabel: this.headerCloseLabel,
- textVariant: this.headerTextVariant
- },
- on: {
- click: function click(evt) {
- _this.hide('header-close');
- }
- }
- }, [$slots['modal-header-close']]);
- }
- modalHeader = [h(this.titleTag, { class: ['modal-title'] }, [$slots['modal-title'] || this.title]), closeButton];
- }
- header = h('header', {
- ref: 'header',
- class: this.headerClasses,
- attrs: { id: this.safeId('__BV_modal_header_') }
- }, [modalHeader]);
- }
- // Modal Body
- var body = h('div', {
- ref: 'body',
- class: this.bodyClasses,
- attrs: { id: this.safeId('__BV_modal_body_') }
- }, [$slots.default]);
- // Modal Footer
- var footer = h(false);
- if (!this.hideFooter) {
- var modalFooter = $slots['modal-footer'];
- if (!modalFooter) {
- var cancelButton = h(false);
- if (!this.okOnly) {
- cancelButton = h('b-btn', {
- props: {
- variant: this.cancelVariant,
- size: this.buttonSize,
- disabled: this.cancelDisabled || this.busy || this.is_transitioning
- },
- on: {
- click: function click(evt) {
- _this.hide('cancel');
- }
- }
- }, [$slots['modal-cancel'] || this.cancelTitle]);
- }
- var okButton = h('b-btn', {
- props: {
- variant: this.okVariant,
- size: this.buttonSize,
- disabled: this.okDisabled || this.busy || this.is_transitioning
- },
- on: {
- click: function click(evt) {
- _this.hide('ok');
- }
- }
- }, [$slots['modal-ok'] || this.okTitle]);
- modalFooter = [cancelButton, okButton];
- }
- footer = h('footer', {
- ref: 'footer',
- class: this.footerClasses,
- attrs: { id: this.safeId('__BV_modal_footer_') }
- }, [modalFooter]);
- }
- // Assemble Modal Content
- var modalContent = h('div', {
- ref: 'content',
- class: ['modal-content'],
- attrs: {
- tabindex: '-1',
- role: 'document',
- 'aria-labelledby': this.hideHeader ? null : this.safeId('__BV_modal_header_'),
- 'aria-describedby': this.safeId('__BV_modal_body_')
- },
- on: {
- focusout: this.onFocusout,
- click: function click(evt) {
- evt.stopPropagation();
- // https://github.com/bootstrap-vue/bootstrap-vue/issues/1528
- _this.$root.$emit('bv::dropdown::shown');
- }
- }
- }, [header, body, footer]);
- // Modal Dialog wrapper
- var modalDialog = h('div', { class: this.dialogClasses }, [modalContent]);
- // Modal
- var modal = h('div', {
- ref: 'modal',
- class: this.modalClasses,
- directives: [{
- name: 'show',
- rawName: 'v-show',
- value: this.is_visible,
- expression: 'is_visible'
- }],
- attrs: {
- id: this.safeId(),
- role: 'dialog',
- 'aria-hidden': this.is_visible ? null : 'true'
- },
- on: {
- click: this.onClickOut,
- keydown: this.onEsc
- }
- }, [modalDialog]);
- // Wrap modal in transition
- modal = h('transition', {
- props: {
- enterClass: '',
- enterToClass: '',
- enterActiveClass: '',
- leaveClass: '',
- leaveActiveClass: '',
- leaveToClass: ''
- },
- on: {
- 'before-enter': this.onBeforeEnter,
- enter: this.onEnter,
- 'after-enter': this.onAfterEnter,
- 'before-leave': this.onBeforeLeave,
- leave: this.onLeave,
- 'after-leave': this.onAfterLeave
- }
- }, [modal]);
- // Modal Backdrop
- var backdrop = h(false);
- if (!this.hideBackdrop && (this.is_visible || this.is_transitioning)) {
- backdrop = h('div', {
- class: this.backdropClasses,
- attrs: { id: this.safeId('__BV_modal_backdrop_') }
- });
- }
- // Assemble modal and backdrop
- var outer = h(false);
- if (!this.is_hidden) {
- outer = h('div', { attrs: { id: this.safeId('__BV_modal_outer_') } }, [modal, backdrop]);
- }
- // Wrap in DIV to maintain thi.$el reference for hide/show method aceess
- return h('div', {}, [outer]);
- },
- data: function data() {
- return {
- is_hidden: this.lazy || false,
- is_visible: false,
- is_transitioning: false,
- is_show: false,
- is_block: false,
- scrollbarWidth: 0,
- isBodyOverflowing: false,
- return_focus: this.returnFocus || null
- };
- },
- model: {
- prop: 'visible',
- event: 'change'
- },
- props: {
- title: {
- type: String,
- default: ''
- },
- titleTag: {
- type: String,
- default: 'h5'
- },
- size: {
- type: String,
- default: 'md'
- },
- centered: {
- type: Boolean,
- default: false
- },
- buttonSize: {
- type: String,
- default: ''
- },
- noFade: {
- type: Boolean,
- default: false
- },
- noCloseOnBackdrop: {
- type: Boolean,
- default: false
- },
- noCloseOnEsc: {
- type: Boolean,
- default: false
- },
- noEnforceFocus: {
- type: Boolean,
- default: false
- },
- headerBgVariant: {
- type: String,
- default: null
- },
- headerBorderVariant: {
- type: String,
- default: null
- },
- headerTextVariant: {
- type: String,
- default: null
- },
- headerClass: {
- type: [String, Array],
- default: null
- },
- bodyBgVariant: {
- type: String,
- default: null
- },
- bodyTextVariant: {
- type: String,
- default: null
- },
- modalClass: {
- type: [String, Array],
- default: null
- },
- bodyClass: {
- type: [String, Array],
- default: null
- },
- footerBgVariant: {
- type: String,
- default: null
- },
- footerBorderVariant: {
- type: String,
- default: null
- },
- footerTextVariant: {
- type: String,
- default: null
- },
- footerClass: {
- type: [String, Array],
- default: null
- },
- hideHeader: {
- type: Boolean,
- default: false
- },
- hideFooter: {
- type: Boolean,
- default: false
- },
- hideHeaderClose: {
- type: Boolean,
- default: false
- },
- hideBackdrop: {
- type: Boolean,
- default: false
- },
- okOnly: {
- type: Boolean,
- default: false
- },
- okDisabled: {
- type: Boolean,
- default: false
- },
- cancelDisabled: {
- type: Boolean,
- default: false
- },
- visible: {
- type: Boolean,
- default: false
- },
- returnFocus: {
- default: null
- },
- headerCloseLabel: {
- type: String,
- default: 'Close'
- },
- cancelTitle: {
- type: String,
- default: 'Cancel'
- },
- okTitle: {
- type: String,
- default: 'OK'
- },
- cancelVariant: {
- type: String,
- default: 'secondary'
- },
- okVariant: {
- type: String,
- default: 'primary'
- },
- lazy: {
- type: Boolean,
- default: false
- },
- busy: {
- type: Boolean,
- default: false
- }
- },
- computed: {
- modalClasses: function modalClasses() {
- return ['modal', {
- fade: !this.noFade,
- show: this.is_show,
- 'd-block': this.is_block
- }, this.modalClass];
- },
- dialogClasses: function dialogClasses() {
- var _ref;
- return ['modal-dialog', (_ref = {}, _defineProperty(_ref, 'modal-' + this.size, Boolean(this.size)), _defineProperty(_ref, 'modal-dialog-centered', this.centered), _ref)];
- },
- backdropClasses: function backdropClasses() {
- return ['modal-backdrop', {
- fade: !this.noFade,
- show: this.is_show || this.noFade
- }];
- },
- headerClasses: function headerClasses() {
- var _ref2;
- 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];
- },
- bodyClasses: function bodyClasses() {
- var _ref3;
- return ['modal-body', (_ref3 = {}, _defineProperty(_ref3, 'bg-' + this.bodyBgVariant, Boolean(this.bodyBgVariant)), _defineProperty(_ref3, 'text-' + this.bodyTextVariant, Boolean(this.bodyTextVariant)), _ref3), this.bodyClass];
- },
- footerClasses: function footerClasses() {
- var _ref4;
- 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];
- }
- },
- watch: {
- visible: function visible(newVal, oldVal) {
- if (newVal === oldVal) {
- return;
- }
- this[newVal ? 'show' : 'hide']();
- }
- },
- methods: {
- // Public Methods
- show: function show() {
- if (this.is_visible) {
- return;
- }
- var showEvt = new __WEBPACK_IMPORTED_MODULE_7__utils_bv_event_class__["a" /* default */]('show', {
- cancelable: true,
- vueTarget: this,
- target: this.$refs.modal,
- relatedTarget: null
- });
- this.emitEvent(showEvt);
- if (showEvt.defaultPrevented || this.is_visible) {
- // Don't show if canceled
- return;
- }
- if (Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["j" /* hasClass */])(document.body, 'modal-open')) {
- // If another modal is already open, wait for it to close
- this.$root.$once('bv::modal::hidden', this.doShow);
- } else {
- // Show the modal
- this.doShow();
- }
- },
- hide: function hide(trigger) {
- if (!this.is_visible) {
- return;
- }
- var hideEvt = new __WEBPACK_IMPORTED_MODULE_7__utils_bv_event_class__["a" /* default */]('hide', {
- cancelable: true,
- vueTarget: this,
- target: this.$refs.modal,
- // this could be the trigger element/component reference
- relatedTarget: null,
- isOK: trigger || null,
- trigger: trigger || null,
- cancel: function cancel() {
- // Backwards compatibility
- Object(__WEBPACK_IMPORTED_MODULE_5__utils_warn__["a" /* default */])('b-modal: evt.cancel() is deprecated. Please use evt.preventDefault().');
- this.preventDefault();
- }
- });
- if (trigger === 'ok') {
- this.$emit('ok', hideEvt);
- } else if (trigger === 'cancel') {
- this.$emit('cancel', hideEvt);
- }
- this.emitEvent(hideEvt);
- // Hide if not canceled
- if (hideEvt.defaultPrevented || !this.is_visible) {
- return;
- }
- // stop observing for content changes
- if (this._observer) {
- this._observer.disconnect();
- this._observer = null;
- }
- this.is_visible = false;
- this.$emit('change', false);
- },
- // Private method to finish showing modal
- doShow: function doShow() {
- var _this2 = this;
- // Plce modal in DOM if lazy
- this.is_hidden = false;
- this.$nextTick(function () {
- // We do this in nextTick to ensure the modal is in DOM first before we show it
- _this2.is_visible = true;
- _this2.$emit('change', true);
- // Observe changes in modal content and adjust if necessary
- _this2._observer = Object(__WEBPACK_IMPORTED_MODULE_4__utils_observe_dom__["a" /* default */])(_this2.$refs.content, _this2.adjustDialog.bind(_this2), OBSERVER_CONFIG);
- });
- },
- // Transition Handlers
- onBeforeEnter: function onBeforeEnter() {
- this.is_transitioning = true;
- this.checkScrollbar();
- this.setScrollbar();
- this.adjustDialog();
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["a" /* addClass */])(document.body, 'modal-open');
- this.setResizeEvent(true);
- },
- onEnter: function onEnter() {
- this.is_block = true;
- this.$refs.modal.scrollTop = 0;
- },
- onAfterEnter: function onAfterEnter() {
- var _this3 = this;
- this.is_show = true;
- this.is_transitioning = false;
- this.$nextTick(function () {
- _this3.focusFirst();
- var shownEvt = new __WEBPACK_IMPORTED_MODULE_7__utils_bv_event_class__["a" /* default */]('shown', {
- cancelable: false,
- vueTarget: _this3,
- target: _this3.$refs.modal,
- relatedTarget: null
- });
- _this3.emitEvent(shownEvt);
- });
- },
- onBeforeLeave: function onBeforeLeave() {
- this.is_transitioning = true;
- this.setResizeEvent(false);
- },
- onLeave: function onLeave() {
- // Remove the 'show' class
- this.is_show = false;
- },
- onAfterLeave: function onAfterLeave() {
- var _this4 = this;
- this.is_block = false;
- this.resetAdjustments();
- this.resetScrollbar();
- this.is_transitioning = false;
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["s" /* removeClass */])(document.body, 'modal-open');
- this.$nextTick(function () {
- _this4.is_hidden = _this4.lazy || false;
- _this4.returnFocusTo();
- var hiddenEvt = new __WEBPACK_IMPORTED_MODULE_7__utils_bv_event_class__["a" /* default */]('hidden', {
- cancelable: false,
- vueTarget: _this4,
- target: _this4.lazy ? null : _this4.$refs.modal,
- relatedTarget: null
- });
- _this4.emitEvent(hiddenEvt);
- });
- },
- // Event emitter
- emitEvent: function emitEvent(bvEvt) {
- var type = bvEvt.type;
- this.$emit(type, bvEvt);
- this.$root.$emit('bv::modal::' + type, bvEvt);
- },
- // UI Event Handlers
- onClickOut: function onClickOut(evt) {
- // If backdrop clicked, hide modal
- if (this.is_visible && !this.noCloseOnBackdrop) {
- this.hide('backdrop');
- }
- },
- onEsc: function onEsc(evt) {
- // If ESC pressed, hide modal
- if (evt.keyCode === __WEBPACK_IMPORTED_MODULE_6__utils_key_codes__["a" /* default */].ESC && this.is_visible && !this.noCloseOnEsc) {
- this.hide('esc');
- }
- },
- onFocusout: function onFocusout(evt) {
- // If focus leaves modal, bring it back
- // 'focusout' Event Listener bound on content
- var content = this.$refs.content;
- if (!this.noEnforceFocus && this.is_visible && content && !content.contains(evt.relatedTarget)) {
- content.focus();
- }
- },
- // Resize Listener
- setResizeEvent: function setResizeEvent(on) {
- var _this5 = this;
- ;['resize', 'orientationchange'].forEach(function (evtName) {
- if (on) {
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["d" /* eventOn */])(window, evtName, _this5.adjustDialog);
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["c" /* eventOff */])(window, evtName, _this5.adjustDialog);
- }
- });
- },
- // Root Listener handlers
- showHandler: function showHandler(id, triggerEl) {
- if (id === this.id) {
- this.return_focus = triggerEl || null;
- this.show();
- }
- },
- hideHandler: function hideHandler(id) {
- if (id === this.id) {
- this.hide();
- }
- },
- modalListener: function modalListener(bvEvt) {
- // If another modal opens, close this one
- if (bvEvt.vueTarget !== this) {
- this.hide();
- }
- },
- // Focus control handlers
- focusFirst: function focusFirst() {
- // Don't try and focus if we are SSR
- if (typeof document === 'undefined') {
- return;
- }
- var content = this.$refs.content;
- var modal = this.$refs.modal;
- var activeElement = document.activeElement;
- if (activeElement && content && content.contains(activeElement)) {
- // If activeElement is child of content, no need to change focus
- } else if (content) {
- if (modal) {
- modal.scrollTop = 0;
- }
- // Focus the modal content wrapper
- content.focus();
- }
- },
- returnFocusTo: function returnFocusTo() {
- // Prefer returnFocus prop over event specified return_focus value
- var el = this.returnFocus || this.return_focus || null;
- if (typeof el === 'string') {
- // CSS Selector
- el = Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["t" /* select */])(el);
- }
- if (el) {
- el = el.$el || el;
- if (Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["m" /* isVisible */])(el)) {
- el.focus();
- }
- }
- },
- // Utility methods
- getScrollbarWidth: function getScrollbarWidth() {
- var scrollDiv = document.createElement('div');
- scrollDiv.className = 'modal-scrollbar-measure';
- document.body.appendChild(scrollDiv);
- this.scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
- document.body.removeChild(scrollDiv);
- },
- adjustDialog: function adjustDialog() {
- if (!this.is_visible) {
- return;
- }
- var modal = this.$refs.modal;
- var isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight;
- if (!this.isBodyOverflowing && isModalOverflowing) {
- modal.style.paddingLeft = this.scrollbarWidth + 'px';
- }
- if (this.isBodyOverflowing && !isModalOverflowing) {
- modal.style.paddingRight = this.scrollbarWidth + 'px';
- }
- },
- resetAdjustments: function resetAdjustments() {
- var modal = this.$refs.modal;
- if (modal) {
- modal.style.paddingLeft = '';
- modal.style.paddingRight = '';
- }
- },
- checkScrollbar: function checkScrollbar() {
- var rect = Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["f" /* getBCR */])(document.body);
- this.isBodyOverflowing = rect.left + rect.right < window.innerWidth;
- },
- setScrollbar: function setScrollbar() {
- if (this.isBodyOverflowing) {
- // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
- // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
- var computedStyle = window.getComputedStyle;
- var body = document.body;
- var scrollbarWidth = this.scrollbarWidth;
- // Adjust fixed content padding
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(Selector.FIXED_CONTENT).forEach(function (el) {
- var actualPadding = el.style.paddingRight;
- var calculatedPadding = computedStyle(el).paddingRight || 0;
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["v" /* setAttr */])(el, 'data-padding-right', actualPadding);
- el.style.paddingRight = parseFloat(calculatedPadding) + scrollbarWidth + 'px';
- });
- // Adjust sticky content margin
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(Selector.STICKY_CONTENT).forEach(function (el) {
- var actualMargin = el.style.marginRight;
- var calculatedMargin = computedStyle(el).marginRight || 0;
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["v" /* setAttr */])(el, 'data-margin-right', actualMargin);
- el.style.marginRight = parseFloat(calculatedMargin) - scrollbarWidth + 'px';
- });
- // Adjust navbar-toggler margin
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(Selector.NAVBAR_TOGGLER).forEach(function (el) {
- var actualMargin = el.style.marginRight;
- var calculatedMargin = computedStyle(el).marginRight || 0;
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["v" /* setAttr */])(el, 'data-margin-right', actualMargin);
- el.style.marginRight = parseFloat(calculatedMargin) + scrollbarWidth + 'px';
- });
- // Adjust body padding
- var actualPadding = body.style.paddingRight;
- var calculatedPadding = computedStyle(body).paddingRight;
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["v" /* setAttr */])(body, 'data-padding-right', actualPadding);
- body.style.paddingRight = parseFloat(calculatedPadding) + scrollbarWidth + 'px';
- }
- },
- resetScrollbar: function resetScrollbar() {
- // Restore fixed content padding
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(Selector.FIXED_CONTENT).forEach(function (el) {
- if (Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["i" /* hasAttr */])(el, 'data-padding-right')) {
- el.style.paddingRight = Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["e" /* getAttr */])(el, 'data-padding-right') || '';
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["r" /* removeAttr */])(el, 'data-padding-right');
- }
- });
- // Restore sticky content and navbar-toggler margin
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(Selector.STICKY_CONTENT + ', ' + Selector.NAVBAR_TOGGLER).forEach(function (el) {
- if (Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["i" /* hasAttr */])(el, 'data-margin-right')) {
- el.style.marginRight = Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["e" /* getAttr */])(el, 'data-margin-right') || '';
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["r" /* removeAttr */])(el, 'data-margin-right');
- }
- });
- // Restore body padding
- var body = document.body;
- if (Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["i" /* hasAttr */])(body, 'data-padding-right')) {
- body.style.paddingRight = Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["e" /* getAttr */])(body, 'data-padding-right') || '';
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["r" /* removeAttr */])(body, 'data-padding-right');
- }
- }
- },
- created: function created() {
- // create non-reactive property
- this._observer = null;
- },
- mounted: function mounted() {
- // Measure scrollbar
- this.getScrollbarWidth();
- // Listen for events from others to either open or close ourselves
- this.listenOnRoot('bv::show::modal', this.showHandler);
- this.listenOnRoot('bv::hide::modal', this.hideHandler);
- // Listen for bv:modal::show events, and close ourselves if the opening modal not us
- this.listenOnRoot('bv::modal::show', this.modalListener);
- // Initially show modal?
- if (this.visible === true) {
- this.show();
- }
- },
- beforeDestroy: function beforeDestroy() {
- // Ensure everything is back to normal
- if (this._observer) {
- this._observer.disconnect();
- this._observer = null;
- }
- this.setResizeEvent(false);
- // Re-adjust body/navbar/fixed padding/margins (if needed)
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["s" /* removeClass */])(document.body, 'modal-open');
- this.resetAdjustments();
- this.resetScrollbar();
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/nav/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/nav.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nav_item__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/nav-item.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nav_text__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/nav-text.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__nav_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/nav-form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__nav_item_dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/nav-item-dropdown.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bNav: __WEBPACK_IMPORTED_MODULE_0__nav__["a" /* default */],
- bNavItem: __WEBPACK_IMPORTED_MODULE_1__nav_item__["a" /* default */],
- bNavText: __WEBPACK_IMPORTED_MODULE_2__nav_text__["a" /* default */],
- bNavForm: __WEBPACK_IMPORTED_MODULE_3__nav_form__["a" /* default */],
- bNavItemDropdown: __WEBPACK_IMPORTED_MODULE_4__nav_item_dropdown__["a" /* default */],
- bNavItemDd: __WEBPACK_IMPORTED_MODULE_4__nav_item_dropdown__["a" /* default */],
- bNavDropdown: __WEBPACK_IMPORTED_MODULE_4__nav_item_dropdown__["a" /* default */],
- bNavDd: __WEBPACK_IMPORTED_MODULE_4__nav_item_dropdown__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_6__utils_plugins__["a" /* registerComponents */])(Vue, components);
- Vue.use(__WEBPACK_IMPORTED_MODULE_5__dropdown__["a" /* default */]);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_6__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/nav/nav-form.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__form_form__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/form/form.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: {
- id: {
- type: String,
- default: null
- }
- },
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- 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);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/nav/nav-item-dropdown.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/dropdown.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_dropdown__["a" /* default */]],
- render: function render(h) {
- var button = h('a', {
- class: this.toggleClasses,
- ref: 'toggle',
- attrs: {
- href: '#',
- id: this.safeId('_BV_button_'),
- disabled: this.disabled,
- 'aria-haspopup': 'true',
- 'aria-expanded': this.visible ? 'true' : 'false'
- },
- on: {
- click: this.toggle,
- keydown: this.toggle // space, enter, down
- }
- }, [this.$slots['button-content'] || this.$slots.text || h('span', { domProps: { innerHTML: this.text } })]);
- var menu = h('div', {
- class: this.menuClasses,
- ref: 'menu',
- attrs: { 'aria-labelledby': this.safeId('_BV_button_') },
- on: {
- mouseover: this.onMouseOver,
- keydown: this.onKeydown // tab, up, down, esc
- }
- }, [this.$slots.default]);
- return h('li', { attrs: { id: this.safeId() }, class: this.dropdownClasses }, [button, menu]);
- },
- computed: {
- isNav: function isNav() {
- // Signal to dropdown mixin that we are in a navbar
- return true;
- },
- dropdownClasses: function dropdownClasses() {
- return ['nav-item', 'b-nav-dropdown', 'dropdown', this.dropup ? 'dropup' : '', this.visible ? 'show' : ''];
- },
- toggleClasses: function toggleClasses() {
- return ['nav-link', this.noCaret ? '' : 'dropdown-toggle', this.disabled ? 'disabled' : '', this.extraToggleClasses ? this.extraToggleClasses : ''];
- },
- menuClasses: function menuClasses() {
- return ['dropdown-menu', this.right ? 'dropdown-menu-right' : 'dropdown-menu-left', this.visible ? 'show' : '', this.extraMenuClasses ? this.extraMenuClasses : ''];
- }
- },
- props: {
- noCaret: {
- type: Boolean,
- default: false
- },
- extraToggleClasses: {
- // Extra Toggle classes
- type: String,
- default: ''
- },
- extraMenuClasses: {
- // Extra Menu classes
- type: String,
- default: ''
- },
- role: {
- type: String,
- default: 'menu'
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/nav/nav-item.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
- var props = Object(__WEBPACK_IMPORTED_MODULE_1__link_link__["c" /* propsFactory */])();
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h('li', Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'nav-item'
- }), [h(__WEBPACK_IMPORTED_MODULE_1__link_link__["a" /* default */], { staticClass: 'nav-link', props: props }, children)]);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/nav/nav-text.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- tag: {
- type: String,
- default: 'span'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, { staticClass: 'navbar-text' }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/nav/nav.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- var props = {
- tag: {
- type: String,
- default: 'ul'
- },
- fill: {
- type: Boolean,
- default: false
- },
- justified: {
- type: Boolean,
- default: false
- },
- tabs: {
- type: Boolean,
- default: false
- },
- pills: {
- type: Boolean,
- default: false
- },
- vertical: {
- type: Boolean,
- default: false
- },
- isNavBar: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- if (props.isNavBar) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_warn__["a" /* default */])("b-nav: Prop 'is-nav-bar' is deprecated. Please use component '<b-navbar-nav>' instead.");
- }
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- class: {
- 'nav': !props.isNavBar,
- 'navbar-nav': props.isNavBar,
- 'nav-tabs': props.tabs && !props.isNavBar,
- 'nav-pills': props.pills && !props.isNavBar,
- 'flex-column': props.vertical && !props.isNavBar,
- 'nav-fill': props.fill,
- 'nav-justified': props.justified
- }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/navbar/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__navbar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/navbar/navbar.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__navbar_nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/navbar/navbar-nav.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__navbar_brand__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/navbar/navbar-brand.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__navbar_toggle__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/navbar/navbar-toggle.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/nav/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__collapse__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/collapse/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__dropdown__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/dropdown/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bNavbar: __WEBPACK_IMPORTED_MODULE_0__navbar__["a" /* default */],
- bNavbarNav: __WEBPACK_IMPORTED_MODULE_1__navbar_nav__["a" /* default */],
- bNavbarBrand: __WEBPACK_IMPORTED_MODULE_2__navbar_brand__["a" /* default */],
- bNavbarToggle: __WEBPACK_IMPORTED_MODULE_3__navbar_toggle__["a" /* default */],
- bNavToggle: __WEBPACK_IMPORTED_MODULE_3__navbar_toggle__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_7__utils_plugins__["a" /* registerComponents */])(Vue, components);
- Vue.use(__WEBPACK_IMPORTED_MODULE_4__nav__["a" /* default */]);
- Vue.use(__WEBPACK_IMPORTED_MODULE_5__collapse__["a" /* default */]);
- Vue.use(__WEBPACK_IMPORTED_MODULE_6__dropdown__["a" /* default */]);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_7__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/navbar/navbar-brand.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_pluck_props__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- var linkProps = Object(__WEBPACK_IMPORTED_MODULE_0__link_link__["c" /* propsFactory */])();
- linkProps.href.default = undefined;
- linkProps.to.default = undefined;
- var props = Object(__WEBPACK_IMPORTED_MODULE_3__utils_object__["a" /* assign */])(linkProps, {
- tag: {
- type: String,
- default: 'div'
- }
- });
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- var isLink = Boolean(props.to || props.href);
- var tag = isLink ? __WEBPACK_IMPORTED_MODULE_0__link_link__["a" /* default */] : props.tag;
- return h(tag, Object(__WEBPACK_IMPORTED_MODULE_1_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'navbar-brand',
- props: isLink ? Object(__WEBPACK_IMPORTED_MODULE_2__utils_pluck_props__["a" /* default */])(linkProps, props) : {}
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/navbar/navbar-nav.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- var props = {
- tag: {
- type: String,
- default: 'ul'
- },
- fill: {
- type: Boolean,
- default: false
- },
- justified: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'navbar-nav',
- class: {
- 'nav-fill': props.fill,
- 'nav-justified': props.justified
- }
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/navbar/navbar-toggle.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_listen_on_root__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_listen_on_root__["a" /* default */]],
- render: function render(h) {
- return h('button', {
- class: ['navbar-toggler'],
- attrs: {
- type: 'button',
- 'aria-label': this.label,
- 'aria-controls': this.target,
- 'aria-expanded': this.toggleState ? 'true' : 'false'
- },
- on: { click: this.onClick }
- }, [this.$slots.default || h('span', { class: ['navbar-toggler-icon'] })]);
- },
- data: function data() {
- return {
- toggleState: false
- };
- },
- props: {
- label: {
- type: String,
- default: 'Toggle navigation'
- },
- target: {
- type: String,
- required: true
- }
- },
- methods: {
- onClick: function onClick() {
- this.$root.$emit('bv::toggle::collapse', this.target);
- },
- handleStateEvt: function handleStateEvt(id, state) {
- if (id === this.target) {
- this.toggleState = state;
- }
- }
- },
- created: function created() {
- this.listenOnRoot('bv::collapse::state', this.handleStateEvt);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/navbar/navbar.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export props */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__ = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
- 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; }
- var props = {
- tag: {
- type: String,
- default: 'nav'
- },
- type: {
- type: String,
- default: 'light'
- },
- variant: {
- type: String
- },
- toggleable: {
- type: [Boolean, String],
- default: false
- },
- toggleBreakpoint: {
- // Deprecated. Set toggleable to a string breakpoint
- type: String,
- default: null
- },
- fixed: {
- type: String
- },
- sticky: {
- type: Boolean,
- default: false
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- functional: true,
- props: props,
- render: function render(h, _ref) {
- var _class;
- var props = _ref.props,
- data = _ref.data,
- children = _ref.children;
- var breakpoint = props.toggleBreakpoint || (props.toggleable === true ? 'sm' : props.toggleable) || 'sm';
- return h(props.tag, Object(__WEBPACK_IMPORTED_MODULE_0_vue_functional_data_merge__["a" /* mergeData */])(data, {
- staticClass: 'navbar',
- 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)
- }), children);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/pagination-nav/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__pagination_nav__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/pagination-nav/pagination-nav.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bPaginationNav: __WEBPACK_IMPORTED_MODULE_0__pagination_nav__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/pagination-nav/pagination-nav.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_pagination__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/pagination.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
- 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; };
- // Props needed for router links
- var routerProps = Object(__WEBPACK_IMPORTED_MODULE_2__link_link__["b" /* pickLinkProps */])('activeClass', 'exactActiveClass', 'append', 'exact', 'replace', 'target', 'rel');
- // Props object
- var props = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])(
- // pagination-nav specific props
- {
- numberOfPages: {
- type: Number,
- default: 1
- },
- baseUrl: {
- type: String,
- default: '/'
- },
- useRouter: {
- type: Boolean,
- default: false
- },
- linkGen: {
- type: Function,
- default: null
- },
- pageGen: {
- type: Function,
- default: null
- }
- },
- // Router specific props
- routerProps);
- // Our render function is brought in via the pagination mixin
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_pagination__["a" /* default */]],
- props: props,
- computed: {
- // Used by render function to trigger wraping in '<nav>' element
- isNav: function isNav() {
- return true;
- }
- },
- methods: {
- onClick: function onClick(pageNum, evt) {
- this.currentPage = pageNum;
- },
- makePage: function makePage(pagenum) {
- if (this.pageGen && typeof this.pageGen === 'function') {
- return this.pageGen(pagenum);
- }
- return pagenum;
- },
- makeLink: function makeLink(pagenum) {
- if (this.linkGen && typeof this.linkGen === 'function') {
- return this.linkGen(pagenum);
- }
- var link = '' + this.baseUrl + pagenum;
- return this.useRouter ? { path: link } : link;
- },
- linkProps: function linkProps(pagenum) {
- var link = this.makeLink(pagenum);
- var props = {
- href: typeof link === 'string' ? link : void 0,
- target: this.target || null,
- rel: this.rel || null,
- disabled: this.disabled
- };
- if (this.useRouter || (typeof link === 'undefined' ? 'undefined' : _typeof(link)) === 'object') {
- props = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])(props, {
- to: link,
- exact: this.exact,
- activeClass: this.activeClass,
- exactActiveClass: this.exactActiveClass,
- append: this.append,
- replace: this.replace
- });
- }
- return props;
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/pagination/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__pagination__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/pagination/pagination.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bPagination: __WEBPACK_IMPORTED_MODULE_0__pagination__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/pagination/pagination.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_pagination__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/pagination.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- var props = {
- perPage: {
- type: Number,
- default: 20
- },
- totalRows: {
- type: Number,
- default: 20
- },
- ariaControls: {
- type: String,
- default: null
- }
- // Our render function is brought in from the pagination mixin
- };/* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_pagination__["a" /* default */]],
- props: props,
- computed: {
- numberOfPages: function numberOfPages() {
- var result = Math.ceil(this.totalRows / this.perPage);
- return result < 1 ? 1 : result;
- }
- },
- methods: {
- // These methods are used by the render function
- onClick: function onClick(num, evt) {
- var _this = this;
- // Handle edge cases where number of pages has changed (i.e. if perPage changes)
- if (num > this.numberOfPages) {
- num = this.numberOfPages;
- } else if (num < 1) {
- num = 1;
- }
- this.currentPage = num;
- this.$nextTick(function () {
- // Keep the current button focused if possible
- var target = evt.target;
- if (Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["m" /* isVisible */])(target) && _this.$el.contains(target) && target.focus) {
- target.focus();
- } else {
- _this.focusCurrent();
- }
- });
- this.$emit('change', this.currentPage);
- },
- makePage: function makePage(pagenum) {
- return pagenum;
- },
- linkProps: function linkProps(pagenum) {
- return { href: '#' };
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/popover/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__popover__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/popover/popover.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bPopover: __WEBPACK_IMPORTED_MODULE_0__popover__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/popover/popover.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_popover_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/popover.class.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_toolpop__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/toolpop.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_toolpop__["a" /* default */]],
- render: function render(h) {
- return h('div', {
- class: ['d-none'],
- style: { display: 'none' },
- attrs: { 'aria-hidden': true }
- }, [h('div', { ref: 'title' }, this.$slots.title), h('div', { ref: 'content' }, this.$slots.default)]);
- },
- data: function data() {
- return {};
- },
- props: {
- title: {
- type: String,
- default: ''
- },
- content: {
- type: String,
- default: ''
- },
- triggers: {
- type: [String, Array],
- default: 'click'
- },
- placement: {
- type: String,
- default: 'right'
- }
- },
- methods: {
- createToolpop: function createToolpop() {
- // getTarget is in toolpop mixin
- var target = this.getTarget();
- if (target) {
- this._toolpop = new __WEBPACK_IMPORTED_MODULE_0__utils_popover_class__["a" /* default */](target, this.getConfig(), this.$root);
- } else {
- this._toolpop = null;
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_warn__["a" /* default */])("b-popover: 'target' element not found!");
- }
- return this._toolpop;
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/progress/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__progress__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/progress/progress.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__progress_bar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/progress/progress-bar.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bProgress: __WEBPACK_IMPORTED_MODULE_0__progress__["a" /* default */],
- bProgressBar: __WEBPACK_IMPORTED_MODULE_1__progress_bar__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/progress/progress-bar.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony default export */ __webpack_exports__["a"] = ({
- render: function render(h) {
- var childNodes = h(false);
- if (this.$slots.default) {
- childNodes = this.$slots.default;
- } else if (this.label) {
- childNodes = h('span', { domProps: { innerHTML: this.label } });
- } else if (this.computedShowProgress) {
- childNodes = this.progress.toFixed(this.computedPrecision);
- } else if (this.computedShowValue) {
- childNodes = this.value.toFixed(this.computedPrecision);
- }
- return h('div', {
- class: this.progressBarClasses,
- style: this.progressBarStyles,
- attrs: {
- role: 'progressbar',
- 'aria-valuemin': '0',
- 'aria-valuemax': this.computedMax.toString(),
- 'aria-valuenow': this.value.toFixed(this.computedPrecision)
- }
- }, [childNodes]);
- },
- computed: {
- progressBarClasses: function progressBarClasses() {
- return ['progress-bar', this.computedVariant ? 'bg-' + this.computedVariant : '', this.computedStriped || this.computedAnimated ? 'progress-bar-striped' : '', this.computedAnimated ? 'progress-bar-animated' : ''];
- },
- progressBarStyles: function progressBarStyles() {
- return {
- width: 100 * (this.value / this.computedMax) + '%'
- };
- },
- progress: function progress() {
- var p = Math.pow(10, this.computedPrecision);
- return Math.round(100 * p * this.value / this.computedMax) / p;
- },
- computedMax: function computedMax() {
- // Prefer our max over parent setting
- return typeof this.max === 'number' ? this.max : this.$parent.max || 100;
- },
- computedVariant: function computedVariant() {
- // Prefer our variant over parent setting
- return this.variant || this.$parent.variant;
- },
- computedPrecision: function computedPrecision() {
- // Prefer our precision over parent setting
- return typeof this.precision === 'number' ? this.precision : this.$parent.precision || 0;
- },
- computedStriped: function computedStriped() {
- // Prefer our striped over parent setting
- return typeof this.striped === 'boolean' ? this.striped : this.$parent.striped || false;
- },
- computedAnimated: function computedAnimated() {
- // Prefer our animated over parent setting
- return typeof this.animated === 'boolean' ? this.animated : this.$parent.animated || false;
- },
- computedShowProgress: function computedShowProgress() {
- // Prefer our showProgress over parent setting
- return typeof this.showProgress === 'boolean' ? this.showProgress : this.$parent.showProgress || false;
- },
- computedShowValue: function computedShowValue() {
- // Prefer our showValue over parent setting
- return typeof this.showValue === 'boolean' ? this.showValue : this.$parent.showValue || false;
- }
- },
- props: {
- value: {
- type: Number,
- default: 0
- },
- label: {
- type: String,
- default: null
- },
- // $parent prop values take precedence over the following props
- // Which is why they are defaulted to null
- max: {
- type: Number,
- default: null
- },
- precision: {
- type: Number,
- default: null
- },
- variant: {
- type: String,
- default: null
- },
- striped: {
- type: Boolean,
- default: null
- },
- animated: {
- type: Boolean,
- default: null
- },
- showProgress: {
- type: Boolean,
- default: null
- },
- showValue: {
- type: Boolean,
- default: null
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/progress/progress.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__progress_bar__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/progress/progress-bar.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- components: { bProgressBar: __WEBPACK_IMPORTED_MODULE_0__progress_bar__["a" /* default */] },
- render: function render(h) {
- var childNodes = this.$slots.default;
- if (!childNodes) {
- childNodes = h('b-progress-bar', {
- props: {
- value: this.value,
- max: this.max,
- precision: this.precision,
- variant: this.variant,
- animated: this.animated,
- striped: this.striped,
- showProgress: this.showProgress,
- showValue: this.showValue
- }
- });
- }
- return h('div', { class: ['progress'], style: this.progressHeight }, [childNodes]);
- },
- props: {
- // These props can be inherited via the child b-progress-bar(s)
- variant: {
- type: String,
- default: null
- },
- striped: {
- type: Boolean,
- default: false
- },
- animated: {
- type: Boolean,
- default: false
- },
- height: {
- type: String,
- default: null
- },
- precision: {
- type: Number,
- default: 0
- },
- showProgress: {
- type: Boolean,
- default: false
- },
- showValue: {
- type: Boolean,
- default: false
- },
- max: {
- type: Number,
- default: 100
- },
- // This prop is not inherited by child b-progress-bar(s)
- value: {
- type: Number,
- default: 0
- }
- },
- computed: {
- progressHeight: function progressHeight() {
- return { height: this.height || null };
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/table/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__table__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/table/table.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bTable: __WEBPACK_IMPORTED_MODULE_0__table__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/table/table.css":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__("./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/table/table.css");
- if(typeof content === 'string') content = [[module.i, content, '']];
- // Prepare cssTransformation
- var transform;
- var options = {}
- options.transform = transform
- // add the styles to the DOM
- var update = __webpack_require__("./node_modules/style-loader/lib/addStyles.js")(content, options);
- if(content.locals) module.exports = content.locals;
- // Hot Module Replacement
- if(false) {
- // When the styles change, update the <style> tags
- if(!content.locals) {
- module.hot.accept("!!../../../../css-loader/index.js!./table.css", function() {
- var newContent = require("!!../../../../css-loader/index.js!./table.css");
- if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
- update(newContent);
- });
- }
- // When the module is disposed, remove the <style> tags
- module.hot.dispose(function() { update(); });
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/table/table.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_startcase__ = __webpack_require__("./node_modules/lodash.startcase/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_startcase___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_startcase__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_get__ = __webpack_require__("./node_modules/lodash.get/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_get__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_loose_equal__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/loose-equal.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_stable_sort__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/stable-sort.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__mixins_listen_on_root__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__table_css__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/table/table.css");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__table_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__table_css__);
- 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; };
- // Import styles
- function toString(v) {
- if (!v) {
- return '';
- }
- if (v instanceof Object) {
- return Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(v).map(function (k) {
- return toString(v[k]);
- }).join(' ');
- }
- return String(v);
- }
- function recToString(obj) {
- if (!(obj instanceof Object)) {
- return '';
- }
- return toString(Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(obj).reduce(function (o, k) {
- // Ignore fields that start with _
- if (!/^_/.test(k)) {
- o[k] = obj[k];
- }
- return o;
- }, {}));
- }
- function defaultSortCompare(a, b, sortBy) {
- if (typeof a[sortBy] === 'number' && typeof b[sortBy] === 'number') {
- return a[sortBy] < b[sortBy] && -1 || a[sortBy] > b[sortBy] && 1 || 0;
- }
- return toString(a[sortBy]).localeCompare(toString(b[sortBy]), undefined, {
- numeric: true
- });
- }
- function processField(key, value) {
- var field = null;
- if (typeof value === 'string') {
- // Label shortcut
- field = { key: key, label: value };
- } else if (typeof value === 'function') {
- // Formatter shortcut
- field = { key: key, formatter: value };
- } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {
- field = Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["a" /* assign */])({}, value);
- field.key = field.key || key;
- } else if (value !== false) {
- // Fallback to just key
- field = { key: key };
- }
- return field;
- }
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_8__mixins_id__["a" /* default */], __WEBPACK_IMPORTED_MODULE_9__mixins_listen_on_root__["a" /* default */]],
- render: function render(h) {
- var _this = this;
- var $slots = this.$slots;
- var $scoped = this.$scopedSlots;
- var fields = this.computedFields;
- var items = this.computedItems;
- // Build the caption
- var caption = h(false);
- if (this.caption || $slots['table-caption']) {
- var data = { style: this.captionStyles };
- if (!$slots['table-caption']) {
- data.domProps = { innerHTML: this.caption };
- }
- caption = h('caption', data, $slots['table-caption']);
- }
- // Build the colgroup
- var colgroup = $slots['table-colgroup'] ? h('colgroup', {}, $slots['table-colgroup']) : h(false);
- // factory function for thead and tfoot cells (th's)
- var makeHeadCells = function makeHeadCells() {
- var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
- return fields.map(function (field, colIndex) {
- var data = {
- key: field.key,
- class: _this.fieldClasses(field),
- style: field.thStyle || {},
- attrs: {
- tabindex: field.sortable ? '0' : null,
- abbr: field.headerAbbr || null,
- title: field.headerTitle || null,
- 'aria-colindex': String(colIndex + 1),
- 'aria-label': field.sortable ? _this.localSortDesc && _this.localSortBy === field.key ? _this.labelSortAsc : _this.labelSortDesc : null,
- 'aria-sort': field.sortable && _this.localSortBy === field.key ? _this.localSortDesc ? 'descending' : 'ascending' : null
- },
- on: {
- click: function click(evt) {
- evt.stopPropagation();
- evt.preventDefault();
- _this.headClicked(evt, field);
- },
- keydown: function keydown(evt) {
- var keyCode = evt.keyCode;
- if (keyCode === __WEBPACK_IMPORTED_MODULE_4__utils_key_codes__["a" /* default */].ENTER || keyCode === __WEBPACK_IMPORTED_MODULE_4__utils_key_codes__["a" /* default */].SPACE) {
- evt.stopPropagation();
- evt.preventDefault();
- _this.headClicked(evt, field);
- }
- }
- }
- };
- var slot = isFoot && $scoped['FOOT_' + field.key] ? $scoped['FOOT_' + field.key] : $scoped['HEAD_' + field.key];
- if (slot) {
- slot = [slot({ label: field.label, column: field.key, field: field })];
- } else {
- data.domProps = { innerHTML: field.label };
- }
- return h('th', data, slot);
- });
- };
- // Build the thead
- var thead = h(false);
- if (this.isStacked !== true) {
- // If in always stacked mode (this.isStacked === true), then we don't bother rendering the thead
- thead = h('thead', { class: this.headClasses }, [h('tr', { class: this.theadTrClass }, makeHeadCells(false))]);
- }
- // Build the tfoot
- var tfoot = h(false);
- if (this.footClone && this.isStacked !== true) {
- // If in always stacked mode (this.isStacked === true), then we don't bother rendering the tfoot
- tfoot = h('tfoot', { class: this.footClasses }, [h('tr', { class: this.tfootTrClass }, makeHeadCells(true))]);
- }
- // Prepare the tbody rows
- var rows = [];
- // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)
- // If in always stacked mode, we don't bother rendering the row
- if ($scoped['top-row'] && this.isStacked !== true) {
- rows.push(h('tr', { key: 'top-row', class: ['b-table-top-row', this.tbodyTrClass] }, [$scoped['top-row']({ columns: fields.length, fields: fields })]));
- } else {
- rows.push(h(false));
- }
- // Add the item data rows
- items.forEach(function (item, rowIndex) {
- var detailsSlot = $scoped['row-details'];
- var rowShowDetails = Boolean(item._showDetails && detailsSlot);
- var detailsId = rowShowDetails ? _this.safeId('_details_' + rowIndex + '_') : null;
- var toggleDetailsFn = function toggleDetailsFn() {
- if (detailsSlot) {
- _this.$set(item, '_showDetails', !item._showDetails);
- }
- };
- // For each item data field in row
- var tds = fields.map(function (field, colIndex) {
- var data = {
- key: 'row-' + rowIndex + '-cell-' + colIndex,
- class: _this.tdClasses(field, item),
- attrs: _this.tdAttrs(field, item, colIndex),
- domProps: {}
- };
- var childNodes = void 0;
- if ($scoped[field.key]) {
- childNodes = [$scoped[field.key]({
- item: item,
- index: rowIndex,
- field: field,
- unformatted: __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(item, field.key),
- value: _this.getFormattedValue(item, field),
- toggleDetails: toggleDetailsFn,
- detailsShowing: Boolean(item._showDetails)
- })];
- if (_this.isStacked) {
- // We wrap in a DIV to ensure rendered as a single cell when visually stacked!
- childNodes = [h('div', {}, [childNodes])];
- }
- } else {
- var formatted = _this.getFormattedValue(item, field);
- if (_this.isStacked) {
- // We innerHTML a DIV to ensure rendered as a single cell when visually stacked!
- childNodes = [h('div', formatted)];
- } else {
- // Non stacked
- childNodes = formatted;
- }
- }
- // Render either a td or th cell
- return h(field.isRowHeader ? 'th' : 'td', data, childNodes);
- });
- // Calculate the row number in the dataset (indexed from 1)
- var ariaRowIndex = null;
- if (_this.currentPage && _this.perPage && _this.perPage > 0) {
- ariaRowIndex = (_this.currentPage - 1) * _this.perPage + rowIndex + 1;
- }
- // Assemble and add the row
- rows.push(h('tr', {
- key: 'row-' + rowIndex,
- class: [_this.rowClasses(item), { 'b-table-has-details': rowShowDetails }],
- attrs: {
- 'aria-describedby': detailsId,
- 'aria-rowindex': ariaRowIndex,
- role: _this.isStacked ? 'row' : null
- },
- on: {
- click: function click(evt) {
- _this.rowClicked(evt, item, rowIndex);
- },
- dblclick: function dblclick(evt) {
- _this.rowDblClicked(evt, item, rowIndex);
- },
- mouseenter: function mouseenter(evt) {
- _this.rowHovered(evt, item, rowIndex);
- }
- }
- }, tds));
- // Row Details slot
- if (rowShowDetails) {
- var tdAttrs = { colspan: String(fields.length) };
- var trAttrs = { id: detailsId };
- if (_this.isStacked) {
- tdAttrs['role'] = 'cell';
- trAttrs['role'] = 'row';
- }
- var details = h('td', { attrs: tdAttrs }, [detailsSlot({
- item: item,
- index: rowIndex,
- fields: fields,
- toggleDetails: toggleDetailsFn
- })]);
- rows.push(h('tr', {
- key: 'details-' + rowIndex,
- class: ['b-table-details', _this.tbodyTrClass],
- attrs: trAttrs
- }, [details]));
- } else if (detailsSlot) {
- // Only add the placeholder if a the table has a row-details slot defined (but not shown)
- rows.push(h(false));
- }
- });
- // Empty Items / Empty Filtered Row slot
- if (this.showEmpty && (!items || items.length === 0)) {
- var empty = this.filter ? $slots['emptyfiltered'] : $slots['empty'];
- if (!empty) {
- empty = h('div', {
- class: ['text-center', 'my-2'],
- domProps: { innerHTML: this.filter ? this.emptyFilteredText : this.emptyText }
- });
- }
- empty = h('td', {
- attrs: {
- colspan: String(fields.length),
- role: this.isStacked ? 'cell' : null
- }
- }, [h('div', { attrs: { role: 'alert', 'aria-live': 'polite' } }, [empty])]);
- rows.push(h('tr', {
- key: 'empty-row',
- class: ['b-table-empty-row', this.tbodyTrClass],
- attrs: this.isStacked ? { role: 'row' } : {}
- }, [empty]));
- } else {
- rows.push(h(false));
- }
- // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)
- // If in always stacked mode, we don't bother rendering the row
- if ($scoped['bottom-row'] && this.isStacked !== true) {
- rows.push(h('tr', { key: 'bottom-row', class: ['b-table-bottom-row', this.tbodyTrClass] }, [$scoped['bottom-row']({ columns: fields.length, fields: fields })]));
- } else {
- rows.push(h(false));
- }
- // Assemble the rows into the tbody
- var tbody = h('tbody', { class: this.bodyClasses, attrs: this.isStacked ? { role: 'rowgroup' } : {} }, rows);
- // Assemble table
- var table = h('table', {
- class: this.tableClasses,
- attrs: {
- id: this.safeId(),
- role: this.isStacked ? 'table' : null,
- 'aria-busy': this.computedBusy ? 'true' : 'false',
- 'aria-colcount': String(fields.length),
- 'aria-rowcount': this.$attrs['aria-rowcount'] || this.items.length > this.perPage ? this.items.length : null
- }
- }, [caption, colgroup, thead, tfoot, tbody]);
- // Add responsive wrapper if needed and return table
- return this.isResponsive ? h('div', { class: this.responsiveClass }, [table]) : table;
- },
- data: function data() {
- return {
- localSortBy: this.sortBy || '',
- localSortDesc: this.sortDesc || false,
- localItems: [],
- // Note: filteredItems only used to determine if # of items changed
- filteredItems: [],
- localBusy: false
- };
- },
- props: {
- items: {
- type: [Array, Function],
- default: function _default() {
- return [];
- }
- },
- fields: {
- type: [Object, Array],
- default: null
- },
- sortBy: {
- type: String,
- default: null
- },
- sortDesc: {
- type: Boolean,
- default: false
- },
- sortDirection: {
- type: String,
- default: 'asc',
- validator: function validator(direction) {
- return Object(__WEBPACK_IMPORTED_MODULE_7__utils_array__["a" /* arrayIncludes */])(['asc', 'desc', 'last'], direction);
- }
- },
- caption: {
- type: String,
- default: null
- },
- captionTop: {
- type: Boolean,
- default: false
- },
- striped: {
- type: Boolean,
- default: false
- },
- bordered: {
- type: Boolean,
- default: false
- },
- outlined: {
- type: Boolean,
- default: false
- },
- dark: {
- type: Boolean,
- default: function _default() {
- if (this && typeof this.inverse === 'boolean') {
- // Deprecate inverse
- Object(__WEBPACK_IMPORTED_MODULE_5__utils_warn__["a" /* default */])("b-table: prop 'inverse' has been deprecated. Use 'dark' instead");
- return this.dark;
- }
- return false;
- }
- },
- inverse: {
- // Deprecated in v1.0.0 in favor of `dark`
- type: Boolean,
- default: null
- },
- hover: {
- type: Boolean,
- default: false
- },
- small: {
- type: Boolean,
- default: false
- },
- fixed: {
- type: Boolean,
- default: false
- },
- footClone: {
- type: Boolean,
- default: false
- },
- responsive: {
- type: [Boolean, String],
- default: false
- },
- stacked: {
- type: [Boolean, String],
- default: false
- },
- headVariant: {
- type: String,
- default: ''
- },
- footVariant: {
- type: String,
- default: ''
- },
- theadClass: {
- type: [String, Array],
- default: null
- },
- theadTrClass: {
- type: [String, Array],
- default: null
- },
- tbodyClass: {
- type: [String, Array],
- default: null
- },
- tbodyTrClass: {
- type: [String, Array],
- default: null
- },
- tfootClass: {
- type: [String, Array],
- default: null
- },
- tfootTrClass: {
- type: [String, Array],
- default: null
- },
- perPage: {
- type: Number,
- default: 0
- },
- currentPage: {
- type: Number,
- default: 1
- },
- filter: {
- type: [String, RegExp, Function],
- default: null
- },
- sortCompare: {
- type: Function,
- default: null
- },
- noLocalSorting: {
- type: Boolean,
- default: false
- },
- noProviderPaging: {
- type: Boolean,
- default: false
- },
- noProviderSorting: {
- type: Boolean,
- default: false
- },
- noProviderFiltering: {
- type: Boolean,
- default: false
- },
- noSortReset: {
- type: Boolean,
- default: false
- },
- busy: {
- type: Boolean,
- default: false
- },
- value: {
- type: Array,
- default: function _default() {
- return [];
- }
- },
- labelSortAsc: {
- type: String,
- default: 'Click to sort Ascending'
- },
- labelSortDesc: {
- type: String,
- default: 'Click to sort Descending'
- },
- showEmpty: {
- type: Boolean,
- default: false
- },
- emptyText: {
- type: String,
- default: 'There are no records to show'
- },
- emptyFilteredText: {
- type: String,
- default: 'There are no records matching your request'
- },
- apiUrl: {
- // Passthrough prop. Passed to the context object. Not used by b-table directly
- type: String,
- default: ''
- }
- },
- watch: {
- items: function items(newVal, oldVal) {
- if (oldVal !== newVal) {
- this._providerUpdate();
- }
- },
- context: function context(newVal, oldVal) {
- if (!Object(__WEBPACK_IMPORTED_MODULE_2__utils_loose_equal__["a" /* default */])(newVal, oldVal)) {
- this.$emit('context-changed', newVal);
- }
- },
- filteredItems: function filteredItems(newVal, oldVal) {
- if (this.localFiltering && newVal.length !== oldVal.length) {
- // Emit a filtered notification event, as number of filtered items has changed
- this.$emit('filtered', newVal);
- }
- },
- sortDesc: function sortDesc(newVal, oldVal) {
- if (newVal === this.localSortDesc) {
- return;
- }
- this.localSortDesc = newVal || false;
- },
- localSortDesc: function localSortDesc(newVal, oldVal) {
- // Emit update to sort-desc.sync
- if (newVal !== oldVal) {
- this.$emit('update:sortDesc', newVal);
- if (!this.noProviderSorting) {
- this._providerUpdate();
- }
- }
- },
- sortBy: function sortBy(newVal, oldVal) {
- if (newVal === this.localSortBy) {
- return;
- }
- this.localSortBy = newVal || null;
- },
- localSortBy: function localSortBy(newVal, oldVal) {
- if (newVal !== oldVal) {
- this.$emit('update:sortBy', newVal);
- if (!this.noProviderSorting) {
- this._providerUpdate();
- }
- }
- },
- perPage: function perPage(newVal, oldVal) {
- if (oldVal !== newVal && !this.noProviderPaging) {
- this._providerUpdate();
- }
- },
- currentPage: function currentPage(newVal, oldVal) {
- if (oldVal !== newVal && !this.noProviderPaging) {
- this._providerUpdate();
- }
- },
- filter: function filter(newVal, oldVal) {
- if (oldVal !== newVal && !this.noProviderFiltering) {
- this._providerUpdate();
- }
- },
- localBusy: function localBusy(newVal, oldVal) {
- if (newVal !== oldVal) {
- this.$emit('update:busy', newVal);
- }
- }
- },
- mounted: function mounted() {
- var _this2 = this;
- this.localSortBy = this.sortBy;
- this.localSortDesc = this.sortDesc;
- if (this.hasProvider) {
- this._providerUpdate();
- }
- this.listenOnRoot('bv::refresh::table', function (id) {
- if (id === _this2.id || id === _this2) {
- _this2._providerUpdate();
- }
- });
- },
- computed: {
- isStacked: function isStacked() {
- return this.stacked === '' ? true : this.stacked;
- },
- isResponsive: function isResponsive() {
- var responsive = this.responsive === '' ? true : this.responsive;
- return this.isStacked ? false : responsive;
- },
- responsiveClass: function responsiveClass() {
- return this.isResponsive === true ? 'table-responsive' : this.isResponsive ? 'table-responsive-' + this.responsive : '';
- },
- tableClasses: function tableClasses() {
- 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 : ''];
- },
- headClasses: function headClasses() {
- return [this.headVariant ? 'thead-' + this.headVariant : '', this.theadClass];
- },
- bodyClasses: function bodyClasses() {
- return [this.tbodyClass];
- },
- footClasses: function footClasses() {
- var variant = this.footVariant || this.headVariant || null;
- return [variant ? 'thead-' + variant : '', this.tfootClass];
- },
- captionStyles: function captionStyles() {
- // Move caption to top
- return this.captionTop ? { captionSide: 'top' } : {};
- },
- hasProvider: function hasProvider() {
- return this.items instanceof Function;
- },
- localFiltering: function localFiltering() {
- return this.hasProvider ? this.noProviderFiltering : true;
- },
- localSorting: function localSorting() {
- return this.hasProvider ? this.noProviderSorting : !this.noLocalSorting;
- },
- localPaging: function localPaging() {
- return this.hasProvider ? this.noProviderPaging : true;
- },
- context: function context() {
- return {
- perPage: this.perPage,
- currentPage: this.currentPage,
- filter: this.filter,
- sortBy: this.localSortBy,
- sortDesc: this.localSortDesc,
- apiUrl: this.apiUrl
- };
- },
- computedFields: function computedFields() {
- var _this3 = this;
- // We normalize fields into an array of objects
- // [ { key:..., label:..., ...}, {...}, ..., {..}]
- var fields = [];
- if (Object(__WEBPACK_IMPORTED_MODULE_7__utils_array__["d" /* isArray */])(this.fields)) {
- // Normalize array Form
- this.fields.filter(function (f) {
- return f;
- }).forEach(function (f) {
- if (typeof f === 'string') {
- fields.push({ key: f, label: __WEBPACK_IMPORTED_MODULE_0_lodash_startcase___default()(f) });
- } else if ((typeof f === 'undefined' ? 'undefined' : _typeof(f)) === 'object' && f.key && typeof f.key === 'string') {
- // Full object definition. We use assign so that we don't mutate the original
- fields.push(Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["a" /* assign */])({}, f));
- } else if ((typeof f === 'undefined' ? 'undefined' : _typeof(f)) === 'object' && Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(f).length === 1) {
- // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }
- var key = Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(f)[0];
- var field = processField(key, f[key]);
- if (field) {
- fields.push(field);
- }
- }
- });
- } else if (this.fields && _typeof(this.fields) === 'object' && Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(this.fields).length > 0) {
- // Normalize object Form
- Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(this.fields).forEach(function (key) {
- var field = processField(key, _this3.fields[key]);
- if (field) {
- fields.push(field);
- }
- });
- }
- // If no field provided, take a sample from first record (if exits)
- if (fields.length === 0 && this.computedItems.length > 0) {
- var sample = this.computedItems[0];
- var ignoredKeys = ['_rowVariant', '_cellVariants', '_showDetails'];
- Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */])(sample).forEach(function (k) {
- if (!ignoredKeys.includes(k)) {
- fields.push({ key: k, label: __WEBPACK_IMPORTED_MODULE_0_lodash_startcase___default()(k) });
- }
- });
- }
- // Ensure we have a unique array of fields and that they have String labels
- var memo = {};
- return fields.filter(function (f) {
- if (!memo[f.key]) {
- memo[f.key] = true;
- f.label = typeof f.label === 'string' ? f.label : __WEBPACK_IMPORTED_MODULE_0_lodash_startcase___default()(f.key);
- return true;
- }
- return false;
- });
- },
- computedItems: function computedItems() {
- // Grab some props/data to ensure reactivity
- var perPage = this.perPage;
- var currentPage = this.currentPage;
- var filter = this.filter;
- var sortBy = this.localSortBy;
- var sortDesc = this.localSortDesc;
- var sortCompare = this.sortCompare;
- var localFiltering = this.localFiltering;
- var localSorting = this.localSorting;
- var localPaging = this.localPaging;
- var items = this.hasProvider ? this.localItems : this.items;
- if (!items) {
- this.$nextTick(this._providerUpdate);
- return [];
- }
- // Array copy for sorting, filtering, etc.
- items = items.slice();
- // Apply local filter
- if (filter && localFiltering) {
- if (filter instanceof Function) {
- items = items.filter(filter);
- } else {
- var regex = void 0;
- if (filter instanceof RegExp) {
- regex = filter;
- } else {
- regex = new RegExp('.*' + filter + '.*', 'ig');
- }
- items = items.filter(function (item) {
- var test = regex.test(recToString(item));
- regex.lastIndex = 0;
- return test;
- });
- }
- }
- if (localFiltering) {
- // Make a local copy of filtered items to trigger filtered event
- this.filteredItems = items.slice();
- }
- // Apply local Sort
- if (sortBy && localSorting) {
- items = Object(__WEBPACK_IMPORTED_MODULE_3__utils_stable_sort__["a" /* default */])(items, function (a, b) {
- var ret = null;
- if (typeof sortCompare === 'function') {
- // Call user provided sortCompare routine
- ret = sortCompare(a, b, sortBy);
- }
- if (ret === null || ret === undefined) {
- // Fallback to defaultSortCompare if sortCompare not defined or returns null
- ret = defaultSortCompare(a, b, sortBy);
- }
- // Handle sorting direction
- return (ret || 0) * (sortDesc ? -1 : 1);
- });
- }
- // Apply local pagination
- if (Boolean(perPage) && localPaging) {
- // Grab the current page of data (which may be past filtered items)
- items = items.slice((currentPage - 1) * perPage, currentPage * perPage);
- }
- // Update the value model with the filtered/sorted/paginated data set
- this.$emit('input', items);
- return items;
- },
- computedBusy: function computedBusy() {
- return this.busy || this.localBusy;
- }
- },
- methods: {
- keys: __WEBPACK_IMPORTED_MODULE_6__utils_object__["e" /* keys */],
- fieldClasses: function fieldClasses(field) {
- 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 : ''];
- },
- tdClasses: function tdClasses(field, item) {
- var cellVariant = '';
- if (item._cellVariants && item._cellVariants[field.key]) {
- cellVariant = (this.dark ? 'bg' : 'table') + '-' + item._cellVariants[field.key];
- }
- return [field.variant && !cellVariant ? (this.dark ? 'bg' : 'table') + '-' + field.variant : '', cellVariant, field.class ? field.class : '', this.getTdValues(item, field.key, field.tdClass, '')];
- },
- tdAttrs: function tdAttrs(field, item, colIndex) {
- var attrs = {};
- attrs['aria-colindex'] = String(colIndex + 1);
- if (this.isStacked) {
- // Generate the "header cell" label content in stacked mode
- attrs['data-label'] = field.label;
- if (field.isRowHeader) {
- attrs['role'] = 'rowheader';
- } else {
- attrs['role'] = 'cell';
- }
- }
- return Object(__WEBPACK_IMPORTED_MODULE_6__utils_object__["a" /* assign */])({}, attrs, this.getTdValues(item, field.key, field.tdAttr, {}));
- },
- rowClasses: function rowClasses(item) {
- return [item._rowVariant ? (this.dark ? 'bg' : 'table') + '-' + item._rowVariant : '', this.tbodyTrClass];
- },
- rowClicked: function rowClicked(e, item, index) {
- if (this.stopIfBusy(e)) {
- // If table is busy (via provider) then don't propagate
- return;
- }
- this.$emit('row-clicked', item, index, e);
- },
- rowDblClicked: function rowDblClicked(e, item, index) {
- if (this.stopIfBusy(e)) {
- // If table is busy (via provider) then don't propagate
- return;
- }
- this.$emit('row-dblclicked', item, index, e);
- },
- rowHovered: function rowHovered(e, item, index) {
- if (this.stopIfBusy(e)) {
- // If table is busy (via provider) then don't propagate
- return;
- }
- this.$emit('row-hovered', item, index, e);
- },
- headClicked: function headClicked(e, field) {
- var _this4 = this;
- if (this.stopIfBusy(e)) {
- // If table is busy (via provider) then don't propagate
- return;
- }
- var sortChanged = false;
- var toggleLocalSortDesc = function toggleLocalSortDesc() {
- var sortDirection = field.sortDirection || _this4.sortDirection;
- if (sortDirection === 'asc') {
- _this4.localSortDesc = false;
- } else if (sortDirection === 'desc') {
- _this4.localSortDesc = true;
- }
- };
- if (field.sortable) {
- if (field.key === this.localSortBy) {
- // Change sorting direction on current column
- this.localSortDesc = !this.localSortDesc;
- } else {
- // Start sorting this column ascending
- this.localSortBy = field.key;
- toggleLocalSortDesc();
- }
- sortChanged = true;
- } else if (this.localSortBy && !this.noSortReset) {
- this.localSortBy = null;
- toggleLocalSortDesc();
- sortChanged = true;
- }
- this.$emit('head-clicked', field.key, field, e);
- if (sortChanged) {
- // Sorting parameters changed
- this.$emit('sort-changed', this.context);
- }
- },
- stopIfBusy: function stopIfBusy(evt) {
- if (this.computedBusy) {
- // If table is busy (via provider) then don't propagate
- evt.preventDefault();
- evt.stopPropagation();
- return true;
- }
- return false;
- },
- refresh: function refresh() {
- // Expose refresh method
- if (this.hasProvider) {
- this._providerUpdate();
- }
- },
- _providerSetLocal: function _providerSetLocal(items) {
- this.localItems = items && items.length > 0 ? items.slice() : [];
- this.localBusy = false;
- this.$emit('refreshed');
- // Deprecated root emit
- this.emitOnRoot('table::refreshed', this.id);
- // New root emit
- if (this.id) {
- this.emitOnRoot('bv::table::refreshed', this.id);
- }
- },
- _providerUpdate: function _providerUpdate() {
- var _this5 = this;
- // Refresh the provider items
- if (this.computedBusy || !this.hasProvider) {
- // Don't refresh remote data if we are 'busy' or if no provider
- return;
- }
- // Set internal busy state
- this.localBusy = true;
- // Call provider function with context and optional callback
- var data = this.items(this.context, this._providerSetLocal);
- if (data && data.then && typeof data.then === 'function') {
- // Provider returned Promise
- data.then(function (items) {
- _this5._providerSetLocal(items);
- });
- } else {
- // Provider returned Array data
- this._providerSetLocal(data);
- }
- },
- getTdValues: function getTdValues(item, key, tdValue, defValue) {
- var parent = this.$parent;
- if (tdValue) {
- if (typeof tdValue === 'function') {
- var value = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(item, key);
- return tdValue(value, key, item);
- } else if (typeof tdValue === 'string' && typeof parent[tdValue] === 'function') {
- var _value = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(item, key);
- return parent[tdValue](_value, key, item);
- }
- return tdValue;
- }
- return defValue;
- },
- getFormattedValue: function getFormattedValue(item, field) {
- var key = field.key;
- var formatter = field.formatter;
- var parent = this.$parent;
- var value = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(item, key);
- if (formatter) {
- if (typeof formatter === 'function') {
- value = formatter(value, key, item);
- } else if (typeof formatter === 'string' && typeof parent[formatter] === 'function') {
- value = parent[formatter](value, key, item);
- }
- }
- return value;
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/tabs/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tabs__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/tabs/tabs.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__tab__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/tabs/tab.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bTabs: __WEBPACK_IMPORTED_MODULE_0__tabs__["a" /* default */],
- bTab: __WEBPACK_IMPORTED_MODULE_1__tab__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/tabs/tab.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_id__["a" /* default */]],
- render: function render(h) {
- var content = h(false);
- if (this.localActive || !this.computedLazy) {
- content = h(this.tag, {
- ref: 'panel',
- class: this.tabClasses,
- directives: [{ name: 'show', value: this.localActive }],
- attrs: {
- role: 'tabpanel',
- id: this.safeId(),
- 'aria-hidden': this.localActive ? 'false' : 'true',
- 'aria-expanded': this.localActive ? 'true' : 'false',
- 'aria-lablelledby': this.controlledBy || null
- }
- }, [this.$slots.default]);
- }
- return h('transition', {
- props: { mode: 'out-in' },
- on: {
- beforeEnter: this.beforeEnter,
- beforeLeave: this.beforeLeave
- }
- }, [content]);
- },
- methods: {
- beforeEnter: function beforeEnter() {
- var _this = this;
- // change opacity 1 frame after display
- // otherwise css transition won't happen
- window.requestAnimationFrame(function () {
- _this.show = true;
- });
- },
- beforeLeave: function beforeLeave() {
- this.show = false;
- }
- },
- data: function data() {
- return {
- localActive: this.active && !this.disabled,
- show: false
- };
- },
- mounted: function mounted() {
- this.show = this.localActive;
- },
- computed: {
- tabClasses: function tabClasses() {
- return ['tab-pane', this.$parent && this.$parent.card && !this.noBody ? 'card-body' : '', this.show ? 'show' : '', this.computedFade ? 'fade' : '', this.disabled ? 'disabled' : '', this.localActive ? 'active' : ''];
- },
- controlledBy: function controlledBy() {
- return this.buttonId || this.safeId('__BV_tab_button__');
- },
- computedFade: function computedFade() {
- return this.$parent.fade;
- },
- computedLazy: function computedLazy() {
- return this.$parent.lazy;
- },
- _isTab: function _isTab() {
- // For parent sniffing of child
- return true;
- }
- },
- props: {
- active: {
- type: Boolean,
- default: false
- },
- tag: {
- type: String,
- default: 'div'
- },
- buttonId: {
- type: String,
- default: ''
- },
- title: {
- type: String,
- default: ''
- },
- titleItemClass: {
- // Sniffed by tabs.vue and added to nav 'li.nav-item'
- type: [String, Array, Object],
- default: null
- },
- titleLinkClass: {
- // Sniffed by tabs.vue and added to nav 'a.nav-link'
- type: [String, Array, Object],
- default: null
- },
- headHtml: {
- // Is this actually ever used?
- type: String,
- default: null
- },
- disabled: {
- type: Boolean,
- default: false
- },
- noBody: {
- type: Boolean,
- default: false
- },
- href: {
- type: String,
- default: '#'
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/tabs/tabs.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_observe_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_id__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js");
- 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; }
- // Helper component
- var bTabButtonHelper = {
- name: 'bTabButtonHelper',
- props: {
- content: { type: [String, Array], default: '' },
- href: { type: String, default: '#' },
- posInSet: { type: Number, default: null },
- setSize: { type: Number, default: null },
- controls: { type: String, default: null },
- id: { type: String, default: null },
- active: { type: Boolean, default: false },
- disabled: { type: Boolean, default: false },
- linkClass: { default: null },
- itemClass: { default: null },
- noKeyNav: { type: Boolean, default: false }
- },
- render: function render(h) {
- var link = h('a', {
- class: ['nav-link', { active: this.active, disabled: this.disabled }, this.linkClass],
- attrs: {
- role: 'tab',
- tabindex: this.noKeyNav ? null : '-1',
- href: this.href,
- id: this.id,
- disabled: this.disabled,
- 'aria-selected': this.active ? 'true' : 'false',
- 'aria-setsize': this.setSize,
- 'aria-posinset': this.posInSet,
- 'aria-controls': this.controls
- },
- on: {
- click: this.handleClick,
- keydown: this.handleClick
- }
- }, this.content);
- return h('li', { class: ['nav-item', this.itemClass], attrs: { role: 'presentation' } }, [link]);
- },
- methods: {
- handleClick: function handleClick(evt) {
- function stop() {
- evt.preventDefault();
- evt.stopPropagation();
- }
- if (evt.type !== 'click' && this.noKeyNav) {
- return;
- }
- if (this.disabled) {
- stop();
- return;
- }
- 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) {
- stop();
- this.$emit('click', evt);
- }
- }
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_id__["a" /* default */]],
- render: function render(h) {
- var _this = this,
- _ref;
- var tabs = this.tabs;
- // Navigation 'buttons'
- var buttons = tabs.map(function (tab, index) {
- return h(bTabButtonHelper, {
- key: index,
- props: {
- content: tab.$slots.title || tab.title,
- href: tab.href,
- id: tab.controlledBy || _this.safeId('_BV_tab_' + (index + 1) + '_'),
- active: tab.localActive,
- disabled: tab.disabled,
- setSize: tabs.length,
- posInSet: index + 1,
- controls: _this.safeId('_BV_tab_container_'),
- linkClass: tab.titleLinkClass,
- itemClass: tab.titleItemClass,
- noKeyNav: _this.noKeyNav
- },
- on: {
- click: function click(evt) {
- _this.setTab(index);
- }
- }
- });
- });
- // Nav 'button' wrapper
- var navs = h('ul', {
- 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],
- attrs: {
- role: 'tablist',
- tabindex: this.noKeyNav ? null : '0',
- id: this.safeId('_BV_tab_controls_')
- },
- on: { keydown: this.onKeynav }
- }, [buttons, this.$slots.tabs]);
- navs = h('div', {
- class: [{
- 'card-header': this.card && !this.vertical && !(this.end || this.bottom),
- 'card-footer': this.card && !this.vertical && (this.end || this.bottom),
- 'col-auto': this.vertical
- }, this.navWrapperClass]
- }, [navs]);
- var empty = void 0;
- if (tabs && tabs.length) {
- empty = h(false);
- } else {
- empty = h('div', { class: ['tab-pane', 'active', { 'card-body': this.card }] }, this.$slots.empty);
- }
- // Main content section
- var content = h('div', {
- ref: 'tabsContainer',
- class: ['tab-content', { col: this.vertical }, this.contentClass],
- attrs: { id: this.safeId('_BV_tab_container_') }
- }, [this.$slots.default, empty]);
- // Render final output
- return h(this.tag, {
- class: ['tabs', { row: this.vertical, 'no-gutters': this.vertical && this.card }],
- attrs: { id: this.safeId() }
- }, [this.end || this.bottom ? content : h(false), [navs], this.end || this.bottom ? h(false) : content]);
- },
- data: function data() {
- return {
- currentTab: this.value,
- tabs: []
- };
- },
- props: {
- tag: {
- type: String,
- default: 'div'
- },
- card: {
- type: Boolean,
- default: false
- },
- small: {
- type: Boolean,
- default: false
- },
- value: {
- type: Number,
- default: null
- },
- pills: {
- type: Boolean,
- default: false
- },
- vertical: {
- type: Boolean,
- default: false
- },
- bottom: {
- type: Boolean,
- default: false
- },
- end: {
- // Synonym for 'bottom'
- type: Boolean,
- default: false
- },
- noFade: {
- type: Boolean,
- default: false
- },
- noNavStyle: {
- type: Boolean,
- default: false
- },
- noKeyNav: {
- type: Boolean,
- default: false
- },
- lazy: {
- // This prop is sniffed by the tab child
- type: Boolean,
- default: false
- },
- contentClass: {
- type: [String, Array, Object],
- default: null
- },
- navClass: {
- type: [String, Array, Object],
- default: null
- },
- navWrapperClass: {
- type: [String, Array, Object],
- default: null
- }
- },
- watch: {
- currentTab: function currentTab(val, old) {
- if (val === old) {
- return;
- }
- this.$root.$emit('changed::tab', this, val, this.tabs[val]);
- this.$emit('input', val);
- this.tabs[val].$emit('click');
- },
- value: function value(val, old) {
- if (val === old) {
- return;
- }
- if (typeof old !== 'number') {
- old = 0;
- }
- // Moving left or right?
- var direction = val < old ? -1 : 1;
- this.setTab(val, false, direction);
- }
- },
- computed: {
- fade: function fade() {
- // This computed prop is sniffed by the tab child
- return !this.noFade;
- },
- navStyle: function navStyle() {
- return this.pills ? 'pills' : 'tabs';
- }
- },
- methods: {
- /**
- * Util: Return the sign of a number (as -1, 0, or 1)
- */
- sign: function sign(x) {
- return x === 0 ? 0 : x > 0 ? 1 : -1;
- },
- /*
- * handle keyboard navigation
- */
- onKeynav: function onKeynav(evt) {
- if (this.noKeyNav) {
- return;
- }
- var key = evt.keyCode;
- var shift = evt.shiftKey;
- function stop() {
- evt.preventDefault();
- evt.stopPropagation();
- }
- if (key === __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__["a" /* default */].UP || key === __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__["a" /* default */].LEFT) {
- stop();
- if (shift) {
- this.setTab(0, false, 1);
- } else {
- this.previousTab();
- }
- } else if (key === __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__["a" /* default */].DOWN || key === __WEBPACK_IMPORTED_MODULE_0__utils_key_codes__["a" /* default */].RIGHT) {
- stop();
- if (shift) {
- this.setTab(this.tabs.length - 1, false, -1);
- } else {
- this.nextTab();
- }
- }
- },
- /**
- * Move to next tab
- */
- nextTab: function nextTab() {
- this.setTab(this.currentTab + 1, false, 1);
- },
- /**
- * Move to previous tab
- */
- previousTab: function previousTab() {
- this.setTab(this.currentTab - 1, false, -1);
- },
- /**
- * Set active tab on the tabs collection and the child 'tab' component
- * Index is the tab we want to activate. Direction is the direction we are moving
- * so if the tab we requested is disabled, we can skip over it.
- * Force is used by updateTabs to ensure we have cleared any previous active tabs.
- */
- setTab: function setTab(index, force, direction) {
- var _this2 = this;
- direction = this.sign(direction || 0);
- index = index || 0;
- // Prevent setting same tab and infinite loops!
- if (!force && index === this.currentTab) {
- return;
- }
- var tab = this.tabs[index];
- // Don't go beyond indexes!
- if (!tab) {
- // Reset the v-model to the current Tab
- this.$emit('input', this.currentTab);
- return;
- }
- // Ignore or Skip disabled
- if (tab.disabled) {
- if (direction) {
- // Skip to next non disabled tab in specified direction (recursive)
- this.setTab(index + direction, force, direction);
- }
- return;
- }
- // Activate requested current tab, and deactivte any old tabs
- this.tabs.forEach(function (t) {
- if (t === tab) {
- // Set new tab as active
- _this2.$set(t, 'localActive', true);
- } else {
- // Ensure non current tabs are not active
- _this2.$set(t, 'localActive', false);
- }
- });
- // Update currentTab
- this.currentTab = index;
- },
- /**
- * Dynamically update tabs list
- */
- updateTabs: function updateTabs() {
- // Probe tabs
- this.tabs = this.$children.filter(function (child) {
- return child._isTab;
- });
- // Set initial active tab
- var tabIndex = null;
- // Find *last* active non-dsabled tab in current tabs
- // We trust tab state over currentTab
- this.tabs.forEach(function (tab, index) {
- if (tab.localActive && !tab.disabled) {
- tabIndex = index;
- }
- });
- // Else try setting to currentTab
- if (tabIndex === null) {
- if (this.currentTab >= this.tabs.length) {
- // Handle last tab being removed
- this.setTab(this.tabs.length - 1, true, -1);
- return;
- } else if (this.tabs[this.currentTab] && !this.tabs[this.currentTab].disabled) {
- tabIndex = this.currentTab;
- }
- }
- // Else find *first* non-disabled tab in current tabs
- if (tabIndex === null) {
- this.tabs.forEach(function (tab, index) {
- if (!tab.disabled && tabIndex === null) {
- tabIndex = index;
- }
- });
- }
- this.setTab(tabIndex || 0, true, 0);
- }
- },
- mounted: function mounted() {
- this.updateTabs();
- // Observe Child changes so we can notify tabs change
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_observe_dom__["a" /* default */])(this.$refs.tabsContainer, this.updateTabs.bind(this), {
- subtree: false
- });
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/tooltip/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tooltip__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/tooltip/tooltip.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var components = {
- bTooltip: __WEBPACK_IMPORTED_MODULE_0__tooltip__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["a" /* registerComponents */])(Vue, components);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/components/tooltip/tooltip.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_tooltip_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/tooltip.class.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_toolpop__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/toolpop.js");
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_toolpop__["a" /* default */]],
- render: function render(h) {
- return h('div', { class: ['d-none'], style: { display: 'none' }, attrs: { 'aria-hidden': true } }, [h('div', { ref: 'title' }, this.$slots.default)]);
- },
- data: function data() {
- return {};
- },
- props: {
- title: {
- type: String,
- default: ''
- },
- triggers: {
- type: [String, Array],
- default: 'hover focus'
- },
- placement: {
- type: String,
- default: 'top'
- }
- },
- methods: {
- createToolpop: function createToolpop() {
- // getTarget is in toolpop mixin
- var target = this.getTarget();
- if (target) {
- this._toolpop = new __WEBPACK_IMPORTED_MODULE_0__utils_tooltip_class__["a" /* default */](target, this.getConfig(), this.$root);
- } else {
- this._toolpop = null;
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_warn__["a" /* default */])("b-tooltip: 'target' element not found!");
- }
- return this._toolpop;
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__toggle__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/toggle/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__modal__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/modal/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__scrollspy__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/scrollspy/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__tooltip__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/tooltip/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__popover__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/popover/index.js");
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Toggle", function() { return __WEBPACK_IMPORTED_MODULE_0__toggle__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return __WEBPACK_IMPORTED_MODULE_1__modal__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Scrollspy", function() { return __WEBPACK_IMPORTED_MODULE_2__scrollspy__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return __WEBPACK_IMPORTED_MODULE_3__tooltip__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Popover", function() { return __WEBPACK_IMPORTED_MODULE_4__popover__["a"]; });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/modal/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__modal__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/modal/modal.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var directives = {
- bModal: __WEBPACK_IMPORTED_MODULE_0__modal__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["b" /* registerDirectives */])(Vue, directives);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/modal/modal.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_target__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/target.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- var listenTypes = { click: true };
- /* harmony default export */ __webpack_exports__["a"] = ({
- // eslint-disable-next-line no-shadow-restricted-names
- bind: function bind(el, binding, vnode) {
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_target__["a" /* bindTargets */])(vnode, binding, listenTypes, function (_ref) {
- var targets = _ref.targets,
- vnode = _ref.vnode;
- targets.forEach(function (target) {
- vnode.context.$root.$emit('bv::show::modal', target, vnode.elm);
- });
- });
- if (el.tagName !== 'BUTTON') {
- // If element is not a button, we add `role="button"` for accessibility
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(el, 'role', 'button');
- }
- },
- unbind: function unbind(el, binding, vnode) {
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_target__["c" /* unbindTargets */])(vnode, binding, listenTypes);
- if (el.tagName !== 'BUTTON') {
- // If element is not a button, we add `role="button"` for accessibility
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["r" /* removeAttr */])(el, 'role', 'button');
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/popover/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__popover__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/popover/popover.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var directives = {
- bPopover: __WEBPACK_IMPORTED_MODULE_0__popover__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["b" /* registerDirectives */])(Vue, directives);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/popover/popover.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_popper_js__ = __webpack_require__("./node_modules/popper.js/dist/esm/popper.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_popover_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/popover.class.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- 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; };
- var inBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
- // Key which we use to store tooltip object on element
- var BVPO = '__BV_PopOver__';
- // Valid event triggers
- var validTriggers = {
- 'focus': true,
- 'hover': true,
- 'click': true,
- 'blur': true
- // Build a PopOver config based on bindings (if any)
- // Arguments and modifiers take precedence over pased value config object
- /* istanbul ignore next: not easy to test */
- };function parseBindings(bindings) {
- // We start out with a blank config
- var config = {};
- // Process bindings.value
- if (typeof bindings.value === 'string') {
- // Value is popover content (html optionally supported)
- config.content = bindings.value;
- } else if (typeof bindings.value === 'function') {
- // Content generator function
- config.content = bindings.value;
- } else if (_typeof(bindings.value) === 'object') {
- // Value is config object, so merge
- config = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])(bindings.value);
- }
- // If Argument, assume element ID of container element
- if (bindings.arg) {
- // Element ID specified as arg. We must prepend '#' to become a CSS selector
- config.container = '#' + bindings.arg;
- }
- // Process modifiers
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(bindings.modifiers).forEach(function (mod) {
- if (/^html$/.test(mod)) {
- // Title allows HTML
- config.html = true;
- } else if (/^nofade$/.test(mod)) {
- // no animation
- config.animation = false;
- } else if (/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/.test(mod)) {
- // placement of popover
- config.placement = mod;
- } else if (/^(window|viewport)$/.test(mod)) {
- // bounday of popover
- config.boundary = mod;
- } else if (/^d\d+$/.test(mod)) {
- // delay value
- var delay = parseInt(mod.slice(1), 10) || 0;
- if (delay) {
- config.delay = delay;
- }
- } else if (/^o-?\d+$/.test(mod)) {
- // offset value (negative allowed)
- var offset = parseInt(mod.slice(1), 10) || 0;
- if (offset) {
- config.offset = offset;
- }
- }
- });
- // Special handling of event trigger modifiers Trigger is a space separated list
- var selectedTriggers = {};
- // parse current config object trigger
- var triggers = typeof config.trigger === 'string' ? config.trigger.trim().split(/\s+/) : [];
- triggers.forEach(function (trigger) {
- if (validTriggers[trigger]) {
- selectedTriggers[trigger] = true;
- }
- });
- // Parse Modifiers for triggers
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(validTriggers).forEach(function (trigger) {
- if (bindings.modifiers[trigger]) {
- selectedTriggers[trigger] = true;
- }
- });
- // Sanitize triggers
- config.trigger = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(selectedTriggers).join(' ');
- if (config.trigger === 'blur') {
- // Blur by itself is useless, so convert it to focus
- config.trigger = 'focus';
- }
- if (!config.trigger) {
- // remove trigger config
- delete config.trigger;
- }
- return config;
- }
- //
- // Add or Update popover on our element
- //
- /* istanbul ignore next: not easy to test */
- function applyBVPO(el, bindings, vnode) {
- if (!inBrowser) {
- return;
- }
- if (!__WEBPACK_IMPORTED_MODULE_0_popper_js__["default"]) {
- // Popper is required for tooltips to work
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_warn__["a" /* default */])('v-b-popover: Popper.js is required for popovers to work');
- return;
- }
- if (el[BVPO]) {
- el[BVPO].updateConfig(parseBindings(bindings));
- } else {
- el[BVPO] = new __WEBPACK_IMPORTED_MODULE_1__utils_popover_class__["a" /* default */](el, parseBindings(bindings), vnode.context.$root);
- }
- };
- //
- // Remove popover on our element
- //
- /* istanbul ignore next */
- function removeBVPO(el) {
- if (!inBrowser) {
- return;
- }
- if (el[BVPO]) {
- el[BVPO].destroy();
- el[BVPO] = null;
- delete el[BVPO];
- }
- }
- /*
- * Export our directive
- */
- /* istanbul ignore next: not easy to test */
- /* harmony default export */ __webpack_exports__["a"] = ({
- bind: function bind(el, bindings, vnode) {
- applyBVPO(el, bindings, vnode);
- },
- inserted: function inserted(el, bindings, vnode) {
- applyBVPO(el, bindings, vnode);
- },
- update: function update(el, bindings, vnode) {
- if (bindings.value !== bindings.oldValue) {
- applyBVPO(el, bindings, vnode);
- }
- },
- componentUpdated: function componentUpdated(el, bindings, vnode) {
- if (bindings.value !== bindings.oldValue) {
- applyBVPO(el, bindings, vnode);
- }
- },
- unbind: function unbind(el) {
- removeBVPO(el);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/scrollspy/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__scrollspy__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var directives = {
- bScrollspy: __WEBPACK_IMPORTED_MODULE_0__scrollspy__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["b" /* registerDirectives */])(Vue, directives);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.class.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_observe_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /*
- * ScrollSpy class definition
- */
- /*
- * Constants / Defaults
- */
- var NAME = 'v-b-scrollspy';
- var ACTIVATE_EVENT = 'bv::scrollspy::activate';
- var Default = {
- element: 'body',
- offset: 10,
- method: 'auto',
- throttle: 75
- };
- var DefaultType = {
- element: '(string|element|component)',
- offset: 'number',
- method: 'string',
- throttle: 'number'
- };
- var ClassName = {
- DROPDOWN_ITEM: 'dropdown-item',
- ACTIVE: 'active'
- };
- var Selector = {
- ACTIVE: '.active',
- NAV_LIST_GROUP: '.nav, .list-group',
- NAV_LINKS: '.nav-link',
- NAV_ITEMS: '.nav-item',
- LIST_ITEMS: '.list-group-item',
- DROPDOWN: '.dropdown, .dropup',
- DROPDOWN_ITEMS: '.dropdown-item',
- DROPDOWN_TOGGLE: '.dropdown-toggle'
- };
- var OffsetMethod = {
- OFFSET: 'offset',
- POSITION: 'position'
- // HREFs must start with # but can be === '#', or start with '#/' or '#!' (which can be router links)
- };var HREF_REGEX = /^#[^/!]+/;
- // Transition Events
- var TransitionEndEvents = ['webkitTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd'];
- /*
- * Utility Methods
- */
- // Better var type detection
- /* istanbul ignore next: not easy to test */
- function toType(obj) {
- return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
- }
- // Check config properties for expected types
- /* istanbul ignore next: not easy to test */
- function typeCheckConfig(componentName, config, configTypes) {
- for (var property in configTypes) {
- if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
- var expectedTypes = configTypes[property];
- var value = config[property];
- var valueType = value && Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["l" /* isElement */])(value) ? 'element' : toType(value);
- // handle Vue instances
- valueType = value && value._isVue ? 'component' : valueType;
- if (!new RegExp(expectedTypes).test(valueType)) {
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_warn__["a" /* default */])(componentName + ': Option "' + property + '" provided type "' + valueType + '", but expected type "' + expectedTypes + '"');
- }
- }
- }
- }
- /*
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- /* istanbul ignore next: not easy to test */
- var ScrollSpy = function () {
- function ScrollSpy(element, config, $root) {
- _classCallCheck(this, ScrollSpy);
- // The element we activate links in
- this.$el = element;
- this.$scroller = null;
- this.$selector = [Selector.NAV_LINKS, Selector.LIST_ITEMS, Selector.DROPDOWN_ITEMS].join(',');
- this.$offsets = [];
- this.$targets = [];
- this.$activeTarget = null;
- this.$scrollHeight = 0;
- this.$resizeTimeout = null;
- this.$obs_scroller = null;
- this.$obs_targets = null;
- this.$root = $root || null;
- this.$config = null;
- this.updateConfig(config);
- }
- _createClass(ScrollSpy, [{
- key: 'updateConfig',
- value: function updateConfig(config, $root) {
- if (this.$scroller) {
- // Just in case out scroll element has changed
- this.unlisten();
- this.$scroller = null;
- }
- var cfg = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])({}, this.constructor.Default, config);
- if ($root) {
- this.$root = $root;
- }
- typeCheckConfig(this.constructor.Name, cfg, this.constructor.DefaultType);
- this.$config = cfg;
- if (this.$root) {
- var self = this;
- this.$root.$nextTick(function () {
- self.listen();
- });
- } else {
- this.listen();
- }
- }
- }, {
- key: 'dispose',
- value: function dispose() {
- this.unlisten();
- clearTimeout(this.$resizeTimeout);
- this.$resizeTimeout = null;
- this.$el = null;
- this.$config = null;
- this.$scroller = null;
- this.$selector = null;
- this.$offsets = null;
- this.$targets = null;
- this.$activeTarget = null;
- this.$scrollHeight = null;
- }
- }, {
- key: 'listen',
- value: function listen() {
- var _this = this;
- var scroller = this.getScroller();
- if (scroller && scroller.tagName !== 'BODY') {
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["d" /* eventOn */])(scroller, 'scroll', this);
- }
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["d" /* eventOn */])(window, 'scroll', this);
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["d" /* eventOn */])(window, 'resize', this);
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["d" /* eventOn */])(window, 'orientationchange', this);
- TransitionEndEvents.forEach(function (evtName) {
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["d" /* eventOn */])(window, evtName, _this);
- });
- this.setObservers(true);
- // Scedule a refresh
- this.handleEvent('refresh');
- }
- }, {
- key: 'unlisten',
- value: function unlisten() {
- var _this2 = this;
- var scroller = this.getScroller();
- this.setObservers(false);
- if (scroller && scroller.tagName !== 'BODY') {
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["c" /* eventOff */])(scroller, 'scroll', this);
- }
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["c" /* eventOff */])(window, 'scroll', this);
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["c" /* eventOff */])(window, 'resize', this);
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["c" /* eventOff */])(window, 'orientationchange', this);
- TransitionEndEvents.forEach(function (evtName) {
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["c" /* eventOff */])(window, evtName, _this2);
- });
- }
- }, {
- key: 'setObservers',
- value: function setObservers(on) {
- var _this3 = this;
- // We observe both the scroller for content changes, and the target links
- if (this.$obs_scroller) {
- this.$obs_scroller.disconnect();
- this.$obs_scroller = null;
- }
- if (this.$obs_targets) {
- this.$obs_targets.disconnect();
- this.$obs_targets = null;
- }
- if (on) {
- this.$obs_targets = Object(__WEBPACK_IMPORTED_MODULE_1__utils_observe_dom__["a" /* default */])(this.$el, function () {
- _this3.handleEvent('mutation');
- }, {
- subtree: true,
- childList: true,
- attributes: true,
- attributeFilter: ['href']
- });
- this.$obs_scroller = Object(__WEBPACK_IMPORTED_MODULE_1__utils_observe_dom__["a" /* default */])(this.getScroller(), function () {
- _this3.handleEvent('mutation');
- }, {
- subtree: true,
- childList: true,
- characterData: true,
- attributes: true,
- attributeFilter: ['id', 'style', 'class']
- });
- }
- }
- // general event handler
- }, {
- key: 'handleEvent',
- value: function handleEvent(evt) {
- var type = typeof evt === 'string' ? evt : evt.type;
- var self = this;
- function resizeThrottle() {
- if (!self.$resizeTimeout) {
- self.$resizeTimeout = setTimeout(function () {
- self.refresh();
- self.process();
- self.$resizeTimeout = null;
- }, self.$config.throttle);
- }
- }
- if (type === 'scroll') {
- if (!this.$obs_scroller) {
- // Just in case we are added to the DOM before the scroll target is
- // We re-instantiate our listeners, just in case
- this.listen();
- }
- this.process();
- } else if (/(resize|orientationchange|mutation|refresh)/.test(type)) {
- // Postpone these events by throttle time
- resizeThrottle();
- }
- }
- // Refresh the list of target links on the element we are applied to
- }, {
- key: 'refresh',
- value: function refresh() {
- var _this4 = this;
- var scroller = this.getScroller();
- if (!scroller) {
- return;
- }
- var autoMethod = scroller !== scroller.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
- var method = this.$config.method === 'auto' ? autoMethod : this.$config.method;
- var methodFn = method === OffsetMethod.POSITION ? __WEBPACK_IMPORTED_MODULE_3__utils_dom__["p" /* position */] : __WEBPACK_IMPORTED_MODULE_3__utils_dom__["o" /* offset */];
- var offsetBase = method === OffsetMethod.POSITION ? this.getScrollTop() : 0;
- this.$offsets = [];
- this.$targets = [];
- this.$scrollHeight = this.getScrollHeight();
- // Find all the unique link href's
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["u" /* selectAll */])(this.$selector, this.$el).map(function (link) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["e" /* getAttr */])(link, 'href');
- }).filter(function (href) {
- return HREF_REGEX.test(href || '');
- }).map(function (href) {
- var el = Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["t" /* select */])(href, scroller);
- if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["m" /* isVisible */])(el)) {
- return {
- offset: parseInt(methodFn(el).top, 10) + offsetBase,
- target: href
- };
- }
- return null;
- }).filter(function (item) {
- return item;
- }).sort(function (a, b) {
- return a.offset - b.offset;
- }).reduce(function (memo, item) {
- // record only unique targets/offfsets
- if (!memo[item.target]) {
- _this4.$offsets.push(item.offset);
- _this4.$targets.push(item.target);
- memo[item.target] = true;
- }
- return memo;
- }, {});
- return this;
- }
- // Handle activating/clearing
- }, {
- key: 'process',
- value: function process() {
- var scrollTop = this.getScrollTop() + this.$config.offset;
- var scrollHeight = this.getScrollHeight();
- var maxScroll = this.$config.offset + scrollHeight - this.getOffsetHeight();
- if (this.$scrollHeight !== scrollHeight) {
- this.refresh();
- }
- if (scrollTop >= maxScroll) {
- var target = this.$targets[this.$targets.length - 1];
- if (this.$activeTarget !== target) {
- this.activate(target);
- }
- return;
- }
- if (this.$activeTarget && scrollTop < this.$offsets[0] && this.$offsets[0] > 0) {
- this.$activeTarget = null;
- this.clear();
- return;
- }
- for (var i = this.$offsets.length; i--;) {
- var isActiveTarget = this.$activeTarget !== this.$targets[i] && scrollTop >= this.$offsets[i] && (typeof this.$offsets[i + 1] === 'undefined' || scrollTop < this.$offsets[i + 1]);
- if (isActiveTarget) {
- this.activate(this.$targets[i]);
- }
- }
- }
- }, {
- key: 'getScroller',
- value: function getScroller() {
- if (this.$scroller) {
- return this.$scroller;
- }
- var scroller = this.$config.element;
- if (!scroller) {
- return null;
- } else if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["l" /* isElement */])(scroller.$el)) {
- scroller = scroller.$el;
- } else if (typeof scroller === 'string') {
- scroller = Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["t" /* select */])(scroller);
- }
- if (!scroller) {
- return null;
- }
- this.$scroller = scroller.tagName === 'BODY' ? window : scroller;
- return this.$scroller;
- }
- }, {
- key: 'getScrollTop',
- value: function getScrollTop() {
- var scroller = this.getScroller();
- return scroller === window ? scroller.pageYOffset : scroller.scrollTop;
- }
- }, {
- key: 'getScrollHeight',
- value: function getScrollHeight() {
- return this.getScroller().scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
- }
- }, {
- key: 'getOffsetHeight',
- value: function getOffsetHeight() {
- var scroller = this.getScroller();
- return scroller === window ? window.innerHeight : Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["f" /* getBCR */])(scroller).height;
- }
- }, {
- key: 'activate',
- value: function activate(target) {
- var _this5 = this;
- this.$activeTarget = target;
- this.clear();
- // Grab the list of target links (<a href="{$target}">)
- var links = Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["u" /* selectAll */])(this.$selector.split(',').map(function (selector) {
- return selector + '[href="' + target + '"]';
- }).join(','), this.$el);
- links.forEach(function (link) {
- if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["j" /* hasClass */])(link, ClassName.DROPDOWN_ITEM)) {
- // This is a dropdown item, so find the .dropdown-toggle and set it's state
- var dropdown = Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["b" /* closest */])(Selector.DROPDOWN, link);
- if (dropdown) {
- _this5.setActiveState(Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["t" /* select */])(Selector.DROPDOWN_TOGGLE, dropdown), true);
- }
- // Also set this link's state
- _this5.setActiveState(link, true);
- } else {
- // Set triggered link as active
- _this5.setActiveState(link, true);
- if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["n" /* matches */])(link.parentElement, Selector.NAV_ITEMS)) {
- // Handle nav-link inside nav-item, and set nav-item active
- _this5.setActiveState(link.parentElement, true);
- }
- // Set triggered links parents as active
- // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
- var el = link;
- while (el) {
- el = Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["b" /* closest */])(Selector.NAV_LIST_GROUP, el);
- var sibling = el ? el.previousElementSibling : null;
- if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["n" /* matches */])(sibling, Selector.NAV_LINKS + ', ' + Selector.LIST_ITEMS)) {
- _this5.setActiveState(sibling, true);
- }
- // Handle special case where nav-link is inside a nav-item
- if (Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["n" /* matches */])(sibling, Selector.NAV_ITEMS)) {
- _this5.setActiveState(Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["t" /* select */])(Selector.NAV_LINKS, sibling), true);
- // Add active state to nav-item as well
- _this5.setActiveState(sibling, true);
- }
- }
- }
- });
- // Signal event to via $root, passing ID of activaed target and reference to array of links
- if (links && links.length > 0 && this.$root) {
- this.$root.$emit(ACTIVATE_EVENT, target, links);
- }
- }
- }, {
- key: 'clear',
- value: function clear() {
- var _this6 = this;
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["u" /* selectAll */])(this.$selector + ', ' + Selector.NAV_ITEMS, this.$el).filter(function (el) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["j" /* hasClass */])(el, ClassName.ACTIVE);
- }).forEach(function (el) {
- return _this6.setActiveState(el, false);
- });
- }
- }, {
- key: 'setActiveState',
- value: function setActiveState(el, active) {
- if (!el) {
- return;
- }
- if (active) {
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["a" /* addClass */])(el, ClassName.ACTIVE);
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_dom__["s" /* removeClass */])(el, ClassName.ACTIVE);
- }
- }
- }], [{
- key: 'Name',
- get: function get() {
- return NAME;
- }
- }, {
- key: 'Default',
- get: function get() {
- return Default;
- }
- }, {
- key: 'DefaultType',
- get: function get() {
- return DefaultType;
- }
- }]);
- return ScrollSpy;
- }();
- /* harmony default export */ __webpack_exports__["a"] = (ScrollSpy);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__scrollspy_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.class.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- 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; };
- /*
- * ScrollSpy directive v-b-scrollspy
- */
- var inBrowser = typeof window !== 'undefined';
- var isServer = !inBrowser;
- // Key we use to store our Instance
- var BVSS = '__BV_ScrollSpy__';
- // Generate config from bindings
- /* istanbul ignore next: not easy to test */
- function makeConfig(binding) {
- var config = {};
- // If Argument, assume element ID
- if (binding.arg) {
- // Element ID specified as arg. We must pre-pend #
- config.element = '#' + binding.arg;
- }
- // Process modifiers
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_object__["e" /* keys */])(binding.modifiers).forEach(function (mod) {
- if (/^\d+$/.test(mod)) {
- // Offest value
- config.offset = parseInt(mod, 10);
- } else if (/^(auto|position|offset)$/.test(mod)) {
- // Offset method
- config.method = mod;
- }
- });
- // Process value
- if (typeof binding.value === 'string') {
- // Value is a CSS ID or selector
- config.element = binding.value;
- } else if (typeof binding.value === 'number') {
- // Value is offset
- config.offset = Math.round(binding.value);
- } else if (_typeof(binding.value) === 'object') {
- // Value is config object
- // Filter the object based on our supported config options
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_object__["e" /* keys */])(binding.value).filter(function (k) {
- return Boolean(__WEBPACK_IMPORTED_MODULE_0__scrollspy_class__["a" /* default */].DefaultType[k]);
- }).forEach(function (k) {
- config[k] = binding.value[k];
- });
- }
- return config;
- }
- /* istanbul ignore next: not easy to test */
- function addBVSS(el, binding, vnode) {
- if (isServer) {
- return;
- }
- var cfg = makeConfig(binding);
- if (!el[BVSS]) {
- el[BVSS] = new __WEBPACK_IMPORTED_MODULE_0__scrollspy_class__["a" /* default */](el, cfg, vnode.context.$root);
- } else {
- el[BVSS].updateConfig(cfg, vnode.context.$root);
- }
- return el[BVSS];
- }
- /* istanbul ignore next: not easy to test */
- function removeBVSS(el) {
- if (el[BVSS]) {
- el[BVSS].dispose();
- el[BVSS] = null;
- }
- }
- /*
- * Export our directive
- */
- /* istanbul ignore next: not easy to test */
- /* harmony default export */ __webpack_exports__["a"] = ({
- bind: function bind(el, binding, vnode) {
- addBVSS(el, binding, vnode);
- },
- inserted: function inserted(el, binding, vnode) {
- addBVSS(el, binding, vnode);
- },
- update: function update(el, binding, vnode) {
- addBVSS(el, binding, vnode);
- },
- componentUpdated: function componentUpdated(el, binding, vnode) {
- addBVSS(el, binding, vnode);
- },
- unbind: function unbind(el) {
- if (isServer) {
- return;
- }
- // Remove scroll event listener on scrollElId
- removeBVSS(el);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/toggle/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__toggle__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/toggle/toggle.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var directives = {
- bToggle: __WEBPACK_IMPORTED_MODULE_0__toggle__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["b" /* registerDirectives */])(Vue, directives);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/toggle/toggle.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_target__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/target.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- // Are we client side?
- var inBrowser = typeof window !== 'undefined';
- // target listen types
- var listenTypes = { click: true
- // Property key for handler storage
- };var BVT = '__BV_toggle__';
- // Emitted Control Event for collapse (emitted to collapse)
- var EVENT_TOGGLE = 'bv::toggle::collapse';
- // Listen to Event for toggle state update (Emited by collapse)
- var EVENT_STATE = 'bv::collapse::state';
- /* harmony default export */ __webpack_exports__["a"] = ({
- bind: function bind(el, binding, vnode) {
- var targets = Object(__WEBPACK_IMPORTED_MODULE_0__utils_target__["b" /* default */])(vnode, binding, listenTypes, function (_ref) {
- var targets = _ref.targets,
- vnode = _ref.vnode;
- targets.forEach(function (target) {
- vnode.context.$root.$emit(EVENT_TOGGLE, target);
- });
- });
- if (inBrowser && vnode.context && targets.length > 0) {
- // Add aria attributes to element
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(el, 'aria-controls', targets.join(' '));
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(el, 'aria-expanded', 'false');
- if (el.tagName !== 'BUTTON') {
- // If element is not a button, we add `role="button"` for accessibility
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(el, 'role', 'button');
- }
- // Toggle state hadnler, stored on element
- el[BVT] = function toggleDirectiveHandler(id, state) {
- if (targets.indexOf(id) !== -1) {
- // Set aria-expanded state
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["v" /* setAttr */])(el, 'aria-expanded', state ? 'true' : 'false');
- // Set/Clear 'collapsed' class state
- if (state) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["s" /* removeClass */])(el, 'collapsed');
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["a" /* addClass */])(el, 'collapsed');
- }
- }
- };
- // Listen for toggle state changes
- vnode.context.$root.$on(EVENT_STATE, el[BVT]);
- }
- },
- unbind: function unbind(el, binding, vnode) {
- if (el[BVT]) {
- // Remove our $root listener
- vnode.context.$root.$off(EVENT_STATE, el[BVT]);
- el[BVT] = null;
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/tooltip/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tooltip__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/tooltip/tooltip.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var directives = {
- bTooltip: __WEBPACK_IMPORTED_MODULE_0__tooltip__["a" /* default */]
- };
- var VuePlugin = {
- install: function install(Vue) {
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["b" /* registerDirectives */])(Vue, directives);
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_1__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/directives/tooltip/tooltip.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_popper_js__ = __webpack_require__("./node_modules/popper.js/dist/esm/popper.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_tooltip_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/tooltip.class.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- 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; };
- var inBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
- // Key which we use to store tooltip object on element
- var BVTT = '__BV_ToolTip__';
- // Valid event triggers
- var validTriggers = {
- 'focus': true,
- 'hover': true,
- 'click': true,
- 'blur': true
- // Build a ToolTip config based on bindings (if any)
- // Arguments and modifiers take precedence over passed value config object
- /* istanbul ignore next: not easy to test */
- };function parseBindings(bindings) {
- // We start out with a blank config
- var config = {};
- // Process bindings.value
- if (typeof bindings.value === 'string') {
- // Value is tooltip content (html optionally supported)
- config.title = bindings.value;
- } else if (typeof bindings.value === 'function') {
- // Title generator function
- config.title = bindings.value;
- } else if (_typeof(bindings.value) === 'object') {
- // Value is config object, so merge
- config = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["a" /* assign */])(bindings.value);
- }
- // If Argument, assume element ID of container element
- if (bindings.arg) {
- // Element ID specified as arg. We must prepend '#' to become a CSS selector
- config.container = '#' + bindings.arg;
- }
- // Process modifiers
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(bindings.modifiers).forEach(function (mod) {
- if (/^html$/.test(mod)) {
- // Title allows HTML
- config.html = true;
- } else if (/^nofade$/.test(mod)) {
- // no animation
- config.animation = false;
- } else if (/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/.test(mod)) {
- // placement of tooltip
- config.placement = mod;
- } else if (/^(window|viewport)$/.test(mod)) {
- // bounday of tooltip
- config.boundary = mod;
- } else if (/^d\d+$/.test(mod)) {
- // delay value
- var delay = parseInt(mod.slice(1), 10) || 0;
- if (delay) {
- config.delay = delay;
- }
- } else if (/^o-?\d+$/.test(mod)) {
- // offset value. Negative allowed
- var offset = parseInt(mod.slice(1), 10) || 0;
- if (offset) {
- config.offset = offset;
- }
- }
- });
- // Special handling of event trigger modifiers Trigger is a space separated list
- var selectedTriggers = {};
- // parse current config object trigger
- var triggers = typeof config.trigger === 'string' ? config.trigger.trim().split(/\s+/) : [];
- triggers.forEach(function (trigger) {
- if (validTriggers[trigger]) {
- selectedTriggers[trigger] = true;
- }
- });
- // Parse Modifiers for triggers
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(validTriggers).forEach(function (trigger) {
- if (bindings.modifiers[trigger]) {
- selectedTriggers[trigger] = true;
- }
- });
- // Sanitize triggers
- config.trigger = Object(__WEBPACK_IMPORTED_MODULE_2__utils_object__["e" /* keys */])(selectedTriggers).join(' ');
- if (config.trigger === 'blur') {
- // Blur by itself is useless, so convert it to 'focus'
- config.trigger = 'focus';
- }
- if (!config.trigger) {
- // remove trigger config
- delete config.trigger;
- }
- return config;
- }
- //
- // Add or Update tooltip on our element
- //
- /* istanbul ignore next: not easy to test */
- function applyBVTT(el, bindings, vnode) {
- if (!inBrowser) {
- return;
- }
- if (!__WEBPACK_IMPORTED_MODULE_0_popper_js__["default"]) {
- // Popper is required for tooltips to work
- Object(__WEBPACK_IMPORTED_MODULE_3__utils_warn__["a" /* default */])('v-b-tooltip: Popper.js is required for tooltips to work');
- return;
- }
- if (el[BVTT]) {
- el[BVTT].updateConfig(parseBindings(bindings));
- } else {
- el[BVTT] = new __WEBPACK_IMPORTED_MODULE_1__utils_tooltip_class__["a" /* default */](el, parseBindings(bindings), vnode.context.$root);
- }
- }
- //
- // Remove tooltip on our element
- //
- /* istanbul ignore next: not easy to test */
- function removeBVTT(el) {
- if (!inBrowser) {
- return;
- }
- if (el[BVTT]) {
- el[BVTT].destroy();
- el[BVTT] = null;
- delete el[BVTT];
- }
- }
- /*
- * Export our directive
- */
- /* istanbul ignore next: not easy to test */
- /* harmony default export */ __webpack_exports__["a"] = ({
- bind: function bind(el, bindings, vnode) {
- applyBVTT(el, bindings, vnode);
- },
- inserted: function inserted(el, bindings, vnode) {
- applyBVTT(el, bindings, vnode);
- },
- update: function update(el, bindings, vnode) {
- if (bindings.value !== bindings.oldValue) {
- applyBVTT(el, bindings, vnode);
- }
- },
- componentUpdated: function componentUpdated(el, bindings, vnode) {
- if (bindings.value !== bindings.oldValue) {
- applyBVTT(el, bindings, vnode);
- }
- },
- unbind: function unbind(el) {
- removeBVTT(el);
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/index.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_plugins__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/plugins.js");
- var VuePlugin = {
- install: function install(Vue) {
- if (Vue._bootstrap_vue_installed) {
- return;
- }
- Vue._bootstrap_vue_installed = true;
- // Register component plugins
- for (var plugin in __WEBPACK_IMPORTED_MODULE_0__components__) {
- Vue.use(__WEBPACK_IMPORTED_MODULE_0__components__[plugin]);
- }
- // Register directive plugins
- for (var _plugin in __WEBPACK_IMPORTED_MODULE_1__directives__) {
- Vue.use(__WEBPACK_IMPORTED_MODULE_1__directives__[_plugin]);
- }
- }
- };
- Object(__WEBPACK_IMPORTED_MODULE_2__utils_plugins__["c" /* vueUse */])(VuePlugin);
- /* harmony default export */ __webpack_exports__["a"] = (VuePlugin);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/card-mixin.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: {
- tag: {
- type: String,
- default: 'div'
- },
- bgVariant: {
- type: String,
- default: null
- },
- borderVariant: {
- type: String,
- default: null
- },
- textVariant: {
- type: String,
- default: null
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/clickout.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony default export */ __webpack_exports__["a"] = ({
- mounted: function mounted() {
- if (typeof document !== 'undefined') {
- document.documentElement.addEventListener('click', this._clickOutListener);
- }
- },
- beforeDestroy: function beforeDestroy() {
- if (typeof document !== 'undefined') {
- document.documentElement.removeEventListener('click', this._clickOutListener);
- }
- },
- methods: {
- _clickOutListener: function _clickOutListener(e) {
- if (!this.$el.contains(e.target)) {
- if (this.clickOutListener) {
- this.clickOutListener();
- }
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/dropdown.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_popper_js__ = __webpack_require__("./node_modules/popper.js/dist/esm/popper.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__clickout__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/clickout.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__listen_on_root__ = __webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_bv_event_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/bv-event.class.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_warn__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- // Return an Array of visible items
- function filterVisible(els) {
- return (els || []).filter(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["m" /* isVisible */]);
- }
- // Dropdown item CSS selectors
- // TODO: .dropdown-form handling
- var ITEM_SELECTOR = '.dropdown-item:not(.disabled):not([disabled])';
- // Popper attachment positions
- var AttachmentMap = {
- // DropUp Left Align
- TOP: 'top-start',
- // DropUp Right Align
- TOPEND: 'top-end',
- // Dropdown left Align
- BOTTOM: 'bottom-start',
- // Dropdown Right Align
- BOTTOMEND: 'bottom-end'
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- mixins: [__WEBPACK_IMPORTED_MODULE_1__clickout__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__listen_on_root__["a" /* default */]],
- props: {
- disabled: {
- type: Boolean,
- default: false
- },
- text: {
- // Button label
- type: String,
- default: ''
- },
- dropup: {
- // place on top if possible
- type: Boolean,
- default: false
- },
- right: {
- // Right align menu (default is left align)
- type: Boolean,
- default: false
- },
- offset: {
- // Number of pixels to offset menu, or a CSS unit value (i.e. 1px, 1rem, etc)
- type: [Number, String],
- default: 0
- },
- noFlip: {
- // Disable auto-flipping of menu from bottom<=>top
- type: Boolean,
- default: false
- },
- popperOpts: {
- type: Object,
- default: function _default() {}
- }
- },
- data: function data() {
- return {
- visible: false,
- inNavbar: null,
- visibleChangePrevented: false
- };
- },
- created: function created() {
- // Create non-reactive property
- this._popper = null;
- },
- mounted: function mounted() {
- // To keep one dropdown opened on page
- this.listenOnRoot('bv::dropdown::shown', this.rootCloseListener);
- // Hide when clicked on links
- this.listenOnRoot('clicked::link', this.rootCloseListener);
- // Use new namespaced events
- this.listenOnRoot('bv::link::clicked', this.rootCloseListener);
- },
- /* istanbul ignore next: not easy to test */
- deactivated: function deactivated() {
- // In case we are inside a `<keep-alive>`
- this.visible = false;
- this.setTouchStart(false);
- this.removePopper();
- },
- /* istanbul ignore next: not easy to test */
- beforeDestroy: function beforeDestroy() {
- this.visible = false;
- this.setTouchStart(false);
- this.removePopper();
- },
- watch: {
- visible: function visible(newValue, oldValue) {
- if (this.visibleChangePrevented) {
- this.visibleChangePrevented = false;
- return;
- }
- if (newValue !== oldValue) {
- var evtName = newValue ? 'show' : 'hide';
- var bvEvt = new __WEBPACK_IMPORTED_MODULE_6__utils_bv_event_class__["a" /* default */](evtName, {
- cancelable: true,
- vueTarget: this,
- target: this.$refs.menu,
- relatedTarget: null
- });
- this.emitEvent(bvEvt);
- if (bvEvt.defaultPrevented) {
- // Reset value and exit if canceled
- this.visibleChangePrevented = true;
- this.visible = oldValue;
- return;
- }
- if (evtName === 'show') {
- this.showMenu();
- } else {
- this.hideMenu();
- }
- }
- },
- disabled: function disabled(newValue, oldValue) {
- if (newValue !== oldValue && newValue && this.visible) {
- // Hide dropdown if disabled changes to true
- this.visible = false;
- }
- }
- },
- computed: {
- toggler: function toggler() {
- return this.$refs.toggle.$el || this.$refs.toggle;
- }
- },
- methods: {
- // Event emitter
- emitEvent: function emitEvent(bvEvt) {
- var type = bvEvt.type;
- this.$emit(type, bvEvt);
- this.emitOnRoot('bv::dropdown::' + type, bvEvt);
- },
- showMenu: function showMenu() {
- if (this.disabled) {
- return;
- }
- // Ensure other menus are closed
- this.emitOnRoot('bv::dropdown::shown', this);
- // Are we in a navbar ?
- if (this.inNavbar === null && this.isNav) {
- this.inNavbar = Boolean(Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["b" /* closest */])('.navbar', this.$el));
- }
- // Disable totally Popper.js for Dropdown in Navbar
- /* istnbul ignore next: can't test popper in JSDOM */
- if (!this.inNavbar) {
- if (typeof __WEBPACK_IMPORTED_MODULE_0_popper_js__["default"] === 'undefined') {
- Object(__WEBPACK_IMPORTED_MODULE_7__utils_warn__["a" /* default */])('b-dropdown: Popper.js not found. Falling back to CSS positioning.');
- } else {
- // for dropup with alignment we use the parent element as popper container
- var element = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle;
- // Make sure we have a reference to an element, not a component!
- element = element.$el || element;
- // Instantiate popper.js
- this.createPopper(element);
- }
- }
- this.setTouchStart(true);
- this.$emit('shown');
- // Focus on the first item on show
- this.$nextTick(this.focusFirstItem);
- },
- hideMenu: function hideMenu() {
- this.setTouchStart(false);
- this.emitOnRoot('bv::dropdown::hidden', this);
- this.$emit('hidden');
- this.removePopper();
- },
- createPopper: function createPopper(element) {
- this.removePopper();
- this._popper = new __WEBPACK_IMPORTED_MODULE_0_popper_js__["default"](element, this.$refs.menu, this.getPopperConfig());
- },
- removePopper: function removePopper() {
- if (this._popper) {
- // Ensure popper event listeners are removed cleanly
- this._popper.destroy();
- }
- this._popper = null;
- },
- getPopperConfig /* istanbul ignore next: can't test popper in JSDOM */: function getPopperConfig() {
- var placement = AttachmentMap.BOTTOM;
- if (this.dropup && this.right) {
- // dropup + right
- placement = AttachmentMap.TOPEND;
- } else if (this.dropup) {
- // dropup + left
- placement = AttachmentMap.TOP;
- } else if (this.right) {
- // dropdown + right
- placement = AttachmentMap.BOTTOMEND;
- }
- var popperConfig = {
- placement: placement,
- modifiers: {
- offset: {
- offset: this.offset || 0
- },
- flip: {
- enabled: !this.noFlip
- }
- }
- };
- if (this.boundary) {
- popperConfig.modifiers.preventOverflow = {
- boundariesElement: this.boundary
- };
- }
- return Object(__WEBPACK_IMPORTED_MODULE_4__utils_object__["a" /* assign */])(popperConfig, this.popperOpts || {});
- },
- setTouchStart: function setTouchStart(on) {
- var _this = this;
- /*
- * If this is a touch-enabled device we add extra
- * empty mouseover listeners to the body's immediate children;
- * only needed because of broken event delegation on iOS
- * https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
- */
- if ('ontouchstart' in document.documentElement) {
- var children = Object(__WEBPACK_IMPORTED_MODULE_3__utils_array__["c" /* from */])(document.body.children);
- children.forEach(function (el) {
- if (on) {
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["d" /* eventOn */])('mouseover', _this._noop);
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["c" /* eventOff */])('mouseover', _this._noop);
- }
- });
- }
- },
- /* istanbul ignore next: not easy to test */
- _noop: function _noop() {
- // Do nothing event handler (used in touchstart event handler)
- },
- rootCloseListener: function rootCloseListener(vm) {
- if (vm !== this) {
- this.visible = false;
- }
- },
- clickOutListener: function clickOutListener() {
- this.visible = false;
- },
- show: function show() {
- // Public method to show dropdown
- if (this.disabled) {
- return;
- }
- this.visible = true;
- },
- hide: function hide() {
- // Public method to hide dropdown
- if (this.disabled) {
- return;
- }
- this.visible = false;
- },
- toggle: function toggle(evt) {
- // Called only by a button that toggles the menu
- evt = evt || {};
- var type = evt.type;
- var key = evt.keyCode;
- 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))) {
- // We only toggle on Click, Enter, Space, and Arrow Down
- return;
- }
- if (this.disabled) {
- this.visible = false;
- return;
- }
- this.$emit('toggle', evt);
- if (evt.defaultPrevented) {
- // Exit if canceled
- return;
- }
- evt.preventDefault();
- evt.stopPropagation();
- // Toggle visibility
- this.visible = !this.visible;
- },
- click: function click(evt) {
- // Calle only in split button mode, for the split button
- if (this.disabled) {
- this.visible = false;
- return;
- }
- this.$emit('click', evt);
- },
- /* istanbul ignore next: not easy to test */
- onKeydown: function onKeydown(evt) {
- // Called from dropdown menu context
- var key = evt.keyCode;
- if (key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].ESC) {
- // Close on ESC
- this.onEsc(evt);
- } else if (key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].TAB) {
- // Close on tab out
- this.onTab(evt);
- } else if (key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].DOWN) {
- // Down Arrow
- this.focusNext(evt, false);
- } else if (key === __WEBPACK_IMPORTED_MODULE_5__utils_key_codes__["a" /* default */].UP) {
- // Up Arrow
- this.focusNext(evt, true);
- }
- },
- /* istanbul ignore next: not easy to test */
- onEsc: function onEsc(evt) {
- if (this.visible) {
- this.visible = false;
- evt.preventDefault();
- evt.stopPropagation();
- // Return focus to original trigger button
- this.$nextTick(this.focusToggler);
- }
- },
- /* istanbul ignore next: not easy to test */
- onTab: function onTab(evt) {
- if (this.visible) {
- // TODO: Need special handler for dealing with form inputs
- // Tab, if in a text-like input, we should just focus next item in the dropdown
- // Note: Inputs are in a special .dropdown-form container
- this.visible = false;
- }
- },
- onFocusOut: function onFocusOut(evt) {
- if (this.$refs.menu.contains(evt.relatedTarget)) {
- return;
- }
- this.visible = false;
- },
- /* istanbul ignore next: not easy to test */
- onMouseOver: function onMouseOver(evt) {
- // Focus the item on hover
- // TODO: Special handling for inputs? Inputs are in a special .dropdown-form container
- var item = evt.target;
- if (item.classList.contains('dropdown-item') && !item.disabled && !item.classList.contains('disabled') && item.focus) {
- item.focus();
- }
- },
- focusNext: function focusNext(evt, up) {
- var _this2 = this;
- if (!this.visible) {
- return;
- }
- evt.preventDefault();
- evt.stopPropagation();
- this.$nextTick(function () {
- var items = _this2.getItems();
- if (items.length < 1) {
- return;
- }
- var index = items.indexOf(evt.target);
- if (up && index > 0) {
- index--;
- } else if (!up && index < items.length - 1) {
- index++;
- }
- if (index < 0) {
- index = 0;
- }
- _this2.focusItem(index, items);
- });
- },
- focusItem: function focusItem(idx, items) {
- var el = items.find(function (el, i) {
- return i === idx;
- });
- if (el && Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["e" /* getAttr */])(el, 'tabindex') !== '-1') {
- el.focus();
- }
- },
- getItems: function getItems() {
- // Get all items
- return filterVisible(Object(__WEBPACK_IMPORTED_MODULE_8__utils_dom__["u" /* selectAll */])(ITEM_SELECTOR, this.$refs.menu));
- },
- getFirstItem: function getFirstItem() {
- // Get the first non-disabled item
- var item = this.getItems()[0];
- return item || null;
- },
- focusFirstItem: function focusFirstItem() {
- var item = this.getFirstItem();
- if (item) {
- this.focusItem(0, [item]);
- }
- },
- focusToggler: function focusToggler() {
- var toggler = this.toggler;
- if (toggler && toggler.focus) {
- toggler.focus();
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/form-custom.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony default export */ __webpack_exports__["a"] = ({
- computed: {
- custom: function custom() {
- return !this.plain;
- }
- },
- props: {
- plain: {
- type: Boolean,
- default: false
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/form-options.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- function isObject(obj) {
- return obj && {}.toString.call(obj) === '[object Object]';
- }
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: {
- options: {
- type: [Array, Object],
- default: function _default() {
- return [];
- }
- },
- valueField: {
- type: String,
- default: 'value'
- },
- textField: {
- type: String,
- default: 'text'
- },
- disabledField: {
- type: String,
- default: 'disabled'
- }
- },
- computed: {
- formOptions: function formOptions() {
- var options = this.options;
- var valueField = this.valueField;
- var textField = this.textField;
- var disabledField = this.disabledField;
- if (Object(__WEBPACK_IMPORTED_MODULE_0__utils_array__["d" /* isArray */])(options)) {
- // Normalize flat-ish arrays to Array of Objects
- return options.map(function (option) {
- if (isObject(option)) {
- return {
- value: option[valueField],
- text: String(option[textField]),
- disabled: option[disabledField] || false
- };
- }
- return {
- value: option,
- text: String(option),
- disabled: false
- };
- });
- } else {
- // options is Object
- // Normalize Objects to Array of Objects
- return Object(__WEBPACK_IMPORTED_MODULE_1__utils_object__["e" /* keys */])(options).map(function (key) {
- var option = options[key] || {};
- if (isObject(option)) {
- var value = option[valueField];
- var text = option[textField];
- return {
- value: typeof value === 'undefined' ? key : value,
- text: typeof text === 'undefined' ? key : String(text),
- disabled: option[disabledField] || false
- };
- }
- return {
- value: key,
- text: String(option),
- disabled: false
- };
- });
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/form-radio-check.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /*
- * form-radio & form-check mixin
- *
- */
- /* harmony default export */ __webpack_exports__["a"] = ({
- data: function data() {
- return {
- localChecked: this.checked,
- hasFocus: false
- };
- },
- model: {
- prop: 'checked',
- event: 'input'
- },
- props: {
- value: {},
- checked: {
- // This is the model, except when in group mode
- },
- buttonVariant: {
- // Only applicable when rendered with button style
- type: String,
- default: null
- }
- },
- computed: {
- computedLocalChecked: {
- get: function get() {
- if (this.is_Child) {
- return this.$parent.localChecked;
- } else {
- return this.localChecked;
- }
- },
- set: function set(val) {
- if (this.is_Child) {
- this.$parent.localChecked = val;
- } else {
- this.localChecked = val;
- }
- }
- },
- is_Child: function is_Child() {
- return Boolean(this.$parent && this.$parent.is_RadioCheckGroup);
- },
- is_Disabled: function is_Disabled() {
- // Child can be disabled while parent isn't
- return Boolean(this.is_Child ? this.$parent.disabled || this.disabled : this.disabled);
- },
- is_Required: function is_Required() {
- return Boolean(this.is_Child ? this.$parent.required : this.required);
- },
- is_Plain: function is_Plain() {
- return Boolean(this.is_Child ? this.$parent.plain : this.plain);
- },
- is_Custom: function is_Custom() {
- return !this.is_Plain;
- },
- get_Size: function get_Size() {
- return this.is_Child ? this.$parent.size : this.size;
- },
- get_State: function get_State() {
- // This is a tri-state prop (true, false, null)
- if (this.is_Child && typeof this.$parent.get_State === 'boolean') {
- return this.$parent.get_State;
- }
- return this.computedState;
- },
- get_StateClass: function get_StateClass() {
- // This is a tri-state prop (true, false, null)
- return typeof this.get_State === 'boolean' ? this.get_State ? 'is-valid' : 'is-invalid' : '';
- },
- is_Stacked: function is_Stacked() {
- return Boolean(this.is_Child && this.$parent.stacked);
- },
- is_Inline: function is_Inline() {
- return !this.is_Stacked;
- },
- is_ButtonMode: function is_ButtonMode() {
- return Boolean(this.is_Child && this.$parent.buttons);
- },
- get_ButtonVariant: function get_ButtonVariant() {
- // Local variant trumps parent variant
- return this.buttonVariant || (this.is_Child ? this.$parent.buttonVariant : null) || 'secondary';
- },
- get_Name: function get_Name() {
- return (this.is_Child ? this.$parent.name || this.$parent.safeId() : this.name) || null;
- },
- buttonClasses: function buttonClasses() {
- // Same for radio & check
- return ['btn', 'btn-' + this.get_ButtonVariant, this.get_Size ? 'btn-' + this.get_Size : '',
- // 'disabled' class makes "button" look disabled
- this.is_Disabled ? 'disabled' : '',
- // 'active' class makes "button" look pressed
- this.is_Checked ? 'active' : '',
- // Focus class makes button look focused
- this.hasFocus ? 'focus' : ''];
- }
- },
- methods: {
- handleFocus: function handleFocus(evt) {
- // When in buttons mode, we need to add 'focus' class to label when radio focused
- if (this.is_ButtonMode && evt.target) {
- if (evt.type === 'focus') {
- this.hasFocus = true;
- } else if (evt.type === 'blur') {
- this.hasFocus = false;
- }
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/form-size.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: {
- size: {
- type: String,
- default: null
- }
- },
- computed: {
- sizeFormClass: function sizeFormClass() {
- return [this.size ? "form-control-" + this.size : null];
- },
- sizeBtnClass: function sizeBtnClass() {
- return [this.size ? "btn-" + this.size : null];
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/form-state.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* Form control contextual state class computation
- *
- * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop
- * state can be one of five values:
- * - true or 'valid' for is-valid
- * - false or 'invalid' for is-invalid
- * - null (or empty string) for no contextual state
- */
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: {
- state: {
- // true/'valid', false/'invalid', '',null
- type: [Boolean, String],
- default: null
- }
- },
- computed: {
- computedState: function computedState() {
- var state = this.state;
- if (state === true || state === 'valid') {
- return true;
- } else if (state === false || state === 'invalid') {
- return false;
- }
- return null;
- },
- stateClass: function stateClass() {
- var state = this.computedState;
- if (state === true) {
- return 'is-valid';
- } else if (state === false) {
- return 'is-invalid';
- }
- return null;
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/form.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: {
- name: {
- type: String
- },
- id: {
- type: String
- },
- disabled: {
- type: Boolean
- },
- required: {
- type: Boolean,
- default: false
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/id.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /*
- * SSR Safe Client Side ID attribute generation
- *
- */
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: {
- id: {
- type: String,
- default: null
- }
- },
- methods: {
- safeId: function safeId() {
- var suffix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
- var id = this.id || this.localId_ || null;
- if (!id) {
- return null;
- }
- suffix = String(suffix).replace(/\s+/g, '_');
- return suffix ? id + '_' + suffix : id;
- }
- },
- computed: {
- localId_: function localId_() {
- if (!this.$isServer && !this.id && typeof this._uid !== 'undefined') {
- return '__BVID__' + this._uid;
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/listen-on-root.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- 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); } }
- /**
- * Issue #569: collapse::toggle::state triggered too many times
- * @link https://github.com/bootstrap-vue/bootstrap-vue/issues/569
- */
- var BVRL = '__BV_root_listeners__';
- /* harmony default export */ __webpack_exports__["a"] = ({
- methods: {
- /**
- * Safely register event listeners on the root Vue node.
- * While Vue automatically removes listeners for individual components,
- * when a component registers a listener on root and is destroyed,
- * this orphans a callback because the node is gone,
- * but the root does not clear the callback.
- *
- * This adds a non-reactive prop to a vm on the fly
- * in order to avoid object observation and its performance costs
- * to something that needs no reactivity.
- * It should be highly unlikely there are any naming collisions.
- * @param {string} event
- * @param {function} callback
- * @chainable
- */
- listenOnRoot: function listenOnRoot(event, callback) {
- if (!this[BVRL] || !Object(__WEBPACK_IMPORTED_MODULE_0__utils_array__["d" /* isArray */])(this[BVRL])) {
- this[BVRL] = [];
- }
- this[BVRL].push({ event: event, callback: callback });
- this.$root.$on(event, callback);
- return this;
- },
- /**
- * Convenience method for calling vm.$emit on vm.$root.
- * @param {string} event
- * @param {*} args
- * @chainable
- */
- emitOnRoot: function emitOnRoot(event) {
- var _$root;
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
- (_$root = this.$root).$emit.apply(_$root, [event].concat(_toConsumableArray(args)));
- return this;
- }
- },
- beforeDestroy: function beforeDestroy() {
- if (this[BVRL] && Object(__WEBPACK_IMPORTED_MODULE_0__utils_array__["d" /* isArray */])(this[BVRL])) {
- while (this[BVRL].length > 0) {
- // shift to process in order
- var _BVRL$shift = this[BVRL].shift(),
- event = _BVRL$shift.event,
- callback = _BVRL$shift.callback;
- this.$root.$off(event, callback);
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/pagination.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_range__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/range.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_link_link__ = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
- /*
- * Comon props, computed, data, render function, and methods for b-pagination and b-pagination-nav
- */
- // Make an array of N to N+X
- function makePageArray(startNum, numPages) {
- return Object(__WEBPACK_IMPORTED_MODULE_0__utils_range__["a" /* default */])(numPages).map(function (value, index) {
- return { number: index + startNum, className: null };
- });
- }
- // Threshold of limit size when we start/stop showing ellipsis
- var ELLIPSIS_THRESHOLD = 3;
- // Props object
- var props = {
- disabled: {
- type: Boolean,
- default: false
- },
- value: {
- type: Number,
- default: 1
- },
- limit: {
- type: Number,
- default: 5
- },
- size: {
- type: String,
- default: 'md'
- },
- align: {
- type: String,
- default: 'left'
- },
- hideGotoEndButtons: {
- type: Boolean,
- default: false
- },
- ariaLabel: {
- type: String,
- default: 'Pagination'
- },
- labelFirstPage: {
- type: String,
- default: 'Goto first page'
- },
- firstText: {
- type: String,
- default: '«'
- },
- labelPrevPage: {
- type: String,
- default: 'Goto previous page'
- },
- prevText: {
- type: String,
- default: '‹'
- },
- labelNextPage: {
- type: String,
- default: 'Goto next page'
- },
- nextText: {
- type: String,
- default: '›'
- },
- labelLastPage: {
- type: String,
- default: 'Goto last page'
- },
- lastText: {
- type: String,
- default: '»'
- },
- labelPage: {
- type: String,
- default: 'Goto page'
- },
- hideEllipsis: {
- type: Boolean,
- default: false
- },
- ellipsisText: {
- type: String,
- default: '…'
- }
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- components: { bLink: __WEBPACK_IMPORTED_MODULE_3__components_link_link__["a" /* default */] },
- data: function data() {
- return {
- showFirstDots: false,
- showLastDots: false,
- currentPage: this.value
- };
- },
- props: props,
- render: function render(h) {
- var _this = this;
- var buttons = [];
- // Factory function for prev/next/first/last buttons
- var makeEndBtns = function makeEndBtns(linkTo, ariaLabel, btnText, pageTest) {
- var button = void 0;
- pageTest = pageTest || linkTo; // Page # to test against to disable
- if (_this.disabled || _this.isActive(pageTest)) {
- button = h('li', {
- class: ['page-item', 'disabled'],
- attrs: { role: 'none presentation', 'aria-hidden': 'true' }
- }, [h('span', {
- class: ['page-link'],
- domProps: { innerHTML: btnText }
- })]);
- } else {
- button = h('li', {
- class: ['page-item'],
- attrs: { role: 'none presentation' }
- }, [h('b-link', {
- class: ['page-link'],
- props: _this.linkProps(linkTo),
- attrs: {
- role: 'menuitem',
- tabindex: '-1',
- 'aria-label': ariaLabel,
- 'aria-controls': _this.ariaControls || null
- },
- on: {
- click: function click(evt) {
- _this.onClick(linkTo, evt);
- },
- keydown: function keydown(evt) {
- // Links don't normally respond to SPACE, so we add that functionality
- if (evt.keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].SPACE) {
- evt.preventDefault();
- _this.onClick(linkTo, evt);
- }
- }
- }
- }, [h('span', {
- attrs: { 'aria-hidden': 'true' },
- domProps: { innerHTML: btnText }
- })])]);
- }
- return button;
- };
- // Ellipsis factory
- var makeEllipsis = function makeEllipsis() {
- return h('li', {
- class: ['page-item', 'disabled', 'd-none', 'd-sm-flex'],
- attrs: { role: 'separator' }
- }, [h('span', {
- class: ['page-link'],
- domProps: { innerHTML: _this.ellipsisText }
- })]);
- };
- // Goto First Page button
- buttons.push(this.hideGotoEndButtons ? h(false) : makeEndBtns(1, this.labelFirstPage, this.firstText));
- // Goto Previous page button
- buttons.push(makeEndBtns(this.currentPage - 1, this.labelPrevPage, this.prevText, 1));
- // First Ellipsis Bookend
- buttons.push(this.showFirstDots ? makeEllipsis() : h(false));
- // Individual Page links
- this.pageList.forEach(function (page) {
- var inner = void 0;
- var pageNum = _this.makePage(page.number);
- if (_this.disabled) {
- inner = h('span', {
- class: ['page-link'],
- domProps: { innerHTML: pageNum }
- });
- } else {
- var active = _this.isActive(page.number);
- inner = h('b-link', {
- class: _this.pageLinkClasses(page),
- props: _this.linkProps(page.number),
- attrs: {
- role: 'menuitemradio',
- tabindex: active ? '0' : '-1',
- 'aria-controls': _this.ariaControls || null,
- 'aria-label': _this.labelPage + ' ' + page.number,
- 'aria-checked': active ? 'true' : 'false',
- 'aria-posinset': page.number,
- 'aria-setsize': _this.numberOfPages
- },
- domProps: { innerHTML: pageNum },
- on: {
- click: function click(evt) {
- _this.onClick(page.number, evt);
- },
- keydown: function keydown(evt) {
- if (evt.keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].SPACE) {
- evt.preventDefault();
- _this.onClick(page.number, evt);
- }
- }
- }
- });
- }
- buttons.push(h('li', {
- key: page.number,
- class: _this.pageItemClasses(page),
- attrs: { role: 'none presentation' }
- }, [inner]));
- });
- // Last Ellipsis Bookend
- buttons.push(this.showLastDots ? makeEllipsis() : h(false));
- // Goto Next page button
- buttons.push(makeEndBtns(this.currentPage + 1, this.labelNextPage, this.nextText, this.numberOfPages));
- // Goto Last Page button
- buttons.push(this.hideGotoEndButtons ? h(false) : makeEndBtns(this.numberOfPages, this.labelLastPage, this.lastText));
- // Assemble the paginatiom buttons
- var pagination = h('ul', {
- ref: 'ul',
- class: ['pagination', 'b-pagination', this.btnSize, this.alignment],
- attrs: {
- role: 'menubar',
- 'aria-disabled': this.disabled ? 'true' : 'false',
- 'aria-label': this.ariaLabel || null
- },
- on: {
- keydown: function keydown(evt) {
- var keyCode = evt.keyCode;
- var shift = evt.shiftKey;
- if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].LEFT) {
- evt.preventDefault();
- shift ? _this.focusFirst() : _this.focusPrev();
- } else if (keyCode === __WEBPACK_IMPORTED_MODULE_1__utils_key_codes__["a" /* default */].RIGHT) {
- evt.preventDefault();
- shift ? _this.focusLast() : _this.focusNext();
- }
- }
- }
- }, buttons);
- // if we are pagination-nav, wrap in '<nav>' wrapper
- return this.isNav ? h('nav', {}, [pagination]) : pagination;
- },
- watch: {
- currentPage: function currentPage(newPage, oldPage) {
- if (newPage !== oldPage) {
- this.$emit('input', newPage);
- }
- },
- value: function value(newValue, oldValue) {
- if (newValue !== oldValue) {
- this.currentPage = newValue;
- }
- }
- },
- computed: {
- btnSize: function btnSize() {
- return this.size ? 'pagination-' + this.size : '';
- },
- alignment: function alignment() {
- if (this.align === 'center') {
- return 'justify-content-center';
- } else if (this.align === 'end' || this.align === 'right') {
- return 'justify-content-end';
- }
- return '';
- },
- pageList: function pageList() {
- // Sanity checks
- if (this.currentPage > this.numberOfPages) {
- this.currentPage = this.numberOfPages;
- } else if (this.currentPage < 1) {
- this.currentPage = 1;
- }
- // - Hide first ellipsis marker
- this.showFirstDots = false;
- // - Hide last ellipsis marker
- this.showLastDots = false;
- var numLinks = this.limit;
- var startNum = 1;
- if (this.numberOfPages <= this.limit) {
- // Special Case: Less pages available than the limit of displayed pages
- numLinks = this.numberOfPages;
- } else if (this.currentPage < this.limit - 1 && this.limit > ELLIPSIS_THRESHOLD) {
- // We are near the beginning of the page list
- if (!this.hideEllipsis) {
- numLinks = this.limit - 1;
- this.showLastDots = true;
- }
- } else if (this.numberOfPages - this.currentPage + 2 < this.limit && this.limit > ELLIPSIS_THRESHOLD) {
- // We are near the end of the list
- if (!this.hideEllipsis) {
- this.showFirstDots = true;
- numLinks = this.limit - 1;
- }
- startNum = this.numberOfPages - numLinks + 1;
- } else {
- // We are somewhere in the middle of the page list
- if (this.limit > ELLIPSIS_THRESHOLD && !this.hideEllipsis) {
- this.showFirstDots = true;
- this.showLastDots = true;
- numLinks = this.limit - 2;
- }
- startNum = this.currentPage - Math.floor(numLinks / 2);
- }
- // Sanity checks
- if (startNum < 1) {
- startNum = 1;
- } else if (startNum > this.numberOfPages - numLinks) {
- startNum = this.numberOfPages - numLinks + 1;
- }
- // Generate list of page numbers
- var pages = makePageArray(startNum, numLinks);
- // We limit to a total of 3 page buttons on small screens
- // Ellipsis will also be hidden on small screens
- if (pages.length > 3) {
- var idx = this.currentPage - startNum;
- if (idx === 0) {
- // Keep leftmost 3 buttons visible
- for (var i = 3; i < pages.length; i++) {
- pages[i].className = 'd-none d-sm-flex';
- }
- } else if (idx === pages.length - 1) {
- // Keep rightmost 3 buttons visible
- for (var _i = 0; _i < pages.length - 3; _i++) {
- pages[_i].className = 'd-none d-sm-flex';
- }
- } else {
- // hide left button(s)
- for (var _i2 = 0; _i2 < idx - 1; _i2++) {
- pages[_i2].className = 'd-none d-sm-flex';
- }
- // hide right button(s)
- for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {
- pages[_i3].className = 'd-none d-sm-flex';
- }
- }
- }
- return pages;
- }
- },
- methods: {
- isActive: function isActive(pagenum) {
- return pagenum === this.currentPage;
- },
- pageItemClasses: function pageItemClasses(page) {
- return ['page-item', this.disabled ? 'disabled' : '', this.isActive(page.number) ? 'active' : '', page.className];
- },
- pageLinkClasses: function pageLinkClasses(page) {
- return ['page-link', this.disabled ? 'disabled' : '',
- // Interim workaround to get better focus styling of active button
- // See https://github.com/twbs/bootstrap/issues/24838
- this.isActive(page.number) ? 'btn-primary' : ''];
- },
- getButtons: function getButtons() {
- // Return only buttons that are visible
- return Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["u" /* selectAll */])('a.page-link', this.$el).filter(function (btn) {
- return Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["m" /* isVisible */])(btn);
- });
- },
- setBtnFocus: function setBtnFocus(btn) {
- this.$nextTick(function () {
- btn.focus();
- });
- },
- focusCurrent: function focusCurrent() {
- var _this2 = this;
- var btn = this.getButtons().find(function (el) {
- return parseInt(Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["e" /* getAttr */])(el, 'aria-posinset'), 10) === _this2.currentPage;
- });
- if (btn && btn.focus) {
- this.setBtnFocus(btn);
- } else {
- // Fallback if current page is not in button list
- this.focusFirst();
- }
- },
- focusFirst: function focusFirst() {
- var btn = this.getButtons().find(function (el) {
- return !Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["k" /* isDisabled */])(el);
- });
- if (btn && btn.focus && btn !== document.activeElement) {
- this.setBtnFocus(btn);
- }
- },
- focusLast: function focusLast() {
- var btn = this.getButtons().reverse().find(function (el) {
- return !Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["k" /* isDisabled */])(el);
- });
- if (btn && btn.focus && btn !== document.activeElement) {
- this.setBtnFocus(btn);
- }
- },
- focusPrev: function focusPrev() {
- var buttons = this.getButtons();
- var idx = buttons.indexOf(document.activeElement);
- if (idx > 0 && !Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["k" /* isDisabled */])(buttons[idx - 1]) && buttons[idx - 1].focus) {
- this.setBtnFocus(buttons[idx - 1]);
- }
- },
- focusNext: function focusNext() {
- var buttons = this.getButtons();
- var idx = buttons.indexOf(document.activeElement);
- var cnt = buttons.length - 1;
- if (idx < cnt && !Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["k" /* isDisabled */])(buttons[idx + 1]) && buttons[idx + 1].focus) {
- this.setBtnFocus(buttons[idx + 1]);
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/mixins/toolpop.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_ssr__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/ssr.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_observe_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js");
- 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; };
- /*
- * Tooltip/Popover component mixin
- * Common props
- */
- var PLACEMENTS = {
- top: 'top',
- topleft: 'topleft',
- topright: 'topright',
- right: 'right',
- righttop: 'righttop',
- rightbottom: 'rightbottom',
- bottom: 'bottom',
- bottomleft: 'bottomleft',
- bottomright: 'bottomright',
- left: 'left',
- lefttop: 'lefttop',
- leftbottom: 'leftbottom',
- auto: 'auto'
- };
- var OBSERVER_CONFIG = {
- subtree: true,
- childList: true,
- characterData: true,
- attributes: true,
- attributeFilter: ['class', 'style']
- };
- /* harmony default export */ __webpack_exports__["a"] = ({
- props: {
- target: {
- // String ID of element, or element/component reference
- type: [String, Object, __WEBPACK_IMPORTED_MODULE_3__utils_ssr__["a" /* HTMLElement */], Function]
- },
- delay: {
- type: [Number, Object, String],
- default: 0
- },
- offset: {
- type: [Number, String],
- default: 0
- },
- noFade: {
- type: Boolean,
- default: false
- },
- container: {
- // String ID of container, if null body is used (default)
- type: String,
- default: null
- },
- boundary: {
- // String: scrollParent, window, or viewport
- // Element: element reference
- type: [String, Object],
- default: 'scrollParent'
- },
- show: {
- type: Boolean,
- default: false
- },
- disabled: {
- type: Boolean,
- default: false
- }
- },
- watch: {
- show: function show(_show, old) {
- if (_show === old) {
- return;
- }
- _show ? this.onOpen() : this.onClose();
- },
- disabled: function disabled(_disabled, old) {
- if (_disabled === old) {
- return;
- }
- _disabled ? this.onDisable() : this.onEnable();
- }
- },
- created: function created() {
- // Create non-reactive property
- this._toolpop = null;
- this._obs_title = null;
- this._obs_content = null;
- },
- mounted: function mounted() {
- var _this = this;
- // We do this in a next tick to ensure DOM has rendered first
- this.$nextTick(function () {
- // Instantiate ToolTip/PopOver on target
- // The createToolpop method must exist in main component
- if (_this.createToolpop()) {
- if (_this.disabled) {
- // Initially disabled
- _this.onDisable();
- }
- // Listen to open signals from others
- _this.$on('open', _this.onOpen);
- // Listen to close signals from others
- _this.$on('close', _this.onClose);
- // Listen to disable signals from others
- _this.$on('disable', _this.onDisable);
- // Listen to disable signals from others
- _this.$on('enable', _this.onEnable);
- // Observe content Child changes so we can notify popper of possible size change
- _this.setObservers(true);
- // Set intially open state
- if (_this.show) {
- _this.onOpen();
- }
- }
- });
- },
- updated: function updated() {
- // If content/props changes, etc
- if (this._toolpop) {
- this._toolpop.updateConfig(this.getConfig());
- }
- },
- /* istanbul ignore next: not easy to test */
- activated: function activated() {
- // Called when component is inside a <keep-alive> and component brought offline
- this.setObservers(true);
- },
- /* istanbul ignore next: not easy to test */
- deactivated: function deactivated() {
- // Called when component is inside a <keep-alive> and component taken offline
- if (this._toolpop) {
- this.setObservers(false);
- this._toolpop.hide();
- }
- },
- /* istanbul ignore next: not easy to test */
- beforeDestroy: function beforeDestroy() {
- // Shutdown our local event listeners
- this.$off('open', this.onOpen);
- this.$off('close', this.onClose);
- this.$off('disable', this.onDisable);
- this.$off('enable', this.onEnable);
- this.setObservers(false);
- // bring our content back if needed
- this.bringItBack();
- if (this._toolpop) {
- this._toolpop.destroy();
- this._toolpop = null;
- }
- },
- computed: {
- baseConfig: function baseConfig() {
- var cont = this.container;
- var delay = _typeof(this.delay) === 'object' ? this.delay : parseInt(this.delay, 10) || 0;
- return {
- // Title prop
- title: (this.title || '').trim() || '',
- // Contnt prop (if popover)
- content: (this.content || '').trim() || '',
- // Tooltip/Popover placement
- placement: PLACEMENTS[this.placement] || 'auto',
- // Container curently needs to be an ID with '#' prepended, if null then body is used
- container: cont ? /^#/.test(cont) ? cont : '#' + cont : false,
- // boundariesElement passed to popper
- boundary: this.boundary,
- // Show/Hide delay
- delay: delay || 0,
- // Offset can be css distance. if no units, pixels are assumed
- offset: this.offset || 0,
- // Disable fade Animation?
- animation: !this.noFade,
- // Open/Close Trigger(s)
- trigger: Object(__WEBPACK_IMPORTED_MODULE_0__utils_array__["d" /* isArray */])(this.triggers) ? this.triggers.join(' ') : this.triggers,
- // Callbacks so we can trigger events on component
- callbacks: {
- show: this.onShow,
- shown: this.onShown,
- hide: this.onHide,
- hidden: this.onHidden,
- enabled: this.onEnabled,
- disabled: this.onDisabled
- }
- };
- }
- },
- methods: {
- getConfig: function getConfig() {
- var cfg = Object(__WEBPACK_IMPORTED_MODULE_1__utils_object__["a" /* assign */])({}, this.baseConfig);
- if (this.$refs.title && this.$refs.title.innerHTML.trim()) {
- // If slot has content, it overrides 'title' prop
- // We use the DOM node as content to allow components!
- cfg.title = this.$refs.title;
- cfg.html = true;
- }
- if (this.$refs.content && this.$refs.content.innerHTML.trim()) {
- // If slot has content, it overrides 'content' prop
- // We use the DOM node as content to allow components!
- cfg.content = this.$refs.content;
- cfg.html = true;
- }
- return cfg;
- },
- onOpen: function onOpen() {
- if (this._toolpop) {
- this._toolpop.show();
- }
- },
- onClose: function onClose(callback) {
- if (this._toolpop) {
- this._toolpop.hide(callback);
- } else if (typeof callback === 'function') {
- callback();
- }
- },
- onDisable: function onDisable() {
- if (this._toolpop) {
- this._toolpop.disable();
- }
- },
- onEnable: function onEnable() {
- if (this._toolpop) {
- this._toolpop.enable();
- }
- },
- updatePosition: function updatePosition() {
- if (this._toolpop) {
- // Instruct popper to reposition popover if necessary
- this._toolpop.update();
- }
- },
- getTarget: function getTarget() {
- var target = this.target;
- if (typeof target === 'function') {
- target = target();
- }
- if (typeof target === 'string') {
- // Assume ID of element
- return Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["g" /* getById */])(target);
- } else if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["l" /* isElement */])(target.$el)) {
- // Component reference
- return target.$el;
- } else if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom__["l" /* isElement */])(target)) {
- // Element reference
- return target;
- }
- return null;
- },
- onShow: function onShow(evt) {
- this.$emit('show', evt);
- },
- onShown: function onShown(evt) {
- this.setObservers(true);
- this.$emit('update:show', true);
- this.$emit('shown', evt);
- },
- onHide: function onHide(evt) {
- this.$emit('hide', evt);
- },
- onHidden: function onHidden(evt) {
- this.setObservers(false);
- // bring our content back if needed to keep Vue happy
- // Tooltip class will move it back to tip when shown again
- this.bringItBack();
- this.$emit('update:show', false);
- this.$emit('hidden', evt);
- },
- onEnabled: function onEnabled(evt) {
- if (!evt || evt.type !== 'enabled') {
- // Prevent possible endless loop if user mistakienly fires enabled instead of enable
- return;
- }
- this.$emit('update:disabled', false);
- this.$emit('disabled');
- },
- onDisabled: function onDisabled(evt) {
- if (!evt || evt.type !== 'disabled') {
- // Prevent possible endless loop if user mistakienly fires disabled instead of disable
- return;
- }
- this.$emit('update:disabled', true);
- this.$emit('enabled');
- },
- bringItBack: function bringItBack() {
- // bring our content back if needed to keep Vue happy
- if (this.$el && this.$refs.title) {
- this.$el.appendChild(this.$refs.title);
- }
- if (this.$el && this.$refs.content) {
- this.$el.appendChild(this.$refs.content);
- }
- },
- /* istanbul ignore next: not easy to test */
- setObservers: function setObservers(on) {
- if (on) {
- if (this.$refs.title) {
- this._obs_title = Object(__WEBPACK_IMPORTED_MODULE_4__utils_observe_dom__["a" /* default */])(this.$refs.title, this.updatePosition.bind(this), OBSERVER_CONFIG);
- }
- if (this.$refs.content) {
- this._obs_content = Object(__WEBPACK_IMPORTED_MODULE_4__utils_observe_dom__["a" /* default */])(this.$refs.content, this.updatePosition.bind(this), OBSERVER_CONFIG);
- }
- } else {
- if (this._obs_title) {
- this._obs_title.disconnect();
- this._obs_title = null;
- }
- if (this._obs_content) {
- this._obs_content.disconnect();
- this._obs_content = null;
- }
- }
- }
- }
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/array.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return from; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isArray; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return arrayIncludes; });
- /* unused harmony export arrayFind */
- /* harmony export (immutable) */ __webpack_exports__["b"] = concat;
- // Production steps of ECMA-262, Edition 6, 22.1.2.1
- // es6-ified by @alexsasharegan
- if (!Array.from) {
- Array.from = function () {
- var toStr = Object.prototype.toString;
- var isCallable = function isCallable(fn) {
- return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
- };
- var toInteger = function toInteger(value) {
- var number = Number(value);
- if (isNaN(number)) {
- return 0;
- }
- if (number === 0 || !isFinite(number)) {
- return number;
- }
- return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
- };
- var maxSafeInteger = Math.pow(2, 53) - 1;
- var toLength = function toLength(value) {
- return Math.min(Math.max(toInteger(value), 0), maxSafeInteger);
- };
- // The length property of the from method is 1.
- return function from(arrayLike /*, mapFn, thisArg */) {
- // 1. Let C be the this value.
- var C = this;
- // 2. Let items be ToObject(arrayLike).
- var items = Object(arrayLike);
- // 3. ReturnIfAbrupt(items).
- if (arrayLike == null) {
- throw new TypeError('Array.from requires an array-like object - not null or undefined');
- }
- // 4. If mapfn is undefined, then let mapping be false.
- var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
- var T = void 0;
- if (typeof mapFn !== 'undefined') {
- // 5. else
- // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
- if (!isCallable(mapFn)) {
- throw new TypeError('Array.from: when provided, the second argument must be a function');
- }
- // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
- if (arguments.length > 2) {
- T = arguments[2];
- }
- }
- // 10. Let lenValue be Get(items, "length").
- // 11. Let len be ToLength(lenValue).
- var len = toLength(items.length);
- // 13. If IsConstructor(C) is true, then
- // 13. a. Let A be the result of calling the [[Construct]] internal method
- // of C with an argument list containing the single item len.
- // 14. a. Else, Let A be ArrayCreate(len).
- var A = isCallable(C) ? Object(new C(len)) : new Array(len);
- // 16. Let k be 0.
- var k = 0;
- // 17. Repeat, while k < len… (also steps a - h)
- var kValue = void 0;
- while (k < len) {
- kValue = items[k];
- if (mapFn) {
- A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
- } else {
- A[k] = kValue;
- }
- k += 1;
- }
- // 18. Let putStatus be Put(A, "length", len, true).
- A.length = len;
- // 20. Return A.
- return A;
- };
- }();
- }
- // https://tc39.github.io/ecma262/#sec-array.prototype.find
- // Needed for IE support
- if (!Array.prototype.find) {
- // eslint-disable-next-line no-extend-native
- Object.defineProperty(Array.prototype, 'find', {
- value: function value(predicate) {
- // 1. Let O be ? ToObject(this value).
- if (this == null) {
- throw new TypeError('"this" is null or not defined');
- }
- var o = Object(this);
- // 2. Let len be ? ToLength(? Get(O, "length")).
- var len = o.length >>> 0;
- // 3. If IsCallable(predicate) is false, throw a TypeError exception.
- if (typeof predicate !== 'function') {
- throw new TypeError('predicate must be a function');
- }
- // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
- var thisArg = arguments[1];
- // 5. Let k be 0.
- var k = 0;
- // 6. Repeat, while k < len
- while (k < len) {
- // a. Let Pk be ! ToString(k).
- // b. Let kValue be ? Get(O, Pk).
- // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
- // d. If testResult is true, return kValue.
- var kValue = o[k];
- if (predicate.call(thisArg, kValue, k, o)) {
- return kValue;
- }
- // e. Increase k by 1.
- k++;
- }
- // 7. Return undefined.
- return undefined;
- }
- });
- }
- if (!Array.isArray) {
- Array.isArray = function (arg) {
- return Object.prototype.toString.call(arg) === '[object Array]';
- };
- }
- // Static
- var from = Array.from;
- var isArray = Array.isArray;
- // Instance
- var arrayIncludes = function arrayIncludes(array, value) {
- return array.indexOf(value) !== -1;
- };
- var arrayFind = function arrayFind(array, fn, thisArg) {
- return array.find(fn, thisArg);
- };
- function concat() {
- return Array.prototype.concat.apply([], arguments);
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/bv-event.class.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var BvEvent = function () {
- function BvEvent(type) {
- var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- _classCallCheck(this, BvEvent);
- // Start by emulating native Event constructor.
- if (!type) {
- throw new TypeError('Failed to construct \'' + this.constructor.name + '\'. 1 argument required, ' + arguments.length + ' given.');
- }
- // Assign defaults first, the eventInit,
- // and the type last so it can't be overwritten.
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["a" /* assign */])(this, BvEvent.defaults(), eventInit, { type: type });
- // Freeze some props as readonly, but leave them enumerable.
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["c" /* defineProperties */])(this, {
- type: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])(),
- cancelable: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])(),
- nativeEvent: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])(),
- target: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])(),
- relatedTarget: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])(),
- vueTarget: Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["f" /* readonlyDescriptor */])()
- });
- // Create a private variable using closure scoping.
- var defaultPrevented = false;
- // Recreate preventDefault method. One way setter.
- this.preventDefault = function preventDefault() {
- if (this.cancelable) {
- defaultPrevented = true;
- }
- };
- // Create 'defaultPrevented' publicly accessible prop
- // that can only be altered by the preventDefault method.
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["d" /* defineProperty */])(this, 'defaultPrevented', {
- enumerable: true,
- get: function get() {
- return defaultPrevented;
- }
- });
- }
- _createClass(BvEvent, null, [{
- key: 'defaults',
- value: function defaults() {
- return {
- type: '',
- cancelable: true,
- nativeEvent: null,
- target: null,
- relatedTarget: null,
- vueTarget: null
- };
- }
- }]);
- return BvEvent;
- }();
- /* harmony default export */ __webpack_exports__["a"] = (BvEvent);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/copyProps.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = copyProps;
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__identity__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/identity.js");
- 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; };
- /**
- * @param {[]|{}} props
- * @param {Function} transformFn
- */
- function copyProps(props) {
- var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : __WEBPACK_IMPORTED_MODULE_2__identity__["a" /* default */];
- if (Object(__WEBPACK_IMPORTED_MODULE_0__array__["d" /* isArray */])(props)) {
- return props.map(transformFn);
- }
- // Props as an object.
- var copied = {};
- for (var prop in props) {
- if (props.hasOwnProperty(prop)) {
- if ((typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) === 'object') {
- copied[transformFn(prop)] = Object(__WEBPACK_IMPORTED_MODULE_1__object__["a" /* assign */])({}, props[prop]);
- } else {
- copied[transformFn(prop)] = props[prop];
- }
- }
- }
- return copied;
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/dom.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return isElement; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return isVisible; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return isDisabled; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return reflow; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return selectAll; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return select; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return matches; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return closest; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getById; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addClass; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return removeClass; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return hasClass; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return setAttr; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return removeAttr; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getAttr; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return hasAttr; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getBCR; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getCS; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return offset; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return position; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return eventOn; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return eventOff; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- // Determine if an element is an HTML Element
- var isElement = function isElement(el) {
- return el && el.nodeType === Node.ELEMENT_NODE;
- };
- // Determine if an HTML element is visible - Faster than CSS check
- var isVisible = function isVisible(el) {
- return isElement(el) && document.body.contains(el) && el.getBoundingClientRect().height > 0 && el.getBoundingClientRect().width > 0;
- };
- // Determine if an element is disabled
- var isDisabled = function isDisabled(el) {
- return !isElement(el) || el.disabled || el.classList.contains('disabled') || Boolean(el.getAttribute('disabled'));
- };
- // Cause/wait-for an element to reflow it's content (adjusting it's height/width)
- var reflow = function reflow(el) {
- // requsting an elements offsetHight will trigger a reflow of the element content
- return isElement(el) && el.offsetHeight;
- };
- // Select all elements matching selector. Returns [] if none found
- var selectAll = function selectAll(selector, root) {
- if (!isElement(root)) {
- root = document;
- }
- return Object(__WEBPACK_IMPORTED_MODULE_0__array__["c" /* from */])(root.querySelectorAll(selector));
- };
- // Select a single element, returns null if not found
- var select = function select(selector, root) {
- if (!isElement(root)) {
- root = document;
- }
- return root.querySelector(selector) || null;
- };
- // Determine if an element matches a selector
- var matches = function matches(el, selector) {
- if (!isElement(el)) {
- return false;
- }
- // https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill
- // Prefer native implementations over polyfill function
- var proto = Element.prototype;
- var Matches = proto.matches || proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector ||
- /* istanbul ignore next */
- function (sel) {
- var element = this;
- var m = selectAll(sel, element.document || element.ownerDocument);
- var i = m.length;
- // eslint-disable-next-line no-empty
- while (--i >= 0 && m.item(i) !== element) {}
- return i > -1;
- };
- return Matches.call(el, selector);
- };
- // Finds closest element matching selector. Returns null if not found
- var closest = function closest(selector, root) {
- if (!isElement(root)) {
- return null;
- }
- // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
- // Since we dont support IE < 10, we can use the "Matches" version of the polyfill for speed
- // Prefer native implementation over polyfill function
- var Closest = Element.prototype.closest ||
- /* istanbul ignore next */
- function (sel) {
- var element = this;
- if (!document.documentElement.contains(element)) {
- return null;
- }
- do {
- // Use our "patched" matches function
- if (matches(element, sel)) {
- return element;
- }
- element = element.parentElement;
- } while (element !== null);
- return null;
- };
- var el = Closest.call(root, selector);
- // Emulate jQuery closest and return null if match is the passed in element (root)
- return el === root ? null : el;
- };
- // Get an element given an ID
- var getById = function getById(id) {
- return document.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;
- };
- // Add a class to an element
- var addClass = function addClass(el, className) {
- if (className && isElement(el)) {
- el.classList.add(className);
- }
- };
- // Remove a class from an element
- var removeClass = function removeClass(el, className) {
- if (className && isElement(el)) {
- el.classList.remove(className);
- }
- };
- // Test if an element has a class
- var hasClass = function hasClass(el, className) {
- if (className && isElement(el)) {
- return el.classList.contains(className);
- }
- return false;
- };
- // Set an attribute on an element
- var setAttr = function setAttr(el, attr, value) {
- if (attr && isElement(el)) {
- el.setAttribute(attr, value);
- }
- };
- // Remove an attribute from an element
- var removeAttr = function removeAttr(el, attr) {
- if (attr && isElement(el)) {
- el.removeAttribute(attr);
- }
- };
- // Get an attribute value from an element (returns null if not found)
- var getAttr = function getAttr(el, attr) {
- if (attr && isElement(el)) {
- return el.getAttribute(attr);
- }
- return null;
- };
- // Determine if an attribute exists on an element (returns true or false, or null if element not found)
- var hasAttr = function hasAttr(el, attr) {
- if (attr && isElement(el)) {
- return el.hasAttribute(attr);
- }
- return null;
- };
- // Return the Bounding Client Rec of an element. Retruns null if not an element
- var getBCR = function getBCR(el) {
- return isElement(el) ? el.getBoundingClientRect() : null;
- };
- // Get computed style object for an element
- var getCS = function getCS(el) {
- return isElement(el) ? window.getComputedStyle(el) : {};
- };
- // Return an element's offset wrt document element
- // https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset
- var offset = function offset(el) {
- if (isElement(el)) {
- if (!el.getClientRects().length) {
- return { top: 0, left: 0 };
- }
- var bcr = getBCR(el);
- var win = el.ownerDocument.defaultView;
- return {
- top: bcr.top + win.pageYOffset,
- left: bcr.left + win.pageXOffset
- };
- }
- };
- // Return an element's offset wrt to it's offsetParent
- // https://j11y.io/jquery/#v=git&fn=jQuery.fn.position
- var position = function position(el) {
- if (!isElement(el)) {
- return;
- }
- var parentOffset = { top: 0, left: 0 };
- var offsetSelf = void 0;
- var offsetParent = void 0;
- if (getCS(el).position === 'fixed') {
- offsetSelf = getBCR(el);
- } else {
- offsetSelf = offset(el);
- var doc = el.ownerDocument;
- offsetParent = el.offsetParent || doc.documentElement;
- while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {
- offsetParent = offsetParent.parentNode;
- }
- if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {
- parentOffset = offset(offsetParent);
- parentOffset.top += parseFloat(getCS(offsetParent).borderTopWidth);
- parentOffset.left += parseFloat(getCS(offsetParent).borderLeftWidth);
- }
- }
- return {
- top: offsetSelf.top - parentOffset.top - parseFloat(getCS(el).marginTop),
- left: offsetSelf.left - parentOffset.left - parseFloat(getCS(el).marginLeft)
- };
- };
- // Attach an event listener to an element
- var eventOn = function eventOn(el, evtName, handler) {
- if (el && el.addEventListener) {
- el.addEventListener(evtName, handler);
- }
- };
- // Remove an event listener from an element
- var eventOff = function eventOff(el, evtName, handler) {
- if (el && el.removeEventListener) {
- el.removeEventListener(evtName, handler);
- }
- };
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/identity.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = identity;
- function identity(x) {
- return x;
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/key-codes.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /*
- * Key Codes (events)
- */
- /* harmony default export */ __webpack_exports__["a"] = ({
- SPACE: 32,
- ENTER: 13,
- ESC: 27,
- LEFT: 37,
- UP: 38,
- RIGHT: 39,
- DOWN: 40,
- PAGEUP: 33,
- PAGEDOWN: 34,
- HOME: 36,
- END: 35
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/loose-equal.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- 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; };
- /**
- * Quick object check - this is primarily used to tell
- * Objects from primitive values when we know the value
- * is a JSON-compliant type.
- */
- function isObject(obj) {
- return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';
- }
- /**
- * Check if two values are loosely equal - that is,
- * if they are plain objects, do they have the same shape?
- * Returns boolean true or false
- */
- function looseEqual(a, b) {
- if (a === b) return true;
- var isObjectA = isObject(a);
- var isObjectB = isObject(b);
- if (isObjectA && isObjectB) {
- try {
- var isArrayA = Object(__WEBPACK_IMPORTED_MODULE_0__array__["d" /* isArray */])(a);
- var isArrayB = Object(__WEBPACK_IMPORTED_MODULE_0__array__["d" /* isArray */])(b);
- if (isArrayA && isArrayB) {
- return a.length === b.length && a.every(function (e, i) {
- return looseEqual(e, b[i]);
- });
- } else if (!isArrayA && !isArrayB) {
- var keysA = Object(__WEBPACK_IMPORTED_MODULE_1__object__["e" /* keys */])(a);
- var keysB = Object(__WEBPACK_IMPORTED_MODULE_1__object__["e" /* keys */])(b);
- return keysA.length === keysB.length && keysA.every(function (key) {
- return looseEqual(a[key], b[key]);
- });
- } else {
- return false;
- }
- } catch (e) {
- return false;
- }
- } else if (!isObjectA && !isObjectB) {
- return String(a) === String(b);
- } else {
- return false;
- }
- }
- /* harmony default export */ __webpack_exports__["a"] = (looseEqual);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/lower-first.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = lowerFirst;
- /**
- * @param {string} str
- */
- function lowerFirst(str) {
- if (typeof str !== 'string') {
- str = String(str);
- }
- return str.charAt(0).toLowerCase() + str.slice(1);
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/memoize.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = memoize;
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- function memoize(fn) {
- var cache = Object(__WEBPACK_IMPORTED_MODULE_0__object__["b" /* create */])(null);
- return function memoizedFn() {
- var args = JSON.stringify(arguments);
- return cache[args] = cache[args] || fn.apply(null, arguments);
- };
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/object.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return assign; });
- /* unused harmony export getOwnPropertyNames */
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return keys; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return defineProperties; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return defineProperty; });
- /* unused harmony export freeze */
- /* unused harmony export getOwnPropertyDescriptor */
- /* unused harmony export getOwnPropertySymbols */
- /* unused harmony export getPrototypeOf */
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return create; });
- /* unused harmony export isFrozen */
- /* unused harmony export is */
- /* harmony export (immutable) */ __webpack_exports__["f"] = readonlyDescriptor;
- /**
- * Aliasing Object[method] allows the minifier to shorten methods to a single character variable,
- * as well as giving BV a chance to inject polyfills.
- * As long as we avoid
- * - import * as Object from "utils/object"
- * all unused exports should be removed by tree-shaking.
- */
- // @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
- if (typeof Object.assign !== 'function') {
- Object.assign = function (target, varArgs) {
- // .length of function is 2
- if (target == null) {
- // TypeError if undefined or null
- throw new TypeError('Cannot convert undefined or null to object');
- }
- var to = Object(target);
- for (var index = 1; index < arguments.length; index++) {
- var nextSource = arguments[index];
- if (nextSource != null) {
- // Skip over if undefined or null
- for (var nextKey in nextSource) {
- // Avoid bugs when hasOwnProperty is shadowed
- if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
- to[nextKey] = nextSource[nextKey];
- }
- }
- }
- }
- return to;
- };
- }
- // @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#Polyfill
- if (!Object.is) {
- Object.is = function (x, y) {
- // SameValue algorithm
- if (x === y) {
- // Steps 1-5, 7-10
- // Steps 6.b-6.e: +0 != -0
- return x !== 0 || 1 / x === 1 / y;
- } else {
- // Step 6.a: NaN == NaN
- // eslint-disable-next-line no-self-compare
- return x !== x && y !== y;
- }
- };
- }
- var assign = Object.assign;
- var getOwnPropertyNames = Object.getOwnPropertyNames;
- var keys = Object.keys;
- var defineProperties = Object.defineProperties;
- var defineProperty = Object.defineProperty;
- var freeze = Object.freeze;
- var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
- var getOwnPropertySymbols = Object.getOwnPropertySymbols;
- var getPrototypeOf = Object.getPrototypeOf;
- var create = Object.create;
- var isFrozen = Object.isFrozen;
- var is = Object.is;
- function readonlyDescriptor() {
- return { enumerable: true, configurable: false, writable: false };
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/observe-dom.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = observeDOM;
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- /**
- * Observe a DOM element changes, falls back to eventListener mode
- * @param {Element} el The DOM element to observe
- * @param {Function} callback callback to be called on change
- * @param {object} [opts={childList: true, subtree: true}] observe options
- * @see http://stackoverflow.com/questions/3219758
- */
- function observeDOM(el, callback, opts) {
- var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
- var eventListenerSupported = window.addEventListener;
- // Handle case where we might be passed a vue instance
- el = el ? el.$el || el : null;
- /* istanbul ignore next: dificult to test in JSDOM */
- if (!Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom__["l" /* isElement */])(el)) {
- // We can't observe somthing that isn't an element
- return null;
- }
- var obs = null;
- /* istanbul ignore next: dificult to test in JSDOM */
- if (MutationObserver) {
- // Define a new observer
- obs = new MutationObserver(function (mutations) {
- var changed = false;
- // A Mutation can contain several change records, so we loop through them to see what has changed.
- // We break out of the loop early if any "significant" change has been detected
- for (var i = 0; i < mutations.length && !changed; i++) {
- // The muttion record
- var mutation = mutations[i];
- // Mutation Type
- var type = mutation.type;
- // DOM Node (could be any DOM Node type - HTMLElement, Text, comment, etc)
- var target = mutation.target;
- if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {
- // We ignore nodes that are not TEXt (i.e. comments, etc) as they don't change layout
- changed = true;
- } else if (type === 'attributes') {
- changed = true;
- } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {
- // This includes HTMLElement and Text Nodes being added/removed/re-arranged
- changed = true;
- }
- }
- if (changed) {
- // We only call the callback if a change that could affect layout/size truely happened.
- callback();
- }
- });
- // Have the observer observe foo for changes in children, etc
- obs.observe(el, Object(__WEBPACK_IMPORTED_MODULE_0__object__["a" /* assign */])({ childList: true, subtree: true }, opts));
- } else if (eventListenerSupported) {
- // Legacy interface. most likely not used in modern browsers
- el.addEventListener('DOMNodeInserted', callback, false);
- el.addEventListener('DOMNodeRemoved', callback, false);
- }
- // We return a reference to the observer so that obs.disconnect() can be called if necessary
- // To reduce overhead when the root element is hiiden
- return obs;
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/pluck-props.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = pluckProps;
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__identity__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/identity.js");
- /**
- * Given an array of properties or an object of property keys,
- * plucks all the values off the target object.
- * @param {{}|string[]} keysToPluck
- * @param {{}} objToPluck
- * @param {Function} transformFn
- * @return {{}}
- */
- function pluckProps(keysToPluck, objToPluck) {
- var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : __WEBPACK_IMPORTED_MODULE_2__identity__["a" /* default */];
- 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) {
- // eslint-disable-next-line no-sequences
- return memo[transformFn(prop)] = objToPluck[prop], memo;
- }, {});
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/plugins.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export registerComponent */
- /* harmony export (immutable) */ __webpack_exports__["a"] = registerComponents;
- /* unused harmony export registerDirective */
- /* harmony export (immutable) */ __webpack_exports__["b"] = registerDirectives;
- /* harmony export (immutable) */ __webpack_exports__["c"] = vueUse;
- /**
- * Register a component plugin as being loaded. returns true if compoent plugin already registered
- * @param {object} Vue
- * @param {string} Component name
- * @param {object} Component definition
- */
- function registerComponent(Vue, name, def) {
- Vue._bootstrap_vue_components_ = Vue._bootstrap_vue_components_ || {};
- var loaded = Vue._bootstrap_vue_components_[name];
- if (!loaded && def && name) {
- Vue._bootstrap_vue_components_[name] = true;
- Vue.component(name, def);
- }
- return loaded;
- }
- /**
- * Register a group of components as being loaded.
- * @param {object} Vue
- * @param {object} Object of component definitions
- */
- function registerComponents(Vue, components) {
- for (var component in components) {
- registerComponent(Vue, component, components[component]);
- }
- }
- /**
- * Register a directive as being loaded. returns true if directive plugin already registered
- * @param {object} Vue
- * @param {string} Directive name
- * @param {object} Directive definition
- */
- function registerDirective(Vue, name, def) {
- Vue._bootstrap_vue_directives_ = Vue._bootstrap_vue_directives_ || {};
- var loaded = Vue._bootstrap_vue_directives_[name];
- if (!loaded && def && name) {
- Vue._bootstrap_vue_directives_[name] = true;
- Vue.directive(name, def);
- }
- return loaded;
- }
- /**
- * Register a group of directives as being loaded.
- * @param {object} Vue
- * @param {object} Object of directive definitions
- */
- function registerDirectives(Vue, directives) {
- for (var directive in directives) {
- registerDirective(Vue, directive, directives[directive]);
- }
- }
- /**
- * Install plugin if window.Vue available
- * @param {object} Plugin definition
- */
- function vueUse(VuePlugin) {
- if (typeof window !== 'undefined' && window.Vue) {
- window.Vue.use(VuePlugin);
- }
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/popover.class.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tooltip_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/tooltip.class.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- var NAME = 'popover';
- var CLASS_PREFIX = 'bs-popover';
- var BSCLS_PREFIX_REGEX = new RegExp('\\b' + CLASS_PREFIX + '\\S+', 'g');
- var Defaults = Object(__WEBPACK_IMPORTED_MODULE_1__object__["a" /* assign */])({}, __WEBPACK_IMPORTED_MODULE_0__tooltip_class__["a" /* default */].Default, {
- placement: 'right',
- trigger: 'click',
- content: '',
- template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
- });
- var ClassName = {
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- TITLE: '.popover-header',
- CONTENT: '.popover-body'
- /* istanbul ignore next: dificult to test in Jest/JSDOM environment */
- };
- var PopOver = function (_ToolTip) {
- _inherits(PopOver, _ToolTip);
- function PopOver() {
- _classCallCheck(this, PopOver);
- return _possibleConstructorReturn(this, (PopOver.__proto__ || Object.getPrototypeOf(PopOver)).apply(this, arguments));
- }
- _createClass(PopOver, [{
- key: 'isWithContent',
- // Method overrides
- value: function isWithContent(tip) {
- tip = tip || this.$tip;
- if (!tip) {
- return false;
- }
- var hasTitle = Boolean((Object(__WEBPACK_IMPORTED_MODULE_2__dom__["t" /* select */])(Selector.TITLE, tip) || {}).innerHTML);
- var hasContent = Boolean((Object(__WEBPACK_IMPORTED_MODULE_2__dom__["t" /* select */])(Selector.CONTENT, tip) || {}).innerHTML);
- return hasTitle || hasContent;
- }
- }, {
- key: 'addAttachmentClass',
- value: function addAttachmentClass(attachment) {
- Object(__WEBPACK_IMPORTED_MODULE_2__dom__["a" /* addClass */])(this.getTipElement(), CLASS_PREFIX + '-' + attachment);
- }
- }, {
- key: 'setContent',
- value: function setContent(tip) {
- // we use append for html objects to maintain js events/components
- this.setElementContent(Object(__WEBPACK_IMPORTED_MODULE_2__dom__["t" /* select */])(Selector.TITLE, tip), this.getTitle());
- this.setElementContent(Object(__WEBPACK_IMPORTED_MODULE_2__dom__["t" /* select */])(Selector.CONTENT, tip), this.getContent());
- Object(__WEBPACK_IMPORTED_MODULE_2__dom__["s" /* removeClass */])(tip, ClassName.FADE);
- Object(__WEBPACK_IMPORTED_MODULE_2__dom__["s" /* removeClass */])(tip, ClassName.SHOW);
- }
- // This method may look identical to ToolTip version, but it uses a different RegEx defined above
- }, {
- key: 'cleanTipClass',
- value: function cleanTipClass() {
- var tip = this.getTipElement();
- var tabClass = tip.className.match(BSCLS_PREFIX_REGEX);
- if (tabClass !== null && tabClass.length > 0) {
- tabClass.forEach(function (cls) {
- Object(__WEBPACK_IMPORTED_MODULE_2__dom__["s" /* removeClass */])(tip, cls);
- });
- }
- }
- }, {
- key: 'getTitle',
- value: function getTitle() {
- var title = this.$config.title || '';
- if (typeof title === 'function') {
- title = title(this.$element);
- }
- if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object' && title.nodeType && !title.innerHTML.trim()) {
- // We have a dom node, but without inner content, so just return an empty string
- title = '';
- }
- if (typeof title === 'string') {
- title = title.trim();
- }
- if (!title) {
- // Try and grab element's title attribute
- 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') || '';
- title = title.trim();
- }
- return title;
- }
- // New methods
- }, {
- key: 'getContent',
- value: function getContent() {
- var content = this.$config.content || '';
- if (typeof content === 'function') {
- content = content(this.$element);
- }
- if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && content.nodeType && !content.innerHTML.trim()) {
- // We have a dom node, but without inner content, so just return an empty string
- content = '';
- }
- if (typeof content === 'string') {
- content = content.trim();
- }
- return content;
- }
- }], [{
- key: 'Default',
- // Getter overrides
- get: function get() {
- return Defaults;
- }
- }, {
- key: 'NAME',
- get: function get() {
- return NAME;
- }
- }]);
- return PopOver;
- }(__WEBPACK_IMPORTED_MODULE_0__tooltip_class__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (PopOver);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = prefixPropName;
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__upper_first__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/upper-first.js");
- /**
- * @param {string} prefix
- * @param {string} value
- */
- function prefixPropName(prefix, value) {
- return prefix + Object(__WEBPACK_IMPORTED_MODULE_0__upper_first__["a" /* default */])(value);
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/range.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /**
- * @param {number} length
- * @return {Array}
- */
- /* harmony default export */ __webpack_exports__["a"] = (function (length) {
- return Array.apply(null, { length: length });
- });
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/ssr.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HTMLElement; });
- // Polyfills for SSR
- var isSSR = typeof window === 'undefined';
- var HTMLElement = isSSR ? Object : window.HTMLElement;
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/stable-sort.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = stableSort;
- /*
- * Consitant and stable sort function across JavsaScript platforms
- *
- * Inconsistant sorts can cause SSR problems between client and server
- * such as in <b-table> if sortBy is applied to the data on server side render.
- * Chrome and V8 native sorts are inconsistant/unstable
- *
- * This function uses native sort with fallback to index compare when the a and b
- * compare returns 0
- *
- * Algorithm bsaed on:
- * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645
- *
- * @param {array} array to sort
- * @param {function} sortcompare function
- * @return {array}
- */
- function stableSort(array, compareFn) {
- // Using `.bind(compareFn)` on the wrapped anonymous function improves
- // performance by avoiding the function call setup. We don't use an arrow
- // function here as it binds `this` to the `stableSort` context rather than
- // the `compareFn` context, which wouldn't give us the performance increase.
- return array.map(function (a, index) {
- return [index, a];
- }).sort(function (a, b) {
- return this(a[1], b[1]) || a[0] - b[0];
- }.bind(compareFn)).map(function (e) {
- return e[1];
- });
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/suffix-prop-name.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = suffixPropName;
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__upper_first__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/upper-first.js");
- /**
- * Suffix can be a falsey value so nothing is appended to string.
- * (helps when looping over props & some shouldn't change)
- * Use data last parameters to allow for currying.
- * @param {string} suffix
- * @param {string} str
- */
- function suffixPropName(suffix, str) {
- return str + (suffix ? Object(__WEBPACK_IMPORTED_MODULE_0__upper_first__["a" /* default */])(suffix) : '');
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/target.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return bindTargets; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return unbindTargets; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- var allListenTypes = { hover: true, click: true, focus: true };
- var BVBoundListeners = '__BV_boundEventListeners__';
- var bindTargets = function bindTargets(vnode, binding, listenTypes, fn) {
- var targets = Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(binding.modifiers || {}).filter(function (t) {
- return !allListenTypes[t];
- });
- if (binding.value) {
- targets.push(binding.value);
- }
- var listener = function listener() {
- fn({ targets: targets, vnode: vnode });
- };
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(allListenTypes).forEach(function (type) {
- if (listenTypes[type] || binding.modifiers[type]) {
- vnode.elm.addEventListener(type, listener);
- var boundListeners = vnode.elm[BVBoundListeners] || {};
- boundListeners[type] = boundListeners[type] || [];
- boundListeners[type].push(listener);
- vnode.elm[BVBoundListeners] = boundListeners;
- }
- });
- // Return the list of targets
- return targets;
- };
- var unbindTargets = function unbindTargets(vnode, binding, listenTypes) {
- Object(__WEBPACK_IMPORTED_MODULE_0__utils_object__["e" /* keys */])(allListenTypes).forEach(function (type) {
- if (listenTypes[type] || binding.modifiers[type]) {
- var boundListeners = vnode.elm[BVBoundListeners] && vnode.elm[BVBoundListeners][type];
- if (boundListeners) {
- boundListeners.forEach(function (listener) {
- return vnode.elm.removeEventListener(type, listener);
- });
- delete vnode.elm[BVBoundListeners][type];
- }
- }
- });
- };
- /* harmony default export */ __webpack_exports__["b"] = (bindTargets);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/tooltip.class.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_popper_js__ = __webpack_require__("./node_modules/popper.js/dist/esm/popper.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__bv_event_class__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/bv-event.class.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__object__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__array__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__dom__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var NAME = 'tooltip';
- var CLASS_PREFIX = 'bs-tooltip';
- var BSCLS_PREFIX_REGEX = new RegExp('\\b' + CLASS_PREFIX + '\\S+', 'g');
- var TRANSITION_DURATION = 150;
- // Modal $root hidden event
- var MODAL_CLOSE_EVENT = 'bv::modal::hidden';
- // Modal container for appending tip/popover
- var MODAL_CLASS = '.modal-content';
- var AttachmentMap = {
- AUTO: 'auto',
- TOP: 'top',
- RIGHT: 'right',
- BOTTOM: 'bottom',
- LEFT: 'left',
- TOPLEFT: 'top',
- TOPRIGHT: 'top',
- RIGHTTOP: 'right',
- RIGHTBOTTOM: 'right',
- BOTTOMLEFT: 'bottom',
- BOTTOMRIGHT: 'bottom',
- LEFTTOP: 'left',
- LEFTBOTTOM: 'left'
- };
- var OffsetMap = {
- AUTO: 0,
- TOPLEFT: -1,
- TOP: 0,
- TOPRIGHT: +1,
- RIGHTTOP: -1,
- RIGHT: 0,
- RIGHTBOTTOM: +1,
- BOTTOMLEFT: -1,
- BOTTOM: 0,
- BOTTOMRIGHT: +1,
- LEFTTOP: -1,
- LEFT: 0,
- LEFTBOTTOM: +1
- };
- var HoverState = {
- SHOW: 'show',
- OUT: 'out'
- };
- var ClassName = {
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- TOOLTIP: '.tooltip',
- TOOLTIP_INNER: '.tooltip-inner',
- ARROW: '.arrow'
- // ESLINT: Not used
- // const Trigger = {
- // HOVER: 'hover',
- // FOCUS: 'focus',
- // CLICK: 'click',
- // BLUR: 'blur',
- // MANUAL: 'manual'
- // }
- };var Defaults = {
- animation: true,
- template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
- trigger: 'hover focus',
- title: '',
- delay: 0,
- html: false,
- placement: 'top',
- offset: 0,
- arrowPadding: 6,
- container: false,
- fallbackPlacement: 'flip',
- callbacks: {},
- boundary: 'scrollParent'
- // Transition Event names
- };var TransitionEndEvents = {
- WebkitTransition: ['webkitTransitionEnd'],
- MozTransition: ['transitionend'],
- OTransition: ['otransitionend', 'oTransitionEnd'],
- transition: ['transitionend']
- // Client Side Tip ID counter for aria-describedby attribute
- // Could use Alex's uid generator util
- // Each tooltip requires a unique client side ID
- };var NEXTID = 1;
- /* istanbul ignore next */
- function generateId(name) {
- return '__BV_' + name + '_' + NEXTID++ + '__';
- }
- /*
- * ToolTip Class definition
- */
- /* istanbul ignore next: difficult to test in Jest/JSDOM environment */
- var ToolTip = function () {
- // Main constructor
- function ToolTip(element, config, $root) {
- _classCallCheck(this, ToolTip);
- // New tooltip object
- this.$isEnabled = true;
- this.$fadeTimeout = null;
- this.$hoverTimeout = null;
- this.$visibleInterval = null;
- this.$hoverState = '';
- this.$activeTrigger = {};
- this.$popper = null;
- this.$element = element;
- this.$tip = null;
- this.$id = generateId(this.constructor.NAME);
- this.$root = $root || null;
- this.$routeWatcher = null;
- // We use a bound version of the following handlers for root/modal listeners to maintain the 'this' context
- this.$forceHide = this.forceHide.bind(this);
- this.$doHide = this.doHide.bind(this);
- this.$doShow = this.doShow.bind(this);
- this.$doDisable = this.doDisable.bind(this);
- this.$doEnable = this.doEnable.bind(this);
- // Set the configuration
- this.updateConfig(config);
- }
- // NOTE: Overridden by PopOver class
- _createClass(ToolTip, [{
- key: 'updateConfig',
- // Update config
- value: function updateConfig(config) {
- // Merge config into defaults. We use "this" here because PopOver overrides Default
- var updatedConfig = Object(__WEBPACK_IMPORTED_MODULE_2__object__["a" /* assign */])({}, this.constructor.Default, config);
- // Sanitize delay
- if (config.delay && typeof config.delay === 'number') {
- updatedConfig.delay = {
- show: config.delay,
- hide: config.delay
- };
- }
- // Title for tooltip and popover
- if (config.title && typeof config.title === 'number') {
- updatedConfig.title = config.title.toString();
- }
- // Content only for popover
- if (config.content && typeof config.content === 'number') {
- updatedConfig.content = config.content.toString();
- }
- // Hide element original title if needed
- this.fixTitle();
- // Update the config
- this.$config = updatedConfig;
- // Stop/Restart listening
- this.unListen();
- this.listen();
- }
- // Destroy this instance
- }, {
- key: 'destroy',
- value: function destroy() {
- // Stop listening to trigger events
- this.unListen();
- // Disable while open listeners/watchers
- this.setWhileOpenListeners(false);
- // Clear any timeouts
- clearTimeout(this.$hoverTimeout);
- this.$hoverTimeout = null;
- clearTimeout(this.$fadeTimeout);
- this.$fadeTimeout = null;
- // Remove popper
- if (this.$popper) {
- this.$popper.destroy();
- }
- this.$popper = null;
- // Remove tip from document
- if (this.$tip && this.$tip.parentElement) {
- this.$tip.parentElement.removeChild(this.$tip);
- }
- this.$tip = null;
- // Null out other properties
- this.$id = null;
- this.$isEnabled = null;
- this.$root = null;
- this.$element = null;
- this.$config = null;
- this.$hoverState = null;
- this.$activeTrigger = null;
- this.$forceHide = null;
- this.$doHide = null;
- this.$doShow = null;
- this.$doDisable = null;
- this.$doEnable = null;
- }
- }, {
- key: 'enable',
- value: function enable() {
- // Create a non-cancelable BvEvent
- var enabledEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('enabled', {
- cancelable: false,
- target: this.$element,
- relatedTarget: null
- });
- this.$isEnabled = true;
- this.emitEvent(enabledEvt);
- }
- }, {
- key: 'disable',
- value: function disable() {
- // Create a non-cancelable BvEvent
- var disabledEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('disabled', {
- cancelable: false,
- target: this.$element,
- relatedTarget: null
- });
- this.$isEnabled = false;
- this.emitEvent(disabledEvt);
- }
- // Click toggler
- }, {
- key: 'toggle',
- value: function toggle(event) {
- if (!this.$isEnabled) {
- return;
- }
- if (event) {
- this.$activeTrigger.click = !this.$activeTrigger.click;
- if (this.isWithActiveTrigger()) {
- this.enter(null);
- } else {
- this.leave(null);
- }
- } else {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["j" /* hasClass */])(this.getTipElement(), ClassName.SHOW)) {
- this.leave(null);
- } else {
- this.enter(null);
- }
- }
- }
- // Show tooltip
- }, {
- key: 'show',
- value: function show() {
- var _this = this;
- if (!document.body.contains(this.$element) || !Object(__WEBPACK_IMPORTED_MODULE_4__dom__["m" /* isVisible */])(this.$element)) {
- // If trigger element isn't in the DOM or is not visible
- return;
- }
- // Build tooltip element (also sets this.$tip)
- var tip = this.getTipElement();
- this.fixTitle();
- this.setContent(tip);
- if (!this.isWithContent(tip)) {
- // if No content, don't bother showing
- this.$tip = null;
- return;
- }
- // Set ID on tip and aria-describedby on element
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["v" /* setAttr */])(tip, 'id', this.$id);
- this.addAriaDescribedby();
- // Set animation on or off
- if (this.$config.animation) {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["a" /* addClass */])(tip, ClassName.FADE);
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.FADE);
- }
- var placement = this.getPlacement();
- var attachment = this.constructor.getAttachment(placement);
- this.addAttachmentClass(attachment);
- // Create a cancelable BvEvent
- var showEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('show', {
- cancelable: true,
- target: this.$element,
- relatedTarget: tip
- });
- this.emitEvent(showEvt);
- if (showEvt.defaultPrevented) {
- // Don't show if event cancelled
- this.$tip = null;
- return;
- }
- // Insert tooltip if needed
- var container = this.getContainer();
- if (!document.body.contains(tip)) {
- container.appendChild(tip);
- }
- // Refresh popper
- this.removePopper();
- this.$popper = new __WEBPACK_IMPORTED_MODULE_0_popper_js__["default"](this.$element, tip, this.getPopperConfig(placement, tip));
- // Transitionend Callback
- var complete = function complete() {
- if (_this.$config.animation) {
- _this.fixTransition(tip);
- }
- var prevHoverState = _this.$hoverState;
- _this.$hoverState = null;
- if (prevHoverState === HoverState.OUT) {
- _this.leave(null);
- }
- // Create a non-cancelable BvEvent
- var shownEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('shown', {
- cancelable: false,
- target: _this.$element,
- relatedTarget: tip
- });
- _this.emitEvent(shownEvt);
- };
- // Enable while open listeners/watchers
- this.setWhileOpenListeners(true);
- // Show tip
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["a" /* addClass */])(tip, ClassName.SHOW);
- // Start the transition/animation
- this.transitionOnce(tip, complete);
- }
- // handler for periodic visibility check
- }, {
- key: 'visibleCheck',
- value: function visibleCheck(on) {
- var _this2 = this;
- clearInterval(this.$visibleInterval);
- this.$visibleInterval = null;
- if (on) {
- this.$visibleInterval = setInterval(function () {
- var tip = _this2.getTipElement();
- if (tip && !Object(__WEBPACK_IMPORTED_MODULE_4__dom__["m" /* isVisible */])(_this2.$element) && Object(__WEBPACK_IMPORTED_MODULE_4__dom__["j" /* hasClass */])(tip, ClassName.SHOW)) {
- // Element is no longer visible, so force-hide the tooltip
- _this2.forceHide();
- }
- }, 100);
- }
- }
- }, {
- key: 'setWhileOpenListeners',
- value: function setWhileOpenListeners(on) {
- // Modal close events
- this.setModalListener(on);
- // Periodic $element visibility check
- // For handling when tip is in <keepalive>, tabs, carousel, etc
- this.visibleCheck(on);
- // Route change events
- this.setRouteWatcher(on);
- // Ontouch start listeners
- this.setOnTouchStartListener(on);
- if (on && /(focus|blur)/.test(this.$config.trigger)) {
- // If focus moves between trigger element and tip container, dont close
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(this.$tip, 'focusout', this);
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["c" /* eventOff */])(this.$tip, 'focusout', this);
- }
- }
- // force hide of tip (internal method)
- }, {
- key: 'forceHide',
- value: function forceHide() {
- if (!this.$tip || !Object(__WEBPACK_IMPORTED_MODULE_4__dom__["j" /* hasClass */])(this.$tip, ClassName.SHOW)) {
- return;
- }
- // Disable while open listeners/watchers
- this.setWhileOpenListeners(false);
- // Clear any hover enter/leave event
- clearTimeout(this.$hoverTimeout);
- this.$hoverTimeout = null;
- this.$hoverState = '';
- // Hide the tip
- this.hide(null, true);
- }
- // Hide tooltip
- }, {
- key: 'hide',
- value: function hide(callback, force) {
- var _this3 = this;
- var tip = this.$tip;
- if (!tip) {
- return;
- }
- // Create a canelable BvEvent
- var hideEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('hide', {
- // We disable cancelling if force is true
- cancelable: !force,
- target: this.$element,
- relatedTarget: tip
- });
- this.emitEvent(hideEvt);
- if (hideEvt.defaultPrevented) {
- // Don't hide if event cancelled
- return;
- }
- // Transitionend Callback
- /* istanbul ignore next */
- var complete = function complete() {
- if (_this3.$hoverState !== HoverState.SHOW && tip.parentNode) {
- // Remove tip from dom, and force recompile on next show
- tip.parentNode.removeChild(tip);
- _this3.removeAriaDescribedby();
- _this3.removePopper();
- _this3.$tip = null;
- }
- if (callback) {
- callback();
- }
- // Create a non-cancelable BvEvent
- var hiddenEvt = new __WEBPACK_IMPORTED_MODULE_1__bv_event_class__["a" /* default */]('hidden', {
- cancelable: false,
- target: _this3.$element,
- relatedTarget: null
- });
- _this3.emitEvent(hiddenEvt);
- };
- // Disable while open listeners/watchers
- this.setWhileOpenListeners(false);
- // If forced close, disable animation
- if (force) {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.FADE);
- }
- // Hide tip
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.SHOW);
- this.$activeTrigger.click = false;
- this.$activeTrigger.focus = false;
- this.$activeTrigger.hover = false;
- // Start the hide transition
- this.transitionOnce(tip, complete);
- this.$hoverState = '';
- }
- }, {
- key: 'emitEvent',
- value: function emitEvent(evt) {
- var evtName = evt.type;
- if (this.$root && this.$root.$emit) {
- // Emit an event on $root
- this.$root.$emit('bv::' + this.constructor.NAME + '::' + evtName, evt);
- }
- var callbacks = this.$config.callbacks || {};
- if (typeof callbacks[evtName] === 'function') {
- callbacks[evtName](evt);
- }
- }
- }, {
- key: 'getContainer',
- value: function getContainer() {
- var container = this.$config.container;
- var body = document.body;
- // If we are in a modal, we append to the modal instead of body, unless a container is specified
- 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;
- }
- // Will be overritten by popover if needed
- }, {
- key: 'addAriaDescribedby',
- value: function addAriaDescribedby() {
- // Add aria-describedby on trigger element, without removing any other IDs
- var desc = Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(this.$element, 'aria-describedby') || '';
- desc = desc.split(/\s+/).concat(this.$id).join(' ').trim();
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["v" /* setAttr */])(this.$element, 'aria-describedby', desc);
- }
- // Will be overritten by popover if needed
- }, {
- key: 'removeAriaDescribedby',
- value: function removeAriaDescribedby() {
- var _this4 = this;
- var desc = Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(this.$element, 'aria-describedby') || '';
- desc = desc.split(/\s+/).filter(function (d) {
- return d !== _this4.$id;
- }).join(' ').trim();
- if (desc) {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["v" /* setAttr */])(this.$element, 'aria-describedby', desc);
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["r" /* removeAttr */])(this.$element, 'aria-describedby');
- }
- }
- }, {
- key: 'removePopper',
- value: function removePopper() {
- if (this.$popper) {
- this.$popper.destroy();
- }
- this.$popper = null;
- }
- /* istanbul ignore next */
- }, {
- key: 'transitionOnce',
- value: function transitionOnce(tip, complete) {
- var _this5 = this;
- var transEvents = this.getTransitionEndEvents();
- var called = false;
- clearTimeout(this.$fadeTimeout);
- this.$fadeTimeout = null;
- var fnOnce = function fnOnce() {
- if (called) {
- return;
- }
- called = true;
- clearTimeout(_this5.$fadeTimeout);
- _this5.$fadeTimeout = null;
- transEvents.forEach(function (evtName) {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["c" /* eventOff */])(tip, evtName, fnOnce);
- });
- // Call complete callback
- complete();
- };
- if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["j" /* hasClass */])(tip, ClassName.FADE)) {
- transEvents.forEach(function (evtName) {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(tip, evtName, fnOnce);
- });
- // Fallback to setTimeout
- this.$fadeTimeout = setTimeout(fnOnce, TRANSITION_DURATION);
- } else {
- fnOnce();
- }
- }
- // What transitionend event(s) to use? (returns array of event names)
- }, {
- key: 'getTransitionEndEvents',
- value: function getTransitionEndEvents() {
- for (var name in TransitionEndEvents) {
- if (this.$element.style[name] !== undefined) {
- return TransitionEndEvents[name];
- }
- }
- // fallback
- return [];
- }
- }, {
- key: 'update',
- value: function update() {
- if (this.$popper !== null) {
- this.$popper.scheduleUpdate();
- }
- }
- // NOTE: Overridden by PopOver class
- }, {
- key: 'isWithContent',
- value: function isWithContent(tip) {
- tip = tip || this.$tip;
- if (!tip) {
- return false;
- }
- return Boolean((Object(__WEBPACK_IMPORTED_MODULE_4__dom__["t" /* select */])(Selector.TOOLTIP_INNER, tip) || {}).innerHTML);
- }
- // NOTE: Overridden by PopOver class
- }, {
- key: 'addAttachmentClass',
- value: function addAttachmentClass(attachment) {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["a" /* addClass */])(this.getTipElement(), CLASS_PREFIX + '-' + attachment);
- }
- }, {
- key: 'getTipElement',
- value: function getTipElement() {
- if (!this.$tip) {
- // Try and compile user supplied template, or fallback to default template
- this.$tip = this.compileTemplate(this.$config.template) || this.compileTemplate(this.constructor.Default.template);
- }
- // Add tab index so tip can be focused, and to allow it to be set as relatedTargt in focusin/out events
- this.$tip.tabIndex = -1;
- return this.$tip;
- }
- }, {
- key: 'compileTemplate',
- value: function compileTemplate(html) {
- if (!html || typeof html !== 'string') {
- return null;
- }
- var div = document.createElement('div');
- div.innerHTML = html.trim();
- var node = div.firstElementChild ? div.removeChild(div.firstElementChild) : null;
- div = null;
- return node;
- }
- // NOTE: Overridden by PopOver class
- }, {
- key: 'setContent',
- value: function setContent(tip) {
- this.setElementContent(Object(__WEBPACK_IMPORTED_MODULE_4__dom__["t" /* select */])(Selector.TOOLTIP_INNER, tip), this.getTitle());
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.FADE);
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.SHOW);
- }
- }, {
- key: 'setElementContent',
- value: function setElementContent(container, content) {
- if (!container) {
- // If container element doesn't exist, just return
- return;
- }
- var allowHtml = this.$config.html;
- if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && content.nodeType) {
- // content is a DOM node
- if (allowHtml) {
- if (content.parentElement !== container) {
- container.innerHtml = '';
- container.appendChild(content);
- }
- } else {
- container.innerText = content.innerText;
- }
- } else {
- // We have a plain HTML string or Text
- container[allowHtml ? 'innerHTML' : 'innerText'] = content;
- }
- }
- // NOTE: Overridden by PopOver class
- }, {
- key: 'getTitle',
- value: function getTitle() {
- var title = this.$config.title || '';
- if (typeof title === 'function') {
- // Call the function to get the title value
- title = title(this.$element);
- }
- if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object' && title.nodeType && !title.innerHTML.trim()) {
- // We have a DOM node, but without inner content, so just return empty string
- title = '';
- }
- if (typeof title === 'string') {
- title = title.trim();
- }
- if (!title) {
- // If an explicit title is not given, try element's title atributes
- 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') || '';
- title = title.trim();
- }
- return title;
- }
- }, {
- key: 'listen',
- value: function listen() {
- var _this6 = this;
- var triggers = this.$config.trigger.trim().split(/\s+/);
- var el = this.$element;
- // Listen for global show/hide events
- this.setRootListener(true);
- // Using 'this' as the handler will get automagically directed to this.handleEvent
- // And maintain our binding to 'this'
- triggers.forEach(function (trigger) {
- if (trigger === 'click') {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'click', _this6);
- } else if (trigger === 'focus') {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'focusin', _this6);
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'focusout', _this6);
- } else if (trigger === 'blur') {
- // Used to close $tip when element looses focus
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'focusout', _this6);
- } else if (trigger === 'hover') {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'mouseenter', _this6);
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'mouseleave', _this6);
- }
- }, this);
- }
- }, {
- key: 'unListen',
- value: function unListen() {
- var _this7 = this;
- var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];
- // Using "this" as the handler will get automagically directed to this.handleEvent
- events.forEach(function (evt) {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["c" /* eventOff */])(_this7.$element, evt, _this7);
- }, this);
- // Stop listening for global show/hide/enable/disable events
- this.setRootListener(false);
- }
- }, {
- key: 'handleEvent',
- value: function handleEvent(e) {
- // This special method allows us to use "this" as the event handlers
- if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["k" /* isDisabled */])(this.$element)) {
- // If disabled, don't do anything. Note: if tip is shown before element gets
- // disabled, then tip not close until no longer disabled or forcefully closed.
- return;
- }
- if (!this.$isEnabled) {
- // If not enable
- return;
- }
- var type = e.type;
- var target = e.target;
- var relatedTarget = e.relatedTarget;
- var $element = this.$element;
- var $tip = this.$tip;
- if (type === 'click') {
- this.toggle(e);
- } else if (type === 'focusin' || type === 'mouseenter') {
- this.enter(e);
- } else if (type === 'focusout') {
- // target is the element which is loosing focus
- // And relatedTarget is the element gaining focus
- if ($tip && $element && $element.contains(target) && $tip.contains(relatedTarget)) {
- // If focus moves from $element to $tip, don't trigger a leave
- return;
- }
- if ($tip && $element && $tip.contains(target) && $element.contains(relatedTarget)) {
- // If focus moves from $tip to $element, don't trigger a leave
- return;
- }
- if ($tip && $tip.contains(target) && $tip.contains(relatedTarget)) {
- // If focus moves within $tip, don't trigger a leave
- return;
- }
- if ($element && $element.contains(target) && $element.contains(relatedTarget)) {
- // If focus moves within $element, don't trigger a leave
- return;
- }
- // Otherwise trigger a leave
- this.leave(e);
- } else if (type === 'mouseleave') {
- this.leave(e);
- }
- }
- /* istanbul ignore next */
- }, {
- key: 'setRouteWatcher',
- value: function setRouteWatcher(on) {
- var _this8 = this;
- if (on) {
- this.setRouteWatcher(false);
- if (this.$root && Boolean(this.$root.$route)) {
- this.$routeWatcher = this.$root.$watch('$route', function (newVal, oldVal) {
- if (newVal === oldVal) {
- return;
- }
- // If route has changed, we force hide the tooltip/popover
- _this8.forceHide();
- });
- }
- } else {
- if (this.$routeWatcher) {
- // cancel the route watcher by calling hte stored reference
- this.$routeWatcher();
- this.$routeWatcher = null;
- }
- }
- }
- /* istanbul ignore next */
- }, {
- key: 'setModalListener',
- value: function setModalListener(on) {
- var modal = Object(__WEBPACK_IMPORTED_MODULE_4__dom__["b" /* closest */])(MODAL_CLASS, this.$element);
- if (!modal) {
- // If we are not in a modal, don't worry. be happy
- return;
- }
- // We can listen for modal hidden events on $root
- if (this.$root) {
- this.$root[on ? '$on' : '$off'](MODAL_CLOSE_EVENT, this.$forceHide);
- }
- }
- /* istanbul ignore next */
- }, {
- key: 'setRootListener',
- value: function setRootListener(on) {
- // Listen for global 'bv::{hide|show}::{tooltip|popover}' hide request event
- if (this.$root) {
- this.$root[on ? '$on' : '$off']('bv::hide::' + this.constructor.NAME, this.$doHide);
- this.$root[on ? '$on' : '$off']('bv::show::' + this.constructor.NAME, this.$doShow);
- this.$root[on ? '$on' : '$off']('bv::disable::' + this.constructor.NAME, this.$doDisable);
- this.$root[on ? '$on' : '$off']('bv::enable::' + this.constructor.NAME, this.$doEnable);
- }
- }
- }, {
- key: 'doHide',
- value: function doHide(id) {
- // Programmatically hide tooltip or popover
- if (!id) {
- // Close all tooltips or popovers
- this.forceHide();
- } else if (this.$element && this.$element.id && this.$element.id === id) {
- // Close this specific tooltip or popover
- this.hide();
- }
- }
- }, {
- key: 'doShow',
- value: function doShow(id) {
- // Programmatically show tooltip or popover
- if (!id) {
- // Open all tooltips or popovers
- this.show();
- } else if (id && this.$element && this.$element.id && this.$element.id === id) {
- // Show this specific tooltip or popover
- this.show();
- }
- }
- }, {
- key: 'doDisable',
- value: function doDisable(id) {
- // Programmatically disable tooltip or popover
- if (!id) {
- // Disable all tooltips or popovers
- this.disable();
- } else if (this.$element && this.$element.id && this.$element.id === id) {
- // Disable this specific tooltip or popover
- this.disable();
- }
- }
- }, {
- key: 'doEnable',
- value: function doEnable(id) {
- // Programmatically enable tooltip or popover
- if (!id) {
- // Enable all tooltips or popovers
- this.enable();
- } else if (this.$element && this.$element.id && this.$element.id === id) {
- // Enable this specific tooltip or popover
- this.enable();
- }
- }
- /* istanbul ignore next */
- }, {
- key: 'setOnTouchStartListener',
- value: function setOnTouchStartListener(on) {
- var _this9 = this;
- // if this is a touch-enabled device we add extra
- // empty mouseover listeners to the body's immediate children;
- // only needed because of broken event delegation on iOS
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
- if ('ontouchstart' in document.documentElement) {
- Object(__WEBPACK_IMPORTED_MODULE_3__array__["c" /* from */])(document.body.children).forEach(function (el) {
- if (on) {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["d" /* eventOn */])(el, 'mouseover', _this9._noop);
- } else {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["c" /* eventOff */])(el, 'mouseover', _this9._noop);
- }
- });
- }
- }
- /* istanbul ignore next */
- }, {
- key: '_noop',
- value: function _noop() {
- // Empty noop handler for ontouchstart devices
- }
- }, {
- key: 'fixTitle',
- value: function fixTitle() {
- var el = this.$element;
- var titleType = _typeof(Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(el, 'data-original-title'));
- if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(el, 'title') || titleType !== 'string') {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["v" /* setAttr */])(el, 'data-original-title', Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(el, 'title') || '');
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["v" /* setAttr */])(el, 'title', '');
- }
- }
- // Enter handler
- /* istanbul ignore next */
- }, {
- key: 'enter',
- value: function enter(e) {
- var _this10 = this;
- if (e) {
- this.$activeTrigger[e.type === 'focusin' ? 'focus' : 'hover'] = true;
- }
- if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["j" /* hasClass */])(this.getTipElement(), ClassName.SHOW) || this.$hoverState === HoverState.SHOW) {
- this.$hoverState = HoverState.SHOW;
- return;
- }
- clearTimeout(this.$hoverTimeout);
- this.$hoverState = HoverState.SHOW;
- if (!this.$config.delay || !this.$config.delay.show) {
- this.show();
- return;
- }
- this.$hoverTimeout = setTimeout(function () {
- if (_this10.$hoverState === HoverState.SHOW) {
- _this10.show();
- }
- }, this.$config.delay.show);
- }
- // Leave handler
- /* istanbul ignore next */
- }, {
- key: 'leave',
- value: function leave(e) {
- var _this11 = this;
- if (e) {
- this.$activeTrigger[e.type === 'focusout' ? 'focus' : 'hover'] = false;
- if (e.type === 'focusout' && /blur/.test(this.$config.trigger)) {
- // Special case for `blur`: we clear out the other triggers
- this.$activeTrigger.click = false;
- this.$activeTrigger.hover = false;
- }
- }
- if (this.isWithActiveTrigger()) {
- return;
- }
- clearTimeout(this.$hoverTimeout);
- this.$hoverState = HoverState.OUT;
- if (!this.$config.delay || !this.$config.delay.hide) {
- this.hide();
- return;
- }
- this.$hoverTimeout = setTimeout(function () {
- if (_this11.$hoverState === HoverState.OUT) {
- _this11.hide();
- }
- }, this.$config.delay.hide);
- }
- }, {
- key: 'getPopperConfig',
- value: function getPopperConfig(placement, tip) {
- var _this12 = this;
- return {
- placement: this.constructor.getAttachment(placement),
- modifiers: {
- offset: { offset: this.getOffset(placement, tip) },
- flip: { behavior: this.$config.fallbackPlacement },
- arrow: { element: '.arrow' },
- preventOverflow: { boundariesElement: this.$config.boundary }
- },
- onCreate: function onCreate(data) {
- // Handle flipping arrow classes
- if (data.originalPlacement !== data.placement) {
- _this12.handlePopperPlacementChange(data);
- }
- },
- onUpdate: function onUpdate(data) {
- // Handle flipping arrow classes
- _this12.handlePopperPlacementChange(data);
- }
- };
- }
- }, {
- key: 'getOffset',
- value: function getOffset(placement, tip) {
- if (!this.$config.offset) {
- var arrow = Object(__WEBPACK_IMPORTED_MODULE_4__dom__["t" /* select */])(Selector.ARROW, tip);
- var arrowOffset = parseFloat(Object(__WEBPACK_IMPORTED_MODULE_4__dom__["h" /* getCS */])(arrow).width) + parseFloat(this.$config.arrowPadding);
- switch (OffsetMap[placement.toUpperCase()]) {
- case +1:
- return '+50%p - ' + arrowOffset + 'px';
- case -1:
- return '-50%p + ' + arrowOffset + 'px';
- default:
- return 0;
- }
- }
- return this.$config.offset;
- }
- }, {
- key: 'getPlacement',
- value: function getPlacement() {
- var placement = this.$config.placement;
- if (typeof placement === 'function') {
- return placement.call(this, this.$tip, this.$element);
- }
- return placement;
- }
- }, {
- key: 'isWithActiveTrigger',
- value: function isWithActiveTrigger() {
- for (var trigger in this.$activeTrigger) {
- if (this.$activeTrigger[trigger]) {
- return true;
- }
- }
- return false;
- }
- // NOTE: Overridden by PopOver class
- }, {
- key: 'cleanTipClass',
- value: function cleanTipClass() {
- var tip = this.getTipElement();
- var tabClass = tip.className.match(BSCLS_PREFIX_REGEX);
- if (tabClass !== null && tabClass.length > 0) {
- tabClass.forEach(function (cls) {
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, cls);
- });
- }
- }
- }, {
- key: 'handlePopperPlacementChange',
- value: function handlePopperPlacementChange(data) {
- this.cleanTipClass();
- this.addAttachmentClass(this.constructor.getAttachment(data.placement));
- }
- }, {
- key: 'fixTransition',
- value: function fixTransition(tip) {
- var initConfigAnimation = this.$config.animation || false;
- if (Object(__WEBPACK_IMPORTED_MODULE_4__dom__["e" /* getAttr */])(tip, 'x-placement') !== null) {
- return;
- }
- Object(__WEBPACK_IMPORTED_MODULE_4__dom__["s" /* removeClass */])(tip, ClassName.FADE);
- this.$config.animation = false;
- this.hide();
- this.show();
- this.$config.animation = initConfigAnimation;
- }
- }], [{
- key: 'getAttachment',
- value: function getAttachment(placement) {
- return AttachmentMap[placement.toUpperCase()];
- }
- }, {
- key: 'Default',
- get: function get() {
- return Defaults;
- }
- // NOTE: Overridden by PopOver class
- }, {
- key: 'NAME',
- get: function get() {
- return NAME;
- }
- }]);
- return ToolTip;
- }();
- /* harmony default export */ __webpack_exports__["a"] = (ToolTip);
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/unprefix-prop-name.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = unPrefixPropName;
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__lower_first__ = __webpack_require__("./node_modules/bootstrap-vue/es/utils/lower-first.js");
- /**
- * @param {string} prefix
- * @param {string} value
- */
- function unPrefixPropName(prefix, value) {
- return Object(__WEBPACK_IMPORTED_MODULE_0__lower_first__["a" /* default */])(value.replace(prefix, ''));
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/upper-first.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = upperFirst;
- /**
- * @param {string} str
- */
- function upperFirst(str) {
- if (typeof str !== 'string') {
- str = String(str);
- }
- return str.charAt(0).toUpperCase() + str.slice(1);
- }
- /***/ }),
- /***/ "./node_modules/bootstrap-vue/es/utils/warn.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /**
- * Log a warning message to the console with bootstrap-vue formatting sugar.
- * @param {string} message
- */
- /* istanbul ignore next */
- function warn(message) {
- console.warn("[Bootstrap-Vue warn]: " + message);
- }
- /* harmony default export */ __webpack_exports__["a"] = (warn);
- /***/ }),
- /***/ "./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/alert/alert.css":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
- // imports
- // module
- 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", ""]);
- // exports
- /***/ }),
- /***/ "./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
- // imports
- // module
- 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", ""]);
- // exports
- /***/ }),
- /***/ "./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/form-input/form-input.css":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
- // imports
- // module
- 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", ""]);
- // exports
- /***/ }),
- /***/ "./node_modules/css-loader/index.js!./node_modules/bootstrap-vue/es/components/table/table.css":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
- // imports
- // module
- 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", ""]);
- // exports
- /***/ }),
- /***/ "./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":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
- // imports
- // module
- exports.push([module.i, "\n\n", ""]);
- // exports
- /***/ }),
- /***/ "./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":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
- // imports
- // module
- 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", ""]);
- // exports
- /***/ }),
- /***/ "./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":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
- // imports
- // module
- 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", ""]);
- // exports
- /***/ }),
- /***/ "./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":
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__("./node_modules/css-loader/lib/css-base.js")(false);
- // imports
- // module
- 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", ""]);
- // exports
- /***/ }),
- /***/ "./node_modules/css-loader/lib/css-base.js":
- /***/ (function(module, exports) {
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- // css base code, injected by the css-loader
- module.exports = function(useSourceMap) {
- var list = [];
- // return the list of modules as css string
- list.toString = function toString() {
- return this.map(function (item) {
- var content = cssWithMappingToString(item, useSourceMap);
- if(item[2]) {
- return "@media " + item[2] + "{" + content + "}";
- } else {
- return content;
- }
- }).join("");
- };
- // import a list of modules into the list
- list.i = function(modules, mediaQuery) {
- if(typeof modules === "string")
- modules = [[null, modules, ""]];
- var alreadyImportedModules = {};
- for(var i = 0; i < this.length; i++) {
- var id = this[i][0];
- if(typeof id === "number")
- alreadyImportedModules[id] = true;
- }
- for(i = 0; i < modules.length; i++) {
- var item = modules[i];
- // skip already imported module
- // this implementation is not 100% perfect for weird media query combinations
- // when a module is imported multiple times with different media queries.
- // I hope this will never occur (Hey this way we have smaller bundles)
- if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
- if(mediaQuery && !item[2]) {
- item[2] = mediaQuery;
- } else if(mediaQuery) {
- item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
- }
- list.push(item);
- }
- }
- };
- return list;
- };
- function cssWithMappingToString(item, useSourceMap) {
- var content = item[1] || '';
- var cssMapping = item[3];
- if (!cssMapping) {
- return content;
- }
- if (useSourceMap && typeof btoa === 'function') {
- var sourceMapping = toComment(cssMapping);
- var sourceURLs = cssMapping.sources.map(function (source) {
- return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
- });
- return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
- }
- return [content].join('\n');
- }
- // Adapted from convert-source-map (MIT)
- function toComment(sourceMap) {
- // eslint-disable-next-line no-undef
- var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
- var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
- return '/*# ' + data + ' */';
- }
- /***/ }),
- /***/ "./node_modules/date-fns/compare_asc/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
- /**
- * @category Common Helpers
- * @summary Compare the two dates and return -1, 0 or 1.
- *
- * @description
- * Compare the two dates and return 1 if the first date is after the second,
- * -1 if the first date is before the second or 0 if dates are equal.
- *
- * @param {Date|String|Number} dateLeft - the first date to compare
- * @param {Date|String|Number} dateRight - the second date to compare
- * @returns {Number} the result of the comparison
- *
- * @example
- * // Compare 11 February 1987 and 10 July 1989:
- * var result = compareAsc(
- * new Date(1987, 1, 11),
- * new Date(1989, 6, 10)
- * )
- * //=> -1
- *
- * @example
- * // Sort the array of dates:
- * var result = [
- * new Date(1995, 6, 2),
- * new Date(1987, 1, 11),
- * new Date(1989, 6, 10)
- * ].sort(compareAsc)
- * //=> [
- * // Wed Feb 11 1987 00:00:00,
- * // Mon Jul 10 1989 00:00:00,
- * // Sun Jul 02 1995 00:00:00
- * // ]
- */
- function compareAsc (dirtyDateLeft, dirtyDateRight) {
- var dateLeft = parse(dirtyDateLeft)
- var timeLeft = dateLeft.getTime()
- var dateRight = parse(dirtyDateRight)
- var timeRight = dateRight.getTime()
- if (timeLeft < timeRight) {
- return -1
- } else if (timeLeft > timeRight) {
- return 1
- } else {
- return 0
- }
- }
- module.exports = compareAsc
- /***/ }),
- /***/ "./node_modules/date-fns/compare_desc/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
- /**
- * @category Common Helpers
- * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.
- *
- * @description
- * Compare the two dates and return -1 if the first date is after the second,
- * 1 if the first date is before the second or 0 if dates are equal.
- *
- * @param {Date|String|Number} dateLeft - the first date to compare
- * @param {Date|String|Number} dateRight - the second date to compare
- * @returns {Number} the result of the comparison
- *
- * @example
- * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:
- * var result = compareDesc(
- * new Date(1987, 1, 11),
- * new Date(1989, 6, 10)
- * )
- * //=> 1
- *
- * @example
- * // Sort the array of dates in reverse chronological order:
- * var result = [
- * new Date(1995, 6, 2),
- * new Date(1987, 1, 11),
- * new Date(1989, 6, 10)
- * ].sort(compareDesc)
- * //=> [
- * // Sun Jul 02 1995 00:00:00,
- * // Mon Jul 10 1989 00:00:00,
- * // Wed Feb 11 1987 00:00:00
- * // ]
- */
- function compareDesc (dirtyDateLeft, dirtyDateRight) {
- var dateLeft = parse(dirtyDateLeft)
- var timeLeft = dateLeft.getTime()
- var dateRight = parse(dirtyDateRight)
- var timeRight = dateRight.getTime()
- if (timeLeft > timeRight) {
- return -1
- } else if (timeLeft < timeRight) {
- return 1
- } else {
- return 0
- }
- }
- module.exports = compareDesc
- /***/ }),
- /***/ "./node_modules/date-fns/difference_in_calendar_months/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
- /**
- * @category Month Helpers
- * @summary Get the number of calendar months between the given dates.
- *
- * @description
- * Get the number of calendar months between the given dates.
- *
- * @param {Date|String|Number} dateLeft - the later date
- * @param {Date|String|Number} dateRight - the earlier date
- * @returns {Number} the number of calendar months
- *
- * @example
- * // How many calendar months are between 31 January 2014 and 1 September 2014?
- * var result = differenceInCalendarMonths(
- * new Date(2014, 8, 1),
- * new Date(2014, 0, 31)
- * )
- * //=> 8
- */
- function differenceInCalendarMonths (dirtyDateLeft, dirtyDateRight) {
- var dateLeft = parse(dirtyDateLeft)
- var dateRight = parse(dirtyDateRight)
- var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear()
- var monthDiff = dateLeft.getMonth() - dateRight.getMonth()
- return yearDiff * 12 + monthDiff
- }
- module.exports = differenceInCalendarMonths
- /***/ }),
- /***/ "./node_modules/date-fns/difference_in_milliseconds/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
- /**
- * @category Millisecond Helpers
- * @summary Get the number of milliseconds between the given dates.
- *
- * @description
- * Get the number of milliseconds between the given dates.
- *
- * @param {Date|String|Number} dateLeft - the later date
- * @param {Date|String|Number} dateRight - the earlier date
- * @returns {Number} the number of milliseconds
- *
- * @example
- * // How many milliseconds are between
- * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?
- * var result = differenceInMilliseconds(
- * new Date(2014, 6, 2, 12, 30, 21, 700),
- * new Date(2014, 6, 2, 12, 30, 20, 600)
- * )
- * //=> 1100
- */
- function differenceInMilliseconds (dirtyDateLeft, dirtyDateRight) {
- var dateLeft = parse(dirtyDateLeft)
- var dateRight = parse(dirtyDateRight)
- return dateLeft.getTime() - dateRight.getTime()
- }
- module.exports = differenceInMilliseconds
- /***/ }),
- /***/ "./node_modules/date-fns/difference_in_months/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
- var differenceInCalendarMonths = __webpack_require__("./node_modules/date-fns/difference_in_calendar_months/index.js")
- var compareAsc = __webpack_require__("./node_modules/date-fns/compare_asc/index.js")
- /**
- * @category Month Helpers
- * @summary Get the number of full months between the given dates.
- *
- * @description
- * Get the number of full months between the given dates.
- *
- * @param {Date|String|Number} dateLeft - the later date
- * @param {Date|String|Number} dateRight - the earlier date
- * @returns {Number} the number of full months
- *
- * @example
- * // How many full months are between 31 January 2014 and 1 September 2014?
- * var result = differenceInMonths(
- * new Date(2014, 8, 1),
- * new Date(2014, 0, 31)
- * )
- * //=> 7
- */
- function differenceInMonths (dirtyDateLeft, dirtyDateRight) {
- var dateLeft = parse(dirtyDateLeft)
- var dateRight = parse(dirtyDateRight)
- var sign = compareAsc(dateLeft, dateRight)
- var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight))
- dateLeft.setMonth(dateLeft.getMonth() - sign * difference)
- // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full
- // If so, result must be decreased by 1 in absolute value
- var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign
- return sign * (difference - isLastMonthNotFull)
- }
- module.exports = differenceInMonths
- /***/ }),
- /***/ "./node_modules/date-fns/difference_in_seconds/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var differenceInMilliseconds = __webpack_require__("./node_modules/date-fns/difference_in_milliseconds/index.js")
- /**
- * @category Second Helpers
- * @summary Get the number of seconds between the given dates.
- *
- * @description
- * Get the number of seconds between the given dates.
- *
- * @param {Date|String|Number} dateLeft - the later date
- * @param {Date|String|Number} dateRight - the earlier date
- * @returns {Number} the number of seconds
- *
- * @example
- * // How many seconds are between
- * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?
- * var result = differenceInSeconds(
- * new Date(2014, 6, 2, 12, 30, 20, 0),
- * new Date(2014, 6, 2, 12, 30, 7, 999)
- * )
- * //=> 12
- */
- function differenceInSeconds (dirtyDateLeft, dirtyDateRight) {
- var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000
- return diff > 0 ? Math.floor(diff) : Math.ceil(diff)
- }
- module.exports = differenceInSeconds
- /***/ }),
- /***/ "./node_modules/date-fns/distance_in_words/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var compareDesc = __webpack_require__("./node_modules/date-fns/compare_desc/index.js")
- var parse = __webpack_require__("./node_modules/date-fns/parse/index.js")
- var differenceInSeconds = __webpack_require__("./node_modules/date-fns/difference_in_seconds/index.js")
- var differenceInMonths = __webpack_require__("./node_modules/date-fns/difference_in_months/index.js")
- var enLocale = __webpack_require__("./node_modules/date-fns/locale/en/index.js")
- var MINUTES_IN_DAY = 1440
- var MINUTES_IN_ALMOST_TWO_DAYS = 2520
- var MINUTES_IN_MONTH = 43200
- var MINUTES_IN_TWO_MONTHS = 86400
- /**
- * @category Common Helpers
- * @summary Return the distance between the given dates in words.
- *
- * @description
- * Return the distance between the given dates in words.
- *
- * | Distance between dates | Result |
- * |-------------------------------------------------------------------|---------------------|
- * | 0 ... 30 secs | less than a minute |
- * | 30 secs ... 1 min 30 secs | 1 minute |
- * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |
- * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |
- * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |
- * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |
- * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |
- * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |
- * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |
- * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |
- * | 1 yr ... 1 yr 3 months | about 1 year |
- * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |
- * | 1 yr 9 months ... 2 yrs | almost 2 years |
- * | N yrs ... N yrs 3 months | about N years |
- * | N yrs 3 months ... N yrs 9 months | over N years |
- * | N yrs 9 months ... N+1 yrs | almost N+1 years |
- *
- * With `options.includeSeconds == true`:
- * | Distance between dates | Result |
- * |------------------------|----------------------|
- * | 0 secs ... 5 secs | less than 5 seconds |
- * | 5 secs ... 10 secs | less than 10 seconds |
- * | 10 secs ... 20 secs | less than 20 seconds |
- * | 20 secs ... 40 secs | half a minute |
- * | 40 secs ... 60 secs | less than a minute |
- * | 60 secs ... 90 secs | 1 minute |
- *
- * @param {Date|String|Number} dateToCompare - the date to compare with
- * @param {Date|String|Number} date - the other date
- * @param {Object} [options] - the object with options
- * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed
- * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first
- * @param {Object} [options.locale=enLocale] - the locale object
- * @returns {String} the distance in words
- *
- * @example
- * // What is the distance between 2 July 2014 and 1 January 2015?
- * var result = distanceInWords(
- * new Date(2014, 6, 2),
- * new Date(2015, 0, 1)
- * )
- * //=> '6 months'
- *
- * @example
- * // What is the distance between 1 January 2015 00:00:15
- * // and 1 January 2015 00:00:00, including seconds?
- * var result = distanceInWords(
- * new Date(2015, 0, 1, 0, 0, 15),
- * new Date(2015, 0, 1, 0, 0, 0),
- * {includeSeconds: true}
- * )
- * //=> 'less than 20 seconds'
- *
- * @example
- * // What is the distance from 1 January 2016
- * // to 1 January 2015, with a suffix?
- * var result = distanceInWords(
- * new Date(2016, 0, 1),
- * new Date(2015, 0, 1),
- * {addSuffix: true}
- * )
- * //=> 'about 1 year ago'
- *
- * @example
- * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?
- * var eoLocale = require('date-fns/locale/eo')
- * var result = distanceInWords(
- * new Date(2016, 7, 1),
- * new Date(2015, 0, 1),
- * {locale: eoLocale}
- * )
- * //=> 'pli ol 1 jaro'
- */
- function distanceInWords (dirtyDateToCompare, dirtyDate, dirtyOptions) {
- var options = dirtyOptions || {}
- var comparison = compareDesc(dirtyDateToCompare, dirtyDate)
- var locale = options.locale
- var localize = enLocale.distanceInWords.localize
- if (locale && locale.distanceInWords && locale.distanceInWords.localize) {
- localize = locale.distanceInWords.localize
- }
- var localizeOptions = {
- addSuffix: Boolean(options.addSuffix),
- comparison: comparison
- }
- var dateLeft, dateRight
- if (comparison > 0) {
- dateLeft = parse(dirtyDateToCompare)
- dateRight = parse(dirtyDate)
- } else {
- dateLeft = parse(dirtyDate)
- dateRight = parse(dirtyDateToCompare)
- }
- var seconds = differenceInSeconds(dateRight, dateLeft)
- var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset()
- var minutes = Math.round(seconds / 60) - offset
- var months
- // 0 up to 2 mins
- if (minutes < 2) {
- if (options.includeSeconds) {
- if (seconds < 5) {
- return localize('lessThanXSeconds', 5, localizeOptions)
- } else if (seconds < 10) {
- return localize('lessThanXSeconds', 10, localizeOptions)
- } else if (seconds < 20) {
- return localize('lessThanXSeconds', 20, localizeOptions)
- } else if (seconds < 40) {
- return localize('halfAMinute', null, localizeOptions)
- } else if (seconds < 60) {
- return localize('lessThanXMinutes', 1, localizeOptions)
- } else {
- return localize('xMinutes', 1, localizeOptions)
- }
- } else {
- if (minutes === 0) {
- return localize('lessThanXMinutes', 1, localizeOptions)
- } else {
- return localize('xMinutes', minutes, localizeOptions)
- }
- }
- // 2 mins up to 0.75 hrs
- } else if (minutes < 45) {
- return localize('xMinutes', minutes, localizeOptions)
- // 0.75 hrs up to 1.5 hrs
- } else if (minutes < 90) {
- return localize('aboutXHours', 1, localizeOptions)
- // 1.5 hrs up to 24 hrs
- } else if (minutes < MINUTES_IN_DAY) {
- var hours = Math.round(minutes / 60)
- return localize('aboutXHours', hours, localizeOptions)
- // 1 day up to 1.75 days
- } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {
- return localize('xDays', 1, localizeOptions)
- // 1.75 days up to 30 days
- } else if (minutes < MINUTES_IN_MONTH) {
- var days = Math.round(minutes / MINUTES_IN_DAY)
- return localize('xDays', days, localizeOptions)
- // 1 month up to 2 months
- } else if (minutes < MINUTES_IN_TWO_MONTHS) {
- months = Math.round(minutes / MINUTES_IN_MONTH)
- return localize('aboutXMonths', months, localizeOptions)
- }
- months = differenceInMonths(dateRight, dateLeft)
- // 2 months up to 12 months
- if (months < 12) {
- var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH)
- return localize('xMonths', nearestMonth, localizeOptions)
- // 1 year up to max Date
- } else {
- var monthsSinceStartOfYear = months % 12
- var years = Math.floor(months / 12)
- // N years up to 1 years 3 months
- if (monthsSinceStartOfYear < 3) {
- return localize('aboutXYears', years, localizeOptions)
- // N years 3 months up to N years 9 months
- } else if (monthsSinceStartOfYear < 9) {
- return localize('overXYears', years, localizeOptions)
- // N years 9 months up to N year 12 months
- } else {
- return localize('almostXYears', years + 1, localizeOptions)
- }
- }
- }
- module.exports = distanceInWords
- /***/ }),
- /***/ "./node_modules/date-fns/distance_in_words_to_now/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var distanceInWords = __webpack_require__("./node_modules/date-fns/distance_in_words/index.js")
- /**
- * @category Common Helpers
- * @summary Return the distance between the given date and now in words.
- *
- * @description
- * Return the distance between the given date and now in words.
- *
- * | Distance to now | Result |
- * |-------------------------------------------------------------------|---------------------|
- * | 0 ... 30 secs | less than a minute |
- * | 30 secs ... 1 min 30 secs | 1 minute |
- * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |
- * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |
- * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |
- * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |
- * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |
- * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |
- * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |
- * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |
- * | 1 yr ... 1 yr 3 months | about 1 year |
- * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |
- * | 1 yr 9 months ... 2 yrs | almost 2 years |
- * | N yrs ... N yrs 3 months | about N years |
- * | N yrs 3 months ... N yrs 9 months | over N years |
- * | N yrs 9 months ... N+1 yrs | almost N+1 years |
- *
- * With `options.includeSeconds == true`:
- * | Distance to now | Result |
- * |---------------------|----------------------|
- * | 0 secs ... 5 secs | less than 5 seconds |
- * | 5 secs ... 10 secs | less than 10 seconds |
- * | 10 secs ... 20 secs | less than 20 seconds |
- * | 20 secs ... 40 secs | half a minute |
- * | 40 secs ... 60 secs | less than a minute |
- * | 60 secs ... 90 secs | 1 minute |
- *
- * @param {Date|String|Number} date - the given date
- * @param {Object} [options] - the object with options
- * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed
- * @param {Boolean} [options.addSuffix=false] - result specifies if the second date is earlier or later than the first
- * @param {Object} [options.locale=enLocale] - the locale object
- * @returns {String} the distance in words
- *
- * @example
- * // If today is 1 January 2015, what is the distance to 2 July 2014?
- * var result = distanceInWordsToNow(
- * new Date(2014, 6, 2)
- * )
- * //=> '6 months'
- *
- * @example
- * // If now is 1 January 2015 00:00:00,
- * // what is the distance to 1 January 2015 00:00:15, including seconds?
- * var result = distanceInWordsToNow(
- * new Date(2015, 0, 1, 0, 0, 15),
- * {includeSeconds: true}
- * )
- * //=> 'less than 20 seconds'
- *
- * @example
- * // If today is 1 January 2015,
- * // what is the distance to 1 January 2016, with a suffix?
- * var result = distanceInWordsToNow(
- * new Date(2016, 0, 1),
- * {addSuffix: true}
- * )
- * //=> 'in about 1 year'
- *
- * @example
- * // If today is 1 January 2015,
- * // what is the distance to 1 August 2016 in Esperanto?
- * var eoLocale = require('date-fns/locale/eo')
- * var result = distanceInWordsToNow(
- * new Date(2016, 7, 1),
- * {locale: eoLocale}
- * )
- * //=> 'pli ol 1 jaro'
- */
- function distanceInWordsToNow (dirtyDate, dirtyOptions) {
- return distanceInWords(Date.now(), dirtyDate, dirtyOptions)
- }
- module.exports = distanceInWordsToNow
- /***/ }),
- /***/ "./node_modules/date-fns/is_date/index.js":
- /***/ (function(module, exports) {
- /**
- * @category Common Helpers
- * @summary Is the given argument an instance of Date?
- *
- * @description
- * Is the given argument an instance of Date?
- *
- * @param {*} argument - the argument to check
- * @returns {Boolean} the given argument is an instance of Date
- *
- * @example
- * // Is 'mayonnaise' a Date?
- * var result = isDate('mayonnaise')
- * //=> false
- */
- function isDate (argument) {
- return argument instanceof Date
- }
- module.exports = isDate
- /***/ }),
- /***/ "./node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js":
- /***/ (function(module, exports) {
- var commonFormatterKeys = [
- 'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd',
- 'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG',
- 'H', 'HH', 'h', 'hh', 'm', 'mm',
- 's', 'ss', 'S', 'SS', 'SSS',
- 'Z', 'ZZ', 'X', 'x'
- ]
- function buildFormattingTokensRegExp (formatters) {
- var formatterKeys = []
- for (var key in formatters) {
- if (formatters.hasOwnProperty(key)) {
- formatterKeys.push(key)
- }
- }
- var formattingTokens = commonFormatterKeys
- .concat(formatterKeys)
- .sort()
- .reverse()
- var formattingTokensRegExp = new RegExp(
- '(\\[[^\\[]*\\])|(\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g'
- )
- return formattingTokensRegExp
- }
- module.exports = buildFormattingTokensRegExp
- /***/ }),
- /***/ "./node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js":
- /***/ (function(module, exports) {
- function buildDistanceInWordsLocale () {
- var distanceInWordsLocale = {
- lessThanXSeconds: {
- one: 'less than a second',
- other: 'less than {{count}} seconds'
- },
- xSeconds: {
- one: '1 second',
- other: '{{count}} seconds'
- },
- halfAMinute: 'half a minute',
- lessThanXMinutes: {
- one: 'less than a minute',
- other: 'less than {{count}} minutes'
- },
- xMinutes: {
- one: '1 minute',
- other: '{{count}} minutes'
- },
- aboutXHours: {
- one: 'about 1 hour',
- other: 'about {{count}} hours'
- },
- xHours: {
- one: '1 hour',
- other: '{{count}} hours'
- },
- xDays: {
- one: '1 day',
- other: '{{count}} days'
- },
- aboutXMonths: {
- one: 'about 1 month',
- other: 'about {{count}} months'
- },
- xMonths: {
- one: '1 month',
- other: '{{count}} months'
- },
- aboutXYears: {
- one: 'about 1 year',
- other: 'about {{count}} years'
- },
- xYears: {
- one: '1 year',
- other: '{{count}} years'
- },
- overXYears: {
- one: 'over 1 year',
- other: 'over {{count}} years'
- },
- almostXYears: {
- one: 'almost 1 year',
- other: 'almost {{count}} years'
- }
- }
- function localize (token, count, options) {
- options = options || {}
- var result
- if (typeof distanceInWordsLocale[token] === 'string') {
- result = distanceInWordsLocale[token]
- } else if (count === 1) {
- result = distanceInWordsLocale[token].one
- } else {
- result = distanceInWordsLocale[token].other.replace('{{count}}', count)
- }
- if (options.addSuffix) {
- if (options.comparison > 0) {
- return 'in ' + result
- } else {
- return result + ' ago'
- }
- }
- return result
- }
- return {
- localize: localize
- }
- }
- module.exports = buildDistanceInWordsLocale
- /***/ }),
- /***/ "./node_modules/date-fns/locale/en/build_format_locale/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var buildFormattingTokensRegExp = __webpack_require__("./node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js")
- function buildFormatLocale () {
- // Note: in English, the names of days of the week and months are capitalized.
- // If you are making a new locale based on this one, check if the same is true for the language you're working on.
- // Generally, formatted dates should look like they are in the middle of a sentence,
- // e.g. in Spanish language the weekdays and months should be in the lowercase.
- var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
- var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
- var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']
- var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
- var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
- var meridiemUppercase = ['AM', 'PM']
- var meridiemLowercase = ['am', 'pm']
- var meridiemFull = ['a.m.', 'p.m.']
- var formatters = {
- // Month: Jan, Feb, ..., Dec
- 'MMM': function (date) {
- return months3char[date.getMonth()]
- },
- // Month: January, February, ..., December
- 'MMMM': function (date) {
- return monthsFull[date.getMonth()]
- },
- // Day of week: Su, Mo, ..., Sa
- 'dd': function (date) {
- return weekdays2char[date.getDay()]
- },
- // Day of week: Sun, Mon, ..., Sat
- 'ddd': function (date) {
- return weekdays3char[date.getDay()]
- },
- // Day of week: Sunday, Monday, ..., Saturday
- 'dddd': function (date) {
- return weekdaysFull[date.getDay()]
- },
- // AM, PM
- 'A': function (date) {
- return (date.getHours() / 12) >= 1 ? meridiemUppercase[1] : meridiemUppercase[0]
- },
- // am, pm
- 'a': function (date) {
- return (date.getHours() / 12) >= 1 ? meridiemLowercase[1] : meridiemLowercase[0]
- },
- // a.m., p.m.
- 'aa': function (date) {
- return (date.getHours() / 12) >= 1 ? meridiemFull[1] : meridiemFull[0]
- }
- }
- // Generate ordinal version of formatters: M -> Mo, D -> Do, etc.
- var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W']
- ordinalFormatters.forEach(function (formatterToken) {
- formatters[formatterToken + 'o'] = function (date, formatters) {
- return ordinal(formatters[formatterToken](date))
- }
- })
- return {
- formatters: formatters,
- formattingTokensRegExp: buildFormattingTokensRegExp(formatters)
- }
- }
- function ordinal (number) {
- var rem100 = number % 100
- if (rem100 > 20 || rem100 < 10) {
- switch (rem100 % 10) {
- case 1:
- return number + 'st'
- case 2:
- return number + 'nd'
- case 3:
- return number + 'rd'
- }
- }
- return number + 'th'
- }
- module.exports = buildFormatLocale
- /***/ }),
- /***/ "./node_modules/date-fns/locale/en/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var buildDistanceInWordsLocale = __webpack_require__("./node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js")
- var buildFormatLocale = __webpack_require__("./node_modules/date-fns/locale/en/build_format_locale/index.js")
- /**
- * @category Locales
- * @summary English locale.
- */
- module.exports = {
- distanceInWords: buildDistanceInWordsLocale(),
- format: buildFormatLocale()
- }
- /***/ }),
- /***/ "./node_modules/date-fns/parse/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var isDate = __webpack_require__("./node_modules/date-fns/is_date/index.js")
- var MILLISECONDS_IN_HOUR = 3600000
- var MILLISECONDS_IN_MINUTE = 60000
- var DEFAULT_ADDITIONAL_DIGITS = 2
- var parseTokenDateTimeDelimeter = /[T ]/
- var parseTokenPlainTime = /:/
- // year tokens
- var parseTokenYY = /^(\d{2})$/
- var parseTokensYYY = [
- /^([+-]\d{2})$/, // 0 additional digits
- /^([+-]\d{3})$/, // 1 additional digit
- /^([+-]\d{4})$/ // 2 additional digits
- ]
- var parseTokenYYYY = /^(\d{4})/
- var parseTokensYYYYY = [
- /^([+-]\d{4})/, // 0 additional digits
- /^([+-]\d{5})/, // 1 additional digit
- /^([+-]\d{6})/ // 2 additional digits
- ]
- // date tokens
- var parseTokenMM = /^-(\d{2})$/
- var parseTokenDDD = /^-?(\d{3})$/
- var parseTokenMMDD = /^-?(\d{2})-?(\d{2})$/
- var parseTokenWww = /^-?W(\d{2})$/
- var parseTokenWwwD = /^-?W(\d{2})-?(\d{1})$/
- // time tokens
- var parseTokenHH = /^(\d{2}([.,]\d*)?)$/
- var parseTokenHHMM = /^(\d{2}):?(\d{2}([.,]\d*)?)$/
- var parseTokenHHMMSS = /^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/
- // timezone tokens
- var parseTokenTimezone = /([Z+-].*)$/
- var parseTokenTimezoneZ = /^(Z)$/
- var parseTokenTimezoneHH = /^([+-])(\d{2})$/
- var parseTokenTimezoneHHMM = /^([+-])(\d{2}):?(\d{2})$/
- /**
- * @category Common Helpers
- * @summary Convert the given argument to an instance of Date.
- *
- * @description
- * Convert the given argument to an instance of Date.
- *
- * If the argument is an instance of Date, the function returns its clone.
- *
- * If the argument is a number, it is treated as a timestamp.
- *
- * If an argument is a string, the function tries to parse it.
- * Function accepts complete ISO 8601 formats as well as partial implementations.
- * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601
- *
- * If all above fails, the function passes the given argument to Date constructor.
- *
- * @param {Date|String|Number} argument - the value to convert
- * @param {Object} [options] - the object with options
- * @param {0 | 1 | 2} [options.additionalDigits=2] - the additional number of digits in the extended year format
- * @returns {Date} the parsed date in the local time zone
- *
- * @example
- * // Convert string '2014-02-11T11:30:30' to date:
- * var result = parse('2014-02-11T11:30:30')
- * //=> Tue Feb 11 2014 11:30:30
- *
- * @example
- * // Parse string '+02014101',
- * // if the additional number of digits in the extended year format is 1:
- * var result = parse('+02014101', {additionalDigits: 1})
- * //=> Fri Apr 11 2014 00:00:00
- */
- function parse (argument, dirtyOptions) {
- if (isDate(argument)) {
- // Prevent the date to lose the milliseconds when passed to new Date() in IE10
- return new Date(argument.getTime())
- } else if (typeof argument !== 'string') {
- return new Date(argument)
- }
- var options = dirtyOptions || {}
- var additionalDigits = options.additionalDigits
- if (additionalDigits == null) {
- additionalDigits = DEFAULT_ADDITIONAL_DIGITS
- } else {
- additionalDigits = Number(additionalDigits)
- }
- var dateStrings = splitDateString(argument)
- var parseYearResult = parseYear(dateStrings.date, additionalDigits)
- var year = parseYearResult.year
- var restDateString = parseYearResult.restDateString
- var date = parseDate(restDateString, year)
- if (date) {
- var timestamp = date.getTime()
- var time = 0
- var offset
- if (dateStrings.time) {
- time = parseTime(dateStrings.time)
- }
- if (dateStrings.timezone) {
- offset = parseTimezone(dateStrings.timezone)
- } else {
- // get offset accurate to hour in timezones that change offset
- offset = new Date(timestamp + time).getTimezoneOffset()
- offset = new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE).getTimezoneOffset()
- }
- return new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE)
- } else {
- return new Date(argument)
- }
- }
- function splitDateString (dateString) {
- var dateStrings = {}
- var array = dateString.split(parseTokenDateTimeDelimeter)
- var timeString
- if (parseTokenPlainTime.test(array[0])) {
- dateStrings.date = null
- timeString = array[0]
- } else {
- dateStrings.date = array[0]
- timeString = array[1]
- }
- if (timeString) {
- var token = parseTokenTimezone.exec(timeString)
- if (token) {
- dateStrings.time = timeString.replace(token[1], '')
- dateStrings.timezone = token[1]
- } else {
- dateStrings.time = timeString
- }
- }
- return dateStrings
- }
- function parseYear (dateString, additionalDigits) {
- var parseTokenYYY = parseTokensYYY[additionalDigits]
- var parseTokenYYYYY = parseTokensYYYYY[additionalDigits]
- var token
- // YYYY or ±YYYYY
- token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString)
- if (token) {
- var yearString = token[1]
- return {
- year: parseInt(yearString, 10),
- restDateString: dateString.slice(yearString.length)
- }
- }
- // YY or ±YYY
- token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString)
- if (token) {
- var centuryString = token[1]
- return {
- year: parseInt(centuryString, 10) * 100,
- restDateString: dateString.slice(centuryString.length)
- }
- }
- // Invalid ISO-formatted year
- return {
- year: null
- }
- }
- function parseDate (dateString, year) {
- // Invalid ISO-formatted year
- if (year === null) {
- return null
- }
- var token
- var date
- var month
- var week
- // YYYY
- if (dateString.length === 0) {
- date = new Date(0)
- date.setUTCFullYear(year)
- return date
- }
- // YYYY-MM
- token = parseTokenMM.exec(dateString)
- if (token) {
- date = new Date(0)
- month = parseInt(token[1], 10) - 1
- date.setUTCFullYear(year, month)
- return date
- }
- // YYYY-DDD or YYYYDDD
- token = parseTokenDDD.exec(dateString)
- if (token) {
- date = new Date(0)
- var dayOfYear = parseInt(token[1], 10)
- date.setUTCFullYear(year, 0, dayOfYear)
- return date
- }
- // YYYY-MM-DD or YYYYMMDD
- token = parseTokenMMDD.exec(dateString)
- if (token) {
- date = new Date(0)
- month = parseInt(token[1], 10) - 1
- var day = parseInt(token[2], 10)
- date.setUTCFullYear(year, month, day)
- return date
- }
- // YYYY-Www or YYYYWww
- token = parseTokenWww.exec(dateString)
- if (token) {
- week = parseInt(token[1], 10) - 1
- return dayOfISOYear(year, week)
- }
- // YYYY-Www-D or YYYYWwwD
- token = parseTokenWwwD.exec(dateString)
- if (token) {
- week = parseInt(token[1], 10) - 1
- var dayOfWeek = parseInt(token[2], 10) - 1
- return dayOfISOYear(year, week, dayOfWeek)
- }
- // Invalid ISO-formatted date
- return null
- }
- function parseTime (timeString) {
- var token
- var hours
- var minutes
- // hh
- token = parseTokenHH.exec(timeString)
- if (token) {
- hours = parseFloat(token[1].replace(',', '.'))
- return (hours % 24) * MILLISECONDS_IN_HOUR
- }
- // hh:mm or hhmm
- token = parseTokenHHMM.exec(timeString)
- if (token) {
- hours = parseInt(token[1], 10)
- minutes = parseFloat(token[2].replace(',', '.'))
- return (hours % 24) * MILLISECONDS_IN_HOUR +
- minutes * MILLISECONDS_IN_MINUTE
- }
- // hh:mm:ss or hhmmss
- token = parseTokenHHMMSS.exec(timeString)
- if (token) {
- hours = parseInt(token[1], 10)
- minutes = parseInt(token[2], 10)
- var seconds = parseFloat(token[3].replace(',', '.'))
- return (hours % 24) * MILLISECONDS_IN_HOUR +
- minutes * MILLISECONDS_IN_MINUTE +
- seconds * 1000
- }
- // Invalid ISO-formatted time
- return null
- }
- function parseTimezone (timezoneString) {
- var token
- var absoluteOffset
- // Z
- token = parseTokenTimezoneZ.exec(timezoneString)
- if (token) {
- return 0
- }
- // ±hh
- token = parseTokenTimezoneHH.exec(timezoneString)
- if (token) {
- absoluteOffset = parseInt(token[2], 10) * 60
- return (token[1] === '+') ? -absoluteOffset : absoluteOffset
- }
- // ±hh:mm or ±hhmm
- token = parseTokenTimezoneHHMM.exec(timezoneString)
- if (token) {
- absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10)
- return (token[1] === '+') ? -absoluteOffset : absoluteOffset
- }
- return 0
- }
- function dayOfISOYear (isoYear, week, day) {
- week = week || 0
- day = day || 0
- var date = new Date(0)
- date.setUTCFullYear(isoYear, 0, 4)
- var fourthOfJanuaryDay = date.getUTCDay() || 7
- var diff = week * 7 + day + 1 - fourthOfJanuaryDay
- date.setUTCDate(date.getUTCDate() + diff)
- return date
- }
- module.exports = parse
- /***/ }),
- /***/ "./node_modules/desandro-matches-selector/matches-selector.js":
- /***/ (function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
- * matchesSelector v2.0.2
- * matchesSelector( element, '.selector' )
- * MIT license
- */
- /*jshint browser: true, strict: true, undef: true, unused: true */
- ( function( window, factory ) {
- /*global define: false, module: false */
- 'use strict';
- // universal module definition
- if ( true ) {
- // AMD
- !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
- __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
- (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
- __WEBPACK_AMD_DEFINE_FACTORY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if ( typeof module == 'object' && module.exports ) {
- // CommonJS
- module.exports = factory();
- } else {
- // browser global
- window.matchesSelector = factory();
- }
- }( window, function factory() {
- 'use strict';
- var matchesMethod = ( function() {
- var ElemProto = window.Element.prototype;
- // check for the standard method name first
- if ( ElemProto.matches ) {
- return 'matches';
- }
- // check un-prefixed
- if ( ElemProto.matchesSelector ) {
- return 'matchesSelector';
- }
- // check vendor prefixes
- var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];
- for ( var i=0; i < prefixes.length; i++ ) {
- var prefix = prefixes[i];
- var method = prefix + 'MatchesSelector';
- if ( ElemProto[ method ] ) {
- return method;
- }
- }
- })();
- return function matchesSelector( elem, selector ) {
- return elem[ matchesMethod ]( selector );
- };
- }));
- /***/ }),
- /***/ "./node_modules/ev-emitter/ev-emitter.js":
- /***/ (function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
- * EvEmitter v1.1.0
- * Lil' event emitter
- * MIT License
- */
- /* jshint unused: true, undef: true, strict: true */
- ( function( global, factory ) {
- // universal module definition
- /* jshint strict: false */ /* globals define, module, window */
- if ( true ) {
- // AMD - RequireJS
- !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
- __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
- (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
- __WEBPACK_AMD_DEFINE_FACTORY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if ( typeof module == 'object' && module.exports ) {
- // CommonJS - Browserify, Webpack
- module.exports = factory();
- } else {
- // Browser globals
- global.EvEmitter = factory();
- }
- }( typeof window != 'undefined' ? window : this, function() {
- "use strict";
- function EvEmitter() {}
- var proto = EvEmitter.prototype;
- proto.on = function( eventName, listener ) {
- if ( !eventName || !listener ) {
- return;
- }
- // set events hash
- var events = this._events = this._events || {};
- // set listeners array
- var listeners = events[ eventName ] = events[ eventName ] || [];
- // only add once
- if ( listeners.indexOf( listener ) == -1 ) {
- listeners.push( listener );
- }
- return this;
- };
- proto.once = function( eventName, listener ) {
- if ( !eventName || !listener ) {
- return;
- }
- // add event
- this.on( eventName, listener );
- // set once flag
- // set onceEvents hash
- var onceEvents = this._onceEvents = this._onceEvents || {};
- // set onceListeners object
- var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
- // set flag
- onceListeners[ listener ] = true;
- return this;
- };
- proto.off = function( eventName, listener ) {
- var listeners = this._events && this._events[ eventName ];
- if ( !listeners || !listeners.length ) {
- return;
- }
- var index = listeners.indexOf( listener );
- if ( index != -1 ) {
- listeners.splice( index, 1 );
- }
- return this;
- };
- proto.emitEvent = function( eventName, args ) {
- var listeners = this._events && this._events[ eventName ];
- if ( !listeners || !listeners.length ) {
- return;
- }
- // copy over to avoid interference if .off() in listener
- listeners = listeners.slice(0);
- args = args || [];
- // once stuff
- var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
- for ( var i=0; i < listeners.length; i++ ) {
- var listener = listeners[i]
- var isOnce = onceListeners && onceListeners[ listener ];
- if ( isOnce ) {
- // remove listener
- // remove before trigger to prevent recursion
- this.off( eventName, listener );
- // unset once flag
- delete onceListeners[ listener ];
- }
- // trigger listener
- listener.apply( this, args );
- }
- return this;
- };
- proto.allOff = function() {
- delete this._events;
- delete this._onceEvents;
- };
- return EvEmitter;
- }));
- /***/ }),
- /***/ "./node_modules/filesize/lib/filesize.js":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global) {
- /**
- * filesize
- *
- * @copyright 2018 Jason Mulligan <jason.mulligan@avoidwork.com>
- * @license BSD-3-Clause
- * @version 3.6.1
- */
- (function (global) {
- var b = /^(b|B)$/,
- symbol = {
- iec: {
- bits: ["b", "Kib", "Mib", "Gib", "Tib", "Pib", "Eib", "Zib", "Yib"],
- bytes: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"]
- },
- jedec: {
- bits: ["b", "Kb", "Mb", "Gb", "Tb", "Pb", "Eb", "Zb", "Yb"],
- bytes: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
- }
- },
- fullform = {
- iec: ["", "kibi", "mebi", "gibi", "tebi", "pebi", "exbi", "zebi", "yobi"],
- jedec: ["", "kilo", "mega", "giga", "tera", "peta", "exa", "zetta", "yotta"]
- };
- /**
- * filesize
- *
- * @method filesize
- * @param {Mixed} arg String, Int or Float to transform
- * @param {Object} descriptor [Optional] Flags
- * @return {String} Readable file size String
- */
- function filesize(arg) {
- var descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- var result = [],
- val = 0,
- e = void 0,
- base = void 0,
- bits = void 0,
- ceil = void 0,
- full = void 0,
- fullforms = void 0,
- neg = void 0,
- num = void 0,
- output = void 0,
- round = void 0,
- unix = void 0,
- separator = void 0,
- spacer = void 0,
- standard = void 0,
- symbols = void 0;
- if (isNaN(arg)) {
- throw new Error("Invalid arguments");
- }
- bits = descriptor.bits === true;
- unix = descriptor.unix === true;
- base = descriptor.base || 2;
- round = descriptor.round !== void 0 ? descriptor.round : unix ? 1 : 2;
- separator = descriptor.separator !== void 0 ? descriptor.separator || "" : "";
- spacer = descriptor.spacer !== void 0 ? descriptor.spacer : unix ? "" : " ";
- symbols = descriptor.symbols || descriptor.suffixes || {};
- standard = base === 2 ? descriptor.standard || "jedec" : "jedec";
- output = descriptor.output || "string";
- full = descriptor.fullform === true;
- fullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : [];
- e = descriptor.exponent !== void 0 ? descriptor.exponent : -1;
- num = Number(arg);
- neg = num < 0;
- ceil = base > 2 ? 1000 : 1024;
- // Flipping a negative number to determine the size
- if (neg) {
- num = -num;
- }
- // Determining the exponent
- if (e === -1 || isNaN(e)) {
- e = Math.floor(Math.log(num) / Math.log(ceil));
- if (e < 0) {
- e = 0;
- }
- }
- // Exceeding supported length, time to reduce & multiply
- if (e > 8) {
- e = 8;
- }
- // Zero is now a special case because bytes divide by 1
- if (num === 0) {
- result[0] = 0;
- result[1] = unix ? "" : symbol[standard][bits ? "bits" : "bytes"][e];
- } else {
- val = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));
- if (bits) {
- val = val * 8;
- if (val >= ceil && e < 8) {
- val = val / ceil;
- e++;
- }
- }
- result[0] = Number(val.toFixed(e > 0 ? round : 0));
- result[1] = base === 10 && e === 1 ? bits ? "kb" : "kB" : symbol[standard][bits ? "bits" : "bytes"][e];
- if (unix) {
- result[1] = standard === "jedec" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, "") : result[1];
- if (b.test(result[1])) {
- result[0] = Math.floor(result[0]);
- result[1] = "";
- }
- }
- }
- // Decorating a 'diff'
- if (neg) {
- result[0] = -result[0];
- }
- // Applying custom symbol
- result[1] = symbols[result[1]] || result[1];
- // Returning Array, Object, or String (default)
- if (output === "array") {
- return result;
- }
- if (output === "exponent") {
- return e;
- }
- if (output === "object") {
- return { value: result[0], suffix: result[1], symbol: result[1] };
- }
- if (full) {
- result[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? "bit" : "byte") + (result[0] === 1 ? "" : "s");
- }
- if (separator.length > 0) {
- result[0] = result[0].toString().replace(".", separator);
- }
- return result.join(spacer);
- }
- // Partial application for functional programming
- filesize.partial = function (opt) {
- return function (arg) {
- return filesize(arg, opt);
- };
- };
- // CommonJS, AMD, script tag
- if (true) {
- module.exports = filesize;
- } else if (typeof define === "function" && define.amd) {
- define(function () {
- return filesize;
- });
- } else {
- global.filesize = filesize;
- }
- })(typeof window !== "undefined" ? window : global);
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js")))
- /***/ }),
- /***/ "./node_modules/fizzy-ui-utils/utils.js":
- /***/ (function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
- * Fizzy UI utils v2.0.7
- * MIT license
- */
- /*jshint browser: true, undef: true, unused: true, strict: true */
- ( function( window, factory ) {
- // universal module definition
- /*jshint strict: false */ /*globals define, module, require */
- if ( true ) {
- // AMD
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
- __webpack_require__("./node_modules/desandro-matches-selector/matches-selector.js")
- ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( matchesSelector ) {
- return factory( window, matchesSelector );
- }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if ( typeof module == 'object' && module.exports ) {
- // CommonJS
- module.exports = factory(
- window,
- require('desandro-matches-selector')
- );
- } else {
- // browser global
- window.fizzyUIUtils = factory(
- window,
- window.matchesSelector
- );
- }
- }( window, function factory( window, matchesSelector ) {
- 'use strict';
- var utils = {};
- // ----- extend ----- //
- // extends objects
- utils.extend = function( a, b ) {
- for ( var prop in b ) {
- a[ prop ] = b[ prop ];
- }
- return a;
- };
- // ----- modulo ----- //
- utils.modulo = function( num, div ) {
- return ( ( num % div ) + div ) % div;
- };
- // ----- makeArray ----- //
- var arraySlice = Array.prototype.slice;
- // turn element or nodeList into an array
- utils.makeArray = function( obj ) {
- if ( Array.isArray( obj ) ) {
- // use object if already an array
- return obj;
- }
- // return empty array if undefined or null. #6
- if ( obj === null || obj === undefined ) {
- return [];
- }
- var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
- if ( isArrayLike ) {
- // convert nodeList to array
- return arraySlice.call( obj );
- }
- // array of single index
- return [ obj ];
- };
- // ----- removeFrom ----- //
- utils.removeFrom = function( ary, obj ) {
- var index = ary.indexOf( obj );
- if ( index != -1 ) {
- ary.splice( index, 1 );
- }
- };
- // ----- getParent ----- //
- utils.getParent = function( elem, selector ) {
- while ( elem.parentNode && elem != document.body ) {
- elem = elem.parentNode;
- if ( matchesSelector( elem, selector ) ) {
- return elem;
- }
- }
- };
- // ----- getQueryElement ----- //
- // use element as selector string
- utils.getQueryElement = function( elem ) {
- if ( typeof elem == 'string' ) {
- return document.querySelector( elem );
- }
- return elem;
- };
- // ----- handleEvent ----- //
- // enable .ontype to trigger from .addEventListener( elem, 'type' )
- utils.handleEvent = function( event ) {
- var method = 'on' + event.type;
- if ( this[ method ] ) {
- this[ method ]( event );
- }
- };
- // ----- filterFindElements ----- //
- utils.filterFindElements = function( elems, selector ) {
- // make array of elems
- elems = utils.makeArray( elems );
- var ffElems = [];
- elems.forEach( function( elem ) {
- // check that elem is an actual element
- if ( !( elem instanceof HTMLElement ) ) {
- return;
- }
- // add elem if no selector
- if ( !selector ) {
- ffElems.push( elem );
- return;
- }
- // filter & find items if we have a selector
- // filter
- if ( matchesSelector( elem, selector ) ) {
- ffElems.push( elem );
- }
- // find children
- var childElems = elem.querySelectorAll( selector );
- // concat childElems to filterFound array
- for ( var i=0; i < childElems.length; i++ ) {
- ffElems.push( childElems[i] );
- }
- });
- return ffElems;
- };
- // ----- debounceMethod ----- //
- utils.debounceMethod = function( _class, methodName, threshold ) {
- threshold = threshold || 100;
- // original method
- var method = _class.prototype[ methodName ];
- var timeoutName = methodName + 'Timeout';
- _class.prototype[ methodName ] = function() {
- var timeout = this[ timeoutName ];
- clearTimeout( timeout );
- var args = arguments;
- var _this = this;
- this[ timeoutName ] = setTimeout( function() {
- method.apply( _this, args );
- delete _this[ timeoutName ];
- }, threshold );
- };
- };
- // ----- docReady ----- //
- utils.docReady = function( callback ) {
- var readyState = document.readyState;
- if ( readyState == 'complete' || readyState == 'interactive' ) {
- // do async to allow for other scripts to run. metafizzy/flickity#441
- setTimeout( callback );
- } else {
- document.addEventListener( 'DOMContentLoaded', callback );
- }
- };
- // ----- htmlInit ----- //
- // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/
- utils.toDashed = function( str ) {
- return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {
- return $1 + '-' + $2;
- }).toLowerCase();
- };
- var console = window.console;
- /**
- * allow user to initialize classes via [data-namespace] or .js-namespace class
- * htmlInit( Widget, 'widgetName' )
- * options are parsed from data-namespace-options
- */
- utils.htmlInit = function( WidgetClass, namespace ) {
- utils.docReady( function() {
- var dashedNamespace = utils.toDashed( namespace );
- var dataAttr = 'data-' + dashedNamespace;
- var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );
- var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );
- var elems = utils.makeArray( dataAttrElems )
- .concat( utils.makeArray( jsDashElems ) );
- var dataOptionsAttr = dataAttr + '-options';
- var jQuery = window.jQuery;
- elems.forEach( function( elem ) {
- var attr = elem.getAttribute( dataAttr ) ||
- elem.getAttribute( dataOptionsAttr );
- var options;
- try {
- options = attr && JSON.parse( attr );
- } catch ( error ) {
- // log error, do not initialize
- if ( console ) {
- console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +
- ': ' + error );
- }
- return;
- }
- // initialize
- var instance = new WidgetClass( elem, options );
- // make available via $().data('namespace')
- if ( jQuery ) {
- jQuery.data( elem, namespace, instance );
- }
- });
- });
- };
- // ----- ----- //
- return utils;
- }));
- /***/ }),
- /***/ "./node_modules/infinite-scroll/js/button.js":
- /***/ (function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// button
- ( function( window, factory ) {
- // universal module definition
- /* globals define, module, require */
- if ( true ) {
- // AMD
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
- __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
- __webpack_require__("./node_modules/fizzy-ui-utils/utils.js"),
- ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( InfiniteScroll, utils ) {
- return factory( window, InfiniteScroll, utils );
- }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if ( typeof module == 'object' && module.exports ) {
- // CommonJS
- module.exports = factory(
- window,
- require('./core'),
- require('fizzy-ui-utils')
- );
- } else {
- // browser global
- factory(
- window,
- window.InfiniteScroll,
- window.fizzyUIUtils
- );
- }
- }( window, function factory( window, InfiniteScroll, utils ) {
- // InfiniteScroll.defaults.button = null;
- InfiniteScroll.create.button = function() {
- var buttonElem = utils.getQueryElement( this.options.button );
- if ( buttonElem ) {
- this.button = new InfiniteScrollButton( buttonElem, this );
- return;
- }
- };
- InfiniteScroll.destroy.button = function() {
- if ( this.button ) {
- this.button.destroy();
- }
- };
- // -------------------------- InfiniteScrollButton -------------------------- //
- function InfiniteScrollButton( element, infScroll ) {
- this.element = element;
- this.infScroll = infScroll;
- // events
- this.clickHandler = this.onClick.bind( this );
- this.element.addEventListener( 'click', this.clickHandler );
- infScroll.on( 'request', this.disable.bind( this ) );
- infScroll.on( 'load', this.enable.bind( this ) );
- infScroll.on( 'error', this.hide.bind( this ) );
- infScroll.on( 'last', this.hide.bind( this ) );
- }
- InfiniteScrollButton.prototype.onClick = function( event ) {
- event.preventDefault();
- this.infScroll.loadNextPage();
- };
- InfiniteScrollButton.prototype.enable = function() {
- this.element.removeAttribute('disabled');
- };
- InfiniteScrollButton.prototype.disable = function() {
- this.element.disabled = 'disabled';
- };
- InfiniteScrollButton.prototype.hide = function() {
- this.element.style.display = 'none';
- };
- InfiniteScrollButton.prototype.destroy = function() {
- this.element.removeEventListener( 'click', this.clickHandler );
- };
- // -------------------------- -------------------------- //
- InfiniteScroll.Button = InfiniteScrollButton;
- return InfiniteScroll;
- }));
- /***/ }),
- /***/ "./node_modules/infinite-scroll/js/core.js":
- /***/ (function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// core
- ( function( window, factory ) {
- // universal module definition
- /* globals define, module, require */
- if ( true ) {
- // AMD
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
- __webpack_require__("./node_modules/ev-emitter/ev-emitter.js"),
- __webpack_require__("./node_modules/fizzy-ui-utils/utils.js"),
- ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( EvEmitter, utils) {
- return factory( window, EvEmitter, utils );
- }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if ( typeof module == 'object' && module.exports ) {
- // CommonJS
- module.exports = factory(
- window,
- require('ev-emitter'),
- require('fizzy-ui-utils')
- );
- } else {
- // browser global
- window.InfiniteScroll = factory(
- window,
- window.EvEmitter,
- window.fizzyUIUtils
- );
- }
- }( window, function factory( window, EvEmitter, utils ) {
- var jQuery = window.jQuery;
- // internal store of all InfiniteScroll intances
- var instances = {};
- function InfiniteScroll( element, options ) {
- var queryElem = utils.getQueryElement( element );
- if ( !queryElem ) {
- console.error( 'Bad element for InfiniteScroll: ' + ( queryElem || element ) );
- return;
- }
- element = queryElem;
- // do not initialize twice on same element
- if ( element.infiniteScrollGUID ) {
- var instance = instances[ element.infiniteScrollGUID ];
- instance.option( options );
- return instance;
- }
- this.element = element;
- // options
- this.options = utils.extend( {}, InfiniteScroll.defaults );
- this.option( options );
- // add jQuery
- if ( jQuery ) {
- this.$element = jQuery( this.element );
- }
- this.create();
- }
- // defaults
- InfiniteScroll.defaults = {
- // path: null,
- // hideNav: null,
- // debug: false,
- };
- // create & destroy methods
- InfiniteScroll.create = {};
- InfiniteScroll.destroy = {};
- var proto = InfiniteScroll.prototype;
- // inherit EvEmitter
- utils.extend( proto, EvEmitter.prototype );
- // -------------------------- -------------------------- //
- // globally unique identifiers
- var GUID = 0;
- proto.create = function() {
- // create core
- // add id for InfiniteScroll.data
- var id = this.guid = ++GUID;
- this.element.infiniteScrollGUID = id; // expando
- instances[ id ] = this; // associate via id
- // properties
- this.pageIndex = 1; // default to first page
- this.loadCount = 0;
- this.updateGetPath();
- // bail if getPath not set, or returns falsey #776
- var hasPath = this.getPath && this.getPath();
- if ( !hasPath ) {
- console.error('Disabling InfiniteScroll');
- return;
- }
- this.updateGetAbsolutePath();
- this.log( 'initialized', [ this.element.className ] );
- this.callOnInit();
- // create features
- for ( var method in InfiniteScroll.create ) {
- InfiniteScroll.create[ method ].call( this );
- }
- };
- proto.option = function( opts ) {
- utils.extend( this.options, opts );
- };
- // call onInit option, used for binding events on init
- proto.callOnInit = function() {
- var onInit = this.options.onInit;
- if ( onInit ) {
- onInit.call( this, this );
- }
- };
- // ----- events ----- //
- proto.dispatchEvent = function( type, event, args ) {
- this.log( type, args );
- var emitArgs = event ? [ event ].concat( args ) : args;
- this.emitEvent( type, emitArgs );
- // trigger jQuery event
- if ( !jQuery || !this.$element ) {
- return;
- }
- // namespace jQuery event
- type += '.infiniteScroll';
- var $event = type;
- if ( event ) {
- // create jQuery event
- var jQEvent = jQuery.Event( event );
- jQEvent.type = type;
- $event = jQEvent;
- }
- this.$element.trigger( $event, args );
- };
- var loggers = {
- initialized: function( className ) {
- return 'on ' + className;
- },
- request: function( path ) {
- return 'URL: ' + path;
- },
- load: function( response, path ) {
- return ( response.title || '' ) + '. URL: ' + path;
- },
- error: function( error, path ) {
- return error + '. URL: ' + path;
- },
- append: function( response, path, items ) {
- return items.length + ' items. URL: ' + path;
- },
- last: function( response, path ) {
- return 'URL: ' + path;
- },
- history: function( title, path ) {
- return 'URL: ' + path;
- },
- pageIndex: function( index, origin ) {
- return 'current page determined to be: ' + index + ' from ' + origin;
- },
- };
- // log events
- proto.log = function( type, args ) {
- if ( !this.options.debug ) {
- return;
- }
- var message = '[InfiniteScroll] ' + type;
- var logger = loggers[ type ];
- if ( logger ) {
- message += '. ' + logger.apply( this, args );
- }
- console.log( message );
- };
- // -------------------------- methods used amoung features -------------------------- //
- proto.updateMeasurements = function() {
- this.windowHeight = window.innerHeight;
- var rect = this.element.getBoundingClientRect();
- this.top = rect.top + window.pageYOffset;
- };
- proto.updateScroller = function() {
- var elementScroll = this.options.elementScroll;
- if ( !elementScroll ) {
- // default, use window
- this.scroller = window;
- return;
- }
- // if true, set to element, otherwise use option
- this.scroller = elementScroll === true ? this.element :
- utils.getQueryElement( elementScroll );
- if ( !this.scroller ) {
- throw 'Unable to find elementScroll: ' + elementScroll;
- }
- };
- // -------------------------- page path -------------------------- //
- proto.updateGetPath = function() {
- var optPath = this.options.path;
- if ( !optPath ) {
- console.error( 'InfiniteScroll path option required. Set as: ' + optPath );
- return;
- }
- // function
- var type = typeof optPath;
- if ( type == 'function' ) {
- this.getPath = optPath;
- return;
- }
- // template string: '/pages/{{#}}.html'
- var templateMatch = type == 'string' && optPath.match('{{#}}');
- if ( templateMatch ) {
- this.updateGetPathTemplate( optPath );
- return;
- }
- // selector: '.next-page-selector'
- this.updateGetPathSelector( optPath );
- };
- proto.updateGetPathTemplate = function( optPath ) {
- // set getPath with template string
- this.getPath = function() {
- var nextIndex = this.pageIndex + 1;
- return optPath.replace( '{{#}}', nextIndex );
- }.bind( this );
- // get pageIndex from location
- // convert path option into regex to look for pattern in location
- var regexString = optPath.replace( '{{#}}', '(\\d\\d?\\d?)' );
- var templateRe = new RegExp( regexString );
- var match = location.href.match( templateRe );
- if ( match ) {
- this.pageIndex = parseInt( match[1], 10 );
- this.log( 'pageIndex', [ this.pageIndex, 'template string' ] );
- }
- };
- var pathRegexes = [
- // WordPress & Tumblr - example.com/page/2
- // Jekyll - example.com/page2
- /^(.*?\/?page\/?)(\d\d?\d?)(.*?$)/,
- // Drupal - example.com/?page=1
- /^(.*?\/?\?page=)(\d\d?\d?)(.*?$)/,
- // catch all, last occurence of a number
- /(.*?)(\d\d?\d?)(?!.*\d)(.*?$)/,
- ];
- proto.updateGetPathSelector = function( optPath ) {
- // parse href of link: '.next-page-link'
- var hrefElem = document.querySelector( optPath );
- if ( !hrefElem ) {
- console.error( 'Bad InfiniteScroll path option. Next link not found: ' +
- optPath );
- return;
- }
- var href = hrefElem.getAttribute('href');
- // try matching href to pathRegexes patterns
- var pathParts, regex;
- for ( var i=0; href && i < pathRegexes.length; i++ ) {
- regex = pathRegexes[i];
- var match = href.match( regex );
- if ( match ) {
- pathParts = match.slice(1); // remove first part
- break;
- }
- }
- if ( !pathParts ) {
- console.error( 'InfiniteScroll unable to parse next link href: ' + href );
- return;
- }
- this.isPathSelector = true; // flag for checkLastPage()
- this.getPath = function() {
- var nextIndex = this.pageIndex + 1;
- return pathParts[0] + nextIndex + pathParts[2];
- }.bind( this );
- // get pageIndex from href
- this.pageIndex = parseInt( pathParts[1], 10 ) - 1;
- this.log( 'pageIndex', [ this.pageIndex, 'next link' ] );
- };
- proto.updateGetAbsolutePath = function() {
- var path = this.getPath();
- // path doesn't start with http or /
- var isAbsolute = path.match( /^http/ ) || path.match( /^\// );
- if ( isAbsolute ) {
- this.getAbsolutePath = this.getPath;
- return;
- }
- var pathname = location.pathname;
- // /foo/bar/index.html => /foo/bar
- var directory = pathname.substring( 0, pathname.lastIndexOf('/') );
- this.getAbsolutePath = function() {
- return directory + '/' + this.getPath();
- };
- };
- // -------------------------- nav -------------------------- //
- // hide navigation
- InfiniteScroll.create.hideNav = function() {
- var nav = utils.getQueryElement( this.options.hideNav );
- if ( !nav ) {
- return;
- }
- nav.style.display = 'none';
- this.nav = nav;
- };
- InfiniteScroll.destroy.hideNav = function() {
- if ( this.nav ) {
- this.nav.style.display = '';
- }
- };
- // -------------------------- destroy -------------------------- //
- proto.destroy = function() {
- this.allOff(); // remove all event listeners
- // call destroy methods
- for ( var method in InfiniteScroll.destroy ) {
- InfiniteScroll.destroy[ method ].call( this );
- }
- delete this.element.infiniteScrollGUID;
- delete instances[ this.guid ];
- // remove jQuery data. #807
- if ( jQuery && this.$element ) {
- jQuery.removeData( this.element, 'infiniteScroll' );
- }
- };
- // -------------------------- utilities -------------------------- //
- // https://remysharp.com/2010/07/21/throttling-function-calls
- InfiniteScroll.throttle = function( fn, threshold ) {
- threshold = threshold || 200;
- var last, timeout;
- return function() {
- var now = +new Date();
- var args = arguments;
- var trigger = function() {
- last = now;
- fn.apply( this, args );
- }.bind( this );
- if ( last && now < last + threshold ) {
- // hold on to it
- clearTimeout( timeout );
- timeout = setTimeout( trigger, threshold );
- } else {
- trigger();
- }
- };
- };
- InfiniteScroll.data = function( elem ) {
- elem = utils.getQueryElement( elem );
- var id = elem && elem.infiniteScrollGUID;
- return id && instances[ id ];
- };
- // set internal jQuery, for Webpack + jQuery v3
- InfiniteScroll.setJQuery = function( $ ) {
- jQuery = $;
- };
- // -------------------------- setup -------------------------- //
- utils.htmlInit( InfiniteScroll, 'infinite-scroll' );
- // add noop _init method for jQuery Bridget. #768
- proto._init = function() {};
- if ( jQuery && jQuery.bridget ) {
- jQuery.bridget( 'infiniteScroll', InfiniteScroll );
- }
- // -------------------------- -------------------------- //
- return InfiniteScroll;
- }));
- /***/ }),
- /***/ "./node_modules/infinite-scroll/js/history.js":
- /***/ (function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// history
- ( function( window, factory ) {
- // universal module definition
- /* globals define, module, require */
- if ( true ) {
- // AMD
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
- __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
- __webpack_require__("./node_modules/fizzy-ui-utils/utils.js"),
- ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( InfiniteScroll, utils ) {
- return factory( window, InfiniteScroll, utils );
- }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if ( typeof module == 'object' && module.exports ) {
- // CommonJS
- module.exports = factory(
- window,
- require('./core'),
- require('fizzy-ui-utils')
- );
- } else {
- // browser global
- factory(
- window,
- window.InfiniteScroll,
- window.fizzyUIUtils
- );
- }
- }( window, function factory( window, InfiniteScroll, utils ) {
- var proto = InfiniteScroll.prototype;
- InfiniteScroll.defaults.history = 'replace';
- // InfiniteScroll.defaults.historyTitle = false;
- var link = document.createElement('a');
- // ----- create/destroy ----- //
- InfiniteScroll.create.history = function() {
- if ( !this.options.history ) {
- return;
- }
- // check for same origin
- link.href = this.getAbsolutePath();
- // MS Edge does not have origin on link https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12236493/
- var linkOrigin = link.origin || link.protocol + '//' + link.host;
- var isSameOrigin = linkOrigin == location.origin;
- if ( !isSameOrigin ) {
- console.error( '[InfiniteScroll] cannot set history with different origin: ' +
- link.origin + ' on ' + location.origin +
- ' . History behavior disabled.' );
- return;
- }
- // two ways to handle changing history
- if ( this.options.append ) {
- this.createHistoryAppend();
- } else {
- this.createHistoryPageLoad();
- }
- };
- proto.createHistoryAppend = function() {
- this.updateMeasurements();
- this.updateScroller();
- // array of scroll positions of appended pages
- this.scrollPages = [
- {
- // first page
- top: 0,
- path: location.href,
- title: document.title,
- }
- ];
- this.scrollPageIndex = 0;
- // events
- this.scrollHistoryHandler = this.onScrollHistory.bind( this );
- this.unloadHandler = this.onUnload.bind( this );
- this.scroller.addEventListener( 'scroll', this.scrollHistoryHandler );
- this.on( 'append', this.onAppendHistory );
- this.bindHistoryAppendEvents( true );
- };
- proto.bindHistoryAppendEvents = function( isBind ) {
- var addRemove = isBind ? 'addEventListener' : 'removeEventListener';
- this.scroller[ addRemove ]( 'scroll', this.scrollHistoryHandler );
- window[ addRemove ]( 'unload', this.unloadHandler );
- };
- proto.createHistoryPageLoad = function() {
- this.on( 'load', this.onPageLoadHistory );
- };
- InfiniteScroll.destroy.history =
- proto.destroyHistory = function() {
- var isHistoryAppend = this.options.history && this.options.append;
- if ( isHistoryAppend ) {
- this.bindHistoryAppendEvents( false );
- }
- };
- // ----- append history ----- //
- proto.onAppendHistory = function( response, path, items ) {
- // do not proceed if no items. #779
- if ( !items || !items.length ) {
- return;
- }
- var firstItem = items[0];
- var elemScrollY = this.getElementScrollY( firstItem );
- // resolve path
- link.href = path;
- // add page data to hash
- this.scrollPages.push({
- top: elemScrollY,
- path: link.href,
- title: response.title,
- });
- };
- proto.getElementScrollY = function( elem ) {
- if ( this.options.elementScroll ) {
- return this.getElementElementScrollY( elem );
- } else {
- return this.getElementWindowScrollY( elem );
- }
- };
- proto.getElementWindowScrollY = function( elem ) {
- var rect = elem.getBoundingClientRect();
- return rect.top + window.pageYOffset;
- };
- // wow, stupid name
- proto.getElementElementScrollY = function( elem ) {
- return elem.offsetTop - this.top;
- };
- proto.onScrollHistory = function() {
- // cycle through positions, find biggest without going over
- var scrollViewY = this.getScrollViewY();
- var pageIndex, page;
- for ( var i=0; i < this.scrollPages.length; i++ ) {
- var scrollPage = this.scrollPages[i];
- if ( scrollPage.top >= scrollViewY ) {
- break;
- }
- pageIndex = i;
- page = scrollPage;
- }
- // set history if changed
- if ( pageIndex != this.scrollPageIndex ) {
- this.scrollPageIndex = pageIndex;
- this.setHistory( page.title, page.path );
- }
- };
- utils.debounceMethod( InfiniteScroll, 'onScrollHistory', 150 );
- proto.getScrollViewY = function() {
- if ( this.options.elementScroll ) {
- return this.scroller.scrollTop + this.scroller.clientHeight/2;
- } else {
- return window.pageYOffset + this.windowHeight/2;
- }
- };
- proto.setHistory = function( title, path ) {
- var optHistory = this.options.history;
- var historyMethod = optHistory && history[ optHistory + 'State' ];
- if ( !historyMethod ) {
- return;
- }
- history[ optHistory + 'State' ]( null, title, path );
- if ( this.options.historyTitle ) {
- document.title = title;
- }
- this.dispatchEvent( 'history', null, [ title, path ] );
- };
- // scroll to top to prevent initial scroll-reset after page refresh
- // https://stackoverflow.com/a/18633915/182183
- proto.onUnload = function() {
- var pageIndex = this.scrollPageIndex;
- if ( pageIndex === 0 ) {
- return;
- }
- // calculate where scroll position would be on refresh
- var scrollPage = this.scrollPages[ pageIndex ];
- var scrollY = window.pageYOffset - scrollPage.top + this.top;
- // disable scroll event before setting scroll #679
- this.destroyHistory();
- scrollTo( 0, scrollY );
- };
- // ----- load history ----- //
- // update URL
- proto.onPageLoadHistory = function( response, path ) {
- this.setHistory( response.title, path );
- };
- // -------------------------- -------------------------- //
- return InfiniteScroll;
- }));
- /***/ }),
- /***/ "./node_modules/infinite-scroll/js/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
- * Infinite Scroll v3.0.5
- * Automatically add next page
- *
- * Licensed GPLv3 for open source use
- * or Infinite Scroll Commercial License for commercial use
- *
- * https://infinite-scroll.com
- * Copyright 2018 Metafizzy
- */
- ( function( window, factory ) {
- // universal module definition
- /* globals define, module, require */
- if ( true ) {
- // AMD
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
- __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
- __webpack_require__("./node_modules/infinite-scroll/js/page-load.js"),
- __webpack_require__("./node_modules/infinite-scroll/js/scroll-watch.js"),
- __webpack_require__("./node_modules/infinite-scroll/js/history.js"),
- __webpack_require__("./node_modules/infinite-scroll/js/button.js"),
- __webpack_require__("./node_modules/infinite-scroll/js/status.js"),
- ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
- __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
- (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if ( typeof module == 'object' && module.exports ) {
- // CommonJS
- module.exports = factory(
- require('./core'),
- require('./page-load'),
- require('./scroll-watch'),
- require('./history'),
- require('./button'),
- require('./status')
- );
- }
- })( window, function factory( InfiniteScroll ) {
- return InfiniteScroll;
- });
- /***/ }),
- /***/ "./node_modules/infinite-scroll/js/page-load.js":
- /***/ (function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// page-load
- ( function( window, factory ) {
- // universal module definition
- /* globals define, module, require */
- if ( true ) {
- // AMD
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
- __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
- ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( InfiniteScroll ) {
- return factory( window, InfiniteScroll );
- }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if ( typeof module == 'object' && module.exports ) {
- // CommonJS
- module.exports = factory(
- window,
- require('./core')
- );
- } else {
- // browser global
- factory(
- window,
- window.InfiniteScroll
- );
- }
- }( window, function factory( window, InfiniteScroll ) {
- var proto = InfiniteScroll.prototype;
- // InfiniteScroll.defaults.append = false;
- InfiniteScroll.defaults.loadOnScroll = true;
- InfiniteScroll.defaults.checkLastPage = true;
- InfiniteScroll.defaults.responseType = 'document';
- // InfiniteScroll.defaults.prefill = false;
- // InfiniteScroll.defaults.outlayer = null;
- InfiniteScroll.create.pageLoad = function() {
- this.canLoad = true;
- this.on( 'scrollThreshold', this.onScrollThresholdLoad );
- this.on( 'load', this.checkLastPage );
- if ( this.options.outlayer ) {
- this.on( 'append', this.onAppendOutlayer );
- }
- };
- proto.onScrollThresholdLoad = function() {
- if ( this.options.loadOnScroll ) {
- this.loadNextPage();
- }
- };
- proto.loadNextPage = function() {
- if ( this.isLoading || !this.canLoad ) {
- return;
- }
- var path = this.getAbsolutePath();
- this.isLoading = true;
- var onLoad = function( response ) {
- this.onPageLoad( response, path );
- }.bind( this );
- var onError = function( error ) {
- this.onPageError( error, path );
- }.bind( this );
- request( path, this.options.responseType, onLoad, onError );
- this.dispatchEvent( 'request', null, [ path ] );
- };
- proto.onPageLoad = function( response, path ) {
- // done loading if not appending
- if ( !this.options.append ) {
- this.isLoading = false;
- }
- this.pageIndex++;
- this.loadCount++;
- this.dispatchEvent( 'load', null, [ response, path ] );
- this.appendNextPage( response, path );
- return response;
- };
- proto.appendNextPage = function( response, path ) {
- var optAppend = this.options.append;
- // do not append json
- var isDocument = this.options.responseType == 'document';
- if ( !isDocument || !optAppend ) {
- return;
- }
- var items = response.querySelectorAll( optAppend );
- var fragment = getItemsFragment( items );
- var appendReady = function () {
- this.appendItems( items, fragment );
- this.isLoading = false;
- this.dispatchEvent( 'append', null, [ response, path, items ] );
- }.bind( this );
- // TODO add hook for option to trigger appendReady
- if ( this.options.outlayer ) {
- this.appendOutlayerItems( fragment, appendReady );
- } else {
- appendReady();
- }
- };
- proto.appendItems = function( items, fragment ) {
- if ( !items || !items.length ) {
- return;
- }
- // get fragment if not provided
- fragment = fragment || getItemsFragment( items );
- refreshScripts( fragment );
- this.element.appendChild( fragment );
- };
- function getItemsFragment( items ) {
- // add items to fragment
- var fragment = document.createDocumentFragment();
- for ( var i=0; items && i < items.length; i++ ) {
- fragment.appendChild( items[i] );
- }
- return fragment;
- }
- // replace <script>s with copies so they load
- // <script>s added by InfiniteScroll will not load
- // similar to https://stackoverflow.com/questions/610995
- function refreshScripts( fragment ) {
- var scripts = fragment.querySelectorAll('script');
- for ( var i=0; i < scripts.length; i++ ) {
- var script = scripts[i];
- var freshScript = document.createElement('script');
- copyAttributes( script, freshScript );
- // copy inner script code. #718, #782
- freshScript.innerHTML = script.innerHTML;
- script.parentNode.replaceChild( freshScript, script );
- }
- }
- function copyAttributes( fromNode, toNode ) {
- var attrs = fromNode.attributes;
- for ( var i=0; i < attrs.length; i++ ) {
- var attr = attrs[i];
- toNode.setAttribute( attr.name, attr.value );
- }
- }
- // ----- outlayer ----- //
- proto.appendOutlayerItems = function( fragment, appendReady ) {
- var imagesLoaded = InfiniteScroll.imagesLoaded || window.imagesLoaded;
- if ( !imagesLoaded ) {
- console.error('[InfiniteScroll] imagesLoaded required for outlayer option');
- this.isLoading = false;
- return;
- }
- // append once images loaded
- imagesLoaded( fragment, appendReady );
- };
- proto.onAppendOutlayer = function( response, path, items ) {
- this.options.outlayer.appended( items );
- };
- // ----- checkLastPage ----- //
- // check response for next element
- proto.checkLastPage = function( response, path ) {
- var checkLastPage = this.options.checkLastPage;
- if ( !checkLastPage ) {
- return;
- }
- var pathOpt = this.options.path;
- // if path is function, check if next path is truthy
- if ( typeof pathOpt == 'function' ) {
- var nextPath = this.getPath();
- if ( !nextPath ) {
- this.lastPageReached( response, path );
- return;
- }
- }
- // get selector from checkLastPage or path option
- var selector;
- if ( typeof checkLastPage == 'string' ) {
- selector = checkLastPage;
- } else if ( this.isPathSelector ) {
- // path option is selector string
- selector = pathOpt;
- }
- // check last page for selector
- // bail if no selector or not document response
- if ( !selector || !response.querySelector ) {
- return;
- }
- // check if response has selector
- var nextElem = response.querySelector( selector );
- if ( !nextElem ) {
- this.lastPageReached( response, path );
- }
- };
- proto.lastPageReached = function( response, path ) {
- this.canLoad = false;
- this.dispatchEvent( 'last', null, [ response, path ] );
- };
- // ----- error ----- //
- proto.onPageError = function( error, path ) {
- this.isLoading = false;
- this.canLoad = false;
- this.dispatchEvent( 'error', null, [ error, path ] );
- return error;
- };
- // -------------------------- prefill -------------------------- //
- InfiniteScroll.create.prefill = function() {
- if ( !this.options.prefill ) {
- return;
- }
- var append = this.options.append;
- if ( !append ) {
- console.error( 'append option required for prefill. Set as :' + append );
- return;
- }
- this.updateMeasurements();
- this.updateScroller();
- this.isPrefilling = true;
- this.on( 'append', this.prefill );
- this.once( 'error', this.stopPrefill );
- this.once( 'last', this.stopPrefill );
- this.prefill();
- };
- proto.prefill = function() {
- var distance = this.getPrefillDistance();
- this.isPrefilling = distance >= 0;
- if ( this.isPrefilling ) {
- this.log('prefill');
- this.loadNextPage();
- } else {
- this.stopPrefill();
- }
- };
- proto.getPrefillDistance = function() {
- // element scroll
- if ( this.options.elementScroll ) {
- return this.scroller.clientHeight - this.scroller.scrollHeight;
- }
- // window
- return this.windowHeight - this.element.clientHeight;
- };
- proto.stopPrefill = function() {
- this.log('stopPrefill');
- this.off( 'append', this.prefill );
- };
- // -------------------------- request -------------------------- //
- function request( url, responseType, onLoad, onError ) {
- var req = new XMLHttpRequest();
- req.open( 'GET', url, true );
- // set responseType document to return DOM
- req.responseType = responseType || '';
- // set X-Requested-With header to check that is ajax request
- req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
- req.onload = function() {
- if ( req.status == 200 ) {
- onLoad( req.response );
- } else {
- // not 200 OK, error
- var error = new Error( req.statusText );
- onError( error );
- }
- };
- // Handle network errors
- req.onerror = function() {
- var error = new Error( 'Network error requesting ' + url );
- onError( error );
- };
- req.send();
- }
- // -------------------------- -------------------------- //
- return InfiniteScroll;
- }));
- /***/ }),
- /***/ "./node_modules/infinite-scroll/js/scroll-watch.js":
- /***/ (function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// scroll-watch
- ( function( window, factory ) {
- // universal module definition
- /* globals define, module, require */
- if ( true ) {
- // AMD
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
- __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
- __webpack_require__("./node_modules/fizzy-ui-utils/utils.js"),
- ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( InfiniteScroll, utils ) {
- return factory( window, InfiniteScroll, utils );
- }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if ( typeof module == 'object' && module.exports ) {
- // CommonJS
- module.exports = factory(
- window,
- require('./core'),
- require('fizzy-ui-utils')
- );
- } else {
- // browser global
- factory(
- window,
- window.InfiniteScroll,
- window.fizzyUIUtils
- );
- }
- }( window, function factory( window, InfiniteScroll, utils ) {
- var proto = InfiniteScroll.prototype;
- // default options
- InfiniteScroll.defaults.scrollThreshold = 400;
- // InfiniteScroll.defaults.elementScroll = null;
- InfiniteScroll.create.scrollWatch = function() {
- // events
- this.pageScrollHandler = this.onPageScroll.bind( this );
- this.resizeHandler = this.onResize.bind( this );
- var scrollThreshold = this.options.scrollThreshold;
- var isEnable = scrollThreshold || scrollThreshold === 0;
- if ( isEnable ) {
- this.enableScrollWatch();
- }
- };
- InfiniteScroll.destroy.scrollWatch = function() {
- this.disableScrollWatch();
- };
- proto.enableScrollWatch = function() {
- if ( this.isScrollWatching ) {
- return;
- }
- this.isScrollWatching = true;
- this.updateMeasurements();
- this.updateScroller();
- // TODO disable after error?
- this.on( 'last', this.disableScrollWatch );
- this.bindScrollWatchEvents( true );
- };
- proto.disableScrollWatch = function() {
- if ( !this.isScrollWatching ) {
- return;
- }
- this.bindScrollWatchEvents( false );
- delete this.isScrollWatching;
- };
- proto.bindScrollWatchEvents = function( isBind ) {
- var addRemove = isBind ? 'addEventListener' : 'removeEventListener';
- this.scroller[ addRemove ]( 'scroll', this.pageScrollHandler );
- window[ addRemove ]( 'resize', this.resizeHandler );
- };
- proto.onPageScroll = InfiniteScroll.throttle( function() {
- var distance = this.getBottomDistance();
- if ( distance <= this.options.scrollThreshold ) {
- this.dispatchEvent('scrollThreshold');
- }
- });
- proto.getBottomDistance = function() {
- if ( this.options.elementScroll ) {
- return this.getElementBottomDistance();
- } else {
- return this.getWindowBottomDistance();
- }
- };
- proto.getWindowBottomDistance = function() {
- var bottom = this.top + this.element.clientHeight;
- var scrollY = window.pageYOffset + this.windowHeight;
- return bottom - scrollY;
- };
- proto.getElementBottomDistance = function() {
- var bottom = this.scroller.scrollHeight;
- var scrollY = this.scroller.scrollTop + this.scroller.clientHeight;
- return bottom - scrollY;
- };
- proto.onResize = function() {
- this.updateMeasurements();
- };
- utils.debounceMethod( InfiniteScroll, 'onResize', 150 );
- // -------------------------- -------------------------- //
- return InfiniteScroll;
- }));
- /***/ }),
- /***/ "./node_modules/infinite-scroll/js/status.js":
- /***/ (function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// status
- ( function( window, factory ) {
- // universal module definition
- /* globals define, module, require */
- if ( true ) {
- // AMD
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
- __webpack_require__("./node_modules/infinite-scroll/js/core.js"),
- __webpack_require__("./node_modules/fizzy-ui-utils/utils.js"),
- ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( InfiniteScroll, utils ) {
- return factory( window, InfiniteScroll, utils );
- }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if ( typeof module == 'object' && module.exports ) {
- // CommonJS
- module.exports = factory(
- window,
- require('./core'),
- require('fizzy-ui-utils')
- );
- } else {
- // browser global
- factory(
- window,
- window.InfiniteScroll,
- window.fizzyUIUtils
- );
- }
- }( window, function factory( window, InfiniteScroll, utils ) {
- var proto = InfiniteScroll.prototype;
- // InfiniteScroll.defaults.status = null;
- InfiniteScroll.create.status = function() {
- var statusElem = utils.getQueryElement( this.options.status );
- if ( !statusElem ) {
- return;
- }
- // elements
- this.statusElement = statusElem;
- this.statusEventElements = {
- request: statusElem.querySelector('.infinite-scroll-request'),
- error: statusElem.querySelector('.infinite-scroll-error'),
- last: statusElem.querySelector('.infinite-scroll-last'),
- };
- // events
- this.on( 'request', this.showRequestStatus );
- this.on( 'error', this.showErrorStatus );
- this.on( 'last', this.showLastStatus );
- this.bindHideStatus('on');
- };
- proto.bindHideStatus = function( bindMethod ) {
- var hideEvent = this.options.append ? 'append' : 'load';
- this[ bindMethod ]( hideEvent, this.hideAllStatus );
- };
- proto.showRequestStatus = function() {
- this.showStatus('request');
- };
- proto.showErrorStatus = function() {
- this.showStatus('error');
- };
- proto.showLastStatus = function() {
- this.showStatus('last');
- // prevent last then append event race condition from showing last status #706
- this.bindHideStatus('off');
- };
- proto.showStatus = function( eventName ) {
- show( this.statusElement );
- this.hideStatusEventElements();
- var eventElem = this.statusEventElements[ eventName ];
- show( eventElem );
- };
- proto.hideAllStatus = function() {
- hide( this.statusElement );
- this.hideStatusEventElements();
- };
- proto.hideStatusEventElements = function() {
- for ( var type in this.statusEventElements ) {
- var eventElem = this.statusEventElements[ type ];
- hide( eventElem );
- }
- };
- // -------------------------- -------------------------- //
- function hide( elem ) {
- setDisplay( elem, 'none' );
- }
- function show( elem ) {
- setDisplay( elem, 'block' );
- }
- function setDisplay( elem, value ) {
- if ( elem ) {
- elem.style.display = value;
- }
- }
- // -------------------------- -------------------------- //
- return InfiniteScroll;
- }));
- /***/ }),
- /***/ "./node_modules/lodash.get/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global) {/**
- * lodash (Custom Build) <https://lodash.com/>
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright jQuery Foundation and other contributors <https://jquery.org/>
- * Released under MIT license <https://lodash.com/license>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */
- /** Used as the `TypeError` message for "Functions" methods. */
- var FUNC_ERROR_TEXT = 'Expected a function';
- /** Used to stand-in for `undefined` hash values. */
- var HASH_UNDEFINED = '__lodash_hash_undefined__';
- /** Used as references for various `Number` constants. */
- var INFINITY = 1 / 0;
- /** `Object#toString` result references. */
- var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- symbolTag = '[object Symbol]';
- /** Used to match property names within property paths. */
- var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
- reIsPlainProp = /^\w*$/,
- reLeadingDot = /^\./,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
- /**
- * Used to match `RegExp`
- * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
- */
- var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
- /** Used to match backslashes in property paths. */
- var reEscapeChar = /\\(\\)?/g;
- /** Used to detect host constructors (Safari). */
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
- /** Detect free variable `global` from Node.js. */
- var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
- /** Detect free variable `self`. */
- var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
- /** Used as a reference to the global object. */
- var root = freeGlobal || freeSelf || Function('return this')();
- /**
- * Gets the value at `key` of `object`.
- *
- * @private
- * @param {Object} [object] The object to query.
- * @param {string} key The key of the property to get.
- * @returns {*} Returns the property value.
- */
- function getValue(object, key) {
- return object == null ? undefined : object[key];
- }
- /**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
- function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
- }
- /** Used for built-in method references. */
- var arrayProto = Array.prototype,
- funcProto = Function.prototype,
- objectProto = Object.prototype;
- /** Used to detect overreaching core-js shims. */
- var coreJsData = root['__core-js_shared__'];
- /** Used to detect methods masquerading as native. */
- var maskSrcKey = (function() {
- var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
- return uid ? ('Symbol(src)_1.' + uid) : '';
- }());
- /** Used to resolve the decompiled source of functions. */
- var funcToString = funcProto.toString;
- /** Used to check objects for own properties. */
- var hasOwnProperty = objectProto.hasOwnProperty;
- /**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
- var objectToString = objectProto.toString;
- /** Used to detect if a method is native. */
- var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
- );
- /** Built-in value references. */
- var Symbol = root.Symbol,
- splice = arrayProto.splice;
- /* Built-in method references that are verified to be native. */
- var Map = getNative(root, 'Map'),
- nativeCreate = getNative(Object, 'create');
- /** Used to convert symbols to primitives and strings. */
- var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolToString = symbolProto ? symbolProto.toString : undefined;
- /**
- * Creates a hash object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
- function Hash(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- /**
- * Removes all key-value entries from the hash.
- *
- * @private
- * @name clear
- * @memberOf Hash
- */
- function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
- }
- /**
- * Removes `key` and its value from the hash.
- *
- * @private
- * @name delete
- * @memberOf Hash
- * @param {Object} hash The hash to modify.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
- function hashDelete(key) {
- return this.has(key) && delete this.__data__[key];
- }
- /**
- * Gets the hash value for `key`.
- *
- * @private
- * @name get
- * @memberOf Hash
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
- function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate) {
- var result = data[key];
- return result === HASH_UNDEFINED ? undefined : result;
- }
- return hasOwnProperty.call(data, key) ? data[key] : undefined;
- }
- /**
- * Checks if a hash value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf Hash
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
- function hashHas(key) {
- var data = this.__data__;
- return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
- }
- /**
- * Sets the hash `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf Hash
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the hash instance.
- */
- function hashSet(key, value) {
- var data = this.__data__;
- data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
- return this;
- }
- // Add methods to `Hash`.
- Hash.prototype.clear = hashClear;
- Hash.prototype['delete'] = hashDelete;
- Hash.prototype.get = hashGet;
- Hash.prototype.has = hashHas;
- Hash.prototype.set = hashSet;
- /**
- * Creates an list cache object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
- function ListCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- /**
- * Removes all key-value entries from the list cache.
- *
- * @private
- * @name clear
- * @memberOf ListCache
- */
- function listCacheClear() {
- this.__data__ = [];
- }
- /**
- * Removes `key` and its value from the list cache.
- *
- * @private
- * @name delete
- * @memberOf ListCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
- function listCacheDelete(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
- if (index < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index, 1);
- }
- return true;
- }
- /**
- * Gets the list cache value for `key`.
- *
- * @private
- * @name get
- * @memberOf ListCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
- function listCacheGet(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
- return index < 0 ? undefined : data[index][1];
- }
- /**
- * Checks if a list cache value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf ListCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
- function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
- }
- /**
- * Sets the list cache `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf ListCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the list cache instance.
- */
- function listCacheSet(key, value) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
- if (index < 0) {
- data.push([key, value]);
- } else {
- data[index][1] = value;
- }
- return this;
- }
- // Add methods to `ListCache`.
- ListCache.prototype.clear = listCacheClear;
- ListCache.prototype['delete'] = listCacheDelete;
- ListCache.prototype.get = listCacheGet;
- ListCache.prototype.has = listCacheHas;
- ListCache.prototype.set = listCacheSet;
- /**
- * Creates a map cache object to store key-value pairs.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
- function MapCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- /**
- * Removes all key-value entries from the map.
- *
- * @private
- * @name clear
- * @memberOf MapCache
- */
- function mapCacheClear() {
- this.__data__ = {
- 'hash': new Hash,
- 'map': new (Map || ListCache),
- 'string': new Hash
- };
- }
- /**
- * Removes `key` and its value from the map.
- *
- * @private
- * @name delete
- * @memberOf MapCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
- function mapCacheDelete(key) {
- return getMapData(this, key)['delete'](key);
- }
- /**
- * Gets the map value for `key`.
- *
- * @private
- * @name get
- * @memberOf MapCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
- function mapCacheGet(key) {
- return getMapData(this, key).get(key);
- }
- /**
- * Checks if a map value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf MapCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
- function mapCacheHas(key) {
- return getMapData(this, key).has(key);
- }
- /**
- * Sets the map `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf MapCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the map cache instance.
- */
- function mapCacheSet(key, value) {
- getMapData(this, key).set(key, value);
- return this;
- }
- // Add methods to `MapCache`.
- MapCache.prototype.clear = mapCacheClear;
- MapCache.prototype['delete'] = mapCacheDelete;
- MapCache.prototype.get = mapCacheGet;
- MapCache.prototype.has = mapCacheHas;
- MapCache.prototype.set = mapCacheSet;
- /**
- * Gets the index at which the `key` is found in `array` of key-value pairs.
- *
- * @private
- * @param {Array} array The array to inspect.
- * @param {*} key The key to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
- function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
- }
- /**
- * The base implementation of `_.get` without support for default values.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array|string} path The path of the property to get.
- * @returns {*} Returns the resolved value.
- */
- function baseGet(object, path) {
- path = isKey(path, object) ? [path] : castPath(path);
- var index = 0,
- length = path.length;
- while (object != null && index < length) {
- object = object[toKey(path[index++])];
- }
- return (index && index == length) ? object : undefined;
- }
- /**
- * The base implementation of `_.isNative` without bad shim checks.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function,
- * else `false`.
- */
- function baseIsNative(value) {
- if (!isObject(value) || isMasked(value)) {
- return false;
- }
- var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
- }
- /**
- * The base implementation of `_.toString` which doesn't convert nullish
- * values to empty strings.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
- function baseToString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (isSymbol(value)) {
- return symbolToString ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
- }
- /**
- * Casts `value` to a path array if it's not one.
- *
- * @private
- * @param {*} value The value to inspect.
- * @returns {Array} Returns the cast property path array.
- */
- function castPath(value) {
- return isArray(value) ? value : stringToPath(value);
- }
- /**
- * Gets the data for `map`.
- *
- * @private
- * @param {Object} map The map to query.
- * @param {string} key The reference key.
- * @returns {*} Returns the map data.
- */
- function getMapData(map, key) {
- var data = map.__data__;
- return isKeyable(key)
- ? data[typeof key == 'string' ? 'string' : 'hash']
- : data.map;
- }
- /**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
- function getNative(object, key) {
- var value = getValue(object, key);
- return baseIsNative(value) ? value : undefined;
- }
- /**
- * Checks if `value` is a property name and not a property path.
- *
- * @private
- * @param {*} value The value to check.
- * @param {Object} [object] The object to query keys on.
- * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
- */
- function isKey(value, object) {
- if (isArray(value)) {
- return false;
- }
- var type = typeof value;
- if (type == 'number' || type == 'symbol' || type == 'boolean' ||
- value == null || isSymbol(value)) {
- return true;
- }
- return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
- (object != null && value in Object(object));
- }
- /**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
- function isKeyable(value) {
- var type = typeof value;
- return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
- ? (value !== '__proto__')
- : (value === null);
- }
- /**
- * Checks if `func` has its source masked.
- *
- * @private
- * @param {Function} func The function to check.
- * @returns {boolean} Returns `true` if `func` is masked, else `false`.
- */
- function isMasked(func) {
- return !!maskSrcKey && (maskSrcKey in func);
- }
- /**
- * Converts `string` to a property path array.
- *
- * @private
- * @param {string} string The string to convert.
- * @returns {Array} Returns the property path array.
- */
- var stringToPath = memoize(function(string) {
- string = toString(string);
- var result = [];
- if (reLeadingDot.test(string)) {
- result.push('');
- }
- string.replace(rePropName, function(match, number, quote, string) {
- result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
- });
- return result;
- });
- /**
- * Converts `value` to a string key if it's not a string or symbol.
- *
- * @private
- * @param {*} value The value to inspect.
- * @returns {string|symbol} Returns the key.
- */
- function toKey(value) {
- if (typeof value == 'string' || isSymbol(value)) {
- return value;
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
- }
- /**
- * Converts `func` to its source code.
- *
- * @private
- * @param {Function} func The function to process.
- * @returns {string} Returns the source code.
- */
- function toSource(func) {
- if (func != null) {
- try {
- return funcToString.call(func);
- } catch (e) {}
- try {
- return (func + '');
- } catch (e) {}
- }
- return '';
- }
- /**
- * Creates a function that memoizes the result of `func`. If `resolver` is
- * provided, it determines the cache key for storing the result based on the
- * arguments provided to the memoized function. By default, the first argument
- * provided to the memoized function is used as the map cache key. The `func`
- * is invoked with the `this` binding of the memoized function.
- *
- * **Note:** The cache is exposed as the `cache` property on the memoized
- * function. Its creation may be customized by replacing the `_.memoize.Cache`
- * constructor with one whose instances implement the
- * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
- * method interface of `delete`, `get`, `has`, and `set`.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Function
- * @param {Function} func The function to have its output memoized.
- * @param {Function} [resolver] The function to resolve the cache key.
- * @returns {Function} Returns the new memoized function.
- * @example
- *
- * var object = { 'a': 1, 'b': 2 };
- * var other = { 'c': 3, 'd': 4 };
- *
- * var values = _.memoize(_.values);
- * values(object);
- * // => [1, 2]
- *
- * values(other);
- * // => [3, 4]
- *
- * object.a = 2;
- * values(object);
- * // => [1, 2]
- *
- * // Modify the result cache.
- * values.cache.set(object, ['a', 'b']);
- * values(object);
- * // => ['a', 'b']
- *
- * // Replace `_.memoize.Cache`.
- * _.memoize.Cache = WeakMap;
- */
- function memoize(func, resolver) {
- if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- var memoized = function() {
- var args = arguments,
- key = resolver ? resolver.apply(this, args) : args[0],
- cache = memoized.cache;
- if (cache.has(key)) {
- return cache.get(key);
- }
- var result = func.apply(this, args);
- memoized.cache = cache.set(key, result);
- return result;
- };
- memoized.cache = new (memoize.Cache || MapCache);
- return memoized;
- }
- // Assign cache to `_.memoize`.
- memoize.Cache = MapCache;
- /**
- * Performs a
- * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'a': 1 };
- * var other = { 'a': 1 };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
- function eq(value, other) {
- return value === other || (value !== value && other !== other);
- }
- /**
- * Checks if `value` is classified as an `Array` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an array, else `false`.
- * @example
- *
- * _.isArray([1, 2, 3]);
- * // => true
- *
- * _.isArray(document.body.children);
- * // => false
- *
- * _.isArray('abc');
- * // => false
- *
- * _.isArray(_.noop);
- * // => false
- */
- var isArray = Array.isArray;
- /**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a function, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
- function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8-9 which returns 'object' for typed array and other constructors.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
- }
- /**
- * Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
- function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
- }
- /**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
- function isObjectLike(value) {
- return !!value && typeof value == 'object';
- }
- /**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
- function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
- }
- /**
- * Converts `value` to a string. An empty string is returned for `null`
- * and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
- function toString(value) {
- return value == null ? '' : baseToString(value);
- }
- /**
- * Gets the value at `path` of `object`. If the resolved value is
- * `undefined`, the `defaultValue` is returned in its place.
- *
- * @static
- * @memberOf _
- * @since 3.7.0
- * @category Object
- * @param {Object} object The object to query.
- * @param {Array|string} path The path of the property to get.
- * @param {*} [defaultValue] The value returned for `undefined` resolved values.
- * @returns {*} Returns the resolved value.
- * @example
- *
- * var object = { 'a': [{ 'b': { 'c': 3 } }] };
- *
- * _.get(object, 'a[0].b.c');
- * // => 3
- *
- * _.get(object, ['a', '0', 'b', 'c']);
- * // => 3
- *
- * _.get(object, 'a.b.c', 'default');
- * // => 'default'
- */
- function get(object, path, defaultValue) {
- var result = object == null ? undefined : baseGet(object, path);
- return result === undefined ? defaultValue : result;
- }
- module.exports = get;
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js")))
- /***/ }),
- /***/ "./node_modules/lodash.startcase/index.js":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global) {/**
- * lodash (Custom Build) <https://lodash.com/>
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright jQuery Foundation and other contributors <https://jquery.org/>
- * Released under MIT license <https://lodash.com/license>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */
- /** Used as references for various `Number` constants. */
- var INFINITY = 1 / 0;
- /** `Object#toString` result references. */
- var symbolTag = '[object Symbol]';
- /** Used to match words composed of alphanumeric characters. */
- var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
- /** Used to match Latin Unicode letters (excluding mathematical operators). */
- var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
- /** Used to compose unicode character classes. */
- var rsAstralRange = '\\ud800-\\udfff',
- rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
- rsComboSymbolsRange = '\\u20d0-\\u20f0',
- rsDingbatRange = '\\u2700-\\u27bf',
- rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff',
- rsMathOpRange = '\\xac\\xb1\\xd7\\xf7',
- rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf',
- rsPunctuationRange = '\\u2000-\\u206f',
- 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',
- rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde',
- rsVarRange = '\\ufe0e\\ufe0f',
- rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
- /** Used to compose unicode capture groups. */
- var rsApos = "['\u2019]",
- rsAstral = '[' + rsAstralRange + ']',
- rsBreak = '[' + rsBreakRange + ']',
- rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
- rsDigits = '\\d+',
- rsDingbat = '[' + rsDingbatRange + ']',
- rsLower = '[' + rsLowerRange + ']',
- rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',
- rsFitz = '\\ud83c[\\udffb-\\udfff]',
- rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
- rsNonAstral = '[^' + rsAstralRange + ']',
- rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
- rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
- rsUpper = '[' + rsUpperRange + ']',
- rsZWJ = '\\u200d';
- /** Used to compose unicode regexes. */
- var rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',
- rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',
- rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
- rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
- reOptMod = rsModifier + '?',
- rsOptVar = '[' + rsVarRange + ']?',
- rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
- rsSeq = rsOptVar + reOptMod + rsOptJoin,
- rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,
- rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
- /** Used to match apostrophes. */
- var reApos = RegExp(rsApos, 'g');
- /**
- * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
- * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).
- */
- var reComboMark = RegExp(rsCombo, 'g');
- /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
- var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
- /** Used to match complex or compound words. */
- var reUnicodeWord = RegExp([
- rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
- rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',
- rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,
- rsUpper + '+' + rsOptUpperContr,
- rsDigits,
- rsEmoji
- ].join('|'), 'g');
- /** 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/). */
- var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
- /** Used to detect strings that need a more robust regexp to match words. */
- 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 ]/;
- /** Used to map Latin Unicode letters to basic Latin letters. */
- var deburredLetters = {
- // Latin-1 Supplement block.
- '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A',
- '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a',
- '\xc7': 'C', '\xe7': 'c',
- '\xd0': 'D', '\xf0': 'd',
- '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E',
- '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e',
- '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I',
- '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i',
- '\xd1': 'N', '\xf1': 'n',
- '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O',
- '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o',
- '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U',
- '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u',
- '\xdd': 'Y', '\xfd': 'y', '\xff': 'y',
- '\xc6': 'Ae', '\xe6': 'ae',
- '\xde': 'Th', '\xfe': 'th',
- '\xdf': 'ss',
- // Latin Extended-A block.
- '\u0100': 'A', '\u0102': 'A', '\u0104': 'A',
- '\u0101': 'a', '\u0103': 'a', '\u0105': 'a',
- '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C',
- '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c',
- '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd',
- '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E',
- '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e',
- '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G',
- '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g',
- '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h',
- '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I',
- '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i',
- '\u0134': 'J', '\u0135': 'j',
- '\u0136': 'K', '\u0137': 'k', '\u0138': 'k',
- '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L',
- '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l',
- '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N',
- '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n',
- '\u014c': 'O', '\u014e': 'O', '\u0150': 'O',
- '\u014d': 'o', '\u014f': 'o', '\u0151': 'o',
- '\u0154': 'R', '\u0156': 'R', '\u0158': 'R',
- '\u0155': 'r', '\u0157': 'r', '\u0159': 'r',
- '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S',
- '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's',
- '\u0162': 'T', '\u0164': 'T', '\u0166': 'T',
- '\u0163': 't', '\u0165': 't', '\u0167': 't',
- '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U',
- '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u',
- '\u0174': 'W', '\u0175': 'w',
- '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y',
- '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z',
- '\u017a': 'z', '\u017c': 'z', '\u017e': 'z',
- '\u0132': 'IJ', '\u0133': 'ij',
- '\u0152': 'Oe', '\u0153': 'oe',
- '\u0149': "'n", '\u017f': 'ss'
- };
- /** Detect free variable `global` from Node.js. */
- var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
- /** Detect free variable `self`. */
- var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
- /** Used as a reference to the global object. */
- var root = freeGlobal || freeSelf || Function('return this')();
- /**
- * A specialized version of `_.reduce` for arrays without support for
- * iteratee shorthands.
- *
- * @private
- * @param {Array} [array] The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @param {*} [accumulator] The initial value.
- * @param {boolean} [initAccum] Specify using the first element of `array` as
- * the initial value.
- * @returns {*} Returns the accumulated value.
- */
- function arrayReduce(array, iteratee, accumulator, initAccum) {
- var index = -1,
- length = array ? array.length : 0;
- if (initAccum && length) {
- accumulator = array[++index];
- }
- while (++index < length) {
- accumulator = iteratee(accumulator, array[index], index, array);
- }
- return accumulator;
- }
- /**
- * Converts an ASCII `string` to an array.
- *
- * @private
- * @param {string} string The string to convert.
- * @returns {Array} Returns the converted array.
- */
- function asciiToArray(string) {
- return string.split('');
- }
- /**
- * Splits an ASCII `string` into an array of its words.
- *
- * @private
- * @param {string} The string to inspect.
- * @returns {Array} Returns the words of `string`.
- */
- function asciiWords(string) {
- return string.match(reAsciiWord) || [];
- }
- /**
- * The base implementation of `_.propertyOf` without support for deep paths.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Function} Returns the new accessor function.
- */
- function basePropertyOf(object) {
- return function(key) {
- return object == null ? undefined : object[key];
- };
- }
- /**
- * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A
- * letters to basic Latin letters.
- *
- * @private
- * @param {string} letter The matched letter to deburr.
- * @returns {string} Returns the deburred letter.
- */
- var deburrLetter = basePropertyOf(deburredLetters);
- /**
- * Checks if `string` contains Unicode symbols.
- *
- * @private
- * @param {string} string The string to inspect.
- * @returns {boolean} Returns `true` if a symbol is found, else `false`.
- */
- function hasUnicode(string) {
- return reHasUnicode.test(string);
- }
- /**
- * Checks if `string` contains a word composed of Unicode symbols.
- *
- * @private
- * @param {string} string The string to inspect.
- * @returns {boolean} Returns `true` if a word is found, else `false`.
- */
- function hasUnicodeWord(string) {
- return reHasUnicodeWord.test(string);
- }
- /**
- * Converts `string` to an array.
- *
- * @private
- * @param {string} string The string to convert.
- * @returns {Array} Returns the converted array.
- */
- function stringToArray(string) {
- return hasUnicode(string)
- ? unicodeToArray(string)
- : asciiToArray(string);
- }
- /**
- * Converts a Unicode `string` to an array.
- *
- * @private
- * @param {string} string The string to convert.
- * @returns {Array} Returns the converted array.
- */
- function unicodeToArray(string) {
- return string.match(reUnicode) || [];
- }
- /**
- * Splits a Unicode `string` into an array of its words.
- *
- * @private
- * @param {string} The string to inspect.
- * @returns {Array} Returns the words of `string`.
- */
- function unicodeWords(string) {
- return string.match(reUnicodeWord) || [];
- }
- /** Used for built-in method references. */
- var objectProto = Object.prototype;
- /**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
- var objectToString = objectProto.toString;
- /** Built-in value references. */
- var Symbol = root.Symbol;
- /** Used to convert symbols to primitives and strings. */
- var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolToString = symbolProto ? symbolProto.toString : undefined;
- /**
- * The base implementation of `_.slice` without an iteratee call guard.
- *
- * @private
- * @param {Array} array The array to slice.
- * @param {number} [start=0] The start position.
- * @param {number} [end=array.length] The end position.
- * @returns {Array} Returns the slice of `array`.
- */
- function baseSlice(array, start, end) {
- var index = -1,
- length = array.length;
- if (start < 0) {
- start = -start > length ? 0 : (length + start);
- }
- end = end > length ? length : end;
- if (end < 0) {
- end += length;
- }
- length = start > end ? 0 : ((end - start) >>> 0);
- start >>>= 0;
- var result = Array(length);
- while (++index < length) {
- result[index] = array[index + start];
- }
- return result;
- }
- /**
- * The base implementation of `_.toString` which doesn't convert nullish
- * values to empty strings.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
- function baseToString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (isSymbol(value)) {
- return symbolToString ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
- }
- /**
- * Casts `array` to a slice if it's needed.
- *
- * @private
- * @param {Array} array The array to inspect.
- * @param {number} start The start position.
- * @param {number} [end=array.length] The end position.
- * @returns {Array} Returns the cast slice.
- */
- function castSlice(array, start, end) {
- var length = array.length;
- end = end === undefined ? length : end;
- return (!start && end >= length) ? array : baseSlice(array, start, end);
- }
- /**
- * Creates a function like `_.lowerFirst`.
- *
- * @private
- * @param {string} methodName The name of the `String` case method to use.
- * @returns {Function} Returns the new case function.
- */
- function createCaseFirst(methodName) {
- return function(string) {
- string = toString(string);
- var strSymbols = hasUnicode(string)
- ? stringToArray(string)
- : undefined;
- var chr = strSymbols
- ? strSymbols[0]
- : string.charAt(0);
- var trailing = strSymbols
- ? castSlice(strSymbols, 1).join('')
- : string.slice(1);
- return chr[methodName]() + trailing;
- };
- }
- /**
- * Creates a function like `_.camelCase`.
- *
- * @private
- * @param {Function} callback The function to combine each word.
- * @returns {Function} Returns the new compounder function.
- */
- function createCompounder(callback) {
- return function(string) {
- return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');
- };
- }
- /**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
- function isObjectLike(value) {
- return !!value && typeof value == 'object';
- }
- /**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
- function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
- }
- /**
- * Converts `value` to a string. An empty string is returned for `null`
- * and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
- function toString(value) {
- return value == null ? '' : baseToString(value);
- }
- /**
- * Deburrs `string` by converting
- * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
- * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)
- * letters to basic Latin letters and removing
- * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).
- *
- * @static
- * @memberOf _
- * @since 3.0.0
- * @category String
- * @param {string} [string=''] The string to deburr.
- * @returns {string} Returns the deburred string.
- * @example
- *
- * _.deburr('déjà vu');
- * // => 'deja vu'
- */
- function deburr(string) {
- string = toString(string);
- return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');
- }
- /**
- * Converts `string` to
- * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).
- *
- * @static
- * @memberOf _
- * @since 3.1.0
- * @category String
- * @param {string} [string=''] The string to convert.
- * @returns {string} Returns the start cased string.
- * @example
- *
- * _.startCase('--foo-bar--');
- * // => 'Foo Bar'
- *
- * _.startCase('fooBar');
- * // => 'Foo Bar'
- *
- * _.startCase('__FOO_BAR__');
- * // => 'FOO BAR'
- */
- var startCase = createCompounder(function(result, word, index) {
- return result + (index ? ' ' : '') + upperFirst(word);
- });
- /**
- * Converts the first character of `string` to upper case.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category String
- * @param {string} [string=''] The string to convert.
- * @returns {string} Returns the converted string.
- * @example
- *
- * _.upperFirst('fred');
- * // => 'Fred'
- *
- * _.upperFirst('FRED');
- * // => 'FRED'
- */
- var upperFirst = createCaseFirst('toUpperCase');
- /**
- * Splits `string` into an array of its words.
- *
- * @static
- * @memberOf _
- * @since 3.0.0
- * @category String
- * @param {string} [string=''] The string to inspect.
- * @param {RegExp|string} [pattern] The pattern to match words.
- * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
- * @returns {Array} Returns the words of `string`.
- * @example
- *
- * _.words('fred, barney, & pebbles');
- * // => ['fred', 'barney', 'pebbles']
- *
- * _.words('fred, barney, & pebbles', /[^, ]+/g);
- * // => ['fred', 'barney', '&', 'pebbles']
- */
- function words(string, pattern, guard) {
- string = toString(string);
- pattern = guard ? undefined : pattern;
- if (pattern === undefined) {
- return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
- }
- return string.match(pattern) || [];
- }
- module.exports = startCase;
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js")))
- /***/ }),
- /***/ "./node_modules/plyr/dist/plyr.min.js":
- /***/ (function(module, exports, __webpack_require__) {
- /* 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,"×");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});
- //# sourceMappingURL=plyr.min.js.map
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js")))
- /***/ }),
- /***/ "./node_modules/popper.js/dist/esm/popper.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* WEBPACK VAR INJECTION */(function(global) {/**!
- * @fileOverview Kickass library to create and place poppers near their reference elements.
- * @version 1.14.6
- * @license
- * Copyright (c) 2016 Federico Zivolo and contributors
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
- var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
- var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
- var timeoutDuration = 0;
- for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
- if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
- timeoutDuration = 1;
- break;
- }
- }
- function microtaskDebounce(fn) {
- var called = false;
- return function () {
- if (called) {
- return;
- }
- called = true;
- window.Promise.resolve().then(function () {
- called = false;
- fn();
- });
- };
- }
- function taskDebounce(fn) {
- var scheduled = false;
- return function () {
- if (!scheduled) {
- scheduled = true;
- setTimeout(function () {
- scheduled = false;
- fn();
- }, timeoutDuration);
- }
- };
- }
- var supportsMicroTasks = isBrowser && window.Promise;
- /**
- * Create a debounced version of a method, that's asynchronously deferred
- * but called in the minimum time possible.
- *
- * @method
- * @memberof Popper.Utils
- * @argument {Function} fn
- * @returns {Function}
- */
- var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
- /**
- * Check if the given variable is a function
- * @method
- * @memberof Popper.Utils
- * @argument {Any} functionToCheck - variable to check
- * @returns {Boolean} answer to: is a function?
- */
- function isFunction(functionToCheck) {
- var getType = {};
- return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
- }
- /**
- * Get CSS computed property of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Eement} element
- * @argument {String} property
- */
- function getStyleComputedProperty(element, property) {
- if (element.nodeType !== 1) {
- return [];
- }
- // NOTE: 1 DOM access here
- var window = element.ownerDocument.defaultView;
- var css = window.getComputedStyle(element, null);
- return property ? css[property] : css;
- }
- /**
- * Returns the parentNode or the host of the element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} parent
- */
- function getParentNode(element) {
- if (element.nodeName === 'HTML') {
- return element;
- }
- return element.parentNode || element.host;
- }
- /**
- * Returns the scrolling parent of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} scroll parent
- */
- function getScrollParent(element) {
- // Return body, `getScroll` will take care to get the correct `scrollTop` from it
- if (!element) {
- return document.body;
- }
- switch (element.nodeName) {
- case 'HTML':
- case 'BODY':
- return element.ownerDocument.body;
- case '#document':
- return element.body;
- }
- // Firefox want us to check `-x` and `-y` variations as well
- var _getStyleComputedProp = getStyleComputedProperty(element),
- overflow = _getStyleComputedProp.overflow,
- overflowX = _getStyleComputedProp.overflowX,
- overflowY = _getStyleComputedProp.overflowY;
- if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
- return element;
- }
- return getScrollParent(getParentNode(element));
- }
- var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
- var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
- /**
- * Determines if the browser is Internet Explorer
- * @method
- * @memberof Popper.Utils
- * @param {Number} version to check
- * @returns {Boolean} isIE
- */
- function isIE(version) {
- if (version === 11) {
- return isIE11;
- }
- if (version === 10) {
- return isIE10;
- }
- return isIE11 || isIE10;
- }
- /**
- * Returns the offset parent of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} offset parent
- */
- function getOffsetParent(element) {
- if (!element) {
- return document.documentElement;
- }
- var noOffsetParent = isIE(10) ? document.body : null;
- // NOTE: 1 DOM access here
- var offsetParent = element.offsetParent || null;
- // Skip hidden elements which don't have an offsetParent
- while (offsetParent === noOffsetParent && element.nextElementSibling) {
- offsetParent = (element = element.nextElementSibling).offsetParent;
- }
- var nodeName = offsetParent && offsetParent.nodeName;
- if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
- return element ? element.ownerDocument.documentElement : document.documentElement;
- }
- // .offsetParent will return the closest TH, TD or TABLE in case
- // no offsetParent is present, I hate this job...
- if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
- return getOffsetParent(offsetParent);
- }
- return offsetParent;
- }
- function isOffsetContainer(element) {
- var nodeName = element.nodeName;
- if (nodeName === 'BODY') {
- return false;
- }
- return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
- }
- /**
- * Finds the root node (document, shadowDOM root) of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} node
- * @returns {Element} root node
- */
- function getRoot(node) {
- if (node.parentNode !== null) {
- return getRoot(node.parentNode);
- }
- return node;
- }
- /**
- * Finds the offset parent common to the two provided nodes
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element1
- * @argument {Element} element2
- * @returns {Element} common offset parent
- */
- function findCommonOffsetParent(element1, element2) {
- // This check is needed to avoid errors in case one of the elements isn't defined for any reason
- if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
- return document.documentElement;
- }
- // Here we make sure to give as "start" the element that comes first in the DOM
- var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
- var start = order ? element1 : element2;
- var end = order ? element2 : element1;
- // Get common ancestor container
- var range = document.createRange();
- range.setStart(start, 0);
- range.setEnd(end, 0);
- var commonAncestorContainer = range.commonAncestorContainer;
- // Both nodes are inside #document
- if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
- if (isOffsetContainer(commonAncestorContainer)) {
- return commonAncestorContainer;
- }
- return getOffsetParent(commonAncestorContainer);
- }
- // one of the nodes is inside shadowDOM, find which one
- var element1root = getRoot(element1);
- if (element1root.host) {
- return findCommonOffsetParent(element1root.host, element2);
- } else {
- return findCommonOffsetParent(element1, getRoot(element2).host);
- }
- }
- /**
- * Gets the scroll value of the given element in the given side (top and left)
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @argument {String} side `top` or `left`
- * @returns {number} amount of scrolled pixels
- */
- function getScroll(element) {
- var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
- var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
- var nodeName = element.nodeName;
- if (nodeName === 'BODY' || nodeName === 'HTML') {
- var html = element.ownerDocument.documentElement;
- var scrollingElement = element.ownerDocument.scrollingElement || html;
- return scrollingElement[upperSide];
- }
- return element[upperSide];
- }
- /*
- * Sum or subtract the element scroll values (left and top) from a given rect object
- * @method
- * @memberof Popper.Utils
- * @param {Object} rect - Rect object you want to change
- * @param {HTMLElement} element - The element from the function reads the scroll values
- * @param {Boolean} subtract - set to true if you want to subtract the scroll values
- * @return {Object} rect - The modifier rect object
- */
- function includeScroll(rect, element) {
- var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
- var scrollTop = getScroll(element, 'top');
- var scrollLeft = getScroll(element, 'left');
- var modifier = subtract ? -1 : 1;
- rect.top += scrollTop * modifier;
- rect.bottom += scrollTop * modifier;
- rect.left += scrollLeft * modifier;
- rect.right += scrollLeft * modifier;
- return rect;
- }
- /*
- * Helper to detect borders of a given element
- * @method
- * @memberof Popper.Utils
- * @param {CSSStyleDeclaration} styles
- * Result of `getStyleComputedProperty` on the given element
- * @param {String} axis - `x` or `y`
- * @return {number} borders - The borders size of the given axis
- */
- function getBordersSize(styles, axis) {
- var sideA = axis === 'x' ? 'Left' : 'Top';
- var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
- return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
- }
- function getSize(axis, body, html, computedStyle) {
- 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);
- }
- function getWindowSizes(document) {
- var body = document.body;
- var html = document.documentElement;
- var computedStyle = isIE(10) && getComputedStyle(html);
- return {
- height: getSize('Height', body, html, computedStyle),
- width: getSize('Width', body, html, computedStyle)
- };
- }
- var classCallCheck = function (instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- };
- 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;
- };
- }();
- var defineProperty = function (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;
- };
- var _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- };
- /**
- * Given element offsets, generate an output similar to getBoundingClientRect
- * @method
- * @memberof Popper.Utils
- * @argument {Object} offsets
- * @returns {Object} ClientRect like output
- */
- function getClientRect(offsets) {
- return _extends({}, offsets, {
- right: offsets.left + offsets.width,
- bottom: offsets.top + offsets.height
- });
- }
- /**
- * Get bounding client rect of given element
- * @method
- * @memberof Popper.Utils
- * @param {HTMLElement} element
- * @return {Object} client rect
- */
- function getBoundingClientRect(element) {
- var rect = {};
- // IE10 10 FIX: Please, don't ask, the element isn't
- // considered in DOM in some circumstances...
- // This isn't reproducible in IE10 compatibility mode of IE11
- try {
- if (isIE(10)) {
- rect = element.getBoundingClientRect();
- var scrollTop = getScroll(element, 'top');
- var scrollLeft = getScroll(element, 'left');
- rect.top += scrollTop;
- rect.left += scrollLeft;
- rect.bottom += scrollTop;
- rect.right += scrollLeft;
- } else {
- rect = element.getBoundingClientRect();
- }
- } catch (e) {}
- var result = {
- left: rect.left,
- top: rect.top,
- width: rect.right - rect.left,
- height: rect.bottom - rect.top
- };
- // subtract scrollbar size from sizes
- var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
- var width = sizes.width || element.clientWidth || result.right - result.left;
- var height = sizes.height || element.clientHeight || result.bottom - result.top;
- var horizScrollbar = element.offsetWidth - width;
- var vertScrollbar = element.offsetHeight - height;
- // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
- // we make this check conditional for performance reasons
- if (horizScrollbar || vertScrollbar) {
- var styles = getStyleComputedProperty(element);
- horizScrollbar -= getBordersSize(styles, 'x');
- vertScrollbar -= getBordersSize(styles, 'y');
- result.width -= horizScrollbar;
- result.height -= vertScrollbar;
- }
- return getClientRect(result);
- }
- function getOffsetRectRelativeToArbitraryNode(children, parent) {
- var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
- var isIE10 = isIE(10);
- var isHTML = parent.nodeName === 'HTML';
- var childrenRect = getBoundingClientRect(children);
- var parentRect = getBoundingClientRect(parent);
- var scrollParent = getScrollParent(children);
- var styles = getStyleComputedProperty(parent);
- var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
- var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
- // In cases where the parent is fixed, we must ignore negative scroll in offset calc
- if (fixedPosition && isHTML) {
- parentRect.top = Math.max(parentRect.top, 0);
- parentRect.left = Math.max(parentRect.left, 0);
- }
- var offsets = getClientRect({
- top: childrenRect.top - parentRect.top - borderTopWidth,
- left: childrenRect.left - parentRect.left - borderLeftWidth,
- width: childrenRect.width,
- height: childrenRect.height
- });
- offsets.marginTop = 0;
- offsets.marginLeft = 0;
- // Subtract margins of documentElement in case it's being used as parent
- // we do this only on HTML because it's the only element that behaves
- // differently when margins are applied to it. The margins are included in
- // the box of the documentElement, in the other cases not.
- if (!isIE10 && isHTML) {
- var marginTop = parseFloat(styles.marginTop, 10);
- var marginLeft = parseFloat(styles.marginLeft, 10);
- offsets.top -= borderTopWidth - marginTop;
- offsets.bottom -= borderTopWidth - marginTop;
- offsets.left -= borderLeftWidth - marginLeft;
- offsets.right -= borderLeftWidth - marginLeft;
- // Attach marginTop and marginLeft because in some circumstances we may need them
- offsets.marginTop = marginTop;
- offsets.marginLeft = marginLeft;
- }
- if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
- offsets = includeScroll(offsets, parent);
- }
- return offsets;
- }
- function getViewportOffsetRectRelativeToArtbitraryNode(element) {
- var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- var html = element.ownerDocument.documentElement;
- var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
- var width = Math.max(html.clientWidth, window.innerWidth || 0);
- var height = Math.max(html.clientHeight, window.innerHeight || 0);
- var scrollTop = !excludeScroll ? getScroll(html) : 0;
- var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
- var offset = {
- top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
- left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
- width: width,
- height: height
- };
- return getClientRect(offset);
- }
- /**
- * Check if the given element is fixed or is inside a fixed parent
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @argument {Element} customContainer
- * @returns {Boolean} answer to "isFixed?"
- */
- function isFixed(element) {
- var nodeName = element.nodeName;
- if (nodeName === 'BODY' || nodeName === 'HTML') {
- return false;
- }
- if (getStyleComputedProperty(element, 'position') === 'fixed') {
- return true;
- }
- return isFixed(getParentNode(element));
- }
- /**
- * Finds the first parent of an element that has a transformed property defined
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} first transformed parent or documentElement
- */
- function getFixedPositionOffsetParent(element) {
- // This check is needed to avoid errors in case one of the elements isn't defined for any reason
- if (!element || !element.parentElement || isIE()) {
- return document.documentElement;
- }
- var el = element.parentElement;
- while (el && getStyleComputedProperty(el, 'transform') === 'none') {
- el = el.parentElement;
- }
- return el || document.documentElement;
- }
- /**
- * Computed the boundaries limits and return them
- * @method
- * @memberof Popper.Utils
- * @param {HTMLElement} popper
- * @param {HTMLElement} reference
- * @param {number} padding
- * @param {HTMLElement} boundariesElement - Element used to define the boundaries
- * @param {Boolean} fixedPosition - Is in fixed position mode
- * @returns {Object} Coordinates of the boundaries
- */
- function getBoundaries(popper, reference, padding, boundariesElement) {
- var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
- // NOTE: 1 DOM access here
- var boundaries = { top: 0, left: 0 };
- var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
- // Handle viewport case
- if (boundariesElement === 'viewport') {
- boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
- } else {
- // Handle other cases based on DOM element used as boundaries
- var boundariesNode = void 0;
- if (boundariesElement === 'scrollParent') {
- boundariesNode = getScrollParent(getParentNode(reference));
- if (boundariesNode.nodeName === 'BODY') {
- boundariesNode = popper.ownerDocument.documentElement;
- }
- } else if (boundariesElement === 'window') {
- boundariesNode = popper.ownerDocument.documentElement;
- } else {
- boundariesNode = boundariesElement;
- }
- var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
- // In case of HTML, we need a different computation
- if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
- var _getWindowSizes = getWindowSizes(popper.ownerDocument),
- height = _getWindowSizes.height,
- width = _getWindowSizes.width;
- boundaries.top += offsets.top - offsets.marginTop;
- boundaries.bottom = height + offsets.top;
- boundaries.left += offsets.left - offsets.marginLeft;
- boundaries.right = width + offsets.left;
- } else {
- // for all the other DOM elements, this one is good
- boundaries = offsets;
- }
- }
- // Add paddings
- padding = padding || 0;
- var isPaddingNumber = typeof padding === 'number';
- boundaries.left += isPaddingNumber ? padding : padding.left || 0;
- boundaries.top += isPaddingNumber ? padding : padding.top || 0;
- boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
- boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
- return boundaries;
- }
- function getArea(_ref) {
- var width = _ref.width,
- height = _ref.height;
- return width * height;
- }
- /**
- * Utility used to transform the `auto` placement to the placement with more
- * available space.
- * @method
- * @memberof Popper.Utils
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
- var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
- if (placement.indexOf('auto') === -1) {
- return placement;
- }
- var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
- var rects = {
- top: {
- width: boundaries.width,
- height: refRect.top - boundaries.top
- },
- right: {
- width: boundaries.right - refRect.right,
- height: boundaries.height
- },
- bottom: {
- width: boundaries.width,
- height: boundaries.bottom - refRect.bottom
- },
- left: {
- width: refRect.left - boundaries.left,
- height: boundaries.height
- }
- };
- var sortedAreas = Object.keys(rects).map(function (key) {
- return _extends({
- key: key
- }, rects[key], {
- area: getArea(rects[key])
- });
- }).sort(function (a, b) {
- return b.area - a.area;
- });
- var filteredAreas = sortedAreas.filter(function (_ref2) {
- var width = _ref2.width,
- height = _ref2.height;
- return width >= popper.clientWidth && height >= popper.clientHeight;
- });
- var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
- var variation = placement.split('-')[1];
- return computedPlacement + (variation ? '-' + variation : '');
- }
- /**
- * Get offsets to the reference element
- * @method
- * @memberof Popper.Utils
- * @param {Object} state
- * @param {Element} popper - the popper element
- * @param {Element} reference - the reference element (the popper will be relative to this)
- * @param {Element} fixedPosition - is in fixed position mode
- * @returns {Object} An object containing the offsets which will be applied to the popper
- */
- function getReferenceOffsets(state, popper, reference) {
- var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
- var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
- return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
- }
- /**
- * Get the outer sizes of the given element (offset size + margins)
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Object} object containing width and height properties
- */
- function getOuterSizes(element) {
- var window = element.ownerDocument.defaultView;
- var styles = window.getComputedStyle(element);
- var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
- var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
- var result = {
- width: element.offsetWidth + y,
- height: element.offsetHeight + x
- };
- return result;
- }
- /**
- * Get the opposite placement of the given one
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement
- * @returns {String} flipped placement
- */
- function getOppositePlacement(placement) {
- var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
- return placement.replace(/left|right|bottom|top/g, function (matched) {
- return hash[matched];
- });
- }
- /**
- * Get offsets to the popper
- * @method
- * @memberof Popper.Utils
- * @param {Object} position - CSS position the Popper will get applied
- * @param {HTMLElement} popper - the popper element
- * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
- * @param {String} placement - one of the valid placement options
- * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
- */
- function getPopperOffsets(popper, referenceOffsets, placement) {
- placement = placement.split('-')[0];
- // Get popper node sizes
- var popperRect = getOuterSizes(popper);
- // Add position, width and height to our offsets object
- var popperOffsets = {
- width: popperRect.width,
- height: popperRect.height
- };
- // depending by the popper placement we have to compute its offsets slightly differently
- var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
- var mainSide = isHoriz ? 'top' : 'left';
- var secondarySide = isHoriz ? 'left' : 'top';
- var measurement = isHoriz ? 'height' : 'width';
- var secondaryMeasurement = !isHoriz ? 'height' : 'width';
- popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
- if (placement === secondarySide) {
- popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
- } else {
- popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
- }
- return popperOffsets;
- }
- /**
- * Mimics the `find` method of Array
- * @method
- * @memberof Popper.Utils
- * @argument {Array} arr
- * @argument prop
- * @argument value
- * @returns index or -1
- */
- function find(arr, check) {
- // use native find if supported
- if (Array.prototype.find) {
- return arr.find(check);
- }
- // use `filter` to obtain the same behavior of `find`
- return arr.filter(check)[0];
- }
- /**
- * Return the index of the matching object
- * @method
- * @memberof Popper.Utils
- * @argument {Array} arr
- * @argument prop
- * @argument value
- * @returns index or -1
- */
- function findIndex(arr, prop, value) {
- // use native findIndex if supported
- if (Array.prototype.findIndex) {
- return arr.findIndex(function (cur) {
- return cur[prop] === value;
- });
- }
- // use `find` + `indexOf` if `findIndex` isn't supported
- var match = find(arr, function (obj) {
- return obj[prop] === value;
- });
- return arr.indexOf(match);
- }
- /**
- * Loop trough the list of modifiers and run them in order,
- * each of them will then edit the data object.
- * @method
- * @memberof Popper.Utils
- * @param {dataObject} data
- * @param {Array} modifiers
- * @param {String} ends - Optional modifier name used as stopper
- * @returns {dataObject}
- */
- function runModifiers(modifiers, data, ends) {
- var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
- modifiersToRun.forEach(function (modifier) {
- if (modifier['function']) {
- // eslint-disable-line dot-notation
- console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
- }
- var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
- if (modifier.enabled && isFunction(fn)) {
- // Add properties to offsets to make them a complete clientRect object
- // we do this before each modifier to make sure the previous one doesn't
- // mess with these values
- data.offsets.popper = getClientRect(data.offsets.popper);
- data.offsets.reference = getClientRect(data.offsets.reference);
- data = fn(data, modifier);
- }
- });
- return data;
- }
- /**
- * Updates the position of the popper, computing the new offsets and applying
- * the new style.<br />
- * Prefer `scheduleUpdate` over `update` because of performance reasons.
- * @method
- * @memberof Popper
- */
- function update() {
- // if popper is destroyed, don't perform any further update
- if (this.state.isDestroyed) {
- return;
- }
- var data = {
- instance: this,
- styles: {},
- arrowStyles: {},
- attributes: {},
- flipped: false,
- offsets: {}
- };
- // compute reference element offsets
- data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
- // compute auto placement, store placement inside the data object,
- // modifiers will be able to edit `placement` if needed
- // and refer to originalPlacement to know the original value
- data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
- // store the computed placement inside `originalPlacement`
- data.originalPlacement = data.placement;
- data.positionFixed = this.options.positionFixed;
- // compute the popper offsets
- data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
- data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
- // run the modifiers
- data = runModifiers(this.modifiers, data);
- // the first `update` will call `onCreate` callback
- // the other ones will call `onUpdate` callback
- if (!this.state.isCreated) {
- this.state.isCreated = true;
- this.options.onCreate(data);
- } else {
- this.options.onUpdate(data);
- }
- }
- /**
- * Helper used to know if the given modifier is enabled.
- * @method
- * @memberof Popper.Utils
- * @returns {Boolean}
- */
- function isModifierEnabled(modifiers, modifierName) {
- return modifiers.some(function (_ref) {
- var name = _ref.name,
- enabled = _ref.enabled;
- return enabled && name === modifierName;
- });
- }
- /**
- * Get the prefixed supported property name
- * @method
- * @memberof Popper.Utils
- * @argument {String} property (camelCase)
- * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
- */
- function getSupportedPropertyName(property) {
- var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
- var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
- for (var i = 0; i < prefixes.length; i++) {
- var prefix = prefixes[i];
- var toCheck = prefix ? '' + prefix + upperProp : property;
- if (typeof document.body.style[toCheck] !== 'undefined') {
- return toCheck;
- }
- }
- return null;
- }
- /**
- * Destroys the popper.
- * @method
- * @memberof Popper
- */
- function destroy() {
- this.state.isDestroyed = true;
- // touch DOM only if `applyStyle` modifier is enabled
- if (isModifierEnabled(this.modifiers, 'applyStyle')) {
- this.popper.removeAttribute('x-placement');
- this.popper.style.position = '';
- this.popper.style.top = '';
- this.popper.style.left = '';
- this.popper.style.right = '';
- this.popper.style.bottom = '';
- this.popper.style.willChange = '';
- this.popper.style[getSupportedPropertyName('transform')] = '';
- }
- this.disableEventListeners();
- // remove the popper if user explicity asked for the deletion on destroy
- // do not use `remove` because IE11 doesn't support it
- if (this.options.removeOnDestroy) {
- this.popper.parentNode.removeChild(this.popper);
- }
- return this;
- }
- /**
- * Get the window associated with the element
- * @argument {Element} element
- * @returns {Window}
- */
- function getWindow(element) {
- var ownerDocument = element.ownerDocument;
- return ownerDocument ? ownerDocument.defaultView : window;
- }
- function attachToScrollParents(scrollParent, event, callback, scrollParents) {
- var isBody = scrollParent.nodeName === 'BODY';
- var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
- target.addEventListener(event, callback, { passive: true });
- if (!isBody) {
- attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
- }
- scrollParents.push(target);
- }
- /**
- * Setup needed event listeners used to update the popper position
- * @method
- * @memberof Popper.Utils
- * @private
- */
- function setupEventListeners(reference, options, state, updateBound) {
- // Resize event listener on window
- state.updateBound = updateBound;
- getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
- // Scroll event listener on scroll parents
- var scrollElement = getScrollParent(reference);
- attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
- state.scrollElement = scrollElement;
- state.eventsEnabled = true;
- return state;
- }
- /**
- * It will add resize/scroll events and start recalculating
- * position of the popper element when they are triggered.
- * @method
- * @memberof Popper
- */
- function enableEventListeners() {
- if (!this.state.eventsEnabled) {
- this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
- }
- }
- /**
- * Remove event listeners used to update the popper position
- * @method
- * @memberof Popper.Utils
- * @private
- */
- function removeEventListeners(reference, state) {
- // Remove resize event listener on window
- getWindow(reference).removeEventListener('resize', state.updateBound);
- // Remove scroll event listener on scroll parents
- state.scrollParents.forEach(function (target) {
- target.removeEventListener('scroll', state.updateBound);
- });
- // Reset state
- state.updateBound = null;
- state.scrollParents = [];
- state.scrollElement = null;
- state.eventsEnabled = false;
- return state;
- }
- /**
- * It will remove resize/scroll events and won't recalculate popper position
- * when they are triggered. It also won't trigger `onUpdate` callback anymore,
- * unless you call `update` method manually.
- * @method
- * @memberof Popper
- */
- function disableEventListeners() {
- if (this.state.eventsEnabled) {
- cancelAnimationFrame(this.scheduleUpdate);
- this.state = removeEventListeners(this.reference, this.state);
- }
- }
- /**
- * Tells if a given input is a number
- * @method
- * @memberof Popper.Utils
- * @param {*} input to check
- * @return {Boolean}
- */
- function isNumeric(n) {
- return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
- }
- /**
- * Set the style to the given popper
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element - Element to apply the style to
- * @argument {Object} styles
- * Object with a list of properties and values which will be applied to the element
- */
- function setStyles(element, styles) {
- Object.keys(styles).forEach(function (prop) {
- var unit = '';
- // add unit if the value is numeric and is one of the following
- if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
- unit = 'px';
- }
- element.style[prop] = styles[prop] + unit;
- });
- }
- /**
- * Set the attributes to the given popper
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element - Element to apply the attributes to
- * @argument {Object} styles
- * Object with a list of properties and values which will be applied to the element
- */
- function setAttributes(element, attributes) {
- Object.keys(attributes).forEach(function (prop) {
- var value = attributes[prop];
- if (value !== false) {
- element.setAttribute(prop, attributes[prop]);
- } else {
- element.removeAttribute(prop);
- }
- });
- }
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} data.styles - List of style properties - values to apply to popper element
- * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The same data object
- */
- function applyStyle(data) {
- // any property present in `data.styles` will be applied to the popper,
- // in this way we can make the 3rd party modifiers add custom styles to it
- // Be aware, modifiers could override the properties defined in the previous
- // lines of this modifier!
- setStyles(data.instance.popper, data.styles);
- // any property present in `data.attributes` will be applied to the popper,
- // they will be set as HTML attributes of the element
- setAttributes(data.instance.popper, data.attributes);
- // if arrowElement is defined and arrowStyles has some properties
- if (data.arrowElement && Object.keys(data.arrowStyles).length) {
- setStyles(data.arrowElement, data.arrowStyles);
- }
- return data;
- }
- /**
- * Set the x-placement attribute before everything else because it could be used
- * to add margins to the popper margins needs to be calculated to get the
- * correct popper offsets.
- * @method
- * @memberof Popper.modifiers
- * @param {HTMLElement} reference - The reference element used to position the popper
- * @param {HTMLElement} popper - The HTML element used as popper
- * @param {Object} options - Popper.js options
- */
- function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
- // compute reference element offsets
- var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
- // compute auto placement, store placement inside the data object,
- // modifiers will be able to edit `placement` if needed
- // and refer to originalPlacement to know the original value
- var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
- popper.setAttribute('x-placement', placement);
- // Apply `position` to popper before anything else because
- // without the position applied we can't guarantee correct computations
- setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
- return options;
- }
- /**
- * @function
- * @memberof Popper.Utils
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Boolean} shouldRound - If the offsets should be rounded at all
- * @returns {Object} The popper's position offsets rounded
- *
- * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
- * good as it can be within reason.
- * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
- *
- * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
- * as well on High DPI screens).
- *
- * Firefox prefers no rounding for positioning and does not have blurriness on
- * high DPI screens.
- *
- * Only horizontal placement and left/right values need to be considered.
- */
- function getRoundedOffsets(data, shouldRound) {
- var _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
- var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
- var isVariation = data.placement.indexOf('-') !== -1;
- var sameWidthOddness = reference.width % 2 === popper.width % 2;
- var bothOddWidth = reference.width % 2 === 1 && popper.width % 2 === 1;
- var noRound = function noRound(v) {
- return v;
- };
- var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthOddness ? Math.round : Math.floor;
- var verticalToInteger = !shouldRound ? noRound : Math.round;
- return {
- left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
- top: verticalToInteger(popper.top),
- bottom: verticalToInteger(popper.bottom),
- right: horizontalToInteger(popper.right)
- };
- }
- var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function computeStyle(data, options) {
- var x = options.x,
- y = options.y;
- var popper = data.offsets.popper;
- // Remove this legacy support in Popper.js v2
- var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
- return modifier.name === 'applyStyle';
- }).gpuAcceleration;
- if (legacyGpuAccelerationOption !== undefined) {
- console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
- }
- var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
- var offsetParent = getOffsetParent(data.instance.popper);
- var offsetParentRect = getBoundingClientRect(offsetParent);
- // Styles
- var styles = {
- position: popper.position
- };
- var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
- var sideA = x === 'bottom' ? 'top' : 'bottom';
- var sideB = y === 'right' ? 'left' : 'right';
- // if gpuAcceleration is set to `true` and transform is supported,
- // we use `translate3d` to apply the position to the popper we
- // automatically use the supported prefixed version if needed
- var prefixedProperty = getSupportedPropertyName('transform');
- // now, let's make a step back and look at this code closely (wtf?)
- // If the content of the popper grows once it's been positioned, it
- // may happen that the popper gets misplaced because of the new content
- // overflowing its reference element
- // To avoid this problem, we provide two options (x and y), which allow
- // the consumer to define the offset origin.
- // If we position a popper on top of a reference element, we can set
- // `x` to `top` to make the popper grow towards its top instead of
- // its bottom.
- var left = void 0,
- top = void 0;
- if (sideA === 'bottom') {
- // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
- // and not the bottom of the html element
- if (offsetParent.nodeName === 'HTML') {
- top = -offsetParent.clientHeight + offsets.bottom;
- } else {
- top = -offsetParentRect.height + offsets.bottom;
- }
- } else {
- top = offsets.top;
- }
- if (sideB === 'right') {
- if (offsetParent.nodeName === 'HTML') {
- left = -offsetParent.clientWidth + offsets.right;
- } else {
- left = -offsetParentRect.width + offsets.right;
- }
- } else {
- left = offsets.left;
- }
- if (gpuAcceleration && prefixedProperty) {
- styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
- styles[sideA] = 0;
- styles[sideB] = 0;
- styles.willChange = 'transform';
- } else {
- // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
- var invertTop = sideA === 'bottom' ? -1 : 1;
- var invertLeft = sideB === 'right' ? -1 : 1;
- styles[sideA] = top * invertTop;
- styles[sideB] = left * invertLeft;
- styles.willChange = sideA + ', ' + sideB;
- }
- // Attributes
- var attributes = {
- 'x-placement': data.placement
- };
- // Update `data` attributes, styles and arrowStyles
- data.attributes = _extends({}, attributes, data.attributes);
- data.styles = _extends({}, styles, data.styles);
- data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
- return data;
- }
- /**
- * Helper used to know if the given modifier depends from another one.<br />
- * It checks if the needed modifier is listed and enabled.
- * @method
- * @memberof Popper.Utils
- * @param {Array} modifiers - list of modifiers
- * @param {String} requestingName - name of requesting modifier
- * @param {String} requestedName - name of requested modifier
- * @returns {Boolean}
- */
- function isModifierRequired(modifiers, requestingName, requestedName) {
- var requesting = find(modifiers, function (_ref) {
- var name = _ref.name;
- return name === requestingName;
- });
- var isRequired = !!requesting && modifiers.some(function (modifier) {
- return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
- });
- if (!isRequired) {
- var _requesting = '`' + requestingName + '`';
- var requested = '`' + requestedName + '`';
- console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
- }
- return isRequired;
- }
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function arrow(data, options) {
- var _data$offsets$arrow;
- // arrow depends on keepTogether in order to work
- if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
- return data;
- }
- var arrowElement = options.element;
- // if arrowElement is a string, suppose it's a CSS selector
- if (typeof arrowElement === 'string') {
- arrowElement = data.instance.popper.querySelector(arrowElement);
- // if arrowElement is not found, don't run the modifier
- if (!arrowElement) {
- return data;
- }
- } else {
- // if the arrowElement isn't a query selector we must check that the
- // provided DOM node is child of its popper node
- if (!data.instance.popper.contains(arrowElement)) {
- console.warn('WARNING: `arrow.element` must be child of its popper element!');
- return data;
- }
- }
- var placement = data.placement.split('-')[0];
- var _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
- var isVertical = ['left', 'right'].indexOf(placement) !== -1;
- var len = isVertical ? 'height' : 'width';
- var sideCapitalized = isVertical ? 'Top' : 'Left';
- var side = sideCapitalized.toLowerCase();
- var altSide = isVertical ? 'left' : 'top';
- var opSide = isVertical ? 'bottom' : 'right';
- var arrowElementSize = getOuterSizes(arrowElement)[len];
- //
- // extends keepTogether behavior making sure the popper and its
- // reference have enough pixels in conjunction
- //
- // top/left side
- if (reference[opSide] - arrowElementSize < popper[side]) {
- data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
- }
- // bottom/right side
- if (reference[side] + arrowElementSize > popper[opSide]) {
- data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
- }
- data.offsets.popper = getClientRect(data.offsets.popper);
- // compute center of the popper
- var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
- // Compute the sideValue using the updated popper offsets
- // take popper margin in account because we don't have this info available
- var css = getStyleComputedProperty(data.instance.popper);
- var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
- var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
- var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
- // prevent arrowElement from being placed not contiguously to its popper
- sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
- data.arrowElement = arrowElement;
- data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
- return data;
- }
- /**
- * Get the opposite placement variation of the given one
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement variation
- * @returns {String} flipped placement variation
- */
- function getOppositeVariation(variation) {
- if (variation === 'end') {
- return 'start';
- } else if (variation === 'start') {
- return 'end';
- }
- return variation;
- }
- /**
- * List of accepted placements to use as values of the `placement` option.<br />
- * Valid placements are:
- * - `auto`
- * - `top`
- * - `right`
- * - `bottom`
- * - `left`
- *
- * Each placement can have a variation from this list:
- * - `-start`
- * - `-end`
- *
- * Variations are interpreted easily if you think of them as the left to right
- * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
- * is right.<br />
- * Vertically (`left` and `right`), `start` is top and `end` is bottom.
- *
- * Some valid examples are:
- * - `top-end` (on top of reference, right aligned)
- * - `right-start` (on right of reference, top aligned)
- * - `bottom` (on bottom, centered)
- * - `auto-end` (on the side with more space available, alignment depends by placement)
- *
- * @static
- * @type {Array}
- * @enum {String}
- * @readonly
- * @method placements
- * @memberof Popper
- */
- 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'];
- // Get rid of `auto` `auto-start` and `auto-end`
- var validPlacements = placements.slice(3);
- /**
- * Given an initial placement, returns all the subsequent placements
- * clockwise (or counter-clockwise).
- *
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement - A valid placement (it accepts variations)
- * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
- * @returns {Array} placements including their variations
- */
- function clockwise(placement) {
- var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- var index = validPlacements.indexOf(placement);
- var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
- return counter ? arr.reverse() : arr;
- }
- var BEHAVIORS = {
- FLIP: 'flip',
- CLOCKWISE: 'clockwise',
- COUNTERCLOCKWISE: 'counterclockwise'
- };
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function flip(data, options) {
- // if `inner` modifier is enabled, we can't use the `flip` modifier
- if (isModifierEnabled(data.instance.modifiers, 'inner')) {
- return data;
- }
- if (data.flipped && data.placement === data.originalPlacement) {
- // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
- return data;
- }
- var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
- var placement = data.placement.split('-')[0];
- var placementOpposite = getOppositePlacement(placement);
- var variation = data.placement.split('-')[1] || '';
- var flipOrder = [];
- switch (options.behavior) {
- case BEHAVIORS.FLIP:
- flipOrder = [placement, placementOpposite];
- break;
- case BEHAVIORS.CLOCKWISE:
- flipOrder = clockwise(placement);
- break;
- case BEHAVIORS.COUNTERCLOCKWISE:
- flipOrder = clockwise(placement, true);
- break;
- default:
- flipOrder = options.behavior;
- }
- flipOrder.forEach(function (step, index) {
- if (placement !== step || flipOrder.length === index + 1) {
- return data;
- }
- placement = data.placement.split('-')[0];
- placementOpposite = getOppositePlacement(placement);
- var popperOffsets = data.offsets.popper;
- var refOffsets = data.offsets.reference;
- // using floor because the reference offsets may contain decimals we are not going to consider here
- var floor = Math.floor;
- 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);
- var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
- var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
- var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
- var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
- var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
- // flip the variation if required
- var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
- var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
- if (overlapsRef || overflowsBoundaries || flippedVariation) {
- // this boolean to detect any flip loop
- data.flipped = true;
- if (overlapsRef || overflowsBoundaries) {
- placement = flipOrder[index + 1];
- }
- if (flippedVariation) {
- variation = getOppositeVariation(variation);
- }
- data.placement = placement + (variation ? '-' + variation : '');
- // this object contains `position`, we want to preserve it along with
- // any additional property we may add in the future
- data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
- data = runModifiers(data.instance.modifiers, data, 'flip');
- }
- });
- return data;
- }
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function keepTogether(data) {
- var _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
- var placement = data.placement.split('-')[0];
- var floor = Math.floor;
- var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
- var side = isVertical ? 'right' : 'bottom';
- var opSide = isVertical ? 'left' : 'top';
- var measurement = isVertical ? 'width' : 'height';
- if (popper[side] < floor(reference[opSide])) {
- data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
- }
- if (popper[opSide] > floor(reference[side])) {
- data.offsets.popper[opSide] = floor(reference[side]);
- }
- return data;
- }
- /**
- * Converts a string containing value + unit into a px value number
- * @function
- * @memberof {modifiers~offset}
- * @private
- * @argument {String} str - Value + unit string
- * @argument {String} measurement - `height` or `width`
- * @argument {Object} popperOffsets
- * @argument {Object} referenceOffsets
- * @returns {Number|String}
- * Value in pixels, or original string if no values were extracted
- */
- function toValue(str, measurement, popperOffsets, referenceOffsets) {
- // separate value from unit
- var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
- var value = +split[1];
- var unit = split[2];
- // If it's not a number it's an operator, I guess
- if (!value) {
- return str;
- }
- if (unit.indexOf('%') === 0) {
- var element = void 0;
- switch (unit) {
- case '%p':
- element = popperOffsets;
- break;
- case '%':
- case '%r':
- default:
- element = referenceOffsets;
- }
- var rect = getClientRect(element);
- return rect[measurement] / 100 * value;
- } else if (unit === 'vh' || unit === 'vw') {
- // if is a vh or vw, we calculate the size based on the viewport
- var size = void 0;
- if (unit === 'vh') {
- size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
- } else {
- size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
- }
- return size / 100 * value;
- } else {
- // if is an explicit pixel unit, we get rid of the unit and keep the value
- // if is an implicit unit, it's px, and we return just the value
- return value;
- }
- }
- /**
- * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
- * @function
- * @memberof {modifiers~offset}
- * @private
- * @argument {String} offset
- * @argument {Object} popperOffsets
- * @argument {Object} referenceOffsets
- * @argument {String} basePlacement
- * @returns {Array} a two cells array with x and y offsets in numbers
- */
- function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
- var offsets = [0, 0];
- // Use height if placement is left or right and index is 0 otherwise use width
- // in this way the first offset will use an axis and the second one
- // will use the other one
- var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
- // Split the offset string to obtain a list of values and operands
- // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
- var fragments = offset.split(/(\+|\-)/).map(function (frag) {
- return frag.trim();
- });
- // Detect if the offset string contains a pair of values or a single one
- // they could be separated by comma or space
- var divider = fragments.indexOf(find(fragments, function (frag) {
- return frag.search(/,|\s/) !== -1;
- }));
- if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
- console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
- }
- // If divider is found, we divide the list of values and operands to divide
- // them by ofset X and Y.
- var splitRegex = /\s*,\s*|\s+/;
- 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];
- // Convert the values with units to absolute pixels to allow our computations
- ops = ops.map(function (op, index) {
- // Most of the units rely on the orientation of the popper
- var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
- var mergeWithPrevious = false;
- return op
- // This aggregates any `+` or `-` sign that aren't considered operators
- // e.g.: 10 + +5 => [10, +, +5]
- .reduce(function (a, b) {
- if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
- a[a.length - 1] = b;
- mergeWithPrevious = true;
- return a;
- } else if (mergeWithPrevious) {
- a[a.length - 1] += b;
- mergeWithPrevious = false;
- return a;
- } else {
- return a.concat(b);
- }
- }, [])
- // Here we convert the string values into number values (in px)
- .map(function (str) {
- return toValue(str, measurement, popperOffsets, referenceOffsets);
- });
- });
- // Loop trough the offsets arrays and execute the operations
- ops.forEach(function (op, index) {
- op.forEach(function (frag, index2) {
- if (isNumeric(frag)) {
- offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
- }
- });
- });
- return offsets;
- }
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @argument {Number|String} options.offset=0
- * The offset value as described in the modifier description
- * @returns {Object} The data object, properly modified
- */
- function offset(data, _ref) {
- var offset = _ref.offset;
- var placement = data.placement,
- _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
- var basePlacement = placement.split('-')[0];
- var offsets = void 0;
- if (isNumeric(+offset)) {
- offsets = [+offset, 0];
- } else {
- offsets = parseOffset(offset, popper, reference, basePlacement);
- }
- if (basePlacement === 'left') {
- popper.top += offsets[0];
- popper.left -= offsets[1];
- } else if (basePlacement === 'right') {
- popper.top += offsets[0];
- popper.left += offsets[1];
- } else if (basePlacement === 'top') {
- popper.left += offsets[0];
- popper.top -= offsets[1];
- } else if (basePlacement === 'bottom') {
- popper.left += offsets[0];
- popper.top += offsets[1];
- }
- data.popper = popper;
- return data;
- }
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function preventOverflow(data, options) {
- var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
- // If offsetParent is the reference element, we really want to
- // go one step up and use the next offsetParent as reference to
- // avoid to make this modifier completely useless and look like broken
- if (data.instance.reference === boundariesElement) {
- boundariesElement = getOffsetParent(boundariesElement);
- }
- // NOTE: DOM access here
- // resets the popper's position so that the document size can be calculated excluding
- // the size of the popper element itself
- var transformProp = getSupportedPropertyName('transform');
- var popperStyles = data.instance.popper.style; // assignment to help minification
- var top = popperStyles.top,
- left = popperStyles.left,
- transform = popperStyles[transformProp];
- popperStyles.top = '';
- popperStyles.left = '';
- popperStyles[transformProp] = '';
- var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
- // NOTE: DOM access here
- // restores the original style properties after the offsets have been computed
- popperStyles.top = top;
- popperStyles.left = left;
- popperStyles[transformProp] = transform;
- options.boundaries = boundaries;
- var order = options.priority;
- var popper = data.offsets.popper;
- var check = {
- primary: function primary(placement) {
- var value = popper[placement];
- if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
- value = Math.max(popper[placement], boundaries[placement]);
- }
- return defineProperty({}, placement, value);
- },
- secondary: function secondary(placement) {
- var mainSide = placement === 'right' ? 'left' : 'top';
- var value = popper[mainSide];
- if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
- value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
- }
- return defineProperty({}, mainSide, value);
- }
- };
- order.forEach(function (placement) {
- var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
- popper = _extends({}, popper, check[side](placement));
- });
- data.offsets.popper = popper;
- return data;
- }
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function shift(data) {
- var placement = data.placement;
- var basePlacement = placement.split('-')[0];
- var shiftvariation = placement.split('-')[1];
- // if shift shiftvariation is specified, run the modifier
- if (shiftvariation) {
- var _data$offsets = data.offsets,
- reference = _data$offsets.reference,
- popper = _data$offsets.popper;
- var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
- var side = isVertical ? 'left' : 'top';
- var measurement = isVertical ? 'width' : 'height';
- var shiftOffsets = {
- start: defineProperty({}, side, reference[side]),
- end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
- };
- data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
- }
- return data;
- }
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function hide(data) {
- if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
- return data;
- }
- var refRect = data.offsets.reference;
- var bound = find(data.instance.modifiers, function (modifier) {
- return modifier.name === 'preventOverflow';
- }).boundaries;
- if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
- // Avoid unnecessary DOM access if visibility hasn't changed
- if (data.hide === true) {
- return data;
- }
- data.hide = true;
- data.attributes['x-out-of-boundaries'] = '';
- } else {
- // Avoid unnecessary DOM access if visibility hasn't changed
- if (data.hide === false) {
- return data;
- }
- data.hide = false;
- data.attributes['x-out-of-boundaries'] = false;
- }
- return data;
- }
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function inner(data) {
- var placement = data.placement;
- var basePlacement = placement.split('-')[0];
- var _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
- var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
- var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
- popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
- data.placement = getOppositePlacement(placement);
- data.offsets.popper = getClientRect(popper);
- return data;
- }
- /**
- * Modifier function, each modifier can have a function of this type assigned
- * to its `fn` property.<br />
- * These functions will be called on each update, this means that you must
- * make sure they are performant enough to avoid performance bottlenecks.
- *
- * @function ModifierFn
- * @argument {dataObject} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {dataObject} The data object, properly modified
- */
- /**
- * Modifiers are plugins used to alter the behavior of your poppers.<br />
- * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
- * needed by the library.
- *
- * Usually you don't want to override the `order`, `fn` and `onLoad` props.
- * All the other properties are configurations that could be tweaked.
- * @namespace modifiers
- */
- var modifiers = {
- /**
- * Modifier used to shift the popper on the start or end of its reference
- * element.<br />
- * It will read the variation of the `placement` property.<br />
- * It can be one either `-end` or `-start`.
- * @memberof modifiers
- * @inner
- */
- shift: {
- /** @prop {number} order=100 - Index used to define the order of execution */
- order: 100,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: shift
- },
- /**
- * The `offset` modifier can shift your popper on both its axis.
- *
- * It accepts the following units:
- * - `px` or unit-less, interpreted as pixels
- * - `%` or `%r`, percentage relative to the length of the reference element
- * - `%p`, percentage relative to the length of the popper element
- * - `vw`, CSS viewport width unit
- * - `vh`, CSS viewport height unit
- *
- * For length is intended the main axis relative to the placement of the popper.<br />
- * This means that if the placement is `top` or `bottom`, the length will be the
- * `width`. In case of `left` or `right`, it will be the `height`.
- *
- * You can provide a single value (as `Number` or `String`), or a pair of values
- * as `String` divided by a comma or one (or more) white spaces.<br />
- * The latter is a deprecated method because it leads to confusion and will be
- * removed in v2.<br />
- * Additionally, it accepts additions and subtractions between different units.
- * Note that multiplications and divisions aren't supported.
- *
- * Valid examples are:
- * ```
- * 10
- * '10%'
- * '10, 10'
- * '10%, 10'
- * '10 + 10%'
- * '10 - 5vh + 3%'
- * '-10px + 5vh, 5px - 6%'
- * ```
- * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
- * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
- * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
- *
- * @memberof modifiers
- * @inner
- */
- offset: {
- /** @prop {number} order=200 - Index used to define the order of execution */
- order: 200,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: offset,
- /** @prop {Number|String} offset=0
- * The offset value as described in the modifier description
- */
- offset: 0
- },
- /**
- * Modifier used to prevent the popper from being positioned outside the boundary.
- *
- * A scenario exists where the reference itself is not within the boundaries.<br />
- * We can say it has "escaped the boundaries" — or just "escaped".<br />
- * In this case we need to decide whether the popper should either:
- *
- * - detach from the reference and remain "trapped" in the boundaries, or
- * - if it should ignore the boundary and "escape with its reference"
- *
- * When `escapeWithReference` is set to`true` and reference is completely
- * outside its boundaries, the popper will overflow (or completely leave)
- * the boundaries in order to remain attached to the edge of the reference.
- *
- * @memberof modifiers
- * @inner
- */
- preventOverflow: {
- /** @prop {number} order=300 - Index used to define the order of execution */
- order: 300,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: preventOverflow,
- /**
- * @prop {Array} [priority=['left','right','top','bottom']]
- * Popper will try to prevent overflow following these priorities by default,
- * then, it could overflow on the left and on top of the `boundariesElement`
- */
- priority: ['left', 'right', 'top', 'bottom'],
- /**
- * @prop {number} padding=5
- * Amount of pixel used to define a minimum distance between the boundaries
- * and the popper. This makes sure the popper always has a little padding
- * between the edges of its container
- */
- padding: 5,
- /**
- * @prop {String|HTMLElement} boundariesElement='scrollParent'
- * Boundaries used by the modifier. Can be `scrollParent`, `window`,
- * `viewport` or any DOM element.
- */
- boundariesElement: 'scrollParent'
- },
- /**
- * Modifier used to make sure the reference and its popper stay near each other
- * without leaving any gap between the two. Especially useful when the arrow is
- * enabled and you want to ensure that it points to its reference element.
- * It cares only about the first axis. You can still have poppers with margin
- * between the popper and its reference element.
- * @memberof modifiers
- * @inner
- */
- keepTogether: {
- /** @prop {number} order=400 - Index used to define the order of execution */
- order: 400,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: keepTogether
- },
- /**
- * This modifier is used to move the `arrowElement` of the popper to make
- * sure it is positioned between the reference element and its popper element.
- * It will read the outer size of the `arrowElement` node to detect how many
- * pixels of conjunction are needed.
- *
- * It has no effect if no `arrowElement` is provided.
- * @memberof modifiers
- * @inner
- */
- arrow: {
- /** @prop {number} order=500 - Index used to define the order of execution */
- order: 500,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: arrow,
- /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
- element: '[x-arrow]'
- },
- /**
- * Modifier used to flip the popper's placement when it starts to overlap its
- * reference element.
- *
- * Requires the `preventOverflow` modifier before it in order to work.
- *
- * **NOTE:** this modifier will interrupt the current update cycle and will
- * restart it if it detects the need to flip the placement.
- * @memberof modifiers
- * @inner
- */
- flip: {
- /** @prop {number} order=600 - Index used to define the order of execution */
- order: 600,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: flip,
- /**
- * @prop {String|Array} behavior='flip'
- * The behavior used to change the popper's placement. It can be one of
- * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
- * placements (with optional variations)
- */
- behavior: 'flip',
- /**
- * @prop {number} padding=5
- * The popper will flip if it hits the edges of the `boundariesElement`
- */
- padding: 5,
- /**
- * @prop {String|HTMLElement} boundariesElement='viewport'
- * The element which will define the boundaries of the popper position.
- * The popper will never be placed outside of the defined boundaries
- * (except if `keepTogether` is enabled)
- */
- boundariesElement: 'viewport'
- },
- /**
- * Modifier used to make the popper flow toward the inner of the reference element.
- * By default, when this modifier is disabled, the popper will be placed outside
- * the reference element.
- * @memberof modifiers
- * @inner
- */
- inner: {
- /** @prop {number} order=700 - Index used to define the order of execution */
- order: 700,
- /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
- enabled: false,
- /** @prop {ModifierFn} */
- fn: inner
- },
- /**
- * Modifier used to hide the popper when its reference element is outside of the
- * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
- * be used to hide with a CSS selector the popper when its reference is
- * out of boundaries.
- *
- * Requires the `preventOverflow` modifier before it in order to work.
- * @memberof modifiers
- * @inner
- */
- hide: {
- /** @prop {number} order=800 - Index used to define the order of execution */
- order: 800,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: hide
- },
- /**
- * Computes the style that will be applied to the popper element to gets
- * properly positioned.
- *
- * Note that this modifier will not touch the DOM, it just prepares the styles
- * so that `applyStyle` modifier can apply it. This separation is useful
- * in case you need to replace `applyStyle` with a custom implementation.
- *
- * This modifier has `850` as `order` value to maintain backward compatibility
- * with previous versions of Popper.js. Expect the modifiers ordering method
- * to change in future major versions of the library.
- *
- * @memberof modifiers
- * @inner
- */
- computeStyle: {
- /** @prop {number} order=850 - Index used to define the order of execution */
- order: 850,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: computeStyle,
- /**
- * @prop {Boolean} gpuAcceleration=true
- * If true, it uses the CSS 3D transformation to position the popper.
- * Otherwise, it will use the `top` and `left` properties
- */
- gpuAcceleration: true,
- /**
- * @prop {string} [x='bottom']
- * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
- * Change this if your popper should grow in a direction different from `bottom`
- */
- x: 'bottom',
- /**
- * @prop {string} [x='left']
- * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
- * Change this if your popper should grow in a direction different from `right`
- */
- y: 'right'
- },
- /**
- * Applies the computed styles to the popper element.
- *
- * All the DOM manipulations are limited to this modifier. This is useful in case
- * you want to integrate Popper.js inside a framework or view library and you
- * want to delegate all the DOM manipulations to it.
- *
- * Note that if you disable this modifier, you must make sure the popper element
- * has its position set to `absolute` before Popper.js can do its work!
- *
- * Just disable this modifier and define your own to achieve the desired effect.
- *
- * @memberof modifiers
- * @inner
- */
- applyStyle: {
- /** @prop {number} order=900 - Index used to define the order of execution */
- order: 900,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: applyStyle,
- /** @prop {Function} */
- onLoad: applyStyleOnLoad,
- /**
- * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
- * @prop {Boolean} gpuAcceleration=true
- * If true, it uses the CSS 3D transformation to position the popper.
- * Otherwise, it will use the `top` and `left` properties
- */
- gpuAcceleration: undefined
- }
- };
- /**
- * The `dataObject` is an object containing all the information used by Popper.js.
- * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
- * @name dataObject
- * @property {Object} data.instance The Popper.js instance
- * @property {String} data.placement Placement applied to popper
- * @property {String} data.originalPlacement Placement originally defined on init
- * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
- * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
- * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
- * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
- * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
- * @property {Object} data.boundaries Offsets of the popper boundaries
- * @property {Object} data.offsets The measurements of popper, reference and arrow elements
- * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
- * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
- * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
- */
- /**
- * Default options provided to Popper.js constructor.<br />
- * These can be overridden using the `options` argument of Popper.js.<br />
- * To override an option, simply pass an object with the same
- * structure of the `options` object, as the 3rd argument. For example:
- * ```
- * new Popper(ref, pop, {
- * modifiers: {
- * preventOverflow: { enabled: false }
- * }
- * })
- * ```
- * @type {Object}
- * @static
- * @memberof Popper
- */
- var Defaults = {
- /**
- * Popper's placement.
- * @prop {Popper.placements} placement='bottom'
- */
- placement: 'bottom',
- /**
- * Set this to true if you want popper to position it self in 'fixed' mode
- * @prop {Boolean} positionFixed=false
- */
- positionFixed: false,
- /**
- * Whether events (resize, scroll) are initially enabled.
- * @prop {Boolean} eventsEnabled=true
- */
- eventsEnabled: true,
- /**
- * Set to true if you want to automatically remove the popper when
- * you call the `destroy` method.
- * @prop {Boolean} removeOnDestroy=false
- */
- removeOnDestroy: false,
- /**
- * Callback called when the popper is created.<br />
- * By default, it is set to no-op.<br />
- * Access Popper.js instance with `data.instance`.
- * @prop {onCreate}
- */
- onCreate: function onCreate() {},
- /**
- * Callback called when the popper is updated. This callback is not called
- * on the initialization/creation of the popper, but only on subsequent
- * updates.<br />
- * By default, it is set to no-op.<br />
- * Access Popper.js instance with `data.instance`.
- * @prop {onUpdate}
- */
- onUpdate: function onUpdate() {},
- /**
- * List of modifiers used to modify the offsets before they are applied to the popper.
- * They provide most of the functionalities of Popper.js.
- * @prop {modifiers}
- */
- modifiers: modifiers
- };
- /**
- * @callback onCreate
- * @param {dataObject} data
- */
- /**
- * @callback onUpdate
- * @param {dataObject} data
- */
- // Utils
- // Methods
- var Popper = function () {
- /**
- * Creates a new Popper.js instance.
- * @class Popper
- * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
- * @param {HTMLElement} popper - The HTML element used as the popper
- * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
- * @return {Object} instance - The generated Popper.js instance
- */
- function Popper(reference, popper) {
- var _this = this;
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
- classCallCheck(this, Popper);
- this.scheduleUpdate = function () {
- return requestAnimationFrame(_this.update);
- };
- // make update() debounced, so that it only runs at most once-per-tick
- this.update = debounce(this.update.bind(this));
- // with {} we create a new object with the options inside it
- this.options = _extends({}, Popper.Defaults, options);
- // init state
- this.state = {
- isDestroyed: false,
- isCreated: false,
- scrollParents: []
- };
- // get reference and popper elements (allow jQuery wrappers)
- this.reference = reference && reference.jquery ? reference[0] : reference;
- this.popper = popper && popper.jquery ? popper[0] : popper;
- // Deep merge modifiers options
- this.options.modifiers = {};
- Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
- _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
- });
- // Refactoring modifiers' list (Object => Array)
- this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
- return _extends({
- name: name
- }, _this.options.modifiers[name]);
- })
- // sort the modifiers by order
- .sort(function (a, b) {
- return a.order - b.order;
- });
- // modifiers have the ability to execute arbitrary code when Popper.js get inited
- // such code is executed in the same order of its modifier
- // they could add new properties to their options configuration
- // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
- this.modifiers.forEach(function (modifierOptions) {
- if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
- modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
- }
- });
- // fire the first update to position the popper in the right place
- this.update();
- var eventsEnabled = this.options.eventsEnabled;
- if (eventsEnabled) {
- // setup event listeners, they will take care of update the position in specific situations
- this.enableEventListeners();
- }
- this.state.eventsEnabled = eventsEnabled;
- }
- // We can't use class properties because they don't get listed in the
- // class prototype and break stuff like Sinon stubs
- createClass(Popper, [{
- key: 'update',
- value: function update$$1() {
- return update.call(this);
- }
- }, {
- key: 'destroy',
- value: function destroy$$1() {
- return destroy.call(this);
- }
- }, {
- key: 'enableEventListeners',
- value: function enableEventListeners$$1() {
- return enableEventListeners.call(this);
- }
- }, {
- key: 'disableEventListeners',
- value: function disableEventListeners$$1() {
- return disableEventListeners.call(this);
- }
- /**
- * Schedules an update. It will run on the next UI update available.
- * @method scheduleUpdate
- * @memberof Popper
- */
- /**
- * Collection of utilities useful when writing custom modifiers.
- * Starting from version 1.7, this method is available only if you
- * include `popper-utils.js` before `popper.js`.
- *
- * **DEPRECATION**: This way to access PopperUtils is deprecated
- * and will be removed in v2! Use the PopperUtils module directly instead.
- * Due to the high instability of the methods contained in Utils, we can't
- * guarantee them to follow semver. Use them at your own risk!
- * @static
- * @private
- * @type {Object}
- * @deprecated since version 1.8
- * @member Utils
- * @memberof Popper
- */
- }]);
- return Popper;
- }();
- /**
- * The `referenceObject` is an object that provides an interface compatible with Popper.js
- * and lets you use it as replacement of a real DOM node.<br />
- * You can use this method to position a popper relatively to a set of coordinates
- * in case you don't have a DOM node to use as reference.
- *
- * ```
- * new Popper(referenceObject, popperNode);
- * ```
- *
- * NB: This feature isn't supported in Internet Explorer 10.
- * @name referenceObject
- * @property {Function} data.getBoundingClientRect
- * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
- * @property {number} data.clientWidth
- * An ES6 getter that will return the width of the virtual reference element.
- * @property {number} data.clientHeight
- * An ES6 getter that will return the height of the virtual reference element.
- */
- Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
- Popper.placements = placements;
- Popper.Defaults = Defaults;
- /* harmony default export */ __webpack_exports__["default"] = (Popper);
- //# sourceMappingURL=popper.js.map
- /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/webpack/buildin/global.js")))
- /***/ }),
- /***/ "./node_modules/process/browser.js":
- /***/ (function(module, exports) {
- // shim for using process in browser
- var process = module.exports = {};
- // cached from whatever global is present so that test runners that stub it
- // don't break things. But we need to wrap it in a try catch in case it is
- // wrapped in strict mode code which doesn't define any globals. It's inside a
- // function because try/catches deoptimize in certain engines.
- var cachedSetTimeout;
- var cachedClearTimeout;
- function defaultSetTimout() {
- throw new Error('setTimeout has not been defined');
- }
- function defaultClearTimeout () {
- throw new Error('clearTimeout has not been defined');
- }
- (function () {
- try {
- if (typeof setTimeout === 'function') {
- cachedSetTimeout = setTimeout;
- } else {
- cachedSetTimeout = defaultSetTimout;
- }
- } catch (e) {
- cachedSetTimeout = defaultSetTimout;
- }
- try {
- if (typeof clearTimeout === 'function') {
- cachedClearTimeout = clearTimeout;
- } else {
- cachedClearTimeout = defaultClearTimeout;
- }
- } catch (e) {
- cachedClearTimeout = defaultClearTimeout;
- }
- } ())
- function runTimeout(fun) {
- if (cachedSetTimeout === setTimeout) {
- //normal enviroments in sane situations
- return setTimeout(fun, 0);
- }
- // if setTimeout wasn't available but was latter defined
- if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
- cachedSetTimeout = setTimeout;
- return setTimeout(fun, 0);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedSetTimeout(fun, 0);
- } catch(e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedSetTimeout.call(null, fun, 0);
- } catch(e){
- // 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
- return cachedSetTimeout.call(this, fun, 0);
- }
- }
- }
- function runClearTimeout(marker) {
- if (cachedClearTimeout === clearTimeout) {
- //normal enviroments in sane situations
- return clearTimeout(marker);
- }
- // if clearTimeout wasn't available but was latter defined
- if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
- cachedClearTimeout = clearTimeout;
- return clearTimeout(marker);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedClearTimeout(marker);
- } catch (e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedClearTimeout.call(null, marker);
- } catch (e){
- // 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.
- // Some versions of I.E. have different rules for clearTimeout vs setTimeout
- return cachedClearTimeout.call(this, marker);
- }
- }
- }
- var queue = [];
- var draining = false;
- var currentQueue;
- var queueIndex = -1;
- function cleanUpNextTick() {
- if (!draining || !currentQueue) {
- return;
- }
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
- }
- function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = runTimeout(cleanUpNextTick);
- draining = true;
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- runClearTimeout(timeout);
- }
- process.nextTick = function (fun) {
- var args = new Array(arguments.length - 1);
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i];
- }
- }
- queue.push(new Item(fun, args));
- if (queue.length === 1 && !draining) {
- runTimeout(drainQueue);
- }
- };
- // v8 likes predictible objects
- function Item(fun, array) {
- this.fun = fun;
- this.array = array;
- }
- Item.prototype.run = function () {
- this.fun.apply(null, this.array);
- };
- process.title = 'browser';
- process.browser = true;
- process.env = {};
- process.argv = [];
- process.version = ''; // empty string to avoid regexp issues
- process.versions = {};
- function noop() {}
- process.on = noop;
- process.addListener = noop;
- process.once = noop;
- process.off = noop;
- process.removeListener = noop;
- process.removeAllListeners = noop;
- process.emit = noop;
- process.prependListener = noop;
- process.prependOnceListener = noop;
- process.listeners = function (name) { return [] }
- process.binding = function (name) {
- throw new Error('process.binding is not supported');
- };
- process.cwd = function () { return '/' };
- process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
- };
- process.umask = function() { return 0; };
- /***/ }),
- /***/ "./node_modules/setimmediate/setImmediate.js":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
- "use strict";
- if (global.setImmediate) {
- return;
- }
- var nextHandle = 1; // Spec says greater than zero
- var tasksByHandle = {};
- var currentlyRunningATask = false;
- var doc = global.document;
- var registerImmediate;
- function setImmediate(callback) {
- // Callback can either be a function or a string
- if (typeof callback !== "function") {
- callback = new Function("" + callback);
- }
- // Copy function arguments
- var args = new Array(arguments.length - 1);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i + 1];
- }
- // Store and register the task
- var task = { callback: callback, args: args };
- tasksByHandle[nextHandle] = task;
- registerImmediate(nextHandle);
- return nextHandle++;
- }
- function clearImmediate(handle) {
- delete tasksByHandle[handle];
- }
- function run(task) {
- var callback = task.callback;
- var args = task.args;
- switch (args.length) {
- case 0:
- callback();
- break;
- case 1:
- callback(args[0]);
- break;
- case 2:
- callback(args[0], args[1]);
- break;
- case 3:
- callback(args[0], args[1], args[2]);
- break;
- default:
- callback.apply(undefined, args);
- break;
- }
- }
- function runIfPresent(handle) {
- // From the spec: "Wait until any invocations of this algorithm started before this one have completed."
- // So if we're currently running a task, we'll need to delay this invocation.
- if (currentlyRunningATask) {
- // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
- // "too much recursion" error.
- setTimeout(runIfPresent, 0, handle);
- } else {
- var task = tasksByHandle[handle];
- if (task) {
- currentlyRunningATask = true;
- try {
- run(task);
- } finally {
- clearImmediate(handle);
- currentlyRunningATask = false;
- }
- }
- }
- }
- function installNextTickImplementation() {
- registerImmediate = function(handle) {
- process.nextTick(function () { runIfPresent(handle); });
- };
- }
- function canUsePostMessage() {
- // The test against `importScripts` prevents this implementation from being installed inside a web worker,
- // where `global.postMessage` means something completely different and can't be used for this purpose.
- if (global.postMessage && !global.importScripts) {
- var postMessageIsAsynchronous = true;
- var oldOnMessage = global.onmessage;
- global.onmessage = function() {
- postMessageIsAsynchronous = false;
- };
- global.postMessage("", "*");
- global.onmessage = oldOnMessage;
- return postMessageIsAsynchronous;
- }
- }
- function installPostMessageImplementation() {
- // Installs an event handler on `global` for the `message` event: see
- // * https://developer.mozilla.org/en/DOM/window.postMessage
- // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
- var messagePrefix = "setImmediate$" + Math.random() + "$";
- var onGlobalMessage = function(event) {
- if (event.source === global &&
- typeof event.data === "string" &&
- event.data.indexOf(messagePrefix) === 0) {
- runIfPresent(+event.data.slice(messagePrefix.length));
- }
- };
- if (global.addEventListener) {
- global.addEventListener("message", onGlobalMessage, false);
- } else {
- global.attachEvent("onmessage", onGlobalMessage);
- }
- registerImmediate = function(handle) {
- global.postMessage(messagePrefix + handle, "*");
- };
- }
- function installMessageChannelImplementation() {
- var channel = new MessageChannel();
- channel.port1.onmessage = function(event) {
- var handle = event.data;
- runIfPresent(handle);
- };
- registerImmediate = function(handle) {
- channel.port2.postMessage(handle);
- };
- }
- function installReadyStateChangeImplementation() {
- var html = doc.documentElement;
- registerImmediate = function(handle) {
- // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
- // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
- var script = doc.createElement("script");
- script.onreadystatechange = function () {
- runIfPresent(handle);
- script.onreadystatechange = null;
- html.removeChild(script);
- script = null;
- };
- html.appendChild(script);
- };
- }
- function installSetTimeoutImplementation() {
- registerImmediate = function(handle) {
- setTimeout(runIfPresent, 0, handle);
- };
- }
- // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
- var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
- attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
- // Don't get fooled by e.g. browserify environments.
- if ({}.toString.call(global.process) === "[object process]") {
- // For Node.js before 0.9
- installNextTickImplementation();
- } else if (canUsePostMessage()) {
- // For non-IE10 modern browsers
- installPostMessageImplementation();
- } else if (global.MessageChannel) {
- // For web workers, where supported
- installMessageChannelImplementation();
- } else if (doc && "onreadystatechange" in doc.createElement("script")) {
- // For IE 6–8
- installReadyStateChangeImplementation();
- } else {
- // For older browsers
- installSetTimeoutImplementation();
- }
- attachTo.setImmediate = setImmediate;
- attachTo.clearImmediate = clearImmediate;
- }(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/process/browser.js")))
- /***/ }),
- /***/ "./node_modules/style-loader/lib/addStyles.js":
- /***/ (function(module, exports, __webpack_require__) {
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- var stylesInDom = {};
- var memoize = function (fn) {
- var memo;
- return function () {
- if (typeof memo === "undefined") memo = fn.apply(this, arguments);
- return memo;
- };
- };
- var isOldIE = memoize(function () {
- // Test for IE <= 9 as proposed by Browserhacks
- // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
- // Tests for existence of standard globals is to allow style-loader
- // to operate correctly into non-standard environments
- // @see https://github.com/webpack-contrib/style-loader/issues/177
- return window && document && document.all && !window.atob;
- });
- var getElement = (function (fn) {
- var memo = {};
- return function(selector) {
- if (typeof memo[selector] === "undefined") {
- memo[selector] = fn.call(this, selector);
- }
- return memo[selector]
- };
- })(function (target) {
- return document.querySelector(target)
- });
- var singleton = null;
- var singletonCounter = 0;
- var stylesInsertedAtTop = [];
- var fixUrls = __webpack_require__("./node_modules/style-loader/lib/urls.js");
- module.exports = function(list, options) {
- if (typeof DEBUG !== "undefined" && DEBUG) {
- if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
- }
- options = options || {};
- options.attrs = typeof options.attrs === "object" ? options.attrs : {};
- // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
- // tags it will allow on a page
- if (!options.singleton) options.singleton = isOldIE();
- // By default, add <style> tags to the <head> element
- if (!options.insertInto) options.insertInto = "head";
- // By default, add <style> tags to the bottom of the target
- if (!options.insertAt) options.insertAt = "bottom";
- var styles = listToStyles(list, options);
- addStylesToDom(styles, options);
- return function update (newList) {
- var mayRemove = [];
- for (var i = 0; i < styles.length; i++) {
- var item = styles[i];
- var domStyle = stylesInDom[item.id];
- domStyle.refs--;
- mayRemove.push(domStyle);
- }
- if(newList) {
- var newStyles = listToStyles(newList, options);
- addStylesToDom(newStyles, options);
- }
- for (var i = 0; i < mayRemove.length; i++) {
- var domStyle = mayRemove[i];
- if(domStyle.refs === 0) {
- for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();
- delete stylesInDom[domStyle.id];
- }
- }
- };
- };
- function addStylesToDom (styles, options) {
- for (var i = 0; i < styles.length; i++) {
- var item = styles[i];
- var domStyle = stylesInDom[item.id];
- if(domStyle) {
- domStyle.refs++;
- for(var j = 0; j < domStyle.parts.length; j++) {
- domStyle.parts[j](item.parts[j]);
- }
- for(; j < item.parts.length; j++) {
- domStyle.parts.push(addStyle(item.parts[j], options));
- }
- } else {
- var parts = [];
- for(var j = 0; j < item.parts.length; j++) {
- parts.push(addStyle(item.parts[j], options));
- }
- stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
- }
- }
- }
- function listToStyles (list, options) {
- var styles = [];
- var newStyles = {};
- for (var i = 0; i < list.length; i++) {
- var item = list[i];
- var id = options.base ? item[0] + options.base : item[0];
- var css = item[1];
- var media = item[2];
- var sourceMap = item[3];
- var part = {css: css, media: media, sourceMap: sourceMap};
- if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});
- else newStyles[id].parts.push(part);
- }
- return styles;
- }
- function insertStyleElement (options, style) {
- var target = getElement(options.insertInto)
- if (!target) {
- throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
- }
- var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
- if (options.insertAt === "top") {
- if (!lastStyleElementInsertedAtTop) {
- target.insertBefore(style, target.firstChild);
- } else if (lastStyleElementInsertedAtTop.nextSibling) {
- target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
- } else {
- target.appendChild(style);
- }
- stylesInsertedAtTop.push(style);
- } else if (options.insertAt === "bottom") {
- target.appendChild(style);
- } else {
- throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
- }
- }
- function removeStyleElement (style) {
- if (style.parentNode === null) return false;
- style.parentNode.removeChild(style);
- var idx = stylesInsertedAtTop.indexOf(style);
- if(idx >= 0) {
- stylesInsertedAtTop.splice(idx, 1);
- }
- }
- function createStyleElement (options) {
- var style = document.createElement("style");
- options.attrs.type = "text/css";
- addAttrs(style, options.attrs);
- insertStyleElement(options, style);
- return style;
- }
- function createLinkElement (options) {
- var link = document.createElement("link");
- options.attrs.type = "text/css";
- options.attrs.rel = "stylesheet";
- addAttrs(link, options.attrs);
- insertStyleElement(options, link);
- return link;
- }
- function addAttrs (el, attrs) {
- Object.keys(attrs).forEach(function (key) {
- el.setAttribute(key, attrs[key]);
- });
- }
- function addStyle (obj, options) {
- var style, update, remove, result;
- // If a transform function was defined, run it on the css
- if (options.transform && obj.css) {
- result = options.transform(obj.css);
- if (result) {
- // If transform returns a value, use that instead of the original css.
- // This allows running runtime transformations on the css.
- obj.css = result;
- } else {
- // If the transform function returns a falsy value, don't add this css.
- // This allows conditional loading of css
- return function() {
- // noop
- };
- }
- }
- if (options.singleton) {
- var styleIndex = singletonCounter++;
- style = singleton || (singleton = createStyleElement(options));
- update = applyToSingletonTag.bind(null, style, styleIndex, false);
- remove = applyToSingletonTag.bind(null, style, styleIndex, true);
- } else if (
- obj.sourceMap &&
- typeof URL === "function" &&
- typeof URL.createObjectURL === "function" &&
- typeof URL.revokeObjectURL === "function" &&
- typeof Blob === "function" &&
- typeof btoa === "function"
- ) {
- style = createLinkElement(options);
- update = updateLink.bind(null, style, options);
- remove = function () {
- removeStyleElement(style);
- if(style.href) URL.revokeObjectURL(style.href);
- };
- } else {
- style = createStyleElement(options);
- update = applyToTag.bind(null, style);
- remove = function () {
- removeStyleElement(style);
- };
- }
- update(obj);
- return function updateStyle (newObj) {
- if (newObj) {
- if (
- newObj.css === obj.css &&
- newObj.media === obj.media &&
- newObj.sourceMap === obj.sourceMap
- ) {
- return;
- }
- update(obj = newObj);
- } else {
- remove();
- }
- };
- }
- var replaceText = (function () {
- var textStore = [];
- return function (index, replacement) {
- textStore[index] = replacement;
- return textStore.filter(Boolean).join('\n');
- };
- })();
- function applyToSingletonTag (style, index, remove, obj) {
- var css = remove ? "" : obj.css;
- if (style.styleSheet) {
- style.styleSheet.cssText = replaceText(index, css);
- } else {
- var cssNode = document.createTextNode(css);
- var childNodes = style.childNodes;
- if (childNodes[index]) style.removeChild(childNodes[index]);
- if (childNodes.length) {
- style.insertBefore(cssNode, childNodes[index]);
- } else {
- style.appendChild(cssNode);
- }
- }
- }
- function applyToTag (style, obj) {
- var css = obj.css;
- var media = obj.media;
- if(media) {
- style.setAttribute("media", media)
- }
- if(style.styleSheet) {
- style.styleSheet.cssText = css;
- } else {
- while(style.firstChild) {
- style.removeChild(style.firstChild);
- }
- style.appendChild(document.createTextNode(css));
- }
- }
- function updateLink (link, options, obj) {
- var css = obj.css;
- var sourceMap = obj.sourceMap;
- /*
- If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
- and there is no publicPath defined then lets turn convertToAbsoluteUrls
- on by default. Otherwise default to the convertToAbsoluteUrls option
- directly
- */
- var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;
- if (options.convertToAbsoluteUrls || autoFixUrls) {
- css = fixUrls(css);
- }
- if (sourceMap) {
- // http://stackoverflow.com/a/26603875
- css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
- }
- var blob = new Blob([css], { type: "text/css" });
- var oldSrc = link.href;
- link.href = URL.createObjectURL(blob);
- if(oldSrc) URL.revokeObjectURL(oldSrc);
- }
- /***/ }),
- /***/ "./node_modules/style-loader/lib/urls.js":
- /***/ (function(module, exports) {
- /**
- * When source maps are enabled, `style-loader` uses a link element with a data-uri to
- * embed the css on the page. This breaks all relative urls because now they are relative to a
- * bundle instead of the current page.
- *
- * One solution is to only use full urls, but that may be impossible.
- *
- * Instead, this function "fixes" the relative urls to be absolute according to the current page location.
- *
- * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
- *
- */
- module.exports = function (css) {
- // get current location
- var location = typeof window !== "undefined" && window.location;
- if (!location) {
- throw new Error("fixUrls requires window.location");
- }
- // blank or null?
- if (!css || typeof css !== "string") {
- return css;
- }
- var baseUrl = location.protocol + "//" + location.host;
- var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
- // convert each url(...)
- /*
- This regular expression is just a way to recursively match brackets within
- a string.
- /url\s*\( = Match on the word "url" with any whitespace after it and then a parens
- ( = Start a capturing group
- (?: = Start a non-capturing group
- [^)(] = Match anything that isn't a parentheses
- | = OR
- \( = Match a start parentheses
- (?: = Start another non-capturing groups
- [^)(]+ = Match anything that isn't a parentheses
- | = OR
- \( = Match a start parentheses
- [^)(]* = Match anything that isn't a parentheses
- \) = Match a end parentheses
- ) = End Group
- *\) = Match anything and then a close parens
- ) = Close non-capturing group
- * = Match anything
- ) = Close capturing group
- \) = Match a close parens
- /gi = Get all matches, not the first. Be case insensitive.
- */
- var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
- // strip quotes (if they exist)
- var unquotedOrigUrl = origUrl
- .trim()
- .replace(/^"(.*)"$/, function(o, $1){ return $1; })
- .replace(/^'(.*)'$/, function(o, $1){ return $1; });
- // already a full url? no change
- if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(unquotedOrigUrl)) {
- return fullMatch;
- }
- // convert the url to a full url
- var newUrl;
- if (unquotedOrigUrl.indexOf("//") === 0) {
- //TODO: should we add protocol?
- newUrl = unquotedOrigUrl;
- } else if (unquotedOrigUrl.indexOf("/") === 0) {
- // path should be relative to the base url
- newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
- } else {
- // path should be relative to current directory
- newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
- }
- // send back the fixed url(...)
- return "url(" + JSON.stringify(newUrl) + ")";
- });
- // send back the fixed css
- return fixedCss;
- };
- /***/ }),
- /***/ "./node_modules/sweetalert/dist/sweetalert.min.js":
- /***/ (function(module, exports, __webpack_require__) {
- /* 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"}}}])});
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/timers-browserify/main.js").setImmediate, __webpack_require__("./node_modules/timers-browserify/main.js").clearImmediate))
- /***/ }),
- /***/ "./node_modules/timers-browserify/main.js":
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
- (typeof self !== "undefined" && self) ||
- window;
- var apply = Function.prototype.apply;
- // DOM APIs, for completeness
- exports.setTimeout = function() {
- return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
- };
- exports.setInterval = function() {
- return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
- };
- exports.clearTimeout =
- exports.clearInterval = function(timeout) {
- if (timeout) {
- timeout.close();
- }
- };
- function Timeout(id, clearFn) {
- this._id = id;
- this._clearFn = clearFn;
- }
- Timeout.prototype.unref = Timeout.prototype.ref = function() {};
- Timeout.prototype.close = function() {
- this._clearFn.call(scope, this._id);
- };
- // Does not start the time, just sets up the members needed.
- exports.enroll = function(item, msecs) {
- clearTimeout(item._idleTimeoutId);
- item._idleTimeout = msecs;
- };
- exports.unenroll = function(item) {
- clearTimeout(item._idleTimeoutId);
- item._idleTimeout = -1;
- };
- exports._unrefActive = exports.active = function(item) {
- clearTimeout(item._idleTimeoutId);
- var msecs = item._idleTimeout;
- if (msecs >= 0) {
- item._idleTimeoutId = setTimeout(function onTimeout() {
- if (item._onTimeout)
- item._onTimeout();
- }, msecs);
- }
- };
- // setimmediate attaches itself to the global object
- __webpack_require__("./node_modules/setimmediate/setImmediate.js");
- // On some exotic environments, it's not clear which object `setimmediate` was
- // able to install onto. Search each possibility in the same order as the
- // `setimmediate` library.
- exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
- (typeof global !== "undefined" && global.setImmediate) ||
- (this && this.setImmediate);
- exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
- (typeof global !== "undefined" && global.clearImmediate) ||
- (this && this.clearImmediate);
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js")))
- /***/ }),
- /***/ "./node_modules/vue-functional-data-merge/dist/lib.esm.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return mergeData; });
- 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}
- //# sourceMappingURL=lib.esm.js.map
- /***/ }),
- /***/ "./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js":
- /***/ (function(module, exports, __webpack_require__) {
- /*!
- * vue-infinite-loading v2.4.3
- * (c) 2016-2018 PeachScript
- * MIT License
- */
- !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}])});
- /***/ }),
- /***/ "./node_modules/vue-loader/lib/runtime/component-normalizer.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = normalizeComponent;
- /* globals __VUE_SSR_CONTEXT__ */
- // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
- // This module is a runtime utility for cleaner component module output and will
- // be included in the final webpack user bundle.
- function normalizeComponent (
- scriptExports,
- render,
- staticRenderFns,
- functionalTemplate,
- injectStyles,
- scopeId,
- moduleIdentifier, /* server only */
- shadowMode /* vue-cli only */
- ) {
- scriptExports = scriptExports || {}
- // ES6 modules interop
- var type = typeof scriptExports.default
- if (type === 'object' || type === 'function') {
- scriptExports = scriptExports.default
- }
- // Vue.extend constructor export interop
- var options = typeof scriptExports === 'function'
- ? scriptExports.options
- : scriptExports
- // render functions
- if (render) {
- options.render = render
- options.staticRenderFns = staticRenderFns
- options._compiled = true
- }
- // functional template
- if (functionalTemplate) {
- options.functional = true
- }
- // scopedId
- if (scopeId) {
- options._scopeId = scopeId
- }
- var hook
- if (moduleIdentifier) { // server build
- hook = function (context) {
- // 2.3 injection
- context =
- context || // cached call
- (this.$vnode && this.$vnode.ssrContext) || // stateful
- (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
- // 2.2 with runInNewContext: true
- if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
- context = __VUE_SSR_CONTEXT__
- }
- // inject component styles
- if (injectStyles) {
- injectStyles.call(this, context)
- }
- // register component module identifier for async chunk inferrence
- if (context && context._registeredComponents) {
- context._registeredComponents.add(moduleIdentifier)
- }
- }
- // used by ssr in case component is cached and beforeCreate
- // never gets called
- options._ssrRegister = hook
- } else if (injectStyles) {
- hook = shadowMode
- ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
- : injectStyles
- }
- if (hook) {
- if (options.functional) {
- // for template-only hot-reload because in that case the render fn doesn't
- // go through the normalizer
- options._injectStyles = hook
- // register for functioal component in vue file
- var originalRender = options.render
- options.render = function renderWithStyleInjection (h, context) {
- hook.call(context)
- return originalRender(h, context)
- }
- } else {
- // inject component registration as beforeCreate hook
- var existing = options.beforeCreate
- options.beforeCreate = existing
- ? [].concat(existing, hook)
- : [hook]
- }
- }
- return {
- exports: scriptExports,
- options: options
- }
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
- var render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("div", { staticClass: "card mb-4" }, [
- _c("div", { staticClass: "card-header bg-white" }, [
- _c("span", { staticClass: "font-weight-bold h5" }, [
- _vm._v("Who to follow")
- ]),
- _vm._v(" "),
- _c("span", { staticClass: "small float-right font-weight-bold" }, [
- _c(
- "a",
- {
- staticClass: "pr-2",
- attrs: { href: "javascript:void(0);" },
- on: { click: _vm.fetchData }
- },
- [_vm._v("Refresh")]
- )
- ])
- ]),
- _vm._v(" "),
- _c(
- "div",
- { staticClass: "card-body" },
- [
- _vm.results.length == 0 ? _c("div", [_vm._m(0)]) : _vm._e(),
- _vm._v(" "),
- _vm._l(_vm.results, function(user, index) {
- return _c("div", [
- _c(
- "div",
- { staticClass: "media ", staticStyle: { width: "100%" } },
- [
- _c("img", {
- staticClass: "mr-3",
- attrs: { src: user.avatar, width: "40px" }
- }),
- _vm._v(" "),
- _c(
- "div",
- { staticClass: "media-body", staticStyle: { width: "70%" } },
- [
- _c(
- "p",
- {
- staticClass: "my-0 font-weight-bold text-truncate",
- staticStyle: { "text-overflow": "hidden" }
- },
- [
- _vm._v(_vm._s(user.acct) + " "),
- _c(
- "span",
- { staticClass: "text-muted font-weight-normal" },
- [_vm._v("@" + _vm._s(user.username))]
- )
- ]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "btn btn-outline-primary px-3 py-0",
- staticStyle: { "border-radius": "20px" },
- attrs: { href: user.url }
- },
- [_vm._v("Follow")]
- )
- ]
- )
- ]
- ),
- _vm._v(" "),
- index != _vm.results.length - 1 ? _c("div", [_c("hr")]) : _vm._e()
- ])
- })
- ],
- 2
- )
- ])
- }
- var staticRenderFns = [
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("p", { staticClass: "mb-0 font-weight-bold" }, [
- _vm._v("You are not following anyone yet, try the "),
- _c("a", { attrs: { href: "/discover" } }, [_vm._v("discover")]),
- _vm._v(" feature to find users to follow.")
- ])
- }
- ]
- render._withStripped = true
- if (false) {
- module.hot.accept()
- if (module.hot.data) {
- require("vue-hot-reload-api") .rerender("data-v-1b3c4b52", { render: render, staticRenderFns: staticRenderFns })
- }
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
- var render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _vm.status.sensitive == true
- ? _c("div", [
- _c(
- "details",
- { staticClass: "details-animated" },
- [
- _c("summary", [
- _c("p", { staticClass: "mb-0 lead font-weight-bold" }, [
- _vm._v(
- _vm._s(
- _vm.status.spoiler_text
- ? _vm.status.spoiler_text
- : "CW / NSFW / Hidden Media"
- )
- )
- ]),
- _vm._v(" "),
- _c("p", { staticClass: "font-weight-light" }, [
- _vm._v("(click to show)")
- ])
- ]),
- _vm._v(" "),
- _c(
- "b-carousel",
- {
- staticStyle: { "text-shadow": "1px 1px 2px #333" },
- attrs: {
- id: _vm.status.id + "-carousel",
- controls: "",
- indicators: "",
- background: "#ffffff",
- interval: 0
- }
- },
- _vm._l(_vm.status.media_attachments, function(img, index) {
- return _c("b-carousel-slide", { key: img.id }, [
- _c("img", {
- staticClass: "d-block img-fluid w-100",
- attrs: {
- slot: "img",
- src: img.url,
- alt: img.description,
- title: img.description
- },
- slot: "img"
- })
- ])
- }),
- 1
- )
- ],
- 1
- )
- ])
- : _c(
- "div",
- [
- _c(
- "b-carousel",
- {
- staticStyle: { "text-shadow": "1px 1px 2px #333" },
- attrs: {
- id: _vm.status.id + "-carousel",
- controls: "",
- indicators: "",
- background: "#ffffff",
- interval: 0
- }
- },
- _vm._l(_vm.status.media_attachments, function(img, index) {
- return _c("b-carousel-slide", { key: img.id }, [
- _c("img", {
- staticClass: "d-block img-fluid w-100",
- attrs: {
- slot: "img",
- src: img.url,
- alt: img.description,
- title: img.description
- },
- slot: "img"
- })
- ])
- }),
- 1
- )
- ],
- 1
- )
- }
- var staticRenderFns = []
- render._withStripped = true
- if (false) {
- module.hot.accept()
- if (module.hot.data) {
- require("vue-hot-reload-api") .rerender("data-v-1c78113d", { render: render, staticRenderFns: staticRenderFns })
- }
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
- var render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c(
- "div",
- { staticClass: "postComponent d-none" },
- [
- _c("div", { staticClass: "container px-0 mt-md-4" }, [
- _c(
- "div",
- {
- staticClass:
- "card card-md-rounded-0 status-container orientation-unknown"
- },
- [
- _c("div", { staticClass: "row px-0 mx-0" }, [
- _c(
- "div",
- {
- staticClass:
- "d-flex d-md-none align-items-center justify-content-between card-header bg-white w-100"
- },
- [
- _c(
- "a",
- {
- staticClass:
- "d-flex align-items-center status-username text-truncate",
- attrs: {
- href: _vm.statusProfileUrl,
- "data-toggle": "tooltip",
- "data-placement": "bottom",
- title: _vm.statusUsername
- }
- },
- [
- _c("div", { staticClass: "status-avatar mr-2" }, [
- _c("img", {
- staticStyle: { "border-radius": "12px" },
- attrs: {
- src: _vm.statusAvatar,
- width: "24px",
- height: "24px"
- }
- })
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "username" }, [
- _c(
- "span",
- {
- staticClass:
- "username-link font-weight-bold text-dark"
- },
- [_vm._v(_vm._s(_vm.statusUsername))]
- )
- ])
- ]
- ),
- _vm._v(" "),
- _c("div", { staticClass: "float-right" }, [
- _c("div", { staticClass: "post-actions" }, [
- _c("div", { staticClass: "dropdown" }, [
- _vm._m(0),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass: "dropdown-menu dropdown-menu-right",
- attrs: { "aria-labelledby": "dropdownMenuButton" }
- },
- [
- _c("span", { staticClass: "menu-user d-none" }, [
- _c(
- "a",
- {
- staticClass: "dropdown-item font-weight-bold",
- attrs: { href: _vm.reportUrl() }
- },
- [_vm._v("Report")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "dropdown-item font-weight-bold",
- on: { click: _vm.muteProfile }
- },
- [_vm._v("Mute Profile")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "dropdown-item font-weight-bold",
- on: { click: _vm.blockProfile }
- },
- [_vm._v("Block Profile")]
- )
- ]),
- _vm._v(" "),
- _c("span", { staticClass: "menu-author d-none" }, [
- _c(
- "a",
- {
- staticClass: "dropdown-item font-weight-bold",
- attrs: { href: _vm.editUrl() }
- },
- [_vm._v("Edit")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold text-danger",
- on: { click: _vm.deletePost }
- },
- [_vm._v("Delete")]
- )
- ])
- ]
- )
- ])
- ])
- ])
- ]
- ),
- _vm._v(" "),
- _c("div", { staticClass: "col-12 col-md-8 px-0 mx-0" }, [
- _vm._m(1),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass:
- "postPresenterContainer d-none d-flex justify-content-center align-items-center"
- },
- [
- _vm.status.pf_type === "photo"
- ? _c(
- "div",
- { staticClass: "w-100" },
- [
- _c("photo-presenter", {
- attrs: { status: _vm.status }
- })
- ],
- 1
- )
- : _vm.status.pf_type === "video"
- ? _c(
- "div",
- { staticClass: "w-100" },
- [
- _c("video-presenter", {
- attrs: { status: _vm.status }
- })
- ],
- 1
- )
- : _vm.status.pf_type === "photo:album"
- ? _c(
- "div",
- { staticClass: "w-100" },
- [
- _c("photo-album-presenter", {
- attrs: { status: _vm.status }
- })
- ],
- 1
- )
- : _vm.status.pf_type === "video:album"
- ? _c(
- "div",
- { staticClass: "w-100" },
- [
- _c("video-album-presenter", {
- attrs: { status: _vm.status }
- })
- ],
- 1
- )
- : _vm.status.pf_type === "photo:video:album"
- ? _c(
- "div",
- { staticClass: "w-100" },
- [
- _c("mixed-album-presenter", {
- attrs: { status: _vm.status }
- })
- ],
- 1
- )
- : _c("div", { staticClass: "w-100" }, [
- _c(
- "p",
- {
- staticClass:
- "text-center p-0 font-weight-bold text-white"
- },
- [
- _vm._v(
- "Error: Problem rendering preview."
- )
- ]
- )
- ])
- ]
- )
- ]),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass:
- "col-12 col-md-4 px-0 d-flex flex-column border-left border-md-left-0"
- },
- [
- _c(
- "div",
- {
- staticClass:
- "d-md-flex d-none align-items-center justify-content-between card-header py-3 bg-white"
- },
- [
- _c(
- "a",
- {
- staticClass:
- "d-flex align-items-center status-username text-truncate",
- attrs: {
- href: _vm.statusProfileUrl,
- "data-toggle": "tooltip",
- "data-placement": "bottom",
- title: _vm.statusUsername
- }
- },
- [
- _c("div", { staticClass: "status-avatar mr-2" }, [
- _c("img", {
- staticStyle: { "border-radius": "12px" },
- attrs: {
- src: _vm.statusAvatar,
- width: "24px",
- height: "24px"
- }
- })
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "username" }, [
- _c(
- "span",
- {
- staticClass:
- "username-link font-weight-bold text-dark"
- },
- [_vm._v(_vm._s(_vm.statusUsername))]
- )
- ])
- ]
- ),
- _vm._v(" "),
- _c("div", { staticClass: "float-right" }, [
- _c("div", { staticClass: "post-actions" }, [
- _c("div", { staticClass: "dropdown" }, [
- _vm._m(2),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass:
- "dropdown-menu dropdown-menu-right",
- attrs: {
- "aria-labelledby": "dropdownMenuButton"
- }
- },
- [
- _c(
- "span",
- { staticClass: "menu-user d-none" },
- [
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold",
- attrs: { href: _vm.reportUrl() }
- },
- [_vm._v("Report")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold",
- on: { click: _vm.muteProfile }
- },
- [_vm._v("Mute Profile")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold",
- on: { click: _vm.blockProfile }
- },
- [_vm._v("Block Profile")]
- )
- ]
- ),
- _vm._v(" "),
- _c(
- "span",
- { staticClass: "menu-author d-none" },
- [
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold",
- attrs: { href: _vm.editUrl() }
- },
- [_vm._v("Edit")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold text-danger",
- on: { click: _vm.deletePost }
- },
- [_vm._v("Delete")]
- )
- ]
- )
- ]
- )
- ])
- ])
- ])
- ]
- ),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass:
- "d-flex flex-md-column flex-column-reverse h-100"
- },
- [
- _c("div", { staticClass: "card-body status-comments" }, [
- _c(
- "div",
- { staticClass: "status-comment" },
- [
- _c(
- "p",
- {
- staticClass: "mb-1 read-more",
- staticStyle: { overflow: "hidden" }
- },
- [
- _c(
- "span",
- { staticClass: "font-weight-bold pr-1" },
- [_vm._v(_vm._s(_vm.statusUsername))]
- ),
- _vm._v(" "),
- _c("span", {
- staticClass: "comment-text",
- attrs: {
- id: _vm.status.id + "-status-readmore"
- },
- domProps: {
- innerHTML: _vm._s(_vm.status.content)
- }
- })
- ]
- ),
- _vm._v(" "),
- _c("post-comments", {
- attrs: {
- user: this.user,
- "post-id": _vm.statusId,
- "post-username": _vm.statusUsername
- }
- })
- ],
- 1
- )
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "card-body flex-grow-0 py-1" }, [
- _c("div", { staticClass: "reactions my-1" }, [
- _c("h3", {
- class: [
- _vm.reactions.liked
- ? "fas fa-heart text-danger pr-3 m-0"
- : "far fa-heart pr-3 m-0 like-btn"
- ],
- attrs: { title: "Like" },
- on: { click: _vm.likeStatus }
- }),
- _vm._v(" "),
- _c("h3", {
- staticClass: "far fa-comment pr-3 m-0",
- attrs: { title: "Comment" },
- on: { click: _vm.commentFocus }
- }),
- _vm._v(" "),
- _c("h3", {
- class: [
- _vm.reactions.shared
- ? "far fa-share-square pr-3 m-0 text-primary"
- : "far fa-share-square pr-3 m-0 share-btn"
- ],
- attrs: { title: "Share" },
- on: { click: _vm.shareStatus }
- }),
- _vm._v(" "),
- _c("h3", {
- class: [
- _vm.reactions.bookmarked
- ? "fas fa-bookmark text-warning m-0 float-right"
- : "far fa-bookmark m-0 float-right"
- ],
- attrs: { title: "Bookmark" },
- on: { click: _vm.bookmarkStatus }
- })
- ]),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass: "reaction-counts font-weight-bold mb-0"
- },
- [
- _c(
- "span",
- {
- staticStyle: { cursor: "pointer" },
- on: { click: _vm.likesModal }
- },
- [
- _c("span", { staticClass: "like-count" }, [
- _vm._v(
- _vm._s(_vm.status.favourites_count || 0)
- )
- ]),
- _vm._v(" likes\n ")
- ]
- ),
- _vm._v(" "),
- _c(
- "span",
- {
- staticClass: "float-right",
- staticStyle: { cursor: "pointer" },
- on: { click: _vm.sharesModal }
- },
- [
- _c(
- "span",
- { staticClass: "share-count pl-4" },
- [
- _vm._v(
- _vm._s(_vm.status.reblogs_count || 0)
- )
- ]
- ),
- _vm._v(" shares\n ")
- ]
- )
- ]
- ),
- _vm._v(" "),
- _c("div", { staticClass: "timestamp" }, [
- _c(
- "a",
- {
- staticClass: "small text-muted",
- attrs: { href: _vm.statusUrl }
- },
- [
- _vm._v(
- "\n " +
- _vm._s(_vm.timestampFormat()) +
- "\n "
- )
- ]
- )
- ])
- ])
- ]
- ),
- _vm._v(" "),
- _c(
- "div",
- { staticClass: "card-footer bg-white sticky-md-bottom" },
- [
- _vm._m(3),
- _vm._v(" "),
- _c(
- "form",
- {
- staticClass: "comment-form d-none",
- attrs: {
- method: "post",
- action: "/i/comment",
- "data-id": _vm.statusId,
- "data-truncate": "false"
- }
- },
- [
- _c("input", {
- attrs: { type: "hidden", name: "_token", value: "" }
- }),
- _vm._v(" "),
- _c("input", {
- attrs: { type: "hidden", name: "item" },
- domProps: { value: _vm.statusId }
- }),
- _vm._v(" "),
- _c("input", {
- staticClass: "form-control",
- attrs: {
- name: "comment",
- placeholder: "Add a comment...",
- autocomplete: "off"
- }
- }),
- _vm._v(" "),
- _c("input", {
- staticClass: "btn btn-primary comment-submit",
- attrs: { type: "submit", value: "Send" }
- })
- ]
- )
- ]
- )
- ]
- )
- ])
- ]
- )
- ]),
- _vm._v(" "),
- _c(
- "b-modal",
- {
- ref: "likesModal",
- attrs: {
- id: "l-modal",
- "hide-footer": "",
- centered: "",
- title: "Likes",
- "body-class": "list-group-flush p-0"
- }
- },
- [
- _c(
- "div",
- { staticClass: "list-group" },
- [
- _vm._l(_vm.likes, function(user) {
- return _c("div", { staticClass: "list-group-item border-0" }, [
- _c("div", { staticClass: "media" }, [
- _c("a", { attrs: { href: user.url } }, [
- _c("img", {
- staticClass: "mr-3 rounded-circle box-shadow",
- attrs: {
- src: user.avatar,
- alt: user.username + "'s avatar",
- width: "30px"
- }
- })
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "media-body" }, [
- _c(
- "p",
- {
- staticClass: "mb-0",
- staticStyle: { "font-size": "14px" }
- },
- [
- _c(
- "a",
- {
- staticClass: "font-weight-bold text-dark",
- attrs: { href: user.url }
- },
- [
- _vm._v(
- "\n " +
- _vm._s(user.username) +
- "\n "
- )
- ]
- )
- ]
- ),
- _vm._v(" "),
- _c(
- "p",
- {
- staticClass: "text-muted mb-0",
- staticStyle: { "font-size": "14px" }
- },
- [
- _vm._v(
- "\n " +
- _vm._s(user.display_name) +
- "\n "
- )
- ]
- )
- ])
- ])
- ])
- }),
- _vm._v(" "),
- _c(
- "infinite-loading",
- {
- attrs: { spinner: "spiral" },
- on: { infinite: _vm.infiniteLikesHandler }
- },
- [
- _c("div", { attrs: { slot: "no-more" }, slot: "no-more" }),
- _vm._v(" "),
- _c("div", {
- attrs: { slot: "no-results" },
- slot: "no-results"
- })
- ]
- )
- ],
- 2
- )
- ]
- ),
- _vm._v(" "),
- _c(
- "b-modal",
- {
- ref: "sharesModal",
- attrs: {
- id: "s-modal",
- "hide-footer": "",
- centered: "",
- title: "Shares",
- "body-class": "list-group-flush p-0"
- }
- },
- [
- _c(
- "div",
- { staticClass: "list-group" },
- [
- _vm._l(_vm.shares, function(user) {
- return _c("div", { staticClass: "list-group-item border-0" }, [
- _c("div", { staticClass: "media" }, [
- _c("a", { attrs: { href: user.url } }, [
- _c("img", {
- staticClass: "mr-3 rounded-circle box-shadow",
- attrs: {
- src: user.avatar,
- alt: user.username + "'s avatar",
- width: "30px"
- }
- })
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "media-body" }, [
- _c(
- "p",
- {
- staticClass: "mb-0",
- staticStyle: { "font-size": "14px" }
- },
- [
- _c(
- "a",
- {
- staticClass: "font-weight-bold text-dark",
- attrs: { href: user.url }
- },
- [
- _vm._v(
- "\n " +
- _vm._s(user.username) +
- "\n "
- )
- ]
- )
- ]
- ),
- _vm._v(" "),
- _c(
- "p",
- {
- staticClass: "text-muted mb-0",
- staticStyle: { "font-size": "14px" }
- },
- [
- _vm._v(
- "\n " +
- _vm._s(user.display_name) +
- "\n "
- )
- ]
- )
- ])
- ])
- ])
- }),
- _vm._v(" "),
- _c(
- "infinite-loading",
- {
- attrs: { spinner: "spiral" },
- on: { infinite: _vm.infiniteSharesHandler }
- },
- [
- _c("div", { attrs: { slot: "no-more" }, slot: "no-more" }),
- _vm._v(" "),
- _c("div", {
- attrs: { slot: "no-results" },
- slot: "no-results"
- })
- ]
- )
- ],
- 2
- )
- ]
- )
- ],
- 1
- )
- }
- var staticRenderFns = [
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c(
- "button",
- {
- staticClass: "btn btn-link text-dark no-caret dropdown-toggle",
- attrs: {
- type: "button",
- "data-toggle": "dropdown",
- "aria-haspopup": "true",
- "aria-expanded": "false",
- title: "Post options"
- }
- },
- [_c("span", { staticClass: "fas fa-ellipsis-v text-muted" })]
- )
- },
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("div", { staticClass: "postPresenterLoader text-center" }, [
- _c("div", { staticClass: "lds-ring" }, [
- _c("div"),
- _c("div"),
- _c("div"),
- _c("div")
- ])
- ])
- },
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c(
- "button",
- {
- staticClass: "btn btn-link text-dark no-caret dropdown-toggle",
- attrs: {
- type: "button",
- "data-toggle": "dropdown",
- "aria-haspopup": "true",
- "aria-expanded": "false",
- title: "Post options"
- }
- },
- [_c("span", { staticClass: "fas fa-ellipsis-v text-muted" })]
- )
- },
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("div", { staticClass: "comment-form-guest" }, [
- _c("a", { attrs: { href: "/login" } }, [_vm._v("Login")]),
- _vm._v(" to like or comment.\n ")
- ])
- }
- ]
- render._withStripped = true
- if (false) {
- module.hot.accept()
- if (module.hot.data) {
- require("vue-hot-reload-api") .rerender("data-v-1e4d2916", { render: render, staticRenderFns: staticRenderFns })
- }
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
- var render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("div", { staticClass: "container" }, [
- _c("div", { staticClass: "row" }, [
- _c(
- "div",
- {
- staticClass:
- "col-md-8 col-lg-8 pt-2 px-0 my-3 timeline order-2 order-md-1"
- },
- [
- _vm._l(_vm.feed, function(status, index) {
- return _c(
- "div",
- {
- key: status.id,
- staticClass: "card mb-4 status-card card-md-rounded-0",
- attrs: { "data-status-id": status.id }
- },
- [
- _c(
- "div",
- {
- staticClass:
- "card-header d-inline-flex align-items-center bg-white"
- },
- [
- _c("img", {
- staticStyle: { "border-radius": "32px" },
- attrs: {
- src: status.account.avatar,
- width: "32px",
- height: "32px"
- }
- }),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "username font-weight-bold pl-2 text-dark",
- attrs: { href: status.account.url }
- },
- [
- _vm._v(
- "\n\t\t\t\t\t\t" +
- _vm._s(status.account.username) +
- "\n\t\t\t\t\t"
- )
- ]
- ),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass: "text-right",
- staticStyle: { "flex-grow": "1" }
- },
- [
- _c("div", { staticClass: "dropdown" }, [
- _vm._m(0, true),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass: "dropdown-menu dropdown-menu-right",
- attrs: { "aria-labelledby": "dropdownMenuButton" }
- },
- [
- _c(
- "a",
- {
- staticClass: "dropdown-item font-weight-bold",
- attrs: { href: status.url }
- },
- [_vm._v("Go to post")]
- ),
- _vm._v(" "),
- _c(
- "span",
- {
- class: [
- _vm.statusOwner(status) ? "d-none" : ""
- ]
- },
- [
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold",
- attrs: { href: _vm.reportUrl(status) }
- },
- [_vm._v("Report")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold",
- on: {
- click: function($event) {
- _vm.muteProfile(status)
- }
- }
- },
- [_vm._v("Mute Profile")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold",
- on: {
- click: function($event) {
- _vm.blockProfile(status)
- }
- }
- },
- [_vm._v("Block Profile")]
- )
- ]
- ),
- _vm._v(" "),
- _c(
- "span",
- {
- class: [
- _vm.statusOwner(status) ? "" : "d-none"
- ]
- },
- [
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold",
- attrs: { href: _vm.editUrl(status) }
- },
- [_vm._v("Edit")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass:
- "dropdown-item font-weight-bold text-danger",
- on: {
- click: function($event) {
- _vm.deletePost(status)
- }
- }
- },
- [_vm._v("Delete")]
- )
- ]
- )
- ]
- )
- ])
- ]
- )
- ]
- ),
- _vm._v(" "),
- _c("div", { staticClass: "postPresenterContainer" }, [
- status.pf_type === "photo"
- ? _c(
- "div",
- { staticClass: "w-100" },
- [_c("photo-presenter", { attrs: { status: status } })],
- 1
- )
- : status.pf_type === "video"
- ? _c(
- "div",
- { staticClass: "w-100" },
- [
- _c("video-presenter", { attrs: { status: status } })
- ],
- 1
- )
- : status.pf_type === "photo:album"
- ? _c(
- "div",
- { staticClass: "w-100" },
- [
- _c("photo-album-presenter", {
- attrs: { status: status }
- })
- ],
- 1
- )
- : status.pf_type === "video:album"
- ? _c(
- "div",
- { staticClass: "w-100" },
- [
- _c("video-album-presenter", {
- attrs: { status: status }
- })
- ],
- 1
- )
- : status.pf_type === "photo:video:album"
- ? _c(
- "div",
- { staticClass: "w-100" },
- [
- _c("mixed-album-presenter", {
- attrs: { status: status }
- })
- ],
- 1
- )
- : _c("div", { staticClass: "w-100" }, [
- _c(
- "p",
- {
- staticClass:
- "text-center p-0 font-weight-bold text-white"
- },
- [_vm._v("Error: Problem rendering preview.")]
- )
- ])
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "card-body" }, [
- _c("div", { staticClass: "reactions my-1" }, [
- _c("h3", {
- class: [
- status.favourited
- ? "fas fa-heart text-danger pr-3 m-0 cursor-pointer"
- : "far fa-heart pr-3 m-0 like-btn cursor-pointer"
- ],
- attrs: { title: "Like" },
- on: {
- click: function($event) {
- _vm.likeStatus(status, $event)
- }
- }
- }),
- _vm._v(" "),
- _c("h3", {
- staticClass: "far fa-comment pr-3 m-0 cursor-pointer",
- attrs: { title: "Comment" },
- on: {
- click: function($event) {
- _vm.commentFocus(status, $event)
- }
- }
- }),
- _vm._v(" "),
- _c("h3", {
- class: [
- status.reblogged
- ? "far fa-share-square pr-3 m-0 text-primary cursor-pointer"
- : "far fa-share-square pr-3 m-0 share-btn cursor-pointer"
- ],
- attrs: { title: "Share" },
- on: {
- click: function($event) {
- _vm.shareStatus(status, $event)
- }
- }
- })
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "likes font-weight-bold" }, [
- _c("span", { staticClass: "like-count" }, [
- _vm._v(_vm._s(status.favourites_count))
- ]),
- _vm._v(
- " " +
- _vm._s(
- status.favourites_count == 1 ? "like" : "likes"
- ) +
- "\n\t\t\t\t\t"
- )
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "caption" }, [
- _c(
- "p",
- {
- staticClass: "mb-2 read-more",
- staticStyle: { overflow: "hidden" }
- },
- [
- _c(
- "span",
- { staticClass: "username font-weight-bold" },
- [
- _c("bdi", [
- _c(
- "a",
- {
- staticClass: "text-dark",
- attrs: { href: status.account.url }
- },
- [_vm._v(_vm._s(status.account.username))]
- )
- ])
- ]
- ),
- _vm._v(" "),
- _c("span", {
- domProps: { innerHTML: _vm._s(status.content) }
- })
- ]
- )
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "comments" }),
- _vm._v(" "),
- _c("div", { staticClass: "timestamp pt-1" }, [
- _c("p", { staticClass: "small text-uppercase mb-0" }, [
- _c(
- "a",
- {
- staticClass: "text-muted",
- attrs: { href: status.url }
- },
- [
- _c("timeago", {
- directives: [
- {
- name: "b-tooltip",
- rawName: "v-b-tooltip.hover.bottom",
- modifiers: { hover: true, bottom: true }
- }
- ],
- attrs: {
- datetime: status.created_at,
- "auto-update": 60,
- "converter-options": { includeSeconds: true },
- title: _vm.timestampFormat(status.created_at)
- }
- })
- ],
- 1
- )
- ])
- ])
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "card-footer bg-white d-none" }, [
- _c(
- "form",
- {
- on: {
- submit: function($event) {
- $event.preventDefault()
- _vm.commentSubmit(status, $event)
- }
- }
- },
- [
- _c("input", {
- attrs: { type: "hidden", name: "item", value: "" }
- }),
- _vm._v(" "),
- _c("input", {
- staticClass: "form-control status-reply-input",
- attrs: {
- name: "comment",
- placeholder: "Add a comment…",
- autocomplete: "off"
- }
- })
- ]
- )
- ])
- ]
- )
- }),
- _vm._v(" "),
- _c("infinite-loading", { on: { infinite: _vm.infiniteTimeline } }, [
- _c(
- "div",
- {
- staticClass: "font-weight-bold text-light",
- attrs: { slot: "no-more" },
- slot: "no-more"
- },
- [_vm._v("No more posts to load")]
- ),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass: "font-weight-bold text-light",
- attrs: { slot: "no-results" },
- slot: "no-results"
- },
- [_vm._v("No posts found")]
- )
- ])
- ],
- 2
- ),
- _vm._v(" "),
- _c(
- "div",
- { staticClass: "col-md-4 col-lg-4 pt-2 my-3 order-1 order-md-2" },
- [
- _c("div", { staticClass: "mb-4" }, [
- _c("div", { staticClass: "card profile-card" }, [
- _vm._m(1),
- _vm._v(" "),
- _c("div", { staticClass: "card-body contents d-none" }, [
- _c("div", { staticClass: "media d-flex align-items-center" }, [
- _c("a", { attrs: { href: _vm.profile.url } }, [
- _c("img", {
- staticClass: "mr-3 rounded-circle box-shadow",
- attrs: {
- src:
- _vm.profile.avatar || "/storage/avatars/default.png",
- alt: "avatar",
- width: "64px",
- height: "64px"
- }
- })
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "media-body" }, [
- _c("p", { staticClass: "mb-0 px-0 font-weight-bold" }, [
- _c(
- "a",
- {
- staticClass: "text-dark",
- attrs: { href: _vm.profile.url }
- },
- [_vm._v("@" + _vm._s(_vm.profile.username))]
- )
- ]),
- _vm._v(" "),
- _c(
- "p",
- { staticClass: "my-0 text-muted text-truncate pb-0" },
- [_vm._v(_vm._s(_vm.profile.display_name))]
- )
- ])
- ])
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "card-footer bg-white py-1 d-none" }, [
- _c(
- "div",
- { staticClass: "d-flex justify-content-between text-center" },
- [
- _c(
- "span",
- {
- staticClass: "pl-3 cursor-pointer",
- on: {
- click: function($event) {
- _vm.redirect(_vm.profile.url)
- }
- }
- },
- [
- _c("p", { staticClass: "mb-0 font-weight-bold" }, [
- _vm._v(_vm._s(_vm.profile.statuses_count))
- ]),
- _vm._v(" "),
- _c("p", { staticClass: "mb-0 small text-muted" }, [
- _vm._v("Posts")
- ])
- ]
- ),
- _vm._v(" "),
- _c(
- "span",
- {
- staticClass: "cursor-pointer",
- on: {
- click: function($event) {
- _vm.redirect(_vm.profile.url + "/followers")
- }
- }
- },
- [
- _c("p", { staticClass: "mb-0 font-weight-bold" }, [
- _vm._v(_vm._s(_vm.profile.followers_count))
- ]),
- _vm._v(" "),
- _c("p", { staticClass: "mb-0 small text-muted" }, [
- _vm._v("Followers")
- ])
- ]
- ),
- _vm._v(" "),
- _c(
- "span",
- {
- staticClass: "pr-3 cursor-pointer",
- on: {
- click: function($event) {
- _vm.redirect(_vm.profile.url + "/following")
- }
- }
- },
- [
- _c("p", { staticClass: "mb-0 font-weight-bold" }, [
- _vm._v(_vm._s(_vm.profile.following_count))
- ]),
- _vm._v(" "),
- _c("p", { staticClass: "mb-0 small text-muted" }, [
- _vm._v("Following")
- ])
- ]
- )
- ]
- )
- ])
- ])
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "mb-4" }, [
- _c("div", { staticClass: "card notification-card" }, [
- _vm._m(2),
- _vm._v(" "),
- _vm._m(3),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass: "card-body pt-2 contents",
- staticStyle: { "max-height": "300px", "overflow-y": "scroll" }
- },
- _vm._l(_vm.notifications, function(n, index) {
- return _c(
- "div",
- { staticClass: "media mb-3 align-items-center" },
- [
- _c("img", {
- staticClass: "mr-2 rounded-circle",
- staticStyle: { border: "1px solid #ccc" },
- attrs: {
- src: n.account.avatar,
- alt: "",
- width: "32px",
- height: "32px"
- }
- }),
- _vm._v(" "),
- _c(
- "div",
- { staticClass: "media-body font-weight-light small" },
- [
- n.type == "favourite"
- ? _c("div", [
- _c("p", { staticClass: "my-0" }, [
- _c(
- "a",
- {
- staticClass:
- "font-weight-bold text-dark word-break",
- attrs: { href: n.account.url }
- },
- [_vm._v(_vm._s(n.account.username))]
- ),
- _vm._v(" liked your "),
- _c(
- "a",
- {
- staticClass: "font-weight-bold",
- attrs: { href: _vm.replyUrl(n.status) }
- },
- [_vm._v("post")]
- ),
- _vm._v(".\n\t\t\t\t\t\t\t\t\t")
- ])
- ])
- : n.type == "comment"
- ? _c("div", [
- _c("p", { staticClass: "my-0" }, [
- _c(
- "a",
- {
- staticClass:
- "font-weight-bold text-dark word-break",
- attrs: { href: n.account.url }
- },
- [_vm._v(_vm._s(n.account.username))]
- ),
- _vm._v(" commented on your "),
- _c(
- "a",
- {
- staticClass: "font-weight-bold",
- attrs: { href: _vm.replyUrl(n.status) }
- },
- [_vm._v("post")]
- ),
- _vm._v(".\n\t\t\t\t\t\t\t\t\t")
- ])
- ])
- : n.type == "mention"
- ? _c("div", [
- _c("p", { staticClass: "my-0" }, [
- _c(
- "a",
- {
- staticClass:
- "font-weight-bold text-dark word-break",
- attrs: { href: n.account.url }
- },
- [_vm._v(_vm._s(n.account.username))]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "font-weight-bold",
- attrs: {
- href: _vm.mentionUrl(n.status)
- }
- },
- [_vm._v("mentioned")]
- ),
- _vm._v(" you.\n\t\t\t\t\t\t\t\t\t")
- ])
- ])
- : n.type == "follow"
- ? _c("div", [
- _c("p", { staticClass: "my-0" }, [
- _c(
- "a",
- {
- staticClass:
- "font-weight-bold text-dark word-break",
- attrs: { href: n.account.url }
- },
- [_vm._v(_vm._s(n.account.username))]
- ),
- _vm._v(
- " followed you.\n\t\t\t\t\t\t\t\t\t"
- )
- ])
- ])
- : _vm._e()
- ]
- )
- ]
- )
- }),
- 0
- )
- ])
- ]),
- _vm._v(" "),
- _vm._m(4)
- ]
- )
- ])
- ])
- }
- var staticRenderFns = [
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c(
- "button",
- {
- staticClass: "btn btn-link text-dark no-caret dropdown-toggle",
- attrs: {
- type: "button",
- "data-toggle": "dropdown",
- "aria-haspopup": "true",
- "aria-expanded": "false",
- title: "Post options"
- }
- },
- [_c("span", { staticClass: "fas fa-ellipsis-v fa-lg text-muted" })]
- )
- },
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("div", { staticClass: "card-body loader text-center" }, [
- _c("div", { staticClass: "spinner-border", attrs: { role: "status" } }, [
- _c("span", { staticClass: "sr-only" }, [_vm._v("Loading...")])
- ])
- ])
- },
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("div", { staticClass: "card-header bg-white" }, [
- _c(
- "p",
- {
- staticClass: "mb-0 d-flex align-items-center justify-content-between"
- },
- [
- _c("span", { staticClass: "text-muted font-weight-bold" }, [
- _vm._v("Notifications")
- ]),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "text-dark small",
- attrs: { href: "/account/activity" }
- },
- [_vm._v("See All")]
- )
- ]
- )
- ])
- },
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c(
- "div",
- {
- staticClass: "card-body loader text-center",
- staticStyle: { height: "300px" }
- },
- [
- _c(
- "div",
- { staticClass: "spinner-border", attrs: { role: "status" } },
- [_c("span", { staticClass: "sr-only" }, [_vm._v("Loading...")])]
- )
- ]
- )
- },
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("footer", [
- _c("div", { staticClass: "container pb-5" }, [
- _c(
- "p",
- {
- staticClass: "mb-0 text-uppercase font-weight-bold text-muted small"
- },
- [
- _c(
- "a",
- { staticClass: "text-dark pr-2", attrs: { href: "/site/about" } },
- [_vm._v("About Us")]
- ),
- _vm._v(" "),
- _c(
- "a",
- { staticClass: "text-dark pr-2", attrs: { href: "/site/help" } },
- [_vm._v("Help")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "text-dark pr-2",
- attrs: { href: "/site/open-source" }
- },
- [_vm._v("Open Source")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "text-dark pr-2",
- attrs: { href: "/site/language" }
- },
- [_vm._v("Language")]
- ),
- _vm._v(" "),
- _c(
- "a",
- { staticClass: "text-dark pr-2", attrs: { href: "/site/terms" } },
- [_vm._v("Terms")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "text-dark pr-2",
- attrs: { href: "/site/privacy" }
- },
- [_vm._v("Privacy")]
- ),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "text-dark pr-2",
- attrs: { href: "/site/platform" }
- },
- [_vm._v("API")]
- )
- ]
- ),
- _vm._v(" "),
- _c(
- "p",
- {
- staticClass: "mb-0 text-uppercase font-weight-bold text-muted small"
- },
- [
- _c(
- "a",
- {
- staticClass: "text-muted",
- attrs: {
- href: "http://pixelfed.org",
- rel: "noopener",
- title: "",
- "data-toggle": "tooltip"
- }
- },
- [_vm._v("Powered by PixelFed")]
- )
- ]
- )
- ])
- ])
- }
- ]
- render._withStripped = true
- if (false) {
- module.hot.accept()
- if (module.hot.data) {
- require("vue-hot-reload-api") .rerender("data-v-40ef44f8", { render: render, staticRenderFns: staticRenderFns })
- }
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
- var render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _vm.status.sensitive == true
- ? _c("div", [
- _c(
- "details",
- { staticClass: "details-animated" },
- [
- _c("summary", [
- _c("p", { staticClass: "mb-0 lead font-weight-bold" }, [
- _vm._v(
- _vm._s(
- _vm.status.spoiler_text
- ? _vm.status.spoiler_text
- : "CW / NSFW / Hidden Media"
- )
- )
- ]),
- _vm._v(" "),
- _c("p", { staticClass: "font-weight-light" }, [
- _vm._v("(click to show)")
- ])
- ]),
- _vm._v(" "),
- _c(
- "b-carousel",
- {
- staticStyle: {
- "text-shadow": "1px 1px 2px #333",
- "background-color": "#000"
- },
- attrs: {
- id: _vm.status.id + "-carousel",
- controls: "",
- "img-blank": "",
- background: "#ffffff",
- interval: 0
- }
- },
- _vm._l(_vm.status.media_attachments, function(vid, index) {
- return _c("b-carousel-slide", { key: vid.id + "-media" }, [
- _c(
- "video",
- {
- staticClass: "embed-responsive-item",
- attrs: {
- slot: "img",
- preload: "none",
- controls: "",
- loop: "",
- alt: vid.description,
- width: "100%",
- height: "100%"
- },
- slot: "img"
- },
- [_c("source", { attrs: { src: vid.url, type: vid.mime } })]
- )
- ])
- }),
- 1
- )
- ],
- 1
- )
- ])
- : _c(
- "div",
- [
- _c(
- "b-carousel",
- {
- staticStyle: {
- "text-shadow": "1px 1px 2px #333",
- "background-color": "#000"
- },
- attrs: {
- id: _vm.status.id + "-carousel",
- controls: "",
- "img-blank": "",
- background: "#ffffff",
- interval: 0
- }
- },
- _vm._l(_vm.status.media_attachments, function(vid, index) {
- return _c("b-carousel-slide", { key: vid.id + "-media" }, [
- _c(
- "video",
- {
- staticClass: "embed-responsive-item",
- attrs: {
- slot: "img",
- preload: "none",
- controls: "",
- loop: "",
- alt: vid.description,
- width: "100%",
- height: "100%"
- },
- slot: "img"
- },
- [_c("source", { attrs: { src: vid.url, type: vid.mime } })]
- )
- ])
- }),
- 1
- )
- ],
- 1
- )
- }
- var staticRenderFns = []
- render._withStripped = true
- if (false) {
- module.hot.accept()
- if (module.hot.data) {
- require("vue-hot-reload-api") .rerender("data-v-43194746", { render: render, staticRenderFns: staticRenderFns })
- }
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
- var render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _vm.status.sensitive == true
- ? _c("div", [
- _c(
- "details",
- { staticClass: "details-animated" },
- [
- _c("summary", [
- _c("p", { staticClass: "mb-0 lead font-weight-bold" }, [
- _vm._v(
- _vm._s(
- _vm.status.spoiler_text
- ? _vm.status.spoiler_text
- : "CW / NSFW / Hidden Media"
- )
- )
- ]),
- _vm._v(" "),
- _c("p", { staticClass: "font-weight-light" }, [
- _vm._v("(click to show)")
- ])
- ]),
- _vm._v(" "),
- _c(
- "b-carousel",
- {
- staticStyle: {
- "text-shadow": "1px 1px 2px #333",
- "background-color": "#000"
- },
- attrs: {
- id: _vm.status.id + "-carousel",
- controls: "",
- "img-blank": "",
- background: "#ffffff",
- interval: 0
- }
- },
- _vm._l(_vm.status.media_attachments, function(media, index) {
- return _c("b-carousel-slide", { key: media.id + "-media" }, [
- media.type == "Video"
- ? _c(
- "video",
- {
- staticClass: "embed-responsive-item",
- attrs: {
- slot: "img",
- preload: "none",
- controls: "",
- loop: "",
- alt: media.description,
- width: "100%",
- height: "100%"
- },
- slot: "img"
- },
- [
- _c("source", {
- attrs: { src: media.url, type: media.mime }
- })
- ]
- )
- : media.type == "Image"
- ? _c("img", {
- staticClass: "d-block img-fluid w-100",
- attrs: {
- slot: "img",
- src: media.url,
- alt: media.description,
- title: media.description
- },
- slot: "img"
- })
- : _c(
- "p",
- {
- staticClass:
- "text-center p-0 font-weight-bold text-white"
- },
- [_vm._v("Error: Problem rendering preview.")]
- )
- ])
- }),
- 1
- )
- ],
- 1
- )
- ])
- : _c(
- "div",
- [
- _c(
- "b-carousel",
- {
- staticStyle: {
- "text-shadow": "1px 1px 2px #333",
- "background-color": "#000"
- },
- attrs: {
- id: _vm.status.id + "-carousel",
- controls: "",
- "img-blank": "",
- background: "#ffffff",
- interval: 0
- }
- },
- _vm._l(_vm.status.media_attachments, function(media, index) {
- return _c("b-carousel-slide", { key: media.id + "-media" }, [
- media.type == "Video"
- ? _c(
- "video",
- {
- staticClass: "embed-responsive-item",
- attrs: {
- slot: "img",
- preload: "none",
- controls: "",
- loop: "",
- alt: media.description,
- width: "100%",
- height: "100%"
- },
- slot: "img"
- },
- [
- _c("source", {
- attrs: { src: media.url, type: media.mime }
- })
- ]
- )
- : media.type == "Image"
- ? _c("img", {
- staticClass: "d-block img-fluid w-100",
- attrs: {
- slot: "img",
- src: media.url,
- alt: media.description,
- title: media.description
- },
- slot: "img"
- })
- : _c(
- "p",
- {
- staticClass:
- "text-center p-0 font-weight-bold text-white"
- },
- [_vm._v("Error: Problem rendering preview.")]
- )
- ])
- }),
- 1
- )
- ],
- 1
- )
- }
- var staticRenderFns = []
- render._withStripped = true
- if (false) {
- module.hot.accept()
- if (module.hot.data) {
- require("vue-hot-reload-api") .rerender("data-v-66084274", { render: render, staticRenderFns: staticRenderFns })
- }
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
- var render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("div", [
- _vm._m(0),
- _vm._v(" "),
- _c("div", { staticClass: "postCommentsContainer d-none" }, [
- _c("p", { staticClass: "mb-1 text-center load-more-link d-none" }, [
- _c(
- "a",
- {
- staticClass: "text-muted",
- attrs: { href: "#" },
- on: { click: _vm.loadMore }
- },
- [_vm._v("Load more comments")]
- )
- ]),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass: "comments",
- attrs: { "data-min-id": "0", "data-max-id": "0" }
- },
- _vm._l(_vm.results, function(comment, index) {
- return _c(
- "p",
- {
- key: comment.id,
- staticClass: "mb-1",
- attrs: { "data-id": comment.id }
- },
- [
- _c(
- "span",
- {
- staticClass:
- "d-flex justify-content-between align-items-center"
- },
- [
- _c(
- "span",
- {
- staticClass: "pr-3",
- staticStyle: { overflow: "hidden" }
- },
- [
- _c("div", { staticClass: "font-weight-bold pr-1" }, [
- _c("bdi", [
- _c(
- "a",
- {
- staticClass: "text-dark",
- attrs: {
- href: comment.account.url,
- title: comment.account.username
- }
- },
- [_vm._v(_vm._s(_vm.l(comment.account.username)))]
- )
- ])
- ]),
- _vm._v(" "),
- _c(
- "div",
- {
- staticClass: "read-more",
- staticStyle: { overflow: "hidden" },
- attrs: { id: comment.id + "-reply-readmore" }
- },
- [
- _c("span", {
- staticClass: "comment-text",
- staticStyle: { overflow: "hidden" },
- domProps: { innerHTML: _vm._s(comment.content) }
- })
- ]
- )
- ]
- ),
- _vm._v(" "),
- _c(
- "b-dropdown",
- {
- staticClass: "float-right",
- attrs: {
- id: comment.uri,
- variant: "link",
- "no-caret": "",
- right: ""
- }
- },
- [
- _c("template", { slot: "button-content" }, [
- _c("i", {
- staticClass: "fas fa-ellipsis-v text-muted"
- }),
- _c("span", { staticClass: "sr-only" }, [
- _vm._v("Options")
- ])
- ]),
- _vm._v(" "),
- _c(
- "b-dropdown-item",
- {
- staticClass: "font-weight-bold",
- on: {
- click: function($event) {
- _vm.reply(comment)
- }
- }
- },
- [_vm._v("Reply")]
- ),
- _vm._v(" "),
- _c(
- "b-dropdown-item",
- {
- staticClass: "font-weight-bold",
- attrs: { href: comment.url }
- },
- [_vm._v("Permalink")]
- ),
- _vm._v(" "),
- _c(
- "b-dropdown-item",
- {
- staticClass: "font-weight-bold",
- attrs: { href: comment.account.url }
- },
- [_vm._v("Profile")]
- ),
- _vm._v(" "),
- _c("b-dropdown-divider"),
- _vm._v(" "),
- _c(
- "b-dropdown-item",
- {
- staticClass: "font-weight-bold",
- attrs: {
- href: "/i/report?type=post&id=" + comment.id
- }
- },
- [_vm._v("Report")]
- ),
- _vm._v(" "),
- comment.account.id == _vm.user.id
- ? _c(
- "b-dropdown-item",
- {
- staticClass: "font-weight-bold",
- on: {
- click: function($event) {
- _vm.deleteComment(comment.id, index)
- }
- }
- },
- [_vm._v("Delete")]
- )
- : _vm._e()
- ],
- 2
- )
- ],
- 1
- )
- ]
- )
- }),
- 0
- )
- ])
- ])
- }
- var staticRenderFns = [
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("div", { staticClass: "postCommentsLoader text-center" }, [
- _c("div", { staticClass: "lds-ring" }, [
- _c("div"),
- _c("div"),
- _c("div"),
- _c("div")
- ])
- ])
- }
- ]
- render._withStripped = true
- if (false) {
- module.hot.accept()
- if (module.hot.data) {
- require("vue-hot-reload-api") .rerender("data-v-7029d26b", { render: render, staticRenderFns: staticRenderFns })
- }
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
- var render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("div", { staticClass: "container" }, [
- _c("section", { staticClass: "mb-5 section-explore" }, [
- _c("p", { staticClass: "lead text-muted font-weight-bold mb-0" }, [
- _vm._v("Explore")
- ]),
- _vm._v(" "),
- _c("div", { staticClass: "profile-timeline" }, [
- _vm._m(0),
- _vm._v(" "),
- _c(
- "div",
- { staticClass: "row d-none" },
- _vm._l(_vm.posts, function(post) {
- return _c("div", { staticClass: "col-4 p-0 p-sm-2 p-md-3" }, [
- _c(
- "a",
- {
- staticClass: "card info-overlay card-md-border-0",
- attrs: { href: post.url }
- },
- [
- _c("div", { staticClass: "square filter_class" }, [
- _c("div", {
- staticClass: "square-content",
- style: { "background-image": "url(" + post.thumb + ")" }
- })
- ])
- ]
- )
- ])
- }),
- 0
- )
- ])
- ]),
- _vm._v(" "),
- _vm._m(1)
- ])
- }
- var staticRenderFns = [
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("div", { staticClass: "loader text-center" }, [
- _c("div", { staticClass: "lds-ring" }, [
- _c("div"),
- _c("div"),
- _c("div"),
- _c("div")
- ])
- ])
- },
- function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("section", { staticClass: "mb-5" }, [
- _c("p", { staticClass: "lead text-center" }, [
- _vm._v("To view more posts, check the "),
- _c("a", { staticClass: "font-weight-bold", attrs: { href: "/" } }, [
- _vm._v("home")
- ]),
- _vm._v(" or "),
- _c(
- "a",
- {
- staticClass: "font-weight-bold",
- attrs: { href: "/timeline/public" }
- },
- [_vm._v("local")]
- ),
- _vm._v(" timelines.")
- ])
- ])
- }
- ]
- render._withStripped = true
- if (false) {
- module.hot.accept()
- if (module.hot.data) {
- require("vue-hot-reload-api") .rerender("data-v-7ab7dfed", { render: render, staticRenderFns: staticRenderFns })
- }
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
- var render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _vm.status.sensitive == true
- ? _c("div", [
- _c("details", { staticClass: "details-animated" }, [
- _c("summary", [
- _c("p", { staticClass: "mb-0 lead font-weight-bold" }, [
- _vm._v(
- _vm._s(
- _vm.status.spoiler_text
- ? _vm.status.spoiler_text
- : "CW / NSFW / Hidden Media"
- )
- )
- ]),
- _vm._v(" "),
- _c("p", { staticClass: "font-weight-light" }, [
- _vm._v("(click to show)")
- ])
- ]),
- _vm._v(" "),
- _c(
- "a",
- {
- staticClass: "max-hide-overflow",
- class: _vm.status.media_attachments[0].filter_class,
- attrs: { href: _vm.status.url }
- },
- [
- _c("img", {
- staticClass: "card-img-top",
- attrs: {
- src: _vm.status.media_attachments[0].url,
- alt: _vm.status.media_attachments[0].description,
- title: _vm.status.media_attachments[0].description
- }
- })
- ]
- )
- ])
- ])
- : _c("div", [
- _c("div", { class: _vm.status.media_attachments[0].filter_class }, [
- _c("img", {
- staticClass: "card-img-top",
- attrs: {
- src: _vm.status.media_attachments[0].url,
- alt: _vm.status.media_attachments[0].description,
- title: _vm.status.media_attachments[0].description
- }
- })
- ])
- ])
- }
- var staticRenderFns = []
- render._withStripped = true
- if (false) {
- module.hot.accept()
- if (module.hot.data) {
- require("vue-hot-reload-api") .rerender("data-v-88c038d8", { render: render, staticRenderFns: staticRenderFns })
- }
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; });
- var render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _vm.status.sensitive == true
- ? _c("div", [
- _c("details", { staticClass: "details-animated" }, [
- _c("summary", [
- _c("p", { staticClass: "mb-0 lead font-weight-bold" }, [
- _vm._v(
- _vm._s(
- _vm.status.spoiler_text
- ? _vm.status.spoiler_text
- : "CW / NSFW / Hidden Media"
- )
- )
- ]),
- _vm._v(" "),
- _c("p", { staticClass: "font-weight-light" }, [
- _vm._v("(click to show)")
- ])
- ]),
- _vm._v(" "),
- _c(
- "div",
- { staticClass: "embed-responsive embed-responsive-16by9" },
- [
- _c(
- "video",
- {
- staticClass: "video",
- attrs: { preload: "none", controls: "", loop: "" }
- },
- [
- _c("source", {
- attrs: {
- src: _vm.status.media_attachments[0].url,
- type: _vm.status.media_attachments[0].mime
- }
- })
- ]
- )
- ]
- )
- ])
- ])
- : _c("div", { staticClass: "embed-responsive embed-responsive-16by9" }, [
- _c(
- "video",
- {
- staticClass: "video",
- attrs: { preload: "none", controls: "", loop: "" }
- },
- [
- _c("source", {
- attrs: {
- src: _vm.status.media_attachments[0].url,
- type: _vm.status.media_attachments[0].mime
- }
- })
- ]
- )
- ])
- }
- var staticRenderFns = []
- render._withStripped = true
- if (false) {
- module.hot.accept()
- if (module.hot.data) {
- require("vue-hot-reload-api") .rerender("data-v-9ad5682a", { render: render, staticRenderFns: staticRenderFns })
- }
- }
- /***/ }),
- /***/ "./node_modules/vue-loading-overlay/dist/vue-loading.min.js":
- /***/ (function(module, exports, __webpack_require__) {
- !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});
- /***/ }),
- /***/ "./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":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- 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");
- if(typeof content === 'string') content = [[module.i, content, '']];
- if(content.locals) module.exports = content.locals;
- // add the styles to the DOM
- var add = __webpack_require__("./node_modules/vue-style-loader/lib/addStylesClient.js").default
- var update = add("70d2d856", content, false, {});
- // Hot Module Replacement
- if(false) {
- // When the styles change, update the <style> tags
- if(!content.locals) {
- 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() {
- 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");
- if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
- update(newContent);
- });
- }
- // When the module is disposed, remove the <style> tags
- module.hot.dispose(function() { update(); });
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- 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");
- if(typeof content === 'string') content = [[module.i, content, '']];
- if(content.locals) module.exports = content.locals;
- // add the styles to the DOM
- var add = __webpack_require__("./node_modules/vue-style-loader/lib/addStylesClient.js").default
- var update = add("43122bba", content, false, {});
- // Hot Module Replacement
- if(false) {
- // When the styles change, update the <style> tags
- if(!content.locals) {
- 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() {
- 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");
- if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
- update(newContent);
- });
- }
- // When the module is disposed, remove the <style> tags
- module.hot.dispose(function() { update(); });
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- 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");
- if(typeof content === 'string') content = [[module.i, content, '']];
- if(content.locals) module.exports = content.locals;
- // add the styles to the DOM
- var add = __webpack_require__("./node_modules/vue-style-loader/lib/addStylesClient.js").default
- var update = add("2c25f85e", content, false, {});
- // Hot Module Replacement
- if(false) {
- // When the styles change, update the <style> tags
- if(!content.locals) {
- 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() {
- 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");
- if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
- update(newContent);
- });
- }
- // When the module is disposed, remove the <style> tags
- module.hot.dispose(function() { update(); });
- }
- /***/ }),
- /***/ "./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":
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- 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");
- if(typeof content === 'string') content = [[module.i, content, '']];
- if(content.locals) module.exports = content.locals;
- // add the styles to the DOM
- var add = __webpack_require__("./node_modules/vue-style-loader/lib/addStylesClient.js").default
- var update = add("8d16673c", content, false, {});
- // Hot Module Replacement
- if(false) {
- // When the styles change, update the <style> tags
- if(!content.locals) {
- 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() {
- 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");
- if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
- update(newContent);
- });
- }
- // When the module is disposed, remove the <style> tags
- module.hot.dispose(function() { update(); });
- }
- /***/ }),
- /***/ "./node_modules/vue-style-loader/lib/addStylesClient.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (immutable) */ __webpack_exports__["default"] = addStylesClient;
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__listToStyles__ = __webpack_require__("./node_modules/vue-style-loader/lib/listToStyles.js");
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- Modified by Evan You @yyx990803
- */
- var hasDocument = typeof document !== 'undefined'
- if (typeof DEBUG !== 'undefined' && DEBUG) {
- if (!hasDocument) {
- 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."
- ) }
- }
- /*
- type StyleObject = {
- id: number;
- parts: Array<StyleObjectPart>
- }
- type StyleObjectPart = {
- css: string;
- media: string;
- sourceMap: ?string
- }
- */
- var stylesInDom = {/*
- [id: number]: {
- id: number,
- refs: number,
- parts: Array<(obj?: StyleObjectPart) => void>
- }
- */}
- var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
- var singletonElement = null
- var singletonCounter = 0
- var isProduction = false
- var noop = function () {}
- var options = null
- var ssrIdKey = 'data-vue-ssr-id'
- // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
- // tags it will allow on a page
- var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())
- function addStylesClient (parentId, list, _isProduction, _options) {
- isProduction = _isProduction
- options = _options || {}
- var styles = Object(__WEBPACK_IMPORTED_MODULE_0__listToStyles__["a" /* default */])(parentId, list)
- addStylesToDom(styles)
- return function update (newList) {
- var mayRemove = []
- for (var i = 0; i < styles.length; i++) {
- var item = styles[i]
- var domStyle = stylesInDom[item.id]
- domStyle.refs--
- mayRemove.push(domStyle)
- }
- if (newList) {
- styles = Object(__WEBPACK_IMPORTED_MODULE_0__listToStyles__["a" /* default */])(parentId, newList)
- addStylesToDom(styles)
- } else {
- styles = []
- }
- for (var i = 0; i < mayRemove.length; i++) {
- var domStyle = mayRemove[i]
- if (domStyle.refs === 0) {
- for (var j = 0; j < domStyle.parts.length; j++) {
- domStyle.parts[j]()
- }
- delete stylesInDom[domStyle.id]
- }
- }
- }
- }
- function addStylesToDom (styles /* Array<StyleObject> */) {
- for (var i = 0; i < styles.length; i++) {
- var item = styles[i]
- var domStyle = stylesInDom[item.id]
- if (domStyle) {
- domStyle.refs++
- for (var j = 0; j < domStyle.parts.length; j++) {
- domStyle.parts[j](item.parts[j])
- }
- for (; j < item.parts.length; j++) {
- domStyle.parts.push(addStyle(item.parts[j]))
- }
- if (domStyle.parts.length > item.parts.length) {
- domStyle.parts.length = item.parts.length
- }
- } else {
- var parts = []
- for (var j = 0; j < item.parts.length; j++) {
- parts.push(addStyle(item.parts[j]))
- }
- stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
- }
- }
- }
- function createStyleElement () {
- var styleElement = document.createElement('style')
- styleElement.type = 'text/css'
- head.appendChild(styleElement)
- return styleElement
- }
- function addStyle (obj /* StyleObjectPart */) {
- var update, remove
- var styleElement = document.querySelector('style[' + ssrIdKey + '~="' + obj.id + '"]')
- if (styleElement) {
- if (isProduction) {
- // has SSR styles and in production mode.
- // simply do nothing.
- return noop
- } else {
- // has SSR styles but in dev mode.
- // for some reason Chrome can't handle source map in server-rendered
- // style tags - source maps in <style> only works if the style tag is
- // created and inserted dynamically. So we remove the server rendered
- // styles and inject new ones.
- styleElement.parentNode.removeChild(styleElement)
- }
- }
- if (isOldIE) {
- // use singleton mode for IE9.
- var styleIndex = singletonCounter++
- styleElement = singletonElement || (singletonElement = createStyleElement())
- update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
- remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
- } else {
- // use multi-style-tag mode in all other cases
- styleElement = createStyleElement()
- update = applyToTag.bind(null, styleElement)
- remove = function () {
- styleElement.parentNode.removeChild(styleElement)
- }
- }
- update(obj)
- return function updateStyle (newObj /* StyleObjectPart */) {
- if (newObj) {
- if (newObj.css === obj.css &&
- newObj.media === obj.media &&
- newObj.sourceMap === obj.sourceMap) {
- return
- }
- update(obj = newObj)
- } else {
- remove()
- }
- }
- }
- var replaceText = (function () {
- var textStore = []
- return function (index, replacement) {
- textStore[index] = replacement
- return textStore.filter(Boolean).join('\n')
- }
- })()
- function applyToSingletonTag (styleElement, index, remove, obj) {
- var css = remove ? '' : obj.css
- if (styleElement.styleSheet) {
- styleElement.styleSheet.cssText = replaceText(index, css)
- } else {
- var cssNode = document.createTextNode(css)
- var childNodes = styleElement.childNodes
- if (childNodes[index]) styleElement.removeChild(childNodes[index])
- if (childNodes.length) {
- styleElement.insertBefore(cssNode, childNodes[index])
- } else {
- styleElement.appendChild(cssNode)
- }
- }
- }
- function applyToTag (styleElement, obj) {
- var css = obj.css
- var media = obj.media
- var sourceMap = obj.sourceMap
- if (media) {
- styleElement.setAttribute('media', media)
- }
- if (options.ssrId) {
- styleElement.setAttribute(ssrIdKey, obj.id)
- }
- if (sourceMap) {
- // https://developer.chrome.com/devtools/docs/javascript-debugging
- // this makes source maps inside style tags work properly in Chrome
- css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
- // http://stackoverflow.com/a/26603875
- css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
- }
- if (styleElement.styleSheet) {
- styleElement.styleSheet.cssText = css
- } else {
- while (styleElement.firstChild) {
- styleElement.removeChild(styleElement.firstChild)
- }
- styleElement.appendChild(document.createTextNode(css))
- }
- }
- /***/ }),
- /***/ "./node_modules/vue-style-loader/lib/listToStyles.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = listToStyles;
- /**
- * Translates the list format produced by css-loader into something
- * easier to manipulate.
- */
- function listToStyles (parentId, list) {
- var styles = []
- var newStyles = {}
- for (var i = 0; i < list.length; i++) {
- var item = list[i]
- var id = item[0]
- var css = item[1]
- var media = item[2]
- var sourceMap = item[3]
- var part = {
- id: parentId + ':' + i,
- css: css,
- media: media,
- sourceMap: sourceMap
- }
- if (!newStyles[id]) {
- styles.push(newStyles[id] = { id: id, parts: [part] })
- } else {
- newStyles[id].parts.push(part)
- }
- }
- return styles
- }
- /***/ }),
- /***/ "./node_modules/vue-timeago/dist/vue-timeago.es.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export createTimeago */
- /* unused harmony export install */
- /* unused harmony export converter */
- /* 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");
- /* 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__);
- var defaultConverter = (function (date, locale, converterOptions) {
- var includeSeconds = converterOptions.includeSeconds,
- _converterOptions$add = converterOptions.addSuffix,
- addSuffix = _converterOptions$add === void 0 ? true : _converterOptions$add;
- return __WEBPACK_IMPORTED_MODULE_0_date_fns_distance_in_words_to_now___default()(date, {
- locale: locale,
- includeSeconds: includeSeconds,
- addSuffix: addSuffix
- });
- });
- var createTimeago = function createTimeago() {
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- var locales = opts.locales || {};
- var name = opts.name || 'Timeago';
- return {
- name: name,
- props: {
- datetime: {
- required: true
- },
- title: {
- type: [String, Boolean]
- },
- locale: {
- type: String
- },
- autoUpdate: {
- type: [Number, Boolean]
- },
- converter: {
- type: Function
- },
- converterOptions: {
- type: Object
- }
- },
- data: function data() {
- return {
- timeago: this.getTimeago()
- };
- },
- mounted: function mounted() {
- this.startUpdater();
- },
- beforeDestroy: function beforeDestroy() {
- this.stopUpdater();
- },
- render: function render(h) {
- return h('time', {
- attrs: {
- datetime: new Date(this.datetime),
- title: typeof this.title === 'string' ? this.title : this.title === false ? null : this.timeago
- }
- }, [this.timeago]);
- },
- methods: {
- getTimeago: function getTimeago(datetime) {
- var converter = this.converter || opts.converter || defaultConverter;
- return converter(datetime || this.datetime, locales[this.locale || opts.locale], this.converterOptions || {});
- },
- convert: function convert(datetime) {
- this.timeago = this.getTimeago(datetime);
- },
- startUpdater: function startUpdater() {
- var _this = this;
- if (this.autoUpdate) {
- var autoUpdaye = this.autoUpdate === true ? 60 : this.autoUpdate;
- this.updater = setInterval(function () {
- _this.convert();
- }, autoUpdaye * 1000);
- }
- },
- stopUpdater: function stopUpdater() {
- if (this.updater) {
- clearInterval(this.updater);
- this.updater = null;
- }
- }
- },
- watch: {
- autoUpdate: function autoUpdate(newValue) {
- this.stopUpdater();
- if (newValue) {
- this.startUpdater();
- }
- },
- datetime: function datetime() {
- this.convert();
- },
- locale: function locale() {
- this.convert();
- },
- converter: function converter() {
- this.convert();
- },
- converterOptions: {
- handler: function handler() {
- this.convert();
- },
- deep: true
- }
- }
- };
- };
- var install = function install(Vue, opts) {
- var Component = createTimeago(opts);
- Vue.component(Component.name, Component);
- };
- var converter = defaultConverter;
- /* harmony default export */ __webpack_exports__["a"] = (install);
- /***/ }),
- /***/ "./node_modules/vue/dist/vue.common.js":
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /* WEBPACK VAR INJECTION */(function(global, setImmediate) {/*!
- * Vue.js v2.5.21
- * (c) 2014-2018 Evan You
- * Released under the MIT License.
- */
- /* */
- var emptyObject = Object.freeze({});
- // These helpers produce better VM code in JS engines due to their
- // explicitness and function inlining.
- function isUndef (v) {
- return v === undefined || v === null
- }
- function isDef (v) {
- return v !== undefined && v !== null
- }
- function isTrue (v) {
- return v === true
- }
- function isFalse (v) {
- return v === false
- }
- /**
- * Check if value is primitive.
- */
- function isPrimitive (value) {
- return (
- typeof value === 'string' ||
- typeof value === 'number' ||
- // $flow-disable-line
- typeof value === 'symbol' ||
- typeof value === 'boolean'
- )
- }
- /**
- * Quick object check - this is primarily used to tell
- * Objects from primitive values when we know the value
- * is a JSON-compliant type.
- */
- function isObject (obj) {
- return obj !== null && typeof obj === 'object'
- }
- /**
- * Get the raw type string of a value, e.g., [object Object].
- */
- var _toString = Object.prototype.toString;
- function toRawType (value) {
- return _toString.call(value).slice(8, -1)
- }
- /**
- * Strict object type check. Only returns true
- * for plain JavaScript objects.
- */
- function isPlainObject (obj) {
- return _toString.call(obj) === '[object Object]'
- }
- function isRegExp (v) {
- return _toString.call(v) === '[object RegExp]'
- }
- /**
- * Check if val is a valid array index.
- */
- function isValidArrayIndex (val) {
- var n = parseFloat(String(val));
- return n >= 0 && Math.floor(n) === n && isFinite(val)
- }
- /**
- * Convert a value to a string that is actually rendered.
- */
- function toString (val) {
- return val == null
- ? ''
- : typeof val === 'object'
- ? JSON.stringify(val, null, 2)
- : String(val)
- }
- /**
- * Convert an input value to a number for persistence.
- * If the conversion fails, return original string.
- */
- function toNumber (val) {
- var n = parseFloat(val);
- return isNaN(n) ? val : n
- }
- /**
- * Make a map and return a function for checking if a key
- * is in that map.
- */
- function makeMap (
- str,
- expectsLowerCase
- ) {
- var map = Object.create(null);
- var list = str.split(',');
- for (var i = 0; i < list.length; i++) {
- map[list[i]] = true;
- }
- return expectsLowerCase
- ? function (val) { return map[val.toLowerCase()]; }
- : function (val) { return map[val]; }
- }
- /**
- * Check if a tag is a built-in tag.
- */
- var isBuiltInTag = makeMap('slot,component', true);
- /**
- * Check if an attribute is a reserved attribute.
- */
- var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
- /**
- * Remove an item from an array.
- */
- function remove (arr, item) {
- if (arr.length) {
- var index = arr.indexOf(item);
- if (index > -1) {
- return arr.splice(index, 1)
- }
- }
- }
- /**
- * Check whether an object has the property.
- */
- var hasOwnProperty = Object.prototype.hasOwnProperty;
- function hasOwn (obj, key) {
- return hasOwnProperty.call(obj, key)
- }
- /**
- * Create a cached version of a pure function.
- */
- function cached (fn) {
- var cache = Object.create(null);
- return (function cachedFn (str) {
- var hit = cache[str];
- return hit || (cache[str] = fn(str))
- })
- }
- /**
- * Camelize a hyphen-delimited string.
- */
- var camelizeRE = /-(\w)/g;
- var camelize = cached(function (str) {
- return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
- });
- /**
- * Capitalize a string.
- */
- var capitalize = cached(function (str) {
- return str.charAt(0).toUpperCase() + str.slice(1)
- });
- /**
- * Hyphenate a camelCase string.
- */
- var hyphenateRE = /\B([A-Z])/g;
- var hyphenate = cached(function (str) {
- return str.replace(hyphenateRE, '-$1').toLowerCase()
- });
- /**
- * Simple bind polyfill for environments that do not support it,
- * e.g., PhantomJS 1.x. Technically, we don't need this anymore
- * since native bind is now performant enough in most browsers.
- * But removing it would mean breaking code that was able to run in
- * PhantomJS 1.x, so this must be kept for backward compatibility.
- */
- /* istanbul ignore next */
- function polyfillBind (fn, ctx) {
- function boundFn (a) {
- var l = arguments.length;
- return l
- ? l > 1
- ? fn.apply(ctx, arguments)
- : fn.call(ctx, a)
- : fn.call(ctx)
- }
- boundFn._length = fn.length;
- return boundFn
- }
- function nativeBind (fn, ctx) {
- return fn.bind(ctx)
- }
- var bind = Function.prototype.bind
- ? nativeBind
- : polyfillBind;
- /**
- * Convert an Array-like object to a real Array.
- */
- function toArray (list, start) {
- start = start || 0;
- var i = list.length - start;
- var ret = new Array(i);
- while (i--) {
- ret[i] = list[i + start];
- }
- return ret
- }
- /**
- * Mix properties into target object.
- */
- function extend (to, _from) {
- for (var key in _from) {
- to[key] = _from[key];
- }
- return to
- }
- /**
- * Merge an Array of Objects into a single Object.
- */
- function toObject (arr) {
- var res = {};
- for (var i = 0; i < arr.length; i++) {
- if (arr[i]) {
- extend(res, arr[i]);
- }
- }
- return res
- }
- /* eslint-disable no-unused-vars */
- /**
- * Perform no operation.
- * Stubbing args to make Flow happy without leaving useless transpiled code
- * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
- */
- function noop (a, b, c) {}
- /**
- * Always return false.
- */
- var no = function (a, b, c) { return false; };
- /* eslint-enable no-unused-vars */
- /**
- * Return the same value.
- */
- var identity = function (_) { return _; };
- /**
- * Generate a string containing static keys from compiler modules.
- */
- function genStaticKeys (modules) {
- return modules.reduce(function (keys, m) {
- return keys.concat(m.staticKeys || [])
- }, []).join(',')
- }
- /**
- * Check if two values are loosely equal - that is,
- * if they are plain objects, do they have the same shape?
- */
- function looseEqual (a, b) {
- if (a === b) { return true }
- var isObjectA = isObject(a);
- var isObjectB = isObject(b);
- if (isObjectA && isObjectB) {
- try {
- var isArrayA = Array.isArray(a);
- var isArrayB = Array.isArray(b);
- if (isArrayA && isArrayB) {
- return a.length === b.length && a.every(function (e, i) {
- return looseEqual(e, b[i])
- })
- } else if (a instanceof Date && b instanceof Date) {
- return a.getTime() === b.getTime()
- } else if (!isArrayA && !isArrayB) {
- var keysA = Object.keys(a);
- var keysB = Object.keys(b);
- return keysA.length === keysB.length && keysA.every(function (key) {
- return looseEqual(a[key], b[key])
- })
- } else {
- /* istanbul ignore next */
- return false
- }
- } catch (e) {
- /* istanbul ignore next */
- return false
- }
- } else if (!isObjectA && !isObjectB) {
- return String(a) === String(b)
- } else {
- return false
- }
- }
- /**
- * Return the first index at which a loosely equal value can be
- * found in the array (if value is a plain object, the array must
- * contain an object of the same shape), or -1 if it is not present.
- */
- function looseIndexOf (arr, val) {
- for (var i = 0; i < arr.length; i++) {
- if (looseEqual(arr[i], val)) { return i }
- }
- return -1
- }
- /**
- * Ensure a function is called only once.
- */
- function once (fn) {
- var called = false;
- return function () {
- if (!called) {
- called = true;
- fn.apply(this, arguments);
- }
- }
- }
- var SSR_ATTR = 'data-server-rendered';
- var ASSET_TYPES = [
- 'component',
- 'directive',
- 'filter'
- ];
- var LIFECYCLE_HOOKS = [
- 'beforeCreate',
- 'created',
- 'beforeMount',
- 'mounted',
- 'beforeUpdate',
- 'updated',
- 'beforeDestroy',
- 'destroyed',
- 'activated',
- 'deactivated',
- 'errorCaptured'
- ];
- /* */
- var config = ({
- /**
- * Option merge strategies (used in core/util/options)
- */
- // $flow-disable-line
- optionMergeStrategies: Object.create(null),
- /**
- * Whether to suppress warnings.
- */
- silent: false,
- /**
- * Show production mode tip message on boot?
- */
- productionTip: "development" !== 'production',
- /**
- * Whether to enable devtools
- */
- devtools: "development" !== 'production',
- /**
- * Whether to record perf
- */
- performance: false,
- /**
- * Error handler for watcher errors
- */
- errorHandler: null,
- /**
- * Warn handler for watcher warns
- */
- warnHandler: null,
- /**
- * Ignore certain custom elements
- */
- ignoredElements: [],
- /**
- * Custom user key aliases for v-on
- */
- // $flow-disable-line
- keyCodes: Object.create(null),
- /**
- * Check if a tag is reserved so that it cannot be registered as a
- * component. This is platform-dependent and may be overwritten.
- */
- isReservedTag: no,
- /**
- * Check if an attribute is reserved so that it cannot be used as a component
- * prop. This is platform-dependent and may be overwritten.
- */
- isReservedAttr: no,
- /**
- * Check if a tag is an unknown element.
- * Platform-dependent.
- */
- isUnknownElement: no,
- /**
- * Get the namespace of an element
- */
- getTagNamespace: noop,
- /**
- * Parse the real tag name for the specific platform.
- */
- parsePlatformTagName: identity,
- /**
- * Check if an attribute must be bound using property, e.g. value
- * Platform-dependent.
- */
- mustUseProp: no,
- /**
- * Perform updates asynchronously. Intended to be used by Vue Test Utils
- * This will significantly reduce performance if set to false.
- */
- async: true,
- /**
- * Exposed for legacy reasons
- */
- _lifecycleHooks: LIFECYCLE_HOOKS
- });
- /* */
- /**
- * Check if a string starts with $ or _
- */
- function isReserved (str) {
- var c = (str + '').charCodeAt(0);
- return c === 0x24 || c === 0x5F
- }
- /**
- * Define a property.
- */
- function def (obj, key, val, enumerable) {
- Object.defineProperty(obj, key, {
- value: val,
- enumerable: !!enumerable,
- writable: true,
- configurable: true
- });
- }
- /**
- * Parse simple path.
- */
- var bailRE = /[^\w.$]/;
- function parsePath (path) {
- if (bailRE.test(path)) {
- return
- }
- var segments = path.split('.');
- return function (obj) {
- for (var i = 0; i < segments.length; i++) {
- if (!obj) { return }
- obj = obj[segments[i]];
- }
- return obj
- }
- }
- /* */
- // can we use __proto__?
- var hasProto = '__proto__' in {};
- // Browser environment sniffing
- var inBrowser = typeof window !== 'undefined';
- var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
- var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
- var UA = inBrowser && window.navigator.userAgent.toLowerCase();
- var isIE = UA && /msie|trident/.test(UA);
- var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
- var isEdge = UA && UA.indexOf('edge/') > 0;
- var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
- var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
- var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
- // Firefox has a "watch" function on Object.prototype...
- var nativeWatch = ({}).watch;
- var supportsPassive = false;
- if (inBrowser) {
- try {
- var opts = {};
- Object.defineProperty(opts, 'passive', ({
- get: function get () {
- /* istanbul ignore next */
- supportsPassive = true;
- }
- })); // https://github.com/facebook/flow/issues/285
- window.addEventListener('test-passive', null, opts);
- } catch (e) {}
- }
- // this needs to be lazy-evaled because vue may be required before
- // vue-server-renderer can set VUE_ENV
- var _isServer;
- var isServerRendering = function () {
- if (_isServer === undefined) {
- /* istanbul ignore if */
- if (!inBrowser && !inWeex && typeof global !== 'undefined') {
- // detect presence of vue-server-renderer and avoid
- // Webpack shimming the process
- _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';
- } else {
- _isServer = false;
- }
- }
- return _isServer
- };
- // detect devtools
- var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
- /* istanbul ignore next */
- function isNative (Ctor) {
- return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
- }
- var hasSymbol =
- typeof Symbol !== 'undefined' && isNative(Symbol) &&
- typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
- var _Set;
- /* istanbul ignore if */ // $flow-disable-line
- if (typeof Set !== 'undefined' && isNative(Set)) {
- // use native Set when available.
- _Set = Set;
- } else {
- // a non-standard Set polyfill that only works with primitive keys.
- _Set = /*@__PURE__*/(function () {
- function Set () {
- this.set = Object.create(null);
- }
- Set.prototype.has = function has (key) {
- return this.set[key] === true
- };
- Set.prototype.add = function add (key) {
- this.set[key] = true;
- };
- Set.prototype.clear = function clear () {
- this.set = Object.create(null);
- };
- return Set;
- }());
- }
- /* */
- var warn = noop;
- var tip = noop;
- var generateComponentTrace = (noop); // work around flow check
- var formatComponentName = (noop);
- if (true) {
- var hasConsole = typeof console !== 'undefined';
- var classifyRE = /(?:^|[-_])(\w)/g;
- var classify = function (str) { return str
- .replace(classifyRE, function (c) { return c.toUpperCase(); })
- .replace(/[-_]/g, ''); };
- warn = function (msg, vm) {
- var trace = vm ? generateComponentTrace(vm) : '';
- if (config.warnHandler) {
- config.warnHandler.call(null, msg, vm, trace);
- } else if (hasConsole && (!config.silent)) {
- console.error(("[Vue warn]: " + msg + trace));
- }
- };
- tip = function (msg, vm) {
- if (hasConsole && (!config.silent)) {
- console.warn("[Vue tip]: " + msg + (
- vm ? generateComponentTrace(vm) : ''
- ));
- }
- };
- formatComponentName = function (vm, includeFile) {
- if (vm.$root === vm) {
- return '<Root>'
- }
- var options = typeof vm === 'function' && vm.cid != null
- ? vm.options
- : vm._isVue
- ? vm.$options || vm.constructor.options
- : vm || {};
- var name = options.name || options._componentTag;
- var file = options.__file;
- if (!name && file) {
- var match = file.match(/([^/\\]+)\.vue$/);
- name = match && match[1];
- }
- return (
- (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
- (file && includeFile !== false ? (" at " + file) : '')
- )
- };
- var repeat = function (str, n) {
- var res = '';
- while (n) {
- if (n % 2 === 1) { res += str; }
- if (n > 1) { str += str; }
- n >>= 1;
- }
- return res
- };
- generateComponentTrace = function (vm) {
- if (vm._isVue && vm.$parent) {
- var tree = [];
- var currentRecursiveSequence = 0;
- while (vm) {
- if (tree.length > 0) {
- var last = tree[tree.length - 1];
- if (last.constructor === vm.constructor) {
- currentRecursiveSequence++;
- vm = vm.$parent;
- continue
- } else if (currentRecursiveSequence > 0) {
- tree[tree.length - 1] = [last, currentRecursiveSequence];
- currentRecursiveSequence = 0;
- }
- }
- tree.push(vm);
- vm = vm.$parent;
- }
- return '\n\nfound in\n\n' + tree
- .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
- ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
- : formatComponentName(vm))); })
- .join('\n')
- } else {
- return ("\n\n(found in " + (formatComponentName(vm)) + ")")
- }
- };
- }
- /* */
- var uid = 0;
- /**
- * A dep is an observable that can have multiple
- * directives subscribing to it.
- */
- var Dep = function Dep () {
- this.id = uid++;
- this.subs = [];
- };
- Dep.prototype.addSub = function addSub (sub) {
- this.subs.push(sub);
- };
- Dep.prototype.removeSub = function removeSub (sub) {
- remove(this.subs, sub);
- };
- Dep.prototype.depend = function depend () {
- if (Dep.target) {
- Dep.target.addDep(this);
- }
- };
- Dep.prototype.notify = function notify () {
- // stabilize the subscriber list first
- var subs = this.subs.slice();
- if ("development" !== 'production' && !config.async) {
- // subs aren't sorted in scheduler if not running async
- // we need to sort them now to make sure they fire in correct
- // order
- subs.sort(function (a, b) { return a.id - b.id; });
- }
- for (var i = 0, l = subs.length; i < l; i++) {
- subs[i].update();
- }
- };
- // the current target watcher being evaluated.
- // this is globally unique because there could be only one
- // watcher being evaluated at any time.
- Dep.target = null;
- var targetStack = [];
- function pushTarget (target) {
- targetStack.push(target);
- Dep.target = target;
- }
- function popTarget () {
- targetStack.pop();
- Dep.target = targetStack[targetStack.length - 1];
- }
- /* */
- var VNode = function VNode (
- tag,
- data,
- children,
- text,
- elm,
- context,
- componentOptions,
- asyncFactory
- ) {
- this.tag = tag;
- this.data = data;
- this.children = children;
- this.text = text;
- this.elm = elm;
- this.ns = undefined;
- this.context = context;
- this.fnContext = undefined;
- this.fnOptions = undefined;
- this.fnScopeId = undefined;
- this.key = data && data.key;
- this.componentOptions = componentOptions;
- this.componentInstance = undefined;
- this.parent = undefined;
- this.raw = false;
- this.isStatic = false;
- this.isRootInsert = true;
- this.isComment = false;
- this.isCloned = false;
- this.isOnce = false;
- this.asyncFactory = asyncFactory;
- this.asyncMeta = undefined;
- this.isAsyncPlaceholder = false;
- };
- var prototypeAccessors = { child: { configurable: true } };
- // DEPRECATED: alias for componentInstance for backwards compat.
- /* istanbul ignore next */
- prototypeAccessors.child.get = function () {
- return this.componentInstance
- };
- Object.defineProperties( VNode.prototype, prototypeAccessors );
- var createEmptyVNode = function (text) {
- if ( text === void 0 ) text = '';
- var node = new VNode();
- node.text = text;
- node.isComment = true;
- return node
- };
- function createTextVNode (val) {
- return new VNode(undefined, undefined, undefined, String(val))
- }
- // optimized shallow clone
- // used for static nodes and slot nodes because they may be reused across
- // multiple renders, cloning them avoids errors when DOM manipulations rely
- // on their elm reference.
- function cloneVNode (vnode) {
- var cloned = new VNode(
- vnode.tag,
- vnode.data,
- // #7975
- // clone children array to avoid mutating original in case of cloning
- // a child.
- vnode.children && vnode.children.slice(),
- vnode.text,
- vnode.elm,
- vnode.context,
- vnode.componentOptions,
- vnode.asyncFactory
- );
- cloned.ns = vnode.ns;
- cloned.isStatic = vnode.isStatic;
- cloned.key = vnode.key;
- cloned.isComment = vnode.isComment;
- cloned.fnContext = vnode.fnContext;
- cloned.fnOptions = vnode.fnOptions;
- cloned.fnScopeId = vnode.fnScopeId;
- cloned.asyncMeta = vnode.asyncMeta;
- cloned.isCloned = true;
- return cloned
- }
- /*
- * not type checking this file because flow doesn't play well with
- * dynamically accessing methods on Array prototype
- */
- var arrayProto = Array.prototype;
- var arrayMethods = Object.create(arrayProto);
- var methodsToPatch = [
- 'push',
- 'pop',
- 'shift',
- 'unshift',
- 'splice',
- 'sort',
- 'reverse'
- ];
- /**
- * Intercept mutating methods and emit events
- */
- methodsToPatch.forEach(function (method) {
- // cache original method
- var original = arrayProto[method];
- def(arrayMethods, method, function mutator () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
- var result = original.apply(this, args);
- var ob = this.__ob__;
- var inserted;
- switch (method) {
- case 'push':
- case 'unshift':
- inserted = args;
- break
- case 'splice':
- inserted = args.slice(2);
- break
- }
- if (inserted) { ob.observeArray(inserted); }
- // notify change
- ob.dep.notify();
- return result
- });
- });
- /* */
- var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
- /**
- * In some cases we may want to disable observation inside a component's
- * update computation.
- */
- var shouldObserve = true;
- function toggleObserving (value) {
- shouldObserve = value;
- }
- /**
- * Observer class that is attached to each observed
- * object. Once attached, the observer converts the target
- * object's property keys into getter/setters that
- * collect dependencies and dispatch updates.
- */
- var Observer = function Observer (value) {
- this.value = value;
- this.dep = new Dep();
- this.vmCount = 0;
- def(value, '__ob__', this);
- if (Array.isArray(value)) {
- if (hasProto) {
- protoAugment(value, arrayMethods);
- } else {
- copyAugment(value, arrayMethods, arrayKeys);
- }
- this.observeArray(value);
- } else {
- this.walk(value);
- }
- };
- /**
- * Walk through all properties and convert them into
- * getter/setters. This method should only be called when
- * value type is Object.
- */
- Observer.prototype.walk = function walk (obj) {
- var keys = Object.keys(obj);
- for (var i = 0; i < keys.length; i++) {
- defineReactive$$1(obj, keys[i]);
- }
- };
- /**
- * Observe a list of Array items.
- */
- Observer.prototype.observeArray = function observeArray (items) {
- for (var i = 0, l = items.length; i < l; i++) {
- observe(items[i]);
- }
- };
- // helpers
- /**
- * Augment a target Object or Array by intercepting
- * the prototype chain using __proto__
- */
- function protoAugment (target, src) {
- /* eslint-disable no-proto */
- target.__proto__ = src;
- /* eslint-enable no-proto */
- }
- /**
- * Augment a target Object or Array by defining
- * hidden properties.
- */
- /* istanbul ignore next */
- function copyAugment (target, src, keys) {
- for (var i = 0, l = keys.length; i < l; i++) {
- var key = keys[i];
- def(target, key, src[key]);
- }
- }
- /**
- * Attempt to create an observer instance for a value,
- * returns the new observer if successfully observed,
- * or the existing observer if the value already has one.
- */
- function observe (value, asRootData) {
- if (!isObject(value) || value instanceof VNode) {
- return
- }
- var ob;
- if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
- ob = value.__ob__;
- } else if (
- shouldObserve &&
- !isServerRendering() &&
- (Array.isArray(value) || isPlainObject(value)) &&
- Object.isExtensible(value) &&
- !value._isVue
- ) {
- ob = new Observer(value);
- }
- if (asRootData && ob) {
- ob.vmCount++;
- }
- return ob
- }
- /**
- * Define a reactive property on an Object.
- */
- function defineReactive$$1 (
- obj,
- key,
- val,
- customSetter,
- shallow
- ) {
- var dep = new Dep();
- var property = Object.getOwnPropertyDescriptor(obj, key);
- if (property && property.configurable === false) {
- return
- }
- // cater for pre-defined getter/setters
- var getter = property && property.get;
- var setter = property && property.set;
- if ((!getter || setter) && arguments.length === 2) {
- val = obj[key];
- }
- var childOb = !shallow && observe(val);
- Object.defineProperty(obj, key, {
- enumerable: true,
- configurable: true,
- get: function reactiveGetter () {
- var value = getter ? getter.call(obj) : val;
- if (Dep.target) {
- dep.depend();
- if (childOb) {
- childOb.dep.depend();
- if (Array.isArray(value)) {
- dependArray(value);
- }
- }
- }
- return value
- },
- set: function reactiveSetter (newVal) {
- var value = getter ? getter.call(obj) : val;
- /* eslint-disable no-self-compare */
- if (newVal === value || (newVal !== newVal && value !== value)) {
- return
- }
- /* eslint-enable no-self-compare */
- if ("development" !== 'production' && customSetter) {
- customSetter();
- }
- // #7981: for accessor properties without setter
- if (getter && !setter) { return }
- if (setter) {
- setter.call(obj, newVal);
- } else {
- val = newVal;
- }
- childOb = !shallow && observe(newVal);
- dep.notify();
- }
- });
- }
- /**
- * Set a property on an object. Adds the new property and
- * triggers change notification if the property doesn't
- * already exist.
- */
- function set (target, key, val) {
- if ("development" !== 'production' &&
- (isUndef(target) || isPrimitive(target))
- ) {
- warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
- }
- if (Array.isArray(target) && isValidArrayIndex(key)) {
- target.length = Math.max(target.length, key);
- target.splice(key, 1, val);
- return val
- }
- if (key in target && !(key in Object.prototype)) {
- target[key] = val;
- return val
- }
- var ob = (target).__ob__;
- if (target._isVue || (ob && ob.vmCount)) {
- "development" !== 'production' && warn(
- 'Avoid adding reactive properties to a Vue instance or its root $data ' +
- 'at runtime - declare it upfront in the data option.'
- );
- return val
- }
- if (!ob) {
- target[key] = val;
- return val
- }
- defineReactive$$1(ob.value, key, val);
- ob.dep.notify();
- return val
- }
- /**
- * Delete a property and trigger change if necessary.
- */
- function del (target, key) {
- if ("development" !== 'production' &&
- (isUndef(target) || isPrimitive(target))
- ) {
- warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
- }
- if (Array.isArray(target) && isValidArrayIndex(key)) {
- target.splice(key, 1);
- return
- }
- var ob = (target).__ob__;
- if (target._isVue || (ob && ob.vmCount)) {
- "development" !== 'production' && warn(
- 'Avoid deleting properties on a Vue instance or its root $data ' +
- '- just set it to null.'
- );
- return
- }
- if (!hasOwn(target, key)) {
- return
- }
- delete target[key];
- if (!ob) {
- return
- }
- ob.dep.notify();
- }
- /**
- * Collect dependencies on array elements when the array is touched, since
- * we cannot intercept array element access like property getters.
- */
- function dependArray (value) {
- for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
- e = value[i];
- e && e.__ob__ && e.__ob__.dep.depend();
- if (Array.isArray(e)) {
- dependArray(e);
- }
- }
- }
- /* */
- /**
- * Option overwriting strategies are functions that handle
- * how to merge a parent option value and a child option
- * value into the final value.
- */
- var strats = config.optionMergeStrategies;
- /**
- * Options with restrictions
- */
- if (true) {
- strats.el = strats.propsData = function (parent, child, vm, key) {
- if (!vm) {
- warn(
- "option \"" + key + "\" can only be used during instance " +
- 'creation with the `new` keyword.'
- );
- }
- return defaultStrat(parent, child)
- };
- }
- /**
- * Helper that recursively merges two data objects together.
- */
- function mergeData (to, from) {
- if (!from) { return to }
- var key, toVal, fromVal;
- var keys = Object.keys(from);
- for (var i = 0; i < keys.length; i++) {
- key = keys[i];
- toVal = to[key];
- fromVal = from[key];
- if (!hasOwn(to, key)) {
- set(to, key, fromVal);
- } else if (
- toVal !== fromVal &&
- isPlainObject(toVal) &&
- isPlainObject(fromVal)
- ) {
- mergeData(toVal, fromVal);
- }
- }
- return to
- }
- /**
- * Data
- */
- function mergeDataOrFn (
- parentVal,
- childVal,
- vm
- ) {
- if (!vm) {
- // in a Vue.extend merge, both should be functions
- if (!childVal) {
- return parentVal
- }
- if (!parentVal) {
- return childVal
- }
- // when parentVal & childVal are both present,
- // we need to return a function that returns the
- // merged result of both functions... no need to
- // check if parentVal is a function here because
- // it has to be a function to pass previous merges.
- return function mergedDataFn () {
- return mergeData(
- typeof childVal === 'function' ? childVal.call(this, this) : childVal,
- typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
- )
- }
- } else {
- return function mergedInstanceDataFn () {
- // instance merge
- var instanceData = typeof childVal === 'function'
- ? childVal.call(vm, vm)
- : childVal;
- var defaultData = typeof parentVal === 'function'
- ? parentVal.call(vm, vm)
- : parentVal;
- if (instanceData) {
- return mergeData(instanceData, defaultData)
- } else {
- return defaultData
- }
- }
- }
- }
- strats.data = function (
- parentVal,
- childVal,
- vm
- ) {
- if (!vm) {
- if (childVal && typeof childVal !== 'function') {
- "development" !== 'production' && warn(
- 'The "data" option should be a function ' +
- 'that returns a per-instance value in component ' +
- 'definitions.',
- vm
- );
- return parentVal
- }
- return mergeDataOrFn(parentVal, childVal)
- }
- return mergeDataOrFn(parentVal, childVal, vm)
- };
- /**
- * Hooks and props are merged as arrays.
- */
- function mergeHook (
- parentVal,
- childVal
- ) {
- return childVal
- ? parentVal
- ? parentVal.concat(childVal)
- : Array.isArray(childVal)
- ? childVal
- : [childVal]
- : parentVal
- }
- LIFECYCLE_HOOKS.forEach(function (hook) {
- strats[hook] = mergeHook;
- });
- /**
- * Assets
- *
- * When a vm is present (instance creation), we need to do
- * a three-way merge between constructor options, instance
- * options and parent options.
- */
- function mergeAssets (
- parentVal,
- childVal,
- vm,
- key
- ) {
- var res = Object.create(parentVal || null);
- if (childVal) {
- "development" !== 'production' && assertObjectType(key, childVal, vm);
- return extend(res, childVal)
- } else {
- return res
- }
- }
- ASSET_TYPES.forEach(function (type) {
- strats[type + 's'] = mergeAssets;
- });
- /**
- * Watchers.
- *
- * Watchers hashes should not overwrite one
- * another, so we merge them as arrays.
- */
- strats.watch = function (
- parentVal,
- childVal,
- vm,
- key
- ) {
- // work around Firefox's Object.prototype.watch...
- if (parentVal === nativeWatch) { parentVal = undefined; }
- if (childVal === nativeWatch) { childVal = undefined; }
- /* istanbul ignore if */
- if (!childVal) { return Object.create(parentVal || null) }
- if (true) {
- assertObjectType(key, childVal, vm);
- }
- if (!parentVal) { return childVal }
- var ret = {};
- extend(ret, parentVal);
- for (var key$1 in childVal) {
- var parent = ret[key$1];
- var child = childVal[key$1];
- if (parent && !Array.isArray(parent)) {
- parent = [parent];
- }
- ret[key$1] = parent
- ? parent.concat(child)
- : Array.isArray(child) ? child : [child];
- }
- return ret
- };
- /**
- * Other object hashes.
- */
- strats.props =
- strats.methods =
- strats.inject =
- strats.computed = function (
- parentVal,
- childVal,
- vm,
- key
- ) {
- if (childVal && "development" !== 'production') {
- assertObjectType(key, childVal, vm);
- }
- if (!parentVal) { return childVal }
- var ret = Object.create(null);
- extend(ret, parentVal);
- if (childVal) { extend(ret, childVal); }
- return ret
- };
- strats.provide = mergeDataOrFn;
- /**
- * Default strategy.
- */
- var defaultStrat = function (parentVal, childVal) {
- return childVal === undefined
- ? parentVal
- : childVal
- };
- /**
- * Validate component names
- */
- function checkComponents (options) {
- for (var key in options.components) {
- validateComponentName(key);
- }
- }
- function validateComponentName (name) {
- if (!/^[a-zA-Z][\w-]*$/.test(name)) {
- warn(
- 'Invalid component name: "' + name + '". Component names ' +
- 'can only contain alphanumeric characters and the hyphen, ' +
- 'and must start with a letter.'
- );
- }
- if (isBuiltInTag(name) || config.isReservedTag(name)) {
- warn(
- 'Do not use built-in or reserved HTML elements as component ' +
- 'id: ' + name
- );
- }
- }
- /**
- * Ensure all props option syntax are normalized into the
- * Object-based format.
- */
- function normalizeProps (options, vm) {
- var props = options.props;
- if (!props) { return }
- var res = {};
- var i, val, name;
- if (Array.isArray(props)) {
- i = props.length;
- while (i--) {
- val = props[i];
- if (typeof val === 'string') {
- name = camelize(val);
- res[name] = { type: null };
- } else if (true) {
- warn('props must be strings when using array syntax.');
- }
- }
- } else if (isPlainObject(props)) {
- for (var key in props) {
- val = props[key];
- name = camelize(key);
- res[name] = isPlainObject(val)
- ? val
- : { type: val };
- }
- } else if (true) {
- warn(
- "Invalid value for option \"props\": expected an Array or an Object, " +
- "but got " + (toRawType(props)) + ".",
- vm
- );
- }
- options.props = res;
- }
- /**
- * Normalize all injections into Object-based format
- */
- function normalizeInject (options, vm) {
- var inject = options.inject;
- if (!inject) { return }
- var normalized = options.inject = {};
- if (Array.isArray(inject)) {
- for (var i = 0; i < inject.length; i++) {
- normalized[inject[i]] = { from: inject[i] };
- }
- } else if (isPlainObject(inject)) {
- for (var key in inject) {
- var val = inject[key];
- normalized[key] = isPlainObject(val)
- ? extend({ from: key }, val)
- : { from: val };
- }
- } else if (true) {
- warn(
- "Invalid value for option \"inject\": expected an Array or an Object, " +
- "but got " + (toRawType(inject)) + ".",
- vm
- );
- }
- }
- /**
- * Normalize raw function directives into object format.
- */
- function normalizeDirectives (options) {
- var dirs = options.directives;
- if (dirs) {
- for (var key in dirs) {
- var def = dirs[key];
- if (typeof def === 'function') {
- dirs[key] = { bind: def, update: def };
- }
- }
- }
- }
- function assertObjectType (name, value, vm) {
- if (!isPlainObject(value)) {
- warn(
- "Invalid value for option \"" + name + "\": expected an Object, " +
- "but got " + (toRawType(value)) + ".",
- vm
- );
- }
- }
- /**
- * Merge two option objects into a new one.
- * Core utility used in both instantiation and inheritance.
- */
- function mergeOptions (
- parent,
- child,
- vm
- ) {
- if (true) {
- checkComponents(child);
- }
- if (typeof child === 'function') {
- child = child.options;
- }
- normalizeProps(child, vm);
- normalizeInject(child, vm);
- normalizeDirectives(child);
-
- // Apply extends and mixins on the child options,
- // but only if it is a raw options object that isn't
- // the result of another mergeOptions call.
- // Only merged options has the _base property.
- if (!child._base) {
- if (child.extends) {
- parent = mergeOptions(parent, child.extends, vm);
- }
- if (child.mixins) {
- for (var i = 0, l = child.mixins.length; i < l; i++) {
- parent = mergeOptions(parent, child.mixins[i], vm);
- }
- }
- }
- var options = {};
- var key;
- for (key in parent) {
- mergeField(key);
- }
- for (key in child) {
- if (!hasOwn(parent, key)) {
- mergeField(key);
- }
- }
- function mergeField (key) {
- var strat = strats[key] || defaultStrat;
- options[key] = strat(parent[key], child[key], vm, key);
- }
- return options
- }
- /**
- * Resolve an asset.
- * This function is used because child instances need access
- * to assets defined in its ancestor chain.
- */
- function resolveAsset (
- options,
- type,
- id,
- warnMissing
- ) {
- /* istanbul ignore if */
- if (typeof id !== 'string') {
- return
- }
- var assets = options[type];
- // check local registration variations first
- if (hasOwn(assets, id)) { return assets[id] }
- var camelizedId = camelize(id);
- if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
- var PascalCaseId = capitalize(camelizedId);
- if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
- // fallback to prototype chain
- var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
- if ("development" !== 'production' && warnMissing && !res) {
- warn(
- 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
- options
- );
- }
- return res
- }
- /* */
- function validateProp (
- key,
- propOptions,
- propsData,
- vm
- ) {
- var prop = propOptions[key];
- var absent = !hasOwn(propsData, key);
- var value = propsData[key];
- // boolean casting
- var booleanIndex = getTypeIndex(Boolean, prop.type);
- if (booleanIndex > -1) {
- if (absent && !hasOwn(prop, 'default')) {
- value = false;
- } else if (value === '' || value === hyphenate(key)) {
- // only cast empty string / same name to boolean if
- // boolean has higher priority
- var stringIndex = getTypeIndex(String, prop.type);
- if (stringIndex < 0 || booleanIndex < stringIndex) {
- value = true;
- }
- }
- }
- // check default value
- if (value === undefined) {
- value = getPropDefaultValue(vm, prop, key);
- // since the default value is a fresh copy,
- // make sure to observe it.
- var prevShouldObserve = shouldObserve;
- toggleObserving(true);
- observe(value);
- toggleObserving(prevShouldObserve);
- }
- if (
- true
- ) {
- assertProp(prop, key, value, vm, absent);
- }
- return value
- }
- /**
- * Get the default value of a prop.
- */
- function getPropDefaultValue (vm, prop, key) {
- // no default, return undefined
- if (!hasOwn(prop, 'default')) {
- return undefined
- }
- var def = prop.default;
- // warn against non-factory defaults for Object & Array
- if ("development" !== 'production' && isObject(def)) {
- warn(
- 'Invalid default value for prop "' + key + '": ' +
- 'Props with type Object/Array must use a factory function ' +
- 'to return the default value.',
- vm
- );
- }
- // the raw prop value was also undefined from previous render,
- // return previous default value to avoid unnecessary watcher trigger
- if (vm && vm.$options.propsData &&
- vm.$options.propsData[key] === undefined &&
- vm._props[key] !== undefined
- ) {
- return vm._props[key]
- }
- // call factory function for non-Function types
- // a value is Function if its prototype is function even across different execution context
- return typeof def === 'function' && getType(prop.type) !== 'Function'
- ? def.call(vm)
- : def
- }
- /**
- * Assert whether a prop is valid.
- */
- function assertProp (
- prop,
- name,
- value,
- vm,
- absent
- ) {
- if (prop.required && absent) {
- warn(
- 'Missing required prop: "' + name + '"',
- vm
- );
- return
- }
- if (value == null && !prop.required) {
- return
- }
- var type = prop.type;
- var valid = !type || type === true;
- var expectedTypes = [];
- if (type) {
- if (!Array.isArray(type)) {
- type = [type];
- }
- for (var i = 0; i < type.length && !valid; i++) {
- var assertedType = assertType(value, type[i]);
- expectedTypes.push(assertedType.expectedType || '');
- valid = assertedType.valid;
- }
- }
- if (!valid) {
- warn(
- getInvalidTypeMessage(name, value, expectedTypes),
- vm
- );
- return
- }
- var validator = prop.validator;
- if (validator) {
- if (!validator(value)) {
- warn(
- 'Invalid prop: custom validator check failed for prop "' + name + '".',
- vm
- );
- }
- }
- }
- var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
- function assertType (value, type) {
- var valid;
- var expectedType = getType(type);
- if (simpleCheckRE.test(expectedType)) {
- var t = typeof value;
- valid = t === expectedType.toLowerCase();
- // for primitive wrapper objects
- if (!valid && t === 'object') {
- valid = value instanceof type;
- }
- } else if (expectedType === 'Object') {
- valid = isPlainObject(value);
- } else if (expectedType === 'Array') {
- valid = Array.isArray(value);
- } else {
- valid = value instanceof type;
- }
- return {
- valid: valid,
- expectedType: expectedType
- }
- }
- /**
- * Use function string name to check built-in types,
- * because a simple equality check will fail when running
- * across different vms / iframes.
- */
- function getType (fn) {
- var match = fn && fn.toString().match(/^\s*function (\w+)/);
- return match ? match[1] : ''
- }
- function isSameType (a, b) {
- return getType(a) === getType(b)
- }
- function getTypeIndex (type, expectedTypes) {
- if (!Array.isArray(expectedTypes)) {
- return isSameType(expectedTypes, type) ? 0 : -1
- }
- for (var i = 0, len = expectedTypes.length; i < len; i++) {
- if (isSameType(expectedTypes[i], type)) {
- return i
- }
- }
- return -1
- }
- function getInvalidTypeMessage (name, value, expectedTypes) {
- var message = "Invalid prop: type check failed for prop \"" + name + "\"." +
- " Expected " + (expectedTypes.map(capitalize).join(', '));
- var expectedType = expectedTypes[0];
- var receivedType = toRawType(value);
- var expectedValue = styleValue(value, expectedType);
- var receivedValue = styleValue(value, receivedType);
- // check if we need to specify expected value
- if (expectedTypes.length === 1 &&
- isExplicable(expectedType) &&
- !isBoolean(expectedType, receivedType)) {
- message += " with value " + expectedValue;
- }
- message += ", got " + receivedType + " ";
- // check if we need to specify received value
- if (isExplicable(receivedType)) {
- message += "with value " + receivedValue + ".";
- }
- return message
- }
- function styleValue (value, type) {
- if (type === 'String') {
- return ("\"" + value + "\"")
- } else if (type === 'Number') {
- return ("" + (Number(value)))
- } else {
- return ("" + value)
- }
- }
- function isExplicable (value) {
- var explicitTypes = ['string', 'number', 'boolean'];
- return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })
- }
- function isBoolean () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
- return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })
- }
- /* */
- function handleError (err, vm, info) {
- if (vm) {
- var cur = vm;
- while ((cur = cur.$parent)) {
- var hooks = cur.$options.errorCaptured;
- if (hooks) {
- for (var i = 0; i < hooks.length; i++) {
- try {
- var capture = hooks[i].call(cur, err, vm, info) === false;
- if (capture) { return }
- } catch (e) {
- globalHandleError(e, cur, 'errorCaptured hook');
- }
- }
- }
- }
- }
- globalHandleError(err, vm, info);
- }
- function globalHandleError (err, vm, info) {
- if (config.errorHandler) {
- try {
- return config.errorHandler.call(null, err, vm, info)
- } catch (e) {
- logError(e, null, 'config.errorHandler');
- }
- }
- logError(err, vm, info);
- }
- function logError (err, vm, info) {
- if (true) {
- warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
- }
- /* istanbul ignore else */
- if ((inBrowser || inWeex) && typeof console !== 'undefined') {
- console.error(err);
- } else {
- throw err
- }
- }
- /* */
- var callbacks = [];
- var pending = false;
- function flushCallbacks () {
- pending = false;
- var copies = callbacks.slice(0);
- callbacks.length = 0;
- for (var i = 0; i < copies.length; i++) {
- copies[i]();
- }
- }
- // Here we have async deferring wrappers using both microtasks and (macro) tasks.
- // In < 2.4 we used microtasks everywhere, but there are some scenarios where
- // microtasks have too high a priority and fire in between supposedly
- // sequential events (e.g. #4521, #6690) or even between bubbling of the same
- // event (#6566). However, using (macro) tasks everywhere also has subtle problems
- // when state is changed right before repaint (e.g. #6813, out-in transitions).
- // Here we use microtask by default, but expose a way to force (macro) task when
- // needed (e.g. in event handlers attached by v-on).
- var microTimerFunc;
- var macroTimerFunc;
- var useMacroTask = false;
- // Determine (macro) task defer implementation.
- // Technically setImmediate should be the ideal choice, but it's only available
- // in IE. The only polyfill that consistently queues the callback after all DOM
- // events triggered in the same loop is by using MessageChannel.
- /* istanbul ignore if */
- if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
- macroTimerFunc = function () {
- setImmediate(flushCallbacks);
- };
- } else if (typeof MessageChannel !== 'undefined' && (
- isNative(MessageChannel) ||
- // PhantomJS
- MessageChannel.toString() === '[object MessageChannelConstructor]'
- )) {
- var channel = new MessageChannel();
- var port = channel.port2;
- channel.port1.onmessage = flushCallbacks;
- macroTimerFunc = function () {
- port.postMessage(1);
- };
- } else {
- /* istanbul ignore next */
- macroTimerFunc = function () {
- setTimeout(flushCallbacks, 0);
- };
- }
- // Determine microtask defer implementation.
- /* istanbul ignore next, $flow-disable-line */
- if (typeof Promise !== 'undefined' && isNative(Promise)) {
- var p = Promise.resolve();
- microTimerFunc = function () {
- p.then(flushCallbacks);
- // in problematic UIWebViews, Promise.then doesn't completely break, but
- // it can get stuck in a weird state where callbacks are pushed into the
- // microtask queue but the queue isn't being flushed, until the browser
- // needs to do some other work, e.g. handle a timer. Therefore we can
- // "force" the microtask queue to be flushed by adding an empty timer.
- if (isIOS) { setTimeout(noop); }
- };
- } else {
- // fallback to macro
- microTimerFunc = macroTimerFunc;
- }
- /**
- * Wrap a function so that if any code inside triggers state change,
- * the changes are queued using a (macro) task instead of a microtask.
- */
- function withMacroTask (fn) {
- return fn._withTask || (fn._withTask = function () {
- useMacroTask = true;
- try {
- return fn.apply(null, arguments)
- } finally {
- useMacroTask = false;
- }
- })
- }
- function nextTick (cb, ctx) {
- var _resolve;
- callbacks.push(function () {
- if (cb) {
- try {
- cb.call(ctx);
- } catch (e) {
- handleError(e, ctx, 'nextTick');
- }
- } else if (_resolve) {
- _resolve(ctx);
- }
- });
- if (!pending) {
- pending = true;
- if (useMacroTask) {
- macroTimerFunc();
- } else {
- microTimerFunc();
- }
- }
- // $flow-disable-line
- if (!cb && typeof Promise !== 'undefined') {
- return new Promise(function (resolve) {
- _resolve = resolve;
- })
- }
- }
- /* */
- var mark;
- var measure;
- if (true) {
- var perf = inBrowser && window.performance;
- /* istanbul ignore if */
- if (
- perf &&
- perf.mark &&
- perf.measure &&
- perf.clearMarks &&
- perf.clearMeasures
- ) {
- mark = function (tag) { return perf.mark(tag); };
- measure = function (name, startTag, endTag) {
- perf.measure(name, startTag, endTag);
- perf.clearMarks(startTag);
- perf.clearMarks(endTag);
- perf.clearMeasures(name);
- };
- }
- }
- /* not type checking this file because flow doesn't play well with Proxy */
- var initProxy;
- if (true) {
- var allowedGlobals = makeMap(
- 'Infinity,undefined,NaN,isFinite,isNaN,' +
- 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
- 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
- 'require' // for Webpack/Browserify
- );
- var warnNonPresent = function (target, key) {
- warn(
- "Property or method \"" + key + "\" is not defined on the instance but " +
- 'referenced during render. Make sure that this property is reactive, ' +
- 'either in the data option, or for class-based components, by ' +
- 'initializing the property. ' +
- 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
- target
- );
- };
- var warnReservedPrefix = function (target, key) {
- warn(
- "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " +
- 'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
- 'prevent conflicts with Vue internals' +
- 'See: https://vuejs.org/v2/api/#data',
- target
- );
- };
- var hasProxy =
- typeof Proxy !== 'undefined' && isNative(Proxy);
- if (hasProxy) {
- var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
- config.keyCodes = new Proxy(config.keyCodes, {
- set: function set (target, key, value) {
- if (isBuiltInModifier(key)) {
- warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
- return false
- } else {
- target[key] = value;
- return true
- }
- }
- });
- }
- var hasHandler = {
- has: function has (target, key) {
- var has = key in target;
- var isAllowed = allowedGlobals(key) ||
- (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));
- if (!has && !isAllowed) {
- if (key in target.$data) { warnReservedPrefix(target, key); }
- else { warnNonPresent(target, key); }
- }
- return has || !isAllowed
- }
- };
- var getHandler = {
- get: function get (target, key) {
- if (typeof key === 'string' && !(key in target)) {
- if (key in target.$data) { warnReservedPrefix(target, key); }
- else { warnNonPresent(target, key); }
- }
- return target[key]
- }
- };
- initProxy = function initProxy (vm) {
- if (hasProxy) {
- // determine which proxy handler to use
- var options = vm.$options;
- var handlers = options.render && options.render._withStripped
- ? getHandler
- : hasHandler;
- vm._renderProxy = new Proxy(vm, handlers);
- } else {
- vm._renderProxy = vm;
- }
- };
- }
- /* */
- var seenObjects = new _Set();
- /**
- * Recursively traverse an object to evoke all converted
- * getters, so that every nested property inside the object
- * is collected as a "deep" dependency.
- */
- function traverse (val) {
- _traverse(val, seenObjects);
- seenObjects.clear();
- }
- function _traverse (val, seen) {
- var i, keys;
- var isA = Array.isArray(val);
- if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
- return
- }
- if (val.__ob__) {
- var depId = val.__ob__.dep.id;
- if (seen.has(depId)) {
- return
- }
- seen.add(depId);
- }
- if (isA) {
- i = val.length;
- while (i--) { _traverse(val[i], seen); }
- } else {
- keys = Object.keys(val);
- i = keys.length;
- while (i--) { _traverse(val[keys[i]], seen); }
- }
- }
- /* */
- var normalizeEvent = cached(function (name) {
- var passive = name.charAt(0) === '&';
- name = passive ? name.slice(1) : name;
- var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
- name = once$$1 ? name.slice(1) : name;
- var capture = name.charAt(0) === '!';
- name = capture ? name.slice(1) : name;
- return {
- name: name,
- once: once$$1,
- capture: capture,
- passive: passive
- }
- });
- function createFnInvoker (fns) {
- function invoker () {
- var arguments$1 = arguments;
- var fns = invoker.fns;
- if (Array.isArray(fns)) {
- var cloned = fns.slice();
- for (var i = 0; i < cloned.length; i++) {
- cloned[i].apply(null, arguments$1);
- }
- } else {
- // return handler return value for single handlers
- return fns.apply(null, arguments)
- }
- }
- invoker.fns = fns;
- return invoker
- }
- function updateListeners (
- on,
- oldOn,
- add,
- remove$$1,
- createOnceHandler,
- vm
- ) {
- var name, def$$1, cur, old, event;
- for (name in on) {
- def$$1 = cur = on[name];
- old = oldOn[name];
- event = normalizeEvent(name);
- if (isUndef(cur)) {
- "development" !== 'production' && warn(
- "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
- vm
- );
- } else if (isUndef(old)) {
- if (isUndef(cur.fns)) {
- cur = on[name] = createFnInvoker(cur);
- }
- if (isTrue(event.once)) {
- cur = on[name] = createOnceHandler(event.name, cur, event.capture);
- }
- add(event.name, cur, event.capture, event.passive, event.params);
- } else if (cur !== old) {
- old.fns = cur;
- on[name] = old;
- }
- }
- for (name in oldOn) {
- if (isUndef(on[name])) {
- event = normalizeEvent(name);
- remove$$1(event.name, oldOn[name], event.capture);
- }
- }
- }
- /* */
- function mergeVNodeHook (def, hookKey, hook) {
- if (def instanceof VNode) {
- def = def.data.hook || (def.data.hook = {});
- }
- var invoker;
- var oldHook = def[hookKey];
- function wrappedHook () {
- hook.apply(this, arguments);
- // important: remove merged hook to ensure it's called only once
- // and prevent memory leak
- remove(invoker.fns, wrappedHook);
- }
- if (isUndef(oldHook)) {
- // no existing hook
- invoker = createFnInvoker([wrappedHook]);
- } else {
- /* istanbul ignore if */
- if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
- // already a merged invoker
- invoker = oldHook;
- invoker.fns.push(wrappedHook);
- } else {
- // existing plain hook
- invoker = createFnInvoker([oldHook, wrappedHook]);
- }
- }
- invoker.merged = true;
- def[hookKey] = invoker;
- }
- /* */
- function extractPropsFromVNodeData (
- data,
- Ctor,
- tag
- ) {
- // we are only extracting raw values here.
- // validation and default values are handled in the child
- // component itself.
- var propOptions = Ctor.options.props;
- if (isUndef(propOptions)) {
- return
- }
- var res = {};
- var attrs = data.attrs;
- var props = data.props;
- if (isDef(attrs) || isDef(props)) {
- for (var key in propOptions) {
- var altKey = hyphenate(key);
- if (true) {
- var keyInLowerCase = key.toLowerCase();
- if (
- key !== keyInLowerCase &&
- attrs && hasOwn(attrs, keyInLowerCase)
- ) {
- tip(
- "Prop \"" + keyInLowerCase + "\" is passed to component " +
- (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
- " \"" + key + "\". " +
- "Note that HTML attributes are case-insensitive and camelCased " +
- "props need to use their kebab-case equivalents when using in-DOM " +
- "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
- );
- }
- }
- checkProp(res, props, key, altKey, true) ||
- checkProp(res, attrs, key, altKey, false);
- }
- }
- return res
- }
- function checkProp (
- res,
- hash,
- key,
- altKey,
- preserve
- ) {
- if (isDef(hash)) {
- if (hasOwn(hash, key)) {
- res[key] = hash[key];
- if (!preserve) {
- delete hash[key];
- }
- return true
- } else if (hasOwn(hash, altKey)) {
- res[key] = hash[altKey];
- if (!preserve) {
- delete hash[altKey];
- }
- return true
- }
- }
- return false
- }
- /* */
- // The template compiler attempts to minimize the need for normalization by
- // statically analyzing the template at compile time.
- //
- // For plain HTML markup, normalization can be completely skipped because the
- // generated render function is guaranteed to return Array<VNode>. There are
- // two cases where extra normalization is needed:
- // 1. When the children contains components - because a functional component
- // may return an Array instead of a single root. In this case, just a simple
- // normalization is needed - if any child is an Array, we flatten the whole
- // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
- // because functional components already normalize their own children.
- function simpleNormalizeChildren (children) {
- for (var i = 0; i < children.length; i++) {
- if (Array.isArray(children[i])) {
- return Array.prototype.concat.apply([], children)
- }
- }
- return children
- }
- // 2. When the children contains constructs that always generated nested Arrays,
- // e.g. <template>, <slot>, v-for, or when the children is provided by user
- // with hand-written render functions / JSX. In such cases a full normalization
- // is needed to cater to all possible types of children values.
- function normalizeChildren (children) {
- return isPrimitive(children)
- ? [createTextVNode(children)]
- : Array.isArray(children)
- ? normalizeArrayChildren(children)
- : undefined
- }
- function isTextNode (node) {
- return isDef(node) && isDef(node.text) && isFalse(node.isComment)
- }
- function normalizeArrayChildren (children, nestedIndex) {
- var res = [];
- var i, c, lastIndex, last;
- for (i = 0; i < children.length; i++) {
- c = children[i];
- if (isUndef(c) || typeof c === 'boolean') { continue }
- lastIndex = res.length - 1;
- last = res[lastIndex];
- // nested
- if (Array.isArray(c)) {
- if (c.length > 0) {
- c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
- // merge adjacent text nodes
- if (isTextNode(c[0]) && isTextNode(last)) {
- res[lastIndex] = createTextVNode(last.text + (c[0]).text);
- c.shift();
- }
- res.push.apply(res, c);
- }
- } else if (isPrimitive(c)) {
- if (isTextNode(last)) {
- // merge adjacent text nodes
- // this is necessary for SSR hydration because text nodes are
- // essentially merged when rendered to HTML strings
- res[lastIndex] = createTextVNode(last.text + c);
- } else if (c !== '') {
- // convert primitive to vnode
- res.push(createTextVNode(c));
- }
- } else {
- if (isTextNode(c) && isTextNode(last)) {
- // merge adjacent text nodes
- res[lastIndex] = createTextVNode(last.text + c.text);
- } else {
- // default key for nested array children (likely generated by v-for)
- if (isTrue(children._isVList) &&
- isDef(c.tag) &&
- isUndef(c.key) &&
- isDef(nestedIndex)) {
- c.key = "__vlist" + nestedIndex + "_" + i + "__";
- }
- res.push(c);
- }
- }
- }
- return res
- }
- /* */
- function ensureCtor (comp, base) {
- if (
- comp.__esModule ||
- (hasSymbol && comp[Symbol.toStringTag] === 'Module')
- ) {
- comp = comp.default;
- }
- return isObject(comp)
- ? base.extend(comp)
- : comp
- }
- function createAsyncPlaceholder (
- factory,
- data,
- context,
- children,
- tag
- ) {
- var node = createEmptyVNode();
- node.asyncFactory = factory;
- node.asyncMeta = { data: data, context: context, children: children, tag: tag };
- return node
- }
- function resolveAsyncComponent (
- factory,
- baseCtor,
- context
- ) {
- if (isTrue(factory.error) && isDef(factory.errorComp)) {
- return factory.errorComp
- }
- if (isDef(factory.resolved)) {
- return factory.resolved
- }
- if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
- return factory.loadingComp
- }
- if (isDef(factory.contexts)) {
- // already pending
- factory.contexts.push(context);
- } else {
- var contexts = factory.contexts = [context];
- var sync = true;
- var forceRender = function (renderCompleted) {
- for (var i = 0, l = contexts.length; i < l; i++) {
- contexts[i].$forceUpdate();
- }
- if (renderCompleted) {
- contexts.length = 0;
- }
- };
- var resolve = once(function (res) {
- // cache resolved
- factory.resolved = ensureCtor(res, baseCtor);
- // invoke callbacks only if this is not a synchronous resolve
- // (async resolves are shimmed as synchronous during SSR)
- if (!sync) {
- forceRender(true);
- }
- });
- var reject = once(function (reason) {
- "development" !== 'production' && warn(
- "Failed to resolve async component: " + (String(factory)) +
- (reason ? ("\nReason: " + reason) : '')
- );
- if (isDef(factory.errorComp)) {
- factory.error = true;
- forceRender(true);
- }
- });
- var res = factory(resolve, reject);
- if (isObject(res)) {
- if (typeof res.then === 'function') {
- // () => Promise
- if (isUndef(factory.resolved)) {
- res.then(resolve, reject);
- }
- } else if (isDef(res.component) && typeof res.component.then === 'function') {
- res.component.then(resolve, reject);
- if (isDef(res.error)) {
- factory.errorComp = ensureCtor(res.error, baseCtor);
- }
- if (isDef(res.loading)) {
- factory.loadingComp = ensureCtor(res.loading, baseCtor);
- if (res.delay === 0) {
- factory.loading = true;
- } else {
- setTimeout(function () {
- if (isUndef(factory.resolved) && isUndef(factory.error)) {
- factory.loading = true;
- forceRender(false);
- }
- }, res.delay || 200);
- }
- }
- if (isDef(res.timeout)) {
- setTimeout(function () {
- if (isUndef(factory.resolved)) {
- reject(
- true
- ? ("timeout (" + (res.timeout) + "ms)")
- : null
- );
- }
- }, res.timeout);
- }
- }
- }
- sync = false;
- // return in case resolved synchronously
- return factory.loading
- ? factory.loadingComp
- : factory.resolved
- }
- }
- /* */
- function isAsyncPlaceholder (node) {
- return node.isComment && node.asyncFactory
- }
- /* */
- function getFirstComponentChild (children) {
- if (Array.isArray(children)) {
- for (var i = 0; i < children.length; i++) {
- var c = children[i];
- if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
- return c
- }
- }
- }
- }
- /* */
- /* */
- function initEvents (vm) {
- vm._events = Object.create(null);
- vm._hasHookEvent = false;
- // init parent attached events
- var listeners = vm.$options._parentListeners;
- if (listeners) {
- updateComponentListeners(vm, listeners);
- }
- }
- var target;
- function add (event, fn) {
- target.$on(event, fn);
- }
- function remove$1 (event, fn) {
- target.$off(event, fn);
- }
- function createOnceHandler (event, fn) {
- var _target = target;
- return function onceHandler () {
- var res = fn.apply(null, arguments);
- if (res !== null) {
- _target.$off(event, onceHandler);
- }
- }
- }
- function updateComponentListeners (
- vm,
- listeners,
- oldListeners
- ) {
- target = vm;
- updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);
- target = undefined;
- }
- function eventsMixin (Vue) {
- var hookRE = /^hook:/;
- Vue.prototype.$on = function (event, fn) {
- var vm = this;
- if (Array.isArray(event)) {
- for (var i = 0, l = event.length; i < l; i++) {
- vm.$on(event[i], fn);
- }
- } else {
- (vm._events[event] || (vm._events[event] = [])).push(fn);
- // optimize hook:event cost by using a boolean flag marked at registration
- // instead of a hash lookup
- if (hookRE.test(event)) {
- vm._hasHookEvent = true;
- }
- }
- return vm
- };
- Vue.prototype.$once = function (event, fn) {
- var vm = this;
- function on () {
- vm.$off(event, on);
- fn.apply(vm, arguments);
- }
- on.fn = fn;
- vm.$on(event, on);
- return vm
- };
- Vue.prototype.$off = function (event, fn) {
- var vm = this;
- // all
- if (!arguments.length) {
- vm._events = Object.create(null);
- return vm
- }
- // array of events
- if (Array.isArray(event)) {
- for (var i = 0, l = event.length; i < l; i++) {
- vm.$off(event[i], fn);
- }
- return vm
- }
- // specific event
- var cbs = vm._events[event];
- if (!cbs) {
- return vm
- }
- if (!fn) {
- vm._events[event] = null;
- return vm
- }
- if (fn) {
- // specific handler
- var cb;
- var i$1 = cbs.length;
- while (i$1--) {
- cb = cbs[i$1];
- if (cb === fn || cb.fn === fn) {
- cbs.splice(i$1, 1);
- break
- }
- }
- }
- return vm
- };
- Vue.prototype.$emit = function (event) {
- var vm = this;
- if (true) {
- var lowerCaseEvent = event.toLowerCase();
- if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
- tip(
- "Event \"" + lowerCaseEvent + "\" is emitted in component " +
- (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
- "Note that HTML attributes are case-insensitive and you cannot use " +
- "v-on to listen to camelCase events when using in-DOM templates. " +
- "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
- );
- }
- }
- var cbs = vm._events[event];
- if (cbs) {
- cbs = cbs.length > 1 ? toArray(cbs) : cbs;
- var args = toArray(arguments, 1);
- for (var i = 0, l = cbs.length; i < l; i++) {
- try {
- cbs[i].apply(vm, args);
- } catch (e) {
- handleError(e, vm, ("event handler for \"" + event + "\""));
- }
- }
- }
- return vm
- };
- }
- /* */
- /**
- * Runtime helper for resolving raw children VNodes into a slot object.
- */
- function resolveSlots (
- children,
- context
- ) {
- var slots = {};
- if (!children) {
- return slots
- }
- for (var i = 0, l = children.length; i < l; i++) {
- var child = children[i];
- var data = child.data;
- // remove slot attribute if the node is resolved as a Vue slot node
- if (data && data.attrs && data.attrs.slot) {
- delete data.attrs.slot;
- }
- // named slots should only be respected if the vnode was rendered in the
- // same context.
- if ((child.context === context || child.fnContext === context) &&
- data && data.slot != null
- ) {
- var name = data.slot;
- var slot = (slots[name] || (slots[name] = []));
- if (child.tag === 'template') {
- slot.push.apply(slot, child.children || []);
- } else {
- slot.push(child);
- }
- } else {
- (slots.default || (slots.default = [])).push(child);
- }
- }
- // ignore slots that contains only whitespace
- for (var name$1 in slots) {
- if (slots[name$1].every(isWhitespace)) {
- delete slots[name$1];
- }
- }
- return slots
- }
- function isWhitespace (node) {
- return (node.isComment && !node.asyncFactory) || node.text === ' '
- }
- function resolveScopedSlots (
- fns, // see flow/vnode
- res
- ) {
- res = res || {};
- for (var i = 0; i < fns.length; i++) {
- if (Array.isArray(fns[i])) {
- resolveScopedSlots(fns[i], res);
- } else {
- res[fns[i].key] = fns[i].fn;
- }
- }
- return res
- }
- /* */
- var activeInstance = null;
- var isUpdatingChildComponent = false;
- function setActiveInstance(vm) {
- var prevActiveInstance = activeInstance;
- activeInstance = vm;
- return function () {
- activeInstance = prevActiveInstance;
- }
- }
- function initLifecycle (vm) {
- var options = vm.$options;
- // locate first non-abstract parent
- var parent = options.parent;
- if (parent && !options.abstract) {
- while (parent.$options.abstract && parent.$parent) {
- parent = parent.$parent;
- }
- parent.$children.push(vm);
- }
- vm.$parent = parent;
- vm.$root = parent ? parent.$root : vm;
- vm.$children = [];
- vm.$refs = {};
- vm._watcher = null;
- vm._inactive = null;
- vm._directInactive = false;
- vm._isMounted = false;
- vm._isDestroyed = false;
- vm._isBeingDestroyed = false;
- }
- function lifecycleMixin (Vue) {
- Vue.prototype._update = function (vnode, hydrating) {
- var vm = this;
- var prevEl = vm.$el;
- var prevVnode = vm._vnode;
- var restoreActiveInstance = setActiveInstance(vm);
- vm._vnode = vnode;
- // Vue.prototype.__patch__ is injected in entry points
- // based on the rendering backend used.
- if (!prevVnode) {
- // initial render
- vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);
- } else {
- // updates
- vm.$el = vm.__patch__(prevVnode, vnode);
- }
- restoreActiveInstance();
- // update __vue__ reference
- if (prevEl) {
- prevEl.__vue__ = null;
- }
- if (vm.$el) {
- vm.$el.__vue__ = vm;
- }
- // if parent is an HOC, update its $el as well
- if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
- vm.$parent.$el = vm.$el;
- }
- // updated hook is called by the scheduler to ensure that children are
- // updated in a parent's updated hook.
- };
- Vue.prototype.$forceUpdate = function () {
- var vm = this;
- if (vm._watcher) {
- vm._watcher.update();
- }
- };
- Vue.prototype.$destroy = function () {
- var vm = this;
- if (vm._isBeingDestroyed) {
- return
- }
- callHook(vm, 'beforeDestroy');
- vm._isBeingDestroyed = true;
- // remove self from parent
- var parent = vm.$parent;
- if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
- remove(parent.$children, vm);
- }
- // teardown watchers
- if (vm._watcher) {
- vm._watcher.teardown();
- }
- var i = vm._watchers.length;
- while (i--) {
- vm._watchers[i].teardown();
- }
- // remove reference from data ob
- // frozen object may not have observer.
- if (vm._data.__ob__) {
- vm._data.__ob__.vmCount--;
- }
- // call the last hook...
- vm._isDestroyed = true;
- // invoke destroy hooks on current rendered tree
- vm.__patch__(vm._vnode, null);
- // fire destroyed hook
- callHook(vm, 'destroyed');
- // turn off all instance listeners.
- vm.$off();
- // remove __vue__ reference
- if (vm.$el) {
- vm.$el.__vue__ = null;
- }
- // release circular reference (#6759)
- if (vm.$vnode) {
- vm.$vnode.parent = null;
- }
- };
- }
- function mountComponent (
- vm,
- el,
- hydrating
- ) {
- vm.$el = el;
- if (!vm.$options.render) {
- vm.$options.render = createEmptyVNode;
- if (true) {
- /* istanbul ignore if */
- if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
- vm.$options.el || el) {
- warn(
- 'You are using the runtime-only build of Vue where the template ' +
- 'compiler is not available. Either pre-compile the templates into ' +
- 'render functions, or use the compiler-included build.',
- vm
- );
- } else {
- warn(
- 'Failed to mount component: template or render function not defined.',
- vm
- );
- }
- }
- }
- callHook(vm, 'beforeMount');
- var updateComponent;
- /* istanbul ignore if */
- if ("development" !== 'production' && config.performance && mark) {
- updateComponent = function () {
- var name = vm._name;
- var id = vm._uid;
- var startTag = "vue-perf-start:" + id;
- var endTag = "vue-perf-end:" + id;
- mark(startTag);
- var vnode = vm._render();
- mark(endTag);
- measure(("vue " + name + " render"), startTag, endTag);
- mark(startTag);
- vm._update(vnode, hydrating);
- mark(endTag);
- measure(("vue " + name + " patch"), startTag, endTag);
- };
- } else {
- updateComponent = function () {
- vm._update(vm._render(), hydrating);
- };
- }
- // we set this to vm._watcher inside the watcher's constructor
- // since the watcher's initial patch may call $forceUpdate (e.g. inside child
- // component's mounted hook), which relies on vm._watcher being already defined
- new Watcher(vm, updateComponent, noop, {
- before: function before () {
- if (vm._isMounted && !vm._isDestroyed) {
- callHook(vm, 'beforeUpdate');
- }
- }
- }, true /* isRenderWatcher */);
- hydrating = false;
- // manually mounted instance, call mounted on self
- // mounted is called for render-created child components in its inserted hook
- if (vm.$vnode == null) {
- vm._isMounted = true;
- callHook(vm, 'mounted');
- }
- return vm
- }
- function updateChildComponent (
- vm,
- propsData,
- listeners,
- parentVnode,
- renderChildren
- ) {
- if (true) {
- isUpdatingChildComponent = true;
- }
- // determine whether component has slot children
- // we need to do this before overwriting $options._renderChildren
- var hasChildren = !!(
- renderChildren || // has new static slots
- vm.$options._renderChildren || // has old static slots
- parentVnode.data.scopedSlots || // has new scoped slots
- vm.$scopedSlots !== emptyObject // has old scoped slots
- );
- vm.$options._parentVnode = parentVnode;
- vm.$vnode = parentVnode; // update vm's placeholder node without re-render
- if (vm._vnode) { // update child tree's parent
- vm._vnode.parent = parentVnode;
- }
- vm.$options._renderChildren = renderChildren;
- // update $attrs and $listeners hash
- // these are also reactive so they may trigger child update if the child
- // used them during render
- vm.$attrs = parentVnode.data.attrs || emptyObject;
- vm.$listeners = listeners || emptyObject;
- // update props
- if (propsData && vm.$options.props) {
- toggleObserving(false);
- var props = vm._props;
- var propKeys = vm.$options._propKeys || [];
- for (var i = 0; i < propKeys.length; i++) {
- var key = propKeys[i];
- var propOptions = vm.$options.props; // wtf flow?
- props[key] = validateProp(key, propOptions, propsData, vm);
- }
- toggleObserving(true);
- // keep a copy of raw propsData
- vm.$options.propsData = propsData;
- }
- // update listeners
- listeners = listeners || emptyObject;
- var oldListeners = vm.$options._parentListeners;
- vm.$options._parentListeners = listeners;
- updateComponentListeners(vm, listeners, oldListeners);
- // resolve slots + force update if has children
- if (hasChildren) {
- vm.$slots = resolveSlots(renderChildren, parentVnode.context);
- vm.$forceUpdate();
- }
- if (true) {
- isUpdatingChildComponent = false;
- }
- }
- function isInInactiveTree (vm) {
- while (vm && (vm = vm.$parent)) {
- if (vm._inactive) { return true }
- }
- return false
- }
- function activateChildComponent (vm, direct) {
- if (direct) {
- vm._directInactive = false;
- if (isInInactiveTree(vm)) {
- return
- }
- } else if (vm._directInactive) {
- return
- }
- if (vm._inactive || vm._inactive === null) {
- vm._inactive = false;
- for (var i = 0; i < vm.$children.length; i++) {
- activateChildComponent(vm.$children[i]);
- }
- callHook(vm, 'activated');
- }
- }
- function deactivateChildComponent (vm, direct) {
- if (direct) {
- vm._directInactive = true;
- if (isInInactiveTree(vm)) {
- return
- }
- }
- if (!vm._inactive) {
- vm._inactive = true;
- for (var i = 0; i < vm.$children.length; i++) {
- deactivateChildComponent(vm.$children[i]);
- }
- callHook(vm, 'deactivated');
- }
- }
- function callHook (vm, hook) {
- // #7573 disable dep collection when invoking lifecycle hooks
- pushTarget();
- var handlers = vm.$options[hook];
- if (handlers) {
- for (var i = 0, j = handlers.length; i < j; i++) {
- try {
- handlers[i].call(vm);
- } catch (e) {
- handleError(e, vm, (hook + " hook"));
- }
- }
- }
- if (vm._hasHookEvent) {
- vm.$emit('hook:' + hook);
- }
- popTarget();
- }
- /* */
- var MAX_UPDATE_COUNT = 100;
- var queue = [];
- var activatedChildren = [];
- var has = {};
- var circular = {};
- var waiting = false;
- var flushing = false;
- var index = 0;
- /**
- * Reset the scheduler's state.
- */
- function resetSchedulerState () {
- index = queue.length = activatedChildren.length = 0;
- has = {};
- if (true) {
- circular = {};
- }
- waiting = flushing = false;
- }
- /**
- * Flush both queues and run the watchers.
- */
- function flushSchedulerQueue () {
- flushing = true;
- var watcher, id;
- // Sort queue before flush.
- // This ensures that:
- // 1. Components are updated from parent to child. (because parent is always
- // created before the child)
- // 2. A component's user watchers are run before its render watcher (because
- // user watchers are created before the render watcher)
- // 3. If a component is destroyed during a parent component's watcher run,
- // its watchers can be skipped.
- queue.sort(function (a, b) { return a.id - b.id; });
- // do not cache length because more watchers might be pushed
- // as we run existing watchers
- for (index = 0; index < queue.length; index++) {
- watcher = queue[index];
- if (watcher.before) {
- watcher.before();
- }
- id = watcher.id;
- has[id] = null;
- watcher.run();
- // in dev build, check and stop circular updates.
- if ("development" !== 'production' && has[id] != null) {
- circular[id] = (circular[id] || 0) + 1;
- if (circular[id] > MAX_UPDATE_COUNT) {
- warn(
- 'You may have an infinite update loop ' + (
- watcher.user
- ? ("in watcher with expression \"" + (watcher.expression) + "\"")
- : "in a component render function."
- ),
- watcher.vm
- );
- break
- }
- }
- }
- // keep copies of post queues before resetting state
- var activatedQueue = activatedChildren.slice();
- var updatedQueue = queue.slice();
- resetSchedulerState();
- // call component updated and activated hooks
- callActivatedHooks(activatedQueue);
- callUpdatedHooks(updatedQueue);
- // devtool hook
- /* istanbul ignore if */
- if (devtools && config.devtools) {
- devtools.emit('flush');
- }
- }
- function callUpdatedHooks (queue) {
- var i = queue.length;
- while (i--) {
- var watcher = queue[i];
- var vm = watcher.vm;
- if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
- callHook(vm, 'updated');
- }
- }
- }
- /**
- * Queue a kept-alive component that was activated during patch.
- * The queue will be processed after the entire tree has been patched.
- */
- function queueActivatedComponent (vm) {
- // setting _inactive to false here so that a render function can
- // rely on checking whether it's in an inactive tree (e.g. router-view)
- vm._inactive = false;
- activatedChildren.push(vm);
- }
- function callActivatedHooks (queue) {
- for (var i = 0; i < queue.length; i++) {
- queue[i]._inactive = true;
- activateChildComponent(queue[i], true /* true */);
- }
- }
- /**
- * Push a watcher into the watcher queue.
- * Jobs with duplicate IDs will be skipped unless it's
- * pushed when the queue is being flushed.
- */
- function queueWatcher (watcher) {
- var id = watcher.id;
- if (has[id] == null) {
- has[id] = true;
- if (!flushing) {
- queue.push(watcher);
- } else {
- // if already flushing, splice the watcher based on its id
- // if already past its id, it will be run next immediately.
- var i = queue.length - 1;
- while (i > index && queue[i].id > watcher.id) {
- i--;
- }
- queue.splice(i + 1, 0, watcher);
- }
- // queue the flush
- if (!waiting) {
- waiting = true;
- if ("development" !== 'production' && !config.async) {
- flushSchedulerQueue();
- return
- }
- nextTick(flushSchedulerQueue);
- }
- }
- }
- /* */
- var uid$1 = 0;
- /**
- * A watcher parses an expression, collects dependencies,
- * and fires callback when the expression value changes.
- * This is used for both the $watch() api and directives.
- */
- var Watcher = function Watcher (
- vm,
- expOrFn,
- cb,
- options,
- isRenderWatcher
- ) {
- this.vm = vm;
- if (isRenderWatcher) {
- vm._watcher = this;
- }
- vm._watchers.push(this);
- // options
- if (options) {
- this.deep = !!options.deep;
- this.user = !!options.user;
- this.lazy = !!options.lazy;
- this.sync = !!options.sync;
- this.before = options.before;
- } else {
- this.deep = this.user = this.lazy = this.sync = false;
- }
- this.cb = cb;
- this.id = ++uid$1; // uid for batching
- this.active = true;
- this.dirty = this.lazy; // for lazy watchers
- this.deps = [];
- this.newDeps = [];
- this.depIds = new _Set();
- this.newDepIds = new _Set();
- this.expression = true
- ? expOrFn.toString()
- : '';
- // parse expression for getter
- if (typeof expOrFn === 'function') {
- this.getter = expOrFn;
- } else {
- this.getter = parsePath(expOrFn);
- if (!this.getter) {
- this.getter = noop;
- "development" !== 'production' && warn(
- "Failed watching path: \"" + expOrFn + "\" " +
- 'Watcher only accepts simple dot-delimited paths. ' +
- 'For full control, use a function instead.',
- vm
- );
- }
- }
- this.value = this.lazy
- ? undefined
- : this.get();
- };
- /**
- * Evaluate the getter, and re-collect dependencies.
- */
- Watcher.prototype.get = function get () {
- pushTarget(this);
- var value;
- var vm = this.vm;
- try {
- value = this.getter.call(vm, vm);
- } catch (e) {
- if (this.user) {
- handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
- } else {
- throw e
- }
- } finally {
- // "touch" every property so they are all tracked as
- // dependencies for deep watching
- if (this.deep) {
- traverse(value);
- }
- popTarget();
- this.cleanupDeps();
- }
- return value
- };
- /**
- * Add a dependency to this directive.
- */
- Watcher.prototype.addDep = function addDep (dep) {
- var id = dep.id;
- if (!this.newDepIds.has(id)) {
- this.newDepIds.add(id);
- this.newDeps.push(dep);
- if (!this.depIds.has(id)) {
- dep.addSub(this);
- }
- }
- };
- /**
- * Clean up for dependency collection.
- */
- Watcher.prototype.cleanupDeps = function cleanupDeps () {
- var i = this.deps.length;
- while (i--) {
- var dep = this.deps[i];
- if (!this.newDepIds.has(dep.id)) {
- dep.removeSub(this);
- }
- }
- var tmp = this.depIds;
- this.depIds = this.newDepIds;
- this.newDepIds = tmp;
- this.newDepIds.clear();
- tmp = this.deps;
- this.deps = this.newDeps;
- this.newDeps = tmp;
- this.newDeps.length = 0;
- };
- /**
- * Subscriber interface.
- * Will be called when a dependency changes.
- */
- Watcher.prototype.update = function update () {
- /* istanbul ignore else */
- if (this.lazy) {
- this.dirty = true;
- } else if (this.sync) {
- this.run();
- } else {
- queueWatcher(this);
- }
- };
- /**
- * Scheduler job interface.
- * Will be called by the scheduler.
- */
- Watcher.prototype.run = function run () {
- if (this.active) {
- var value = this.get();
- if (
- value !== this.value ||
- // Deep watchers and watchers on Object/Arrays should fire even
- // when the value is the same, because the value may
- // have mutated.
- isObject(value) ||
- this.deep
- ) {
- // set new value
- var oldValue = this.value;
- this.value = value;
- if (this.user) {
- try {
- this.cb.call(this.vm, value, oldValue);
- } catch (e) {
- handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
- }
- } else {
- this.cb.call(this.vm, value, oldValue);
- }
- }
- }
- };
- /**
- * Evaluate the value of the watcher.
- * This only gets called for lazy watchers.
- */
- Watcher.prototype.evaluate = function evaluate () {
- this.value = this.get();
- this.dirty = false;
- };
- /**
- * Depend on all deps collected by this watcher.
- */
- Watcher.prototype.depend = function depend () {
- var i = this.deps.length;
- while (i--) {
- this.deps[i].depend();
- }
- };
- /**
- * Remove self from all dependencies' subscriber list.
- */
- Watcher.prototype.teardown = function teardown () {
- if (this.active) {
- // remove self from vm's watcher list
- // this is a somewhat expensive operation so we skip it
- // if the vm is being destroyed.
- if (!this.vm._isBeingDestroyed) {
- remove(this.vm._watchers, this);
- }
- var i = this.deps.length;
- while (i--) {
- this.deps[i].removeSub(this);
- }
- this.active = false;
- }
- };
- /* */
- var sharedPropertyDefinition = {
- enumerable: true,
- configurable: true,
- get: noop,
- set: noop
- };
- function proxy (target, sourceKey, key) {
- sharedPropertyDefinition.get = function proxyGetter () {
- return this[sourceKey][key]
- };
- sharedPropertyDefinition.set = function proxySetter (val) {
- this[sourceKey][key] = val;
- };
- Object.defineProperty(target, key, sharedPropertyDefinition);
- }
- function initState (vm) {
- vm._watchers = [];
- var opts = vm.$options;
- if (opts.props) { initProps(vm, opts.props); }
- if (opts.methods) { initMethods(vm, opts.methods); }
- if (opts.data) {
- initData(vm);
- } else {
- observe(vm._data = {}, true /* asRootData */);
- }
- if (opts.computed) { initComputed(vm, opts.computed); }
- if (opts.watch && opts.watch !== nativeWatch) {
- initWatch(vm, opts.watch);
- }
- }
- function initProps (vm, propsOptions) {
- var propsData = vm.$options.propsData || {};
- var props = vm._props = {};
- // cache prop keys so that future props updates can iterate using Array
- // instead of dynamic object key enumeration.
- var keys = vm.$options._propKeys = [];
- var isRoot = !vm.$parent;
- // root instance props should be converted
- if (!isRoot) {
- toggleObserving(false);
- }
- var loop = function ( key ) {
- keys.push(key);
- var value = validateProp(key, propsOptions, propsData, vm);
- /* istanbul ignore else */
- if (true) {
- var hyphenatedKey = hyphenate(key);
- if (isReservedAttribute(hyphenatedKey) ||
- config.isReservedAttr(hyphenatedKey)) {
- warn(
- ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
- vm
- );
- }
- defineReactive$$1(props, key, value, function () {
- if (!isRoot && !isUpdatingChildComponent) {
- warn(
- "Avoid mutating a prop directly since the value will be " +
- "overwritten whenever the parent component re-renders. " +
- "Instead, use a data or computed property based on the prop's " +
- "value. Prop being mutated: \"" + key + "\"",
- vm
- );
- }
- });
- } else {
- defineReactive$$1(props, key, value);
- }
- // static props are already proxied on the component's prototype
- // during Vue.extend(). We only need to proxy props defined at
- // instantiation here.
- if (!(key in vm)) {
- proxy(vm, "_props", key);
- }
- };
- for (var key in propsOptions) loop( key );
- toggleObserving(true);
- }
- function initData (vm) {
- var data = vm.$options.data;
- data = vm._data = typeof data === 'function'
- ? getData(data, vm)
- : data || {};
- if (!isPlainObject(data)) {
- data = {};
- "development" !== 'production' && warn(
- 'data functions should return an object:\n' +
- 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
- vm
- );
- }
- // proxy data on instance
- var keys = Object.keys(data);
- var props = vm.$options.props;
- var methods = vm.$options.methods;
- var i = keys.length;
- while (i--) {
- var key = keys[i];
- if (true) {
- if (methods && hasOwn(methods, key)) {
- warn(
- ("Method \"" + key + "\" has already been defined as a data property."),
- vm
- );
- }
- }
- if (props && hasOwn(props, key)) {
- "development" !== 'production' && warn(
- "The data property \"" + key + "\" is already declared as a prop. " +
- "Use prop default value instead.",
- vm
- );
- } else if (!isReserved(key)) {
- proxy(vm, "_data", key);
- }
- }
- // observe data
- observe(data, true /* asRootData */);
- }
- function getData (data, vm) {
- // #7573 disable dep collection when invoking data getters
- pushTarget();
- try {
- return data.call(vm, vm)
- } catch (e) {
- handleError(e, vm, "data()");
- return {}
- } finally {
- popTarget();
- }
- }
- var computedWatcherOptions = { lazy: true };
- function initComputed (vm, computed) {
- // $flow-disable-line
- var watchers = vm._computedWatchers = Object.create(null);
- // computed properties are just getters during SSR
- var isSSR = isServerRendering();
- for (var key in computed) {
- var userDef = computed[key];
- var getter = typeof userDef === 'function' ? userDef : userDef.get;
- if ("development" !== 'production' && getter == null) {
- warn(
- ("Getter is missing for computed property \"" + key + "\"."),
- vm
- );
- }
- if (!isSSR) {
- // create internal watcher for the computed property.
- watchers[key] = new Watcher(
- vm,
- getter || noop,
- noop,
- computedWatcherOptions
- );
- }
- // component-defined computed properties are already defined on the
- // component prototype. We only need to define computed properties defined
- // at instantiation here.
- if (!(key in vm)) {
- defineComputed(vm, key, userDef);
- } else if (true) {
- if (key in vm.$data) {
- warn(("The computed property \"" + key + "\" is already defined in data."), vm);
- } else if (vm.$options.props && key in vm.$options.props) {
- warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
- }
- }
- }
- }
- function defineComputed (
- target,
- key,
- userDef
- ) {
- var shouldCache = !isServerRendering();
- if (typeof userDef === 'function') {
- sharedPropertyDefinition.get = shouldCache
- ? createComputedGetter(key)
- : createGetterInvoker(userDef);
- sharedPropertyDefinition.set = noop;
- } else {
- sharedPropertyDefinition.get = userDef.get
- ? shouldCache && userDef.cache !== false
- ? createComputedGetter(key)
- : createGetterInvoker(userDef.get)
- : noop;
- sharedPropertyDefinition.set = userDef.set || noop;
- }
- if ("development" !== 'production' &&
- sharedPropertyDefinition.set === noop) {
- sharedPropertyDefinition.set = function () {
- warn(
- ("Computed property \"" + key + "\" was assigned to but it has no setter."),
- this
- );
- };
- }
- Object.defineProperty(target, key, sharedPropertyDefinition);
- }
- function createComputedGetter (key) {
- return function computedGetter () {
- var watcher = this._computedWatchers && this._computedWatchers[key];
- if (watcher) {
- if (watcher.dirty) {
- watcher.evaluate();
- }
- if (Dep.target) {
- watcher.depend();
- }
- return watcher.value
- }
- }
- }
- function createGetterInvoker(fn) {
- return function computedGetter () {
- return fn.call(this, this)
- }
- }
- function initMethods (vm, methods) {
- var props = vm.$options.props;
- for (var key in methods) {
- if (true) {
- if (typeof methods[key] !== 'function') {
- warn(
- "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " +
- "Did you reference the function correctly?",
- vm
- );
- }
- if (props && hasOwn(props, key)) {
- warn(
- ("Method \"" + key + "\" has already been defined as a prop."),
- vm
- );
- }
- if ((key in vm) && isReserved(key)) {
- warn(
- "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
- "Avoid defining component methods that start with _ or $."
- );
- }
- }
- vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);
- }
- }
- function initWatch (vm, watch) {
- for (var key in watch) {
- var handler = watch[key];
- if (Array.isArray(handler)) {
- for (var i = 0; i < handler.length; i++) {
- createWatcher(vm, key, handler[i]);
- }
- } else {
- createWatcher(vm, key, handler);
- }
- }
- }
- function createWatcher (
- vm,
- expOrFn,
- handler,
- options
- ) {
- if (isPlainObject(handler)) {
- options = handler;
- handler = handler.handler;
- }
- if (typeof handler === 'string') {
- handler = vm[handler];
- }
- return vm.$watch(expOrFn, handler, options)
- }
- function stateMixin (Vue) {
- // flow somehow has problems with directly declared definition object
- // when using Object.defineProperty, so we have to procedurally build up
- // the object here.
- var dataDef = {};
- dataDef.get = function () { return this._data };
- var propsDef = {};
- propsDef.get = function () { return this._props };
- if (true) {
- dataDef.set = function () {
- warn(
- 'Avoid replacing instance root $data. ' +
- 'Use nested data properties instead.',
- this
- );
- };
- propsDef.set = function () {
- warn("$props is readonly.", this);
- };
- }
- Object.defineProperty(Vue.prototype, '$data', dataDef);
- Object.defineProperty(Vue.prototype, '$props', propsDef);
- Vue.prototype.$set = set;
- Vue.prototype.$delete = del;
- Vue.prototype.$watch = function (
- expOrFn,
- cb,
- options
- ) {
- var vm = this;
- if (isPlainObject(cb)) {
- return createWatcher(vm, expOrFn, cb, options)
- }
- options = options || {};
- options.user = true;
- var watcher = new Watcher(vm, expOrFn, cb, options);
- if (options.immediate) {
- try {
- cb.call(vm, watcher.value);
- } catch (error) {
- handleError(error, vm, ("callback for immediate watcher \"" + (watcher.expression) + "\""));
- }
- }
- return function unwatchFn () {
- watcher.teardown();
- }
- };
- }
- /* */
- function initProvide (vm) {
- var provide = vm.$options.provide;
- if (provide) {
- vm._provided = typeof provide === 'function'
- ? provide.call(vm)
- : provide;
- }
- }
- function initInjections (vm) {
- var result = resolveInject(vm.$options.inject, vm);
- if (result) {
- toggleObserving(false);
- Object.keys(result).forEach(function (key) {
- /* istanbul ignore else */
- if (true) {
- defineReactive$$1(vm, key, result[key], function () {
- warn(
- "Avoid mutating an injected value directly since the changes will be " +
- "overwritten whenever the provided component re-renders. " +
- "injection being mutated: \"" + key + "\"",
- vm
- );
- });
- } else {
- defineReactive$$1(vm, key, result[key]);
- }
- });
- toggleObserving(true);
- }
- }
- function resolveInject (inject, vm) {
- if (inject) {
- // inject is :any because flow is not smart enough to figure out cached
- var result = Object.create(null);
- var keys = hasSymbol
- ? Reflect.ownKeys(inject).filter(function (key) {
- /* istanbul ignore next */
- return Object.getOwnPropertyDescriptor(inject, key).enumerable
- })
- : Object.keys(inject);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- var provideKey = inject[key].from;
- var source = vm;
- while (source) {
- if (source._provided && hasOwn(source._provided, provideKey)) {
- result[key] = source._provided[provideKey];
- break
- }
- source = source.$parent;
- }
- if (!source) {
- if ('default' in inject[key]) {
- var provideDefault = inject[key].default;
- result[key] = typeof provideDefault === 'function'
- ? provideDefault.call(vm)
- : provideDefault;
- } else if (true) {
- warn(("Injection \"" + key + "\" not found"), vm);
- }
- }
- }
- return result
- }
- }
- /* */
- /**
- * Runtime helper for rendering v-for lists.
- */
- function renderList (
- val,
- render
- ) {
- var ret, i, l, keys, key;
- if (Array.isArray(val) || typeof val === 'string') {
- ret = new Array(val.length);
- for (i = 0, l = val.length; i < l; i++) {
- ret[i] = render(val[i], i);
- }
- } else if (typeof val === 'number') {
- ret = new Array(val);
- for (i = 0; i < val; i++) {
- ret[i] = render(i + 1, i);
- }
- } else if (isObject(val)) {
- keys = Object.keys(val);
- ret = new Array(keys.length);
- for (i = 0, l = keys.length; i < l; i++) {
- key = keys[i];
- ret[i] = render(val[key], key, i);
- }
- }
- if (!isDef(ret)) {
- ret = [];
- }
- (ret)._isVList = true;
- return ret
- }
- /* */
- /**
- * Runtime helper for rendering <slot>
- */
- function renderSlot (
- name,
- fallback,
- props,
- bindObject
- ) {
- var scopedSlotFn = this.$scopedSlots[name];
- var nodes;
- if (scopedSlotFn) { // scoped slot
- props = props || {};
- if (bindObject) {
- if ("development" !== 'production' && !isObject(bindObject)) {
- warn(
- 'slot v-bind without argument expects an Object',
- this
- );
- }
- props = extend(extend({}, bindObject), props);
- }
- nodes = scopedSlotFn(props) || fallback;
- } else {
- nodes = this.$slots[name] || fallback;
- }
- var target = props && props.slot;
- if (target) {
- return this.$createElement('template', { slot: target }, nodes)
- } else {
- return nodes
- }
- }
- /* */
- /**
- * Runtime helper for resolving filters
- */
- function resolveFilter (id) {
- return resolveAsset(this.$options, 'filters', id, true) || identity
- }
- /* */
- function isKeyNotMatch (expect, actual) {
- if (Array.isArray(expect)) {
- return expect.indexOf(actual) === -1
- } else {
- return expect !== actual
- }
- }
- /**
- * Runtime helper for checking keyCodes from config.
- * exposed as Vue.prototype._k
- * passing in eventKeyName as last argument separately for backwards compat
- */
- function checkKeyCodes (
- eventKeyCode,
- key,
- builtInKeyCode,
- eventKeyName,
- builtInKeyName
- ) {
- var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
- if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
- return isKeyNotMatch(builtInKeyName, eventKeyName)
- } else if (mappedKeyCode) {
- return isKeyNotMatch(mappedKeyCode, eventKeyCode)
- } else if (eventKeyName) {
- return hyphenate(eventKeyName) !== key
- }
- }
- /* */
- /**
- * Runtime helper for merging v-bind="object" into a VNode's data.
- */
- function bindObjectProps (
- data,
- tag,
- value,
- asProp,
- isSync
- ) {
- if (value) {
- if (!isObject(value)) {
- "development" !== 'production' && warn(
- 'v-bind without argument expects an Object or Array value',
- this
- );
- } else {
- if (Array.isArray(value)) {
- value = toObject(value);
- }
- var hash;
- var loop = function ( key ) {
- if (
- key === 'class' ||
- key === 'style' ||
- isReservedAttribute(key)
- ) {
- hash = data;
- } else {
- var type = data.attrs && data.attrs.type;
- hash = asProp || config.mustUseProp(tag, type, key)
- ? data.domProps || (data.domProps = {})
- : data.attrs || (data.attrs = {});
- }
- var camelizedKey = camelize(key);
- if (!(key in hash) && !(camelizedKey in hash)) {
- hash[key] = value[key];
- if (isSync) {
- var on = data.on || (data.on = {});
- on[("update:" + camelizedKey)] = function ($event) {
- value[key] = $event;
- };
- }
- }
- };
- for (var key in value) loop( key );
- }
- }
- return data
- }
- /* */
- /**
- * Runtime helper for rendering static trees.
- */
- function renderStatic (
- index,
- isInFor
- ) {
- var cached = this._staticTrees || (this._staticTrees = []);
- var tree = cached[index];
- // if has already-rendered static tree and not inside v-for,
- // we can reuse the same tree.
- if (tree && !isInFor) {
- return tree
- }
- // otherwise, render a fresh tree.
- tree = cached[index] = this.$options.staticRenderFns[index].call(
- this._renderProxy,
- null,
- this // for render fns generated for functional component templates
- );
- markStatic(tree, ("__static__" + index), false);
- return tree
- }
- /**
- * Runtime helper for v-once.
- * Effectively it means marking the node as static with a unique key.
- */
- function markOnce (
- tree,
- index,
- key
- ) {
- markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
- return tree
- }
- function markStatic (
- tree,
- key,
- isOnce
- ) {
- if (Array.isArray(tree)) {
- for (var i = 0; i < tree.length; i++) {
- if (tree[i] && typeof tree[i] !== 'string') {
- markStaticNode(tree[i], (key + "_" + i), isOnce);
- }
- }
- } else {
- markStaticNode(tree, key, isOnce);
- }
- }
- function markStaticNode (node, key, isOnce) {
- node.isStatic = true;
- node.key = key;
- node.isOnce = isOnce;
- }
- /* */
- function bindObjectListeners (data, value) {
- if (value) {
- if (!isPlainObject(value)) {
- "development" !== 'production' && warn(
- 'v-on without argument expects an Object value',
- this
- );
- } else {
- var on = data.on = data.on ? extend({}, data.on) : {};
- for (var key in value) {
- var existing = on[key];
- var ours = value[key];
- on[key] = existing ? [].concat(existing, ours) : ours;
- }
- }
- }
- return data
- }
- /* */
- function installRenderHelpers (target) {
- target._o = markOnce;
- target._n = toNumber;
- target._s = toString;
- target._l = renderList;
- target._t = renderSlot;
- target._q = looseEqual;
- target._i = looseIndexOf;
- target._m = renderStatic;
- target._f = resolveFilter;
- target._k = checkKeyCodes;
- target._b = bindObjectProps;
- target._v = createTextVNode;
- target._e = createEmptyVNode;
- target._u = resolveScopedSlots;
- target._g = bindObjectListeners;
- }
- /* */
- function FunctionalRenderContext (
- data,
- props,
- children,
- parent,
- Ctor
- ) {
- var options = Ctor.options;
- // ensure the createElement function in functional components
- // gets a unique context - this is necessary for correct named slot check
- var contextVm;
- if (hasOwn(parent, '_uid')) {
- contextVm = Object.create(parent);
- // $flow-disable-line
- contextVm._original = parent;
- } else {
- // the context vm passed in is a functional context as well.
- // in this case we want to make sure we are able to get a hold to the
- // real context instance.
- contextVm = parent;
- // $flow-disable-line
- parent = parent._original;
- }
- var isCompiled = isTrue(options._compiled);
- var needNormalization = !isCompiled;
- this.data = data;
- this.props = props;
- this.children = children;
- this.parent = parent;
- this.listeners = data.on || emptyObject;
- this.injections = resolveInject(options.inject, parent);
- this.slots = function () { return resolveSlots(children, parent); };
- // support for compiled functional template
- if (isCompiled) {
- // exposing $options for renderStatic()
- this.$options = options;
- // pre-resolve slots for renderSlot()
- this.$slots = this.slots();
- this.$scopedSlots = data.scopedSlots || emptyObject;
- }
- if (options._scopeId) {
- this._c = function (a, b, c, d) {
- var vnode = createElement(contextVm, a, b, c, d, needNormalization);
- if (vnode && !Array.isArray(vnode)) {
- vnode.fnScopeId = options._scopeId;
- vnode.fnContext = parent;
- }
- return vnode
- };
- } else {
- this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
- }
- }
- installRenderHelpers(FunctionalRenderContext.prototype);
- function createFunctionalComponent (
- Ctor,
- propsData,
- data,
- contextVm,
- children
- ) {
- var options = Ctor.options;
- var props = {};
- var propOptions = options.props;
- if (isDef(propOptions)) {
- for (var key in propOptions) {
- props[key] = validateProp(key, propOptions, propsData || emptyObject);
- }
- } else {
- if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
- if (isDef(data.props)) { mergeProps(props, data.props); }
- }
- var renderContext = new FunctionalRenderContext(
- data,
- props,
- children,
- contextVm,
- Ctor
- );
- var vnode = options.render.call(null, renderContext._c, renderContext);
- if (vnode instanceof VNode) {
- return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)
- } else if (Array.isArray(vnode)) {
- var vnodes = normalizeChildren(vnode) || [];
- var res = new Array(vnodes.length);
- for (var i = 0; i < vnodes.length; i++) {
- res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
- }
- return res
- }
- }
- function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {
- // #7817 clone node before setting fnContext, otherwise if the node is reused
- // (e.g. it was from a cached normal slot) the fnContext causes named slots
- // that should not be matched to match.
- var clone = cloneVNode(vnode);
- clone.fnContext = contextVm;
- clone.fnOptions = options;
- if (true) {
- (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;
- }
- if (data.slot) {
- (clone.data || (clone.data = {})).slot = data.slot;
- }
- return clone
- }
- function mergeProps (to, from) {
- for (var key in from) {
- to[camelize(key)] = from[key];
- }
- }
- /* */
- /* */
- /* */
- /* */
- // inline hooks to be invoked on component VNodes during patch
- var componentVNodeHooks = {
- init: function init (vnode, hydrating) {
- if (
- vnode.componentInstance &&
- !vnode.componentInstance._isDestroyed &&
- vnode.data.keepAlive
- ) {
- // kept-alive components, treat as a patch
- var mountedNode = vnode; // work around flow
- componentVNodeHooks.prepatch(mountedNode, mountedNode);
- } else {
- var child = vnode.componentInstance = createComponentInstanceForVnode(
- vnode,
- activeInstance
- );
- child.$mount(hydrating ? vnode.elm : undefined, hydrating);
- }
- },
- prepatch: function prepatch (oldVnode, vnode) {
- var options = vnode.componentOptions;
- var child = vnode.componentInstance = oldVnode.componentInstance;
- updateChildComponent(
- child,
- options.propsData, // updated props
- options.listeners, // updated listeners
- vnode, // new parent vnode
- options.children // new children
- );
- },
- insert: function insert (vnode) {
- var context = vnode.context;
- var componentInstance = vnode.componentInstance;
- if (!componentInstance._isMounted) {
- componentInstance._isMounted = true;
- callHook(componentInstance, 'mounted');
- }
- if (vnode.data.keepAlive) {
- if (context._isMounted) {
- // vue-router#1212
- // During updates, a kept-alive component's child components may
- // change, so directly walking the tree here may call activated hooks
- // on incorrect children. Instead we push them into a queue which will
- // be processed after the whole patch process ended.
- queueActivatedComponent(componentInstance);
- } else {
- activateChildComponent(componentInstance, true /* direct */);
- }
- }
- },
- destroy: function destroy (vnode) {
- var componentInstance = vnode.componentInstance;
- if (!componentInstance._isDestroyed) {
- if (!vnode.data.keepAlive) {
- componentInstance.$destroy();
- } else {
- deactivateChildComponent(componentInstance, true /* direct */);
- }
- }
- }
- };
- var hooksToMerge = Object.keys(componentVNodeHooks);
- function createComponent (
- Ctor,
- data,
- context,
- children,
- tag
- ) {
- if (isUndef(Ctor)) {
- return
- }
- var baseCtor = context.$options._base;
- // plain options object: turn it into a constructor
- if (isObject(Ctor)) {
- Ctor = baseCtor.extend(Ctor);
- }
- // if at this stage it's not a constructor or an async component factory,
- // reject.
- if (typeof Ctor !== 'function') {
- if (true) {
- warn(("Invalid Component definition: " + (String(Ctor))), context);
- }
- return
- }
- // async component
- var asyncFactory;
- if (isUndef(Ctor.cid)) {
- asyncFactory = Ctor;
- Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);
- if (Ctor === undefined) {
- // return a placeholder node for async component, which is rendered
- // as a comment node but preserves all the raw information for the node.
- // the information will be used for async server-rendering and hydration.
- return createAsyncPlaceholder(
- asyncFactory,
- data,
- context,
- children,
- tag
- )
- }
- }
- data = data || {};
- // resolve constructor options in case global mixins are applied after
- // component constructor creation
- resolveConstructorOptions(Ctor);
- // transform component v-model data into props & events
- if (isDef(data.model)) {
- transformModel(Ctor.options, data);
- }
- // extract props
- var propsData = extractPropsFromVNodeData(data, Ctor, tag);
- // functional component
- if (isTrue(Ctor.options.functional)) {
- return createFunctionalComponent(Ctor, propsData, data, context, children)
- }
- // extract listeners, since these needs to be treated as
- // child component listeners instead of DOM listeners
- var listeners = data.on;
- // replace with listeners with .native modifier
- // so it gets processed during parent component patch.
- data.on = data.nativeOn;
- if (isTrue(Ctor.options.abstract)) {
- // abstract components do not keep anything
- // other than props & listeners & slot
- // work around flow
- var slot = data.slot;
- data = {};
- if (slot) {
- data.slot = slot;
- }
- }
- // install component management hooks onto the placeholder node
- installComponentHooks(data);
- // return a placeholder vnode
- var name = Ctor.options.name || tag;
- var vnode = new VNode(
- ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
- data, undefined, undefined, undefined, context,
- { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
- asyncFactory
- );
- return vnode
- }
- function createComponentInstanceForVnode (
- vnode, // we know it's MountedComponentVNode but flow doesn't
- parent // activeInstance in lifecycle state
- ) {
- var options = {
- _isComponent: true,
- _parentVnode: vnode,
- parent: parent
- };
- // check inline-template render functions
- var inlineTemplate = vnode.data.inlineTemplate;
- if (isDef(inlineTemplate)) {
- options.render = inlineTemplate.render;
- options.staticRenderFns = inlineTemplate.staticRenderFns;
- }
- return new vnode.componentOptions.Ctor(options)
- }
- function installComponentHooks (data) {
- var hooks = data.hook || (data.hook = {});
- for (var i = 0; i < hooksToMerge.length; i++) {
- var key = hooksToMerge[i];
- var existing = hooks[key];
- var toMerge = componentVNodeHooks[key];
- if (existing !== toMerge && !(existing && existing._merged)) {
- hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;
- }
- }
- }
- function mergeHook$1 (f1, f2) {
- var merged = function (a, b) {
- // flow complains about extra args which is why we use any
- f1(a, b);
- f2(a, b);
- };
- merged._merged = true;
- return merged
- }
- // transform component v-model info (value and callback) into
- // prop and event handler respectively.
- function transformModel (options, data) {
- var prop = (options.model && options.model.prop) || 'value';
- var event = (options.model && options.model.event) || 'input'
- ;(data.props || (data.props = {}))[prop] = data.model.value;
- var on = data.on || (data.on = {});
- var existing = on[event];
- var callback = data.model.callback;
- if (isDef(existing)) {
- if (
- Array.isArray(existing)
- ? existing.indexOf(callback) === -1
- : existing !== callback
- ) {
- on[event] = [callback].concat(existing);
- }
- } else {
- on[event] = callback;
- }
- }
- /* */
- var SIMPLE_NORMALIZE = 1;
- var ALWAYS_NORMALIZE = 2;
- // wrapper function for providing a more flexible interface
- // without getting yelled at by flow
- function createElement (
- context,
- tag,
- data,
- children,
- normalizationType,
- alwaysNormalize
- ) {
- if (Array.isArray(data) || isPrimitive(data)) {
- normalizationType = children;
- children = data;
- data = undefined;
- }
- if (isTrue(alwaysNormalize)) {
- normalizationType = ALWAYS_NORMALIZE;
- }
- return _createElement(context, tag, data, children, normalizationType)
- }
- function _createElement (
- context,
- tag,
- data,
- children,
- normalizationType
- ) {
- if (isDef(data) && isDef((data).__ob__)) {
- "development" !== 'production' && warn(
- "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
- 'Always create fresh vnode data objects in each render!',
- context
- );
- return createEmptyVNode()
- }
- // object syntax in v-bind
- if (isDef(data) && isDef(data.is)) {
- tag = data.is;
- }
- if (!tag) {
- // in case of component :is set to falsy value
- return createEmptyVNode()
- }
- // warn against non-primitive key
- if ("development" !== 'production' &&
- isDef(data) && isDef(data.key) && !isPrimitive(data.key)
- ) {
- {
- warn(
- 'Avoid using non-primitive value as key, ' +
- 'use string/number value instead.',
- context
- );
- }
- }
- // support single function children as default scoped slot
- if (Array.isArray(children) &&
- typeof children[0] === 'function'
- ) {
- data = data || {};
- data.scopedSlots = { default: children[0] };
- children.length = 0;
- }
- if (normalizationType === ALWAYS_NORMALIZE) {
- children = normalizeChildren(children);
- } else if (normalizationType === SIMPLE_NORMALIZE) {
- children = simpleNormalizeChildren(children);
- }
- var vnode, ns;
- if (typeof tag === 'string') {
- var Ctor;
- ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
- if (config.isReservedTag(tag)) {
- // platform built-in elements
- vnode = new VNode(
- config.parsePlatformTagName(tag), data, children,
- undefined, undefined, context
- );
- } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
- // component
- vnode = createComponent(Ctor, data, context, children, tag);
- } else {
- // unknown or unlisted namespaced elements
- // check at runtime because it may get assigned a namespace when its
- // parent normalizes children
- vnode = new VNode(
- tag, data, children,
- undefined, undefined, context
- );
- }
- } else {
- // direct component options / constructor
- vnode = createComponent(tag, data, context, children);
- }
- if (Array.isArray(vnode)) {
- return vnode
- } else if (isDef(vnode)) {
- if (isDef(ns)) { applyNS(vnode, ns); }
- if (isDef(data)) { registerDeepBindings(data); }
- return vnode
- } else {
- return createEmptyVNode()
- }
- }
- function applyNS (vnode, ns, force) {
- vnode.ns = ns;
- if (vnode.tag === 'foreignObject') {
- // use default namespace inside foreignObject
- ns = undefined;
- force = true;
- }
- if (isDef(vnode.children)) {
- for (var i = 0, l = vnode.children.length; i < l; i++) {
- var child = vnode.children[i];
- if (isDef(child.tag) && (
- isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
- applyNS(child, ns, force);
- }
- }
- }
- }
- // ref #5318
- // necessary to ensure parent re-render when deep bindings like :style and
- // :class are used on slot nodes
- function registerDeepBindings (data) {
- if (isObject(data.style)) {
- traverse(data.style);
- }
- if (isObject(data.class)) {
- traverse(data.class);
- }
- }
- /* */
- function initRender (vm) {
- vm._vnode = null; // the root of the child tree
- vm._staticTrees = null; // v-once cached trees
- var options = vm.$options;
- var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
- var renderContext = parentVnode && parentVnode.context;
- vm.$slots = resolveSlots(options._renderChildren, renderContext);
- vm.$scopedSlots = emptyObject;
- // bind the createElement fn to this instance
- // so that we get proper render context inside it.
- // args order: tag, data, children, normalizationType, alwaysNormalize
- // internal version is used by render functions compiled from templates
- vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
- // normalization is always applied for the public version, used in
- // user-written render functions.
- vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
- // $attrs & $listeners are exposed for easier HOC creation.
- // they need to be reactive so that HOCs using them are always updated
- var parentData = parentVnode && parentVnode.data;
- /* istanbul ignore else */
- if (true) {
- defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
- !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
- }, true);
- defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {
- !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
- }, true);
- } else {
- defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);
- defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);
- }
- }
- function renderMixin (Vue) {
- // install runtime convenience helpers
- installRenderHelpers(Vue.prototype);
- Vue.prototype.$nextTick = function (fn) {
- return nextTick(fn, this)
- };
- Vue.prototype._render = function () {
- var vm = this;
- var ref = vm.$options;
- var render = ref.render;
- var _parentVnode = ref._parentVnode;
- if (_parentVnode) {
- vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;
- }
- // set parent vnode. this allows render functions to have access
- // to the data on the placeholder node.
- vm.$vnode = _parentVnode;
- // render self
- var vnode;
- try {
- vnode = render.call(vm._renderProxy, vm.$createElement);
- } catch (e) {
- handleError(e, vm, "render");
- // return error render result,
- // or previous vnode to prevent render error causing blank component
- /* istanbul ignore else */
- if ("development" !== 'production' && vm.$options.renderError) {
- try {
- vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
- } catch (e) {
- handleError(e, vm, "renderError");
- vnode = vm._vnode;
- }
- } else {
- vnode = vm._vnode;
- }
- }
- // return empty vnode in case the render function errored out
- if (!(vnode instanceof VNode)) {
- if ("development" !== 'production' && Array.isArray(vnode)) {
- warn(
- 'Multiple root nodes returned from render function. Render function ' +
- 'should return a single root node.',
- vm
- );
- }
- vnode = createEmptyVNode();
- }
- // set parent
- vnode.parent = _parentVnode;
- return vnode
- };
- }
- /* */
- var uid$3 = 0;
- function initMixin (Vue) {
- Vue.prototype._init = function (options) {
- var vm = this;
- // a uid
- vm._uid = uid$3++;
- var startTag, endTag;
- /* istanbul ignore if */
- if ("development" !== 'production' && config.performance && mark) {
- startTag = "vue-perf-start:" + (vm._uid);
- endTag = "vue-perf-end:" + (vm._uid);
- mark(startTag);
- }
- // a flag to avoid this being observed
- vm._isVue = true;
- // merge options
- if (options && options._isComponent) {
- // optimize internal component instantiation
- // since dynamic options merging is pretty slow, and none of the
- // internal component options needs special treatment.
- initInternalComponent(vm, options);
- } else {
- vm.$options = mergeOptions(
- resolveConstructorOptions(vm.constructor),
- options || {},
- vm
- );
- }
- /* istanbul ignore else */
- if (true) {
- initProxy(vm);
- } else {
- vm._renderProxy = vm;
- }
- // expose real self
- vm._self = vm;
- initLifecycle(vm);
- initEvents(vm);
- initRender(vm);
- callHook(vm, 'beforeCreate');
- initInjections(vm); // resolve injections before data/props
- initState(vm);
- initProvide(vm); // resolve provide after data/props
- callHook(vm, 'created');
- /* istanbul ignore if */
- if ("development" !== 'production' && config.performance && mark) {
- vm._name = formatComponentName(vm, false);
- mark(endTag);
- measure(("vue " + (vm._name) + " init"), startTag, endTag);
- }
- if (vm.$options.el) {
- vm.$mount(vm.$options.el);
- }
- };
- }
- function initInternalComponent (vm, options) {
- var opts = vm.$options = Object.create(vm.constructor.options);
- // doing this because it's faster than dynamic enumeration.
- var parentVnode = options._parentVnode;
- opts.parent = options.parent;
- opts._parentVnode = parentVnode;
- var vnodeComponentOptions = parentVnode.componentOptions;
- opts.propsData = vnodeComponentOptions.propsData;
- opts._parentListeners = vnodeComponentOptions.listeners;
- opts._renderChildren = vnodeComponentOptions.children;
- opts._componentTag = vnodeComponentOptions.tag;
- if (options.render) {
- opts.render = options.render;
- opts.staticRenderFns = options.staticRenderFns;
- }
- }
- function resolveConstructorOptions (Ctor) {
- var options = Ctor.options;
- if (Ctor.super) {
- var superOptions = resolveConstructorOptions(Ctor.super);
- var cachedSuperOptions = Ctor.superOptions;
- if (superOptions !== cachedSuperOptions) {
- // super option changed,
- // need to resolve new options.
- Ctor.superOptions = superOptions;
- // check if there are any late-modified/attached options (#4976)
- var modifiedOptions = resolveModifiedOptions(Ctor);
- // update base extend options
- if (modifiedOptions) {
- extend(Ctor.extendOptions, modifiedOptions);
- }
- options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
- if (options.name) {
- options.components[options.name] = Ctor;
- }
- }
- }
- return options
- }
- function resolveModifiedOptions (Ctor) {
- var modified;
- var latest = Ctor.options;
- var extended = Ctor.extendOptions;
- var sealed = Ctor.sealedOptions;
- for (var key in latest) {
- if (latest[key] !== sealed[key]) {
- if (!modified) { modified = {}; }
- modified[key] = dedupe(latest[key], extended[key], sealed[key]);
- }
- }
- return modified
- }
- function dedupe (latest, extended, sealed) {
- // compare latest and sealed to ensure lifecycle hooks won't be duplicated
- // between merges
- if (Array.isArray(latest)) {
- var res = [];
- sealed = Array.isArray(sealed) ? sealed : [sealed];
- extended = Array.isArray(extended) ? extended : [extended];
- for (var i = 0; i < latest.length; i++) {
- // push original options and not sealed options to exclude duplicated options
- if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {
- res.push(latest[i]);
- }
- }
- return res
- } else {
- return latest
- }
- }
- function Vue (options) {
- if ("development" !== 'production' &&
- !(this instanceof Vue)
- ) {
- warn('Vue is a constructor and should be called with the `new` keyword');
- }
- this._init(options);
- }
- initMixin(Vue);
- stateMixin(Vue);
- eventsMixin(Vue);
- lifecycleMixin(Vue);
- renderMixin(Vue);
- /* */
- function initUse (Vue) {
- Vue.use = function (plugin) {
- var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
- if (installedPlugins.indexOf(plugin) > -1) {
- return this
- }
- // additional parameters
- var args = toArray(arguments, 1);
- args.unshift(this);
- if (typeof plugin.install === 'function') {
- plugin.install.apply(plugin, args);
- } else if (typeof plugin === 'function') {
- plugin.apply(null, args);
- }
- installedPlugins.push(plugin);
- return this
- };
- }
- /* */
- function initMixin$1 (Vue) {
- Vue.mixin = function (mixin) {
- this.options = mergeOptions(this.options, mixin);
- return this
- };
- }
- /* */
- function initExtend (Vue) {
- /**
- * Each instance constructor, including Vue, has a unique
- * cid. This enables us to create wrapped "child
- * constructors" for prototypal inheritance and cache them.
- */
- Vue.cid = 0;
- var cid = 1;
- /**
- * Class inheritance
- */
- Vue.extend = function (extendOptions) {
- extendOptions = extendOptions || {};
- var Super = this;
- var SuperId = Super.cid;
- var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
- if (cachedCtors[SuperId]) {
- return cachedCtors[SuperId]
- }
- var name = extendOptions.name || Super.options.name;
- if ("development" !== 'production' && name) {
- validateComponentName(name);
- }
- var Sub = function VueComponent (options) {
- this._init(options);
- };
- Sub.prototype = Object.create(Super.prototype);
- Sub.prototype.constructor = Sub;
- Sub.cid = cid++;
- Sub.options = mergeOptions(
- Super.options,
- extendOptions
- );
- Sub['super'] = Super;
- // For props and computed properties, we define the proxy getters on
- // the Vue instances at extension time, on the extended prototype. This
- // avoids Object.defineProperty calls for each instance created.
- if (Sub.options.props) {
- initProps$1(Sub);
- }
- if (Sub.options.computed) {
- initComputed$1(Sub);
- }
- // allow further extension/mixin/plugin usage
- Sub.extend = Super.extend;
- Sub.mixin = Super.mixin;
- Sub.use = Super.use;
- // create asset registers, so extended classes
- // can have their private assets too.
- ASSET_TYPES.forEach(function (type) {
- Sub[type] = Super[type];
- });
- // enable recursive self-lookup
- if (name) {
- Sub.options.components[name] = Sub;
- }
- // keep a reference to the super options at extension time.
- // later at instantiation we can check if Super's options have
- // been updated.
- Sub.superOptions = Super.options;
- Sub.extendOptions = extendOptions;
- Sub.sealedOptions = extend({}, Sub.options);
- // cache constructor
- cachedCtors[SuperId] = Sub;
- return Sub
- };
- }
- function initProps$1 (Comp) {
- var props = Comp.options.props;
- for (var key in props) {
- proxy(Comp.prototype, "_props", key);
- }
- }
- function initComputed$1 (Comp) {
- var computed = Comp.options.computed;
- for (var key in computed) {
- defineComputed(Comp.prototype, key, computed[key]);
- }
- }
- /* */
- function initAssetRegisters (Vue) {
- /**
- * Create asset registration methods.
- */
- ASSET_TYPES.forEach(function (type) {
- Vue[type] = function (
- id,
- definition
- ) {
- if (!definition) {
- return this.options[type + 's'][id]
- } else {
- /* istanbul ignore if */
- if ("development" !== 'production' && type === 'component') {
- validateComponentName(id);
- }
- if (type === 'component' && isPlainObject(definition)) {
- definition.name = definition.name || id;
- definition = this.options._base.extend(definition);
- }
- if (type === 'directive' && typeof definition === 'function') {
- definition = { bind: definition, update: definition };
- }
- this.options[type + 's'][id] = definition;
- return definition
- }
- };
- });
- }
- /* */
- function getComponentName (opts) {
- return opts && (opts.Ctor.options.name || opts.tag)
- }
- function matches (pattern, name) {
- if (Array.isArray(pattern)) {
- return pattern.indexOf(name) > -1
- } else if (typeof pattern === 'string') {
- return pattern.split(',').indexOf(name) > -1
- } else if (isRegExp(pattern)) {
- return pattern.test(name)
- }
- /* istanbul ignore next */
- return false
- }
- function pruneCache (keepAliveInstance, filter) {
- var cache = keepAliveInstance.cache;
- var keys = keepAliveInstance.keys;
- var _vnode = keepAliveInstance._vnode;
- for (var key in cache) {
- var cachedNode = cache[key];
- if (cachedNode) {
- var name = getComponentName(cachedNode.componentOptions);
- if (name && !filter(name)) {
- pruneCacheEntry(cache, key, keys, _vnode);
- }
- }
- }
- }
- function pruneCacheEntry (
- cache,
- key,
- keys,
- current
- ) {
- var cached$$1 = cache[key];
- if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
- cached$$1.componentInstance.$destroy();
- }
- cache[key] = null;
- remove(keys, key);
- }
- var patternTypes = [String, RegExp, Array];
- var KeepAlive = {
- name: 'keep-alive',
- abstract: true,
- props: {
- include: patternTypes,
- exclude: patternTypes,
- max: [String, Number]
- },
- created: function created () {
- this.cache = Object.create(null);
- this.keys = [];
- },
- destroyed: function destroyed () {
- for (var key in this.cache) {
- pruneCacheEntry(this.cache, key, this.keys);
- }
- },
- mounted: function mounted () {
- var this$1 = this;
- this.$watch('include', function (val) {
- pruneCache(this$1, function (name) { return matches(val, name); });
- });
- this.$watch('exclude', function (val) {
- pruneCache(this$1, function (name) { return !matches(val, name); });
- });
- },
- render: function render () {
- var slot = this.$slots.default;
- var vnode = getFirstComponentChild(slot);
- var componentOptions = vnode && vnode.componentOptions;
- if (componentOptions) {
- // check pattern
- var name = getComponentName(componentOptions);
- var ref = this;
- var include = ref.include;
- var exclude = ref.exclude;
- if (
- // not included
- (include && (!name || !matches(include, name))) ||
- // excluded
- (exclude && name && matches(exclude, name))
- ) {
- return vnode
- }
- var ref$1 = this;
- var cache = ref$1.cache;
- var keys = ref$1.keys;
- var key = vnode.key == null
- // same constructor may get registered as different local components
- // so cid alone is not enough (#3269)
- ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
- : vnode.key;
- if (cache[key]) {
- vnode.componentInstance = cache[key].componentInstance;
- // make current key freshest
- remove(keys, key);
- keys.push(key);
- } else {
- cache[key] = vnode;
- keys.push(key);
- // prune oldest entry
- if (this.max && keys.length > parseInt(this.max)) {
- pruneCacheEntry(cache, keys[0], keys, this._vnode);
- }
- }
- vnode.data.keepAlive = true;
- }
- return vnode || (slot && slot[0])
- }
- };
- var builtInComponents = {
- KeepAlive: KeepAlive
- };
- /* */
- function initGlobalAPI (Vue) {
- // config
- var configDef = {};
- configDef.get = function () { return config; };
- if (true) {
- configDef.set = function () {
- warn(
- 'Do not replace the Vue.config object, set individual fields instead.'
- );
- };
- }
- Object.defineProperty(Vue, 'config', configDef);
- // exposed util methods.
- // NOTE: these are not considered part of the public API - avoid relying on
- // them unless you are aware of the risk.
- Vue.util = {
- warn: warn,
- extend: extend,
- mergeOptions: mergeOptions,
- defineReactive: defineReactive$$1
- };
- Vue.set = set;
- Vue.delete = del;
- Vue.nextTick = nextTick;
- Vue.options = Object.create(null);
- ASSET_TYPES.forEach(function (type) {
- Vue.options[type + 's'] = Object.create(null);
- });
- // this is used to identify the "base" constructor to extend all plain-object
- // components with in Weex's multi-instance scenarios.
- Vue.options._base = Vue;
- extend(Vue.options.components, builtInComponents);
- initUse(Vue);
- initMixin$1(Vue);
- initExtend(Vue);
- initAssetRegisters(Vue);
- }
- initGlobalAPI(Vue);
- Object.defineProperty(Vue.prototype, '$isServer', {
- get: isServerRendering
- });
- Object.defineProperty(Vue.prototype, '$ssrContext', {
- get: function get () {
- /* istanbul ignore next */
- return this.$vnode && this.$vnode.ssrContext
- }
- });
- // expose FunctionalRenderContext for ssr runtime helper installation
- Object.defineProperty(Vue, 'FunctionalRenderContext', {
- value: FunctionalRenderContext
- });
- Vue.version = '2.5.21';
- /* */
- // these are reserved for web because they are directly compiled away
- // during template compilation
- var isReservedAttr = makeMap('style,class');
- // attributes that should be using props for binding
- var acceptValue = makeMap('input,textarea,option,select,progress');
- var mustUseProp = function (tag, type, attr) {
- return (
- (attr === 'value' && acceptValue(tag)) && type !== 'button' ||
- (attr === 'selected' && tag === 'option') ||
- (attr === 'checked' && tag === 'input') ||
- (attr === 'muted' && tag === 'video')
- )
- };
- var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
- var isBooleanAttr = makeMap(
- 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
- 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
- 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
- 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
- 'required,reversed,scoped,seamless,selected,sortable,translate,' +
- 'truespeed,typemustmatch,visible'
- );
- var xlinkNS = 'http://www.w3.org/1999/xlink';
- var isXlink = function (name) {
- return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'
- };
- var getXlinkProp = function (name) {
- return isXlink(name) ? name.slice(6, name.length) : ''
- };
- var isFalsyAttrValue = function (val) {
- return val == null || val === false
- };
- /* */
- function genClassForVnode (vnode) {
- var data = vnode.data;
- var parentNode = vnode;
- var childNode = vnode;
- while (isDef(childNode.componentInstance)) {
- childNode = childNode.componentInstance._vnode;
- if (childNode && childNode.data) {
- data = mergeClassData(childNode.data, data);
- }
- }
- while (isDef(parentNode = parentNode.parent)) {
- if (parentNode && parentNode.data) {
- data = mergeClassData(data, parentNode.data);
- }
- }
- return renderClass(data.staticClass, data.class)
- }
- function mergeClassData (child, parent) {
- return {
- staticClass: concat(child.staticClass, parent.staticClass),
- class: isDef(child.class)
- ? [child.class, parent.class]
- : parent.class
- }
- }
- function renderClass (
- staticClass,
- dynamicClass
- ) {
- if (isDef(staticClass) || isDef(dynamicClass)) {
- return concat(staticClass, stringifyClass(dynamicClass))
- }
- /* istanbul ignore next */
- return ''
- }
- function concat (a, b) {
- return a ? b ? (a + ' ' + b) : a : (b || '')
- }
- function stringifyClass (value) {
- if (Array.isArray(value)) {
- return stringifyArray(value)
- }
- if (isObject(value)) {
- return stringifyObject(value)
- }
- if (typeof value === 'string') {
- return value
- }
- /* istanbul ignore next */
- return ''
- }
- function stringifyArray (value) {
- var res = '';
- var stringified;
- for (var i = 0, l = value.length; i < l; i++) {
- if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
- if (res) { res += ' '; }
- res += stringified;
- }
- }
- return res
- }
- function stringifyObject (value) {
- var res = '';
- for (var key in value) {
- if (value[key]) {
- if (res) { res += ' '; }
- res += key;
- }
- }
- return res
- }
- /* */
- var namespaceMap = {
- svg: 'http://www.w3.org/2000/svg',
- math: 'http://www.w3.org/1998/Math/MathML'
- };
- var isHTMLTag = makeMap(
- 'html,body,base,head,link,meta,style,title,' +
- 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
- 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
- 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
- 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
- 'embed,object,param,source,canvas,script,noscript,del,ins,' +
- 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
- 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
- 'output,progress,select,textarea,' +
- 'details,dialog,menu,menuitem,summary,' +
- 'content,element,shadow,template,blockquote,iframe,tfoot'
- );
- // this map is intentionally selective, only covering SVG elements that may
- // contain child elements.
- var isSVG = makeMap(
- 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
- 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
- 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',
- true
- );
- var isPreTag = function (tag) { return tag === 'pre'; };
- var isReservedTag = function (tag) {
- return isHTMLTag(tag) || isSVG(tag)
- };
- function getTagNamespace (tag) {
- if (isSVG(tag)) {
- return 'svg'
- }
- // basic support for MathML
- // note it doesn't support other MathML elements being component roots
- if (tag === 'math') {
- return 'math'
- }
- }
- var unknownElementCache = Object.create(null);
- function isUnknownElement (tag) {
- /* istanbul ignore if */
- if (!inBrowser) {
- return true
- }
- if (isReservedTag(tag)) {
- return false
- }
- tag = tag.toLowerCase();
- /* istanbul ignore if */
- if (unknownElementCache[tag] != null) {
- return unknownElementCache[tag]
- }
- var el = document.createElement(tag);
- if (tag.indexOf('-') > -1) {
- // http://stackoverflow.com/a/28210364/1070244
- return (unknownElementCache[tag] = (
- el.constructor === window.HTMLUnknownElement ||
- el.constructor === window.HTMLElement
- ))
- } else {
- return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
- }
- }
- var isTextInputType = makeMap('text,number,password,search,email,tel,url');
- /* */
- /**
- * Query an element selector if it's not an element already.
- */
- function query (el) {
- if (typeof el === 'string') {
- var selected = document.querySelector(el);
- if (!selected) {
- "development" !== 'production' && warn(
- 'Cannot find element: ' + el
- );
- return document.createElement('div')
- }
- return selected
- } else {
- return el
- }
- }
- /* */
- function createElement$1 (tagName, vnode) {
- var elm = document.createElement(tagName);
- if (tagName !== 'select') {
- return elm
- }
- // false or null will remove the attribute but undefined will not
- if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
- elm.setAttribute('multiple', 'multiple');
- }
- return elm
- }
- function createElementNS (namespace, tagName) {
- return document.createElementNS(namespaceMap[namespace], tagName)
- }
- function createTextNode (text) {
- return document.createTextNode(text)
- }
- function createComment (text) {
- return document.createComment(text)
- }
- function insertBefore (parentNode, newNode, referenceNode) {
- parentNode.insertBefore(newNode, referenceNode);
- }
- function removeChild (node, child) {
- node.removeChild(child);
- }
- function appendChild (node, child) {
- node.appendChild(child);
- }
- function parentNode (node) {
- return node.parentNode
- }
- function nextSibling (node) {
- return node.nextSibling
- }
- function tagName (node) {
- return node.tagName
- }
- function setTextContent (node, text) {
- node.textContent = text;
- }
- function setStyleScope (node, scopeId) {
- node.setAttribute(scopeId, '');
- }
- var nodeOps = /*#__PURE__*/Object.freeze({
- createElement: createElement$1,
- createElementNS: createElementNS,
- createTextNode: createTextNode,
- createComment: createComment,
- insertBefore: insertBefore,
- removeChild: removeChild,
- appendChild: appendChild,
- parentNode: parentNode,
- nextSibling: nextSibling,
- tagName: tagName,
- setTextContent: setTextContent,
- setStyleScope: setStyleScope
- });
- /* */
- var ref = {
- create: function create (_, vnode) {
- registerRef(vnode);
- },
- update: function update (oldVnode, vnode) {
- if (oldVnode.data.ref !== vnode.data.ref) {
- registerRef(oldVnode, true);
- registerRef(vnode);
- }
- },
- destroy: function destroy (vnode) {
- registerRef(vnode, true);
- }
- };
- function registerRef (vnode, isRemoval) {
- var key = vnode.data.ref;
- if (!isDef(key)) { return }
- var vm = vnode.context;
- var ref = vnode.componentInstance || vnode.elm;
- var refs = vm.$refs;
- if (isRemoval) {
- if (Array.isArray(refs[key])) {
- remove(refs[key], ref);
- } else if (refs[key] === ref) {
- refs[key] = undefined;
- }
- } else {
- if (vnode.data.refInFor) {
- if (!Array.isArray(refs[key])) {
- refs[key] = [ref];
- } else if (refs[key].indexOf(ref) < 0) {
- // $flow-disable-line
- refs[key].push(ref);
- }
- } else {
- refs[key] = ref;
- }
- }
- }
- /**
- * Virtual DOM patching algorithm based on Snabbdom by
- * Simon Friis Vindum (@paldepind)
- * Licensed under the MIT License
- * https://github.com/paldepind/snabbdom/blob/master/LICENSE
- *
- * modified by Evan You (@yyx990803)
- *
- * Not type-checking this because this file is perf-critical and the cost
- * of making flow understand it is not worth it.
- */
- var emptyNode = new VNode('', {}, []);
- var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
- function sameVnode (a, b) {
- return (
- a.key === b.key && (
- (
- a.tag === b.tag &&
- a.isComment === b.isComment &&
- isDef(a.data) === isDef(b.data) &&
- sameInputType(a, b)
- ) || (
- isTrue(a.isAsyncPlaceholder) &&
- a.asyncFactory === b.asyncFactory &&
- isUndef(b.asyncFactory.error)
- )
- )
- )
- }
- function sameInputType (a, b) {
- if (a.tag !== 'input') { return true }
- var i;
- var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;
- var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;
- return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)
- }
- function createKeyToOldIdx (children, beginIdx, endIdx) {
- var i, key;
- var map = {};
- for (i = beginIdx; i <= endIdx; ++i) {
- key = children[i].key;
- if (isDef(key)) { map[key] = i; }
- }
- return map
- }
- function createPatchFunction (backend) {
- var i, j;
- var cbs = {};
- var modules = backend.modules;
- var nodeOps = backend.nodeOps;
- for (i = 0; i < hooks.length; ++i) {
- cbs[hooks[i]] = [];
- for (j = 0; j < modules.length; ++j) {
- if (isDef(modules[j][hooks[i]])) {
- cbs[hooks[i]].push(modules[j][hooks[i]]);
- }
- }
- }
- function emptyNodeAt (elm) {
- return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)
- }
- function createRmCb (childElm, listeners) {
- function remove$$1 () {
- if (--remove$$1.listeners === 0) {
- removeNode(childElm);
- }
- }
- remove$$1.listeners = listeners;
- return remove$$1
- }
- function removeNode (el) {
- var parent = nodeOps.parentNode(el);
- // element may have already been removed due to v-html / v-text
- if (isDef(parent)) {
- nodeOps.removeChild(parent, el);
- }
- }
- function isUnknownElement$$1 (vnode, inVPre) {
- return (
- !inVPre &&
- !vnode.ns &&
- !(
- config.ignoredElements.length &&
- config.ignoredElements.some(function (ignore) {
- return isRegExp(ignore)
- ? ignore.test(vnode.tag)
- : ignore === vnode.tag
- })
- ) &&
- config.isUnknownElement(vnode.tag)
- )
- }
- var creatingElmInVPre = 0;
- function createElm (
- vnode,
- insertedVnodeQueue,
- parentElm,
- refElm,
- nested,
- ownerArray,
- index
- ) {
- if (isDef(vnode.elm) && isDef(ownerArray)) {
- // This vnode was used in a previous render!
- // now it's used as a new node, overwriting its elm would cause
- // potential patch errors down the road when it's used as an insertion
- // reference node. Instead, we clone the node on-demand before creating
- // associated DOM element for it.
- vnode = ownerArray[index] = cloneVNode(vnode);
- }
- vnode.isRootInsert = !nested; // for transition enter check
- if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
- return
- }
- var data = vnode.data;
- var children = vnode.children;
- var tag = vnode.tag;
- if (isDef(tag)) {
- if (true) {
- if (data && data.pre) {
- creatingElmInVPre++;
- }
- if (isUnknownElement$$1(vnode, creatingElmInVPre)) {
- warn(
- 'Unknown custom element: <' + tag + '> - did you ' +
- 'register the component correctly? For recursive components, ' +
- 'make sure to provide the "name" option.',
- vnode.context
- );
- }
- }
- vnode.elm = vnode.ns
- ? nodeOps.createElementNS(vnode.ns, tag)
- : nodeOps.createElement(tag, vnode);
- setScope(vnode);
- /* istanbul ignore if */
- {
- createChildren(vnode, children, insertedVnodeQueue);
- if (isDef(data)) {
- invokeCreateHooks(vnode, insertedVnodeQueue);
- }
- insert(parentElm, vnode.elm, refElm);
- }
- if ("development" !== 'production' && data && data.pre) {
- creatingElmInVPre--;
- }
- } else if (isTrue(vnode.isComment)) {
- vnode.elm = nodeOps.createComment(vnode.text);
- insert(parentElm, vnode.elm, refElm);
- } else {
- vnode.elm = nodeOps.createTextNode(vnode.text);
- insert(parentElm, vnode.elm, refElm);
- }
- }
- function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
- var i = vnode.data;
- if (isDef(i)) {
- var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
- if (isDef(i = i.hook) && isDef(i = i.init)) {
- i(vnode, false /* hydrating */);
- }
- // after calling the init hook, if the vnode is a child component
- // it should've created a child instance and mounted it. the child
- // component also has set the placeholder vnode's elm.
- // in that case we can just return the element and be done.
- if (isDef(vnode.componentInstance)) {
- initComponent(vnode, insertedVnodeQueue);
- insert(parentElm, vnode.elm, refElm);
- if (isTrue(isReactivated)) {
- reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
- }
- return true
- }
- }
- }
- function initComponent (vnode, insertedVnodeQueue) {
- if (isDef(vnode.data.pendingInsert)) {
- insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
- vnode.data.pendingInsert = null;
- }
- vnode.elm = vnode.componentInstance.$el;
- if (isPatchable(vnode)) {
- invokeCreateHooks(vnode, insertedVnodeQueue);
- setScope(vnode);
- } else {
- // empty component root.
- // skip all element-related modules except for ref (#3455)
- registerRef(vnode);
- // make sure to invoke the insert hook
- insertedVnodeQueue.push(vnode);
- }
- }
- function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
- var i;
- // hack for #4339: a reactivated component with inner transition
- // does not trigger because the inner node's created hooks are not called
- // again. It's not ideal to involve module-specific logic in here but
- // there doesn't seem to be a better way to do it.
- var innerNode = vnode;
- while (innerNode.componentInstance) {
- innerNode = innerNode.componentInstance._vnode;
- if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
- for (i = 0; i < cbs.activate.length; ++i) {
- cbs.activate[i](emptyNode, innerNode);
- }
- insertedVnodeQueue.push(innerNode);
- break
- }
- }
- // unlike a newly created component,
- // a reactivated keep-alive component doesn't insert itself
- insert(parentElm, vnode.elm, refElm);
- }
- function insert (parent, elm, ref$$1) {
- if (isDef(parent)) {
- if (isDef(ref$$1)) {
- if (nodeOps.parentNode(ref$$1) === parent) {
- nodeOps.insertBefore(parent, elm, ref$$1);
- }
- } else {
- nodeOps.appendChild(parent, elm);
- }
- }
- }
- function createChildren (vnode, children, insertedVnodeQueue) {
- if (Array.isArray(children)) {
- if (true) {
- checkDuplicateKeys(children);
- }
- for (var i = 0; i < children.length; ++i) {
- createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);
- }
- } else if (isPrimitive(vnode.text)) {
- nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
- }
- }
- function isPatchable (vnode) {
- while (vnode.componentInstance) {
- vnode = vnode.componentInstance._vnode;
- }
- return isDef(vnode.tag)
- }
- function invokeCreateHooks (vnode, insertedVnodeQueue) {
- for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
- cbs.create[i$1](emptyNode, vnode);
- }
- i = vnode.data.hook; // Reuse variable
- if (isDef(i)) {
- if (isDef(i.create)) { i.create(emptyNode, vnode); }
- if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }
- }
- }
- // set scope id attribute for scoped CSS.
- // this is implemented as a special case to avoid the overhead
- // of going through the normal attribute patching process.
- function setScope (vnode) {
- var i;
- if (isDef(i = vnode.fnScopeId)) {
- nodeOps.setStyleScope(vnode.elm, i);
- } else {
- var ancestor = vnode;
- while (ancestor) {
- if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
- nodeOps.setStyleScope(vnode.elm, i);
- }
- ancestor = ancestor.parent;
- }
- }
- // for slot content they should also get the scopeId from the host instance.
- if (isDef(i = activeInstance) &&
- i !== vnode.context &&
- i !== vnode.fnContext &&
- isDef(i = i.$options._scopeId)
- ) {
- nodeOps.setStyleScope(vnode.elm, i);
- }
- }
- function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
- for (; startIdx <= endIdx; ++startIdx) {
- createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
- }
- }
- function invokeDestroyHook (vnode) {
- var i, j;
- var data = vnode.data;
- if (isDef(data)) {
- if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }
- for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }
- }
- if (isDef(i = vnode.children)) {
- for (j = 0; j < vnode.children.length; ++j) {
- invokeDestroyHook(vnode.children[j]);
- }
- }
- }
- function removeVnodes (parentElm, vnodes, startIdx, endIdx) {
- for (; startIdx <= endIdx; ++startIdx) {
- var ch = vnodes[startIdx];
- if (isDef(ch)) {
- if (isDef(ch.tag)) {
- removeAndInvokeRemoveHook(ch);
- invokeDestroyHook(ch);
- } else { // Text node
- removeNode(ch.elm);
- }
- }
- }
- }
- function removeAndInvokeRemoveHook (vnode, rm) {
- if (isDef(rm) || isDef(vnode.data)) {
- var i;
- var listeners = cbs.remove.length + 1;
- if (isDef(rm)) {
- // we have a recursively passed down rm callback
- // increase the listeners count
- rm.listeners += listeners;
- } else {
- // directly removing
- rm = createRmCb(vnode.elm, listeners);
- }
- // recursively invoke hooks on child component root node
- if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
- removeAndInvokeRemoveHook(i, rm);
- }
- for (i = 0; i < cbs.remove.length; ++i) {
- cbs.remove[i](vnode, rm);
- }
- if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
- i(vnode, rm);
- } else {
- rm();
- }
- } else {
- removeNode(vnode.elm);
- }
- }
- function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
- var oldStartIdx = 0;
- var newStartIdx = 0;
- var oldEndIdx = oldCh.length - 1;
- var oldStartVnode = oldCh[0];
- var oldEndVnode = oldCh[oldEndIdx];
- var newEndIdx = newCh.length - 1;
- var newStartVnode = newCh[0];
- var newEndVnode = newCh[newEndIdx];
- var oldKeyToIdx, idxInOld, vnodeToMove, refElm;
- // removeOnly is a special flag used only by <transition-group>
- // to ensure removed elements stay in correct relative positions
- // during leaving transitions
- var canMove = !removeOnly;
- if (true) {
- checkDuplicateKeys(newCh);
- }
- while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
- if (isUndef(oldStartVnode)) {
- oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
- } else if (isUndef(oldEndVnode)) {
- oldEndVnode = oldCh[--oldEndIdx];
- } else if (sameVnode(oldStartVnode, newStartVnode)) {
- patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
- oldStartVnode = oldCh[++oldStartIdx];
- newStartVnode = newCh[++newStartIdx];
- } else if (sameVnode(oldEndVnode, newEndVnode)) {
- patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
- oldEndVnode = oldCh[--oldEndIdx];
- newEndVnode = newCh[--newEndIdx];
- } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
- patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
- canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
- oldStartVnode = oldCh[++oldStartIdx];
- newEndVnode = newCh[--newEndIdx];
- } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
- patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
- canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
- oldEndVnode = oldCh[--oldEndIdx];
- newStartVnode = newCh[++newStartIdx];
- } else {
- if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }
- idxInOld = isDef(newStartVnode.key)
- ? oldKeyToIdx[newStartVnode.key]
- : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
- if (isUndef(idxInOld)) { // New element
- createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
- } else {
- vnodeToMove = oldCh[idxInOld];
- if (sameVnode(vnodeToMove, newStartVnode)) {
- patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
- oldCh[idxInOld] = undefined;
- canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
- } else {
- // same key but different element. treat as new element
- createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
- }
- }
- newStartVnode = newCh[++newStartIdx];
- }
- }
- if (oldStartIdx > oldEndIdx) {
- refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
- addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
- } else if (newStartIdx > newEndIdx) {
- removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
- }
- }
- function checkDuplicateKeys (children) {
- var seenKeys = {};
- for (var i = 0; i < children.length; i++) {
- var vnode = children[i];
- var key = vnode.key;
- if (isDef(key)) {
- if (seenKeys[key]) {
- warn(
- ("Duplicate keys detected: '" + key + "'. This may cause an update error."),
- vnode.context
- );
- } else {
- seenKeys[key] = true;
- }
- }
- }
- }
- function findIdxInOld (node, oldCh, start, end) {
- for (var i = start; i < end; i++) {
- var c = oldCh[i];
- if (isDef(c) && sameVnode(node, c)) { return i }
- }
- }
- function patchVnode (
- oldVnode,
- vnode,
- insertedVnodeQueue,
- ownerArray,
- index,
- removeOnly
- ) {
- if (oldVnode === vnode) {
- return
- }
- if (isDef(vnode.elm) && isDef(ownerArray)) {
- // clone reused vnode
- vnode = ownerArray[index] = cloneVNode(vnode);
- }
- var elm = vnode.elm = oldVnode.elm;
- if (isTrue(oldVnode.isAsyncPlaceholder)) {
- if (isDef(vnode.asyncFactory.resolved)) {
- hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
- } else {
- vnode.isAsyncPlaceholder = true;
- }
- return
- }
- // reuse element for static trees.
- // note we only do this if the vnode is cloned -
- // if the new node is not cloned it means the render functions have been
- // reset by the hot-reload-api and we need to do a proper re-render.
- if (isTrue(vnode.isStatic) &&
- isTrue(oldVnode.isStatic) &&
- vnode.key === oldVnode.key &&
- (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))
- ) {
- vnode.componentInstance = oldVnode.componentInstance;
- return
- }
- var i;
- var data = vnode.data;
- if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
- i(oldVnode, vnode);
- }
- var oldCh = oldVnode.children;
- var ch = vnode.children;
- if (isDef(data) && isPatchable(vnode)) {
- for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }
- if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }
- }
- if (isUndef(vnode.text)) {
- if (isDef(oldCh) && isDef(ch)) {
- if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }
- } else if (isDef(ch)) {
- if (true) {
- checkDuplicateKeys(ch);
- }
- if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
- addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
- } else if (isDef(oldCh)) {
- removeVnodes(elm, oldCh, 0, oldCh.length - 1);
- } else if (isDef(oldVnode.text)) {
- nodeOps.setTextContent(elm, '');
- }
- } else if (oldVnode.text !== vnode.text) {
- nodeOps.setTextContent(elm, vnode.text);
- }
- if (isDef(data)) {
- if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }
- }
- }
- function invokeInsertHook (vnode, queue, initial) {
- // delay insert hooks for component root nodes, invoke them after the
- // element is really inserted
- if (isTrue(initial) && isDef(vnode.parent)) {
- vnode.parent.data.pendingInsert = queue;
- } else {
- for (var i = 0; i < queue.length; ++i) {
- queue[i].data.hook.insert(queue[i]);
- }
- }
- }
- var hydrationBailed = false;
- // list of modules that can skip create hook during hydration because they
- // are already rendered on the client or has no need for initialization
- // Note: style is excluded because it relies on initial clone for future
- // deep updates (#7063).
- var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');
- // Note: this is a browser-only function so we can assume elms are DOM nodes.
- function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {
- var i;
- var tag = vnode.tag;
- var data = vnode.data;
- var children = vnode.children;
- inVPre = inVPre || (data && data.pre);
- vnode.elm = elm;
- if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
- vnode.isAsyncPlaceholder = true;
- return true
- }
- // assert node match
- if (true) {
- if (!assertNodeMatch(elm, vnode, inVPre)) {
- return false
- }
- }
- if (isDef(data)) {
- if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
- if (isDef(i = vnode.componentInstance)) {
- // child component. it should have hydrated its own tree.
- initComponent(vnode, insertedVnodeQueue);
- return true
- }
- }
- if (isDef(tag)) {
- if (isDef(children)) {
- // empty element, allow client to pick up and populate children
- if (!elm.hasChildNodes()) {
- createChildren(vnode, children, insertedVnodeQueue);
- } else {
- // v-html and domProps: innerHTML
- if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {
- if (i !== elm.innerHTML) {
- /* istanbul ignore if */
- if ("development" !== 'production' &&
- typeof console !== 'undefined' &&
- !hydrationBailed
- ) {
- hydrationBailed = true;
- console.warn('Parent: ', elm);
- console.warn('server innerHTML: ', i);
- console.warn('client innerHTML: ', elm.innerHTML);
- }
- return false
- }
- } else {
- // iterate and compare children lists
- var childrenMatch = true;
- var childNode = elm.firstChild;
- for (var i$1 = 0; i$1 < children.length; i$1++) {
- if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {
- childrenMatch = false;
- break
- }
- childNode = childNode.nextSibling;
- }
- // if childNode is not null, it means the actual childNodes list is
- // longer than the virtual children list.
- if (!childrenMatch || childNode) {
- /* istanbul ignore if */
- if ("development" !== 'production' &&
- typeof console !== 'undefined' &&
- !hydrationBailed
- ) {
- hydrationBailed = true;
- console.warn('Parent: ', elm);
- console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
- }
- return false
- }
- }
- }
- }
- if (isDef(data)) {
- var fullInvoke = false;
- for (var key in data) {
- if (!isRenderedModule(key)) {
- fullInvoke = true;
- invokeCreateHooks(vnode, insertedVnodeQueue);
- break
- }
- }
- if (!fullInvoke && data['class']) {
- // ensure collecting deps for deep class bindings for future updates
- traverse(data['class']);
- }
- }
- } else if (elm.data !== vnode.text) {
- elm.data = vnode.text;
- }
- return true
- }
- function assertNodeMatch (node, vnode, inVPre) {
- if (isDef(vnode.tag)) {
- return vnode.tag.indexOf('vue-component') === 0 || (
- !isUnknownElement$$1(vnode, inVPre) &&
- vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())
- )
- } else {
- return node.nodeType === (vnode.isComment ? 8 : 3)
- }
- }
- return function patch (oldVnode, vnode, hydrating, removeOnly) {
- if (isUndef(vnode)) {
- if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }
- return
- }
- var isInitialPatch = false;
- var insertedVnodeQueue = [];
- if (isUndef(oldVnode)) {
- // empty mount (likely as component), create new root element
- isInitialPatch = true;
- createElm(vnode, insertedVnodeQueue);
- } else {
- var isRealElement = isDef(oldVnode.nodeType);
- if (!isRealElement && sameVnode(oldVnode, vnode)) {
- // patch existing root node
- patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);
- } else {
- if (isRealElement) {
- // mounting to a real element
- // check if this is server-rendered content and if we can perform
- // a successful hydration.
- if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
- oldVnode.removeAttribute(SSR_ATTR);
- hydrating = true;
- }
- if (isTrue(hydrating)) {
- if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
- invokeInsertHook(vnode, insertedVnodeQueue, true);
- return oldVnode
- } else if (true) {
- warn(
- 'The client-side rendered virtual DOM tree is not matching ' +
- 'server-rendered content. This is likely caused by incorrect ' +
- 'HTML markup, for example nesting block-level elements inside ' +
- '<p>, or missing <tbody>. Bailing hydration and performing ' +
- 'full client-side render.'
- );
- }
- }
- // either not server-rendered, or hydration failed.
- // create an empty node and replace it
- oldVnode = emptyNodeAt(oldVnode);
- }
- // replacing existing element
- var oldElm = oldVnode.elm;
- var parentElm = nodeOps.parentNode(oldElm);
- // create new node
- createElm(
- vnode,
- insertedVnodeQueue,
- // extremely rare edge case: do not insert if old element is in a
- // leaving transition. Only happens when combining transition +
- // keep-alive + HOCs. (#4590)
- oldElm._leaveCb ? null : parentElm,
- nodeOps.nextSibling(oldElm)
- );
- // update parent placeholder node element, recursively
- if (isDef(vnode.parent)) {
- var ancestor = vnode.parent;
- var patchable = isPatchable(vnode);
- while (ancestor) {
- for (var i = 0; i < cbs.destroy.length; ++i) {
- cbs.destroy[i](ancestor);
- }
- ancestor.elm = vnode.elm;
- if (patchable) {
- for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
- cbs.create[i$1](emptyNode, ancestor);
- }
- // #6513
- // invoke insert hooks that may have been merged by create hooks.
- // e.g. for directives that uses the "inserted" hook.
- var insert = ancestor.data.hook.insert;
- if (insert.merged) {
- // start at index 1 to avoid re-invoking component mounted hook
- for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {
- insert.fns[i$2]();
- }
- }
- } else {
- registerRef(ancestor);
- }
- ancestor = ancestor.parent;
- }
- }
- // destroy old node
- if (isDef(parentElm)) {
- removeVnodes(parentElm, [oldVnode], 0, 0);
- } else if (isDef(oldVnode.tag)) {
- invokeDestroyHook(oldVnode);
- }
- }
- }
- invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
- return vnode.elm
- }
- }
- /* */
- var directives = {
- create: updateDirectives,
- update: updateDirectives,
- destroy: function unbindDirectives (vnode) {
- updateDirectives(vnode, emptyNode);
- }
- };
- function updateDirectives (oldVnode, vnode) {
- if (oldVnode.data.directives || vnode.data.directives) {
- _update(oldVnode, vnode);
- }
- }
- function _update (oldVnode, vnode) {
- var isCreate = oldVnode === emptyNode;
- var isDestroy = vnode === emptyNode;
- var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
- var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);
- var dirsWithInsert = [];
- var dirsWithPostpatch = [];
- var key, oldDir, dir;
- for (key in newDirs) {
- oldDir = oldDirs[key];
- dir = newDirs[key];
- if (!oldDir) {
- // new directive, bind
- callHook$1(dir, 'bind', vnode, oldVnode);
- if (dir.def && dir.def.inserted) {
- dirsWithInsert.push(dir);
- }
- } else {
- // existing directive, update
- dir.oldValue = oldDir.value;
- callHook$1(dir, 'update', vnode, oldVnode);
- if (dir.def && dir.def.componentUpdated) {
- dirsWithPostpatch.push(dir);
- }
- }
- }
- if (dirsWithInsert.length) {
- var callInsert = function () {
- for (var i = 0; i < dirsWithInsert.length; i++) {
- callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
- }
- };
- if (isCreate) {
- mergeVNodeHook(vnode, 'insert', callInsert);
- } else {
- callInsert();
- }
- }
- if (dirsWithPostpatch.length) {
- mergeVNodeHook(vnode, 'postpatch', function () {
- for (var i = 0; i < dirsWithPostpatch.length; i++) {
- callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
- }
- });
- }
- if (!isCreate) {
- for (key in oldDirs) {
- if (!newDirs[key]) {
- // no longer present, unbind
- callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
- }
- }
- }
- }
- var emptyModifiers = Object.create(null);
- function normalizeDirectives$1 (
- dirs,
- vm
- ) {
- var res = Object.create(null);
- if (!dirs) {
- // $flow-disable-line
- return res
- }
- var i, dir;
- for (i = 0; i < dirs.length; i++) {
- dir = dirs[i];
- if (!dir.modifiers) {
- // $flow-disable-line
- dir.modifiers = emptyModifiers;
- }
- res[getRawDirName(dir)] = dir;
- dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
- }
- // $flow-disable-line
- return res
- }
- function getRawDirName (dir) {
- return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))
- }
- function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {
- var fn = dir.def && dir.def[hook];
- if (fn) {
- try {
- fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
- } catch (e) {
- handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));
- }
- }
- }
- var baseModules = [
- ref,
- directives
- ];
- /* */
- function updateAttrs (oldVnode, vnode) {
- var opts = vnode.componentOptions;
- if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
- return
- }
- if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
- return
- }
- var key, cur, old;
- var elm = vnode.elm;
- var oldAttrs = oldVnode.data.attrs || {};
- var attrs = vnode.data.attrs || {};
- // clone observed objects, as the user probably wants to mutate it
- if (isDef(attrs.__ob__)) {
- attrs = vnode.data.attrs = extend({}, attrs);
- }
- for (key in attrs) {
- cur = attrs[key];
- old = oldAttrs[key];
- if (old !== cur) {
- setAttr(elm, key, cur);
- }
- }
- // #4391: in IE9, setting type can reset value for input[type=radio]
- // #6666: IE/Edge forces progress value down to 1 before setting a max
- /* istanbul ignore if */
- if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
- setAttr(elm, 'value', attrs.value);
- }
- for (key in oldAttrs) {
- if (isUndef(attrs[key])) {
- if (isXlink(key)) {
- elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
- } else if (!isEnumeratedAttr(key)) {
- elm.removeAttribute(key);
- }
- }
- }
- }
- function setAttr (el, key, value) {
- if (el.tagName.indexOf('-') > -1) {
- baseSetAttr(el, key, value);
- } else if (isBooleanAttr(key)) {
- // set attribute for blank value
- // e.g. <option disabled>Select one</option>
- if (isFalsyAttrValue(value)) {
- el.removeAttribute(key);
- } else {
- // technically allowfullscreen is a boolean attribute for <iframe>,
- // but Flash expects a value of "true" when used on <embed> tag
- value = key === 'allowfullscreen' && el.tagName === 'EMBED'
- ? 'true'
- : key;
- el.setAttribute(key, value);
- }
- } else if (isEnumeratedAttr(key)) {
- el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');
- } else if (isXlink(key)) {
- if (isFalsyAttrValue(value)) {
- el.removeAttributeNS(xlinkNS, getXlinkProp(key));
- } else {
- el.setAttributeNS(xlinkNS, key, value);
- }
- } else {
- baseSetAttr(el, key, value);
- }
- }
- function baseSetAttr (el, key, value) {
- if (isFalsyAttrValue(value)) {
- el.removeAttribute(key);
- } else {
- // #7138: IE10 & 11 fires input event when setting placeholder on
- // <textarea>... block the first input event and remove the blocker
- // immediately.
- /* istanbul ignore if */
- if (
- isIE && !isIE9 &&
- (el.tagName === 'TEXTAREA' || el.tagName === 'INPUT') &&
- key === 'placeholder' && !el.__ieph
- ) {
- var blocker = function (e) {
- e.stopImmediatePropagation();
- el.removeEventListener('input', blocker);
- };
- el.addEventListener('input', blocker);
- // $flow-disable-line
- el.__ieph = true; /* IE placeholder patched */
- }
- el.setAttribute(key, value);
- }
- }
- var attrs = {
- create: updateAttrs,
- update: updateAttrs
- };
- /* */
- function updateClass (oldVnode, vnode) {
- var el = vnode.elm;
- var data = vnode.data;
- var oldData = oldVnode.data;
- if (
- isUndef(data.staticClass) &&
- isUndef(data.class) && (
- isUndef(oldData) || (
- isUndef(oldData.staticClass) &&
- isUndef(oldData.class)
- )
- )
- ) {
- return
- }
- var cls = genClassForVnode(vnode);
- // handle transition classes
- var transitionClass = el._transitionClasses;
- if (isDef(transitionClass)) {
- cls = concat(cls, stringifyClass(transitionClass));
- }
- // set the class
- if (cls !== el._prevClass) {
- el.setAttribute('class', cls);
- el._prevClass = cls;
- }
- }
- var klass = {
- create: updateClass,
- update: updateClass
- };
- /* */
- var validDivisionCharRE = /[\w).+\-_$\]]/;
- function parseFilters (exp) {
- var inSingle = false;
- var inDouble = false;
- var inTemplateString = false;
- var inRegex = false;
- var curly = 0;
- var square = 0;
- var paren = 0;
- var lastFilterIndex = 0;
- var c, prev, i, expression, filters;
- for (i = 0; i < exp.length; i++) {
- prev = c;
- c = exp.charCodeAt(i);
- if (inSingle) {
- if (c === 0x27 && prev !== 0x5C) { inSingle = false; }
- } else if (inDouble) {
- if (c === 0x22 && prev !== 0x5C) { inDouble = false; }
- } else if (inTemplateString) {
- if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }
- } else if (inRegex) {
- if (c === 0x2f && prev !== 0x5C) { inRegex = false; }
- } else if (
- c === 0x7C && // pipe
- exp.charCodeAt(i + 1) !== 0x7C &&
- exp.charCodeAt(i - 1) !== 0x7C &&
- !curly && !square && !paren
- ) {
- if (expression === undefined) {
- // first filter, end of expression
- lastFilterIndex = i + 1;
- expression = exp.slice(0, i).trim();
- } else {
- pushFilter();
- }
- } else {
- switch (c) {
- case 0x22: inDouble = true; break // "
- case 0x27: inSingle = true; break // '
- case 0x60: inTemplateString = true; break // `
- case 0x28: paren++; break // (
- case 0x29: paren--; break // )
- case 0x5B: square++; break // [
- case 0x5D: square--; break // ]
- case 0x7B: curly++; break // {
- case 0x7D: curly--; break // }
- }
- if (c === 0x2f) { // /
- var j = i - 1;
- var p = (void 0);
- // find first non-whitespace prev char
- for (; j >= 0; j--) {
- p = exp.charAt(j);
- if (p !== ' ') { break }
- }
- if (!p || !validDivisionCharRE.test(p)) {
- inRegex = true;
- }
- }
- }
- }
- if (expression === undefined) {
- expression = exp.slice(0, i).trim();
- } else if (lastFilterIndex !== 0) {
- pushFilter();
- }
- function pushFilter () {
- (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
- lastFilterIndex = i + 1;
- }
- if (filters) {
- for (i = 0; i < filters.length; i++) {
- expression = wrapFilter(expression, filters[i]);
- }
- }
- return expression
- }
- function wrapFilter (exp, filter) {
- var i = filter.indexOf('(');
- if (i < 0) {
- // _f: resolveFilter
- return ("_f(\"" + filter + "\")(" + exp + ")")
- } else {
- var name = filter.slice(0, i);
- var args = filter.slice(i + 1);
- return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args))
- }
- }
- /* */
- function baseWarn (msg) {
- console.error(("[Vue compiler]: " + msg));
- }
- function pluckModuleFunction (
- modules,
- key
- ) {
- return modules
- ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })
- : []
- }
- function addProp (el, name, value) {
- (el.props || (el.props = [])).push({ name: name, value: value });
- el.plain = false;
- }
- function addAttr (el, name, value) {
- (el.attrs || (el.attrs = [])).push({ name: name, value: value });
- el.plain = false;
- }
- // add a raw attr (use this in preTransforms)
- function addRawAttr (el, name, value) {
- el.attrsMap[name] = value;
- el.attrsList.push({ name: name, value: value });
- }
- function addDirective (
- el,
- name,
- rawName,
- value,
- arg,
- modifiers
- ) {
- (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });
- el.plain = false;
- }
- function addHandler (
- el,
- name,
- value,
- modifiers,
- important,
- warn
- ) {
- modifiers = modifiers || emptyObject;
- // warn prevent and passive modifier
- /* istanbul ignore if */
- if (
- "development" !== 'production' && warn &&
- modifiers.prevent && modifiers.passive
- ) {
- warn(
- 'passive and prevent can\'t be used together. ' +
- 'Passive handler can\'t prevent default event.'
- );
- }
- // normalize click.right and click.middle since they don't actually fire
- // this is technically browser-specific, but at least for now browsers are
- // the only target envs that have right/middle clicks.
- if (name === 'click') {
- if (modifiers.right) {
- name = 'contextmenu';
- delete modifiers.right;
- } else if (modifiers.middle) {
- name = 'mouseup';
- }
- }
- // check capture modifier
- if (modifiers.capture) {
- delete modifiers.capture;
- name = '!' + name; // mark the event as captured
- }
- if (modifiers.once) {
- delete modifiers.once;
- name = '~' + name; // mark the event as once
- }
- /* istanbul ignore if */
- if (modifiers.passive) {
- delete modifiers.passive;
- name = '&' + name; // mark the event as passive
- }
- var events;
- if (modifiers.native) {
- delete modifiers.native;
- events = el.nativeEvents || (el.nativeEvents = {});
- } else {
- events = el.events || (el.events = {});
- }
- var newHandler = {
- value: value.trim()
- };
- if (modifiers !== emptyObject) {
- newHandler.modifiers = modifiers;
- }
- var handlers = events[name];
- /* istanbul ignore if */
- if (Array.isArray(handlers)) {
- important ? handlers.unshift(newHandler) : handlers.push(newHandler);
- } else if (handlers) {
- events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
- } else {
- events[name] = newHandler;
- }
- el.plain = false;
- }
- function getBindingAttr (
- el,
- name,
- getStatic
- ) {
- var dynamicValue =
- getAndRemoveAttr(el, ':' + name) ||
- getAndRemoveAttr(el, 'v-bind:' + name);
- if (dynamicValue != null) {
- return parseFilters(dynamicValue)
- } else if (getStatic !== false) {
- var staticValue = getAndRemoveAttr(el, name);
- if (staticValue != null) {
- return JSON.stringify(staticValue)
- }
- }
- }
- // note: this only removes the attr from the Array (attrsList) so that it
- // doesn't get processed by processAttrs.
- // By default it does NOT remove it from the map (attrsMap) because the map is
- // needed during codegen.
- function getAndRemoveAttr (
- el,
- name,
- removeFromMap
- ) {
- var val;
- if ((val = el.attrsMap[name]) != null) {
- var list = el.attrsList;
- for (var i = 0, l = list.length; i < l; i++) {
- if (list[i].name === name) {
- list.splice(i, 1);
- break
- }
- }
- }
- if (removeFromMap) {
- delete el.attrsMap[name];
- }
- return val
- }
- /* */
- /**
- * Cross-platform code generation for component v-model
- */
- function genComponentModel (
- el,
- value,
- modifiers
- ) {
- var ref = modifiers || {};
- var number = ref.number;
- var trim = ref.trim;
- var baseValueExpression = '$$v';
- var valueExpression = baseValueExpression;
- if (trim) {
- valueExpression =
- "(typeof " + baseValueExpression + " === 'string'" +
- "? " + baseValueExpression + ".trim()" +
- ": " + baseValueExpression + ")";
- }
- if (number) {
- valueExpression = "_n(" + valueExpression + ")";
- }
- var assignment = genAssignmentCode(value, valueExpression);
- el.model = {
- value: ("(" + value + ")"),
- expression: JSON.stringify(value),
- callback: ("function (" + baseValueExpression + ") {" + assignment + "}")
- };
- }
- /**
- * Cross-platform codegen helper for generating v-model value assignment code.
- */
- function genAssignmentCode (
- value,
- assignment
- ) {
- var res = parseModel(value);
- if (res.key === null) {
- return (value + "=" + assignment)
- } else {
- return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")")
- }
- }
- /**
- * Parse a v-model expression into a base path and a final key segment.
- * Handles both dot-path and possible square brackets.
- *
- * Possible cases:
- *
- * - test
- * - test[key]
- * - test[test1[key]]
- * - test["a"][key]
- * - xxx.test[a[a].test1[key]]
- * - test.xxx.a["asa"][test1[key]]
- *
- */
- var len, str, chr, index$1, expressionPos, expressionEndPos;
- function parseModel (val) {
- // Fix https://github.com/vuejs/vue/pull/7730
- // allow v-model="obj.val " (trailing whitespace)
- val = val.trim();
- len = val.length;
- if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
- index$1 = val.lastIndexOf('.');
- if (index$1 > -1) {
- return {
- exp: val.slice(0, index$1),
- key: '"' + val.slice(index$1 + 1) + '"'
- }
- } else {
- return {
- exp: val,
- key: null
- }
- }
- }
- str = val;
- index$1 = expressionPos = expressionEndPos = 0;
- while (!eof()) {
- chr = next();
- /* istanbul ignore if */
- if (isStringStart(chr)) {
- parseString(chr);
- } else if (chr === 0x5B) {
- parseBracket(chr);
- }
- }
- return {
- exp: val.slice(0, expressionPos),
- key: val.slice(expressionPos + 1, expressionEndPos)
- }
- }
- function next () {
- return str.charCodeAt(++index$1)
- }
- function eof () {
- return index$1 >= len
- }
- function isStringStart (chr) {
- return chr === 0x22 || chr === 0x27
- }
- function parseBracket (chr) {
- var inBracket = 1;
- expressionPos = index$1;
- while (!eof()) {
- chr = next();
- if (isStringStart(chr)) {
- parseString(chr);
- continue
- }
- if (chr === 0x5B) { inBracket++; }
- if (chr === 0x5D) { inBracket--; }
- if (inBracket === 0) {
- expressionEndPos = index$1;
- break
- }
- }
- }
- function parseString (chr) {
- var stringQuote = chr;
- while (!eof()) {
- chr = next();
- if (chr === stringQuote) {
- break
- }
- }
- }
- /* */
- var warn$1;
- // in some cases, the event used has to be determined at runtime
- // so we used some reserved tokens during compile.
- var RANGE_TOKEN = '__r';
- var CHECKBOX_RADIO_TOKEN = '__c';
- function model (
- el,
- dir,
- _warn
- ) {
- warn$1 = _warn;
- var value = dir.value;
- var modifiers = dir.modifiers;
- var tag = el.tag;
- var type = el.attrsMap.type;
- if (true) {
- // inputs with type="file" are read only and setting the input's
- // value will throw an error.
- if (tag === 'input' && type === 'file') {
- warn$1(
- "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" +
- "File inputs are read only. Use a v-on:change listener instead."
- );
- }
- }
- if (el.component) {
- genComponentModel(el, value, modifiers);
- // component v-model doesn't need extra runtime
- return false
- } else if (tag === 'select') {
- genSelect(el, value, modifiers);
- } else if (tag === 'input' && type === 'checkbox') {
- genCheckboxModel(el, value, modifiers);
- } else if (tag === 'input' && type === 'radio') {
- genRadioModel(el, value, modifiers);
- } else if (tag === 'input' || tag === 'textarea') {
- genDefaultModel(el, value, modifiers);
- } else if (!config.isReservedTag(tag)) {
- genComponentModel(el, value, modifiers);
- // component v-model doesn't need extra runtime
- return false
- } else if (true) {
- warn$1(
- "<" + (el.tag) + " v-model=\"" + value + "\">: " +
- "v-model is not supported on this element type. " +
- 'If you are working with contenteditable, it\'s recommended to ' +
- 'wrap a library dedicated for that purpose inside a custom component.'
- );
- }
- // ensure runtime directive metadata
- return true
- }
- function genCheckboxModel (
- el,
- value,
- modifiers
- ) {
- var number = modifiers && modifiers.number;
- var valueBinding = getBindingAttr(el, 'value') || 'null';
- var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
- var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
- addProp(el, 'checked',
- "Array.isArray(" + value + ")" +
- "?_i(" + value + "," + valueBinding + ")>-1" + (
- trueValueBinding === 'true'
- ? (":(" + value + ")")
- : (":_q(" + value + "," + trueValueBinding + ")")
- )
- );
- addHandler(el, 'change',
- "var $$a=" + value + "," +
- '$$el=$event.target,' +
- "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" +
- 'if(Array.isArray($$a)){' +
- "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," +
- '$$i=_i($$a,$$v);' +
- "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" +
- "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" +
- "}else{" + (genAssignmentCode(value, '$$c')) + "}",
- null, true
- );
- }
- function genRadioModel (
- el,
- value,
- modifiers
- ) {
- var number = modifiers && modifiers.number;
- var valueBinding = getBindingAttr(el, 'value') || 'null';
- valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;
- addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));
- addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
- }
- function genSelect (
- el,
- value,
- modifiers
- ) {
- var number = modifiers && modifiers.number;
- var selectedVal = "Array.prototype.filter" +
- ".call($event.target.options,function(o){return o.selected})" +
- ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" +
- "return " + (number ? '_n(val)' : 'val') + "})";
- var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
- var code = "var $$selectedVal = " + selectedVal + ";";
- code = code + " " + (genAssignmentCode(value, assignment));
- addHandler(el, 'change', code, null, true);
- }
- function genDefaultModel (
- el,
- value,
- modifiers
- ) {
- var type = el.attrsMap.type;
- // warn if v-bind:value conflicts with v-model
- // except for inputs with v-bind:type
- if (true) {
- var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
- var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
- if (value$1 && !typeBinding) {
- var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
- warn$1(
- binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " +
- 'because the latter already expands to a value binding internally'
- );
- }
- }
- var ref = modifiers || {};
- var lazy = ref.lazy;
- var number = ref.number;
- var trim = ref.trim;
- var needCompositionGuard = !lazy && type !== 'range';
- var event = lazy
- ? 'change'
- : type === 'range'
- ? RANGE_TOKEN
- : 'input';
- var valueExpression = '$event.target.value';
- if (trim) {
- valueExpression = "$event.target.value.trim()";
- }
- if (number) {
- valueExpression = "_n(" + valueExpression + ")";
- }
- var code = genAssignmentCode(value, valueExpression);
- if (needCompositionGuard) {
- code = "if($event.target.composing)return;" + code;
- }
- addProp(el, 'value', ("(" + value + ")"));
- addHandler(el, event, code, null, true);
- if (trim || number) {
- addHandler(el, 'blur', '$forceUpdate()');
- }
- }
- /* */
- // normalize v-model event tokens that can only be determined at runtime.
- // it's important to place the event as the first in the array because
- // the whole point is ensuring the v-model callback gets called before
- // user-attached handlers.
- function normalizeEvents (on) {
- /* istanbul ignore if */
- if (isDef(on[RANGE_TOKEN])) {
- // IE input[type=range] only supports `change` event
- var event = isIE ? 'change' : 'input';
- on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
- delete on[RANGE_TOKEN];
- }
- // This was originally intended to fix #4521 but no longer necessary
- // after 2.5. Keeping it for backwards compat with generated code from < 2.4
- /* istanbul ignore if */
- if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
- on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
- delete on[CHECKBOX_RADIO_TOKEN];
- }
- }
- var target$1;
- function createOnceHandler$1 (event, handler, capture) {
- var _target = target$1; // save current target element in closure
- return function onceHandler () {
- var res = handler.apply(null, arguments);
- if (res !== null) {
- remove$2(event, onceHandler, capture, _target);
- }
- }
- }
- function add$1 (
- event,
- handler,
- capture,
- passive
- ) {
- handler = withMacroTask(handler);
- target$1.addEventListener(
- event,
- handler,
- supportsPassive
- ? { capture: capture, passive: passive }
- : capture
- );
- }
- function remove$2 (
- event,
- handler,
- capture,
- _target
- ) {
- (_target || target$1).removeEventListener(
- event,
- handler._withTask || handler,
- capture
- );
- }
- function updateDOMListeners (oldVnode, vnode) {
- if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
- return
- }
- var on = vnode.data.on || {};
- var oldOn = oldVnode.data.on || {};
- target$1 = vnode.elm;
- normalizeEvents(on);
- updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);
- target$1 = undefined;
- }
- var events = {
- create: updateDOMListeners,
- update: updateDOMListeners
- };
- /* */
- function updateDOMProps (oldVnode, vnode) {
- if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
- return
- }
- var key, cur;
- var elm = vnode.elm;
- var oldProps = oldVnode.data.domProps || {};
- var props = vnode.data.domProps || {};
- // clone observed objects, as the user probably wants to mutate it
- if (isDef(props.__ob__)) {
- props = vnode.data.domProps = extend({}, props);
- }
- for (key in oldProps) {
- if (isUndef(props[key])) {
- elm[key] = '';
- }
- }
- for (key in props) {
- cur = props[key];
- // ignore children if the node has textContent or innerHTML,
- // as these will throw away existing DOM nodes and cause removal errors
- // on subsequent patches (#3360)
- if (key === 'textContent' || key === 'innerHTML') {
- if (vnode.children) { vnode.children.length = 0; }
- if (cur === oldProps[key]) { continue }
- // #6601 work around Chrome version <= 55 bug where single textNode
- // replaced by innerHTML/textContent retains its parentNode property
- if (elm.childNodes.length === 1) {
- elm.removeChild(elm.childNodes[0]);
- }
- }
- if (key === 'value') {
- // store value as _value as well since
- // non-string values will be stringified
- elm._value = cur;
- // avoid resetting cursor position when value is the same
- var strCur = isUndef(cur) ? '' : String(cur);
- if (shouldUpdateValue(elm, strCur)) {
- elm.value = strCur;
- }
- } else {
- elm[key] = cur;
- }
- }
- }
- // check platforms/web/util/attrs.js acceptValue
- function shouldUpdateValue (elm, checkVal) {
- return (!elm.composing && (
- elm.tagName === 'OPTION' ||
- isNotInFocusAndDirty(elm, checkVal) ||
- isDirtyWithModifiers(elm, checkVal)
- ))
- }
- function isNotInFocusAndDirty (elm, checkVal) {
- // return true when textbox (.number and .trim) loses focus and its value is
- // not equal to the updated value
- var notInFocus = true;
- // #6157
- // work around IE bug when accessing document.activeElement in an iframe
- try { notInFocus = document.activeElement !== elm; } catch (e) {}
- return notInFocus && elm.value !== checkVal
- }
- function isDirtyWithModifiers (elm, newVal) {
- var value = elm.value;
- var modifiers = elm._vModifiers; // injected by v-model runtime
- if (isDef(modifiers)) {
- if (modifiers.lazy) {
- // inputs with lazy should only be updated when not in focus
- return false
- }
- if (modifiers.number) {
- return toNumber(value) !== toNumber(newVal)
- }
- if (modifiers.trim) {
- return value.trim() !== newVal.trim()
- }
- }
- return value !== newVal
- }
- var domProps = {
- create: updateDOMProps,
- update: updateDOMProps
- };
- /* */
- var parseStyleText = cached(function (cssText) {
- var res = {};
- var listDelimiter = /;(?![^(]*\))/g;
- var propertyDelimiter = /:(.+)/;
- cssText.split(listDelimiter).forEach(function (item) {
- if (item) {
- var tmp = item.split(propertyDelimiter);
- tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
- }
- });
- return res
- });
- // merge static and dynamic style data on the same vnode
- function normalizeStyleData (data) {
- var style = normalizeStyleBinding(data.style);
- // static style is pre-processed into an object during compilation
- // and is always a fresh object, so it's safe to merge into it
- return data.staticStyle
- ? extend(data.staticStyle, style)
- : style
- }
- // normalize possible array / string values into Object
- function normalizeStyleBinding (bindingStyle) {
- if (Array.isArray(bindingStyle)) {
- return toObject(bindingStyle)
- }
- if (typeof bindingStyle === 'string') {
- return parseStyleText(bindingStyle)
- }
- return bindingStyle
- }
- /**
- * parent component style should be after child's
- * so that parent component's style could override it
- */
- function getStyle (vnode, checkChild) {
- var res = {};
- var styleData;
- if (checkChild) {
- var childNode = vnode;
- while (childNode.componentInstance) {
- childNode = childNode.componentInstance._vnode;
- if (
- childNode && childNode.data &&
- (styleData = normalizeStyleData(childNode.data))
- ) {
- extend(res, styleData);
- }
- }
- }
- if ((styleData = normalizeStyleData(vnode.data))) {
- extend(res, styleData);
- }
- var parentNode = vnode;
- while ((parentNode = parentNode.parent)) {
- if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
- extend(res, styleData);
- }
- }
- return res
- }
- /* */
- var cssVarRE = /^--/;
- var importantRE = /\s*!important$/;
- var setProp = function (el, name, val) {
- /* istanbul ignore if */
- if (cssVarRE.test(name)) {
- el.style.setProperty(name, val);
- } else if (importantRE.test(val)) {
- el.style.setProperty(name, val.replace(importantRE, ''), 'important');
- } else {
- var normalizedName = normalize(name);
- if (Array.isArray(val)) {
- // Support values array created by autoprefixer, e.g.
- // {display: ["-webkit-box", "-ms-flexbox", "flex"]}
- // Set them one by one, and the browser will only set those it can recognize
- for (var i = 0, len = val.length; i < len; i++) {
- el.style[normalizedName] = val[i];
- }
- } else {
- el.style[normalizedName] = val;
- }
- }
- };
- var vendorNames = ['Webkit', 'Moz', 'ms'];
- var emptyStyle;
- var normalize = cached(function (prop) {
- emptyStyle = emptyStyle || document.createElement('div').style;
- prop = camelize(prop);
- if (prop !== 'filter' && (prop in emptyStyle)) {
- return prop
- }
- var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
- for (var i = 0; i < vendorNames.length; i++) {
- var name = vendorNames[i] + capName;
- if (name in emptyStyle) {
- return name
- }
- }
- });
- function updateStyle (oldVnode, vnode) {
- var data = vnode.data;
- var oldData = oldVnode.data;
- if (isUndef(data.staticStyle) && isUndef(data.style) &&
- isUndef(oldData.staticStyle) && isUndef(oldData.style)
- ) {
- return
- }
- var cur, name;
- var el = vnode.elm;
- var oldStaticStyle = oldData.staticStyle;
- var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};
- // if static style exists, stylebinding already merged into it when doing normalizeStyleData
- var oldStyle = oldStaticStyle || oldStyleBinding;
- var style = normalizeStyleBinding(vnode.data.style) || {};
- // store normalized style under a different key for next diff
- // make sure to clone it if it's reactive, since the user likely wants
- // to mutate it.
- vnode.data.normalizedStyle = isDef(style.__ob__)
- ? extend({}, style)
- : style;
- var newStyle = getStyle(vnode, true);
- for (name in oldStyle) {
- if (isUndef(newStyle[name])) {
- setProp(el, name, '');
- }
- }
- for (name in newStyle) {
- cur = newStyle[name];
- if (cur !== oldStyle[name]) {
- // ie9 setting to null has no effect, must use empty string
- setProp(el, name, cur == null ? '' : cur);
- }
- }
- }
- var style = {
- create: updateStyle,
- update: updateStyle
- };
- /* */
- var whitespaceRE = /\s+/;
- /**
- * Add class with compatibility for SVG since classList is not supported on
- * SVG elements in IE
- */
- function addClass (el, cls) {
- /* istanbul ignore if */
- if (!cls || !(cls = cls.trim())) {
- return
- }
- /* istanbul ignore else */
- if (el.classList) {
- if (cls.indexOf(' ') > -1) {
- cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });
- } else {
- el.classList.add(cls);
- }
- } else {
- var cur = " " + (el.getAttribute('class') || '') + " ";
- if (cur.indexOf(' ' + cls + ' ') < 0) {
- el.setAttribute('class', (cur + cls).trim());
- }
- }
- }
- /**
- * Remove class with compatibility for SVG since classList is not supported on
- * SVG elements in IE
- */
- function removeClass (el, cls) {
- /* istanbul ignore if */
- if (!cls || !(cls = cls.trim())) {
- return
- }
- /* istanbul ignore else */
- if (el.classList) {
- if (cls.indexOf(' ') > -1) {
- cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });
- } else {
- el.classList.remove(cls);
- }
- if (!el.classList.length) {
- el.removeAttribute('class');
- }
- } else {
- var cur = " " + (el.getAttribute('class') || '') + " ";
- var tar = ' ' + cls + ' ';
- while (cur.indexOf(tar) >= 0) {
- cur = cur.replace(tar, ' ');
- }
- cur = cur.trim();
- if (cur) {
- el.setAttribute('class', cur);
- } else {
- el.removeAttribute('class');
- }
- }
- }
- /* */
- function resolveTransition (def$$1) {
- if (!def$$1) {
- return
- }
- /* istanbul ignore else */
- if (typeof def$$1 === 'object') {
- var res = {};
- if (def$$1.css !== false) {
- extend(res, autoCssTransition(def$$1.name || 'v'));
- }
- extend(res, def$$1);
- return res
- } else if (typeof def$$1 === 'string') {
- return autoCssTransition(def$$1)
- }
- }
- var autoCssTransition = cached(function (name) {
- return {
- enterClass: (name + "-enter"),
- enterToClass: (name + "-enter-to"),
- enterActiveClass: (name + "-enter-active"),
- leaveClass: (name + "-leave"),
- leaveToClass: (name + "-leave-to"),
- leaveActiveClass: (name + "-leave-active")
- }
- });
- var hasTransition = inBrowser && !isIE9;
- var TRANSITION = 'transition';
- var ANIMATION = 'animation';
- // Transition property/event sniffing
- var transitionProp = 'transition';
- var transitionEndEvent = 'transitionend';
- var animationProp = 'animation';
- var animationEndEvent = 'animationend';
- if (hasTransition) {
- /* istanbul ignore if */
- if (window.ontransitionend === undefined &&
- window.onwebkittransitionend !== undefined
- ) {
- transitionProp = 'WebkitTransition';
- transitionEndEvent = 'webkitTransitionEnd';
- }
- if (window.onanimationend === undefined &&
- window.onwebkitanimationend !== undefined
- ) {
- animationProp = 'WebkitAnimation';
- animationEndEvent = 'webkitAnimationEnd';
- }
- }
- // binding to window is necessary to make hot reload work in IE in strict mode
- var raf = inBrowser
- ? window.requestAnimationFrame
- ? window.requestAnimationFrame.bind(window)
- : setTimeout
- : /* istanbul ignore next */ function (fn) { return fn(); };
- function nextFrame (fn) {
- raf(function () {
- raf(fn);
- });
- }
- function addTransitionClass (el, cls) {
- var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
- if (transitionClasses.indexOf(cls) < 0) {
- transitionClasses.push(cls);
- addClass(el, cls);
- }
- }
- function removeTransitionClass (el, cls) {
- if (el._transitionClasses) {
- remove(el._transitionClasses, cls);
- }
- removeClass(el, cls);
- }
- function whenTransitionEnds (
- el,
- expectedType,
- cb
- ) {
- var ref = getTransitionInfo(el, expectedType);
- var type = ref.type;
- var timeout = ref.timeout;
- var propCount = ref.propCount;
- if (!type) { return cb() }
- var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
- var ended = 0;
- var end = function () {
- el.removeEventListener(event, onEnd);
- cb();
- };
- var onEnd = function (e) {
- if (e.target === el) {
- if (++ended >= propCount) {
- end();
- }
- }
- };
- setTimeout(function () {
- if (ended < propCount) {
- end();
- }
- }, timeout + 1);
- el.addEventListener(event, onEnd);
- }
- var transformRE = /\b(transform|all)(,|$)/;
- function getTransitionInfo (el, expectedType) {
- var styles = window.getComputedStyle(el);
- // JSDOM may return undefined for transition properties
- var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');
- var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');
- var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
- var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');
- var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');
- var animationTimeout = getTimeout(animationDelays, animationDurations);
- var type;
- var timeout = 0;
- var propCount = 0;
- /* istanbul ignore if */
- if (expectedType === TRANSITION) {
- if (transitionTimeout > 0) {
- type = TRANSITION;
- timeout = transitionTimeout;
- propCount = transitionDurations.length;
- }
- } else if (expectedType === ANIMATION) {
- if (animationTimeout > 0) {
- type = ANIMATION;
- timeout = animationTimeout;
- propCount = animationDurations.length;
- }
- } else {
- timeout = Math.max(transitionTimeout, animationTimeout);
- type = timeout > 0
- ? transitionTimeout > animationTimeout
- ? TRANSITION
- : ANIMATION
- : null;
- propCount = type
- ? type === TRANSITION
- ? transitionDurations.length
- : animationDurations.length
- : 0;
- }
- var hasTransform =
- type === TRANSITION &&
- transformRE.test(styles[transitionProp + 'Property']);
- return {
- type: type,
- timeout: timeout,
- propCount: propCount,
- hasTransform: hasTransform
- }
- }
- function getTimeout (delays, durations) {
- /* istanbul ignore next */
- while (delays.length < durations.length) {
- delays = delays.concat(delays);
- }
- return Math.max.apply(null, durations.map(function (d, i) {
- return toMs(d) + toMs(delays[i])
- }))
- }
- // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers
- // in a locale-dependent way, using a comma instead of a dot.
- // If comma is not replaced with a dot, the input will be rounded down (i.e. acting
- // as a floor function) causing unexpected behaviors
- function toMs (s) {
- return Number(s.slice(0, -1).replace(',', '.')) * 1000
- }
- /* */
- function enter (vnode, toggleDisplay) {
- var el = vnode.elm;
- // call leave callback now
- if (isDef(el._leaveCb)) {
- el._leaveCb.cancelled = true;
- el._leaveCb();
- }
- var data = resolveTransition(vnode.data.transition);
- if (isUndef(data)) {
- return
- }
- /* istanbul ignore if */
- if (isDef(el._enterCb) || el.nodeType !== 1) {
- return
- }
- var css = data.css;
- var type = data.type;
- var enterClass = data.enterClass;
- var enterToClass = data.enterToClass;
- var enterActiveClass = data.enterActiveClass;
- var appearClass = data.appearClass;
- var appearToClass = data.appearToClass;
- var appearActiveClass = data.appearActiveClass;
- var beforeEnter = data.beforeEnter;
- var enter = data.enter;
- var afterEnter = data.afterEnter;
- var enterCancelled = data.enterCancelled;
- var beforeAppear = data.beforeAppear;
- var appear = data.appear;
- var afterAppear = data.afterAppear;
- var appearCancelled = data.appearCancelled;
- var duration = data.duration;
- // activeInstance will always be the <transition> component managing this
- // transition. One edge case to check is when the <transition> is placed
- // as the root node of a child component. In that case we need to check
- // <transition>'s parent for appear check.
- var context = activeInstance;
- var transitionNode = activeInstance.$vnode;
- while (transitionNode && transitionNode.parent) {
- transitionNode = transitionNode.parent;
- context = transitionNode.context;
- }
- var isAppear = !context._isMounted || !vnode.isRootInsert;
- if (isAppear && !appear && appear !== '') {
- return
- }
- var startClass = isAppear && appearClass
- ? appearClass
- : enterClass;
- var activeClass = isAppear && appearActiveClass
- ? appearActiveClass
- : enterActiveClass;
- var toClass = isAppear && appearToClass
- ? appearToClass
- : enterToClass;
- var beforeEnterHook = isAppear
- ? (beforeAppear || beforeEnter)
- : beforeEnter;
- var enterHook = isAppear
- ? (typeof appear === 'function' ? appear : enter)
- : enter;
- var afterEnterHook = isAppear
- ? (afterAppear || afterEnter)
- : afterEnter;
- var enterCancelledHook = isAppear
- ? (appearCancelled || enterCancelled)
- : enterCancelled;
- var explicitEnterDuration = toNumber(
- isObject(duration)
- ? duration.enter
- : duration
- );
- if ("development" !== 'production' && explicitEnterDuration != null) {
- checkDuration(explicitEnterDuration, 'enter', vnode);
- }
- var expectsCSS = css !== false && !isIE9;
- var userWantsControl = getHookArgumentsLength(enterHook);
- var cb = el._enterCb = once(function () {
- if (expectsCSS) {
- removeTransitionClass(el, toClass);
- removeTransitionClass(el, activeClass);
- }
- if (cb.cancelled) {
- if (expectsCSS) {
- removeTransitionClass(el, startClass);
- }
- enterCancelledHook && enterCancelledHook(el);
- } else {
- afterEnterHook && afterEnterHook(el);
- }
- el._enterCb = null;
- });
- if (!vnode.data.show) {
- // remove pending leave element on enter by injecting an insert hook
- mergeVNodeHook(vnode, 'insert', function () {
- var parent = el.parentNode;
- var pendingNode = parent && parent._pending && parent._pending[vnode.key];
- if (pendingNode &&
- pendingNode.tag === vnode.tag &&
- pendingNode.elm._leaveCb
- ) {
- pendingNode.elm._leaveCb();
- }
- enterHook && enterHook(el, cb);
- });
- }
- // start enter transition
- beforeEnterHook && beforeEnterHook(el);
- if (expectsCSS) {
- addTransitionClass(el, startClass);
- addTransitionClass(el, activeClass);
- nextFrame(function () {
- removeTransitionClass(el, startClass);
- if (!cb.cancelled) {
- addTransitionClass(el, toClass);
- if (!userWantsControl) {
- if (isValidDuration(explicitEnterDuration)) {
- setTimeout(cb, explicitEnterDuration);
- } else {
- whenTransitionEnds(el, type, cb);
- }
- }
- }
- });
- }
- if (vnode.data.show) {
- toggleDisplay && toggleDisplay();
- enterHook && enterHook(el, cb);
- }
- if (!expectsCSS && !userWantsControl) {
- cb();
- }
- }
- function leave (vnode, rm) {
- var el = vnode.elm;
- // call enter callback now
- if (isDef(el._enterCb)) {
- el._enterCb.cancelled = true;
- el._enterCb();
- }
- var data = resolveTransition(vnode.data.transition);
- if (isUndef(data) || el.nodeType !== 1) {
- return rm()
- }
- /* istanbul ignore if */
- if (isDef(el._leaveCb)) {
- return
- }
- var css = data.css;
- var type = data.type;
- var leaveClass = data.leaveClass;
- var leaveToClass = data.leaveToClass;
- var leaveActiveClass = data.leaveActiveClass;
- var beforeLeave = data.beforeLeave;
- var leave = data.leave;
- var afterLeave = data.afterLeave;
- var leaveCancelled = data.leaveCancelled;
- var delayLeave = data.delayLeave;
- var duration = data.duration;
- var expectsCSS = css !== false && !isIE9;
- var userWantsControl = getHookArgumentsLength(leave);
- var explicitLeaveDuration = toNumber(
- isObject(duration)
- ? duration.leave
- : duration
- );
- if ("development" !== 'production' && isDef(explicitLeaveDuration)) {
- checkDuration(explicitLeaveDuration, 'leave', vnode);
- }
- var cb = el._leaveCb = once(function () {
- if (el.parentNode && el.parentNode._pending) {
- el.parentNode._pending[vnode.key] = null;
- }
- if (expectsCSS) {
- removeTransitionClass(el, leaveToClass);
- removeTransitionClass(el, leaveActiveClass);
- }
- if (cb.cancelled) {
- if (expectsCSS) {
- removeTransitionClass(el, leaveClass);
- }
- leaveCancelled && leaveCancelled(el);
- } else {
- rm();
- afterLeave && afterLeave(el);
- }
- el._leaveCb = null;
- });
- if (delayLeave) {
- delayLeave(performLeave);
- } else {
- performLeave();
- }
- function performLeave () {
- // the delayed leave may have already been cancelled
- if (cb.cancelled) {
- return
- }
- // record leaving element
- if (!vnode.data.show && el.parentNode) {
- (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;
- }
- beforeLeave && beforeLeave(el);
- if (expectsCSS) {
- addTransitionClass(el, leaveClass);
- addTransitionClass(el, leaveActiveClass);
- nextFrame(function () {
- removeTransitionClass(el, leaveClass);
- if (!cb.cancelled) {
- addTransitionClass(el, leaveToClass);
- if (!userWantsControl) {
- if (isValidDuration(explicitLeaveDuration)) {
- setTimeout(cb, explicitLeaveDuration);
- } else {
- whenTransitionEnds(el, type, cb);
- }
- }
- }
- });
- }
- leave && leave(el, cb);
- if (!expectsCSS && !userWantsControl) {
- cb();
- }
- }
- }
- // only used in dev mode
- function checkDuration (val, name, vnode) {
- if (typeof val !== 'number') {
- warn(
- "<transition> explicit " + name + " duration is not a valid number - " +
- "got " + (JSON.stringify(val)) + ".",
- vnode.context
- );
- } else if (isNaN(val)) {
- warn(
- "<transition> explicit " + name + " duration is NaN - " +
- 'the duration expression might be incorrect.',
- vnode.context
- );
- }
- }
- function isValidDuration (val) {
- return typeof val === 'number' && !isNaN(val)
- }
- /**
- * Normalize a transition hook's argument length. The hook may be:
- * - a merged hook (invoker) with the original in .fns
- * - a wrapped component method (check ._length)
- * - a plain function (.length)
- */
- function getHookArgumentsLength (fn) {
- if (isUndef(fn)) {
- return false
- }
- var invokerFns = fn.fns;
- if (isDef(invokerFns)) {
- // invoker
- return getHookArgumentsLength(
- Array.isArray(invokerFns)
- ? invokerFns[0]
- : invokerFns
- )
- } else {
- return (fn._length || fn.length) > 1
- }
- }
- function _enter (_, vnode) {
- if (vnode.data.show !== true) {
- enter(vnode);
- }
- }
- var transition = inBrowser ? {
- create: _enter,
- activate: _enter,
- remove: function remove$$1 (vnode, rm) {
- /* istanbul ignore else */
- if (vnode.data.show !== true) {
- leave(vnode, rm);
- } else {
- rm();
- }
- }
- } : {};
- var platformModules = [
- attrs,
- klass,
- events,
- domProps,
- style,
- transition
- ];
- /* */
- // the directive module should be applied last, after all
- // built-in modules have been applied.
- var modules = platformModules.concat(baseModules);
- var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });
- /**
- * Not type checking this file because flow doesn't like attaching
- * properties to Elements.
- */
- /* istanbul ignore if */
- if (isIE9) {
- // http://www.matts411.com/post/internet-explorer-9-oninput/
- document.addEventListener('selectionchange', function () {
- var el = document.activeElement;
- if (el && el.vmodel) {
- trigger(el, 'input');
- }
- });
- }
- var directive = {
- inserted: function inserted (el, binding, vnode, oldVnode) {
- if (vnode.tag === 'select') {
- // #6903
- if (oldVnode.elm && !oldVnode.elm._vOptions) {
- mergeVNodeHook(vnode, 'postpatch', function () {
- directive.componentUpdated(el, binding, vnode);
- });
- } else {
- setSelected(el, binding, vnode.context);
- }
- el._vOptions = [].map.call(el.options, getValue);
- } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
- el._vModifiers = binding.modifiers;
- if (!binding.modifiers.lazy) {
- el.addEventListener('compositionstart', onCompositionStart);
- el.addEventListener('compositionend', onCompositionEnd);
- // Safari < 10.2 & UIWebView doesn't fire compositionend when
- // switching focus before confirming composition choice
- // this also fixes the issue where some browsers e.g. iOS Chrome
- // fires "change" instead of "input" on autocomplete.
- el.addEventListener('change', onCompositionEnd);
- /* istanbul ignore if */
- if (isIE9) {
- el.vmodel = true;
- }
- }
- }
- },
- componentUpdated: function componentUpdated (el, binding, vnode) {
- if (vnode.tag === 'select') {
- setSelected(el, binding, vnode.context);
- // in case the options rendered by v-for have changed,
- // it's possible that the value is out-of-sync with the rendered options.
- // detect such cases and filter out values that no longer has a matching
- // option in the DOM.
- var prevOptions = el._vOptions;
- var curOptions = el._vOptions = [].map.call(el.options, getValue);
- if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {
- // trigger change event if
- // no matching option found for at least one value
- var needReset = el.multiple
- ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })
- : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);
- if (needReset) {
- trigger(el, 'change');
- }
- }
- }
- }
- };
- function setSelected (el, binding, vm) {
- actuallySetSelected(el, binding, vm);
- /* istanbul ignore if */
- if (isIE || isEdge) {
- setTimeout(function () {
- actuallySetSelected(el, binding, vm);
- }, 0);
- }
- }
- function actuallySetSelected (el, binding, vm) {
- var value = binding.value;
- var isMultiple = el.multiple;
- if (isMultiple && !Array.isArray(value)) {
- "development" !== 'production' && warn(
- "<select multiple v-model=\"" + (binding.expression) + "\"> " +
- "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),
- vm
- );
- return
- }
- var selected, option;
- for (var i = 0, l = el.options.length; i < l; i++) {
- option = el.options[i];
- if (isMultiple) {
- selected = looseIndexOf(value, getValue(option)) > -1;
- if (option.selected !== selected) {
- option.selected = selected;
- }
- } else {
- if (looseEqual(getValue(option), value)) {
- if (el.selectedIndex !== i) {
- el.selectedIndex = i;
- }
- return
- }
- }
- }
- if (!isMultiple) {
- el.selectedIndex = -1;
- }
- }
- function hasNoMatchingOption (value, options) {
- return options.every(function (o) { return !looseEqual(o, value); })
- }
- function getValue (option) {
- return '_value' in option
- ? option._value
- : option.value
- }
- function onCompositionStart (e) {
- e.target.composing = true;
- }
- function onCompositionEnd (e) {
- // prevent triggering an input event for no reason
- if (!e.target.composing) { return }
- e.target.composing = false;
- trigger(e.target, 'input');
- }
- function trigger (el, type) {
- var e = document.createEvent('HTMLEvents');
- e.initEvent(type, true, true);
- el.dispatchEvent(e);
- }
- /* */
- // recursively search for possible transition defined inside the component root
- function locateNode (vnode) {
- return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
- ? locateNode(vnode.componentInstance._vnode)
- : vnode
- }
- var show = {
- bind: function bind (el, ref, vnode) {
- var value = ref.value;
- vnode = locateNode(vnode);
- var transition$$1 = vnode.data && vnode.data.transition;
- var originalDisplay = el.__vOriginalDisplay =
- el.style.display === 'none' ? '' : el.style.display;
- if (value && transition$$1) {
- vnode.data.show = true;
- enter(vnode, function () {
- el.style.display = originalDisplay;
- });
- } else {
- el.style.display = value ? originalDisplay : 'none';
- }
- },
- update: function update (el, ref, vnode) {
- var value = ref.value;
- var oldValue = ref.oldValue;
- /* istanbul ignore if */
- if (!value === !oldValue) { return }
- vnode = locateNode(vnode);
- var transition$$1 = vnode.data && vnode.data.transition;
- if (transition$$1) {
- vnode.data.show = true;
- if (value) {
- enter(vnode, function () {
- el.style.display = el.__vOriginalDisplay;
- });
- } else {
- leave(vnode, function () {
- el.style.display = 'none';
- });
- }
- } else {
- el.style.display = value ? el.__vOriginalDisplay : 'none';
- }
- },
- unbind: function unbind (
- el,
- binding,
- vnode,
- oldVnode,
- isDestroy
- ) {
- if (!isDestroy) {
- el.style.display = el.__vOriginalDisplay;
- }
- }
- };
- var platformDirectives = {
- model: directive,
- show: show
- };
- /* */
- var transitionProps = {
- name: String,
- appear: Boolean,
- css: Boolean,
- mode: String,
- type: String,
- enterClass: String,
- leaveClass: String,
- enterToClass: String,
- leaveToClass: String,
- enterActiveClass: String,
- leaveActiveClass: String,
- appearClass: String,
- appearActiveClass: String,
- appearToClass: String,
- duration: [Number, String, Object]
- };
- // in case the child is also an abstract component, e.g. <keep-alive>
- // we want to recursively retrieve the real component to be rendered
- function getRealChild (vnode) {
- var compOptions = vnode && vnode.componentOptions;
- if (compOptions && compOptions.Ctor.options.abstract) {
- return getRealChild(getFirstComponentChild(compOptions.children))
- } else {
- return vnode
- }
- }
- function extractTransitionData (comp) {
- var data = {};
- var options = comp.$options;
- // props
- for (var key in options.propsData) {
- data[key] = comp[key];
- }
- // events.
- // extract listeners and pass them directly to the transition methods
- var listeners = options._parentListeners;
- for (var key$1 in listeners) {
- data[camelize(key$1)] = listeners[key$1];
- }
- return data
- }
- function placeholder (h, rawChild) {
- if (/\d-keep-alive$/.test(rawChild.tag)) {
- return h('keep-alive', {
- props: rawChild.componentOptions.propsData
- })
- }
- }
- function hasParentTransition (vnode) {
- while ((vnode = vnode.parent)) {
- if (vnode.data.transition) {
- return true
- }
- }
- }
- function isSameChild (child, oldChild) {
- return oldChild.key === child.key && oldChild.tag === child.tag
- }
- var isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };
- var isVShowDirective = function (d) { return d.name === 'show'; };
- var Transition = {
- name: 'transition',
- props: transitionProps,
- abstract: true,
- render: function render (h) {
- var this$1 = this;
- var children = this.$slots.default;
- if (!children) {
- return
- }
- // filter out text nodes (possible whitespaces)
- children = children.filter(isNotTextNode);
- /* istanbul ignore if */
- if (!children.length) {
- return
- }
- // warn multiple elements
- if ("development" !== 'production' && children.length > 1) {
- warn(
- '<transition> can only be used on a single element. Use ' +
- '<transition-group> for lists.',
- this.$parent
- );
- }
- var mode = this.mode;
- // warn invalid mode
- if ("development" !== 'production' &&
- mode && mode !== 'in-out' && mode !== 'out-in'
- ) {
- warn(
- 'invalid <transition> mode: ' + mode,
- this.$parent
- );
- }
- var rawChild = children[0];
- // if this is a component root node and the component's
- // parent container node also has transition, skip.
- if (hasParentTransition(this.$vnode)) {
- return rawChild
- }
- // apply transition data to child
- // use getRealChild() to ignore abstract components e.g. keep-alive
- var child = getRealChild(rawChild);
- /* istanbul ignore if */
- if (!child) {
- return rawChild
- }
- if (this._leaving) {
- return placeholder(h, rawChild)
- }
- // ensure a key that is unique to the vnode type and to this transition
- // component instance. This key will be used to remove pending leaving nodes
- // during entering.
- var id = "__transition-" + (this._uid) + "-";
- child.key = child.key == null
- ? child.isComment
- ? id + 'comment'
- : id + child.tag
- : isPrimitive(child.key)
- ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
- : child.key;
- var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
- var oldRawChild = this._vnode;
- var oldChild = getRealChild(oldRawChild);
- // mark v-show
- // so that the transition module can hand over the control to the directive
- if (child.data.directives && child.data.directives.some(isVShowDirective)) {
- child.data.show = true;
- }
- if (
- oldChild &&
- oldChild.data &&
- !isSameChild(child, oldChild) &&
- !isAsyncPlaceholder(oldChild) &&
- // #6687 component root is a comment node
- !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)
- ) {
- // replace old child transition data with fresh one
- // important for dynamic transitions!
- var oldData = oldChild.data.transition = extend({}, data);
- // handle transition mode
- if (mode === 'out-in') {
- // return placeholder node and queue update when leave finishes
- this._leaving = true;
- mergeVNodeHook(oldData, 'afterLeave', function () {
- this$1._leaving = false;
- this$1.$forceUpdate();
- });
- return placeholder(h, rawChild)
- } else if (mode === 'in-out') {
- if (isAsyncPlaceholder(child)) {
- return oldRawChild
- }
- var delayedLeave;
- var performLeave = function () { delayedLeave(); };
- mergeVNodeHook(data, 'afterEnter', performLeave);
- mergeVNodeHook(data, 'enterCancelled', performLeave);
- mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });
- }
- }
- return rawChild
- }
- };
- /* */
- var props = extend({
- tag: String,
- moveClass: String
- }, transitionProps);
- delete props.mode;
- var TransitionGroup = {
- props: props,
- beforeMount: function beforeMount () {
- var this$1 = this;
- var update = this._update;
- this._update = function (vnode, hydrating) {
- var restoreActiveInstance = setActiveInstance(this$1);
- // force removing pass
- this$1.__patch__(
- this$1._vnode,
- this$1.kept,
- false, // hydrating
- true // removeOnly (!important, avoids unnecessary moves)
- );
- this$1._vnode = this$1.kept;
- restoreActiveInstance();
- update.call(this$1, vnode, hydrating);
- };
- },
- render: function render (h) {
- var tag = this.tag || this.$vnode.data.tag || 'span';
- var map = Object.create(null);
- var prevChildren = this.prevChildren = this.children;
- var rawChildren = this.$slots.default || [];
- var children = this.children = [];
- var transitionData = extractTransitionData(this);
- for (var i = 0; i < rawChildren.length; i++) {
- var c = rawChildren[i];
- if (c.tag) {
- if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
- children.push(c);
- map[c.key] = c
- ;(c.data || (c.data = {})).transition = transitionData;
- } else if (true) {
- var opts = c.componentOptions;
- var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;
- warn(("<transition-group> children must be keyed: <" + name + ">"));
- }
- }
- }
- if (prevChildren) {
- var kept = [];
- var removed = [];
- for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
- var c$1 = prevChildren[i$1];
- c$1.data.transition = transitionData;
- c$1.data.pos = c$1.elm.getBoundingClientRect();
- if (map[c$1.key]) {
- kept.push(c$1);
- } else {
- removed.push(c$1);
- }
- }
- this.kept = h(tag, null, kept);
- this.removed = removed;
- }
- return h(tag, null, children)
- },
- updated: function updated () {
- var children = this.prevChildren;
- var moveClass = this.moveClass || ((this.name || 'v') + '-move');
- if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
- return
- }
- // we divide the work into three loops to avoid mixing DOM reads and writes
- // in each iteration - which helps prevent layout thrashing.
- children.forEach(callPendingCbs);
- children.forEach(recordPosition);
- children.forEach(applyTranslation);
- // force reflow to put everything in position
- // assign to this to avoid being removed in tree-shaking
- // $flow-disable-line
- this._reflow = document.body.offsetHeight;
- children.forEach(function (c) {
- if (c.data.moved) {
- var el = c.elm;
- var s = el.style;
- addTransitionClass(el, moveClass);
- s.transform = s.WebkitTransform = s.transitionDuration = '';
- el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {
- if (e && e.target !== el) {
- return
- }
- if (!e || /transform$/.test(e.propertyName)) {
- el.removeEventListener(transitionEndEvent, cb);
- el._moveCb = null;
- removeTransitionClass(el, moveClass);
- }
- });
- }
- });
- },
- methods: {
- hasMove: function hasMove (el, moveClass) {
- /* istanbul ignore if */
- if (!hasTransition) {
- return false
- }
- /* istanbul ignore if */
- if (this._hasMove) {
- return this._hasMove
- }
- // Detect whether an element with the move class applied has
- // CSS transitions. Since the element may be inside an entering
- // transition at this very moment, we make a clone of it and remove
- // all other transition classes applied to ensure only the move class
- // is applied.
- var clone = el.cloneNode();
- if (el._transitionClasses) {
- el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });
- }
- addClass(clone, moveClass);
- clone.style.display = 'none';
- this.$el.appendChild(clone);
- var info = getTransitionInfo(clone);
- this.$el.removeChild(clone);
- return (this._hasMove = info.hasTransform)
- }
- }
- };
- function callPendingCbs (c) {
- /* istanbul ignore if */
- if (c.elm._moveCb) {
- c.elm._moveCb();
- }
- /* istanbul ignore if */
- if (c.elm._enterCb) {
- c.elm._enterCb();
- }
- }
- function recordPosition (c) {
- c.data.newPos = c.elm.getBoundingClientRect();
- }
- function applyTranslation (c) {
- var oldPos = c.data.pos;
- var newPos = c.data.newPos;
- var dx = oldPos.left - newPos.left;
- var dy = oldPos.top - newPos.top;
- if (dx || dy) {
- c.data.moved = true;
- var s = c.elm.style;
- s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
- s.transitionDuration = '0s';
- }
- }
- var platformComponents = {
- Transition: Transition,
- TransitionGroup: TransitionGroup
- };
- /* */
- // install platform specific utils
- Vue.config.mustUseProp = mustUseProp;
- Vue.config.isReservedTag = isReservedTag;
- Vue.config.isReservedAttr = isReservedAttr;
- Vue.config.getTagNamespace = getTagNamespace;
- Vue.config.isUnknownElement = isUnknownElement;
- // install platform runtime directives & components
- extend(Vue.options.directives, platformDirectives);
- extend(Vue.options.components, platformComponents);
- // install platform patch function
- Vue.prototype.__patch__ = inBrowser ? patch : noop;
- // public mount method
- Vue.prototype.$mount = function (
- el,
- hydrating
- ) {
- el = el && inBrowser ? query(el) : undefined;
- return mountComponent(this, el, hydrating)
- };
- // devtools global hook
- /* istanbul ignore next */
- if (inBrowser) {
- setTimeout(function () {
- if (config.devtools) {
- if (devtools) {
- devtools.emit('init', Vue);
- } else if (
- "development" !== 'production' &&
- "development" !== 'test' &&
- isChrome
- ) {
- console[console.info ? 'info' : 'log'](
- 'Download the Vue Devtools extension for a better development experience:\n' +
- 'https://github.com/vuejs/vue-devtools'
- );
- }
- }
- if ("development" !== 'production' &&
- "development" !== 'test' &&
- config.productionTip !== false &&
- typeof console !== 'undefined'
- ) {
- console[console.info ? 'info' : 'log'](
- "You are running Vue in development mode.\n" +
- "Make sure to turn on production mode when deploying for production.\n" +
- "See more tips at https://vuejs.org/guide/deployment.html"
- );
- }
- }, 0);
- }
- /* */
- var defaultTagRE = /\{\{((?:.|\r?\n)+?)\}\}/g;
- var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
- var buildRegex = cached(function (delimiters) {
- var open = delimiters[0].replace(regexEscapeRE, '\\$&');
- var close = delimiters[1].replace(regexEscapeRE, '\\$&');
- return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
- });
- function parseText (
- text,
- delimiters
- ) {
- var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
- if (!tagRE.test(text)) {
- return
- }
- var tokens = [];
- var rawTokens = [];
- var lastIndex = tagRE.lastIndex = 0;
- var match, index, tokenValue;
- while ((match = tagRE.exec(text))) {
- index = match.index;
- // push text token
- if (index > lastIndex) {
- rawTokens.push(tokenValue = text.slice(lastIndex, index));
- tokens.push(JSON.stringify(tokenValue));
- }
- // tag token
- var exp = parseFilters(match[1].trim());
- tokens.push(("_s(" + exp + ")"));
- rawTokens.push({ '@binding': exp });
- lastIndex = index + match[0].length;
- }
- if (lastIndex < text.length) {
- rawTokens.push(tokenValue = text.slice(lastIndex));
- tokens.push(JSON.stringify(tokenValue));
- }
- return {
- expression: tokens.join('+'),
- tokens: rawTokens
- }
- }
- /* */
- function transformNode (el, options) {
- var warn = options.warn || baseWarn;
- var staticClass = getAndRemoveAttr(el, 'class');
- if ("development" !== 'production' && staticClass) {
- var res = parseText(staticClass, options.delimiters);
- if (res) {
- warn(
- "class=\"" + staticClass + "\": " +
- 'Interpolation inside attributes has been removed. ' +
- 'Use v-bind or the colon shorthand instead. For example, ' +
- 'instead of <div class="{{ val }}">, use <div :class="val">.'
- );
- }
- }
- if (staticClass) {
- el.staticClass = JSON.stringify(staticClass);
- }
- var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
- if (classBinding) {
- el.classBinding = classBinding;
- }
- }
- function genData (el) {
- var data = '';
- if (el.staticClass) {
- data += "staticClass:" + (el.staticClass) + ",";
- }
- if (el.classBinding) {
- data += "class:" + (el.classBinding) + ",";
- }
- return data
- }
- var klass$1 = {
- staticKeys: ['staticClass'],
- transformNode: transformNode,
- genData: genData
- };
- /* */
- function transformNode$1 (el, options) {
- var warn = options.warn || baseWarn;
- var staticStyle = getAndRemoveAttr(el, 'style');
- if (staticStyle) {
- /* istanbul ignore if */
- if (true) {
- var res = parseText(staticStyle, options.delimiters);
- if (res) {
- warn(
- "style=\"" + staticStyle + "\": " +
- 'Interpolation inside attributes has been removed. ' +
- 'Use v-bind or the colon shorthand instead. For example, ' +
- 'instead of <div style="{{ val }}">, use <div :style="val">.'
- );
- }
- }
- el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
- }
- var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
- if (styleBinding) {
- el.styleBinding = styleBinding;
- }
- }
- function genData$1 (el) {
- var data = '';
- if (el.staticStyle) {
- data += "staticStyle:" + (el.staticStyle) + ",";
- }
- if (el.styleBinding) {
- data += "style:(" + (el.styleBinding) + "),";
- }
- return data
- }
- var style$1 = {
- staticKeys: ['staticStyle'],
- transformNode: transformNode$1,
- genData: genData$1
- };
- /* */
- var decoder;
- var he = {
- decode: function decode (html) {
- decoder = decoder || document.createElement('div');
- decoder.innerHTML = html;
- return decoder.textContent
- }
- };
- /* */
- var isUnaryTag = makeMap(
- 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
- 'link,meta,param,source,track,wbr'
- );
- // Elements that you can, intentionally, leave open
- // (and which close themselves)
- var canBeLeftOpenTag = makeMap(
- 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'
- );
- // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
- // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
- var isNonPhrasingTag = makeMap(
- 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
- 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
- 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
- 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
- 'title,tr,track'
- );
- /**
- * Not type-checking this file because it's mostly vendor code.
- */
- // Regular Expressions for parsing tags and attributes
- var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
- // could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName
- // but for Vue templates we can enforce a simple charset
- var ncname = '[a-zA-Z_][\\w\\-\\.]*';
- var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";
- var startTagOpen = new RegExp(("^<" + qnameCapture));
- var startTagClose = /^\s*(\/?)>/;
- var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));
- var doctype = /^<!DOCTYPE [^>]+>/i;
- // #7298: escape - to avoid being pased as HTML comment when inlined in page
- var comment = /^<!\--/;
- var conditionalComment = /^<!\[/;
- // Special Elements (can contain anything)
- var isPlainTextElement = makeMap('script,style,textarea', true);
- var reCache = {};
- var decodingMap = {
- '<': '<',
- '>': '>',
- '"': '"',
- '&': '&',
- ' ': '\n',
- '	': '\t'
- };
- var encodedAttr = /&(?:lt|gt|quot|amp);/g;
- var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;
- // #5992
- var isIgnoreNewlineTag = makeMap('pre,textarea', true);
- var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };
- function decodeAttr (value, shouldDecodeNewlines) {
- var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
- return value.replace(re, function (match) { return decodingMap[match]; })
- }
- function parseHTML (html, options) {
- var stack = [];
- var expectHTML = options.expectHTML;
- var isUnaryTag$$1 = options.isUnaryTag || no;
- var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;
- var index = 0;
- var last, lastTag;
- while (html) {
- last = html;
- // Make sure we're not in a plaintext content element like script/style
- if (!lastTag || !isPlainTextElement(lastTag)) {
- var textEnd = html.indexOf('<');
- if (textEnd === 0) {
- // Comment:
- if (comment.test(html)) {
- var commentEnd = html.indexOf('-->');
- if (commentEnd >= 0) {
- if (options.shouldKeepComment) {
- options.comment(html.substring(4, commentEnd));
- }
- advance(commentEnd + 3);
- continue
- }
- }
- // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
- if (conditionalComment.test(html)) {
- var conditionalEnd = html.indexOf(']>');
- if (conditionalEnd >= 0) {
- advance(conditionalEnd + 2);
- continue
- }
- }
- // Doctype:
- var doctypeMatch = html.match(doctype);
- if (doctypeMatch) {
- advance(doctypeMatch[0].length);
- continue
- }
- // End tag:
- var endTagMatch = html.match(endTag);
- if (endTagMatch) {
- var curIndex = index;
- advance(endTagMatch[0].length);
- parseEndTag(endTagMatch[1], curIndex, index);
- continue
- }
- // Start tag:
- var startTagMatch = parseStartTag();
- if (startTagMatch) {
- handleStartTag(startTagMatch);
- if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {
- advance(1);
- }
- continue
- }
- }
- var text = (void 0), rest = (void 0), next = (void 0);
- if (textEnd >= 0) {
- rest = html.slice(textEnd);
- while (
- !endTag.test(rest) &&
- !startTagOpen.test(rest) &&
- !comment.test(rest) &&
- !conditionalComment.test(rest)
- ) {
- // < in plain text, be forgiving and treat it as text
- next = rest.indexOf('<', 1);
- if (next < 0) { break }
- textEnd += next;
- rest = html.slice(textEnd);
- }
- text = html.substring(0, textEnd);
- advance(textEnd);
- }
- if (textEnd < 0) {
- text = html;
- html = '';
- }
- if (options.chars && text) {
- options.chars(text);
- }
- } else {
- var endTagLength = 0;
- var stackedTag = lastTag.toLowerCase();
- var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
- var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {
- endTagLength = endTag.length;
- if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
- text = text
- .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298
- .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
- }
- if (shouldIgnoreFirstNewline(stackedTag, text)) {
- text = text.slice(1);
- }
- if (options.chars) {
- options.chars(text);
- }
- return ''
- });
- index += html.length - rest$1.length;
- html = rest$1;
- parseEndTag(stackedTag, index - endTagLength, index);
- }
- if (html === last) {
- options.chars && options.chars(html);
- if ("development" !== 'production' && !stack.length && options.warn) {
- options.warn(("Mal-formatted tag at end of template: \"" + html + "\""));
- }
- break
- }
- }
- // Clean up any remaining tags
- parseEndTag();
- function advance (n) {
- index += n;
- html = html.substring(n);
- }
- function parseStartTag () {
- var start = html.match(startTagOpen);
- if (start) {
- var match = {
- tagName: start[1],
- attrs: [],
- start: index
- };
- advance(start[0].length);
- var end, attr;
- while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {
- advance(attr[0].length);
- match.attrs.push(attr);
- }
- if (end) {
- match.unarySlash = end[1];
- advance(end[0].length);
- match.end = index;
- return match
- }
- }
- }
- function handleStartTag (match) {
- var tagName = match.tagName;
- var unarySlash = match.unarySlash;
- if (expectHTML) {
- if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
- parseEndTag(lastTag);
- }
- if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {
- parseEndTag(tagName);
- }
- }
- var unary = isUnaryTag$$1(tagName) || !!unarySlash;
- var l = match.attrs.length;
- var attrs = new Array(l);
- for (var i = 0; i < l; i++) {
- var args = match.attrs[i];
- var value = args[3] || args[4] || args[5] || '';
- var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'
- ? options.shouldDecodeNewlinesForHref
- : options.shouldDecodeNewlines;
- attrs[i] = {
- name: args[1],
- value: decodeAttr(value, shouldDecodeNewlines)
- };
- }
- if (!unary) {
- stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });
- lastTag = tagName;
- }
- if (options.start) {
- options.start(tagName, attrs, unary, match.start, match.end);
- }
- }
- function parseEndTag (tagName, start, end) {
- var pos, lowerCasedTagName;
- if (start == null) { start = index; }
- if (end == null) { end = index; }
- // Find the closest opened tag of the same type
- if (tagName) {
- lowerCasedTagName = tagName.toLowerCase();
- for (pos = stack.length - 1; pos >= 0; pos--) {
- if (stack[pos].lowerCasedTag === lowerCasedTagName) {
- break
- }
- }
- } else {
- // If no tag name is provided, clean shop
- pos = 0;
- }
- if (pos >= 0) {
- // Close all the open elements, up the stack
- for (var i = stack.length - 1; i >= pos; i--) {
- if ("development" !== 'production' &&
- (i > pos || !tagName) &&
- options.warn
- ) {
- options.warn(
- ("tag <" + (stack[i].tag) + "> has no matching end tag.")
- );
- }
- if (options.end) {
- options.end(stack[i].tag, start, end);
- }
- }
- // Remove the open elements from the stack
- stack.length = pos;
- lastTag = pos && stack[pos - 1].tag;
- } else if (lowerCasedTagName === 'br') {
- if (options.start) {
- options.start(tagName, [], true, start, end);
- }
- } else if (lowerCasedTagName === 'p') {
- if (options.start) {
- options.start(tagName, [], false, start, end);
- }
- if (options.end) {
- options.end(tagName, start, end);
- }
- }
- }
- }
- /* */
- var onRE = /^@|^v-on:/;
- var dirRE = /^v-|^@|^:/;
- var forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
- var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
- var stripParensRE = /^\(|\)$/g;
- var argRE = /:(.*)$/;
- var bindRE = /^:|^v-bind:/;
- var modifierRE = /\.[^.]+/g;
- var decodeHTMLCached = cached(he.decode);
- // configurable state
- var warn$2;
- var delimiters;
- var transforms;
- var preTransforms;
- var postTransforms;
- var platformIsPreTag;
- var platformMustUseProp;
- var platformGetTagNamespace;
- function createASTElement (
- tag,
- attrs,
- parent
- ) {
- return {
- type: 1,
- tag: tag,
- attrsList: attrs,
- attrsMap: makeAttrsMap(attrs),
- parent: parent,
- children: []
- }
- }
- /**
- * Convert HTML string to AST.
- */
- function parse (
- template,
- options
- ) {
- warn$2 = options.warn || baseWarn;
- platformIsPreTag = options.isPreTag || no;
- platformMustUseProp = options.mustUseProp || no;
- platformGetTagNamespace = options.getTagNamespace || no;
- transforms = pluckModuleFunction(options.modules, 'transformNode');
- preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
- postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
- delimiters = options.delimiters;
- var stack = [];
- var preserveWhitespace = options.preserveWhitespace !== false;
- var root;
- var currentParent;
- var inVPre = false;
- var inPre = false;
- var warned = false;
- function warnOnce (msg) {
- if (!warned) {
- warned = true;
- warn$2(msg);
- }
- }
- function closeElement (element) {
- // check pre state
- if (element.pre) {
- inVPre = false;
- }
- if (platformIsPreTag(element.tag)) {
- inPre = false;
- }
- // apply post-transforms
- for (var i = 0; i < postTransforms.length; i++) {
- postTransforms[i](element, options);
- }
- }
- parseHTML(template, {
- warn: warn$2,
- expectHTML: options.expectHTML,
- isUnaryTag: options.isUnaryTag,
- canBeLeftOpenTag: options.canBeLeftOpenTag,
- shouldDecodeNewlines: options.shouldDecodeNewlines,
- shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
- shouldKeepComment: options.comments,
- start: function start (tag, attrs, unary) {
- // check namespace.
- // inherit parent ns if there is one
- var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);
- // handle IE svg bug
- /* istanbul ignore if */
- if (isIE && ns === 'svg') {
- attrs = guardIESVGBug(attrs);
- }
- var element = createASTElement(tag, attrs, currentParent);
- if (ns) {
- element.ns = ns;
- }
- if (isForbiddenTag(element) && !isServerRendering()) {
- element.forbidden = true;
- "development" !== 'production' && warn$2(
- 'Templates should only be responsible for mapping the state to the ' +
- 'UI. Avoid placing tags with side-effects in your templates, such as ' +
- "<" + tag + ">" + ', as they will not be parsed.'
- );
- }
- // apply pre-transforms
- for (var i = 0; i < preTransforms.length; i++) {
- element = preTransforms[i](element, options) || element;
- }
- if (!inVPre) {
- processPre(element);
- if (element.pre) {
- inVPre = true;
- }
- }
- if (platformIsPreTag(element.tag)) {
- inPre = true;
- }
- if (inVPre) {
- processRawAttrs(element);
- } else if (!element.processed) {
- // structural directives
- processFor(element);
- processIf(element);
- processOnce(element);
- // element-scope stuff
- processElement(element, options);
- }
- function checkRootConstraints (el) {
- if (true) {
- if (el.tag === 'slot' || el.tag === 'template') {
- warnOnce(
- "Cannot use <" + (el.tag) + "> as component root element because it may " +
- 'contain multiple nodes.'
- );
- }
- if (el.attrsMap.hasOwnProperty('v-for')) {
- warnOnce(
- 'Cannot use v-for on stateful component root element because ' +
- 'it renders multiple elements.'
- );
- }
- }
- }
- // tree management
- if (!root) {
- root = element;
- checkRootConstraints(root);
- } else if (!stack.length) {
- // allow root elements with v-if, v-else-if and v-else
- if (root.if && (element.elseif || element.else)) {
- checkRootConstraints(element);
- addIfCondition(root, {
- exp: element.elseif,
- block: element
- });
- } else if (true) {
- warnOnce(
- "Component template should contain exactly one root element. " +
- "If you are using v-if on multiple elements, " +
- "use v-else-if to chain them instead."
- );
- }
- }
- if (currentParent && !element.forbidden) {
- if (element.elseif || element.else) {
- processIfConditions(element, currentParent);
- } else if (element.slotScope) { // scoped slot
- currentParent.plain = false;
- var name = element.slotTarget || '"default"'
- ;(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
- } else {
- currentParent.children.push(element);
- element.parent = currentParent;
- }
- }
- if (!unary) {
- currentParent = element;
- stack.push(element);
- } else {
- closeElement(element);
- }
- },
- end: function end () {
- // remove trailing whitespace
- var element = stack[stack.length - 1];
- var lastNode = element.children[element.children.length - 1];
- if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {
- element.children.pop();
- }
- // pop stack
- stack.length -= 1;
- currentParent = stack[stack.length - 1];
- closeElement(element);
- },
- chars: function chars (text) {
- if (!currentParent) {
- if (true) {
- if (text === template) {
- warnOnce(
- 'Component template requires a root element, rather than just text.'
- );
- } else if ((text = text.trim())) {
- warnOnce(
- ("text \"" + text + "\" outside root element will be ignored.")
- );
- }
- }
- return
- }
- // IE textarea placeholder bug
- /* istanbul ignore if */
- if (isIE &&
- currentParent.tag === 'textarea' &&
- currentParent.attrsMap.placeholder === text
- ) {
- return
- }
- var children = currentParent.children;
- text = inPre || text.trim()
- ? isTextTag(currentParent) ? text : decodeHTMLCached(text)
- // only preserve whitespace if its not right after a starting tag
- : preserveWhitespace && children.length ? ' ' : '';
- if (text) {
- var res;
- if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
- children.push({
- type: 2,
- expression: res.expression,
- tokens: res.tokens,
- text: text
- });
- } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {
- children.push({
- type: 3,
- text: text
- });
- }
- }
- },
- comment: function comment (text) {
- currentParent.children.push({
- type: 3,
- text: text,
- isComment: true
- });
- }
- });
- return root
- }
- function processPre (el) {
- if (getAndRemoveAttr(el, 'v-pre') != null) {
- el.pre = true;
- }
- }
- function processRawAttrs (el) {
- var l = el.attrsList.length;
- if (l) {
- var attrs = el.attrs = new Array(l);
- for (var i = 0; i < l; i++) {
- attrs[i] = {
- name: el.attrsList[i].name,
- value: JSON.stringify(el.attrsList[i].value)
- };
- }
- } else if (!el.pre) {
- // non root node in pre blocks with no attributes
- el.plain = true;
- }
- }
- function processElement (element, options) {
- processKey(element);
- // determine whether this is a plain element after
- // removing structural attributes
- element.plain = !element.key && !element.attrsList.length;
- processRef(element);
- processSlot(element);
- processComponent(element);
- for (var i = 0; i < transforms.length; i++) {
- element = transforms[i](element, options) || element;
- }
- processAttrs(element);
- }
- function processKey (el) {
- var exp = getBindingAttr(el, 'key');
- if (exp) {
- if (true) {
- if (el.tag === 'template') {
- warn$2("<template> cannot be keyed. Place the key on real elements instead.");
- }
- if (el.for) {
- var iterator = el.iterator2 || el.iterator1;
- var parent = el.parent;
- if (iterator && iterator === exp && parent && parent.tag === 'transition-group') {
- warn$2(
- "Do not use v-for index as key on <transition-group> children, " +
- "this is the same as not using keys."
- );
- }
- }
- }
- el.key = exp;
- }
- }
- function processRef (el) {
- var ref = getBindingAttr(el, 'ref');
- if (ref) {
- el.ref = ref;
- el.refInFor = checkInFor(el);
- }
- }
- function processFor (el) {
- var exp;
- if ((exp = getAndRemoveAttr(el, 'v-for'))) {
- var res = parseFor(exp);
- if (res) {
- extend(el, res);
- } else if (true) {
- warn$2(
- ("Invalid v-for expression: " + exp)
- );
- }
- }
- }
- function parseFor (exp) {
- var inMatch = exp.match(forAliasRE);
- if (!inMatch) { return }
- var res = {};
- res.for = inMatch[2].trim();
- var alias = inMatch[1].trim().replace(stripParensRE, '');
- var iteratorMatch = alias.match(forIteratorRE);
- if (iteratorMatch) {
- res.alias = alias.replace(forIteratorRE, '').trim();
- res.iterator1 = iteratorMatch[1].trim();
- if (iteratorMatch[2]) {
- res.iterator2 = iteratorMatch[2].trim();
- }
- } else {
- res.alias = alias;
- }
- return res
- }
- function processIf (el) {
- var exp = getAndRemoveAttr(el, 'v-if');
- if (exp) {
- el.if = exp;
- addIfCondition(el, {
- exp: exp,
- block: el
- });
- } else {
- if (getAndRemoveAttr(el, 'v-else') != null) {
- el.else = true;
- }
- var elseif = getAndRemoveAttr(el, 'v-else-if');
- if (elseif) {
- el.elseif = elseif;
- }
- }
- }
- function processIfConditions (el, parent) {
- var prev = findPrevElement(parent.children);
- if (prev && prev.if) {
- addIfCondition(prev, {
- exp: el.elseif,
- block: el
- });
- } else if (true) {
- warn$2(
- "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " +
- "used on element <" + (el.tag) + "> without corresponding v-if."
- );
- }
- }
- function findPrevElement (children) {
- var i = children.length;
- while (i--) {
- if (children[i].type === 1) {
- return children[i]
- } else {
- if ("development" !== 'production' && children[i].text !== ' ') {
- warn$2(
- "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " +
- "will be ignored."
- );
- }
- children.pop();
- }
- }
- }
- function addIfCondition (el, condition) {
- if (!el.ifConditions) {
- el.ifConditions = [];
- }
- el.ifConditions.push(condition);
- }
- function processOnce (el) {
- var once$$1 = getAndRemoveAttr(el, 'v-once');
- if (once$$1 != null) {
- el.once = true;
- }
- }
- function processSlot (el) {
- if (el.tag === 'slot') {
- el.slotName = getBindingAttr(el, 'name');
- if ("development" !== 'production' && el.key) {
- warn$2(
- "`key` does not work on <slot> because slots are abstract outlets " +
- "and can possibly expand into multiple elements. " +
- "Use the key on a wrapping element instead."
- );
- }
- } else {
- var slotScope;
- if (el.tag === 'template') {
- slotScope = getAndRemoveAttr(el, 'scope');
- /* istanbul ignore if */
- if ("development" !== 'production' && slotScope) {
- warn$2(
- "the \"scope\" attribute for scoped slots have been deprecated and " +
- "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " +
- "can also be used on plain elements in addition to <template> to " +
- "denote scoped slots.",
- true
- );
- }
- el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
- } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {
- /* istanbul ignore if */
- if ("development" !== 'production' && el.attrsMap['v-for']) {
- warn$2(
- "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " +
- "(v-for takes higher priority). Use a wrapper <template> for the " +
- "scoped slot to make it clearer.",
- true
- );
- }
- el.slotScope = slotScope;
- }
- var slotTarget = getBindingAttr(el, 'slot');
- if (slotTarget) {
- el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
- // preserve slot as an attribute for native shadow DOM compat
- // only for non-scoped slots.
- if (el.tag !== 'template' && !el.slotScope) {
- addAttr(el, 'slot', slotTarget);
- }
- }
- }
- }
- function processComponent (el) {
- var binding;
- if ((binding = getBindingAttr(el, 'is'))) {
- el.component = binding;
- }
- if (getAndRemoveAttr(el, 'inline-template') != null) {
- el.inlineTemplate = true;
- }
- }
- function processAttrs (el) {
- var list = el.attrsList;
- var i, l, name, rawName, value, modifiers, isProp;
- for (i = 0, l = list.length; i < l; i++) {
- name = rawName = list[i].name;
- value = list[i].value;
- if (dirRE.test(name)) {
- // mark element as dynamic
- el.hasBindings = true;
- // modifiers
- modifiers = parseModifiers(name);
- if (modifiers) {
- name = name.replace(modifierRE, '');
- }
- if (bindRE.test(name)) { // v-bind
- name = name.replace(bindRE, '');
- value = parseFilters(value);
- isProp = false;
- if (
- "development" !== 'production' &&
- value.trim().length === 0
- ) {
- warn$2(
- ("The value for a v-bind expression cannot be empty. Found in \"v-bind:" + name + "\"")
- );
- }
- if (modifiers) {
- if (modifiers.prop) {
- isProp = true;
- name = camelize(name);
- if (name === 'innerHtml') { name = 'innerHTML'; }
- }
- if (modifiers.camel) {
- name = camelize(name);
- }
- if (modifiers.sync) {
- addHandler(
- el,
- ("update:" + (camelize(name))),
- genAssignmentCode(value, "$event")
- );
- }
- }
- if (isProp || (
- !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)
- )) {
- addProp(el, name, value);
- } else {
- addAttr(el, name, value);
- }
- } else if (onRE.test(name)) { // v-on
- name = name.replace(onRE, '');
- addHandler(el, name, value, modifiers, false, warn$2);
- } else { // normal directives
- name = name.replace(dirRE, '');
- // parse arg
- var argMatch = name.match(argRE);
- var arg = argMatch && argMatch[1];
- if (arg) {
- name = name.slice(0, -(arg.length + 1));
- }
- addDirective(el, name, rawName, value, arg, modifiers);
- if ("development" !== 'production' && name === 'model') {
- checkForAliasModel(el, value);
- }
- }
- } else {
- // literal attribute
- if (true) {
- var res = parseText(value, delimiters);
- if (res) {
- warn$2(
- name + "=\"" + value + "\": " +
- 'Interpolation inside attributes has been removed. ' +
- 'Use v-bind or the colon shorthand instead. For example, ' +
- 'instead of <div id="{{ val }}">, use <div :id="val">.'
- );
- }
- }
- addAttr(el, name, JSON.stringify(value));
- // #6887 firefox doesn't update muted state if set via attribute
- // even immediately after element creation
- if (!el.component &&
- name === 'muted' &&
- platformMustUseProp(el.tag, el.attrsMap.type, name)) {
- addProp(el, name, 'true');
- }
- }
- }
- }
- function checkInFor (el) {
- var parent = el;
- while (parent) {
- if (parent.for !== undefined) {
- return true
- }
- parent = parent.parent;
- }
- return false
- }
- function parseModifiers (name) {
- var match = name.match(modifierRE);
- if (match) {
- var ret = {};
- match.forEach(function (m) { ret[m.slice(1)] = true; });
- return ret
- }
- }
- function makeAttrsMap (attrs) {
- var map = {};
- for (var i = 0, l = attrs.length; i < l; i++) {
- if (
- "development" !== 'production' &&
- map[attrs[i].name] && !isIE && !isEdge
- ) {
- warn$2('duplicate attribute: ' + attrs[i].name);
- }
- map[attrs[i].name] = attrs[i].value;
- }
- return map
- }
- // for script (e.g. type="x/template") or style, do not decode content
- function isTextTag (el) {
- return el.tag === 'script' || el.tag === 'style'
- }
- function isForbiddenTag (el) {
- return (
- el.tag === 'style' ||
- (el.tag === 'script' && (
- !el.attrsMap.type ||
- el.attrsMap.type === 'text/javascript'
- ))
- )
- }
- var ieNSBug = /^xmlns:NS\d+/;
- var ieNSPrefix = /^NS\d+:/;
- /* istanbul ignore next */
- function guardIESVGBug (attrs) {
- var res = [];
- for (var i = 0; i < attrs.length; i++) {
- var attr = attrs[i];
- if (!ieNSBug.test(attr.name)) {
- attr.name = attr.name.replace(ieNSPrefix, '');
- res.push(attr);
- }
- }
- return res
- }
- function checkForAliasModel (el, value) {
- var _el = el;
- while (_el) {
- if (_el.for && _el.alias === value) {
- warn$2(
- "<" + (el.tag) + " v-model=\"" + value + "\">: " +
- "You are binding v-model directly to a v-for iteration alias. " +
- "This will not be able to modify the v-for source array because " +
- "writing to the alias is like modifying a function local variable. " +
- "Consider using an array of objects and use v-model on an object property instead."
- );
- }
- _el = _el.parent;
- }
- }
- /* */
- function preTransformNode (el, options) {
- if (el.tag === 'input') {
- var map = el.attrsMap;
- if (!map['v-model']) {
- return
- }
- var typeBinding;
- if (map[':type'] || map['v-bind:type']) {
- typeBinding = getBindingAttr(el, 'type');
- }
- if (!map.type && !typeBinding && map['v-bind']) {
- typeBinding = "(" + (map['v-bind']) + ").type";
- }
- if (typeBinding) {
- var ifCondition = getAndRemoveAttr(el, 'v-if', true);
- var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : "";
- var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
- var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);
- // 1. checkbox
- var branch0 = cloneASTElement(el);
- // process for on the main node
- processFor(branch0);
- addRawAttr(branch0, 'type', 'checkbox');
- processElement(branch0, options);
- branch0.processed = true; // prevent it from double-processed
- branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;
- addIfCondition(branch0, {
- exp: branch0.if,
- block: branch0
- });
- // 2. add radio else-if condition
- var branch1 = cloneASTElement(el);
- getAndRemoveAttr(branch1, 'v-for', true);
- addRawAttr(branch1, 'type', 'radio');
- processElement(branch1, options);
- addIfCondition(branch0, {
- exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,
- block: branch1
- });
- // 3. other
- var branch2 = cloneASTElement(el);
- getAndRemoveAttr(branch2, 'v-for', true);
- addRawAttr(branch2, ':type', typeBinding);
- processElement(branch2, options);
- addIfCondition(branch0, {
- exp: ifCondition,
- block: branch2
- });
- if (hasElse) {
- branch0.else = true;
- } else if (elseIfCondition) {
- branch0.elseif = elseIfCondition;
- }
- return branch0
- }
- }
- }
- function cloneASTElement (el) {
- return createASTElement(el.tag, el.attrsList.slice(), el.parent)
- }
- var model$1 = {
- preTransformNode: preTransformNode
- };
- var modules$1 = [
- klass$1,
- style$1,
- model$1
- ];
- /* */
- function text (el, dir) {
- if (dir.value) {
- addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));
- }
- }
- /* */
- function html (el, dir) {
- if (dir.value) {
- addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"));
- }
- }
- var directives$1 = {
- model: model,
- text: text,
- html: html
- };
- /* */
- var baseOptions = {
- expectHTML: true,
- modules: modules$1,
- directives: directives$1,
- isPreTag: isPreTag,
- isUnaryTag: isUnaryTag,
- mustUseProp: mustUseProp,
- canBeLeftOpenTag: canBeLeftOpenTag,
- isReservedTag: isReservedTag,
- getTagNamespace: getTagNamespace,
- staticKeys: genStaticKeys(modules$1)
- };
- /* */
- var isStaticKey;
- var isPlatformReservedTag;
- var genStaticKeysCached = cached(genStaticKeys$1);
- /**
- * Goal of the optimizer: walk the generated template AST tree
- * and detect sub-trees that are purely static, i.e. parts of
- * the DOM that never needs to change.
- *
- * Once we detect these sub-trees, we can:
- *
- * 1. Hoist them into constants, so that we no longer need to
- * create fresh nodes for them on each re-render;
- * 2. Completely skip them in the patching process.
- */
- function optimize (root, options) {
- if (!root) { return }
- isStaticKey = genStaticKeysCached(options.staticKeys || '');
- isPlatformReservedTag = options.isReservedTag || no;
- // first pass: mark all non-static nodes.
- markStatic$1(root);
- // second pass: mark static roots.
- markStaticRoots(root, false);
- }
- function genStaticKeys$1 (keys) {
- return makeMap(
- 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +
- (keys ? ',' + keys : '')
- )
- }
- function markStatic$1 (node) {
- node.static = isStatic(node);
- if (node.type === 1) {
- // do not make component slot content static. this avoids
- // 1. components not able to mutate slot nodes
- // 2. static slot content fails for hot-reloading
- if (
- !isPlatformReservedTag(node.tag) &&
- node.tag !== 'slot' &&
- node.attrsMap['inline-template'] == null
- ) {
- return
- }
- for (var i = 0, l = node.children.length; i < l; i++) {
- var child = node.children[i];
- markStatic$1(child);
- if (!child.static) {
- node.static = false;
- }
- }
- if (node.ifConditions) {
- for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
- var block = node.ifConditions[i$1].block;
- markStatic$1(block);
- if (!block.static) {
- node.static = false;
- }
- }
- }
- }
- }
- function markStaticRoots (node, isInFor) {
- if (node.type === 1) {
- if (node.static || node.once) {
- node.staticInFor = isInFor;
- }
- // For a node to qualify as a static root, it should have children that
- // are not just static text. Otherwise the cost of hoisting out will
- // outweigh the benefits and it's better off to just always render it fresh.
- if (node.static && node.children.length && !(
- node.children.length === 1 &&
- node.children[0].type === 3
- )) {
- node.staticRoot = true;
- return
- } else {
- node.staticRoot = false;
- }
- if (node.children) {
- for (var i = 0, l = node.children.length; i < l; i++) {
- markStaticRoots(node.children[i], isInFor || !!node.for);
- }
- }
- if (node.ifConditions) {
- for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
- markStaticRoots(node.ifConditions[i$1].block, isInFor);
- }
- }
- }
- }
- function isStatic (node) {
- if (node.type === 2) { // expression
- return false
- }
- if (node.type === 3) { // text
- return true
- }
- return !!(node.pre || (
- !node.hasBindings && // no dynamic bindings
- !node.if && !node.for && // not v-if or v-for or v-else
- !isBuiltInTag(node.tag) && // not a built-in
- isPlatformReservedTag(node.tag) && // not a component
- !isDirectChildOfTemplateFor(node) &&
- Object.keys(node).every(isStaticKey)
- ))
- }
- function isDirectChildOfTemplateFor (node) {
- while (node.parent) {
- node = node.parent;
- if (node.tag !== 'template') {
- return false
- }
- if (node.for) {
- return true
- }
- }
- return false
- }
- /* */
- var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;
- var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
- // KeyboardEvent.keyCode aliases
- var keyCodes = {
- esc: 27,
- tab: 9,
- enter: 13,
- space: 32,
- up: 38,
- left: 37,
- right: 39,
- down: 40,
- 'delete': [8, 46]
- };
- // KeyboardEvent.key aliases
- var keyNames = {
- // #7880: IE11 and Edge use `Esc` for Escape key name.
- esc: ['Esc', 'Escape'],
- tab: 'Tab',
- enter: 'Enter',
- // #9112: IE11 uses `Spacebar` for Space key name.
- space: [' ', 'Spacebar'],
- // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.
- up: ['Up', 'ArrowUp'],
- left: ['Left', 'ArrowLeft'],
- right: ['Right', 'ArrowRight'],
- down: ['Down', 'ArrowDown'],
- // #9112: IE11 uses `Del` for Delete key name.
- 'delete': ['Backspace', 'Delete', 'Del']
- };
- // #4868: modifiers that prevent the execution of the listener
- // need to explicitly return null so that we can determine whether to remove
- // the listener for .once
- var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };
- var modifierCode = {
- stop: '$event.stopPropagation();',
- prevent: '$event.preventDefault();',
- self: genGuard("$event.target !== $event.currentTarget"),
- ctrl: genGuard("!$event.ctrlKey"),
- shift: genGuard("!$event.shiftKey"),
- alt: genGuard("!$event.altKey"),
- meta: genGuard("!$event.metaKey"),
- left: genGuard("'button' in $event && $event.button !== 0"),
- middle: genGuard("'button' in $event && $event.button !== 1"),
- right: genGuard("'button' in $event && $event.button !== 2")
- };
- function genHandlers (
- events,
- isNative
- ) {
- var res = isNative ? 'nativeOn:{' : 'on:{';
- for (var name in events) {
- res += "\"" + name + "\":" + (genHandler(name, events[name])) + ",";
- }
- return res.slice(0, -1) + '}'
- }
- function genHandler (
- name,
- handler
- ) {
- if (!handler) {
- return 'function(){}'
- }
- if (Array.isArray(handler)) {
- return ("[" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + "]")
- }
- var isMethodPath = simplePathRE.test(handler.value);
- var isFunctionExpression = fnExpRE.test(handler.value);
- if (!handler.modifiers) {
- if (isMethodPath || isFunctionExpression) {
- return handler.value
- }
- return ("function($event){" + (handler.value) + "}") // inline statement
- } else {
- var code = '';
- var genModifierCode = '';
- var keys = [];
- for (var key in handler.modifiers) {
- if (modifierCode[key]) {
- genModifierCode += modifierCode[key];
- // left/right
- if (keyCodes[key]) {
- keys.push(key);
- }
- } else if (key === 'exact') {
- var modifiers = (handler.modifiers);
- genModifierCode += genGuard(
- ['ctrl', 'shift', 'alt', 'meta']
- .filter(function (keyModifier) { return !modifiers[keyModifier]; })
- .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); })
- .join('||')
- );
- } else {
- keys.push(key);
- }
- }
- if (keys.length) {
- code += genKeyFilter(keys);
- }
- // Make sure modifiers like prevent and stop get executed after key filtering
- if (genModifierCode) {
- code += genModifierCode;
- }
- var handlerCode = isMethodPath
- ? ("return " + (handler.value) + "($event)")
- : isFunctionExpression
- ? ("return (" + (handler.value) + ")($event)")
- : handler.value;
- return ("function($event){" + code + handlerCode + "}")
- }
- }
- function genKeyFilter (keys) {
- return ("if(!('button' in $event)&&" + (keys.map(genFilterCode).join('&&')) + ")return null;")
- }
- function genFilterCode (key) {
- var keyVal = parseInt(key, 10);
- if (keyVal) {
- return ("$event.keyCode!==" + keyVal)
- }
- var keyCode = keyCodes[key];
- var keyName = keyNames[key];
- return (
- "_k($event.keyCode," +
- (JSON.stringify(key)) + "," +
- (JSON.stringify(keyCode)) + "," +
- "$event.key," +
- "" + (JSON.stringify(keyName)) +
- ")"
- )
- }
- /* */
- function on (el, dir) {
- if ("development" !== 'production' && dir.modifiers) {
- warn("v-on without argument does not support modifiers.");
- }
- el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };
- }
- /* */
- function bind$1 (el, dir) {
- el.wrapData = function (code) {
- return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")
- };
- }
- /* */
- var baseDirectives = {
- on: on,
- bind: bind$1,
- cloak: noop
- };
- /* */
- var CodegenState = function CodegenState (options) {
- this.options = options;
- this.warn = options.warn || baseWarn;
- this.transforms = pluckModuleFunction(options.modules, 'transformCode');
- this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
- this.directives = extend(extend({}, baseDirectives), options.directives);
- var isReservedTag = options.isReservedTag || no;
- this.maybeComponent = function (el) { return !(isReservedTag(el.tag) && !el.component); };
- this.onceId = 0;
- this.staticRenderFns = [];
- this.pre = false;
- };
- function generate (
- ast,
- options
- ) {
- var state = new CodegenState(options);
- var code = ast ? genElement(ast, state) : '_c("div")';
- return {
- render: ("with(this){return " + code + "}"),
- staticRenderFns: state.staticRenderFns
- }
- }
- function genElement (el, state) {
- if (el.parent) {
- el.pre = el.pre || el.parent.pre;
- }
- if (el.staticRoot && !el.staticProcessed) {
- return genStatic(el, state)
- } else if (el.once && !el.onceProcessed) {
- return genOnce(el, state)
- } else if (el.for && !el.forProcessed) {
- return genFor(el, state)
- } else if (el.if && !el.ifProcessed) {
- return genIf(el, state)
- } else if (el.tag === 'template' && !el.slotTarget && !state.pre) {
- return genChildren(el, state) || 'void 0'
- } else if (el.tag === 'slot') {
- return genSlot(el, state)
- } else {
- // component or element
- var code;
- if (el.component) {
- code = genComponent(el.component, el, state);
- } else {
- var data;
- if (!el.plain || (el.pre && state.maybeComponent(el))) {
- data = genData$2(el, state);
- }
- var children = el.inlineTemplate ? null : genChildren(el, state, true);
- code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";
- }
- // module transforms
- for (var i = 0; i < state.transforms.length; i++) {
- code = state.transforms[i](el, code);
- }
- return code
- }
- }
- // hoist static sub-trees out
- function genStatic (el, state) {
- el.staticProcessed = true;
- // Some elements (templates) need to behave differently inside of a v-pre
- // node. All pre nodes are static roots, so we can use this as a location to
- // wrap a state change and reset it upon exiting the pre node.
- var originalPreState = state.pre;
- if (el.pre) {
- state.pre = el.pre;
- }
- state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));
- state.pre = originalPreState;
- return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
- }
- // v-once
- function genOnce (el, state) {
- el.onceProcessed = true;
- if (el.if && !el.ifProcessed) {
- return genIf(el, state)
- } else if (el.staticInFor) {
- var key = '';
- var parent = el.parent;
- while (parent) {
- if (parent.for) {
- key = parent.key;
- break
- }
- parent = parent.parent;
- }
- if (!key) {
- "development" !== 'production' && state.warn(
- "v-once can only be used inside v-for that is keyed. "
- );
- return genElement(el, state)
- }
- return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")")
- } else {
- return genStatic(el, state)
- }
- }
- function genIf (
- el,
- state,
- altGen,
- altEmpty
- ) {
- el.ifProcessed = true; // avoid recursion
- return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)
- }
- function genIfConditions (
- conditions,
- state,
- altGen,
- altEmpty
- ) {
- if (!conditions.length) {
- return altEmpty || '_e()'
- }
- var condition = conditions.shift();
- if (condition.exp) {
- return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))
- } else {
- return ("" + (genTernaryExp(condition.block)))
- }
- // v-if with v-once should generate code like (a)?_m(0):_m(1)
- function genTernaryExp (el) {
- return altGen
- ? altGen(el, state)
- : el.once
- ? genOnce(el, state)
- : genElement(el, state)
- }
- }
- function genFor (
- el,
- state,
- altGen,
- altHelper
- ) {
- var exp = el.for;
- var alias = el.alias;
- var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
- var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
- if ("development" !== 'production' &&
- state.maybeComponent(el) &&
- el.tag !== 'slot' &&
- el.tag !== 'template' &&
- !el.key
- ) {
- state.warn(
- "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " +
- "v-for should have explicit keys. " +
- "See https://vuejs.org/guide/list.html#key for more info.",
- true /* tip */
- );
- }
- el.forProcessed = true; // avoid recursion
- return (altHelper || '_l') + "((" + exp + ")," +
- "function(" + alias + iterator1 + iterator2 + "){" +
- "return " + ((altGen || genElement)(el, state)) +
- '})'
- }
- function genData$2 (el, state) {
- var data = '{';
- // directives first.
- // directives may mutate the el's other properties before they are generated.
- var dirs = genDirectives(el, state);
- if (dirs) { data += dirs + ','; }
- // key
- if (el.key) {
- data += "key:" + (el.key) + ",";
- }
- // ref
- if (el.ref) {
- data += "ref:" + (el.ref) + ",";
- }
- if (el.refInFor) {
- data += "refInFor:true,";
- }
- // pre
- if (el.pre) {
- data += "pre:true,";
- }
- // record original tag name for components using "is" attribute
- if (el.component) {
- data += "tag:\"" + (el.tag) + "\",";
- }
- // module data generation functions
- for (var i = 0; i < state.dataGenFns.length; i++) {
- data += state.dataGenFns[i](el);
- }
- // attributes
- if (el.attrs) {
- data += "attrs:{" + (genProps(el.attrs)) + "},";
- }
- // DOM props
- if (el.props) {
- data += "domProps:{" + (genProps(el.props)) + "},";
- }
- // event handlers
- if (el.events) {
- data += (genHandlers(el.events, false)) + ",";
- }
- if (el.nativeEvents) {
- data += (genHandlers(el.nativeEvents, true)) + ",";
- }
- // slot target
- // only for non-scoped slots
- if (el.slotTarget && !el.slotScope) {
- data += "slot:" + (el.slotTarget) + ",";
- }
- // scoped slots
- if (el.scopedSlots) {
- data += (genScopedSlots(el.scopedSlots, state)) + ",";
- }
- // component v-model
- if (el.model) {
- data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},";
- }
- // inline-template
- if (el.inlineTemplate) {
- var inlineTemplate = genInlineTemplate(el, state);
- if (inlineTemplate) {
- data += inlineTemplate + ",";
- }
- }
- data = data.replace(/,$/, '') + '}';
- // v-bind data wrap
- if (el.wrapData) {
- data = el.wrapData(data);
- }
- // v-on data wrap
- if (el.wrapListeners) {
- data = el.wrapListeners(data);
- }
- return data
- }
- function genDirectives (el, state) {
- var dirs = el.directives;
- if (!dirs) { return }
- var res = 'directives:[';
- var hasRuntime = false;
- var i, l, dir, needRuntime;
- for (i = 0, l = dirs.length; i < l; i++) {
- dir = dirs[i];
- needRuntime = true;
- var gen = state.directives[dir.name];
- if (gen) {
- // compile-time directive that manipulates AST.
- // returns true if it also needs a runtime counterpart.
- needRuntime = !!gen(el, dir, state.warn);
- }
- if (needRuntime) {
- hasRuntime = true;
- res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:\"" + (dir.arg) + "\"") : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";
- }
- }
- if (hasRuntime) {
- return res.slice(0, -1) + ']'
- }
- }
- function genInlineTemplate (el, state) {
- var ast = el.children[0];
- if ("development" !== 'production' && (
- el.children.length !== 1 || ast.type !== 1
- )) {
- state.warn('Inline-template components must have exactly one child element.');
- }
- if (ast.type === 1) {
- var inlineRenderFns = generate(ast, state.options);
- return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")
- }
- }
- function genScopedSlots (
- slots,
- state
- ) {
- return ("scopedSlots:_u([" + (Object.keys(slots).map(function (key) {
- return genScopedSlot(key, slots[key], state)
- }).join(',')) + "])")
- }
- function genScopedSlot (
- key,
- el,
- state
- ) {
- if (el.for && !el.forProcessed) {
- return genForScopedSlot(key, el, state)
- }
- var fn = "function(" + (String(el.slotScope)) + "){" +
- "return " + (el.tag === 'template'
- ? el.if
- ? ("(" + (el.if) + ")?" + (genChildren(el, state) || 'undefined') + ":undefined")
- : genChildren(el, state) || 'undefined'
- : genElement(el, state)) + "}";
- return ("{key:" + key + ",fn:" + fn + "}")
- }
- function genForScopedSlot (
- key,
- el,
- state
- ) {
- var exp = el.for;
- var alias = el.alias;
- var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
- var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
- el.forProcessed = true; // avoid recursion
- return "_l((" + exp + ")," +
- "function(" + alias + iterator1 + iterator2 + "){" +
- "return " + (genScopedSlot(key, el, state)) +
- '})'
- }
- function genChildren (
- el,
- state,
- checkSkip,
- altGenElement,
- altGenNode
- ) {
- var children = el.children;
- if (children.length) {
- var el$1 = children[0];
- // optimize single v-for
- if (children.length === 1 &&
- el$1.for &&
- el$1.tag !== 'template' &&
- el$1.tag !== 'slot'
- ) {
- var normalizationType = checkSkip
- ? state.maybeComponent(el$1) ? ",1" : ",0"
- : "";
- return ("" + ((altGenElement || genElement)(el$1, state)) + normalizationType)
- }
- var normalizationType$1 = checkSkip
- ? getNormalizationType(children, state.maybeComponent)
- : 0;
- var gen = altGenNode || genNode;
- return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType$1 ? ("," + normalizationType$1) : ''))
- }
- }
- // determine the normalization needed for the children array.
- // 0: no normalization needed
- // 1: simple normalization needed (possible 1-level deep nested array)
- // 2: full normalization needed
- function getNormalizationType (
- children,
- maybeComponent
- ) {
- var res = 0;
- for (var i = 0; i < children.length; i++) {
- var el = children[i];
- if (el.type !== 1) {
- continue
- }
- if (needsNormalization(el) ||
- (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
- res = 2;
- break
- }
- if (maybeComponent(el) ||
- (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
- res = 1;
- }
- }
- return res
- }
- function needsNormalization (el) {
- return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
- }
- function genNode (node, state) {
- if (node.type === 1) {
- return genElement(node, state)
- } else if (node.type === 3 && node.isComment) {
- return genComment(node)
- } else {
- return genText(node)
- }
- }
- function genText (text) {
- return ("_v(" + (text.type === 2
- ? text.expression // no need for () because already wrapped in _s()
- : transformSpecialNewlines(JSON.stringify(text.text))) + ")")
- }
- function genComment (comment) {
- return ("_e(" + (JSON.stringify(comment.text)) + ")")
- }
- function genSlot (el, state) {
- var slotName = el.slotName || '"default"';
- var children = genChildren(el, state);
- var res = "_t(" + slotName + (children ? ("," + children) : '');
- var attrs = el.attrs && ("{" + (el.attrs.map(function (a) { return ((camelize(a.name)) + ":" + (a.value)); }).join(',')) + "}");
- var bind$$1 = el.attrsMap['v-bind'];
- if ((attrs || bind$$1) && !children) {
- res += ",null";
- }
- if (attrs) {
- res += "," + attrs;
- }
- if (bind$$1) {
- res += (attrs ? '' : ',null') + "," + bind$$1;
- }
- return res + ')'
- }
- // componentName is el.component, take it as argument to shun flow's pessimistic refinement
- function genComponent (
- componentName,
- el,
- state
- ) {
- var children = el.inlineTemplate ? null : genChildren(el, state, true);
- return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")
- }
- function genProps (props) {
- var res = '';
- for (var i = 0; i < props.length; i++) {
- var prop = props[i];
- /* istanbul ignore if */
- {
- res += "\"" + (prop.name) + "\":" + (transformSpecialNewlines(prop.value)) + ",";
- }
- }
- return res.slice(0, -1)
- }
- // #3895, #4268
- function transformSpecialNewlines (text) {
- return text
- .replace(/\u2028/g, '\\u2028')
- .replace(/\u2029/g, '\\u2029')
- }
- /* */
- // these keywords should not appear inside expressions, but operators like
- // typeof, instanceof and in are allowed
- var prohibitedKeywordRE = new RegExp('\\b' + (
- 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
- 'super,throw,while,yield,delete,export,import,return,switch,default,' +
- 'extends,finally,continue,debugger,function,arguments'
- ).split(',').join('\\b|\\b') + '\\b');
- // these unary operators should not be used as property/method names
- var unaryOperatorsRE = new RegExp('\\b' + (
- 'delete,typeof,void'
- ).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)');
- // strip strings in expressions
- var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
- // detect problematic expressions in a template
- function detectErrors (ast) {
- var errors = [];
- if (ast) {
- checkNode(ast, errors);
- }
- return errors
- }
- function checkNode (node, errors) {
- if (node.type === 1) {
- for (var name in node.attrsMap) {
- if (dirRE.test(name)) {
- var value = node.attrsMap[name];
- if (value) {
- if (name === 'v-for') {
- checkFor(node, ("v-for=\"" + value + "\""), errors);
- } else if (onRE.test(name)) {
- checkEvent(value, (name + "=\"" + value + "\""), errors);
- } else {
- checkExpression(value, (name + "=\"" + value + "\""), errors);
- }
- }
- }
- }
- if (node.children) {
- for (var i = 0; i < node.children.length; i++) {
- checkNode(node.children[i], errors);
- }
- }
- } else if (node.type === 2) {
- checkExpression(node.expression, node.text, errors);
- }
- }
- function checkEvent (exp, text, errors) {
- var stipped = exp.replace(stripStringRE, '');
- var keywordMatch = stipped.match(unaryOperatorsRE);
- if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {
- errors.push(
- "avoid using JavaScript unary operator as property name: " +
- "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim())
- );
- }
- checkExpression(exp, text, errors);
- }
- function checkFor (node, text, errors) {
- checkExpression(node.for || '', text, errors);
- checkIdentifier(node.alias, 'v-for alias', text, errors);
- checkIdentifier(node.iterator1, 'v-for iterator', text, errors);
- checkIdentifier(node.iterator2, 'v-for iterator', text, errors);
- }
- function checkIdentifier (
- ident,
- type,
- text,
- errors
- ) {
- if (typeof ident === 'string') {
- try {
- new Function(("var " + ident + "=_"));
- } catch (e) {
- errors.push(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())));
- }
- }
- }
- function checkExpression (exp, text, errors) {
- try {
- new Function(("return " + exp));
- } catch (e) {
- var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);
- if (keywordMatch) {
- errors.push(
- "avoid using JavaScript keyword as property name: " +
- "\"" + (keywordMatch[0]) + "\"\n Raw expression: " + (text.trim())
- );
- } else {
- errors.push(
- "invalid expression: " + (e.message) + " in\n\n" +
- " " + exp + "\n\n" +
- " Raw expression: " + (text.trim()) + "\n"
- );
- }
- }
- }
- /* */
- function createFunction (code, errors) {
- try {
- return new Function(code)
- } catch (err) {
- errors.push({ err: err, code: code });
- return noop
- }
- }
- function createCompileToFunctionFn (compile) {
- var cache = Object.create(null);
- return function compileToFunctions (
- template,
- options,
- vm
- ) {
- options = extend({}, options);
- var warn$$1 = options.warn || warn;
- delete options.warn;
- /* istanbul ignore if */
- if (true) {
- // detect possible CSP restriction
- try {
- new Function('return 1');
- } catch (e) {
- if (e.toString().match(/unsafe-eval|CSP/)) {
- warn$$1(
- 'It seems you are using the standalone build of Vue.js in an ' +
- 'environment with Content Security Policy that prohibits unsafe-eval. ' +
- 'The template compiler cannot work in this environment. Consider ' +
- 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
- 'templates into render functions.'
- );
- }
- }
- }
- // check cache
- var key = options.delimiters
- ? String(options.delimiters) + template
- : template;
- if (cache[key]) {
- return cache[key]
- }
- // compile
- var compiled = compile(template, options);
- // check compilation errors/tips
- if (true) {
- if (compiled.errors && compiled.errors.length) {
- warn$$1(
- "Error compiling template:\n\n" + template + "\n\n" +
- compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',
- vm
- );
- }
- if (compiled.tips && compiled.tips.length) {
- compiled.tips.forEach(function (msg) { return tip(msg, vm); });
- }
- }
- // turn code into functions
- var res = {};
- var fnGenErrors = [];
- res.render = createFunction(compiled.render, fnGenErrors);
- res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
- return createFunction(code, fnGenErrors)
- });
- // check function generation errors.
- // this should only happen if there is a bug in the compiler itself.
- // mostly for codegen development use
- /* istanbul ignore if */
- if (true) {
- if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
- warn$$1(
- "Failed to generate render function:\n\n" +
- fnGenErrors.map(function (ref) {
- var err = ref.err;
- var code = ref.code;
- return ((err.toString()) + " in\n\n" + code + "\n");
- }).join('\n'),
- vm
- );
- }
- }
- return (cache[key] = res)
- }
- }
- /* */
- function createCompilerCreator (baseCompile) {
- return function createCompiler (baseOptions) {
- function compile (
- template,
- options
- ) {
- var finalOptions = Object.create(baseOptions);
- var errors = [];
- var tips = [];
- finalOptions.warn = function (msg, tip) {
- (tip ? tips : errors).push(msg);
- };
- if (options) {
- // merge custom modules
- if (options.modules) {
- finalOptions.modules =
- (baseOptions.modules || []).concat(options.modules);
- }
- // merge custom directives
- if (options.directives) {
- finalOptions.directives = extend(
- Object.create(baseOptions.directives || null),
- options.directives
- );
- }
- // copy other options
- for (var key in options) {
- if (key !== 'modules' && key !== 'directives') {
- finalOptions[key] = options[key];
- }
- }
- }
- var compiled = baseCompile(template, finalOptions);
- if (true) {
- errors.push.apply(errors, detectErrors(compiled.ast));
- }
- compiled.errors = errors;
- compiled.tips = tips;
- return compiled
- }
- return {
- compile: compile,
- compileToFunctions: createCompileToFunctionFn(compile)
- }
- }
- }
- /* */
- // `createCompilerCreator` allows creating compilers that use alternative
- // parser/optimizer/codegen, e.g the SSR optimizing compiler.
- // Here we just export a default compiler using the default parts.
- var createCompiler = createCompilerCreator(function baseCompile (
- template,
- options
- ) {
- var ast = parse(template.trim(), options);
- if (options.optimize !== false) {
- optimize(ast, options);
- }
- var code = generate(ast, options);
- return {
- ast: ast,
- render: code.render,
- staticRenderFns: code.staticRenderFns
- }
- });
- /* */
- var ref$1 = createCompiler(baseOptions);
- var compile = ref$1.compile;
- var compileToFunctions = ref$1.compileToFunctions;
- /* */
- // check whether current browser encodes a char inside attribute values
- var div;
- function getShouldDecode (href) {
- div = div || document.createElement('div');
- div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";
- return div.innerHTML.indexOf(' ') > 0
- }
- // #3663: IE encodes newlines inside attribute values while other browsers don't
- var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;
- // #6828: chrome encodes content in a[href]
- var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;
- /* */
- var idToTemplate = cached(function (id) {
- var el = query(id);
- return el && el.innerHTML
- });
- var mount = Vue.prototype.$mount;
- Vue.prototype.$mount = function (
- el,
- hydrating
- ) {
- el = el && query(el);
- /* istanbul ignore if */
- if (el === document.body || el === document.documentElement) {
- "development" !== 'production' && warn(
- "Do not mount Vue to <html> or <body> - mount to normal elements instead."
- );
- return this
- }
- var options = this.$options;
- // resolve template/el and convert to render function
- if (!options.render) {
- var template = options.template;
- if (template) {
- if (typeof template === 'string') {
- if (template.charAt(0) === '#') {
- template = idToTemplate(template);
- /* istanbul ignore if */
- if ("development" !== 'production' && !template) {
- warn(
- ("Template element not found or is empty: " + (options.template)),
- this
- );
- }
- }
- } else if (template.nodeType) {
- template = template.innerHTML;
- } else {
- if (true) {
- warn('invalid template option:' + template, this);
- }
- return this
- }
- } else if (el) {
- template = getOuterHTML(el);
- }
- if (template) {
- /* istanbul ignore if */
- if ("development" !== 'production' && config.performance && mark) {
- mark('compile');
- }
- var ref = compileToFunctions(template, {
- shouldDecodeNewlines: shouldDecodeNewlines,
- shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,
- delimiters: options.delimiters,
- comments: options.comments
- }, this);
- var render = ref.render;
- var staticRenderFns = ref.staticRenderFns;
- options.render = render;
- options.staticRenderFns = staticRenderFns;
- /* istanbul ignore if */
- if ("development" !== 'production' && config.performance && mark) {
- mark('compile end');
- measure(("vue " + (this._name) + " compile"), 'compile', 'compile end');
- }
- }
- }
- return mount.call(this, el, hydrating)
- };
- /**
- * Get outerHTML of elements, taking care
- * of SVG elements in IE as well.
- */
- function getOuterHTML (el) {
- if (el.outerHTML) {
- return el.outerHTML
- } else {
- var container = document.createElement('div');
- container.appendChild(el.cloneNode(true));
- return container.innerHTML
- }
- }
- Vue.compile = compileToFunctions;
- module.exports = Vue;
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/timers-browserify/main.js").setImmediate))
- /***/ }),
- /***/ "./node_modules/webpack/buildin/global.js":
- /***/ (function(module, exports) {
- var g;
- // This works in non-strict mode
- g = (function() {
- return this;
- })();
- try {
- // This works if eval is allowed (see CSP)
- g = g || Function("return this")() || (1,eval)("this");
- } catch(e) {
- // This works if the window reference is available
- if(typeof window === "object")
- g = window;
- }
- // g can still be undefined, but nothing to do about it...
- // We return undefined, instead of nothing here, so it's
- // easier to handle this case. if(!global) { ...}
- module.exports = g;
- /***/ }),
- /***/ "./resources/assets/js/components.js":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_bootstrap_vue__ = __webpack_require__("./node_modules/bootstrap-vue/es/index.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_infinite_loading__ = __webpack_require__("./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_infinite_loading___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue_infinite_loading__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_loading_overlay__ = __webpack_require__("./node_modules/vue-loading-overlay/dist/vue-loading.min.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_loading_overlay___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_loading_overlay__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_timeago__ = __webpack_require__("./node_modules/vue-timeago/dist/vue-timeago.es.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_sweetalert__ = __webpack_require__("./node_modules/sweetalert/dist/sweetalert.min.js");
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_sweetalert___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_sweetalert__);
- 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; };
- window.Vue = __webpack_require__("./node_modules/vue/dist/vue.common.js");
- //import {Howl, Howler} from 'howler';
- Vue.use(__WEBPACK_IMPORTED_MODULE_0_bootstrap_vue__["a" /* default */]);
- Vue.use(__WEBPACK_IMPORTED_MODULE_1_vue_infinite_loading___default.a);
- Vue.use(__WEBPACK_IMPORTED_MODULE_2_vue_loading_overlay___default.a);
- Vue.use(__WEBPACK_IMPORTED_MODULE_3_vue_timeago__["a" /* default */]);
- pixelfed.readmore = function () {
- $('.read-more').each(function (k, v) {
- var el = $(this);
- var attr = el.attr('data-readmore');
- if ((typeof attr === 'undefined' ? 'undefined' : _typeof(attr)) !== ( true ? 'undefined' : _typeof(undefined)) && attr !== false) {
- return;
- }
- el.readmore({
- collapsedHeight: 44,
- heightMargin: 20,
- moreLink: '<a href="#" class="font-weight-bold small">Read more</a>',
- lessLink: '<a href="#" class="font-weight-bold small">Hide</a>'
- });
- });
- };
- try {
- document.createEvent("TouchEvent");
- $('body').addClass('touch');
- } catch (e) {}
- window.InfiniteScroll = __webpack_require__("./node_modules/infinite-scroll/js/index.js");
- window.filesize = __webpack_require__("./node_modules/filesize/lib/filesize.js");
- window.Plyr = __webpack_require__("./node_modules/plyr/dist/plyr.min.js");
- __webpack_require__("./resources/assets/js/components/localstorage.js");
- __webpack_require__("./resources/assets/js/components/likebutton.js");
- __webpack_require__("./resources/assets/js/components/commentform.js");
- __webpack_require__("./resources/assets/js/components/searchform.js");
- __webpack_require__("./resources/assets/js/components/bookmarkform.js");
- __webpack_require__("./resources/assets/js/components/statusform.js");
- __webpack_require__("./resources/assets/js/components/settingspage.js");
- //require('./components/embed');
- //require('./components/notifications');
- // import Echo from "laravel-echo"
- // window.io = require('socket.io-client');
- // window.pixelfed.bootEcho = function() {
- // window.Echo = new Echo({
- // broadcaster: 'socket.io',
- // host: window.location.hostname + ':2096',
- // auth: {
- // headers: {
- // Authorization: 'Bearer ' + token.content,
- // },
- // },
- // });
- // }
- // Initialize Notification Helper
- window.pixelfed.n = {};
- Vue.component('photo-presenter', __webpack_require__("./resources/assets/js/components/presenter/PhotoPresenter.vue").default);
- Vue.component('video-presenter', __webpack_require__("./resources/assets/js/components/presenter/VideoPresenter.vue").default);
- Vue.component('photo-album-presenter', __webpack_require__("./resources/assets/js/components/presenter/PhotoAlbumPresenter.vue").default);
- Vue.component('video-album-presenter', __webpack_require__("./resources/assets/js/components/presenter/VideoAlbumPresenter.vue").default);
- Vue.component('mixed-album-presenter', __webpack_require__("./resources/assets/js/components/presenter/MixedAlbumPresenter.vue").default);
- // Vue.component(
- // 'micro',
- // require('./components/Micro.vue').default
- // );
- Vue.component('follow-suggestions', __webpack_require__("./resources/assets/js/components/FollowSuggestions.vue").default);
- Vue.component('discover-component', __webpack_require__("./resources/assets/js/components/DiscoverComponent.vue").default);
- // Vue.component(
- // 'profile',
- // require('./components/Profile.vue').default
- // );
- // Vue.component(
- // 'circle-panel',
- // require('./components/CirclePanel.vue')
- // );
- Vue.component('post-component', __webpack_require__("./resources/assets/js/components/PostComponent.vue").default);
- Vue.component('post-comments', __webpack_require__("./resources/assets/js/components/PostComments.vue").default);
- Vue.component('timeline', __webpack_require__("./resources/assets/js/components/Timeline.vue").default);
- // Vue.component(
- // 'passport-clients',
- // require('./components/passport/Clients.vue').default
- // );
- // Vue.component(
- // 'passport-authorized-clients',
- // require('./components/passport/AuthorizedClients.vue').default
- // );
- // Vue.component(
- // 'passport-personal-access-tokens',
- // require('./components/passport/PersonalAccessTokens.vue').default
- // );
- //import 'promise-polyfill/src/polyfill';
- // window.pixelfed.copyToClipboard = (str) => {
- // const el = document.createElement('textarea');
- // el.value = str;
- // el.setAttribute('readonly', '');
- // el.style.position = 'absolute';
- // el.style.left = '-9999px';
- // document.body.appendChild(el);
- // const selected =
- // document.getSelection().rangeCount > 0
- // ? document.getSelection().getRangeAt(0)
- // : false;
- // el.select();
- // document.execCommand('copy');
- // document.body.removeChild(el);
- // if (selected) {
- // document.getSelection().removeAllRanges();
- // document.getSelection().addRange(selected);
- // }
- // };
- $(document).ready(function () {
- $(function () {
- $('[data-toggle="tooltip"]').tooltip();
- });
- });
- var warningTitleCSS = 'color:red; font-size:60px; font-weight: bold; -webkit-text-stroke: 1px black;';
- var warningDescCSS = 'font-size: 18px;';
- console.log('%cStop!', warningTitleCSS);
- 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);
- /***/ }),
- /***/ "./resources/assets/js/components/DiscoverComponent.vue":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* 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");
- /* empty harmony namespace reexport */
- /* 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");
- /* 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");
- var disposed = false
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = null
- /* scopeId */
- var __vue_scopeId__ = null
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
- __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 */],
- __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 */],
- __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 */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- Component.options.__file = "resources/assets/js/components/DiscoverComponent.vue"
- /* hot reload */
- if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-7ab7dfed", Component.options)
- } else {
- hotAPI.reload("data-v-7ab7dfed", Component.options)
- }
- module.hot.dispose(function (data) {
- disposed = true
- })
- })()}
- /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
- /***/ }),
- /***/ "./resources/assets/js/components/FollowSuggestions.vue":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* 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");
- /* empty harmony namespace reexport */
- /* 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");
- /* 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");
- var disposed = false
- function injectStyle (context) {
- if (disposed) return
- __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")
- }
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = injectStyle
- /* scopeId */
- var __vue_scopeId__ = "data-v-1b3c4b52"
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
- __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 */],
- __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 */],
- __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 */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- Component.options.__file = "resources/assets/js/components/FollowSuggestions.vue"
- /* hot reload */
- if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-1b3c4b52", Component.options)
- } else {
- hotAPI.reload("data-v-1b3c4b52", Component.options)
- }
- module.hot.dispose(function (data) {
- disposed = true
- })
- })()}
- /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
- /***/ }),
- /***/ "./resources/assets/js/components/PostComments.vue":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* 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");
- /* empty harmony namespace reexport */
- /* 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");
- /* 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");
- var disposed = false
- function injectStyle (context) {
- if (disposed) return
- __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")
- }
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = injectStyle
- /* scopeId */
- var __vue_scopeId__ = "data-v-7029d26b"
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
- __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 */],
- __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 */],
- __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 */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- Component.options.__file = "resources/assets/js/components/PostComments.vue"
- /* hot reload */
- if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-7029d26b", Component.options)
- } else {
- hotAPI.reload("data-v-7029d26b", Component.options)
- }
- module.hot.dispose(function (data) {
- disposed = true
- })
- })()}
- /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
- /***/ }),
- /***/ "./resources/assets/js/components/PostComponent.vue":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* 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");
- /* empty harmony namespace reexport */
- /* 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");
- /* 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");
- var disposed = false
- function injectStyle (context) {
- if (disposed) return
- __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")
- }
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = injectStyle
- /* scopeId */
- var __vue_scopeId__ = "data-v-1e4d2916"
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
- __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 */],
- __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 */],
- __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 */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- Component.options.__file = "resources/assets/js/components/PostComponent.vue"
- /* hot reload */
- if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-1e4d2916", Component.options)
- } else {
- hotAPI.reload("data-v-1e4d2916", Component.options)
- }
- module.hot.dispose(function (data) {
- disposed = true
- })
- })()}
- /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
- /***/ }),
- /***/ "./resources/assets/js/components/Timeline.vue":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* 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");
- /* empty harmony namespace reexport */
- /* 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");
- /* 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");
- var disposed = false
- function injectStyle (context) {
- if (disposed) return
- __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")
- }
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = injectStyle
- /* scopeId */
- var __vue_scopeId__ = "data-v-40ef44f8"
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
- __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 */],
- __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 */],
- __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 */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- Component.options.__file = "resources/assets/js/components/Timeline.vue"
- /* hot reload */
- if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-40ef44f8", Component.options)
- } else {
- hotAPI.reload("data-v-40ef44f8", Component.options)
- }
- module.hot.dispose(function (data) {
- disposed = true
- })
- })()}
- /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
- /***/ }),
- /***/ "./resources/assets/js/components/bookmarkform.js":
- /***/ (function(module, exports) {
- $(document).ready(function () {
- $(document).on('submit', '.bookmark-form', function (e) {
- e.preventDefault();
- var el = $(this);
- var id = el.data('id');
- var res = axios.post('/i/bookmark', { item: id });
- });
- });
- /***/ }),
- /***/ "./resources/assets/js/components/commentform.js":
- /***/ (function(module, exports) {
- $(document).ready(function () {
- $('.status-card > .card-footer').each(function () {
- $(this).addClass('d-none');
- });
- $(document).on('click', '.status-comment-focus', function (el) {
- var form = $(this).parents().eq(2).find('.card-footer');
- form.removeClass('d-none');
- var el = $(this).parents().eq(2).find('input[name="comment"]');
- el.focus();
- });
- $(document).on('submit', '.comment-form', function (e, data) {
- e.preventDefault();
- var el = $(this);
- var id = el.data('id');
- var commentform = el.find('input[name="comment"]');
- var commenttext = commentform.val();
- var item = { item: id, comment: commenttext };
- commentform.prop('disabled', true);
- axios.post('/i/comment', item).then(function (res) {
- var username = res.data.username;
- var permalink = res.data.url;
- var profile = res.data.profile;
- var reply = res.data.comment;
- if ($('.status-container').length == 1) {
- var comments = el.parents().eq(3).find('.comments');
- } else {
- var comments = el.parents().eq(1).find('.comments');
- }
- 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>';
- comments.prepend(comment);
- commentform.val('');
- commentform.blur();
- commentform.prop('disabled', false);
- }).catch(function (res) {});
- });
- });
- /***/ }),
- /***/ "./resources/assets/js/components/likebutton.js":
- /***/ (function(module, exports) {
- $(document).ready(function () {
- pixelfed.fetchLikes = function () {
- var ts = Date.now();
- var offset = ts - 900000;
- var updated = ls.get('likesUpdated');
- if (updated != null && ls.get('likes').length > 0 || offset < updated) {
- return;
- }
- axios.get('/api/v1/likes').then(function (res) {
- ls.set('likes', res.data);
- ls.set('likesUpdated', ts);
- }).catch(function (res) {
- ls.set('likes', []);
- ls.set('likesUpdated', ts);
- });
- };
- pixelfed.hydrateLikes = function () {
- var likes = ls.get('likes');
- $('.like-form').each(function (i, el) {
- var el = $(el);
- var id = el.data('id');
- var heart = el.find('.status-heart');
- if (likes.indexOf(id) != -1) {
- heart.removeClass('far text-dark').addClass('fas text-danger');
- } else {
- heart.removeClass('fas text-danger').addClass('far text-dark');
- }
- });
- };
- pixelfed.fetchLikes();
- pixelfed.hydrateLikes();
- $(document).on('submit', '.like-form', function (e) {
- e.preventDefault();
- var el = $(this);
- var id = el.data('id');
- axios.post('/i/like', { item: id }).then(function (res) {
- pixelfed.fetchLikes();
- pixelfed.hydrateLikes();
- var likes = ls.get('likes');
- var action = false;
- var counter = el.parents().eq(1).find('.like-count');
- var count = res.data.count;
- var heart = el.find('.status-heart');
- if (likes.indexOf(id) > -1) {
- heart.removeClass('fas text-danger').addClass('far text-dark');
- likes = likes.filter(function (item) {
- return item !== id;
- });
- counter.text(count);
- action = 'unlike';
- } else {
- heart.removeClass('far text-dark').addClass('fas text-danger');
- likes.push(id);
- counter.text(count);
- action = 'like';
- }
- ls.set('likes', likes);
- ls.set('likesUpdated', Date.now());
- console.log(action + ' - ' + id + ' like event');
- });
- });
- });
- /***/ }),
- /***/ "./resources/assets/js/components/localstorage.js":
- /***/ (function(module, exports) {
- window.ls = {};
- window.ls.get = function (key) {
- return JSON.parse(localStorage.getItem(key));
- };
- window.ls.set = function (key, val) {
- try {
- localStorage.setItem(key, JSON.stringify(val));
- return true;
- } catch (e) {
- return false;
- }
- };
- window.ls.del = function (key) {
- try {
- localStorage.removeItem(key);
- return true;
- } catch (e) {
- return false;
- }
- };
- window.ls.clear = function () {
- try {
- localStorage.clear();
- return true;
- } catch (e) {
- return false;
- }
- };
- /***/ }),
- /***/ "./resources/assets/js/components/presenter/MixedAlbumPresenter.vue":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* 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");
- /* empty harmony namespace reexport */
- /* 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");
- /* 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");
- var disposed = false
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = null
- /* scopeId */
- var __vue_scopeId__ = null
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
- __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 */],
- __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 */],
- __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 */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- Component.options.__file = "resources/assets/js/components/presenter/MixedAlbumPresenter.vue"
- /* hot reload */
- if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-66084274", Component.options)
- } else {
- hotAPI.reload("data-v-66084274", Component.options)
- }
- module.hot.dispose(function (data) {
- disposed = true
- })
- })()}
- /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
- /***/ }),
- /***/ "./resources/assets/js/components/presenter/PhotoAlbumPresenter.vue":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* 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");
- /* empty harmony namespace reexport */
- /* 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");
- /* 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");
- var disposed = false
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = null
- /* scopeId */
- var __vue_scopeId__ = null
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
- __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 */],
- __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 */],
- __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 */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- Component.options.__file = "resources/assets/js/components/presenter/PhotoAlbumPresenter.vue"
- /* hot reload */
- if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-1c78113d", Component.options)
- } else {
- hotAPI.reload("data-v-1c78113d", Component.options)
- }
- module.hot.dispose(function (data) {
- disposed = true
- })
- })()}
- /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
- /***/ }),
- /***/ "./resources/assets/js/components/presenter/PhotoPresenter.vue":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* 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");
- /* empty harmony namespace reexport */
- /* 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");
- /* 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");
- var disposed = false
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = null
- /* scopeId */
- var __vue_scopeId__ = null
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
- __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 */],
- __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 */],
- __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 */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- Component.options.__file = "resources/assets/js/components/presenter/PhotoPresenter.vue"
- /* hot reload */
- if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-88c038d8", Component.options)
- } else {
- hotAPI.reload("data-v-88c038d8", Component.options)
- }
- module.hot.dispose(function (data) {
- disposed = true
- })
- })()}
- /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
- /***/ }),
- /***/ "./resources/assets/js/components/presenter/VideoAlbumPresenter.vue":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* 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");
- /* empty harmony namespace reexport */
- /* 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");
- /* 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");
- var disposed = false
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = null
- /* scopeId */
- var __vue_scopeId__ = null
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
- __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 */],
- __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 */],
- __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 */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- Component.options.__file = "resources/assets/js/components/presenter/VideoAlbumPresenter.vue"
- /* hot reload */
- if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-43194746", Component.options)
- } else {
- hotAPI.reload("data-v-43194746", Component.options)
- }
- module.hot.dispose(function (data) {
- disposed = true
- })
- })()}
- /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
- /***/ }),
- /***/ "./resources/assets/js/components/presenter/VideoPresenter.vue":
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* 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");
- /* empty harmony namespace reexport */
- /* 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");
- /* 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");
- var disposed = false
- /* script */
- /* template */
- /* template functional */
- var __vue_template_functional__ = false
- /* styles */
- var __vue_styles__ = null
- /* scopeId */
- var __vue_scopeId__ = null
- /* moduleIdentifier (server only) */
- var __vue_module_identifier__ = null
- var Component = Object(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__["a" /* default */])(
- __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 */],
- __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 */],
- __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 */],
- __vue_template_functional__,
- __vue_styles__,
- __vue_scopeId__,
- __vue_module_identifier__
- )
- Component.options.__file = "resources/assets/js/components/presenter/VideoPresenter.vue"
- /* hot reload */
- if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-9ad5682a", Component.options)
- } else {
- hotAPI.reload("data-v-9ad5682a", Component.options)
- }
- module.hot.dispose(function (data) {
- disposed = true
- })
- })()}
- /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
- /***/ }),
- /***/ "./resources/assets/js/components/searchform.js":
- /***/ (function(module, exports, __webpack_require__) {
- $(document).ready(function () {
- var queryEngine = new Bloodhound({
- datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
- queryTokenizer: Bloodhound.tokenizers.whitespace,
- remote: {
- url: "/api/search" + '/%QUERY%',
- wildcard: '%QUERY%'
- }
- });
- $('.search-form .search-form-input').typeahead(null, {
- name: 'search',
- display: 'value',
- source: queryEngine,
- limit: 40,
- templates: {
- empty: ['<div class="alert alert-info mb-0 font-weight-bold">', 'No Results Found', '</div>'].join('\n'),
- suggestion: function suggestion(data) {
- var type = data.type;
- var res = false;
- switch (type) {
- case 'hashtag':
- 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>';
- break;
- case 'profile':
- 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>';
- break;
- case 'status':
- 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>';
- break;
- default:
- res = false;
- break;
- }
- if (res !== false) {
- return res;
- }
- }
- }
- });
- });
- /***/ }),
- /***/ "./resources/assets/js/components/settingspage.js":
- /***/ (function(module, exports) {
- $(document).ready(function () {
- $('#avatarInput').on('change', function (e) {
- var file = document.getElementById('avatarInput').files[0];
- var reader = new FileReader();
- reader.addEventListener("load", function () {
- $('#previewAvatar').html('<img src="' + reader.result + '" class="rounded-circle box-shadow" />');
- }, false);
- if (file) {
- reader.readAsDataURL(file);
- }
- });
- });
- /***/ }),
- /***/ "./resources/assets/js/components/statusform.js":
- /***/ (function(module, exports) {
- $(document).ready(function () {
- pixelfed.create = {};
- pixelfed.filters = {};
- pixelfed.create.hasGeneratedSelect = false;
- pixelfed.create.selectedFilter = false;
- pixelfed.create.currentFilterName = false;
- pixelfed.create.currentFilterClass = false;
- 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']];
- function previewImage(input) {
- if (input.files && input.files[0]) {
- var reader = new FileReader();
- reader.onload = function (e) {
- $('.filterPreview').attr('src', e.target.result);
- };
- reader.readAsDataURL(input.files[0]);
- }
- }
- function generateFilterSelect() {
- var filters = pixelfed.filters.list;
- for (var i = 0, len = filters.length; i < len; i++) {
- var filter = filters[i];
- var name = filter[0];
- var className = filter[1];
- var select = $('#filterSelectDropdown');
- var template = '<option value="' + className + '">' + name + '</option>';
- select.append(template);
- }
- pixelfed.create.hasGeneratedSelect = true;
- }
- $(document).on('change', '#fileInput', function () {
- previewImage(this);
- $('#statusForm .form-filters.d-none').removeClass('d-none');
- $('#statusForm .form-preview.d-none').removeClass('d-none');
- $('#statusForm #collapsePreview').collapse('show');
- if (!pixelfed.create.hasGeneratedSelect) {
- generateFilterSelect();
- }
- });
- $(document).on('change', '#filterSelectDropdown', function () {
- var el = $(this);
- var filter = el.val();
- var oldFilter = pixelfed.create.currentFilterClass;
- if (filter == 'none') {
- $('input[name=filter_class]').val('');
- $('input[name=filter_name]').val('');
- $('.filterContainer').removeClass(oldFilter);
- pixelfed.create.currentFilterClass = false;
- pixelfed.create.currentFilterName = 'None';
- $('.form-group.form-preview .form-text').text('Current Filter: No filter selected');
- return;
- } else {
- $('.filterContainer').removeClass(oldFilter).addClass(filter);
- pixelfed.create.currentFilterClass = filter;
- pixelfed.create.currentFilterName = el.find(':selected').text();
- $('.form-group.form-preview .form-text').text('Current Filter: ' + pixelfed.create.currentFilterName);
- $('input[name=filter_class]').val(pixelfed.create.currentFilterClass);
- $('input[name=filter_name]').val(pixelfed.create.currentFilterName);
- return;
- }
- });
- $(document).on('keyup keydown', '#statusForm textarea[name=caption]', function () {
- var el = $(this);
- var len = el.val().length;
- var limit = el.data('limit');
- if (len > limit) {
- var diff = limit - len;
- $('#statusForm .caption-counter').text(diff).addClass('text-danger');
- } else {
- $('#statusForm .caption-counter').text(len).removeClass('text-danger');
- }
- });
- $(document).on('focus', '#statusForm textarea[name=caption]', function () {
- var el = $(this);
- el.attr('rows', '3');
- });
- });
- /***/ }),
- /***/ 2:
- /***/ (function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__("./resources/assets/js/components.js");
- /***/ })
- /******/ });
|