123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381 |
- if (typeof Promise !== "undefined" && !Promise.prototype.finally) {
- Promise.prototype.finally = function(callback) {
- const promise = this.constructor;
- return this.then(
- (value) => promise.resolve(callback()).then(() => value),
- (reason) => promise.resolve(callback()).then(() => {
- throw reason;
- })
- );
- };
- }
- ;
- if (typeof uni !== "undefined" && uni && uni.requireGlobal) {
- const global2 = uni.requireGlobal();
- ArrayBuffer = global2.ArrayBuffer;
- Int8Array = global2.Int8Array;
- Uint8Array = global2.Uint8Array;
- Uint8ClampedArray = global2.Uint8ClampedArray;
- Int16Array = global2.Int16Array;
- Uint16Array = global2.Uint16Array;
- Int32Array = global2.Int32Array;
- Uint32Array = global2.Uint32Array;
- Float32Array = global2.Float32Array;
- Float64Array = global2.Float64Array;
- BigInt64Array = global2.BigInt64Array;
- BigUint64Array = global2.BigUint64Array;
- }
- ;
- if (uni.restoreGlobal) {
- uni.restoreGlobal(Vue, weex, plus, setTimeout, clearTimeout, setInterval, clearInterval);
- }
- (function(vue) {
- "use strict";
- function getTarget() {
- if (typeof window !== "undefined") {
- return window;
- }
- if (typeof globalThis !== "undefined") {
- return globalThis;
- }
- if (typeof global !== "undefined") {
- return global;
- }
- if (typeof my !== "undefined") {
- return my;
- }
- }
- class Socket {
- constructor(host) {
- this.sid = "";
- this.ackTimeout = 5e3;
- this.closed = false;
- this._ackTimer = 0;
- this._onCallbacks = {};
- this.host = host;
- setTimeout(() => {
- this.connect();
- }, 50);
- }
- connect() {
- this._socket = uni.connectSocket({
- url: `ws://${this.host}/socket.io/?EIO=4&transport=websocket`,
- multiple: true,
- complete(res) {
- }
- });
- this._socket.onOpen((res) => {
- });
- this._socket.onMessage(({ data }) => {
- if (typeof my !== "undefined") {
- data = data.data;
- }
- if (typeof data !== "string") {
- return;
- }
- if (data[0] === "0") {
- this._send("40");
- const res = JSON.parse(data.slice(1));
- this.sid = res.sid;
- } else if (data[0] + data[1] === "40") {
- this.sid = JSON.parse(data.slice(2)).sid;
- this._trigger("connect");
- } else if (data === "3") {
- this._send("2");
- } else if (data === "2") {
- this._send("3");
- } else {
- const match = /\[.*\]/.exec(data);
- if (!match)
- return;
- try {
- const [event, args] = JSON.parse(match[0]);
- this._trigger(event, args);
- } catch (err) {
- console.error("Vue DevTools onMessage: ", err);
- }
- }
- });
- this._socket.onClose((res) => {
- this.closed = true;
- this._trigger("disconnect", res);
- });
- this._socket.onError((res) => {
- console.error(res.errMsg);
- });
- }
- on(event, callback) {
- (this._onCallbacks[event] || (this._onCallbacks[event] = [])).push(callback);
- }
- emit(event, data) {
- if (this.closed) {
- return;
- }
- this._heartbeat();
- this._send(`42${JSON.stringify(typeof data !== "undefined" ? [event, data] : [event])}`);
- }
- disconnect() {
- clearTimeout(this._ackTimer);
- if (this._socket && !this.closed) {
- this._send("41");
- this._socket.close({});
- }
- }
- _heartbeat() {
- clearTimeout(this._ackTimer);
- this._ackTimer = setTimeout(() => {
- this._socket && this._socket.send({ data: "3" });
- }, this.ackTimeout);
- }
- _send(data) {
- this._socket && this._socket.send({ data });
- }
- _trigger(event, args) {
- const callbacks = this._onCallbacks[event];
- if (callbacks) {
- callbacks.forEach((callback) => {
- callback(args);
- });
- }
- }
- }
- let socketReadyCallback;
- getTarget().__VUE_DEVTOOLS_ON_SOCKET_READY__ = (callback) => {
- socketReadyCallback = callback;
- };
- let targetHost = "";
- const hosts = "169.254.83.107,192.168.0.196,192.168.192.38,192.168.56.1,192.168.119.1,172.26.240.1".split(",");
- setTimeout(() => {
- uni.request({
- url: `http://${"localhost"}:${9500}`,
- timeout: 1e3,
- success() {
- targetHost = "localhost";
- initSocket();
- },
- fail() {
- if (!targetHost && hosts.length) {
- hosts.forEach((host) => {
- uni.request({
- url: `http://${host}:${9500}`,
- timeout: 1e3,
- success() {
- if (!targetHost) {
- targetHost = host;
- initSocket();
- }
- }
- });
- });
- }
- }
- });
- }, 0);
- throwConnectionError();
- function throwConnectionError() {
- setTimeout(() => {
- if (!targetHost) {
- throw new Error("未能获取局域网地址,本地调试服务不可用");
- }
- }, (hosts.length + 1) * 1100);
- }
- function initSocket() {
- getTarget().__VUE_DEVTOOLS_SOCKET__ = new Socket(targetHost + ":8098");
- socketReadyCallback();
- }
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
- function getDefaultExportFromCjs(x) {
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
- }
- (function() {
- var __webpack_modules__ = {
- /***/
- "../app-backend-core/lib/hook.js": (
- /*!***************************************!*\
- !*** ../app-backend-core/lib/hook.js ***!
- \***************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.installHook = void 0;
- function installHook(target, isIframe = false) {
- const devtoolsVersion = "6.0";
- let listeners = {};
- function injectIframeHook(iframe) {
- if (iframe.__vdevtools__injected)
- return;
- try {
- iframe.__vdevtools__injected = true;
- const inject = () => {
- try {
- iframe.contentWindow.__VUE_DEVTOOLS_IFRAME__ = iframe;
- const script = iframe.contentDocument.createElement("script");
- script.textContent = ";(" + installHook.toString() + ")(window, true)";
- iframe.contentDocument.documentElement.appendChild(script);
- script.parentNode.removeChild(script);
- } catch (e2) {
- }
- };
- inject();
- iframe.addEventListener("load", () => inject());
- } catch (e2) {
- }
- }
- let iframeChecks = 0;
- function injectToIframes() {
- if (typeof window === "undefined")
- return;
- const iframes = document.querySelectorAll("iframe:not([data-vue-devtools-ignore])");
- for (const iframe of iframes) {
- injectIframeHook(iframe);
- }
- }
- injectToIframes();
- const iframeTimer = setInterval(() => {
- injectToIframes();
- iframeChecks++;
- if (iframeChecks >= 5) {
- clearInterval(iframeTimer);
- }
- }, 1e3);
- if (Object.prototype.hasOwnProperty.call(target, "__VUE_DEVTOOLS_GLOBAL_HOOK__")) {
- if (target.__VUE_DEVTOOLS_GLOBAL_HOOK__.devtoolsVersion !== devtoolsVersion) {
- console.error(`Another version of Vue Devtools seems to be installed. Please enable only one version at a time.`);
- }
- return;
- }
- let hook;
- if (isIframe) {
- const sendToParent = (cb) => {
- try {
- const hook2 = window.parent.__VUE_DEVTOOLS_GLOBAL_HOOK__;
- if (hook2) {
- return cb(hook2);
- } else {
- console.warn("[Vue Devtools] No hook in parent window");
- }
- } catch (e2) {
- console.warn("[Vue Devtools] Failed to send message to parent window", e2);
- }
- };
- hook = {
- devtoolsVersion,
- // eslint-disable-next-line accessor-pairs
- set Vue(value) {
- sendToParent((hook2) => {
- hook2.Vue = value;
- });
- },
- // eslint-disable-next-line accessor-pairs
- set enabled(value) {
- sendToParent((hook2) => {
- hook2.enabled = value;
- });
- },
- on(event, fn) {
- sendToParent((hook2) => hook2.on(event, fn));
- },
- once(event, fn) {
- sendToParent((hook2) => hook2.once(event, fn));
- },
- off(event, fn) {
- sendToParent((hook2) => hook2.off(event, fn));
- },
- emit(event, ...args) {
- sendToParent((hook2) => hook2.emit(event, ...args));
- },
- cleanupBuffer(matchArg) {
- var _a;
- return (_a = sendToParent((hook2) => hook2.cleanupBuffer(matchArg))) !== null && _a !== void 0 ? _a : false;
- }
- };
- } else {
- hook = {
- devtoolsVersion,
- Vue: null,
- enabled: void 0,
- _buffer: [],
- store: null,
- initialState: null,
- storeModules: null,
- flushStoreModules: null,
- apps: [],
- _replayBuffer(event) {
- const buffer = this._buffer;
- this._buffer = [];
- for (let i2 = 0, l2 = buffer.length; i2 < l2; i2++) {
- const allArgs = buffer[i2];
- allArgs[0] === event ? this.emit.apply(this, allArgs) : this._buffer.push(allArgs);
- }
- },
- on(event, fn) {
- const $event = "$" + event;
- if (listeners[$event]) {
- listeners[$event].push(fn);
- } else {
- listeners[$event] = [fn];
- this._replayBuffer(event);
- }
- },
- once(event, fn) {
- const on = (...args) => {
- this.off(event, on);
- return fn.apply(this, args);
- };
- this.on(event, on);
- },
- off(event, fn) {
- event = "$" + event;
- if (!arguments.length) {
- listeners = {};
- } else {
- const cbs = listeners[event];
- if (cbs) {
- if (!fn) {
- listeners[event] = null;
- } else {
- for (let i2 = 0, l2 = cbs.length; i2 < l2; i2++) {
- const cb = cbs[i2];
- if (cb === fn || cb.fn === fn) {
- cbs.splice(i2, 1);
- break;
- }
- }
- }
- }
- }
- },
- emit(event, ...args) {
- const $event = "$" + event;
- let cbs = listeners[$event];
- if (cbs) {
- cbs = cbs.slice();
- for (let i2 = 0, l2 = cbs.length; i2 < l2; i2++) {
- try {
- const result = cbs[i2].apply(this, args);
- if (typeof (result === null || result === void 0 ? void 0 : result.catch) === "function") {
- result.catch((e2) => {
- console.error(`[Hook] Error in async event handler for ${event} with args:`, args);
- console.error(e2);
- });
- }
- } catch (e2) {
- console.error(`[Hook] Error in event handler for ${event} with args:`, args);
- console.error(e2);
- }
- }
- } else {
- this._buffer.push([event, ...args]);
- }
- },
- /**
- * Remove buffered events with any argument that is equal to the given value.
- * @param matchArg Given value to match.
- */
- cleanupBuffer(matchArg) {
- let wasBuffered = false;
- this._buffer = this._buffer.filter((item) => {
- if (item.some((arg) => arg === matchArg)) {
- wasBuffered = true;
- return false;
- }
- return true;
- });
- return wasBuffered;
- }
- };
- hook.once("init", (Vue2) => {
- hook.Vue = Vue2;
- if (Vue2) {
- Vue2.prototype.$inspect = function() {
- const fn = target.__VUE_DEVTOOLS_INSPECT__;
- fn && fn(this);
- };
- }
- });
- hook.on("app:init", (app, version, types2) => {
- const appRecord = {
- app,
- version,
- types: types2
- };
- hook.apps.push(appRecord);
- hook.emit("app:add", appRecord);
- });
- hook.once("vuex:init", (store) => {
- hook.store = store;
- hook.initialState = clone(store.state);
- const origReplaceState = store.replaceState.bind(store);
- store.replaceState = (state) => {
- hook.initialState = clone(state);
- origReplaceState(state);
- };
- let origRegister, origUnregister;
- if (store.registerModule) {
- hook.storeModules = [];
- origRegister = store.registerModule.bind(store);
- store.registerModule = (path, module, options) => {
- if (typeof path === "string")
- path = [path];
- hook.storeModules.push({
- path,
- module,
- options
- });
- origRegister(path, module, options);
- {
- console.log("early register module", path, module, options);
- }
- };
- origUnregister = store.unregisterModule.bind(store);
- store.unregisterModule = (path) => {
- if (typeof path === "string")
- path = [path];
- const key = path.join("/");
- const index = hook.storeModules.findIndex((m2) => m2.path.join("/") === key);
- if (index !== -1)
- hook.storeModules.splice(index, 1);
- origUnregister(path);
- {
- console.log("early unregister module", path);
- }
- };
- }
- hook.flushStoreModules = () => {
- store.replaceState = origReplaceState;
- if (store.registerModule) {
- store.registerModule = origRegister;
- store.unregisterModule = origUnregister;
- }
- return hook.storeModules || [];
- };
- });
- }
- {
- uni.syncDataToGlobal({
- __VUE_DEVTOOLS_GLOBAL_HOOK__: hook
- });
- }
- Object.defineProperty(target, "__VUE_DEVTOOLS_GLOBAL_HOOK__", {
- get() {
- return hook;
- }
- });
- if (target.__VUE_DEVTOOLS_HOOK_REPLAY__) {
- try {
- target.__VUE_DEVTOOLS_HOOK_REPLAY__.forEach((cb) => cb(hook));
- target.__VUE_DEVTOOLS_HOOK_REPLAY__ = [];
- } catch (e2) {
- console.error("[vue-devtools] Error during hook replay", e2);
- }
- }
- const {
- toString: toStringFunction
- } = Function.prototype;
- const {
- create,
- defineProperty,
- getOwnPropertyDescriptor,
- getOwnPropertyNames,
- getOwnPropertySymbols,
- getPrototypeOf
- } = Object;
- const {
- hasOwnProperty: hasOwnProperty2,
- propertyIsEnumerable
- } = Object.prototype;
- const SUPPORTS = {
- SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === "function",
- WEAKSET: typeof WeakSet === "function"
- };
- const createCache = () => {
- if (SUPPORTS.WEAKSET) {
- return /* @__PURE__ */ new WeakSet();
- }
- const object = create({
- add: (value) => object._values.push(value),
- has: (value) => !!~object._values.indexOf(value)
- });
- object._values = [];
- return object;
- };
- const getCleanClone = (object, realm) => {
- if (!object.constructor) {
- return create(null);
- }
- const prototype = object.__proto__ || getPrototypeOf(object);
- if (object.constructor === realm.Object) {
- return prototype === realm.Object.prototype ? {} : create(prototype);
- }
- if (~toStringFunction.call(object.constructor).indexOf("[native code]")) {
- try {
- return new object.constructor();
- } catch (e2) {
- }
- }
- return create(prototype);
- };
- const getObjectCloneLoose = (object, realm, handleCopy, cache) => {
- const clone2 = getCleanClone(object, realm);
- for (const key in object) {
- if (hasOwnProperty2.call(object, key)) {
- clone2[key] = handleCopy(object[key], cache);
- }
- }
- if (SUPPORTS.SYMBOL_PROPERTIES) {
- const symbols = getOwnPropertySymbols(object);
- if (symbols.length) {
- for (let index = 0, symbol; index < symbols.length; index++) {
- symbol = symbols[index];
- if (propertyIsEnumerable.call(object, symbol)) {
- clone2[symbol] = handleCopy(object[symbol], cache);
- }
- }
- }
- }
- return clone2;
- };
- const getObjectCloneStrict = (object, realm, handleCopy, cache) => {
- const clone2 = getCleanClone(object, realm);
- const properties = SUPPORTS.SYMBOL_PROPERTIES ? [].concat(getOwnPropertyNames(object), getOwnPropertySymbols(object)) : getOwnPropertyNames(object);
- if (properties.length) {
- for (let index = 0, property, descriptor; index < properties.length; index++) {
- property = properties[index];
- if (property !== "callee" && property !== "caller") {
- descriptor = getOwnPropertyDescriptor(object, property);
- descriptor.value = handleCopy(object[property], cache);
- defineProperty(clone2, property, descriptor);
- }
- }
- }
- return clone2;
- };
- const getRegExpFlags = (regExp) => {
- let flags = "";
- if (regExp.global) {
- flags += "g";
- }
- if (regExp.ignoreCase) {
- flags += "i";
- }
- if (regExp.multiline) {
- flags += "m";
- }
- if (regExp.unicode) {
- flags += "u";
- }
- if (regExp.sticky) {
- flags += "y";
- }
- return flags;
- };
- const {
- isArray
- } = Array;
- const GLOBAL_THIS = (() => {
- if (typeof self !== "undefined") {
- return self;
- }
- if (typeof window !== "undefined") {
- return window;
- }
- if (typeof __webpack_require__2.g !== "undefined") {
- return __webpack_require__2.g;
- }
- if (console && console.error) {
- console.error('Unable to locate global object, returning "this".');
- }
- })();
- function clone(object, options = null) {
- const isStrict = !!(options && options.isStrict);
- const realm = options && options.realm || GLOBAL_THIS;
- const getObjectClone = isStrict ? getObjectCloneStrict : getObjectCloneLoose;
- const handleCopy = (object2, cache) => {
- if (!object2 || typeof object2 !== "object" || cache.has(object2)) {
- return object2;
- }
- if (typeof HTMLElement !== "undefined" && object2 instanceof HTMLElement) {
- return object2.cloneNode(false);
- }
- const Constructor = object2.constructor;
- if (Constructor === realm.Object) {
- cache.add(object2);
- return getObjectClone(object2, realm, handleCopy, cache);
- }
- let clone2;
- if (isArray(object2)) {
- cache.add(object2);
- if (isStrict) {
- return getObjectCloneStrict(object2, realm, handleCopy, cache);
- }
- clone2 = new Constructor();
- for (let index = 0; index < object2.length; index++) {
- clone2[index] = handleCopy(object2[index], cache);
- }
- return clone2;
- }
- if (object2 instanceof realm.Date) {
- return new Constructor(object2.getTime());
- }
- if (object2 instanceof realm.RegExp) {
- clone2 = new Constructor(object2.source, object2.flags || getRegExpFlags(object2));
- clone2.lastIndex = object2.lastIndex;
- return clone2;
- }
- if (realm.Map && object2 instanceof realm.Map) {
- cache.add(object2);
- clone2 = new Constructor();
- object2.forEach((value, key) => {
- clone2.set(key, handleCopy(value, cache));
- });
- return clone2;
- }
- if (realm.Set && object2 instanceof realm.Set) {
- cache.add(object2);
- clone2 = new Constructor();
- object2.forEach((value) => {
- clone2.add(handleCopy(value, cache));
- });
- return clone2;
- }
- if (realm.Buffer && realm.Buffer.isBuffer(object2)) {
- clone2 = realm.Buffer.allocUnsafe ? realm.Buffer.allocUnsafe(object2.length) : new Constructor(object2.length);
- object2.copy(clone2);
- return clone2;
- }
- if (realm.ArrayBuffer) {
- if (realm.ArrayBuffer.isView(object2)) {
- return new Constructor(object2.buffer.slice(0));
- }
- if (object2 instanceof realm.ArrayBuffer) {
- return object2.slice(0);
- }
- }
- if (
- // promise-like
- hasOwnProperty2.call(object2, "then") && typeof object2.then === "function" || // errors
- object2 instanceof Error || // weakmaps
- realm.WeakMap && object2 instanceof realm.WeakMap || // weaksets
- realm.WeakSet && object2 instanceof realm.WeakSet
- ) {
- return object2;
- }
- cache.add(object2);
- return getObjectClone(object2, realm, handleCopy, cache);
- };
- return handleCopy(object, createCache());
- }
- }
- exports.installHook = installHook;
- }
- ),
- /***/
- "../shared-utils/lib/backend.js": (
- /*!**************************************!*\
- !*** ../shared-utils/lib/backend.js ***!
- \**************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.getCatchedGetters = exports.getCustomStoreDetails = exports.getCustomRouterDetails = exports.isVueInstance = exports.getCustomObjectDetails = exports.getCustomInstanceDetails = exports.getInstanceMap = exports.backendInjections = void 0;
- exports.backendInjections = {
- instanceMap: /* @__PURE__ */ new Map(),
- isVueInstance: () => false,
- getCustomInstanceDetails: () => ({}),
- getCustomObjectDetails: () => void 0
- };
- function getInstanceMap() {
- return exports.backendInjections.instanceMap;
- }
- exports.getInstanceMap = getInstanceMap;
- function getCustomInstanceDetails(instance) {
- return exports.backendInjections.getCustomInstanceDetails(instance);
- }
- exports.getCustomInstanceDetails = getCustomInstanceDetails;
- function getCustomObjectDetails(value, proto) {
- return exports.backendInjections.getCustomObjectDetails(value, proto);
- }
- exports.getCustomObjectDetails = getCustomObjectDetails;
- function isVueInstance(value) {
- return exports.backendInjections.isVueInstance(value);
- }
- exports.isVueInstance = isVueInstance;
- function getCustomRouterDetails(router) {
- return {
- _custom: {
- type: "router",
- display: "VueRouter",
- value: {
- options: router.options,
- currentRoute: router.currentRoute
- },
- fields: {
- abstract: true
- }
- }
- };
- }
- exports.getCustomRouterDetails = getCustomRouterDetails;
- function getCustomStoreDetails(store) {
- return {
- _custom: {
- type: "store",
- display: "Store",
- value: {
- state: store.state,
- getters: getCatchedGetters(store)
- },
- fields: {
- abstract: true
- }
- }
- };
- }
- exports.getCustomStoreDetails = getCustomStoreDetails;
- function getCatchedGetters(store) {
- const getters = {};
- const origGetters = store.getters || {};
- const keys = Object.keys(origGetters);
- for (let i2 = 0; i2 < keys.length; i2++) {
- const key = keys[i2];
- Object.defineProperty(getters, key, {
- enumerable: true,
- get: () => {
- try {
- return origGetters[key];
- } catch (e2) {
- return e2;
- }
- }
- });
- }
- return getters;
- }
- exports.getCatchedGetters = getCatchedGetters;
- }
- ),
- /***/
- "../shared-utils/lib/bridge.js": (
- /*!*************************************!*\
- !*** ../shared-utils/lib/bridge.js ***!
- \*************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.Bridge = void 0;
- const events_1 = __webpack_require__2(
- /*! events */
- "../../node_modules/events/events.js"
- );
- const raf_1 = __webpack_require__2(
- /*! ./raf */
- "../shared-utils/lib/raf.js"
- );
- const BATCH_DURATION = 100;
- class Bridge extends events_1.EventEmitter {
- constructor(wall) {
- super();
- this.setMaxListeners(Infinity);
- this.wall = wall;
- wall.listen((messages2) => {
- if (Array.isArray(messages2)) {
- messages2.forEach((message) => this._emit(message));
- } else {
- this._emit(messages2);
- }
- });
- this._batchingQueue = [];
- this._sendingQueue = [];
- this._receivingQueue = [];
- this._sending = false;
- }
- on(event, listener) {
- const wrappedListener = async (...args) => {
- try {
- await listener(...args);
- } catch (e2) {
- console.error(`[Bridge] Error in listener for event ${event.toString()} with args:`, args);
- console.error(e2);
- }
- };
- return super.on(event, wrappedListener);
- }
- send(event, payload) {
- this._batchingQueue.push({
- event,
- payload
- });
- if (this._timer == null) {
- this._timer = setTimeout(() => this._flush(), BATCH_DURATION);
- }
- }
- /**
- * Log a message to the devtools background page.
- */
- log(message) {
- this.send("log", message);
- }
- _flush() {
- if (this._batchingQueue.length)
- this._send(this._batchingQueue);
- clearTimeout(this._timer);
- this._timer = null;
- this._batchingQueue = [];
- }
- // @TODO types
- _emit(message) {
- if (typeof message === "string") {
- this.emit(message);
- } else if (message._chunk) {
- this._receivingQueue.push(message._chunk);
- if (message.last) {
- this.emit(message.event, this._receivingQueue);
- this._receivingQueue = [];
- }
- } else if (message.event) {
- this.emit(message.event, message.payload);
- }
- }
- // @TODO types
- _send(messages2) {
- this._sendingQueue.push(messages2);
- this._nextSend();
- }
- _nextSend() {
- if (!this._sendingQueue.length || this._sending)
- return;
- this._sending = true;
- const messages2 = this._sendingQueue.shift();
- try {
- this.wall.send(messages2);
- } catch (err) {
- if (err.message === "Message length exceeded maximum allowed length.") {
- this._sendingQueue.splice(0, 0, messages2.map((message) => [message]));
- }
- }
- this._sending = false;
- (0, raf_1.raf)(() => this._nextSend());
- }
- }
- exports.Bridge = Bridge;
- }
- ),
- /***/
- "../shared-utils/lib/consts.js": (
- /*!*************************************!*\
- !*** ../shared-utils/lib/consts.js ***!
- \*************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.HookEvents = exports.BridgeSubscriptions = exports.BridgeEvents = exports.BuiltinTabs = void 0;
- (function(BuiltinTabs) {
- BuiltinTabs["COMPONENTS"] = "components";
- BuiltinTabs["TIMELINE"] = "timeline";
- BuiltinTabs["PLUGINS"] = "plugins";
- BuiltinTabs["SETTINGS"] = "settings";
- })(exports.BuiltinTabs || (exports.BuiltinTabs = {}));
- (function(BridgeEvents) {
- BridgeEvents["TO_BACK_SUBSCRIBE"] = "b:subscribe";
- BridgeEvents["TO_BACK_UNSUBSCRIBE"] = "b:unsubscribe";
- BridgeEvents["TO_FRONT_READY"] = "f:ready";
- BridgeEvents["TO_BACK_LOG_DETECTED_VUE"] = "b:log-detected-vue";
- BridgeEvents["TO_BACK_REFRESH"] = "b:refresh";
- BridgeEvents["TO_BACK_TAB_SWITCH"] = "b:tab:switch";
- BridgeEvents["TO_BACK_LOG"] = "b:log";
- BridgeEvents["TO_FRONT_RECONNECTED"] = "f:reconnected";
- BridgeEvents["TO_FRONT_TITLE"] = "f:title";
- BridgeEvents["TO_FRONT_APP_ADD"] = "f:app:add";
- BridgeEvents["TO_BACK_APP_LIST"] = "b:app:list";
- BridgeEvents["TO_FRONT_APP_LIST"] = "f:app:list";
- BridgeEvents["TO_FRONT_APP_REMOVE"] = "f:app:remove";
- BridgeEvents["TO_BACK_APP_SELECT"] = "b:app:select";
- BridgeEvents["TO_FRONT_APP_SELECTED"] = "f:app:selected";
- BridgeEvents["TO_BACK_SCAN_LEGACY_APPS"] = "b:app:scan-legacy";
- BridgeEvents["TO_BACK_COMPONENT_TREE"] = "b:component:tree";
- BridgeEvents["TO_FRONT_COMPONENT_TREE"] = "f:component:tree";
- BridgeEvents["TO_BACK_COMPONENT_SELECTED_DATA"] = "b:component:selected-data";
- BridgeEvents["TO_FRONT_COMPONENT_SELECTED_DATA"] = "f:component:selected-data";
- BridgeEvents["TO_BACK_COMPONENT_EXPAND"] = "b:component:expand";
- BridgeEvents["TO_FRONT_COMPONENT_EXPAND"] = "f:component:expand";
- BridgeEvents["TO_BACK_COMPONENT_SCROLL_TO"] = "b:component:scroll-to";
- BridgeEvents["TO_BACK_COMPONENT_FILTER"] = "b:component:filter";
- BridgeEvents["TO_BACK_COMPONENT_MOUSE_OVER"] = "b:component:mouse-over";
- BridgeEvents["TO_BACK_COMPONENT_MOUSE_OUT"] = "b:component:mouse-out";
- BridgeEvents["TO_BACK_COMPONENT_CONTEXT_MENU_TARGET"] = "b:component:context-menu-target";
- BridgeEvents["TO_BACK_COMPONENT_EDIT_STATE"] = "b:component:edit-state";
- BridgeEvents["TO_BACK_COMPONENT_PICK"] = "b:component:pick";
- BridgeEvents["TO_FRONT_COMPONENT_PICK"] = "f:component:pick";
- BridgeEvents["TO_BACK_COMPONENT_PICK_CANCELED"] = "b:component:pick-canceled";
- BridgeEvents["TO_FRONT_COMPONENT_PICK_CANCELED"] = "f:component:pick-canceled";
- BridgeEvents["TO_BACK_COMPONENT_INSPECT_DOM"] = "b:component:inspect-dom";
- BridgeEvents["TO_FRONT_COMPONENT_INSPECT_DOM"] = "f:component:inspect-dom";
- BridgeEvents["TO_BACK_COMPONENT_RENDER_CODE"] = "b:component:render-code";
- BridgeEvents["TO_FRONT_COMPONENT_RENDER_CODE"] = "f:component:render-code";
- BridgeEvents["TO_FRONT_COMPONENT_UPDATED"] = "f:component:updated";
- BridgeEvents["TO_FRONT_TIMELINE_EVENT"] = "f:timeline:event";
- BridgeEvents["TO_BACK_TIMELINE_LAYER_LIST"] = "b:timeline:layer-list";
- BridgeEvents["TO_FRONT_TIMELINE_LAYER_LIST"] = "f:timeline:layer-list";
- BridgeEvents["TO_FRONT_TIMELINE_LAYER_ADD"] = "f:timeline:layer-add";
- BridgeEvents["TO_BACK_TIMELINE_SHOW_SCREENSHOT"] = "b:timeline:show-screenshot";
- BridgeEvents["TO_BACK_TIMELINE_CLEAR"] = "b:timeline:clear";
- BridgeEvents["TO_BACK_TIMELINE_EVENT_DATA"] = "b:timeline:event-data";
- BridgeEvents["TO_FRONT_TIMELINE_EVENT_DATA"] = "f:timeline:event-data";
- BridgeEvents["TO_BACK_TIMELINE_LAYER_LOAD_EVENTS"] = "b:timeline:layer-load-events";
- BridgeEvents["TO_FRONT_TIMELINE_LAYER_LOAD_EVENTS"] = "f:timeline:layer-load-events";
- BridgeEvents["TO_BACK_TIMELINE_LOAD_MARKERS"] = "b:timeline:load-markers";
- BridgeEvents["TO_FRONT_TIMELINE_LOAD_MARKERS"] = "f:timeline:load-markers";
- BridgeEvents["TO_FRONT_TIMELINE_MARKER"] = "f:timeline:marker";
- BridgeEvents["TO_BACK_DEVTOOLS_PLUGIN_LIST"] = "b:devtools-plugin:list";
- BridgeEvents["TO_FRONT_DEVTOOLS_PLUGIN_LIST"] = "f:devtools-plugin:list";
- BridgeEvents["TO_FRONT_DEVTOOLS_PLUGIN_ADD"] = "f:devtools-plugin:add";
- BridgeEvents["TO_BACK_DEVTOOLS_PLUGIN_SETTING_UPDATED"] = "b:devtools-plugin:setting-updated";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_LIST"] = "b:custom-inspector:list";
- BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_LIST"] = "f:custom-inspector:list";
- BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_ADD"] = "f:custom-inspector:add";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_TREE"] = "b:custom-inspector:tree";
- BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_TREE"] = "f:custom-inspector:tree";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_STATE"] = "b:custom-inspector:state";
- BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_STATE"] = "f:custom-inspector:state";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_EDIT_STATE"] = "b:custom-inspector:edit-state";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_ACTION"] = "b:custom-inspector:action";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_NODE_ACTION"] = "b:custom-inspector:node-action";
- BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_SELECT_NODE"] = "f:custom-inspector:select-node";
- BridgeEvents["TO_BACK_CUSTOM_STATE_ACTION"] = "b:custom-state:action";
- })(exports.BridgeEvents || (exports.BridgeEvents = {}));
- (function(BridgeSubscriptions) {
- BridgeSubscriptions["SELECTED_COMPONENT_DATA"] = "component:selected-data";
- BridgeSubscriptions["COMPONENT_TREE"] = "component:tree";
- })(exports.BridgeSubscriptions || (exports.BridgeSubscriptions = {}));
- (function(HookEvents) {
- HookEvents["INIT"] = "init";
- HookEvents["APP_INIT"] = "app:init";
- HookEvents["APP_ADD"] = "app:add";
- HookEvents["APP_UNMOUNT"] = "app:unmount";
- HookEvents["COMPONENT_UPDATED"] = "component:updated";
- HookEvents["COMPONENT_ADDED"] = "component:added";
- HookEvents["COMPONENT_REMOVED"] = "component:removed";
- HookEvents["COMPONENT_EMIT"] = "component:emit";
- HookEvents["COMPONENT_HIGHLIGHT"] = "component:highlight";
- HookEvents["COMPONENT_UNHIGHLIGHT"] = "component:unhighlight";
- HookEvents["SETUP_DEVTOOLS_PLUGIN"] = "devtools-plugin:setup";
- HookEvents["TIMELINE_LAYER_ADDED"] = "timeline:layer-added";
- HookEvents["TIMELINE_EVENT_ADDED"] = "timeline:event-added";
- HookEvents["CUSTOM_INSPECTOR_ADD"] = "custom-inspector:add";
- HookEvents["CUSTOM_INSPECTOR_SEND_TREE"] = "custom-inspector:send-tree";
- HookEvents["CUSTOM_INSPECTOR_SEND_STATE"] = "custom-inspector:send-state";
- HookEvents["CUSTOM_INSPECTOR_SELECT_NODE"] = "custom-inspector:select-node";
- HookEvents["PERFORMANCE_START"] = "perf:start";
- HookEvents["PERFORMANCE_END"] = "perf:end";
- HookEvents["PLUGIN_SETTINGS_SET"] = "plugin:settings:set";
- HookEvents["FLUSH"] = "flush";
- HookEvents["TRACK_UPDATE"] = "_track-update";
- HookEvents["FLASH_UPDATE"] = "_flash-update";
- })(exports.HookEvents || (exports.HookEvents = {}));
- }
- ),
- /***/
- "../shared-utils/lib/edit.js": (
- /*!***********************************!*\
- !*** ../shared-utils/lib/edit.js ***!
- \***********************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.StateEditor = void 0;
- class StateEditor {
- set(object, path, value, cb = null) {
- const sections = Array.isArray(path) ? path : path.split(".");
- while (sections.length > 1) {
- object = object[sections.shift()];
- if (this.isRef(object)) {
- object = this.getRefValue(object);
- }
- }
- const field = sections[0];
- if (cb) {
- cb(object, field, value);
- } else if (this.isRef(object[field])) {
- this.setRefValue(object[field], value);
- } else {
- object[field] = value;
- }
- }
- get(object, path) {
- const sections = Array.isArray(path) ? path : path.split(".");
- for (let i2 = 0; i2 < sections.length; i2++) {
- object = object[sections[i2]];
- if (this.isRef(object)) {
- object = this.getRefValue(object);
- }
- if (!object) {
- return void 0;
- }
- }
- return object;
- }
- has(object, path, parent = false) {
- if (typeof object === "undefined") {
- return false;
- }
- const sections = Array.isArray(path) ? path.slice() : path.split(".");
- const size = !parent ? 1 : 2;
- while (object && sections.length > size) {
- object = object[sections.shift()];
- if (this.isRef(object)) {
- object = this.getRefValue(object);
- }
- }
- return object != null && Object.prototype.hasOwnProperty.call(object, sections[0]);
- }
- createDefaultSetCallback(state) {
- return (obj, field, value) => {
- if (state.remove || state.newKey) {
- if (Array.isArray(obj)) {
- obj.splice(field, 1);
- } else {
- delete obj[field];
- }
- }
- if (!state.remove) {
- const target = obj[state.newKey || field];
- if (this.isRef(target)) {
- this.setRefValue(target, value);
- } else {
- obj[state.newKey || field] = value;
- }
- }
- };
- }
- isRef(ref) {
- return false;
- }
- setRefValue(ref, value) {
- }
- getRefValue(ref) {
- return ref;
- }
- }
- exports.StateEditor = StateEditor;
- }
- ),
- /***/
- "../shared-utils/lib/env.js": (
- /*!**********************************!*\
- !*** ../shared-utils/lib/env.js ***!
- \**********************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.initEnv = exports.keys = exports.isLinux = exports.isMac = exports.isWindows = exports.isFirefox = exports.isChrome = exports.target = exports.isBrowser = void 0;
- exports.isBrowser = typeof navigator !== "undefined" && typeof window !== "undefined";
- exports.target = exports.isBrowser ? window : typeof globalThis !== "undefined" ? globalThis : typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof my !== "undefined" ? my : {};
- exports.isChrome = typeof exports.target.chrome !== "undefined" && !!exports.target.chrome.devtools;
- exports.isFirefox = exports.isBrowser && navigator.userAgent && navigator.userAgent.indexOf("Firefox") > -1;
- exports.isWindows = exports.isBrowser && navigator.platform.indexOf("Win") === 0;
- exports.isMac = exports.isBrowser && navigator.platform === "MacIntel";
- exports.isLinux = exports.isBrowser && navigator.platform.indexOf("Linux") === 0;
- exports.keys = {
- ctrl: exports.isMac ? "⌘" : "Ctrl",
- shift: "Shift",
- alt: exports.isMac ? "⌥" : "Alt",
- del: "Del",
- enter: "Enter",
- esc: "Esc"
- };
- function initEnv(Vue2) {
- if (Vue2.prototype.hasOwnProperty("$isChrome"))
- return;
- Object.defineProperties(Vue2.prototype, {
- $isChrome: {
- get: () => exports.isChrome
- },
- $isFirefox: {
- get: () => exports.isFirefox
- },
- $isWindows: {
- get: () => exports.isWindows
- },
- $isMac: {
- get: () => exports.isMac
- },
- $isLinux: {
- get: () => exports.isLinux
- },
- $keys: {
- get: () => exports.keys
- }
- });
- if (exports.isWindows)
- document.body.classList.add("platform-windows");
- if (exports.isMac)
- document.body.classList.add("platform-mac");
- if (exports.isLinux)
- document.body.classList.add("platform-linux");
- }
- exports.initEnv = initEnv;
- }
- ),
- /***/
- "../shared-utils/lib/index.js": (
- /*!************************************!*\
- !*** ../shared-utils/lib/index.js ***!
- \************************************/
- /***/
- function(__unused_webpack_module, exports, __webpack_require__2) {
- var __createBinding = this && this.__createBinding || (Object.create ? function(o2, m2, k, k2) {
- if (k2 === void 0)
- k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m2, k);
- if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
- desc = {
- enumerable: true,
- get: function() {
- return m2[k];
- }
- };
- }
- Object.defineProperty(o2, k2, desc);
- } : function(o2, m2, k, k2) {
- if (k2 === void 0)
- k2 = k;
- o2[k2] = m2[k];
- });
- var __exportStar = this && this.__exportStar || function(m2, exports2) {
- for (var p2 in m2)
- if (p2 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p2))
- __createBinding(exports2, m2, p2);
- };
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- __exportStar(__webpack_require__2(
- /*! ./backend */
- "../shared-utils/lib/backend.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./bridge */
- "../shared-utils/lib/bridge.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./consts */
- "../shared-utils/lib/consts.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./edit */
- "../shared-utils/lib/edit.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./env */
- "../shared-utils/lib/env.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./plugin-permissions */
- "../shared-utils/lib/plugin-permissions.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./plugin-settings */
- "../shared-utils/lib/plugin-settings.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./shared-data */
- "../shared-utils/lib/shared-data.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./shell */
- "../shared-utils/lib/shell.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./storage */
- "../shared-utils/lib/storage.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./transfer */
- "../shared-utils/lib/transfer.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./util */
- "../shared-utils/lib/util.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./raf */
- "../shared-utils/lib/raf.js"
- ), exports);
- }
- ),
- /***/
- "../shared-utils/lib/plugin-permissions.js": (
- /*!*************************************************!*\
- !*** ../shared-utils/lib/plugin-permissions.js ***!
- \*************************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.setPluginPermission = exports.hasPluginPermission = exports.PluginPermission = void 0;
- const shared_data_1 = __webpack_require__2(
- /*! ./shared-data */
- "../shared-utils/lib/shared-data.js"
- );
- (function(PluginPermission) {
- PluginPermission["ENABLED"] = "enabled";
- PluginPermission["COMPONENTS"] = "components";
- PluginPermission["CUSTOM_INSPECTOR"] = "custom-inspector";
- PluginPermission["TIMELINE"] = "timeline";
- })(exports.PluginPermission || (exports.PluginPermission = {}));
- function hasPluginPermission(pluginId, permission2) {
- const result = shared_data_1.SharedData.pluginPermissions[`${pluginId}:${permission2}`];
- if (result == null)
- return true;
- return !!result;
- }
- exports.hasPluginPermission = hasPluginPermission;
- function setPluginPermission(pluginId, permission2, active) {
- shared_data_1.SharedData.pluginPermissions = {
- ...shared_data_1.SharedData.pluginPermissions,
- [`${pluginId}:${permission2}`]: active
- };
- }
- exports.setPluginPermission = setPluginPermission;
- }
- ),
- /***/
- "../shared-utils/lib/plugin-settings.js": (
- /*!**********************************************!*\
- !*** ../shared-utils/lib/plugin-settings.js ***!
- \**********************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.getPluginDefaultSettings = exports.setPluginSettings = exports.getPluginSettings = void 0;
- const shared_data_1 = __webpack_require__2(
- /*! ./shared-data */
- "../shared-utils/lib/shared-data.js"
- );
- function getPluginSettings(pluginId, defaultSettings) {
- var _a;
- return {
- ...defaultSettings !== null && defaultSettings !== void 0 ? defaultSettings : {},
- ...(_a = shared_data_1.SharedData.pluginSettings[pluginId]) !== null && _a !== void 0 ? _a : {}
- };
- }
- exports.getPluginSettings = getPluginSettings;
- function setPluginSettings(pluginId, settings) {
- shared_data_1.SharedData.pluginSettings = {
- ...shared_data_1.SharedData.pluginSettings,
- [pluginId]: settings
- };
- }
- exports.setPluginSettings = setPluginSettings;
- function getPluginDefaultSettings(schema) {
- const result = {};
- if (schema) {
- for (const id in schema) {
- const item = schema[id];
- result[id] = item.defaultValue;
- }
- }
- return result;
- }
- exports.getPluginDefaultSettings = getPluginDefaultSettings;
- }
- ),
- /***/
- "../shared-utils/lib/raf.js": (
- /*!**********************************!*\
- !*** ../shared-utils/lib/raf.js ***!
- \**********************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.raf = void 0;
- let pendingCallbacks = [];
- exports.raf = typeof requestAnimationFrame === "function" ? requestAnimationFrame : typeof setImmediate === "function" ? (fn) => {
- if (!pendingCallbacks.length) {
- setImmediate(() => {
- const now = performance.now();
- const cbs = pendingCallbacks;
- pendingCallbacks = [];
- cbs.forEach((cb) => cb(now));
- });
- }
- pendingCallbacks.push(fn);
- } : function(callback) {
- return setTimeout(function() {
- callback(Date.now());
- }, 1e3 / 60);
- };
- }
- ),
- /***/
- "../shared-utils/lib/shared-data.js": (
- /*!******************************************!*\
- !*** ../shared-utils/lib/shared-data.js ***!
- \******************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.SharedData = exports.watchSharedData = exports.destroySharedData = exports.onSharedDataInit = exports.initSharedData = void 0;
- const storage_1 = __webpack_require__2(
- /*! ./storage */
- "../shared-utils/lib/storage.js"
- );
- const env_1 = __webpack_require__2(
- /*! ./env */
- "../shared-utils/lib/env.js"
- );
- const internalSharedData = {
- openInEditorHost: "/",
- componentNameStyle: "class",
- theme: "auto",
- displayDensity: "low",
- timeFormat: "default",
- recordVuex: true,
- cacheVuexSnapshotsEvery: 50,
- cacheVuexSnapshotsLimit: 10,
- snapshotLoading: false,
- componentEventsEnabled: true,
- performanceMonitoringEnabled: true,
- editableProps: false,
- logDetected: true,
- vuexNewBackend: false,
- vuexAutoload: false,
- vuexGroupGettersByModule: true,
- showMenuScrollTip: true,
- timelineTimeGrid: true,
- timelineScreenshots: true,
- menuStepScrolling: env_1.isMac,
- pluginPermissions: {},
- pluginSettings: {},
- pageConfig: {},
- legacyApps: false,
- trackUpdates: true,
- flashUpdates: false,
- debugInfo: false,
- isBrowser: env_1.isBrowser
- };
- const persisted = ["componentNameStyle", "theme", "displayDensity", "recordVuex", "editableProps", "logDetected", "vuexNewBackend", "vuexAutoload", "vuexGroupGettersByModule", "timeFormat", "showMenuScrollTip", "timelineTimeGrid", "timelineScreenshots", "menuStepScrolling", "pluginPermissions", "pluginSettings", "performanceMonitoringEnabled", "componentEventsEnabled", "trackUpdates", "flashUpdates", "debugInfo"];
- const storageVersion = "6.0.0-alpha.1";
- let bridge;
- let persist = false;
- let data;
- let initRetryInterval;
- let initRetryCount = 0;
- const initCbs = [];
- function initSharedData(params) {
- return new Promise((resolve) => {
- bridge = params.bridge;
- persist = !!params.persist;
- if (persist) {
- {
- console.log("[shared data] Master init in progress...");
- }
- persisted.forEach((key) => {
- const value = (0, storage_1.getStorage)(`vue-devtools-${storageVersion}:shared-data:${key}`);
- if (value !== null) {
- internalSharedData[key] = value;
- }
- });
- bridge.on("shared-data:load", () => {
- Object.keys(internalSharedData).forEach((key) => {
- sendValue(key, internalSharedData[key]);
- });
- bridge.send("shared-data:load-complete");
- });
- bridge.on("shared-data:init-complete", () => {
- {
- console.log("[shared data] Master init complete");
- }
- clearInterval(initRetryInterval);
- resolve();
- });
- bridge.send("shared-data:master-init-waiting");
- bridge.on("shared-data:minion-init-waiting", () => {
- bridge.send("shared-data:master-init-waiting");
- });
- initRetryCount = 0;
- clearInterval(initRetryInterval);
- initRetryInterval = setInterval(() => {
- {
- console.log("[shared data] Master init retrying...");
- }
- bridge.send("shared-data:master-init-waiting");
- initRetryCount++;
- if (initRetryCount > 30) {
- clearInterval(initRetryInterval);
- console.error("[shared data] Master init failed");
- }
- }, 2e3);
- } else {
- bridge.on("shared-data:master-init-waiting", () => {
- bridge.send("shared-data:load");
- bridge.once("shared-data:load-complete", () => {
- bridge.send("shared-data:init-complete");
- resolve();
- });
- });
- bridge.send("shared-data:minion-init-waiting");
- }
- data = {
- ...internalSharedData
- };
- if (params.Vue) {
- data = params.Vue.observable(data);
- }
- bridge.on("shared-data:set", ({
- key,
- value
- }) => {
- setValue(key, value);
- });
- initCbs.forEach((cb) => cb());
- });
- }
- exports.initSharedData = initSharedData;
- function onSharedDataInit(cb) {
- initCbs.push(cb);
- return () => {
- const index = initCbs.indexOf(cb);
- if (index !== -1)
- initCbs.splice(index, 1);
- };
- }
- exports.onSharedDataInit = onSharedDataInit;
- function destroySharedData() {
- bridge.removeAllListeners("shared-data:set");
- watchers = {};
- }
- exports.destroySharedData = destroySharedData;
- let watchers = {};
- function setValue(key, value) {
- if (persist && persisted.includes(key)) {
- (0, storage_1.setStorage)(`vue-devtools-${storageVersion}:shared-data:${key}`, value);
- }
- const oldValue = data[key];
- data[key] = value;
- const handlers = watchers[key];
- if (handlers) {
- handlers.forEach((h2) => h2(value, oldValue));
- }
- return true;
- }
- function sendValue(key, value) {
- bridge && bridge.send("shared-data:set", {
- key,
- value
- });
- }
- function watchSharedData(prop, handler) {
- const list = watchers[prop] || (watchers[prop] = []);
- list.push(handler);
- return () => {
- const index = list.indexOf(handler);
- if (index !== -1)
- list.splice(index, 1);
- };
- }
- exports.watchSharedData = watchSharedData;
- const proxy = {};
- Object.keys(internalSharedData).forEach((key) => {
- Object.defineProperty(proxy, key, {
- configurable: false,
- get: () => data[key],
- set: (value) => {
- sendValue(key, value);
- setValue(key, value);
- }
- });
- });
- exports.SharedData = proxy;
- }
- ),
- /***/
- "../shared-utils/lib/shell.js": (
- /*!************************************!*\
- !*** ../shared-utils/lib/shell.js ***!
- \************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- }
- ),
- /***/
- "../shared-utils/lib/storage.js": (
- /*!**************************************!*\
- !*** ../shared-utils/lib/storage.js ***!
- \**************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.clearStorage = exports.removeStorage = exports.setStorage = exports.getStorage = exports.initStorage = void 0;
- const env_1 = __webpack_require__2(
- /*! ./env */
- "../shared-utils/lib/env.js"
- );
- const useStorage = typeof env_1.target.chrome !== "undefined" && typeof env_1.target.chrome.storage !== "undefined";
- let storageData = null;
- function initStorage() {
- return new Promise((resolve) => {
- if (useStorage) {
- env_1.target.chrome.storage.local.get(null, (result) => {
- storageData = result;
- resolve();
- });
- } else {
- storageData = {};
- resolve();
- }
- });
- }
- exports.initStorage = initStorage;
- function getStorage(key, defaultValue = null) {
- checkStorage();
- if (useStorage) {
- return getDefaultValue(storageData[key], defaultValue);
- } else {
- try {
- return getDefaultValue(JSON.parse(localStorage.getItem(key)), defaultValue);
- } catch (e2) {
- }
- }
- }
- exports.getStorage = getStorage;
- function setStorage(key, val) {
- checkStorage();
- if (useStorage) {
- storageData[key] = val;
- env_1.target.chrome.storage.local.set({
- [key]: val
- });
- } else {
- try {
- localStorage.setItem(key, JSON.stringify(val));
- } catch (e2) {
- }
- }
- }
- exports.setStorage = setStorage;
- function removeStorage(key) {
- checkStorage();
- if (useStorage) {
- delete storageData[key];
- env_1.target.chrome.storage.local.remove([key]);
- } else {
- try {
- localStorage.removeItem(key);
- } catch (e2) {
- }
- }
- }
- exports.removeStorage = removeStorage;
- function clearStorage() {
- checkStorage();
- if (useStorage) {
- storageData = {};
- env_1.target.chrome.storage.local.clear();
- } else {
- try {
- localStorage.clear();
- } catch (e2) {
- }
- }
- }
- exports.clearStorage = clearStorage;
- function checkStorage() {
- if (!storageData) {
- throw new Error("Storage wasn't initialized with 'init()'");
- }
- }
- function getDefaultValue(value, defaultValue) {
- if (value == null) {
- return defaultValue;
- }
- return value;
- }
- }
- ),
- /***/
- "../shared-utils/lib/transfer.js": (
- /*!***************************************!*\
- !*** ../shared-utils/lib/transfer.js ***!
- \***************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.stringifyStrictCircularAutoChunks = exports.parseCircularAutoChunks = exports.stringifyCircularAutoChunks = void 0;
- const MAX_SERIALIZED_SIZE = 512 * 1024;
- function encode(data, replacer, list, seen) {
- let stored, key, value, i2, l2;
- const seenIndex = seen.get(data);
- if (seenIndex != null) {
- return seenIndex;
- }
- const index = list.length;
- const proto = Object.prototype.toString.call(data);
- if (proto === "[object Object]") {
- stored = {};
- seen.set(data, index);
- list.push(stored);
- const keys = Object.keys(data);
- for (i2 = 0, l2 = keys.length; i2 < l2; i2++) {
- key = keys[i2];
- try {
- value = data[key];
- if (replacer)
- value = replacer.call(data, key, value);
- } catch (e2) {
- value = e2;
- }
- stored[key] = encode(value, replacer, list, seen);
- }
- } else if (proto === "[object Array]") {
- stored = [];
- seen.set(data, index);
- list.push(stored);
- for (i2 = 0, l2 = data.length; i2 < l2; i2++) {
- try {
- value = data[i2];
- if (replacer)
- value = replacer.call(data, i2, value);
- } catch (e2) {
- value = e2;
- }
- stored[i2] = encode(value, replacer, list, seen);
- }
- } else {
- list.push(data);
- }
- return index;
- }
- function decode(list, reviver) {
- let i2 = list.length;
- let j2, k, data, key, value, proto;
- while (i2--) {
- data = list[i2];
- proto = Object.prototype.toString.call(data);
- if (proto === "[object Object]") {
- const keys = Object.keys(data);
- for (j2 = 0, k = keys.length; j2 < k; j2++) {
- key = keys[j2];
- value = list[data[key]];
- if (reviver)
- value = reviver.call(data, key, value);
- data[key] = value;
- }
- } else if (proto === "[object Array]") {
- for (j2 = 0, k = data.length; j2 < k; j2++) {
- value = list[data[j2]];
- if (reviver)
- value = reviver.call(data, j2, value);
- data[j2] = value;
- }
- }
- }
- }
- function stringifyCircularAutoChunks(data, replacer = null, space = null) {
- let result;
- try {
- result = arguments.length === 1 ? JSON.stringify(data) : JSON.stringify(data, replacer, space);
- } catch (e2) {
- result = stringifyStrictCircularAutoChunks(data, replacer, space);
- }
- if (result.length > MAX_SERIALIZED_SIZE) {
- const chunkCount = Math.ceil(result.length / MAX_SERIALIZED_SIZE);
- const chunks = [];
- for (let i2 = 0; i2 < chunkCount; i2++) {
- chunks.push(result.slice(i2 * MAX_SERIALIZED_SIZE, (i2 + 1) * MAX_SERIALIZED_SIZE));
- }
- return chunks;
- }
- return result;
- }
- exports.stringifyCircularAutoChunks = stringifyCircularAutoChunks;
- function parseCircularAutoChunks(data, reviver = null) {
- if (Array.isArray(data)) {
- data = data.join("");
- }
- const hasCircular = /^\s/.test(data);
- if (!hasCircular) {
- return arguments.length === 1 ? JSON.parse(data) : JSON.parse(data, reviver);
- } else {
- const list = JSON.parse(data);
- decode(list, reviver);
- return list[0];
- }
- }
- exports.parseCircularAutoChunks = parseCircularAutoChunks;
- function stringifyStrictCircularAutoChunks(data, replacer = null, space = null) {
- const list = [];
- encode(data, replacer, list, /* @__PURE__ */ new Map());
- return space ? " " + JSON.stringify(list, null, space) : " " + JSON.stringify(list);
- }
- exports.stringifyStrictCircularAutoChunks = stringifyStrictCircularAutoChunks;
- }
- ),
- /***/
- "../shared-utils/lib/util.js": (
- /*!***********************************!*\
- !*** ../shared-utils/lib/util.js ***!
- \***********************************/
- /***/
- function(__unused_webpack_module, exports, __webpack_require__2) {
- var __importDefault = this && this.__importDefault || function(mod) {
- return mod && mod.__esModule ? mod : {
- "default": mod
- };
- };
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.isEmptyObject = exports.copyToClipboard = exports.escape = exports.openInEditor = exports.focusInput = exports.simpleGet = exports.sortByKey = exports.searchDeepInObject = exports.isPlainObject = exports.revive = exports.parse = exports.getCustomRefDetails = exports.getCustomHTMLElementDetails = exports.getCustomFunctionDetails = exports.getCustomComponentDefinitionDetails = exports.getComponentName = exports.reviveSet = exports.getCustomSetDetails = exports.reviveMap = exports.getCustomMapDetails = exports.stringify = exports.specialTokenToString = exports.MAX_ARRAY_SIZE = exports.MAX_STRING_SIZE = exports.SPECIAL_TOKENS = exports.NAN = exports.NEGATIVE_INFINITY = exports.INFINITY = exports.UNDEFINED = exports.inDoc = exports.getComponentDisplayName = exports.kebabize = exports.camelize = exports.classify = void 0;
- const path_1 = __importDefault(__webpack_require__2(
- /*! path */
- "../../node_modules/path-browserify/index.js"
- ));
- const transfer_1 = __webpack_require__2(
- /*! ./transfer */
- "../shared-utils/lib/transfer.js"
- );
- const backend_1 = __webpack_require__2(
- /*! ./backend */
- "../shared-utils/lib/backend.js"
- );
- const shared_data_1 = __webpack_require__2(
- /*! ./shared-data */
- "../shared-utils/lib/shared-data.js"
- );
- const env_1 = __webpack_require__2(
- /*! ./env */
- "../shared-utils/lib/env.js"
- );
- function cached(fn) {
- const cache = /* @__PURE__ */ Object.create(null);
- return function cachedFn(str) {
- const hit = cache[str];
- return hit || (cache[str] = fn(str));
- };
- }
- const classifyRE = /(?:^|[-_/])(\w)/g;
- exports.classify = cached((str) => {
- return str && ("" + str).replace(classifyRE, toUpper);
- });
- const camelizeRE = /-(\w)/g;
- exports.camelize = cached((str) => {
- return str && str.replace(camelizeRE, toUpper);
- });
- const kebabizeRE = /([a-z0-9])([A-Z])/g;
- exports.kebabize = cached((str) => {
- return str && str.replace(kebabizeRE, (_2, lowerCaseCharacter, upperCaseLetter) => {
- return `${lowerCaseCharacter}-${upperCaseLetter}`;
- }).toLowerCase();
- });
- function toUpper(_2, c2) {
- return c2 ? c2.toUpperCase() : "";
- }
- function getComponentDisplayName(originalName, style = "class") {
- switch (style) {
- case "class":
- return (0, exports.classify)(originalName);
- case "kebab":
- return (0, exports.kebabize)(originalName);
- case "original":
- default:
- return originalName;
- }
- }
- exports.getComponentDisplayName = getComponentDisplayName;
- function inDoc(node) {
- if (!node)
- return false;
- const doc = node.ownerDocument.documentElement;
- const parent = node.parentNode;
- return doc === node || doc === parent || !!(parent && parent.nodeType === 1 && doc.contains(parent));
- }
- exports.inDoc = inDoc;
- exports.UNDEFINED = "__vue_devtool_undefined__";
- exports.INFINITY = "__vue_devtool_infinity__";
- exports.NEGATIVE_INFINITY = "__vue_devtool_negative_infinity__";
- exports.NAN = "__vue_devtool_nan__";
- exports.SPECIAL_TOKENS = {
- true: true,
- false: false,
- undefined: exports.UNDEFINED,
- null: null,
- "-Infinity": exports.NEGATIVE_INFINITY,
- Infinity: exports.INFINITY,
- NaN: exports.NAN
- };
- exports.MAX_STRING_SIZE = 1e4;
- exports.MAX_ARRAY_SIZE = 5e3;
- function specialTokenToString(value) {
- if (value === null) {
- return "null";
- } else if (value === exports.UNDEFINED) {
- return "undefined";
- } else if (value === exports.NAN) {
- return "NaN";
- } else if (value === exports.INFINITY) {
- return "Infinity";
- } else if (value === exports.NEGATIVE_INFINITY) {
- return "-Infinity";
- }
- return false;
- }
- exports.specialTokenToString = specialTokenToString;
- class EncodeCache {
- constructor() {
- this.map = /* @__PURE__ */ new Map();
- }
- /**
- * Returns a result unique to each input data
- * @param {*} data Input data
- * @param {*} factory Function used to create the unique result
- */
- cache(data, factory) {
- const cached2 = this.map.get(data);
- if (cached2) {
- return cached2;
- } else {
- const result = factory(data);
- this.map.set(data, result);
- return result;
- }
- }
- clear() {
- this.map.clear();
- }
- }
- const encodeCache = new EncodeCache();
- class ReviveCache {
- constructor(maxSize) {
- this.maxSize = maxSize;
- this.map = /* @__PURE__ */ new Map();
- this.index = 0;
- this.size = 0;
- }
- cache(value) {
- const currentIndex = this.index;
- this.map.set(currentIndex, value);
- this.size++;
- if (this.size > this.maxSize) {
- this.map.delete(currentIndex - this.size);
- this.size--;
- }
- this.index++;
- return currentIndex;
- }
- read(id) {
- return this.map.get(id);
- }
- }
- const reviveCache = new ReviveCache(1e3);
- const replacers = {
- internal: replacerForInternal,
- user: replaceForUser
- };
- function stringify(data, target = "internal") {
- encodeCache.clear();
- return (0, transfer_1.stringifyCircularAutoChunks)(data, replacers[target]);
- }
- exports.stringify = stringify;
- function replacerForInternal(key) {
- var _a;
- const val = this[key];
- const type = typeof val;
- if (Array.isArray(val)) {
- const l2 = val.length;
- if (l2 > exports.MAX_ARRAY_SIZE) {
- return {
- _isArray: true,
- length: l2,
- items: val.slice(0, exports.MAX_ARRAY_SIZE)
- };
- }
- return val;
- } else if (typeof val === "string") {
- if (val.length > exports.MAX_STRING_SIZE) {
- return val.substring(0, exports.MAX_STRING_SIZE) + `... (${val.length} total length)`;
- } else {
- return val;
- }
- } else if (type === "undefined") {
- return exports.UNDEFINED;
- } else if (val === Infinity) {
- return exports.INFINITY;
- } else if (val === -Infinity) {
- return exports.NEGATIVE_INFINITY;
- } else if (type === "function") {
- return getCustomFunctionDetails(val);
- } else if (type === "symbol") {
- return `[native Symbol ${Symbol.prototype.toString.call(val)}]`;
- } else if (val !== null && type === "object") {
- const proto = Object.prototype.toString.call(val);
- if (proto === "[object Map]") {
- return encodeCache.cache(val, () => getCustomMapDetails(val));
- } else if (proto === "[object Set]") {
- return encodeCache.cache(val, () => getCustomSetDetails(val));
- } else if (proto === "[object RegExp]") {
- return `[native RegExp ${RegExp.prototype.toString.call(val)}]`;
- } else if (proto === "[object Date]") {
- return `[native Date ${Date.prototype.toString.call(val)}]`;
- } else if (proto === "[object Error]") {
- return `[native Error ${val.message}<>${val.stack}]`;
- } else if (val.state && val._vm) {
- return encodeCache.cache(val, () => (0, backend_1.getCustomStoreDetails)(val));
- } else if (val.constructor && val.constructor.name === "VueRouter") {
- return encodeCache.cache(val, () => (0, backend_1.getCustomRouterDetails)(val));
- } else if ((0, backend_1.isVueInstance)(val)) {
- return encodeCache.cache(val, () => (0, backend_1.getCustomInstanceDetails)(val));
- } else if (typeof val.render === "function") {
- return encodeCache.cache(val, () => getCustomComponentDefinitionDetails(val));
- } else if (val.constructor && val.constructor.name === "VNode") {
- return `[native VNode <${val.tag}>]`;
- } else if (typeof HTMLElement !== "undefined" && val instanceof HTMLElement) {
- return encodeCache.cache(val, () => getCustomHTMLElementDetails(val));
- } else if (((_a = val.constructor) === null || _a === void 0 ? void 0 : _a.name) === "Store" && val._wrappedGetters) {
- return `[object Store]`;
- } else if (val.currentRoute) {
- return `[object Router]`;
- }
- const customDetails = (0, backend_1.getCustomObjectDetails)(val, proto);
- if (customDetails != null)
- return customDetails;
- } else if (Number.isNaN(val)) {
- return exports.NAN;
- }
- return sanitize(val);
- }
- function replaceForUser(key) {
- let val = this[key];
- const type = typeof val;
- if ((val === null || val === void 0 ? void 0 : val._custom) && "value" in val._custom) {
- val = val._custom.value;
- }
- if (type !== "object") {
- if (val === exports.UNDEFINED) {
- return void 0;
- } else if (val === exports.INFINITY) {
- return Infinity;
- } else if (val === exports.NEGATIVE_INFINITY) {
- return -Infinity;
- } else if (val === exports.NAN) {
- return NaN;
- }
- return val;
- }
- return sanitize(val);
- }
- function getCustomMapDetails(val) {
- const list = [];
- val.forEach((value, key) => list.push({
- key,
- value
- }));
- return {
- _custom: {
- type: "map",
- display: "Map",
- value: list,
- readOnly: true,
- fields: {
- abstract: true
- }
- }
- };
- }
- exports.getCustomMapDetails = getCustomMapDetails;
- function reviveMap(val) {
- const result = /* @__PURE__ */ new Map();
- const list = val._custom.value;
- for (let i2 = 0; i2 < list.length; i2++) {
- const {
- key,
- value
- } = list[i2];
- result.set(key, revive(value));
- }
- return result;
- }
- exports.reviveMap = reviveMap;
- function getCustomSetDetails(val) {
- const list = Array.from(val);
- return {
- _custom: {
- type: "set",
- display: `Set[${list.length}]`,
- value: list,
- readOnly: true
- }
- };
- }
- exports.getCustomSetDetails = getCustomSetDetails;
- function reviveSet(val) {
- const result = /* @__PURE__ */ new Set();
- const list = val._custom.value;
- for (let i2 = 0; i2 < list.length; i2++) {
- const value = list[i2];
- result.add(revive(value));
- }
- return result;
- }
- exports.reviveSet = reviveSet;
- function basename(filename, ext) {
- return path_1.default.basename(filename.replace(/^[a-zA-Z]:/, "").replace(/\\/g, "/"), ext);
- }
- function getComponentName(options) {
- const name = options.displayName || options.name || options._componentTag;
- if (name) {
- return name;
- }
- const file = options.__file;
- if (file) {
- return (0, exports.classify)(basename(file, ".vue"));
- }
- }
- exports.getComponentName = getComponentName;
- function getCustomComponentDefinitionDetails(def) {
- let display = getComponentName(def);
- if (display) {
- if (def.name && def.__file) {
- display += ` <span>(${def.__file})</span>`;
- }
- } else {
- display = "<i>Unknown Component</i>";
- }
- return {
- _custom: {
- type: "component-definition",
- display,
- tooltip: "Component definition",
- ...def.__file ? {
- file: def.__file
- } : {}
- }
- };
- }
- exports.getCustomComponentDefinitionDetails = getCustomComponentDefinitionDetails;
- function getCustomFunctionDetails(func) {
- let string = "";
- let matches = null;
- try {
- string = Function.prototype.toString.call(func);
- matches = String.prototype.match.call(string, /\([\s\S]*?\)/);
- } catch (e2) {
- }
- const match = matches && matches[0];
- const args = typeof match === "string" ? match : "(?)";
- const name = typeof func.name === "string" ? func.name : "";
- return {
- _custom: {
- type: "function",
- display: `<span style="opacity:.5;">function</span> ${escape2(name)}${args}`,
- tooltip: string.trim() ? `<pre>${string}</pre>` : null,
- _reviveId: reviveCache.cache(func)
- }
- };
- }
- exports.getCustomFunctionDetails = getCustomFunctionDetails;
- function getCustomHTMLElementDetails(value) {
- try {
- return {
- _custom: {
- type: "HTMLElement",
- display: `<span class="opacity-30"><</span><span class="text-blue-500">${value.tagName.toLowerCase()}</span><span class="opacity-30">></span>`,
- value: namedNodeMapToObject(value.attributes),
- actions: [{
- icon: "input",
- tooltip: "Log element to console",
- action: () => {
- console.log(value);
- }
- }]
- }
- };
- } catch (e2) {
- return {
- _custom: {
- type: "HTMLElement",
- display: `<span class="text-blue-500">${String(value)}</span>`
- }
- };
- }
- }
- exports.getCustomHTMLElementDetails = getCustomHTMLElementDetails;
- function namedNodeMapToObject(map) {
- const result = {};
- const l2 = map.length;
- for (let i2 = 0; i2 < l2; i2++) {
- const node = map.item(i2);
- result[node.name] = node.value;
- }
- return result;
- }
- function getCustomRefDetails(instance, key, ref) {
- let value;
- if (Array.isArray(ref)) {
- value = ref.map((r2) => getCustomRefDetails(instance, key, r2)).map((data) => data.value);
- } else {
- let name;
- if (ref._isVue) {
- name = getComponentName(ref.$options);
- } else {
- name = ref.tagName.toLowerCase();
- }
- value = {
- _custom: {
- display: `<${name}` + (ref.id ? ` <span class="attr-title">id</span>="${ref.id}"` : "") + (ref.className ? ` <span class="attr-title">class</span>="${ref.className}"` : "") + ">",
- uid: instance.__VUE_DEVTOOLS_UID__,
- type: "reference"
- }
- };
- }
- return {
- type: "$refs",
- key,
- value,
- editable: false
- };
- }
- exports.getCustomRefDetails = getCustomRefDetails;
- function parse2(data, revive2 = false) {
- return revive2 ? (0, transfer_1.parseCircularAutoChunks)(data, reviver) : (0, transfer_1.parseCircularAutoChunks)(data);
- }
- exports.parse = parse2;
- const specialTypeRE = /^\[native (\w+) (.*?)(<>((.|\s)*))?\]$/;
- const symbolRE = /^\[native Symbol Symbol\((.*)\)\]$/;
- function reviver(key, val) {
- return revive(val);
- }
- function revive(val) {
- if (val === exports.UNDEFINED) {
- return void 0;
- } else if (val === exports.INFINITY) {
- return Infinity;
- } else if (val === exports.NEGATIVE_INFINITY) {
- return -Infinity;
- } else if (val === exports.NAN) {
- return NaN;
- } else if (val && val._custom) {
- const {
- _custom: custom
- } = val;
- if (custom.type === "component") {
- return (0, backend_1.getInstanceMap)().get(custom.id);
- } else if (custom.type === "map") {
- return reviveMap(val);
- } else if (custom.type === "set") {
- return reviveSet(val);
- } else if (custom._reviveId) {
- return reviveCache.read(custom._reviveId);
- } else {
- return revive(custom.value);
- }
- } else if (symbolRE.test(val)) {
- const [, string] = symbolRE.exec(val);
- return Symbol.for(string);
- } else if (specialTypeRE.test(val)) {
- const [, type, string, , details] = specialTypeRE.exec(val);
- const result = new env_1.target[type](string);
- if (type === "Error" && details) {
- result.stack = details;
- }
- return result;
- } else {
- return val;
- }
- }
- exports.revive = revive;
- function sanitize(data) {
- if (!isPrimitive(data) && !Array.isArray(data) && !isPlainObject(data)) {
- return Object.prototype.toString.call(data);
- } else {
- return data;
- }
- }
- function isPlainObject(obj) {
- return Object.prototype.toString.call(obj) === "[object Object]";
- }
- exports.isPlainObject = isPlainObject;
- function isPrimitive(data) {
- if (data == null) {
- return true;
- }
- const type = typeof data;
- return type === "string" || type === "number" || type === "boolean";
- }
- function searchDeepInObject(obj, searchTerm) {
- const seen = /* @__PURE__ */ new Map();
- const result = internalSearchObject(obj, searchTerm.toLowerCase(), seen, 0);
- seen.clear();
- return result;
- }
- exports.searchDeepInObject = searchDeepInObject;
- const SEARCH_MAX_DEPTH = 10;
- function internalSearchObject(obj, searchTerm, seen, depth) {
- if (depth > SEARCH_MAX_DEPTH) {
- return false;
- }
- let match = false;
- const keys = Object.keys(obj);
- let key, value;
- for (let i2 = 0; i2 < keys.length; i2++) {
- key = keys[i2];
- value = obj[key];
- match = internalSearchCheck(searchTerm, key, value, seen, depth + 1);
- if (match) {
- break;
- }
- }
- return match;
- }
- function internalSearchArray(array, searchTerm, seen, depth) {
- if (depth > SEARCH_MAX_DEPTH) {
- return false;
- }
- let match = false;
- let value;
- for (let i2 = 0; i2 < array.length; i2++) {
- value = array[i2];
- match = internalSearchCheck(searchTerm, null, value, seen, depth + 1);
- if (match) {
- break;
- }
- }
- return match;
- }
- function internalSearchCheck(searchTerm, key, value, seen, depth) {
- let match = false;
- let result;
- if (key === "_custom") {
- key = value.display;
- value = value.value;
- }
- (result = specialTokenToString(value)) && (value = result);
- if (key && compare(key, searchTerm)) {
- match = true;
- seen.set(value, true);
- } else if (seen.has(value)) {
- match = seen.get(value);
- } else if (Array.isArray(value)) {
- seen.set(value, null);
- match = internalSearchArray(value, searchTerm, seen, depth);
- seen.set(value, match);
- } else if (isPlainObject(value)) {
- seen.set(value, null);
- match = internalSearchObject(value, searchTerm, seen, depth);
- seen.set(value, match);
- } else if (compare(value, searchTerm)) {
- match = true;
- seen.set(value, true);
- }
- return match;
- }
- function compare(value, searchTerm) {
- return ("" + value).toLowerCase().indexOf(searchTerm) !== -1;
- }
- function sortByKey(state) {
- return state && state.slice().sort((a2, b2) => {
- if (a2.key < b2.key)
- return -1;
- if (a2.key > b2.key)
- return 1;
- return 0;
- });
- }
- exports.sortByKey = sortByKey;
- function simpleGet(object, path) {
- const sections = Array.isArray(path) ? path : path.split(".");
- for (let i2 = 0; i2 < sections.length; i2++) {
- object = object[sections[i2]];
- if (!object) {
- return void 0;
- }
- }
- return object;
- }
- exports.simpleGet = simpleGet;
- function focusInput(el) {
- el.focus();
- el.setSelectionRange(0, el.value.length);
- }
- exports.focusInput = focusInput;
- function openInEditor(file) {
- const fileName = file.replace(/\\/g, "\\\\");
- const src = `fetch('${shared_data_1.SharedData.openInEditorHost}__open-in-editor?file=${encodeURI(file)}').then(response => {
- if (response.ok) {
- console.log('File ${fileName} opened in editor')
- } else {
- const msg = 'Opening component ${fileName} failed'
- const target = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}
- if (target.__VUE_DEVTOOLS_TOAST__) {
- target.__VUE_DEVTOOLS_TOAST__(msg, 'error')
- } else {
- console.log('%c' + msg, 'color:red')
- }
- console.log('Check the setup of your project, see https://devtools.vuejs.org/guide/open-in-editor.html')
- }
- })`;
- if (env_1.isChrome) {
- env_1.target.chrome.devtools.inspectedWindow.eval(src);
- } else {
- [eval][0](src);
- }
- }
- exports.openInEditor = openInEditor;
- const ESC = {
- "<": "<",
- ">": ">",
- '"': """,
- "&": "&"
- };
- function escape2(s2) {
- return s2.replace(/[<>"&]/g, escapeChar);
- }
- exports.escape = escape2;
- function escapeChar(a2) {
- return ESC[a2] || a2;
- }
- function copyToClipboard(state) {
- let text;
- if (typeof state !== "object") {
- text = String(state);
- } else {
- text = stringify(state, "user");
- }
- if (typeof document === "undefined")
- return;
- const dummyTextArea = document.createElement("textarea");
- dummyTextArea.textContent = text;
- document.body.appendChild(dummyTextArea);
- dummyTextArea.select();
- document.execCommand("copy");
- document.body.removeChild(dummyTextArea);
- }
- exports.copyToClipboard = copyToClipboard;
- function isEmptyObject(obj) {
- return obj === exports.UNDEFINED || !obj || Object.keys(obj).length === 0;
- }
- exports.isEmptyObject = isEmptyObject;
- }
- ),
- /***/
- "../../node_modules/events/events.js": (
- /*!*******************************************!*\
- !*** ../../node_modules/events/events.js ***!
- \*******************************************/
- /***/
- (module) => {
- var R2 = typeof Reflect === "object" ? Reflect : null;
- var ReflectApply = R2 && typeof R2.apply === "function" ? R2.apply : function ReflectApply2(target, receiver, args) {
- return Function.prototype.apply.call(target, receiver, args);
- };
- var ReflectOwnKeys;
- if (R2 && typeof R2.ownKeys === "function") {
- ReflectOwnKeys = R2.ownKeys;
- } else if (Object.getOwnPropertySymbols) {
- ReflectOwnKeys = function ReflectOwnKeys2(target) {
- return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
- };
- } else {
- ReflectOwnKeys = function ReflectOwnKeys2(target) {
- return Object.getOwnPropertyNames(target);
- };
- }
- function ProcessEmitWarning(warning) {
- if (console && console.warn)
- console.warn(warning);
- }
- var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {
- return value !== value;
- };
- function EventEmitter() {
- EventEmitter.init.call(this);
- }
- module.exports = EventEmitter;
- module.exports.once = once;
- EventEmitter.EventEmitter = EventEmitter;
- EventEmitter.prototype._events = void 0;
- EventEmitter.prototype._eventsCount = 0;
- EventEmitter.prototype._maxListeners = void 0;
- var defaultMaxListeners = 10;
- function checkListener(listener) {
- if (typeof listener !== "function") {
- throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
- }
- }
- Object.defineProperty(EventEmitter, "defaultMaxListeners", {
- enumerable: true,
- get: function() {
- return defaultMaxListeners;
- },
- set: function(arg) {
- if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {
- throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + ".");
- }
- defaultMaxListeners = arg;
- }
- });
- EventEmitter.init = function() {
- if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {
- this._events = /* @__PURE__ */ Object.create(null);
- this._eventsCount = 0;
- }
- this._maxListeners = this._maxListeners || void 0;
- };
- EventEmitter.prototype.setMaxListeners = function setMaxListeners(n2) {
- if (typeof n2 !== "number" || n2 < 0 || NumberIsNaN(n2)) {
- throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n2 + ".");
- }
- this._maxListeners = n2;
- return this;
- };
- function _getMaxListeners(that) {
- if (that._maxListeners === void 0)
- return EventEmitter.defaultMaxListeners;
- return that._maxListeners;
- }
- EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
- return _getMaxListeners(this);
- };
- EventEmitter.prototype.emit = function emit(type) {
- var args = [];
- for (var i2 = 1; i2 < arguments.length; i2++)
- args.push(arguments[i2]);
- var doError = type === "error";
- var events = this._events;
- if (events !== void 0)
- doError = doError && events.error === void 0;
- else if (!doError)
- return false;
- if (doError) {
- var er;
- if (args.length > 0)
- er = args[0];
- if (er instanceof Error) {
- throw er;
- }
- var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));
- err.context = er;
- throw err;
- }
- var handler = events[type];
- if (handler === void 0)
- return false;
- if (typeof handler === "function") {
- ReflectApply(handler, this, args);
- } else {
- var len = handler.length;
- var listeners = arrayClone(handler, len);
- for (var i2 = 0; i2 < len; ++i2)
- ReflectApply(listeners[i2], this, args);
- }
- return true;
- };
- function _addListener(target, type, listener, prepend) {
- var m2;
- var events;
- var existing;
- checkListener(listener);
- events = target._events;
- if (events === void 0) {
- events = target._events = /* @__PURE__ */ Object.create(null);
- target._eventsCount = 0;
- } else {
- if (events.newListener !== void 0) {
- target.emit(
- "newListener",
- type,
- listener.listener ? listener.listener : listener
- );
- events = target._events;
- }
- existing = events[type];
- }
- if (existing === void 0) {
- existing = events[type] = listener;
- ++target._eventsCount;
- } else {
- if (typeof existing === "function") {
- existing = events[type] = prepend ? [listener, existing] : [existing, listener];
- } else if (prepend) {
- existing.unshift(listener);
- } else {
- existing.push(listener);
- }
- m2 = _getMaxListeners(target);
- if (m2 > 0 && existing.length > m2 && !existing.warned) {
- existing.warned = true;
- var w2 = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");
- w2.name = "MaxListenersExceededWarning";
- w2.emitter = target;
- w2.type = type;
- w2.count = existing.length;
- ProcessEmitWarning(w2);
- }
- }
- return target;
- }
- EventEmitter.prototype.addListener = function addListener(type, listener) {
- return _addListener(this, type, listener, false);
- };
- EventEmitter.prototype.on = EventEmitter.prototype.addListener;
- EventEmitter.prototype.prependListener = function prependListener(type, listener) {
- return _addListener(this, type, listener, true);
- };
- function onceWrapper() {
- if (!this.fired) {
- this.target.removeListener(this.type, this.wrapFn);
- this.fired = true;
- if (arguments.length === 0)
- return this.listener.call(this.target);
- return this.listener.apply(this.target, arguments);
- }
- }
- function _onceWrap(target, type, listener) {
- var state = { fired: false, wrapFn: void 0, target, type, listener };
- var wrapped = onceWrapper.bind(state);
- wrapped.listener = listener;
- state.wrapFn = wrapped;
- return wrapped;
- }
- EventEmitter.prototype.once = function once2(type, listener) {
- checkListener(listener);
- this.on(type, _onceWrap(this, type, listener));
- return this;
- };
- EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {
- checkListener(listener);
- this.prependListener(type, _onceWrap(this, type, listener));
- return this;
- };
- EventEmitter.prototype.removeListener = function removeListener(type, listener) {
- var list, events, position, i2, originalListener;
- checkListener(listener);
- events = this._events;
- if (events === void 0)
- return this;
- list = events[type];
- if (list === void 0)
- return this;
- if (list === listener || list.listener === listener) {
- if (--this._eventsCount === 0)
- this._events = /* @__PURE__ */ Object.create(null);
- else {
- delete events[type];
- if (events.removeListener)
- this.emit("removeListener", type, list.listener || listener);
- }
- } else if (typeof list !== "function") {
- position = -1;
- for (i2 = list.length - 1; i2 >= 0; i2--) {
- if (list[i2] === listener || list[i2].listener === listener) {
- originalListener = list[i2].listener;
- position = i2;
- break;
- }
- }
- if (position < 0)
- return this;
- if (position === 0)
- list.shift();
- else {
- spliceOne(list, position);
- }
- if (list.length === 1)
- events[type] = list[0];
- if (events.removeListener !== void 0)
- this.emit("removeListener", type, originalListener || listener);
- }
- return this;
- };
- EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
- EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {
- var listeners, events, i2;
- events = this._events;
- if (events === void 0)
- return this;
- if (events.removeListener === void 0) {
- if (arguments.length === 0) {
- this._events = /* @__PURE__ */ Object.create(null);
- this._eventsCount = 0;
- } else if (events[type] !== void 0) {
- if (--this._eventsCount === 0)
- this._events = /* @__PURE__ */ Object.create(null);
- else
- delete events[type];
- }
- return this;
- }
- if (arguments.length === 0) {
- var keys = Object.keys(events);
- var key;
- for (i2 = 0; i2 < keys.length; ++i2) {
- key = keys[i2];
- if (key === "removeListener")
- continue;
- this.removeAllListeners(key);
- }
- this.removeAllListeners("removeListener");
- this._events = /* @__PURE__ */ Object.create(null);
- this._eventsCount = 0;
- return this;
- }
- listeners = events[type];
- if (typeof listeners === "function") {
- this.removeListener(type, listeners);
- } else if (listeners !== void 0) {
- for (i2 = listeners.length - 1; i2 >= 0; i2--) {
- this.removeListener(type, listeners[i2]);
- }
- }
- return this;
- };
- function _listeners(target, type, unwrap) {
- var events = target._events;
- if (events === void 0)
- return [];
- var evlistener = events[type];
- if (evlistener === void 0)
- return [];
- if (typeof evlistener === "function")
- return unwrap ? [evlistener.listener || evlistener] : [evlistener];
- return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
- }
- EventEmitter.prototype.listeners = function listeners(type) {
- return _listeners(this, type, true);
- };
- EventEmitter.prototype.rawListeners = function rawListeners(type) {
- return _listeners(this, type, false);
- };
- EventEmitter.listenerCount = function(emitter, type) {
- if (typeof emitter.listenerCount === "function") {
- return emitter.listenerCount(type);
- } else {
- return listenerCount.call(emitter, type);
- }
- };
- EventEmitter.prototype.listenerCount = listenerCount;
- function listenerCount(type) {
- var events = this._events;
- if (events !== void 0) {
- var evlistener = events[type];
- if (typeof evlistener === "function") {
- return 1;
- } else if (evlistener !== void 0) {
- return evlistener.length;
- }
- }
- return 0;
- }
- EventEmitter.prototype.eventNames = function eventNames() {
- return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
- };
- function arrayClone(arr, n2) {
- var copy = new Array(n2);
- for (var i2 = 0; i2 < n2; ++i2)
- copy[i2] = arr[i2];
- return copy;
- }
- function spliceOne(list, index) {
- for (; index + 1 < list.length; index++)
- list[index] = list[index + 1];
- list.pop();
- }
- function unwrapListeners(arr) {
- var ret = new Array(arr.length);
- for (var i2 = 0; i2 < ret.length; ++i2) {
- ret[i2] = arr[i2].listener || arr[i2];
- }
- return ret;
- }
- function once(emitter, name) {
- return new Promise(function(resolve, reject) {
- function errorListener(err) {
- emitter.removeListener(name, resolver);
- reject(err);
- }
- function resolver() {
- if (typeof emitter.removeListener === "function") {
- emitter.removeListener("error", errorListener);
- }
- resolve([].slice.call(arguments));
- }
- eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });
- if (name !== "error") {
- addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });
- }
- });
- }
- function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
- if (typeof emitter.on === "function") {
- eventTargetAgnosticAddListener(emitter, "error", handler, flags);
- }
- }
- function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
- if (typeof emitter.on === "function") {
- if (flags.once) {
- emitter.once(name, listener);
- } else {
- emitter.on(name, listener);
- }
- } else if (typeof emitter.addEventListener === "function") {
- emitter.addEventListener(name, function wrapListener(arg) {
- if (flags.once) {
- emitter.removeEventListener(name, wrapListener);
- }
- listener(arg);
- });
- } else {
- throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);
- }
- }
- }
- ),
- /***/
- "../../node_modules/path-browserify/index.js": (
- /*!***************************************************!*\
- !*** ../../node_modules/path-browserify/index.js ***!
- \***************************************************/
- /***/
- (module) => {
- function assertPath(path) {
- if (typeof path !== "string") {
- throw new TypeError("Path must be a string. Received " + JSON.stringify(path));
- }
- }
- function normalizeStringPosix(path, allowAboveRoot) {
- var res = "";
- var lastSegmentLength = 0;
- var lastSlash = -1;
- var dots = 0;
- var code;
- for (var i2 = 0; i2 <= path.length; ++i2) {
- if (i2 < path.length)
- code = path.charCodeAt(i2);
- else if (code === 47)
- break;
- else
- code = 47;
- if (code === 47) {
- if (lastSlash === i2 - 1 || dots === 1)
- ;
- else if (lastSlash !== i2 - 1 && dots === 2) {
- if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {
- if (res.length > 2) {
- var lastSlashIndex = res.lastIndexOf("/");
- if (lastSlashIndex !== res.length - 1) {
- if (lastSlashIndex === -1) {
- res = "";
- lastSegmentLength = 0;
- } else {
- res = res.slice(0, lastSlashIndex);
- lastSegmentLength = res.length - 1 - res.lastIndexOf("/");
- }
- lastSlash = i2;
- dots = 0;
- continue;
- }
- } else if (res.length === 2 || res.length === 1) {
- res = "";
- lastSegmentLength = 0;
- lastSlash = i2;
- dots = 0;
- continue;
- }
- }
- if (allowAboveRoot) {
- if (res.length > 0)
- res += "/..";
- else
- res = "..";
- lastSegmentLength = 2;
- }
- } else {
- if (res.length > 0)
- res += "/" + path.slice(lastSlash + 1, i2);
- else
- res = path.slice(lastSlash + 1, i2);
- lastSegmentLength = i2 - lastSlash - 1;
- }
- lastSlash = i2;
- dots = 0;
- } else if (code === 46 && dots !== -1) {
- ++dots;
- } else {
- dots = -1;
- }
- }
- return res;
- }
- function _format(sep, pathObject) {
- var dir = pathObject.dir || pathObject.root;
- var base = pathObject.base || (pathObject.name || "") + (pathObject.ext || "");
- if (!dir) {
- return base;
- }
- if (dir === pathObject.root) {
- return dir + base;
- }
- return dir + sep + base;
- }
- var posix = {
- // path.resolve([from ...], to)
- resolve: function resolve() {
- var resolvedPath = "";
- var resolvedAbsolute = false;
- var cwd;
- for (var i2 = arguments.length - 1; i2 >= -1 && !resolvedAbsolute; i2--) {
- var path;
- if (i2 >= 0)
- path = arguments[i2];
- else {
- if (cwd === void 0)
- cwd = process.cwd();
- path = cwd;
- }
- assertPath(path);
- if (path.length === 0) {
- continue;
- }
- resolvedPath = path + "/" + resolvedPath;
- resolvedAbsolute = path.charCodeAt(0) === 47;
- }
- resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);
- if (resolvedAbsolute) {
- if (resolvedPath.length > 0)
- return "/" + resolvedPath;
- else
- return "/";
- } else if (resolvedPath.length > 0) {
- return resolvedPath;
- } else {
- return ".";
- }
- },
- normalize: function normalize(path) {
- assertPath(path);
- if (path.length === 0)
- return ".";
- var isAbsolute = path.charCodeAt(0) === 47;
- var trailingSeparator = path.charCodeAt(path.length - 1) === 47;
- path = normalizeStringPosix(path, !isAbsolute);
- if (path.length === 0 && !isAbsolute)
- path = ".";
- if (path.length > 0 && trailingSeparator)
- path += "/";
- if (isAbsolute)
- return "/" + path;
- return path;
- },
- isAbsolute: function isAbsolute(path) {
- assertPath(path);
- return path.length > 0 && path.charCodeAt(0) === 47;
- },
- join: function join() {
- if (arguments.length === 0)
- return ".";
- var joined;
- for (var i2 = 0; i2 < arguments.length; ++i2) {
- var arg = arguments[i2];
- assertPath(arg);
- if (arg.length > 0) {
- if (joined === void 0)
- joined = arg;
- else
- joined += "/" + arg;
- }
- }
- if (joined === void 0)
- return ".";
- return posix.normalize(joined);
- },
- relative: function relative(from, to) {
- assertPath(from);
- assertPath(to);
- if (from === to)
- return "";
- from = posix.resolve(from);
- to = posix.resolve(to);
- if (from === to)
- return "";
- var fromStart = 1;
- for (; fromStart < from.length; ++fromStart) {
- if (from.charCodeAt(fromStart) !== 47)
- break;
- }
- var fromEnd = from.length;
- var fromLen = fromEnd - fromStart;
- var toStart = 1;
- for (; toStart < to.length; ++toStart) {
- if (to.charCodeAt(toStart) !== 47)
- break;
- }
- var toEnd = to.length;
- var toLen = toEnd - toStart;
- var length = fromLen < toLen ? fromLen : toLen;
- var lastCommonSep = -1;
- var i2 = 0;
- for (; i2 <= length; ++i2) {
- if (i2 === length) {
- if (toLen > length) {
- if (to.charCodeAt(toStart + i2) === 47) {
- return to.slice(toStart + i2 + 1);
- } else if (i2 === 0) {
- return to.slice(toStart + i2);
- }
- } else if (fromLen > length) {
- if (from.charCodeAt(fromStart + i2) === 47) {
- lastCommonSep = i2;
- } else if (i2 === 0) {
- lastCommonSep = 0;
- }
- }
- break;
- }
- var fromCode = from.charCodeAt(fromStart + i2);
- var toCode = to.charCodeAt(toStart + i2);
- if (fromCode !== toCode)
- break;
- else if (fromCode === 47)
- lastCommonSep = i2;
- }
- var out = "";
- for (i2 = fromStart + lastCommonSep + 1; i2 <= fromEnd; ++i2) {
- if (i2 === fromEnd || from.charCodeAt(i2) === 47) {
- if (out.length === 0)
- out += "..";
- else
- out += "/..";
- }
- }
- if (out.length > 0)
- return out + to.slice(toStart + lastCommonSep);
- else {
- toStart += lastCommonSep;
- if (to.charCodeAt(toStart) === 47)
- ++toStart;
- return to.slice(toStart);
- }
- },
- _makeLong: function _makeLong(path) {
- return path;
- },
- dirname: function dirname(path) {
- assertPath(path);
- if (path.length === 0)
- return ".";
- var code = path.charCodeAt(0);
- var hasRoot = code === 47;
- var end = -1;
- var matchedSlash = true;
- for (var i2 = path.length - 1; i2 >= 1; --i2) {
- code = path.charCodeAt(i2);
- if (code === 47) {
- if (!matchedSlash) {
- end = i2;
- break;
- }
- } else {
- matchedSlash = false;
- }
- }
- if (end === -1)
- return hasRoot ? "/" : ".";
- if (hasRoot && end === 1)
- return "//";
- return path.slice(0, end);
- },
- basename: function basename(path, ext) {
- if (ext !== void 0 && typeof ext !== "string")
- throw new TypeError('"ext" argument must be a string');
- assertPath(path);
- var start = 0;
- var end = -1;
- var matchedSlash = true;
- var i2;
- if (ext !== void 0 && ext.length > 0 && ext.length <= path.length) {
- if (ext.length === path.length && ext === path)
- return "";
- var extIdx = ext.length - 1;
- var firstNonSlashEnd = -1;
- for (i2 = path.length - 1; i2 >= 0; --i2) {
- var code = path.charCodeAt(i2);
- if (code === 47) {
- if (!matchedSlash) {
- start = i2 + 1;
- break;
- }
- } else {
- if (firstNonSlashEnd === -1) {
- matchedSlash = false;
- firstNonSlashEnd = i2 + 1;
- }
- if (extIdx >= 0) {
- if (code === ext.charCodeAt(extIdx)) {
- if (--extIdx === -1) {
- end = i2;
- }
- } else {
- extIdx = -1;
- end = firstNonSlashEnd;
- }
- }
- }
- }
- if (start === end)
- end = firstNonSlashEnd;
- else if (end === -1)
- end = path.length;
- return path.slice(start, end);
- } else {
- for (i2 = path.length - 1; i2 >= 0; --i2) {
- if (path.charCodeAt(i2) === 47) {
- if (!matchedSlash) {
- start = i2 + 1;
- break;
- }
- } else if (end === -1) {
- matchedSlash = false;
- end = i2 + 1;
- }
- }
- if (end === -1)
- return "";
- return path.slice(start, end);
- }
- },
- extname: function extname(path) {
- assertPath(path);
- var startDot = -1;
- var startPart = 0;
- var end = -1;
- var matchedSlash = true;
- var preDotState = 0;
- for (var i2 = path.length - 1; i2 >= 0; --i2) {
- var code = path.charCodeAt(i2);
- if (code === 47) {
- if (!matchedSlash) {
- startPart = i2 + 1;
- break;
- }
- continue;
- }
- if (end === -1) {
- matchedSlash = false;
- end = i2 + 1;
- }
- if (code === 46) {
- if (startDot === -1)
- startDot = i2;
- else if (preDotState !== 1)
- preDotState = 1;
- } else if (startDot !== -1) {
- preDotState = -1;
- }
- }
- if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
- preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
- preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
- return "";
- }
- return path.slice(startDot, end);
- },
- format: function format(pathObject) {
- if (pathObject === null || typeof pathObject !== "object") {
- throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject);
- }
- return _format("/", pathObject);
- },
- parse: function parse2(path) {
- assertPath(path);
- var ret = { root: "", dir: "", base: "", ext: "", name: "" };
- if (path.length === 0)
- return ret;
- var code = path.charCodeAt(0);
- var isAbsolute = code === 47;
- var start;
- if (isAbsolute) {
- ret.root = "/";
- start = 1;
- } else {
- start = 0;
- }
- var startDot = -1;
- var startPart = 0;
- var end = -1;
- var matchedSlash = true;
- var i2 = path.length - 1;
- var preDotState = 0;
- for (; i2 >= start; --i2) {
- code = path.charCodeAt(i2);
- if (code === 47) {
- if (!matchedSlash) {
- startPart = i2 + 1;
- break;
- }
- continue;
- }
- if (end === -1) {
- matchedSlash = false;
- end = i2 + 1;
- }
- if (code === 46) {
- if (startDot === -1)
- startDot = i2;
- else if (preDotState !== 1)
- preDotState = 1;
- } else if (startDot !== -1) {
- preDotState = -1;
- }
- }
- if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
- preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
- preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
- if (end !== -1) {
- if (startPart === 0 && isAbsolute)
- ret.base = ret.name = path.slice(1, end);
- else
- ret.base = ret.name = path.slice(startPart, end);
- }
- } else {
- if (startPart === 0 && isAbsolute) {
- ret.name = path.slice(1, startDot);
- ret.base = path.slice(1, end);
- } else {
- ret.name = path.slice(startPart, startDot);
- ret.base = path.slice(startPart, end);
- }
- ret.ext = path.slice(startDot, end);
- }
- if (startPart > 0)
- ret.dir = path.slice(0, startPart - 1);
- else if (isAbsolute)
- ret.dir = "/";
- return ret;
- },
- sep: "/",
- delimiter: ":",
- win32: null,
- posix: null
- };
- posix.posix = posix;
- module.exports = posix;
- }
- )
- /******/
- };
- var __webpack_module_cache__ = {};
- function __webpack_require__(moduleId) {
- var cachedModule = __webpack_module_cache__[moduleId];
- if (cachedModule !== void 0) {
- return cachedModule.exports;
- }
- var module = __webpack_module_cache__[moduleId] = {
- /******/
- // no module.id needed
- /******/
- // no module.loaded needed
- /******/
- exports: {}
- /******/
- };
- __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- return module.exports;
- }
- (() => {
- __webpack_require__.n = (module) => {
- var getter = module && module.__esModule ? (
- /******/
- () => module["default"]
- ) : (
- /******/
- () => module
- );
- __webpack_require__.d(getter, { a: getter });
- return getter;
- };
- })();
- (() => {
- __webpack_require__.d = (exports, definition) => {
- for (var key in definition) {
- if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
- Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
- }
- }
- };
- })();
- (() => {
- __webpack_require__.g = function() {
- if (typeof globalThis === "object")
- return globalThis;
- try {
- return this || new Function("return this")();
- } catch (e2) {
- if (typeof window === "object")
- return window;
- }
- }();
- })();
- (() => {
- __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
- })();
- (() => {
- __webpack_require__.r = (exports) => {
- if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
- }
- Object.defineProperty(exports, "__esModule", { value: true });
- };
- })();
- var __webpack_exports__ = {};
- (() => {
- /*!*********************!*\
- !*** ./src/hook.ts ***!
- \*********************/
- __webpack_require__.r(__webpack_exports__);
- var _back_hook__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
- /*! @back/hook */
- "../app-backend-core/lib/hook.js"
- );
- var _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- (0, _back_hook__WEBPACK_IMPORTED_MODULE_0__.installHook)(_vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target);
- })();
- })();
- (function() {
- var __webpack_modules__ = {
- /***/
- "../api/lib/esm/const.js": (
- /*!*******************************!*\
- !*** ../api/lib/esm/const.js ***!
- \*******************************/
- /***/
- (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => {
- __webpack_require__2.r(__webpack_exports__2);
- __webpack_require__2.d(__webpack_exports__2, {
- /* harmony export */
- "HOOK_PLUGIN_SETTINGS_SET": () => (
- /* binding */
- HOOK_PLUGIN_SETTINGS_SET
- ),
- /* harmony export */
- "HOOK_SETUP": () => (
- /* binding */
- HOOK_SETUP
- )
- /* harmony export */
- });
- const HOOK_SETUP = "devtools-plugin:setup";
- const HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set";
- }
- ),
- /***/
- "../api/lib/esm/env.js": (
- /*!*****************************!*\
- !*** ../api/lib/esm/env.js ***!
- \*****************************/
- /***/
- (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => {
- __webpack_require__2.r(__webpack_exports__2);
- __webpack_require__2.d(__webpack_exports__2, {
- /* harmony export */
- "getDevtoolsGlobalHook": () => (
- /* binding */
- getDevtoolsGlobalHook
- ),
- /* harmony export */
- "getTarget": () => (
- /* binding */
- getTarget2
- ),
- /* harmony export */
- "isProxyAvailable": () => (
- /* binding */
- isProxyAvailable
- )
- /* harmony export */
- });
- function getDevtoolsGlobalHook() {
- return getTarget2().__VUE_DEVTOOLS_GLOBAL_HOOK__;
- }
- function getTarget2() {
- return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof my !== "undefined" ? my : {};
- }
- const isProxyAvailable = typeof Proxy === "function";
- }
- ),
- /***/
- "../api/lib/esm/index.js": (
- /*!*******************************!*\
- !*** ../api/lib/esm/index.js ***!
- \*******************************/
- /***/
- (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => {
- __webpack_require__2.r(__webpack_exports__2);
- __webpack_require__2.d(__webpack_exports__2, {
- /* harmony export */
- "isPerformanceSupported": () => (
- /* reexport safe */
- _time_js__WEBPACK_IMPORTED_MODULE_0__.isPerformanceSupported
- ),
- /* harmony export */
- "now": () => (
- /* reexport safe */
- _time_js__WEBPACK_IMPORTED_MODULE_0__.now
- ),
- /* harmony export */
- "setupDevtoolsPlugin": () => (
- /* binding */
- setupDevtoolsPlugin
- )
- /* harmony export */
- });
- var _env_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(
- /*! ./env.js */
- "../api/lib/esm/env.js"
- );
- var _const_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(
- /*! ./const.js */
- "../api/lib/esm/const.js"
- );
- var _proxy_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__2(
- /*! ./proxy.js */
- "../api/lib/esm/proxy.js"
- );
- var _time_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(
- /*! ./time.js */
- "../api/lib/esm/time.js"
- );
- function setupDevtoolsPlugin(pluginDescriptor, setupFn) {
- const descriptor = pluginDescriptor;
- const target = (0, _env_js__WEBPACK_IMPORTED_MODULE_1__.getTarget)();
- const hook = (0, _env_js__WEBPACK_IMPORTED_MODULE_1__.getDevtoolsGlobalHook)();
- const enableProxy = _env_js__WEBPACK_IMPORTED_MODULE_1__.isProxyAvailable && descriptor.enableEarlyProxy;
- if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {
- hook.emit(_const_js__WEBPACK_IMPORTED_MODULE_2__.HOOK_SETUP, pluginDescriptor, setupFn);
- } else {
- const proxy = enableProxy ? new _proxy_js__WEBPACK_IMPORTED_MODULE_3__.ApiProxy(descriptor, hook) : null;
- const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];
- list.push({
- pluginDescriptor: descriptor,
- setupFn,
- proxy
- });
- if (proxy)
- setupFn(proxy.proxiedTarget);
- }
- }
- }
- ),
- /***/
- "../api/lib/esm/proxy.js": (
- /*!*******************************!*\
- !*** ../api/lib/esm/proxy.js ***!
- \*******************************/
- /***/
- (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => {
- __webpack_require__2.r(__webpack_exports__2);
- __webpack_require__2.d(__webpack_exports__2, {
- /* harmony export */
- "ApiProxy": () => (
- /* binding */
- ApiProxy
- )
- /* harmony export */
- });
- var _const_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(
- /*! ./const.js */
- "../api/lib/esm/const.js"
- );
- var _time_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(
- /*! ./time.js */
- "../api/lib/esm/time.js"
- );
- class ApiProxy {
- constructor(plugin, hook) {
- this.target = null;
- this.targetQueue = [];
- this.onQueue = [];
- this.plugin = plugin;
- this.hook = hook;
- const defaultSettings = {};
- if (plugin.settings) {
- for (const id in plugin.settings) {
- const item = plugin.settings[id];
- defaultSettings[id] = item.defaultValue;
- }
- }
- const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;
- let currentSettings = Object.assign({}, defaultSettings);
- try {
- const raw = localStorage.getItem(localSettingsSaveId);
- const data = JSON.parse(raw);
- Object.assign(currentSettings, data);
- } catch (e2) {
- }
- this.fallbacks = {
- getSettings() {
- return currentSettings;
- },
- setSettings(value) {
- try {
- localStorage.setItem(localSettingsSaveId, JSON.stringify(value));
- } catch (e2) {
- }
- currentSettings = value;
- },
- now() {
- return (0, _time_js__WEBPACK_IMPORTED_MODULE_0__.now)();
- }
- };
- if (hook) {
- hook.on(_const_js__WEBPACK_IMPORTED_MODULE_1__.HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {
- if (pluginId === this.plugin.id) {
- this.fallbacks.setSettings(value);
- }
- });
- }
- this.proxiedOn = new Proxy({}, {
- get: (_target, prop) => {
- if (this.target) {
- return this.target.on[prop];
- } else {
- return (...args) => {
- this.onQueue.push({
- method: prop,
- args
- });
- };
- }
- }
- });
- this.proxiedTarget = new Proxy({}, {
- get: (_target, prop) => {
- if (this.target) {
- return this.target[prop];
- } else if (prop === "on") {
- return this.proxiedOn;
- } else if (Object.keys(this.fallbacks).includes(prop)) {
- return (...args) => {
- this.targetQueue.push({
- method: prop,
- args,
- resolve: () => {
- }
- });
- return this.fallbacks[prop](...args);
- };
- } else {
- return (...args) => {
- return new Promise((resolve) => {
- this.targetQueue.push({
- method: prop,
- args,
- resolve
- });
- });
- };
- }
- }
- });
- }
- async setRealTarget(target) {
- this.target = target;
- for (const item of this.onQueue) {
- this.target.on[item.method](...item.args);
- }
- for (const item of this.targetQueue) {
- item.resolve(await this.target[item.method](...item.args));
- }
- }
- }
- }
- ),
- /***/
- "../api/lib/esm/time.js": (
- /*!******************************!*\
- !*** ../api/lib/esm/time.js ***!
- \******************************/
- /***/
- (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => {
- __webpack_require__2.r(__webpack_exports__2);
- __webpack_require__2.d(__webpack_exports__2, {
- /* harmony export */
- "isPerformanceSupported": () => (
- /* binding */
- isPerformanceSupported
- ),
- /* harmony export */
- "now": () => (
- /* binding */
- now
- )
- /* harmony export */
- });
- let supported;
- let perf;
- function isPerformanceSupported() {
- var _a;
- if (supported !== void 0) {
- return supported;
- }
- if (typeof window !== "undefined" && window.performance) {
- supported = true;
- perf = window.performance;
- } else if (typeof __webpack_require__2.g !== "undefined" && ((_a = __webpack_require__2.g.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {
- supported = true;
- perf = __webpack_require__2.g.perf_hooks.performance;
- } else {
- supported = false;
- }
- return supported;
- }
- function now() {
- return isPerformanceSupported() ? perf.now() : Date.now();
- }
- }
- ),
- /***/
- "../app-backend-api/lib/api.js": (
- /*!*************************************!*\
- !*** ../app-backend-api/lib/api.js ***!
- \*************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.DevtoolsPluginApiInstance = exports.DevtoolsApi = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const devtools_api_1 = __webpack_require__2(
- /*! @vue/devtools-api */
- "../api/lib/esm/index.js"
- );
- const hooks_1 = __webpack_require__2(
- /*! ./hooks */
- "../app-backend-api/lib/hooks.js"
- );
- const pluginOn = [];
- class DevtoolsApi {
- constructor(backend, ctx) {
- this.stateEditor = new shared_utils_1.StateEditor();
- this.backend = backend;
- this.ctx = ctx;
- this.bridge = ctx.bridge;
- this.on = new hooks_1.DevtoolsHookable(ctx);
- }
- async callHook(eventType, payload, ctx = this.ctx) {
- payload = await this.on.callHandlers(eventType, payload, ctx);
- for (const on of pluginOn) {
- payload = await on.callHandlers(eventType, payload, ctx);
- }
- return payload;
- }
- async transformCall(callName, ...args) {
- const payload = await this.callHook(
- "transformCall",
- {
- callName,
- inArgs: args,
- outArgs: args.slice()
- }
- );
- return payload.outArgs;
- }
- async getAppRecordName(app, defaultName) {
- const payload = await this.callHook(
- "getAppRecordName",
- {
- app,
- name: null
- }
- );
- if (payload.name) {
- return payload.name;
- } else {
- return `App ${defaultName}`;
- }
- }
- async getAppRootInstance(app) {
- const payload = await this.callHook(
- "getAppRootInstance",
- {
- app,
- root: null
- }
- );
- return payload.root;
- }
- async registerApplication(app) {
- await this.callHook(
- "registerApplication",
- {
- app
- }
- );
- }
- async walkComponentTree(instance, maxDepth = -1, filter = null, recursively = false) {
- const payload = await this.callHook(
- "walkComponentTree",
- {
- componentInstance: instance,
- componentTreeData: null,
- maxDepth,
- filter,
- recursively
- }
- );
- return payload.componentTreeData;
- }
- async visitComponentTree(instance, treeNode, filter = null, app) {
- const payload = await this.callHook(
- "visitComponentTree",
- {
- app,
- componentInstance: instance,
- treeNode,
- filter
- }
- );
- return payload.treeNode;
- }
- async walkComponentParents(instance) {
- const payload = await this.callHook(
- "walkComponentParents",
- {
- componentInstance: instance,
- parentInstances: []
- }
- );
- return payload.parentInstances;
- }
- async inspectComponent(instance, app) {
- const payload = await this.callHook(
- "inspectComponent",
- {
- app,
- componentInstance: instance,
- instanceData: null
- }
- );
- return payload.instanceData;
- }
- async getComponentBounds(instance) {
- const payload = await this.callHook(
- "getComponentBounds",
- {
- componentInstance: instance,
- bounds: null
- }
- );
- return payload.bounds;
- }
- async getComponentName(instance) {
- const payload = await this.callHook(
- "getComponentName",
- {
- componentInstance: instance,
- name: null
- }
- );
- return payload.name;
- }
- async getComponentInstances(app) {
- const payload = await this.callHook(
- "getComponentInstances",
- {
- app,
- componentInstances: []
- }
- );
- return payload.componentInstances;
- }
- async getElementComponent(element) {
- const payload = await this.callHook(
- "getElementComponent",
- {
- element,
- componentInstance: null
- }
- );
- return payload.componentInstance;
- }
- async getComponentRootElements(instance) {
- const payload = await this.callHook(
- "getComponentRootElements",
- {
- componentInstance: instance,
- rootElements: []
- }
- );
- return payload.rootElements;
- }
- async editComponentState(instance, dotPath, type, state, app) {
- const arrayPath = dotPath.split(".");
- const payload = await this.callHook(
- "editComponentState",
- {
- app,
- componentInstance: instance,
- path: arrayPath,
- type,
- state,
- set: (object, path = arrayPath, value = state.value, cb) => this.stateEditor.set(object, path, value, cb || this.stateEditor.createDefaultSetCallback(state))
- }
- );
- return payload.componentInstance;
- }
- async getComponentDevtoolsOptions(instance) {
- const payload = await this.callHook(
- "getAppDevtoolsOptions",
- {
- componentInstance: instance,
- options: null
- }
- );
- return payload.options || {};
- }
- async getComponentRenderCode(instance) {
- const payload = await this.callHook(
- "getComponentRenderCode",
- {
- componentInstance: instance,
- code: null
- }
- );
- return {
- code: payload.code
- };
- }
- async inspectTimelineEvent(eventData, app) {
- const payload = await this.callHook(
- "inspectTimelineEvent",
- {
- event: eventData.event,
- layerId: eventData.layerId,
- app,
- data: eventData.event.data,
- all: eventData.all
- }
- );
- return payload.data;
- }
- async clearTimeline() {
- await this.callHook(
- "timelineCleared",
- {}
- );
- }
- async getInspectorTree(inspectorId, app, filter) {
- const payload = await this.callHook(
- "getInspectorTree",
- {
- inspectorId,
- app,
- filter,
- rootNodes: []
- }
- );
- return payload.rootNodes;
- }
- async getInspectorState(inspectorId, app, nodeId) {
- const payload = await this.callHook(
- "getInspectorState",
- {
- inspectorId,
- app,
- nodeId,
- state: null
- }
- );
- return payload.state;
- }
- async editInspectorState(inspectorId, app, nodeId, dotPath, type, state) {
- const arrayPath = dotPath.split(".");
- await this.callHook(
- "editInspectorState",
- {
- inspectorId,
- app,
- nodeId,
- path: arrayPath,
- type,
- state,
- set: (object, path = arrayPath, value = state.value, cb) => this.stateEditor.set(object, path, value, cb || this.stateEditor.createDefaultSetCallback(state))
- }
- );
- }
- now() {
- return (0, devtools_api_1.now)();
- }
- }
- exports.DevtoolsApi = DevtoolsApi;
- class DevtoolsPluginApiInstance {
- constructor(plugin, appRecord, ctx) {
- this.bridge = ctx.bridge;
- this.ctx = ctx;
- this.plugin = plugin;
- this.appRecord = appRecord;
- this.backendApi = appRecord.backend.api;
- this.defaultSettings = (0, shared_utils_1.getPluginDefaultSettings)(plugin.descriptor.settings);
- this.on = new hooks_1.DevtoolsHookable(ctx, plugin);
- pluginOn.push(this.on);
- }
- // Plugin API
- async notifyComponentUpdate(instance = null) {
- if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.COMPONENTS))
- return;
- if (instance) {
- this.ctx.hook.emit(shared_utils_1.HookEvents.COMPONENT_UPDATED, ...await this.backendApi.transformCall(shared_utils_1.HookEvents.COMPONENT_UPDATED, instance));
- } else {
- this.ctx.hook.emit(shared_utils_1.HookEvents.COMPONENT_UPDATED);
- }
- }
- addTimelineLayer(options) {
- if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.TIMELINE))
- return false;
- this.ctx.hook.emit(shared_utils_1.HookEvents.TIMELINE_LAYER_ADDED, options, this.plugin);
- return true;
- }
- addTimelineEvent(options) {
- if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.TIMELINE))
- return false;
- this.ctx.hook.emit(shared_utils_1.HookEvents.TIMELINE_EVENT_ADDED, options, this.plugin);
- return true;
- }
- addInspector(options) {
- if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.CUSTOM_INSPECTOR))
- return false;
- this.ctx.hook.emit(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_ADD, options, this.plugin);
- return true;
- }
- sendInspectorTree(inspectorId) {
- if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.CUSTOM_INSPECTOR))
- return false;
- this.ctx.hook.emit(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SEND_TREE, inspectorId, this.plugin);
- return true;
- }
- sendInspectorState(inspectorId) {
- if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.CUSTOM_INSPECTOR))
- return false;
- this.ctx.hook.emit(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SEND_STATE, inspectorId, this.plugin);
- return true;
- }
- selectInspectorNode(inspectorId, nodeId) {
- if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.CUSTOM_INSPECTOR))
- return false;
- this.ctx.hook.emit(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SELECT_NODE, inspectorId, nodeId, this.plugin);
- return true;
- }
- getComponentBounds(instance) {
- return this.backendApi.getComponentBounds(instance);
- }
- getComponentName(instance) {
- return this.backendApi.getComponentName(instance);
- }
- getComponentInstances(app) {
- return this.backendApi.getComponentInstances(app);
- }
- highlightElement(instance) {
- if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.COMPONENTS))
- return false;
- this.ctx.hook.emit(shared_utils_1.HookEvents.COMPONENT_HIGHLIGHT, instance.__VUE_DEVTOOLS_UID__, this.plugin);
- return true;
- }
- unhighlightElement() {
- if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.COMPONENTS))
- return false;
- this.ctx.hook.emit(shared_utils_1.HookEvents.COMPONENT_UNHIGHLIGHT, this.plugin);
- return true;
- }
- getSettings(pluginId) {
- return (0, shared_utils_1.getPluginSettings)(pluginId !== null && pluginId !== void 0 ? pluginId : this.plugin.descriptor.id, this.defaultSettings);
- }
- setSettings(value, pluginId) {
- (0, shared_utils_1.setPluginSettings)(pluginId !== null && pluginId !== void 0 ? pluginId : this.plugin.descriptor.id, value);
- }
- now() {
- return (0, devtools_api_1.now)();
- }
- get enabled() {
- return (0, shared_utils_1.hasPluginPermission)(this.plugin.descriptor.id, shared_utils_1.PluginPermission.ENABLED);
- }
- hasPermission(permission2) {
- return (0, shared_utils_1.hasPluginPermission)(this.plugin.descriptor.id, permission2);
- }
- }
- exports.DevtoolsPluginApiInstance = DevtoolsPluginApiInstance;
- }
- ),
- /***/
- "../app-backend-api/lib/app-record.js": (
- /*!********************************************!*\
- !*** ../app-backend-api/lib/app-record.js ***!
- \********************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- }
- ),
- /***/
- "../app-backend-api/lib/backend-context.js": (
- /*!*************************************************!*\
- !*** ../app-backend-api/lib/backend-context.js ***!
- \*************************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.createBackendContext = void 0;
- function createBackendContext(options) {
- return {
- bridge: options.bridge,
- hook: options.hook,
- backends: [],
- appRecords: [],
- currentTab: null,
- currentAppRecord: null,
- currentInspectedComponentId: null,
- plugins: [],
- currentPlugin: null,
- timelineLayers: [],
- nextTimelineEventId: 0,
- timelineEventMap: /* @__PURE__ */ new Map(),
- perfUniqueGroupId: 0,
- customInspectors: [],
- timelineMarkers: []
- };
- }
- exports.createBackendContext = createBackendContext;
- }
- ),
- /***/
- "../app-backend-api/lib/backend.js": (
- /*!*****************************************!*\
- !*** ../app-backend-api/lib/backend.js ***!
- \*****************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.createBackend = exports.defineBackend = exports.BuiltinBackendFeature = void 0;
- const api_1 = __webpack_require__2(
- /*! ./api */
- "../app-backend-api/lib/api.js"
- );
- (function(BuiltinBackendFeature) {
- BuiltinBackendFeature["FLUSH"] = "flush";
- })(exports.BuiltinBackendFeature || (exports.BuiltinBackendFeature = {}));
- function defineBackend(options) {
- return options;
- }
- exports.defineBackend = defineBackend;
- function createBackend(options, ctx) {
- const backend = {
- options,
- api: null
- };
- backend.api = new api_1.DevtoolsApi(backend, ctx);
- options.setup(backend.api);
- return backend;
- }
- exports.createBackend = createBackend;
- }
- ),
- /***/
- "../app-backend-api/lib/global-hook.js": (
- /*!*********************************************!*\
- !*** ../app-backend-api/lib/global-hook.js ***!
- \*********************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- }
- ),
- /***/
- "../app-backend-api/lib/hooks.js": (
- /*!***************************************!*\
- !*** ../app-backend-api/lib/hooks.js ***!
- \***************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.DevtoolsHookable = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- class DevtoolsHookable {
- constructor(ctx, plugin = null) {
- this.handlers = {};
- this.ctx = ctx;
- this.plugin = plugin;
- }
- hook(eventType, handler, pluginPermision = null) {
- const handlers = this.handlers[eventType] = this.handlers[eventType] || [];
- if (this.plugin) {
- const originalHandler = handler;
- handler = (...args) => {
- var _a;
- if (!(0, shared_utils_1.hasPluginPermission)(this.plugin.descriptor.id, shared_utils_1.PluginPermission.ENABLED) || pluginPermision && !(0, shared_utils_1.hasPluginPermission)(this.plugin.descriptor.id, pluginPermision))
- return;
- if (!this.plugin.descriptor.disableAppScope && ((_a = this.ctx.currentAppRecord) === null || _a === void 0 ? void 0 : _a.options.app) !== this.plugin.descriptor.app)
- return;
- if (!this.plugin.descriptor.disablePluginScope && args[0].pluginId != null && args[0].pluginId !== this.plugin.descriptor.id)
- return;
- return originalHandler(...args);
- };
- }
- handlers.push({
- handler,
- plugin: this.ctx.currentPlugin
- });
- }
- async callHandlers(eventType, payload, ctx) {
- if (this.handlers[eventType]) {
- const handlers = this.handlers[eventType];
- for (let i2 = 0; i2 < handlers.length; i2++) {
- const {
- handler,
- plugin
- } = handlers[i2];
- try {
- await handler(payload, ctx);
- } catch (e2) {
- console.error(`An error occurred in hook '${eventType}'${plugin ? ` registered by plugin '${plugin.descriptor.id}'` : ""} with payload:`, payload);
- console.error(e2);
- }
- }
- }
- return payload;
- }
- transformCall(handler) {
- this.hook(
- "transformCall",
- handler
- );
- }
- getAppRecordName(handler) {
- this.hook(
- "getAppRecordName",
- handler
- );
- }
- getAppRootInstance(handler) {
- this.hook(
- "getAppRootInstance",
- handler
- );
- }
- registerApplication(handler) {
- this.hook(
- "registerApplication",
- handler
- );
- }
- walkComponentTree(handler) {
- this.hook(
- "walkComponentTree",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- visitComponentTree(handler) {
- this.hook(
- "visitComponentTree",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- walkComponentParents(handler) {
- this.hook(
- "walkComponentParents",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- inspectComponent(handler) {
- this.hook(
- "inspectComponent",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- getComponentBounds(handler) {
- this.hook(
- "getComponentBounds",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- getComponentName(handler) {
- this.hook(
- "getComponentName",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- getComponentInstances(handler) {
- this.hook(
- "getComponentInstances",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- getElementComponent(handler) {
- this.hook(
- "getElementComponent",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- getComponentRootElements(handler) {
- this.hook(
- "getComponentRootElements",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- editComponentState(handler) {
- this.hook(
- "editComponentState",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- getComponentDevtoolsOptions(handler) {
- this.hook(
- "getAppDevtoolsOptions",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- getComponentRenderCode(handler) {
- this.hook(
- "getComponentRenderCode",
- handler,
- shared_utils_1.PluginPermission.COMPONENTS
- );
- }
- inspectTimelineEvent(handler) {
- this.hook(
- "inspectTimelineEvent",
- handler,
- shared_utils_1.PluginPermission.TIMELINE
- );
- }
- timelineCleared(handler) {
- this.hook(
- "timelineCleared",
- handler,
- shared_utils_1.PluginPermission.TIMELINE
- );
- }
- getInspectorTree(handler) {
- this.hook(
- "getInspectorTree",
- handler,
- shared_utils_1.PluginPermission.CUSTOM_INSPECTOR
- );
- }
- getInspectorState(handler) {
- this.hook(
- "getInspectorState",
- handler,
- shared_utils_1.PluginPermission.CUSTOM_INSPECTOR
- );
- }
- editInspectorState(handler) {
- this.hook(
- "editInspectorState",
- handler,
- shared_utils_1.PluginPermission.CUSTOM_INSPECTOR
- );
- }
- setPluginSettings(handler) {
- this.hook(
- "setPluginSettings",
- handler
- );
- }
- }
- exports.DevtoolsHookable = DevtoolsHookable;
- }
- ),
- /***/
- "../app-backend-api/lib/index.js": (
- /*!***************************************!*\
- !*** ../app-backend-api/lib/index.js ***!
- \***************************************/
- /***/
- function(__unused_webpack_module, exports, __webpack_require__2) {
- var __createBinding = this && this.__createBinding || (Object.create ? function(o2, m2, k, k2) {
- if (k2 === void 0)
- k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m2, k);
- if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
- desc = {
- enumerable: true,
- get: function() {
- return m2[k];
- }
- };
- }
- Object.defineProperty(o2, k2, desc);
- } : function(o2, m2, k, k2) {
- if (k2 === void 0)
- k2 = k;
- o2[k2] = m2[k];
- });
- var __exportStar = this && this.__exportStar || function(m2, exports2) {
- for (var p2 in m2)
- if (p2 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p2))
- __createBinding(exports2, m2, p2);
- };
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- __exportStar(__webpack_require__2(
- /*! ./api */
- "../app-backend-api/lib/api.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./app-record */
- "../app-backend-api/lib/app-record.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./backend */
- "../app-backend-api/lib/backend.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./backend-context */
- "../app-backend-api/lib/backend-context.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./global-hook */
- "../app-backend-api/lib/global-hook.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./hooks */
- "../app-backend-api/lib/hooks.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./plugin */
- "../app-backend-api/lib/plugin.js"
- ), exports);
- }
- ),
- /***/
- "../app-backend-api/lib/plugin.js": (
- /*!****************************************!*\
- !*** ../app-backend-api/lib/plugin.js ***!
- \****************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- }
- ),
- /***/
- "../app-backend-core/lib/app.js": (
- /*!**************************************!*\
- !*** ../app-backend-core/lib/app.js ***!
- \**************************************/
- /***/
- function(__unused_webpack_module, exports, __webpack_require__2) {
- var __importDefault = this && this.__importDefault || function(mod) {
- return mod && mod.__esModule ? mod : {
- "default": mod
- };
- };
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports._legacy_getAndRegisterApps = exports.removeApp = exports.sendApps = exports.waitForAppsRegistration = exports.getAppRecord = exports.getAppRecordId = exports.mapAppRecord = exports.selectApp = exports.registerApp = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const speakingurl_1 = __importDefault(__webpack_require__2(
- /*! speakingurl */
- "../../node_modules/speakingurl/index.js"
- ));
- const queue_1 = __webpack_require__2(
- /*! ./util/queue */
- "../app-backend-core/lib/util/queue.js"
- );
- const scan_1 = __webpack_require__2(
- /*! ./legacy/scan */
- "../app-backend-core/lib/legacy/scan.js"
- );
- const timeline_1 = __webpack_require__2(
- /*! ./timeline */
- "../app-backend-core/lib/timeline.js"
- );
- const backend_1 = __webpack_require__2(
- /*! ./backend */
- "../app-backend-core/lib/backend.js"
- );
- const global_hook_js_1 = __webpack_require__2(
- /*! ./global-hook.js */
- "../app-backend-core/lib/global-hook.js"
- );
- const jobs = new queue_1.JobQueue();
- let recordId = 0;
- const appRecordPromises = /* @__PURE__ */ new Map();
- async function registerApp(options, ctx) {
- return jobs.queue("regiserApp", () => registerAppJob(options, ctx));
- }
- exports.registerApp = registerApp;
- async function registerAppJob(options, ctx) {
- if (ctx.appRecords.find((a2) => a2.options.app === options.app)) {
- return;
- }
- if (!options.version) {
- throw new Error("[Vue Devtools] Vue version not found");
- }
- const baseFrameworkVersion = parseInt(options.version.substring(0, options.version.indexOf(".")));
- for (let i2 = 0; i2 < backend_1.availableBackends.length; i2++) {
- const backendOptions = backend_1.availableBackends[i2];
- if (backendOptions.frameworkVersion === baseFrameworkVersion) {
- const backend = (0, backend_1.getBackend)(backendOptions, ctx);
- await createAppRecord(options, backend, ctx);
- break;
- }
- }
- }
- async function createAppRecord(options, backend, ctx) {
- var _a, _b, _c;
- const rootInstance = await backend.api.getAppRootInstance(options.app);
- if (rootInstance) {
- if ((await backend.api.getComponentDevtoolsOptions(rootInstance)).hide) {
- options.app._vueDevtools_hidden_ = true;
- return;
- }
- recordId++;
- const name = await backend.api.getAppRecordName(options.app, recordId.toString());
- const id = getAppRecordId(options.app, (0, speakingurl_1.default)(name));
- const [el] = await backend.api.getComponentRootElements(rootInstance);
- const record2 = {
- id,
- name,
- options,
- backend,
- lastInspectedComponentId: null,
- instanceMap: /* @__PURE__ */ new Map(),
- rootInstance,
- perfGroupIds: /* @__PURE__ */ new Map(),
- iframe: shared_utils_1.isBrowser && el && document !== el.ownerDocument ? (_b = (_a = el.ownerDocument) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.pathname : null,
- meta: (_c = options.meta) !== null && _c !== void 0 ? _c : {}
- };
- options.app.__VUE_DEVTOOLS_APP_RECORD__ = record2;
- const rootId = `${record2.id}:root`;
- record2.instanceMap.set(rootId, record2.rootInstance);
- record2.rootInstance.__VUE_DEVTOOLS_UID__ = rootId;
- (0, timeline_1.addBuiltinLayers)(record2, ctx);
- ctx.appRecords.push(record2);
- if (backend.options.setupApp) {
- backend.options.setupApp(backend.api, record2);
- }
- await backend.api.registerApplication(options.app);
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_APP_ADD, {
- appRecord: mapAppRecord(record2)
- });
- if (appRecordPromises.has(options.app)) {
- for (const r2 of appRecordPromises.get(options.app)) {
- await r2(record2);
- }
- }
- if (ctx.currentAppRecord == null) {
- await selectApp(record2, ctx);
- }
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn("[Vue devtools] No root instance found for app, it might have been unmounted", options.app);
- }
- }
- async function selectApp(record2, ctx) {
- ctx.currentAppRecord = record2;
- ctx.currentInspectedComponentId = record2.lastInspectedComponentId;
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_APP_SELECTED, {
- id: record2.id,
- lastInspectedComponentId: record2.lastInspectedComponentId
- });
- }
- exports.selectApp = selectApp;
- function mapAppRecord(record2) {
- return {
- id: record2.id,
- name: record2.name,
- version: record2.options.version,
- iframe: record2.iframe
- };
- }
- exports.mapAppRecord = mapAppRecord;
- const appIds = /* @__PURE__ */ new Set();
- function getAppRecordId(app, defaultId) {
- if (app.__VUE_DEVTOOLS_APP_RECORD_ID__ != null) {
- return app.__VUE_DEVTOOLS_APP_RECORD_ID__;
- }
- let id = defaultId !== null && defaultId !== void 0 ? defaultId : (recordId++).toString();
- if (defaultId && appIds.has(id)) {
- let count = 1;
- while (appIds.has(`${defaultId}_${count}`)) {
- count++;
- }
- id = `${defaultId}_${count}`;
- }
- appIds.add(id);
- app.__VUE_DEVTOOLS_APP_RECORD_ID__ = id;
- return id;
- }
- exports.getAppRecordId = getAppRecordId;
- async function getAppRecord(app, ctx) {
- var _a;
- const record2 = (_a = app.__VUE_DEVTOOLS_APP_RECORD__) !== null && _a !== void 0 ? _a : ctx.appRecords.find((ar) => ar.options.app === app);
- if (record2) {
- return record2;
- }
- if (app._vueDevtools_hidden_)
- return null;
- return new Promise((resolve, reject) => {
- let resolvers = appRecordPromises.get(app);
- let timedOut = false;
- if (!resolvers) {
- resolvers = [];
- appRecordPromises.set(app, resolvers);
- }
- const fn = (record3) => {
- if (!timedOut) {
- clearTimeout(timer);
- resolve(record3);
- }
- };
- resolvers.push(fn);
- const timer = setTimeout(() => {
- timedOut = true;
- const index = resolvers.indexOf(fn);
- if (index !== -1)
- resolvers.splice(index, 1);
- if (shared_utils_1.SharedData.debugInfo) {
- console.log("Timed out waiting for app record", app);
- }
- reject(new Error(`Timed out getting app record for app`));
- }, 6e4);
- });
- }
- exports.getAppRecord = getAppRecord;
- function waitForAppsRegistration() {
- return jobs.queue("waitForAppsRegistrationNoop", async () => {
- });
- }
- exports.waitForAppsRegistration = waitForAppsRegistration;
- async function sendApps(ctx) {
- const appRecords = [];
- for (const appRecord of ctx.appRecords) {
- appRecords.push(appRecord);
- }
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_APP_LIST, {
- apps: appRecords.map(mapAppRecord)
- });
- }
- exports.sendApps = sendApps;
- function removeAppRecord(appRecord, ctx) {
- try {
- appIds.delete(appRecord.id);
- const index = ctx.appRecords.indexOf(appRecord);
- if (index !== -1)
- ctx.appRecords.splice(index, 1);
- (0, timeline_1.removeLayersForApp)(appRecord.options.app, ctx);
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_APP_REMOVE, {
- id: appRecord.id
- });
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- }
- async function removeApp(app, ctx) {
- try {
- const appRecord = await getAppRecord(app, ctx);
- if (appRecord) {
- removeAppRecord(appRecord, ctx);
- }
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- }
- exports.removeApp = removeApp;
- let scanTimeout;
- function _legacy_getAndRegisterApps(ctx, clear = false) {
- setTimeout(() => {
- try {
- if (clear) {
- ctx.appRecords.forEach((appRecord) => {
- if (appRecord.meta.Vue) {
- removeAppRecord(appRecord, ctx);
- }
- });
- }
- const apps = (0, scan_1.scan)();
- clearTimeout(scanTimeout);
- if (!apps.length) {
- scanTimeout = setTimeout(() => _legacy_getAndRegisterApps(ctx), 1e3);
- }
- apps.forEach((app) => {
- const Vue2 = global_hook_js_1.hook.Vue;
- registerApp({
- app,
- types: {},
- version: Vue2 === null || Vue2 === void 0 ? void 0 : Vue2.version,
- meta: {
- Vue: Vue2
- }
- }, ctx);
- });
- } catch (e2) {
- console.error(`Error scanning for legacy apps:`);
- console.error(e2);
- }
- }, 0);
- }
- exports._legacy_getAndRegisterApps = _legacy_getAndRegisterApps;
- }
- ),
- /***/
- "../app-backend-core/lib/backend.js": (
- /*!******************************************!*\
- !*** ../app-backend-core/lib/backend.js ***!
- \******************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.getBackend = exports.availableBackends = void 0;
- const app_backend_api_1 = __webpack_require__2(
- /*! @vue-devtools/app-backend-api */
- "../app-backend-api/lib/index.js"
- );
- const app_backend_vue3_1 = __webpack_require__2(
- /*! @vue-devtools/app-backend-vue3 */
- "../app-backend-vue3/lib/index.js"
- );
- const perf_1 = __webpack_require__2(
- /*! ./perf */
- "../app-backend-core/lib/perf.js"
- );
- exports.availableBackends = [
- // backendVue1,
- // backendVue2,
- app_backend_vue3_1.backend
- ];
- const enabledBackends = /* @__PURE__ */ new Map();
- function getBackend(backendOptions, ctx) {
- let backend;
- if (!enabledBackends.has(backendOptions)) {
- backend = (0, app_backend_api_1.createBackend)(backendOptions, ctx);
- (0, perf_1.handleAddPerformanceTag)(backend, ctx);
- enabledBackends.set(backendOptions, backend);
- ctx.backends.push(backend);
- } else {
- backend = enabledBackends.get(backendOptions);
- }
- return backend;
- }
- exports.getBackend = getBackend;
- }
- ),
- /***/
- "../app-backend-core/lib/component-pick.js": (
- /*!*************************************************!*\
- !*** ../app-backend-core/lib/component-pick.js ***!
- \*************************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const highlighter_1 = __webpack_require__2(
- /*! ./highlighter */
- "../app-backend-core/lib/highlighter.js"
- );
- class ComponentPicker {
- constructor(ctx) {
- this.ctx = ctx;
- this.bindMethods();
- }
- /**
- * Adds event listeners for mouseover and mouseup
- */
- startSelecting() {
- if (!shared_utils_1.isBrowser)
- return;
- window.addEventListener("mouseover", this.elementMouseOver, true);
- window.addEventListener("click", this.elementClicked, true);
- window.addEventListener("mouseout", this.cancelEvent, true);
- window.addEventListener("mouseenter", this.cancelEvent, true);
- window.addEventListener("mouseleave", this.cancelEvent, true);
- window.addEventListener("mousedown", this.cancelEvent, true);
- window.addEventListener("mouseup", this.cancelEvent, true);
- }
- /**
- * Removes event listeners
- */
- stopSelecting() {
- if (!shared_utils_1.isBrowser)
- return;
- window.removeEventListener("mouseover", this.elementMouseOver, true);
- window.removeEventListener("click", this.elementClicked, true);
- window.removeEventListener("mouseout", this.cancelEvent, true);
- window.removeEventListener("mouseenter", this.cancelEvent, true);
- window.removeEventListener("mouseleave", this.cancelEvent, true);
- window.removeEventListener("mousedown", this.cancelEvent, true);
- window.removeEventListener("mouseup", this.cancelEvent, true);
- (0, highlighter_1.unHighlight)();
- }
- /**
- * Highlights a component on element mouse over
- */
- async elementMouseOver(e2) {
- this.cancelEvent(e2);
- const el = e2.target;
- if (el) {
- await this.selectElementComponent(el);
- }
- (0, highlighter_1.unHighlight)();
- if (this.selectedInstance) {
- (0, highlighter_1.highlight)(this.selectedInstance, this.selectedBackend, this.ctx);
- }
- }
- async selectElementComponent(el) {
- for (const backend of this.ctx.backends) {
- const instance = await backend.api.getElementComponent(el);
- if (instance) {
- this.selectedInstance = instance;
- this.selectedBackend = backend;
- return;
- }
- }
- this.selectedInstance = null;
- this.selectedBackend = null;
- }
- /**
- * Selects an instance in the component view
- */
- async elementClicked(e2) {
- this.cancelEvent(e2);
- if (this.selectedInstance && this.selectedBackend) {
- const parentInstances = await this.selectedBackend.api.walkComponentParents(this.selectedInstance);
- this.ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_PICK, {
- id: this.selectedInstance.__VUE_DEVTOOLS_UID__,
- parentIds: parentInstances.map((i2) => i2.__VUE_DEVTOOLS_UID__)
- });
- } else {
- this.ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_PICK_CANCELED, null);
- }
- this.stopSelecting();
- }
- /**
- * Cancel a mouse event
- */
- cancelEvent(e2) {
- e2.stopImmediatePropagation();
- e2.preventDefault();
- }
- /**
- * Bind class methods to the class scope to avoid rebind for event listeners
- */
- bindMethods() {
- this.startSelecting = this.startSelecting.bind(this);
- this.stopSelecting = this.stopSelecting.bind(this);
- this.elementMouseOver = this.elementMouseOver.bind(this);
- this.elementClicked = this.elementClicked.bind(this);
- }
- }
- exports["default"] = ComponentPicker;
- }
- ),
- /***/
- "../app-backend-core/lib/component.js": (
- /*!********************************************!*\
- !*** ../app-backend-core/lib/component.js ***!
- \********************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.sendComponentUpdateTracking = exports.refreshComponentTreeSearch = exports.getComponentInstance = exports.getComponentId = exports.editComponentState = exports.sendEmptyComponentData = exports.markSelectedInstance = exports.sendSelectedComponentData = exports.sendComponentTreeData = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const app_backend_api_1 = __webpack_require__2(
- /*! @vue-devtools/app-backend-api */
- "../app-backend-api/lib/index.js"
- );
- const app_1 = __webpack_require__2(
- /*! ./app */
- "../app-backend-core/lib/app.js"
- );
- const MAX_$VM = 10;
- const $vmQueue = [];
- async function sendComponentTreeData(appRecord, instanceId, filter = "", maxDepth = null, recursively = false, ctx) {
- if (!instanceId || appRecord !== ctx.currentAppRecord)
- return;
- if (instanceId !== "_root" && ctx.currentAppRecord.backend.options.features.includes(app_backend_api_1.BuiltinBackendFeature.FLUSH)) {
- return;
- }
- const instance = getComponentInstance(appRecord, instanceId);
- if (!instance) {
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_TREE, {
- instanceId,
- treeData: null,
- notFound: true
- });
- } else {
- if (filter)
- filter = filter.toLowerCase();
- if (maxDepth == null) {
- maxDepth = instance === ctx.currentAppRecord.rootInstance ? 2 : 1;
- }
- const data = await appRecord.backend.api.walkComponentTree(instance, maxDepth, filter, recursively);
- const payload = {
- instanceId,
- treeData: (0, shared_utils_1.stringify)(data)
- };
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_TREE, payload);
- }
- }
- exports.sendComponentTreeData = sendComponentTreeData;
- async function sendSelectedComponentData(appRecord, instanceId, ctx) {
- if (!instanceId || appRecord !== ctx.currentAppRecord)
- return;
- const instance = getComponentInstance(appRecord, instanceId);
- if (!instance) {
- sendEmptyComponentData(instanceId, ctx);
- } else {
- if (typeof window !== "undefined") {
- const win = window;
- win.$vm = instance;
- if ($vmQueue[0] !== instance) {
- if ($vmQueue.length >= MAX_$VM) {
- $vmQueue.pop();
- }
- for (let i2 = $vmQueue.length; i2 > 0; i2--) {
- win[`$vm${i2}`] = $vmQueue[i2] = $vmQueue[i2 - 1];
- }
- win.$vm0 = $vmQueue[0] = instance;
- }
- }
- if (shared_utils_1.SharedData.debugInfo) {
- console.log("[DEBUG] inspect", instance);
- }
- const parentInstances = await appRecord.backend.api.walkComponentParents(instance);
- const payload = {
- instanceId,
- data: await appRecord.backend.api.inspectComponent(instance, ctx.currentAppRecord.options.app),
- parentIds: parentInstances.map((i2) => i2.__VUE_DEVTOOLS_UID__)
- };
- {
- payload.data.isSetup = !!instance.type.setup && !instance.type.render;
- }
- payload.data = (0, shared_utils_1.stringify)(payload.data);
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, payload);
- markSelectedInstance(instanceId, ctx);
- }
- }
- exports.sendSelectedComponentData = sendSelectedComponentData;
- function markSelectedInstance(instanceId, ctx) {
- ctx.currentInspectedComponentId = instanceId;
- ctx.currentAppRecord.lastInspectedComponentId = instanceId;
- }
- exports.markSelectedInstance = markSelectedInstance;
- function sendEmptyComponentData(instanceId, ctx) {
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, {
- instanceId,
- data: null
- });
- }
- exports.sendEmptyComponentData = sendEmptyComponentData;
- async function editComponentState(instanceId, dotPath, type, state, ctx) {
- if (!instanceId)
- return;
- const instance = getComponentInstance(ctx.currentAppRecord, instanceId);
- if (instance) {
- if ("value" in state && state.value != null) {
- state.value = (0, shared_utils_1.parse)(state.value, true);
- }
- await ctx.currentAppRecord.backend.api.editComponentState(instance, dotPath, type, state, ctx.currentAppRecord.options.app);
- await sendSelectedComponentData(ctx.currentAppRecord, instanceId, ctx);
- }
- }
- exports.editComponentState = editComponentState;
- async function getComponentId(app, uid, instance, ctx) {
- try {
- if (instance.__VUE_DEVTOOLS_UID__)
- return instance.__VUE_DEVTOOLS_UID__;
- const appRecord = await (0, app_1.getAppRecord)(app, ctx);
- if (!appRecord)
- return null;
- const isRoot = appRecord.rootInstance === instance;
- return `${appRecord.id}:${isRoot ? "root" : uid}`;
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- return null;
- }
- }
- exports.getComponentId = getComponentId;
- function getComponentInstance(appRecord, instanceId, ctx) {
- if (instanceId === "_root") {
- instanceId = `${appRecord.id}:root`;
- }
- const instance = appRecord.instanceMap.get(instanceId);
- if (!instance && shared_utils_1.SharedData.debugInfo) {
- console.warn(`Instance uid=${instanceId} not found`);
- }
- return instance;
- }
- exports.getComponentInstance = getComponentInstance;
- async function refreshComponentTreeSearch(ctx) {
- if (!ctx.currentAppRecord.componentFilter)
- return;
- await sendComponentTreeData(ctx.currentAppRecord, "_root", ctx.currentAppRecord.componentFilter, null, false, ctx);
- }
- exports.refreshComponentTreeSearch = refreshComponentTreeSearch;
- async function sendComponentUpdateTracking(instanceId, ctx) {
- if (!instanceId)
- return;
- const payload = {
- instanceId,
- time: Date.now()
- // Use normal date
- };
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_UPDATED, payload);
- }
- exports.sendComponentUpdateTracking = sendComponentUpdateTracking;
- }
- ),
- /***/
- "../app-backend-core/lib/flash.js": (
- /*!****************************************!*\
- !*** ../app-backend-core/lib/flash.js ***!
- \****************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.flashComponent = void 0;
- async function flashComponent(instance, backend) {
- const bounds = await backend.api.getComponentBounds(instance);
- if (bounds) {
- let overlay = instance.__VUE_DEVTOOLS_FLASH;
- if (!overlay) {
- overlay = document.createElement("div");
- instance.__VUE_DEVTOOLS_FLASH = overlay;
- overlay.style.border = "2px rgba(65, 184, 131, 0.7) solid";
- overlay.style.position = "fixed";
- overlay.style.zIndex = "99999999999998";
- overlay.style.pointerEvents = "none";
- overlay.style.borderRadius = "3px";
- overlay.style.boxSizing = "border-box";
- document.body.appendChild(overlay);
- }
- overlay.style.opacity = "1";
- overlay.style.transition = null;
- overlay.style.width = Math.round(bounds.width) + "px";
- overlay.style.height = Math.round(bounds.height) + "px";
- overlay.style.left = Math.round(bounds.left) + "px";
- overlay.style.top = Math.round(bounds.top) + "px";
- requestAnimationFrame(() => {
- overlay.style.transition = "opacity 1s";
- overlay.style.opacity = "0";
- });
- clearTimeout(overlay._timer);
- overlay._timer = setTimeout(() => {
- document.body.removeChild(overlay);
- instance.__VUE_DEVTOOLS_FLASH = null;
- }, 1e3);
- }
- }
- exports.flashComponent = flashComponent;
- }
- ),
- /***/
- "../app-backend-core/lib/global-hook.js": (
- /*!**********************************************!*\
- !*** ../app-backend-core/lib/global-hook.js ***!
- \**********************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.hook = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- exports.hook = shared_utils_1.target.__VUE_DEVTOOLS_GLOBAL_HOOK__;
- }
- ),
- /***/
- "../app-backend-core/lib/highlighter.js": (
- /*!**********************************************!*\
- !*** ../app-backend-core/lib/highlighter.js ***!
- \**********************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.unHighlight = exports.highlight = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const queue_1 = __webpack_require__2(
- /*! ./util/queue */
- "../app-backend-core/lib/util/queue.js"
- );
- let overlay;
- let overlayContent;
- let currentInstance;
- function createOverlay() {
- if (overlay || !shared_utils_1.isBrowser)
- return;
- overlay = document.createElement("div");
- overlay.style.backgroundColor = "rgba(65, 184, 131, 0.35)";
- overlay.style.position = "fixed";
- overlay.style.zIndex = "99999999999998";
- overlay.style.pointerEvents = "none";
- overlay.style.borderRadius = "3px";
- overlayContent = document.createElement("div");
- overlayContent.style.position = "fixed";
- overlayContent.style.zIndex = "99999999999999";
- overlayContent.style.pointerEvents = "none";
- overlayContent.style.backgroundColor = "white";
- overlayContent.style.fontFamily = "monospace";
- overlayContent.style.fontSize = "11px";
- overlayContent.style.padding = "4px 8px";
- overlayContent.style.borderRadius = "3px";
- overlayContent.style.color = "#333";
- overlayContent.style.textAlign = "center";
- overlayContent.style.border = "rgba(65, 184, 131, 0.5) 1px solid";
- overlayContent.style.backgroundClip = "padding-box";
- }
- const jobQueue = new queue_1.JobQueue();
- async function highlight(instance, backend, ctx) {
- await jobQueue.queue("highlight", async () => {
- if (!instance)
- return;
- const bounds = await backend.api.getComponentBounds(instance);
- if (bounds) {
- createOverlay();
- const name = await backend.api.getComponentName(instance) || "Anonymous";
- const pre = document.createElement("span");
- pre.style.opacity = "0.6";
- pre.innerText = "<";
- const text = document.createElement("span");
- text.style.fontWeight = "bold";
- text.style.color = "#09ab56";
- text.innerText = name;
- const post = document.createElement("span");
- post.style.opacity = "0.6";
- post.innerText = ">";
- const size = document.createElement("span");
- size.style.opacity = "0.5";
- size.style.marginLeft = "6px";
- size.appendChild(document.createTextNode((Math.round(bounds.width * 100) / 100).toString()));
- const multiply = document.createElement("span");
- multiply.style.marginLeft = multiply.style.marginRight = "2px";
- multiply.innerText = "×";
- size.appendChild(multiply);
- size.appendChild(document.createTextNode((Math.round(bounds.height * 100) / 100).toString()));
- currentInstance = instance;
- await showOverlay(bounds, [pre, text, post, size]);
- }
- startUpdateTimer(backend);
- });
- }
- exports.highlight = highlight;
- async function unHighlight() {
- await jobQueue.queue("unHighlight", async () => {
- var _a, _b;
- (_a = overlay === null || overlay === void 0 ? void 0 : overlay.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(overlay);
- (_b = overlayContent === null || overlayContent === void 0 ? void 0 : overlayContent.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(overlayContent);
- currentInstance = null;
- stopUpdateTimer();
- });
- }
- exports.unHighlight = unHighlight;
- function showOverlay(bounds, children = null) {
- if (!shared_utils_1.isBrowser || !children.length)
- return;
- positionOverlay(bounds);
- document.body.appendChild(overlay);
- overlayContent.innerHTML = "";
- children.forEach((child) => overlayContent.appendChild(child));
- document.body.appendChild(overlayContent);
- positionOverlayContent(bounds);
- }
- function positionOverlay({
- width = 0,
- height = 0,
- top = 0,
- left = 0
- }) {
- overlay.style.width = Math.round(width) + "px";
- overlay.style.height = Math.round(height) + "px";
- overlay.style.left = Math.round(left) + "px";
- overlay.style.top = Math.round(top) + "px";
- }
- function positionOverlayContent({
- height = 0,
- top = 0,
- left = 0
- }) {
- const contentWidth = overlayContent.offsetWidth;
- const contentHeight = overlayContent.offsetHeight;
- let contentLeft = left;
- if (contentLeft < 0) {
- contentLeft = 0;
- } else if (contentLeft + contentWidth > window.innerWidth) {
- contentLeft = window.innerWidth - contentWidth;
- }
- let contentTop = top - contentHeight - 2;
- if (contentTop < 0) {
- contentTop = top + height + 2;
- }
- if (contentTop < 0) {
- contentTop = 0;
- } else if (contentTop + contentHeight > window.innerHeight) {
- contentTop = window.innerHeight - contentHeight;
- }
- overlayContent.style.left = ~~contentLeft + "px";
- overlayContent.style.top = ~~contentTop + "px";
- }
- async function updateOverlay(backend, ctx) {
- if (currentInstance) {
- const bounds = await backend.api.getComponentBounds(currentInstance);
- if (bounds) {
- const sizeEl = overlayContent.children.item(3);
- const widthEl = sizeEl.childNodes[0];
- widthEl.textContent = (Math.round(bounds.width * 100) / 100).toString();
- const heightEl = sizeEl.childNodes[2];
- heightEl.textContent = (Math.round(bounds.height * 100) / 100).toString();
- positionOverlay(bounds);
- positionOverlayContent(bounds);
- }
- }
- }
- let updateTimer;
- function startUpdateTimer(backend, ctx) {
- stopUpdateTimer();
- updateTimer = setInterval(() => {
- jobQueue.queue("updateOverlay", async () => {
- await updateOverlay(backend);
- });
- }, 1e3 / 30);
- }
- function stopUpdateTimer() {
- clearInterval(updateTimer);
- }
- }
- ),
- /***/
- "../app-backend-core/lib/index.js": (
- /*!****************************************!*\
- !*** ../app-backend-core/lib/index.js ***!
- \****************************************/
- /***/
- function(__unused_webpack_module, exports, __webpack_require__2) {
- var __importDefault = this && this.__importDefault || function(mod) {
- return mod && mod.__esModule ? mod : {
- "default": mod
- };
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.initBackend = void 0;
- const app_backend_api_1 = __webpack_require__2(
- /*! @vue-devtools/app-backend-api */
- "../app-backend-api/lib/index.js"
- );
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const debounce_1 = __importDefault(__webpack_require__2(
- /*! lodash/debounce */
- "../../node_modules/lodash/debounce.js"
- ));
- const throttle_1 = __importDefault(__webpack_require__2(
- /*! lodash/throttle */
- "../../node_modules/lodash/throttle.js"
- ));
- const global_hook_1 = __webpack_require__2(
- /*! ./global-hook */
- "../app-backend-core/lib/global-hook.js"
- );
- const subscriptions_1 = __webpack_require__2(
- /*! ./util/subscriptions */
- "../app-backend-core/lib/util/subscriptions.js"
- );
- const highlighter_1 = __webpack_require__2(
- /*! ./highlighter */
- "../app-backend-core/lib/highlighter.js"
- );
- const timeline_1 = __webpack_require__2(
- /*! ./timeline */
- "../app-backend-core/lib/timeline.js"
- );
- const component_pick_1 = __importDefault(__webpack_require__2(
- /*! ./component-pick */
- "../app-backend-core/lib/component-pick.js"
- ));
- const component_1 = __webpack_require__2(
- /*! ./component */
- "../app-backend-core/lib/component.js"
- );
- const plugin_1 = __webpack_require__2(
- /*! ./plugin */
- "../app-backend-core/lib/plugin.js"
- );
- const devtools_api_1 = __webpack_require__2(
- /*! @vue/devtools-api */
- "../api/lib/esm/index.js"
- );
- const app_1 = __webpack_require__2(
- /*! ./app */
- "../app-backend-core/lib/app.js"
- );
- const inspector_1 = __webpack_require__2(
- /*! ./inspector */
- "../app-backend-core/lib/inspector.js"
- );
- const timeline_screenshot_1 = __webpack_require__2(
- /*! ./timeline-screenshot */
- "../app-backend-core/lib/timeline-screenshot.js"
- );
- const perf_1 = __webpack_require__2(
- /*! ./perf */
- "../app-backend-core/lib/perf.js"
- );
- const page_config_1 = __webpack_require__2(
- /*! ./page-config */
- "../app-backend-core/lib/page-config.js"
- );
- const timeline_marker_1 = __webpack_require__2(
- /*! ./timeline-marker */
- "../app-backend-core/lib/timeline-marker.js"
- );
- const flash_js_1 = __webpack_require__2(
- /*! ./flash.js */
- "../app-backend-core/lib/flash.js"
- );
- let ctx = (_a = shared_utils_1.target.__vdevtools_ctx) !== null && _a !== void 0 ? _a : null;
- let connected = (_b = shared_utils_1.target.__vdevtools_connected) !== null && _b !== void 0 ? _b : false;
- async function initBackend(bridge) {
- await (0, shared_utils_1.initSharedData)({
- bridge,
- persist: false
- });
- shared_utils_1.SharedData.isBrowser = shared_utils_1.isBrowser;
- (0, page_config_1.initOnPageConfig)();
- if (!connected) {
- ctx = shared_utils_1.target.__vdevtools_ctx = (0, app_backend_api_1.createBackendContext)({
- bridge,
- hook: global_hook_1.hook
- });
- shared_utils_1.SharedData.legacyApps = false;
- if (global_hook_1.hook.Vue) {
- connect();
- (0, app_1._legacy_getAndRegisterApps)(ctx, true);
- shared_utils_1.SharedData.legacyApps = true;
- }
- global_hook_1.hook.on(shared_utils_1.HookEvents.INIT, () => {
- (0, app_1._legacy_getAndRegisterApps)(ctx, true);
- shared_utils_1.SharedData.legacyApps = true;
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.APP_ADD, async (app) => {
- await (0, app_1.registerApp)(app, ctx);
- connect();
- });
- if (global_hook_1.hook.apps.length) {
- global_hook_1.hook.apps.forEach((app) => {
- (0, app_1.registerApp)(app, ctx);
- connect();
- });
- }
- } else {
- ctx.bridge = bridge;
- connectBridge();
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_RECONNECTED);
- }
- }
- exports.initBackend = initBackend;
- async function connect() {
- if (connected) {
- return;
- }
- connected = shared_utils_1.target.__vdevtools_connected = true;
- await (0, app_1.waitForAppsRegistration)();
- connectBridge();
- ctx.currentTab = shared_utils_1.BuiltinTabs.COMPONENTS;
- global_hook_1.hook.on(shared_utils_1.HookEvents.APP_UNMOUNT, async (app) => {
- await (0, app_1.removeApp)(app, ctx);
- });
- const _sendComponentUpdate = async (appRecord, id) => {
- try {
- if (id && (0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.SELECTED_COMPONENT_DATA, (sub) => sub.payload.instanceId === id)) {
- await (0, component_1.sendSelectedComponentData)(appRecord, id, ctx);
- }
- if ((0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.COMPONENT_TREE, (sub) => sub.payload.instanceId === id)) {
- await (0, component_1.sendComponentTreeData)(appRecord, id, appRecord.componentFilter, 0, false, ctx);
- }
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- };
- const sendComponentUpdate = (0, throttle_1.default)(_sendComponentUpdate, 100);
- global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_UPDATED, async (app, uid, parentUid, component) => {
- try {
- if (!app || typeof uid !== "number" && !uid || !component)
- return;
- let id;
- let appRecord;
- if (app && uid != null) {
- id = await (0, component_1.getComponentId)(app, uid, component, ctx);
- appRecord = await (0, app_1.getAppRecord)(app, ctx);
- } else {
- id = ctx.currentInspectedComponentId;
- appRecord = ctx.currentAppRecord;
- }
- if (shared_utils_1.SharedData.trackUpdates) {
- await (0, component_1.sendComponentUpdateTracking)(id, ctx);
- }
- if (shared_utils_1.SharedData.flashUpdates) {
- await (0, flash_js_1.flashComponent)(component, appRecord.backend);
- }
- await sendComponentUpdate(appRecord, id);
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_ADDED, async (app, uid, parentUid, component) => {
- try {
- if (!app || typeof uid !== "number" && !uid || !component)
- return;
- const id = await (0, component_1.getComponentId)(app, uid, component, ctx);
- const appRecord = await (0, app_1.getAppRecord)(app, ctx);
- if (component) {
- if (component.__VUE_DEVTOOLS_UID__ == null) {
- component.__VUE_DEVTOOLS_UID__ = id;
- }
- if (!appRecord.instanceMap.has(id)) {
- appRecord.instanceMap.set(id, component);
- }
- }
- if (uid !== 0 && parentUid === void 0) {
- const parentId = `${id.split(":")[0]}:root`;
- (0, component_1.sendComponentTreeData)(appRecord, parentId, appRecord.componentFilter, null, false, ctx);
- }
- if (false)
- ;
- if (parentUid != null) {
- const parentInstances = await appRecord.backend.api.walkComponentParents(component);
- if (parentInstances.length) {
- for (let i2 = 0; i2 < parentInstances.length; i2++) {
- const parentId = await (0, component_1.getComponentId)(app, parentUid, parentInstances[i2], ctx);
- if (i2 < 2 && (0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.COMPONENT_TREE, (sub) => sub.payload.instanceId === parentId)) {
- (0, shared_utils_1.raf)(() => {
- (0, component_1.sendComponentTreeData)(appRecord, parentId, appRecord.componentFilter, null, false, ctx);
- });
- }
- if (shared_utils_1.SharedData.trackUpdates) {
- await (0, component_1.sendComponentUpdateTracking)(parentId, ctx);
- }
- }
- }
- }
- if (ctx.currentInspectedComponentId === id) {
- await (0, component_1.sendSelectedComponentData)(appRecord, id, ctx);
- }
- if (shared_utils_1.SharedData.trackUpdates) {
- await (0, component_1.sendComponentUpdateTracking)(id, ctx);
- }
- if (shared_utils_1.SharedData.flashUpdates) {
- await (0, flash_js_1.flashComponent)(component, appRecord.backend);
- }
- await (0, component_1.refreshComponentTreeSearch)(ctx);
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_REMOVED, async (app, uid, parentUid, component) => {
- try {
- if (!app || typeof uid !== "number" && !uid || !component)
- return;
- const appRecord = await (0, app_1.getAppRecord)(app, ctx);
- if (uid !== 0 && parentUid === void 0) {
- const id2 = await (0, component_1.getComponentId)(app, uid, component, ctx);
- const parentId = `${id2.split(":")[0]}:root`;
- (0, component_1.sendComponentTreeData)(appRecord, parentId, appRecord.componentFilter, null, false, ctx);
- }
- if (parentUid != null) {
- const parentInstances = await appRecord.backend.api.walkComponentParents(component);
- if (parentInstances.length) {
- const parentId = await (0, component_1.getComponentId)(app, parentUid, parentInstances[0], ctx);
- if ((0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.COMPONENT_TREE, (sub) => sub.payload.instanceId === parentId)) {
- (0, shared_utils_1.raf)(async () => {
- try {
- (0, component_1.sendComponentTreeData)(await (0, app_1.getAppRecord)(app, ctx), parentId, appRecord.componentFilter, null, false, ctx);
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- });
- }
- }
- }
- const id = await (0, component_1.getComponentId)(app, uid, component, ctx);
- if ((0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.SELECTED_COMPONENT_DATA, (sub) => sub.payload.instanceId === id)) {
- await (0, component_1.sendEmptyComponentData)(id, ctx);
- }
- appRecord.instanceMap.delete(id);
- await (0, component_1.refreshComponentTreeSearch)(ctx);
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.TRACK_UPDATE, (id, ctx2) => {
- (0, component_1.sendComponentUpdateTracking)(id, ctx2);
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.FLASH_UPDATE, (instance, backend) => {
- (0, flash_js_1.flashComponent)(instance, backend);
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.PERFORMANCE_START, async (app, uid, vm, type, time) => {
- await (0, perf_1.performanceMarkStart)(app, uid, vm, type, time, ctx);
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.PERFORMANCE_END, async (app, uid, vm, type, time) => {
- await (0, perf_1.performanceMarkEnd)(app, uid, vm, type, time, ctx);
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_HIGHLIGHT, async (instanceId) => {
- await (0, highlighter_1.highlight)(ctx.currentAppRecord.instanceMap.get(instanceId), ctx.currentAppRecord.backend, ctx);
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_UNHIGHLIGHT, async () => {
- await (0, highlighter_1.unHighlight)();
- });
- (0, timeline_1.setupTimeline)(ctx);
- global_hook_1.hook.on(shared_utils_1.HookEvents.TIMELINE_LAYER_ADDED, async (options, plugin) => {
- const appRecord = await (0, app_1.getAppRecord)(plugin.descriptor.app, ctx);
- ctx.timelineLayers.push({
- ...options,
- appRecord,
- plugin,
- events: []
- });
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LAYER_ADD, {});
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.TIMELINE_EVENT_ADDED, async (options, plugin) => {
- await (0, timeline_1.addTimelineEvent)(options, plugin.descriptor.app, ctx);
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_ADD, async (options, plugin) => {
- const appRecord = await (0, app_1.getAppRecord)(plugin.descriptor.app, ctx);
- ctx.customInspectors.push({
- ...options,
- appRecord,
- plugin,
- treeFilter: "",
- selectedNodeId: null
- });
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_CUSTOM_INSPECTOR_ADD, {});
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SEND_TREE, async (inspectorId, plugin) => {
- const inspector = (0, inspector_1.getInspector)(inspectorId, plugin.descriptor.app, ctx);
- if (inspector) {
- await (0, inspector_1.sendInspectorTree)(inspector, ctx);
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn(`Inspector ${inspectorId} not found`);
- }
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SEND_STATE, async (inspectorId, plugin) => {
- const inspector = (0, inspector_1.getInspector)(inspectorId, plugin.descriptor.app, ctx);
- if (inspector) {
- await (0, inspector_1.sendInspectorState)(inspector, ctx);
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn(`Inspector ${inspectorId} not found`);
- }
- });
- global_hook_1.hook.on(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SELECT_NODE, async (inspectorId, nodeId, plugin) => {
- const inspector = (0, inspector_1.getInspector)(inspectorId, plugin.descriptor.app, ctx);
- if (inspector) {
- await (0, inspector_1.selectInspectorNode)(inspector, nodeId, ctx);
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn(`Inspector ${inspectorId} not found`);
- }
- });
- try {
- await (0, plugin_1.addPreviouslyRegisteredPlugins)(ctx);
- } catch (e2) {
- console.error(`Error adding previously registered plugins:`);
- console.error(e2);
- }
- try {
- await (0, plugin_1.addQueuedPlugins)(ctx);
- } catch (e2) {
- console.error(`Error adding queued plugins:`);
- console.error(e2);
- }
- global_hook_1.hook.on(shared_utils_1.HookEvents.SETUP_DEVTOOLS_PLUGIN, async (pluginDescriptor, setupFn) => {
- await (0, plugin_1.addPlugin)({
- pluginDescriptor,
- setupFn
- }, ctx);
- });
- shared_utils_1.target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ = true;
- const handleFlush = (0, debounce_1.default)(async () => {
- var _a2;
- if ((_a2 = ctx.currentAppRecord) === null || _a2 === void 0 ? void 0 : _a2.backend.options.features.includes(app_backend_api_1.BuiltinBackendFeature.FLUSH)) {
- await (0, component_1.sendComponentTreeData)(ctx.currentAppRecord, "_root", ctx.currentAppRecord.componentFilter, null, false, ctx);
- if (ctx.currentInspectedComponentId) {
- await (0, component_1.sendSelectedComponentData)(ctx.currentAppRecord, ctx.currentInspectedComponentId, ctx);
- }
- }
- }, 500);
- global_hook_1.hook.off(shared_utils_1.HookEvents.FLUSH);
- global_hook_1.hook.on(shared_utils_1.HookEvents.FLUSH, handleFlush);
- try {
- await (0, timeline_marker_1.addTimelineMarker)({
- id: "vue-devtools-init-backend",
- time: (0, devtools_api_1.now)(),
- label: "Vue Devtools connected",
- color: 4307075,
- all: true
- }, ctx);
- } catch (e2) {
- console.error(`Error while adding devtools connected timeline marker:`);
- console.error(e2);
- }
- }
- function connectBridge() {
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_SUBSCRIBE, ({
- type,
- payload
- }) => {
- (0, subscriptions_1.subscribe)(type, payload);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_UNSUBSCRIBE, ({
- type,
- payload
- }) => {
- (0, subscriptions_1.unsubscribe)(type, payload);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TAB_SWITCH, async (tab) => {
- ctx.currentTab = tab;
- await (0, highlighter_1.unHighlight)();
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_APP_LIST, async () => {
- await (0, app_1.sendApps)(ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_APP_SELECT, async (id) => {
- if (id == null)
- return;
- const record2 = ctx.appRecords.find((r2) => r2.id === id);
- if (record2) {
- await (0, app_1.selectApp)(record2, ctx);
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn(`App with id ${id} not found`);
- }
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_SCAN_LEGACY_APPS, () => {
- if (global_hook_1.hook.Vue) {
- (0, app_1._legacy_getAndRegisterApps)(ctx);
- }
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_TREE, async ({
- instanceId,
- filter,
- recursively
- }) => {
- ctx.currentAppRecord.componentFilter = filter;
- (0, subscriptions_1.subscribe)(shared_utils_1.BridgeSubscriptions.COMPONENT_TREE, {
- instanceId
- });
- await (0, component_1.sendComponentTreeData)(ctx.currentAppRecord, instanceId, filter, null, recursively, ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_SELECTED_DATA, async (instanceId) => {
- await (0, component_1.sendSelectedComponentData)(ctx.currentAppRecord, instanceId, ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_EDIT_STATE, async ({
- instanceId,
- dotPath,
- type,
- value,
- newKey,
- remove
- }) => {
- await (0, component_1.editComponentState)(instanceId, dotPath, type, {
- value,
- newKey,
- remove
- }, ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_INSPECT_DOM, async ({
- instanceId
- }) => {
- const instance = (0, component_1.getComponentInstance)(ctx.currentAppRecord, instanceId, ctx);
- if (instance) {
- const [el] = await ctx.currentAppRecord.backend.api.getComponentRootElements(instance);
- if (el) {
- shared_utils_1.target.__VUE_DEVTOOLS_INSPECT_TARGET__ = el;
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_INSPECT_DOM, null);
- }
- }
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_SCROLL_TO, async ({
- instanceId
- }) => {
- if (!shared_utils_1.isBrowser)
- return;
- const instance = (0, component_1.getComponentInstance)(ctx.currentAppRecord, instanceId, ctx);
- if (instance) {
- const [el] = await ctx.currentAppRecord.backend.api.getComponentRootElements(instance);
- if (el) {
- if (typeof el.scrollIntoView === "function") {
- el.scrollIntoView({
- behavior: "smooth",
- block: "center",
- inline: "center"
- });
- } else {
- const bounds = await ctx.currentAppRecord.backend.api.getComponentBounds(instance);
- const scrollTarget = document.createElement("div");
- scrollTarget.style.position = "absolute";
- scrollTarget.style.width = `${bounds.width}px`;
- scrollTarget.style.height = `${bounds.height}px`;
- scrollTarget.style.top = `${bounds.top}px`;
- scrollTarget.style.left = `${bounds.left}px`;
- document.body.appendChild(scrollTarget);
- scrollTarget.scrollIntoView({
- behavior: "smooth",
- block: "center",
- inline: "center"
- });
- setTimeout(() => {
- document.body.removeChild(scrollTarget);
- }, 2e3);
- }
- (0, highlighter_1.highlight)(instance, ctx.currentAppRecord.backend, ctx);
- setTimeout(() => {
- (0, highlighter_1.unHighlight)();
- }, 2e3);
- }
- }
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_RENDER_CODE, async ({
- instanceId
- }) => {
- if (!shared_utils_1.isBrowser)
- return;
- const instance = (0, component_1.getComponentInstance)(ctx.currentAppRecord, instanceId, ctx);
- if (instance) {
- const {
- code
- } = await ctx.currentAppRecord.backend.api.getComponentRenderCode(instance);
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_RENDER_CODE, {
- instanceId,
- code
- });
- }
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_STATE_ACTION, async ({
- value,
- actionIndex
- }) => {
- const rawAction = value._custom.actions[actionIndex];
- const action = (0, shared_utils_1.revive)(rawAction === null || rawAction === void 0 ? void 0 : rawAction.action);
- if (action) {
- try {
- await action();
- } catch (e2) {
- console.error(e2);
- }
- } else {
- console.warn(`Couldn't revive action ${actionIndex} from`, value);
- }
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_MOUSE_OVER, async (instanceId) => {
- await (0, highlighter_1.highlight)(ctx.currentAppRecord.instanceMap.get(instanceId), ctx.currentAppRecord.backend, ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_MOUSE_OUT, async () => {
- await (0, highlighter_1.unHighlight)();
- });
- const componentPicker = new component_pick_1.default(ctx);
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_PICK, () => {
- componentPicker.startSelecting();
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_PICK_CANCELED, () => {
- componentPicker.stopSelecting();
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_LAYER_LIST, async () => {
- await (0, timeline_1.sendTimelineLayers)(ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_SHOW_SCREENSHOT, async ({
- screenshot
- }) => {
- await (0, timeline_screenshot_1.showScreenshot)(screenshot, ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_CLEAR, async () => {
- await (0, timeline_1.clearTimeline)(ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_EVENT_DATA, async ({
- id
- }) => {
- await (0, timeline_1.sendTimelineEventData)(id, ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_LAYER_LOAD_EVENTS, async ({
- appId,
- layerId
- }) => {
- await (0, timeline_1.sendTimelineLayerEvents)(appId, layerId, ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_LOAD_MARKERS, async () => {
- await (0, timeline_marker_1.sendTimelineMarkers)(ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_INSPECTOR_LIST, async () => {
- await (0, inspector_1.sendCustomInspectors)(ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_INSPECTOR_TREE, async ({
- inspectorId,
- appId,
- treeFilter
- }) => {
- const inspector = await (0, inspector_1.getInspectorWithAppId)(inspectorId, appId, ctx);
- if (inspector) {
- inspector.treeFilter = treeFilter;
- (0, inspector_1.sendInspectorTree)(inspector, ctx);
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn(`Inspector ${inspectorId} not found`);
- }
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_INSPECTOR_STATE, async ({
- inspectorId,
- appId,
- nodeId
- }) => {
- const inspector = await (0, inspector_1.getInspectorWithAppId)(inspectorId, appId, ctx);
- if (inspector) {
- inspector.selectedNodeId = nodeId;
- (0, inspector_1.sendInspectorState)(inspector, ctx);
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn(`Inspector ${inspectorId} not found`);
- }
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_INSPECTOR_EDIT_STATE, async ({
- inspectorId,
- appId,
- nodeId,
- path,
- type,
- payload
- }) => {
- const inspector = await (0, inspector_1.getInspectorWithAppId)(inspectorId, appId, ctx);
- if (inspector) {
- await (0, inspector_1.editInspectorState)(inspector, nodeId, path, type, payload, ctx);
- inspector.selectedNodeId = nodeId;
- await (0, inspector_1.sendInspectorState)(inspector, ctx);
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn(`Inspector ${inspectorId} not found`);
- }
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_INSPECTOR_ACTION, async ({
- inspectorId,
- appId,
- actionIndex,
- actionType,
- args
- }) => {
- const inspector = await (0, inspector_1.getInspectorWithAppId)(inspectorId, appId, ctx);
- if (inspector) {
- const action = inspector[actionType !== null && actionType !== void 0 ? actionType : "actions"][actionIndex];
- try {
- await action.action(...args !== null && args !== void 0 ? args : []);
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn(`Inspector ${inspectorId} not found`);
- }
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_LOG, (payload) => {
- let value = payload.value;
- if (payload.serialized) {
- value = (0, shared_utils_1.parse)(value, payload.revive);
- } else if (payload.revive) {
- value = (0, shared_utils_1.revive)(value);
- }
- console[payload.level](value);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_DEVTOOLS_PLUGIN_LIST, async () => {
- await (0, plugin_1.sendPluginList)(ctx);
- });
- ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_DEVTOOLS_PLUGIN_SETTING_UPDATED, ({
- pluginId,
- key,
- newValue,
- oldValue
- }) => {
- const settings = (0, shared_utils_1.getPluginSettings)(pluginId);
- ctx.hook.emit(shared_utils_1.HookEvents.PLUGIN_SETTINGS_SET, pluginId, settings);
- ctx.currentAppRecord.backend.api.callHook(
- "setPluginSettings",
- {
- app: ctx.currentAppRecord.options.app,
- pluginId,
- key,
- newValue,
- oldValue,
- settings
- }
- );
- });
- }
- }
- ),
- /***/
- "../app-backend-core/lib/inspector.js": (
- /*!********************************************!*\
- !*** ../app-backend-core/lib/inspector.js ***!
- \********************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.selectInspectorNode = exports.sendCustomInspectors = exports.editInspectorState = exports.sendInspectorState = exports.sendInspectorTree = exports.getInspectorWithAppId = exports.getInspector = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- function getInspector(inspectorId, app, ctx) {
- return ctx.customInspectors.find((i2) => i2.id === inspectorId && i2.appRecord.options.app === app);
- }
- exports.getInspector = getInspector;
- async function getInspectorWithAppId(inspectorId, appId, ctx) {
- for (const i2 of ctx.customInspectors) {
- if (i2.id === inspectorId && i2.appRecord.id === appId) {
- return i2;
- }
- }
- return null;
- }
- exports.getInspectorWithAppId = getInspectorWithAppId;
- async function sendInspectorTree(inspector, ctx) {
- const rootNodes = await inspector.appRecord.backend.api.getInspectorTree(inspector.id, inspector.appRecord.options.app, inspector.treeFilter);
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_CUSTOM_INSPECTOR_TREE, {
- appId: inspector.appRecord.id,
- inspectorId: inspector.id,
- rootNodes
- });
- }
- exports.sendInspectorTree = sendInspectorTree;
- async function sendInspectorState(inspector, ctx) {
- const state = inspector.selectedNodeId ? await inspector.appRecord.backend.api.getInspectorState(inspector.id, inspector.appRecord.options.app, inspector.selectedNodeId) : null;
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_CUSTOM_INSPECTOR_STATE, {
- appId: inspector.appRecord.id,
- inspectorId: inspector.id,
- state: (0, shared_utils_1.stringify)(state)
- });
- }
- exports.sendInspectorState = sendInspectorState;
- async function editInspectorState(inspector, nodeId, dotPath, type, state, ctx) {
- await inspector.appRecord.backend.api.editInspectorState(inspector.id, inspector.appRecord.options.app, nodeId, dotPath, type, {
- ...state,
- value: state.value != null ? (0, shared_utils_1.parse)(state.value, true) : state.value
- });
- }
- exports.editInspectorState = editInspectorState;
- async function sendCustomInspectors(ctx) {
- var _a, _b;
- const inspectors = [];
- for (const i2 of ctx.customInspectors) {
- inspectors.push({
- id: i2.id,
- appId: i2.appRecord.id,
- pluginId: i2.plugin.descriptor.id,
- label: i2.label,
- icon: i2.icon,
- treeFilterPlaceholder: i2.treeFilterPlaceholder,
- stateFilterPlaceholder: i2.stateFilterPlaceholder,
- noSelectionText: i2.noSelectionText,
- actions: (_a = i2.actions) === null || _a === void 0 ? void 0 : _a.map((a2) => ({
- icon: a2.icon,
- tooltip: a2.tooltip
- })),
- nodeActions: (_b = i2.nodeActions) === null || _b === void 0 ? void 0 : _b.map((a2) => ({
- icon: a2.icon,
- tooltip: a2.tooltip
- }))
- });
- }
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_CUSTOM_INSPECTOR_LIST, {
- inspectors
- });
- }
- exports.sendCustomInspectors = sendCustomInspectors;
- async function selectInspectorNode(inspector, nodeId, ctx) {
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_CUSTOM_INSPECTOR_SELECT_NODE, {
- appId: inspector.appRecord.id,
- inspectorId: inspector.id,
- nodeId
- });
- }
- exports.selectInspectorNode = selectInspectorNode;
- }
- ),
- /***/
- "../app-backend-core/lib/legacy/scan.js": (
- /*!**********************************************!*\
- !*** ../app-backend-core/lib/legacy/scan.js ***!
- \**********************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.scan = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const page_config_1 = __webpack_require__2(
- /*! ../page-config */
- "../app-backend-core/lib/page-config.js"
- );
- const rootInstances = [];
- function scan() {
- rootInstances.length = 0;
- let inFragment = false;
- let currentFragment = null;
- function processInstance(instance) {
- if (instance) {
- if (rootInstances.indexOf(instance.$root) === -1) {
- instance = instance.$root;
- }
- if (instance._isFragment) {
- inFragment = true;
- currentFragment = instance;
- }
- let baseVue = instance.constructor;
- while (baseVue.super) {
- baseVue = baseVue.super;
- }
- if (baseVue.config && baseVue.config.devtools) {
- rootInstances.push(instance);
- }
- return true;
- }
- }
- if (shared_utils_1.isBrowser) {
- const walkDocument = (document2) => {
- walk(document2, function(node) {
- if (inFragment) {
- if (node === currentFragment._fragmentEnd) {
- inFragment = false;
- currentFragment = null;
- }
- return true;
- }
- const instance = node.__vue__;
- return processInstance(instance);
- });
- };
- walkDocument(document);
- const iframes = document.querySelectorAll("iframe");
- for (const iframe of iframes) {
- try {
- walkDocument(iframe.contentDocument);
- } catch (e2) {
- }
- }
- const {
- customVue2ScanSelector
- } = (0, page_config_1.getPageConfig)();
- const customTargets = customVue2ScanSelector ? document.querySelectorAll(customVue2ScanSelector) : [];
- for (const customTarget of customTargets) {
- try {
- walkDocument(customTarget);
- } catch (e2) {
- }
- }
- } else {
- if (Array.isArray(shared_utils_1.target.__VUE_ROOT_INSTANCES__)) {
- shared_utils_1.target.__VUE_ROOT_INSTANCES__.map(processInstance);
- }
- }
- return rootInstances;
- }
- exports.scan = scan;
- function walk(node, fn) {
- if (node.childNodes) {
- for (let i2 = 0, l2 = node.childNodes.length; i2 < l2; i2++) {
- const child = node.childNodes[i2];
- const stop = fn(child);
- if (!stop) {
- walk(child, fn);
- }
- }
- }
- if (node.shadowRoot) {
- walk(node.shadowRoot, fn);
- }
- }
- }
- ),
- /***/
- "../app-backend-core/lib/page-config.js": (
- /*!**********************************************!*\
- !*** ../app-backend-core/lib/page-config.js ***!
- \**********************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.initOnPageConfig = exports.getPageConfig = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- let config = {};
- function getPageConfig() {
- return config;
- }
- exports.getPageConfig = getPageConfig;
- function initOnPageConfig() {
- if (Object.hasOwnProperty.call(shared_utils_1.target, "VUE_DEVTOOLS_CONFIG")) {
- config = shared_utils_1.SharedData.pageConfig = shared_utils_1.target.VUE_DEVTOOLS_CONFIG;
- if (Object.hasOwnProperty.call(config, "openInEditorHost")) {
- shared_utils_1.SharedData.openInEditorHost = config.openInEditorHost;
- }
- }
- }
- exports.initOnPageConfig = initOnPageConfig;
- }
- ),
- /***/
- "../app-backend-core/lib/perf.js": (
- /*!***************************************!*\
- !*** ../app-backend-core/lib/perf.js ***!
- \***************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.handleAddPerformanceTag = exports.performanceMarkEnd = exports.performanceMarkStart = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const timeline_1 = __webpack_require__2(
- /*! ./timeline */
- "../app-backend-core/lib/timeline.js"
- );
- const app_1 = __webpack_require__2(
- /*! ./app */
- "../app-backend-core/lib/app.js"
- );
- const component_1 = __webpack_require__2(
- /*! ./component */
- "../app-backend-core/lib/component.js"
- );
- const subscriptions_1 = __webpack_require__2(
- /*! ./util/subscriptions */
- "../app-backend-core/lib/util/subscriptions.js"
- );
- async function performanceMarkStart(app, uid, instance, type, time, ctx) {
- try {
- if (!shared_utils_1.SharedData.performanceMonitoringEnabled)
- return;
- const appRecord = await (0, app_1.getAppRecord)(app, ctx);
- const componentName = await appRecord.backend.api.getComponentName(instance);
- const groupId = ctx.perfUniqueGroupId++;
- const groupKey = `${uid}-${type}`;
- appRecord.perfGroupIds.set(groupKey, {
- groupId,
- time
- });
- await (0, timeline_1.addTimelineEvent)({
- layerId: "performance",
- event: {
- time,
- data: {
- component: componentName,
- type,
- measure: "start"
- },
- title: componentName,
- subtitle: type,
- groupId
- }
- }, app, ctx);
- if (markEndQueue.has(groupKey)) {
- const {
- app: app2,
- uid: uid2,
- instance: instance2,
- type: type2,
- time: time2
- } = markEndQueue.get(groupKey);
- markEndQueue.delete(groupKey);
- await performanceMarkEnd(app2, uid2, instance2, type2, time2, ctx);
- }
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- }
- exports.performanceMarkStart = performanceMarkStart;
- const markEndQueue = /* @__PURE__ */ new Map();
- async function performanceMarkEnd(app, uid, instance, type, time, ctx) {
- try {
- if (!shared_utils_1.SharedData.performanceMonitoringEnabled)
- return;
- const appRecord = await (0, app_1.getAppRecord)(app, ctx);
- const componentName = await appRecord.backend.api.getComponentName(instance);
- const groupKey = `${uid}-${type}`;
- const groupInfo = appRecord.perfGroupIds.get(groupKey);
- if (!groupInfo) {
- markEndQueue.set(groupKey, {
- app,
- uid,
- instance,
- type,
- time
- });
- return;
- }
- const {
- groupId,
- time: startTime
- } = groupInfo;
- const duration = time - startTime;
- await (0, timeline_1.addTimelineEvent)({
- layerId: "performance",
- event: {
- time,
- data: {
- component: componentName,
- type,
- measure: "end",
- duration: {
- _custom: {
- type: "Duration",
- value: duration,
- display: `${duration} ms`
- }
- }
- },
- title: componentName,
- subtitle: type,
- groupId
- }
- }, app, ctx);
- const tooSlow = duration > 10;
- if (tooSlow || instance.__VUE_DEVTOOLS_SLOW__) {
- let change = false;
- if (tooSlow && !instance.__VUE_DEVTOOLS_SLOW__) {
- instance.__VUE_DEVTOOLS_SLOW__ = {
- duration: null,
- measures: {}
- };
- }
- const data = instance.__VUE_DEVTOOLS_SLOW__;
- if (tooSlow && (data.duration == null || data.duration < duration)) {
- data.duration = duration;
- change = true;
- }
- if (data.measures[type] == null || data.measures[type] < duration) {
- data.measures[type] = duration;
- change = true;
- }
- if (change) {
- const id = await (0, component_1.getComponentId)(app, uid, instance, ctx);
- if ((0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.COMPONENT_TREE, (sub) => sub.payload.instanceId === id)) {
- (0, shared_utils_1.raf)(() => {
- (0, component_1.sendComponentTreeData)(appRecord, id, ctx.currentAppRecord.componentFilter, null, false, ctx);
- });
- }
- }
- }
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- }
- exports.performanceMarkEnd = performanceMarkEnd;
- function handleAddPerformanceTag(backend, ctx) {
- backend.api.on.visitComponentTree((payload) => {
- if (payload.componentInstance.__VUE_DEVTOOLS_SLOW__) {
- const {
- duration,
- measures
- } = payload.componentInstance.__VUE_DEVTOOLS_SLOW__;
- let tooltip = '<div class="grid grid-cols-2 gap-2 font-mono text-xs">';
- for (const type in measures) {
- const d2 = measures[type];
- tooltip += `<div>${type}</div><div class="text-right text-black rounded px-1 ${d2 > 30 ? "bg-red-400" : d2 > 10 ? "bg-yellow-400" : "bg-green-400"}">${Math.round(d2 * 1e3) / 1e3} ms</div>`;
- }
- tooltip += "</div>";
- payload.treeNode.tags.push({
- backgroundColor: duration > 30 ? 16281969 : 16498468,
- textColor: 0,
- label: `${Math.round(duration * 1e3) / 1e3} ms`,
- tooltip
- });
- }
- });
- }
- exports.handleAddPerformanceTag = handleAddPerformanceTag;
- }
- ),
- /***/
- "../app-backend-core/lib/plugin.js": (
- /*!*****************************************!*\
- !*** ../app-backend-core/lib/plugin.js ***!
- \*****************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.serializePlugin = exports.sendPluginList = exports.addPreviouslyRegisteredPlugins = exports.addQueuedPlugins = exports.addPlugin = void 0;
- const app_backend_api_1 = __webpack_require__2(
- /*! @vue-devtools/app-backend-api */
- "../app-backend-api/lib/index.js"
- );
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const app_1 = __webpack_require__2(
- /*! ./app */
- "../app-backend-core/lib/app.js"
- );
- async function addPlugin(pluginQueueItem, ctx) {
- const {
- pluginDescriptor,
- setupFn
- } = pluginQueueItem;
- const plugin = {
- descriptor: pluginDescriptor,
- setupFn,
- error: null
- };
- ctx.currentPlugin = plugin;
- try {
- const appRecord = await (0, app_1.getAppRecord)(plugin.descriptor.app, ctx);
- const api = new app_backend_api_1.DevtoolsPluginApiInstance(plugin, appRecord, ctx);
- if (pluginQueueItem.proxy) {
- await pluginQueueItem.proxy.setRealTarget(api);
- } else {
- setupFn(api);
- }
- } catch (e2) {
- plugin.error = e2;
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- ctx.currentPlugin = null;
- ctx.plugins.push(plugin);
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_DEVTOOLS_PLUGIN_ADD, {
- plugin: await serializePlugin(plugin)
- });
- const targetList = shared_utils_1.target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__ = shared_utils_1.target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__ || [];
- targetList.push({
- pluginDescriptor,
- setupFn
- });
- }
- exports.addPlugin = addPlugin;
- async function addQueuedPlugins(ctx) {
- if (shared_utils_1.target.__VUE_DEVTOOLS_PLUGINS__ && Array.isArray(shared_utils_1.target.__VUE_DEVTOOLS_PLUGINS__)) {
- for (const queueItem of shared_utils_1.target.__VUE_DEVTOOLS_PLUGINS__) {
- await addPlugin(queueItem, ctx);
- }
- shared_utils_1.target.__VUE_DEVTOOLS_PLUGINS__ = null;
- }
- }
- exports.addQueuedPlugins = addQueuedPlugins;
- async function addPreviouslyRegisteredPlugins(ctx) {
- if (shared_utils_1.target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__ && Array.isArray(shared_utils_1.target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__)) {
- for (const queueItem of shared_utils_1.target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__) {
- await addPlugin(queueItem, ctx);
- }
- }
- }
- exports.addPreviouslyRegisteredPlugins = addPreviouslyRegisteredPlugins;
- async function sendPluginList(ctx) {
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_DEVTOOLS_PLUGIN_LIST, {
- plugins: await Promise.all(ctx.plugins.map((p2) => serializePlugin(p2)))
- });
- }
- exports.sendPluginList = sendPluginList;
- async function serializePlugin(plugin) {
- return {
- id: plugin.descriptor.id,
- label: plugin.descriptor.label,
- appId: (0, app_1.getAppRecordId)(plugin.descriptor.app),
- packageName: plugin.descriptor.packageName,
- homepage: plugin.descriptor.homepage,
- logo: plugin.descriptor.logo,
- componentStateTypes: plugin.descriptor.componentStateTypes,
- settingsSchema: plugin.descriptor.settings
- };
- }
- exports.serializePlugin = serializePlugin;
- }
- ),
- /***/
- "../app-backend-core/lib/timeline-builtins.js": (
- /*!****************************************************!*\
- !*** ../app-backend-core/lib/timeline-builtins.js ***!
- \****************************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.builtinLayers = void 0;
- exports.builtinLayers = [{
- id: "mouse",
- label: "Mouse",
- color: 10768815,
- screenshotOverlayRender(event, {
- events
- }) {
- const samePositionEvent = events.find((e2) => e2 !== event && e2.renderMeta.textEl && e2.data.x === event.data.x && e2.data.y === event.data.y);
- if (samePositionEvent) {
- const text2 = document.createElement("div");
- text2.innerText = event.data.type;
- samePositionEvent.renderMeta.textEl.appendChild(text2);
- return false;
- }
- const div = document.createElement("div");
- div.style.position = "absolute";
- div.style.left = `${event.data.x - 4}px`;
- div.style.top = `${event.data.y - 4}px`;
- div.style.width = "8px";
- div.style.height = "8px";
- div.style.borderRadius = "100%";
- div.style.backgroundColor = "rgba(164, 81, 175, 0.5)";
- const text = document.createElement("div");
- text.innerText = event.data.type;
- text.style.color = "#541e5b";
- text.style.fontFamily = "monospace";
- text.style.fontSize = "9px";
- text.style.position = "absolute";
- text.style.left = "10px";
- text.style.top = "10px";
- text.style.padding = "1px";
- text.style.backgroundColor = "rgba(255, 255, 255, 0.9)";
- text.style.borderRadius = "3px";
- div.appendChild(text);
- event.renderMeta.textEl = text;
- return div;
- }
- }, {
- id: "keyboard",
- label: "Keyboard",
- color: 8475055
- }, {
- id: "component-event",
- label: "Component events",
- color: 4307075,
- screenshotOverlayRender: (event, {
- events
- }) => {
- if (!event.meta.bounds || events.some((e2) => e2 !== event && e2.layerId === event.layerId && e2.renderMeta.drawn && (e2.meta.componentId === event.meta.componentId || e2.meta.bounds.left === event.meta.bounds.left && e2.meta.bounds.top === event.meta.bounds.top && e2.meta.bounds.width === event.meta.bounds.width && e2.meta.bounds.height === event.meta.bounds.height))) {
- return false;
- }
- const div = document.createElement("div");
- div.style.position = "absolute";
- div.style.left = `${event.meta.bounds.left - 4}px`;
- div.style.top = `${event.meta.bounds.top - 4}px`;
- div.style.width = `${event.meta.bounds.width}px`;
- div.style.height = `${event.meta.bounds.height}px`;
- div.style.borderRadius = "8px";
- div.style.borderStyle = "solid";
- div.style.borderWidth = "4px";
- div.style.borderColor = "rgba(65, 184, 131, 0.5)";
- div.style.textAlign = "center";
- div.style.display = "flex";
- div.style.alignItems = "center";
- div.style.justifyContent = "center";
- div.style.overflow = "hidden";
- const text = document.createElement("div");
- text.style.color = "#267753";
- text.style.fontFamily = "monospace";
- text.style.fontSize = "9px";
- text.style.padding = "1px";
- text.style.backgroundColor = "rgba(255, 255, 255, 0.9)";
- text.style.borderRadius = "3px";
- text.innerText = event.data.event;
- div.appendChild(text);
- event.renderMeta.drawn = true;
- return div;
- }
- }, {
- id: "performance",
- label: "Performance",
- color: 4307050,
- groupsOnly: true,
- skipScreenshots: true,
- ignoreNoDurationGroups: true
- }];
- }
- ),
- /***/
- "../app-backend-core/lib/timeline-marker.js": (
- /*!**************************************************!*\
- !*** ../app-backend-core/lib/timeline-marker.js ***!
- \**************************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.sendTimelineMarkers = exports.addTimelineMarker = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const devtools_api_1 = __webpack_require__2(
- /*! @vue/devtools-api */
- "../api/lib/esm/index.js"
- );
- const timeline_1 = __webpack_require__2(
- /*! ./timeline */
- "../app-backend-core/lib/timeline.js"
- );
- async function addTimelineMarker(options, ctx) {
- var _a;
- if (!ctx.currentAppRecord) {
- options.all = true;
- }
- const marker = {
- ...options,
- appRecord: options.all ? null : ctx.currentAppRecord
- };
- ctx.timelineMarkers.push(marker);
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_MARKER, {
- marker: await serializeMarker(marker),
- appId: (_a = ctx.currentAppRecord) === null || _a === void 0 ? void 0 : _a.id
- });
- }
- exports.addTimelineMarker = addTimelineMarker;
- async function sendTimelineMarkers(ctx) {
- if (!ctx.currentAppRecord)
- return;
- const markers = ctx.timelineMarkers.filter((marker) => marker.all || marker.appRecord === ctx.currentAppRecord);
- const result = [];
- for (const marker of markers) {
- result.push(await serializeMarker(marker));
- }
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LOAD_MARKERS, {
- markers: result,
- appId: ctx.currentAppRecord.id
- });
- }
- exports.sendTimelineMarkers = sendTimelineMarkers;
- async function serializeMarker(marker) {
- var _a;
- let time = marker.time;
- if ((0, devtools_api_1.isPerformanceSupported)() && time < timeline_1.dateThreshold) {
- time += timeline_1.perfTimeDiff;
- }
- return {
- id: marker.id,
- appId: (_a = marker.appRecord) === null || _a === void 0 ? void 0 : _a.id,
- all: marker.all,
- time: Math.round(time * 1e3),
- label: marker.label,
- color: marker.color
- };
- }
- }
- ),
- /***/
- "../app-backend-core/lib/timeline-screenshot.js": (
- /*!******************************************************!*\
- !*** ../app-backend-core/lib/timeline-screenshot.js ***!
- \******************************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.showScreenshot = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const queue_1 = __webpack_require__2(
- /*! ./util/queue */
- "../app-backend-core/lib/util/queue.js"
- );
- const timeline_builtins_1 = __webpack_require__2(
- /*! ./timeline-builtins */
- "../app-backend-core/lib/timeline-builtins.js"
- );
- let overlay;
- let image;
- let container;
- const jobQueue = new queue_1.JobQueue();
- async function showScreenshot(screenshot, ctx) {
- await jobQueue.queue("showScreenshot", async () => {
- if (screenshot) {
- if (!container) {
- createElements();
- }
- image.src = screenshot.image;
- image.style.visibility = screenshot.image ? "visible" : "hidden";
- clearContent();
- const events = screenshot.events.map((id) => ctx.timelineEventMap.get(id)).filter(Boolean).map((eventData) => ({
- layer: timeline_builtins_1.builtinLayers.concat(ctx.timelineLayers).find((layer) => layer.id === eventData.layerId),
- event: {
- ...eventData.event,
- layerId: eventData.layerId,
- renderMeta: {}
- }
- }));
- const renderContext = {
- screenshot,
- events: events.map(({
- event
- }) => event),
- index: 0
- };
- for (let i2 = 0; i2 < events.length; i2++) {
- const {
- layer,
- event
- } = events[i2];
- if (layer.screenshotOverlayRender) {
- renderContext.index = i2;
- try {
- const result = await layer.screenshotOverlayRender(event, renderContext);
- if (result !== false) {
- if (typeof result === "string") {
- container.innerHTML += result;
- } else {
- container.appendChild(result);
- }
- }
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- }
- }
- showElement();
- } else {
- hideElement();
- }
- });
- }
- exports.showScreenshot = showScreenshot;
- function createElements() {
- overlay = document.createElement("div");
- overlay.style.position = "fixed";
- overlay.style.zIndex = "9999999999999";
- overlay.style.pointerEvents = "none";
- overlay.style.left = "0";
- overlay.style.top = "0";
- overlay.style.width = "100vw";
- overlay.style.height = "100vh";
- overlay.style.backgroundColor = "rgba(0,0,0,0.5)";
- overlay.style.overflow = "hidden";
- const imageBox = document.createElement("div");
- imageBox.style.position = "relative";
- overlay.appendChild(imageBox);
- image = document.createElement("img");
- imageBox.appendChild(image);
- container = document.createElement("div");
- container.style.position = "absolute";
- container.style.left = "0";
- container.style.top = "0";
- imageBox.appendChild(container);
- const style = document.createElement("style");
- style.innerHTML = ".__vuedevtools_no-scroll { overflow: hidden; }";
- document.head.appendChild(style);
- }
- function showElement() {
- if (!overlay.parentNode) {
- document.body.appendChild(overlay);
- document.body.classList.add("__vuedevtools_no-scroll");
- }
- }
- function hideElement() {
- if (overlay && overlay.parentNode) {
- overlay.parentNode.removeChild(overlay);
- document.body.classList.remove("__vuedevtools_no-scroll");
- clearContent();
- }
- }
- function clearContent() {
- while (container.firstChild) {
- container.removeChild(container.lastChild);
- }
- }
- }
- ),
- /***/
- "../app-backend-core/lib/timeline.js": (
- /*!*******************************************!*\
- !*** ../app-backend-core/lib/timeline.js ***!
- \*******************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.sendTimelineLayerEvents = exports.removeLayersForApp = exports.sendTimelineEventData = exports.clearTimeline = exports.perfTimeDiff = exports.dateThreshold = exports.addTimelineEvent = exports.sendTimelineLayers = exports.addBuiltinLayers = exports.setupTimeline = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const devtools_api_1 = __webpack_require__2(
- /*! @vue/devtools-api */
- "../api/lib/esm/index.js"
- );
- const global_hook_1 = __webpack_require__2(
- /*! ./global-hook */
- "../app-backend-core/lib/global-hook.js"
- );
- const app_1 = __webpack_require__2(
- /*! ./app */
- "../app-backend-core/lib/app.js"
- );
- const timeline_builtins_1 = __webpack_require__2(
- /*! ./timeline-builtins */
- "../app-backend-core/lib/timeline-builtins.js"
- );
- function setupTimeline(ctx) {
- setupBuiltinLayers(ctx);
- }
- exports.setupTimeline = setupTimeline;
- function addBuiltinLayers(appRecord, ctx) {
- for (const layerDef of timeline_builtins_1.builtinLayers) {
- ctx.timelineLayers.push({
- ...layerDef,
- appRecord,
- plugin: null,
- events: []
- });
- }
- }
- exports.addBuiltinLayers = addBuiltinLayers;
- function setupBuiltinLayers(ctx) {
- if (shared_utils_1.isBrowser) {
- ["mousedown", "mouseup", "click", "dblclick"].forEach((eventType) => {
- window.addEventListener(eventType, async (event) => {
- await addTimelineEvent({
- layerId: "mouse",
- event: {
- time: (0, devtools_api_1.now)(),
- data: {
- type: eventType,
- x: event.clientX,
- y: event.clientY
- },
- title: eventType
- }
- }, null, ctx);
- }, {
- capture: true,
- passive: true
- });
- });
- ["keyup", "keydown", "keypress"].forEach((eventType) => {
- window.addEventListener(eventType, async (event) => {
- await addTimelineEvent({
- layerId: "keyboard",
- event: {
- time: (0, devtools_api_1.now)(),
- data: {
- type: eventType,
- key: event.key,
- ctrlKey: event.ctrlKey,
- shiftKey: event.shiftKey,
- altKey: event.altKey,
- metaKey: event.metaKey
- },
- title: event.key
- }
- }, null, ctx);
- }, {
- capture: true,
- passive: true
- });
- });
- }
- global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_EMIT, async (app, instance, event, params) => {
- try {
- if (!shared_utils_1.SharedData.componentEventsEnabled)
- return;
- const appRecord = await (0, app_1.getAppRecord)(app, ctx);
- const componentId = `${appRecord.id}:${instance.uid}`;
- const componentDisplay = await appRecord.backend.api.getComponentName(instance) || "<i>Unknown Component</i>";
- await addTimelineEvent({
- layerId: "component-event",
- event: {
- time: (0, devtools_api_1.now)(),
- data: {
- component: {
- _custom: {
- type: "component-definition",
- display: componentDisplay
- }
- },
- event,
- params
- },
- title: event,
- subtitle: `by ${componentDisplay}`,
- meta: {
- componentId,
- bounds: await appRecord.backend.api.getComponentBounds(instance)
- }
- }
- }, app, ctx);
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- });
- }
- async function sendTimelineLayers(ctx) {
- var _a, _b;
- const layers = [];
- for (const layer of ctx.timelineLayers) {
- try {
- layers.push({
- id: layer.id,
- label: layer.label,
- color: layer.color,
- appId: (_a = layer.appRecord) === null || _a === void 0 ? void 0 : _a.id,
- pluginId: (_b = layer.plugin) === null || _b === void 0 ? void 0 : _b.descriptor.id,
- groupsOnly: layer.groupsOnly,
- skipScreenshots: layer.skipScreenshots,
- ignoreNoDurationGroups: layer.ignoreNoDurationGroups
- });
- } catch (e2) {
- if (shared_utils_1.SharedData.debugInfo) {
- console.error(e2);
- }
- }
- }
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LAYER_LIST, {
- layers
- });
- }
- exports.sendTimelineLayers = sendTimelineLayers;
- async function addTimelineEvent(options, app, ctx) {
- const appId = app ? (0, app_1.getAppRecordId)(app) : null;
- const isAllApps = options.all || !app || appId == null;
- const id = ctx.nextTimelineEventId++;
- const eventData = {
- id,
- ...options,
- all: isAllApps
- };
- ctx.timelineEventMap.set(eventData.id, eventData);
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_EVENT, {
- appId: eventData.all ? "all" : appId,
- layerId: eventData.layerId,
- event: mapTimelineEvent(eventData)
- });
- const layer = ctx.timelineLayers.find((l2) => {
- var _a;
- return (isAllApps || ((_a = l2.appRecord) === null || _a === void 0 ? void 0 : _a.options.app) === app) && l2.id === options.layerId;
- });
- if (layer) {
- layer.events.push(eventData);
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn(`Timeline layer ${options.layerId} not found`);
- }
- }
- exports.addTimelineEvent = addTimelineEvent;
- const initialTime = Date.now();
- exports.dateThreshold = initialTime - 1e6;
- exports.perfTimeDiff = initialTime - (0, devtools_api_1.now)();
- function mapTimelineEvent(eventData) {
- let time = eventData.event.time;
- if ((0, devtools_api_1.isPerformanceSupported)() && time < exports.dateThreshold) {
- time += exports.perfTimeDiff;
- }
- return {
- id: eventData.id,
- time: Math.round(time * 1e3),
- logType: eventData.event.logType,
- groupId: eventData.event.groupId,
- title: eventData.event.title,
- subtitle: eventData.event.subtitle
- };
- }
- async function clearTimeline(ctx) {
- ctx.timelineEventMap.clear();
- for (const layer of ctx.timelineLayers) {
- layer.events = [];
- }
- for (const backend of ctx.backends) {
- await backend.api.clearTimeline();
- }
- }
- exports.clearTimeline = clearTimeline;
- async function sendTimelineEventData(id, ctx) {
- let data = null;
- const eventData = ctx.timelineEventMap.get(id);
- if (eventData) {
- data = await ctx.currentAppRecord.backend.api.inspectTimelineEvent(eventData, ctx.currentAppRecord.options.app);
- data = (0, shared_utils_1.stringify)(data);
- } else if (shared_utils_1.SharedData.debugInfo) {
- console.warn(`Event ${id} not found`, ctx.timelineEventMap.keys());
- }
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_EVENT_DATA, {
- eventId: id,
- data
- });
- }
- exports.sendTimelineEventData = sendTimelineEventData;
- function removeLayersForApp(app, ctx) {
- const layers = ctx.timelineLayers.filter((l2) => {
- var _a;
- return ((_a = l2.appRecord) === null || _a === void 0 ? void 0 : _a.options.app) === app;
- });
- for (const layer of layers) {
- const index = ctx.timelineLayers.indexOf(layer);
- if (index !== -1)
- ctx.timelineLayers.splice(index, 1);
- for (const e2 of layer.events) {
- ctx.timelineEventMap.delete(e2.id);
- }
- }
- }
- exports.removeLayersForApp = removeLayersForApp;
- function sendTimelineLayerEvents(appId, layerId, ctx) {
- var _a;
- const app = (_a = ctx.appRecords.find((ar) => ar.id === appId)) === null || _a === void 0 ? void 0 : _a.options.app;
- if (!app)
- return;
- const layer = ctx.timelineLayers.find((l2) => {
- var _a2;
- return ((_a2 = l2.appRecord) === null || _a2 === void 0 ? void 0 : _a2.options.app) === app && l2.id === layerId;
- });
- if (!layer)
- return;
- ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LAYER_LOAD_EVENTS, {
- appId,
- layerId,
- events: layer.events.map((e2) => mapTimelineEvent(e2))
- });
- }
- exports.sendTimelineLayerEvents = sendTimelineLayerEvents;
- }
- ),
- /***/
- "../app-backend-core/lib/util/queue.js": (
- /*!*********************************************!*\
- !*** ../app-backend-core/lib/util/queue.js ***!
- \*********************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.JobQueue = void 0;
- class JobQueue {
- constructor() {
- this.jobs = [];
- }
- queue(id, fn) {
- const job = {
- id,
- fn
- };
- return new Promise((resolve) => {
- const onDone = () => {
- this.currentJob = null;
- const nextJob = this.jobs.shift();
- if (nextJob) {
- nextJob.fn();
- }
- resolve();
- };
- const run = () => {
- this.currentJob = job;
- return job.fn().then(onDone).catch((e2) => {
- console.error(`Job ${job.id} failed:`);
- console.error(e2);
- });
- };
- if (this.currentJob) {
- this.jobs.push({
- id: job.id,
- fn: () => run()
- });
- } else {
- run();
- }
- });
- }
- }
- exports.JobQueue = JobQueue;
- }
- ),
- /***/
- "../app-backend-core/lib/util/subscriptions.js": (
- /*!*****************************************************!*\
- !*** ../app-backend-core/lib/util/subscriptions.js ***!
- \*****************************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.isSubscribed = exports.unsubscribe = exports.subscribe = void 0;
- const activeSubs = /* @__PURE__ */ new Map();
- function getSubs(type) {
- let subs = activeSubs.get(type);
- if (!subs) {
- subs = [];
- activeSubs.set(type, subs);
- }
- return subs;
- }
- function subscribe(type, payload) {
- const rawPayload = getRawPayload(payload);
- getSubs(type).push({
- payload,
- rawPayload
- });
- }
- exports.subscribe = subscribe;
- function unsubscribe(type, payload) {
- const rawPayload = getRawPayload(payload);
- const subs = getSubs(type);
- let index;
- while ((index = subs.findIndex((sub) => sub.rawPayload === rawPayload)) !== -1) {
- subs.splice(index, 1);
- }
- }
- exports.unsubscribe = unsubscribe;
- function getRawPayload(payload) {
- const data = Object.keys(payload).sort().reduce((acc, key) => {
- acc[key] = payload[key];
- return acc;
- }, {});
- return JSON.stringify(data);
- }
- function isSubscribed(type, predicate = () => true) {
- return getSubs(type).some(predicate);
- }
- exports.isSubscribed = isSubscribed;
- }
- ),
- /***/
- "../app-backend-vue3/lib/components/data.js": (
- /*!**************************************************!*\
- !*** ../app-backend-vue3/lib/components/data.js ***!
- \**************************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.getCustomInstanceDetails = exports.editState = exports.getCustomObjectDetails = exports.getInstanceDetails = void 0;
- const util_1 = __webpack_require__2(
- /*! ./util */
- "../app-backend-vue3/lib/components/util.js"
- );
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const util_2 = __webpack_require__2(
- /*! ../util */
- "../app-backend-vue3/lib/util.js"
- );
- const vueBuiltins = ["nextTick", "defineComponent", "defineAsyncComponent", "defineCustomElement", "ref", "computed", "reactive", "readonly", "watchEffect", "watchPostEffect", "watchSyncEffect", "watch", "isRef", "unref", "toRef", "toRefs", "isProxy", "isReactive", "isReadonly", "shallowRef", "triggerRef", "customRef", "shallowReactive", "shallowReadonly", "toRaw", "markRaw", "effectScope", "getCurrentScope", "onScopeDispose", "onMounted", "onUpdated", "onUnmounted", "onBeforeMount", "onBeforeUpdate", "onBeforeUnmount", "onErrorCaptured", "onRenderTracked", "onRenderTriggered", "onActivated", "onDeactivated", "onServerPrefetch", "provide", "inject", "h", "mergeProps", "cloneVNode", "isVNode", "resolveComponent", "resolveDirective", "withDirectives", "withModifiers"];
- function getInstanceDetails(instance, ctx) {
- var _a;
- return {
- id: (0, util_1.getUniqueComponentId)(instance, ctx),
- name: (0, util_1.getInstanceName)(instance),
- file: (_a = instance.type) === null || _a === void 0 ? void 0 : _a.__file,
- state: getInstanceState(instance)
- };
- }
- exports.getInstanceDetails = getInstanceDetails;
- function getInstanceState(instance) {
- const mergedType = resolveMergedOptions(instance);
- return processProps(instance).concat(processState(instance), processSetupState(instance), processComputed(instance, mergedType), processAttrs(instance), processProvide(instance), processInject(instance, mergedType), processRefs(instance));
- }
- function processProps(instance) {
- const propsData = [];
- const propDefinitions = instance.type.props;
- for (let key in instance.props) {
- const propDefinition = propDefinitions ? propDefinitions[key] : null;
- key = (0, shared_utils_1.camelize)(key);
- propsData.push({
- type: "props",
- key,
- value: (0, util_2.returnError)(() => instance.props[key]),
- meta: propDefinition ? {
- type: propDefinition.type ? getPropType(propDefinition.type) : "any",
- required: !!propDefinition.required,
- ...propDefinition.default != null ? {
- default: propDefinition.default.toString()
- } : {}
- } : {
- type: "invalid"
- },
- editable: shared_utils_1.SharedData.editableProps
- });
- }
- return propsData;
- }
- const fnTypeRE = /^(?:function|class) (\w+)/;
- function getPropType(type) {
- if (Array.isArray(type)) {
- return type.map((t2) => getPropType(t2)).join(" or ");
- }
- if (type == null) {
- return "null";
- }
- const match = type.toString().match(fnTypeRE);
- return typeof type === "function" ? match && match[1] || "any" : "any";
- }
- function processState(instance) {
- const type = instance.type;
- const props = type.props;
- const getters = type.vuex && type.vuex.getters;
- const computedDefs = type.computed;
- const data = {
- ...instance.data,
- ...instance.renderContext
- };
- return Object.keys(data).filter((key) => !(props && key in props) && !(getters && key in getters) && !(computedDefs && key in computedDefs)).map((key) => ({
- key,
- type: "data",
- value: (0, util_2.returnError)(() => data[key]),
- editable: true
- }));
- }
- function processSetupState(instance) {
- const raw = instance.devtoolsRawSetupState || {};
- return Object.keys(instance.setupState).filter((key) => !vueBuiltins.includes(key) && !key.startsWith("use")).map((key) => {
- var _a, _b, _c, _d;
- const value = (0, util_2.returnError)(() => toRaw(instance.setupState[key]));
- const rawData2 = raw[key];
- let result;
- let isOther = typeof value === "function" || typeof (value === null || value === void 0 ? void 0 : value.render) === "function" || typeof (value === null || value === void 0 ? void 0 : value.__asyncLoader) === "function";
- if (rawData2) {
- const info = getSetupStateInfo(rawData2);
- const objectType = info.computed ? "Computed" : info.ref ? "Ref" : info.reactive ? "Reactive" : null;
- const isState = info.ref || info.computed || info.reactive;
- const raw2 = ((_b = (_a = rawData2.effect) === null || _a === void 0 ? void 0 : _a.raw) === null || _b === void 0 ? void 0 : _b.toString()) || ((_d = (_c = rawData2.effect) === null || _c === void 0 ? void 0 : _c.fn) === null || _d === void 0 ? void 0 : _d.toString());
- if (objectType) {
- isOther = false;
- }
- result = {
- ...objectType ? {
- objectType
- } : {},
- ...raw2 ? {
- raw: raw2
- } : {},
- editable: isState && !info.readonly
- };
- }
- const type = isOther ? "setup (other)" : "setup";
- return {
- key,
- value,
- type,
- ...result
- };
- });
- }
- function isRef(raw) {
- return !!raw.__v_isRef;
- }
- function isComputed(raw) {
- return isRef(raw) && !!raw.effect;
- }
- function isReactive(raw) {
- return !!raw.__v_isReactive;
- }
- function isReadOnly(raw) {
- return !!raw.__v_isReadonly;
- }
- function toRaw(value) {
- if (value === null || value === void 0 ? void 0 : value.__v_raw) {
- return value.__v_raw;
- }
- return value;
- }
- function getSetupStateInfo(raw) {
- return {
- ref: isRef(raw),
- computed: isComputed(raw),
- reactive: isReactive(raw),
- readonly: isReadOnly(raw)
- };
- }
- function getCustomObjectDetails(object, proto) {
- var _a, _b, _c, _d;
- const info = getSetupStateInfo(object);
- const isState = info.ref || info.computed || info.reactive;
- if (isState) {
- const objectType = info.computed ? "Computed" : info.ref ? "Ref" : info.reactive ? "Reactive" : null;
- const value = toRaw(info.reactive ? object : object._value);
- const raw = ((_b = (_a = object.effect) === null || _a === void 0 ? void 0 : _a.raw) === null || _b === void 0 ? void 0 : _b.toString()) || ((_d = (_c = object.effect) === null || _c === void 0 ? void 0 : _c.fn) === null || _d === void 0 ? void 0 : _d.toString());
- return {
- _custom: {
- type: objectType.toLowerCase(),
- objectType,
- value,
- ...raw ? {
- tooltip: `<span class="font-mono">${raw}</span>`
- } : {}
- }
- };
- }
- if (typeof object.__asyncLoader === "function") {
- return {
- _custom: {
- type: "component-definition",
- display: "Async component definition"
- }
- };
- }
- }
- exports.getCustomObjectDetails = getCustomObjectDetails;
- function processComputed(instance, mergedType) {
- const type = mergedType;
- const computed = [];
- const defs = type.computed || {};
- for (const key in defs) {
- const def = defs[key];
- const type2 = typeof def === "function" && def.vuex ? "vuex bindings" : "computed";
- computed.push({
- type: type2,
- key,
- value: (0, util_2.returnError)(() => instance.proxy[key]),
- editable: typeof def.set === "function"
- });
- }
- return computed;
- }
- function processAttrs(instance) {
- return Object.keys(instance.attrs).map((key) => ({
- type: "attrs",
- key,
- value: (0, util_2.returnError)(() => instance.attrs[key])
- }));
- }
- function processProvide(instance) {
- return Reflect.ownKeys(instance.provides).map((key) => ({
- type: "provided",
- key: key.toString(),
- value: (0, util_2.returnError)(() => instance.provides[key])
- }));
- }
- function processInject(instance, mergedType) {
- if (!(mergedType === null || mergedType === void 0 ? void 0 : mergedType.inject))
- return [];
- let keys = [];
- let defaultValue;
- if (Array.isArray(mergedType.inject)) {
- keys = mergedType.inject.map((key) => ({
- key,
- originalKey: key
- }));
- } else {
- keys = Reflect.ownKeys(mergedType.inject).map((key) => {
- const value = mergedType.inject[key];
- let originalKey;
- if (typeof value === "string" || typeof value === "symbol") {
- originalKey = value;
- } else {
- originalKey = value.from;
- defaultValue = value.default;
- }
- return {
- key,
- originalKey
- };
- });
- }
- return keys.map(({
- key,
- originalKey
- }) => ({
- type: "injected",
- key: originalKey && key !== originalKey ? `${originalKey.toString()} ➞ ${key.toString()}` : key.toString(),
- value: (0, util_2.returnError)(() => instance.ctx[key] || instance.provides[originalKey] || defaultValue)
- }));
- }
- function processRefs(instance) {
- return Object.keys(instance.refs).map((key) => ({
- type: "refs",
- key,
- value: (0, util_2.returnError)(() => instance.refs[key])
- }));
- }
- function editState({
- componentInstance,
- path,
- state,
- type
- }, stateEditor, ctx) {
- if (!["data", "props", "computed", "setup"].includes(type))
- return;
- let target;
- const targetPath = path.slice();
- if (Object.keys(componentInstance.props).includes(path[0])) {
- target = componentInstance.props;
- } else if (componentInstance.devtoolsRawSetupState && Object.keys(componentInstance.devtoolsRawSetupState).includes(path[0])) {
- target = componentInstance.devtoolsRawSetupState;
- const currentValue = stateEditor.get(componentInstance.devtoolsRawSetupState, path);
- if (currentValue != null) {
- const info = getSetupStateInfo(currentValue);
- if (info.readonly)
- return;
- }
- } else {
- target = componentInstance.proxy;
- }
- if (target && targetPath) {
- stateEditor.set(target, targetPath, "value" in state ? state.value : void 0, stateEditor.createDefaultSetCallback(state));
- }
- }
- exports.editState = editState;
- function reduceStateList(list) {
- if (!list.length) {
- return void 0;
- }
- return list.reduce((map, item) => {
- const key = item.type || "data";
- const obj = map[key] = map[key] || {};
- obj[item.key] = item.value;
- return map;
- }, {});
- }
- function getCustomInstanceDetails(instance) {
- if (instance._)
- instance = instance._;
- const state = getInstanceState(instance);
- return {
- _custom: {
- type: "component",
- id: instance.__VUE_DEVTOOLS_UID__,
- display: (0, util_1.getInstanceName)(instance),
- tooltip: "Component instance",
- value: reduceStateList(state),
- fields: {
- abstract: true
- }
- }
- };
- }
- exports.getCustomInstanceDetails = getCustomInstanceDetails;
- function resolveMergedOptions(instance) {
- const raw = instance.type;
- const {
- mixins,
- extends: extendsOptions
- } = raw;
- const globalMixins = instance.appContext.mixins;
- if (!globalMixins.length && !mixins && !extendsOptions)
- return raw;
- const options = {};
- globalMixins.forEach((m2) => mergeOptions(options, m2));
- mergeOptions(options, raw);
- return options;
- }
- function mergeOptions(to, from, instance) {
- if (typeof from === "function") {
- from = from.options;
- }
- if (!from)
- return to;
- const {
- mixins,
- extends: extendsOptions
- } = from;
- extendsOptions && mergeOptions(to, extendsOptions);
- mixins && mixins.forEach((m2) => mergeOptions(to, m2));
- for (const key of ["computed", "inject"]) {
- if (Object.prototype.hasOwnProperty.call(from, key)) {
- if (!to[key]) {
- to[key] = from[key];
- } else {
- Object.assign(to[key], from[key]);
- }
- }
- }
- return to;
- }
- }
- ),
- /***/
- "../app-backend-vue3/lib/components/el.js": (
- /*!************************************************!*\
- !*** ../app-backend-vue3/lib/components/el.js ***!
- \************************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.getInstanceOrVnodeRect = exports.getRootElementsFromComponentInstance = exports.getComponentInstanceFromElement = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const util_1 = __webpack_require__2(
- /*! ./util */
- "../app-backend-vue3/lib/components/util.js"
- );
- function getComponentInstanceFromElement(element) {
- return element.__vueParentComponent;
- }
- exports.getComponentInstanceFromElement = getComponentInstanceFromElement;
- function getRootElementsFromComponentInstance(instance) {
- if ((0, util_1.isFragment)(instance)) {
- return getFragmentRootElements(instance.subTree);
- }
- if (!instance.subTree)
- return [];
- return [instance.subTree.el];
- }
- exports.getRootElementsFromComponentInstance = getRootElementsFromComponentInstance;
- function getFragmentRootElements(vnode) {
- if (!vnode.children)
- return [];
- const list = [];
- for (let i2 = 0, l2 = vnode.children.length; i2 < l2; i2++) {
- const childVnode = vnode.children[i2];
- if (childVnode.component) {
- list.push(...getRootElementsFromComponentInstance(childVnode.component));
- } else if (childVnode.el) {
- list.push(childVnode.el);
- }
- }
- return list;
- }
- function getInstanceOrVnodeRect(instance) {
- const el = instance.subTree.el;
- if (!shared_utils_1.isBrowser) {
- return;
- }
- if (!(0, shared_utils_1.inDoc)(el)) {
- return;
- }
- if ((0, util_1.isFragment)(instance)) {
- return addIframePosition(getFragmentRect(instance.subTree), getElWindow(el));
- } else if (el.nodeType === 1) {
- return addIframePosition(el.getBoundingClientRect(), getElWindow(el));
- } else if (instance.subTree.component) {
- return getInstanceOrVnodeRect(instance.subTree.component);
- }
- }
- exports.getInstanceOrVnodeRect = getInstanceOrVnodeRect;
- function createRect() {
- const rect = {
- top: 0,
- bottom: 0,
- left: 0,
- right: 0,
- get width() {
- return rect.right - rect.left;
- },
- get height() {
- return rect.bottom - rect.top;
- }
- };
- return rect;
- }
- function mergeRects(a2, b2) {
- if (!a2.top || b2.top < a2.top) {
- a2.top = b2.top;
- }
- if (!a2.bottom || b2.bottom > a2.bottom) {
- a2.bottom = b2.bottom;
- }
- if (!a2.left || b2.left < a2.left) {
- a2.left = b2.left;
- }
- if (!a2.right || b2.right > a2.right) {
- a2.right = b2.right;
- }
- return a2;
- }
- let range;
- function getTextRect(node) {
- if (!shared_utils_1.isBrowser)
- return;
- if (!range)
- range = document.createRange();
- range.selectNode(node);
- return range.getBoundingClientRect();
- }
- function getFragmentRect(vnode) {
- const rect = createRect();
- if (!vnode.children)
- return rect;
- for (let i2 = 0, l2 = vnode.children.length; i2 < l2; i2++) {
- const childVnode = vnode.children[i2];
- let childRect;
- if (childVnode.component) {
- childRect = getInstanceOrVnodeRect(childVnode.component);
- } else if (childVnode.el) {
- const el = childVnode.el;
- if (el.nodeType === 1 || el.getBoundingClientRect) {
- childRect = el.getBoundingClientRect();
- } else if (el.nodeType === 3 && el.data.trim()) {
- childRect = getTextRect(el);
- }
- }
- if (childRect) {
- mergeRects(rect, childRect);
- }
- }
- return rect;
- }
- function getElWindow(el) {
- return el.ownerDocument.defaultView;
- }
- function addIframePosition(bounds, win) {
- if (win.__VUE_DEVTOOLS_IFRAME__) {
- const rect = mergeRects(createRect(), bounds);
- const iframeBounds = win.__VUE_DEVTOOLS_IFRAME__.getBoundingClientRect();
- rect.top += iframeBounds.top;
- rect.bottom += iframeBounds.top;
- rect.left += iframeBounds.left;
- rect.right += iframeBounds.left;
- if (win.parent) {
- return addIframePosition(rect, win.parent);
- }
- return rect;
- }
- return bounds;
- }
- }
- ),
- /***/
- "../app-backend-vue3/lib/components/filter.js": (
- /*!****************************************************!*\
- !*** ../app-backend-vue3/lib/components/filter.js ***!
- \****************************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.ComponentFilter = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const util_1 = __webpack_require__2(
- /*! ./util */
- "../app-backend-vue3/lib/components/util.js"
- );
- class ComponentFilter {
- constructor(filter) {
- this.filter = filter || "";
- }
- /**
- * Check if an instance is qualified.
- *
- * @param {Vue|Vnode} instance
- * @return {Boolean}
- */
- isQualified(instance) {
- const name = (0, util_1.getInstanceName)(instance);
- return (0, shared_utils_1.classify)(name).toLowerCase().indexOf(this.filter) > -1 || (0, shared_utils_1.kebabize)(name).toLowerCase().indexOf(this.filter) > -1;
- }
- }
- exports.ComponentFilter = ComponentFilter;
- }
- ),
- /***/
- "../app-backend-vue3/lib/components/tree.js": (
- /*!**************************************************!*\
- !*** ../app-backend-vue3/lib/components/tree.js ***!
- \**************************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.ComponentWalker = void 0;
- const util_1 = __webpack_require__2(
- /*! ./util */
- "../app-backend-vue3/lib/components/util.js"
- );
- const filter_1 = __webpack_require__2(
- /*! ./filter */
- "../app-backend-vue3/lib/components/filter.js"
- );
- const el_1 = __webpack_require__2(
- /*! ./el */
- "../app-backend-vue3/lib/components/el.js"
- );
- class ComponentWalker {
- constructor(maxDepth, filter, recursively, api, ctx) {
- this.ctx = ctx;
- this.api = api;
- this.maxDepth = maxDepth;
- this.recursively = recursively;
- this.componentFilter = new filter_1.ComponentFilter(filter);
- this.uniAppPageNames = ["Page", "KeepAlive", "AsyncComponentWrapper", "BaseTransition", "Transition"];
- }
- getComponentTree(instance) {
- this.captureIds = /* @__PURE__ */ new Map();
- return this.findQualifiedChildren(instance, 0);
- }
- getComponentParents(instance) {
- this.captureIds = /* @__PURE__ */ new Map();
- const parents = [];
- this.captureId(instance);
- let parent = instance;
- {
- while (parent = parent.parent) {
- this.captureId(parent);
- parents.push(parent);
- }
- }
- return parents;
- }
- /**
- * Find qualified children from a single instance.
- * If the instance itself is qualified, just return itself.
- * This is ok because [].concat works in both cases.
- *
- * @param {Vue|Vnode} instance
- * @return {Vue|Array}
- */
- async findQualifiedChildren(instance, depth) {
- var _a;
- if (this.componentFilter.isQualified(instance) && !((_a = instance.type.devtools) === null || _a === void 0 ? void 0 : _a.hide)) {
- return [await this.capture(instance, null, depth)];
- } else if (instance.subTree) {
- const list = this.isKeepAlive(instance) ? this.getKeepAliveCachedInstances(instance) : this.getInternalInstanceChildrenByInstance(instance);
- return this.findQualifiedChildrenFromList(list, depth);
- } else {
- return [];
- }
- }
- /**
- * Iterate through an array of instances and flatten it into
- * an array of qualified instances. This is a depth-first
- * traversal - e.g. if an instance is not matched, we will
- * recursively go deeper until a qualified child is found.
- *
- * @param {Array} instances
- * @return {Array}
- */
- async findQualifiedChildrenFromList(instances, depth) {
- instances = instances.filter((child) => {
- var _a;
- return !(0, util_1.isBeingDestroyed)(child) && !((_a = child.type.devtools) === null || _a === void 0 ? void 0 : _a.hide);
- });
- if (!this.componentFilter.filter) {
- return Promise.all(instances.map((child, index, list) => this.capture(child, list, depth)));
- } else {
- return Array.prototype.concat.apply([], await Promise.all(instances.map((i2) => this.findQualifiedChildren(i2, depth))));
- }
- }
- /**
- * fixed by xxxxxx
- * @param instance
- * @param suspense
- * @returns
- */
- getInternalInstanceChildrenByInstance(instance, suspense = null) {
- if (instance.ctx.$children) {
- return instance.ctx.$children.map((proxy) => proxy.$);
- }
- return this.getInternalInstanceChildren(instance.subTree, suspense);
- }
- /**
- * Get children from a component instance.
- */
- getInternalInstanceChildren(subTree, suspense = null) {
- const list = [];
- if (subTree) {
- if (subTree.component) {
- this.getInstanceChildrenBySubTreeComponent(list, subTree, suspense);
- } else if (subTree.suspense) {
- const suspenseKey = !subTree.suspense.isInFallback ? "suspense default" : "suspense fallback";
- list.push(...this.getInternalInstanceChildren(subTree.suspense.activeBranch, {
- ...subTree.suspense,
- suspenseKey
- }));
- } else if (Array.isArray(subTree.children)) {
- subTree.children.forEach((childSubTree) => {
- if (childSubTree.component) {
- this.getInstanceChildrenBySubTreeComponent(list, childSubTree, suspense);
- } else {
- list.push(...this.getInternalInstanceChildren(childSubTree, suspense));
- }
- });
- }
- }
- return list.filter((child) => {
- var _a;
- return !(0, util_1.isBeingDestroyed)(child) && !((_a = child.type.devtools) === null || _a === void 0 ? void 0 : _a.hide);
- });
- }
- /**
- * getInternalInstanceChildren by subTree component for uni-app defineSystemComponent
- */
- getInstanceChildrenBySubTreeComponent(list, subTree, suspense) {
- if (subTree.type.__reserved || this.uniAppPageNames.includes(subTree.type.name)) {
- list.push(...this.getInternalInstanceChildren(subTree.component.subTree));
- } else {
- !suspense ? list.push(subTree.component) : list.push({
- ...subTree.component,
- suspense
- });
- }
- }
- captureId(instance) {
- if (!instance)
- return null;
- const id = instance.__VUE_DEVTOOLS_UID__ != null ? instance.__VUE_DEVTOOLS_UID__ : (0, util_1.getUniqueComponentId)(instance, this.ctx);
- instance.__VUE_DEVTOOLS_UID__ = id;
- if (this.captureIds.has(id)) {
- return;
- } else {
- this.captureIds.set(id, void 0);
- }
- this.mark(instance);
- return id;
- }
- /**
- * Capture the meta information of an instance. (recursive)
- *
- * @param {Vue} instance
- * @return {Object}
- */
- async capture(instance, list, depth) {
- var _b;
- if (!instance)
- return null;
- const id = this.captureId(instance);
- const name = (0, util_1.getInstanceName)(instance);
- const children = this.getInternalInstanceChildrenByInstance(instance).filter((child) => !(0, util_1.isBeingDestroyed)(child));
- const parents = this.getComponentParents(instance) || [];
- const inactive = !!instance.isDeactivated || parents.some((parent) => parent.isDeactivated);
- const treeNode = {
- uid: instance.uid,
- id,
- name,
- renderKey: (0, util_1.getRenderKey)(instance.vnode ? instance.vnode.key : null),
- inactive,
- hasChildren: !!children.length,
- children: [],
- isFragment: (0, util_1.isFragment)(instance),
- tags: typeof instance.type !== "function" ? [] : [{
- label: "functional",
- textColor: 5592405,
- backgroundColor: 15658734
- }],
- autoOpen: this.recursively
- };
- {
- treeNode.route = instance.attrs.__pagePath || "";
- }
- if (depth < this.maxDepth || instance.type.__isKeepAlive || parents.some((parent) => parent.type.__isKeepAlive)) {
- treeNode.children = await Promise.all(children.map((child, index, list2) => this.capture(child, list2, depth + 1)).filter(Boolean));
- }
- if (this.isKeepAlive(instance)) {
- const cachedComponents = this.getKeepAliveCachedInstances(instance);
- const childrenIds = children.map((child) => child.__VUE_DEVTOOLS_UID__);
- for (const cachedChild of cachedComponents) {
- if (!childrenIds.includes(cachedChild.__VUE_DEVTOOLS_UID__)) {
- const node = await this.capture({
- ...cachedChild,
- isDeactivated: true
- }, null, depth + 1);
- if (node) {
- treeNode.children.push(node);
- }
- }
- }
- }
- const rootElements = (0, el_1.getRootElementsFromComponentInstance)(instance);
- const firstElement = rootElements[0];
- if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.parentElement) {
- const parentInstance = instance.parent;
- const parentRootElements = parentInstance ? (0, el_1.getRootElementsFromComponentInstance)(parentInstance) : [];
- let el = firstElement;
- const indexList = [];
- do {
- indexList.push(Array.from(el.parentElement.childNodes).indexOf(el));
- el = el.parentElement;
- } while (el.parentElement && parentRootElements.length && !parentRootElements.includes(el));
- treeNode.domOrder = indexList.reverse();
- } else {
- treeNode.domOrder = [-1];
- }
- if ((_b = instance.suspense) === null || _b === void 0 ? void 0 : _b.suspenseKey) {
- treeNode.tags.push({
- label: instance.suspense.suspenseKey,
- backgroundColor: 14979812,
- textColor: 16777215
- });
- this.mark(instance, true);
- }
- return this.api.visitComponentTree(instance, treeNode, this.componentFilter.filter, this.ctx.currentAppRecord.options.app);
- }
- /**
- * Mark an instance as captured and store it in the instance map.
- *
- * @param {Vue} instance
- */
- mark(instance, force = false) {
- const instanceMap = this.ctx.currentAppRecord.instanceMap;
- if (force || !instanceMap.has(instance.__VUE_DEVTOOLS_UID__)) {
- instanceMap.set(instance.__VUE_DEVTOOLS_UID__, instance);
- }
- }
- isKeepAlive(instance) {
- return instance.type.__isKeepAlive && instance.__v_cache;
- }
- getKeepAliveCachedInstances(instance) {
- return Array.from(instance.__v_cache.values()).map((vnode) => vnode.component).filter(Boolean);
- }
- }
- exports.ComponentWalker = ComponentWalker;
- }
- ),
- /***/
- "../app-backend-vue3/lib/components/util.js": (
- /*!**************************************************!*\
- !*** ../app-backend-vue3/lib/components/util.js ***!
- \**************************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.getComponentInstances = exports.getRenderKey = exports.getUniqueComponentId = exports.getInstanceName = exports.isFragment = exports.getAppRecord = exports.isBeingDestroyed = void 0;
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- const util_1 = __webpack_require__2(
- /*! ../util */
- "../app-backend-vue3/lib/util.js"
- );
- function isBeingDestroyed(instance) {
- return instance._isBeingDestroyed || instance.isUnmounted;
- }
- exports.isBeingDestroyed = isBeingDestroyed;
- function getAppRecord(instance) {
- if (instance.root) {
- return instance.appContext.app.__VUE_DEVTOOLS_APP_RECORD__;
- }
- }
- exports.getAppRecord = getAppRecord;
- function isFragment(instance) {
- var _a;
- const appRecord = getAppRecord(instance);
- if (appRecord) {
- return appRecord.options.types.Fragment === ((_a = instance.subTree) === null || _a === void 0 ? void 0 : _a.type);
- }
- }
- exports.isFragment = isFragment;
- function getInstanceName(instance) {
- var _a, _b, _c;
- const name = getComponentTypeName(instance.type || {});
- if (name)
- return name;
- if (isAppRoot(instance))
- return "Root";
- for (const key in (_b = (_a = instance.parent) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.components) {
- if (instance.parent.type.components[key] === instance.type)
- return saveComponentName(instance, key);
- }
- for (const key in (_c = instance.appContext) === null || _c === void 0 ? void 0 : _c.components) {
- if (instance.appContext.components[key] === instance.type)
- return saveComponentName(instance, key);
- }
- return "Anonymous Component";
- }
- exports.getInstanceName = getInstanceName;
- function saveComponentName(instance, key) {
- instance.type.__vdevtools_guessedName = key;
- return key;
- }
- function getComponentTypeName(options) {
- const name = options.name || options._componentTag || options.__vdevtools_guessedName;
- if (name) {
- return name;
- }
- const file = options.__file;
- if (file) {
- return (0, shared_utils_1.classify)((0, util_1.basename)(file, ".vue"));
- }
- }
- function isAppRoot(instance) {
- return instance.ctx.$mpType === "app";
- }
- function getUniqueComponentId(instance, ctx) {
- const appId = instance.appContext.app.__VUE_DEVTOOLS_APP_RECORD_ID__;
- const instanceId = isAppRoot(instance) ? "root" : instance.uid;
- return `${appId}:${instanceId}`;
- }
- exports.getUniqueComponentId = getUniqueComponentId;
- function getRenderKey(value) {
- if (value == null)
- return;
- const type = typeof value;
- if (type === "number") {
- return value;
- } else if (type === "string") {
- return `'${value}'`;
- } else if (Array.isArray(value)) {
- return "Array";
- } else {
- return "Object";
- }
- }
- exports.getRenderKey = getRenderKey;
- function getComponentInstances(app) {
- const appRecord = app.__VUE_DEVTOOLS_APP_RECORD__;
- const appId = appRecord.id.toString();
- return [...appRecord.instanceMap].filter(([key]) => key.split(":")[0] === appId).map(([, instance]) => instance);
- }
- exports.getComponentInstances = getComponentInstances;
- }
- ),
- /***/
- "../app-backend-vue3/lib/index.js": (
- /*!****************************************!*\
- !*** ../app-backend-vue3/lib/index.js ***!
- \****************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.backend = void 0;
- const app_backend_api_1 = __webpack_require__2(
- /*! @vue-devtools/app-backend-api */
- "../app-backend-api/lib/index.js"
- );
- const tree_1 = __webpack_require__2(
- /*! ./components/tree */
- "../app-backend-vue3/lib/components/tree.js"
- );
- const data_1 = __webpack_require__2(
- /*! ./components/data */
- "../app-backend-vue3/lib/components/data.js"
- );
- const util_1 = __webpack_require__2(
- /*! ./components/util */
- "../app-backend-vue3/lib/components/util.js"
- );
- const el_1 = __webpack_require__2(
- /*! ./components/el */
- "../app-backend-vue3/lib/components/el.js"
- );
- const shared_utils_1 = __webpack_require__2(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- exports.backend = (0, app_backend_api_1.defineBackend)({
- frameworkVersion: 3,
- features: [],
- setup(api) {
- api.on.getAppRecordName((payload) => {
- if (payload.app._component) {
- payload.name = payload.app._component.name;
- }
- });
- api.on.getAppRootInstance((payload) => {
- var _a, _b, _c, _d;
- if (payload.app._instance) {
- payload.root = payload.app._instance;
- } else if ((_b = (_a = payload.app._container) === null || _a === void 0 ? void 0 : _a._vnode) === null || _b === void 0 ? void 0 : _b.component) {
- payload.root = (_d = (_c = payload.app._container) === null || _c === void 0 ? void 0 : _c._vnode) === null || _d === void 0 ? void 0 : _d.component;
- }
- });
- api.on.walkComponentTree(async (payload, ctx) => {
- const walker = new tree_1.ComponentWalker(payload.maxDepth, payload.filter, payload.recursively, api, ctx);
- payload.componentTreeData = await walker.getComponentTree(payload.componentInstance);
- });
- api.on.walkComponentParents((payload, ctx) => {
- const walker = new tree_1.ComponentWalker(0, null, false, api, ctx);
- payload.parentInstances = walker.getComponentParents(payload.componentInstance);
- });
- api.on.inspectComponent((payload, ctx) => {
- shared_utils_1.backendInjections.getCustomInstanceDetails = data_1.getCustomInstanceDetails;
- shared_utils_1.backendInjections.getCustomObjectDetails = data_1.getCustomObjectDetails;
- shared_utils_1.backendInjections.instanceMap = ctx.currentAppRecord.instanceMap;
- shared_utils_1.backendInjections.isVueInstance = (val) => val._ && Object.keys(val._).includes("vnode");
- payload.instanceData = (0, data_1.getInstanceDetails)(payload.componentInstance, ctx);
- });
- api.on.getComponentName((payload) => {
- payload.name = (0, util_1.getInstanceName)(payload.componentInstance);
- });
- api.on.getComponentBounds((payload) => {
- payload.bounds = (0, el_1.getInstanceOrVnodeRect)(payload.componentInstance);
- });
- api.on.getElementComponent((payload) => {
- payload.componentInstance = (0, el_1.getComponentInstanceFromElement)(payload.element);
- });
- api.on.getComponentInstances((payload) => {
- payload.componentInstances = (0, util_1.getComponentInstances)(payload.app);
- });
- api.on.getComponentRootElements((payload) => {
- payload.rootElements = (0, el_1.getRootElementsFromComponentInstance)(payload.componentInstance);
- });
- api.on.editComponentState((payload, ctx) => {
- (0, data_1.editState)(payload, api.stateEditor, ctx);
- });
- api.on.getComponentDevtoolsOptions((payload) => {
- payload.options = payload.componentInstance.type.devtools;
- });
- api.on.getComponentRenderCode((payload) => {
- payload.code = !(payload.componentInstance.type instanceof Function) ? payload.componentInstance.render.toString() : payload.componentInstance.type.toString();
- });
- api.on.transformCall((payload) => {
- if (payload.callName === shared_utils_1.HookEvents.COMPONENT_UPDATED) {
- const component = payload.inArgs[0];
- payload.outArgs = [component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component];
- }
- });
- api.stateEditor.isRef = (value) => !!(value === null || value === void 0 ? void 0 : value.__v_isRef);
- api.stateEditor.getRefValue = (ref) => ref.value;
- api.stateEditor.setRefValue = (ref, value) => {
- ref.value = value;
- };
- }
- });
- }
- ),
- /***/
- "../app-backend-vue3/lib/util.js": (
- /*!***************************************!*\
- !*** ../app-backend-vue3/lib/util.js ***!
- \***************************************/
- /***/
- function(__unused_webpack_module, exports, __webpack_require__2) {
- var __importDefault = this && this.__importDefault || function(mod) {
- return mod && mod.__esModule ? mod : {
- "default": mod
- };
- };
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.returnError = exports.basename = exports.flatten = void 0;
- const path_1 = __importDefault(__webpack_require__2(
- /*! path */
- "../../node_modules/path-browserify/index.js"
- ));
- function flatten(items) {
- return items.reduce((acc, item) => {
- if (item instanceof Array)
- acc.push(...flatten(item));
- else if (item)
- acc.push(item);
- return acc;
- }, []);
- }
- exports.flatten = flatten;
- function basename(filename, ext) {
- return path_1.default.basename(filename.replace(/^[a-zA-Z]:/, "").replace(/\\/g, "/"), ext);
- }
- exports.basename = basename;
- function returnError(cb) {
- try {
- return cb();
- } catch (e2) {
- return e2;
- }
- }
- exports.returnError = returnError;
- }
- ),
- /***/
- "../shared-utils/lib/backend.js": (
- /*!**************************************!*\
- !*** ../shared-utils/lib/backend.js ***!
- \**************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.getCatchedGetters = exports.getCustomStoreDetails = exports.getCustomRouterDetails = exports.isVueInstance = exports.getCustomObjectDetails = exports.getCustomInstanceDetails = exports.getInstanceMap = exports.backendInjections = void 0;
- exports.backendInjections = {
- instanceMap: /* @__PURE__ */ new Map(),
- isVueInstance: () => false,
- getCustomInstanceDetails: () => ({}),
- getCustomObjectDetails: () => void 0
- };
- function getInstanceMap() {
- return exports.backendInjections.instanceMap;
- }
- exports.getInstanceMap = getInstanceMap;
- function getCustomInstanceDetails(instance) {
- return exports.backendInjections.getCustomInstanceDetails(instance);
- }
- exports.getCustomInstanceDetails = getCustomInstanceDetails;
- function getCustomObjectDetails(value, proto) {
- return exports.backendInjections.getCustomObjectDetails(value, proto);
- }
- exports.getCustomObjectDetails = getCustomObjectDetails;
- function isVueInstance(value) {
- return exports.backendInjections.isVueInstance(value);
- }
- exports.isVueInstance = isVueInstance;
- function getCustomRouterDetails(router) {
- return {
- _custom: {
- type: "router",
- display: "VueRouter",
- value: {
- options: router.options,
- currentRoute: router.currentRoute
- },
- fields: {
- abstract: true
- }
- }
- };
- }
- exports.getCustomRouterDetails = getCustomRouterDetails;
- function getCustomStoreDetails(store) {
- return {
- _custom: {
- type: "store",
- display: "Store",
- value: {
- state: store.state,
- getters: getCatchedGetters(store)
- },
- fields: {
- abstract: true
- }
- }
- };
- }
- exports.getCustomStoreDetails = getCustomStoreDetails;
- function getCatchedGetters(store) {
- const getters = {};
- const origGetters = store.getters || {};
- const keys = Object.keys(origGetters);
- for (let i2 = 0; i2 < keys.length; i2++) {
- const key = keys[i2];
- Object.defineProperty(getters, key, {
- enumerable: true,
- get: () => {
- try {
- return origGetters[key];
- } catch (e2) {
- return e2;
- }
- }
- });
- }
- return getters;
- }
- exports.getCatchedGetters = getCatchedGetters;
- }
- ),
- /***/
- "../shared-utils/lib/bridge.js": (
- /*!*************************************!*\
- !*** ../shared-utils/lib/bridge.js ***!
- \*************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.Bridge = void 0;
- const events_1 = __webpack_require__2(
- /*! events */
- "../../node_modules/events/events.js"
- );
- const raf_1 = __webpack_require__2(
- /*! ./raf */
- "../shared-utils/lib/raf.js"
- );
- const BATCH_DURATION = 100;
- class Bridge extends events_1.EventEmitter {
- constructor(wall) {
- super();
- this.setMaxListeners(Infinity);
- this.wall = wall;
- wall.listen((messages2) => {
- if (Array.isArray(messages2)) {
- messages2.forEach((message) => this._emit(message));
- } else {
- this._emit(messages2);
- }
- });
- this._batchingQueue = [];
- this._sendingQueue = [];
- this._receivingQueue = [];
- this._sending = false;
- }
- on(event, listener) {
- const wrappedListener = async (...args) => {
- try {
- await listener(...args);
- } catch (e2) {
- console.error(`[Bridge] Error in listener for event ${event.toString()} with args:`, args);
- console.error(e2);
- }
- };
- return super.on(event, wrappedListener);
- }
- send(event, payload) {
- this._batchingQueue.push({
- event,
- payload
- });
- if (this._timer == null) {
- this._timer = setTimeout(() => this._flush(), BATCH_DURATION);
- }
- }
- /**
- * Log a message to the devtools background page.
- */
- log(message) {
- this.send("log", message);
- }
- _flush() {
- if (this._batchingQueue.length)
- this._send(this._batchingQueue);
- clearTimeout(this._timer);
- this._timer = null;
- this._batchingQueue = [];
- }
- // @TODO types
- _emit(message) {
- if (typeof message === "string") {
- this.emit(message);
- } else if (message._chunk) {
- this._receivingQueue.push(message._chunk);
- if (message.last) {
- this.emit(message.event, this._receivingQueue);
- this._receivingQueue = [];
- }
- } else if (message.event) {
- this.emit(message.event, message.payload);
- }
- }
- // @TODO types
- _send(messages2) {
- this._sendingQueue.push(messages2);
- this._nextSend();
- }
- _nextSend() {
- if (!this._sendingQueue.length || this._sending)
- return;
- this._sending = true;
- const messages2 = this._sendingQueue.shift();
- try {
- this.wall.send(messages2);
- } catch (err) {
- if (err.message === "Message length exceeded maximum allowed length.") {
- this._sendingQueue.splice(0, 0, messages2.map((message) => [message]));
- }
- }
- this._sending = false;
- (0, raf_1.raf)(() => this._nextSend());
- }
- }
- exports.Bridge = Bridge;
- }
- ),
- /***/
- "../shared-utils/lib/consts.js": (
- /*!*************************************!*\
- !*** ../shared-utils/lib/consts.js ***!
- \*************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.HookEvents = exports.BridgeSubscriptions = exports.BridgeEvents = exports.BuiltinTabs = void 0;
- (function(BuiltinTabs) {
- BuiltinTabs["COMPONENTS"] = "components";
- BuiltinTabs["TIMELINE"] = "timeline";
- BuiltinTabs["PLUGINS"] = "plugins";
- BuiltinTabs["SETTINGS"] = "settings";
- })(exports.BuiltinTabs || (exports.BuiltinTabs = {}));
- (function(BridgeEvents) {
- BridgeEvents["TO_BACK_SUBSCRIBE"] = "b:subscribe";
- BridgeEvents["TO_BACK_UNSUBSCRIBE"] = "b:unsubscribe";
- BridgeEvents["TO_FRONT_READY"] = "f:ready";
- BridgeEvents["TO_BACK_LOG_DETECTED_VUE"] = "b:log-detected-vue";
- BridgeEvents["TO_BACK_REFRESH"] = "b:refresh";
- BridgeEvents["TO_BACK_TAB_SWITCH"] = "b:tab:switch";
- BridgeEvents["TO_BACK_LOG"] = "b:log";
- BridgeEvents["TO_FRONT_RECONNECTED"] = "f:reconnected";
- BridgeEvents["TO_FRONT_TITLE"] = "f:title";
- BridgeEvents["TO_FRONT_APP_ADD"] = "f:app:add";
- BridgeEvents["TO_BACK_APP_LIST"] = "b:app:list";
- BridgeEvents["TO_FRONT_APP_LIST"] = "f:app:list";
- BridgeEvents["TO_FRONT_APP_REMOVE"] = "f:app:remove";
- BridgeEvents["TO_BACK_APP_SELECT"] = "b:app:select";
- BridgeEvents["TO_FRONT_APP_SELECTED"] = "f:app:selected";
- BridgeEvents["TO_BACK_SCAN_LEGACY_APPS"] = "b:app:scan-legacy";
- BridgeEvents["TO_BACK_COMPONENT_TREE"] = "b:component:tree";
- BridgeEvents["TO_FRONT_COMPONENT_TREE"] = "f:component:tree";
- BridgeEvents["TO_BACK_COMPONENT_SELECTED_DATA"] = "b:component:selected-data";
- BridgeEvents["TO_FRONT_COMPONENT_SELECTED_DATA"] = "f:component:selected-data";
- BridgeEvents["TO_BACK_COMPONENT_EXPAND"] = "b:component:expand";
- BridgeEvents["TO_FRONT_COMPONENT_EXPAND"] = "f:component:expand";
- BridgeEvents["TO_BACK_COMPONENT_SCROLL_TO"] = "b:component:scroll-to";
- BridgeEvents["TO_BACK_COMPONENT_FILTER"] = "b:component:filter";
- BridgeEvents["TO_BACK_COMPONENT_MOUSE_OVER"] = "b:component:mouse-over";
- BridgeEvents["TO_BACK_COMPONENT_MOUSE_OUT"] = "b:component:mouse-out";
- BridgeEvents["TO_BACK_COMPONENT_CONTEXT_MENU_TARGET"] = "b:component:context-menu-target";
- BridgeEvents["TO_BACK_COMPONENT_EDIT_STATE"] = "b:component:edit-state";
- BridgeEvents["TO_BACK_COMPONENT_PICK"] = "b:component:pick";
- BridgeEvents["TO_FRONT_COMPONENT_PICK"] = "f:component:pick";
- BridgeEvents["TO_BACK_COMPONENT_PICK_CANCELED"] = "b:component:pick-canceled";
- BridgeEvents["TO_FRONT_COMPONENT_PICK_CANCELED"] = "f:component:pick-canceled";
- BridgeEvents["TO_BACK_COMPONENT_INSPECT_DOM"] = "b:component:inspect-dom";
- BridgeEvents["TO_FRONT_COMPONENT_INSPECT_DOM"] = "f:component:inspect-dom";
- BridgeEvents["TO_BACK_COMPONENT_RENDER_CODE"] = "b:component:render-code";
- BridgeEvents["TO_FRONT_COMPONENT_RENDER_CODE"] = "f:component:render-code";
- BridgeEvents["TO_FRONT_COMPONENT_UPDATED"] = "f:component:updated";
- BridgeEvents["TO_FRONT_TIMELINE_EVENT"] = "f:timeline:event";
- BridgeEvents["TO_BACK_TIMELINE_LAYER_LIST"] = "b:timeline:layer-list";
- BridgeEvents["TO_FRONT_TIMELINE_LAYER_LIST"] = "f:timeline:layer-list";
- BridgeEvents["TO_FRONT_TIMELINE_LAYER_ADD"] = "f:timeline:layer-add";
- BridgeEvents["TO_BACK_TIMELINE_SHOW_SCREENSHOT"] = "b:timeline:show-screenshot";
- BridgeEvents["TO_BACK_TIMELINE_CLEAR"] = "b:timeline:clear";
- BridgeEvents["TO_BACK_TIMELINE_EVENT_DATA"] = "b:timeline:event-data";
- BridgeEvents["TO_FRONT_TIMELINE_EVENT_DATA"] = "f:timeline:event-data";
- BridgeEvents["TO_BACK_TIMELINE_LAYER_LOAD_EVENTS"] = "b:timeline:layer-load-events";
- BridgeEvents["TO_FRONT_TIMELINE_LAYER_LOAD_EVENTS"] = "f:timeline:layer-load-events";
- BridgeEvents["TO_BACK_TIMELINE_LOAD_MARKERS"] = "b:timeline:load-markers";
- BridgeEvents["TO_FRONT_TIMELINE_LOAD_MARKERS"] = "f:timeline:load-markers";
- BridgeEvents["TO_FRONT_TIMELINE_MARKER"] = "f:timeline:marker";
- BridgeEvents["TO_BACK_DEVTOOLS_PLUGIN_LIST"] = "b:devtools-plugin:list";
- BridgeEvents["TO_FRONT_DEVTOOLS_PLUGIN_LIST"] = "f:devtools-plugin:list";
- BridgeEvents["TO_FRONT_DEVTOOLS_PLUGIN_ADD"] = "f:devtools-plugin:add";
- BridgeEvents["TO_BACK_DEVTOOLS_PLUGIN_SETTING_UPDATED"] = "b:devtools-plugin:setting-updated";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_LIST"] = "b:custom-inspector:list";
- BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_LIST"] = "f:custom-inspector:list";
- BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_ADD"] = "f:custom-inspector:add";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_TREE"] = "b:custom-inspector:tree";
- BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_TREE"] = "f:custom-inspector:tree";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_STATE"] = "b:custom-inspector:state";
- BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_STATE"] = "f:custom-inspector:state";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_EDIT_STATE"] = "b:custom-inspector:edit-state";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_ACTION"] = "b:custom-inspector:action";
- BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_NODE_ACTION"] = "b:custom-inspector:node-action";
- BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_SELECT_NODE"] = "f:custom-inspector:select-node";
- BridgeEvents["TO_BACK_CUSTOM_STATE_ACTION"] = "b:custom-state:action";
- })(exports.BridgeEvents || (exports.BridgeEvents = {}));
- (function(BridgeSubscriptions) {
- BridgeSubscriptions["SELECTED_COMPONENT_DATA"] = "component:selected-data";
- BridgeSubscriptions["COMPONENT_TREE"] = "component:tree";
- })(exports.BridgeSubscriptions || (exports.BridgeSubscriptions = {}));
- (function(HookEvents) {
- HookEvents["INIT"] = "init";
- HookEvents["APP_INIT"] = "app:init";
- HookEvents["APP_ADD"] = "app:add";
- HookEvents["APP_UNMOUNT"] = "app:unmount";
- HookEvents["COMPONENT_UPDATED"] = "component:updated";
- HookEvents["COMPONENT_ADDED"] = "component:added";
- HookEvents["COMPONENT_REMOVED"] = "component:removed";
- HookEvents["COMPONENT_EMIT"] = "component:emit";
- HookEvents["COMPONENT_HIGHLIGHT"] = "component:highlight";
- HookEvents["COMPONENT_UNHIGHLIGHT"] = "component:unhighlight";
- HookEvents["SETUP_DEVTOOLS_PLUGIN"] = "devtools-plugin:setup";
- HookEvents["TIMELINE_LAYER_ADDED"] = "timeline:layer-added";
- HookEvents["TIMELINE_EVENT_ADDED"] = "timeline:event-added";
- HookEvents["CUSTOM_INSPECTOR_ADD"] = "custom-inspector:add";
- HookEvents["CUSTOM_INSPECTOR_SEND_TREE"] = "custom-inspector:send-tree";
- HookEvents["CUSTOM_INSPECTOR_SEND_STATE"] = "custom-inspector:send-state";
- HookEvents["CUSTOM_INSPECTOR_SELECT_NODE"] = "custom-inspector:select-node";
- HookEvents["PERFORMANCE_START"] = "perf:start";
- HookEvents["PERFORMANCE_END"] = "perf:end";
- HookEvents["PLUGIN_SETTINGS_SET"] = "plugin:settings:set";
- HookEvents["FLUSH"] = "flush";
- HookEvents["TRACK_UPDATE"] = "_track-update";
- HookEvents["FLASH_UPDATE"] = "_flash-update";
- })(exports.HookEvents || (exports.HookEvents = {}));
- }
- ),
- /***/
- "../shared-utils/lib/edit.js": (
- /*!***********************************!*\
- !*** ../shared-utils/lib/edit.js ***!
- \***********************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.StateEditor = void 0;
- class StateEditor {
- set(object, path, value, cb = null) {
- const sections = Array.isArray(path) ? path : path.split(".");
- while (sections.length > 1) {
- object = object[sections.shift()];
- if (this.isRef(object)) {
- object = this.getRefValue(object);
- }
- }
- const field = sections[0];
- if (cb) {
- cb(object, field, value);
- } else if (this.isRef(object[field])) {
- this.setRefValue(object[field], value);
- } else {
- object[field] = value;
- }
- }
- get(object, path) {
- const sections = Array.isArray(path) ? path : path.split(".");
- for (let i2 = 0; i2 < sections.length; i2++) {
- object = object[sections[i2]];
- if (this.isRef(object)) {
- object = this.getRefValue(object);
- }
- if (!object) {
- return void 0;
- }
- }
- return object;
- }
- has(object, path, parent = false) {
- if (typeof object === "undefined") {
- return false;
- }
- const sections = Array.isArray(path) ? path.slice() : path.split(".");
- const size = !parent ? 1 : 2;
- while (object && sections.length > size) {
- object = object[sections.shift()];
- if (this.isRef(object)) {
- object = this.getRefValue(object);
- }
- }
- return object != null && Object.prototype.hasOwnProperty.call(object, sections[0]);
- }
- createDefaultSetCallback(state) {
- return (obj, field, value) => {
- if (state.remove || state.newKey) {
- if (Array.isArray(obj)) {
- obj.splice(field, 1);
- } else {
- delete obj[field];
- }
- }
- if (!state.remove) {
- const target = obj[state.newKey || field];
- if (this.isRef(target)) {
- this.setRefValue(target, value);
- } else {
- obj[state.newKey || field] = value;
- }
- }
- };
- }
- isRef(ref) {
- return false;
- }
- setRefValue(ref, value) {
- }
- getRefValue(ref) {
- return ref;
- }
- }
- exports.StateEditor = StateEditor;
- }
- ),
- /***/
- "../shared-utils/lib/env.js": (
- /*!**********************************!*\
- !*** ../shared-utils/lib/env.js ***!
- \**********************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.initEnv = exports.keys = exports.isLinux = exports.isMac = exports.isWindows = exports.isFirefox = exports.isChrome = exports.target = exports.isBrowser = void 0;
- exports.isBrowser = typeof navigator !== "undefined" && typeof window !== "undefined";
- exports.target = exports.isBrowser ? window : typeof globalThis !== "undefined" ? globalThis : typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof my !== "undefined" ? my : {};
- exports.isChrome = typeof exports.target.chrome !== "undefined" && !!exports.target.chrome.devtools;
- exports.isFirefox = exports.isBrowser && navigator.userAgent && navigator.userAgent.indexOf("Firefox") > -1;
- exports.isWindows = exports.isBrowser && navigator.platform.indexOf("Win") === 0;
- exports.isMac = exports.isBrowser && navigator.platform === "MacIntel";
- exports.isLinux = exports.isBrowser && navigator.platform.indexOf("Linux") === 0;
- exports.keys = {
- ctrl: exports.isMac ? "⌘" : "Ctrl",
- shift: "Shift",
- alt: exports.isMac ? "⌥" : "Alt",
- del: "Del",
- enter: "Enter",
- esc: "Esc"
- };
- function initEnv(Vue2) {
- if (Vue2.prototype.hasOwnProperty("$isChrome"))
- return;
- Object.defineProperties(Vue2.prototype, {
- $isChrome: {
- get: () => exports.isChrome
- },
- $isFirefox: {
- get: () => exports.isFirefox
- },
- $isWindows: {
- get: () => exports.isWindows
- },
- $isMac: {
- get: () => exports.isMac
- },
- $isLinux: {
- get: () => exports.isLinux
- },
- $keys: {
- get: () => exports.keys
- }
- });
- if (exports.isWindows)
- document.body.classList.add("platform-windows");
- if (exports.isMac)
- document.body.classList.add("platform-mac");
- if (exports.isLinux)
- document.body.classList.add("platform-linux");
- }
- exports.initEnv = initEnv;
- }
- ),
- /***/
- "../shared-utils/lib/index.js": (
- /*!************************************!*\
- !*** ../shared-utils/lib/index.js ***!
- \************************************/
- /***/
- function(__unused_webpack_module, exports, __webpack_require__2) {
- var __createBinding = this && this.__createBinding || (Object.create ? function(o2, m2, k, k2) {
- if (k2 === void 0)
- k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m2, k);
- if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
- desc = {
- enumerable: true,
- get: function() {
- return m2[k];
- }
- };
- }
- Object.defineProperty(o2, k2, desc);
- } : function(o2, m2, k, k2) {
- if (k2 === void 0)
- k2 = k;
- o2[k2] = m2[k];
- });
- var __exportStar = this && this.__exportStar || function(m2, exports2) {
- for (var p2 in m2)
- if (p2 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p2))
- __createBinding(exports2, m2, p2);
- };
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- __exportStar(__webpack_require__2(
- /*! ./backend */
- "../shared-utils/lib/backend.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./bridge */
- "../shared-utils/lib/bridge.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./consts */
- "../shared-utils/lib/consts.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./edit */
- "../shared-utils/lib/edit.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./env */
- "../shared-utils/lib/env.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./plugin-permissions */
- "../shared-utils/lib/plugin-permissions.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./plugin-settings */
- "../shared-utils/lib/plugin-settings.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./shared-data */
- "../shared-utils/lib/shared-data.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./shell */
- "../shared-utils/lib/shell.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./storage */
- "../shared-utils/lib/storage.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./transfer */
- "../shared-utils/lib/transfer.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./util */
- "../shared-utils/lib/util.js"
- ), exports);
- __exportStar(__webpack_require__2(
- /*! ./raf */
- "../shared-utils/lib/raf.js"
- ), exports);
- }
- ),
- /***/
- "../shared-utils/lib/plugin-permissions.js": (
- /*!*************************************************!*\
- !*** ../shared-utils/lib/plugin-permissions.js ***!
- \*************************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.setPluginPermission = exports.hasPluginPermission = exports.PluginPermission = void 0;
- const shared_data_1 = __webpack_require__2(
- /*! ./shared-data */
- "../shared-utils/lib/shared-data.js"
- );
- (function(PluginPermission) {
- PluginPermission["ENABLED"] = "enabled";
- PluginPermission["COMPONENTS"] = "components";
- PluginPermission["CUSTOM_INSPECTOR"] = "custom-inspector";
- PluginPermission["TIMELINE"] = "timeline";
- })(exports.PluginPermission || (exports.PluginPermission = {}));
- function hasPluginPermission(pluginId, permission2) {
- const result = shared_data_1.SharedData.pluginPermissions[`${pluginId}:${permission2}`];
- if (result == null)
- return true;
- return !!result;
- }
- exports.hasPluginPermission = hasPluginPermission;
- function setPluginPermission(pluginId, permission2, active) {
- shared_data_1.SharedData.pluginPermissions = {
- ...shared_data_1.SharedData.pluginPermissions,
- [`${pluginId}:${permission2}`]: active
- };
- }
- exports.setPluginPermission = setPluginPermission;
- }
- ),
- /***/
- "../shared-utils/lib/plugin-settings.js": (
- /*!**********************************************!*\
- !*** ../shared-utils/lib/plugin-settings.js ***!
- \**********************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.getPluginDefaultSettings = exports.setPluginSettings = exports.getPluginSettings = void 0;
- const shared_data_1 = __webpack_require__2(
- /*! ./shared-data */
- "../shared-utils/lib/shared-data.js"
- );
- function getPluginSettings(pluginId, defaultSettings) {
- var _a;
- return {
- ...defaultSettings !== null && defaultSettings !== void 0 ? defaultSettings : {},
- ...(_a = shared_data_1.SharedData.pluginSettings[pluginId]) !== null && _a !== void 0 ? _a : {}
- };
- }
- exports.getPluginSettings = getPluginSettings;
- function setPluginSettings(pluginId, settings) {
- shared_data_1.SharedData.pluginSettings = {
- ...shared_data_1.SharedData.pluginSettings,
- [pluginId]: settings
- };
- }
- exports.setPluginSettings = setPluginSettings;
- function getPluginDefaultSettings(schema) {
- const result = {};
- if (schema) {
- for (const id in schema) {
- const item = schema[id];
- result[id] = item.defaultValue;
- }
- }
- return result;
- }
- exports.getPluginDefaultSettings = getPluginDefaultSettings;
- }
- ),
- /***/
- "../shared-utils/lib/raf.js": (
- /*!**********************************!*\
- !*** ../shared-utils/lib/raf.js ***!
- \**********************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.raf = void 0;
- let pendingCallbacks = [];
- exports.raf = typeof requestAnimationFrame === "function" ? requestAnimationFrame : typeof setImmediate === "function" ? (fn) => {
- if (!pendingCallbacks.length) {
- setImmediate(() => {
- const now = performance.now();
- const cbs = pendingCallbacks;
- pendingCallbacks = [];
- cbs.forEach((cb) => cb(now));
- });
- }
- pendingCallbacks.push(fn);
- } : function(callback) {
- return setTimeout(function() {
- callback(Date.now());
- }, 1e3 / 60);
- };
- }
- ),
- /***/
- "../shared-utils/lib/shared-data.js": (
- /*!******************************************!*\
- !*** ../shared-utils/lib/shared-data.js ***!
- \******************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.SharedData = exports.watchSharedData = exports.destroySharedData = exports.onSharedDataInit = exports.initSharedData = void 0;
- const storage_1 = __webpack_require__2(
- /*! ./storage */
- "../shared-utils/lib/storage.js"
- );
- const env_1 = __webpack_require__2(
- /*! ./env */
- "../shared-utils/lib/env.js"
- );
- const internalSharedData = {
- openInEditorHost: "/",
- componentNameStyle: "class",
- theme: "auto",
- displayDensity: "low",
- timeFormat: "default",
- recordVuex: true,
- cacheVuexSnapshotsEvery: 50,
- cacheVuexSnapshotsLimit: 10,
- snapshotLoading: false,
- componentEventsEnabled: true,
- performanceMonitoringEnabled: true,
- editableProps: false,
- logDetected: true,
- vuexNewBackend: false,
- vuexAutoload: false,
- vuexGroupGettersByModule: true,
- showMenuScrollTip: true,
- timelineTimeGrid: true,
- timelineScreenshots: true,
- menuStepScrolling: env_1.isMac,
- pluginPermissions: {},
- pluginSettings: {},
- pageConfig: {},
- legacyApps: false,
- trackUpdates: true,
- flashUpdates: false,
- debugInfo: false,
- isBrowser: env_1.isBrowser
- };
- const persisted = ["componentNameStyle", "theme", "displayDensity", "recordVuex", "editableProps", "logDetected", "vuexNewBackend", "vuexAutoload", "vuexGroupGettersByModule", "timeFormat", "showMenuScrollTip", "timelineTimeGrid", "timelineScreenshots", "menuStepScrolling", "pluginPermissions", "pluginSettings", "performanceMonitoringEnabled", "componentEventsEnabled", "trackUpdates", "flashUpdates", "debugInfo"];
- const storageVersion = "6.0.0-alpha.1";
- let bridge;
- let persist = false;
- let data;
- let initRetryInterval;
- let initRetryCount = 0;
- const initCbs = [];
- function initSharedData(params) {
- return new Promise((resolve) => {
- bridge = params.bridge;
- persist = !!params.persist;
- if (persist) {
- {
- console.log("[shared data] Master init in progress...");
- }
- persisted.forEach((key) => {
- const value = (0, storage_1.getStorage)(`vue-devtools-${storageVersion}:shared-data:${key}`);
- if (value !== null) {
- internalSharedData[key] = value;
- }
- });
- bridge.on("shared-data:load", () => {
- Object.keys(internalSharedData).forEach((key) => {
- sendValue(key, internalSharedData[key]);
- });
- bridge.send("shared-data:load-complete");
- });
- bridge.on("shared-data:init-complete", () => {
- {
- console.log("[shared data] Master init complete");
- }
- clearInterval(initRetryInterval);
- resolve();
- });
- bridge.send("shared-data:master-init-waiting");
- bridge.on("shared-data:minion-init-waiting", () => {
- bridge.send("shared-data:master-init-waiting");
- });
- initRetryCount = 0;
- clearInterval(initRetryInterval);
- initRetryInterval = setInterval(() => {
- {
- console.log("[shared data] Master init retrying...");
- }
- bridge.send("shared-data:master-init-waiting");
- initRetryCount++;
- if (initRetryCount > 30) {
- clearInterval(initRetryInterval);
- console.error("[shared data] Master init failed");
- }
- }, 2e3);
- } else {
- bridge.on("shared-data:master-init-waiting", () => {
- bridge.send("shared-data:load");
- bridge.once("shared-data:load-complete", () => {
- bridge.send("shared-data:init-complete");
- resolve();
- });
- });
- bridge.send("shared-data:minion-init-waiting");
- }
- data = {
- ...internalSharedData
- };
- if (params.Vue) {
- data = params.Vue.observable(data);
- }
- bridge.on("shared-data:set", ({
- key,
- value
- }) => {
- setValue(key, value);
- });
- initCbs.forEach((cb) => cb());
- });
- }
- exports.initSharedData = initSharedData;
- function onSharedDataInit(cb) {
- initCbs.push(cb);
- return () => {
- const index = initCbs.indexOf(cb);
- if (index !== -1)
- initCbs.splice(index, 1);
- };
- }
- exports.onSharedDataInit = onSharedDataInit;
- function destroySharedData() {
- bridge.removeAllListeners("shared-data:set");
- watchers = {};
- }
- exports.destroySharedData = destroySharedData;
- let watchers = {};
- function setValue(key, value) {
- if (persist && persisted.includes(key)) {
- (0, storage_1.setStorage)(`vue-devtools-${storageVersion}:shared-data:${key}`, value);
- }
- const oldValue = data[key];
- data[key] = value;
- const handlers = watchers[key];
- if (handlers) {
- handlers.forEach((h2) => h2(value, oldValue));
- }
- return true;
- }
- function sendValue(key, value) {
- bridge && bridge.send("shared-data:set", {
- key,
- value
- });
- }
- function watchSharedData(prop, handler) {
- const list = watchers[prop] || (watchers[prop] = []);
- list.push(handler);
- return () => {
- const index = list.indexOf(handler);
- if (index !== -1)
- list.splice(index, 1);
- };
- }
- exports.watchSharedData = watchSharedData;
- const proxy = {};
- Object.keys(internalSharedData).forEach((key) => {
- Object.defineProperty(proxy, key, {
- configurable: false,
- get: () => data[key],
- set: (value) => {
- sendValue(key, value);
- setValue(key, value);
- }
- });
- });
- exports.SharedData = proxy;
- }
- ),
- /***/
- "../shared-utils/lib/shell.js": (
- /*!************************************!*\
- !*** ../shared-utils/lib/shell.js ***!
- \************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- }
- ),
- /***/
- "../shared-utils/lib/storage.js": (
- /*!**************************************!*\
- !*** ../shared-utils/lib/storage.js ***!
- \**************************************/
- /***/
- (__unused_webpack_module, exports, __webpack_require__2) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.clearStorage = exports.removeStorage = exports.setStorage = exports.getStorage = exports.initStorage = void 0;
- const env_1 = __webpack_require__2(
- /*! ./env */
- "../shared-utils/lib/env.js"
- );
- const useStorage = typeof env_1.target.chrome !== "undefined" && typeof env_1.target.chrome.storage !== "undefined";
- let storageData = null;
- function initStorage() {
- return new Promise((resolve) => {
- if (useStorage) {
- env_1.target.chrome.storage.local.get(null, (result) => {
- storageData = result;
- resolve();
- });
- } else {
- storageData = {};
- resolve();
- }
- });
- }
- exports.initStorage = initStorage;
- function getStorage(key, defaultValue = null) {
- checkStorage();
- if (useStorage) {
- return getDefaultValue(storageData[key], defaultValue);
- } else {
- try {
- return getDefaultValue(JSON.parse(localStorage.getItem(key)), defaultValue);
- } catch (e2) {
- }
- }
- }
- exports.getStorage = getStorage;
- function setStorage(key, val) {
- checkStorage();
- if (useStorage) {
- storageData[key] = val;
- env_1.target.chrome.storage.local.set({
- [key]: val
- });
- } else {
- try {
- localStorage.setItem(key, JSON.stringify(val));
- } catch (e2) {
- }
- }
- }
- exports.setStorage = setStorage;
- function removeStorage(key) {
- checkStorage();
- if (useStorage) {
- delete storageData[key];
- env_1.target.chrome.storage.local.remove([key]);
- } else {
- try {
- localStorage.removeItem(key);
- } catch (e2) {
- }
- }
- }
- exports.removeStorage = removeStorage;
- function clearStorage() {
- checkStorage();
- if (useStorage) {
- storageData = {};
- env_1.target.chrome.storage.local.clear();
- } else {
- try {
- localStorage.clear();
- } catch (e2) {
- }
- }
- }
- exports.clearStorage = clearStorage;
- function checkStorage() {
- if (!storageData) {
- throw new Error("Storage wasn't initialized with 'init()'");
- }
- }
- function getDefaultValue(value, defaultValue) {
- if (value == null) {
- return defaultValue;
- }
- return value;
- }
- }
- ),
- /***/
- "../shared-utils/lib/transfer.js": (
- /*!***************************************!*\
- !*** ../shared-utils/lib/transfer.js ***!
- \***************************************/
- /***/
- (__unused_webpack_module, exports) => {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.stringifyStrictCircularAutoChunks = exports.parseCircularAutoChunks = exports.stringifyCircularAutoChunks = void 0;
- const MAX_SERIALIZED_SIZE = 512 * 1024;
- function encode(data, replacer, list, seen) {
- let stored, key, value, i2, l2;
- const seenIndex = seen.get(data);
- if (seenIndex != null) {
- return seenIndex;
- }
- const index = list.length;
- const proto = Object.prototype.toString.call(data);
- if (proto === "[object Object]") {
- stored = {};
- seen.set(data, index);
- list.push(stored);
- const keys = Object.keys(data);
- for (i2 = 0, l2 = keys.length; i2 < l2; i2++) {
- key = keys[i2];
- try {
- value = data[key];
- if (replacer)
- value = replacer.call(data, key, value);
- } catch (e2) {
- value = e2;
- }
- stored[key] = encode(value, replacer, list, seen);
- }
- } else if (proto === "[object Array]") {
- stored = [];
- seen.set(data, index);
- list.push(stored);
- for (i2 = 0, l2 = data.length; i2 < l2; i2++) {
- try {
- value = data[i2];
- if (replacer)
- value = replacer.call(data, i2, value);
- } catch (e2) {
- value = e2;
- }
- stored[i2] = encode(value, replacer, list, seen);
- }
- } else {
- list.push(data);
- }
- return index;
- }
- function decode(list, reviver) {
- let i2 = list.length;
- let j2, k, data, key, value, proto;
- while (i2--) {
- data = list[i2];
- proto = Object.prototype.toString.call(data);
- if (proto === "[object Object]") {
- const keys = Object.keys(data);
- for (j2 = 0, k = keys.length; j2 < k; j2++) {
- key = keys[j2];
- value = list[data[key]];
- if (reviver)
- value = reviver.call(data, key, value);
- data[key] = value;
- }
- } else if (proto === "[object Array]") {
- for (j2 = 0, k = data.length; j2 < k; j2++) {
- value = list[data[j2]];
- if (reviver)
- value = reviver.call(data, j2, value);
- data[j2] = value;
- }
- }
- }
- }
- function stringifyCircularAutoChunks(data, replacer = null, space = null) {
- let result;
- try {
- result = arguments.length === 1 ? JSON.stringify(data) : JSON.stringify(data, replacer, space);
- } catch (e2) {
- result = stringifyStrictCircularAutoChunks(data, replacer, space);
- }
- if (result.length > MAX_SERIALIZED_SIZE) {
- const chunkCount = Math.ceil(result.length / MAX_SERIALIZED_SIZE);
- const chunks = [];
- for (let i2 = 0; i2 < chunkCount; i2++) {
- chunks.push(result.slice(i2 * MAX_SERIALIZED_SIZE, (i2 + 1) * MAX_SERIALIZED_SIZE));
- }
- return chunks;
- }
- return result;
- }
- exports.stringifyCircularAutoChunks = stringifyCircularAutoChunks;
- function parseCircularAutoChunks(data, reviver = null) {
- if (Array.isArray(data)) {
- data = data.join("");
- }
- const hasCircular = /^\s/.test(data);
- if (!hasCircular) {
- return arguments.length === 1 ? JSON.parse(data) : JSON.parse(data, reviver);
- } else {
- const list = JSON.parse(data);
- decode(list, reviver);
- return list[0];
- }
- }
- exports.parseCircularAutoChunks = parseCircularAutoChunks;
- function stringifyStrictCircularAutoChunks(data, replacer = null, space = null) {
- const list = [];
- encode(data, replacer, list, /* @__PURE__ */ new Map());
- return space ? " " + JSON.stringify(list, null, space) : " " + JSON.stringify(list);
- }
- exports.stringifyStrictCircularAutoChunks = stringifyStrictCircularAutoChunks;
- }
- ),
- /***/
- "../shared-utils/lib/util.js": (
- /*!***********************************!*\
- !*** ../shared-utils/lib/util.js ***!
- \***********************************/
- /***/
- function(__unused_webpack_module, exports, __webpack_require__2) {
- var __importDefault = this && this.__importDefault || function(mod) {
- return mod && mod.__esModule ? mod : {
- "default": mod
- };
- };
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.isEmptyObject = exports.copyToClipboard = exports.escape = exports.openInEditor = exports.focusInput = exports.simpleGet = exports.sortByKey = exports.searchDeepInObject = exports.isPlainObject = exports.revive = exports.parse = exports.getCustomRefDetails = exports.getCustomHTMLElementDetails = exports.getCustomFunctionDetails = exports.getCustomComponentDefinitionDetails = exports.getComponentName = exports.reviveSet = exports.getCustomSetDetails = exports.reviveMap = exports.getCustomMapDetails = exports.stringify = exports.specialTokenToString = exports.MAX_ARRAY_SIZE = exports.MAX_STRING_SIZE = exports.SPECIAL_TOKENS = exports.NAN = exports.NEGATIVE_INFINITY = exports.INFINITY = exports.UNDEFINED = exports.inDoc = exports.getComponentDisplayName = exports.kebabize = exports.camelize = exports.classify = void 0;
- const path_1 = __importDefault(__webpack_require__2(
- /*! path */
- "../../node_modules/path-browserify/index.js"
- ));
- const transfer_1 = __webpack_require__2(
- /*! ./transfer */
- "../shared-utils/lib/transfer.js"
- );
- const backend_1 = __webpack_require__2(
- /*! ./backend */
- "../shared-utils/lib/backend.js"
- );
- const shared_data_1 = __webpack_require__2(
- /*! ./shared-data */
- "../shared-utils/lib/shared-data.js"
- );
- const env_1 = __webpack_require__2(
- /*! ./env */
- "../shared-utils/lib/env.js"
- );
- function cached(fn) {
- const cache = /* @__PURE__ */ Object.create(null);
- return function cachedFn(str) {
- const hit = cache[str];
- return hit || (cache[str] = fn(str));
- };
- }
- const classifyRE = /(?:^|[-_/])(\w)/g;
- exports.classify = cached((str) => {
- return str && ("" + str).replace(classifyRE, toUpper);
- });
- const camelizeRE = /-(\w)/g;
- exports.camelize = cached((str) => {
- return str && str.replace(camelizeRE, toUpper);
- });
- const kebabizeRE = /([a-z0-9])([A-Z])/g;
- exports.kebabize = cached((str) => {
- return str && str.replace(kebabizeRE, (_2, lowerCaseCharacter, upperCaseLetter) => {
- return `${lowerCaseCharacter}-${upperCaseLetter}`;
- }).toLowerCase();
- });
- function toUpper(_2, c2) {
- return c2 ? c2.toUpperCase() : "";
- }
- function getComponentDisplayName(originalName, style = "class") {
- switch (style) {
- case "class":
- return (0, exports.classify)(originalName);
- case "kebab":
- return (0, exports.kebabize)(originalName);
- case "original":
- default:
- return originalName;
- }
- }
- exports.getComponentDisplayName = getComponentDisplayName;
- function inDoc(node) {
- if (!node)
- return false;
- const doc = node.ownerDocument.documentElement;
- const parent = node.parentNode;
- return doc === node || doc === parent || !!(parent && parent.nodeType === 1 && doc.contains(parent));
- }
- exports.inDoc = inDoc;
- exports.UNDEFINED = "__vue_devtool_undefined__";
- exports.INFINITY = "__vue_devtool_infinity__";
- exports.NEGATIVE_INFINITY = "__vue_devtool_negative_infinity__";
- exports.NAN = "__vue_devtool_nan__";
- exports.SPECIAL_TOKENS = {
- true: true,
- false: false,
- undefined: exports.UNDEFINED,
- null: null,
- "-Infinity": exports.NEGATIVE_INFINITY,
- Infinity: exports.INFINITY,
- NaN: exports.NAN
- };
- exports.MAX_STRING_SIZE = 1e4;
- exports.MAX_ARRAY_SIZE = 5e3;
- function specialTokenToString(value) {
- if (value === null) {
- return "null";
- } else if (value === exports.UNDEFINED) {
- return "undefined";
- } else if (value === exports.NAN) {
- return "NaN";
- } else if (value === exports.INFINITY) {
- return "Infinity";
- } else if (value === exports.NEGATIVE_INFINITY) {
- return "-Infinity";
- }
- return false;
- }
- exports.specialTokenToString = specialTokenToString;
- class EncodeCache {
- constructor() {
- this.map = /* @__PURE__ */ new Map();
- }
- /**
- * Returns a result unique to each input data
- * @param {*} data Input data
- * @param {*} factory Function used to create the unique result
- */
- cache(data, factory) {
- const cached2 = this.map.get(data);
- if (cached2) {
- return cached2;
- } else {
- const result = factory(data);
- this.map.set(data, result);
- return result;
- }
- }
- clear() {
- this.map.clear();
- }
- }
- const encodeCache = new EncodeCache();
- class ReviveCache {
- constructor(maxSize) {
- this.maxSize = maxSize;
- this.map = /* @__PURE__ */ new Map();
- this.index = 0;
- this.size = 0;
- }
- cache(value) {
- const currentIndex = this.index;
- this.map.set(currentIndex, value);
- this.size++;
- if (this.size > this.maxSize) {
- this.map.delete(currentIndex - this.size);
- this.size--;
- }
- this.index++;
- return currentIndex;
- }
- read(id) {
- return this.map.get(id);
- }
- }
- const reviveCache = new ReviveCache(1e3);
- const replacers = {
- internal: replacerForInternal,
- user: replaceForUser
- };
- function stringify(data, target = "internal") {
- encodeCache.clear();
- return (0, transfer_1.stringifyCircularAutoChunks)(data, replacers[target]);
- }
- exports.stringify = stringify;
- function replacerForInternal(key) {
- var _a;
- const val = this[key];
- const type = typeof val;
- if (Array.isArray(val)) {
- const l2 = val.length;
- if (l2 > exports.MAX_ARRAY_SIZE) {
- return {
- _isArray: true,
- length: l2,
- items: val.slice(0, exports.MAX_ARRAY_SIZE)
- };
- }
- return val;
- } else if (typeof val === "string") {
- if (val.length > exports.MAX_STRING_SIZE) {
- return val.substring(0, exports.MAX_STRING_SIZE) + `... (${val.length} total length)`;
- } else {
- return val;
- }
- } else if (type === "undefined") {
- return exports.UNDEFINED;
- } else if (val === Infinity) {
- return exports.INFINITY;
- } else if (val === -Infinity) {
- return exports.NEGATIVE_INFINITY;
- } else if (type === "function") {
- return getCustomFunctionDetails(val);
- } else if (type === "symbol") {
- return `[native Symbol ${Symbol.prototype.toString.call(val)}]`;
- } else if (val !== null && type === "object") {
- const proto = Object.prototype.toString.call(val);
- if (proto === "[object Map]") {
- return encodeCache.cache(val, () => getCustomMapDetails(val));
- } else if (proto === "[object Set]") {
- return encodeCache.cache(val, () => getCustomSetDetails(val));
- } else if (proto === "[object RegExp]") {
- return `[native RegExp ${RegExp.prototype.toString.call(val)}]`;
- } else if (proto === "[object Date]") {
- return `[native Date ${Date.prototype.toString.call(val)}]`;
- } else if (proto === "[object Error]") {
- return `[native Error ${val.message}<>${val.stack}]`;
- } else if (val.state && val._vm) {
- return encodeCache.cache(val, () => (0, backend_1.getCustomStoreDetails)(val));
- } else if (val.constructor && val.constructor.name === "VueRouter") {
- return encodeCache.cache(val, () => (0, backend_1.getCustomRouterDetails)(val));
- } else if ((0, backend_1.isVueInstance)(val)) {
- return encodeCache.cache(val, () => (0, backend_1.getCustomInstanceDetails)(val));
- } else if (typeof val.render === "function") {
- return encodeCache.cache(val, () => getCustomComponentDefinitionDetails(val));
- } else if (val.constructor && val.constructor.name === "VNode") {
- return `[native VNode <${val.tag}>]`;
- } else if (typeof HTMLElement !== "undefined" && val instanceof HTMLElement) {
- return encodeCache.cache(val, () => getCustomHTMLElementDetails(val));
- } else if (((_a = val.constructor) === null || _a === void 0 ? void 0 : _a.name) === "Store" && val._wrappedGetters) {
- return `[object Store]`;
- } else if (val.currentRoute) {
- return `[object Router]`;
- }
- const customDetails = (0, backend_1.getCustomObjectDetails)(val, proto);
- if (customDetails != null)
- return customDetails;
- } else if (Number.isNaN(val)) {
- return exports.NAN;
- }
- return sanitize(val);
- }
- function replaceForUser(key) {
- let val = this[key];
- const type = typeof val;
- if ((val === null || val === void 0 ? void 0 : val._custom) && "value" in val._custom) {
- val = val._custom.value;
- }
- if (type !== "object") {
- if (val === exports.UNDEFINED) {
- return void 0;
- } else if (val === exports.INFINITY) {
- return Infinity;
- } else if (val === exports.NEGATIVE_INFINITY) {
- return -Infinity;
- } else if (val === exports.NAN) {
- return NaN;
- }
- return val;
- }
- return sanitize(val);
- }
- function getCustomMapDetails(val) {
- const list = [];
- val.forEach((value, key) => list.push({
- key,
- value
- }));
- return {
- _custom: {
- type: "map",
- display: "Map",
- value: list,
- readOnly: true,
- fields: {
- abstract: true
- }
- }
- };
- }
- exports.getCustomMapDetails = getCustomMapDetails;
- function reviveMap(val) {
- const result = /* @__PURE__ */ new Map();
- const list = val._custom.value;
- for (let i2 = 0; i2 < list.length; i2++) {
- const {
- key,
- value
- } = list[i2];
- result.set(key, revive(value));
- }
- return result;
- }
- exports.reviveMap = reviveMap;
- function getCustomSetDetails(val) {
- const list = Array.from(val);
- return {
- _custom: {
- type: "set",
- display: `Set[${list.length}]`,
- value: list,
- readOnly: true
- }
- };
- }
- exports.getCustomSetDetails = getCustomSetDetails;
- function reviveSet(val) {
- const result = /* @__PURE__ */ new Set();
- const list = val._custom.value;
- for (let i2 = 0; i2 < list.length; i2++) {
- const value = list[i2];
- result.add(revive(value));
- }
- return result;
- }
- exports.reviveSet = reviveSet;
- function basename(filename, ext) {
- return path_1.default.basename(filename.replace(/^[a-zA-Z]:/, "").replace(/\\/g, "/"), ext);
- }
- function getComponentName(options) {
- const name = options.displayName || options.name || options._componentTag;
- if (name) {
- return name;
- }
- const file = options.__file;
- if (file) {
- return (0, exports.classify)(basename(file, ".vue"));
- }
- }
- exports.getComponentName = getComponentName;
- function getCustomComponentDefinitionDetails(def) {
- let display = getComponentName(def);
- if (display) {
- if (def.name && def.__file) {
- display += ` <span>(${def.__file})</span>`;
- }
- } else {
- display = "<i>Unknown Component</i>";
- }
- return {
- _custom: {
- type: "component-definition",
- display,
- tooltip: "Component definition",
- ...def.__file ? {
- file: def.__file
- } : {}
- }
- };
- }
- exports.getCustomComponentDefinitionDetails = getCustomComponentDefinitionDetails;
- function getCustomFunctionDetails(func) {
- let string = "";
- let matches = null;
- try {
- string = Function.prototype.toString.call(func);
- matches = String.prototype.match.call(string, /\([\s\S]*?\)/);
- } catch (e2) {
- }
- const match = matches && matches[0];
- const args = typeof match === "string" ? match : "(?)";
- const name = typeof func.name === "string" ? func.name : "";
- return {
- _custom: {
- type: "function",
- display: `<span style="opacity:.5;">function</span> ${escape2(name)}${args}`,
- tooltip: string.trim() ? `<pre>${string}</pre>` : null,
- _reviveId: reviveCache.cache(func)
- }
- };
- }
- exports.getCustomFunctionDetails = getCustomFunctionDetails;
- function getCustomHTMLElementDetails(value) {
- try {
- return {
- _custom: {
- type: "HTMLElement",
- display: `<span class="opacity-30"><</span><span class="text-blue-500">${value.tagName.toLowerCase()}</span><span class="opacity-30">></span>`,
- value: namedNodeMapToObject(value.attributes),
- actions: [{
- icon: "input",
- tooltip: "Log element to console",
- action: () => {
- console.log(value);
- }
- }]
- }
- };
- } catch (e2) {
- return {
- _custom: {
- type: "HTMLElement",
- display: `<span class="text-blue-500">${String(value)}</span>`
- }
- };
- }
- }
- exports.getCustomHTMLElementDetails = getCustomHTMLElementDetails;
- function namedNodeMapToObject(map) {
- const result = {};
- const l2 = map.length;
- for (let i2 = 0; i2 < l2; i2++) {
- const node = map.item(i2);
- result[node.name] = node.value;
- }
- return result;
- }
- function getCustomRefDetails(instance, key, ref) {
- let value;
- if (Array.isArray(ref)) {
- value = ref.map((r2) => getCustomRefDetails(instance, key, r2)).map((data) => data.value);
- } else {
- let name;
- if (ref._isVue) {
- name = getComponentName(ref.$options);
- } else {
- name = ref.tagName.toLowerCase();
- }
- value = {
- _custom: {
- display: `<${name}` + (ref.id ? ` <span class="attr-title">id</span>="${ref.id}"` : "") + (ref.className ? ` <span class="attr-title">class</span>="${ref.className}"` : "") + ">",
- uid: instance.__VUE_DEVTOOLS_UID__,
- type: "reference"
- }
- };
- }
- return {
- type: "$refs",
- key,
- value,
- editable: false
- };
- }
- exports.getCustomRefDetails = getCustomRefDetails;
- function parse2(data, revive2 = false) {
- return revive2 ? (0, transfer_1.parseCircularAutoChunks)(data, reviver) : (0, transfer_1.parseCircularAutoChunks)(data);
- }
- exports.parse = parse2;
- const specialTypeRE = /^\[native (\w+) (.*?)(<>((.|\s)*))?\]$/;
- const symbolRE = /^\[native Symbol Symbol\((.*)\)\]$/;
- function reviver(key, val) {
- return revive(val);
- }
- function revive(val) {
- if (val === exports.UNDEFINED) {
- return void 0;
- } else if (val === exports.INFINITY) {
- return Infinity;
- } else if (val === exports.NEGATIVE_INFINITY) {
- return -Infinity;
- } else if (val === exports.NAN) {
- return NaN;
- } else if (val && val._custom) {
- const {
- _custom: custom
- } = val;
- if (custom.type === "component") {
- return (0, backend_1.getInstanceMap)().get(custom.id);
- } else if (custom.type === "map") {
- return reviveMap(val);
- } else if (custom.type === "set") {
- return reviveSet(val);
- } else if (custom._reviveId) {
- return reviveCache.read(custom._reviveId);
- } else {
- return revive(custom.value);
- }
- } else if (symbolRE.test(val)) {
- const [, string] = symbolRE.exec(val);
- return Symbol.for(string);
- } else if (specialTypeRE.test(val)) {
- const [, type, string, , details] = specialTypeRE.exec(val);
- const result = new env_1.target[type](string);
- if (type === "Error" && details) {
- result.stack = details;
- }
- return result;
- } else {
- return val;
- }
- }
- exports.revive = revive;
- function sanitize(data) {
- if (!isPrimitive(data) && !Array.isArray(data) && !isPlainObject(data)) {
- return Object.prototype.toString.call(data);
- } else {
- return data;
- }
- }
- function isPlainObject(obj) {
- return Object.prototype.toString.call(obj) === "[object Object]";
- }
- exports.isPlainObject = isPlainObject;
- function isPrimitive(data) {
- if (data == null) {
- return true;
- }
- const type = typeof data;
- return type === "string" || type === "number" || type === "boolean";
- }
- function searchDeepInObject(obj, searchTerm) {
- const seen = /* @__PURE__ */ new Map();
- const result = internalSearchObject(obj, searchTerm.toLowerCase(), seen, 0);
- seen.clear();
- return result;
- }
- exports.searchDeepInObject = searchDeepInObject;
- const SEARCH_MAX_DEPTH = 10;
- function internalSearchObject(obj, searchTerm, seen, depth) {
- if (depth > SEARCH_MAX_DEPTH) {
- return false;
- }
- let match = false;
- const keys = Object.keys(obj);
- let key, value;
- for (let i2 = 0; i2 < keys.length; i2++) {
- key = keys[i2];
- value = obj[key];
- match = internalSearchCheck(searchTerm, key, value, seen, depth + 1);
- if (match) {
- break;
- }
- }
- return match;
- }
- function internalSearchArray(array, searchTerm, seen, depth) {
- if (depth > SEARCH_MAX_DEPTH) {
- return false;
- }
- let match = false;
- let value;
- for (let i2 = 0; i2 < array.length; i2++) {
- value = array[i2];
- match = internalSearchCheck(searchTerm, null, value, seen, depth + 1);
- if (match) {
- break;
- }
- }
- return match;
- }
- function internalSearchCheck(searchTerm, key, value, seen, depth) {
- let match = false;
- let result;
- if (key === "_custom") {
- key = value.display;
- value = value.value;
- }
- (result = specialTokenToString(value)) && (value = result);
- if (key && compare(key, searchTerm)) {
- match = true;
- seen.set(value, true);
- } else if (seen.has(value)) {
- match = seen.get(value);
- } else if (Array.isArray(value)) {
- seen.set(value, null);
- match = internalSearchArray(value, searchTerm, seen, depth);
- seen.set(value, match);
- } else if (isPlainObject(value)) {
- seen.set(value, null);
- match = internalSearchObject(value, searchTerm, seen, depth);
- seen.set(value, match);
- } else if (compare(value, searchTerm)) {
- match = true;
- seen.set(value, true);
- }
- return match;
- }
- function compare(value, searchTerm) {
- return ("" + value).toLowerCase().indexOf(searchTerm) !== -1;
- }
- function sortByKey(state) {
- return state && state.slice().sort((a2, b2) => {
- if (a2.key < b2.key)
- return -1;
- if (a2.key > b2.key)
- return 1;
- return 0;
- });
- }
- exports.sortByKey = sortByKey;
- function simpleGet(object, path) {
- const sections = Array.isArray(path) ? path : path.split(".");
- for (let i2 = 0; i2 < sections.length; i2++) {
- object = object[sections[i2]];
- if (!object) {
- return void 0;
- }
- }
- return object;
- }
- exports.simpleGet = simpleGet;
- function focusInput(el) {
- el.focus();
- el.setSelectionRange(0, el.value.length);
- }
- exports.focusInput = focusInput;
- function openInEditor(file) {
- const fileName = file.replace(/\\/g, "\\\\");
- const src = `fetch('${shared_data_1.SharedData.openInEditorHost}__open-in-editor?file=${encodeURI(file)}').then(response => {
- if (response.ok) {
- console.log('File ${fileName} opened in editor')
- } else {
- const msg = 'Opening component ${fileName} failed'
- const target = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}
- if (target.__VUE_DEVTOOLS_TOAST__) {
- target.__VUE_DEVTOOLS_TOAST__(msg, 'error')
- } else {
- console.log('%c' + msg, 'color:red')
- }
- console.log('Check the setup of your project, see https://devtools.vuejs.org/guide/open-in-editor.html')
- }
- })`;
- if (env_1.isChrome) {
- env_1.target.chrome.devtools.inspectedWindow.eval(src);
- } else {
- [eval][0](src);
- }
- }
- exports.openInEditor = openInEditor;
- const ESC = {
- "<": "<",
- ">": ">",
- '"': """,
- "&": "&"
- };
- function escape2(s2) {
- return s2.replace(/[<>"&]/g, escapeChar);
- }
- exports.escape = escape2;
- function escapeChar(a2) {
- return ESC[a2] || a2;
- }
- function copyToClipboard(state) {
- let text;
- if (typeof state !== "object") {
- text = String(state);
- } else {
- text = stringify(state, "user");
- }
- if (typeof document === "undefined")
- return;
- const dummyTextArea = document.createElement("textarea");
- dummyTextArea.textContent = text;
- document.body.appendChild(dummyTextArea);
- dummyTextArea.select();
- document.execCommand("copy");
- document.body.removeChild(dummyTextArea);
- }
- exports.copyToClipboard = copyToClipboard;
- function isEmptyObject(obj) {
- return obj === exports.UNDEFINED || !obj || Object.keys(obj).length === 0;
- }
- exports.isEmptyObject = isEmptyObject;
- }
- ),
- /***/
- "../../node_modules/events/events.js": (
- /*!*******************************************!*\
- !*** ../../node_modules/events/events.js ***!
- \*******************************************/
- /***/
- (module) => {
- var R2 = typeof Reflect === "object" ? Reflect : null;
- var ReflectApply = R2 && typeof R2.apply === "function" ? R2.apply : function ReflectApply2(target, receiver, args) {
- return Function.prototype.apply.call(target, receiver, args);
- };
- var ReflectOwnKeys;
- if (R2 && typeof R2.ownKeys === "function") {
- ReflectOwnKeys = R2.ownKeys;
- } else if (Object.getOwnPropertySymbols) {
- ReflectOwnKeys = function ReflectOwnKeys2(target) {
- return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
- };
- } else {
- ReflectOwnKeys = function ReflectOwnKeys2(target) {
- return Object.getOwnPropertyNames(target);
- };
- }
- function ProcessEmitWarning(warning) {
- if (console && console.warn)
- console.warn(warning);
- }
- var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {
- return value !== value;
- };
- function EventEmitter() {
- EventEmitter.init.call(this);
- }
- module.exports = EventEmitter;
- module.exports.once = once;
- EventEmitter.EventEmitter = EventEmitter;
- EventEmitter.prototype._events = void 0;
- EventEmitter.prototype._eventsCount = 0;
- EventEmitter.prototype._maxListeners = void 0;
- var defaultMaxListeners = 10;
- function checkListener(listener) {
- if (typeof listener !== "function") {
- throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
- }
- }
- Object.defineProperty(EventEmitter, "defaultMaxListeners", {
- enumerable: true,
- get: function() {
- return defaultMaxListeners;
- },
- set: function(arg) {
- if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {
- throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + ".");
- }
- defaultMaxListeners = arg;
- }
- });
- EventEmitter.init = function() {
- if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {
- this._events = /* @__PURE__ */ Object.create(null);
- this._eventsCount = 0;
- }
- this._maxListeners = this._maxListeners || void 0;
- };
- EventEmitter.prototype.setMaxListeners = function setMaxListeners(n2) {
- if (typeof n2 !== "number" || n2 < 0 || NumberIsNaN(n2)) {
- throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n2 + ".");
- }
- this._maxListeners = n2;
- return this;
- };
- function _getMaxListeners(that) {
- if (that._maxListeners === void 0)
- return EventEmitter.defaultMaxListeners;
- return that._maxListeners;
- }
- EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
- return _getMaxListeners(this);
- };
- EventEmitter.prototype.emit = function emit(type) {
- var args = [];
- for (var i2 = 1; i2 < arguments.length; i2++)
- args.push(arguments[i2]);
- var doError = type === "error";
- var events = this._events;
- if (events !== void 0)
- doError = doError && events.error === void 0;
- else if (!doError)
- return false;
- if (doError) {
- var er;
- if (args.length > 0)
- er = args[0];
- if (er instanceof Error) {
- throw er;
- }
- var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));
- err.context = er;
- throw err;
- }
- var handler = events[type];
- if (handler === void 0)
- return false;
- if (typeof handler === "function") {
- ReflectApply(handler, this, args);
- } else {
- var len = handler.length;
- var listeners = arrayClone(handler, len);
- for (var i2 = 0; i2 < len; ++i2)
- ReflectApply(listeners[i2], this, args);
- }
- return true;
- };
- function _addListener(target, type, listener, prepend) {
- var m2;
- var events;
- var existing;
- checkListener(listener);
- events = target._events;
- if (events === void 0) {
- events = target._events = /* @__PURE__ */ Object.create(null);
- target._eventsCount = 0;
- } else {
- if (events.newListener !== void 0) {
- target.emit(
- "newListener",
- type,
- listener.listener ? listener.listener : listener
- );
- events = target._events;
- }
- existing = events[type];
- }
- if (existing === void 0) {
- existing = events[type] = listener;
- ++target._eventsCount;
- } else {
- if (typeof existing === "function") {
- existing = events[type] = prepend ? [listener, existing] : [existing, listener];
- } else if (prepend) {
- existing.unshift(listener);
- } else {
- existing.push(listener);
- }
- m2 = _getMaxListeners(target);
- if (m2 > 0 && existing.length > m2 && !existing.warned) {
- existing.warned = true;
- var w2 = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");
- w2.name = "MaxListenersExceededWarning";
- w2.emitter = target;
- w2.type = type;
- w2.count = existing.length;
- ProcessEmitWarning(w2);
- }
- }
- return target;
- }
- EventEmitter.prototype.addListener = function addListener(type, listener) {
- return _addListener(this, type, listener, false);
- };
- EventEmitter.prototype.on = EventEmitter.prototype.addListener;
- EventEmitter.prototype.prependListener = function prependListener(type, listener) {
- return _addListener(this, type, listener, true);
- };
- function onceWrapper() {
- if (!this.fired) {
- this.target.removeListener(this.type, this.wrapFn);
- this.fired = true;
- if (arguments.length === 0)
- return this.listener.call(this.target);
- return this.listener.apply(this.target, arguments);
- }
- }
- function _onceWrap(target, type, listener) {
- var state = { fired: false, wrapFn: void 0, target, type, listener };
- var wrapped = onceWrapper.bind(state);
- wrapped.listener = listener;
- state.wrapFn = wrapped;
- return wrapped;
- }
- EventEmitter.prototype.once = function once2(type, listener) {
- checkListener(listener);
- this.on(type, _onceWrap(this, type, listener));
- return this;
- };
- EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {
- checkListener(listener);
- this.prependListener(type, _onceWrap(this, type, listener));
- return this;
- };
- EventEmitter.prototype.removeListener = function removeListener(type, listener) {
- var list, events, position, i2, originalListener;
- checkListener(listener);
- events = this._events;
- if (events === void 0)
- return this;
- list = events[type];
- if (list === void 0)
- return this;
- if (list === listener || list.listener === listener) {
- if (--this._eventsCount === 0)
- this._events = /* @__PURE__ */ Object.create(null);
- else {
- delete events[type];
- if (events.removeListener)
- this.emit("removeListener", type, list.listener || listener);
- }
- } else if (typeof list !== "function") {
- position = -1;
- for (i2 = list.length - 1; i2 >= 0; i2--) {
- if (list[i2] === listener || list[i2].listener === listener) {
- originalListener = list[i2].listener;
- position = i2;
- break;
- }
- }
- if (position < 0)
- return this;
- if (position === 0)
- list.shift();
- else {
- spliceOne(list, position);
- }
- if (list.length === 1)
- events[type] = list[0];
- if (events.removeListener !== void 0)
- this.emit("removeListener", type, originalListener || listener);
- }
- return this;
- };
- EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
- EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {
- var listeners, events, i2;
- events = this._events;
- if (events === void 0)
- return this;
- if (events.removeListener === void 0) {
- if (arguments.length === 0) {
- this._events = /* @__PURE__ */ Object.create(null);
- this._eventsCount = 0;
- } else if (events[type] !== void 0) {
- if (--this._eventsCount === 0)
- this._events = /* @__PURE__ */ Object.create(null);
- else
- delete events[type];
- }
- return this;
- }
- if (arguments.length === 0) {
- var keys = Object.keys(events);
- var key;
- for (i2 = 0; i2 < keys.length; ++i2) {
- key = keys[i2];
- if (key === "removeListener")
- continue;
- this.removeAllListeners(key);
- }
- this.removeAllListeners("removeListener");
- this._events = /* @__PURE__ */ Object.create(null);
- this._eventsCount = 0;
- return this;
- }
- listeners = events[type];
- if (typeof listeners === "function") {
- this.removeListener(type, listeners);
- } else if (listeners !== void 0) {
- for (i2 = listeners.length - 1; i2 >= 0; i2--) {
- this.removeListener(type, listeners[i2]);
- }
- }
- return this;
- };
- function _listeners(target, type, unwrap) {
- var events = target._events;
- if (events === void 0)
- return [];
- var evlistener = events[type];
- if (evlistener === void 0)
- return [];
- if (typeof evlistener === "function")
- return unwrap ? [evlistener.listener || evlistener] : [evlistener];
- return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
- }
- EventEmitter.prototype.listeners = function listeners(type) {
- return _listeners(this, type, true);
- };
- EventEmitter.prototype.rawListeners = function rawListeners(type) {
- return _listeners(this, type, false);
- };
- EventEmitter.listenerCount = function(emitter, type) {
- if (typeof emitter.listenerCount === "function") {
- return emitter.listenerCount(type);
- } else {
- return listenerCount.call(emitter, type);
- }
- };
- EventEmitter.prototype.listenerCount = listenerCount;
- function listenerCount(type) {
- var events = this._events;
- if (events !== void 0) {
- var evlistener = events[type];
- if (typeof evlistener === "function") {
- return 1;
- } else if (evlistener !== void 0) {
- return evlistener.length;
- }
- }
- return 0;
- }
- EventEmitter.prototype.eventNames = function eventNames() {
- return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
- };
- function arrayClone(arr, n2) {
- var copy = new Array(n2);
- for (var i2 = 0; i2 < n2; ++i2)
- copy[i2] = arr[i2];
- return copy;
- }
- function spliceOne(list, index) {
- for (; index + 1 < list.length; index++)
- list[index] = list[index + 1];
- list.pop();
- }
- function unwrapListeners(arr) {
- var ret = new Array(arr.length);
- for (var i2 = 0; i2 < ret.length; ++i2) {
- ret[i2] = arr[i2].listener || arr[i2];
- }
- return ret;
- }
- function once(emitter, name) {
- return new Promise(function(resolve, reject) {
- function errorListener(err) {
- emitter.removeListener(name, resolver);
- reject(err);
- }
- function resolver() {
- if (typeof emitter.removeListener === "function") {
- emitter.removeListener("error", errorListener);
- }
- resolve([].slice.call(arguments));
- }
- eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });
- if (name !== "error") {
- addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });
- }
- });
- }
- function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
- if (typeof emitter.on === "function") {
- eventTargetAgnosticAddListener(emitter, "error", handler, flags);
- }
- }
- function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
- if (typeof emitter.on === "function") {
- if (flags.once) {
- emitter.once(name, listener);
- } else {
- emitter.on(name, listener);
- }
- } else if (typeof emitter.addEventListener === "function") {
- emitter.addEventListener(name, function wrapListener(arg) {
- if (flags.once) {
- emitter.removeEventListener(name, wrapListener);
- }
- listener(arg);
- });
- } else {
- throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);
- }
- }
- }
- ),
- /***/
- "../../node_modules/lodash/_Symbol.js": (
- /*!********************************************!*\
- !*** ../../node_modules/lodash/_Symbol.js ***!
- \********************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var root = __webpack_require__2(
- /*! ./_root */
- "../../node_modules/lodash/_root.js"
- );
- var Symbol2 = root.Symbol;
- module.exports = Symbol2;
- }
- ),
- /***/
- "../../node_modules/lodash/_baseGetTag.js": (
- /*!************************************************!*\
- !*** ../../node_modules/lodash/_baseGetTag.js ***!
- \************************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var Symbol2 = __webpack_require__2(
- /*! ./_Symbol */
- "../../node_modules/lodash/_Symbol.js"
- ), getRawTag = __webpack_require__2(
- /*! ./_getRawTag */
- "../../node_modules/lodash/_getRawTag.js"
- ), objectToString = __webpack_require__2(
- /*! ./_objectToString */
- "../../node_modules/lodash/_objectToString.js"
- );
- var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
- var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
- function baseGetTag(value) {
- if (value == null) {
- return value === void 0 ? undefinedTag : nullTag;
- }
- return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
- }
- module.exports = baseGetTag;
- }
- ),
- /***/
- "../../node_modules/lodash/_baseTrim.js": (
- /*!**********************************************!*\
- !*** ../../node_modules/lodash/_baseTrim.js ***!
- \**********************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var trimmedEndIndex = __webpack_require__2(
- /*! ./_trimmedEndIndex */
- "../../node_modules/lodash/_trimmedEndIndex.js"
- );
- var reTrimStart = /^\s+/;
- function baseTrim(string) {
- return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
- }
- module.exports = baseTrim;
- }
- ),
- /***/
- "../../node_modules/lodash/_freeGlobal.js": (
- /*!************************************************!*\
- !*** ../../node_modules/lodash/_freeGlobal.js ***!
- \************************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var freeGlobal = typeof __webpack_require__2.g == "object" && __webpack_require__2.g && __webpack_require__2.g.Object === Object && __webpack_require__2.g;
- module.exports = freeGlobal;
- }
- ),
- /***/
- "../../node_modules/lodash/_getRawTag.js": (
- /*!***********************************************!*\
- !*** ../../node_modules/lodash/_getRawTag.js ***!
- \***********************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var Symbol2 = __webpack_require__2(
- /*! ./_Symbol */
- "../../node_modules/lodash/_Symbol.js"
- );
- var objectProto = Object.prototype;
- var hasOwnProperty2 = objectProto.hasOwnProperty;
- var nativeObjectToString = objectProto.toString;
- var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
- function getRawTag(value) {
- var isOwn = hasOwnProperty2.call(value, symToStringTag), tag = value[symToStringTag];
- try {
- value[symToStringTag] = void 0;
- var unmasked = true;
- } catch (e2) {
- }
- var result = nativeObjectToString.call(value);
- if (unmasked) {
- if (isOwn) {
- value[symToStringTag] = tag;
- } else {
- delete value[symToStringTag];
- }
- }
- return result;
- }
- module.exports = getRawTag;
- }
- ),
- /***/
- "../../node_modules/lodash/_objectToString.js": (
- /*!****************************************************!*\
- !*** ../../node_modules/lodash/_objectToString.js ***!
- \****************************************************/
- /***/
- (module) => {
- var objectProto = Object.prototype;
- var nativeObjectToString = objectProto.toString;
- function objectToString(value) {
- return nativeObjectToString.call(value);
- }
- module.exports = objectToString;
- }
- ),
- /***/
- "../../node_modules/lodash/_root.js": (
- /*!******************************************!*\
- !*** ../../node_modules/lodash/_root.js ***!
- \******************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var freeGlobal = __webpack_require__2(
- /*! ./_freeGlobal */
- "../../node_modules/lodash/_freeGlobal.js"
- );
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
- var root = freeGlobal || freeSelf || Function("return this")();
- module.exports = root;
- }
- ),
- /***/
- "../../node_modules/lodash/_trimmedEndIndex.js": (
- /*!*****************************************************!*\
- !*** ../../node_modules/lodash/_trimmedEndIndex.js ***!
- \*****************************************************/
- /***/
- (module) => {
- var reWhitespace = /\s/;
- function trimmedEndIndex(string) {
- var index = string.length;
- while (index-- && reWhitespace.test(string.charAt(index))) {
- }
- return index;
- }
- module.exports = trimmedEndIndex;
- }
- ),
- /***/
- "../../node_modules/lodash/debounce.js": (
- /*!*********************************************!*\
- !*** ../../node_modules/lodash/debounce.js ***!
- \*********************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var isObject2 = __webpack_require__2(
- /*! ./isObject */
- "../../node_modules/lodash/isObject.js"
- ), now = __webpack_require__2(
- /*! ./now */
- "../../node_modules/lodash/now.js"
- ), toNumber = __webpack_require__2(
- /*! ./toNumber */
- "../../node_modules/lodash/toNumber.js"
- );
- var FUNC_ERROR_TEXT = "Expected a function";
- var nativeMax = Math.max, nativeMin = Math.min;
- function debounce(func, wait, options) {
- var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
- if (typeof func != "function") {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- wait = toNumber(wait) || 0;
- if (isObject2(options)) {
- leading = !!options.leading;
- maxing = "maxWait" in options;
- maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
- trailing = "trailing" in options ? !!options.trailing : trailing;
- }
- function invokeFunc(time) {
- var args = lastArgs, thisArg = lastThis;
- lastArgs = lastThis = void 0;
- lastInvokeTime = time;
- result = func.apply(thisArg, args);
- return result;
- }
- function leadingEdge(time) {
- lastInvokeTime = time;
- timerId = setTimeout(timerExpired, wait);
- return leading ? invokeFunc(time) : result;
- }
- function remainingWait(time) {
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
- return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
- }
- function shouldInvoke(time) {
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
- return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
- }
- function timerExpired() {
- var time = now();
- if (shouldInvoke(time)) {
- return trailingEdge(time);
- }
- timerId = setTimeout(timerExpired, remainingWait(time));
- }
- function trailingEdge(time) {
- timerId = void 0;
- if (trailing && lastArgs) {
- return invokeFunc(time);
- }
- lastArgs = lastThis = void 0;
- return result;
- }
- function cancel() {
- if (timerId !== void 0) {
- clearTimeout(timerId);
- }
- lastInvokeTime = 0;
- lastArgs = lastCallTime = lastThis = timerId = void 0;
- }
- function flush() {
- return timerId === void 0 ? result : trailingEdge(now());
- }
- function debounced() {
- var time = now(), isInvoking = shouldInvoke(time);
- lastArgs = arguments;
- lastThis = this;
- lastCallTime = time;
- if (isInvoking) {
- if (timerId === void 0) {
- return leadingEdge(lastCallTime);
- }
- if (maxing) {
- clearTimeout(timerId);
- timerId = setTimeout(timerExpired, wait);
- return invokeFunc(lastCallTime);
- }
- }
- if (timerId === void 0) {
- timerId = setTimeout(timerExpired, wait);
- }
- return result;
- }
- debounced.cancel = cancel;
- debounced.flush = flush;
- return debounced;
- }
- module.exports = debounce;
- }
- ),
- /***/
- "../../node_modules/lodash/isObject.js": (
- /*!*********************************************!*\
- !*** ../../node_modules/lodash/isObject.js ***!
- \*********************************************/
- /***/
- (module) => {
- function isObject2(value) {
- var type = typeof value;
- return value != null && (type == "object" || type == "function");
- }
- module.exports = isObject2;
- }
- ),
- /***/
- "../../node_modules/lodash/isObjectLike.js": (
- /*!*************************************************!*\
- !*** ../../node_modules/lodash/isObjectLike.js ***!
- \*************************************************/
- /***/
- (module) => {
- function isObjectLike(value) {
- return value != null && typeof value == "object";
- }
- module.exports = isObjectLike;
- }
- ),
- /***/
- "../../node_modules/lodash/isSymbol.js": (
- /*!*********************************************!*\
- !*** ../../node_modules/lodash/isSymbol.js ***!
- \*********************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var baseGetTag = __webpack_require__2(
- /*! ./_baseGetTag */
- "../../node_modules/lodash/_baseGetTag.js"
- ), isObjectLike = __webpack_require__2(
- /*! ./isObjectLike */
- "../../node_modules/lodash/isObjectLike.js"
- );
- var symbolTag = "[object Symbol]";
- function isSymbol(value) {
- return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
- }
- module.exports = isSymbol;
- }
- ),
- /***/
- "../../node_modules/lodash/now.js": (
- /*!****************************************!*\
- !*** ../../node_modules/lodash/now.js ***!
- \****************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var root = __webpack_require__2(
- /*! ./_root */
- "../../node_modules/lodash/_root.js"
- );
- var now = function() {
- return root.Date.now();
- };
- module.exports = now;
- }
- ),
- /***/
- "../../node_modules/lodash/throttle.js": (
- /*!*********************************************!*\
- !*** ../../node_modules/lodash/throttle.js ***!
- \*********************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var debounce = __webpack_require__2(
- /*! ./debounce */
- "../../node_modules/lodash/debounce.js"
- ), isObject2 = __webpack_require__2(
- /*! ./isObject */
- "../../node_modules/lodash/isObject.js"
- );
- var FUNC_ERROR_TEXT = "Expected a function";
- function throttle(func, wait, options) {
- var leading = true, trailing = true;
- if (typeof func != "function") {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- if (isObject2(options)) {
- leading = "leading" in options ? !!options.leading : leading;
- trailing = "trailing" in options ? !!options.trailing : trailing;
- }
- return debounce(func, wait, {
- "leading": leading,
- "maxWait": wait,
- "trailing": trailing
- });
- }
- module.exports = throttle;
- }
- ),
- /***/
- "../../node_modules/lodash/toNumber.js": (
- /*!*********************************************!*\
- !*** ../../node_modules/lodash/toNumber.js ***!
- \*********************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- var baseTrim = __webpack_require__2(
- /*! ./_baseTrim */
- "../../node_modules/lodash/_baseTrim.js"
- ), isObject2 = __webpack_require__2(
- /*! ./isObject */
- "../../node_modules/lodash/isObject.js"
- ), isSymbol = __webpack_require__2(
- /*! ./isSymbol */
- "../../node_modules/lodash/isSymbol.js"
- );
- var NAN = 0 / 0;
- var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
- var reIsBinary = /^0b[01]+$/i;
- var reIsOctal = /^0o[0-7]+$/i;
- var freeParseInt = parseInt;
- function toNumber(value) {
- if (typeof value == "number") {
- return value;
- }
- if (isSymbol(value)) {
- return NAN;
- }
- if (isObject2(value)) {
- var other = typeof value.valueOf == "function" ? value.valueOf() : value;
- value = isObject2(other) ? other + "" : other;
- }
- if (typeof value != "string") {
- return value === 0 ? value : +value;
- }
- value = baseTrim(value);
- var isBinary = reIsBinary.test(value);
- return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
- }
- module.exports = toNumber;
- }
- ),
- /***/
- "../../node_modules/path-browserify/index.js": (
- /*!***************************************************!*\
- !*** ../../node_modules/path-browserify/index.js ***!
- \***************************************************/
- /***/
- (module) => {
- function assertPath(path) {
- if (typeof path !== "string") {
- throw new TypeError("Path must be a string. Received " + JSON.stringify(path));
- }
- }
- function normalizeStringPosix(path, allowAboveRoot) {
- var res = "";
- var lastSegmentLength = 0;
- var lastSlash = -1;
- var dots = 0;
- var code;
- for (var i2 = 0; i2 <= path.length; ++i2) {
- if (i2 < path.length)
- code = path.charCodeAt(i2);
- else if (code === 47)
- break;
- else
- code = 47;
- if (code === 47) {
- if (lastSlash === i2 - 1 || dots === 1)
- ;
- else if (lastSlash !== i2 - 1 && dots === 2) {
- if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {
- if (res.length > 2) {
- var lastSlashIndex = res.lastIndexOf("/");
- if (lastSlashIndex !== res.length - 1) {
- if (lastSlashIndex === -1) {
- res = "";
- lastSegmentLength = 0;
- } else {
- res = res.slice(0, lastSlashIndex);
- lastSegmentLength = res.length - 1 - res.lastIndexOf("/");
- }
- lastSlash = i2;
- dots = 0;
- continue;
- }
- } else if (res.length === 2 || res.length === 1) {
- res = "";
- lastSegmentLength = 0;
- lastSlash = i2;
- dots = 0;
- continue;
- }
- }
- if (allowAboveRoot) {
- if (res.length > 0)
- res += "/..";
- else
- res = "..";
- lastSegmentLength = 2;
- }
- } else {
- if (res.length > 0)
- res += "/" + path.slice(lastSlash + 1, i2);
- else
- res = path.slice(lastSlash + 1, i2);
- lastSegmentLength = i2 - lastSlash - 1;
- }
- lastSlash = i2;
- dots = 0;
- } else if (code === 46 && dots !== -1) {
- ++dots;
- } else {
- dots = -1;
- }
- }
- return res;
- }
- function _format(sep, pathObject) {
- var dir = pathObject.dir || pathObject.root;
- var base = pathObject.base || (pathObject.name || "") + (pathObject.ext || "");
- if (!dir) {
- return base;
- }
- if (dir === pathObject.root) {
- return dir + base;
- }
- return dir + sep + base;
- }
- var posix = {
- // path.resolve([from ...], to)
- resolve: function resolve() {
- var resolvedPath = "";
- var resolvedAbsolute = false;
- var cwd;
- for (var i2 = arguments.length - 1; i2 >= -1 && !resolvedAbsolute; i2--) {
- var path;
- if (i2 >= 0)
- path = arguments[i2];
- else {
- if (cwd === void 0)
- cwd = process.cwd();
- path = cwd;
- }
- assertPath(path);
- if (path.length === 0) {
- continue;
- }
- resolvedPath = path + "/" + resolvedPath;
- resolvedAbsolute = path.charCodeAt(0) === 47;
- }
- resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);
- if (resolvedAbsolute) {
- if (resolvedPath.length > 0)
- return "/" + resolvedPath;
- else
- return "/";
- } else if (resolvedPath.length > 0) {
- return resolvedPath;
- } else {
- return ".";
- }
- },
- normalize: function normalize(path) {
- assertPath(path);
- if (path.length === 0)
- return ".";
- var isAbsolute = path.charCodeAt(0) === 47;
- var trailingSeparator = path.charCodeAt(path.length - 1) === 47;
- path = normalizeStringPosix(path, !isAbsolute);
- if (path.length === 0 && !isAbsolute)
- path = ".";
- if (path.length > 0 && trailingSeparator)
- path += "/";
- if (isAbsolute)
- return "/" + path;
- return path;
- },
- isAbsolute: function isAbsolute(path) {
- assertPath(path);
- return path.length > 0 && path.charCodeAt(0) === 47;
- },
- join: function join() {
- if (arguments.length === 0)
- return ".";
- var joined;
- for (var i2 = 0; i2 < arguments.length; ++i2) {
- var arg = arguments[i2];
- assertPath(arg);
- if (arg.length > 0) {
- if (joined === void 0)
- joined = arg;
- else
- joined += "/" + arg;
- }
- }
- if (joined === void 0)
- return ".";
- return posix.normalize(joined);
- },
- relative: function relative(from, to) {
- assertPath(from);
- assertPath(to);
- if (from === to)
- return "";
- from = posix.resolve(from);
- to = posix.resolve(to);
- if (from === to)
- return "";
- var fromStart = 1;
- for (; fromStart < from.length; ++fromStart) {
- if (from.charCodeAt(fromStart) !== 47)
- break;
- }
- var fromEnd = from.length;
- var fromLen = fromEnd - fromStart;
- var toStart = 1;
- for (; toStart < to.length; ++toStart) {
- if (to.charCodeAt(toStart) !== 47)
- break;
- }
- var toEnd = to.length;
- var toLen = toEnd - toStart;
- var length = fromLen < toLen ? fromLen : toLen;
- var lastCommonSep = -1;
- var i2 = 0;
- for (; i2 <= length; ++i2) {
- if (i2 === length) {
- if (toLen > length) {
- if (to.charCodeAt(toStart + i2) === 47) {
- return to.slice(toStart + i2 + 1);
- } else if (i2 === 0) {
- return to.slice(toStart + i2);
- }
- } else if (fromLen > length) {
- if (from.charCodeAt(fromStart + i2) === 47) {
- lastCommonSep = i2;
- } else if (i2 === 0) {
- lastCommonSep = 0;
- }
- }
- break;
- }
- var fromCode = from.charCodeAt(fromStart + i2);
- var toCode = to.charCodeAt(toStart + i2);
- if (fromCode !== toCode)
- break;
- else if (fromCode === 47)
- lastCommonSep = i2;
- }
- var out = "";
- for (i2 = fromStart + lastCommonSep + 1; i2 <= fromEnd; ++i2) {
- if (i2 === fromEnd || from.charCodeAt(i2) === 47) {
- if (out.length === 0)
- out += "..";
- else
- out += "/..";
- }
- }
- if (out.length > 0)
- return out + to.slice(toStart + lastCommonSep);
- else {
- toStart += lastCommonSep;
- if (to.charCodeAt(toStart) === 47)
- ++toStart;
- return to.slice(toStart);
- }
- },
- _makeLong: function _makeLong(path) {
- return path;
- },
- dirname: function dirname(path) {
- assertPath(path);
- if (path.length === 0)
- return ".";
- var code = path.charCodeAt(0);
- var hasRoot = code === 47;
- var end = -1;
- var matchedSlash = true;
- for (var i2 = path.length - 1; i2 >= 1; --i2) {
- code = path.charCodeAt(i2);
- if (code === 47) {
- if (!matchedSlash) {
- end = i2;
- break;
- }
- } else {
- matchedSlash = false;
- }
- }
- if (end === -1)
- return hasRoot ? "/" : ".";
- if (hasRoot && end === 1)
- return "//";
- return path.slice(0, end);
- },
- basename: function basename(path, ext) {
- if (ext !== void 0 && typeof ext !== "string")
- throw new TypeError('"ext" argument must be a string');
- assertPath(path);
- var start = 0;
- var end = -1;
- var matchedSlash = true;
- var i2;
- if (ext !== void 0 && ext.length > 0 && ext.length <= path.length) {
- if (ext.length === path.length && ext === path)
- return "";
- var extIdx = ext.length - 1;
- var firstNonSlashEnd = -1;
- for (i2 = path.length - 1; i2 >= 0; --i2) {
- var code = path.charCodeAt(i2);
- if (code === 47) {
- if (!matchedSlash) {
- start = i2 + 1;
- break;
- }
- } else {
- if (firstNonSlashEnd === -1) {
- matchedSlash = false;
- firstNonSlashEnd = i2 + 1;
- }
- if (extIdx >= 0) {
- if (code === ext.charCodeAt(extIdx)) {
- if (--extIdx === -1) {
- end = i2;
- }
- } else {
- extIdx = -1;
- end = firstNonSlashEnd;
- }
- }
- }
- }
- if (start === end)
- end = firstNonSlashEnd;
- else if (end === -1)
- end = path.length;
- return path.slice(start, end);
- } else {
- for (i2 = path.length - 1; i2 >= 0; --i2) {
- if (path.charCodeAt(i2) === 47) {
- if (!matchedSlash) {
- start = i2 + 1;
- break;
- }
- } else if (end === -1) {
- matchedSlash = false;
- end = i2 + 1;
- }
- }
- if (end === -1)
- return "";
- return path.slice(start, end);
- }
- },
- extname: function extname(path) {
- assertPath(path);
- var startDot = -1;
- var startPart = 0;
- var end = -1;
- var matchedSlash = true;
- var preDotState = 0;
- for (var i2 = path.length - 1; i2 >= 0; --i2) {
- var code = path.charCodeAt(i2);
- if (code === 47) {
- if (!matchedSlash) {
- startPart = i2 + 1;
- break;
- }
- continue;
- }
- if (end === -1) {
- matchedSlash = false;
- end = i2 + 1;
- }
- if (code === 46) {
- if (startDot === -1)
- startDot = i2;
- else if (preDotState !== 1)
- preDotState = 1;
- } else if (startDot !== -1) {
- preDotState = -1;
- }
- }
- if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
- preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
- preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
- return "";
- }
- return path.slice(startDot, end);
- },
- format: function format(pathObject) {
- if (pathObject === null || typeof pathObject !== "object") {
- throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject);
- }
- return _format("/", pathObject);
- },
- parse: function parse2(path) {
- assertPath(path);
- var ret = { root: "", dir: "", base: "", ext: "", name: "" };
- if (path.length === 0)
- return ret;
- var code = path.charCodeAt(0);
- var isAbsolute = code === 47;
- var start;
- if (isAbsolute) {
- ret.root = "/";
- start = 1;
- } else {
- start = 0;
- }
- var startDot = -1;
- var startPart = 0;
- var end = -1;
- var matchedSlash = true;
- var i2 = path.length - 1;
- var preDotState = 0;
- for (; i2 >= start; --i2) {
- code = path.charCodeAt(i2);
- if (code === 47) {
- if (!matchedSlash) {
- startPart = i2 + 1;
- break;
- }
- continue;
- }
- if (end === -1) {
- matchedSlash = false;
- end = i2 + 1;
- }
- if (code === 46) {
- if (startDot === -1)
- startDot = i2;
- else if (preDotState !== 1)
- preDotState = 1;
- } else if (startDot !== -1) {
- preDotState = -1;
- }
- }
- if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
- preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
- preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
- if (end !== -1) {
- if (startPart === 0 && isAbsolute)
- ret.base = ret.name = path.slice(1, end);
- else
- ret.base = ret.name = path.slice(startPart, end);
- }
- } else {
- if (startPart === 0 && isAbsolute) {
- ret.name = path.slice(1, startDot);
- ret.base = path.slice(1, end);
- } else {
- ret.name = path.slice(startPart, startDot);
- ret.base = path.slice(startPart, end);
- }
- ret.ext = path.slice(startDot, end);
- }
- if (startPart > 0)
- ret.dir = path.slice(0, startPart - 1);
- else if (isAbsolute)
- ret.dir = "/";
- return ret;
- },
- sep: "/",
- delimiter: ":",
- win32: null,
- posix: null
- };
- posix.posix = posix;
- module.exports = posix;
- }
- ),
- /***/
- "../../node_modules/speakingurl/index.js": (
- /*!***********************************************!*\
- !*** ../../node_modules/speakingurl/index.js ***!
- \***********************************************/
- /***/
- (module, __unused_webpack_exports, __webpack_require__2) => {
- module.exports = __webpack_require__2(
- /*! ./lib/speakingurl */
- "../../node_modules/speakingurl/lib/speakingurl.js"
- );
- }
- ),
- /***/
- "../../node_modules/speakingurl/lib/speakingurl.js": (
- /*!*********************************************************!*\
- !*** ../../node_modules/speakingurl/lib/speakingurl.js ***!
- \*********************************************************/
- /***/
- function(module, exports) {
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
- (function(root) {
- var charMap = {
- // latin
- "À": "A",
- "Á": "A",
- "Â": "A",
- "Ã": "A",
- "Ä": "Ae",
- "Å": "A",
- "Æ": "AE",
- "Ç": "C",
- "È": "E",
- "É": "E",
- "Ê": "E",
- "Ë": "E",
- "Ì": "I",
- "Í": "I",
- "Î": "I",
- "Ï": "I",
- "Ð": "D",
- "Ñ": "N",
- "Ò": "O",
- "Ó": "O",
- "Ô": "O",
- "Õ": "O",
- "Ö": "Oe",
- "Ő": "O",
- "Ø": "O",
- "Ù": "U",
- "Ú": "U",
- "Û": "U",
- "Ü": "Ue",
- "Ű": "U",
- "Ý": "Y",
- "Þ": "TH",
- "ß": "ss",
- "à": "a",
- "á": "a",
- "â": "a",
- "ã": "a",
- "ä": "ae",
- "å": "a",
- "æ": "ae",
- "ç": "c",
- "è": "e",
- "é": "e",
- "ê": "e",
- "ë": "e",
- "ì": "i",
- "í": "i",
- "î": "i",
- "ï": "i",
- "ð": "d",
- "ñ": "n",
- "ò": "o",
- "ó": "o",
- "ô": "o",
- "õ": "o",
- "ö": "oe",
- "ő": "o",
- "ø": "o",
- "ù": "u",
- "ú": "u",
- "û": "u",
- "ü": "ue",
- "ű": "u",
- "ý": "y",
- "þ": "th",
- "ÿ": "y",
- "ẞ": "SS",
- // language specific
- // Arabic
- "ا": "a",
- "أ": "a",
- "إ": "i",
- "آ": "aa",
- "ؤ": "u",
- "ئ": "e",
- "ء": "a",
- "ب": "b",
- "ت": "t",
- "ث": "th",
- "ج": "j",
- "ح": "h",
- "خ": "kh",
- "د": "d",
- "ذ": "th",
- "ر": "r",
- "ز": "z",
- "س": "s",
- "ش": "sh",
- "ص": "s",
- "ض": "dh",
- "ط": "t",
- "ظ": "z",
- "ع": "a",
- "غ": "gh",
- "ف": "f",
- "ق": "q",
- "ك": "k",
- "ل": "l",
- "م": "m",
- "ن": "n",
- "ه": "h",
- "و": "w",
- "ي": "y",
- "ى": "a",
- "ة": "h",
- "ﻻ": "la",
- "ﻷ": "laa",
- "ﻹ": "lai",
- "ﻵ": "laa",
- // Persian additional characters than Arabic
- "گ": "g",
- "چ": "ch",
- "پ": "p",
- "ژ": "zh",
- "ک": "k",
- "ی": "y",
- // Arabic diactrics
- "َ": "a",
- "ً": "an",
- "ِ": "e",
- "ٍ": "en",
- "ُ": "u",
- "ٌ": "on",
- "ْ": "",
- // Arabic numbers
- "٠": "0",
- "١": "1",
- "٢": "2",
- "٣": "3",
- "٤": "4",
- "٥": "5",
- "٦": "6",
- "٧": "7",
- "٨": "8",
- "٩": "9",
- // Persian numbers
- "۰": "0",
- "۱": "1",
- "۲": "2",
- "۳": "3",
- "۴": "4",
- "۵": "5",
- "۶": "6",
- "۷": "7",
- "۸": "8",
- "۹": "9",
- // Burmese consonants
- "က": "k",
- "ခ": "kh",
- "ဂ": "g",
- "ဃ": "ga",
- "င": "ng",
- "စ": "s",
- "ဆ": "sa",
- "ဇ": "z",
- "စျ": "za",
- "ည": "ny",
- "ဋ": "t",
- "ဌ": "ta",
- "ဍ": "d",
- "ဎ": "da",
- "ဏ": "na",
- "တ": "t",
- "ထ": "ta",
- "ဒ": "d",
- "ဓ": "da",
- "န": "n",
- "ပ": "p",
- "ဖ": "pa",
- "ဗ": "b",
- "ဘ": "ba",
- "မ": "m",
- "ယ": "y",
- "ရ": "ya",
- "လ": "l",
- "ဝ": "w",
- "သ": "th",
- "ဟ": "h",
- "ဠ": "la",
- "အ": "a",
- // consonant character combos
- "ြ": "y",
- "ျ": "ya",
- "ွ": "w",
- "ြွ": "yw",
- "ျွ": "ywa",
- "ှ": "h",
- // independent vowels
- "ဧ": "e",
- "၏": "-e",
- "ဣ": "i",
- "ဤ": "-i",
- "ဉ": "u",
- "ဦ": "-u",
- "ဩ": "aw",
- "သြော": "aw",
- "ဪ": "aw",
- // numbers
- "၀": "0",
- "၁": "1",
- "၂": "2",
- "၃": "3",
- "၄": "4",
- "၅": "5",
- "၆": "6",
- "၇": "7",
- "၈": "8",
- "၉": "9",
- // virama and tone marks which are silent in transliteration
- "္": "",
- "့": "",
- "း": "",
- // Czech
- "č": "c",
- "ď": "d",
- "ě": "e",
- "ň": "n",
- "ř": "r",
- "š": "s",
- "ť": "t",
- "ů": "u",
- "ž": "z",
- "Č": "C",
- "Ď": "D",
- "Ě": "E",
- "Ň": "N",
- "Ř": "R",
- "Š": "S",
- "Ť": "T",
- "Ů": "U",
- "Ž": "Z",
- // Dhivehi
- "ހ": "h",
- "ށ": "sh",
- "ނ": "n",
- "ރ": "r",
- "ބ": "b",
- "ޅ": "lh",
- "ކ": "k",
- "އ": "a",
- "ވ": "v",
- "މ": "m",
- "ފ": "f",
- "ދ": "dh",
- "ތ": "th",
- "ލ": "l",
- "ގ": "g",
- "ޏ": "gn",
- "ސ": "s",
- "ޑ": "d",
- "ޒ": "z",
- "ޓ": "t",
- "ޔ": "y",
- "ޕ": "p",
- "ޖ": "j",
- "ޗ": "ch",
- "ޘ": "tt",
- "ޙ": "hh",
- "ޚ": "kh",
- "ޛ": "th",
- "ޜ": "z",
- "ޝ": "sh",
- "ޞ": "s",
- "ޟ": "d",
- "ޠ": "t",
- "ޡ": "z",
- "ޢ": "a",
- "ޣ": "gh",
- "ޤ": "q",
- "ޥ": "w",
- "ަ": "a",
- "ާ": "aa",
- "ި": "i",
- "ީ": "ee",
- "ު": "u",
- "ޫ": "oo",
- "ެ": "e",
- "ޭ": "ey",
- "ޮ": "o",
- "ޯ": "oa",
- "ް": "",
- // Georgian https://en.wikipedia.org/wiki/Romanization_of_Georgian
- // National system (2002)
- "ა": "a",
- "ბ": "b",
- "გ": "g",
- "დ": "d",
- "ე": "e",
- "ვ": "v",
- "ზ": "z",
- "თ": "t",
- "ი": "i",
- "კ": "k",
- "ლ": "l",
- "მ": "m",
- "ნ": "n",
- "ო": "o",
- "პ": "p",
- "ჟ": "zh",
- "რ": "r",
- "ს": "s",
- "ტ": "t",
- "უ": "u",
- "ფ": "p",
- "ქ": "k",
- "ღ": "gh",
- "ყ": "q",
- "შ": "sh",
- "ჩ": "ch",
- "ც": "ts",
- "ძ": "dz",
- "წ": "ts",
- "ჭ": "ch",
- "ხ": "kh",
- "ჯ": "j",
- "ჰ": "h",
- // Greek
- "α": "a",
- "β": "v",
- "γ": "g",
- "δ": "d",
- "ε": "e",
- "ζ": "z",
- "η": "i",
- "θ": "th",
- "ι": "i",
- "κ": "k",
- "λ": "l",
- "μ": "m",
- "ν": "n",
- "ξ": "ks",
- "ο": "o",
- "π": "p",
- "ρ": "r",
- "σ": "s",
- "τ": "t",
- "υ": "y",
- "φ": "f",
- "χ": "x",
- "ψ": "ps",
- "ω": "o",
- "ά": "a",
- "έ": "e",
- "ί": "i",
- "ό": "o",
- "ύ": "y",
- "ή": "i",
- "ώ": "o",
- "ς": "s",
- "ϊ": "i",
- "ΰ": "y",
- "ϋ": "y",
- "ΐ": "i",
- "Α": "A",
- "Β": "B",
- "Γ": "G",
- "Δ": "D",
- "Ε": "E",
- "Ζ": "Z",
- "Η": "I",
- "Θ": "TH",
- "Ι": "I",
- "Κ": "K",
- "Λ": "L",
- "Μ": "M",
- "Ν": "N",
- "Ξ": "KS",
- "Ο": "O",
- "Π": "P",
- "Ρ": "R",
- "Σ": "S",
- "Τ": "T",
- "Υ": "Y",
- "Φ": "F",
- "Χ": "X",
- "Ψ": "PS",
- "Ω": "O",
- "Ά": "A",
- "Έ": "E",
- "Ί": "I",
- "Ό": "O",
- "Ύ": "Y",
- "Ή": "I",
- "Ώ": "O",
- "Ϊ": "I",
- "Ϋ": "Y",
- // Latvian
- "ā": "a",
- // 'č': 'c', // duplicate
- "ē": "e",
- "ģ": "g",
- "ī": "i",
- "ķ": "k",
- "ļ": "l",
- "ņ": "n",
- // 'š': 's', // duplicate
- "ū": "u",
- // 'ž': 'z', // duplicate
- "Ā": "A",
- // 'Č': 'C', // duplicate
- "Ē": "E",
- "Ģ": "G",
- "Ī": "I",
- "Ķ": "k",
- "Ļ": "L",
- "Ņ": "N",
- // 'Š': 'S', // duplicate
- "Ū": "U",
- // 'Ž': 'Z', // duplicate
- // Macedonian
- "Ќ": "Kj",
- "ќ": "kj",
- "Љ": "Lj",
- "љ": "lj",
- "Њ": "Nj",
- "њ": "nj",
- "Тс": "Ts",
- "тс": "ts",
- // Polish
- "ą": "a",
- "ć": "c",
- "ę": "e",
- "ł": "l",
- "ń": "n",
- // 'ó': 'o', // duplicate
- "ś": "s",
- "ź": "z",
- "ż": "z",
- "Ą": "A",
- "Ć": "C",
- "Ę": "E",
- "Ł": "L",
- "Ń": "N",
- "Ś": "S",
- "Ź": "Z",
- "Ż": "Z",
- // Ukranian
- "Є": "Ye",
- "І": "I",
- "Ї": "Yi",
- "Ґ": "G",
- "є": "ye",
- "і": "i",
- "ї": "yi",
- "ґ": "g",
- // Romanian
- "ă": "a",
- "Ă": "A",
- "ș": "s",
- "Ș": "S",
- // 'ş': 's', // duplicate
- // 'Ş': 'S', // duplicate
- "ț": "t",
- "Ț": "T",
- "ţ": "t",
- "Ţ": "T",
- // Russian https://en.wikipedia.org/wiki/Romanization_of_Russian
- // ICAO
- "а": "a",
- "б": "b",
- "в": "v",
- "г": "g",
- "д": "d",
- "е": "e",
- "ё": "yo",
- "ж": "zh",
- "з": "z",
- "и": "i",
- "й": "i",
- "к": "k",
- "л": "l",
- "м": "m",
- "н": "n",
- "о": "o",
- "п": "p",
- "р": "r",
- "с": "s",
- "т": "t",
- "у": "u",
- "ф": "f",
- "х": "kh",
- "ц": "c",
- "ч": "ch",
- "ш": "sh",
- "щ": "sh",
- "ъ": "",
- "ы": "y",
- "ь": "",
- "э": "e",
- "ю": "yu",
- "я": "ya",
- "А": "A",
- "Б": "B",
- "В": "V",
- "Г": "G",
- "Д": "D",
- "Е": "E",
- "Ё": "Yo",
- "Ж": "Zh",
- "З": "Z",
- "И": "I",
- "Й": "I",
- "К": "K",
- "Л": "L",
- "М": "M",
- "Н": "N",
- "О": "O",
- "П": "P",
- "Р": "R",
- "С": "S",
- "Т": "T",
- "У": "U",
- "Ф": "F",
- "Х": "Kh",
- "Ц": "C",
- "Ч": "Ch",
- "Ш": "Sh",
- "Щ": "Sh",
- "Ъ": "",
- "Ы": "Y",
- "Ь": "",
- "Э": "E",
- "Ю": "Yu",
- "Я": "Ya",
- // Serbian
- "ђ": "dj",
- "ј": "j",
- // 'љ': 'lj', // duplicate
- // 'њ': 'nj', // duplicate
- "ћ": "c",
- "џ": "dz",
- "Ђ": "Dj",
- "Ј": "j",
- // 'Љ': 'Lj', // duplicate
- // 'Њ': 'Nj', // duplicate
- "Ћ": "C",
- "Џ": "Dz",
- // Slovak
- "ľ": "l",
- "ĺ": "l",
- "ŕ": "r",
- "Ľ": "L",
- "Ĺ": "L",
- "Ŕ": "R",
- // Turkish
- "ş": "s",
- "Ş": "S",
- "ı": "i",
- "İ": "I",
- // 'ç': 'c', // duplicate
- // 'Ç': 'C', // duplicate
- // 'ü': 'u', // duplicate, see langCharMap
- // 'Ü': 'U', // duplicate, see langCharMap
- // 'ö': 'o', // duplicate, see langCharMap
- // 'Ö': 'O', // duplicate, see langCharMap
- "ğ": "g",
- "Ğ": "G",
- // Vietnamese
- "ả": "a",
- "Ả": "A",
- "ẳ": "a",
- "Ẳ": "A",
- "ẩ": "a",
- "Ẩ": "A",
- "đ": "d",
- "Đ": "D",
- "ẹ": "e",
- "Ẹ": "E",
- "ẽ": "e",
- "Ẽ": "E",
- "ẻ": "e",
- "Ẻ": "E",
- "ế": "e",
- "Ế": "E",
- "ề": "e",
- "Ề": "E",
- "ệ": "e",
- "Ệ": "E",
- "ễ": "e",
- "Ễ": "E",
- "ể": "e",
- "Ể": "E",
- "ỏ": "o",
- "ọ": "o",
- "Ọ": "o",
- "ố": "o",
- "Ố": "O",
- "ồ": "o",
- "Ồ": "O",
- "ổ": "o",
- "Ổ": "O",
- "ộ": "o",
- "Ộ": "O",
- "ỗ": "o",
- "Ỗ": "O",
- "ơ": "o",
- "Ơ": "O",
- "ớ": "o",
- "Ớ": "O",
- "ờ": "o",
- "Ờ": "O",
- "ợ": "o",
- "Ợ": "O",
- "ỡ": "o",
- "Ỡ": "O",
- "Ở": "o",
- "ở": "o",
- "ị": "i",
- "Ị": "I",
- "ĩ": "i",
- "Ĩ": "I",
- "ỉ": "i",
- "Ỉ": "i",
- "ủ": "u",
- "Ủ": "U",
- "ụ": "u",
- "Ụ": "U",
- "ũ": "u",
- "Ũ": "U",
- "ư": "u",
- "Ư": "U",
- "ứ": "u",
- "Ứ": "U",
- "ừ": "u",
- "Ừ": "U",
- "ự": "u",
- "Ự": "U",
- "ữ": "u",
- "Ữ": "U",
- "ử": "u",
- "Ử": "ư",
- "ỷ": "y",
- "Ỷ": "y",
- "ỳ": "y",
- "Ỳ": "Y",
- "ỵ": "y",
- "Ỵ": "Y",
- "ỹ": "y",
- "Ỹ": "Y",
- "ạ": "a",
- "Ạ": "A",
- "ấ": "a",
- "Ấ": "A",
- "ầ": "a",
- "Ầ": "A",
- "ậ": "a",
- "Ậ": "A",
- "ẫ": "a",
- "Ẫ": "A",
- // 'ă': 'a', // duplicate
- // 'Ă': 'A', // duplicate
- "ắ": "a",
- "Ắ": "A",
- "ằ": "a",
- "Ằ": "A",
- "ặ": "a",
- "Ặ": "A",
- "ẵ": "a",
- "Ẵ": "A",
- "⓪": "0",
- "①": "1",
- "②": "2",
- "③": "3",
- "④": "4",
- "⑤": "5",
- "⑥": "6",
- "⑦": "7",
- "⑧": "8",
- "⑨": "9",
- "⑩": "10",
- "⑪": "11",
- "⑫": "12",
- "⑬": "13",
- "⑭": "14",
- "⑮": "15",
- "⑯": "16",
- "⑰": "17",
- "⑱": "18",
- "⑲": "18",
- "⑳": "18",
- "⓵": "1",
- "⓶": "2",
- "⓷": "3",
- "⓸": "4",
- "⓹": "5",
- "⓺": "6",
- "⓻": "7",
- "⓼": "8",
- "⓽": "9",
- "⓾": "10",
- "⓿": "0",
- "⓫": "11",
- "⓬": "12",
- "⓭": "13",
- "⓮": "14",
- "⓯": "15",
- "⓰": "16",
- "⓱": "17",
- "⓲": "18",
- "⓳": "19",
- "⓴": "20",
- "Ⓐ": "A",
- "Ⓑ": "B",
- "Ⓒ": "C",
- "Ⓓ": "D",
- "Ⓔ": "E",
- "Ⓕ": "F",
- "Ⓖ": "G",
- "Ⓗ": "H",
- "Ⓘ": "I",
- "Ⓙ": "J",
- "Ⓚ": "K",
- "Ⓛ": "L",
- "Ⓜ": "M",
- "Ⓝ": "N",
- "Ⓞ": "O",
- "Ⓟ": "P",
- "Ⓠ": "Q",
- "Ⓡ": "R",
- "Ⓢ": "S",
- "Ⓣ": "T",
- "Ⓤ": "U",
- "Ⓥ": "V",
- "Ⓦ": "W",
- "Ⓧ": "X",
- "Ⓨ": "Y",
- "Ⓩ": "Z",
- "ⓐ": "a",
- "ⓑ": "b",
- "ⓒ": "c",
- "ⓓ": "d",
- "ⓔ": "e",
- "ⓕ": "f",
- "ⓖ": "g",
- "ⓗ": "h",
- "ⓘ": "i",
- "ⓙ": "j",
- "ⓚ": "k",
- "ⓛ": "l",
- "ⓜ": "m",
- "ⓝ": "n",
- "ⓞ": "o",
- "ⓟ": "p",
- "ⓠ": "q",
- "ⓡ": "r",
- "ⓢ": "s",
- "ⓣ": "t",
- "ⓤ": "u",
- "ⓦ": "v",
- "ⓥ": "w",
- "ⓧ": "x",
- "ⓨ": "y",
- "ⓩ": "z",
- // symbols
- "“": '"',
- "”": '"',
- "‘": "'",
- "’": "'",
- "∂": "d",
- "ƒ": "f",
- "™": "(TM)",
- "©": "(C)",
- "œ": "oe",
- "Œ": "OE",
- "®": "(R)",
- "†": "+",
- "℠": "(SM)",
- "…": "...",
- "˚": "o",
- "º": "o",
- "ª": "a",
- "•": "*",
- "၊": ",",
- "။": ".",
- // currency
- "$": "USD",
- "€": "EUR",
- "₢": "BRN",
- "₣": "FRF",
- "£": "GBP",
- "₤": "ITL",
- "₦": "NGN",
- "₧": "ESP",
- "₩": "KRW",
- "₪": "ILS",
- "₫": "VND",
- "₭": "LAK",
- "₮": "MNT",
- "₯": "GRD",
- "₱": "ARS",
- "₲": "PYG",
- "₳": "ARA",
- "₴": "UAH",
- "₵": "GHS",
- "¢": "cent",
- "¥": "CNY",
- "元": "CNY",
- "円": "YEN",
- "﷼": "IRR",
- "₠": "EWE",
- "฿": "THB",
- "₨": "INR",
- "₹": "INR",
- "₰": "PF",
- "₺": "TRY",
- "؋": "AFN",
- "₼": "AZN",
- "лв": "BGN",
- "៛": "KHR",
- "₡": "CRC",
- "₸": "KZT",
- "ден": "MKD",
- "zł": "PLN",
- "₽": "RUB",
- "₾": "GEL"
- };
- var lookAheadCharArray = [
- // burmese
- "်",
- // Dhivehi
- "ް"
- ];
- var diatricMap = {
- // Burmese
- // dependent vowels
- "ာ": "a",
- "ါ": "a",
- "ေ": "e",
- "ဲ": "e",
- "ိ": "i",
- "ီ": "i",
- "ို": "o",
- "ု": "u",
- "ူ": "u",
- "ေါင်": "aung",
- "ော": "aw",
- "ော်": "aw",
- "ေါ": "aw",
- "ေါ်": "aw",
- "်": "်",
- // this is special case but the character will be converted to latin in the code
- "က်": "et",
- "ိုက်": "aik",
- "ောက်": "auk",
- "င်": "in",
- "ိုင်": "aing",
- "ောင်": "aung",
- "စ်": "it",
- "ည်": "i",
- "တ်": "at",
- "ိတ်": "eik",
- "ုတ်": "ok",
- "ွတ်": "ut",
- "ေတ်": "it",
- "ဒ်": "d",
- "ိုဒ်": "ok",
- "ုဒ်": "ait",
- "န်": "an",
- "ာန်": "an",
- "ိန်": "ein",
- "ုန်": "on",
- "ွန်": "un",
- "ပ်": "at",
- "ိပ်": "eik",
- "ုပ်": "ok",
- "ွပ်": "ut",
- "န်ုပ်": "nub",
- "မ်": "an",
- "ိမ်": "ein",
- "ုမ်": "on",
- "ွမ်": "un",
- "ယ်": "e",
- "ိုလ်": "ol",
- "ဉ်": "in",
- "ံ": "an",
- "ိံ": "ein",
- "ုံ": "on",
- // Dhivehi
- "ައް": "ah",
- "ަށް": "ah"
- };
- var langCharMap = {
- "en": {},
- // default language
- "az": {
- // Azerbaijani
- "ç": "c",
- "ə": "e",
- "ğ": "g",
- "ı": "i",
- "ö": "o",
- "ş": "s",
- "ü": "u",
- "Ç": "C",
- "Ə": "E",
- "Ğ": "G",
- "İ": "I",
- "Ö": "O",
- "Ş": "S",
- "Ü": "U"
- },
- "cs": {
- // Czech
- "č": "c",
- "ď": "d",
- "ě": "e",
- "ň": "n",
- "ř": "r",
- "š": "s",
- "ť": "t",
- "ů": "u",
- "ž": "z",
- "Č": "C",
- "Ď": "D",
- "Ě": "E",
- "Ň": "N",
- "Ř": "R",
- "Š": "S",
- "Ť": "T",
- "Ů": "U",
- "Ž": "Z"
- },
- "fi": {
- // Finnish
- // 'å': 'a', duplicate see charMap/latin
- // 'Å': 'A', duplicate see charMap/latin
- "ä": "a",
- // ok
- "Ä": "A",
- // ok
- "ö": "o",
- // ok
- "Ö": "O"
- // ok
- },
- "hu": {
- // Hungarian
- "ä": "a",
- // ok
- "Ä": "A",
- // ok
- // 'á': 'a', duplicate see charMap/latin
- // 'Á': 'A', duplicate see charMap/latin
- "ö": "o",
- // ok
- "Ö": "O",
- // ok
- // 'ő': 'o', duplicate see charMap/latin
- // 'Ő': 'O', duplicate see charMap/latin
- "ü": "u",
- "Ü": "U",
- "ű": "u",
- "Ű": "U"
- },
- "lt": {
- // Lithuanian
- "ą": "a",
- "č": "c",
- "ę": "e",
- "ė": "e",
- "į": "i",
- "š": "s",
- "ų": "u",
- "ū": "u",
- "ž": "z",
- "Ą": "A",
- "Č": "C",
- "Ę": "E",
- "Ė": "E",
- "Į": "I",
- "Š": "S",
- "Ų": "U",
- "Ū": "U"
- },
- "lv": {
- // Latvian
- "ā": "a",
- "č": "c",
- "ē": "e",
- "ģ": "g",
- "ī": "i",
- "ķ": "k",
- "ļ": "l",
- "ņ": "n",
- "š": "s",
- "ū": "u",
- "ž": "z",
- "Ā": "A",
- "Č": "C",
- "Ē": "E",
- "Ģ": "G",
- "Ī": "i",
- "Ķ": "k",
- "Ļ": "L",
- "Ņ": "N",
- "Š": "S",
- "Ū": "u",
- "Ž": "Z"
- },
- "pl": {
- // Polish
- "ą": "a",
- "ć": "c",
- "ę": "e",
- "ł": "l",
- "ń": "n",
- "ó": "o",
- "ś": "s",
- "ź": "z",
- "ż": "z",
- "Ą": "A",
- "Ć": "C",
- "Ę": "e",
- "Ł": "L",
- "Ń": "N",
- "Ó": "O",
- "Ś": "S",
- "Ź": "Z",
- "Ż": "Z"
- },
- "sv": {
- // Swedish
- // 'å': 'a', duplicate see charMap/latin
- // 'Å': 'A', duplicate see charMap/latin
- "ä": "a",
- // ok
- "Ä": "A",
- // ok
- "ö": "o",
- // ok
- "Ö": "O"
- // ok
- },
- "sk": {
- // Slovak
- "ä": "a",
- "Ä": "A"
- },
- "sr": {
- // Serbian
- "љ": "lj",
- "њ": "nj",
- "Љ": "Lj",
- "Њ": "Nj",
- "đ": "dj",
- "Đ": "Dj"
- },
- "tr": {
- // Turkish
- "Ü": "U",
- "Ö": "O",
- "ü": "u",
- "ö": "o"
- }
- };
- var symbolMap = {
- "ar": {
- "∆": "delta",
- "∞": "la-nihaya",
- "♥": "hob",
- "&": "wa",
- "|": "aw",
- "<": "aqal-men",
- ">": "akbar-men",
- "∑": "majmou",
- "¤": "omla"
- },
- "az": {},
- "ca": {
- "∆": "delta",
- "∞": "infinit",
- "♥": "amor",
- "&": "i",
- "|": "o",
- "<": "menys que",
- ">": "mes que",
- "∑": "suma dels",
- "¤": "moneda"
- },
- "cs": {
- "∆": "delta",
- "∞": "nekonecno",
- "♥": "laska",
- "&": "a",
- "|": "nebo",
- "<": "mensi nez",
- ">": "vetsi nez",
- "∑": "soucet",
- "¤": "mena"
- },
- "de": {
- "∆": "delta",
- "∞": "unendlich",
- "♥": "Liebe",
- "&": "und",
- "|": "oder",
- "<": "kleiner als",
- ">": "groesser als",
- "∑": "Summe von",
- "¤": "Waehrung"
- },
- "dv": {
- "∆": "delta",
- "∞": "kolunulaa",
- "♥": "loabi",
- "&": "aai",
- "|": "noonee",
- "<": "ah vure kuda",
- ">": "ah vure bodu",
- "∑": "jumula",
- "¤": "faisaa"
- },
- "en": {
- "∆": "delta",
- "∞": "infinity",
- "♥": "love",
- "&": "and",
- "|": "or",
- "<": "less than",
- ">": "greater than",
- "∑": "sum",
- "¤": "currency"
- },
- "es": {
- "∆": "delta",
- "∞": "infinito",
- "♥": "amor",
- "&": "y",
- "|": "u",
- "<": "menos que",
- ">": "mas que",
- "∑": "suma de los",
- "¤": "moneda"
- },
- "fa": {
- "∆": "delta",
- "∞": "bi-nahayat",
- "♥": "eshgh",
- "&": "va",
- "|": "ya",
- "<": "kamtar-az",
- ">": "bishtar-az",
- "∑": "majmooe",
- "¤": "vahed"
- },
- "fi": {
- "∆": "delta",
- "∞": "aarettomyys",
- "♥": "rakkaus",
- "&": "ja",
- "|": "tai",
- "<": "pienempi kuin",
- ">": "suurempi kuin",
- "∑": "summa",
- "¤": "valuutta"
- },
- "fr": {
- "∆": "delta",
- "∞": "infiniment",
- "♥": "Amour",
- "&": "et",
- "|": "ou",
- "<": "moins que",
- ">": "superieure a",
- "∑": "somme des",
- "¤": "monnaie"
- },
- "ge": {
- "∆": "delta",
- "∞": "usasruloba",
- "♥": "siqvaruli",
- "&": "da",
- "|": "an",
- "<": "naklebi",
- ">": "meti",
- "∑": "jami",
- "¤": "valuta"
- },
- "gr": {},
- "hu": {
- "∆": "delta",
- "∞": "vegtelen",
- "♥": "szerelem",
- "&": "es",
- "|": "vagy",
- "<": "kisebb mint",
- ">": "nagyobb mint",
- "∑": "szumma",
- "¤": "penznem"
- },
- "it": {
- "∆": "delta",
- "∞": "infinito",
- "♥": "amore",
- "&": "e",
- "|": "o",
- "<": "minore di",
- ">": "maggiore di",
- "∑": "somma",
- "¤": "moneta"
- },
- "lt": {
- "∆": "delta",
- "∞": "begalybe",
- "♥": "meile",
- "&": "ir",
- "|": "ar",
- "<": "maziau nei",
- ">": "daugiau nei",
- "∑": "suma",
- "¤": "valiuta"
- },
- "lv": {
- "∆": "delta",
- "∞": "bezgaliba",
- "♥": "milestiba",
- "&": "un",
- "|": "vai",
- "<": "mazak neka",
- ">": "lielaks neka",
- "∑": "summa",
- "¤": "valuta"
- },
- "my": {
- "∆": "kwahkhyaet",
- "∞": "asaonasme",
- "♥": "akhyait",
- "&": "nhin",
- "|": "tho",
- "<": "ngethaw",
- ">": "kyithaw",
- "∑": "paungld",
- "¤": "ngwekye"
- },
- "mk": {},
- "nl": {
- "∆": "delta",
- "∞": "oneindig",
- "♥": "liefde",
- "&": "en",
- "|": "of",
- "<": "kleiner dan",
- ">": "groter dan",
- "∑": "som",
- "¤": "valuta"
- },
- "pl": {
- "∆": "delta",
- "∞": "nieskonczonosc",
- "♥": "milosc",
- "&": "i",
- "|": "lub",
- "<": "mniejsze niz",
- ">": "wieksze niz",
- "∑": "suma",
- "¤": "waluta"
- },
- "pt": {
- "∆": "delta",
- "∞": "infinito",
- "♥": "amor",
- "&": "e",
- "|": "ou",
- "<": "menor que",
- ">": "maior que",
- "∑": "soma",
- "¤": "moeda"
- },
- "ro": {
- "∆": "delta",
- "∞": "infinit",
- "♥": "dragoste",
- "&": "si",
- "|": "sau",
- "<": "mai mic ca",
- ">": "mai mare ca",
- "∑": "suma",
- "¤": "valuta"
- },
- "ru": {
- "∆": "delta",
- "∞": "beskonechno",
- "♥": "lubov",
- "&": "i",
- "|": "ili",
- "<": "menshe",
- ">": "bolshe",
- "∑": "summa",
- "¤": "valjuta"
- },
- "sk": {
- "∆": "delta",
- "∞": "nekonecno",
- "♥": "laska",
- "&": "a",
- "|": "alebo",
- "<": "menej ako",
- ">": "viac ako",
- "∑": "sucet",
- "¤": "mena"
- },
- "sr": {},
- "tr": {
- "∆": "delta",
- "∞": "sonsuzluk",
- "♥": "ask",
- "&": "ve",
- "|": "veya",
- "<": "kucuktur",
- ">": "buyuktur",
- "∑": "toplam",
- "¤": "para birimi"
- },
- "uk": {
- "∆": "delta",
- "∞": "bezkinechnist",
- "♥": "lubov",
- "&": "i",
- "|": "abo",
- "<": "menshe",
- ">": "bilshe",
- "∑": "suma",
- "¤": "valjuta"
- },
- "vn": {
- "∆": "delta",
- "∞": "vo cuc",
- "♥": "yeu",
- "&": "va",
- "|": "hoac",
- "<": "nho hon",
- ">": "lon hon",
- "∑": "tong",
- "¤": "tien te"
- }
- };
- var uricChars = [";", "?", ":", "@", "&", "=", "+", "$", ",", "/"].join("");
- var uricNoSlashChars = [";", "?", ":", "@", "&", "=", "+", "$", ","].join("");
- var markChars = [".", "!", "~", "*", "'", "(", ")"].join("");
- var getSlug = function getSlug2(input, opts) {
- var separator = "-";
- var result = "";
- var diatricString = "";
- var convertSymbols = true;
- var customReplacements = {};
- var maintainCase;
- var titleCase;
- var truncate;
- var uricFlag;
- var uricNoSlashFlag;
- var markFlag;
- var symbol;
- var langChar;
- var lucky;
- var i2;
- var ch;
- var l2;
- var lastCharWasSymbol;
- var lastCharWasDiatric;
- var allowedChars = "";
- if (typeof input !== "string") {
- return "";
- }
- if (typeof opts === "string") {
- separator = opts;
- }
- symbol = symbolMap.en;
- langChar = langCharMap.en;
- if (typeof opts === "object") {
- maintainCase = opts.maintainCase || false;
- customReplacements = opts.custom && typeof opts.custom === "object" ? opts.custom : customReplacements;
- truncate = +opts.truncate > 1 && opts.truncate || false;
- uricFlag = opts.uric || false;
- uricNoSlashFlag = opts.uricNoSlash || false;
- markFlag = opts.mark || false;
- convertSymbols = opts.symbols === false || opts.lang === false ? false : true;
- separator = opts.separator || separator;
- if (uricFlag) {
- allowedChars += uricChars;
- }
- if (uricNoSlashFlag) {
- allowedChars += uricNoSlashChars;
- }
- if (markFlag) {
- allowedChars += markChars;
- }
- symbol = opts.lang && symbolMap[opts.lang] && convertSymbols ? symbolMap[opts.lang] : convertSymbols ? symbolMap.en : {};
- langChar = opts.lang && langCharMap[opts.lang] ? langCharMap[opts.lang] : opts.lang === false || opts.lang === true ? {} : langCharMap.en;
- if (opts.titleCase && typeof opts.titleCase.length === "number" && Array.prototype.toString.call(opts.titleCase)) {
- opts.titleCase.forEach(function(v2) {
- customReplacements[v2 + ""] = v2 + "";
- });
- titleCase = true;
- } else {
- titleCase = !!opts.titleCase;
- }
- if (opts.custom && typeof opts.custom.length === "number" && Array.prototype.toString.call(opts.custom)) {
- opts.custom.forEach(function(v2) {
- customReplacements[v2 + ""] = v2 + "";
- });
- }
- Object.keys(customReplacements).forEach(function(v2) {
- var r2;
- if (v2.length > 1) {
- r2 = new RegExp("\\b" + escapeChars(v2) + "\\b", "gi");
- } else {
- r2 = new RegExp(escapeChars(v2), "gi");
- }
- input = input.replace(r2, customReplacements[v2]);
- });
- for (ch in customReplacements) {
- allowedChars += ch;
- }
- }
- allowedChars += separator;
- allowedChars = escapeChars(allowedChars);
- input = input.replace(/(^\s+|\s+$)/g, "");
- lastCharWasSymbol = false;
- lastCharWasDiatric = false;
- for (i2 = 0, l2 = input.length; i2 < l2; i2++) {
- ch = input[i2];
- if (isReplacedCustomChar(ch, customReplacements)) {
- lastCharWasSymbol = false;
- } else if (langChar[ch]) {
- ch = lastCharWasSymbol && langChar[ch].match(/[A-Za-z0-9]/) ? " " + langChar[ch] : langChar[ch];
- lastCharWasSymbol = false;
- } else if (ch in charMap) {
- if (i2 + 1 < l2 && lookAheadCharArray.indexOf(input[i2 + 1]) >= 0) {
- diatricString += ch;
- ch = "";
- } else if (lastCharWasDiatric === true) {
- ch = diatricMap[diatricString] + charMap[ch];
- diatricString = "";
- } else {
- ch = lastCharWasSymbol && charMap[ch].match(/[A-Za-z0-9]/) ? " " + charMap[ch] : charMap[ch];
- }
- lastCharWasSymbol = false;
- lastCharWasDiatric = false;
- } else if (ch in diatricMap) {
- diatricString += ch;
- ch = "";
- if (i2 === l2 - 1) {
- ch = diatricMap[diatricString];
- }
- lastCharWasDiatric = true;
- } else if (
- // process symbol chars
- symbol[ch] && !(uricFlag && uricChars.indexOf(ch) !== -1) && !(uricNoSlashFlag && uricNoSlashChars.indexOf(ch) !== -1)
- ) {
- ch = lastCharWasSymbol || result.substr(-1).match(/[A-Za-z0-9]/) ? separator + symbol[ch] : symbol[ch];
- ch += input[i2 + 1] !== void 0 && input[i2 + 1].match(/[A-Za-z0-9]/) ? separator : "";
- lastCharWasSymbol = true;
- } else {
- if (lastCharWasDiatric === true) {
- ch = diatricMap[diatricString] + ch;
- diatricString = "";
- lastCharWasDiatric = false;
- } else if (lastCharWasSymbol && (/[A-Za-z0-9]/.test(ch) || result.substr(-1).match(/A-Za-z0-9]/))) {
- ch = " " + ch;
- }
- lastCharWasSymbol = false;
- }
- result += ch.replace(new RegExp("[^\\w\\s" + allowedChars + "_-]", "g"), separator);
- }
- if (titleCase) {
- result = result.replace(/(\w)(\S*)/g, function(_2, i3, r2) {
- var j2 = i3.toUpperCase() + (r2 !== null ? r2 : "");
- return Object.keys(customReplacements).indexOf(j2.toLowerCase()) < 0 ? j2 : j2.toLowerCase();
- });
- }
- result = result.replace(/\s+/g, separator).replace(new RegExp("\\" + separator + "+", "g"), separator).replace(new RegExp("(^\\" + separator + "+|\\" + separator + "+$)", "g"), "");
- if (truncate && result.length > truncate) {
- lucky = result.charAt(truncate) === separator;
- result = result.slice(0, truncate);
- if (!lucky) {
- result = result.slice(0, result.lastIndexOf(separator));
- }
- }
- if (!maintainCase && !titleCase) {
- result = result.toLowerCase();
- }
- return result;
- };
- var createSlug = function createSlug2(opts) {
- return function getSlugWithConfig(input) {
- return getSlug(input, opts);
- };
- };
- var escapeChars = function escapeChars2(input) {
- return input.replace(/[-\\^$*+?.()|[\]{}\/]/g, "\\$&");
- };
- var isReplacedCustomChar = function(ch, customReplacements) {
- for (var c2 in customReplacements) {
- if (customReplacements[c2] === ch) {
- return true;
- }
- }
- };
- if (module.exports) {
- module.exports = getSlug;
- module.exports.createSlug = createSlug;
- } else {
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
- return getSlug;
- }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- }
- })();
- }
- )
- /******/
- };
- var __webpack_module_cache__ = {};
- function __webpack_require__(moduleId) {
- var cachedModule = __webpack_module_cache__[moduleId];
- if (cachedModule !== void 0) {
- return cachedModule.exports;
- }
- var module = __webpack_module_cache__[moduleId] = {
- /******/
- // no module.id needed
- /******/
- // no module.loaded needed
- /******/
- exports: {}
- /******/
- };
- __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- return module.exports;
- }
- (() => {
- __webpack_require__.n = (module) => {
- var getter = module && module.__esModule ? (
- /******/
- () => module["default"]
- ) : (
- /******/
- () => module
- );
- __webpack_require__.d(getter, { a: getter });
- return getter;
- };
- })();
- (() => {
- __webpack_require__.d = (exports, definition) => {
- for (var key in definition) {
- if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
- Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
- }
- }
- };
- })();
- (() => {
- __webpack_require__.g = function() {
- if (typeof globalThis === "object")
- return globalThis;
- try {
- return this || new Function("return this")();
- } catch (e2) {
- if (typeof window === "object")
- return window;
- }
- }();
- })();
- (() => {
- __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
- })();
- (() => {
- __webpack_require__.r = (exports) => {
- if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
- }
- Object.defineProperty(exports, "__esModule", { value: true });
- };
- })();
- var __webpack_exports__ = {};
- (() => {
- /*!************************!*\
- !*** ./src/backend.ts ***!
- \************************/
- __webpack_require__.r(__webpack_exports__);
- var _back_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
- /*! @back/index */
- "../app-backend-core/lib/index.js"
- );
- var _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
- /*! @vue-devtools/shared-utils */
- "../shared-utils/lib/index.js"
- );
- _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_ON_SOCKET_READY__(() => {
- const socket = _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_SOCKET__;
- const connectedMessage = () => {
- if (_vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_TOAST__) {
- _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_TOAST__("Remote Devtools Connected", "normal");
- }
- };
- const disconnectedMessage = () => {
- if (_vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_TOAST__) {
- _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_TOAST__("Remote Devtools Disconnected", "error");
- }
- };
- socket.on("connect", () => {
- connectedMessage();
- (0, _back_index__WEBPACK_IMPORTED_MODULE_0__.initBackend)(bridge);
- socket.emit("vue-devtools-init");
- });
- socket.on("disconnect", () => {
- socket.disconnect();
- disconnectedMessage();
- });
- socket.on("vue-devtools-disconnect-backend", () => {
- socket.disconnect();
- });
- const bridge = new _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.Bridge({
- listen(fn) {
- socket.on("vue-message", (data) => fn(data));
- },
- send(data) {
- socket.emit("vue-message", data);
- }
- });
- bridge.on("shutdown", () => {
- socket.disconnect();
- disconnectedMessage();
- });
- });
- })();
- })();
- const _export_sfc = (sfc, props) => {
- const target = sfc.__vccOpts || sfc;
- for (const [key, val] of props) {
- target[key] = val;
- }
- return target;
- };
- const _sfc_main$A = {
- name: "UniGridItem",
- inject: ["grid"],
- props: {
- index: {
- type: Number,
- default: 0
- }
- },
- data() {
- return {
- column: 0,
- showBorder: true,
- square: true,
- highlight: true,
- left: 0,
- top: 0,
- openNum: 2,
- width: 0,
- borderColor: "#e5e5e5"
- };
- },
- created() {
- this.column = this.grid.column;
- this.showBorder = this.grid.showBorder;
- this.square = this.grid.square;
- this.highlight = this.grid.highlight;
- this.top = this.hor === 0 ? this.grid.hor : this.hor;
- this.left = this.ver === 0 ? this.grid.ver : this.ver;
- this.borderColor = this.grid.borderColor;
- this.grid.children.push(this);
- this.width = this.grid.width;
- },
- beforeDestroy() {
- this.grid.children.forEach((item, index) => {
- if (item === this) {
- this.grid.children.splice(index, 1);
- }
- });
- },
- methods: {
- _onClick() {
- this.grid.change({
- detail: {
- index: this.index
- }
- });
- }
- }
- };
- function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
- return $data.width ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- style: vue.normalizeStyle("width:" + $data.width + ";" + ($data.square ? "height:" + $data.width : "")),
- class: "uni-grid-item"
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass([{ "uni-grid-item--border": $data.showBorder, "uni-grid-item--border-top": $data.showBorder && $props.index < $data.column, "uni-highlight": $data.highlight }, "uni-grid-item__box"]),
- style: vue.normalizeStyle({ "border-right-color": $data.borderColor, "border-bottom-color": $data.borderColor, "border-top-color": $data.borderColor }),
- onClick: _cache[0] || (_cache[0] = (...args) => $options._onClick && $options._onClick(...args))
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- )
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true);
- }
- const __easycom_0$7 = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$z], ["__scopeId", "data-v-7a807eb7"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue"]]);
- const ON_SHOW = "onShow";
- const ON_HIDE = "onHide";
- const ON_LOAD = "onLoad";
- const ON_UNLOAD = "onUnload";
- const ON_BACK_PRESS = "onBackPress";
- const ON_NAVIGATION_BAR_BUTTON_TAP = "onNavigationBarButtonTap";
- function formatAppLog(type, filename, ...args) {
- if (uni.__log__) {
- uni.__log__(type, filename, ...args);
- } else {
- console[type].apply(console, [...args, filename]);
- }
- }
- function resolveEasycom(component, easycom) {
- return typeof component === "string" ? easycom : component;
- }
- const createHook = (lifecycle) => (hook, target = vue.getCurrentInstance()) => {
- !vue.isInSSRComponentSetup && vue.injectHook(lifecycle, hook, target);
- };
- const onShow = /* @__PURE__ */ createHook(ON_SHOW);
- const onHide = /* @__PURE__ */ createHook(ON_HIDE);
- const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
- const onUnload = /* @__PURE__ */ createHook(ON_UNLOAD);
- const onBackPress = /* @__PURE__ */ createHook(ON_BACK_PRESS);
- const onNavigationBarButtonTap = /* @__PURE__ */ createHook(ON_NAVIGATION_BAR_BUTTON_TAP);
- const _sfc_main$z = {
- name: "UniGrid",
- emits: ["change"],
- props: {
- // 每列显示个数
- column: {
- type: Number,
- default: 3
- },
- // 是否显示边框
- showBorder: {
- type: Boolean,
- default: true
- },
- // 边框颜色
- borderColor: {
- type: String,
- default: "#D2D2D2"
- },
- // 是否正方形显示,默认为 true
- square: {
- type: Boolean,
- default: true
- },
- highlight: {
- type: Boolean,
- default: true
- }
- },
- provide() {
- return {
- grid: this
- };
- },
- data() {
- const elId = `Uni_${Math.ceil(Math.random() * 1e6).toString(36)}`;
- return {
- elId,
- width: 0
- };
- },
- created() {
- this.children = [];
- },
- mounted() {
- this.$nextTick(() => {
- this.init();
- });
- },
- methods: {
- init() {
- setTimeout(() => {
- this._getSize((width) => {
- this.children.forEach((item, index) => {
- item.width = width;
- });
- });
- }, 50);
- },
- change(e2) {
- this.$emit("change", e2);
- },
- _getSize(fn) {
- uni.createSelectorQuery().in(this).select(`#${this.elId}`).boundingClientRect().exec((ret) => {
- this.width = parseInt((ret[0].width - 1) / this.column) + "px";
- fn(this.width);
- });
- }
- }
- };
- function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-grid-wrap" }, [
- vue.createElementVNode("view", {
- id: $data.elId,
- ref: "uni-grid",
- class: vue.normalizeClass(["uni-grid", { "uni-grid--border": $props.showBorder }]),
- style: vue.normalizeStyle({ "border-left-color": $props.borderColor })
- }, [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ], 14, ["id"])
- ]);
- }
- const __easycom_1$2 = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["render", _sfc_render$y], ["__scopeId", "data-v-07acefee"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-grid/components/uni-grid/uni-grid.vue"]]);
- const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const token = vue.ref(null);
- const user = vue.ref(null);
- const list = vue.ref([
- // {
- // url: '/pages/scan/index',
- // src: '/static/scan_fill.png',
- // text: '扫描入库'
- // },
- {
- url: "/pages/instock/index",
- src: "/static/weigh_fill.png",
- text: "称重"
- },
- {
- url: "/pages/warehouseScan/index",
- src: "/static/houscan.png",
- text: "仓库扫描"
- },
- {
- url: "/pages/printer/index",
- src: "/static/houscan.png",
- text: "打印"
- },
- {
- url: "/pages/scanLotno/index",
- src: "/static/link.png",
- text: "托盘/批次"
- },
- {
- url: "/pages/waybillNo/index",
- src: "/static/link.png",
- text: "库位绑定"
- },
- {
- url: "/pages/waybillDeliveryOrder/index",
- src: "/static/dispatch.png",
- text: "派送单"
- }
- ]);
- onShow(() => {
- token.value = uni.getStorageSync("token");
- user.value = uni.getStorageSync("user");
- formatAppLog("log", "at pages/home/index.vue:60", "show---", { token: token.value, user: user.value });
- });
- const itemClick = (url) => {
- formatAppLog("log", "at pages/home/index.vue:63", url);
- if (token.value) {
- uni.navigateTo({
- url
- });
- } else {
- uni.navigateTo({
- url: "/pages/login/index"
- });
- }
- };
- const change = () => {
- };
- const logout = () => {
- uni.removeStorageSync("token");
- uni.removeStorageSync("user");
- token.value = uni.getStorageSync("token");
- user.value = uni.getStorageSync("user");
- };
- const __returned__ = { token, user, list, itemClick, change, logout };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_grid_item = resolveEasycom(vue.resolveDynamicComponent("uni-grid-item"), __easycom_0$7);
- const _component_uni_grid = resolveEasycom(vue.resolveDynamicComponent("uni-grid"), __easycom_1$2);
- return vue.openBlock(), vue.createElementBlock("view", { class: "warp" }, [
- vue.createVNode(_component_uni_grid, {
- class: "grid",
- column: 3,
- "show-border": false,
- square: false,
- onChange: $setup.change
- }, {
- default: vue.withCtx(() => [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.list, (item, index) => {
- return vue.openBlock(), vue.createBlock(_component_uni_grid_item, {
- index,
- key: index
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", {
- class: "grid-item-box",
- onClick: ($event) => $setup.itemClick(item.url)
- }, [
- vue.createElementVNode("image", {
- class: "image",
- src: item.src,
- mode: "aspectFill"
- }, null, 8, ["src"]),
- vue.createElementVNode(
- "text",
- { class: "text" },
- vue.toDisplayString(item.text),
- 1
- /* TEXT */
- )
- ], 8, ["onClick"])
- ]),
- _: 2
- /* DYNAMIC */
- }, 1032, ["index"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- _: 1
- /* STABLE */
- })
- ]);
- }
- const PagesHomeIndex = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$x], ["__file", "E:/HBuilderProjects/YTAPP/pages/home/index.vue"]]);
- const fontData = [
- {
- "font_class": "arrow-down",
- "unicode": ""
- },
- {
- "font_class": "arrow-left",
- "unicode": ""
- },
- {
- "font_class": "arrow-right",
- "unicode": ""
- },
- {
- "font_class": "arrow-up",
- "unicode": ""
- },
- {
- "font_class": "auth",
- "unicode": ""
- },
- {
- "font_class": "auth-filled",
- "unicode": ""
- },
- {
- "font_class": "back",
- "unicode": ""
- },
- {
- "font_class": "bars",
- "unicode": ""
- },
- {
- "font_class": "calendar",
- "unicode": ""
- },
- {
- "font_class": "calendar-filled",
- "unicode": ""
- },
- {
- "font_class": "camera",
- "unicode": ""
- },
- {
- "font_class": "camera-filled",
- "unicode": ""
- },
- {
- "font_class": "cart",
- "unicode": ""
- },
- {
- "font_class": "cart-filled",
- "unicode": ""
- },
- {
- "font_class": "chat",
- "unicode": ""
- },
- {
- "font_class": "chat-filled",
- "unicode": ""
- },
- {
- "font_class": "chatboxes",
- "unicode": ""
- },
- {
- "font_class": "chatboxes-filled",
- "unicode": ""
- },
- {
- "font_class": "chatbubble",
- "unicode": ""
- },
- {
- "font_class": "chatbubble-filled",
- "unicode": ""
- },
- {
- "font_class": "checkbox",
- "unicode": ""
- },
- {
- "font_class": "checkbox-filled",
- "unicode": ""
- },
- {
- "font_class": "checkmarkempty",
- "unicode": ""
- },
- {
- "font_class": "circle",
- "unicode": ""
- },
- {
- "font_class": "circle-filled",
- "unicode": ""
- },
- {
- "font_class": "clear",
- "unicode": ""
- },
- {
- "font_class": "close",
- "unicode": ""
- },
- {
- "font_class": "closeempty",
- "unicode": ""
- },
- {
- "font_class": "cloud-download",
- "unicode": ""
- },
- {
- "font_class": "cloud-download-filled",
- "unicode": ""
- },
- {
- "font_class": "cloud-upload",
- "unicode": ""
- },
- {
- "font_class": "cloud-upload-filled",
- "unicode": ""
- },
- {
- "font_class": "color",
- "unicode": ""
- },
- {
- "font_class": "color-filled",
- "unicode": ""
- },
- {
- "font_class": "compose",
- "unicode": ""
- },
- {
- "font_class": "contact",
- "unicode": ""
- },
- {
- "font_class": "contact-filled",
- "unicode": ""
- },
- {
- "font_class": "down",
- "unicode": ""
- },
- {
- "font_class": "bottom",
- "unicode": ""
- },
- {
- "font_class": "download",
- "unicode": ""
- },
- {
- "font_class": "download-filled",
- "unicode": ""
- },
- {
- "font_class": "email",
- "unicode": ""
- },
- {
- "font_class": "email-filled",
- "unicode": ""
- },
- {
- "font_class": "eye",
- "unicode": ""
- },
- {
- "font_class": "eye-filled",
- "unicode": ""
- },
- {
- "font_class": "eye-slash",
- "unicode": ""
- },
- {
- "font_class": "eye-slash-filled",
- "unicode": ""
- },
- {
- "font_class": "fire",
- "unicode": ""
- },
- {
- "font_class": "fire-filled",
- "unicode": ""
- },
- {
- "font_class": "flag",
- "unicode": ""
- },
- {
- "font_class": "flag-filled",
- "unicode": ""
- },
- {
- "font_class": "folder-add",
- "unicode": ""
- },
- {
- "font_class": "folder-add-filled",
- "unicode": ""
- },
- {
- "font_class": "font",
- "unicode": ""
- },
- {
- "font_class": "forward",
- "unicode": ""
- },
- {
- "font_class": "gear",
- "unicode": ""
- },
- {
- "font_class": "gear-filled",
- "unicode": ""
- },
- {
- "font_class": "gift",
- "unicode": ""
- },
- {
- "font_class": "gift-filled",
- "unicode": ""
- },
- {
- "font_class": "hand-down",
- "unicode": ""
- },
- {
- "font_class": "hand-down-filled",
- "unicode": ""
- },
- {
- "font_class": "hand-up",
- "unicode": ""
- },
- {
- "font_class": "hand-up-filled",
- "unicode": ""
- },
- {
- "font_class": "headphones",
- "unicode": ""
- },
- {
- "font_class": "heart",
- "unicode": ""
- },
- {
- "font_class": "heart-filled",
- "unicode": ""
- },
- {
- "font_class": "help",
- "unicode": ""
- },
- {
- "font_class": "help-filled",
- "unicode": ""
- },
- {
- "font_class": "home",
- "unicode": ""
- },
- {
- "font_class": "home-filled",
- "unicode": ""
- },
- {
- "font_class": "image",
- "unicode": ""
- },
- {
- "font_class": "image-filled",
- "unicode": ""
- },
- {
- "font_class": "images",
- "unicode": ""
- },
- {
- "font_class": "images-filled",
- "unicode": ""
- },
- {
- "font_class": "info",
- "unicode": ""
- },
- {
- "font_class": "info-filled",
- "unicode": ""
- },
- {
- "font_class": "left",
- "unicode": ""
- },
- {
- "font_class": "link",
- "unicode": ""
- },
- {
- "font_class": "list",
- "unicode": ""
- },
- {
- "font_class": "location",
- "unicode": ""
- },
- {
- "font_class": "location-filled",
- "unicode": ""
- },
- {
- "font_class": "locked",
- "unicode": ""
- },
- {
- "font_class": "locked-filled",
- "unicode": ""
- },
- {
- "font_class": "loop",
- "unicode": ""
- },
- {
- "font_class": "mail-open",
- "unicode": ""
- },
- {
- "font_class": "mail-open-filled",
- "unicode": ""
- },
- {
- "font_class": "map",
- "unicode": ""
- },
- {
- "font_class": "map-filled",
- "unicode": ""
- },
- {
- "font_class": "map-pin",
- "unicode": ""
- },
- {
- "font_class": "map-pin-ellipse",
- "unicode": ""
- },
- {
- "font_class": "medal",
- "unicode": ""
- },
- {
- "font_class": "medal-filled",
- "unicode": ""
- },
- {
- "font_class": "mic",
- "unicode": ""
- },
- {
- "font_class": "mic-filled",
- "unicode": ""
- },
- {
- "font_class": "micoff",
- "unicode": ""
- },
- {
- "font_class": "micoff-filled",
- "unicode": ""
- },
- {
- "font_class": "minus",
- "unicode": ""
- },
- {
- "font_class": "minus-filled",
- "unicode": ""
- },
- {
- "font_class": "more",
- "unicode": ""
- },
- {
- "font_class": "more-filled",
- "unicode": ""
- },
- {
- "font_class": "navigate",
- "unicode": ""
- },
- {
- "font_class": "navigate-filled",
- "unicode": ""
- },
- {
- "font_class": "notification",
- "unicode": ""
- },
- {
- "font_class": "notification-filled",
- "unicode": ""
- },
- {
- "font_class": "paperclip",
- "unicode": ""
- },
- {
- "font_class": "paperplane",
- "unicode": ""
- },
- {
- "font_class": "paperplane-filled",
- "unicode": ""
- },
- {
- "font_class": "person",
- "unicode": ""
- },
- {
- "font_class": "person-filled",
- "unicode": ""
- },
- {
- "font_class": "personadd",
- "unicode": ""
- },
- {
- "font_class": "personadd-filled",
- "unicode": ""
- },
- {
- "font_class": "personadd-filled-copy",
- "unicode": ""
- },
- {
- "font_class": "phone",
- "unicode": ""
- },
- {
- "font_class": "phone-filled",
- "unicode": ""
- },
- {
- "font_class": "plus",
- "unicode": ""
- },
- {
- "font_class": "plus-filled",
- "unicode": ""
- },
- {
- "font_class": "plusempty",
- "unicode": ""
- },
- {
- "font_class": "pulldown",
- "unicode": ""
- },
- {
- "font_class": "pyq",
- "unicode": ""
- },
- {
- "font_class": "qq",
- "unicode": ""
- },
- {
- "font_class": "redo",
- "unicode": ""
- },
- {
- "font_class": "redo-filled",
- "unicode": ""
- },
- {
- "font_class": "refresh",
- "unicode": ""
- },
- {
- "font_class": "refresh-filled",
- "unicode": ""
- },
- {
- "font_class": "refreshempty",
- "unicode": ""
- },
- {
- "font_class": "reload",
- "unicode": ""
- },
- {
- "font_class": "right",
- "unicode": ""
- },
- {
- "font_class": "scan",
- "unicode": ""
- },
- {
- "font_class": "search",
- "unicode": ""
- },
- {
- "font_class": "settings",
- "unicode": ""
- },
- {
- "font_class": "settings-filled",
- "unicode": ""
- },
- {
- "font_class": "shop",
- "unicode": ""
- },
- {
- "font_class": "shop-filled",
- "unicode": ""
- },
- {
- "font_class": "smallcircle",
- "unicode": ""
- },
- {
- "font_class": "smallcircle-filled",
- "unicode": ""
- },
- {
- "font_class": "sound",
- "unicode": ""
- },
- {
- "font_class": "sound-filled",
- "unicode": ""
- },
- {
- "font_class": "spinner-cycle",
- "unicode": ""
- },
- {
- "font_class": "staff",
- "unicode": ""
- },
- {
- "font_class": "staff-filled",
- "unicode": ""
- },
- {
- "font_class": "star",
- "unicode": ""
- },
- {
- "font_class": "star-filled",
- "unicode": ""
- },
- {
- "font_class": "starhalf",
- "unicode": ""
- },
- {
- "font_class": "trash",
- "unicode": ""
- },
- {
- "font_class": "trash-filled",
- "unicode": ""
- },
- {
- "font_class": "tune",
- "unicode": ""
- },
- {
- "font_class": "tune-filled",
- "unicode": ""
- },
- {
- "font_class": "undo",
- "unicode": ""
- },
- {
- "font_class": "undo-filled",
- "unicode": ""
- },
- {
- "font_class": "up",
- "unicode": ""
- },
- {
- "font_class": "top",
- "unicode": ""
- },
- {
- "font_class": "upload",
- "unicode": ""
- },
- {
- "font_class": "upload-filled",
- "unicode": ""
- },
- {
- "font_class": "videocam",
- "unicode": ""
- },
- {
- "font_class": "videocam-filled",
- "unicode": ""
- },
- {
- "font_class": "vip",
- "unicode": ""
- },
- {
- "font_class": "vip-filled",
- "unicode": ""
- },
- {
- "font_class": "wallet",
- "unicode": ""
- },
- {
- "font_class": "wallet-filled",
- "unicode": ""
- },
- {
- "font_class": "weibo",
- "unicode": ""
- },
- {
- "font_class": "weixin",
- "unicode": ""
- }
- ];
- const getVal = (val) => {
- const reg = /^[0-9]*$/g;
- return typeof val === "number" || reg.test(val) ? val + "px" : val;
- };
- const _sfc_main$x = {
- name: "UniIcons",
- emits: ["click"],
- props: {
- type: {
- type: String,
- default: ""
- },
- color: {
- type: String,
- default: "#333333"
- },
- size: {
- type: [Number, String],
- default: 16
- },
- customPrefix: {
- type: String,
- default: ""
- },
- fontFamily: {
- type: String,
- default: ""
- }
- },
- data() {
- return {
- icons: fontData
- };
- },
- computed: {
- unicode() {
- let code = this.icons.find((v2) => v2.font_class === this.type);
- if (code) {
- return code.unicode;
- }
- return "";
- },
- iconSize() {
- return getVal(this.size);
- },
- styleObj() {
- if (this.fontFamily !== "") {
- return `color: ${this.color}; font-size: ${this.iconSize}; font-family: ${this.fontFamily};`;
- }
- return `color: ${this.color}; font-size: ${this.iconSize};`;
- }
- },
- methods: {
- _onClick() {
- this.$emit("click");
- }
- }
- };
- function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock(
- "text",
- {
- style: vue.normalizeStyle($options.styleObj),
- class: vue.normalizeClass(["uni-icons", ["uniui-" + $props.type, $props.customPrefix, $props.customPrefix ? $props.type : ""]]),
- onClick: _cache[0] || (_cache[0] = (...args) => $options._onClick && $options._onClick(...args))
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- );
- }
- const __easycom_4 = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$w], ["__scopeId", "data-v-d31e1c47"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"]]);
- function obj2strClass(obj) {
- let classess = "";
- for (let key in obj) {
- const val = obj[key];
- if (val) {
- classess += `${key} `;
- }
- }
- return classess;
- }
- function obj2strStyle(obj) {
- let style = "";
- for (let key in obj) {
- const val = obj[key];
- style += `${key}:${val};`;
- }
- return style;
- }
- const _sfc_main$w = {
- name: "uni-easyinput",
- emits: ["click", "iconClick", "update:modelValue", "input", "focus", "blur", "confirm", "clear", "eyes", "change", "keyboardheightchange"],
- model: {
- prop: "modelValue",
- event: "update:modelValue"
- },
- options: {
- virtualHost: true
- },
- inject: {
- form: {
- from: "uniForm",
- default: null
- },
- formItem: {
- from: "uniFormItem",
- default: null
- }
- },
- props: {
- name: String,
- value: [Number, String],
- modelValue: [Number, String],
- type: {
- type: String,
- default: "text"
- },
- clearable: {
- type: Boolean,
- default: true
- },
- autoHeight: {
- type: Boolean,
- default: false
- },
- placeholder: {
- type: String,
- default: " "
- },
- placeholderStyle: String,
- focus: {
- type: Boolean,
- default: false
- },
- disabled: {
- type: Boolean,
- default: false
- },
- maxlength: {
- type: [Number, String],
- default: 140
- },
- confirmType: {
- type: String,
- default: "done"
- },
- clearSize: {
- type: [Number, String],
- default: 24
- },
- inputBorder: {
- type: Boolean,
- default: true
- },
- prefixIcon: {
- type: String,
- default: ""
- },
- suffixIcon: {
- type: String,
- default: ""
- },
- trim: {
- type: [Boolean, String],
- default: false
- },
- cursorSpacing: {
- type: Number,
- default: 0
- },
- passwordIcon: {
- type: Boolean,
- default: true
- },
- primaryColor: {
- type: String,
- default: "#2979ff"
- },
- styles: {
- type: Object,
- default() {
- return {
- color: "#333",
- backgroundColor: "#fff",
- disableColor: "#F7F6F6",
- borderColor: "#e5e5e5"
- };
- }
- },
- errorMessage: {
- type: [String, Boolean],
- default: ""
- }
- },
- data() {
- return {
- focused: false,
- val: "",
- showMsg: "",
- border: false,
- isFirstBorder: false,
- showClearIcon: false,
- showPassword: false,
- focusShow: false,
- localMsg: "",
- isEnter: false
- // 用于判断当前是否是使用回车操作
- };
- },
- computed: {
- // 输入框内是否有值
- isVal() {
- const val = this.val;
- if (val || val === 0) {
- return true;
- }
- return false;
- },
- msg() {
- return this.localMsg || this.errorMessage;
- },
- // 因为uniapp的input组件的maxlength组件必须要数值,这里转为数值,用户可以传入字符串数值
- inputMaxlength() {
- return Number(this.maxlength);
- },
- // 处理外层样式的style
- boxStyle() {
- return `color:${this.inputBorder && this.msg ? "#e43d33" : this.styles.color};`;
- },
- // input 内容的类和样式处理
- inputContentClass() {
- return obj2strClass({
- "is-input-border": this.inputBorder,
- "is-input-error-border": this.inputBorder && this.msg,
- "is-textarea": this.type === "textarea",
- "is-disabled": this.disabled,
- "is-focused": this.focusShow
- });
- },
- inputContentStyle() {
- const focusColor = this.focusShow ? this.primaryColor : this.styles.borderColor;
- const borderColor = this.inputBorder && this.msg ? "#dd524d" : focusColor;
- return obj2strStyle({
- "border-color": borderColor || "#e5e5e5",
- "background-color": this.disabled ? this.styles.disableColor : this.styles.backgroundColor
- });
- },
- // input右侧样式
- inputStyle() {
- const paddingRight = this.type === "password" || this.clearable || this.prefixIcon ? "" : "10px";
- return obj2strStyle({
- "padding-right": paddingRight,
- "padding-left": this.prefixIcon ? "" : "10px"
- });
- }
- },
- watch: {
- value(newVal) {
- this.val = newVal;
- },
- modelValue(newVal) {
- this.val = newVal;
- },
- focus(newVal) {
- this.$nextTick(() => {
- this.focused = this.focus;
- this.focusShow = this.focus;
- });
- }
- },
- created() {
- this.init();
- if (this.form && this.formItem) {
- this.$watch("formItem.errMsg", (newVal) => {
- this.localMsg = newVal;
- });
- }
- },
- mounted() {
- this.$nextTick(() => {
- this.focused = this.focus;
- this.focusShow = this.focus;
- });
- },
- methods: {
- /**
- * 初始化变量值
- */
- init() {
- if (this.value || this.value === 0) {
- this.val = this.value;
- } else if (this.modelValue || this.modelValue === 0 || this.modelValue === "") {
- this.val = this.modelValue;
- } else {
- this.val = null;
- }
- },
- /**
- * 点击图标时触发
- * @param {Object} type
- */
- onClickIcon(type) {
- this.$emit("iconClick", type);
- },
- /**
- * 显示隐藏内容,密码框时生效
- */
- onEyes() {
- this.showPassword = !this.showPassword;
- this.$emit("eyes", this.showPassword);
- },
- /**
- * 输入时触发
- * @param {Object} event
- */
- onInput(event) {
- let value = event.detail.value;
- if (this.trim) {
- if (typeof this.trim === "boolean" && this.trim) {
- value = this.trimStr(value);
- }
- if (typeof this.trim === "string") {
- value = this.trimStr(value, this.trim);
- }
- }
- if (this.errMsg)
- this.errMsg = "";
- this.val = value;
- this.$emit("input", value);
- this.$emit("update:modelValue", value);
- },
- /**
- * 外部调用方法
- * 获取焦点时触发
- * @param {Object} event
- */
- onFocus() {
- this.$nextTick(() => {
- this.focused = true;
- });
- this.$emit("focus", null);
- },
- _Focus(event) {
- this.focusShow = true;
- this.$emit("focus", event);
- },
- /**
- * 外部调用方法
- * 失去焦点时触发
- * @param {Object} event
- */
- onBlur() {
- this.focused = false;
- this.$emit("focus", null);
- },
- _Blur(event) {
- event.detail.value;
- this.focusShow = false;
- this.$emit("blur", event);
- if (this.isEnter === false) {
- this.$emit("change", this.val);
- }
- if (this.form && this.formItem) {
- const { validateTrigger } = this.form;
- if (validateTrigger === "blur") {
- this.formItem.onFieldChange();
- }
- }
- },
- /**
- * 按下键盘的发送键
- * @param {Object} e
- */
- onConfirm(e2) {
- this.$emit("confirm", this.val);
- this.isEnter = true;
- this.$emit("change", this.val);
- this.$nextTick(() => {
- this.isEnter = false;
- });
- },
- /**
- * 清理内容
- * @param {Object} event
- */
- onClear(event) {
- this.val = "";
- this.$emit("input", "");
- this.$emit("update:modelValue", "");
- this.$emit("clear");
- },
- /**
- * 键盘高度发生变化的时候触发此事件
- * 兼容性:微信小程序2.7.0+、App 3.1.0+
- * @param {Object} event
- */
- onkeyboardheightchange(event) {
- this.$emit("keyboardheightchange", event);
- },
- /**
- * 去除空格
- */
- trimStr(str, pos = "both") {
- if (pos === "both") {
- return str.trim();
- } else if (pos === "left") {
- return str.trimLeft();
- } else if (pos === "right") {
- return str.trimRight();
- } else if (pos === "start") {
- return str.trimStart();
- } else if (pos === "end") {
- return str.trimEnd();
- } else if (pos === "all") {
- return str.replace(/\s+/g, "");
- } else if (pos === "none") {
- return str;
- }
- return str;
- }
- }
- };
- function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["uni-easyinput", { "uni-easyinput-error": $options.msg }]),
- style: vue.normalizeStyle($options.boxStyle)
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-easyinput__content", $options.inputContentClass]),
- style: vue.normalizeStyle($options.inputContentStyle)
- },
- [
- $props.prefixIcon ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: "content-clear-icon",
- type: $props.prefixIcon,
- color: "#c0c4cc",
- onClick: _cache[0] || (_cache[0] = ($event) => $options.onClickIcon("prefix")),
- size: "22"
- }, null, 8, ["type"])) : vue.createCommentVNode("v-if", true),
- $props.type === "textarea" ? (vue.openBlock(), vue.createElementBlock("textarea", {
- key: 1,
- class: vue.normalizeClass(["uni-easyinput__content-textarea", { "input-padding": $props.inputBorder }]),
- name: $props.name,
- value: $data.val,
- placeholder: $props.placeholder,
- placeholderStyle: $props.placeholderStyle,
- disabled: $props.disabled,
- "placeholder-class": "uni-easyinput__placeholder-class",
- maxlength: $options.inputMaxlength,
- focus: $data.focused,
- autoHeight: $props.autoHeight,
- "cursor-spacing": $props.cursorSpacing,
- onInput: _cache[1] || (_cache[1] = (...args) => $options.onInput && $options.onInput(...args)),
- onBlur: _cache[2] || (_cache[2] = (...args) => $options._Blur && $options._Blur(...args)),
- onFocus: _cache[3] || (_cache[3] = (...args) => $options._Focus && $options._Focus(...args)),
- onConfirm: _cache[4] || (_cache[4] = (...args) => $options.onConfirm && $options.onConfirm(...args)),
- onKeyboardheightchange: _cache[5] || (_cache[5] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args))
- }, null, 42, ["name", "value", "placeholder", "placeholderStyle", "disabled", "maxlength", "focus", "autoHeight", "cursor-spacing"])) : (vue.openBlock(), vue.createElementBlock("input", {
- key: 2,
- type: $props.type === "password" ? "text" : $props.type,
- class: "uni-easyinput__content-input",
- style: vue.normalizeStyle($options.inputStyle),
- name: $props.name,
- value: $data.val,
- password: !$data.showPassword && $props.type === "password",
- placeholder: $props.placeholder,
- placeholderStyle: $props.placeholderStyle,
- "placeholder-class": "uni-easyinput__placeholder-class",
- disabled: $props.disabled,
- maxlength: $options.inputMaxlength,
- focus: $data.focused,
- confirmType: $props.confirmType,
- "cursor-spacing": $props.cursorSpacing,
- onFocus: _cache[6] || (_cache[6] = (...args) => $options._Focus && $options._Focus(...args)),
- onBlur: _cache[7] || (_cache[7] = (...args) => $options._Blur && $options._Blur(...args)),
- onInput: _cache[8] || (_cache[8] = (...args) => $options.onInput && $options.onInput(...args)),
- onConfirm: _cache[9] || (_cache[9] = (...args) => $options.onConfirm && $options.onConfirm(...args)),
- onKeyboardheightchange: _cache[10] || (_cache[10] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args))
- }, null, 44, ["type", "name", "value", "password", "placeholder", "placeholderStyle", "disabled", "maxlength", "focus", "confirmType", "cursor-spacing"])),
- $props.type === "password" && $props.passwordIcon ? (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 3 },
- [
- vue.createCommentVNode(" 开启密码时显示小眼睛 "),
- $options.isVal ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: vue.normalizeClass(["content-clear-icon", { "is-textarea-icon": $props.type === "textarea" }]),
- type: $data.showPassword ? "eye-slash-filled" : "eye-filled",
- size: 22,
- color: $data.focusShow ? $props.primaryColor : "#c0c4cc",
- onClick: $options.onEyes
- }, null, 8, ["class", "type", "color", "onClick"])) : vue.createCommentVNode("v-if", true)
- ],
- 64
- /* STABLE_FRAGMENT */
- )) : $props.suffixIcon ? (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 4 },
- [
- $props.suffixIcon ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: "content-clear-icon",
- type: $props.suffixIcon,
- color: "#c0c4cc",
- onClick: _cache[11] || (_cache[11] = ($event) => $options.onClickIcon("suffix")),
- size: "22"
- }, null, 8, ["type"])) : vue.createCommentVNode("v-if", true)
- ],
- 64
- /* STABLE_FRAGMENT */
- )) : (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 5 },
- [
- $props.clearable && $options.isVal && !$props.disabled && $props.type !== "textarea" ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: vue.normalizeClass(["content-clear-icon", { "is-textarea-icon": $props.type === "textarea" }]),
- type: "clear",
- size: $props.clearSize,
- color: $options.msg ? "#dd524d" : $data.focusShow ? $props.primaryColor : "#c0c4cc",
- onClick: $options.onClear
- }, null, 8, ["class", "size", "color", "onClick"])) : vue.createCommentVNode("v-if", true)
- ],
- 64
- /* STABLE_FRAGMENT */
- )),
- vue.renderSlot(_ctx.$slots, "right", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- )
- ],
- 6
- /* CLASS, STYLE */
- );
- }
- const __easycom_1$1 = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$v], ["__scopeId", "data-v-09fd5285"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue"]]);
- const _sfc_main$v = {
- name: "uniFormsItem",
- options: {
- virtualHost: true
- },
- provide() {
- return {
- uniFormItem: this
- };
- },
- inject: {
- form: {
- from: "uniForm",
- default: null
- }
- },
- props: {
- // 表单校验规则
- rules: {
- type: Array,
- default() {
- return null;
- }
- },
- // 表单域的属性名,在使用校验规则时必填
- name: {
- type: [String, Array],
- default: ""
- },
- required: {
- type: Boolean,
- default: false
- },
- label: {
- type: String,
- default: ""
- },
- // label的宽度
- labelWidth: {
- type: [String, Number],
- default: ""
- },
- // label 居中方式,默认 left 取值 left/center/right
- labelAlign: {
- type: String,
- default: ""
- },
- // 强制显示错误信息
- errorMessage: {
- type: [String, Boolean],
- default: ""
- },
- // 1.4.0 弃用,统一使用 form 的校验时机
- // validateTrigger: {
- // type: String,
- // default: ''
- // },
- // 1.4.0 弃用,统一使用 form 的label 位置
- // labelPosition: {
- // type: String,
- // default: ''
- // },
- // 1.4.0 以下属性已经废弃,请使用 #label 插槽代替
- leftIcon: String,
- iconColor: {
- type: String,
- default: "#606266"
- }
- },
- data() {
- return {
- errMsg: "",
- userRules: null,
- localLabelAlign: "left",
- localLabelWidth: "70px",
- localLabelPos: "left",
- border: false,
- isFirstBorder: false
- };
- },
- computed: {
- // 处理错误信息
- msg() {
- return this.errorMessage || this.errMsg;
- }
- },
- watch: {
- // 规则发生变化通知子组件更新
- "form.formRules"(val) {
- this.init();
- },
- "form.labelWidth"(val) {
- this.localLabelWidth = this._labelWidthUnit(val);
- },
- "form.labelPosition"(val) {
- this.localLabelPos = this._labelPosition();
- },
- "form.labelAlign"(val) {
- }
- },
- created() {
- this.init(true);
- if (this.name && this.form) {
- this.$watch(
- () => {
- const val = this.form._getDataValue(this.name, this.form.localData);
- return val;
- },
- (value, oldVal) => {
- const isEqual2 = this.form._isEqual(value, oldVal);
- if (!isEqual2) {
- const val = this.itemSetValue(value);
- this.onFieldChange(val, false);
- }
- },
- {
- immediate: false
- }
- );
- }
- },
- unmounted() {
- this.__isUnmounted = true;
- this.unInit();
- },
- methods: {
- /**
- * 外部调用方法
- * 设置规则 ,主要用于小程序自定义检验规则
- * @param {Array} rules 规则源数据
- */
- setRules(rules = null) {
- this.userRules = rules;
- this.init(false);
- },
- // 兼容老版本表单组件
- setValue() {
- },
- /**
- * 外部调用方法
- * 校验数据
- * @param {any} value 需要校验的数据
- * @param {boolean} 是否立即校验
- * @return {Array|null} 校验内容
- */
- async onFieldChange(value, formtrigger = true) {
- const {
- formData,
- localData,
- errShowType,
- validateCheck,
- validateTrigger,
- _isRequiredField,
- _realName
- } = this.form;
- const name = _realName(this.name);
- if (!value) {
- value = this.form.formData[name];
- }
- const ruleLen = this.itemRules.rules && this.itemRules.rules.length;
- if (!this.validator || !ruleLen || ruleLen === 0)
- return;
- const isRequiredField2 = _isRequiredField(this.itemRules.rules || []);
- let result = null;
- if (validateTrigger === "bind" || formtrigger) {
- result = await this.validator.validateUpdate(
- {
- [name]: value
- },
- formData
- );
- if (!isRequiredField2 && (value === void 0 || value === "")) {
- result = null;
- }
- if (result && result.errorMessage) {
- if (errShowType === "undertext") {
- this.errMsg = !result ? "" : result.errorMessage;
- }
- if (errShowType === "toast") {
- uni.showToast({
- title: result.errorMessage || "校验错误",
- icon: "none"
- });
- }
- if (errShowType === "modal") {
- uni.showModal({
- title: "提示",
- content: result.errorMessage || "校验错误"
- });
- }
- } else {
- this.errMsg = "";
- }
- validateCheck(result ? result : null);
- } else {
- this.errMsg = "";
- }
- return result ? result : null;
- },
- /**
- * 初始组件数据
- */
- init(type = false) {
- const {
- validator,
- formRules,
- childrens,
- formData,
- localData,
- _realName,
- labelWidth,
- _getDataValue,
- _setDataValue
- } = this.form || {};
- this.localLabelAlign = this._justifyContent();
- this.localLabelWidth = this._labelWidthUnit(labelWidth);
- this.localLabelPos = this._labelPosition();
- this.form && type && childrens.push(this);
- if (!validator || !formRules)
- return;
- if (!this.form.isFirstBorder) {
- this.form.isFirstBorder = true;
- this.isFirstBorder = true;
- }
- if (this.group) {
- if (!this.group.isFirstBorder) {
- this.group.isFirstBorder = true;
- this.isFirstBorder = true;
- }
- }
- this.border = this.form.border;
- const name = _realName(this.name);
- const itemRule = this.userRules || this.rules;
- if (typeof formRules === "object" && itemRule) {
- formRules[name] = {
- rules: itemRule
- };
- validator.updateSchema(formRules);
- }
- const itemRules = formRules[name] || {};
- this.itemRules = itemRules;
- this.validator = validator;
- this.itemSetValue(_getDataValue(this.name, localData));
- },
- unInit() {
- if (this.form) {
- const {
- childrens,
- formData,
- _realName
- } = this.form;
- childrens.forEach((item, index) => {
- if (item === this) {
- this.form.childrens.splice(index, 1);
- delete formData[_realName(item.name)];
- }
- });
- }
- },
- // 设置item 的值
- itemSetValue(value) {
- const name = this.form._realName(this.name);
- const rules = this.itemRules.rules || [];
- const val = this.form._getValue(name, value, rules);
- this.form._setDataValue(name, this.form.formData, val);
- return val;
- },
- /**
- * 移除该表单项的校验结果
- */
- clearValidate() {
- this.errMsg = "";
- },
- // 是否显示星号
- _isRequired() {
- return this.required;
- },
- // 处理对齐方式
- _justifyContent() {
- if (this.form) {
- const {
- labelAlign
- } = this.form;
- let labelAli = this.labelAlign ? this.labelAlign : labelAlign;
- if (labelAli === "left")
- return "flex-start";
- if (labelAli === "center")
- return "center";
- if (labelAli === "right")
- return "flex-end";
- }
- return "flex-start";
- },
- // 处理 label宽度单位 ,继承父元素的值
- _labelWidthUnit(labelWidth) {
- return this.num2px(this.labelWidth ? this.labelWidth : labelWidth || (this.label ? 70 : "auto"));
- },
- // 处理 label 位置
- _labelPosition() {
- if (this.form)
- return this.form.labelPosition || "left";
- return "left";
- },
- /**
- * 触发时机
- * @param {Object} rule 当前规则内时机
- * @param {Object} itemRlue 当前组件时机
- * @param {Object} parentRule 父组件时机
- */
- isTrigger(rule, itemRlue, parentRule) {
- if (rule === "submit" || !rule) {
- if (rule === void 0) {
- if (itemRlue !== "bind") {
- if (!itemRlue) {
- return parentRule === "" ? "bind" : "submit";
- }
- return "submit";
- }
- return "bind";
- }
- return "submit";
- }
- return "bind";
- },
- num2px(num) {
- if (typeof num === "number") {
- return `${num}px`;
- }
- return num;
- }
- }
- };
- function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["uni-forms-item", ["is-direction-" + $data.localLabelPos, $data.border ? "uni-forms-item--border" : "", $data.border && $data.isFirstBorder ? "is-first-border" : ""]])
- },
- [
- vue.renderSlot(_ctx.$slots, "label", {}, () => [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-forms-item__label", { "no-label": !$props.label && !$props.required }]),
- style: vue.normalizeStyle({ width: $data.localLabelWidth, justifyContent: $data.localLabelAlign })
- },
- [
- $props.required ? (vue.openBlock(), vue.createElementBlock("text", {
- key: 0,
- class: "is-required"
- }, "*")) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString($props.label),
- 1
- /* TEXT */
- )
- ],
- 6
- /* CLASS, STYLE */
- )
- ], true),
- vue.createElementVNode("view", { class: "uni-forms-item__content" }, [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-forms-item__error", { "msg--active": $options.msg }])
- },
- [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString($options.msg),
- 1
- /* TEXT */
- )
- ],
- 2
- /* CLASS */
- )
- ])
- ],
- 2
- /* CLASS */
- );
- }
- const __easycom_2$1 = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$u], ["__scopeId", "data-v-462874dd"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue"]]);
- const pages = [
- {
- path: "pages/home/index",
- style: {
- navigationBarTitleText: "英途仓库"
- }
- },
- {
- path: "pages/instock/index",
- style: {
- navigationBarTitleText: "称重",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "历史"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/instock/instockLog",
- style: {
- navigationBarTitleText: "录入历史"
- }
- },
- {
- path: "pages/profile/index",
- style: {
- navigationBarTitleText: "我的"
- }
- },
- {
- path: "pages/login/index",
- style: {
- navigationBarTitleText: "登录"
- }
- },
- {
- path: "pages/order/index",
- style: {
- navigationBarTitleText: "ORDER"
- }
- },
- {
- path: "pages/scanLotno/index",
- style: {
- navigationBarTitleText: "托盘/批次",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "历史"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/scanLotno/lotnoLog",
- style: {
- navigationBarTitleText: "录入历史"
- }
- },
- {
- path: "pages/scanLotno/waybillsList",
- style: {
- navigationBarTitleText: "运单列表"
- }
- },
- {
- path: "pages/warehouseScan/index",
- style: {
- navigationBarTitleText: "仓库扫描",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "历史"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/warehouseScan/warehouseLog",
- style: {
- navigationBarTitleText: "录入历史"
- }
- },
- {
- path: "pages/waybillNo/index",
- style: {
- navigationBarTitleText: "库位绑定",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "历史"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/waybillNo/waybillNoLog",
- style: {
- navigationBarTitleText: "录入历史"
- }
- },
- {
- path: "pages/waybillDeliveryOrder/index",
- style: {
- navigationBarTitleText: "派送单",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "筛选"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/waybillDeliveryOrder/orderInfo",
- style: {
- navigationBarTitleText: "派送详情"
- }
- },
- {
- path: "pages/printer/index",
- style: {
- navigationBarTitleText: "打印"
- }
- }
- ];
- const globalStyle = {
- navigationBarTextStyle: "black",
- navigationBarTitleText: "uni-app",
- navigationBarBackgroundColor: "#F8F8F8",
- backgroundColor: "#F8F8F8"
- };
- const tabBar = {
- color: "#7A7E83",
- selectedColor: "#007AFF",
- borderStyle: "black",
- backgroundColor: "#F8F8F8",
- list: [
- {
- pagePath: "pages/home/index",
- iconPath: "static/home.png",
- selectedIconPath: "static/home_fill.png",
- text: "首页"
- },
- {
- pagePath: "pages/profile/index",
- iconPath: "static/people.png",
- selectedIconPath: "static/people_fill.png",
- text: "我的"
- }
- ]
- };
- const uniIdRouter = {};
- const e = {
- pages,
- globalStyle,
- tabBar,
- uniIdRouter
- };
- var define_process_env_UNI_SECURE_NETWORK_CONFIG_default = [];
- function t$2(e2) {
- return e2 && e2.__esModule && Object.prototype.hasOwnProperty.call(e2, "default") ? e2.default : e2;
- }
- function n(e2, t2, n2) {
- return e2(n2 = { path: t2, exports: {}, require: function(e3, t3) {
- return function() {
- throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");
- }(null == t3 && n2.path);
- } }, n2.exports), n2.exports;
- }
- var s = n(function(e2, t2) {
- var n2;
- e2.exports = (n2 = n2 || function(e3, t3) {
- var n3 = Object.create || /* @__PURE__ */ function() {
- function e4() {
- }
- return function(t4) {
- var n4;
- return e4.prototype = t4, n4 = new e4(), e4.prototype = null, n4;
- };
- }(), s2 = {}, r2 = s2.lib = {}, i2 = r2.Base = { extend: function(e4) {
- var t4 = n3(this);
- return e4 && t4.mixIn(e4), t4.hasOwnProperty("init") && this.init !== t4.init || (t4.init = function() {
- t4.$super.init.apply(this, arguments);
- }), t4.init.prototype = t4, t4.$super = this, t4;
- }, create: function() {
- var e4 = this.extend();
- return e4.init.apply(e4, arguments), e4;
- }, init: function() {
- }, mixIn: function(e4) {
- for (var t4 in e4)
- e4.hasOwnProperty(t4) && (this[t4] = e4[t4]);
- e4.hasOwnProperty("toString") && (this.toString = e4.toString);
- }, clone: function() {
- return this.init.prototype.extend(this);
- } }, o2 = r2.WordArray = i2.extend({ init: function(e4, n4) {
- e4 = this.words = e4 || [], this.sigBytes = n4 != t3 ? n4 : 4 * e4.length;
- }, toString: function(e4) {
- return (e4 || c2).stringify(this);
- }, concat: function(e4) {
- var t4 = this.words, n4 = e4.words, s3 = this.sigBytes, r3 = e4.sigBytes;
- if (this.clamp(), s3 % 4)
- for (var i3 = 0; i3 < r3; i3++) {
- var o3 = n4[i3 >>> 2] >>> 24 - i3 % 4 * 8 & 255;
- t4[s3 + i3 >>> 2] |= o3 << 24 - (s3 + i3) % 4 * 8;
- }
- else
- for (i3 = 0; i3 < r3; i3 += 4)
- t4[s3 + i3 >>> 2] = n4[i3 >>> 2];
- return this.sigBytes += r3, this;
- }, clamp: function() {
- var t4 = this.words, n4 = this.sigBytes;
- t4[n4 >>> 2] &= 4294967295 << 32 - n4 % 4 * 8, t4.length = e3.ceil(n4 / 4);
- }, clone: function() {
- var e4 = i2.clone.call(this);
- return e4.words = this.words.slice(0), e4;
- }, random: function(t4) {
- for (var n4, s3 = [], r3 = function(t5) {
- t5 = t5;
- var n5 = 987654321, s4 = 4294967295;
- return function() {
- var r4 = ((n5 = 36969 * (65535 & n5) + (n5 >> 16) & s4) << 16) + (t5 = 18e3 * (65535 & t5) + (t5 >> 16) & s4) & s4;
- return r4 /= 4294967296, (r4 += 0.5) * (e3.random() > 0.5 ? 1 : -1);
- };
- }, i3 = 0; i3 < t4; i3 += 4) {
- var a3 = r3(4294967296 * (n4 || e3.random()));
- n4 = 987654071 * a3(), s3.push(4294967296 * a3() | 0);
- }
- return new o2.init(s3, t4);
- } }), a2 = s2.enc = {}, c2 = a2.Hex = { stringify: function(e4) {
- for (var t4 = e4.words, n4 = e4.sigBytes, s3 = [], r3 = 0; r3 < n4; r3++) {
- var i3 = t4[r3 >>> 2] >>> 24 - r3 % 4 * 8 & 255;
- s3.push((i3 >>> 4).toString(16)), s3.push((15 & i3).toString(16));
- }
- return s3.join("");
- }, parse: function(e4) {
- for (var t4 = e4.length, n4 = [], s3 = 0; s3 < t4; s3 += 2)
- n4[s3 >>> 3] |= parseInt(e4.substr(s3, 2), 16) << 24 - s3 % 8 * 4;
- return new o2.init(n4, t4 / 2);
- } }, u2 = a2.Latin1 = { stringify: function(e4) {
- for (var t4 = e4.words, n4 = e4.sigBytes, s3 = [], r3 = 0; r3 < n4; r3++) {
- var i3 = t4[r3 >>> 2] >>> 24 - r3 % 4 * 8 & 255;
- s3.push(String.fromCharCode(i3));
- }
- return s3.join("");
- }, parse: function(e4) {
- for (var t4 = e4.length, n4 = [], s3 = 0; s3 < t4; s3++)
- n4[s3 >>> 2] |= (255 & e4.charCodeAt(s3)) << 24 - s3 % 4 * 8;
- return new o2.init(n4, t4);
- } }, l2 = a2.Utf8 = { stringify: function(e4) {
- try {
- return decodeURIComponent(escape(u2.stringify(e4)));
- } catch (e5) {
- throw new Error("Malformed UTF-8 data");
- }
- }, parse: function(e4) {
- return u2.parse(unescape(encodeURIComponent(e4)));
- } }, h2 = r2.BufferedBlockAlgorithm = i2.extend({ reset: function() {
- this._data = new o2.init(), this._nDataBytes = 0;
- }, _append: function(e4) {
- "string" == typeof e4 && (e4 = l2.parse(e4)), this._data.concat(e4), this._nDataBytes += e4.sigBytes;
- }, _process: function(t4) {
- var n4 = this._data, s3 = n4.words, r3 = n4.sigBytes, i3 = this.blockSize, a3 = r3 / (4 * i3), c3 = (a3 = t4 ? e3.ceil(a3) : e3.max((0 | a3) - this._minBufferSize, 0)) * i3, u3 = e3.min(4 * c3, r3);
- if (c3) {
- for (var l3 = 0; l3 < c3; l3 += i3)
- this._doProcessBlock(s3, l3);
- var h3 = s3.splice(0, c3);
- n4.sigBytes -= u3;
- }
- return new o2.init(h3, u3);
- }, clone: function() {
- var e4 = i2.clone.call(this);
- return e4._data = this._data.clone(), e4;
- }, _minBufferSize: 0 });
- r2.Hasher = h2.extend({ cfg: i2.extend(), init: function(e4) {
- this.cfg = this.cfg.extend(e4), this.reset();
- }, reset: function() {
- h2.reset.call(this), this._doReset();
- }, update: function(e4) {
- return this._append(e4), this._process(), this;
- }, finalize: function(e4) {
- return e4 && this._append(e4), this._doFinalize();
- }, blockSize: 16, _createHelper: function(e4) {
- return function(t4, n4) {
- return new e4.init(n4).finalize(t4);
- };
- }, _createHmacHelper: function(e4) {
- return function(t4, n4) {
- return new d2.HMAC.init(e4, n4).finalize(t4);
- };
- } });
- var d2 = s2.algo = {};
- return s2;
- }(Math), n2);
- }), r = s, i = (n(function(e2, t2) {
- var n2;
- e2.exports = (n2 = r, function(e3) {
- var t3 = n2, s2 = t3.lib, r2 = s2.WordArray, i2 = s2.Hasher, o2 = t3.algo, a2 = [];
- !function() {
- for (var t4 = 0; t4 < 64; t4++)
- a2[t4] = 4294967296 * e3.abs(e3.sin(t4 + 1)) | 0;
- }();
- var c2 = o2.MD5 = i2.extend({ _doReset: function() {
- this._hash = new r2.init([1732584193, 4023233417, 2562383102, 271733878]);
- }, _doProcessBlock: function(e4, t4) {
- for (var n3 = 0; n3 < 16; n3++) {
- var s3 = t4 + n3, r3 = e4[s3];
- e4[s3] = 16711935 & (r3 << 8 | r3 >>> 24) | 4278255360 & (r3 << 24 | r3 >>> 8);
- }
- var i3 = this._hash.words, o3 = e4[t4 + 0], c3 = e4[t4 + 1], p2 = e4[t4 + 2], f2 = e4[t4 + 3], g2 = e4[t4 + 4], m2 = e4[t4 + 5], y2 = e4[t4 + 6], _2 = e4[t4 + 7], w2 = e4[t4 + 8], v2 = e4[t4 + 9], I2 = e4[t4 + 10], S2 = e4[t4 + 11], b2 = e4[t4 + 12], k2 = e4[t4 + 13], A2 = e4[t4 + 14], C2 = e4[t4 + 15], P2 = i3[0], T2 = i3[1], x2 = i3[2], O2 = i3[3];
- P2 = u2(P2, T2, x2, O2, o3, 7, a2[0]), O2 = u2(O2, P2, T2, x2, c3, 12, a2[1]), x2 = u2(x2, O2, P2, T2, p2, 17, a2[2]), T2 = u2(T2, x2, O2, P2, f2, 22, a2[3]), P2 = u2(P2, T2, x2, O2, g2, 7, a2[4]), O2 = u2(O2, P2, T2, x2, m2, 12, a2[5]), x2 = u2(x2, O2, P2, T2, y2, 17, a2[6]), T2 = u2(T2, x2, O2, P2, _2, 22, a2[7]), P2 = u2(P2, T2, x2, O2, w2, 7, a2[8]), O2 = u2(O2, P2, T2, x2, v2, 12, a2[9]), x2 = u2(x2, O2, P2, T2, I2, 17, a2[10]), T2 = u2(T2, x2, O2, P2, S2, 22, a2[11]), P2 = u2(P2, T2, x2, O2, b2, 7, a2[12]), O2 = u2(O2, P2, T2, x2, k2, 12, a2[13]), x2 = u2(x2, O2, P2, T2, A2, 17, a2[14]), P2 = l2(P2, T2 = u2(T2, x2, O2, P2, C2, 22, a2[15]), x2, O2, c3, 5, a2[16]), O2 = l2(O2, P2, T2, x2, y2, 9, a2[17]), x2 = l2(x2, O2, P2, T2, S2, 14, a2[18]), T2 = l2(T2, x2, O2, P2, o3, 20, a2[19]), P2 = l2(P2, T2, x2, O2, m2, 5, a2[20]), O2 = l2(O2, P2, T2, x2, I2, 9, a2[21]), x2 = l2(x2, O2, P2, T2, C2, 14, a2[22]), T2 = l2(T2, x2, O2, P2, g2, 20, a2[23]), P2 = l2(P2, T2, x2, O2, v2, 5, a2[24]), O2 = l2(O2, P2, T2, x2, A2, 9, a2[25]), x2 = l2(x2, O2, P2, T2, f2, 14, a2[26]), T2 = l2(T2, x2, O2, P2, w2, 20, a2[27]), P2 = l2(P2, T2, x2, O2, k2, 5, a2[28]), O2 = l2(O2, P2, T2, x2, p2, 9, a2[29]), x2 = l2(x2, O2, P2, T2, _2, 14, a2[30]), P2 = h2(P2, T2 = l2(T2, x2, O2, P2, b2, 20, a2[31]), x2, O2, m2, 4, a2[32]), O2 = h2(O2, P2, T2, x2, w2, 11, a2[33]), x2 = h2(x2, O2, P2, T2, S2, 16, a2[34]), T2 = h2(T2, x2, O2, P2, A2, 23, a2[35]), P2 = h2(P2, T2, x2, O2, c3, 4, a2[36]), O2 = h2(O2, P2, T2, x2, g2, 11, a2[37]), x2 = h2(x2, O2, P2, T2, _2, 16, a2[38]), T2 = h2(T2, x2, O2, P2, I2, 23, a2[39]), P2 = h2(P2, T2, x2, O2, k2, 4, a2[40]), O2 = h2(O2, P2, T2, x2, o3, 11, a2[41]), x2 = h2(x2, O2, P2, T2, f2, 16, a2[42]), T2 = h2(T2, x2, O2, P2, y2, 23, a2[43]), P2 = h2(P2, T2, x2, O2, v2, 4, a2[44]), O2 = h2(O2, P2, T2, x2, b2, 11, a2[45]), x2 = h2(x2, O2, P2, T2, C2, 16, a2[46]), P2 = d2(P2, T2 = h2(T2, x2, O2, P2, p2, 23, a2[47]), x2, O2, o3, 6, a2[48]), O2 = d2(O2, P2, T2, x2, _2, 10, a2[49]), x2 = d2(x2, O2, P2, T2, A2, 15, a2[50]), T2 = d2(T2, x2, O2, P2, m2, 21, a2[51]), P2 = d2(P2, T2, x2, O2, b2, 6, a2[52]), O2 = d2(O2, P2, T2, x2, f2, 10, a2[53]), x2 = d2(x2, O2, P2, T2, I2, 15, a2[54]), T2 = d2(T2, x2, O2, P2, c3, 21, a2[55]), P2 = d2(P2, T2, x2, O2, w2, 6, a2[56]), O2 = d2(O2, P2, T2, x2, C2, 10, a2[57]), x2 = d2(x2, O2, P2, T2, y2, 15, a2[58]), T2 = d2(T2, x2, O2, P2, k2, 21, a2[59]), P2 = d2(P2, T2, x2, O2, g2, 6, a2[60]), O2 = d2(O2, P2, T2, x2, S2, 10, a2[61]), x2 = d2(x2, O2, P2, T2, p2, 15, a2[62]), T2 = d2(T2, x2, O2, P2, v2, 21, a2[63]), i3[0] = i3[0] + P2 | 0, i3[1] = i3[1] + T2 | 0, i3[2] = i3[2] + x2 | 0, i3[3] = i3[3] + O2 | 0;
- }, _doFinalize: function() {
- var t4 = this._data, n3 = t4.words, s3 = 8 * this._nDataBytes, r3 = 8 * t4.sigBytes;
- n3[r3 >>> 5] |= 128 << 24 - r3 % 32;
- var i3 = e3.floor(s3 / 4294967296), o3 = s3;
- n3[15 + (r3 + 64 >>> 9 << 4)] = 16711935 & (i3 << 8 | i3 >>> 24) | 4278255360 & (i3 << 24 | i3 >>> 8), n3[14 + (r3 + 64 >>> 9 << 4)] = 16711935 & (o3 << 8 | o3 >>> 24) | 4278255360 & (o3 << 24 | o3 >>> 8), t4.sigBytes = 4 * (n3.length + 1), this._process();
- for (var a3 = this._hash, c3 = a3.words, u3 = 0; u3 < 4; u3++) {
- var l3 = c3[u3];
- c3[u3] = 16711935 & (l3 << 8 | l3 >>> 24) | 4278255360 & (l3 << 24 | l3 >>> 8);
- }
- return a3;
- }, clone: function() {
- var e4 = i2.clone.call(this);
- return e4._hash = this._hash.clone(), e4;
- } });
- function u2(e4, t4, n3, s3, r3, i3, o3) {
- var a3 = e4 + (t4 & n3 | ~t4 & s3) + r3 + o3;
- return (a3 << i3 | a3 >>> 32 - i3) + t4;
- }
- function l2(e4, t4, n3, s3, r3, i3, o3) {
- var a3 = e4 + (t4 & s3 | n3 & ~s3) + r3 + o3;
- return (a3 << i3 | a3 >>> 32 - i3) + t4;
- }
- function h2(e4, t4, n3, s3, r3, i3, o3) {
- var a3 = e4 + (t4 ^ n3 ^ s3) + r3 + o3;
- return (a3 << i3 | a3 >>> 32 - i3) + t4;
- }
- function d2(e4, t4, n3, s3, r3, i3, o3) {
- var a3 = e4 + (n3 ^ (t4 | ~s3)) + r3 + o3;
- return (a3 << i3 | a3 >>> 32 - i3) + t4;
- }
- t3.MD5 = i2._createHelper(c2), t3.HmacMD5 = i2._createHmacHelper(c2);
- }(Math), n2.MD5);
- }), n(function(e2, t2) {
- var n2;
- e2.exports = (n2 = r, void function() {
- var e3 = n2, t3 = e3.lib.Base, s2 = e3.enc.Utf8;
- e3.algo.HMAC = t3.extend({ init: function(e4, t4) {
- e4 = this._hasher = new e4.init(), "string" == typeof t4 && (t4 = s2.parse(t4));
- var n3 = e4.blockSize, r2 = 4 * n3;
- t4.sigBytes > r2 && (t4 = e4.finalize(t4)), t4.clamp();
- for (var i2 = this._oKey = t4.clone(), o2 = this._iKey = t4.clone(), a2 = i2.words, c2 = o2.words, u2 = 0; u2 < n3; u2++)
- a2[u2] ^= 1549556828, c2[u2] ^= 909522486;
- i2.sigBytes = o2.sigBytes = r2, this.reset();
- }, reset: function() {
- var e4 = this._hasher;
- e4.reset(), e4.update(this._iKey);
- }, update: function(e4) {
- return this._hasher.update(e4), this;
- }, finalize: function(e4) {
- var t4 = this._hasher, n3 = t4.finalize(e4);
- return t4.reset(), t4.finalize(this._oKey.clone().concat(n3));
- } });
- }());
- }), n(function(e2, t2) {
- e2.exports = r.HmacMD5;
- })), o = n(function(e2, t2) {
- e2.exports = r.enc.Utf8;
- }), a = n(function(e2, t2) {
- var n2;
- e2.exports = (n2 = r, function() {
- var e3 = n2, t3 = e3.lib.WordArray;
- function s2(e4, n3, s3) {
- for (var r2 = [], i2 = 0, o2 = 0; o2 < n3; o2++)
- if (o2 % 4) {
- var a2 = s3[e4.charCodeAt(o2 - 1)] << o2 % 4 * 2, c2 = s3[e4.charCodeAt(o2)] >>> 6 - o2 % 4 * 2;
- r2[i2 >>> 2] |= (a2 | c2) << 24 - i2 % 4 * 8, i2++;
- }
- return t3.create(r2, i2);
- }
- e3.enc.Base64 = { stringify: function(e4) {
- var t4 = e4.words, n3 = e4.sigBytes, s3 = this._map;
- e4.clamp();
- for (var r2 = [], i2 = 0; i2 < n3; i2 += 3)
- for (var o2 = (t4[i2 >>> 2] >>> 24 - i2 % 4 * 8 & 255) << 16 | (t4[i2 + 1 >>> 2] >>> 24 - (i2 + 1) % 4 * 8 & 255) << 8 | t4[i2 + 2 >>> 2] >>> 24 - (i2 + 2) % 4 * 8 & 255, a2 = 0; a2 < 4 && i2 + 0.75 * a2 < n3; a2++)
- r2.push(s3.charAt(o2 >>> 6 * (3 - a2) & 63));
- var c2 = s3.charAt(64);
- if (c2)
- for (; r2.length % 4; )
- r2.push(c2);
- return r2.join("");
- }, parse: function(e4) {
- var t4 = e4.length, n3 = this._map, r2 = this._reverseMap;
- if (!r2) {
- r2 = this._reverseMap = [];
- for (var i2 = 0; i2 < n3.length; i2++)
- r2[n3.charCodeAt(i2)] = i2;
- }
- var o2 = n3.charAt(64);
- if (o2) {
- var a2 = e4.indexOf(o2);
- -1 !== a2 && (t4 = a2);
- }
- return s2(e4, t4, r2);
- }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" };
- }(), n2.enc.Base64);
- });
- const c = "FUNCTION", u = "OBJECT", l = "CLIENT_DB", h = "pending", d = "fulfilled", p = "rejected";
- function f(e2) {
- return Object.prototype.toString.call(e2).slice(8, -1).toLowerCase();
- }
- function g(e2) {
- return "object" === f(e2);
- }
- function m(e2) {
- return "function" == typeof e2;
- }
- function y(e2) {
- return function() {
- try {
- return e2.apply(e2, arguments);
- } catch (e3) {
- console.error(e3);
- }
- };
- }
- const _ = "REJECTED", w = "NOT_PENDING";
- class v {
- constructor({ createPromise: e2, retryRule: t2 = _ } = {}) {
- this.createPromise = e2, this.status = null, this.promise = null, this.retryRule = t2;
- }
- get needRetry() {
- if (!this.status)
- return true;
- switch (this.retryRule) {
- case _:
- return this.status === p;
- case w:
- return this.status !== h;
- }
- }
- exec() {
- return this.needRetry ? (this.status = h, this.promise = this.createPromise().then((e2) => (this.status = d, Promise.resolve(e2)), (e2) => (this.status = p, Promise.reject(e2))), this.promise) : this.promise;
- }
- }
- function I(e2) {
- return e2 && "string" == typeof e2 ? JSON.parse(e2) : e2;
- }
- const S = true, b = "app", A = I(define_process_env_UNI_SECURE_NETWORK_CONFIG_default), C = b, P = I(""), T = I("[]") || [];
- let O = "";
- try {
- O = "__UNI__EE98A34";
- } catch (e2) {
- }
- let E = {};
- function L(e2, t2 = {}) {
- var n2, s2;
- return n2 = E, s2 = e2, Object.prototype.hasOwnProperty.call(n2, s2) || (E[e2] = t2), E[e2];
- }
- E = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {};
- const R = ["invoke", "success", "fail", "complete"], U = L("_globalUniCloudInterceptor");
- function N(e2, t2) {
- U[e2] || (U[e2] = {}), g(t2) && Object.keys(t2).forEach((n2) => {
- R.indexOf(n2) > -1 && function(e3, t3, n3) {
- let s2 = U[e3][t3];
- s2 || (s2 = U[e3][t3] = []), -1 === s2.indexOf(n3) && m(n3) && s2.push(n3);
- }(e2, n2, t2[n2]);
- });
- }
- function D(e2, t2) {
- U[e2] || (U[e2] = {}), g(t2) ? Object.keys(t2).forEach((n2) => {
- R.indexOf(n2) > -1 && function(e3, t3, n3) {
- const s2 = U[e3][t3];
- if (!s2)
- return;
- const r2 = s2.indexOf(n3);
- r2 > -1 && s2.splice(r2, 1);
- }(e2, n2, t2[n2]);
- }) : delete U[e2];
- }
- function M(e2, t2) {
- return e2 && 0 !== e2.length ? e2.reduce((e3, n2) => e3.then(() => n2(t2)), Promise.resolve()) : Promise.resolve();
- }
- function q(e2, t2) {
- return U[e2] && U[e2][t2] || [];
- }
- function F(e2) {
- N("callObject", e2);
- }
- const K = L("_globalUniCloudListener"), j = "response", $ = "needLogin", B = "refreshToken", W = "clientdb", H = "cloudfunction", J = "cloudobject";
- function z(e2) {
- return K[e2] || (K[e2] = []), K[e2];
- }
- function V(e2, t2) {
- const n2 = z(e2);
- n2.includes(t2) || n2.push(t2);
- }
- function G(e2, t2) {
- const n2 = z(e2), s2 = n2.indexOf(t2);
- -1 !== s2 && n2.splice(s2, 1);
- }
- function Y(e2, t2) {
- const n2 = z(e2);
- for (let e3 = 0; e3 < n2.length; e3++) {
- (0, n2[e3])(t2);
- }
- }
- let Q, X = false;
- function Z() {
- return Q || (Q = new Promise((e2) => {
- X && e2(), function t2() {
- if ("function" == typeof getCurrentPages) {
- const t3 = getCurrentPages();
- t3 && t3[0] && (X = true, e2());
- }
- X || setTimeout(() => {
- t2();
- }, 30);
- }();
- }), Q);
- }
- function ee(e2) {
- const t2 = {};
- for (const n2 in e2) {
- const s2 = e2[n2];
- m(s2) && (t2[n2] = y(s2));
- }
- return t2;
- }
- class te extends Error {
- constructor(e2) {
- super(e2.message), this.errMsg = e2.message || e2.errMsg || "unknown system error", this.code = this.errCode = e2.code || e2.errCode || "SYSTEM_ERROR", this.errSubject = this.subject = e2.subject || e2.errSubject, this.cause = e2.cause, this.requestId = e2.requestId;
- }
- toJson(e2 = 0) {
- if (!(e2 >= 10))
- return e2++, { errCode: this.errCode, errMsg: this.errMsg, errSubject: this.errSubject, cause: this.cause && this.cause.toJson ? this.cause.toJson(e2) : this.cause };
- }
- }
- var ne = { request: (e2) => uni.request(e2), uploadFile: (e2) => uni.uploadFile(e2), setStorageSync: (e2, t2) => uni.setStorageSync(e2, t2), getStorageSync: (e2) => uni.getStorageSync(e2), removeStorageSync: (e2) => uni.removeStorageSync(e2), clearStorageSync: () => uni.clearStorageSync(), connectSocket: (e2) => uni.connectSocket(e2) };
- function se(e2) {
- return e2 && se(e2.__v_raw) || e2;
- }
- function re() {
- return { token: ne.getStorageSync("uni_id_token") || ne.getStorageSync("uniIdToken"), tokenExpired: ne.getStorageSync("uni_id_token_expired") };
- }
- function ie({ token: e2, tokenExpired: t2 } = {}) {
- e2 && ne.setStorageSync("uni_id_token", e2), t2 && ne.setStorageSync("uni_id_token_expired", t2);
- }
- let oe, ae;
- function ce() {
- return oe || (oe = uni.getSystemInfoSync()), oe;
- }
- function ue() {
- let e2, t2;
- try {
- if (uni.getLaunchOptionsSync) {
- if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1)
- return;
- const { scene: n2, channel: s2 } = uni.getLaunchOptionsSync();
- e2 = s2, t2 = n2;
- }
- } catch (e3) {
- }
- return { channel: e2, scene: t2 };
- }
- let le = {};
- function he() {
- const e2 = uni.getLocale && uni.getLocale() || "en";
- if (ae)
- return { ...le, ...ae, locale: e2, LOCALE: e2 };
- const t2 = ce(), { deviceId: n2, osName: s2, uniPlatform: r2, appId: i2 } = t2, o2 = ["appId", "appLanguage", "appName", "appVersion", "appVersionCode", "appWgtVersion", "browserName", "browserVersion", "deviceBrand", "deviceId", "deviceModel", "deviceType", "osName", "osVersion", "romName", "romVersion", "ua", "hostName", "hostVersion", "uniPlatform", "uniRuntimeVersion", "uniRuntimeVersionCode", "uniCompilerVersion", "uniCompilerVersionCode"];
- for (const e3 in t2)
- Object.hasOwnProperty.call(t2, e3) && -1 === o2.indexOf(e3) && delete t2[e3];
- return ae = { PLATFORM: r2, OS: s2, APPID: i2, DEVICEID: n2, ...ue(), ...t2 }, { ...le, ...ae, locale: e2, LOCALE: e2 };
- }
- var de = { sign: function(e2, t2) {
- let n2 = "";
- return Object.keys(e2).sort().forEach(function(t3) {
- e2[t3] && (n2 = n2 + "&" + t3 + "=" + e2[t3]);
- }), n2 = n2.slice(1), i(n2, t2).toString();
- }, wrappedRequest: function(e2, t2) {
- return new Promise((n2, s2) => {
- t2(Object.assign(e2, { complete(e3) {
- e3 || (e3 = {});
- const t3 = e3.data && e3.data.header && e3.data.header["x-serverless-request-id"] || e3.header && e3.header["request-id"];
- if (!e3.statusCode || e3.statusCode >= 400) {
- const n3 = e3.data && e3.data.error && e3.data.error.code || "SYS_ERR", r3 = e3.data && e3.data.error && e3.data.error.message || e3.errMsg || "request:fail";
- return s2(new te({ code: n3, message: r3, requestId: t3 }));
- }
- const r2 = e3.data;
- if (r2.error)
- return s2(new te({ code: r2.error.code, message: r2.error.message, requestId: t3 }));
- r2.result = r2.data, r2.requestId = t3, delete r2.data, n2(r2);
- } }));
- });
- }, toBase64: function(e2) {
- return a.stringify(o.parse(e2));
- } };
- var pe = class {
- constructor(e2) {
- ["spaceId", "clientSecret"].forEach((t2) => {
- if (!Object.prototype.hasOwnProperty.call(e2, t2))
- throw new Error(`${t2} required`);
- }), this.config = Object.assign({}, { endpoint: 0 === e2.spaceId.indexOf("mp-") ? "https://api.next.bspapp.com" : "https://api.bspapp.com" }, e2), this.config.provider = "aliyun", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.config.accessTokenKey = "access_token_" + this.config.spaceId, this.adapter = ne, this._getAccessTokenPromiseHub = new v({ createPromise: () => this.requestAuth(this.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then((e3) => {
- if (!e3.result || !e3.result.accessToken)
- throw new te({ code: "AUTH_FAILED", message: "获取accessToken失败" });
- this.setAccessToken(e3.result.accessToken);
- }), retryRule: w });
- }
- get hasAccessToken() {
- return !!this.accessToken;
- }
- setAccessToken(e2) {
- this.accessToken = e2;
- }
- requestWrapped(e2) {
- return de.wrappedRequest(e2, this.adapter.request);
- }
- requestAuth(e2) {
- return this.requestWrapped(e2);
- }
- request(e2, t2) {
- return Promise.resolve().then(() => this.hasAccessToken ? t2 ? this.requestWrapped(e2) : this.requestWrapped(e2).catch((t3) => new Promise((e3, n2) => {
- !t3 || "GATEWAY_INVALID_TOKEN" !== t3.code && "InvalidParameter.InvalidToken" !== t3.code ? n2(t3) : e3();
- }).then(() => this.getAccessToken()).then(() => {
- const t4 = this.rebuildRequest(e2);
- return this.request(t4, true);
- })) : this.getAccessToken().then(() => {
- const t3 = this.rebuildRequest(e2);
- return this.request(t3, true);
- }));
- }
- rebuildRequest(e2) {
- const t2 = Object.assign({}, e2);
- return t2.data.token = this.accessToken, t2.header["x-basement-token"] = this.accessToken, t2.header["x-serverless-sign"] = de.sign(t2.data, this.config.clientSecret), t2;
- }
- setupRequest(e2, t2) {
- const n2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now() }), s2 = { "Content-Type": "application/json" };
- return "auth" !== t2 && (n2.token = this.accessToken, s2["x-basement-token"] = this.accessToken), s2["x-serverless-sign"] = de.sign(n2, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n2, dataType: "json", header: s2 };
- }
- getAccessToken() {
- return this._getAccessTokenPromiseHub.exec();
- }
- async authorize() {
- await this.getAccessToken();
- }
- callFunction(e2) {
- const t2 = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e2.name, functionArgs: e2.data || {} }) };
- return this.request({ ...this.setupRequest(t2), timeout: e2.timeout });
- }
- getOSSUploadOptionsFromPath(e2) {
- const t2 = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e2) };
- return this.request(this.setupRequest(t2));
- }
- uploadFileToOSS({ url: e2, formData: t2, name: n2, filePath: s2, fileType: r2, onUploadProgress: i2 }) {
- return new Promise((o2, a2) => {
- const c2 = this.adapter.uploadFile({ url: e2, formData: t2, name: n2, filePath: s2, fileType: r2, header: { "X-OSS-server-side-encrpytion": "AES256" }, success(e3) {
- e3 && e3.statusCode < 400 ? o2(e3) : a2(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }));
- }, fail(e3) {
- a2(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" }));
- } });
- "function" == typeof i2 && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((e3) => {
- i2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend });
- });
- });
- }
- reportOSSUpload(e2) {
- const t2 = { method: "serverless.file.resource.report", params: JSON.stringify(e2) };
- return this.request(this.setupRequest(t2));
- }
- async uploadFile({ filePath: e2, cloudPath: t2, fileType: n2 = "image", cloudPathAsRealPath: s2 = false, onUploadProgress: r2, config: i2 }) {
- if ("string" !== f(t2))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" });
- if (!(t2 = t2.trim()))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath不可为空" });
- if (/:\/\//.test(t2))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath不合法" });
- const o2 = i2 && i2.envType || this.config.envType;
- if (s2 && ("/" !== t2[0] && (t2 = "/" + t2), t2.indexOf("\\") > -1))
- throw new te({ code: "INVALID_PARAM", message: "使用cloudPath作为路径时,cloudPath不可包含“\\”" });
- const a2 = (await this.getOSSUploadOptionsFromPath({ env: o2, filename: s2 ? t2.split("/").pop() : t2, fileId: s2 ? t2 : void 0 })).result, c2 = "https://" + a2.cdnDomain + "/" + a2.ossPath, { securityToken: u2, accessKeyId: l2, signature: h2, host: d2, ossPath: p2, id: g2, policy: m2, ossCallbackUrl: y2 } = a2, _2 = { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: l2, Signature: h2, host: d2, id: g2, key: p2, policy: m2, success_action_status: 200 };
- if (u2 && (_2["x-oss-security-token"] = u2), y2) {
- const e3 = JSON.stringify({ callbackUrl: y2, callbackBody: JSON.stringify({ fileId: g2, spaceId: this.config.spaceId }), callbackBodyType: "application/json" });
- _2.callback = de.toBase64(e3);
- }
- const w2 = { url: "https://" + a2.host, formData: _2, fileName: "file", name: "file", filePath: e2, fileType: n2 };
- if (await this.uploadFileToOSS(Object.assign({}, w2, { onUploadProgress: r2 })), y2)
- return { success: true, filePath: e2, fileID: c2 };
- if ((await this.reportOSSUpload({ id: g2 })).success)
- return { success: true, filePath: e2, fileID: c2 };
- throw new te({ code: "UPLOAD_FAILED", message: "文件上传失败" });
- }
- getTempFileURL({ fileList: e2 } = {}) {
- return new Promise((t2, n2) => {
- Array.isArray(e2) && 0 !== e2.length || n2(new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" })), t2({ fileList: e2.map((e3) => ({ fileID: e3, tempFileURL: e3 })) });
- });
- }
- async getFileInfo({ fileList: e2 } = {}) {
- if (!Array.isArray(e2) || 0 === e2.length)
- throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" });
- const t2 = { method: "serverless.file.resource.info", params: JSON.stringify({ id: e2.map((e3) => e3.split("?")[0]).join(",") }) };
- return { fileList: (await this.request(this.setupRequest(t2))).result };
- }
- };
- var fe = { init(e2) {
- const t2 = new pe(e2), n2 = { signInAnonymously: function() {
- return t2.authorize();
- }, getLoginState: function() {
- return Promise.resolve(false);
- } };
- return t2.auth = function() {
- return n2;
- }, t2.customAuth = t2.auth, t2;
- } };
- const ge = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:";
- var me;
- !function(e2) {
- e2.local = "local", e2.none = "none", e2.session = "session";
- }(me || (me = {}));
- var ye = function() {
- }, _e = n(function(e2, t2) {
- var n2;
- e2.exports = (n2 = r, function(e3) {
- var t3 = n2, s2 = t3.lib, r2 = s2.WordArray, i2 = s2.Hasher, o2 = t3.algo, a2 = [], c2 = [];
- !function() {
- function t4(t5) {
- for (var n4 = e3.sqrt(t5), s4 = 2; s4 <= n4; s4++)
- if (!(t5 % s4))
- return false;
- return true;
- }
- function n3(e4) {
- return 4294967296 * (e4 - (0 | e4)) | 0;
- }
- for (var s3 = 2, r3 = 0; r3 < 64; )
- t4(s3) && (r3 < 8 && (a2[r3] = n3(e3.pow(s3, 0.5))), c2[r3] = n3(e3.pow(s3, 1 / 3)), r3++), s3++;
- }();
- var u2 = [], l2 = o2.SHA256 = i2.extend({ _doReset: function() {
- this._hash = new r2.init(a2.slice(0));
- }, _doProcessBlock: function(e4, t4) {
- for (var n3 = this._hash.words, s3 = n3[0], r3 = n3[1], i3 = n3[2], o3 = n3[3], a3 = n3[4], l3 = n3[5], h2 = n3[6], d2 = n3[7], p2 = 0; p2 < 64; p2++) {
- if (p2 < 16)
- u2[p2] = 0 | e4[t4 + p2];
- else {
- var f2 = u2[p2 - 15], g2 = (f2 << 25 | f2 >>> 7) ^ (f2 << 14 | f2 >>> 18) ^ f2 >>> 3, m2 = u2[p2 - 2], y2 = (m2 << 15 | m2 >>> 17) ^ (m2 << 13 | m2 >>> 19) ^ m2 >>> 10;
- u2[p2] = g2 + u2[p2 - 7] + y2 + u2[p2 - 16];
- }
- var _2 = s3 & r3 ^ s3 & i3 ^ r3 & i3, w2 = (s3 << 30 | s3 >>> 2) ^ (s3 << 19 | s3 >>> 13) ^ (s3 << 10 | s3 >>> 22), v2 = d2 + ((a3 << 26 | a3 >>> 6) ^ (a3 << 21 | a3 >>> 11) ^ (a3 << 7 | a3 >>> 25)) + (a3 & l3 ^ ~a3 & h2) + c2[p2] + u2[p2];
- d2 = h2, h2 = l3, l3 = a3, a3 = o3 + v2 | 0, o3 = i3, i3 = r3, r3 = s3, s3 = v2 + (w2 + _2) | 0;
- }
- n3[0] = n3[0] + s3 | 0, n3[1] = n3[1] + r3 | 0, n3[2] = n3[2] + i3 | 0, n3[3] = n3[3] + o3 | 0, n3[4] = n3[4] + a3 | 0, n3[5] = n3[5] + l3 | 0, n3[6] = n3[6] + h2 | 0, n3[7] = n3[7] + d2 | 0;
- }, _doFinalize: function() {
- var t4 = this._data, n3 = t4.words, s3 = 8 * this._nDataBytes, r3 = 8 * t4.sigBytes;
- return n3[r3 >>> 5] |= 128 << 24 - r3 % 32, n3[14 + (r3 + 64 >>> 9 << 4)] = e3.floor(s3 / 4294967296), n3[15 + (r3 + 64 >>> 9 << 4)] = s3, t4.sigBytes = 4 * n3.length, this._process(), this._hash;
- }, clone: function() {
- var e4 = i2.clone.call(this);
- return e4._hash = this._hash.clone(), e4;
- } });
- t3.SHA256 = i2._createHelper(l2), t3.HmacSHA256 = i2._createHmacHelper(l2);
- }(Math), n2.SHA256);
- }), we = _e, ve = n(function(e2, t2) {
- e2.exports = r.HmacSHA256;
- });
- const Ie = () => {
- let e2;
- if (!Promise) {
- e2 = () => {
- }, e2.promise = {};
- const t3 = () => {
- throw new te({ message: 'Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.' });
- };
- return Object.defineProperty(e2.promise, "then", { get: t3 }), Object.defineProperty(e2.promise, "catch", { get: t3 }), e2;
- }
- const t2 = new Promise((t3, n2) => {
- e2 = (e3, s2) => e3 ? n2(e3) : t3(s2);
- });
- return e2.promise = t2, e2;
- };
- function Se(e2) {
- return void 0 === e2;
- }
- function be(e2) {
- return "[object Null]" === Object.prototype.toString.call(e2);
- }
- var ke;
- function Ae(e2) {
- const t2 = (n2 = e2, "[object Array]" === Object.prototype.toString.call(n2) ? e2 : [e2]);
- var n2;
- for (const e3 of t2) {
- const { isMatch: t3, genAdapter: n3, runtime: s2 } = e3;
- if (t3())
- return { adapter: n3(), runtime: s2 };
- }
- }
- !function(e2) {
- e2.WEB = "web", e2.WX_MP = "wx_mp";
- }(ke || (ke = {}));
- const Ce = { adapter: null, runtime: void 0 }, Pe = ["anonymousUuidKey"];
- class Te extends ye {
- constructor() {
- super(), Ce.adapter.root.tcbObject || (Ce.adapter.root.tcbObject = {});
- }
- setItem(e2, t2) {
- Ce.adapter.root.tcbObject[e2] = t2;
- }
- getItem(e2) {
- return Ce.adapter.root.tcbObject[e2];
- }
- removeItem(e2) {
- delete Ce.adapter.root.tcbObject[e2];
- }
- clear() {
- delete Ce.adapter.root.tcbObject;
- }
- }
- function xe(e2, t2) {
- switch (e2) {
- case "local":
- return t2.localStorage || new Te();
- case "none":
- return new Te();
- default:
- return t2.sessionStorage || new Te();
- }
- }
- class Oe {
- constructor(e2) {
- if (!this._storage) {
- this._persistence = Ce.adapter.primaryStorage || e2.persistence, this._storage = xe(this._persistence, Ce.adapter);
- const t2 = `access_token_${e2.env}`, n2 = `access_token_expire_${e2.env}`, s2 = `refresh_token_${e2.env}`, r2 = `anonymous_uuid_${e2.env}`, i2 = `login_type_${e2.env}`, o2 = `user_info_${e2.env}`;
- this.keys = { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2, anonymousUuidKey: r2, loginTypeKey: i2, userInfoKey: o2 };
- }
- }
- updatePersistence(e2) {
- if (e2 === this._persistence)
- return;
- const t2 = "local" === this._persistence;
- this._persistence = e2;
- const n2 = xe(e2, Ce.adapter);
- for (const e3 in this.keys) {
- const s2 = this.keys[e3];
- if (t2 && Pe.includes(e3))
- continue;
- const r2 = this._storage.getItem(s2);
- Se(r2) || be(r2) || (n2.setItem(s2, r2), this._storage.removeItem(s2));
- }
- this._storage = n2;
- }
- setStore(e2, t2, n2) {
- if (!this._storage)
- return;
- const s2 = { version: n2 || "localCachev1", content: t2 }, r2 = JSON.stringify(s2);
- try {
- this._storage.setItem(e2, r2);
- } catch (e3) {
- throw e3;
- }
- }
- getStore(e2, t2) {
- try {
- if (!this._storage)
- return;
- } catch (e3) {
- return "";
- }
- t2 = t2 || "localCachev1";
- const n2 = this._storage.getItem(e2);
- if (!n2)
- return "";
- if (n2.indexOf(t2) >= 0) {
- return JSON.parse(n2).content;
- }
- return "";
- }
- removeStore(e2) {
- this._storage.removeItem(e2);
- }
- }
- const Ee = {}, Le = {};
- function Re(e2) {
- return Ee[e2];
- }
- class Ue {
- constructor(e2, t2) {
- this.data = t2 || null, this.name = e2;
- }
- }
- class Ne extends Ue {
- constructor(e2, t2) {
- super("error", { error: e2, data: t2 }), this.error = e2;
- }
- }
- const De = new class {
- constructor() {
- this._listeners = {};
- }
- on(e2, t2) {
- return function(e3, t3, n2) {
- n2[e3] = n2[e3] || [], n2[e3].push(t3);
- }(e2, t2, this._listeners), this;
- }
- off(e2, t2) {
- return function(e3, t3, n2) {
- if (n2 && n2[e3]) {
- const s2 = n2[e3].indexOf(t3);
- -1 !== s2 && n2[e3].splice(s2, 1);
- }
- }(e2, t2, this._listeners), this;
- }
- fire(e2, t2) {
- if (e2 instanceof Ne)
- return console.error(e2.error), this;
- const n2 = "string" == typeof e2 ? new Ue(e2, t2 || {}) : e2;
- const s2 = n2.name;
- if (this._listens(s2)) {
- n2.target = this;
- const e3 = this._listeners[s2] ? [...this._listeners[s2]] : [];
- for (const t3 of e3)
- t3.call(this, n2);
- }
- return this;
- }
- _listens(e2) {
- return this._listeners[e2] && this._listeners[e2].length > 0;
- }
- }();
- function Me(e2, t2) {
- De.on(e2, t2);
- }
- function qe(e2, t2 = {}) {
- De.fire(e2, t2);
- }
- function Fe(e2, t2) {
- De.off(e2, t2);
- }
- const Ke = "loginStateChanged", je = "loginStateExpire", $e = "loginTypeChanged", Be = "anonymousConverted", We = "refreshAccessToken";
- var He;
- !function(e2) {
- e2.ANONYMOUS = "ANONYMOUS", e2.WECHAT = "WECHAT", e2.WECHAT_PUBLIC = "WECHAT-PUBLIC", e2.WECHAT_OPEN = "WECHAT-OPEN", e2.CUSTOM = "CUSTOM", e2.EMAIL = "EMAIL", e2.USERNAME = "USERNAME", e2.NULL = "NULL";
- }(He || (He = {}));
- const Je = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"], ze = { "X-SDK-Version": "1.3.5" };
- function Ve(e2, t2, n2) {
- const s2 = e2[t2];
- e2[t2] = function(t3) {
- const r2 = {}, i2 = {};
- n2.forEach((n3) => {
- const { data: s3, headers: o3 } = n3.call(e2, t3);
- Object.assign(r2, s3), Object.assign(i2, o3);
- });
- const o2 = t3.data;
- return o2 && (() => {
- var e3;
- if (e3 = o2, "[object FormData]" !== Object.prototype.toString.call(e3))
- t3.data = { ...o2, ...r2 };
- else
- for (const e4 in r2)
- o2.append(e4, r2[e4]);
- })(), t3.headers = { ...t3.headers || {}, ...i2 }, s2.call(e2, t3);
- };
- }
- function Ge() {
- const e2 = Math.random().toString(16).slice(2);
- return { data: { seqId: e2 }, headers: { ...ze, "x-seqid": e2 } };
- }
- class Ye {
- constructor(e2 = {}) {
- var t2;
- this.config = e2, this._reqClass = new Ce.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: `请求在${this.config.timeout / 1e3}s内未完成,已中断`, restrictedMethods: ["post"] }), this._cache = Re(this.config.env), this._localCache = (t2 = this.config.env, Le[t2]), Ve(this._reqClass, "post", [Ge]), Ve(this._reqClass, "upload", [Ge]), Ve(this._reqClass, "download", [Ge]);
- }
- async post(e2) {
- return await this._reqClass.post(e2);
- }
- async upload(e2) {
- return await this._reqClass.upload(e2);
- }
- async download(e2) {
- return await this._reqClass.download(e2);
- }
- async refreshAccessToken() {
- let e2, t2;
- this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken());
- try {
- e2 = await this._refreshAccessTokenPromise;
- } catch (e3) {
- t2 = e3;
- }
- if (this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t2)
- throw t2;
- return e2;
- }
- async _refreshAccessToken() {
- const { accessTokenKey: e2, accessTokenExpireKey: t2, refreshTokenKey: n2, loginTypeKey: s2, anonymousUuidKey: r2 } = this._cache.keys;
- this._cache.removeStore(e2), this._cache.removeStore(t2);
- let i2 = this._cache.getStore(n2);
- if (!i2)
- throw new te({ message: "未登录CloudBase" });
- const o2 = { refresh_token: i2 }, a2 = await this.request("auth.fetchAccessTokenWithRefreshToken", o2);
- if (a2.data.code) {
- const { code: e3 } = a2.data;
- if ("SIGN_PARAM_INVALID" === e3 || "REFRESH_TOKEN_EXPIRED" === e3 || "INVALID_REFRESH_TOKEN" === e3) {
- if (this._cache.getStore(s2) === He.ANONYMOUS && "INVALID_REFRESH_TOKEN" === e3) {
- const e4 = this._cache.getStore(r2), t3 = this._cache.getStore(n2), s3 = await this.send("auth.signInAnonymously", { anonymous_uuid: e4, refresh_token: t3 });
- return this.setRefreshToken(s3.refresh_token), this._refreshAccessToken();
- }
- qe(je), this._cache.removeStore(n2);
- }
- throw new te({ code: a2.data.code, message: `刷新access token失败:${a2.data.code}` });
- }
- if (a2.data.access_token)
- return qe(We), this._cache.setStore(e2, a2.data.access_token), this._cache.setStore(t2, a2.data.access_token_expire + Date.now()), { accessToken: a2.data.access_token, accessTokenExpire: a2.data.access_token_expire };
- a2.data.refresh_token && (this._cache.removeStore(n2), this._cache.setStore(n2, a2.data.refresh_token), this._refreshAccessToken());
- }
- async getAccessToken() {
- const { accessTokenKey: e2, accessTokenExpireKey: t2, refreshTokenKey: n2 } = this._cache.keys;
- if (!this._cache.getStore(n2))
- throw new te({ message: "refresh token不存在,登录状态异常" });
- let s2 = this._cache.getStore(e2), r2 = this._cache.getStore(t2), i2 = true;
- return this._shouldRefreshAccessTokenHook && !await this._shouldRefreshAccessTokenHook(s2, r2) && (i2 = false), (!s2 || !r2 || r2 < Date.now()) && i2 ? this.refreshAccessToken() : { accessToken: s2, accessTokenExpire: r2 };
- }
- async request(e2, t2, n2) {
- const s2 = `x-tcb-trace_${this.config.env}`;
- let r2 = "application/x-www-form-urlencoded";
- const i2 = { action: e2, env: this.config.env, dataVersion: "2019-08-16", ...t2 };
- if (-1 === Je.indexOf(e2)) {
- const { refreshTokenKey: e3 } = this._cache.keys;
- this._cache.getStore(e3) && (i2.access_token = (await this.getAccessToken()).accessToken);
- }
- let o2;
- if ("storage.uploadFile" === e2) {
- o2 = new FormData();
- for (let e3 in o2)
- o2.hasOwnProperty(e3) && void 0 !== o2[e3] && o2.append(e3, i2[e3]);
- r2 = "multipart/form-data";
- } else {
- r2 = "application/json", o2 = {};
- for (let e3 in i2)
- void 0 !== i2[e3] && (o2[e3] = i2[e3]);
- }
- let a2 = { headers: { "content-type": r2 } };
- n2 && n2.timeout && (a2.timeout = n2.timeout), n2 && n2.onUploadProgress && (a2.onUploadProgress = n2.onUploadProgress);
- const c2 = this._localCache.getStore(s2);
- c2 && (a2.headers["X-TCB-Trace"] = c2);
- const { parse: u2, inQuery: l2, search: h2 } = t2;
- let d2 = { env: this.config.env };
- u2 && (d2.parse = true), l2 && (d2 = { ...l2, ...d2 });
- let p2 = function(e3, t3, n3 = {}) {
- const s3 = /\?/.test(t3);
- let r3 = "";
- for (let e4 in n3)
- "" === r3 ? !s3 && (t3 += "?") : r3 += "&", r3 += `${e4}=${encodeURIComponent(n3[e4])}`;
- return /^http(s)?\:\/\//.test(t3 += r3) ? t3 : `${e3}${t3}`;
- }(ge, "//tcb-api.tencentcloudapi.com/web", d2);
- h2 && (p2 += h2);
- const f2 = await this.post({ url: p2, data: o2, ...a2 }), g2 = f2.header && f2.header["x-tcb-trace"];
- if (g2 && this._localCache.setStore(s2, g2), 200 !== Number(f2.status) && 200 !== Number(f2.statusCode) || !f2.data)
- throw new te({ code: "NETWORK_ERROR", message: "network request error" });
- return f2;
- }
- async send(e2, t2 = {}, n2 = {}) {
- const s2 = await this.request(e2, t2, { ...n2, onUploadProgress: t2.onUploadProgress });
- if ("ACCESS_TOKEN_EXPIRED" === s2.data.code && -1 === Je.indexOf(e2)) {
- await this.refreshAccessToken();
- const s3 = await this.request(e2, t2, { ...n2, onUploadProgress: t2.onUploadProgress });
- if (s3.data.code)
- throw new te({ code: s3.data.code, message: s3.data.message });
- return s3.data;
- }
- if (s2.data.code)
- throw new te({ code: s2.data.code, message: s2.data.message });
- return s2.data;
- }
- setRefreshToken(e2) {
- const { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2 } = this._cache.keys;
- this._cache.removeStore(t2), this._cache.removeStore(n2), this._cache.setStore(s2, e2);
- }
- }
- const Qe = {};
- function Xe(e2) {
- return Qe[e2];
- }
- class Ze {
- constructor(e2) {
- this.config = e2, this._cache = Re(e2.env), this._request = Xe(e2.env);
- }
- setRefreshToken(e2) {
- const { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2 } = this._cache.keys;
- this._cache.removeStore(t2), this._cache.removeStore(n2), this._cache.setStore(s2, e2);
- }
- setAccessToken(e2, t2) {
- const { accessTokenKey: n2, accessTokenExpireKey: s2 } = this._cache.keys;
- this._cache.setStore(n2, e2), this._cache.setStore(s2, t2);
- }
- async refreshUserInfo() {
- const { data: e2 } = await this._request.send("auth.getUserInfo", {});
- return this.setLocalUserInfo(e2), e2;
- }
- setLocalUserInfo(e2) {
- const { userInfoKey: t2 } = this._cache.keys;
- this._cache.setStore(t2, e2);
- }
- }
- class et {
- constructor(e2) {
- if (!e2)
- throw new te({ code: "PARAM_ERROR", message: "envId is not defined" });
- this._envId = e2, this._cache = Re(this._envId), this._request = Xe(this._envId), this.setUserInfo();
- }
- linkWithTicket(e2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "ticket must be string" });
- return this._request.send("auth.linkWithTicket", { ticket: e2 });
- }
- linkWithRedirect(e2) {
- e2.signInWithRedirect();
- }
- updatePassword(e2, t2) {
- return this._request.send("auth.updatePassword", { oldPassword: t2, newPassword: e2 });
- }
- updateEmail(e2) {
- return this._request.send("auth.updateEmail", { newEmail: e2 });
- }
- updateUsername(e2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "username must be a string" });
- return this._request.send("auth.updateUsername", { username: e2 });
- }
- async getLinkedUidList() {
- const { data: e2 } = await this._request.send("auth.getLinkedUidList", {});
- let t2 = false;
- const { users: n2 } = e2;
- return n2.forEach((e3) => {
- e3.wxOpenId && e3.wxPublicId && (t2 = true);
- }), { users: n2, hasPrimaryUid: t2 };
- }
- setPrimaryUid(e2) {
- return this._request.send("auth.setPrimaryUid", { uid: e2 });
- }
- unlink(e2) {
- return this._request.send("auth.unlink", { platform: e2 });
- }
- async update(e2) {
- const { nickName: t2, gender: n2, avatarUrl: s2, province: r2, country: i2, city: o2 } = e2, { data: a2 } = await this._request.send("auth.updateUserInfo", { nickName: t2, gender: n2, avatarUrl: s2, province: r2, country: i2, city: o2 });
- this.setLocalUserInfo(a2);
- }
- async refresh() {
- const { data: e2 } = await this._request.send("auth.getUserInfo", {});
- return this.setLocalUserInfo(e2), e2;
- }
- setUserInfo() {
- const { userInfoKey: e2 } = this._cache.keys, t2 = this._cache.getStore(e2);
- ["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach((e3) => {
- this[e3] = t2[e3];
- }), this.location = { country: t2.country, province: t2.province, city: t2.city };
- }
- setLocalUserInfo(e2) {
- const { userInfoKey: t2 } = this._cache.keys;
- this._cache.setStore(t2, e2), this.setUserInfo();
- }
- }
- class tt {
- constructor(e2) {
- if (!e2)
- throw new te({ code: "PARAM_ERROR", message: "envId is not defined" });
- this._cache = Re(e2);
- const { refreshTokenKey: t2, accessTokenKey: n2, accessTokenExpireKey: s2 } = this._cache.keys, r2 = this._cache.getStore(t2), i2 = this._cache.getStore(n2), o2 = this._cache.getStore(s2);
- this.credential = { refreshToken: r2, accessToken: i2, accessTokenExpire: o2 }, this.user = new et(e2);
- }
- get isAnonymousAuth() {
- return this.loginType === He.ANONYMOUS;
- }
- get isCustomAuth() {
- return this.loginType === He.CUSTOM;
- }
- get isWeixinAuth() {
- return this.loginType === He.WECHAT || this.loginType === He.WECHAT_OPEN || this.loginType === He.WECHAT_PUBLIC;
- }
- get loginType() {
- return this._cache.getStore(this._cache.keys.loginTypeKey);
- }
- }
- class nt extends Ze {
- async signIn() {
- this._cache.updatePersistence("local");
- const { anonymousUuidKey: e2, refreshTokenKey: t2 } = this._cache.keys, n2 = this._cache.getStore(e2) || void 0, s2 = this._cache.getStore(t2) || void 0, r2 = await this._request.send("auth.signInAnonymously", { anonymous_uuid: n2, refresh_token: s2 });
- if (r2.uuid && r2.refresh_token) {
- this._setAnonymousUUID(r2.uuid), this.setRefreshToken(r2.refresh_token), await this._request.refreshAccessToken(), qe(Ke), qe($e, { env: this.config.env, loginType: He.ANONYMOUS, persistence: "local" });
- const e3 = new tt(this.config.env);
- return await e3.user.refresh(), e3;
- }
- throw new te({ message: "匿名登录失败" });
- }
- async linkAndRetrieveDataWithTicket(e2) {
- const { anonymousUuidKey: t2, refreshTokenKey: n2 } = this._cache.keys, s2 = this._cache.getStore(t2), r2 = this._cache.getStore(n2), i2 = await this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s2, refresh_token: r2, ticket: e2 });
- if (i2.refresh_token)
- return this._clearAnonymousUUID(), this.setRefreshToken(i2.refresh_token), await this._request.refreshAccessToken(), qe(Be, { env: this.config.env }), qe($e, { loginType: He.CUSTOM, persistence: "local" }), { credential: { refreshToken: i2.refresh_token } };
- throw new te({ message: "匿名转化失败" });
- }
- _setAnonymousUUID(e2) {
- const { anonymousUuidKey: t2, loginTypeKey: n2 } = this._cache.keys;
- this._cache.removeStore(t2), this._cache.setStore(t2, e2), this._cache.setStore(n2, He.ANONYMOUS);
- }
- _clearAnonymousUUID() {
- this._cache.removeStore(this._cache.keys.anonymousUuidKey);
- }
- }
- class st extends Ze {
- async signIn(e2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "ticket must be a string" });
- const { refreshTokenKey: t2 } = this._cache.keys, n2 = await this._request.send("auth.signInWithTicket", { ticket: e2, refresh_token: this._cache.getStore(t2) || "" });
- if (n2.refresh_token)
- return this.setRefreshToken(n2.refresh_token), await this._request.refreshAccessToken(), qe(Ke), qe($e, { env: this.config.env, loginType: He.CUSTOM, persistence: this.config.persistence }), await this.refreshUserInfo(), new tt(this.config.env);
- throw new te({ message: "自定义登录失败" });
- }
- }
- class rt extends Ze {
- async signIn(e2, t2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "email must be a string" });
- const { refreshTokenKey: n2 } = this._cache.keys, s2 = await this._request.send("auth.signIn", { loginType: "EMAIL", email: e2, password: t2, refresh_token: this._cache.getStore(n2) || "" }), { refresh_token: r2, access_token: i2, access_token_expire: o2 } = s2;
- if (r2)
- return this.setRefreshToken(r2), i2 && o2 ? this.setAccessToken(i2, o2) : await this._request.refreshAccessToken(), await this.refreshUserInfo(), qe(Ke), qe($e, { env: this.config.env, loginType: He.EMAIL, persistence: this.config.persistence }), new tt(this.config.env);
- throw s2.code ? new te({ code: s2.code, message: `邮箱登录失败: ${s2.message}` }) : new te({ message: "邮箱登录失败" });
- }
- async activate(e2) {
- return this._request.send("auth.activateEndUserMail", { token: e2 });
- }
- async resetPasswordWithToken(e2, t2) {
- return this._request.send("auth.resetPasswordWithToken", { token: e2, newPassword: t2 });
- }
- }
- class it extends Ze {
- async signIn(e2, t2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "username must be a string" });
- "string" != typeof t2 && (t2 = "", console.warn("password is empty"));
- const { refreshTokenKey: n2 } = this._cache.keys, s2 = await this._request.send("auth.signIn", { loginType: He.USERNAME, username: e2, password: t2, refresh_token: this._cache.getStore(n2) || "" }), { refresh_token: r2, access_token_expire: i2, access_token: o2 } = s2;
- if (r2)
- return this.setRefreshToken(r2), o2 && i2 ? this.setAccessToken(o2, i2) : await this._request.refreshAccessToken(), await this.refreshUserInfo(), qe(Ke), qe($e, { env: this.config.env, loginType: He.USERNAME, persistence: this.config.persistence }), new tt(this.config.env);
- throw s2.code ? new te({ code: s2.code, message: `用户名密码登录失败: ${s2.message}` }) : new te({ message: "用户名密码登录失败" });
- }
- }
- class ot {
- constructor(e2) {
- this.config = e2, this._cache = Re(e2.env), this._request = Xe(e2.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), Me($e, this._onLoginTypeChanged);
- }
- get currentUser() {
- const e2 = this.hasLoginState();
- return e2 && e2.user || null;
- }
- get loginType() {
- return this._cache.getStore(this._cache.keys.loginTypeKey);
- }
- anonymousAuthProvider() {
- return new nt(this.config);
- }
- customAuthProvider() {
- return new st(this.config);
- }
- emailAuthProvider() {
- return new rt(this.config);
- }
- usernameAuthProvider() {
- return new it(this.config);
- }
- async signInAnonymously() {
- return new nt(this.config).signIn();
- }
- async signInWithEmailAndPassword(e2, t2) {
- return new rt(this.config).signIn(e2, t2);
- }
- signInWithUsernameAndPassword(e2, t2) {
- return new it(this.config).signIn(e2, t2);
- }
- async linkAndRetrieveDataWithTicket(e2) {
- this._anonymousAuthProvider || (this._anonymousAuthProvider = new nt(this.config)), Me(Be, this._onAnonymousConverted);
- return await this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e2);
- }
- async signOut() {
- if (this.loginType === He.ANONYMOUS)
- throw new te({ message: "匿名用户不支持登出操作" });
- const { refreshTokenKey: e2, accessTokenKey: t2, accessTokenExpireKey: n2 } = this._cache.keys, s2 = this._cache.getStore(e2);
- if (!s2)
- return;
- const r2 = await this._request.send("auth.logout", { refresh_token: s2 });
- return this._cache.removeStore(e2), this._cache.removeStore(t2), this._cache.removeStore(n2), qe(Ke), qe($e, { env: this.config.env, loginType: He.NULL, persistence: this.config.persistence }), r2;
- }
- async signUpWithEmailAndPassword(e2, t2) {
- return this._request.send("auth.signUpWithEmailAndPassword", { email: e2, password: t2 });
- }
- async sendPasswordResetEmail(e2) {
- return this._request.send("auth.sendPasswordResetEmail", { email: e2 });
- }
- onLoginStateChanged(e2) {
- Me(Ke, () => {
- const t3 = this.hasLoginState();
- e2.call(this, t3);
- });
- const t2 = this.hasLoginState();
- e2.call(this, t2);
- }
- onLoginStateExpired(e2) {
- Me(je, e2.bind(this));
- }
- onAccessTokenRefreshed(e2) {
- Me(We, e2.bind(this));
- }
- onAnonymousConverted(e2) {
- Me(Be, e2.bind(this));
- }
- onLoginTypeChanged(e2) {
- Me($e, () => {
- const t2 = this.hasLoginState();
- e2.call(this, t2);
- });
- }
- async getAccessToken() {
- return { accessToken: (await this._request.getAccessToken()).accessToken, env: this.config.env };
- }
- hasLoginState() {
- const { refreshTokenKey: e2 } = this._cache.keys;
- return this._cache.getStore(e2) ? new tt(this.config.env) : null;
- }
- async isUsernameRegistered(e2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "username must be a string" });
- const { data: t2 } = await this._request.send("auth.isUsernameRegistered", { username: e2 });
- return t2 && t2.isRegistered;
- }
- getLoginState() {
- return Promise.resolve(this.hasLoginState());
- }
- async signInWithTicket(e2) {
- return new st(this.config).signIn(e2);
- }
- shouldRefreshAccessToken(e2) {
- this._request._shouldRefreshAccessTokenHook = e2.bind(this);
- }
- getUserInfo() {
- return this._request.send("auth.getUserInfo", {}).then((e2) => e2.code ? e2 : { ...e2.data, requestId: e2.seqId });
- }
- getAuthHeader() {
- const { refreshTokenKey: e2, accessTokenKey: t2 } = this._cache.keys, n2 = this._cache.getStore(e2);
- return { "x-cloudbase-credentials": this._cache.getStore(t2) + "/@@/" + n2 };
- }
- _onAnonymousConverted(e2) {
- const { env: t2 } = e2.data;
- t2 === this.config.env && this._cache.updatePersistence(this.config.persistence);
- }
- _onLoginTypeChanged(e2) {
- const { loginType: t2, persistence: n2, env: s2 } = e2.data;
- s2 === this.config.env && (this._cache.updatePersistence(n2), this._cache.setStore(this._cache.keys.loginTypeKey, t2));
- }
- }
- const at = function(e2, t2) {
- t2 = t2 || Ie();
- const n2 = Xe(this.config.env), { cloudPath: s2, filePath: r2, onUploadProgress: i2, fileType: o2 = "image" } = e2;
- return n2.send("storage.getUploadMetadata", { path: s2 }).then((e3) => {
- const { data: { url: a2, authorization: c2, token: u2, fileId: l2, cosFileId: h2 }, requestId: d2 } = e3, p2 = { key: s2, signature: c2, "x-cos-meta-fileid": h2, success_action_status: "201", "x-cos-security-token": u2 };
- n2.upload({ url: a2, data: p2, file: r2, name: s2, fileType: o2, onUploadProgress: i2 }).then((e4) => {
- 201 === e4.statusCode ? t2(null, { fileID: l2, requestId: d2 }) : t2(new te({ code: "STORAGE_REQUEST_FAIL", message: `STORAGE_REQUEST_FAIL: ${e4.data}` }));
- }).catch((e4) => {
- t2(e4);
- });
- }).catch((e3) => {
- t2(e3);
- }), t2.promise;
- }, ct = function(e2, t2) {
- t2 = t2 || Ie();
- const n2 = Xe(this.config.env), { cloudPath: s2 } = e2;
- return n2.send("storage.getUploadMetadata", { path: s2 }).then((e3) => {
- t2(null, e3);
- }).catch((e3) => {
- t2(e3);
- }), t2.promise;
- }, ut = function({ fileList: e2 }, t2) {
- if (t2 = t2 || Ie(), !e2 || !Array.isArray(e2))
- return { code: "INVALID_PARAM", message: "fileList必须是非空的数组" };
- for (let t3 of e2)
- if (!t3 || "string" != typeof t3)
- return { code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" };
- const n2 = { fileid_list: e2 };
- return Xe(this.config.env).send("storage.batchDeleteFile", n2).then((e3) => {
- e3.code ? t2(null, e3) : t2(null, { fileList: e3.data.delete_list, requestId: e3.requestId });
- }).catch((e3) => {
- t2(e3);
- }), t2.promise;
- }, lt = function({ fileList: e2 }, t2) {
- t2 = t2 || Ie(), e2 && Array.isArray(e2) || t2(null, { code: "INVALID_PARAM", message: "fileList必须是非空的数组" });
- let n2 = [];
- for (let s3 of e2)
- "object" == typeof s3 ? (s3.hasOwnProperty("fileID") && s3.hasOwnProperty("maxAge") || t2(null, { code: "INVALID_PARAM", message: "fileList的元素必须是包含fileID和maxAge的对象" }), n2.push({ fileid: s3.fileID, max_age: s3.maxAge })) : "string" == typeof s3 ? n2.push({ fileid: s3 }) : t2(null, { code: "INVALID_PARAM", message: "fileList的元素必须是字符串" });
- const s2 = { file_list: n2 };
- return Xe(this.config.env).send("storage.batchGetDownloadUrl", s2).then((e3) => {
- e3.code ? t2(null, e3) : t2(null, { fileList: e3.data.download_list, requestId: e3.requestId });
- }).catch((e3) => {
- t2(e3);
- }), t2.promise;
- }, ht = async function({ fileID: e2 }, t2) {
- const n2 = (await lt.call(this, { fileList: [{ fileID: e2, maxAge: 600 }] })).fileList[0];
- if ("SUCCESS" !== n2.code)
- return t2 ? t2(n2) : new Promise((e3) => {
- e3(n2);
- });
- const s2 = Xe(this.config.env);
- let r2 = n2.download_url;
- if (r2 = encodeURI(r2), !t2)
- return s2.download({ url: r2 });
- t2(await s2.download({ url: r2 }));
- }, dt = function({ name: e2, data: t2, query: n2, parse: s2, search: r2, timeout: i2 }, o2) {
- const a2 = o2 || Ie();
- let c2;
- try {
- c2 = t2 ? JSON.stringify(t2) : "";
- } catch (e3) {
- return Promise.reject(e3);
- }
- if (!e2)
- return Promise.reject(new te({ code: "PARAM_ERROR", message: "函数名不能为空" }));
- const u2 = { inQuery: n2, parse: s2, search: r2, function_name: e2, request_data: c2 };
- return Xe(this.config.env).send("functions.invokeFunction", u2, { timeout: i2 }).then((e3) => {
- if (e3.code)
- a2(null, e3);
- else {
- let t3 = e3.data.response_data;
- if (s2)
- a2(null, { result: t3, requestId: e3.requestId });
- else
- try {
- t3 = JSON.parse(e3.data.response_data), a2(null, { result: t3, requestId: e3.requestId });
- } catch (e4) {
- a2(new te({ message: "response data must be json" }));
- }
- }
- return a2.promise;
- }).catch((e3) => {
- a2(e3);
- }), a2.promise;
- }, pt = { timeout: 15e3, persistence: "session" }, ft = {};
- class gt {
- constructor(e2) {
- this.config = e2 || this.config, this.authObj = void 0;
- }
- init(e2) {
- switch (Ce.adapter || (this.requestClient = new Ce.adapter.reqClass({ timeout: e2.timeout || 5e3, timeoutMsg: `请求在${(e2.timeout || 5e3) / 1e3}s内未完成,已中断` })), this.config = { ...pt, ...e2 }, true) {
- case this.config.timeout > 6e5:
- console.warn("timeout大于可配置上限[10分钟],已重置为上限数值"), this.config.timeout = 6e5;
- break;
- case this.config.timeout < 100:
- console.warn("timeout小于可配置下限[100ms],已重置为下限数值"), this.config.timeout = 100;
- }
- return new gt(this.config);
- }
- auth({ persistence: e2 } = {}) {
- if (this.authObj)
- return this.authObj;
- const t2 = e2 || Ce.adapter.primaryStorage || pt.persistence;
- var n2;
- return t2 !== this.config.persistence && (this.config.persistence = t2), function(e3) {
- const { env: t3 } = e3;
- Ee[t3] = new Oe(e3), Le[t3] = new Oe({ ...e3, persistence: "local" });
- }(this.config), n2 = this.config, Qe[n2.env] = new Ye(n2), this.authObj = new ot(this.config), this.authObj;
- }
- on(e2, t2) {
- return Me.apply(this, [e2, t2]);
- }
- off(e2, t2) {
- return Fe.apply(this, [e2, t2]);
- }
- callFunction(e2, t2) {
- return dt.apply(this, [e2, t2]);
- }
- deleteFile(e2, t2) {
- return ut.apply(this, [e2, t2]);
- }
- getTempFileURL(e2, t2) {
- return lt.apply(this, [e2, t2]);
- }
- downloadFile(e2, t2) {
- return ht.apply(this, [e2, t2]);
- }
- uploadFile(e2, t2) {
- return at.apply(this, [e2, t2]);
- }
- getUploadMetadata(e2, t2) {
- return ct.apply(this, [e2, t2]);
- }
- registerExtension(e2) {
- ft[e2.name] = e2;
- }
- async invokeExtension(e2, t2) {
- const n2 = ft[e2];
- if (!n2)
- throw new te({ message: `扩展${e2} 必须先注册` });
- return await n2.invoke(t2, this);
- }
- useAdapters(e2) {
- const { adapter: t2, runtime: n2 } = Ae(e2) || {};
- t2 && (Ce.adapter = t2), n2 && (Ce.runtime = n2);
- }
- }
- var mt = new gt();
- function yt(e2, t2, n2) {
- void 0 === n2 && (n2 = {});
- var s2 = /\?/.test(t2), r2 = "";
- for (var i2 in n2)
- "" === r2 ? !s2 && (t2 += "?") : r2 += "&", r2 += i2 + "=" + encodeURIComponent(n2[i2]);
- return /^http(s)?:\/\//.test(t2 += r2) ? t2 : "" + e2 + t2;
- }
- class _t {
- post(e2) {
- const { url: t2, data: n2, headers: s2, timeout: r2 } = e2;
- return new Promise((e3, i2) => {
- ne.request({ url: yt("https:", t2), data: n2, method: "POST", header: s2, timeout: r2, success(t3) {
- e3(t3);
- }, fail(e4) {
- i2(e4);
- } });
- });
- }
- upload(e2) {
- return new Promise((t2, n2) => {
- const { url: s2, file: r2, data: i2, headers: o2, fileType: a2 } = e2, c2 = ne.uploadFile({ url: yt("https:", s2), name: "file", formData: Object.assign({}, i2), filePath: r2, fileType: a2, header: o2, success(e3) {
- const n3 = { statusCode: e3.statusCode, data: e3.data || {} };
- 200 === e3.statusCode && i2.success_action_status && (n3.statusCode = parseInt(i2.success_action_status, 10)), t2(n3);
- }, fail(e3) {
- n2(new Error(e3.errMsg || "uploadFile:fail"));
- } });
- "function" == typeof e2.onUploadProgress && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((t3) => {
- e2.onUploadProgress({ loaded: t3.totalBytesSent, total: t3.totalBytesExpectedToSend });
- });
- });
- }
- }
- const wt = { setItem(e2, t2) {
- ne.setStorageSync(e2, t2);
- }, getItem: (e2) => ne.getStorageSync(e2), removeItem(e2) {
- ne.removeStorageSync(e2);
- }, clear() {
- ne.clearStorageSync();
- } };
- var vt = { genAdapter: function() {
- return { root: {}, reqClass: _t, localStorage: wt, primaryStorage: "local" };
- }, isMatch: function() {
- return true;
- }, runtime: "uni_app" };
- mt.useAdapters(vt);
- const It = mt, St = It.init;
- It.init = function(e2) {
- e2.env = e2.spaceId;
- const t2 = St.call(this, e2);
- t2.config.provider = "tencent", t2.config.spaceId = e2.spaceId;
- const n2 = t2.auth;
- return t2.auth = function(e3) {
- const t3 = n2.call(this, e3);
- return ["linkAndRetrieveDataWithTicket", "signInAnonymously", "signOut", "getAccessToken", "getLoginState", "signInWithTicket", "getUserInfo"].forEach((e4) => {
- var n3;
- t3[e4] = (n3 = t3[e4], function(e5) {
- e5 = e5 || {};
- const { success: t4, fail: s2, complete: r2 } = ee(e5);
- if (!(t4 || s2 || r2))
- return n3.call(this, e5);
- n3.call(this, e5).then((e6) => {
- t4 && t4(e6), r2 && r2(e6);
- }, (e6) => {
- s2 && s2(e6), r2 && r2(e6);
- });
- }).bind(t3);
- }), t3;
- }, t2.customAuth = t2.auth, t2;
- };
- var bt = It;
- async function kt(e2, t2) {
- const n2 = `http://${e2}:${t2}/system/ping`;
- try {
- const e3 = await (s2 = { url: n2, timeout: 500 }, new Promise((e4, t3) => {
- ne.request({ ...s2, success(t4) {
- e4(t4);
- }, fail(e5) {
- t3(e5);
- } });
- }));
- return !(!e3.data || 0 !== e3.data.code);
- } catch (e3) {
- return false;
- }
- var s2;
- }
- async function At(e2, t2) {
- let n2;
- for (let s2 = 0; s2 < e2.length; s2++) {
- const r2 = e2[s2];
- if (await kt(r2, t2)) {
- n2 = r2;
- break;
- }
- }
- return { address: n2, port: t2 };
- }
- const Ct = { "serverless.file.resource.generateProximalSign": "storage/generate-proximal-sign", "serverless.file.resource.report": "storage/report", "serverless.file.resource.delete": "storage/delete", "serverless.file.resource.getTempFileURL": "storage/get-temp-file-url" };
- var Pt = class {
- constructor(e2) {
- if (["spaceId", "clientSecret"].forEach((t2) => {
- if (!Object.prototype.hasOwnProperty.call(e2, t2))
- throw new Error(`${t2} required`);
- }), !e2.endpoint)
- throw new Error("集群空间未配置ApiEndpoint,配置后需要重新关联服务空间后生效");
- this.config = Object.assign({}, e2), this.config.provider = "dcloud", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.adapter = ne;
- }
- async request(e2, t2 = true) {
- const n2 = t2;
- return e2 = n2 ? await this.setupLocalRequest(e2) : this.setupRequest(e2), Promise.resolve().then(() => n2 ? this.requestLocal(e2) : de.wrappedRequest(e2, this.adapter.request));
- }
- requestLocal(e2) {
- return new Promise((t2, n2) => {
- this.adapter.request(Object.assign(e2, { complete(e3) {
- if (e3 || (e3 = {}), !e3.statusCode || e3.statusCode >= 400) {
- const t3 = e3.data && e3.data.code || "SYS_ERR", s2 = e3.data && e3.data.message || "request:fail";
- return n2(new te({ code: t3, message: s2 }));
- }
- t2({ success: true, result: e3.data });
- } }));
- });
- }
- setupRequest(e2) {
- const t2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now() }), n2 = { "Content-Type": "application/json" };
- n2["x-serverless-sign"] = de.sign(t2, this.config.clientSecret);
- const s2 = he();
- n2["x-client-info"] = encodeURIComponent(JSON.stringify(s2));
- const { token: r2 } = re();
- return n2["x-client-token"] = r2, { url: this.config.requestUrl, method: "POST", data: t2, dataType: "json", header: JSON.parse(JSON.stringify(n2)) };
- }
- async setupLocalRequest(e2) {
- const t2 = he(), { token: n2 } = re(), s2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now(), clientInfo: t2, token: n2 }), { address: r2, servePort: i2 } = this.__dev__ && this.__dev__.debugInfo || {}, { address: o2 } = await At(r2, i2);
- return { url: `http://${o2}:${i2}/${Ct[e2.method]}`, method: "POST", data: s2, dataType: "json", header: JSON.parse(JSON.stringify({ "Content-Type": "application/json" })) };
- }
- callFunction(e2) {
- const t2 = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e2.name, functionArgs: e2.data || {} }) };
- return this.request(t2, false);
- }
- getUploadFileOptions(e2) {
- const t2 = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e2) };
- return this.request(t2);
- }
- reportUploadFile(e2) {
- const t2 = { method: "serverless.file.resource.report", params: JSON.stringify(e2) };
- return this.request(t2);
- }
- uploadFile({ filePath: e2, cloudPath: t2, fileType: n2 = "image", onUploadProgress: s2 }) {
- if (!t2)
- throw new te({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" });
- let r2;
- return this.getUploadFileOptions({ cloudPath: t2 }).then((t3) => {
- const { url: i2, formData: o2, name: a2 } = t3.result;
- return r2 = t3.result.fileUrl, new Promise((t4, r3) => {
- const c2 = this.adapter.uploadFile({ url: i2, formData: o2, name: a2, filePath: e2, fileType: n2, success(e3) {
- e3 && e3.statusCode < 400 ? t4(e3) : r3(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }));
- }, fail(e3) {
- r3(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" }));
- } });
- "function" == typeof s2 && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((e3) => {
- s2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend });
- });
- });
- }).then(() => this.reportUploadFile({ cloudPath: t2 })).then((t3) => new Promise((n3, s3) => {
- t3.success ? n3({ success: true, filePath: e2, fileID: r2 }) : s3(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }));
- }));
- }
- deleteFile({ fileList: e2 }) {
- const t2 = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e2 }) };
- return this.request(t2).then((e3) => {
- if (e3.success)
- return e3.result;
- throw new te({ code: "DELETE_FILE_FAILED", message: "删除文件失败" });
- });
- }
- getTempFileURL({ fileList: e2, maxAge: t2 } = {}) {
- if (!Array.isArray(e2) || 0 === e2.length)
- throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" });
- const n2 = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e2, maxAge: t2 }) };
- return this.request(n2).then((e3) => {
- if (e3.success)
- return { fileList: e3.result.fileList.map((e4) => ({ fileID: e4.fileID, tempFileURL: e4.tempFileURL })) };
- throw new te({ code: "GET_TEMP_FILE_URL_FAILED", message: "获取临时文件链接失败" });
- });
- }
- };
- var Tt = { init(e2) {
- const t2 = new Pt(e2), n2 = { signInAnonymously: function() {
- return Promise.resolve();
- }, getLoginState: function() {
- return Promise.resolve(false);
- } };
- return t2.auth = function() {
- return n2;
- }, t2.customAuth = t2.auth, t2;
- } }, xt = n(function(e2, t2) {
- e2.exports = r.enc.Hex;
- });
- function Ot() {
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e2) {
- var t2 = 16 * Math.random() | 0;
- return ("x" === e2 ? t2 : 3 & t2 | 8).toString(16);
- });
- }
- function Et(e2 = "", t2 = {}) {
- const { data: n2, functionName: s2, method: r2, headers: i2, signHeaderKeys: o2 = [], config: a2 } = t2, c2 = Date.now(), u2 = Ot(), l2 = Object.assign({}, i2, { "x-from-app-id": a2.spaceAppId, "x-from-env-id": a2.spaceId, "x-to-env-id": a2.spaceId, "x-from-instance-id": c2, "x-from-function-name": s2, "x-client-timestamp": c2, "x-alipay-source": "client", "x-request-id": u2, "x-alipay-callid": u2, "x-trace-id": u2 }), h2 = ["x-from-app-id", "x-from-env-id", "x-to-env-id", "x-from-instance-id", "x-from-function-name", "x-client-timestamp"].concat(o2), [d2 = "", p2 = ""] = e2.split("?") || [], f2 = function(e3) {
- const t3 = e3.signedHeaders.join(";"), n3 = e3.signedHeaders.map((t4) => `${t4.toLowerCase()}:${e3.headers[t4]}
- `).join(""), s3 = we(e3.body).toString(xt), r3 = `${e3.method.toUpperCase()}
- ${e3.path}
- ${e3.query}
- ${n3}
- ${t3}
- ${s3}
- `, i3 = we(r3).toString(xt), o3 = `HMAC-SHA256
- ${e3.timestamp}
- ${i3}
- `, a3 = ve(o3, e3.secretKey).toString(xt);
- return `HMAC-SHA256 Credential=${e3.secretId}, SignedHeaders=${t3}, Signature=${a3}`;
- }({ path: d2, query: p2, method: r2, headers: l2, timestamp: c2, body: JSON.stringify(n2), secretId: a2.accessKey, secretKey: a2.secretKey, signedHeaders: h2.sort() });
- return { url: `${a2.endpoint}${e2}`, headers: Object.assign({}, l2, { Authorization: f2 }) };
- }
- function Lt({ url: e2, data: t2, method: n2 = "POST", headers: s2 = {}, timeout: r2 }) {
- return new Promise((i2, o2) => {
- ne.request({ url: e2, method: n2, data: "object" == typeof t2 ? JSON.stringify(t2) : t2, header: s2, dataType: "json", timeout: r2, complete: (e3 = {}) => {
- const t3 = s2["x-trace-id"] || "";
- if (!e3.statusCode || e3.statusCode >= 400) {
- const { message: n3, errMsg: s3, trace_id: r3 } = e3.data || {};
- return o2(new te({ code: "SYS_ERR", message: n3 || s3 || "request:fail", requestId: r3 || t3 }));
- }
- i2({ status: e3.statusCode, data: e3.data, headers: e3.header, requestId: t3 });
- } });
- });
- }
- function Rt(e2, t2) {
- const { path: n2, data: s2, method: r2 = "GET" } = e2, { url: i2, headers: o2 } = Et(n2, { functionName: "", data: s2, method: r2, headers: { "x-alipay-cloud-mode": "oss", "x-data-api-type": "oss", "x-expire-timestamp": Date.now() + 6e4 }, signHeaderKeys: ["x-data-api-type", "x-expire-timestamp"], config: t2 });
- return Lt({ url: i2, data: s2, method: r2, headers: o2 }).then((e3) => {
- const t3 = e3.data || {};
- if (!t3.success)
- throw new te({ code: e3.errCode, message: e3.errMsg, requestId: e3.requestId });
- return t3.data || {};
- }).catch((e3) => {
- throw new te({ code: e3.errCode, message: e3.errMsg, requestId: e3.requestId });
- });
- }
- function Ut(e2 = "") {
- const t2 = e2.trim().replace(/^cloud:\/\//, ""), n2 = t2.indexOf("/");
- if (n2 <= 0)
- throw new te({ code: "INVALID_PARAM", message: "fileID不合法" });
- const s2 = t2.substring(0, n2), r2 = t2.substring(n2 + 1);
- return s2 !== this.config.spaceId && console.warn("file ".concat(e2, " does not belong to env ").concat(this.config.spaceId)), r2;
- }
- function Nt(e2 = "") {
- return "cloud://".concat(this.config.spaceId, "/").concat(e2.replace(/^\/+/, ""));
- }
- class Dt {
- constructor(e2) {
- this.config = e2;
- }
- signedURL(e2, t2 = {}) {
- const n2 = `/ws/function/${e2}`, s2 = this.config.wsEndpoint.replace(/^ws(s)?:\/\//, ""), r2 = Object.assign({}, t2, { accessKeyId: this.config.accessKey, signatureNonce: Ot(), timestamp: "" + Date.now() }), i2 = [n2, ["accessKeyId", "authorization", "signatureNonce", "timestamp"].sort().map(function(e3) {
- return r2[e3] ? "".concat(e3, "=").concat(r2[e3]) : null;
- }).filter(Boolean).join("&"), `host:${s2}`].join("\n"), o2 = ["HMAC-SHA256", we(i2).toString(xt)].join("\n"), a2 = ve(o2, this.config.secretKey).toString(xt), c2 = Object.keys(r2).map((e3) => `${e3}=${encodeURIComponent(r2[e3])}`).join("&");
- return `${this.config.wsEndpoint}${n2}?${c2}&signature=${a2}`;
- }
- }
- var Mt = class {
- constructor(e2) {
- if (["spaceId", "spaceAppId", "accessKey", "secretKey"].forEach((t2) => {
- if (!Object.prototype.hasOwnProperty.call(e2, t2))
- throw new Error(`${t2} required`);
- }), e2.endpoint) {
- if ("string" != typeof e2.endpoint)
- throw new Error("endpoint must be string");
- if (!/^https:\/\//.test(e2.endpoint))
- throw new Error("endpoint must start with https://");
- e2.endpoint = e2.endpoint.replace(/\/$/, "");
- }
- this.config = Object.assign({}, e2, { endpoint: e2.endpoint || `https://${e2.spaceId}.api-hz.cloudbasefunction.cn`, wsEndpoint: e2.wsEndpoint || `wss://${e2.spaceId}.api-hz.cloudbasefunction.cn` }), this._websocket = new Dt(this.config);
- }
- callFunction(e2) {
- return function(e3, t2) {
- const { name: n2, data: s2, async: r2 = false, timeout: i2 } = e3, o2 = "POST", a2 = { "x-to-function-name": n2 };
- r2 && (a2["x-function-invoke-type"] = "async");
- const { url: c2, headers: u2 } = Et("/functions/invokeFunction", { functionName: n2, data: s2, method: o2, headers: a2, signHeaderKeys: ["x-to-function-name"], config: t2 });
- return Lt({ url: c2, data: s2, method: o2, headers: u2, timeout: i2 }).then((e4) => {
- let t3 = 0;
- if (r2) {
- const n3 = e4.data || {};
- t3 = "200" === n3.errCode ? 0 : n3.errCode, e4.data = n3.data || {}, e4.errMsg = n3.errMsg;
- }
- if (0 !== t3)
- throw new te({ code: t3, message: e4.errMsg, requestId: e4.requestId });
- return { errCode: t3, success: 0 === t3, requestId: e4.requestId, result: e4.data };
- }).catch((e4) => {
- throw new te({ code: e4.errCode, message: e4.errMsg, requestId: e4.requestId });
- });
- }(e2, this.config);
- }
- uploadFileToOSS({ url: e2, filePath: t2, fileType: n2, formData: s2, onUploadProgress: r2 }) {
- return new Promise((i2, o2) => {
- const a2 = ne.uploadFile({ url: e2, filePath: t2, fileType: n2, formData: s2, name: "file", success(e3) {
- e3 && e3.statusCode < 400 ? i2(e3) : o2(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }));
- }, fail(e3) {
- o2(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" }));
- } });
- "function" == typeof r2 && a2 && "function" == typeof a2.onProgressUpdate && a2.onProgressUpdate((e3) => {
- r2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend });
- });
- });
- }
- async uploadFile({ filePath: e2, cloudPath: t2 = "", fileType: n2 = "image", onUploadProgress: s2 }) {
- if ("string" !== f(t2))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" });
- if (!(t2 = t2.trim()))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath不可为空" });
- if (/:\/\//.test(t2))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath不合法" });
- const r2 = await Rt({ path: "/".concat(t2.replace(/^\//, ""), "?post_url") }, this.config), { file_id: i2, upload_url: o2, form_data: a2 } = r2, c2 = a2 && a2.reduce((e3, t3) => (e3[t3.key] = t3.value, e3), {});
- return this.uploadFileToOSS({ url: o2, filePath: e2, fileType: n2, formData: c2, onUploadProgress: s2 }).then(() => ({ fileID: i2 }));
- }
- async getTempFileURL({ fileList: e2 }) {
- return new Promise((t2, n2) => {
- (!e2 || e2.length < 0) && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList不能为空数组" })), e2.length > 50 && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList数组长度不能超过50" }));
- const s2 = [];
- for (const t3 of e2) {
- "string" !== f(t3) && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList的元素必须是非空的字符串" }));
- const e3 = Ut.call(this, t3);
- s2.push({ file_id: e3, expire: 600 });
- }
- Rt({ path: "/?download_url", data: { file_list: s2 }, method: "POST" }, this.config).then((e3) => {
- const { file_list: n3 = [] } = e3;
- t2({ fileList: n3.map((e4) => ({ fileID: Nt.call(this, e4.file_id), tempFileURL: e4.download_url })) });
- }).catch((e3) => n2(e3));
- });
- }
- async connectWebSocket(e2) {
- const { name: t2, query: n2 } = e2;
- return ne.connectSocket({ url: this._websocket.signedURL(t2, n2), complete: () => {
- } });
- }
- };
- var qt = { init: (e2) => {
- e2.provider = "alipay";
- const t2 = new Mt(e2);
- return t2.auth = function() {
- return { signInAnonymously: function() {
- return Promise.resolve();
- }, getLoginState: function() {
- return Promise.resolve(true);
- } };
- }, t2;
- } };
- function Ft({ data: e2 }) {
- let t2;
- t2 = he();
- const n2 = JSON.parse(JSON.stringify(e2 || {}));
- if (Object.assign(n2, { clientInfo: t2 }), !n2.uniIdToken) {
- const { token: e3 } = re();
- e3 && (n2.uniIdToken = e3);
- }
- return n2;
- }
- async function Kt(e2 = {}) {
- await this.__dev__.initLocalNetwork();
- const { localAddress: t2, localPort: n2 } = this.__dev__, s2 = { aliyun: "aliyun", tencent: "tcb", alipay: "alipay", dcloud: "dcloud" }[this.config.provider], r2 = this.config.spaceId, i2 = `http://${t2}:${n2}/system/check-function`, o2 = `http://${t2}:${n2}/cloudfunctions/${e2.name}`;
- return new Promise((t3, n3) => {
- ne.request({ method: "POST", url: i2, data: { name: e2.name, platform: C, provider: s2, spaceId: r2 }, timeout: 3e3, success(e3) {
- t3(e3);
- }, fail() {
- t3({ data: { code: "NETWORK_ERROR", message: "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。" } });
- } });
- }).then(({ data: e3 } = {}) => {
- const { code: t3, message: n3 } = e3 || {};
- return { code: 0 === t3 ? 0 : t3 || "SYS_ERR", message: n3 || "SYS_ERR" };
- }).then(({ code: t3, message: n3 }) => {
- if (0 !== t3) {
- switch (t3) {
- case "MODULE_ENCRYPTED":
- console.error(`此云函数(${e2.name})依赖加密公共模块不可本地调试,自动切换为云端已部署的云函数`);
- break;
- case "FUNCTION_ENCRYPTED":
- console.error(`此云函数(${e2.name})已加密不可本地调试,自动切换为云端已部署的云函数`);
- break;
- case "ACTION_ENCRYPTED":
- console.error(n3 || "需要访问加密的uni-clientDB-action,自动切换为云端环境");
- break;
- case "NETWORK_ERROR":
- console.error(n3 || "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下");
- break;
- case "SWITCH_TO_CLOUD":
- break;
- default: {
- const e3 = `检测本地调试服务出现错误:${n3},请检查网络环境或重启客户端再试`;
- throw console.error(e3), new Error(e3);
- }
- }
- return this._callCloudFunction(e2);
- }
- return new Promise((t4, n4) => {
- const r3 = Ft.call(this, { data: e2.data });
- ne.request({ method: "POST", url: o2, data: { provider: s2, platform: C, param: r3 }, timeout: e2.timeout, success: ({ statusCode: e3, data: s3 } = {}) => !e3 || e3 >= 400 ? n4(new te({ code: s3.code || "SYS_ERR", message: s3.message || "request:fail" })) : t4({ result: s3 }), fail(e3) {
- n4(new te({ code: e3.code || e3.errCode || "SYS_ERR", message: e3.message || e3.errMsg || "request:fail" }));
- } });
- });
- });
- }
- const jt = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: ",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间", mode: "append" }];
- var $t = /[\\^$.*+?()[\]{}|]/g, Bt = RegExp($t.source);
- function Wt(e2, t2, n2) {
- return e2.replace(new RegExp((s2 = t2) && Bt.test(s2) ? s2.replace($t, "\\$&") : s2, "g"), n2);
- var s2;
- }
- const Jt = "request", zt = "response", Vt = "both";
- const En = { code: 2e4, message: "System error" }, Ln = { code: 20101, message: "Invalid client" };
- function Nn(e2) {
- const { errSubject: t2, subject: n2, errCode: s2, errMsg: r2, code: i2, message: o2, cause: a2 } = e2 || {};
- return new te({ subject: t2 || n2 || "uni-secure-network", code: s2 || i2 || En.code, message: r2 || o2, cause: a2 });
- }
- let Mn;
- function $n({ secretType: e2 } = {}) {
- return e2 === Jt || e2 === zt || e2 === Vt;
- }
- function Bn({ name: e2, data: t2 = {} } = {}) {
- return "DCloud-clientDB" === e2 && "encryption" === t2.redirectTo && "getAppClientKey" === t2.action;
- }
- function Wn({ provider: e2, spaceId: t2, functionName: n2 } = {}) {
- const { appId: s2, uniPlatform: r2, osName: i2 } = ce();
- let o2 = r2;
- "app" === r2 && (o2 = i2);
- const a2 = function({ provider: e3, spaceId: t3 } = {}) {
- const n3 = A;
- if (!n3)
- return {};
- e3 = /* @__PURE__ */ function(e4) {
- return "tencent" === e4 ? "tcb" : e4;
- }(e3);
- const s3 = n3.find((n4) => n4.provider === e3 && n4.spaceId === t3);
- return s3 && s3.config;
- }({ provider: e2, spaceId: t2 });
- if (!a2 || !a2.accessControl || !a2.accessControl.enable)
- return false;
- const c2 = a2.accessControl.function || {}, u2 = Object.keys(c2);
- if (0 === u2.length)
- return true;
- const l2 = function(e3, t3) {
- let n3, s3, r3;
- for (let i3 = 0; i3 < e3.length; i3++) {
- const o3 = e3[i3];
- o3 !== t3 ? "*" !== o3 ? o3.split(",").map((e4) => e4.trim()).indexOf(t3) > -1 && (s3 = o3) : r3 = o3 : n3 = o3;
- }
- return n3 || s3 || r3;
- }(u2, n2);
- if (!l2)
- return false;
- if ((c2[l2] || []).find((e3 = {}) => e3.appId === s2 && (e3.platform || "").toLowerCase() === o2.toLowerCase()))
- return true;
- throw console.error(`此应用[appId: ${s2}, platform: ${o2}]不在云端配置的允许访问的应用列表内,参考:https://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client`), Nn(Ln);
- }
- function Hn({ functionName: e2, result: t2, logPvd: n2 }) {
- if (this.__dev__.debugLog && t2 && t2.requestId) {
- const s2 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e2, requestId: t2.requestId });
- console.log(`[${n2}-request]${s2}[/${n2}-request]`);
- }
- }
- function Jn(e2) {
- const t2 = e2.callFunction, n2 = function(n3) {
- const s2 = n3.name;
- n3.data = Ft.call(e2, { data: n3.data });
- const r2 = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb", alipay: "alipay", dcloud: "dcloud" }[this.config.provider], i2 = $n(n3), o2 = Bn(n3), a2 = i2 || o2;
- return t2.call(this, n3).then((e3) => (e3.errCode = 0, !a2 && Hn.call(this, { functionName: s2, result: e3, logPvd: r2 }), Promise.resolve(e3)), (e3) => (!a2 && Hn.call(this, { functionName: s2, result: e3, logPvd: r2 }), e3 && e3.message && (e3.message = function({ message: e4 = "", extraInfo: t3 = {}, formatter: n4 = [] } = {}) {
- for (let s3 = 0; s3 < n4.length; s3++) {
- const { rule: r3, content: i3, mode: o3 } = n4[s3], a3 = e4.match(r3);
- if (!a3)
- continue;
- let c2 = i3;
- for (let e5 = 1; e5 < a3.length; e5++)
- c2 = Wt(c2, `{$${e5}}`, a3[e5]);
- for (const e5 in t3)
- c2 = Wt(c2, `{${e5}}`, t3[e5]);
- return "replace" === o3 ? c2 : e4 + c2;
- }
- return e4;
- }({ message: `[${n3.name}]: ${e3.message}`, formatter: jt, extraInfo: { functionName: s2 } })), Promise.reject(e3)));
- };
- e2.callFunction = function(t3) {
- const { provider: s2, spaceId: r2 } = e2.config, i2 = t3.name;
- let o2, a2;
- if (t3.data = t3.data || {}, e2.__dev__.debugInfo && !e2.__dev__.debugInfo.forceRemote && T ? (e2._callCloudFunction || (e2._callCloudFunction = n2, e2._callLocalFunction = Kt), o2 = Kt) : o2 = n2, o2 = o2.bind(e2), Bn(t3))
- a2 = n2.call(e2, t3);
- else if ($n(t3)) {
- a2 = new Mn({ secretType: t3.secretType, uniCloudIns: e2 }).wrapEncryptDataCallFunction(n2.bind(e2))(t3);
- } else if (Wn({ provider: s2, spaceId: r2, functionName: i2 })) {
- a2 = new Mn({ secretType: t3.secretType, uniCloudIns: e2 }).wrapVerifyClientCallFunction(n2.bind(e2))(t3);
- } else
- a2 = o2(t3);
- return Object.defineProperty(a2, "result", { get: () => (console.warn("当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {}) }), a2.then((e3) => ("undefined" != typeof UTSJSONObject && (e3.result = new UTSJSONObject(e3.result)), e3));
- };
- }
- Mn = class {
- constructor() {
- throw Nn({ message: `Platform ${C} is not enabled, please check whether secure network module is enabled in your manifest.json` });
- }
- };
- const zn = Symbol("CLIENT_DB_INTERNAL");
- function Vn(e2, t2) {
- return e2.then = "DoNotReturnProxyWithAFunctionNamedThen", e2._internalType = zn, e2.inspect = null, e2.__v_raw = void 0, new Proxy(e2, { get(e3, n2, s2) {
- if ("_uniClient" === n2)
- return null;
- if ("symbol" == typeof n2)
- return e3[n2];
- if (n2 in e3 || "string" != typeof n2) {
- const t3 = e3[n2];
- return "function" == typeof t3 ? t3.bind(e3) : t3;
- }
- return t2.get(e3, n2, s2);
- } });
- }
- function Gn(e2) {
- return { on: (t2, n2) => {
- e2[t2] = e2[t2] || [], e2[t2].indexOf(n2) > -1 || e2[t2].push(n2);
- }, off: (t2, n2) => {
- e2[t2] = e2[t2] || [];
- const s2 = e2[t2].indexOf(n2);
- -1 !== s2 && e2[t2].splice(s2, 1);
- } };
- }
- const Yn = ["db.Geo", "db.command", "command.aggregate"];
- function Qn(e2, t2) {
- return Yn.indexOf(`${e2}.${t2}`) > -1;
- }
- function Xn(e2) {
- switch (f(e2 = se(e2))) {
- case "array":
- return e2.map((e3) => Xn(e3));
- case "object":
- return e2._internalType === zn || Object.keys(e2).forEach((t2) => {
- e2[t2] = Xn(e2[t2]);
- }), e2;
- case "regexp":
- return { $regexp: { source: e2.source, flags: e2.flags } };
- case "date":
- return { $date: e2.toISOString() };
- default:
- return e2;
- }
- }
- function Zn(e2) {
- return e2 && e2.content && e2.content.$method;
- }
- class es {
- constructor(e2, t2, n2) {
- this.content = e2, this.prevStage = t2 || null, this.udb = null, this._database = n2;
- }
- toJSON() {
- let e2 = this;
- const t2 = [e2.content];
- for (; e2.prevStage; )
- e2 = e2.prevStage, t2.push(e2.content);
- return { $db: t2.reverse().map((e3) => ({ $method: e3.$method, $param: Xn(e3.$param) })) };
- }
- toString() {
- return JSON.stringify(this.toJSON());
- }
- getAction() {
- const e2 = this.toJSON().$db.find((e3) => "action" === e3.$method);
- return e2 && e2.$param && e2.$param[0];
- }
- getCommand() {
- return { $db: this.toJSON().$db.filter((e2) => "action" !== e2.$method) };
- }
- get isAggregate() {
- let e2 = this;
- for (; e2; ) {
- const t2 = Zn(e2), n2 = Zn(e2.prevStage);
- if ("aggregate" === t2 && "collection" === n2 || "pipeline" === t2)
- return true;
- e2 = e2.prevStage;
- }
- return false;
- }
- get isCommand() {
- let e2 = this;
- for (; e2; ) {
- if ("command" === Zn(e2))
- return true;
- e2 = e2.prevStage;
- }
- return false;
- }
- get isAggregateCommand() {
- let e2 = this;
- for (; e2; ) {
- const t2 = Zn(e2), n2 = Zn(e2.prevStage);
- if ("aggregate" === t2 && "command" === n2)
- return true;
- e2 = e2.prevStage;
- }
- return false;
- }
- getNextStageFn(e2) {
- const t2 = this;
- return function() {
- return ts({ $method: e2, $param: Xn(Array.from(arguments)) }, t2, t2._database);
- };
- }
- get count() {
- return this.isAggregate ? this.getNextStageFn("count") : function() {
- return this._send("count", Array.from(arguments));
- };
- }
- get remove() {
- return this.isCommand ? this.getNextStageFn("remove") : function() {
- return this._send("remove", Array.from(arguments));
- };
- }
- get() {
- return this._send("get", Array.from(arguments));
- }
- get add() {
- return this.isCommand ? this.getNextStageFn("add") : function() {
- return this._send("add", Array.from(arguments));
- };
- }
- update() {
- return this._send("update", Array.from(arguments));
- }
- end() {
- return this._send("end", Array.from(arguments));
- }
- get set() {
- return this.isCommand ? this.getNextStageFn("set") : function() {
- throw new Error("JQL禁止使用set方法");
- };
- }
- _send(e2, t2) {
- const n2 = this.getAction(), s2 = this.getCommand();
- if (s2.$db.push({ $method: e2, $param: Xn(t2) }), S) {
- const e3 = s2.$db.find((e4) => "collection" === e4.$method), t3 = e3 && e3.$param;
- t3 && 1 === t3.length && "string" == typeof e3.$param[0] && e3.$param[0].indexOf(",") > -1 && console.warn("检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。");
- }
- return this._database._callCloudFunction({ action: n2, command: s2 });
- }
- }
- function ts(e2, t2, n2) {
- return Vn(new es(e2, t2, n2), { get(e3, t3) {
- let s2 = "db";
- return e3 && e3.content && (s2 = e3.content.$method), Qn(s2, t3) ? ts({ $method: t3 }, e3, n2) : function() {
- return ts({ $method: t3, $param: Xn(Array.from(arguments)) }, e3, n2);
- };
- } });
- }
- function ns({ path: e2, method: t2 }) {
- return class {
- constructor() {
- this.param = Array.from(arguments);
- }
- toJSON() {
- return { $newDb: [...e2.map((e3) => ({ $method: e3 })), { $method: t2, $param: this.param }] };
- }
- toString() {
- return JSON.stringify(this.toJSON());
- }
- };
- }
- function ss(e2, t2 = {}) {
- return Vn(new e2(t2), { get: (e3, t3) => Qn("db", t3) ? ts({ $method: t3 }, null, e3) : function() {
- return ts({ $method: t3, $param: Xn(Array.from(arguments)) }, null, e3);
- } });
- }
- class rs extends class {
- constructor({ uniClient: e2 = {}, isJQL: t2 = false } = {}) {
- this._uniClient = e2, this._authCallBacks = {}, this._dbCallBacks = {}, e2._isDefault && (this._dbCallBacks = L("_globalUniCloudDatabaseCallback")), t2 || (this.auth = Gn(this._authCallBacks)), this._isJQL = t2, Object.assign(this, Gn(this._dbCallBacks)), this.env = Vn({}, { get: (e3, t3) => ({ $env: t3 }) }), this.Geo = Vn({}, { get: (e3, t3) => ns({ path: ["Geo"], method: t3 }) }), this.serverDate = ns({ path: [], method: "serverDate" }), this.RegExp = ns({ path: [], method: "RegExp" });
- }
- getCloudEnv(e2) {
- if ("string" != typeof e2 || !e2.trim())
- throw new Error("getCloudEnv参数错误");
- return { $env: e2.replace("$cloudEnv_", "") };
- }
- _callback(e2, t2) {
- const n2 = this._dbCallBacks;
- n2[e2] && n2[e2].forEach((e3) => {
- e3(...t2);
- });
- }
- _callbackAuth(e2, t2) {
- const n2 = this._authCallBacks;
- n2[e2] && n2[e2].forEach((e3) => {
- e3(...t2);
- });
- }
- multiSend() {
- const e2 = Array.from(arguments), t2 = e2.map((e3) => {
- const t3 = e3.getAction(), n2 = e3.getCommand();
- if ("getTemp" !== n2.$db[n2.$db.length - 1].$method)
- throw new Error("multiSend只支持子命令内使用getTemp");
- return { action: t3, command: n2 };
- });
- return this._callCloudFunction({ multiCommand: t2, queryList: e2 });
- }
- } {
- _parseResult(e2) {
- return this._isJQL ? e2.result : e2;
- }
- _callCloudFunction({ action: e2, command: t2, multiCommand: n2, queryList: s2 }) {
- function r2(e3, t3) {
- if (n2 && s2)
- for (let n3 = 0; n3 < s2.length; n3++) {
- const r3 = s2[n3];
- r3.udb && "function" == typeof r3.udb.setResult && (t3 ? r3.udb.setResult(t3) : r3.udb.setResult(e3.result.dataList[n3]));
- }
- }
- const i2 = this, o2 = this._isJQL ? "databaseForJQL" : "database";
- function a2(e3) {
- return i2._callback("error", [e3]), M(q(o2, "fail"), e3).then(() => M(q(o2, "complete"), e3)).then(() => (r2(null, e3), Y(j, { type: W, content: e3 }), Promise.reject(e3)));
- }
- const c2 = M(q(o2, "invoke")), u2 = this._uniClient;
- return c2.then(() => u2.callFunction({ name: "DCloud-clientDB", type: l, data: { action: e2, command: t2, multiCommand: n2 } })).then((e3) => {
- const { code: t3, message: n3, token: s3, tokenExpired: c3, systemInfo: u3 = [] } = e3.result;
- if (u3)
- for (let e4 = 0; e4 < u3.length; e4++) {
- const { level: t4, message: n4, detail: s4 } = u3[e4], r3 = console["warn" === t4 ? "error" : t4] || console.log;
- let i3 = "[System Info]" + n4;
- s4 && (i3 = `${i3}
- 详细信息:${s4}`), r3(i3);
- }
- if (t3) {
- return a2(new te({ code: t3, message: n3, requestId: e3.requestId }));
- }
- e3.result.errCode = e3.result.errCode || e3.result.code, e3.result.errMsg = e3.result.errMsg || e3.result.message, s3 && c3 && (ie({ token: s3, tokenExpired: c3 }), this._callbackAuth("refreshToken", [{ token: s3, tokenExpired: c3 }]), this._callback("refreshToken", [{ token: s3, tokenExpired: c3 }]), Y(B, { token: s3, tokenExpired: c3 }));
- const l2 = [{ prop: "affectedDocs", tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" }, { prop: "code", tips: "code不再推荐使用,请使用errCode替代" }, { prop: "message", tips: "message不再推荐使用,请使用errMsg替代" }];
- for (let t4 = 0; t4 < l2.length; t4++) {
- const { prop: n4, tips: s4 } = l2[t4];
- if (n4 in e3.result) {
- const t5 = e3.result[n4];
- Object.defineProperty(e3.result, n4, { get: () => (console.warn(s4), t5) });
- }
- }
- return function(e4) {
- return M(q(o2, "success"), e4).then(() => M(q(o2, "complete"), e4)).then(() => {
- r2(e4, null);
- const t4 = i2._parseResult(e4);
- return Y(j, { type: W, content: t4 }), Promise.resolve(t4);
- });
- }(e3);
- }, (e3) => {
- /fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e3.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB");
- return a2(new te({ code: e3.code || "SYSTEM_ERROR", message: e3.message, requestId: e3.requestId }));
- });
- }
- }
- const is = "token无效,跳转登录页面", os = "token过期,跳转登录页面", as = { TOKEN_INVALID_TOKEN_EXPIRED: os, TOKEN_INVALID_INVALID_CLIENTID: is, TOKEN_INVALID: is, TOKEN_INVALID_WRONG_TOKEN: is, TOKEN_INVALID_ANONYMOUS_USER: is }, cs = { "uni-id-token-expired": os, "uni-id-check-token-failed": is, "uni-id-token-not-exist": is, "uni-id-check-device-feature-failed": is };
- function us(e2, t2) {
- let n2 = "";
- return n2 = e2 ? `${e2}/${t2}` : t2, n2.replace(/^\//, "");
- }
- function ls(e2 = [], t2 = "") {
- const n2 = [], s2 = [];
- return e2.forEach((e3) => {
- true === e3.needLogin ? n2.push(us(t2, e3.path)) : false === e3.needLogin && s2.push(us(t2, e3.path));
- }), { needLoginPage: n2, notNeedLoginPage: s2 };
- }
- function hs(e2) {
- return e2.split("?")[0].replace(/^\//, "");
- }
- function ds() {
- return function(e2) {
- let t2 = e2 && e2.$page && e2.$page.fullPath || "";
- return t2 ? ("/" !== t2.charAt(0) && (t2 = "/" + t2), t2) : t2;
- }(function() {
- const e2 = getCurrentPages();
- return e2[e2.length - 1];
- }());
- }
- function ps() {
- return hs(ds());
- }
- function fs(e2 = "", t2 = {}) {
- if (!e2)
- return false;
- if (!(t2 && t2.list && t2.list.length))
- return false;
- const n2 = t2.list, s2 = hs(e2);
- return n2.some((e3) => e3.pagePath === s2);
- }
- const gs = !!e.uniIdRouter;
- const { loginPage: ms, routerNeedLogin: ys, resToLogin: _s, needLoginPage: ws, notNeedLoginPage: vs, loginPageInTabBar: Is } = function({ pages: t2 = [], subPackages: n2 = [], uniIdRouter: s2 = {}, tabBar: r2 = {} } = e) {
- const { loginPage: i2, needLogin: o2 = [], resToLogin: a2 = true } = s2, { needLoginPage: c2, notNeedLoginPage: u2 } = ls(t2), { needLoginPage: l2, notNeedLoginPage: h2 } = function(e2 = []) {
- const t3 = [], n3 = [];
- return e2.forEach((e3) => {
- const { root: s3, pages: r3 = [] } = e3, { needLoginPage: i3, notNeedLoginPage: o3 } = ls(r3, s3);
- t3.push(...i3), n3.push(...o3);
- }), { needLoginPage: t3, notNeedLoginPage: n3 };
- }(n2);
- return { loginPage: i2, routerNeedLogin: o2, resToLogin: a2, needLoginPage: [...c2, ...l2], notNeedLoginPage: [...u2, ...h2], loginPageInTabBar: fs(i2, r2) };
- }();
- if (ws.indexOf(ms) > -1)
- throw new Error(`Login page [${ms}] should not be "needLogin", please check your pages.json`);
- function Ss(e2) {
- const t2 = ps();
- if ("/" === e2.charAt(0))
- return e2;
- const [n2, s2] = e2.split("?"), r2 = n2.replace(/^\//, "").split("/"), i2 = t2.split("/");
- i2.pop();
- for (let e3 = 0; e3 < r2.length; e3++) {
- const t3 = r2[e3];
- ".." === t3 ? i2.pop() : "." !== t3 && i2.push(t3);
- }
- return "" === i2[0] && i2.shift(), "/" + i2.join("/") + (s2 ? "?" + s2 : "");
- }
- function bs(e2) {
- const t2 = hs(Ss(e2));
- return !(vs.indexOf(t2) > -1) && (ws.indexOf(t2) > -1 || ys.some((t3) => function(e3, t4) {
- return new RegExp(t4).test(e3);
- }(e2, t3)));
- }
- function ks({ redirect: e2 }) {
- const t2 = hs(e2), n2 = hs(ms);
- return ps() !== n2 && t2 !== n2;
- }
- function As({ api: e2, redirect: t2 } = {}) {
- if (!t2 || !ks({ redirect: t2 }))
- return;
- const n2 = function(e3, t3) {
- return "/" !== e3.charAt(0) && (e3 = "/" + e3), t3 ? e3.indexOf("?") > -1 ? e3 + `&uniIdRedirectUrl=${encodeURIComponent(t3)}` : e3 + `?uniIdRedirectUrl=${encodeURIComponent(t3)}` : e3;
- }(ms, t2);
- Is ? "navigateTo" !== e2 && "redirectTo" !== e2 || (e2 = "switchTab") : "switchTab" === e2 && (e2 = "navigateTo");
- const s2 = { navigateTo: uni.navigateTo, redirectTo: uni.redirectTo, switchTab: uni.switchTab, reLaunch: uni.reLaunch };
- setTimeout(() => {
- s2[e2]({ url: n2 });
- }, 0);
- }
- function Cs({ url: e2 } = {}) {
- const t2 = { abortLoginPageJump: false, autoToLoginPage: false }, n2 = function() {
- const { token: e3, tokenExpired: t3 } = re();
- let n3;
- if (e3) {
- if (t3 < Date.now()) {
- const e4 = "uni-id-token-expired";
- n3 = { errCode: e4, errMsg: cs[e4] };
- }
- } else {
- const e4 = "uni-id-check-token-failed";
- n3 = { errCode: e4, errMsg: cs[e4] };
- }
- return n3;
- }();
- if (bs(e2) && n2) {
- n2.uniIdRedirectUrl = e2;
- if (z($).length > 0)
- return setTimeout(() => {
- Y($, n2);
- }, 0), t2.abortLoginPageJump = true, t2;
- t2.autoToLoginPage = true;
- }
- return t2;
- }
- function Ps() {
- !function() {
- const e3 = ds(), { abortLoginPageJump: t2, autoToLoginPage: n2 } = Cs({ url: e3 });
- t2 || n2 && As({ api: "redirectTo", redirect: e3 });
- }();
- const e2 = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
- for (let t2 = 0; t2 < e2.length; t2++) {
- const n2 = e2[t2];
- uni.addInterceptor(n2, { invoke(e3) {
- const { abortLoginPageJump: t3, autoToLoginPage: s2 } = Cs({ url: e3.url });
- return t3 ? e3 : s2 ? (As({ api: n2, redirect: Ss(e3.url) }), false) : e3;
- } });
- }
- }
- function Ts() {
- this.onResponse((e2) => {
- const { type: t2, content: n2 } = e2;
- let s2 = false;
- switch (t2) {
- case "cloudobject":
- s2 = function(e3) {
- if ("object" != typeof e3)
- return false;
- const { errCode: t3 } = e3 || {};
- return t3 in cs;
- }(n2);
- break;
- case "clientdb":
- s2 = function(e3) {
- if ("object" != typeof e3)
- return false;
- const { errCode: t3 } = e3 || {};
- return t3 in as;
- }(n2);
- }
- s2 && function(e3 = {}) {
- const t3 = z($);
- Z().then(() => {
- const n3 = ds();
- if (n3 && ks({ redirect: n3 }))
- return t3.length > 0 ? Y($, Object.assign({ uniIdRedirectUrl: n3 }, e3)) : void (ms && As({ api: "navigateTo", redirect: n3 }));
- });
- }(n2);
- });
- }
- function xs(e2) {
- !function(e3) {
- e3.onResponse = function(e4) {
- V(j, e4);
- }, e3.offResponse = function(e4) {
- G(j, e4);
- };
- }(e2), function(e3) {
- e3.onNeedLogin = function(e4) {
- V($, e4);
- }, e3.offNeedLogin = function(e4) {
- G($, e4);
- }, gs && (L("_globalUniCloudStatus").needLoginInit || (L("_globalUniCloudStatus").needLoginInit = true, Z().then(() => {
- Ps.call(e3);
- }), _s && Ts.call(e3)));
- }(e2), function(e3) {
- e3.onRefreshToken = function(e4) {
- V(B, e4);
- }, e3.offRefreshToken = function(e4) {
- G(B, e4);
- };
- }(e2);
- }
- let Os;
- const Es = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", Ls = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;
- function Rs() {
- const e2 = re().token || "", t2 = e2.split(".");
- if (!e2 || 3 !== t2.length)
- return { uid: null, role: [], permission: [], tokenExpired: 0 };
- let n2;
- try {
- n2 = JSON.parse((s2 = t2[1], decodeURIComponent(Os(s2).split("").map(function(e3) {
- return "%" + ("00" + e3.charCodeAt(0).toString(16)).slice(-2);
- }).join(""))));
- } catch (e3) {
- throw new Error("获取当前用户信息出错,详细错误信息为:" + e3.message);
- }
- var s2;
- return n2.tokenExpired = 1e3 * n2.exp, delete n2.exp, delete n2.iat, n2;
- }
- Os = "function" != typeof atob ? function(e2) {
- if (e2 = String(e2).replace(/[\t\n\f\r ]+/g, ""), !Ls.test(e2))
- throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
- var t2;
- e2 += "==".slice(2 - (3 & e2.length));
- for (var n2, s2, r2 = "", i2 = 0; i2 < e2.length; )
- t2 = Es.indexOf(e2.charAt(i2++)) << 18 | Es.indexOf(e2.charAt(i2++)) << 12 | (n2 = Es.indexOf(e2.charAt(i2++))) << 6 | (s2 = Es.indexOf(e2.charAt(i2++))), r2 += 64 === n2 ? String.fromCharCode(t2 >> 16 & 255) : 64 === s2 ? String.fromCharCode(t2 >> 16 & 255, t2 >> 8 & 255) : String.fromCharCode(t2 >> 16 & 255, t2 >> 8 & 255, 255 & t2);
- return r2;
- } : atob;
- var Us = n(function(e2, t2) {
- Object.defineProperty(t2, "__esModule", { value: true });
- const n2 = "chooseAndUploadFile:ok", s2 = "chooseAndUploadFile:fail";
- function r2(e3, t3) {
- return e3.tempFiles.forEach((e4, n3) => {
- e4.name || (e4.name = e4.path.substring(e4.path.lastIndexOf("/") + 1)), t3 && (e4.fileType = t3), e4.cloudPath = Date.now() + "_" + n3 + e4.name.substring(e4.name.lastIndexOf("."));
- }), e3.tempFilePaths || (e3.tempFilePaths = e3.tempFiles.map((e4) => e4.path)), e3;
- }
- function i2(e3, t3, { onChooseFile: s3, onUploadProgress: r3 }) {
- return t3.then((e4) => {
- if (s3) {
- const t4 = s3(e4);
- if (void 0 !== t4)
- return Promise.resolve(t4).then((t5) => void 0 === t5 ? e4 : t5);
- }
- return e4;
- }).then((t4) => false === t4 ? { errMsg: n2, tempFilePaths: [], tempFiles: [] } : function(e4, t5, s4 = 5, r4) {
- (t5 = Object.assign({}, t5)).errMsg = n2;
- const i3 = t5.tempFiles, o2 = i3.length;
- let a2 = 0;
- return new Promise((n3) => {
- for (; a2 < s4; )
- c2();
- function c2() {
- const s5 = a2++;
- if (s5 >= o2)
- return void (!i3.find((e5) => !e5.url && !e5.errMsg) && n3(t5));
- const u2 = i3[s5];
- e4.uploadFile({ provider: u2.provider, filePath: u2.path, cloudPath: u2.cloudPath, fileType: u2.fileType, cloudPathAsRealPath: u2.cloudPathAsRealPath, onUploadProgress(e5) {
- e5.index = s5, e5.tempFile = u2, e5.tempFilePath = u2.path, r4 && r4(e5);
- } }).then((e5) => {
- u2.url = e5.fileID, s5 < o2 && c2();
- }).catch((e5) => {
- u2.errMsg = e5.errMsg || e5.message, s5 < o2 && c2();
- });
- }
- });
- }(e3, t4, 5, r3));
- }
- t2.initChooseAndUploadFile = function(e3) {
- return function(t3 = { type: "all" }) {
- return "image" === t3.type ? i2(e3, function(e4) {
- const { count: t4, sizeType: n3, sourceType: i3 = ["album", "camera"], extension: o2 } = e4;
- return new Promise((e5, a2) => {
- uni.chooseImage({ count: t4, sizeType: n3, sourceType: i3, extension: o2, success(t5) {
- e5(r2(t5, "image"));
- }, fail(e6) {
- a2({ errMsg: e6.errMsg.replace("chooseImage:fail", s2) });
- } });
- });
- }(t3), t3) : "video" === t3.type ? i2(e3, function(e4) {
- const { camera: t4, compressed: n3, maxDuration: i3, sourceType: o2 = ["album", "camera"], extension: a2 } = e4;
- return new Promise((e5, c2) => {
- uni.chooseVideo({ camera: t4, compressed: n3, maxDuration: i3, sourceType: o2, extension: a2, success(t5) {
- const { tempFilePath: n4, duration: s3, size: i4, height: o3, width: a3 } = t5;
- e5(r2({ errMsg: "chooseVideo:ok", tempFilePaths: [n4], tempFiles: [{ name: t5.tempFile && t5.tempFile.name || "", path: n4, size: i4, type: t5.tempFile && t5.tempFile.type || "", width: a3, height: o3, duration: s3, fileType: "video", cloudPath: "" }] }, "video"));
- }, fail(e6) {
- c2({ errMsg: e6.errMsg.replace("chooseVideo:fail", s2) });
- } });
- });
- }(t3), t3) : i2(e3, function(e4) {
- const { count: t4, extension: n3 } = e4;
- return new Promise((e5, i3) => {
- let o2 = uni.chooseFile;
- if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (o2 = wx.chooseMessageFile), "function" != typeof o2)
- return i3({ errMsg: s2 + " 请指定 type 类型,该平台仅支持选择 image 或 video。" });
- o2({ type: "all", count: t4, extension: n3, success(t5) {
- e5(r2(t5));
- }, fail(e6) {
- i3({ errMsg: e6.errMsg.replace("chooseFile:fail", s2) });
- } });
- });
- }(t3), t3);
- };
- };
- }), Ns = t$2(Us);
- const Ds = "manual";
- function Ms(e2) {
- return { props: { localdata: { type: Array, default: () => [] }, options: { type: [Object, Array], default: () => ({}) }, spaceInfo: { type: Object, default: () => ({}) }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: false }, gettree: { type: [Boolean, String], default: false }, gettreepath: { type: [Boolean, String], default: false }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: false }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: false } }, data: () => ({ mixinDatacomLoading: false, mixinDatacomHasMore: false, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {}, mixinDatacomError: null }), created() {
- this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, count: 0 }, this.$watch(() => {
- var e3 = [];
- return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach((t2) => {
- e3.push(this[t2]);
- }), e3;
- }, (e3, t2) => {
- if (this.loadtime === Ds)
- return;
- let n2 = false;
- const s2 = [];
- for (let r2 = 2; r2 < e3.length; r2++)
- e3[r2] !== t2[r2] && (s2.push(e3[r2]), n2 = true);
- e3[0] !== t2[0] && (this.mixinDatacomPage.current = this.pageCurrent), this.mixinDatacomPage.size = this.pageSize, this.onMixinDatacomPropsChange(n2, s2);
- });
- }, methods: { onMixinDatacomPropsChange(e3, t2) {
- }, mixinDatacomEasyGet({ getone: e3 = false, success: t2, fail: n2 } = {}) {
- this.mixinDatacomLoading || (this.mixinDatacomLoading = true, this.mixinDatacomErrorMessage = "", this.mixinDatacomError = null, this.mixinDatacomGet().then((n3) => {
- this.mixinDatacomLoading = false;
- const { data: s2, count: r2 } = n3.result;
- this.getcount && (this.mixinDatacomPage.count = r2), this.mixinDatacomHasMore = s2.length < this.pageSize;
- const i2 = e3 ? s2.length ? s2[0] : void 0 : s2;
- this.mixinDatacomResData = i2, t2 && t2(i2);
- }).catch((e4) => {
- this.mixinDatacomLoading = false, this.mixinDatacomErrorMessage = e4, this.mixinDatacomError = e4, n2 && n2(e4);
- }));
- }, mixinDatacomGet(t2 = {}) {
- let n2;
- t2 = t2 || {}, n2 = "undefined" != typeof __uniX && __uniX ? e2.databaseForJQL(this.spaceInfo) : e2.database(this.spaceInfo);
- const s2 = t2.action || this.action;
- s2 && (n2 = n2.action(s2));
- const r2 = t2.collection || this.collection;
- n2 = Array.isArray(r2) ? n2.collection(...r2) : n2.collection(r2);
- const i2 = t2.where || this.where;
- i2 && Object.keys(i2).length && (n2 = n2.where(i2));
- const o2 = t2.field || this.field;
- o2 && (n2 = n2.field(o2));
- const a2 = t2.foreignKey || this.foreignKey;
- a2 && (n2 = n2.foreignKey(a2));
- const c2 = t2.groupby || this.groupby;
- c2 && (n2 = n2.groupBy(c2));
- const u2 = t2.groupField || this.groupField;
- u2 && (n2 = n2.groupField(u2));
- true === (void 0 !== t2.distinct ? t2.distinct : this.distinct) && (n2 = n2.distinct());
- const l2 = t2.orderby || this.orderby;
- l2 && (n2 = n2.orderBy(l2));
- const h2 = void 0 !== t2.pageCurrent ? t2.pageCurrent : this.mixinDatacomPage.current, d2 = void 0 !== t2.pageSize ? t2.pageSize : this.mixinDatacomPage.size, p2 = void 0 !== t2.getcount ? t2.getcount : this.getcount, f2 = void 0 !== t2.gettree ? t2.gettree : this.gettree, g2 = void 0 !== t2.gettreepath ? t2.gettreepath : this.gettreepath, m2 = { getCount: p2 }, y2 = { limitLevel: void 0 !== t2.limitlevel ? t2.limitlevel : this.limitlevel, startWith: void 0 !== t2.startwith ? t2.startwith : this.startwith };
- return f2 && (m2.getTree = y2), g2 && (m2.getTreePath = y2), n2 = n2.skip(d2 * (h2 - 1)).limit(d2).get(m2), n2;
- } } };
- }
- function qs(e2) {
- return function(t2, n2 = {}) {
- n2 = function(e3, t3 = {}) {
- return e3.customUI = t3.customUI || e3.customUI, e3.parseSystemError = t3.parseSystemError || e3.parseSystemError, Object.assign(e3.loadingOptions, t3.loadingOptions), Object.assign(e3.errorOptions, t3.errorOptions), "object" == typeof t3.secretMethods && (e3.secretMethods = t3.secretMethods), e3;
- }({ customUI: false, loadingOptions: { title: "加载中...", mask: true }, errorOptions: { type: "modal", retry: false } }, n2);
- const { customUI: s2, loadingOptions: r2, errorOptions: i2, parseSystemError: o2 } = n2, a2 = !s2;
- return new Proxy({}, { get(s3, c2) {
- switch (c2) {
- case "toString":
- return "[object UniCloudObject]";
- case "toJSON":
- return {};
- }
- return function({ fn: e3, interceptorName: t3, getCallbackArgs: n3 } = {}) {
- return async function(...s4) {
- const r3 = n3 ? n3({ params: s4 }) : {};
- let i3, o3;
- try {
- return await M(q(t3, "invoke"), { ...r3 }), i3 = await e3(...s4), await M(q(t3, "success"), { ...r3, result: i3 }), i3;
- } catch (e4) {
- throw o3 = e4, await M(q(t3, "fail"), { ...r3, error: o3 }), o3;
- } finally {
- await M(q(t3, "complete"), o3 ? { ...r3, error: o3 } : { ...r3, result: i3 });
- }
- };
- }({ fn: async function s4(...l2) {
- let h2;
- a2 && uni.showLoading({ title: r2.title, mask: r2.mask });
- const d2 = { name: t2, type: u, data: { method: c2, params: l2 } };
- "object" == typeof n2.secretMethods && function(e3, t3) {
- const n3 = t3.data.method, s5 = e3.secretMethods || {}, r3 = s5[n3] || s5["*"];
- r3 && (t3.secretType = r3);
- }(n2, d2);
- let p2 = false;
- try {
- h2 = await e2.callFunction(d2);
- } catch (e3) {
- p2 = true, h2 = { result: new te(e3) };
- }
- const { errSubject: f2, errCode: g2, errMsg: m2, newToken: y2 } = h2.result || {};
- if (a2 && uni.hideLoading(), y2 && y2.token && y2.tokenExpired && (ie(y2), Y(B, { ...y2 })), g2) {
- let e3 = m2;
- if (p2 && o2) {
- e3 = (await o2({ objectName: t2, methodName: c2, params: l2, errSubject: f2, errCode: g2, errMsg: m2 })).errMsg || m2;
- }
- if (a2)
- if ("toast" === i2.type)
- uni.showToast({ title: e3, icon: "none" });
- else {
- if ("modal" !== i2.type)
- throw new Error(`Invalid errorOptions.type: ${i2.type}`);
- {
- const { confirm: t3 } = await async function({ title: e4, content: t4, showCancel: n4, cancelText: s5, confirmText: r3 } = {}) {
- return new Promise((i3, o3) => {
- uni.showModal({ title: e4, content: t4, showCancel: n4, cancelText: s5, confirmText: r3, success(e5) {
- i3(e5);
- }, fail() {
- i3({ confirm: false, cancel: true });
- } });
- });
- }({ title: "提示", content: e3, showCancel: i2.retry, cancelText: "取消", confirmText: i2.retry ? "重试" : "确定" });
- if (i2.retry && t3)
- return s4(...l2);
- }
- }
- const n3 = new te({ subject: f2, code: g2, message: m2, requestId: h2.requestId });
- throw n3.detail = h2.result, Y(j, { type: J, content: n3 }), n3;
- }
- return Y(j, { type: J, content: h2.result }), h2.result;
- }, interceptorName: "callObject", getCallbackArgs: function({ params: e3 } = {}) {
- return { objectName: t2, methodName: c2, params: e3 };
- } });
- } });
- };
- }
- function Fs(e2) {
- return L("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", e2.config.spaceId));
- }
- async function Ks({ openid: e2, callLoginByWeixin: t2 = false } = {}) {
- Fs(this);
- throw new Error(`[SecureNetwork] API \`initSecureNetworkByWeixin\` is not supported on platform \`${C}\``);
- }
- async function js(e2) {
- const t2 = Fs(this);
- return t2.initPromise || (t2.initPromise = Ks.call(this, e2).then((e3) => e3).catch((e3) => {
- throw delete t2.initPromise, e3;
- })), t2.initPromise;
- }
- function $s(e2) {
- return function({ openid: t2, callLoginByWeixin: n2 = false } = {}) {
- return js.call(e2, { openid: t2, callLoginByWeixin: n2 });
- };
- }
- function Bs(e2) {
- !function(e3) {
- le = e3;
- }(e2);
- }
- function Ws(e2) {
- const t2 = { getSystemInfo: uni.getSystemInfo, getPushClientId: uni.getPushClientId };
- return function(n2) {
- return new Promise((s2, r2) => {
- t2[e2]({ ...n2, success(e3) {
- s2(e3);
- }, fail(e3) {
- r2(e3);
- } });
- });
- };
- }
- class Hs extends class {
- constructor() {
- this._callback = {};
- }
- addListener(e2, t2) {
- this._callback[e2] || (this._callback[e2] = []), this._callback[e2].push(t2);
- }
- on(e2, t2) {
- return this.addListener(e2, t2);
- }
- removeListener(e2, t2) {
- if (!t2)
- throw new Error('The "listener" argument must be of type function. Received undefined');
- const n2 = this._callback[e2];
- if (!n2)
- return;
- const s2 = function(e3, t3) {
- for (let n3 = e3.length - 1; n3 >= 0; n3--)
- if (e3[n3] === t3)
- return n3;
- return -1;
- }(n2, t2);
- n2.splice(s2, 1);
- }
- off(e2, t2) {
- return this.removeListener(e2, t2);
- }
- removeAllListener(e2) {
- delete this._callback[e2];
- }
- emit(e2, ...t2) {
- const n2 = this._callback[e2];
- if (n2)
- for (let e3 = 0; e3 < n2.length; e3++)
- n2[e3](...t2);
- }
- } {
- constructor() {
- super(), this._uniPushMessageCallback = this._receivePushMessage.bind(this), this._currentMessageId = -1, this._payloadQueue = [];
- }
- init() {
- return Promise.all([Ws("getSystemInfo")(), Ws("getPushClientId")()]).then(([{ appId: e2 } = {}, { cid: t2 } = {}] = []) => {
- if (!e2)
- throw new Error("Invalid appId, please check the manifest.json file");
- if (!t2)
- throw new Error("Invalid push client id");
- this._appId = e2, this._pushClientId = t2, this._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), this.emit("open"), this._initMessageListener();
- }, (e2) => {
- throw this.emit("error", e2), this.close(), e2;
- });
- }
- async open() {
- return this.init();
- }
- _isUniCloudSSE(e2) {
- if ("receive" !== e2.type)
- return false;
- const t2 = e2 && e2.data && e2.data.payload;
- return !(!t2 || "UNI_CLOUD_SSE" !== t2.channel || t2.seqId !== this._seqId);
- }
- _receivePushMessage(e2) {
- if (!this._isUniCloudSSE(e2))
- return;
- const t2 = e2 && e2.data && e2.data.payload, { action: n2, messageId: s2, message: r2 } = t2;
- this._payloadQueue.push({ action: n2, messageId: s2, message: r2 }), this._consumMessage();
- }
- _consumMessage() {
- for (; ; ) {
- const e2 = this._payloadQueue.find((e3) => e3.messageId === this._currentMessageId + 1);
- if (!e2)
- break;
- this._currentMessageId++, this._parseMessagePayload(e2);
- }
- }
- _parseMessagePayload(e2) {
- const { action: t2, messageId: n2, message: s2 } = e2;
- "end" === t2 ? this._end({ messageId: n2, message: s2 }) : "message" === t2 && this._appendMessage({ messageId: n2, message: s2 });
- }
- _appendMessage({ messageId: e2, message: t2 } = {}) {
- this.emit("message", t2);
- }
- _end({ messageId: e2, message: t2 } = {}) {
- this.emit("end", t2), this.close();
- }
- _initMessageListener() {
- uni.onPushMessage(this._uniPushMessageCallback);
- }
- _destroy() {
- uni.offPushMessage(this._uniPushMessageCallback);
- }
- toJSON() {
- return { appId: this._appId, pushClientId: this._pushClientId, seqId: this._seqId };
- }
- close() {
- this._destroy(), this.emit("close");
- }
- }
- async function Js(e2) {
- {
- const { osName: e3, osVersion: t3 } = ce();
- "ios" === e3 && function(e4) {
- if (!e4 || "string" != typeof e4)
- return 0;
- const t4 = e4.match(/^(\d+)./);
- return t4 && t4[1] ? parseInt(t4[1]) : 0;
- }(t3) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发期间需要,发行后不需要)");
- }
- const t2 = e2.__dev__;
- if (!t2.debugInfo)
- return;
- const { address: n2, servePort: s2 } = t2.debugInfo, { address: r2 } = await At(n2, s2);
- if (r2)
- return t2.localAddress = r2, void (t2.localPort = s2);
- const i2 = console["error"];
- let o2 = "";
- if ("remote" === t2.debugInfo.initialLaunchType ? (t2.debugInfo.forceRemote = true, o2 = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。") : o2 = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。", o2 += "\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\n- 检查是否错误的使用拦截器修改uni.request方法的参数", 0 === C.indexOf("mp-") && (o2 += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t2.debugInfo.forceRemote)
- throw new Error(o2);
- i2(o2);
- }
- function zs(e2) {
- e2._initPromiseHub || (e2._initPromiseHub = new v({ createPromise: function() {
- let t2 = Promise.resolve();
- var n2;
- n2 = 1, t2 = new Promise((e3) => {
- setTimeout(() => {
- e3();
- }, n2);
- });
- const s2 = e2.auth();
- return t2.then(() => s2.getLoginState()).then((e3) => e3 ? Promise.resolve() : s2.signInAnonymously());
- } }));
- }
- const Vs = { tcb: bt, tencent: bt, aliyun: fe, private: Tt, dcloud: Tt, alipay: qt };
- let Gs = new class {
- init(e2) {
- let t2 = {};
- const n2 = Vs[e2.provider];
- if (!n2)
- throw new Error("未提供正确的provider参数");
- t2 = n2.init(e2), function(e3) {
- const t3 = {};
- e3.__dev__ = t3, t3.debugLog = "app" === C;
- const n3 = P;
- n3 && !n3.code && (t3.debugInfo = n3);
- const s2 = new v({ createPromise: function() {
- return Js(e3);
- } });
- t3.initLocalNetwork = function() {
- return s2.exec();
- };
- }(t2), zs(t2), Jn(t2), function(e3) {
- const t3 = e3.uploadFile;
- e3.uploadFile = function(e4) {
- return t3.call(this, e4);
- };
- }(t2), function(e3) {
- e3.database = function(t3) {
- if (t3 && Object.keys(t3).length > 0)
- return e3.init(t3).database();
- if (this._database)
- return this._database;
- const n3 = ss(rs, { uniClient: e3 });
- return this._database = n3, n3;
- }, e3.databaseForJQL = function(t3) {
- if (t3 && Object.keys(t3).length > 0)
- return e3.init(t3).databaseForJQL();
- if (this._databaseForJQL)
- return this._databaseForJQL;
- const n3 = ss(rs, { uniClient: e3, isJQL: true });
- return this._databaseForJQL = n3, n3;
- };
- }(t2), function(e3) {
- e3.getCurrentUserInfo = Rs, e3.chooseAndUploadFile = Ns.initChooseAndUploadFile(e3), Object.assign(e3, { get mixinDatacom() {
- return Ms(e3);
- } }), e3.SSEChannel = Hs, e3.initSecureNetworkByWeixin = $s(e3), e3.setCustomClientInfo = Bs, e3.importObject = qs(e3);
- }(t2);
- return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach((e3) => {
- if (!t2[e3])
- return;
- const n3 = t2[e3];
- t2[e3] = function() {
- return n3.apply(t2, Array.from(arguments));
- }, t2[e3] = (/* @__PURE__ */ function(e4, t3) {
- return function(n4) {
- let s2 = false;
- if ("callFunction" === t3) {
- const e5 = n4 && n4.type || c;
- s2 = e5 !== c;
- }
- const r2 = "callFunction" === t3 && !s2, i2 = this._initPromiseHub.exec();
- n4 = n4 || {};
- const { success: o2, fail: a2, complete: u2 } = ee(n4), l2 = i2.then(() => s2 ? Promise.resolve() : M(q(t3, "invoke"), n4)).then(() => e4.call(this, n4)).then((e5) => s2 ? Promise.resolve(e5) : M(q(t3, "success"), e5).then(() => M(q(t3, "complete"), e5)).then(() => (r2 && Y(j, { type: H, content: e5 }), Promise.resolve(e5))), (e5) => s2 ? Promise.reject(e5) : M(q(t3, "fail"), e5).then(() => M(q(t3, "complete"), e5)).then(() => (Y(j, { type: H, content: e5 }), Promise.reject(e5))));
- if (!(o2 || a2 || u2))
- return l2;
- l2.then((e5) => {
- o2 && o2(e5), u2 && u2(e5), r2 && Y(j, { type: H, content: e5 });
- }, (e5) => {
- a2 && a2(e5), u2 && u2(e5), r2 && Y(j, { type: H, content: e5 });
- });
- };
- }(t2[e3], e3)).bind(t2);
- }), t2.init = this.init, t2;
- }
- }();
- (() => {
- const e2 = T;
- let t2 = {};
- if (e2 && 1 === e2.length)
- t2 = e2[0], Gs = Gs.init(t2), Gs._isDefault = true;
- else {
- const t3 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"];
- let n2;
- n2 = e2 && e2.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : "应用未关联服务空间,请在uniCloud目录右键关联服务空间", t3.forEach((e3) => {
- Gs[e3] = function() {
- return console.error(n2), Promise.reject(new te({ code: "SYS_ERR", message: n2 }));
- };
- });
- }
- Object.assign(Gs, { get mixinDatacom() {
- return Ms(Gs);
- } }), xs(Gs), Gs.addInterceptor = N, Gs.removeInterceptor = D, Gs.interceptObject = F;
- })();
- var Ys = Gs;
- const _sfc_main$u = {
- name: "uni-data-select",
- mixins: [Ys.mixinDatacom || {}],
- props: {
- localdata: {
- type: Array,
- default() {
- return [];
- }
- },
- value: {
- type: [String, Number],
- default: ""
- },
- modelValue: {
- type: [String, Number],
- default: ""
- },
- label: {
- type: String,
- default: ""
- },
- placeholder: {
- type: String,
- default: "请选择"
- },
- emptyTips: {
- type: String,
- default: "无选项"
- },
- clear: {
- type: Boolean,
- default: true
- },
- defItem: {
- type: Number,
- default: 0
- },
- disabled: {
- type: Boolean,
- default: false
- },
- // 格式化输出 用法 field="_id as value, version as text, uni_platform as label" format="{label} - {text}"
- format: {
- type: String,
- default: ""
- },
- placement: {
- type: String,
- default: "bottom"
- }
- },
- data() {
- return {
- showSelector: false,
- current: "",
- mixinDatacomResData: [],
- apps: [],
- channels: [],
- cacheKey: "uni-data-select-lastSelectedValue"
- };
- },
- created() {
- this.debounceGet = this.debounce(() => {
- this.query();
- }, 300);
- if (this.collection && !this.localdata.length) {
- this.debounceGet();
- }
- },
- computed: {
- typePlaceholder() {
- const text = {
- "opendb-stat-app-versions": "版本",
- "opendb-app-channels": "渠道",
- "opendb-app-list": "应用"
- };
- const common = this.placeholder;
- const placeholder = text[this.collection];
- return placeholder ? common + placeholder : common;
- },
- valueCom() {
- return this.modelValue;
- },
- textShow() {
- let text = this.current;
- if (text.length > 10) {
- return text.slice(0, 25) + "...";
- }
- return text;
- },
- getOffsetByPlacement() {
- switch (this.placement) {
- case "top":
- return "bottom:calc(100% + 12px);";
- case "bottom":
- return "top:calc(100% + 12px);";
- }
- }
- },
- watch: {
- localdata: {
- immediate: true,
- handler(val, old) {
- if (Array.isArray(val) && old !== val) {
- this.mixinDatacomResData = val;
- }
- }
- },
- valueCom(val, old) {
- this.initDefVal();
- },
- mixinDatacomResData: {
- immediate: true,
- handler(val) {
- if (val.length) {
- this.initDefVal();
- }
- }
- }
- },
- methods: {
- debounce(fn, time = 100) {
- let timer = null;
- return function(...args) {
- if (timer)
- clearTimeout(timer);
- timer = setTimeout(() => {
- fn.apply(this, args);
- }, time);
- };
- },
- // 执行数据库查询
- query() {
- this.mixinDatacomEasyGet();
- },
- // 监听查询条件变更事件
- onMixinDatacomPropsChange() {
- if (this.collection) {
- this.debounceGet();
- }
- },
- initDefVal() {
- let defValue = "";
- if ((this.valueCom || this.valueCom === 0) && !this.isDisabled(this.valueCom)) {
- defValue = this.valueCom;
- } else {
- let strogeValue;
- if (this.collection) {
- strogeValue = this.getCache();
- }
- if (strogeValue || strogeValue === 0) {
- defValue = strogeValue;
- } else {
- let defItem = "";
- if (this.defItem > 0 && this.defItem <= this.mixinDatacomResData.length) {
- defItem = this.mixinDatacomResData[this.defItem - 1].value;
- }
- defValue = defItem;
- }
- if (defValue || defValue === 0) {
- this.emit(defValue);
- }
- }
- const def = this.mixinDatacomResData.find((item) => item.value === defValue);
- this.current = def ? this.formatItemName(def) : "";
- },
- /**
- * @param {[String, Number]} value
- * 判断用户给的 value 是否同时为禁用状态
- */
- isDisabled(value) {
- let isDisabled = false;
- this.mixinDatacomResData.forEach((item) => {
- if (item.value === value) {
- isDisabled = item.disable;
- }
- });
- return isDisabled;
- },
- clearVal() {
- this.emit("");
- if (this.collection) {
- this.removeCache();
- }
- },
- change(item) {
- if (!item.disable) {
- this.showSelector = false;
- this.current = this.formatItemName(item);
- this.emit(item.value);
- }
- },
- emit(val) {
- this.$emit("input", val);
- this.$emit("update:modelValue", val);
- this.$emit("change", val);
- if (this.collection) {
- this.setCache(val);
- }
- },
- toggleSelector() {
- if (this.disabled) {
- return;
- }
- this.showSelector = !this.showSelector;
- },
- formatItemName(item) {
- let {
- text,
- value,
- channel_code
- } = item;
- channel_code = channel_code ? `(${channel_code})` : "";
- if (this.format) {
- let str = "";
- str = this.format;
- for (let key in item) {
- str = str.replace(new RegExp(`{${key}}`, "g"), item[key]);
- }
- return str;
- } else {
- return this.collection.indexOf("app-list") > 0 ? `${text}(${value})` : text ? text : `未命名${channel_code}`;
- }
- },
- // 获取当前加载的数据
- getLoadData() {
- return this.mixinDatacomResData;
- },
- // 获取当前缓存key
- getCurrentCacheKey() {
- return this.collection;
- },
- // 获取缓存
- getCache(name = this.getCurrentCacheKey()) {
- let cacheData = uni.getStorageSync(this.cacheKey) || {};
- return cacheData[name];
- },
- // 设置缓存
- setCache(value, name = this.getCurrentCacheKey()) {
- let cacheData = uni.getStorageSync(this.cacheKey) || {};
- cacheData[name] = value;
- uni.setStorageSync(this.cacheKey, cacheData);
- },
- // 删除缓存
- removeCache(name = this.getCurrentCacheKey()) {
- let cacheData = uni.getStorageSync(this.cacheKey) || {};
- delete cacheData[name];
- uni.setStorageSync(this.cacheKey, cacheData);
- }
- }
- };
- function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-stat__select" }, [
- $props.label ? (vue.openBlock(), vue.createElementBlock(
- "span",
- {
- key: 0,
- class: "uni-label-text hide-on-phone"
- },
- vue.toDisplayString($props.label + ":"),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-stat-box", { "uni-stat__actived": $data.current }])
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-select", { "uni-select--disabled": $props.disabled }])
- },
- [
- vue.createElementVNode("view", {
- class: "uni-select__input-box",
- onClick: _cache[1] || (_cache[1] = (...args) => $options.toggleSelector && $options.toggleSelector(...args))
- }, [
- $data.current ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: "uni-select__input-text"
- },
- vue.toDisplayString($options.textShow),
- 1
- /* TEXT */
- )) : (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 1,
- class: "uni-select__input-text uni-select__input-placeholder"
- },
- vue.toDisplayString($options.typePlaceholder),
- 1
- /* TEXT */
- )),
- $data.current && $props.clear && !$props.disabled ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 2,
- onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args) => $options.clearVal && $options.clearVal(...args), ["stop"]))
- }, [
- vue.createVNode(_component_uni_icons, {
- type: "clear",
- color: "#c0c4cc",
- size: "24"
- })
- ])) : (vue.openBlock(), vue.createElementBlock("view", { key: 3 }, [
- vue.createVNode(_component_uni_icons, {
- type: $data.showSelector ? "top" : "bottom",
- size: "14",
- color: "#999"
- }, null, 8, ["type"])
- ]))
- ]),
- $data.showSelector ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "uni-select--mask",
- onClick: _cache[2] || (_cache[2] = (...args) => $options.toggleSelector && $options.toggleSelector(...args))
- })) : vue.createCommentVNode("v-if", true),
- $data.showSelector ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 1,
- class: "uni-select__selector",
- style: vue.normalizeStyle($options.getOffsetByPlacement)
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass($props.placement == "bottom" ? "uni-popper__arrow_bottom" : "uni-popper__arrow_top")
- },
- null,
- 2
- /* CLASS */
- ),
- vue.createElementVNode("scroll-view", {
- "scroll-y": "true",
- class: "uni-select__selector-scroll"
- }, [
- $data.mixinDatacomResData.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "uni-select__selector-empty"
- }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString($props.emptyTips),
- 1
- /* TEXT */
- )
- ])) : (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- { key: 1 },
- vue.renderList($data.mixinDatacomResData, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "uni-select__selector-item",
- key: index,
- onClick: ($event) => $options.change(item)
- }, [
- vue.createElementVNode(
- "text",
- {
- class: vue.normalizeClass({ "uni-select__selector__disabled": item.disable })
- },
- vue.toDisplayString($options.formatItemName(item)),
- 3
- /* TEXT, CLASS */
- )
- ], 8, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ],
- 2
- /* CLASS */
- )
- ],
- 2
- /* CLASS */
- )
- ]);
- }
- const __easycom_0$6 = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$t], ["__scopeId", "data-v-ddf9e0a2"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue"]]);
- const isObject = (val) => val !== null && typeof val === "object";
- const defaultDelimiters = ["{", "}"];
- class BaseFormatter {
- constructor() {
- this._caches = /* @__PURE__ */ Object.create(null);
- }
- interpolate(message, values, delimiters = defaultDelimiters) {
- if (!values) {
- return [message];
- }
- let tokens = this._caches[message];
- if (!tokens) {
- tokens = parse(message, delimiters);
- this._caches[message] = tokens;
- }
- return compile(tokens, values);
- }
- }
- const RE_TOKEN_LIST_VALUE = /^(?:\d)+/;
- const RE_TOKEN_NAMED_VALUE = /^(?:\w)+/;
- function parse(format, [startDelimiter, endDelimiter]) {
- const tokens = [];
- let position = 0;
- let text = "";
- while (position < format.length) {
- let char = format[position++];
- if (char === startDelimiter) {
- if (text) {
- tokens.push({ type: "text", value: text });
- }
- text = "";
- let sub = "";
- char = format[position++];
- while (char !== void 0 && char !== endDelimiter) {
- sub += char;
- char = format[position++];
- }
- const isClosed = char === endDelimiter;
- const type = RE_TOKEN_LIST_VALUE.test(sub) ? "list" : isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ? "named" : "unknown";
- tokens.push({ value: sub, type });
- } else {
- text += char;
- }
- }
- text && tokens.push({ type: "text", value: text });
- return tokens;
- }
- function compile(tokens, values) {
- const compiled = [];
- let index = 0;
- const mode = Array.isArray(values) ? "list" : isObject(values) ? "named" : "unknown";
- if (mode === "unknown") {
- return compiled;
- }
- while (index < tokens.length) {
- const token = tokens[index];
- switch (token.type) {
- case "text":
- compiled.push(token.value);
- break;
- case "list":
- compiled.push(values[parseInt(token.value, 10)]);
- break;
- case "named":
- if (mode === "named") {
- compiled.push(values[token.value]);
- } else {
- {
- console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);
- }
- }
- break;
- case "unknown":
- {
- console.warn(`Detect 'unknown' type of token!`);
- }
- break;
- }
- index++;
- }
- return compiled;
- }
- const LOCALE_ZH_HANS = "zh-Hans";
- const LOCALE_ZH_HANT = "zh-Hant";
- const LOCALE_EN = "en";
- const LOCALE_FR = "fr";
- const LOCALE_ES = "es";
- const hasOwnProperty = Object.prototype.hasOwnProperty;
- const hasOwn = (val, key) => hasOwnProperty.call(val, key);
- const defaultFormatter = new BaseFormatter();
- function include(str, parts) {
- return !!parts.find((part) => str.indexOf(part) !== -1);
- }
- function startsWith(str, parts) {
- return parts.find((part) => str.indexOf(part) === 0);
- }
- function normalizeLocale(locale, messages2) {
- if (!locale) {
- return;
- }
- locale = locale.trim().replace(/_/g, "-");
- if (messages2 && messages2[locale]) {
- return locale;
- }
- locale = locale.toLowerCase();
- if (locale === "chinese") {
- return LOCALE_ZH_HANS;
- }
- if (locale.indexOf("zh") === 0) {
- if (locale.indexOf("-hans") > -1) {
- return LOCALE_ZH_HANS;
- }
- if (locale.indexOf("-hant") > -1) {
- return LOCALE_ZH_HANT;
- }
- if (include(locale, ["-tw", "-hk", "-mo", "-cht"])) {
- return LOCALE_ZH_HANT;
- }
- return LOCALE_ZH_HANS;
- }
- let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];
- if (messages2 && Object.keys(messages2).length > 0) {
- locales = Object.keys(messages2);
- }
- const lang = startsWith(locale, locales);
- if (lang) {
- return lang;
- }
- }
- class I18n {
- constructor({ locale, fallbackLocale, messages: messages2, watcher, formater: formater2 }) {
- this.locale = LOCALE_EN;
- this.fallbackLocale = LOCALE_EN;
- this.message = {};
- this.messages = {};
- this.watchers = [];
- if (fallbackLocale) {
- this.fallbackLocale = fallbackLocale;
- }
- this.formater = formater2 || defaultFormatter;
- this.messages = messages2 || {};
- this.setLocale(locale || LOCALE_EN);
- if (watcher) {
- this.watchLocale(watcher);
- }
- }
- setLocale(locale) {
- const oldLocale = this.locale;
- this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;
- if (!this.messages[this.locale]) {
- this.messages[this.locale] = {};
- }
- this.message = this.messages[this.locale];
- if (oldLocale !== this.locale) {
- this.watchers.forEach((watcher) => {
- watcher(this.locale, oldLocale);
- });
- }
- }
- getLocale() {
- return this.locale;
- }
- watchLocale(fn) {
- const index = this.watchers.push(fn) - 1;
- return () => {
- this.watchers.splice(index, 1);
- };
- }
- add(locale, message, override = true) {
- const curMessages = this.messages[locale];
- if (curMessages) {
- if (override) {
- Object.assign(curMessages, message);
- } else {
- Object.keys(message).forEach((key) => {
- if (!hasOwn(curMessages, key)) {
- curMessages[key] = message[key];
- }
- });
- }
- } else {
- this.messages[locale] = message;
- }
- }
- f(message, values, delimiters) {
- return this.formater.interpolate(message, values, delimiters).join("");
- }
- t(key, locale, values) {
- let message = this.message;
- if (typeof locale === "string") {
- locale = normalizeLocale(locale, this.messages);
- locale && (message = this.messages[locale]);
- } else {
- values = locale;
- }
- if (!hasOwn(message, key)) {
- console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);
- return key;
- }
- return this.formater.interpolate(message[key], values).join("");
- }
- }
- function watchAppLocale(appVm, i18n) {
- if (appVm.$watchLocale) {
- appVm.$watchLocale((newLocale) => {
- i18n.setLocale(newLocale);
- });
- } else {
- appVm.$watch(() => appVm.$locale, (newLocale) => {
- i18n.setLocale(newLocale);
- });
- }
- }
- function getDefaultLocale() {
- if (typeof uni !== "undefined" && uni.getLocale) {
- return uni.getLocale();
- }
- if (typeof global !== "undefined" && global.getLocale) {
- return global.getLocale();
- }
- return LOCALE_EN;
- }
- function initVueI18n(locale, messages2 = {}, fallbackLocale, watcher) {
- if (typeof locale !== "string") {
- const options = [
- messages2,
- locale
- ];
- locale = options[0];
- messages2 = options[1];
- }
- if (typeof locale !== "string") {
- locale = getDefaultLocale();
- }
- if (typeof fallbackLocale !== "string") {
- fallbackLocale = typeof __uniConfig !== "undefined" && __uniConfig.fallbackLocale || LOCALE_EN;
- }
- const i18n = new I18n({
- locale,
- fallbackLocale,
- messages: messages2,
- watcher
- });
- let t2 = (key, values) => {
- if (typeof getApp !== "function") {
- t2 = function(key2, values2) {
- return i18n.t(key2, values2);
- };
- } else {
- let isWatchedAppLocale = false;
- t2 = function(key2, values2) {
- const appVm = getApp().$vm;
- if (appVm) {
- appVm.$locale;
- if (!isWatchedAppLocale) {
- isWatchedAppLocale = true;
- watchAppLocale(appVm, i18n);
- }
- }
- return i18n.t(key2, values2);
- };
- }
- return t2(key, values);
- };
- return {
- i18n,
- f(message, values, delimiters) {
- return i18n.f(message, values, delimiters);
- },
- t(key, values) {
- return t2(key, values);
- },
- add(locale2, message, override = true) {
- return i18n.add(locale2, message, override);
- },
- watch(fn) {
- return i18n.watchLocale(fn);
- },
- getLocale() {
- return i18n.getLocale();
- },
- setLocale(newLocale) {
- return i18n.setLocale(newLocale);
- }
- };
- }
- const en$1 = {
- "uni-load-more.contentdown": "Pull up to show more",
- "uni-load-more.contentrefresh": "loading...",
- "uni-load-more.contentnomore": "No more data"
- };
- const zhHans$1 = {
- "uni-load-more.contentdown": "上拉显示更多",
- "uni-load-more.contentrefresh": "正在加载...",
- "uni-load-more.contentnomore": "没有更多数据了"
- };
- const zhHant$1 = {
- "uni-load-more.contentdown": "上拉顯示更多",
- "uni-load-more.contentrefresh": "正在加載...",
- "uni-load-more.contentnomore": "沒有更多數據了"
- };
- const messages$1 = {
- en: en$1,
- "zh-Hans": zhHans$1,
- "zh-Hant": zhHant$1
- };
- let platform;
- setTimeout(() => {
- platform = uni.getSystemInfoSync().platform;
- }, 16);
- const {
- t: t$1
- } = initVueI18n(messages$1);
- const _sfc_main$t = {
- name: "UniLoadMore",
- emits: ["clickLoadMore"],
- props: {
- status: {
- // 上拉的状态:more-loading前;loading-loading中;noMore-没有更多了
- type: String,
- default: "more"
- },
- showIcon: {
- type: Boolean,
- default: true
- },
- iconType: {
- type: String,
- default: "auto"
- },
- iconSize: {
- type: Number,
- default: 24
- },
- color: {
- type: String,
- default: "#777777"
- },
- contentText: {
- type: Object,
- default() {
- return {
- contentdown: "",
- contentrefresh: "",
- contentnomore: ""
- };
- }
- },
- showText: {
- type: Boolean,
- default: true
- }
- },
- data() {
- return {
- webviewHide: false,
- platform,
- imgBase64: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzlBMzU3OTlEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzlBMzU3OUFEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOUEzNTc5N0Q5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOUEzNTc5OEQ5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt+ALSwAAA6CSURBVHja1FsLkFZVHb98LM+F5bHL8khA1iSeiyQBCRM+YGqKUnnJTDLGI0BGZlKDIU2MMglUiDApEZvSsZnQtBRJtKwQNKQMFYeRDR10WOLd8ljYXdh+v8v5fR3Od+797t1dnOnO/Ofce77z+J//+b/P+ZqtXbs2sJ9MJhNUV1cHJ06cCJo3bx7EPc2aNcvpy7pWrVoF+/fvDyoqKoI2bdoE9fX1F7TjN8a+EXBn/fkfvw942Tf+wYMHg9mzZwfjxo0LDhw4EPa1x2MbFw/fOGfPng1qa2tzcCkILsLDydq2bRsunpOTMM7TD/W/tZDZhPdeKD+yGxHhdu3aBV27dg3OnDlzMVANMheLAO3btw8KCwuDmpoaX5OxbgUIMEq7K8IcPnw4KCsrC/r37x8cP378/4cAXAB3vqSkJMuiDhTkw+XcuXNhOWbMmKBly5YhUT8xArhyFvP0BfwRsAuwxJZJsm/nzp2DTp06he/OU+cZ64K6o0ePBkOHDg2GDx8e6gEbJ5Q/NHNuAJQ1hgBeHUDlR7nVTkY8rQAvAi4z34vR/mPs1FoRsaCgIJThI0eOBC1atEiFGGV+5MiRoS45efJkqFjJFXV1dQuA012m2WcwTw98fy6CqBdsaiIO4CScrGPHjvk4odhavPquRtFWXEC25VgkREKOCh/qDSq+vn37htzD/mZTOmOc5U7zKzBPEedygWshcDyWvs30igAbU+6oyMgJBCFhwQE0fccxN60Ay9iebbjoDh06hMowjQxT4fXq1SskArmHZpkArvixp/kWzHdMeArExSJEaiXIjjRjRJ4DaAGWpibLzXN3Fm1vA5teBgh3j1Rv3bp1YgKwPdmf2p9zcyNYYgPKMfY0T5f5nNYdw158nJ8QawW4CLKwiOBSEgO/hok2eBydR+3dYH+PLxA5J8Vv0KBBwenTp0P2JWAx6+yFEBfs8lMY+y0SWMBNI9E4ThKi58VKTg3FQZS1RQF1cz27eC0QHMu+3E0SkUowjhVt5VdaWhp07949ZHv2Qd1EjDXM2cla1M0nl3GxAs3J9yREzyTdFVKVFOaE9qRA8GM0WebRuo9JGZKA7Mv2SeS/Z8+eoQ9BArMfFrLGo6jvxbhHbJZnKX2Rzz1O7QhJJ9Cs2ZMaWIyq/zhdeqPNfIoHd58clIQD+JSXl4dKlyIAuBdVXZwFVWKspSSoxE++h8x4k3uCnEhE4I5KwRiFWGOU0QWKiCYLbdoRMRKAu2kQ9vkfLU6dOhX06NEjlH+yMRZSinnuyWnYosVcji8CEA/6Cg2JF+IIUBqnGKUTCNwtwBN4f89RiK1R96DEgO2o0NDmtEdvVFdVVYV+P3UAPUEs6GFwV3PHmXkD4vh74iDFJysVI/MlaQhwKeBNTLYX5VuA8T4/gZxA4MRGFxDB6R7OmYPfyykGRJbyie+XnGYnQIC/coH9+vULiYrxrkL9ZA9+0ykaHIfEpM7ge8TiJ2CsHYwyMfafAF1yCGBHYIbCVDjDjKt7BeB51D+LgQa6OkG7IDYEEtvQ7lnXLKLtLdLuJBpE4gPUXcW2+PkZwOex+4cGDhwYDBkyRL7/HFcEwUGPo/8uWRUpYnfxGHco8HkewLHLyYmAawAPuIFZxhOpDfJQ8gbUv41yORAptMWBNr6oqMhWird5+u+iHmBb2nhjDV7HWBNQTgK8y11l5NetWzc5ULscAtSj7nbNI0skhWeUZCc0W4nyH/jO4Vz0u1IeYhbk4AiwM6tjxIWByHsoZ9qcIBPJd/y+DwPfBESOmCa/QF3WiZHucLlEDpNxcNhmheEOPgdQNx6/VZFQzFZ5TN08AHXQt2Ii3EdyFuUsPtTcGPhW5iMiCNELvz+Gdn9huG4HUJaW/w3g0wxV0XaG7arG2WeKiUWYM4Y7GO5ezshTARbbWGw/DvXkpp/ivVvE0JVoMxN4rpGzJMhE5Pl+xlATsDIqikP9F9D2z3h9nOksEUFhK+qO4rcPkoalMQ/HqJLIyb3F3JdjrCcw1yZ8joyJLR5gCo54etlag7qIoeNh1N1BRYj3DTFJ0elotxPlVzkGuYAmL0VSJVGAJA41c4Z6A3BzTLfn0HYwYKEI6CUAMzZEWvLsIcQOo1AmmyyM72nHJCfYsogflGV6jEk9vyQZXSuq6w4c16NsGcGZbwOPr+H1RkOk2LEzjNepxQkihHSCQ4ynAYNRx2zMKV92CQMWqj8J0BRE8EShxRFN6YrfCRhC0x3r/Zm4IbQCcmJoV0kMamllccR6FjHqUC5F2R/wS2dcymOlfAKOS4KmzQb5cpNC2MC7JhVn5wjXoJ44rYhLh8n0eXOCorJxa7POjbSlCGVczr34/RsAmrcvo9s+wGp3tzVhntxiXiJ4nvEYb4FJkf0O8HocAePmLvCxnL0AORraVekJk6TYjDabRVXfRE2lCN1h6ZQRN1+InUbsCpKwoBZHh0dODN9JBCUffItXxEavTQkUtnfTVAplCWL3JISz29h4NjotnuSsQKJCk8dF+kJR6RARjrqFVmfPnj3ZbK8cIJ0msd6jgHPGtfVTQ8VLmlvh4mct9sobRmPic0DyDQQnx/NlfYUgyz59+oScsH379pAwXABD32nTpoUHIToESeI5mnbE/UqDdyLcafEBf2MCqgC7NwxIbMREJQ0g4D4sfJwnD+AmRrII05cfMWJE+L1169bQr+fip06dGp4oJ83lmYd5wj/EmMa4TaHivo4EeCguYZBnkB5g2aWA69OIEnUHOaGysjIYMGBAMGnSpODYsWPZwCpFmm4lNq+4gSLQA7jcX8DwtjEyRC8wjabnXEx9kfWnTJkSJkAo90xpJVV+FmcVNeYAF5zWngS4C4O91MBxmAv8blLEpbjI5sz9MTdAhcgkCT1RO8mZkAjfiYpTEvStAS53Uw1vAiUGgZ3GpuQEYvoiBqlIan7kSDHnTwJQFNiPu0+5VxCVYhcZIjNrdXUDdp+Eq5AZ3Gkg8QAyVZRZIk4Tl4QAbF9cXJxNYZMAtAokgs4BrNxEpCtteXg7DDTMDKYNSuQdKsnJBek7HxewvxaosWxLYXtw+cJp18217wql4aKCfBNoEu0O5VU+PhctJ0YeXD4C6JQpyrlpSLTojpGGGN5YwNziChdIZLk4lvLcFJ9jMX3QdiImY9bmGQU+TRUL5CHITTRlgF8D9ouD1MfmLoEPl5xokIumZ2cfgMpHt47IW9N64Hsh7wQYYjyIugWuF5fCqYncXRd5vPMWyizzvhi/32+nvG0dZc9vR6fZOu0md5e+uC408FvKSIOZwXlGvxPv95izA2Vtvg1xKFWARI+vMX66HUhpQQb643uW1bSjuTWyw2SBvDrBvjFic1eGGlz5esq3ko9uSIlBRqPuFcCv8F4WIcN12nVaBd0SaYwI6PDDImR11JkqgHcPmQssjxIn6bUshygDFJUTxPMpHk+jfjPgupgdnYV2R/g7xSjtpah8RJBewhwf0gGK6XI92u4wXFEU40afJ4DN4h5LcAd+40HI3JgJecuT0c062W0i2hQJUTcxan3/CMW1PF2K6bbA+Daz4xRs1D3Br1Cm0OihKCqizW78/nXAF/G5TXrEcVzaNMH6CyMswqsAHqDyDLEyou8lwOXnKF8DjI6KjV3KzMBiXkDH8ij/H214J5A596ekrZ3F0zXlWeL7+P5eUrNo3/QwC15uxthuzidy7DzKRwEDaAViiDgKbTbz7CJnzo0bN7pIfIiid8SuPwn25o3QCmpnyjlZkyxPP8EomCJzrGb7GJMx7tNsq4MT2xMUYaiErZOluTzKsnz3gwCeCZyVRZJfYplNEokEjwrPtxlxjeYAk+F1F74VAzPxQRNYYdtpOUvWs8J1sGhBJMNsb7igN8plJs1eSmLIhLKE4rvaCX27gOhLpLOsIzJ7qn/i+wZzcvSOZ23/du8TZjwV8zHIXoP4R3ifBxiFz1dcVpa3aPntPE+c6TmIWE9EtcMmAcPdWAhYhAXxcLOQi9L1WhD1Sc8p1d2oL7XGiRKp8F4A2i8K/nfI+y/gsTDJ/YC/8+AD5Uh04KHiGl+cIFPnBDDrPMjwRGkLXyxO4VGbfQWnDH2v0bVWE3C9QOXlepbgjEfIJQI6XDG3z5ahD9cw2pS78ipB85wyScNTvsVzlzzhL8/jRrnmVjfFJK/m3m4nj9vbgQTguT8XZTjsm672R5uJKEaQmBI/c58gyus8ZDagLpEVSJBIyHp4jn++xqPV71OgQgJYEWOtZ/haxRtKmWOBu8xdBLftWltsY84zE6WIEy/eIOWL+BaayMx+KHtL7EAkqdNDLiEXmEMUHniedtJqg9HmZtfvt26vNi0BdG3Ft3g8ZOf7PAu59TxtzivLNIekyi+wD1i8CuUiD9FXAa8C+/xS3JPmZnomyc7H+fb4/Se0bk41Fel621r4cgVxbq91V4jVqwB7HTe2M7jgB+QWHavZkDRPmZcASoZEmBx6i75bGjPcMdL4/VKGFAGWZkGzPG0XAbdL9A81G5LOmUnC9hHKJeO7dcUMjblSl12867ElFTtaGl20xvvLGPdVz/8TVuU7y0x1PG7vtNg24oz9Uo/Z412++VFWI7Fcog9tu9Lm6gvRmIPv9x1xmQAu6RDkXtbOtlGEmpgD5Nvnyc0dcv0EE6cfdi1HmhMf9wDF3k3gtRvEedhxjpgfqPb9PU9iEJHnyOUA7bQUXh6kq/D7l2iTjWv7XOD530BDr8jIrus+srXjt4MzumJMHuTsBa63YKE1+RR5lBjEikCCnWKWiHdzOgKO+nRIBAF88za/IFmJ3eMZov4CYxGBabcpGL8EYx+SeMXJeRwHNsV/h+vdxeuhEpN3ZyNY78Gm2fknJxVGhyjixPiQvVkNzT1elD9Py/aTAL64Hb9vcYmC9zfdXdT/C1LeGbg4rnBaAihDFJH12W5ulfNCNe/xTsP3bp8ikzJs5BF+5PNfAQYAPaseTdsEcaYAAAAASUVORK5CYII="
- };
- },
- computed: {
- iconSnowWidth() {
- return (Math.floor(this.iconSize / 24) || 1) * 2;
- },
- contentdownText() {
- return this.contentText.contentdown || t$1("uni-load-more.contentdown");
- },
- contentrefreshText() {
- return this.contentText.contentrefresh || t$1("uni-load-more.contentrefresh");
- },
- contentnomoreText() {
- return this.contentText.contentnomore || t$1("uni-load-more.contentnomore");
- }
- },
- mounted() {
- var pages2 = getCurrentPages();
- var page = pages2[pages2.length - 1];
- var currentWebview = page.$getAppWebview();
- currentWebview.addEventListener("hide", () => {
- this.webviewHide = true;
- });
- currentWebview.addEventListener("show", () => {
- this.webviewHide = false;
- });
- },
- methods: {
- onClick() {
- this.$emit("clickLoadMore", {
- detail: {
- status: this.status
- }
- });
- }
- }
- };
- function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "uni-load-more",
- onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args))
- }, [
- !$data.webviewHide && ($props.iconType === "circle" || $props.iconType === "auto" && $data.platform === "android") && $props.status === "loading" && $props.showIcon ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- style: vue.normalizeStyle({ width: $props.iconSize + "px", height: $props.iconSize + "px" }),
- class: "uni-load-more__img uni-load-more__img--android-MP"
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: "uni-load-more__img-icon",
- style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
- },
- null,
- 4
- /* STYLE */
- ),
- vue.createElementVNode(
- "view",
- {
- class: "uni-load-more__img-icon",
- style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
- },
- null,
- 4
- /* STYLE */
- ),
- vue.createElementVNode(
- "view",
- {
- class: "uni-load-more__img-icon",
- style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
- },
- null,
- 4
- /* STYLE */
- )
- ],
- 4
- /* STYLE */
- )) : !$data.webviewHide && $props.status === "loading" && $props.showIcon ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 1,
- style: vue.normalizeStyle({ width: $props.iconSize + "px", height: $props.iconSize + "px" }),
- class: "uni-load-more__img uni-load-more__img--ios-H5"
- },
- [
- vue.createElementVNode("image", {
- src: $data.imgBase64,
- mode: "widthFix"
- }, null, 8, ["src"])
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true),
- $props.showText ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 2,
- class: "uni-load-more__text",
- style: vue.normalizeStyle({ color: $props.color })
- },
- vue.toDisplayString($props.status === "more" ? $options.contentdownText : $props.status === "loading" ? $options.contentrefreshText : $options.contentnomoreText),
- 5
- /* TEXT, STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const __easycom_0$5 = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$s], ["__scopeId", "data-v-9245e42c"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"]]);
- const _sfc_main$s = {
- name: "uniDataChecklist",
- mixins: [Ys.mixinDatacom || {}],
- emits: ["input", "update:modelValue", "change"],
- props: {
- mode: {
- type: String,
- default: "default"
- },
- multiple: {
- type: Boolean,
- default: false
- },
- value: {
- type: [Array, String, Number],
- default() {
- return "";
- }
- },
- // TODO vue3
- modelValue: {
- type: [Array, String, Number],
- default() {
- return "";
- }
- },
- localdata: {
- type: Array,
- default() {
- return [];
- }
- },
- min: {
- type: [Number, String],
- default: ""
- },
- max: {
- type: [Number, String],
- default: ""
- },
- wrap: {
- type: Boolean,
- default: false
- },
- icon: {
- type: String,
- default: "left"
- },
- selectedColor: {
- type: String,
- default: ""
- },
- selectedTextColor: {
- type: String,
- default: ""
- },
- emptyText: {
- type: String,
- default: "暂无数据"
- },
- disabled: {
- type: Boolean,
- default: false
- },
- map: {
- type: Object,
- default() {
- return {
- text: "text",
- value: "value"
- };
- }
- }
- },
- watch: {
- localdata: {
- handler(newVal) {
- this.range = newVal;
- this.dataList = this.getDataList(this.getSelectedValue(newVal));
- },
- deep: true
- },
- mixinDatacomResData(newVal) {
- this.range = newVal;
- this.dataList = this.getDataList(this.getSelectedValue(newVal));
- },
- value(newVal) {
- this.dataList = this.getDataList(newVal);
- },
- modelValue(newVal) {
- this.dataList = this.getDataList(newVal);
- }
- },
- data() {
- return {
- dataList: [],
- range: [],
- contentText: {
- contentdown: "查看更多",
- contentrefresh: "加载中",
- contentnomore: "没有更多"
- },
- isLocal: true,
- styles: {
- selectedColor: "#2979ff",
- selectedTextColor: "#666"
- },
- isTop: 0
- };
- },
- computed: {
- dataValue() {
- if (this.value === "")
- return this.modelValue;
- if (this.modelValue === "")
- return this.value;
- return this.value;
- }
- },
- created() {
- if (this.localdata && this.localdata.length !== 0) {
- this.isLocal = true;
- this.range = this.localdata;
- this.dataList = this.getDataList(this.getSelectedValue(this.range));
- } else {
- if (this.collection) {
- this.isLocal = false;
- this.loadData();
- }
- }
- },
- methods: {
- loadData() {
- this.mixinDatacomGet().then((res) => {
- this.mixinDatacomResData = res.result.data;
- if (this.mixinDatacomResData.length === 0) {
- this.isLocal = false;
- this.mixinDatacomErrorMessage = this.emptyText;
- } else {
- this.isLocal = true;
- }
- }).catch((err) => {
- this.mixinDatacomErrorMessage = err.message;
- });
- },
- /**
- * 获取父元素实例
- */
- getForm(name = "uniForms") {
- let parent = this.$parent;
- let parentName = parent.$options.name;
- while (parentName !== name) {
- parent = parent.$parent;
- if (!parent)
- return false;
- parentName = parent.$options.name;
- }
- return parent;
- },
- change(e2) {
- const values = e2.detail.value;
- let detail = {
- value: [],
- data: []
- };
- if (this.multiple) {
- this.range.forEach((item) => {
- if (values.includes(item[this.map.value] + "")) {
- detail.value.push(item[this.map.value]);
- detail.data.push(item);
- }
- });
- } else {
- const range = this.range.find((item) => item[this.map.value] + "" === values);
- if (range) {
- detail = {
- value: range[this.map.value],
- data: range
- };
- }
- }
- this.$emit("input", detail.value);
- this.$emit("update:modelValue", detail.value);
- this.$emit("change", {
- detail
- });
- if (this.multiple) {
- this.dataList = this.getDataList(detail.value, true);
- } else {
- this.dataList = this.getDataList(detail.value);
- }
- },
- /**
- * 获取渲染的新数组
- * @param {Object} value 选中内容
- */
- getDataList(value) {
- let dataList = JSON.parse(JSON.stringify(this.range));
- let list = [];
- if (this.multiple) {
- if (!Array.isArray(value)) {
- value = [];
- }
- }
- dataList.forEach((item, index) => {
- item.disabled = item.disable || item.disabled || false;
- if (this.multiple) {
- if (value.length > 0) {
- let have = value.find((val) => val === item[this.map.value]);
- item.selected = have !== void 0;
- } else {
- item.selected = false;
- }
- } else {
- item.selected = value === item[this.map.value];
- }
- list.push(item);
- });
- return this.setRange(list);
- },
- /**
- * 处理最大最小值
- * @param {Object} list
- */
- setRange(list) {
- let selectList = list.filter((item) => item.selected);
- let min = Number(this.min) || 0;
- let max = Number(this.max) || "";
- list.forEach((item, index) => {
- if (this.multiple) {
- if (selectList.length <= min) {
- let have = selectList.find((val) => val[this.map.value] === item[this.map.value]);
- if (have !== void 0) {
- item.disabled = true;
- }
- }
- if (selectList.length >= max && max !== "") {
- let have = selectList.find((val) => val[this.map.value] === item[this.map.value]);
- if (have === void 0) {
- item.disabled = true;
- }
- }
- }
- this.setStyles(item, index);
- list[index] = item;
- });
- return list;
- },
- /**
- * 设置 class
- * @param {Object} item
- * @param {Object} index
- */
- setStyles(item, index) {
- item.styleBackgroud = this.setStyleBackgroud(item);
- item.styleIcon = this.setStyleIcon(item);
- item.styleIconText = this.setStyleIconText(item);
- item.styleRightIcon = this.setStyleRightIcon(item);
- },
- /**
- * 获取选中值
- * @param {Object} range
- */
- getSelectedValue(range) {
- if (!this.multiple)
- return this.dataValue;
- let selectedArr = [];
- range.forEach((item) => {
- if (item.selected) {
- selectedArr.push(item[this.map.value]);
- }
- });
- return this.dataValue.length > 0 ? this.dataValue : selectedArr;
- },
- /**
- * 设置背景样式
- */
- setStyleBackgroud(item) {
- let styles = {};
- let selectedColor = this.selectedColor ? this.selectedColor : "#2979ff";
- if (this.selectedColor) {
- if (this.mode !== "list") {
- styles["border-color"] = item.selected ? selectedColor : "#DCDFE6";
- }
- if (this.mode === "tag") {
- styles["background-color"] = item.selected ? selectedColor : "#f5f5f5";
- }
- }
- let classles = "";
- for (let i2 in styles) {
- classles += `${i2}:${styles[i2]};`;
- }
- return classles;
- },
- setStyleIcon(item) {
- let styles = {};
- let classles = "";
- if (this.selectedColor) {
- let selectedColor = this.selectedColor ? this.selectedColor : "#2979ff";
- styles["background-color"] = item.selected ? selectedColor : "#fff";
- styles["border-color"] = item.selected ? selectedColor : "#DCDFE6";
- if (!item.selected && item.disabled) {
- styles["background-color"] = "#F2F6FC";
- styles["border-color"] = item.selected ? selectedColor : "#DCDFE6";
- }
- }
- for (let i2 in styles) {
- classles += `${i2}:${styles[i2]};`;
- }
- return classles;
- },
- setStyleIconText(item) {
- let styles = {};
- let classles = "";
- if (this.selectedColor) {
- let selectedColor = this.selectedColor ? this.selectedColor : "#2979ff";
- if (this.mode === "tag") {
- styles.color = item.selected ? this.selectedTextColor ? this.selectedTextColor : "#fff" : "#666";
- } else {
- styles.color = item.selected ? this.selectedTextColor ? this.selectedTextColor : selectedColor : "#666";
- }
- if (!item.selected && item.disabled) {
- styles.color = "#999";
- }
- }
- for (let i2 in styles) {
- classles += `${i2}:${styles[i2]};`;
- }
- return classles;
- },
- setStyleRightIcon(item) {
- let styles = {};
- let classles = "";
- if (this.mode === "list") {
- styles["border-color"] = item.selected ? this.styles.selectedColor : "#DCDFE6";
- }
- for (let i2 in styles) {
- classles += `${i2}:${styles[i2]};`;
- }
- return classles;
- }
- }
- };
- function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_load_more = resolveEasycom(vue.resolveDynamicComponent("uni-load-more"), __easycom_0$5);
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: "uni-data-checklist",
- style: vue.normalizeStyle({ "margin-top": $data.isTop + "px" })
- },
- [
- !$data.isLocal ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "uni-data-loading"
- }, [
- !_ctx.mixinDatacomErrorMessage ? (vue.openBlock(), vue.createBlock(_component_uni_load_more, {
- key: 0,
- status: "loading",
- iconType: "snow",
- iconSize: 18,
- "content-text": $data.contentText
- }, null, 8, ["content-text"])) : (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 1 },
- vue.toDisplayString(_ctx.mixinDatacomErrorMessage),
- 1
- /* TEXT */
- ))
- ])) : (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 1 },
- [
- $props.multiple ? (vue.openBlock(), vue.createElementBlock(
- "checkbox-group",
- {
- key: 0,
- class: vue.normalizeClass(["checklist-group", { "is-list": $props.mode === "list" || $props.wrap }]),
- onChange: _cache[0] || (_cache[0] = (...args) => $options.change && $options.change(...args))
- },
- [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($data.dataList, (item, index) => {
- return vue.openBlock(), vue.createElementBlock(
- "label",
- {
- class: vue.normalizeClass(["checklist-box", ["is--" + $props.mode, item.selected ? "is-checked" : "", $props.disabled || !!item.disabled ? "is-disable" : "", index !== 0 && $props.mode === "list" ? "is-list-border" : ""]]),
- style: vue.normalizeStyle(item.styleBackgroud),
- key: index
- },
- [
- vue.createElementVNode("checkbox", {
- class: "hidden",
- hidden: "",
- disabled: $props.disabled || !!item.disabled,
- value: item[$props.map.value] + "",
- checked: item.selected
- }, null, 8, ["disabled", "value", "checked"]),
- $props.mode !== "tag" && $props.mode !== "list" || $props.mode === "list" && $props.icon === "left" ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: "checkbox__inner",
- style: vue.normalizeStyle(item.styleIcon)
- },
- [
- vue.createElementVNode("view", { class: "checkbox__inner-icon" })
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["checklist-content", { "list-content": $props.mode === "list" && $props.icon === "left" }])
- },
- [
- vue.createElementVNode(
- "text",
- {
- class: "checklist-text",
- style: vue.normalizeStyle(item.styleIconText)
- },
- vue.toDisplayString(item[$props.map.text]),
- 5
- /* TEXT, STYLE */
- ),
- $props.mode === "list" && $props.icon === "right" ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: "checkobx__list",
- style: vue.normalizeStyle(item.styleBackgroud)
- },
- null,
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ],
- 2
- /* CLASS */
- )
- ],
- 6
- /* CLASS, STYLE */
- );
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ],
- 34
- /* CLASS, NEED_HYDRATION */
- )) : (vue.openBlock(), vue.createElementBlock(
- "radio-group",
- {
- key: 1,
- class: vue.normalizeClass(["checklist-group", { "is-list": $props.mode === "list", "is-wrap": $props.wrap }]),
- onChange: _cache[1] || (_cache[1] = (...args) => $options.change && $options.change(...args))
- },
- [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($data.dataList, (item, index) => {
- return vue.openBlock(), vue.createElementBlock(
- "label",
- {
- class: vue.normalizeClass(["checklist-box", ["is--" + $props.mode, item.selected ? "is-checked" : "", $props.disabled || !!item.disabled ? "is-disable" : "", index !== 0 && $props.mode === "list" ? "is-list-border" : ""]]),
- style: vue.normalizeStyle(item.styleBackgroud),
- key: index
- },
- [
- vue.createElementVNode("radio", {
- class: "hidden",
- hidden: "",
- disabled: $props.disabled || item.disabled,
- value: item[$props.map.value] + "",
- checked: item.selected
- }, null, 8, ["disabled", "value", "checked"]),
- $props.mode !== "tag" && $props.mode !== "list" || $props.mode === "list" && $props.icon === "left" ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: "radio__inner",
- style: vue.normalizeStyle(item.styleBackgroud)
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: "radio__inner-icon",
- style: vue.normalizeStyle(item.styleIcon)
- },
- null,
- 4
- /* STYLE */
- )
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["checklist-content", { "list-content": $props.mode === "list" && $props.icon === "left" }])
- },
- [
- vue.createElementVNode(
- "text",
- {
- class: "checklist-text",
- style: vue.normalizeStyle(item.styleIconText)
- },
- vue.toDisplayString(item[$props.map.text]),
- 5
- /* TEXT, STYLE */
- ),
- $props.mode === "list" && $props.icon === "right" ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- style: vue.normalizeStyle(item.styleRightIcon),
- class: "checkobx__list"
- },
- null,
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ],
- 2
- /* CLASS */
- )
- ],
- 6
- /* CLASS, STYLE */
- );
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ],
- 34
- /* CLASS, NEED_HYDRATION */
- ))
- ],
- 64
- /* STABLE_FRAGMENT */
- ))
- ],
- 4
- /* STYLE */
- );
- }
- const __easycom_0$4 = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$r], ["__scopeId", "data-v-2f788efd"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue"]]);
- var pattern = {
- email: /^\S+?@\S+?\.\S+?$/,
- idcard: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
- url: new RegExp(
- "^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$",
- "i"
- )
- };
- const FORMAT_MAPPING = {
- "int": "integer",
- "bool": "boolean",
- "double": "number",
- "long": "number",
- "password": "string"
- // "fileurls": 'array'
- };
- function formatMessage(args, resources = "") {
- var defaultMessage = ["label"];
- defaultMessage.forEach((item) => {
- if (args[item] === void 0) {
- args[item] = "";
- }
- });
- let str = resources;
- for (let key in args) {
- let reg = new RegExp("{" + key + "}");
- str = str.replace(reg, args[key]);
- }
- return str;
- }
- function isEmptyValue(value, type) {
- if (value === void 0 || value === null) {
- return true;
- }
- if (typeof value === "string" && !value) {
- return true;
- }
- if (Array.isArray(value) && !value.length) {
- return true;
- }
- if (type === "object" && !Object.keys(value).length) {
- return true;
- }
- return false;
- }
- const types = {
- integer(value) {
- return types.number(value) && parseInt(value, 10) === value;
- },
- string(value) {
- return typeof value === "string";
- },
- number(value) {
- if (isNaN(value)) {
- return false;
- }
- return typeof value === "number";
- },
- "boolean": function(value) {
- return typeof value === "boolean";
- },
- "float": function(value) {
- return types.number(value) && !types.integer(value);
- },
- array(value) {
- return Array.isArray(value);
- },
- object(value) {
- return typeof value === "object" && !types.array(value);
- },
- date(value) {
- return value instanceof Date;
- },
- timestamp(value) {
- if (!this.integer(value) || Math.abs(value).toString().length > 16) {
- return false;
- }
- return true;
- },
- file(value) {
- return typeof value.url === "string";
- },
- email(value) {
- return typeof value === "string" && !!value.match(pattern.email) && value.length < 255;
- },
- url(value) {
- return typeof value === "string" && !!value.match(pattern.url);
- },
- pattern(reg, value) {
- try {
- return new RegExp(reg).test(value);
- } catch (e2) {
- return false;
- }
- },
- method(value) {
- return typeof value === "function";
- },
- idcard(value) {
- return typeof value === "string" && !!value.match(pattern.idcard);
- },
- "url-https"(value) {
- return this.url(value) && value.startsWith("https://");
- },
- "url-scheme"(value) {
- return value.startsWith("://");
- },
- "url-web"(value) {
- return false;
- }
- };
- class RuleValidator {
- constructor(message) {
- this._message = message;
- }
- async validateRule(fieldKey, fieldValue, value, data, allData) {
- var result = null;
- let rules = fieldValue.rules;
- let hasRequired = rules.findIndex((item) => {
- return item.required;
- });
- if (hasRequired < 0) {
- if (value === null || value === void 0) {
- return result;
- }
- if (typeof value === "string" && !value.length) {
- return result;
- }
- }
- var message = this._message;
- if (rules === void 0) {
- return message["default"];
- }
- for (var i2 = 0; i2 < rules.length; i2++) {
- let rule = rules[i2];
- let vt2 = this._getValidateType(rule);
- Object.assign(rule, {
- label: fieldValue.label || `["${fieldKey}"]`
- });
- if (RuleValidatorHelper[vt2]) {
- result = RuleValidatorHelper[vt2](rule, value, message);
- if (result != null) {
- break;
- }
- }
- if (rule.validateExpr) {
- let now = Date.now();
- let resultExpr = rule.validateExpr(value, allData, now);
- if (resultExpr === false) {
- result = this._getMessage(rule, rule.errorMessage || this._message["default"]);
- break;
- }
- }
- if (rule.validateFunction) {
- result = await this.validateFunction(rule, value, data, allData, vt2);
- if (result !== null) {
- break;
- }
- }
- }
- if (result !== null) {
- result = message.TAG + result;
- }
- return result;
- }
- async validateFunction(rule, value, data, allData, vt2) {
- let result = null;
- try {
- let callbackMessage = null;
- const res = await rule.validateFunction(rule, value, allData || data, (message) => {
- callbackMessage = message;
- });
- if (callbackMessage || typeof res === "string" && res || res === false) {
- result = this._getMessage(rule, callbackMessage || res, vt2);
- }
- } catch (e2) {
- result = this._getMessage(rule, e2.message, vt2);
- }
- return result;
- }
- _getMessage(rule, message, vt2) {
- return formatMessage(rule, message || rule.errorMessage || this._message[vt2] || message["default"]);
- }
- _getValidateType(rule) {
- var result = "";
- if (rule.required) {
- result = "required";
- } else if (rule.format) {
- result = "format";
- } else if (rule.arrayType) {
- result = "arrayTypeFormat";
- } else if (rule.range) {
- result = "range";
- } else if (rule.maximum !== void 0 || rule.minimum !== void 0) {
- result = "rangeNumber";
- } else if (rule.maxLength !== void 0 || rule.minLength !== void 0) {
- result = "rangeLength";
- } else if (rule.pattern) {
- result = "pattern";
- } else if (rule.validateFunction) {
- result = "validateFunction";
- }
- return result;
- }
- }
- const RuleValidatorHelper = {
- required(rule, value, message) {
- if (rule.required && isEmptyValue(value, rule.format || typeof value)) {
- return formatMessage(rule, rule.errorMessage || message.required);
- }
- return null;
- },
- range(rule, value, message) {
- const {
- range,
- errorMessage
- } = rule;
- let list = new Array(range.length);
- for (let i2 = 0; i2 < range.length; i2++) {
- const item = range[i2];
- if (types.object(item) && item.value !== void 0) {
- list[i2] = item.value;
- } else {
- list[i2] = item;
- }
- }
- let result = false;
- if (Array.isArray(value)) {
- result = new Set(value.concat(list)).size === list.length;
- } else {
- if (list.indexOf(value) > -1) {
- result = true;
- }
- }
- if (!result) {
- return formatMessage(rule, errorMessage || message["enum"]);
- }
- return null;
- },
- rangeNumber(rule, value, message) {
- if (!types.number(value)) {
- return formatMessage(rule, rule.errorMessage || message.pattern.mismatch);
- }
- let {
- minimum,
- maximum,
- exclusiveMinimum,
- exclusiveMaximum
- } = rule;
- let min = exclusiveMinimum ? value <= minimum : value < minimum;
- let max = exclusiveMaximum ? value >= maximum : value > maximum;
- if (minimum !== void 0 && min) {
- return formatMessage(rule, rule.errorMessage || message["number"][exclusiveMinimum ? "exclusiveMinimum" : "minimum"]);
- } else if (maximum !== void 0 && max) {
- return formatMessage(rule, rule.errorMessage || message["number"][exclusiveMaximum ? "exclusiveMaximum" : "maximum"]);
- } else if (minimum !== void 0 && maximum !== void 0 && (min || max)) {
- return formatMessage(rule, rule.errorMessage || message["number"].range);
- }
- return null;
- },
- rangeLength(rule, value, message) {
- if (!types.string(value) && !types.array(value)) {
- return formatMessage(rule, rule.errorMessage || message.pattern.mismatch);
- }
- let min = rule.minLength;
- let max = rule.maxLength;
- let val = value.length;
- if (min !== void 0 && val < min) {
- return formatMessage(rule, rule.errorMessage || message["length"].minLength);
- } else if (max !== void 0 && val > max) {
- return formatMessage(rule, rule.errorMessage || message["length"].maxLength);
- } else if (min !== void 0 && max !== void 0 && (val < min || val > max)) {
- return formatMessage(rule, rule.errorMessage || message["length"].range);
- }
- return null;
- },
- pattern(rule, value, message) {
- if (!types["pattern"](rule.pattern, value)) {
- return formatMessage(rule, rule.errorMessage || message.pattern.mismatch);
- }
- return null;
- },
- format(rule, value, message) {
- var customTypes = Object.keys(types);
- var format = FORMAT_MAPPING[rule.format] ? FORMAT_MAPPING[rule.format] : rule.format || rule.arrayType;
- if (customTypes.indexOf(format) > -1) {
- if (!types[format](value)) {
- return formatMessage(rule, rule.errorMessage || message.typeError);
- }
- }
- return null;
- },
- arrayTypeFormat(rule, value, message) {
- if (!Array.isArray(value)) {
- return formatMessage(rule, rule.errorMessage || message.typeError);
- }
- for (let i2 = 0; i2 < value.length; i2++) {
- const element = value[i2];
- let formatResult = this.format(rule, element, message);
- if (formatResult !== null) {
- return formatResult;
- }
- }
- return null;
- }
- };
- class SchemaValidator extends RuleValidator {
- constructor(schema, options) {
- super(SchemaValidator.message);
- this._schema = schema;
- this._options = options || null;
- }
- updateSchema(schema) {
- this._schema = schema;
- }
- async validate(data, allData) {
- let result = this._checkFieldInSchema(data);
- if (!result) {
- result = await this.invokeValidate(data, false, allData);
- }
- return result.length ? result[0] : null;
- }
- async validateAll(data, allData) {
- let result = this._checkFieldInSchema(data);
- if (!result) {
- result = await this.invokeValidate(data, true, allData);
- }
- return result;
- }
- async validateUpdate(data, allData) {
- let result = this._checkFieldInSchema(data);
- if (!result) {
- result = await this.invokeValidateUpdate(data, false, allData);
- }
- return result.length ? result[0] : null;
- }
- async invokeValidate(data, all, allData) {
- let result = [];
- let schema = this._schema;
- for (let key in schema) {
- let value = schema[key];
- let errorMessage = await this.validateRule(key, value, data[key], data, allData);
- if (errorMessage != null) {
- result.push({
- key,
- errorMessage
- });
- if (!all)
- break;
- }
- }
- return result;
- }
- async invokeValidateUpdate(data, all, allData) {
- let result = [];
- for (let key in data) {
- let errorMessage = await this.validateRule(key, this._schema[key], data[key], data, allData);
- if (errorMessage != null) {
- result.push({
- key,
- errorMessage
- });
- if (!all)
- break;
- }
- }
- return result;
- }
- _checkFieldInSchema(data) {
- var keys = Object.keys(data);
- var keys2 = Object.keys(this._schema);
- if (new Set(keys.concat(keys2)).size === keys2.length) {
- return "";
- }
- var noExistFields = keys.filter((key) => {
- return keys2.indexOf(key) < 0;
- });
- var errorMessage = formatMessage({
- field: JSON.stringify(noExistFields)
- }, SchemaValidator.message.TAG + SchemaValidator.message["defaultInvalid"]);
- return [{
- key: "invalid",
- errorMessage
- }];
- }
- }
- function Message() {
- return {
- TAG: "",
- default: "验证错误",
- defaultInvalid: "提交的字段{field}在数据库中并不存在",
- validateFunction: "验证无效",
- required: "{label}必填",
- "enum": "{label}超出范围",
- timestamp: "{label}格式无效",
- whitespace: "{label}不能为空",
- typeError: "{label}类型无效",
- date: {
- format: "{label}日期{value}格式无效",
- parse: "{label}日期无法解析,{value}无效",
- invalid: "{label}日期{value}无效"
- },
- length: {
- minLength: "{label}长度不能少于{minLength}",
- maxLength: "{label}长度不能超过{maxLength}",
- range: "{label}必须介于{minLength}和{maxLength}之间"
- },
- number: {
- minimum: "{label}不能小于{minimum}",
- maximum: "{label}不能大于{maximum}",
- exclusiveMinimum: "{label}不能小于等于{minimum}",
- exclusiveMaximum: "{label}不能大于等于{maximum}",
- range: "{label}必须介于{minimum}and{maximum}之间"
- },
- pattern: {
- mismatch: "{label}格式不匹配"
- }
- };
- }
- SchemaValidator.message = new Message();
- const deepCopy = (val) => {
- return JSON.parse(JSON.stringify(val));
- };
- const typeFilter = (format) => {
- return format === "int" || format === "double" || format === "number" || format === "timestamp";
- };
- const getValue = (key, value, rules) => {
- const isRuleNumType = rules.find((val) => val.format && typeFilter(val.format));
- const isRuleBoolType = rules.find((val) => val.format && val.format === "boolean" || val.format === "bool");
- if (!!isRuleNumType) {
- if (!value && value !== 0) {
- value = null;
- } else {
- value = isNumber(Number(value)) ? Number(value) : value;
- }
- }
- if (!!isRuleBoolType) {
- value = isBoolean(value) ? value : false;
- }
- return value;
- };
- const setDataValue = (field, formdata, value) => {
- formdata[field] = value;
- return value || "";
- };
- const getDataValue = (field, data) => {
- return objGet(data, field);
- };
- const realName = (name, data = {}) => {
- const base_name = _basePath(name);
- if (typeof base_name === "object" && Array.isArray(base_name) && base_name.length > 1) {
- const realname = base_name.reduce((a2, b2) => a2 += `#${b2}`, "_formdata_");
- return realname;
- }
- return base_name[0] || name;
- };
- const isRealName = (name) => {
- const reg = /^_formdata_#*/;
- return reg.test(name);
- };
- const rawData = (object = {}, name) => {
- let newData = JSON.parse(JSON.stringify(object));
- let formData = {};
- for (let i2 in newData) {
- let path = name2arr(i2);
- objSet(formData, path, newData[i2]);
- }
- return formData;
- };
- const name2arr = (name) => {
- let field = name.replace("_formdata_#", "");
- field = field.split("#").map((v2) => isNumber(v2) ? Number(v2) : v2);
- return field;
- };
- const objSet = (object, path, value) => {
- if (typeof object !== "object")
- return object;
- _basePath(path).reduce((o2, k, i2, _2) => {
- if (i2 === _2.length - 1) {
- o2[k] = value;
- return null;
- } else if (k in o2) {
- return o2[k];
- } else {
- o2[k] = /^[0-9]{1,}$/.test(_2[i2 + 1]) ? [] : {};
- return o2[k];
- }
- }, object);
- return object;
- };
- function _basePath(path) {
- if (Array.isArray(path))
- return path;
- return path.replace(/\[/g, ".").replace(/\]/g, "").split(".");
- }
- const objGet = (object, path, defaultVal = "undefined") => {
- let newPath = _basePath(path);
- let val = newPath.reduce((o2, k) => {
- return (o2 || {})[k];
- }, object);
- return !val || val !== void 0 ? val : defaultVal;
- };
- const isNumber = (num) => {
- return !isNaN(Number(num));
- };
- const isBoolean = (bool) => {
- return typeof bool === "boolean";
- };
- const isRequiredField = (rules) => {
- let isNoField = false;
- for (let i2 = 0; i2 < rules.length; i2++) {
- const ruleData = rules[i2];
- if (ruleData.required) {
- isNoField = true;
- break;
- }
- }
- return isNoField;
- };
- const isEqual = (a2, b2) => {
- if (a2 === b2) {
- return a2 !== 0 || 1 / a2 === 1 / b2;
- }
- if (a2 == null || b2 == null) {
- return a2 === b2;
- }
- var classNameA = toString.call(a2), classNameB = toString.call(b2);
- if (classNameA !== classNameB) {
- return false;
- }
- switch (classNameA) {
- case "[object RegExp]":
- case "[object String]":
- return "" + a2 === "" + b2;
- case "[object Number]":
- if (+a2 !== +a2) {
- return +b2 !== +b2;
- }
- return +a2 === 0 ? 1 / +a2 === 1 / b2 : +a2 === +b2;
- case "[object Date]":
- case "[object Boolean]":
- return +a2 === +b2;
- }
- if (classNameA == "[object Object]") {
- var propsA = Object.getOwnPropertyNames(a2), propsB = Object.getOwnPropertyNames(b2);
- if (propsA.length != propsB.length) {
- return false;
- }
- for (var i2 = 0; i2 < propsA.length; i2++) {
- var propName = propsA[i2];
- if (a2[propName] !== b2[propName]) {
- return false;
- }
- }
- return true;
- }
- if (classNameA == "[object Array]") {
- if (a2.toString() == b2.toString()) {
- return true;
- }
- return false;
- }
- };
- const _sfc_main$r = {
- name: "uniForms",
- emits: ["validate", "submit"],
- options: {
- virtualHost: true
- },
- props: {
- // 即将弃用
- value: {
- type: Object,
- default() {
- return null;
- }
- },
- // vue3 替换 value 属性
- modelValue: {
- type: Object,
- default() {
- return null;
- }
- },
- // 1.4.0 开始将不支持 v-model ,且废弃 value 和 modelValue
- model: {
- type: Object,
- default() {
- return null;
- }
- },
- // 表单校验规则
- rules: {
- type: Object,
- default() {
- return {};
- }
- },
- //校验错误信息提示方式 默认 undertext 取值 [undertext|toast|modal]
- errShowType: {
- type: String,
- default: "undertext"
- },
- // 校验触发器方式 默认 bind 取值 [bind|submit]
- validateTrigger: {
- type: String,
- default: "submit"
- },
- // label 位置,默认 left 取值 top/left
- labelPosition: {
- type: String,
- default: "left"
- },
- // label 宽度
- labelWidth: {
- type: [String, Number],
- default: ""
- },
- // label 居中方式,默认 left 取值 left/center/right
- labelAlign: {
- type: String,
- default: "left"
- },
- border: {
- type: Boolean,
- default: false
- }
- },
- provide() {
- return {
- uniForm: this
- };
- },
- data() {
- return {
- // 表单本地值的记录,不应该与传如的值进行关联
- formData: {},
- formRules: {}
- };
- },
- computed: {
- // 计算数据源变化的
- localData() {
- const localVal = this.model || this.modelValue || this.value;
- if (localVal) {
- return deepCopy(localVal);
- }
- return {};
- }
- },
- watch: {
- // 监听数据变化 ,暂时不使用,需要单独赋值
- // localData: {},
- // 监听规则变化
- rules: {
- handler: function(val, oldVal) {
- this.setRules(val);
- },
- deep: true,
- immediate: true
- }
- },
- created() {
- let getbinddata = getApp().$vm.$.appContext.config.globalProperties.binddata;
- if (!getbinddata) {
- getApp().$vm.$.appContext.config.globalProperties.binddata = function(name, value, formName) {
- if (formName) {
- this.$refs[formName].setValue(name, value);
- } else {
- let formVm;
- for (let i2 in this.$refs) {
- const vm = this.$refs[i2];
- if (vm && vm.$options && vm.$options.name === "uniForms") {
- formVm = vm;
- break;
- }
- }
- if (!formVm)
- return formatAppLog("error", "at uni_modules/uni-forms/components/uni-forms/uni-forms.vue:182", "当前 uni-froms 组件缺少 ref 属性");
- formVm.setValue(name, value);
- }
- };
- }
- this.childrens = [];
- this.inputChildrens = [];
- this.setRules(this.rules);
- },
- methods: {
- /**
- * 外部调用方法
- * 设置规则 ,主要用于小程序自定义检验规则
- * @param {Array} rules 规则源数据
- */
- setRules(rules) {
- this.formRules = Object.assign({}, this.formRules, rules);
- this.validator = new SchemaValidator(rules);
- },
- /**
- * 外部调用方法
- * 设置数据,用于设置表单数据,公开给用户使用 , 不支持在动态表单中使用
- * @param {Object} key
- * @param {Object} value
- */
- setValue(key, value) {
- let example = this.childrens.find((child) => child.name === key);
- if (!example)
- return null;
- this.formData[key] = getValue(key, value, this.formRules[key] && this.formRules[key].rules || []);
- return example.onFieldChange(this.formData[key]);
- },
- /**
- * 外部调用方法
- * 手动提交校验表单
- * 对整个表单进行校验的方法,参数为一个回调函数。
- * @param {Array} keepitem 保留不参与校验的字段
- * @param {type} callback 方法回调
- */
- validate(keepitem, callback) {
- return this.checkAll(this.formData, keepitem, callback);
- },
- /**
- * 外部调用方法
- * 部分表单校验
- * @param {Array|String} props 需要校验的字段
- * @param {Function} 回调函数
- */
- validateField(props = [], callback) {
- props = [].concat(props);
- let invalidFields = {};
- this.childrens.forEach((item) => {
- const name = realName(item.name);
- if (props.indexOf(name) !== -1) {
- invalidFields = Object.assign({}, invalidFields, {
- [name]: this.formData[name]
- });
- }
- });
- return this.checkAll(invalidFields, [], callback);
- },
- /**
- * 外部调用方法
- * 移除表单项的校验结果。传入待移除的表单项的 prop 属性或者 prop 组成的数组,如不传则移除整个表单的校验结果
- * @param {Array|String} props 需要移除校验的字段 ,不填为所有
- */
- clearValidate(props = []) {
- props = [].concat(props);
- this.childrens.forEach((item) => {
- if (props.length === 0) {
- item.errMsg = "";
- } else {
- const name = realName(item.name);
- if (props.indexOf(name) !== -1) {
- item.errMsg = "";
- }
- }
- });
- },
- /**
- * 外部调用方法 ,即将废弃
- * 手动提交校验表单
- * 对整个表单进行校验的方法,参数为一个回调函数。
- * @param {Array} keepitem 保留不参与校验的字段
- * @param {type} callback 方法回调
- */
- submit(keepitem, callback, type) {
- for (let i2 in this.dataValue) {
- const itemData = this.childrens.find((v2) => v2.name === i2);
- if (itemData) {
- if (this.formData[i2] === void 0) {
- this.formData[i2] = this._getValue(i2, this.dataValue[i2]);
- }
- }
- }
- if (!type) {
- formatAppLog("warn", "at uni_modules/uni-forms/components/uni-forms/uni-forms.vue:289", "submit 方法即将废弃,请使用validate方法代替!");
- }
- return this.checkAll(this.formData, keepitem, callback, "submit");
- },
- // 校验所有
- async checkAll(invalidFields, keepitem, callback, type) {
- if (!this.validator)
- return;
- let childrens = [];
- for (let i2 in invalidFields) {
- const item = this.childrens.find((v2) => realName(v2.name) === i2);
- if (item) {
- childrens.push(item);
- }
- }
- if (!callback && typeof keepitem === "function") {
- callback = keepitem;
- }
- let promise;
- if (!callback && typeof callback !== "function" && Promise) {
- promise = new Promise((resolve, reject) => {
- callback = function(valid, invalidFields2) {
- !valid ? resolve(invalidFields2) : reject(valid);
- };
- });
- }
- let results = [];
- let tempFormData = JSON.parse(JSON.stringify(invalidFields));
- for (let i2 in childrens) {
- const child = childrens[i2];
- let name = realName(child.name);
- const result = await child.onFieldChange(tempFormData[name]);
- if (result) {
- results.push(result);
- if (this.errShowType === "toast" || this.errShowType === "modal")
- break;
- }
- }
- if (Array.isArray(results)) {
- if (results.length === 0)
- results = null;
- }
- if (Array.isArray(keepitem)) {
- keepitem.forEach((v2) => {
- let vName = realName(v2);
- let value = getDataValue(v2, this.localData);
- if (value !== void 0) {
- tempFormData[vName] = value;
- }
- });
- }
- if (type === "submit") {
- this.$emit("submit", {
- detail: {
- value: tempFormData,
- errors: results
- }
- });
- } else {
- this.$emit("validate", results);
- }
- let resetFormData = {};
- resetFormData = rawData(tempFormData, this.name);
- callback && typeof callback === "function" && callback(results, resetFormData);
- if (promise && callback) {
- return promise;
- } else {
- return null;
- }
- },
- /**
- * 返回validate事件
- * @param {Object} result
- */
- validateCheck(result) {
- this.$emit("validate", result);
- },
- _getValue: getValue,
- _isRequiredField: isRequiredField,
- _setDataValue: setDataValue,
- _getDataValue: getDataValue,
- _realName: realName,
- _isRealName: isRealName,
- _isEqual: isEqual
- }
- };
- function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-forms" }, [
- vue.createElementVNode("form", null, [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ])
- ]);
- }
- const __easycom_3$2 = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$q], ["__scopeId", "data-v-9a1e3c32"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-forms/components/uni-forms/uni-forms.vue"]]);
- const popup = {
- data() {
- return {};
- },
- created() {
- this.popup = this.getParent();
- },
- methods: {
- /**
- * 获取父元素实例
- */
- getParent(name = "uniPopup") {
- let parent = this.$parent;
- let parentName = parent.$options.name;
- while (parentName !== name) {
- parent = parent.$parent;
- if (!parent)
- return false;
- parentName = parent.$options.name;
- }
- return parent;
- }
- }
- };
- const _sfc_main$q = {
- name: "uniPopupMessage",
- mixins: [popup],
- props: {
- /**
- * 主题 success/warning/info/error 默认 success
- */
- type: {
- type: String,
- default: "success"
- },
- /**
- * 消息文字
- */
- message: {
- type: String,
- default: ""
- },
- /**
- * 显示时间,设置为 0 则不会自动关闭
- */
- duration: {
- type: Number,
- default: 3e3
- },
- maskShow: {
- type: Boolean,
- default: false
- }
- },
- data() {
- return {};
- },
- created() {
- this.popup.maskShow = this.maskShow;
- this.popup.messageChild = this;
- },
- methods: {
- timerClose() {
- if (this.duration === 0)
- return;
- clearTimeout(this.timer);
- this.timer = setTimeout(() => {
- this.popup.close();
- }, this.duration);
- }
- }
- };
- function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-popup-message" }, [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-popup-message__box fixforpc-width", "uni-popup__" + $props.type])
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
- vue.createElementVNode(
- "text",
- {
- class: vue.normalizeClass(["uni-popup-message-text", "uni-popup__" + $props.type + "-text"])
- },
- vue.toDisplayString($props.message),
- 3
- /* TEXT, CLASS */
- )
- ], true)
- ],
- 2
- /* CLASS */
- )
- ]);
- }
- const __easycom_5 = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$p], ["__scopeId", "data-v-a4566996"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue"]]);
- class MPAnimation {
- constructor(options, _this) {
- this.options = options;
- this.animation = uni.createAnimation({
- ...options
- });
- this.currentStepAnimates = {};
- this.next = 0;
- this.$ = _this;
- }
- _nvuePushAnimates(type, args) {
- let aniObj = this.currentStepAnimates[this.next];
- let styles = {};
- if (!aniObj) {
- styles = {
- styles: {},
- config: {}
- };
- } else {
- styles = aniObj;
- }
- if (animateTypes1.includes(type)) {
- if (!styles.styles.transform) {
- styles.styles.transform = "";
- }
- let unit = "";
- if (type === "rotate") {
- unit = "deg";
- }
- styles.styles.transform += `${type}(${args + unit}) `;
- } else {
- styles.styles[type] = `${args}`;
- }
- this.currentStepAnimates[this.next] = styles;
- }
- _animateRun(styles = {}, config = {}) {
- let ref = this.$.$refs["ani"].ref;
- if (!ref)
- return;
- return new Promise((resolve, reject) => {
- nvueAnimation.transition(ref, {
- styles,
- ...config
- }, (res) => {
- resolve();
- });
- });
- }
- _nvueNextAnimate(animates, step = 0, fn) {
- let obj = animates[step];
- if (obj) {
- let {
- styles,
- config
- } = obj;
- this._animateRun(styles, config).then(() => {
- step += 1;
- this._nvueNextAnimate(animates, step, fn);
- });
- } else {
- this.currentStepAnimates = {};
- typeof fn === "function" && fn();
- this.isEnd = true;
- }
- }
- step(config = {}) {
- this.animation.step(config);
- return this;
- }
- run(fn) {
- this.$.animationData = this.animation.export();
- this.$.timer = setTimeout(() => {
- typeof fn === "function" && fn();
- }, this.$.durationTime);
- }
- }
- const animateTypes1 = [
- "matrix",
- "matrix3d",
- "rotate",
- "rotate3d",
- "rotateX",
- "rotateY",
- "rotateZ",
- "scale",
- "scale3d",
- "scaleX",
- "scaleY",
- "scaleZ",
- "skew",
- "skewX",
- "skewY",
- "translate",
- "translate3d",
- "translateX",
- "translateY",
- "translateZ"
- ];
- const animateTypes2 = ["opacity", "backgroundColor"];
- const animateTypes3 = ["width", "height", "left", "right", "top", "bottom"];
- animateTypes1.concat(animateTypes2, animateTypes3).forEach((type) => {
- MPAnimation.prototype[type] = function(...args) {
- this.animation[type](...args);
- return this;
- };
- });
- function createAnimation(option, _this) {
- if (!_this)
- return;
- clearTimeout(_this.timer);
- return new MPAnimation(option, _this);
- }
- const _sfc_main$p = {
- name: "uniTransition",
- emits: ["click", "change"],
- props: {
- show: {
- type: Boolean,
- default: false
- },
- modeClass: {
- type: [Array, String],
- default() {
- return "fade";
- }
- },
- duration: {
- type: Number,
- default: 300
- },
- styles: {
- type: Object,
- default() {
- return {};
- }
- },
- customClass: {
- type: String,
- default: ""
- },
- onceRender: {
- type: Boolean,
- default: false
- }
- },
- data() {
- return {
- isShow: false,
- transform: "",
- opacity: 1,
- animationData: {},
- durationTime: 300,
- config: {}
- };
- },
- watch: {
- show: {
- handler(newVal) {
- if (newVal) {
- this.open();
- } else {
- if (this.isShow) {
- this.close();
- }
- }
- },
- immediate: true
- }
- },
- computed: {
- // 生成样式数据
- stylesObject() {
- let styles = {
- ...this.styles,
- "transition-duration": this.duration / 1e3 + "s"
- };
- let transform = "";
- for (let i2 in styles) {
- let line = this.toLine(i2);
- transform += line + ":" + styles[i2] + ";";
- }
- return transform;
- },
- // 初始化动画条件
- transformStyles() {
- return "transform:" + this.transform + ";opacity:" + this.opacity + ";" + this.stylesObject;
- }
- },
- created() {
- this.config = {
- duration: this.duration,
- timingFunction: "ease",
- transformOrigin: "50% 50%",
- delay: 0
- };
- this.durationTime = this.duration;
- },
- methods: {
- /**
- * ref 触发 初始化动画
- */
- init(obj = {}) {
- if (obj.duration) {
- this.durationTime = obj.duration;
- }
- this.animation = createAnimation(Object.assign(this.config, obj), this);
- },
- /**
- * 点击组件触发回调
- */
- onClick() {
- this.$emit("click", {
- detail: this.isShow
- });
- },
- /**
- * ref 触发 动画分组
- * @param {Object} obj
- */
- step(obj, config = {}) {
- if (!this.animation)
- return;
- for (let i2 in obj) {
- try {
- if (typeof obj[i2] === "object") {
- this.animation[i2](...obj[i2]);
- } else {
- this.animation[i2](obj[i2]);
- }
- } catch (e2) {
- formatAppLog("error", "at uni_modules/uni-transition/components/uni-transition/uni-transition.vue:148", `方法 ${i2} 不存在`);
- }
- }
- this.animation.step(config);
- return this;
- },
- /**
- * ref 触发 执行动画
- */
- run(fn) {
- if (!this.animation)
- return;
- this.animation.run(fn);
- },
- // 开始过度动画
- open() {
- clearTimeout(this.timer);
- this.transform = "";
- this.isShow = true;
- let { opacity, transform } = this.styleInit(false);
- if (typeof opacity !== "undefined") {
- this.opacity = opacity;
- }
- this.transform = transform;
- this.$nextTick(() => {
- this.timer = setTimeout(() => {
- this.animation = createAnimation(this.config, this);
- this.tranfromInit(false).step();
- this.animation.run();
- this.$emit("change", {
- detail: this.isShow
- });
- }, 20);
- });
- },
- // 关闭过度动画
- close(type) {
- if (!this.animation)
- return;
- this.tranfromInit(true).step().run(() => {
- this.isShow = false;
- this.animationData = null;
- this.animation = null;
- let { opacity, transform } = this.styleInit(false);
- this.opacity = opacity || 1;
- this.transform = transform;
- this.$emit("change", {
- detail: this.isShow
- });
- });
- },
- // 处理动画开始前的默认样式
- styleInit(type) {
- let styles = {
- transform: ""
- };
- let buildStyle = (type2, mode) => {
- if (mode === "fade") {
- styles.opacity = this.animationType(type2)[mode];
- } else {
- styles.transform += this.animationType(type2)[mode] + " ";
- }
- };
- if (typeof this.modeClass === "string") {
- buildStyle(type, this.modeClass);
- } else {
- this.modeClass.forEach((mode) => {
- buildStyle(type, mode);
- });
- }
- return styles;
- },
- // 处理内置组合动画
- tranfromInit(type) {
- let buildTranfrom = (type2, mode) => {
- let aniNum = null;
- if (mode === "fade") {
- aniNum = type2 ? 0 : 1;
- } else {
- aniNum = type2 ? "-100%" : "0";
- if (mode === "zoom-in") {
- aniNum = type2 ? 0.8 : 1;
- }
- if (mode === "zoom-out") {
- aniNum = type2 ? 1.2 : 1;
- }
- if (mode === "slide-right") {
- aniNum = type2 ? "100%" : "0";
- }
- if (mode === "slide-bottom") {
- aniNum = type2 ? "100%" : "0";
- }
- }
- this.animation[this.animationMode()[mode]](aniNum);
- };
- if (typeof this.modeClass === "string") {
- buildTranfrom(type, this.modeClass);
- } else {
- this.modeClass.forEach((mode) => {
- buildTranfrom(type, mode);
- });
- }
- return this.animation;
- },
- animationType(type) {
- return {
- fade: type ? 1 : 0,
- "slide-top": `translateY(${type ? "0" : "-100%"})`,
- "slide-right": `translateX(${type ? "0" : "100%"})`,
- "slide-bottom": `translateY(${type ? "0" : "100%"})`,
- "slide-left": `translateX(${type ? "0" : "-100%"})`,
- "zoom-in": `scaleX(${type ? 1 : 0.8}) scaleY(${type ? 1 : 0.8})`,
- "zoom-out": `scaleX(${type ? 1 : 1.2}) scaleY(${type ? 1 : 1.2})`
- };
- },
- // 内置动画类型与实际动画对应字典
- animationMode() {
- return {
- fade: "opacity",
- "slide-top": "translateY",
- "slide-right": "translateX",
- "slide-bottom": "translateY",
- "slide-left": "translateX",
- "zoom-in": "scale",
- "zoom-out": "scale"
- };
- },
- // 驼峰转中横线
- toLine(name) {
- return name.replace(/([A-Z])/g, "-$1").toLowerCase();
- }
- }
- };
- function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.withDirectives((vue.openBlock(), vue.createElementBlock("view", {
- ref: "ani",
- animation: $data.animationData,
- class: vue.normalizeClass($props.customClass),
- style: vue.normalizeStyle($options.transformStyles),
- onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args))
- }, [
- vue.renderSlot(_ctx.$slots, "default")
- ], 14, ["animation"])), [
- [vue.vShow, $data.isShow]
- ]);
- }
- const __easycom_0$3 = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$o], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]);
- const _sfc_main$o = {
- name: "uniPopup",
- components: {},
- emits: ["change", "maskClick"],
- props: {
- // 开启动画
- animation: {
- type: Boolean,
- default: true
- },
- // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层
- // message: 消息提示 ; dialog : 对话框
- type: {
- type: String,
- default: "center"
- },
- // maskClick
- isMaskClick: {
- type: Boolean,
- default: null
- },
- // TODO 2 个版本后废弃属性 ,使用 isMaskClick
- maskClick: {
- type: Boolean,
- default: null
- },
- backgroundColor: {
- type: String,
- default: "none"
- },
- safeArea: {
- type: Boolean,
- default: true
- },
- maskBackgroundColor: {
- type: String,
- default: "rgba(0, 0, 0, 0.4)"
- }
- },
- watch: {
- /**
- * 监听type类型
- */
- type: {
- handler: function(type) {
- if (!this.config[type])
- return;
- this[this.config[type]](true);
- },
- immediate: true
- },
- isDesktop: {
- handler: function(newVal) {
- if (!this.config[newVal])
- return;
- this[this.config[this.type]](true);
- },
- immediate: true
- },
- /**
- * 监听遮罩是否可点击
- * @param {Object} val
- */
- maskClick: {
- handler: function(val) {
- this.mkclick = val;
- },
- immediate: true
- },
- isMaskClick: {
- handler: function(val) {
- this.mkclick = val;
- },
- immediate: true
- },
- // H5 下禁止底部滚动
- showPopup(show) {
- }
- },
- data() {
- return {
- duration: 300,
- ani: [],
- showPopup: false,
- showTrans: false,
- popupWidth: 0,
- popupHeight: 0,
- config: {
- top: "top",
- bottom: "bottom",
- center: "center",
- left: "left",
- right: "right",
- message: "top",
- dialog: "center",
- share: "bottom"
- },
- maskClass: {
- position: "fixed",
- bottom: 0,
- top: 0,
- left: 0,
- right: 0,
- backgroundColor: "rgba(0, 0, 0, 0.4)"
- },
- transClass: {
- position: "fixed",
- left: 0,
- right: 0
- },
- maskShow: true,
- mkclick: true,
- popupstyle: "top"
- };
- },
- computed: {
- isDesktop() {
- return this.popupWidth >= 500 && this.popupHeight >= 500;
- },
- bg() {
- if (this.backgroundColor === "" || this.backgroundColor === "none") {
- return "transparent";
- }
- return this.backgroundColor;
- }
- },
- mounted() {
- const fixSize = () => {
- const {
- windowWidth,
- windowHeight,
- windowTop,
- safeArea,
- screenHeight,
- safeAreaInsets
- } = uni.getSystemInfoSync();
- this.popupWidth = windowWidth;
- this.popupHeight = windowHeight + (windowTop || 0);
- if (safeArea && this.safeArea) {
- this.safeAreaInsets = safeAreaInsets.bottom;
- } else {
- this.safeAreaInsets = 0;
- }
- };
- fixSize();
- },
- // TODO vue3
- unmounted() {
- this.setH5Visible();
- },
- created() {
- if (this.isMaskClick === null && this.maskClick === null) {
- this.mkclick = true;
- } else {
- this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick;
- }
- if (this.animation) {
- this.duration = 300;
- } else {
- this.duration = 0;
- }
- this.messageChild = null;
- this.clearPropagation = false;
- this.maskClass.backgroundColor = this.maskBackgroundColor;
- },
- methods: {
- setH5Visible() {
- },
- /**
- * 公用方法,不显示遮罩层
- */
- closeMask() {
- this.maskShow = false;
- },
- /**
- * 公用方法,遮罩层禁止点击
- */
- disableMask() {
- this.mkclick = false;
- },
- // TODO nvue 取消冒泡
- clear(e2) {
- e2.stopPropagation();
- this.clearPropagation = true;
- },
- open(direction) {
- if (this.showPopup) {
- return;
- }
- let innerType = ["top", "center", "bottom", "left", "right", "message", "dialog", "share"];
- if (!(direction && innerType.indexOf(direction) !== -1)) {
- direction = this.type;
- }
- if (!this.config[direction]) {
- formatAppLog("error", "at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:279", "缺少类型:", direction);
- return;
- }
- this[this.config[direction]]();
- this.$emit("change", {
- show: true,
- type: direction
- });
- },
- close(type) {
- this.showTrans = false;
- this.$emit("change", {
- show: false,
- type: this.type
- });
- clearTimeout(this.timer);
- this.timer = setTimeout(() => {
- this.showPopup = false;
- }, 300);
- },
- // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容
- touchstart() {
- this.clearPropagation = false;
- },
- onTap() {
- if (this.clearPropagation) {
- this.clearPropagation = false;
- return;
- }
- this.$emit("maskClick");
- if (!this.mkclick)
- return;
- this.close();
- },
- /**
- * 顶部弹出样式处理
- */
- top(type) {
- this.popupstyle = this.isDesktop ? "fixforpc-top" : "top";
- this.ani = ["slide-top"];
- this.transClass = {
- position: "fixed",
- left: 0,
- right: 0,
- backgroundColor: this.bg
- };
- if (type)
- return;
- this.showPopup = true;
- this.showTrans = true;
- this.$nextTick(() => {
- if (this.messageChild && this.type === "message") {
- this.messageChild.timerClose();
- }
- });
- },
- /**
- * 底部弹出样式处理
- */
- bottom(type) {
- this.popupstyle = "bottom";
- this.ani = ["slide-bottom"];
- this.transClass = {
- position: "fixed",
- left: 0,
- right: 0,
- bottom: 0,
- paddingBottom: this.safeAreaInsets + "px",
- backgroundColor: this.bg
- };
- if (type)
- return;
- this.showPopup = true;
- this.showTrans = true;
- },
- /**
- * 中间弹出样式处理
- */
- center(type) {
- this.popupstyle = "center";
- this.ani = ["zoom-out", "fade"];
- this.transClass = {
- position: "fixed",
- display: "flex",
- flexDirection: "column",
- bottom: 0,
- left: 0,
- right: 0,
- top: 0,
- justifyContent: "center",
- alignItems: "center"
- };
- if (type)
- return;
- this.showPopup = true;
- this.showTrans = true;
- },
- left(type) {
- this.popupstyle = "left";
- this.ani = ["slide-left"];
- this.transClass = {
- position: "fixed",
- left: 0,
- bottom: 0,
- top: 0,
- backgroundColor: this.bg,
- display: "flex",
- flexDirection: "column"
- };
- if (type)
- return;
- this.showPopup = true;
- this.showTrans = true;
- },
- right(type) {
- this.popupstyle = "right";
- this.ani = ["slide-right"];
- this.transClass = {
- position: "fixed",
- bottom: 0,
- right: 0,
- top: 0,
- backgroundColor: this.bg,
- display: "flex",
- flexDirection: "column"
- };
- if (type)
- return;
- this.showPopup = true;
- this.showTrans = true;
- }
- }
- };
- function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$3);
- return $data.showPopup ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: vue.normalizeClass(["uni-popup", [$data.popupstyle, $options.isDesktop ? "fixforpc-z-index" : ""]])
- },
- [
- vue.createElementVNode(
- "view",
- {
- onTouchstart: _cache[1] || (_cache[1] = (...args) => $options.touchstart && $options.touchstart(...args))
- },
- [
- $data.maskShow ? (vue.openBlock(), vue.createBlock(_component_uni_transition, {
- key: "1",
- name: "mask",
- "mode-class": "fade",
- styles: $data.maskClass,
- duration: $data.duration,
- show: $data.showTrans,
- onClick: $options.onTap
- }, null, 8, ["styles", "duration", "show", "onClick"])) : vue.createCommentVNode("v-if", true),
- vue.createVNode(_component_uni_transition, {
- key: "2",
- "mode-class": $data.ani,
- name: "content",
- styles: $data.transClass,
- duration: $data.duration,
- show: $data.showTrans,
- onClick: $options.onTap
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-popup__wrapper", [$data.popupstyle]]),
- style: vue.normalizeStyle({ backgroundColor: $options.bg }),
- onClick: _cache[0] || (_cache[0] = (...args) => $options.clear && $options.clear(...args))
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- )
- ]),
- _: 3
- /* FORWARDED */
- }, 8, ["mode-class", "styles", "duration", "show", "onClick"])
- ],
- 32
- /* NEED_HYDRATION */
- )
- ],
- 2
- /* CLASS */
- )) : vue.createCommentVNode("v-if", true);
- }
- const __easycom_6 = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$n], ["__scopeId", "data-v-4dd3c44b"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]);
- const en = {
- "uni-popup.cancel": "cancel",
- "uni-popup.ok": "ok",
- "uni-popup.placeholder": "pleace enter",
- "uni-popup.title": "Hint",
- "uni-popup.shareTitle": "Share to"
- };
- const zhHans = {
- "uni-popup.cancel": "取消",
- "uni-popup.ok": "确定",
- "uni-popup.placeholder": "请输入",
- "uni-popup.title": "提示",
- "uni-popup.shareTitle": "分享到"
- };
- const zhHant = {
- "uni-popup.cancel": "取消",
- "uni-popup.ok": "確定",
- "uni-popup.placeholder": "請輸入",
- "uni-popup.title": "提示",
- "uni-popup.shareTitle": "分享到"
- };
- const messages = {
- en,
- "zh-Hans": zhHans,
- "zh-Hant": zhHant
- };
- const { t } = initVueI18n(messages);
- const _sfc_main$n = {
- name: "uniPopupDialog",
- mixins: [popup],
- emits: ["confirm", "close"],
- props: {
- inputType: {
- type: String,
- default: "text"
- },
- value: {
- type: [String, Number],
- default: ""
- },
- placeholder: {
- type: [String, Number],
- default: ""
- },
- type: {
- type: String,
- default: "error"
- },
- mode: {
- type: String,
- default: "base"
- },
- title: {
- type: String,
- default: ""
- },
- content: {
- type: String,
- default: ""
- },
- beforeClose: {
- type: Boolean,
- default: false
- },
- cancelText: {
- type: String,
- default: ""
- },
- confirmText: {
- type: String,
- default: ""
- }
- },
- data() {
- return {
- dialogType: "error",
- focus: false,
- val: ""
- };
- },
- computed: {
- okText() {
- return this.confirmText || t("uni-popup.ok");
- },
- closeText() {
- return this.cancelText || t("uni-popup.cancel");
- },
- placeholderText() {
- return this.placeholder || t("uni-popup.placeholder");
- },
- titleText() {
- return this.title || t("uni-popup.title");
- }
- },
- watch: {
- type(val) {
- this.dialogType = val;
- },
- mode(val) {
- if (val === "input") {
- this.dialogType = "info";
- }
- },
- value(val) {
- this.val = val;
- }
- },
- created() {
- this.popup.disableMask();
- if (this.mode === "input") {
- this.dialogType = "info";
- this.val = this.value;
- } else {
- this.dialogType = this.type;
- }
- },
- mounted() {
- this.focus = true;
- },
- methods: {
- /**
- * 点击确认按钮
- */
- onOk() {
- if (this.mode === "input") {
- this.$emit("confirm", this.val);
- } else {
- this.$emit("confirm");
- }
- if (this.beforeClose)
- return;
- this.popup.close();
- },
- /**
- * 点击取消按钮
- */
- closeDialog() {
- this.$emit("close");
- if (this.beforeClose)
- return;
- this.popup.close();
- },
- close() {
- this.popup.close();
- }
- }
- };
- function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-popup-dialog" }, [
- vue.createElementVNode("view", { class: "uni-dialog-title" }, [
- vue.createElementVNode(
- "text",
- {
- class: vue.normalizeClass(["uni-dialog-title-text", ["uni-popup__" + $data.dialogType]])
- },
- vue.toDisplayString($options.titleText),
- 3
- /* TEXT, CLASS */
- )
- ]),
- $props.mode === "base" ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "uni-dialog-content"
- }, [
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
- vue.createElementVNode(
- "text",
- { class: "uni-dialog-content-text" },
- vue.toDisplayString($props.content),
- 1
- /* TEXT */
- )
- ], true)
- ])) : (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "uni-dialog-content"
- }, [
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
- vue.withDirectives(vue.createElementVNode("input", {
- class: "uni-dialog-input",
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.val = $event),
- type: $props.inputType,
- placeholder: $options.placeholderText,
- focus: $data.focus
- }, null, 8, ["type", "placeholder", "focus"]), [
- [vue.vModelDynamic, $data.val]
- ])
- ], true)
- ])),
- vue.createElementVNode("view", { class: "uni-dialog-button-group" }, [
- vue.createElementVNode("view", {
- class: "uni-dialog-button",
- onClick: _cache[1] || (_cache[1] = (...args) => $options.closeDialog && $options.closeDialog(...args))
- }, [
- vue.createElementVNode(
- "text",
- { class: "uni-dialog-button-text" },
- vue.toDisplayString($options.closeText),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("view", {
- class: "uni-dialog-button uni-border-left",
- onClick: _cache[2] || (_cache[2] = (...args) => $options.onOk && $options.onOk(...args))
- }, [
- vue.createElementVNode(
- "text",
- { class: "uni-dialog-button-text uni-button-color" },
- vue.toDisplayString($options.okText),
- 1
- /* TEXT */
- )
- ])
- ])
- ]);
- }
- const __easycom_0$2 = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$m], ["__scopeId", "data-v-d78c88b7"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue"]]);
- var dayjs_min = { exports: {} };
- (function(module, exports) {
- !function(t2, e2) {
- module.exports = e2();
- }(commonjsGlobal, function() {
- var t2 = 1e3, e2 = 6e4, n2 = 36e5, r2 = "millisecond", i2 = "second", s2 = "minute", u2 = "hour", a2 = "day", o2 = "week", c2 = "month", f2 = "quarter", h2 = "year", d2 = "date", l2 = "Invalid Date", $2 = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y2 = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M2 = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t3) {
- var e3 = ["th", "st", "nd", "rd"], n3 = t3 % 100;
- return "[" + t3 + (e3[(n3 - 20) % 10] || e3[n3] || e3[0]) + "]";
- } }, m2 = function(t3, e3, n3) {
- var r3 = String(t3);
- return !r3 || r3.length >= e3 ? t3 : "" + Array(e3 + 1 - r3.length).join(n3) + t3;
- }, v2 = { s: m2, z: function(t3) {
- var e3 = -t3.utcOffset(), n3 = Math.abs(e3), r3 = Math.floor(n3 / 60), i3 = n3 % 60;
- return (e3 <= 0 ? "+" : "-") + m2(r3, 2, "0") + ":" + m2(i3, 2, "0");
- }, m: function t3(e3, n3) {
- if (e3.date() < n3.date())
- return -t3(n3, e3);
- var r3 = 12 * (n3.year() - e3.year()) + (n3.month() - e3.month()), i3 = e3.clone().add(r3, c2), s3 = n3 - i3 < 0, u3 = e3.clone().add(r3 + (s3 ? -1 : 1), c2);
- return +(-(r3 + (n3 - i3) / (s3 ? i3 - u3 : u3 - i3)) || 0);
- }, a: function(t3) {
- return t3 < 0 ? Math.ceil(t3) || 0 : Math.floor(t3);
- }, p: function(t3) {
- return { M: c2, y: h2, w: o2, d: a2, D: d2, h: u2, m: s2, s: i2, ms: r2, Q: f2 }[t3] || String(t3 || "").toLowerCase().replace(/s$/, "");
- }, u: function(t3) {
- return void 0 === t3;
- } }, g2 = "en", D2 = {};
- D2[g2] = M2;
- var p2 = "$isDayjsObject", S2 = function(t3) {
- return t3 instanceof _2 || !(!t3 || !t3[p2]);
- }, w2 = function t3(e3, n3, r3) {
- var i3;
- if (!e3)
- return g2;
- if ("string" == typeof e3) {
- var s3 = e3.toLowerCase();
- D2[s3] && (i3 = s3), n3 && (D2[s3] = n3, i3 = s3);
- var u3 = e3.split("-");
- if (!i3 && u3.length > 1)
- return t3(u3[0]);
- } else {
- var a3 = e3.name;
- D2[a3] = e3, i3 = a3;
- }
- return !r3 && i3 && (g2 = i3), i3 || !r3 && g2;
- }, O2 = function(t3, e3) {
- if (S2(t3))
- return t3.clone();
- var n3 = "object" == typeof e3 ? e3 : {};
- return n3.date = t3, n3.args = arguments, new _2(n3);
- }, b2 = v2;
- b2.l = w2, b2.i = S2, b2.w = function(t3, e3) {
- return O2(t3, { locale: e3.$L, utc: e3.$u, x: e3.$x, $offset: e3.$offset });
- };
- var _2 = function() {
- function M3(t3) {
- this.$L = w2(t3.locale, null, true), this.parse(t3), this.$x = this.$x || t3.x || {}, this[p2] = true;
- }
- var m3 = M3.prototype;
- return m3.parse = function(t3) {
- this.$d = function(t4) {
- var e3 = t4.date, n3 = t4.utc;
- if (null === e3)
- return /* @__PURE__ */ new Date(NaN);
- if (b2.u(e3))
- return /* @__PURE__ */ new Date();
- if (e3 instanceof Date)
- return new Date(e3);
- if ("string" == typeof e3 && !/Z$/i.test(e3)) {
- var r3 = e3.match($2);
- if (r3) {
- var i3 = r3[2] - 1 || 0, s3 = (r3[7] || "0").substring(0, 3);
- return n3 ? new Date(Date.UTC(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3)) : new Date(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3);
- }
- }
- return new Date(e3);
- }(t3), this.init();
- }, m3.init = function() {
- var t3 = this.$d;
- this.$y = t3.getFullYear(), this.$M = t3.getMonth(), this.$D = t3.getDate(), this.$W = t3.getDay(), this.$H = t3.getHours(), this.$m = t3.getMinutes(), this.$s = t3.getSeconds(), this.$ms = t3.getMilliseconds();
- }, m3.$utils = function() {
- return b2;
- }, m3.isValid = function() {
- return !(this.$d.toString() === l2);
- }, m3.isSame = function(t3, e3) {
- var n3 = O2(t3);
- return this.startOf(e3) <= n3 && n3 <= this.endOf(e3);
- }, m3.isAfter = function(t3, e3) {
- return O2(t3) < this.startOf(e3);
- }, m3.isBefore = function(t3, e3) {
- return this.endOf(e3) < O2(t3);
- }, m3.$g = function(t3, e3, n3) {
- return b2.u(t3) ? this[e3] : this.set(n3, t3);
- }, m3.unix = function() {
- return Math.floor(this.valueOf() / 1e3);
- }, m3.valueOf = function() {
- return this.$d.getTime();
- }, m3.startOf = function(t3, e3) {
- var n3 = this, r3 = !!b2.u(e3) || e3, f3 = b2.p(t3), l3 = function(t4, e4) {
- var i3 = b2.w(n3.$u ? Date.UTC(n3.$y, e4, t4) : new Date(n3.$y, e4, t4), n3);
- return r3 ? i3 : i3.endOf(a2);
- }, $3 = function(t4, e4) {
- return b2.w(n3.toDate()[t4].apply(n3.toDate("s"), (r3 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e4)), n3);
- }, y3 = this.$W, M4 = this.$M, m4 = this.$D, v3 = "set" + (this.$u ? "UTC" : "");
- switch (f3) {
- case h2:
- return r3 ? l3(1, 0) : l3(31, 11);
- case c2:
- return r3 ? l3(1, M4) : l3(0, M4 + 1);
- case o2:
- var g3 = this.$locale().weekStart || 0, D3 = (y3 < g3 ? y3 + 7 : y3) - g3;
- return l3(r3 ? m4 - D3 : m4 + (6 - D3), M4);
- case a2:
- case d2:
- return $3(v3 + "Hours", 0);
- case u2:
- return $3(v3 + "Minutes", 1);
- case s2:
- return $3(v3 + "Seconds", 2);
- case i2:
- return $3(v3 + "Milliseconds", 3);
- default:
- return this.clone();
- }
- }, m3.endOf = function(t3) {
- return this.startOf(t3, false);
- }, m3.$set = function(t3, e3) {
- var n3, o3 = b2.p(t3), f3 = "set" + (this.$u ? "UTC" : ""), l3 = (n3 = {}, n3[a2] = f3 + "Date", n3[d2] = f3 + "Date", n3[c2] = f3 + "Month", n3[h2] = f3 + "FullYear", n3[u2] = f3 + "Hours", n3[s2] = f3 + "Minutes", n3[i2] = f3 + "Seconds", n3[r2] = f3 + "Milliseconds", n3)[o3], $3 = o3 === a2 ? this.$D + (e3 - this.$W) : e3;
- if (o3 === c2 || o3 === h2) {
- var y3 = this.clone().set(d2, 1);
- y3.$d[l3]($3), y3.init(), this.$d = y3.set(d2, Math.min(this.$D, y3.daysInMonth())).$d;
- } else
- l3 && this.$d[l3]($3);
- return this.init(), this;
- }, m3.set = function(t3, e3) {
- return this.clone().$set(t3, e3);
- }, m3.get = function(t3) {
- return this[b2.p(t3)]();
- }, m3.add = function(r3, f3) {
- var d3, l3 = this;
- r3 = Number(r3);
- var $3 = b2.p(f3), y3 = function(t3) {
- var e3 = O2(l3);
- return b2.w(e3.date(e3.date() + Math.round(t3 * r3)), l3);
- };
- if ($3 === c2)
- return this.set(c2, this.$M + r3);
- if ($3 === h2)
- return this.set(h2, this.$y + r3);
- if ($3 === a2)
- return y3(1);
- if ($3 === o2)
- return y3(7);
- var M4 = (d3 = {}, d3[s2] = e2, d3[u2] = n2, d3[i2] = t2, d3)[$3] || 1, m4 = this.$d.getTime() + r3 * M4;
- return b2.w(m4, this);
- }, m3.subtract = function(t3, e3) {
- return this.add(-1 * t3, e3);
- }, m3.format = function(t3) {
- var e3 = this, n3 = this.$locale();
- if (!this.isValid())
- return n3.invalidDate || l2;
- var r3 = t3 || "YYYY-MM-DDTHH:mm:ssZ", i3 = b2.z(this), s3 = this.$H, u3 = this.$m, a3 = this.$M, o3 = n3.weekdays, c3 = n3.months, f3 = n3.meridiem, h3 = function(t4, n4, i4, s4) {
- return t4 && (t4[n4] || t4(e3, r3)) || i4[n4].slice(0, s4);
- }, d3 = function(t4) {
- return b2.s(s3 % 12 || 12, t4, "0");
- }, $3 = f3 || function(t4, e4, n4) {
- var r4 = t4 < 12 ? "AM" : "PM";
- return n4 ? r4.toLowerCase() : r4;
- };
- return r3.replace(y2, function(t4, r4) {
- return r4 || function(t5) {
- switch (t5) {
- case "YY":
- return String(e3.$y).slice(-2);
- case "YYYY":
- return b2.s(e3.$y, 4, "0");
- case "M":
- return a3 + 1;
- case "MM":
- return b2.s(a3 + 1, 2, "0");
- case "MMM":
- return h3(n3.monthsShort, a3, c3, 3);
- case "MMMM":
- return h3(c3, a3);
- case "D":
- return e3.$D;
- case "DD":
- return b2.s(e3.$D, 2, "0");
- case "d":
- return String(e3.$W);
- case "dd":
- return h3(n3.weekdaysMin, e3.$W, o3, 2);
- case "ddd":
- return h3(n3.weekdaysShort, e3.$W, o3, 3);
- case "dddd":
- return o3[e3.$W];
- case "H":
- return String(s3);
- case "HH":
- return b2.s(s3, 2, "0");
- case "h":
- return d3(1);
- case "hh":
- return d3(2);
- case "a":
- return $3(s3, u3, true);
- case "A":
- return $3(s3, u3, false);
- case "m":
- return String(u3);
- case "mm":
- return b2.s(u3, 2, "0");
- case "s":
- return String(e3.$s);
- case "ss":
- return b2.s(e3.$s, 2, "0");
- case "SSS":
- return b2.s(e3.$ms, 3, "0");
- case "Z":
- return i3;
- }
- return null;
- }(t4) || i3.replace(":", "");
- });
- }, m3.utcOffset = function() {
- return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
- }, m3.diff = function(r3, d3, l3) {
- var $3, y3 = this, M4 = b2.p(d3), m4 = O2(r3), v3 = (m4.utcOffset() - this.utcOffset()) * e2, g3 = this - m4, D3 = function() {
- return b2.m(y3, m4);
- };
- switch (M4) {
- case h2:
- $3 = D3() / 12;
- break;
- case c2:
- $3 = D3();
- break;
- case f2:
- $3 = D3() / 3;
- break;
- case o2:
- $3 = (g3 - v3) / 6048e5;
- break;
- case a2:
- $3 = (g3 - v3) / 864e5;
- break;
- case u2:
- $3 = g3 / n2;
- break;
- case s2:
- $3 = g3 / e2;
- break;
- case i2:
- $3 = g3 / t2;
- break;
- default:
- $3 = g3;
- }
- return l3 ? $3 : b2.a($3);
- }, m3.daysInMonth = function() {
- return this.endOf(c2).$D;
- }, m3.$locale = function() {
- return D2[this.$L];
- }, m3.locale = function(t3, e3) {
- if (!t3)
- return this.$L;
- var n3 = this.clone(), r3 = w2(t3, e3, true);
- return r3 && (n3.$L = r3), n3;
- }, m3.clone = function() {
- return b2.w(this.$d, this);
- }, m3.toDate = function() {
- return new Date(this.valueOf());
- }, m3.toJSON = function() {
- return this.isValid() ? this.toISOString() : null;
- }, m3.toISOString = function() {
- return this.$d.toISOString();
- }, m3.toString = function() {
- return this.$d.toUTCString();
- }, M3;
- }(), k = _2.prototype;
- return O2.prototype = k, [["$ms", r2], ["$s", i2], ["$m", s2], ["$H", u2], ["$W", a2], ["$M", c2], ["$y", h2], ["$D", d2]].forEach(function(t3) {
- k[t3[1]] = function(e3) {
- return this.$g(e3, t3[0], t3[1]);
- };
- }), O2.extend = function(t3, e3) {
- return t3.$i || (t3(e3, _2, O2), t3.$i = true), O2;
- }, O2.locale = w2, O2.isDayjs = S2, O2.unix = function(t3) {
- return O2(1e3 * t3);
- }, O2.en = D2[g2], O2.Ls = D2, O2.p = {}, O2;
- });
- })(dayjs_min);
- var dayjs_minExports = dayjs_min.exports;
- const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports);
- var isIOS;
- function album() {
- var result = 0;
- var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary");
- var authStatus = PHPhotoLibrary.authorizationStatus();
- if (authStatus === 0) {
- result = null;
- } else if (authStatus == 3) {
- result = 1;
- } else {
- result = 0;
- }
- plus.ios.deleteObject(PHPhotoLibrary);
- return result;
- }
- function camera() {
- var result = 0;
- var AVCaptureDevice = plus.ios.import("AVCaptureDevice");
- var authStatus = AVCaptureDevice.authorizationStatusForMediaType("vide");
- if (authStatus === 0) {
- result = null;
- } else if (authStatus == 3) {
- result = 1;
- } else {
- result = 0;
- }
- plus.ios.deleteObject(AVCaptureDevice);
- return result;
- }
- function location$1() {
- var result = 0;
- var cllocationManger = plus.ios.import("CLLocationManager");
- var enable = cllocationManger.locationServicesEnabled();
- var status = cllocationManger.authorizationStatus();
- if (!enable) {
- result = 2;
- } else if (status === 0) {
- result = null;
- } else if (status === 3 || status === 4) {
- result = 1;
- } else {
- result = 0;
- }
- plus.ios.deleteObject(cllocationManger);
- return result;
- }
- function push() {
- var result = 0;
- var UIApplication = plus.ios.import("UIApplication");
- var app = UIApplication.sharedApplication();
- var enabledTypes = 0;
- if (app.currentUserNotificationSettings) {
- var settings = app.currentUserNotificationSettings();
- enabledTypes = settings.plusGetAttribute("types");
- if (enabledTypes == 0) {
- result = 0;
- formatAppLog("log", "at common/permission.js:63", "推送权限没有开启");
- } else {
- result = 1;
- formatAppLog("log", "at common/permission.js:66", "已经开启推送功能!");
- }
- plus.ios.deleteObject(settings);
- } else {
- enabledTypes = app.enabledRemoteNotificationTypes();
- if (enabledTypes == 0) {
- result = 3;
- formatAppLog("log", "at common/permission.js:73", "推送权限没有开启!");
- } else {
- result = 4;
- formatAppLog("log", "at common/permission.js:76", "已经开启推送功能!");
- }
- }
- plus.ios.deleteObject(app);
- plus.ios.deleteObject(UIApplication);
- return result;
- }
- function contact() {
- var result = 0;
- var CNContactStore = plus.ios.import("CNContactStore");
- var cnAuthStatus = CNContactStore.authorizationStatusForEntityType(0);
- if (cnAuthStatus === 0) {
- result = null;
- } else if (cnAuthStatus == 3) {
- result = 1;
- } else {
- result = 0;
- }
- plus.ios.deleteObject(CNContactStore);
- return result;
- }
- function record() {
- var result = null;
- var avaudiosession = plus.ios.import("AVAudioSession");
- var avaudio = avaudiosession.sharedInstance();
- var status = avaudio.recordPermission();
- formatAppLog("log", "at common/permission.js:104", "permissionStatus:" + status);
- if (status === 1970168948) {
- result = null;
- } else if (status === 1735552628) {
- result = 1;
- } else {
- result = 0;
- }
- plus.ios.deleteObject(avaudiosession);
- return result;
- }
- function calendar() {
- var result = null;
- var EKEventStore = plus.ios.import("EKEventStore");
- var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(0);
- if (ekAuthStatus == 3) {
- result = 1;
- formatAppLog("log", "at common/permission.js:122", "日历权限已经开启");
- } else {
- formatAppLog("log", "at common/permission.js:124", "日历权限没有开启");
- }
- plus.ios.deleteObject(EKEventStore);
- return result;
- }
- function memo() {
- var result = null;
- var EKEventStore = plus.ios.import("EKEventStore");
- var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(1);
- if (ekAuthStatus == 3) {
- result = 1;
- formatAppLog("log", "at common/permission.js:136", "备忘录权限已经开启");
- } else {
- formatAppLog("log", "at common/permission.js:138", "备忘录权限没有开启");
- }
- plus.ios.deleteObject(EKEventStore);
- return result;
- }
- function requestIOS(permissionID) {
- return new Promise((resolve, reject) => {
- switch (permissionID) {
- case "push":
- resolve(push());
- break;
- case "location":
- resolve(location$1());
- break;
- case "record":
- resolve(record());
- break;
- case "camera":
- resolve(camera());
- break;
- case "album":
- resolve(album());
- break;
- case "contact":
- resolve(contact());
- break;
- case "calendar":
- resolve(calendar());
- break;
- case "memo":
- resolve(memo());
- break;
- default:
- resolve(0);
- break;
- }
- });
- }
- function requestAndroid(permissionID) {
- return new Promise((resolve, reject) => {
- plus.android.requestPermissions(
- [permissionID],
- function(resultObj) {
- var result = 0;
- for (var i2 = 0; i2 < resultObj.granted.length; i2++) {
- var grantedPermission = resultObj.granted[i2];
- formatAppLog("log", "at common/permission.js:187", "已获取的权限:" + grantedPermission);
- result = 1;
- }
- for (var i2 = 0; i2 < resultObj.deniedPresent.length; i2++) {
- var deniedPresentPermission = resultObj.deniedPresent[i2];
- formatAppLog("log", "at common/permission.js:192", "拒绝本次申请的权限:" + deniedPresentPermission);
- result = 0;
- }
- for (var i2 = 0; i2 < resultObj.deniedAlways.length; i2++) {
- var deniedAlwaysPermission = resultObj.deniedAlways[i2];
- formatAppLog("log", "at common/permission.js:197", "永久拒绝申请的权限:" + deniedAlwaysPermission);
- result = -1;
- }
- resolve(result);
- },
- function(error) {
- formatAppLog("log", "at common/permission.js:203", "result error: " + error.message);
- resolve({
- code: error.code,
- message: error.message
- });
- }
- );
- });
- }
- function gotoAppPermissionSetting() {
- if (permission.isIOS) {
- var UIApplication = plus.ios.import("UIApplication");
- var application2 = UIApplication.sharedApplication();
- var NSURL2 = plus.ios.import("NSURL");
- var setting2 = NSURL2.URLWithString("app-settings:");
- application2.openURL(setting2);
- plus.ios.deleteObject(setting2);
- plus.ios.deleteObject(NSURL2);
- plus.ios.deleteObject(application2);
- } else {
- var Intent = plus.android.importClass("android.content.Intent");
- var Settings = plus.android.importClass("android.provider.Settings");
- var Uri = plus.android.importClass("android.net.Uri");
- var mainActivity = plus.android.runtimeMainActivity();
- var intent = new Intent();
- intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
- var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
- intent.setData(uri);
- mainActivity.startActivity(intent);
- }
- }
- const permission = {
- get isIOS() {
- return typeof isIOS === "boolean" ? isIOS : isIOS = uni.getSystemInfoSync().platform === "ios";
- },
- requestIOS,
- requestAndroid,
- gotoAppSetting: gotoAppPermissionSetting
- };
- const baseURL = "http://dsg.tms.api.aibasil.cn";
- const warehouseScanURL = baseURL + "/admin/order.sheetOrder/warehouseScan";
- const instockScanURL = baseURL + "/admin/order.scanOrder/instock";
- const outStockScanURL = baseURL + "/admin/order.scanOrder/outStock";
- const checkWaybillGoodsURL = baseURL + "/admin/order.scanOrder/checkWaybillGoods";
- const getWarehouseSpaceURL = baseURL + "/admin/order.ScanOrder/getWarehouseSpace";
- const weighScanURL = baseURL + "/admin/order.scanOrder/weigh";
- const getBindParamsURL = baseURL + "/admin/order.scanOrder/getBindParams";
- const getPrinterListURL = baseURL + "/admin/printer//getPrinterList";
- const bindShippingURL = baseURL + "/admin/order.scanOrder/bindShipping";
- const getWaybillsURL = baseURL + "/admin/order.scanOrder/getWaybills";
- const printWaybillLabelURL = baseURL + "/admin/order.ScanOrder/printWaybillLabel";
- const printCustomerLabelURL = baseURL + "/admin/order.ScanOrder/printCustomerLabel";
- const loginURL = baseURL + "/admin/index/login";
- const getcaptchaURL = baseURL + "/api/common/captcha";
- const pickupWaybillDeliveryOrderURL = baseURL + "/admin/pickup.waybillDeliveryOrder";
- const addWaybillNoURL = baseURL + "/admin/warehouse.waybillNo/add";
- const waybillNoOptions = baseURL + "/admin/warehouse.waybillNo/getOptions";
- const sendOutURL = baseURL + "/admin/pickup.waybillDeliveryOrder/sendOut";
- const deliveredURL = baseURL + "/admin/pickup.waybillDeliveryOrder/delivered";
- const refuseURL = baseURL + "/admin/pickup.waybillDeliveryOrder/refuse";
- const createTrackPodURL = baseURL + "/admin/pickup.waybillDeliveryOrder/createTrackPod";
- const cancelFedExPickUpURL = baseURL + "/admin/pickup.waybillDeliveryOrder/cancelFedExPickUp";
- const getAliyunOssSignatureUrl = baseURL + "/admin/Config/getAliyunOssSignature";
- const hexList = [];
- for (let i2 = 0; i2 <= 15; i2++) {
- hexList[i2] = i2.toString(16);
- }
- function uuid() {
- let uuid2 = "";
- for (let i2 = 1; i2 <= 36; i2++) {
- if (i2 === 9 || i2 === 14 || i2 === 19 || i2 === 24) {
- uuid2 += "-";
- } else if (i2 === 15) {
- uuid2 += 4;
- } else if (i2 === 20) {
- uuid2 += hexList[Math.random() * 4 | 8];
- } else {
- uuid2 += hexList[Math.random() * 16 | 0];
- }
- }
- return uuid2;
- }
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const alertDialog = vue.ref();
- const message = vue.ref();
- const valiForm = vue.ref();
- const printerDialog = vue.ref();
- const token = vue.ref(null);
- const user = vue.ref(null);
- const loading = vue.ref(false);
- const images = vue.ref([]);
- const messageType = vue.ref("");
- const messageText = vue.ref("");
- const batchOptions = vue.ref([]);
- const spaces = vue.ref([]);
- const previewImage = vue.ref(null);
- const maxImages = vue.ref(6);
- const uploadData = vue.ref([]);
- const imageValue = vue.ref([]);
- const printerList = vue.ref({});
- const instockHistory = vue.ref([]);
- const printers = vue.ref([]);
- const downloadFile = vue.ref([]);
- const sendToPeinter = vue.ref([1]);
- const selectPrinter = vue.ref(0);
- const subLoading = vue.ref(false);
- const focusType = vue.ref(true);
- const result = vue.ref();
- const valiFormData = vue.reactive({
- images: [],
- orderNum: "",
- batch_number: "",
- space_code: "",
- weight: "",
- search_pkg: true,
- typing: true,
- search_order: true,
- search_order_choice: 1
- });
- const searchOrderChoice = vue.reactive([
- {
- text: "更新为已入库,状态为【已入库】",
- value: 1
- },
- {
- text: "更新为已出库,状态为【已出库】",
- value: 2
- },
- {
- text: "称重计费",
- value: 3
- }
- ]);
- const rules = vue.computed(() => {
- return {
- orderNum: {
- rules: [
- {
- required: valiFormData.search_order_choice !== 2,
- errorMessage: "单号不能为空"
- }
- ]
- },
- weight: {
- rules: [
- {
- required: true,
- errorMessage: "重量不能为空"
- },
- {
- format: "number",
- errorMessage: "重量只能输入数字"
- }
- ]
- }
- };
- });
- const spaceRes = vue.computed(() => {
- try {
- const res = spaces.value.find((item) => item.value === valiFormData.space_code);
- return res == null ? void 0 : res.text;
- } catch (e2) {
- formatAppLog("log", "at pages/instock/index.vue:261", e2);
- return "";
- }
- });
- onShow(() => {
- focusType.value = true;
- loading.value = false;
- token.value = uni.getStorageSync("token");
- user.value = uni.getStorageSync("user");
- getWarehouseSpace();
- getBindParams();
- getPrinterList();
- });
- onHide(() => {
- focusType.value = false;
- loading.value = false;
- });
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/instock/instockLog"
- });
- }
- });
- const getWarehouseSpace = () => {
- uni.request({
- url: getWarehouseSpaceURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- code: ""
- },
- success: (res) => {
- if (res.data.code === 1) {
- spaces.value = res.data.data.spaces.map((item) => {
- return {
- text: item.name,
- value: item.code
- };
- });
- }
- }
- });
- };
- const getBindParams = () => {
- uni.request({
- url: getBindParamsURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- batchOptions.value = res.data.data.batch_number.map((item) => {
- return {
- text: item.name,
- value: item.id
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/instock/index.vue:327", "fail--", e2);
- }
- });
- };
- const getPrinterList = () => {
- uni.request({
- url: getPrinterListURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- printerList.value = res.data.data.printers;
- printers.value = Object.values(printerList.value).map((item) => {
- return {
- text: item.name,
- value: item.value
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/instock/index.vue:351", "fail--", e2);
- }
- });
- };
- const batchText = (batch_number) => {
- var _a;
- return (_a = batchOptions.value.find((item) => item.value === batch_number)) == null ? void 0 : _a.text;
- };
- const searchPkgChange = () => {
- valiFormData.search_pkg = !valiFormData.search_pkg;
- valiFormData.typing = valiFormData.search_pkg;
- };
- const searchOrderChoiceChange = () => {
- valiFormData.search_order = !valiFormData.search_order;
- valiFormData.search_order_choice = valiFormData.search_order ? 3 : "";
- };
- const reset = () => {
- loading.value = false;
- focusType.value = false;
- images.value = [];
- valiFormData.orderNum = "";
- valiFormData.batch_number = "";
- valiFormData.weight = "";
- valiFormData.search_pkg = true;
- valiFormData.typing = true;
- valiFormData.search_order = true;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- const scan = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- result.value = res.result;
- valiFormData.orderNum = res.result;
- },
- fail: (err) => {
- }
- });
- };
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- let st2;
- const warehouseScan = async () => {
- st2 && clearTimeout(st2);
- if (valiFormData.search_order_choice === 1) {
- await checkWaybillGoods();
- } else if (valiFormData.search_order_choice === 2) {
- await scanOutstock();
- } else if (valiFormData.search_order_choice === 3) {
- await weighScan();
- }
- };
- const checkWaybillGoods = async () => {
- loading.value = true;
- uni.request({
- url: checkWaybillGoodsURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum
- },
- success: (res) => {
- if (res.data.code === 1 && res.data.data.is_goods_empty) {
- alertDialog.value.open();
- } else {
- instockScan(0);
- }
- }
- });
- };
- const instockScan = (is_save_goods) => {
- const images2 = getImages();
- uni.request({
- url: instockScanURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum,
- weight: valiFormData.weight,
- space_code: valiFormData.space_code,
- is_save_goods,
- images: images2
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- message.value.open();
- formatAppLog("log", "at pages/instock/index.vue:475", "res.data.data---", res.data.data);
- const historyItem = {
- orderNum: valiFormData.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- space: spaceRes.value,
- type: "入库",
- status: true
- };
- instockHistory.value.unshift(historyItem);
- uni.setStorageSync("instockHistory", instockHistory.value);
- if (res.data.data.express_label) {
- formatAppLog("log", "at pages/instock/index.vue:489", "有打印面单");
- selectPrinter.value = sendToPeinter.value.length > 0 ? printers.value[0].value : 0;
- printerDialog.value.open();
- } else {
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- message.value.open();
- const historyItem = {
- orderNum: valiFormData.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- space: spaceRes.value,
- type: "入库",
- status: false
- };
- instockHistory.value.unshift(historyItem);
- uni.setStorageSync("instockHistory", instockHistory.value);
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- }
- });
- };
- const scanOutstock = () => {
- formatAppLog("log", "at pages/instock/index.vue:522", valiFormData.orderNum, valiFormData.batch_number);
- if (valiFormData.orderNum.length === 0 && valiFormData.batch_number.length === 0) {
- messageType.value = "error";
- messageText.value = "单号或批次号至少填一个";
- message.value.open();
- return;
- }
- loading.value = true;
- uni.request({
- url: outStockScanURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum,
- batch_number: valiFormData.batch_number
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- message.value.open();
- const historyItem = {
- orderNum: valiFormData.orderNum,
- batch_text: batchText(valiFormData.batch_number),
- createTime: /* @__PURE__ */ new Date(),
- type: "出库",
- status: true
- };
- instockHistory.value.unshift(historyItem);
- instockHistory.value.length > 10 && (instockHistory.value.length = 10);
- uni.setStorageSync("instockHistory", instockHistory.value);
- if (res.data.data.labels && res.data.data.labels.length > 0) {
- formatAppLog("log", "at pages/instock/index.vue:559", "有打印面单");
- selectPrinter.value = sendToPeinter.value.length > 0 ? printers.value[0].value : 0;
- printerDialog.value.open();
- } else {
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 700);
- }
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- message.value.open();
- const historyItem = {
- orderNum: valiFormData.orderNum,
- batch_text: batchText(valiFormData.batch_number),
- createTime: /* @__PURE__ */ new Date(),
- type: "出库",
- status: false
- };
- instockHistory.value.unshift(historyItem);
- instockHistory.value.length > 10 && (instockHistory.value.length = 10);
- uni.setStorageSync("instockHistory", instockHistory.value);
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 700);
- }
- }
- });
- };
- const weighScan = () => {
- loading.value = true;
- uni.request({
- url: weighScanURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum,
- weight: valiFormData.weight
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- message.value.open();
- const historyItem = {
- orderNum: valiFormData.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- type: "称重",
- status: true
- };
- instockHistory.value.unshift(historyItem);
- instockHistory.value.length > 10 && (instockHistory.value.length = 10);
- uni.setStorageSync("instockHistory", instockHistory.value);
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- message.value.open();
- const historyItem = {
- orderNum: valiFormData.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- type: "称重",
- status: false
- };
- instockHistory.value.unshift(historyItem);
- instockHistory.value.length > 10 && (instockHistory.value.length = 10);
- uni.setStorageSync("instockHistory", instockHistory.value);
- }
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 700);
- }
- });
- };
- const close = () => {
- printerDialog.value.close();
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 700);
- };
- const dialogConfirm = () => {
- instockScan(1);
- };
- const dialogClose = () => {
- instockScan(0);
- };
- const sendToPeinterFun = (res) => {
- if (!res.detail.value.length > 0) {
- selectPrinter.value = 0;
- } else {
- selectPrinter.value = printers.value[0].value;
- }
- };
- const printConfirm = () => {
- subLoading.value = true;
- uni.request({
- url: printWaybillLabelURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum,
- printer_code: selectPrinter
- },
- success: (res) => {
- close();
- subLoading.value = false;
- formatAppLog("log", "at pages/instock/index.vue:678", "打印成功", res);
- messageType.value = "success";
- messageText.value = "打印成功";
- message.value.open();
- }
- });
- };
- const onsubmit = () => {
- valiForm.value.validate().then((res) => {
- warehouseScan();
- }).catch((err) => {
- formatAppLog("log", "at pages/instock/index.vue:692", "err", err);
- });
- };
- const getHistory = () => {
- };
- const getImages = () => {
- const res = images.value.map((item) => {
- return {
- name: item.name,
- savePath: item.serverUrl,
- fileSize: item.size,
- mimeType: item.type
- };
- });
- formatAppLog("log", "at pages/instock/index.vue:707", "res22 ", res);
- return res;
- };
- const getAliyunOssSignature = (rawFiles) => {
- uni.request({
- url: getAliyunOssSignatureUrl,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: ({ data }) => {
- const signature = data.data.signature;
- const uploadPromises = rawFiles.map((image) => {
- return upLoadFile(signature, image);
- });
- Promise.all(uploadPromises).then((results) => {
- formatAppLog("log", "at pages/instock/index.vue:728", "所有图片加载成功:", results);
- uni.showToast({
- title: "加载成功",
- icon: "success"
- });
- }).catch((error) => {
- formatAppLog("error", "at pages/instock/index.vue:735", "加载失败:", error);
- uni.showToast({
- title: "加载失败",
- icon: "none"
- });
- });
- },
- fail: (err) => {
- formatAppLog("log", "at pages/instock/index.vue:743", err);
- }
- });
- };
- const upLoadFile = (signature, image) => {
- const fileData = {
- policy: signature.policy,
- signature: signature.signature,
- ossaccessKeyId: signature.ossAccessKeyId,
- key: signature.dir + dayjs().format("YYYYMMDD") + "/" + uuid() + "_" + image.name,
- dir: signature.dir,
- host: signature.host,
- file: image.file
- };
- return new Promise((resolve, reject) => {
- const uploadTask = uni.uploadFile({
- url: signature.host,
- // 你的上传接口地址
- filePath: image.path,
- name: image.name,
- // 这里根据后端需要的字段来定义
- formData: fileData,
- success: (uploadFileRes) => {
- if (uploadFileRes.statusCode === 204 || uploadFileRes.statusCode === 200) {
- image.serverUrl = fileData.key;
- resolve(uploadFileRes);
- } else {
- reject(uploadFileRes);
- }
- },
- fail: (error) => {
- formatAppLog("log", "at pages/instock/index.vue:772", "error++", error);
- reject(error);
- },
- // 更新上传进度
- complete: () => {
- formatAppLog("log", "at pages/instock/index.vue:777", "complete---");
- image.progress = 100;
- }
- });
- uploadTask.onProgressUpdate((progressEvent) => {
- image.progress = progressEvent.progress;
- });
- });
- };
- const chooseImage = () => {
- uni.chooseImage({
- count: maxImages.value - images.value.length,
- success: (res) => {
- formatAppLog("log", "at pages/instock/index.vue:791", "res---", res);
- images.value = images.value.concat(
- res.tempFiles.map((item) => {
- const res2 = {
- size: item.size,
- path: item.path,
- name: item.name,
- type: item.type,
- progress: 0,
- file: item
- };
- const suffix = item.path.substring(item.path.lastIndexOf(".") + 1);
- const fileName = item.path.substring(item.path.lastIndexOf("/") + 1);
- res2.name = fileName;
- res2.type = suffix;
- return res2;
- })
- );
- const paddingImages = images.value.filter((image) => image.progress === 0);
- vue.nextTick(() => {
- getAliyunOssSignature(paddingImages);
- });
- },
- fail: (err) => {
- formatAppLog("error", "at pages/instock/index.vue:825", err);
- }
- });
- };
- const deleteImage = (index) => {
- images.value.splice(index, 1);
- };
- const openPreview = (image) => {
- previewImage.value = image;
- };
- const closePreview = () => {
- previewImage.value = null;
- };
- const __returned__ = { alertDialog, message, valiForm, printerDialog, token, user, loading, images, messageType, messageText, batchOptions, spaces, previewImage, maxImages, uploadData, imageValue, printerList, instockHistory, printers, downloadFile, sendToPeinter, selectPrinter, subLoading, focusType, result, valiFormData, searchOrderChoice, rules, spaceRes, getWarehouseSpace, getBindParams, getPrinterList, batchText, searchPkgChange, searchOrderChoiceChange, reset, scan, checkPermission, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, warehouseScan, checkWaybillGoods, instockScan, scanOutstock, weighScan, close, dialogConfirm, dialogClose, sendToPeinterFun, printConfirm, onsubmit, getHistory, getImages, getAliyunOssSignature, upLoadFile, chooseImage, deleteImage, openPreview, closePreview };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1);
- const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$6);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_data_checkbox = resolveEasycom(vue.resolveDynamicComponent("uni-data-checkbox"), __easycom_0$4);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- const _component_uni_popup_dialog = resolveEasycom(vue.resolveDynamicComponent("uni-popup-dialog"), __easycom_0$2);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createElementVNode("view", { class: "example" }, [
- vue.createCommentVNode(" 基础表单校验 "),
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_forms_item, {
- label: "单号",
- required: $setup.valiFormData.search_order_choice !== 2,
- name: "orderNum"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.orderNum,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.orderNum = $event),
- placeholder: "请输入单号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scan
- }, null, 8, ["modelValue", "focus"])
- ]),
- _: 1
- /* STABLE */
- }, 8, ["required"]),
- $setup.valiFormData.search_order_choice === 2 ? (vue.openBlock(), vue.createBlock(_component_uni_forms_item, {
- key: 0,
- label: "批次号",
- name: "batch_number"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_data_select, {
- modelValue: $setup.valiFormData.batch_number,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.valiFormData.batch_number = $event),
- localdata: $setup.batchOptions,
- placeholder: "请选择批次号"
- }, null, 8, ["modelValue", "localdata"])
- ]),
- _: 1
- /* STABLE */
- })) : vue.createCommentVNode("v-if", true),
- $setup.valiFormData.search_order_choice === 1 ? (vue.openBlock(), vue.createBlock(_component_uni_forms_item, {
- key: 1,
- label: "仓位编码",
- name: "space_code"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_data_select, {
- modelValue: $setup.valiFormData.space_code,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.valiFormData.space_code = $event),
- localdata: $setup.spaces,
- placeholder: "请选择仓位编码"
- }, null, 8, ["modelValue", "localdata"])
- ]),
- _: 1
- /* STABLE */
- })) : vue.createCommentVNode("v-if", true),
- $setup.valiFormData.search_order_choice !== 2 ? (vue.openBlock(), vue.createBlock(_component_uni_forms_item, {
- key: 2,
- label: "重量",
- required: "",
- name: "weight"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.weight,
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $setup.valiFormData.weight = $event),
- placeholder: "请输入重量",
- oninput: "value=value.replace(/[^\\d.]/g,'').replace(/^\\./g, '').replace(/\\.{2,}/g, '').replace('.', '$#$').replace(/\\./g, '').replace('$#$', '.').match(/^\\d*(\\.?\\d{0,2})/g)[0] || null"
- }, {
- right: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "weight-right" }, "KG")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["modelValue"])
- ]),
- _: 1
- /* STABLE */
- })) : vue.createCommentVNode("v-if", true),
- $setup.valiFormData.search_order_choice === 1 ? (vue.openBlock(), vue.createBlock(_component_uni_forms_item, {
- key: 3,
- label: "图片",
- name: "images"
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "upload-container" }, [
- vue.createElementVNode("view", { class: "preview" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.images, (img, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- key: index,
- class: "image-container"
- }, [
- vue.createElementVNode("image", {
- src: img.path,
- class: "preview-image",
- mode: "aspectFill",
- onClick: ($event) => $setup.openPreview(img.path)
- }, null, 8, ["src", "onClick"]),
- vue.createElementVNode("progress", {
- percent: img.progress || 0,
- activeColor: Number(img.progress || 0) === 100 ? "#00ff00" : "#10AEFF",
- "stroke-width": "3"
- }, null, 8, ["percent", "activeColor"]),
- img.status === "success" ? (vue.openBlock(), vue.createElementBlock("text", { key: 0 }, "1")) : vue.createCommentVNode("v-if", true),
- vue.createVNode(_component_uni_icons, {
- class: "delete-icon",
- onClick: ($event) => $setup.deleteImage(index),
- type: "clear",
- size: "20",
- color: "red"
- }, null, 8, ["onClick"])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.images.length < $setup.maxImages ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "choose-image-container",
- onClick: $setup.chooseImage
- }, [
- vue.createVNode(_component_uni_icons, {
- type: "plusempty",
- size: "40",
- color: "#ccc"
- })
- ])) : vue.createCommentVNode("v-if", true)
- ]),
- vue.createElementVNode("text", { style: { "padding-top": "8px" } }, "最多选择6张图片"),
- vue.createCommentVNode(" 放大预览 "),
- $setup.previewImage ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "preview-modal",
- onClick: $setup.closePreview
- }, [
- vue.createElementVNode("image", {
- src: $setup.previewImage,
- class: "preview-large",
- mode: "aspectFit",
- onClick: vue.withModifiers($setup.closePreview, ["stop"])
- }, null, 8, ["src"])
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]),
- _: 1
- /* STABLE */
- })) : vue.createCommentVNode("v-if", true),
- vue.createVNode(_component_uni_forms_item, null, {
- default: vue.withCtx(() => [
- vue.createElementVNode(
- "view",
- {
- onClick: $setup.searchPkgChange,
- class: "checkbox-cum",
- style: vue.normalizeStyle({ color: $setup.valiFormData.search_pkg ? "#007AFF" : "gray" })
- },
- [
- vue.createElementVNode("checkbox", {
- checked: $setup.valiFormData.search_pkg,
- onClick: $setup.searchPkgChange
- }, null, 8, ["checked"]),
- vue.createTextVNode(" 搜索寄存包裹 ")
- ],
- 4
- /* STYLE */
- ),
- vue.createElementVNode("view", { class: "sub-choice" }, [
- vue.createElementVNode("checkbox", {
- disabled: !$setup.valiFormData.search_pkg,
- checked: $setup.valiFormData.typing
- }, null, 8, ["disabled", "checked"]),
- vue.createElementVNode(
- "text",
- {
- onClick: _cache[4] || (_cache[4] = () => {
- if ($setup.valiFormData.search_pkg) {
- $setup.valiFormData.typing = !$setup.valiFormData.typing;
- }
- }),
- style: vue.normalizeStyle({
- color: $setup.valiFormData.search_pkg && $setup.valiFormData.typing ? "#007AFF" : "gray"
- })
- },
- " 包裹寄存、代购、运单都找不到时手工添加包裹 ",
- 4
- /* STYLE */
- )
- ]),
- vue.createElementVNode(
- "view",
- {
- onClick: $setup.searchOrderChoiceChange,
- class: "checkbox-cum",
- style: vue.normalizeStyle({ color: $setup.valiFormData.search_order ? "#007AFF" : "gray" })
- },
- [
- vue.createElementVNode("checkbox", {
- checked: $setup.valiFormData.search_order,
- onClick: $setup.searchOrderChoiceChange
- }, null, 8, ["checked"]),
- vue.createTextVNode(" 搜索运单 ")
- ],
- 4
- /* STYLE */
- ),
- vue.createElementVNode("view", null, [
- vue.createVNode(_component_uni_data_checkbox, {
- disabled: !$setup.valiFormData.search_order,
- modelValue: $setup.valiFormData.search_order_choice,
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => $setup.valiFormData.search_order_choice = $event),
- localdata: $setup.searchOrderChoice
- }, null, 8, ["disabled", "modelValue", "localdata"])
- ])
- ]),
- _: 1
- /* STABLE */
- })
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 提交 ")
- ], 8, ["loading"])
- ])
- ]),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.instockHistory.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- [
- vue.createTextVNode(
- vue.toDisplayString(item.orderNum) + " ",
- 1
- /* TEXT */
- ),
- item.batch_text ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 0 },
- "批次号: " + vue.toDisplayString(item.batch_text),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- item.space ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 1 },
- "仓位编码: " + vue.toDisplayString(item.space),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(
- " " + vue.toDisplayString(item.type),
- 1
- /* TEXT */
- )
- ],
- 4
- /* STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "message",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- ),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "alertDialog",
- type: "dialog"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_dialog, {
- type: "info",
- cancelText: "否",
- confirmText: "是",
- title: "提示",
- content: "是否按默认申报(默认申报为:衣服,10件,单价1)",
- onConfirm: $setup.dialogConfirm,
- onClose: $setup.dialogClose
- })
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- ),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "printerDialog",
- type: "dialog",
- "is-mask-click": false
- },
- {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { style: { "width": "90%", "margin": "0 auto", "min-height": "250px", "background-color": "#fff", "border-radius": "5px" } }, [
- vue.createElementVNode("view", {
- class: "",
- style: { "font-size": "20px", "border-bottom": "1px solid #e1e1e1", "padding": "15px 10px" }
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("view", { style: { "margin-bottom": "20px" } }, [
- vue.createElementVNode("text", null, "打印尾程面单")
- ]),
- vue.createElementVNode("view", null, [
- $setup.printerList ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [
- vue.createElementVNode("view", null, [
- vue.createVNode(_component_uni_data_checkbox, {
- multiple: "",
- modelValue: $setup.sendToPeinter,
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => $setup.sendToPeinter = $event),
- localdata: [
- {
- text: "发送到标签打印机打印",
- value: 1
- }
- ],
- onChange: $setup.sendToPeinterFun
- }, {
- default: vue.withCtx(() => [
- vue.createTextVNode(" > ")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["modelValue"]),
- vue.createVNode(_component_uni_data_checkbox, {
- disabled: $setup.sendToPeinter.length === 0,
- modelValue: $setup.selectPrinter,
- "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => $setup.selectPrinter = $event),
- localdata: $setup.printers
- }, null, 8, ["disabled", "modelValue", "localdata"])
- ])
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]),
- vue.createElementVNode("view", { style: { "text-align": "center", "position": "absolute", "bottom": "10px", "width": "90%", "display": "flex", "margin": "0 auto", "left": "0", "right": "0" } }, [
- vue.createElementVNode("button", {
- onClick: $setup.close,
- style: { "width": "35%" }
- }, "关闭"),
- vue.createElementVNode("button", {
- onClick: $setup.printConfirm,
- "hover-stay-time": 500,
- loading: $setup.subLoading,
- disabled: $setup.sendToPeinter.length === 0 || $setup.subLoading,
- class: "my-bt-bg",
- style: { "width": "35%" }
- }, " 打印 ", 8, ["loading", "disabled"])
- ])
- ])
- ])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesInstockIndex = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$l], ["__scopeId", "data-v-0a882863"], ["__file", "E:/HBuilderProjects/YTAPP/pages/instock/index.vue"]]);
- const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
- __name: "instockLog",
- setup(__props, { expose: __expose }) {
- __expose();
- const instockHistory = vue.ref([]);
- const getHistory = () => {
- instockHistory.value = uni.getStorageSync("instockHistory");
- };
- onLoad(() => {
- getHistory();
- });
- const __returned__ = { instockHistory, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.instockHistory, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", { class: "item" }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- [
- vue.createTextVNode(
- vue.toDisplayString(item.orderNum) + " ",
- 1
- /* TEXT */
- ),
- item.batch_text ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 0 },
- "批次号: " + vue.toDisplayString(item.batch_text),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- item.space ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 1 },
- "仓位编码: " + vue.toDisplayString(item.space),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(
- " " + vue.toDisplayString(item.type),
- 1
- /* TEXT */
- )
- ],
- 4
- /* STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 256
- /* UNKEYED_FRAGMENT */
- )),
- $setup.instockHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无历史")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesInstockInstockLog = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$k], ["__scopeId", "data-v-02f20d50"], ["__file", "E:/HBuilderProjects/YTAPP/pages/instock/instockLog.vue"]]);
- const _imports_0$2 = "/static/user.png";
- const _sfc_main$k = {
- data() {
- const token = vue.ref(null);
- const user = vue.ref(null);
- return {
- token,
- user
- };
- },
- onLoad() {
- },
- onShow() {
- this.token = uni.getStorageSync("token");
- this.user = uni.getStorageSync("user");
- },
- methods: {
- avatarClick() {
- if (this.token)
- ;
- else {
- uni.navigateTo({
- url: "/pages/login/index"
- });
- }
- },
- logout() {
- uni.removeStorageSync("token");
- uni.removeStorageSync("user");
- this.token = uni.getStorageSync("token");
- this.user = uni.getStorageSync("user");
- },
- dialogToggle() {
- this.$refs.alertDialog.open();
- }
- }
- };
- function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_popup_dialog = resolveEasycom(vue.resolveDynamicComponent("uni-popup-dialog"), __easycom_0$2);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "content" }, [
- vue.createElementVNode("view", {
- class: "user-v",
- onClick: _cache[0] || (_cache[0] = (...args) => $options.avatarClick && $options.avatarClick(...args))
- }, [
- !$data.user.avatar ? (vue.openBlock(), vue.createElementBlock("image", {
- key: 0,
- class: "user-icon",
- src: _imports_0$2
- })) : (vue.openBlock(), vue.createElementBlock("image", {
- key: 1,
- class: "user-icon",
- src: $data.user.avatar
- }, null, 8, ["src"]))
- ]),
- vue.createElementVNode("view", { class: "text-area" }, [
- vue.createElementVNode(
- "text",
- { class: "title" },
- vue.toDisplayString($data.user.username),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("view", { class: "login-btn" }, [
- !$data.token ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 0,
- type: "primary",
- plain: "true",
- size: "mini",
- onClick: _cache[1] || (_cache[1] = (...args) => $options.avatarClick && $options.avatarClick(...args))
- }, "登录")) : (vue.openBlock(), vue.createElementBlock("button", {
- key: 1,
- type: "default",
- plain: "true",
- size: "mini",
- onClick: _cache[2] || (_cache[2] = (...args) => $options.dialogToggle && $options.dialogToggle(...args))
- }, "注销"))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "alertDialog",
- type: "dialog"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_dialog, {
- type: "info",
- cancelText: "取消",
- confirmText: "注销",
- title: "注销",
- content: "确定是要注销吗?",
- onConfirm: $options.logout
- }, null, 8, ["onConfirm"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesProfileIndex = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$j], ["__file", "E:/HBuilderProjects/YTAPP/pages/profile/index.vue"]]);
- const _imports_0$1 = "/static/logo.png";
- const _sfc_main$j = {
- data() {
- return {
- messageText: "",
- captcha_id: "f2dd39ce-0d3e-4c1e-916c-b50090a7590s",
- verifyCodeImg: "",
- //验证码图片
- verifyCodeToken: "",
- //图形验证码的验证token
- isVerifyCodeTure: false,
- //验证码输入是否正确
- valiFormData: {
- account: "",
- password: "",
- captcha: ""
- },
- rules: {
- name: {
- rules: [{
- required: true,
- errorMessage: "姓名不能为空"
- }]
- }
- }
- };
- },
- onLoad() {
- this.getVerifyCodeImg();
- },
- methods: {
- getVerifyCodeImg() {
- uni.request({
- url: `${getcaptchaURL}?server=1&id=${this.captcha_id}&m=` + Math.random(),
- method: "GET",
- responseType: "arraybuffer",
- //设置响应类型
- success: (res) => {
- const arrayBuffer = new Uint8Array(res.data);
- const base64 = "data:image/png;base64," + uni.arrayBufferToBase64(
- arrayBuffer
- );
- this.verifyCodeImg = base64;
- this.verifyCodeToken = res.header["Set-Cookie"];
- }
- });
- },
- formSubmit() {
- uni.request({
- //api地址
- url: loginURL,
- data: {
- "username": this.valiFormData.account,
- "password": this.valiFormData.password,
- "captcha": this.valiFormData.captcha,
- "keep": false,
- "loading": true,
- "captcha_id": this.captcha_id
- },
- //请求类型
- method: "POST",
- success: (res) => {
- formatAppLog("log", "at pages/login/index.vue:100", res);
- if (res.data.code == 1) {
- const userInfo = res.data.data.userInfo;
- uni.setStorage({
- key: "token",
- data: userInfo.token,
- success() {
- uni.setStorage({
- key: "user",
- data: userInfo,
- success() {
- uni.navigateBack();
- }
- });
- }
- });
- } else {
- formatAppLog("log", "at pages/login/index.vue:120", res);
- this.messageText = res.data.msg;
- this.$refs.message.open();
- }
- }
- });
- }
- }
- };
- function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "contaier" }, [
- vue.createElementVNode("view", { class: "top-bg" }, [
- vue.createElementVNode("image", {
- class: "logo-icon",
- src: _imports_0$1
- })
- ]),
- vue.createElementVNode("view", { class: "input-box padding-lr" }, [
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- rules: $data.rules,
- modelValue: $data.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "cu-form-group margin-top" }, [
- vue.createVNode(_component_uni_icons, {
- class: "uni-icon",
- type: "person",
- size: "30",
- color: "#999"
- }),
- vue.createVNode(_component_uni_easyinput, {
- placeholder: "账号",
- modelValue: $data.valiFormData.account,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.valiFormData.account = $event)
- }, null, 8, ["modelValue"])
- ]),
- vue.createElementVNode("view", { class: "cu-form-group" }, [
- vue.createVNode(_component_uni_icons, {
- class: "uni-icon",
- type: "locked",
- size: "30",
- color: "#999"
- }),
- vue.createVNode(_component_uni_easyinput, {
- placeholder: "密码",
- type: "password",
- modelValue: $data.valiFormData.password,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.valiFormData.password = $event)
- }, null, 8, ["modelValue"])
- ]),
- vue.createElementVNode("view", { class: "cu-form-group solid-bottom" }, [
- vue.createVNode(_component_uni_icons, {
- class: "uni-icon",
- type: "more-filled",
- size: "30",
- color: "#999"
- }),
- vue.createVNode(_component_uni_easyinput, {
- placeholder: "验证码",
- modelValue: $data.valiFormData.captcha,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.valiFormData.captcha = $event)
- }, null, 8, ["modelValue"]),
- vue.createCommentVNode(" <button class='cu-btn bg-login-zl shadow'>验证码</button> "),
- vue.createElementVNode("image", {
- class: "cu-btn captchaImg",
- src: $data.verifyCodeImg,
- onClick: _cache[3] || (_cache[3] = (...args) => $options.getVerifyCodeImg && $options.getVerifyCodeImg(...args))
- }, null, 8, ["src"])
- ])
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"])
- ]),
- vue.createElementVNode("view", { class: "padding-lr margin-top-xs" }, [
- vue.createElementVNode("button", {
- class: "cu-btn block round bg-login-zl margin-tb-sm lg",
- onClick: _cache[4] || (_cache[4] = ($event) => $options.formSubmit("valiForm"))
- }, "立即登录")
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "message",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: "error",
- message: $data.messageText,
- duration: 2e3
- }, null, 8, ["message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesLoginIndex = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$i], ["__scopeId", "data-v-d08ef7d4"], ["__file", "E:/HBuilderProjects/YTAPP/pages/login/index.vue"]]);
- const _sfc_main$i = {
- data() {
- const token = vue.ref(null);
- const user = vue.ref(null);
- return {
- token,
- user
- };
- },
- onLoad() {
- },
- onShow() {
- this.token = uni.getStorageSync("token");
- this.user = uni.getStorageSync("user");
- },
- methods: {
- avatarClick() {
- if (this.token)
- ;
- else {
- uni.navigateTo({
- url: "/pages/login/index"
- });
- }
- },
- logout() {
- uni.removeStorageSync("token");
- uni.removeStorageSync("user");
- this.token = uni.getStorageSync("token");
- this.user = uni.getStorageSync("user");
- },
- dialogToggle() {
- this.$refs.alertDialog.open();
- }
- }
- };
- function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "content" });
- }
- const PagesOrderIndex = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$h], ["__file", "E:/HBuilderProjects/YTAPP/pages/order/index.vue"]]);
- const dataPicker = {
- props: {
- localdata: {
- type: [Array, Object],
- default() {
- return [];
- }
- },
- spaceInfo: {
- type: Object,
- default() {
- return {};
- }
- },
- collection: {
- type: String,
- default: ""
- },
- action: {
- type: String,
- default: ""
- },
- field: {
- type: String,
- default: ""
- },
- orderby: {
- type: String,
- default: ""
- },
- where: {
- type: [String, Object],
- default: ""
- },
- pageData: {
- type: String,
- default: "add"
- },
- pageCurrent: {
- type: Number,
- default: 1
- },
- pageSize: {
- type: Number,
- default: 500
- },
- getcount: {
- type: [Boolean, String],
- default: false
- },
- getone: {
- type: [Boolean, String],
- default: false
- },
- gettree: {
- type: [Boolean, String],
- default: false
- },
- manual: {
- type: Boolean,
- default: false
- },
- value: {
- type: [Array, String, Number],
- default() {
- return [];
- }
- },
- modelValue: {
- type: [Array, String, Number],
- default() {
- return [];
- }
- },
- preload: {
- type: Boolean,
- default: false
- },
- stepSearh: {
- type: Boolean,
- default: true
- },
- selfField: {
- type: String,
- default: ""
- },
- parentField: {
- type: String,
- default: ""
- },
- multiple: {
- type: Boolean,
- default: false
- },
- map: {
- type: Object,
- default() {
- return {
- text: "text",
- value: "value"
- };
- }
- }
- },
- data() {
- return {
- loading: false,
- errorMessage: "",
- loadMore: {
- contentdown: "",
- contentrefresh: "",
- contentnomore: ""
- },
- dataList: [],
- selected: [],
- selectedIndex: 0,
- page: {
- current: this.pageCurrent,
- size: this.pageSize,
- count: 0
- }
- };
- },
- computed: {
- isLocalData() {
- return !this.collection.length;
- },
- isCloudData() {
- return this.collection.length > 0;
- },
- isCloudDataList() {
- return this.isCloudData && (!this.parentField && !this.selfField);
- },
- isCloudDataTree() {
- return this.isCloudData && this.parentField && this.selfField;
- },
- dataValue() {
- let isModelValue = Array.isArray(this.modelValue) ? this.modelValue.length > 0 : this.modelValue !== null || this.modelValue !== void 0;
- return isModelValue ? this.modelValue : this.value;
- },
- hasValue() {
- if (typeof this.dataValue === "number") {
- return true;
- }
- return this.dataValue != null && this.dataValue.length > 0;
- }
- },
- created() {
- this.$watch(() => {
- var al = [];
- [
- "pageCurrent",
- "pageSize",
- "spaceInfo",
- "value",
- "modelValue",
- "localdata",
- "collection",
- "action",
- "field",
- "orderby",
- "where",
- "getont",
- "getcount",
- "gettree"
- ].forEach((key) => {
- al.push(this[key]);
- });
- return al;
- }, (newValue, oldValue) => {
- for (let i2 = 2; i2 < newValue.length; i2++) {
- if (newValue[i2] != oldValue[i2]) {
- break;
- }
- }
- if (newValue[0] != oldValue[0]) {
- this.page.current = this.pageCurrent;
- }
- this.page.size = this.pageSize;
- this.onPropsChange();
- });
- this._treeData = [];
- },
- methods: {
- onPropsChange() {
- this._treeData = [];
- },
- // 填充 pickview 数据
- async loadData() {
- if (this.isLocalData) {
- this.loadLocalData();
- } else if (this.isCloudDataList) {
- this.loadCloudDataList();
- } else if (this.isCloudDataTree) {
- this.loadCloudDataTree();
- }
- },
- // 加载本地数据
- async loadLocalData() {
- this._treeData = [];
- this._extractTree(this.localdata, this._treeData);
- let inputValue = this.dataValue;
- if (inputValue === void 0) {
- return;
- }
- if (Array.isArray(inputValue)) {
- inputValue = inputValue[inputValue.length - 1];
- if (typeof inputValue === "object" && inputValue[this.map.value]) {
- inputValue = inputValue[this.map.value];
- }
- }
- this.selected = this._findNodePath(inputValue, this.localdata);
- },
- // 加载 Cloud 数据 (单列)
- async loadCloudDataList() {
- if (this.loading) {
- return;
- }
- this.loading = true;
- try {
- let response = await this.getCommand();
- let responseData = response.result.data;
- this._treeData = responseData;
- this._updateBindData();
- this._updateSelected();
- this.onDataChange();
- } catch (e2) {
- this.errorMessage = e2;
- } finally {
- this.loading = false;
- }
- },
- // 加载 Cloud 数据 (树形)
- async loadCloudDataTree() {
- if (this.loading) {
- return;
- }
- this.loading = true;
- try {
- let commandOptions = {
- field: this._cloudDataPostField(),
- where: this._cloudDataTreeWhere()
- };
- if (this.gettree) {
- commandOptions.startwith = `${this.selfField}=='${this.dataValue}'`;
- }
- let response = await this.getCommand(commandOptions);
- let responseData = response.result.data;
- this._treeData = responseData;
- this._updateBindData();
- this._updateSelected();
- this.onDataChange();
- } catch (e2) {
- this.errorMessage = e2;
- } finally {
- this.loading = false;
- }
- },
- // 加载 Cloud 数据 (节点)
- async loadCloudDataNode(callback) {
- if (this.loading) {
- return;
- }
- this.loading = true;
- try {
- let commandOptions = {
- field: this._cloudDataPostField(),
- where: this._cloudDataNodeWhere()
- };
- let response = await this.getCommand(commandOptions);
- let responseData = response.result.data;
- callback(responseData);
- } catch (e2) {
- this.errorMessage = e2;
- } finally {
- this.loading = false;
- }
- },
- // 回显 Cloud 数据
- getCloudDataValue() {
- if (this.isCloudDataList) {
- return this.getCloudDataListValue();
- }
- if (this.isCloudDataTree) {
- return this.getCloudDataTreeValue();
- }
- },
- // 回显 Cloud 数据 (单列)
- getCloudDataListValue() {
- let where = [];
- let whereField = this._getForeignKeyByField();
- if (whereField) {
- where.push(`${whereField} == '${this.dataValue}'`);
- }
- where = where.join(" || ");
- if (this.where) {
- where = `(${this.where}) && (${where})`;
- }
- return this.getCommand({
- field: this._cloudDataPostField(),
- where
- }).then((res) => {
- this.selected = res.result.data;
- return res.result.data;
- });
- },
- // 回显 Cloud 数据 (树形)
- getCloudDataTreeValue() {
- return this.getCommand({
- field: this._cloudDataPostField(),
- getTreePath: {
- startWith: `${this.selfField}=='${this.dataValue}'`
- }
- }).then((res) => {
- let treePath = [];
- this._extractTreePath(res.result.data, treePath);
- this.selected = treePath;
- return treePath;
- });
- },
- getCommand(options = {}) {
- let db = Ys.database(this.spaceInfo);
- const action = options.action || this.action;
- if (action) {
- db = db.action(action);
- }
- const collection = options.collection || this.collection;
- db = db.collection(collection);
- const where = options.where || this.where;
- if (!(!where || !Object.keys(where).length)) {
- db = db.where(where);
- }
- const field = options.field || this.field;
- if (field) {
- db = db.field(field);
- }
- const orderby = options.orderby || this.orderby;
- if (orderby) {
- db = db.orderBy(orderby);
- }
- const current = options.pageCurrent !== void 0 ? options.pageCurrent : this.page.current;
- const size = options.pageSize !== void 0 ? options.pageSize : this.page.size;
- const getCount = options.getcount !== void 0 ? options.getcount : this.getcount;
- const getTree = options.gettree !== void 0 ? options.gettree : this.gettree;
- const getOptions = {
- getCount,
- getTree
- };
- if (options.getTreePath) {
- getOptions.getTreePath = options.getTreePath;
- }
- db = db.skip(size * (current - 1)).limit(size).get(getOptions);
- return db;
- },
- _cloudDataPostField() {
- let fields = [this.field];
- if (this.parentField) {
- fields.push(`${this.parentField} as parent_value`);
- }
- return fields.join(",");
- },
- _cloudDataTreeWhere() {
- let result = [];
- let selected = this.selected;
- let parentField = this.parentField;
- if (parentField) {
- result.push(`${parentField} == null || ${parentField} == ""`);
- }
- if (selected.length) {
- for (var i2 = 0; i2 < selected.length - 1; i2++) {
- result.push(`${parentField} == '${selected[i2].value}'`);
- }
- }
- let where = [];
- if (this.where) {
- where.push(`(${this.where})`);
- }
- if (result.length) {
- where.push(`(${result.join(" || ")})`);
- }
- return where.join(" && ");
- },
- _cloudDataNodeWhere() {
- let where = [];
- let selected = this.selected;
- if (selected.length) {
- where.push(`${this.parentField} == '${selected[selected.length - 1].value}'`);
- }
- where = where.join(" || ");
- if (this.where) {
- return `(${this.where}) && (${where})`;
- }
- return where;
- },
- _getWhereByForeignKey() {
- let result = [];
- let whereField = this._getForeignKeyByField();
- if (whereField) {
- result.push(`${whereField} == '${this.dataValue}'`);
- }
- if (this.where) {
- return `(${this.where}) && (${result.join(" || ")})`;
- }
- return result.join(" || ");
- },
- _getForeignKeyByField() {
- let fields = this.field.split(",");
- let whereField = null;
- for (let i2 = 0; i2 < fields.length; i2++) {
- const items = fields[i2].split("as");
- if (items.length < 2) {
- continue;
- }
- if (items[1].trim() === "value") {
- whereField = items[0].trim();
- break;
- }
- }
- return whereField;
- },
- _updateBindData(node) {
- const {
- dataList,
- hasNodes
- } = this._filterData(this._treeData, this.selected);
- let isleaf = this._stepSearh === false && !hasNodes;
- if (node) {
- node.isleaf = isleaf;
- }
- this.dataList = dataList;
- this.selectedIndex = dataList.length - 1;
- if (!isleaf && this.selected.length < dataList.length) {
- this.selected.push({
- value: null,
- text: "请选择"
- });
- }
- return {
- isleaf,
- hasNodes
- };
- },
- _updateSelected() {
- let dl = this.dataList;
- let sl = this.selected;
- let textField = this.map.text;
- let valueField = this.map.value;
- for (let i2 = 0; i2 < sl.length; i2++) {
- let value = sl[i2].value;
- let dl2 = dl[i2];
- for (let j2 = 0; j2 < dl2.length; j2++) {
- let item2 = dl2[j2];
- if (item2[valueField] === value) {
- sl[i2].text = item2[textField];
- break;
- }
- }
- }
- },
- _filterData(data, paths) {
- let dataList = [];
- let hasNodes = true;
- dataList.push(data.filter((item) => {
- return item.parent_value === null || item.parent_value === void 0 || item.parent_value === "";
- }));
- for (let i2 = 0; i2 < paths.length; i2++) {
- let value = paths[i2].value;
- let nodes = data.filter((item) => {
- return item.parent_value === value;
- });
- if (nodes.length) {
- dataList.push(nodes);
- } else {
- hasNodes = false;
- }
- }
- return {
- dataList,
- hasNodes
- };
- },
- _extractTree(nodes, result, parent_value) {
- let valueField = this.map.value;
- for (let i2 = 0; i2 < nodes.length; i2++) {
- let node = nodes[i2];
- let child = {};
- for (let key in node) {
- if (key !== "children") {
- child[key] = node[key];
- }
- }
- if (parent_value !== null && parent_value !== void 0 && parent_value !== "") {
- child.parent_value = parent_value;
- }
- result.push(child);
- let children = node.children;
- if (children) {
- this._extractTree(children, result, node[valueField]);
- }
- }
- },
- _extractTreePath(nodes, result) {
- for (let i2 = 0; i2 < nodes.length; i2++) {
- let node = nodes[i2];
- let child = {};
- for (let key in node) {
- if (key !== "children") {
- child[key] = node[key];
- }
- }
- result.push(child);
- let children = node.children;
- if (children) {
- this._extractTreePath(children, result);
- }
- }
- },
- _findNodePath(key, nodes, path = []) {
- let textField = this.map.text;
- let valueField = this.map.value;
- for (let i2 = 0; i2 < nodes.length; i2++) {
- let node = nodes[i2];
- let children = node.children;
- let text = node[textField];
- let value = node[valueField];
- path.push({
- value,
- text
- });
- if (value === key) {
- return path;
- }
- if (children) {
- const p2 = this._findNodePath(key, children, path);
- if (p2.length) {
- return p2;
- }
- }
- path.pop();
- }
- return [];
- }
- }
- };
- const _sfc_main$h = {
- name: "UniDataPickerView",
- emits: ["nodeclick", "change", "datachange", "update:modelValue"],
- mixins: [dataPicker],
- props: {
- managedMode: {
- type: Boolean,
- default: false
- },
- ellipsis: {
- type: Boolean,
- default: true
- }
- },
- created() {
- if (!this.managedMode) {
- this.$nextTick(() => {
- this.loadData();
- });
- }
- },
- methods: {
- onPropsChange() {
- this._treeData = [];
- this.selectedIndex = 0;
- this.$nextTick(() => {
- this.loadData();
- });
- },
- handleSelect(index) {
- this.selectedIndex = index;
- },
- handleNodeClick(item, i2, j2) {
- if (item.disable) {
- return;
- }
- const node = this.dataList[i2][j2];
- const text = node[this.map.text];
- const value = node[this.map.value];
- if (i2 < this.selected.length - 1) {
- this.selected.splice(i2, this.selected.length - i2);
- this.selected.push({
- text,
- value
- });
- } else if (i2 === this.selected.length - 1) {
- this.selected.splice(i2, 1, {
- text,
- value
- });
- }
- if (node.isleaf) {
- this.onSelectedChange(node, node.isleaf);
- return;
- }
- const {
- isleaf,
- hasNodes
- } = this._updateBindData();
- if (this.isLocalData) {
- this.onSelectedChange(node, !hasNodes || isleaf);
- } else if (this.isCloudDataList) {
- this.onSelectedChange(node, true);
- } else if (this.isCloudDataTree) {
- if (isleaf) {
- this.onSelectedChange(node, node.isleaf);
- } else if (!hasNodes) {
- this.loadCloudDataNode((data) => {
- if (!data.length) {
- node.isleaf = true;
- } else {
- this._treeData.push(...data);
- this._updateBindData(node);
- }
- this.onSelectedChange(node, node.isleaf);
- });
- }
- }
- },
- updateData(data) {
- this._treeData = data.treeData;
- this.selected = data.selected;
- if (!this._treeData.length) {
- this.loadData();
- } else {
- this._updateBindData();
- }
- },
- onDataChange() {
- this.$emit("datachange");
- },
- onSelectedChange(node, isleaf) {
- if (isleaf) {
- this._dispatchEvent();
- }
- if (node) {
- this.$emit("nodeclick", node);
- }
- },
- _dispatchEvent() {
- this.$emit("change", this.selected.slice(0));
- }
- }
- };
- function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_load_more = resolveEasycom(vue.resolveDynamicComponent("uni-load-more"), __easycom_0$5);
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-data-pickerview" }, [
- !_ctx.isCloudDataList ? (vue.openBlock(), vue.createElementBlock("scroll-view", {
- key: 0,
- class: "selected-area",
- "scroll-x": "true"
- }, [
- vue.createElementVNode("view", { class: "selected-list" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(_ctx.selected, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: vue.normalizeClass(["selected-item", {
- "selected-item-active": index == _ctx.selectedIndex
- }]),
- key: index,
- onClick: ($event) => $options.handleSelect(index)
- }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(item.text || ""),
- 1
- /* TEXT */
- )
- ], 10, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "tab-c" }, [
- vue.createElementVNode("scroll-view", {
- class: "list",
- "scroll-y": true
- }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(_ctx.dataList[_ctx.selectedIndex], (item, j2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: vue.normalizeClass(["item", { "is-disabled": !!item.disable }]),
- key: j2,
- onClick: ($event) => $options.handleNodeClick(item, _ctx.selectedIndex, j2)
- }, [
- vue.createElementVNode(
- "text",
- { class: "item-text" },
- vue.toDisplayString(item[_ctx.map.text]),
- 1
- /* TEXT */
- ),
- _ctx.selected.length > _ctx.selectedIndex && item[_ctx.map.value] == _ctx.selected[_ctx.selectedIndex].value ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "check"
- })) : vue.createCommentVNode("v-if", true)
- ], 10, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- _ctx.loading ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "loading-cover"
- }, [
- vue.createVNode(_component_uni_load_more, {
- class: "load-more",
- contentText: _ctx.loadMore,
- status: "loading"
- }, null, 8, ["contentText"])
- ])) : vue.createCommentVNode("v-if", true),
- _ctx.errorMessage ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "error-message"
- }, [
- vue.createElementVNode(
- "text",
- { class: "error-text" },
- vue.toDisplayString(_ctx.errorMessage),
- 1
- /* TEXT */
- )
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]);
- }
- const DataPickerView = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$g], ["__scopeId", "data-v-91ec6a82"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue"]]);
- const _sfc_main$g = {
- name: "UniDataPicker",
- emits: ["popupopened", "popupclosed", "nodeclick", "input", "change", "update:modelValue", "inputclick"],
- mixins: [dataPicker],
- components: {
- DataPickerView
- },
- props: {
- options: {
- type: [Object, Array],
- default() {
- return {};
- }
- },
- popupTitle: {
- type: String,
- default: "请选择"
- },
- placeholder: {
- type: String,
- default: "请选择"
- },
- heightMobile: {
- type: String,
- default: ""
- },
- readonly: {
- type: Boolean,
- default: false
- },
- clearIcon: {
- type: Boolean,
- default: true
- },
- border: {
- type: Boolean,
- default: true
- },
- split: {
- type: String,
- default: "/"
- },
- ellipsis: {
- type: Boolean,
- default: true
- }
- },
- data() {
- return {
- isOpened: false,
- inputSelected: []
- };
- },
- created() {
- this.$nextTick(() => {
- this.load();
- });
- },
- watch: {
- localdata: {
- handler() {
- this.load();
- },
- deep: true
- }
- },
- methods: {
- clear() {
- this._dispatchEvent([]);
- },
- onPropsChange() {
- this._treeData = [];
- this.selectedIndex = 0;
- this.load();
- },
- load() {
- if (this.readonly) {
- this._processReadonly(this.localdata, this.dataValue);
- return;
- }
- if (this.isLocalData) {
- this.loadData();
- this.inputSelected = this.selected.slice(0);
- } else if (this.isCloudDataList || this.isCloudDataTree) {
- this.loading = true;
- this.getCloudDataValue().then((res) => {
- this.loading = false;
- this.inputSelected = res;
- }).catch((err) => {
- this.loading = false;
- this.errorMessage = err;
- });
- }
- },
- show() {
- this.isOpened = true;
- setTimeout(() => {
- this.$refs.pickerView.updateData({
- treeData: this._treeData,
- selected: this.selected,
- selectedIndex: this.selectedIndex
- });
- }, 200);
- this.$emit("popupopened");
- },
- hide() {
- this.isOpened = false;
- this.$emit("popupclosed");
- },
- handleInput() {
- if (this.readonly) {
- this.$emit("inputclick");
- return;
- }
- this.show();
- },
- handleClose(e2) {
- this.hide();
- },
- onnodeclick(e2) {
- this.$emit("nodeclick", e2);
- },
- ondatachange(e2) {
- this._treeData = this.$refs.pickerView._treeData;
- },
- onchange(e2) {
- this.hide();
- this.$nextTick(() => {
- this.inputSelected = e2;
- });
- this._dispatchEvent(e2);
- },
- _processReadonly(dataList, value) {
- var isTree = dataList.findIndex((item2) => {
- return item2.children;
- });
- if (isTree > -1) {
- let inputValue;
- if (Array.isArray(value)) {
- inputValue = value[value.length - 1];
- if (typeof inputValue === "object" && inputValue.value) {
- inputValue = inputValue.value;
- }
- } else {
- inputValue = value;
- }
- this.inputSelected = this._findNodePath(inputValue, this.localdata);
- return;
- }
- if (!this.hasValue) {
- this.inputSelected = [];
- return;
- }
- let result = [];
- for (let i2 = 0; i2 < value.length; i2++) {
- var val = value[i2];
- var item = dataList.find((v2) => {
- return v2.value == val;
- });
- if (item) {
- result.push(item);
- }
- }
- if (result.length) {
- this.inputSelected = result;
- }
- },
- _filterForArray(data, valueArray) {
- var result = [];
- for (let i2 = 0; i2 < valueArray.length; i2++) {
- var value = valueArray[i2];
- var found = data.find((item) => {
- return item.value == value;
- });
- if (found) {
- result.push(found);
- }
- }
- return result;
- },
- _dispatchEvent(selected) {
- let item = {};
- if (selected.length) {
- var value = new Array(selected.length);
- for (var i2 = 0; i2 < selected.length; i2++) {
- value[i2] = selected[i2].value;
- }
- item = selected[selected.length - 1];
- } else {
- item.value = "";
- }
- if (this.formItem) {
- this.formItem.setValue(item.value);
- }
- this.$emit("input", item.value);
- this.$emit("update:modelValue", item.value);
- this.$emit("change", {
- detail: {
- value: selected
- }
- });
- }
- }
- };
- function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_load_more = resolveEasycom(vue.resolveDynamicComponent("uni-load-more"), __easycom_0$5);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_data_picker_view = vue.resolveComponent("data-picker-view");
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-data-tree" }, [
- vue.createElementVNode("view", {
- class: "uni-data-tree-input",
- onClick: _cache[1] || (_cache[1] = (...args) => $options.handleInput && $options.handleInput(...args))
- }, [
- vue.renderSlot(_ctx.$slots, "default", {
- options: $props.options,
- data: $data.inputSelected,
- error: _ctx.errorMessage
- }, () => [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["input-value", { "input-value-border": $props.border }])
- },
- [
- _ctx.errorMessage ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 0,
- class: "selected-area error-text"
- },
- vue.toDisplayString(_ctx.errorMessage),
- 1
- /* TEXT */
- )) : _ctx.loading && !$data.isOpened ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "selected-area"
- }, [
- vue.createVNode(_component_uni_load_more, {
- class: "load-more",
- contentText: _ctx.loadMore,
- status: "loading"
- }, null, 8, ["contentText"])
- ])) : $data.inputSelected.length ? (vue.openBlock(), vue.createElementBlock("scroll-view", {
- key: 2,
- class: "selected-area",
- "scroll-x": "true"
- }, [
- vue.createElementVNode("view", { class: "selected-list" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($data.inputSelected, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "selected-item",
- key: index
- }, [
- vue.createElementVNode(
- "text",
- { class: "text-color" },
- vue.toDisplayString(item.text),
- 1
- /* TEXT */
- ),
- index < $data.inputSelected.length - 1 ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 0,
- class: "input-split-line"
- },
- vue.toDisplayString($props.split),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true)
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ])) : (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 3,
- class: "selected-area placeholder"
- },
- vue.toDisplayString($props.placeholder),
- 1
- /* TEXT */
- )),
- $props.clearIcon && !$props.readonly && $data.inputSelected.length ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 4,
- class: "icon-clear",
- onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args) => $options.clear && $options.clear(...args), ["stop"]))
- }, [
- vue.createVNode(_component_uni_icons, {
- type: "clear",
- color: "#c0c4cc",
- size: "24"
- })
- ])) : vue.createCommentVNode("v-if", true),
- (!$props.clearIcon || !$data.inputSelected.length) && !$props.readonly ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 5,
- class: "arrow-area"
- }, [
- vue.createElementVNode("view", { class: "input-arrow" })
- ])) : vue.createCommentVNode("v-if", true)
- ],
- 2
- /* CLASS */
- )
- ], true)
- ]),
- $data.isOpened ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "uni-data-tree-cover",
- onClick: _cache[2] || (_cache[2] = (...args) => $options.handleClose && $options.handleClose(...args))
- })) : vue.createCommentVNode("v-if", true),
- $data.isOpened ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "uni-data-tree-dialog"
- }, [
- vue.createElementVNode("view", { class: "uni-popper__arrow" }),
- vue.createElementVNode("view", { class: "dialog-caption" }, [
- vue.createElementVNode("view", { class: "title-area" }, [
- vue.createElementVNode(
- "text",
- { class: "dialog-title" },
- vue.toDisplayString($props.popupTitle),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("view", {
- class: "dialog-close",
- onClick: _cache[3] || (_cache[3] = (...args) => $options.handleClose && $options.handleClose(...args))
- }, [
- vue.createElementVNode("view", {
- class: "dialog-close-plus",
- "data-id": "close"
- }),
- vue.createElementVNode("view", {
- class: "dialog-close-plus dialog-close-rotate",
- "data-id": "close"
- })
- ])
- ]),
- vue.createVNode(_component_data_picker_view, {
- class: "picker-view",
- ref: "pickerView",
- modelValue: _ctx.dataValue,
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.dataValue = $event),
- localdata: _ctx.localdata,
- preload: _ctx.preload,
- collection: _ctx.collection,
- field: _ctx.field,
- orderby: _ctx.orderby,
- where: _ctx.where,
- "step-searh": _ctx.stepSearh,
- "self-field": _ctx.selfField,
- "parent-field": _ctx.parentField,
- "managed-mode": true,
- map: _ctx.map,
- ellipsis: $props.ellipsis,
- onChange: $options.onchange,
- onDatachange: $options.ondatachange,
- onNodeclick: $options.onnodeclick
- }, null, 8, ["modelValue", "localdata", "preload", "collection", "field", "orderby", "where", "step-searh", "self-field", "parent-field", "map", "ellipsis", "onChange", "onDatachange", "onNodeclick"])
- ])) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const __easycom_3$1 = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$f], ["__scopeId", "data-v-2653531e"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue"]]);
- const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const token = vue.ref();
- const loading = vue.ref(false);
- const hidePage = vue.ref(false);
- const focusType = vue.ref(true);
- const editBatchNum = vue.ref(false);
- const editPalletNum = vue.ref(false);
- const lotnoLogHistory = vue.ref([]);
- const messageRef = vue.ref();
- const messageType = vue.ref();
- const messageText = vue.ref();
- let st2;
- const valiFormData = vue.ref({
- orderNum: "",
- weight: "",
- batchNum: "",
- palletNum: ""
- });
- const rules = vue.reactive({
- orderNum: {
- rules: [
- {
- required: true,
- errorMessage: "单号不能为空"
- }
- ]
- }
- });
- const options = vue.reactive({
- batch: [],
- pallet: []
- });
- const onnodeclick = () => {
- };
- const onpopupopened = () => {
- };
- const onpopupclosed = () => {
- };
- const onchange = () => {
- };
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- const scanInput = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- valiFormData.value.orderNum = res.result;
- },
- fail: (err) => {
- }
- });
- };
- const reset = () => {
- loading.value = false;
- valiFormData.value.orderNum = "";
- valiFormData.value.weight = "";
- };
- const submitBatchNum = () => {
- if (valiFormData.value.batchNum) {
- editBatchNum.value = true;
- } else {
- messageType.value = "error";
- messageText.value = "请选择批次号";
- messageRef.value.open();
- }
- };
- const batchNum = vue.computed(() => {
- const res = options.batch.find((item) => item.value === valiFormData.value.batchNum);
- return res == null ? void 0 : res.text;
- });
- const submitPalletNum = () => {
- if (valiFormData.value.palletNum) {
- editPalletNum.value = true;
- } else {
- messageType.value = "error";
- messageText.value = "请选择托盘号";
- messageRef.value.open();
- }
- };
- const palletNum = vue.computed(() => {
- function findTextByValue(arr, targetValue) {
- for (let item of arr) {
- if (item.value === targetValue) {
- return item.text;
- }
- if (item.children && item.children.length > 0) {
- const result = findTextByValue(item.children, targetValue);
- if (result) {
- return `${item.text}/${result}`;
- }
- }
- }
- return null;
- }
- const textPath = findTextByValue(options.pallet, valiFormData.value.palletNum);
- return textPath;
- });
- const checkOrder = () => {
- loading.value = true;
- uni.setStorageSync("waybills", []);
- uni.request({
- url: getWaybillsURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.value.orderNum,
- batch_number: valiFormData.value.batchNum,
- pallet_number: valiFormData.value.palletNum ? findPalletNumIdByValue(options.pallet, valiFormData.value.palletNum) : ""
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- messageRef.value.open();
- uni.setStorageSync("waybills", res.data.data.waybills);
- uni.navigateTo({
- url: "/pages/scanLotno/waybillsList"
- });
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- messageRef.value.open();
- }
- }
- });
- };
- const findPalletNumIdByValue = (data, targetValue) => {
- for (let i2 = 0; i2 < data.length; i2++) {
- const item = data[i2];
- if (item.id === targetValue || item.value === targetValue) {
- return [item.id];
- } else if (item.children && item.children.length > 0) {
- const childId = findPalletNumIdByValue(item.children, targetValue);
- if (childId !== null) {
- return childId;
- }
- }
- }
- return null;
- };
- const onsubmit = () => {
- st2 && clearTimeout(st2);
- loading.value = true;
- uni.request({
- url: bindShippingURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.value.orderNum,
- reweighting: valiFormData.value.weight,
- batch_number: valiFormData.value.batchNum,
- pallet_number: valiFormData.value.palletNum ? findPalletNumIdByValue(options.pallet, valiFormData.value.palletNum) : ""
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- messageRef.value.open();
- if (res.data.data.labels && res.data.data.labels.length > 0) {
- formatAppLog("log", "at pages/scanLotno/index.vue:278", "有打印面单");
- }
- const historyItem = {
- orderNum: valiFormData.value.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- type: valiFormData.value.batchNum ? "绑定批次" : "绑定托盘",
- status: true
- };
- formatAppLog("log", "at pages/scanLotno/index.vue:290", "lotnoLogHistory--", lotnoLogHistory);
- lotnoLogHistory.value.unshift(historyItem);
- uni.setStorageSync("lotnoLogHistory", lotnoLogHistory.value);
- getHistory();
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- orderNum: valiFormData.value.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- type: valiFormData.value.batchNum ? "绑定批次" : "绑定托盘",
- status: false
- };
- lotnoLogHistory.value.unshift(historyItem);
- uni.setStorageSync("lotnoLogHistory", lotnoLogHistory.value);
- getHistory();
- }
- st2 = setTimeout(() => {
- reset();
- setFocus();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- });
- };
- const getHistory = () => {
- lotnoLogHistory.value = uni.getStorageSync("lotnoLogHistory") || [];
- };
- const keypress = (e2) => {
- formatAppLog("log", "at pages/scanLotno/index.vue:321", e2, "按键码");
- if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104)
- ;
- if (e2.keyCode == 66) {
- onsubmit();
- }
- };
- onLoad(() => {
- plus.key.addEventListener("keyup", keypress);
- });
- onUnload(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onHide(() => {
- hidePage.value = true;
- plus.key.removeEventListener("keyup", keypress);
- });
- onBackPress(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onShow(() => {
- hidePage.value = false;
- token.value = uni.getStorageSync("token");
- getBindParams();
- getHistory();
- });
- const setFocus = () => {
- if (hidePage.value) {
- return;
- }
- focusType.value = false;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- const getBindParams = () => {
- uni.request({
- url: getBindParamsURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- let transformData = function(data) {
- return data.map((item) => {
- const { id, value, label, ...rest } = item;
- return {
- id: id || value,
- value,
- text: label,
- ...rest,
- children: item.children ? transformData(item.children) : []
- };
- });
- };
- options.batch = res.data.data.batch_number.map((item) => {
- return { text: item.name, value: item.id };
- });
- const shipping = transformData(res.data.data.shipping);
- options.pallet = shipping;
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/scanLotno/index.vue:411", "fail--", e2);
- }
- });
- };
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/scanLotno/lotnoLog"
- });
- }
- });
- const __returned__ = { token, loading, hidePage, focusType, editBatchNum, editPalletNum, lotnoLogHistory, messageRef, messageType, messageText, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, valiFormData, rules, options, onnodeclick, onpopupopened, onpopupclosed, onchange, checkPermission, scanInput, reset, submitBatchNum, batchNum, submitPalletNum, palletNum, checkOrder, findPalletNumIdByValue, onsubmit, getHistory, keypress, setFocus, getBindParams };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1);
- const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$6);
- const _component_uni_data_picker = resolveEasycom(vue.resolveDynamicComponent("uni-data-picker"), __easycom_3$1);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- "label-width": 80,
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_forms_item, {
- label: "运单号码",
- required: "",
- name: "orderNum"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.orderNum,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.orderNum = $event),
- placeholder: "请输入单号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scanInput
- }, null, 8, ["modelValue", "focus"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "复称重量",
- name: "weight"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.weight,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.valiFormData.weight = $event),
- placeholder: "请输入复称重量",
- oninput: "value=value.replace(/[^\\d.]/g,'').replace(/^\\./g, '').replace(/\\.{2,}/g, '').replace('.', '$#$').replace(/\\./g, '').replace('$#$', '.').match(/^\\d*(\\.?\\d{0,2})/g)[0] || null"
- }, {
- right: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "weight-right" }, "KG")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["modelValue"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createCommentVNode(" <text class='weight-tip'>复称重量作用是确保句惠完整,防止工作人员计费称車后进行的其他操作引起的物品丢失问题</text> "),
- vue.createCommentVNode(' <uni-section title="绑定批托盘号" type="line" padding style="height: calc(100vh - 100px)"> '),
- vue.createVNode(_component_uni_forms_item, {
- label: "绑定批次号",
- name: "batchNum",
- class: "select-item"
- }, {
- default: vue.withCtx(() => [
- !$setup.editBatchNum ? (vue.openBlock(), vue.createBlock(_component_uni_data_select, {
- key: 0,
- modelValue: $setup.valiFormData.batchNum,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.valiFormData.batchNum = $event),
- placeholder: "请选择批次号",
- localdata: $setup.options.batch,
- clear: false
- }, null, 8, ["modelValue", "localdata"])) : vue.createCommentVNode("v-if", true),
- $setup.editBatchNum ? (vue.openBlock(), vue.createBlock(_component_uni_easyinput, {
- key: 1,
- value: $setup.batchNum,
- disabled: $setup.editBatchNum
- }, null, 8, ["value", "disabled"])) : vue.createCommentVNode("v-if", true),
- !$setup.editBatchNum ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 2,
- type: "primary",
- onClick: $setup.submitBatchNum
- }, "确认")) : vue.createCommentVNode("v-if", true),
- $setup.editBatchNum ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 3,
- type: "primary",
- onClick: _cache[3] || (_cache[3] = ($event) => $setup.editBatchNum = false)
- }, "修改")) : vue.createCommentVNode("v-if", true)
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "绑定托盘号",
- name: "palletNum",
- class: "select-item"
- }, {
- default: vue.withCtx(() => [
- !$setup.editPalletNum ? (vue.openBlock(), vue.createBlock(_component_uni_data_picker, {
- key: 0,
- placeholder: "请选择托盘号",
- "popup-title": "绑定托盘号",
- localdata: $setup.options.pallet,
- modelValue: $setup.valiFormData.palletNum,
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $setup.valiFormData.palletNum = $event),
- onChange: $setup.onchange,
- onNodeclick: $setup.onnodeclick,
- onPopupopened: $setup.onpopupopened,
- onPopupclosed: $setup.onpopupclosed
- }, null, 8, ["localdata", "modelValue"])) : vue.createCommentVNode("v-if", true),
- $setup.editPalletNum ? (vue.openBlock(), vue.createBlock(_component_uni_easyinput, {
- key: 1,
- value: $setup.palletNum,
- disabled: $setup.editPalletNum
- }, null, 8, ["value", "disabled"])) : vue.createCommentVNode("v-if", true),
- !$setup.editPalletNum ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 2,
- type: "primary",
- onClick: $setup.submitPalletNum
- }, "确认")) : vue.createCommentVNode("v-if", true),
- $setup.editPalletNum ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 3,
- type: "primary",
- onClick: _cache[5] || (_cache[5] = ($event) => $setup.editPalletNum = false)
- }, "修改")) : vue.createCommentVNode("v-if", true)
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createCommentVNode(" </uni-section> ")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "default",
- onClick: $setup.checkOrder,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "search",
- size: "18"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 查看运单 ")
- ], 8, ["loading"]),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 提交 ")
- ], 8, ["loading"])
- ]),
- $setup.lotnoLogHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "history"
- }, [
- vue.createElementVNode("text", { class: "title" }, "记录(最近5条)")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.lotnoLogHistory.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- { class: "type" },
- vue.toDisplayString(item.type),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.orderNum),
- 5
- /* TEXT, STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesScanLotnoIndex = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$e], ["__file", "E:/HBuilderProjects/YTAPP/pages/scanLotno/index.vue"]]);
- const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
- __name: "lotnoLog",
- setup(__props, { expose: __expose }) {
- __expose();
- const lotnoLogHistory = vue.ref([]);
- const getHistory = () => {
- lotnoLogHistory.value = uni.getStorageSync("lotnoLogHistory");
- };
- onLoad(() => {
- getHistory();
- });
- const __returned__ = { lotnoLogHistory, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.lotnoLogHistory, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- { class: "type" },
- vue.toDisplayString(item.type),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.orderNum),
- 5
- /* TEXT, STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.lotnoLogHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无历史")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesScanLotnoLotnoLog = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$d], ["__scopeId", "data-v-d86d23fe"], ["__file", "E:/HBuilderProjects/YTAPP/pages/scanLotno/lotnoLog.vue"]]);
- const _sfc_main$d = {
- name: "UniSection",
- emits: ["click"],
- props: {
- type: {
- type: String,
- default: ""
- },
- title: {
- type: String,
- required: true,
- default: ""
- },
- titleFontSize: {
- type: String,
- default: "14px"
- },
- titleColor: {
- type: String,
- default: "#333"
- },
- subTitle: {
- type: String,
- default: ""
- },
- subTitleFontSize: {
- type: String,
- default: "12px"
- },
- subTitleColor: {
- type: String,
- default: "#999"
- },
- padding: {
- type: [Boolean, String],
- default: false
- }
- },
- computed: {
- _padding() {
- if (typeof this.padding === "string") {
- return this.padding;
- }
- return this.padding ? "10px" : "";
- }
- },
- watch: {
- title(newVal) {
- if (uni.report && newVal !== "") {
- uni.report("title", newVal);
- }
- }
- },
- methods: {
- onClick() {
- this.$emit("click");
- }
- }
- };
- function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-section" }, [
- vue.createElementVNode("view", {
- class: "uni-section-header",
- onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args))
- }, [
- $props.type ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: vue.normalizeClass(["uni-section-header__decoration", $props.type])
- },
- null,
- 2
- /* CLASS */
- )) : vue.renderSlot(_ctx.$slots, "decoration", { key: 1 }, void 0, true),
- vue.createElementVNode("view", { class: "uni-section-header__content" }, [
- vue.createElementVNode(
- "text",
- {
- style: vue.normalizeStyle({ "font-size": $props.titleFontSize, "color": $props.titleColor }),
- class: vue.normalizeClass(["uni-section__content-title", { "distraction": !$props.subTitle }])
- },
- vue.toDisplayString($props.title),
- 7
- /* TEXT, CLASS, STYLE */
- ),
- $props.subTitle ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 0,
- style: vue.normalizeStyle({ "font-size": $props.subTitleFontSize, "color": $props.subTitleColor }),
- class: "uni-section-header__content-sub"
- },
- vue.toDisplayString($props.subTitle),
- 5
- /* TEXT, STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ]),
- vue.createElementVNode("view", { class: "uni-section-header__slot-right" }, [
- vue.renderSlot(_ctx.$slots, "right", {}, void 0, true)
- ])
- ]),
- vue.createElementVNode(
- "view",
- {
- class: "uni-section-content",
- style: vue.normalizeStyle({ padding: $options._padding })
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ],
- 4
- /* STYLE */
- )
- ]);
- }
- const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$c], ["__scopeId", "data-v-637fd36b"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-section/components/uni-section/uni-section.vue"]]);
- const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
- __name: "waybillsList",
- setup(__props, { expose: __expose }) {
- __expose();
- const waybills = vue.ref([]);
- const getHistory = () => {
- waybills.value = uni.getStorageSync("waybills");
- };
- onLoad(() => {
- getHistory();
- });
- const __returned__ = { waybills, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_section = resolveEasycom(vue.resolveDynamicComponent("uni-section"), __easycom_0$1);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- vue.createVNode(_component_uni_section, {
- title: "数量: " + $setup.waybills.length
- }, null, 8, ["title"]),
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.waybills, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: { color: "#666" }
- },
- vue.toDisplayString(item.order_box_no),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "text",
- { class: "type" },
- "重量: " + vue.toDisplayString(item.weight) + "KG",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("view", { class: "sub-items" }, [
- vue.createElementVNode("view", { class: "sub-item" }, [
- vue.createElementVNode("text", { class: "type" }, "批次/船航/托盘"),
- vue.createElementVNode(
- "text",
- { class: "type" },
- vue.toDisplayString(item.batch_shipping_pallet),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("view", { class: "sub-item" }, [
- vue.createElementVNode("text", { class: "type" }, "末公里运单号"),
- vue.createElementVNode(
- "text",
- { class: "type" },
- vue.toDisplayString(item.tracking_number || "无"),
- 1
- /* TEXT */
- )
- ])
- ])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.waybills.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无运单")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesScanLotnoWaybillsList = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b], ["__scopeId", "data-v-ef3fda20"], ["__file", "E:/HBuilderProjects/YTAPP/pages/scanLotno/waybillsList.vue"]]);
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const token = vue.ref();
- const loading = vue.ref(false);
- const hidePage = vue.ref(false);
- const focusType = vue.ref(true);
- const warehouseLogHistory = vue.ref([]);
- const messageRef = vue.ref();
- const messageType = vue.ref();
- const messageText = vue.ref();
- let st2;
- const valiFormData = vue.ref({
- order_code: ""
- });
- const rules = vue.reactive({
- order_code: {
- rules: [
- {
- required: true,
- errorMessage: "单据编号不能为空"
- }
- ]
- }
- });
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- const scanInput = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- valiFormData.value.order_code = res.result;
- onsubmit();
- },
- fail: (err) => {
- }
- });
- };
- const reset = () => {
- loading.value = false;
- valiFormData.value.order_code = "";
- };
- const setfocus = () => {
- if (hidePage.value) {
- return;
- }
- focusType.value = false;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- const onsubmit = () => {
- st2 && clearTimeout(st2);
- loading.value = true;
- uni.request({
- url: warehouseScanURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_code: valiFormData.value.order_code
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- order_code: valiFormData.value.order_code,
- createTime: /* @__PURE__ */ new Date(),
- type: "单据扫描",
- status: true
- };
- warehouseLogHistory.value.unshift(historyItem);
- uni.setStorageSync("warehouseLogHistory", warehouseLogHistory.value);
- getHistory();
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- order_code: valiFormData.value.order_code,
- createTime: /* @__PURE__ */ new Date(),
- type: "单据扫描",
- status: false
- };
- warehouseLogHistory.value.unshift(historyItem);
- uni.setStorageSync("warehouseLogHistory", warehouseLogHistory.value);
- getHistory();
- }
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- });
- };
- const getHistory = () => {
- warehouseLogHistory.value = uni.getStorageSync("warehouseLogHistory") || [];
- };
- const keypress = (e2) => {
- formatAppLog("log", "at pages/warehouseScan/index.vue:179", e2, "按键码");
- if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104)
- ;
- if (e2.keyCode == 66) {
- onsubmit();
- }
- };
- onLoad(() => {
- plus.key.addEventListener("keyup", keypress);
- });
- onUnload(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onHide(() => {
- hidePage.value = true;
- plus.key.removeEventListener("keyup", keypress);
- });
- onBackPress(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onShow(() => {
- token.value = uni.getStorageSync("token");
- hidePage.value = false;
- getHistory();
- });
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/warehouseScan/warehouseLog"
- });
- }
- });
- const __returned__ = { token, loading, hidePage, focusType, warehouseLogHistory, messageRef, messageType, messageText, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, valiFormData, rules, checkPermission, scanInput, reset, setfocus, onsubmit, getHistory, keypress };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- "label-width": 80,
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_forms_item, {
- label: "单据编号",
- required: "",
- name: "order_code"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.order_code,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.order_code = $event),
- placeholder: "请输入单据编号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scanInput,
- onBlur: $setup.setfocus,
- onConfirm: $setup.onsubmit
- }, null, 8, ["modelValue", "focus"])
- ]),
- _: 1
- /* STABLE */
- })
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 提交 ")
- ], 8, ["loading"])
- ]),
- $setup.warehouseLogHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "history"
- }, [
- vue.createElementVNode("text", { class: "title" }, "记录(最近5条)")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.warehouseLogHistory.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.order_code),
- 5
- /* TEXT, STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesWarehouseScanIndex = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__scopeId", "data-v-c64ca80c"], ["__file", "E:/HBuilderProjects/YTAPP/pages/warehouseScan/index.vue"]]);
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
- __name: "warehouseLog",
- setup(__props, { expose: __expose }) {
- __expose();
- const warehouseLogHistory = vue.ref([]);
- const getHistory = () => {
- warehouseLogHistory.value = uni.getStorageSync("warehouseLogHistory");
- };
- onLoad(() => {
- getHistory();
- });
- const __returned__ = { warehouseLogHistory, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.warehouseLogHistory, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- { class: "type" },
- vue.toDisplayString(item.type),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.order_code),
- 5
- /* TEXT, STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.warehouseLogHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无历史")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesWarehouseScanWarehouseLog = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__scopeId", "data-v-dadaa086"], ["__file", "E:/HBuilderProjects/YTAPP/pages/warehouseScan/warehouseLog.vue"]]);
- const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const token = vue.ref();
- const editSpaceNo = vue.ref(false);
- const loading = vue.ref(false);
- const hidePage = vue.ref(false);
- const focusType = vue.ref(true);
- const waybillNoHistory = vue.ref([]);
- const messageRef = vue.ref();
- const messageType = vue.ref();
- const messageText = vue.ref();
- let st2;
- const valiFormData = vue.ref({
- code: "",
- space_id: ""
- });
- const rules = vue.reactive({
- code: {
- rules: [
- {
- required: true,
- errorMessage: "单号不能为空"
- }
- ]
- }
- });
- const options = vue.reactive({
- space: []
- });
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- const scanInput = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- valiFormData.value.code = res.result;
- },
- fail: (err) => {
- }
- });
- };
- const reset = () => {
- loading.value = false;
- valiFormData.value.code = "";
- };
- const submitSpace = () => {
- if (valiFormData.value.space_id) {
- editSpaceNo.value = true;
- setFocus();
- } else {
- messageType.value = "error";
- messageText.value = "请选择库位";
- messageRef.value.open();
- }
- };
- const space = vue.computed(() => {
- const res = options.space.find((item) => item.value === valiFormData.value.space_id);
- return res == null ? void 0 : res.text;
- });
- const findPalletNumIdByValue = (data, targetValue) => {
- for (let i2 = 0; i2 < data.length; i2++) {
- const item = data[i2];
- if (item.id === targetValue || item.value === targetValue) {
- return [item.id];
- } else if (item.children && item.children.length > 0) {
- const childId = findPalletNumIdByValue(item.children, targetValue);
- if (childId !== null) {
- return childId;
- }
- }
- }
- return null;
- };
- const onsubmit = () => {
- if (valiFormData.value.space_id && valiFormData.value.code) {
- st2 && clearTimeout(st2);
- loading.value = true;
- uni.request({
- url: addWaybillNoURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- code: valiFormData.value.code,
- space_id: valiFormData.value.space_id
- },
- success: (res) => {
- loading.value = false;
- const space2 = options.space.find((item) => item.value === valiFormData.value.space_id);
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- code: valiFormData.value.code,
- createTime: /* @__PURE__ */ new Date(),
- type: "运单号",
- space: space2.text,
- status: true
- };
- waybillNoHistory.value.unshift(historyItem);
- uni.setStorageSync("waybillNoHistory", waybillNoHistory.value);
- getHistory();
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- code: valiFormData.value.code,
- createTime: /* @__PURE__ */ new Date(),
- type: "运单号",
- space: space2.text,
- status: false
- };
- waybillNoHistory.value.unshift(historyItem);
- uni.setStorageSync("waybillNoHistory", waybillNoHistory.value);
- getHistory();
- }
- st2 = setTimeout(() => {
- reset();
- setFocus();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- });
- } else {
- if (!valiFormData.value.space_id) {
- messageType.value = "error";
- messageText.value = "请选择库位";
- messageRef.value.open();
- }
- if (!valiFormData.value.code) {
- messageType.value = "error";
- messageText.value = "请填写运单号";
- messageRef.value.open();
- }
- }
- };
- const getHistory = () => {
- waybillNoHistory.value = uni.getStorageSync("waybillNoHistory") || [];
- };
- const keypress = (e2) => {
- formatAppLog("log", "at pages/waybillNo/index.vue:240", e2, "按键码");
- if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104)
- ;
- if (e2.keyCode == 66) {
- onsubmit();
- }
- };
- onLoad(() => {
- plus.key.addEventListener("keyup", keypress);
- });
- onUnload(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onHide(() => {
- hidePage.value = true;
- plus.key.removeEventListener("keyup", keypress);
- });
- onBackPress(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onShow(() => {
- hidePage.value = false;
- token.value = uni.getStorageSync("token");
- getOptions();
- getHistory();
- });
- const getOptions = () => {
- uni.request({
- url: waybillNoOptions,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- formatAppLog("log", "at pages/waybillNo/index.vue:300", res);
- if (res.data.code === 1) {
- for (let key in res.data.data.space_id) {
- if (res.data.data.space_id.hasOwnProperty(key)) {
- options.space.push({ text: res.data.data.space_id[key], value: key });
- }
- }
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/waybillNo/index.vue:310", "fail--", e2);
- }
- });
- };
- const setFocus = () => {
- if (hidePage.value) {
- return;
- }
- focusType.value = false;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/waybillNo/waybillNoLog"
- });
- }
- });
- const __returned__ = { token, editSpaceNo, loading, hidePage, focusType, waybillNoHistory, messageRef, messageType, messageText, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, valiFormData, rules, options, checkPermission, scanInput, reset, submitSpace, space, findPalletNumIdByValue, onsubmit, getHistory, keypress, getOptions, setFocus };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$6);
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- "label-width": 80,
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "space-select" }, [
- !$setup.editSpaceNo ? (vue.openBlock(), vue.createBlock(_component_uni_data_select, {
- key: 0,
- modelValue: $setup.valiFormData.space_id,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.space_id = $event),
- placeholder: "请选择库位",
- localdata: $setup.options.space,
- clear: false
- }, null, 8, ["modelValue", "localdata"])) : vue.createCommentVNode("v-if", true),
- $setup.editSpaceNo ? (vue.openBlock(), vue.createBlock(_component_uni_easyinput, {
- key: 1,
- value: $setup.space,
- disabled: $setup.editSpaceNo
- }, null, 8, ["value", "disabled"])) : vue.createCommentVNode("v-if", true),
- !$setup.editSpaceNo ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 2,
- type: "primary",
- onClick: $setup.submitSpace
- }, "确认")) : vue.createCommentVNode("v-if", true),
- $setup.editSpaceNo ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 3,
- type: "primary",
- onClick: _cache[1] || (_cache[1] = ($event) => $setup.editSpaceNo = false)
- }, "修改")) : vue.createCommentVNode("v-if", true)
- ]),
- vue.createElementVNode("view", null, [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.code,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.valiFormData.code = $event),
- placeholder: "请输入运单号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scanInput
- }, null, 8, ["modelValue", "focus"])
- ])
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 提交 ")
- ], 8, ["loading"])
- ]),
- $setup.waybillNoHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "history"
- }, [
- vue.createElementVNode("text", { class: "title" }, "记录(最近5条)")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.waybillNoHistory.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("text", { class: "type" }, "库位"),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.space),
- 5
- /* TEXT, STYLE */
- )
- ]),
- vue.createElementVNode("view", null, [
- vue.createElementVNode("text", { class: "type" }, "单号"),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.code),
- 5
- /* TEXT, STYLE */
- )
- ]),
- vue.createElementVNode("view", { class: "space-time" }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(item.createTime),
- 1
- /* TEXT */
- )
- ])
- ]),
- vue.createElementVNode("view", null, [
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F"))
- ])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesWaybillNoIndex = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__file", "E:/HBuilderProjects/YTAPP/pages/waybillNo/index.vue"]]);
- const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
- __name: "waybillNoLog",
- setup(__props, { expose: __expose }) {
- __expose();
- const waybillNoHistory = vue.ref([]);
- const getHistory = async () => {
- waybillNoHistory.value = await uni.getStorageSync("waybillNoHistory");
- };
- onLoad(async () => {
- await getHistory();
- });
- const __returned__ = { waybillNoHistory, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.waybillNoHistory, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("text", { class: "type" }, "库位"),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.space),
- 5
- /* TEXT, STYLE */
- )
- ]),
- vue.createElementVNode("view", null, [
- vue.createElementVNode("text", { class: "type" }, "单号"),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.code),
- 5
- /* TEXT, STYLE */
- )
- ]),
- vue.createElementVNode("view", { class: "space-time" }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(item.createTime),
- 1
- /* TEXT */
- )
- ])
- ]),
- vue.createElementVNode("view", null, [
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F"))
- ])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.waybillNoHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无历史")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesWaybillNoWaybillNoLog = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-2f55e896"], ["__file", "E:/HBuilderProjects/YTAPP/pages/waybillNo/waybillNoLog.vue"]]);
- const _sfc_main$7 = {
- name: "UniDrawer",
- components: {},
- emits: ["change"],
- props: {
- /**
- * 显示模式(左、右),只在初始化生效
- */
- mode: {
- type: String,
- default: ""
- },
- /**
- * 蒙层显示状态
- */
- mask: {
- type: Boolean,
- default: true
- },
- /**
- * 遮罩是否可点击关闭
- */
- maskClick: {
- type: Boolean,
- default: true
- },
- /**
- * 抽屉宽度
- */
- width: {
- type: Number,
- default: 220
- }
- },
- data() {
- return {
- visibleSync: false,
- showDrawer: false,
- rightMode: false,
- watchTimer: null,
- drawerWidth: 220
- };
- },
- created() {
- this.drawerWidth = this.width;
- this.rightMode = this.mode === "right";
- },
- methods: {
- clear() {
- },
- close(type) {
- if (type === "mask" && !this.maskClick || !this.visibleSync)
- return;
- this._change("showDrawer", "visibleSync", false);
- },
- open() {
- if (this.visibleSync)
- return;
- this._change("visibleSync", "showDrawer", true);
- },
- _change(param1, param2, status) {
- this[param1] = status;
- if (this.watchTimer) {
- clearTimeout(this.watchTimer);
- }
- this.watchTimer = setTimeout(() => {
- this[param2] = status;
- this.$emit("change", status);
- }, status ? 50 : 300);
- }
- }
- };
- function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
- return $data.visibleSync ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: vue.normalizeClass([{ "uni-drawer--visible": $data.showDrawer }, "uni-drawer"]),
- onTouchmove: _cache[1] || (_cache[1] = vue.withModifiers((...args) => $options.clear && $options.clear(...args), ["stop", "prevent"]))
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-drawer__mask", { "uni-drawer__mask--visible": $data.showDrawer && $props.mask }]),
- onClick: _cache[0] || (_cache[0] = ($event) => $options.close("mask"))
- },
- null,
- 2
- /* CLASS */
- ),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-drawer__content", { "uni-drawer--right": $data.rightMode, "uni-drawer--left": !$data.rightMode, "uni-drawer__content--visible": $data.showDrawer }]),
- style: vue.normalizeStyle({ width: $data.drawerWidth + "px" })
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- )
- ],
- 34
- /* CLASS, NEED_HYDRATION */
- )) : vue.createCommentVNode("v-if", true);
- }
- const __easycom_3 = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__scopeId", "data-v-f7c32d22"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue"]]);
- const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const loading = vue.ref(false);
- const loadingBtn = vue.ref(false);
- const token = vue.ref();
- const searchValue = vue.ref();
- const waybillDelivery = vue.ref([]);
- const messageType = vue.ref();
- const messageText = vue.ref();
- const messageRef = vue.ref();
- const showRightRef = vue.ref();
- const resetForm = () => {
- };
- const confirmForm = () => {
- showRightRef.value.close();
- };
- const copyOrderNo = (order_no) => {
- uni.setClipboardData({
- data: order_no,
- success: function() {
- uni.showToast({
- title: "复制成功",
- icon: "success",
- duration: 2e3
- });
- },
- fail: function() {
- formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:85", "复制失败");
- }
- });
- };
- const callPhone = (phoneNumber) => {
- formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:91", phoneNumber);
- uni.makePhoneCall({
- phoneNumber,
- success: function() {
- formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:96", "拨打电话成功!");
- },
- fail: function() {
- formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:99", "拨打电话失败!");
- }
- });
- };
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- const scanInput = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- },
- fail: (err) => {
- }
- });
- };
- const itemClick = (item) => {
- uni.setStorageSync("selectItem", item);
- uni.navigateTo({
- url: "/pages/waybillDeliveryOrder/orderInfo?id=" + item.id
- });
- };
- const onButtonClick = async (row, value) => {
- if (value === "send_out") {
- sendOut({ id: row.id });
- } else if (value === "delivered") {
- updateDelivered({ id: row.id });
- } else if (value === "refuse") {
- updateRefuse({ id: row.id });
- } else if (value === "create_track_pod") {
- createTrackPod({ id: row.id });
- } else if (value === "edit")
- ;
- else if (value === "generate_label")
- ;
- else if (value === "fedex_appointment_pick_up")
- ;
- else if (value === "print_get_back_label")
- ;
- else if (value === "fedex_cancel_pick_up") {
- cancelFedExPickUp({ id: row.id });
- }
- };
- const sendOut = (data) => {
- loadingBtn.value = true;
- uni.request({
- url: sendOutURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: ({ data: data2 }) => {
- loadingBtn.value = false;
- messageType.value = "success";
- messageText.value = "发出成功";
- messageRef.value.open();
- },
- fail: (err) => {
- loadingBtn.value = false;
- messageType.value = "error";
- messageText.value = "发出失败,请稍后重试";
- messageRef.value.open();
- }
- });
- };
- const updateDelivered = (data) => {
- loadingBtn.value = true;
- uni.request({
- url: deliveredURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: ({ data: data2 }) => {
- loadingBtn.value = false;
- messageType.value = "success";
- messageText.value = "确认送达成功";
- messageRef.value.open();
- },
- fail: (err) => {
- loadingBtn.value = false;
- messageType.value = "error";
- messageText.value = "确认送达失败,请稍后重试";
- messageRef.value.open();
- }
- });
- };
- const updateRefuse = (data) => {
- loadingBtn.value = true;
- uni.request({
- url: refuseURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: ({ data: data2 }) => {
- loadingBtn.value = false;
- messageType.value = "success";
- messageText.value = "已拒绝签收";
- messageRef.value.open();
- },
- fail: (err) => {
- loadingBtn.value = false;
- messageType.value = "error";
- messageText.value = "修改失败,请稍后重试";
- messageRef.value.open();
- }
- });
- };
- const createTrackPod = (data) => {
- loadingBtn.value = true;
- uni.request({
- url: createTrackPodURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: ({ data: data2 }) => {
- loadingBtn.value = false;
- messageType.value = "success";
- messageText.value = "同步成功";
- messageRef.value.open();
- },
- fail: (err) => {
- loadingBtn.value = false;
- messageType.value = "error";
- messageText.value = "同步失败,请稍后重试";
- messageRef.value.open();
- }
- });
- };
- const cancelFedExPickUp = (data) => {
- loadingBtn.value = true;
- uni.request({
- url: cancelFedExPickUpURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: ({ data: data2 }) => {
- loadingBtn.value = false;
- messageType.value = "success";
- messageText.value = "操作成功";
- messageRef.value.open();
- },
- fail: (err) => {
- loadingBtn.value = false;
- messageType.value = "error";
- messageText.value = "操作失败,请稍后重试";
- messageRef.value.open();
- }
- });
- };
- const getList = () => {
- loading.value = true;
- uni.request({
- url: pickupWaybillDeliveryOrderURL + "/index",
- method: "GET",
- header: {
- batoken: token.value
- },
- success: ({ data }) => {
- loading.value = false;
- formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:319", data);
- if (data.code == 1) {
- waybillDelivery.value = data.data.list;
- } else {
- messageType.value = "error";
- messageText.value = data.msg;
- messageRef.value.open();
- }
- },
- fail: (err) => {
- loading.value = false;
- }
- });
- };
- onLoad(() => {
- token.value = uni.getStorageSync("token");
- getList();
- });
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- showRightRef.value.open();
- }
- });
- const __returned__ = { loading, loadingBtn, token, searchValue, waybillDelivery, messageType, messageText, messageRef, showRightRef, resetForm, confirmForm, copyOrderNo, callPhone, checkPermission, scanInput, itemClick, onButtonClick, sendOut, updateDelivered, updateRefuse, createTrackPod, cancelFedExPickUp, getList };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- const _imports_0 = "/static/copy.png";
- const _imports_1 = "/static/call.png";
- function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- const _component_uni_drawer = resolveEasycom(vue.resolveDynamicComponent("uni-drawer"), __easycom_3);
- return vue.openBlock(), vue.createElementBlock("view", { class: "list" }, [
- vue.createCommentVNode(' <uni-search-bar @confirm="search" :focus="true" v-model="searchValue" @blur="blur" @focus="focus" @input="input" @cancel="cancel" @clear="clear"></uni-search-bar> '),
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.searchValue,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.searchValue = $event),
- placeholder: "请输入单号",
- suffixIcon: "scan",
- onIconClick: $setup.scanInput
- }, null, 8, ["modelValue"]),
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.waybillDelivery, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2,
- onClick: ($event) => $setup.itemClick(item)
- }, [
- vue.createElementVNode("view", { class: "order-no" }, [
- vue.createElementVNode(
- "text",
- null,
- " 派送单号: " + vue.toDisplayString(item.order_no),
- 1
- /* TEXT */
- ),
- vue.createElementVNode("image", {
- onClick: ($event) => $setup.copyOrderNo(item.order_no),
- class: "icon",
- src: _imports_0,
- mode: "aspectFill"
- }, null, 8, ["onClick"])
- ]),
- vue.createElementVNode("view", { class: "address-info" }, [
- vue.createElementVNode("view", { class: "info" }, [
- vue.createElementVNode("view", { class: "user" }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(item.address.first_name + " " + item.address.last_name) + " " + vue.toDisplayString("+" + item.address.mobile_code + " " + item.address.mobile),
- 1
- /* TEXT */
- ),
- vue.createElementVNode("image", {
- onClick: ($event) => $setup.callPhone(item.address.mobile_code + " " + item.address.mobile),
- class: "icon",
- src: _imports_1,
- mode: "aspectFill"
- }, null, 8, ["onClick"])
- ]),
- vue.createElementVNode("view", null, [
- vue.createElementVNode("text", { class: "address" }, [
- vue.createElementVNode(
- "text",
- { class: "city" },
- vue.toDisplayString(item.address.city),
- 1
- /* TEXT */
- ),
- vue.createTextVNode(
- " " + vue.toDisplayString(item.address.zip_code),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("image", {
- onClick: ($event) => $setup.copyOrderNo(item.address.zip_code),
- class: "icon",
- src: _imports_0,
- mode: "aspectFill"
- }, null, 8, ["onClick"])
- ])
- ]),
- vue.createElementVNode("view", { class: "info" })
- ]),
- vue.createElementVNode("view"),
- vue.createElementVNode("view", { class: "operations" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(item.operations, (operation, i22) => {
- return vue.openBlock(), vue.createElementBlock("button", {
- key: i22,
- onClick: ($event) => $setup.onButtonClick(item, operation.value),
- type: "info",
- size: "mini"
- }, vue.toDisplayString(operation.text), 9, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ], 8, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.waybillDelivery.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无派送单")) : vue.createCommentVNode("v-if", true),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- ),
- vue.createVNode(
- _component_uni_drawer,
- {
- ref: "showRightRef",
- mode: "right",
- "mask-click": true
- },
- {
- default: vue.withCtx(() => [
- vue.createElementVNode("scroll-view", {
- style: { "height": "100%" },
- "scroll-y": "true"
- }, [
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- onClick: $setup.resetForm,
- type: "info"
- }, "重置"),
- vue.createElementVNode("button", {
- onClick: $setup.confirmForm,
- type: "primary"
- }, "确认")
- ])
- ])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesWaybillDeliveryOrderIndex = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-e43ee4da"], ["__file", "E:/HBuilderProjects/YTAPP/pages/waybillDeliveryOrder/index.vue"]]);
- const _sfc_main$5 = {
- name: "UniSegmentedControl",
- emits: ["clickItem"],
- props: {
- current: {
- type: Number,
- default: 0
- },
- values: {
- type: Array,
- default() {
- return [];
- }
- },
- activeColor: {
- type: String,
- default: "#2979FF"
- },
- inActiveColor: {
- type: String,
- default: "transparent"
- },
- styleType: {
- type: String,
- default: "button"
- }
- },
- data() {
- return {
- currentIndex: 0
- };
- },
- watch: {
- current(val) {
- if (val !== this.currentIndex) {
- this.currentIndex = val;
- }
- }
- },
- computed: {},
- created() {
- this.currentIndex = this.current;
- },
- methods: {
- _onClick(index) {
- if (this.currentIndex !== index) {
- this.currentIndex = index;
- this.$emit("clickItem", {
- currentIndex: index
- });
- }
- }
- }
- };
- function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass([[$props.styleType === "text" ? "segmented-control--text" : "segmented-control--button"], "segmented-control"]),
- style: vue.normalizeStyle({ borderColor: $props.styleType === "text" ? "" : $props.activeColor })
- },
- [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($props.values, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: vue.normalizeClass([[
- $props.styleType === "text" ? "" : "segmented-control__item--button",
- index === 0 && $props.styleType === "button" ? "segmented-control__item--button--first" : "",
- index === $props.values.length - 1 && $props.styleType === "button" ? "segmented-control__item--button--last" : ""
- ], "segmented-control__item"]),
- key: index,
- style: vue.normalizeStyle({ backgroundColor: index === $data.currentIndex && $props.styleType === "button" ? $props.activeColor : $props.styleType === "button" ? $props.inActiveColor : "transparent", borderColor: index === $data.currentIndex && $props.styleType === "text" || $props.styleType === "button" ? $props.activeColor : $props.inActiveColor }),
- onClick: ($event) => $options._onClick(index)
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode(
- "text",
- {
- style: vue.normalizeStyle({ color: index === $data.currentIndex ? $props.styleType === "text" ? $props.activeColor : "#fff" : $props.styleType === "text" ? "#000" : $props.activeColor }),
- class: vue.normalizeClass(["segmented-control__text", $props.styleType === "text" && index === $data.currentIndex ? "segmented-control__item--text" : ""])
- },
- vue.toDisplayString(item),
- 7
- /* TEXT, CLASS, STYLE */
- )
- ])
- ], 14, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ],
- 6
- /* CLASS, STYLE */
- );
- }
- const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-86aa1171"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue"]]);
- const _sfc_main$4 = {
- name: "UniTag",
- emits: ["click"],
- props: {
- type: {
- // 标签类型default、primary、success、warning、error、royal
- type: String,
- default: "default"
- },
- size: {
- // 标签大小 normal, small
- type: String,
- default: "normal"
- },
- // 标签内容
- text: {
- type: String,
- default: ""
- },
- disabled: {
- // 是否为禁用状态
- type: [Boolean, String],
- default: false
- },
- inverted: {
- // 是否为空心
- type: [Boolean, String],
- default: false
- },
- circle: {
- // 是否为圆角样式
- type: [Boolean, String],
- default: false
- },
- mark: {
- // 是否为标记样式
- type: [Boolean, String],
- default: false
- },
- customStyle: {
- type: String,
- default: ""
- }
- },
- computed: {
- classes() {
- const {
- type,
- disabled,
- inverted,
- circle,
- mark,
- size,
- isTrue
- } = this;
- const classArr = [
- "uni-tag--" + type,
- "uni-tag--" + size,
- isTrue(disabled) ? "uni-tag--disabled" : "",
- isTrue(inverted) ? "uni-tag--" + type + "--inverted" : "",
- isTrue(circle) ? "uni-tag--circle" : "",
- isTrue(mark) ? "uni-tag--mark" : "",
- // type === 'default' ? 'uni-tag--default' : 'uni-tag-text',
- isTrue(inverted) ? "uni-tag--inverted uni-tag-text--" + type : "",
- size === "small" ? "uni-tag-text--small" : ""
- ];
- return classArr.join(" ");
- }
- },
- methods: {
- isTrue(value) {
- return value === true || value === "true";
- },
- onClick() {
- if (this.isTrue(this.disabled))
- return;
- this.$emit("click");
- }
- }
- };
- function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
- return $props.text ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 0,
- class: vue.normalizeClass(["uni-tag", $options.classes]),
- style: vue.normalizeStyle($props.customStyle),
- onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args))
- },
- vue.toDisplayString($props.text),
- 7
- /* TEXT, CLASS, STYLE */
- )) : vue.createCommentVNode("v-if", true);
- }
- const __easycom_1 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__scopeId", "data-v-1f94d070"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-tag/components/uni-tag/uni-tag.vue"]]);
- function pad(str, length = 2) {
- str += "";
- while (str.length < length) {
- str = "0" + str;
- }
- return str.slice(-length);
- }
- const parser = {
- yyyy: (dateObj) => {
- return pad(dateObj.year, 4);
- },
- yy: (dateObj) => {
- return pad(dateObj.year);
- },
- MM: (dateObj) => {
- return pad(dateObj.month);
- },
- M: (dateObj) => {
- return dateObj.month;
- },
- dd: (dateObj) => {
- return pad(dateObj.day);
- },
- d: (dateObj) => {
- return dateObj.day;
- },
- hh: (dateObj) => {
- return pad(dateObj.hour);
- },
- h: (dateObj) => {
- return dateObj.hour;
- },
- mm: (dateObj) => {
- return pad(dateObj.minute);
- },
- m: (dateObj) => {
- return dateObj.minute;
- },
- ss: (dateObj) => {
- return pad(dateObj.second);
- },
- s: (dateObj) => {
- return dateObj.second;
- },
- SSS: (dateObj) => {
- return pad(dateObj.millisecond, 3);
- },
- S: (dateObj) => {
- return dateObj.millisecond;
- }
- };
- function getDate(time) {
- if (time instanceof Date) {
- return time;
- }
- switch (typeof time) {
- case "string": {
- if (time.indexOf("T") > -1) {
- return new Date(time);
- }
- return new Date(time.replace(/-/g, "/"));
- }
- default:
- return new Date(time);
- }
- }
- function formatDate(date, format = "yyyy/MM/dd hh:mm:ss") {
- if (!date && date !== 0) {
- return "";
- }
- date = getDate(date);
- const dateObj = {
- year: date.getFullYear(),
- month: date.getMonth() + 1,
- day: date.getDate(),
- hour: date.getHours(),
- minute: date.getMinutes(),
- second: date.getSeconds(),
- millisecond: date.getMilliseconds()
- };
- const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/;
- let flag = true;
- let result = format;
- while (flag) {
- flag = false;
- result = result.replace(tokenRegExp, function(matched) {
- flag = true;
- return parser[matched](dateObj);
- });
- }
- return result;
- }
- function friendlyDate(time, {
- locale = "zh",
- threshold = [6e4, 36e5],
- format = "yyyy/MM/dd hh:mm:ss"
- }) {
- if (time === "-") {
- return time;
- }
- if (!time && time !== 0) {
- return "";
- }
- const localeText = {
- zh: {
- year: "年",
- month: "月",
- day: "天",
- hour: "小时",
- minute: "分钟",
- second: "秒",
- ago: "前",
- later: "后",
- justNow: "刚刚",
- soon: "马上",
- template: "{num}{unit}{suffix}"
- },
- en: {
- year: "year",
- month: "month",
- day: "day",
- hour: "hour",
- minute: "minute",
- second: "second",
- ago: "ago",
- later: "later",
- justNow: "just now",
- soon: "soon",
- template: "{num} {unit} {suffix}"
- }
- };
- const text = localeText[locale] || localeText.zh;
- let date = getDate(time);
- let ms2 = date.getTime() - Date.now();
- let absMs = Math.abs(ms2);
- if (absMs < threshold[0]) {
- return ms2 < 0 ? text.justNow : text.soon;
- }
- if (absMs >= threshold[1]) {
- return formatDate(date, format);
- }
- let num;
- let unit;
- let suffix = text.later;
- if (ms2 < 0) {
- suffix = text.ago;
- ms2 = -ms2;
- }
- const seconds = Math.floor(ms2 / 1e3);
- const minutes = Math.floor(seconds / 60);
- const hours = Math.floor(minutes / 60);
- const days = Math.floor(hours / 24);
- const months = Math.floor(days / 30);
- const years = Math.floor(months / 12);
- switch (true) {
- case years > 0:
- num = years;
- unit = text.year;
- break;
- case months > 0:
- num = months;
- unit = text.month;
- break;
- case days > 0:
- num = days;
- unit = text.day;
- break;
- case hours > 0:
- num = hours;
- unit = text.hour;
- break;
- case minutes > 0:
- num = minutes;
- unit = text.minute;
- break;
- default:
- num = seconds;
- unit = text.second;
- break;
- }
- if (locale === "en") {
- if (num === 1) {
- num = "a";
- } else {
- unit += "s";
- }
- }
- return text.template.replace(/{\s*num\s*}/g, num + "").replace(/{\s*unit\s*}/g, unit).replace(
- /{\s*suffix\s*}/g,
- suffix
- );
- }
- const _sfc_main$3 = {
- name: "uniDateformat",
- props: {
- date: {
- type: [Object, String, Number],
- default() {
- return "-";
- }
- },
- locale: {
- type: String,
- default: "zh"
- },
- threshold: {
- type: Array,
- default() {
- return [0, 0];
- }
- },
- format: {
- type: String,
- default: "yyyy/MM/dd hh:mm:ss"
- },
- // refreshRate使用不当可能导致性能问题,谨慎使用
- refreshRate: {
- type: [Number, String],
- default: 0
- }
- },
- data() {
- return {
- refreshMark: 0
- };
- },
- computed: {
- dateShow() {
- this.refreshMark;
- return friendlyDate(this.date, {
- locale: this.locale,
- threshold: this.threshold,
- format: this.format
- });
- }
- },
- watch: {
- refreshRate: {
- handler() {
- this.setAutoRefresh();
- },
- immediate: true
- }
- },
- methods: {
- refresh() {
- this.refreshMark++;
- },
- setAutoRefresh() {
- clearInterval(this.refreshInterval);
- if (this.refreshRate) {
- this.refreshInterval = setInterval(() => {
- this.refresh();
- }, parseInt(this.refreshRate));
- }
- }
- }
- };
- function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock(
- "text",
- null,
- vue.toDisplayString($options.dateShow),
- 1
- /* TEXT */
- );
- }
- const __easycom_2 = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue"]]);
- const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
- __name: "orderInfo",
- setup(__props, { expose: __expose }) {
- __expose();
- const current = vue.ref(0);
- const items = vue.ref(["基本信息", "运单详情"]);
- const loading = vue.ref(false);
- const token = vue.ref();
- const waybillDelivery = vue.ref([]);
- const messageType = vue.ref();
- const messageText = vue.ref();
- const messageRef = vue.ref();
- const item = vue.ref();
- const deliveryOrderOptions = vue.ref({});
- const delivery_type = vue.ref({
- "1": "英途派送",
- "2": "第三方物流"
- });
- onLoad((query) => {
- token.value = uni.getStorageSync("token");
- item.value = uni.getStorageSync("selectItem");
- deliveryOrderOptions.value = uni.getStorageSync("deliveryOrderOptions");
- formatAppLog("log", "at pages/waybillDeliveryOrder/orderInfo.vue:128", item.value);
- });
- const onClickItem = (e2) => {
- if (current.value != e2.currentIndex) {
- current.value = e2.currentIndex;
- }
- };
- const copyString = (str) => {
- uni.setClipboardData({
- data: str,
- success: function() {
- uni.showToast({
- title: "复制成功",
- icon: "success",
- duration: 2e3
- });
- },
- fail: function() {
- formatAppLog("log", "at pages/waybillDeliveryOrder/orderInfo.vue:149", "复制失败");
- }
- });
- };
- const __returned__ = { current, items, loading, token, waybillDelivery, messageType, messageText, messageRef, item, deliveryOrderOptions, delivery_type, onClickItem, copyString };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_segmented_control = resolveEasycom(vue.resolveDynamicComponent("uni-segmented-control"), __easycom_0);
- const _component_uni_tag = resolveEasycom(vue.resolveDynamicComponent("uni-tag"), __easycom_1);
- const _component_uni_dateformat = resolveEasycom(vue.resolveDynamicComponent("uni-dateformat"), __easycom_2);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "info" }, [
- vue.createVNode(_component_uni_segmented_control, {
- current: $setup.current,
- values: $setup.items,
- onClickItem: $setup.onClickItem,
- styleType: "text",
- activeColor: "#007aff"
- }, null, 8, ["current", "values"]),
- vue.createElementVNode("view", { class: "content" }, [
- vue.withDirectives(vue.createElementVNode(
- "view",
- null,
- [
- vue.createElementVNode("view", { class: "order-no" }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode(
- "text",
- null,
- "派送单号: " + vue.toDisplayString($setup.item.order_no),
- 1
- /* TEXT */
- ),
- vue.createElementVNode("image", {
- onClick: _cache[0] || (_cache[0] = ($event) => $setup.copyString($setup.item.order_no)),
- class: "icon",
- src: _imports_0,
- mode: "aspectFill"
- })
- ]),
- vue.createVNode(_component_uni_tag, {
- text: $setup.item.status_text,
- type: "primary",
- circle: ""
- }, null, 8, ["text"])
- ]),
- vue.createElementVNode("view", { class: "box-card" }, [
- vue.createElementVNode("view", { class: "label-icon" }, [
- vue.createElementVNode("text", { class: "label-title" }, "地址信息")
- ]),
- vue.createElementVNode("view", { class: "label-content" }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString($setup.item.address.first_name + " " + $setup.item.address.last_name),
- 1
- /* TEXT */
- ),
- $setup.item.address.mobile ? (vue.openBlock(), vue.createElementBlock("text", { key: 0 }, [
- vue.createTextVNode(
- " +" + vue.toDisplayString($setup.item.address.mobile_code + " " + $setup.item.address.mobile) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- $setup.item.address.email ? (vue.openBlock(), vue.createElementBlock("text", { key: 1 }, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.email) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("text", null, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.address_line_1) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ]),
- $setup.item.address.address_line_2 ? (vue.openBlock(), vue.createElementBlock("text", { key: 2 }, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.address_line_2) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- $setup.item.address.address_line_3 ? (vue.openBlock(), vue.createElementBlock("text", { key: 3 }, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.address_line_3) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("text", null, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.city + " " + $setup.item.address.district) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ]),
- vue.createElementVNode("text", null, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.province) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ]),
- vue.createElementVNode("text", null, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.zip_code) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])
- ])
- ]),
- vue.createElementVNode("view", { class: "box-card" }, [
- vue.createElementVNode("text", null, [
- vue.createTextVNode("客户派送日期: "),
- $setup.item.delivery_date ? (vue.openBlock(), vue.createBlock(_component_uni_dateformat, {
- key: 0,
- date: $setup.item.delivery_date,
- format: "yyyy-MM-dd"
- }, null, 8, ["date"])) : (vue.openBlock(), vue.createElementBlock("text", { key: 1 }, "无")),
- vue.createElementVNode("br")
- ]),
- vue.createElementVNode(
- "text",
- null,
- "备注: " + vue.toDisplayString($setup.item.remark || "无"),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("view", { class: "box-card" }, [
- vue.createElementVNode("view", { class: "label-icon" }, [
- vue.createElementVNode("text", { class: "label-title" }, "物流信息")
- ]),
- vue.createElementVNode("view", { class: "label-content" }, [
- vue.createElementVNode("text", null, [
- vue.createTextVNode("派送渠道类型: "),
- vue.createVNode(_component_uni_tag, {
- text: $setup.delivery_type[$setup.item.delivery_type],
- type: "primary"
- }, null, 8, ["text"]),
- vue.createElementVNode("br")
- ]),
- Number($setup.item.delivery_type) === 1 ? (vue.openBlock(), vue.createElementBlock("text", { key: 0 }, [
- vue.createTextVNode(
- "司机: " + vue.toDisplayString($setup.deliveryOrderOptions["driver_id"][$setup.item.driver_id] || "无") + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- Number($setup.item.delivery_type) === 2 ? (vue.openBlock(), vue.createElementBlock("text", { key: 1 }, [
- vue.createTextVNode("快递公司: "),
- vue.createVNode(_component_uni_tag, {
- text: $setup.item.express.name || "无",
- type: "success",
- size: "small",
- circle: ""
- }, null, 8, ["text"]),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("text", null, [
- vue.createTextVNode(
- "物流单号: " + vue.toDisplayString($setup.item.express_no || "无") + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ]),
- vue.createElementVNode(
- "text",
- null,
- "追踪单号: " + vue.toDisplayString($setup.item.express_tracking_number || "无"),
- 1
- /* TEXT */
- )
- ])
- ])
- ],
- 512
- /* NEED_PATCH */
- ), [
- [vue.vShow, $setup.current === 0]
- ]),
- vue.withDirectives(vue.createElementVNode(
- "view",
- null,
- " 选项卡2的内容 ",
- 512
- /* NEED_PATCH */
- ), [
- [vue.vShow, $setup.current === 1]
- ])
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesWaybillDeliveryOrderOrderInfo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__scopeId", "data-v-a28459fe"], ["__file", "E:/HBuilderProjects/YTAPP/pages/waybillDeliveryOrder/orderInfo.vue"]]);
- const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const token = vue.ref();
- const loading = vue.ref(false);
- const hidePage = vue.ref(false);
- const focusType = vue.ref(true);
- const selectType = vue.ref(1);
- const printType = vue.ref([
- {
- text: "打印尾程面单",
- value: 1
- },
- {
- text: "打印客户联(详细)",
- value: 2
- },
- {
- text: "打印客户联(简单)",
- value: 3
- }
- ]);
- const printerDialog = vue.ref();
- const subLoading = vue.ref(false);
- const printerList = vue.ref([]);
- const printers = vue.ref([]);
- const downloadFile = vue.ref([]);
- const sendToPeinter = vue.ref([1]);
- const selectPrinter = vue.ref(0);
- const printLogHistory = vue.ref([]);
- const messageRef = vue.ref();
- const messageType = vue.ref();
- const messageText = vue.ref();
- let st2;
- const valiFormData = vue.ref({
- order_code: ""
- });
- const rules = vue.reactive({
- order_code: {
- rules: [
- {
- required: true,
- errorMessage: "单据编号不能为空"
- }
- ]
- }
- });
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- const scanInput = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- valiFormData.value.order_code = res.result;
- onsubmit();
- },
- fail: (err) => {
- }
- });
- };
- const reset = () => {
- loading.value = false;
- valiFormData.value.order_code = "";
- };
- const setfocus = () => {
- if (hidePage.value) {
- return;
- }
- focusType.value = false;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- const close = () => {
- printerDialog.value.close();
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 700);
- };
- const sendToPeinterFun = (res) => {
- if (res.detail.value.length === 0) {
- selectPrinter.value = 0;
- } else {
- selectPrinter.value = printers.value[0].value;
- }
- };
- const printConfirm = () => {
- subLoading.value = true;
- const url = selectType.value === 1 ? printWaybillLabelURL : printCustomerLabelURL;
- let data = {
- order_no: valiFormData.value.order_code,
- printer_code: selectPrinter.value
- };
- let type = "尾程面单打印";
- if (selectType.value === 2) {
- data.style = "detail";
- type = "打印客户联(详细)";
- }
- if (selectType.value === 3) {
- data.style = "simple";
- type = "打印客户联(简单)";
- }
- uni.request({
- url,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: (res) => {
- subLoading.value = false;
- formatAppLog("log", "at pages/printer/index.vue:233", "打印成功", res);
- messageType.value = res.data.code ? "success" : "error";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- order_code: valiFormData.value.order_code,
- createTime: /* @__PURE__ */ new Date(),
- type,
- status: res.data.code
- };
- printLogHistory.value.unshift(historyItem);
- uni.setStorageSync("printLogHistory", printLogHistory.value);
- getHistory();
- close();
- },
- fail: (err) => {
- subLoading.value = false;
- formatAppLog("log", "at pages/printer/index.vue:251", "打印失败", err);
- messageType.value = "error";
- messageText.value = "打印失败";
- messageRef.value.open();
- const historyItem = {
- order_code: valiFormData.value.order_code,
- createTime: /* @__PURE__ */ new Date(),
- type,
- status: false
- };
- printLogHistory.value.unshift(historyItem);
- uni.setStorageSync("printLogHistory", printLogHistory.value);
- getHistory();
- close();
- }
- });
- };
- const getPrinterList = () => {
- uni.request({
- url: getPrinterListURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- printerList.value = res.data.data.printers;
- printers.value = Object.values(printerList.value).map((item) => {
- return {
- text: item.name,
- value: item.value
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/printer/index.vue:288", "fail--", e2);
- }
- });
- };
- const onsubmit = () => {
- if (valiFormData.value.order_code) {
- loading.value = true;
- st2 && clearTimeout(st2);
- selectPrinter.value = sendToPeinter.value.length > 0 ? printers.value[0].value : 0;
- printerDialog.value.open();
- loading.value = false;
- } else {
- messageType.value = "error";
- messageText.value = "请填写运单号";
- messageRef.value.open();
- }
- };
- const getHistory = () => {
- printLogHistory.value = uni.getStorageSync("printLogHistory") || [];
- };
- const keypress = (e2) => {
- formatAppLog("log", "at pages/printer/index.vue:311", e2, "按键码");
- if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104)
- ;
- if (e2.keyCode == 66) {
- onsubmit();
- }
- };
- onLoad(() => {
- plus.key.addEventListener("keyup", keypress);
- });
- onUnload(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onHide(() => {
- hidePage.value = true;
- plus.key.removeEventListener("keyup", keypress);
- });
- onBackPress(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onShow(() => {
- token.value = uni.getStorageSync("token");
- hidePage.value = false;
- getHistory();
- getPrinterList();
- });
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/warehouseScan/warehouseLog"
- });
- }
- });
- const __returned__ = { token, loading, hidePage, focusType, selectType, printType, printerDialog, subLoading, printerList, printers, downloadFile, sendToPeinter, selectPrinter, printLogHistory, messageRef, messageType, messageText, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, valiFormData, rules, checkPermission, scanInput, reset, setfocus, close, sendToPeinterFun, printConfirm, getPrinterList, onsubmit, getHistory, keypress };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_data_checkbox = resolveEasycom(vue.resolveDynamicComponent("uni-data-checkbox"), __easycom_0$4);
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createElementVNode("view", { class: "checkbox" }, [
- vue.createVNode(_component_uni_data_checkbox, {
- modelValue: $setup.selectType,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.selectType = $event),
- localdata: $setup.printType
- }, null, 8, ["modelValue", "localdata"])
- ]),
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- "label-width": 80,
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_forms_item, {
- label: "单据编号",
- required: "",
- name: "order_code"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.order_code,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.valiFormData.order_code = $event),
- placeholder: "请输入单据编号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scanInput,
- onBlur: $setup.setfocus,
- onConfirm: $setup.onsubmit
- }, null, 8, ["modelValue", "focus"])
- ]),
- _: 1
- /* STABLE */
- })
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 打印 ")
- ], 8, ["loading"])
- ]),
- $setup.printLogHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "history"
- }, [
- vue.createElementVNode("text", { class: "title" }, "记录(最近5条)")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.printLogHistory.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.type) + " " + vue.toDisplayString(item.order_code),
- 5
- /* TEXT, STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- ),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "printerDialog",
- type: "dialog",
- "is-mask-click": false
- },
- {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { style: { "width": "90%", "margin": "0 auto", "min-height": "250px", "background-color": "#fff", "border-radius": "5px" } }, [
- vue.createElementVNode("view", {
- class: "",
- style: { "font-size": "20px", "border-bottom": "1px solid #e1e1e1", "padding": "15px 10px" }
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("view", { style: { "margin-bottom": "20px" } }, [
- vue.createElementVNode("text", null, "打印尾程面单")
- ]),
- vue.createElementVNode("view", null, [
- $setup.printerList ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [
- vue.createElementVNode("view", null, [
- vue.createVNode(_component_uni_data_checkbox, {
- multiple: "",
- modelValue: $setup.sendToPeinter,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.sendToPeinter = $event),
- localdata: [
- {
- text: "发送到标签打印机打印",
- value: 1
- }
- ],
- onChange: $setup.sendToPeinterFun
- }, {
- default: vue.withCtx(() => [
- vue.createTextVNode(" > ")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["modelValue"]),
- vue.createVNode(_component_uni_data_checkbox, {
- disabled: $setup.sendToPeinter.length === 0,
- modelValue: $setup.selectPrinter,
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $setup.selectPrinter = $event),
- localdata: $setup.printers
- }, null, 8, ["disabled", "modelValue", "localdata"])
- ])
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]),
- vue.createElementVNode("view", { style: { "text-align": "center", "position": "absolute", "bottom": "10px", "width": "90%", "display": "flex", "margin": "0 auto", "left": "0", "right": "0" } }, [
- vue.createElementVNode("button", {
- onClick: $setup.close,
- style: { "width": "35%" }
- }, "关闭"),
- vue.createElementVNode("button", {
- onClick: $setup.printConfirm,
- "hover-stay-time": 500,
- loading: $setup.subLoading,
- disabled: $setup.sendToPeinter.length === 0 || $setup.subLoading,
- class: "my-bt-bg",
- style: { "width": "35%" }
- }, " 打印 ", 8, ["loading", "disabled"])
- ])
- ])
- ])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesPrinterIndex = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__scopeId", "data-v-b2c0c306"], ["__file", "E:/HBuilderProjects/YTAPP/pages/printer/index.vue"]]);
- __definePage("pages/home/index", PagesHomeIndex);
- __definePage("pages/instock/index", PagesInstockIndex);
- __definePage("pages/instock/instockLog", PagesInstockInstockLog);
- __definePage("pages/profile/index", PagesProfileIndex);
- __definePage("pages/login/index", PagesLoginIndex);
- __definePage("pages/order/index", PagesOrderIndex);
- __definePage("pages/scanLotno/index", PagesScanLotnoIndex);
- __definePage("pages/scanLotno/lotnoLog", PagesScanLotnoLotnoLog);
- __definePage("pages/scanLotno/waybillsList", PagesScanLotnoWaybillsList);
- __definePage("pages/warehouseScan/index", PagesWarehouseScanIndex);
- __definePage("pages/warehouseScan/warehouseLog", PagesWarehouseScanWarehouseLog);
- __definePage("pages/waybillNo/index", PagesWaybillNoIndex);
- __definePage("pages/waybillNo/waybillNoLog", PagesWaybillNoWaybillNoLog);
- __definePage("pages/waybillDeliveryOrder/index", PagesWaybillDeliveryOrderIndex);
- __definePage("pages/waybillDeliveryOrder/orderInfo", PagesWaybillDeliveryOrderOrderInfo);
- __definePage("pages/printer/index", PagesPrinterIndex);
- const _sfc_main = {
- onLaunch: function() {
- formatAppLog("log", "at App.vue:4", "App Launch");
- },
- onShow: function() {
- formatAppLog("log", "at App.vue:7", "App Show");
- },
- onHide: function() {
- formatAppLog("log", "at App.vue:10", "App Hide");
- }
- };
- const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "E:/HBuilderProjects/YTAPP/App.vue"]]);
- function createApp() {
- const app = vue.createVueApp(App);
- return {
- app
- };
- }
- const { app: __app__, Vuex: __Vuex__, Pinia: __Pinia__ } = createApp();
- uni.Vuex = __Vuex__;
- uni.Pinia = __Pinia__;
- __app__.provide("__globalStyles", __uniConfig.styles);
- __app__._component.mpType = "app";
- __app__._component.render = () => {
- };
- __app__.mount("#app");
- })(Vue);
|